@social-mail/social-mail-client 1.2.2 → 1.2.4

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 (50) hide show
  1. package/dist/admin/AdminAppIndex.pack.js +819 -51
  2. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  3. package/dist/admin/AdminAppIndex.pack.min.js +145 -31
  4. package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
  5. package/dist/common/controls/audio/AudioRecorder.d.ts +10 -0
  6. package/dist/common/controls/audio/AudioRecorder.d.ts.map +1 -0
  7. package/dist/common/controls/audio/AudioRecorder.js +116 -0
  8. package/dist/common/controls/audio/AudioRecorder.js.map +1 -0
  9. package/dist/common/controls/audio/WebRTCService.d.ts +16 -0
  10. package/dist/common/controls/audio/WebRTCService.d.ts.map +1 -0
  11. package/dist/common/controls/audio/WebRTCService.js +61 -0
  12. package/dist/common/controls/audio/WebRTCService.js.map +1 -0
  13. package/dist/common/controls/buttons/RoundButton.d.ts +7 -0
  14. package/dist/common/controls/buttons/RoundButton.d.ts.map +1 -0
  15. package/dist/common/controls/buttons/RoundButton.js +51 -0
  16. package/dist/common/controls/buttons/RoundButton.js.map +1 -0
  17. package/dist/common/controls/html/InlineHtmlEditorWithToolbar.js.map +1 -1
  18. package/dist/services/files/LocalFileService.d.ts +7 -2
  19. package/dist/services/files/LocalFileService.d.ts.map +1 -1
  20. package/dist/services/files/LocalFileService.js +48 -27
  21. package/dist/services/files/LocalFileService.js.map +1 -1
  22. package/dist/style/GlobalStyle.js +13 -12
  23. package/dist/style/GlobalStyle.js.map +1 -1
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/dist/web/AppIndex.pack.js +819 -51
  26. package/dist/web/AppIndex.pack.js.map +1 -1
  27. package/dist/web/AppIndex.pack.min.js +145 -31
  28. package/dist/web/AppIndex.pack.min.js.map +1 -1
  29. package/dist/web/page/mails/ConversationPage.d.ts +1 -0
  30. package/dist/web/page/mails/ConversationPage.d.ts.map +1 -1
  31. package/dist/web/page/mails/ConversationPage.js +11 -1
  32. package/dist/web/page/mails/ConversationPage.js.map +1 -1
  33. package/dist/web/page/mails/MiniComposeBox.d.ts +10 -3
  34. package/dist/web/page/mails/MiniComposeBox.d.ts.map +1 -1
  35. package/dist/web/page/mails/MiniComposeBox.js +102 -7
  36. package/dist/web/page/mails/MiniComposeBox.js.map +1 -1
  37. package/dist/web/page/mails/service/ConversationService.d.ts +3 -1
  38. package/dist/web/page/mails/service/ConversationService.d.ts.map +1 -1
  39. package/dist/web/page/mails/service/ConversationService.js +62 -3
  40. package/dist/web/page/mails/service/ConversationService.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/common/controls/audio/AudioRecorder.tsx +102 -0
  43. package/src/common/controls/audio/WebRTCService.ts +61 -0
  44. package/src/common/controls/buttons/RoundButton.tsx +38 -0
  45. package/src/common/controls/html/InlineHtmlEditorWithToolbar.tsx +1 -1
  46. package/src/services/files/LocalFileService.tsx +44 -22
  47. package/src/style/GlobalStyle.ts +13 -12
  48. package/src/web/page/mails/ConversationPage.tsx +12 -1
  49. package/src/web/page/mails/MiniComposeBox.tsx +75 -6
  50. package/src/web/page/mails/service/ConversationService.tsx +53 -1
@@ -1985,7 +1985,7 @@ const UMD = new UMDClass();
1985
1985
 
1986
1986
  AmdLoader.instance.register(
1987
1987
  ["@social-mail/social-mail-client","@web-atoms/core","reflect-metadata","@web-atoms/web-controls","@web-atoms/date-time","@web-atoms/entity","@web-atoms/email-dom","@web-atoms/data-styles"],
1988
- ["@social-mail/social-mail-client/dist/web/AppIndex","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/ExpressionParser","@web-atoms/core/dist/core/types","reflect-metadata","@web-atoms/core/dist/core/AtomMap","@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/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/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/AtomDisposableList","@web-atoms/core/dist/core/AtomWatcher","@web-atoms/core/dist/core/Hacks","@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/web/commands/AppCommands","@social-mail/social-mail-client/dist/web/page/home/HomePage","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage","@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","@web-atoms/web-controls/dist/DataAttributes","@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater","@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService","@web-atoms/core/dist/di/DITransient","@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/Sql","@social-mail/social-mail-client/dist/common/SocialMailApp","@web-atoms/core/dist/view-model/Action","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage","@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/ComboBox","@social-mail/social-mail-client/dist/common/controls/buttons/IconButton","@social-mail/social-mail-client/dist/admin/pages/users/ChooseUserPage","@social-mail/social-mail-client/dist/admin/pages/users/services/AdminUserService","@web-atoms/web-controls/dist/basic/Checkbox","@web-atoms/web-controls/dist/basic/styles/checkbox-style","@social-mail/social-mail-client/dist/common/NumberFormats","@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","@web-atoms/web-controls/dist/mobile-app/MasterDetailPage","@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/data-styles/data-styles","@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/core/dist/core/AtomList","@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/Emoji","@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/common/controls/file-preview/FilePreview","@social-mail/social-mail-client/dist/web/page/mails/MiniComposeBox","@social-mail/social-mail-client/dist/web/page/mails/ChooseMailboxPage","@social-mail/social-mail-client/dist/common/pages/folders/ChooseTemplatePage","@social-mail/social-mail-client/dist/web/page/files/service/CloudFileService","@web-atoms/core/dist/services/FetchBuilder","@social-mail/social-mail-client/dist/common/controls/tree/TreeView","@social-mail/social-mail-client/dist/services/mime-service/MimeMessage","@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/stream/LineStream","@social-mail/social-mail-client/dist/services/mime-service/stream/TextWriter","@web-atoms/web-controls/dist/basic/Resizable","@web-atoms/web-controls/dist/basic/ToggleButtonBar","@web-atoms/web-controls/dist/basic/styles/toggle-button-bar-style","@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/controls/collection-editor/CollectionEditor","@web-atoms/web-controls/dist/basic/Expander","@web-atoms/web-controls/dist/basic/styles/expander-style","@social-mail/social-mail-client/dist/common/pages/websites/studio/WebSiteStudioPage","@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","@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","@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/common/pages/websites/templates/ChooseWebSiteTemplatePage","@social-mail/social-mail-client/dist/common/controls/tree/FileTreeView","@social-mail/social-mail-client/dist/site-editor/editor/WebSitePageEditor","@social-mail/social-mail-client/dist/site-editor/editor/HtmlPageEditor","@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/properties/groups/LayoutEditor","@social-mail/social-mail-client/dist/site-editor/properties/controls/PropertyEditor","@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/stylerBorder","@social-mail/social-mail-client/dist/site-editor/styler/properties/layout/display","@social-mail/social-mail-client/dist/site-editor/styler/properties/layout/flex/flex","@social-mail/social-mail-client/dist/site-editor/styler/properties/layout/items-position/itemsPosition","@social-mail/social-mail-client/dist/site-editor/styler/properties/layout/layout","@social-mail/social-mail-client/dist/site-editor/styler/properties/stylerPosition","@social-mail/social-mail-client/dist/site-editor/styler/properties/stylerSizes","@social-mail/social-mail-client/dist/site-editor/styler/properties/stylerSpace","@social-mail/social-mail-client/dist/site-editor/styler/properties/text/stylerText","@social-mail/social-mail-client/dist/site-editor/styler/properties/stylerBackground","@social-mail/social-mail-client/dist/site-editor/properties/groups/TextPropertyEditor","@social-mail/social-mail-client/dist/site-editor/properties/controls/SizeEditorControl","@social-mail/social-mail-client/dist/site-editor/properties/groups/BorderGroupEditor","@social-mail/social-mail-client/dist/site-editor/properties/groups/SizeGroupEditor","@social-mail/social-mail-client/dist/site-editor/properties/groups/SpaceGroupEditor","@social-mail/social-mail-client/dist/site-editor/properties/groups/PositionGroupEditor","@social-mail/social-mail-client/dist/site-editor/properties/groups/BackgroundGroupEditor","@social-mail/social-mail-client/dist/site-editor/editor/SelectedElement","@social-mail/social-mail-client/dist/web/page/files/media/ChooseMediaPage","@social-mail/social-mail-client/dist/common/controls/drag-drop/FilesDragDrop","@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/controls/password/PasswordStrength","@social-mail/social-mail-client/dist/common/validators/Validators","@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/web/page/files/FolderPage","@social-mail/social-mail-client/dist/web/page/files/preview/image/PreviewImage","@web-atoms/web-controls/dist/basic/PinchZoomView","@web-atoms/web-controls/dist/basic/styles/pinch-zoom-view-style","@social-mail/social-mail-client/dist/web/page/files/preview/document/PreviewDocument","@social-mail/social-mail-client/dist/web/page/files/preview/media/PreviewMedia","@web-atoms/web-controls/dist/player/AtomVideoPlayer","@social-mail/social-mail-client/dist/services/FileTypes","@social-mail/social-mail-client/dist/style/GlobalStyle","@social-mail/social-mail-client/dist/style/OverrideAppStyle","@social-mail/social-mail-client/dist/services/LoginService","@social-mail/social-mail-client/dist/common/pages/user/login/LoginPage","@social-mail/social-mail-client/dist/web/drawer/AppDrawer","@social-mail/social-mail-client/dist/common/controls/menu/MenuItem","@social-mail/social-mail-client/dist/common/controls/ModuleInfo","@social-mail/social-mail-client/dist/services/WebPushService","@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"]);
1988
+ ["@social-mail/social-mail-client/dist/web/AppIndex","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/ExpressionParser","@web-atoms/core/dist/core/types","reflect-metadata","@web-atoms/core/dist/core/AtomMap","@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/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/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/AtomDisposableList","@web-atoms/core/dist/core/AtomWatcher","@web-atoms/core/dist/core/Hacks","@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/web/commands/AppCommands","@social-mail/social-mail-client/dist/web/page/home/HomePage","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage","@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","@web-atoms/web-controls/dist/DataAttributes","@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater","@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService","@web-atoms/core/dist/di/DITransient","@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/Sql","@social-mail/social-mail-client/dist/common/SocialMailApp","@web-atoms/core/dist/view-model/Action","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage","@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/ComboBox","@social-mail/social-mail-client/dist/common/controls/buttons/IconButton","@social-mail/social-mail-client/dist/admin/pages/users/ChooseUserPage","@social-mail/social-mail-client/dist/admin/pages/users/services/AdminUserService","@web-atoms/web-controls/dist/basic/Checkbox","@web-atoms/web-controls/dist/basic/styles/checkbox-style","@social-mail/social-mail-client/dist/common/NumberFormats","@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","@web-atoms/web-controls/dist/mobile-app/MasterDetailPage","@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/data-styles/data-styles","@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/core/dist/core/AtomList","@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/Emoji","@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/common/controls/file-preview/FilePreview","@social-mail/social-mail-client/dist/web/page/mails/MiniComposeBox","@social-mail/social-mail-client/dist/common/controls/audio/AudioRecorder","@web-atoms/web-controls/dist/mobile-app/BottomPopup","@web-atoms/web-controls/dist/animations/Animations","@social-mail/social-mail-client/dist/common/controls/audio/WebRTCService","@social-mail/social-mail-client/dist/common/controls/buttons/RoundButton","@social-mail/social-mail-client/dist/web/page/mails/ChooseMailboxPage","@social-mail/social-mail-client/dist/common/pages/folders/ChooseTemplatePage","@social-mail/social-mail-client/dist/web/page/files/service/CloudFileService","@web-atoms/core/dist/services/FetchBuilder","@social-mail/social-mail-client/dist/common/controls/tree/TreeView","@social-mail/social-mail-client/dist/services/mime-service/MimeMessage","@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/stream/LineStream","@social-mail/social-mail-client/dist/services/mime-service/stream/TextWriter","@web-atoms/web-controls/dist/basic/Resizable","@web-atoms/web-controls/dist/basic/ToggleButtonBar","@web-atoms/web-controls/dist/basic/styles/toggle-button-bar-style","@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/controls/collection-editor/CollectionEditor","@web-atoms/web-controls/dist/basic/Expander","@web-atoms/web-controls/dist/basic/styles/expander-style","@social-mail/social-mail-client/dist/common/pages/websites/studio/WebSiteStudioPage","@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","@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","@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/common/pages/websites/templates/ChooseWebSiteTemplatePage","@social-mail/social-mail-client/dist/common/controls/tree/FileTreeView","@social-mail/social-mail-client/dist/site-editor/editor/WebSitePageEditor","@social-mail/social-mail-client/dist/site-editor/editor/HtmlPageEditor","@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/properties/groups/LayoutEditor","@social-mail/social-mail-client/dist/site-editor/properties/controls/PropertyEditor","@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/stylerBorder","@social-mail/social-mail-client/dist/site-editor/styler/properties/layout/display","@social-mail/social-mail-client/dist/site-editor/styler/properties/layout/flex/flex","@social-mail/social-mail-client/dist/site-editor/styler/properties/layout/items-position/itemsPosition","@social-mail/social-mail-client/dist/site-editor/styler/properties/layout/layout","@social-mail/social-mail-client/dist/site-editor/styler/properties/stylerPosition","@social-mail/social-mail-client/dist/site-editor/styler/properties/stylerSizes","@social-mail/social-mail-client/dist/site-editor/styler/properties/stylerSpace","@social-mail/social-mail-client/dist/site-editor/styler/properties/text/stylerText","@social-mail/social-mail-client/dist/site-editor/styler/properties/stylerBackground","@social-mail/social-mail-client/dist/site-editor/properties/groups/TextPropertyEditor","@social-mail/social-mail-client/dist/site-editor/properties/controls/SizeEditorControl","@social-mail/social-mail-client/dist/site-editor/properties/groups/BorderGroupEditor","@social-mail/social-mail-client/dist/site-editor/properties/groups/SizeGroupEditor","@social-mail/social-mail-client/dist/site-editor/properties/groups/SpaceGroupEditor","@social-mail/social-mail-client/dist/site-editor/properties/groups/PositionGroupEditor","@social-mail/social-mail-client/dist/site-editor/properties/groups/BackgroundGroupEditor","@social-mail/social-mail-client/dist/site-editor/editor/SelectedElement","@social-mail/social-mail-client/dist/web/page/files/media/ChooseMediaPage","@social-mail/social-mail-client/dist/common/controls/drag-drop/FilesDragDrop","@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/controls/password/PasswordStrength","@social-mail/social-mail-client/dist/common/validators/Validators","@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/web/page/files/FolderPage","@social-mail/social-mail-client/dist/web/page/files/preview/image/PreviewImage","@web-atoms/web-controls/dist/basic/PinchZoomView","@web-atoms/web-controls/dist/basic/styles/pinch-zoom-view-style","@social-mail/social-mail-client/dist/web/page/files/preview/document/PreviewDocument","@social-mail/social-mail-client/dist/web/page/files/preview/media/PreviewMedia","@web-atoms/web-controls/dist/player/AtomVideoPlayer","@social-mail/social-mail-client/dist/services/FileTypes","@social-mail/social-mail-client/dist/style/GlobalStyle","@social-mail/social-mail-client/dist/style/OverrideAppStyle","@social-mail/social-mail-client/dist/services/LoginService","@social-mail/social-mail-client/dist/common/pages/user/login/LoginPage","@social-mail/social-mail-client/dist/web/drawer/AppDrawer","@social-mail/social-mail-client/dist/common/controls/menu/MenuItem","@social-mail/social-mail-client/dist/common/controls/ModuleInfo","@social-mail/social-mail-client/dist/services/WebPushService","@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"]);
1989
1989
 
1990
1990
  System.register([], function (_export, _context) {
1991
1991
  "use strict";
@@ -18002,7 +18002,7 @@ System.register(["@web-atoms/core/dist/core/EventScope"], function (_export, _co
18002
18002
  System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/core/dist/di/Inject", "../../../../services/EntityService", "../../../../model/model", "../../../../common/Sql", "@web-atoms/email-dom/dist/DomToString", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/core/AtomUI", "@web-atoms/date-time/dist/DateTime", "../../../../common/events/CommonEvents", "../../../../services/BusyProgress"], function (_export, _context) {
18003
18003
  "use strict";
18004
18004
 
18005
- var __awaiter, __decorate, __metadata, DISingleton, Inject, EntityService, Email, MailboxContactEmail, Sql, DomToString, XNode, AtomControl, descendentElementIterator, DateTime, CommonEvents, BusyProgress, renderMail, downloadEmailContent, ConversationService;
18005
+ var __awaiter, __decorate, __metadata, DISingleton, Inject, EntityService, Email, EmailRecipient, MailboxContactEmail, MailboxEmail, Sql, DomToString, XNode, AtomControl, descendentElementIterator, DateTime, CommonEvents, BusyProgress, renderMail, downloadEmailContent, ConversationService;
18006
18006
  return {
18007
18007
  setters: [function (_tslib) {
18008
18008
  __awaiter = _tslib.__awaiter;
@@ -18016,7 +18016,9 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
18016
18016
  EntityService = _servicesEntityService.default;
18017
18017
  }, function (_modelModel) {
18018
18018
  Email = _modelModel.Email;
18019
+ EmailRecipient = _modelModel.EmailRecipient;
18019
18020
  MailboxContactEmail = _modelModel.MailboxContactEmail;
18021
+ MailboxEmail = _modelModel.MailboxEmail;
18020
18022
  }, function (_commonSql) {
18021
18023
  Sql = _commonSql.Sql;
18022
18024
  }, function (_webAtomsEmailDomDistDomToString) {
@@ -18117,6 +18119,61 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
18117
18119
  }
18118
18120
  });
18119
18121
  ConversationService = class ConversationService {
18122
+ getDraft({
18123
+ mailboxID,
18124
+ emailAddressID,
18125
+ email
18126
+ }) {
18127
+ return __awaiter(this, void 0, void 0, function* () {
18128
+ const draft = "draft";
18129
+ return yield this.entityService.query(MailboxContactEmail).where({
18130
+ mailboxID,
18131
+ emailAddressID,
18132
+ draft
18133
+ }, p => x => x.mailboxID === p.mailboxID && x.emailAddressID === p.emailAddressID && x.email.status === p.draft).orderByDescending(x => x.emailID).include(x => [x.email.recipients, x.email.attachments]).firstOrDefault();
18134
+ });
18135
+ }
18136
+ draft({
18137
+ mailboxID,
18138
+ emailAddressID,
18139
+ email
18140
+ }, create = false) {
18141
+ var _a, _b;
18142
+ return __awaiter(this, void 0, void 0, function* () {
18143
+ if (email === null || email === void 0 ? void 0 : email.emailID) {
18144
+ if (!email.textBody) {
18145
+ email.textBody = email.mdBody;
18146
+ }
18147
+ if (!email.subject) {
18148
+ email.subject = email.textBody.substring(0, 80);
18149
+ }
18150
+ const cloner = this.entityService.cloner(email).include(x => x.attachments).include(x => x.recipients);
18151
+ yield this.entityService.save(cloner.copy);
18152
+ return email;
18153
+ }
18154
+ if (create && email) {
18155
+ (_a = email.recipients) !== null && _a !== void 0 ? _a : email.recipients = [];
18156
+ (_b = email.mailboxes) !== null && _b !== void 0 ? _b : email.mailboxes = [];
18157
+ if (!email.mailboxes.some(m => m.mailboxID === mailboxID)) {
18158
+ email.mailboxes.push(MailboxEmail.create({
18159
+ mailboxID
18160
+ }));
18161
+ }
18162
+ if (!email.recipients.some(r => r.emailAddressID === emailAddressID)) {
18163
+ email.recipients.push(EmailRecipient.create({
18164
+ emailAddressID
18165
+ }));
18166
+ }
18167
+ const mce = MailboxContactEmail.create({
18168
+ mailboxID,
18169
+ emailAddressID,
18170
+ email
18171
+ });
18172
+ yield this.entityService.save(mce);
18173
+ }
18174
+ return email;
18175
+ });
18176
+ }
18120
18177
  list({
18121
18178
  search = "",
18122
18179
  mailboxID,
@@ -18126,7 +18183,7 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
18126
18183
  version = 0,
18127
18184
  cancelToken
18128
18185
  }) {
18129
- var _a;
18186
+ var _a, _b, _c;
18130
18187
  return __awaiter(this, void 0, void 0, function* () {
18131
18188
  let q = this.entityService.query(MailboxContactEmail).where({
18132
18189
  mailboxID,
@@ -18151,11 +18208,13 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
18151
18208
  for (const {
18152
18209
  email
18153
18210
  } of emails.items) {
18211
+ (_a = email.htmlBody) !== null && _a !== void 0 ? _a : email.htmlBody = "";
18212
+ (_b = email.textBody) !== null && _b !== void 0 ? _b : email.textBody = "";
18154
18213
  tasks.push(downloadEmailContent(this.entityService, email));
18155
18214
  }
18156
18215
  yield Promise.all(tasks);
18157
18216
  } finally {
18158
- (_a = d === null || d === void 0 ? void 0 : d.dispose) === null || _a === void 0 ? void 0 : _a.call(d);
18217
+ (_c = d === null || d === void 0 ? void 0 : d.dispose) === null || _c === void 0 ? void 0 : _c.call(d);
18159
18218
  }
18160
18219
  return emails;
18161
18220
  });
@@ -21173,10 +21232,10 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
21173
21232
 
21174
21233
  AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/UploadEvent");
21175
21234
 
21176
- System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core/types", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/core/dist/di/Inject", "@web-atoms/core/dist/core/StringHelper", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/services/PopupWindow", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/web/services/PopupService"], function (_export, _context) {
21235
+ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core/types", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/core/dist/di/Inject", "@web-atoms/core/dist/core/StringHelper", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/services/PopupWindow", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/web/services/PopupService", "@web-atoms/entity/dist/models/TaskManager"], function (_export, _context) {
21177
21236
  "use strict";
21178
21237
 
21179
- var __awaiter, __decorate, __metadata, App, CancelToken, DISingleton, Inject, StringHelper, styled, PopupWindow, InjectProperty, XNode, AtomRepeater, Bind, PopupService, FileUploadWindow, acceptDocumentAndMedia, LocalFileService;
21238
+ var __awaiter, __decorate, __metadata, App, CancelToken, DISingleton, Inject, StringHelper, styled, PopupWindow, InjectProperty, XNode, AtomRepeater, Bind, PopupService, TaskManager, FileUploadWindow, acceptDocumentAndMedia, LocalFileService;
21180
21239
  return {
21181
21240
  setters: [function (_tslib) {
21182
21241
  __awaiter = _tslib.__awaiter;
@@ -21206,22 +21265,17 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
21206
21265
  Bind = _webAtomsCoreDistCoreBind.default;
21207
21266
  }, function (_webAtomsCoreDistWebServicesPopupService) {
21208
21267
  PopupService = _webAtomsCoreDistWebServicesPopupService.default;
21268
+ }, function (_webAtomsEntityDistModelsTaskManager) {
21269
+ TaskManager = _webAtomsEntityDistModelsTaskManager.default;
21209
21270
  }],
21210
21271
  execute: function () {
21211
21272
  _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");
21212
21273
  styled.css`
21213
21274
  display: inline-grid;
21214
21275
  grid-template-rows: auto auto;
21215
- grid-template-columns: auto 1fr auto;
21216
-
21217
- & > [data-element=preview] {
21218
- grid-row: 1 / span 2;
21219
- grid-column: 1;
21220
- }
21221
21276
 
21222
21277
  & > [data-element=file-name] {
21223
21278
  grid-row: 1;
21224
- grid-column: 2;
21225
21279
  overflow: hidden;
21226
21280
  white-space: nowrap;
21227
21281
  text-overflow: ellipsis;
@@ -21229,17 +21283,13 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
21229
21283
 
21230
21284
  & > [data-element=progress] {
21231
21285
  grid-row: 2;
21232
- grid-column: 2 / span 2;
21233
21286
  width: 100%;
21234
21287
  }
21235
21288
 
21236
- & > [data-element=delete] {
21237
- grid-row: 1;
21238
- grid-column: 3;
21239
- }
21240
21289
  `.installGlobal("[data-attachment-file]");
21241
- LocalFileService = class LocalFileService {
21290
+ LocalFileService = class LocalFileService extends TaskManager {
21242
21291
  constructor() {
21292
+ super();
21243
21293
  document.body.addEventListener("uploadRequested", ce => {
21244
21294
  const {
21245
21295
  target,
@@ -21350,15 +21400,31 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
21350
21400
  });
21351
21401
  }
21352
21402
  upload(files, extra, ct) {
21353
- return __awaiter(this, void 0, void 0, function* () {
21354
- return files.map(file => {
21355
- const uploadFile = {
21356
- name: file.name
21357
- };
21358
- uploadFile.promise = this.uploadFile(file, extra, ct, n => uploadFile.progress = n);
21359
- return uploadFile;
21360
- });
21361
- });
21403
+ const {
21404
+ parentID
21405
+ } = extra;
21406
+ const tasks = [];
21407
+ const upload = {
21408
+ total: 0,
21409
+ tasks,
21410
+ progress: 0
21411
+ };
21412
+ for (const file of files) {
21413
+ upload.total += file.size;
21414
+ const uploadFile = {
21415
+ name: file.name,
21416
+ progress: 0
21417
+ };
21418
+ uploadFile.promise = this.run(() => __awaiter(this, void 0, void 0, function* () {
21419
+ uploadFile.progress = 0.01;
21420
+ const r = yield this.uploadFile(file, extra, ct, n => uploadFile.progress = n);
21421
+ upload.progress += r.file.size;
21422
+ setTimeout(() => tasks.remove(uploadFile), 500);
21423
+ return r;
21424
+ }));
21425
+ tasks.push(uploadFile);
21426
+ }
21427
+ return upload;
21362
21428
  }
21363
21429
  };
21364
21430
  __decorate([Inject, __metadata("design:type", App)], LocalFileService.prototype, "app", void 0);
@@ -21382,8 +21448,21 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
21382
21448
  }), null, {
21383
21449
  capture: true
21384
21450
  });
21385
- this.files = yield this.localFileService.upload(this.parameters.files, this.parameters.extra, this.cancelToken);
21386
- this.render(XNode.create("div", null, XNode.create(AtomRepeater, {
21451
+ const task = this.localFileService.upload(this.parameters.files, this.parameters.extra, this.cancelToken);
21452
+ this.files = task.tasks;
21453
+ this.footerRenderer = () => XNode.create("div", {
21454
+ "data-layout": "command-row"
21455
+ }, XNode.create("progress", {
21456
+ min: 0,
21457
+ max: task.total,
21458
+ value: Bind.source(task, x => x.source.progress)
21459
+ }));
21460
+ this.render(XNode.create("div", {
21461
+ "data-overflow": "auto",
21462
+ "style-max-height": "500px",
21463
+ "style-max-width": "400px"
21464
+ }, XNode.create(AtomRepeater, {
21465
+ "data-layout": "vertical-flex-stretch-items",
21387
21466
  items: this.files,
21388
21467
  itemRenderer: file => XNode.create("div", {
21389
21468
  "data-attachment-file": "file"
@@ -21391,8 +21470,9 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
21391
21470
  "data-element": "file-name",
21392
21471
  text: file.name
21393
21472
  }), XNode.create("progress", {
21473
+ "style-display": Bind.source(file, x => x.source.progress > 0),
21394
21474
  min: 0,
21395
- max: 100,
21475
+ max: 1,
21396
21476
  value: Bind.source(file, x => x.source.progress)
21397
21477
  }))
21398
21478
  })));
@@ -23676,22 +23756,621 @@ System.register(["@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/
23676
23756
 
23677
23757
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/file-preview/FilePreview");
23678
23758
 
23679
- System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/core/Bind"], function (_export, _context) {
23759
+ System.register(["@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/controls/AtomControl"], function (_export, _context) {
23760
+ "use strict";
23761
+
23762
+ var styled, AtomControl, Animations;
23763
+ _export("default", void 0);
23764
+ return {
23765
+ setters: [function (_webAtomsCoreDistStyleStyled) {
23766
+ styled = _webAtomsCoreDistStyleStyled.default;
23767
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
23768
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
23769
+ }],
23770
+ execute: function () {
23771
+ styled.css`
23772
+ transition: all 0.5s ease-out;
23773
+
23774
+ &:not([data-animation-state]) {
23775
+ display: none;
23776
+ }
23777
+
23778
+ &[data-animation-state=down] {
23779
+ transform: translate(0,100%);
23780
+ }
23781
+
23782
+ &[data-animation-state=normal] {
23783
+ transform: translate(0,0);
23784
+ }
23785
+ `.installGlobal("[data-animate-slide=from-bottom]");
23786
+ styled.css`
23787
+ transition: all 0.5s ease-out;
23788
+
23789
+ &:not([data-animation-state]) {
23790
+ display: none;
23791
+ }
23792
+
23793
+ &[data-animation-state=up] {
23794
+ transform: translate(0,-100%);
23795
+ }
23796
+
23797
+ &[data-animation-state=normal] {
23798
+ transform: translate(0,0);
23799
+ }
23800
+ `.installGlobal("[data-animate-slide=from-top]");
23801
+ _export("default", Animations = class Animations {});
23802
+ Animations.slideFromBottom = AtomControl.registerProperty("animate", "bottom-slide", (ctrl, e, v) => {
23803
+ e.dataset.animateSlide = "from-bottom";
23804
+ if (v) {
23805
+ e.dataset.animationState = "down";
23806
+ setTimeout(() => {
23807
+ e.dataset.animationState = "normal";
23808
+ }, 10);
23809
+ return;
23810
+ }
23811
+ if (e.dataset.animationState === "normal") {
23812
+ e.dataset.animationState = "down";
23813
+ }
23814
+ setTimeout(() => {
23815
+ e.removeAttribute("data-animation-state");
23816
+ }, 600);
23817
+ });
23818
+ Animations.slideFromTop = AtomControl.registerProperty("animate", "top-slide", (ctrl, e, v) => {
23819
+ e.dataset.animateSlide = "from-top";
23820
+ if (v) {
23821
+ e.dataset.animationState = "up";
23822
+ setTimeout(() => {
23823
+ e.dataset.animationState = "normal";
23824
+ }, 10);
23825
+ return;
23826
+ }
23827
+ if (e.dataset.animationState === "normal") {
23828
+ e.dataset.animationState = "up";
23829
+ }
23830
+ setTimeout(() => {
23831
+ e.removeAttribute("data-animation-state");
23832
+ }, 600);
23833
+ });
23834
+ }
23835
+ };
23836
+ });
23837
+ //# sourceMappingURL=Animations.js.map
23838
+
23839
+ AmdLoader.instance.setup("@web-atoms/web-controls/dist/animations/Animations");
23840
+
23841
+ System.register(["tslib", "@web-atoms/core/dist/core/BindableProperty", "@web-atoms/core/dist/core/types", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/core/AtomUI", "@web-atoms/core/dist/web/services/PopupService", "../animations/Animations", "./MobileApp", "@web-atoms/core/dist/style/styled"], function (_export, _context) {
23680
23842
  "use strict";
23681
23843
 
23682
- var __awaiter, XNode, styled, AtomControl, Bind, MiniComposeBox, css;
23844
+ var __awaiter, __decorate, __metadata, BindableProperty, CancelToken, XNode, AtomControl, ChildEnumerator, PopupService, MobileApp, styled, BottomPopup;
23683
23845
  _export("default", void 0);
23684
23846
  return {
23685
23847
  setters: [function (_tslib) {
23686
23848
  __awaiter = _tslib.__awaiter;
23849
+ __decorate = _tslib.__decorate;
23850
+ __metadata = _tslib.__metadata;
23851
+ }, function (_webAtomsCoreDistCoreBindableProperty) {
23852
+ BindableProperty = _webAtomsCoreDistCoreBindableProperty.BindableProperty;
23853
+ }, function (_webAtomsCoreDistCoreTypes) {
23854
+ CancelToken = _webAtomsCoreDistCoreTypes.CancelToken;
23855
+ }, function (_webAtomsCoreDistCoreXNode) {
23856
+ XNode = _webAtomsCoreDistCoreXNode.default;
23857
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
23858
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
23859
+ }, function (_webAtomsCoreDistWebCoreAtomUI) {
23860
+ ChildEnumerator = _webAtomsCoreDistWebCoreAtomUI.ChildEnumerator;
23861
+ }, function (_webAtomsCoreDistWebServicesPopupService) {
23862
+ PopupService = _webAtomsCoreDistWebServicesPopupService.default;
23863
+ }, function (_animationsAnimations) {
23864
+ _export({});
23865
+ }, function (_MobileApp) {
23866
+ MobileApp = _MobileApp.default;
23867
+ }, function (_webAtomsCoreDistStyleStyled) {
23868
+ styled = _webAtomsCoreDistStyleStyled.default;
23869
+ }],
23870
+ execute: function () {
23871
+ styled.css`
23872
+ position: absolute;
23873
+ left: 0;
23874
+ top: 0;
23875
+ bottom: 0;
23876
+ right: 0;
23877
+ background-color: rgba(0,0,0,0.3);
23878
+ z-index: 500;
23879
+ `.installGlobal("*[data-bottom-popup-container]");
23880
+ styled.css`
23881
+ position: absolute;
23882
+ left: 0px;
23883
+ right: 0px;
23884
+ bottom: 0px;
23885
+ margin-left: 2px;
23886
+ margin-right: 2px;
23887
+ border-top-left-radius: 5px;
23888
+ border-top-right-radius: 5px;
23889
+ display: grid;
23890
+ grid-template-columns: auto 1fr auto;
23891
+ grid-template-rows: auto auto auto;
23892
+ background-color: #ffffff;
23893
+
23894
+ & > [data-element=bar] {
23895
+ border-top-left-radius: 5px;
23896
+ border-top-right-radius: 5px;
23897
+ grid-row: 1;
23898
+ grid-column: 1 / span 3;
23899
+ background-color: #d3d3d3;
23900
+ z-index: 10;
23901
+ }
23902
+
23903
+ & > [data-element=icon] {
23904
+ grid-row: 1;
23905
+ grid-column: 1;
23906
+ padding: 5px;
23907
+ align-self: center;
23908
+ margin-right: 5px;
23909
+ z-index: 11;
23910
+ }
23911
+
23912
+ & > [data-element=close] {
23913
+ grid-row: 1;
23914
+ grid-column: 3;
23915
+ padding: 5px;
23916
+ margin-left: 5px;
23917
+ align-self: center;
23918
+ z-index: 11;
23919
+ }
23920
+
23921
+ & > [data-element=title] {
23922
+ grid-row: 1;
23923
+ grid-column: 2;
23924
+ padding: 5px;
23925
+ z-index: 11;
23926
+ }
23927
+
23928
+ & > [data-element=content] {
23929
+ padding: 5px;
23930
+ grid-row: 2;
23931
+ grid-column: 1 / span 3;
23932
+ z-index: 11;
23933
+ }
23934
+
23935
+ & > [data-element=footer] {
23936
+ grid-row: 3;
23937
+ grid-column: 1 / span 3;
23938
+ margin-top: 5px;
23939
+ padding: 5px;
23940
+ z-index: 11;
23941
+ }
23942
+ `.installGlobal("*[data-bottom-popup]");
23943
+ _export("default", BottomPopup = class BottomPopup extends AtomControl {
23944
+ static showModal(options) {
23945
+ return this.show(options);
23946
+ }
23947
+ static show({
23948
+ parameters,
23949
+ cancelToken
23950
+ } = {}) {
23951
+ var _a;
23952
+ return __awaiter(this, void 0, void 0, function* () {
23953
+ const last = PopupService.lastTarget;
23954
+ const current = MobileApp.current;
23955
+ const popup = new this(current.app);
23956
+ popup.parameters = parameters;
23957
+ popup.bindEvent(window, "backButton", ce => {
23958
+ ce.preventDefault();
23959
+ return popup.cancelRequested();
23960
+ }, void 0, true);
23961
+ popup.bindEvent(popup.element, "cancelPopup", () => popup.cancelRequested());
23962
+ if (popup.modal) {
23963
+ const container = document.createElement("div");
23964
+ container.setAttribute("data-bottom-popup-container", "1");
23965
+ popup.bindEvent(container, "click", e => {
23966
+ if (e.target === e.currentTarget) {
23967
+ e.preventDefault();
23968
+ e.stopImmediatePropagation();
23969
+ e.stopPropagation();
23970
+ popup.element.dispatchEvent(new CustomEvent("cancelPopup"));
23971
+ }
23972
+ });
23973
+ popup.registerDisposable({
23974
+ dispose: () => {
23975
+ container.remove();
23976
+ }
23977
+ });
23978
+ container.append(popup.element);
23979
+ current.element.append(container);
23980
+ } else {
23981
+ current.element.append(popup.element);
23982
+ }
23983
+ if (cancelToken) {
23984
+ cancelToken.registerForCancel(popup.cancel);
23985
+ }
23986
+ const result = new Promise((resolve, reject) => {
23987
+ let disposed = false;
23988
+ popup.close = r => {
23989
+ if (disposed) {
23990
+ return;
23991
+ }
23992
+ disposed = true;
23993
+ popup.dispose();
23994
+ resolve(r);
23995
+ PopupService.lastTarget = last;
23996
+ };
23997
+ popup.cancel = (reason = "cancelled") => {
23998
+ if (disposed) {
23999
+ return;
24000
+ }
24001
+ disposed = true;
24002
+ popup.dispose();
24003
+ reject(reason);
24004
+ PopupService.lastTarget = last;
24005
+ };
24006
+ });
24007
+ const pr = (_a = popup.init) === null || _a === void 0 ? void 0 : _a.call(popup);
24008
+ if (pr) {
24009
+ try {
24010
+ yield pr;
24011
+ } catch (e) {
24012
+ popup.cancel(e);
24013
+ }
24014
+ }
24015
+ return yield result;
24016
+ });
24017
+ }
24018
+ dispose(e) {
24019
+ if (e) {
24020
+ super.dispose(e);
24021
+ return;
24022
+ }
24023
+ const element = this.element;
24024
+ this.element.setAttribute("data-animation-state", "down");
24025
+ setTimeout(() => {
24026
+ super.dispose(e);
24027
+ element.remove();
24028
+ }, 500);
24029
+ }
24030
+ init() {
24031
+ return __awaiter(this, void 0, void 0, function* () {});
24032
+ }
24033
+ preCreate() {
24034
+ this.modal = true;
24035
+ const element = this.element;
24036
+ element.dataset.bottomPopup = "bottom-popup";
24037
+ this.animate = true;
24038
+ super.preCreate();
24039
+ this.barRenderer = () => XNode.create("div", null);
24040
+ this.popupCancelToken = new CancelToken();
24041
+ this.registerDisposable({
24042
+ dispose: () => {
24043
+ this.popupCancelToken.cancel();
24044
+ }
24045
+ });
24046
+ this.bindEvent(this.element, "closeClick", () => this.cancelRequested());
24047
+ }
24048
+ render(node, e, creator) {
24049
+ var _a, _b;
24050
+ this.render = super.render;
24051
+ const na = (_a = node.attributes) !== null && _a !== void 0 ? _a : node.attributes = {};
24052
+ na["data-element"] = "content";
24053
+ (_b = na["data-click-event"]) !== null && _b !== void 0 ? _b : na["data-click-event"] = "popupClick";
24054
+ this.render(XNode.create("div", null, node));
24055
+ this.updateElement("title");
24056
+ this.updateElement("bar");
24057
+ this.updateElement("icon");
24058
+ this.updateElement("close");
24059
+ this.updateElement("footer");
24060
+ if (!this.animate) {
24061
+ return;
24062
+ }
24063
+ this.element.setAttribute("data-animate-slide", this.animate ? "from-bottom" : "normal");
24064
+ this.element.setAttribute("data-animation-state", "down");
24065
+ this.animate = false;
24066
+ setTimeout(() => {
24067
+ this.element.setAttribute("data-animation-state", "normal");
24068
+ }, 10);
24069
+ }
24070
+ cancelRequested() {
24071
+ return this.cancel();
24072
+ }
24073
+ updateElement(name, property = name + "Renderer") {
24074
+ var _a, _b;
24075
+ const r = this[property];
24076
+ const child = ChildEnumerator.find(this.element, e => e.dataset.element === name);
24077
+ if (child) {
24078
+ this.dispose(child);
24079
+ child.remove();
24080
+ }
24081
+ const node = r === null || r === void 0 ? void 0 : r();
24082
+ if (!node) {
24083
+ return;
24084
+ }
24085
+ const na = (_a = node.attributes) !== null && _a !== void 0 ? _a : node.attributes = {};
24086
+ na["data-element"] = name;
24087
+ (_b = na["data-click-event"]) !== null && _b !== void 0 ? _b : na["data-click-event"] = name + "-click";
24088
+ this.render(XNode.create("div", null, node));
24089
+ }
24090
+ });
24091
+ __decorate([BindableProperty, __metadata("design:type", Function)], BottomPopup.prototype, "titleRenderer", void 0);
24092
+ __decorate([BindableProperty, __metadata("design:type", Function)], BottomPopup.prototype, "headerRenderer", void 0);
24093
+ __decorate([BindableProperty, __metadata("design:type", Function)], BottomPopup.prototype, "closeRenderer", void 0);
24094
+ __decorate([BindableProperty, __metadata("design:type", Function)], BottomPopup.prototype, "footerRenderer", void 0);
24095
+ __decorate([BindableProperty, __metadata("design:type", Function)], BottomPopup.prototype, "barRenderer", void 0);
24096
+ delete BottomPopup.prototype.init;
24097
+ }
24098
+ };
24099
+ });
24100
+ //# sourceMappingURL=BottomPopup.js.map
24101
+
24102
+ AmdLoader.instance.setup("@web-atoms/web-controls/dist/mobile-app/BottomPopup");
24103
+
24104
+ System.register(["tslib", "@web-atoms/date-time/dist/TimeSpan"], function (_export, _context) {
24105
+ "use strict";
24106
+
24107
+ var __awaiter, TimeSpan, WebRecordingSession, WebRTCService;
24108
+ _export({
24109
+ WebRecordingSession: void 0,
24110
+ default: void 0
24111
+ });
24112
+ return {
24113
+ setters: [function (_tslib) {
24114
+ __awaiter = _tslib.__awaiter;
24115
+ }, function (_webAtomsDateTimeDistTimeSpan) {
24116
+ TimeSpan = _webAtomsDateTimeDistTimeSpan.default;
24117
+ }],
24118
+ execute: function () {
24119
+ _export("WebRecordingSession", WebRecordingSession = class WebRecordingSession {
24120
+ constructor(stream) {
24121
+ this.duration = TimeSpan.fromSeconds(0);
24122
+ this.recorder = new MediaRecorder(stream);
24123
+ }
24124
+ start(segments) {
24125
+ const buffer = [];
24126
+ return new Promise((resolve, reject) => {
24127
+ this.recorder.ondataavailable = be => {
24128
+ buffer.push(be.data);
24129
+ };
24130
+ const start = Date.now();
24131
+ const id = setInterval(() => {
24132
+ const seconds = Math.ceil((Date.now() - start) / 1000);
24133
+ this.duration = TimeSpan.fromSeconds(seconds);
24134
+ }, 1000);
24135
+ this.recorder.onerror = me => {
24136
+ clearInterval(id);
24137
+ reject(me.error);
24138
+ };
24139
+ this.recorder.onstop = () => {
24140
+ clearInterval(id);
24141
+ resolve(new Blob(buffer, {
24142
+ type: this.recorder.mimeType
24143
+ }));
24144
+ };
24145
+ this.recorder.start(segments);
24146
+ });
24147
+ }
24148
+ stop() {
24149
+ this.recorder.stop();
24150
+ }
24151
+ });
24152
+ _export("default", WebRTCService = class WebRTCService {
24153
+ static startAudioSession() {
24154
+ return __awaiter(this, void 0, void 0, function* () {
24155
+ return new WebRecordingSession(yield navigator.mediaDevices.getUserMedia({
24156
+ audio: true
24157
+ }));
24158
+ });
24159
+ }
24160
+ });
24161
+ }
24162
+ };
24163
+ });
24164
+ //# sourceMappingURL=WebRTCService.js.map
24165
+
24166
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/audio/WebRTCService");
24167
+
24168
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/styled"], function (_export, _context) {
24169
+ "use strict";
24170
+
24171
+ var __rest, XNode, styled;
24172
+ function RoundButton(_a, ...nodes) {
24173
+ var {
24174
+ icon
24175
+ } = _a,
24176
+ a = __rest(_a, ["icon"]);
24177
+ if (icon) {
24178
+ return XNode.create("button", Object.assign({
24179
+ "data-color": "white",
24180
+ "data-round-button": "round-button"
24181
+ }, a), XNode.create("i", {
24182
+ class: `${icon} white`
24183
+ }), ...nodes);
24184
+ }
24185
+ return XNode.create("button", Object.assign({
24186
+ "data-color": "white",
24187
+ "data-round-button": "round-button"
24188
+ }, a), ...nodes);
24189
+ }
24190
+ _export("default", RoundButton);
24191
+ return {
24192
+ setters: [function (_tslib) {
24193
+ __rest = _tslib.__rest;
24194
+ }, function (_webAtomsCoreDistCoreXNode) {
24195
+ XNode = _webAtomsCoreDistCoreXNode.default;
24196
+ }, function (_webAtomsCoreDistStyleStyled) {
24197
+ styled = _webAtomsCoreDistStyleStyled.default;
24198
+ }],
24199
+ execute: function () {
24200
+ styled.css`
24201
+ border-radius: 9999px;
24202
+ height: 70px;
24203
+ width: 70px;
24204
+ min-height: 70px;
24205
+ text-align: center;
24206
+ align-self: center;
24207
+ border: none;
24208
+ background-color: var(--accent-color);
24209
+ color: var(--accent-text-color);
24210
+ font-weight: bold;
24211
+ flex-basis: auto;
24212
+ margin-left: auto;
24213
+ margin-right: auto;
24214
+ `.installGlobal("button[data-round-button=round-button]");
24215
+ }
24216
+ };
24217
+ });
24218
+ //# sourceMappingURL=RoundButton.js.map
24219
+
24220
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/buttons/RoundButton");
24221
+
24222
+ System.register(["tslib", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/XNode", "@web-atoms/date-time/dist/DateTime", "@web-atoms/web-controls/dist/mobile-app/BottomPopup", "./WebRTCService", "@web-atoms/core/dist/style/styled", "../buttons/RoundButton", "../../../services/files/LocalFileService"], function (_export, _context) {
24223
+ "use strict";
24224
+
24225
+ var __awaiter, Bind, XNode, DateTime, BottomPopup, WebRTCService, styled, RoundButton, LocalFileService, AudioRecorder, css;
24226
+ _export("default", void 0);
24227
+ return {
24228
+ setters: [function (_tslib) {
24229
+ __awaiter = _tslib.__awaiter;
24230
+ }, function (_webAtomsCoreDistCoreBind) {
24231
+ Bind = _webAtomsCoreDistCoreBind.default;
24232
+ }, function (_webAtomsCoreDistCoreXNode) {
24233
+ XNode = _webAtomsCoreDistCoreXNode.default;
24234
+ }, function (_webAtomsDateTimeDistDateTime) {
24235
+ DateTime = _webAtomsDateTimeDistDateTime.default;
24236
+ }, function (_webAtomsWebControlsDistMobileAppBottomPopup) {
24237
+ BottomPopup = _webAtomsWebControlsDistMobileAppBottomPopup.default;
24238
+ }, function (_WebRTCService) {
24239
+ WebRTCService = _WebRTCService.default;
24240
+ }, function (_webAtomsCoreDistStyleStyled) {
24241
+ styled = _webAtomsCoreDistStyleStyled.default;
24242
+ }, function (_buttonsRoundButton) {
24243
+ RoundButton = _buttonsRoundButton.default;
24244
+ }, function (_servicesFilesLocalFileService) {
24245
+ LocalFileService = _servicesFilesLocalFileService.default;
24246
+ }],
24247
+ execute: function () {
24248
+ css = styled.css`
24249
+
24250
+ position: absolute;
24251
+ left: 0px;
24252
+ right: 0px;
24253
+ bottom: 0px;
24254
+ padding-top: 50px;
24255
+ padding-bottom: 100px;
24256
+ flex-direction: column;
24257
+ align-items: center;
24258
+ justify-content: center;
24259
+ gap: 4px;
24260
+ display: flex;
24261
+ `.installLocal();
24262
+ _export("default", AudioRecorder = class AudioRecorder extends BottomPopup {
24263
+ create() {
24264
+ this.renderer = XNode.create("div", {
24265
+ class: css
24266
+ }, XNode.create("div", {
24267
+ text: "Tap mic when ready"
24268
+ }), XNode.create(RoundButton, {
24269
+ icon: "fa-solid fa-microphone-lines fa-xl",
24270
+ "event-click": () => this.startRecording()
24271
+ }));
24272
+ }
24273
+ startRecording() {
24274
+ return __awaiter(this, void 0, void 0, function* () {
24275
+ this.element.dataset.clickEvent = "none";
24276
+ if (location.protocol !== "https:") {
24277
+ this.cancel(new Error("Recording only supported in Secure URLs"));
24278
+ return;
24279
+ }
24280
+ this.recorder = yield WebRTCService.startAudioSession();
24281
+ this.renderer = XNode.create("div", {
24282
+ class: css
24283
+ }, XNode.create("div", {
24284
+ "data-background-color": "white",
24285
+ "data-border-radius": "full",
24286
+ "data-layout": "vertical-flex-center-items"
24287
+ }, XNode.create("div", {
24288
+ text: Bind.oneWay(() => this.recorder.duration.toString())
24289
+ }), XNode.create(RoundButton, {
24290
+ icon: "fa-solid fa-stop fa-xl",
24291
+ "event-click": () => this.recorder.stop()
24292
+ })));
24293
+ const blob = yield this.recorder.start();
24294
+ this.element.dataset.clickEvent = "none";
24295
+ const url = URL.createObjectURL(blob);
24296
+ this.registerDisposable({
24297
+ dispose: () => {
24298
+ URL.revokeObjectURL(url);
24299
+ }
24300
+ });
24301
+ this.renderer = XNode.create("div", {
24302
+ class: css
24303
+ }, XNode.create("audio", {
24304
+ src: url,
24305
+ controls: true
24306
+ }), XNode.create("div", {
24307
+ "data-layout": "row"
24308
+ }, XNode.create(RoundButton, {
24309
+ icon: "button fa-solid fa-inbox-out fa-2xl",
24310
+ "event-click": () => this.uploadAudio(blob)
24311
+ }), XNode.create(RoundButton, {
24312
+ icon: "button fa-solid fa-circle-xmark fa-2xl",
24313
+ "event-click": () => this.cancel()
24314
+ })));
24315
+ });
24316
+ }
24317
+ uploadAudio(blob) {
24318
+ return __awaiter(this, void 0, void 0, function* () {
24319
+ const uploadService = this.app.resolve(LocalFileService);
24320
+ const dt = DateTime.now;
24321
+ const fileName = `${dt.year}-${dt.month + 1}-${dt.day}.mp4`;
24322
+ this.renderer = XNode.create("div", {
24323
+ class: css
24324
+ }, XNode.create("div", null, "Uploading... ", XNode.create("i", {
24325
+ class: "fa-solid fa-spinner fa-spin"
24326
+ }), " "));
24327
+ const file = yield uploadService.uploadFile(new File([blob], fileName, {
24328
+ type: blob.type
24329
+ }), {});
24330
+ this.close(file);
24331
+ });
24332
+ }
24333
+ });
24334
+ }
24335
+ };
24336
+ });
24337
+ //# sourceMappingURL=AudioRecorder.js.map
24338
+
24339
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/audio/AudioRecorder");
24340
+
24341
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/controls/AtomControl", "../../../model/model", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/view-model/Action", "../../../common/controls/audio/AudioRecorder", "./service/ConversationService", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/core/AtomBinder"], function (_export, _context) {
24342
+ "use strict";
24343
+
24344
+ var __awaiter, __decorate, __metadata, XNode, styled, AtomControl, AppFile, Email, Bind, Action, AudioRecorder, ConversationService, AtomRepeater, InjectProperty, AtomBinder, MiniComposeBox, css;
24345
+ _export("default", void 0);
24346
+ return {
24347
+ setters: [function (_tslib) {
24348
+ __awaiter = _tslib.__awaiter;
24349
+ __decorate = _tslib.__decorate;
24350
+ __metadata = _tslib.__metadata;
23687
24351
  }, function (_webAtomsCoreDistCoreXNode) {
23688
24352
  XNode = _webAtomsCoreDistCoreXNode.default;
23689
24353
  }, function (_webAtomsCoreDistStyleStyled) {
23690
24354
  styled = _webAtomsCoreDistStyleStyled.default;
23691
24355
  }, function (_webAtomsCoreDistWebControlsAtomControl) {
23692
24356
  AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
24357
+ }, function (_modelModel) {
24358
+ AppFile = _modelModel.AppFile;
24359
+ Email = _modelModel.Email;
23693
24360
  }, function (_webAtomsCoreDistCoreBind) {
23694
24361
  Bind = _webAtomsCoreDistCoreBind.default;
24362
+ }, function (_webAtomsCoreDistViewModelAction) {
24363
+ Action = _webAtomsCoreDistViewModelAction.default;
24364
+ }, function (_commonControlsAudioAudioRecorder) {
24365
+ AudioRecorder = _commonControlsAudioAudioRecorder.default;
24366
+ }, function (_serviceConversationService) {
24367
+ ConversationService = _serviceConversationService.default;
24368
+ }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
24369
+ AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
24370
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
24371
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
24372
+ }, function (_webAtomsCoreDistCoreAtomBinder) {
24373
+ AtomBinder = _webAtomsCoreDistCoreAtomBinder.AtomBinder;
23695
24374
  }],
23696
24375
  execute: function () {
23697
24376
  css = styled.css`
@@ -23715,8 +24394,9 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
23715
24394
  _export("default", MiniComposeBox = class MiniComposeBox extends AtomControl {
23716
24395
  constructor(app, e) {
23717
24396
  super(app, e);
23718
- this.mailbox = null;
23719
- this.message = "";
24397
+ this.mailboxContact = null;
24398
+ this.draft = null;
24399
+ this.typedMessage = "";
23720
24400
  this.element.className = css;
23721
24401
  this.app.runAsync(() => this.init());
23722
24402
  }
@@ -23724,14 +24404,91 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
23724
24404
  return __awaiter(this, void 0, void 0, function* () {
23725
24405
  this.render(XNode.create("div", null, XNode.create("textarea", {
23726
24406
  "data-element": "editor",
23727
- value: Bind.twoWaysImmediate(() => this.message)
23728
- }), XNode.create("button", {
24407
+ value: Bind.twoWaysImmediate(() => this.typedMessage)
24408
+ }), XNode.create("i", {
24409
+ "data-element": "send",
24410
+ class: "fa-solid fa-microphone-lines mic",
24411
+ "event-click": () => this.sendAudioMessage(),
24412
+ "style-display": Bind.oneWay(() => !this.typedMessage)
24413
+ }), XNode.create("i", {
23729
24414
  "data-element": "send",
23730
- class: "fas fa-send"
24415
+ class: "fa-solid fa-angle-double-right send",
24416
+ "style-display": Bind.oneWay(() => !!this.typedMessage),
24417
+ "event-click": () => this.sendMessage()
24418
+ }), XNode.create(AtomRepeater, {
24419
+ items: Bind.oneWay(() => {
24420
+ var _a;
24421
+ return (_a = this.draft) === null || _a === void 0 ? void 0 : _a.attachments;
24422
+ }),
24423
+ "data-layout": "flex-wrap-padding",
24424
+ itemRenderer: item => XNode.create("div", {
24425
+ "data-layout": "row"
24426
+ }, XNode.create("label", {
24427
+ text: item.name
24428
+ }))
23731
24429
  })));
23732
24430
  });
23733
24431
  }
24432
+ onChanged() {
24433
+ var _a;
24434
+ return __awaiter(this, void 0, void 0, function* () {
24435
+ if (!this.typedMessage) {
24436
+ return;
24437
+ }
24438
+ (_a = this.draft) !== null && _a !== void 0 ? _a : this.draft = Email.create({
24439
+ attachments: []
24440
+ });
24441
+ this.draft.mdBody = this.typedMessage;
24442
+ yield this.save();
24443
+ });
24444
+ }
24445
+ sendMessage() {
24446
+ throw new Error("Method not implemented.");
24447
+ }
24448
+ sendAudioMessage() {
24449
+ var _a;
24450
+ return __awaiter(this, void 0, void 0, function* () {
24451
+ const uploadedFile = yield AudioRecorder.show();
24452
+ (_a = this.draft) !== null && _a !== void 0 ? _a : this.draft = Email.create({
24453
+ attachments: []
24454
+ });
24455
+ this.draft.mdBody = this.typedMessage;
24456
+ this.addFile(uploadedFile);
24457
+ yield this.save();
24458
+ });
24459
+ }
24460
+ addFile({
24461
+ appFileID,
24462
+ url,
24463
+ file
24464
+ }) {
24465
+ var _a;
24466
+ var _b;
24467
+ (_a = (_b = this.draft).attachments) !== null && _a !== void 0 ? _a : _b.attachments = [];
24468
+ AtomBinder.refreshValue(this, "draft");
24469
+ this.draft.attachments.add(AppFile.create({
24470
+ appFileID,
24471
+ contentType: file.type,
24472
+ name: file.name,
24473
+ contentID: appFileID.toString(36),
24474
+ url
24475
+ }));
24476
+ }
24477
+ save() {
24478
+ return __awaiter(this, void 0, void 0, function* () {
24479
+ this.draft = yield this.conversationService.draft(Object.assign(Object.assign({}, this.mailboxContact), {
24480
+ email: this.draft
24481
+ }), true);
24482
+ });
24483
+ }
23734
24484
  });
24485
+ __decorate([InjectProperty, __metadata("design:type", ConversationService)], MiniComposeBox.prototype, "conversationService", void 0);
24486
+ __decorate([Action({
24487
+ onEvent: "input",
24488
+ defer: 500,
24489
+ blockMultipleExecution: true
24490
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], MiniComposeBox.prototype, "onChanged", null);
24491
+ __decorate([Action({}), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], MiniComposeBox.prototype, "sendAudioMessage", null);
23735
24492
  }
23736
24493
  };
23737
24494
  });
@@ -23846,6 +24603,7 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
23846
24603
  constructor() {
23847
24604
  super(...arguments);
23848
24605
  this.mails = [];
24606
+ this.draft = null;
23849
24607
  this.search = "";
23850
24608
  this.version = 1;
23851
24609
  }
@@ -23951,7 +24709,11 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
23951
24709
  icon: "fas fa-ban",
23952
24710
  label: "Block Sender"
23953
24711
  })));
23954
- this.footerRenderer = () => XNode.create(MiniComposeBox, null);
24712
+ this.draft = yield this.conversationService.getDraft(this.parameters);
24713
+ this.footerRenderer = () => XNode.create(MiniComposeBox, {
24714
+ mailboxContact: this.parameters,
24715
+ draft: this.draft
24716
+ });
23955
24717
  });
23956
24718
  }
23957
24719
  onClick(a, e) {
@@ -24002,6 +24764,7 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
24002
24764
  });
24003
24765
  }
24004
24766
  mailOptions(thread, ce) {
24767
+ var _a;
24005
24768
  return __awaiter(this, void 0, void 0, function* () {
24006
24769
  void InlinePopupControl.showPopup(ce.target, XNode.create("div", {
24007
24770
  "data-click-event": "none",
@@ -24018,6 +24781,10 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
24018
24781
  "data-click-event": "open-logs",
24019
24782
  icon: "fa-regular fa-clock-rotate-left",
24020
24783
  label: "Logs"
24784
+ }), ((_a = thread.email) === null || _a === void 0 ? void 0 : _a.status) === "draft" && XNode.create(MenuItem, {
24785
+ "data-click-event": "delete-draft",
24786
+ icon: "fa-regular fa-clock-rotate-left",
24787
+ label: "Delete Draft"
24021
24788
  })));
24022
24789
  });
24023
24790
  }
@@ -35765,23 +36532,24 @@ html, body {
35765
36532
  }
35766
36533
 
35767
36534
  * {
35768
- scrollbar-width: 5px;
36535
+ scrollbar-width: thin;
35769
36536
  scrollbar-color: var(--accent-color) white;
36537
+ }
35770
36538
 
35771
- &::-webkit-scrollbar {
35772
- width: 5px;
35773
- }
35774
- &::-webkit-scrollbar-track {
36539
+
36540
+ ::-webkit-scrollbar {
36541
+ width: 5px;
36542
+ }
36543
+ ::-webkit-scrollbar-track {
35775
36544
  background: white;
35776
- }
35777
- &::-webkit-scrollbar-thumb {
35778
- background-color: white;
35779
- border-radius: 20px;
35780
- border: 3px solid var(--accent-color);
35781
- }
36545
+ border-radius: 20px;
36546
+ }
36547
+ ::-webkit-scrollbar-thumb {
36548
+ background: var(--accent-color);
36549
+ border-radius: 20px;
35782
36550
  }
35783
36551
 
35784
- body {
36552
+ body {
35785
36553
  font-family: trebuchet ms, "Source Sans Pro";
35786
36554
  font-size: 16px;
35787
36555
  justify-content: stretch;