@social-mail/social-mail-client 1.2.3 → 1.2.5

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 (48) hide show
  1. package/dist/admin/AdminAppIndex.pack.js +803 -32
  2. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  3. package/dist/admin/AdminAppIndex.pack.min.js +150 -20
  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/services/files/LocalFileService.d.ts +2 -0
  18. package/dist/services/files/LocalFileService.d.ts.map +1 -1
  19. package/dist/services/files/LocalFileService.js +32 -8
  20. package/dist/services/files/LocalFileService.js.map +1 -1
  21. package/dist/style/GlobalStyle.js +13 -12
  22. package/dist/style/GlobalStyle.js.map +1 -1
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/dist/web/AppIndex.pack.js +803 -32
  25. package/dist/web/AppIndex.pack.js.map +1 -1
  26. package/dist/web/AppIndex.pack.min.js +150 -20
  27. package/dist/web/AppIndex.pack.min.js.map +1 -1
  28. package/dist/web/page/mails/ConversationPage.d.ts +1 -0
  29. package/dist/web/page/mails/ConversationPage.d.ts.map +1 -1
  30. package/dist/web/page/mails/ConversationPage.js +11 -1
  31. package/dist/web/page/mails/ConversationPage.js.map +1 -1
  32. package/dist/web/page/mails/MiniComposeBox.d.ts +10 -3
  33. package/dist/web/page/mails/MiniComposeBox.d.ts.map +1 -1
  34. package/dist/web/page/mails/MiniComposeBox.js +102 -7
  35. package/dist/web/page/mails/MiniComposeBox.js.map +1 -1
  36. package/dist/web/page/mails/service/ConversationService.d.ts +3 -1
  37. package/dist/web/page/mails/service/ConversationService.d.ts.map +1 -1
  38. package/dist/web/page/mails/service/ConversationService.js +62 -3
  39. package/dist/web/page/mails/service/ConversationService.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/common/controls/audio/AudioRecorder.tsx +102 -0
  42. package/src/common/controls/audio/WebRTCService.ts +61 -0
  43. package/src/common/controls/buttons/RoundButton.tsx +38 -0
  44. package/src/services/files/LocalFileService.tsx +35 -11
  45. package/src/style/GlobalStyle.ts +13 -12
  46. package/src/web/page/mails/ConversationPage.tsx +12 -1
  47. package/src/web/page/mails/MiniComposeBox.tsx +75 -6
  48. 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
  });
@@ -21213,7 +21272,7 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
21213
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");
21214
21273
  styled.css`
21215
21274
  display: inline-grid;
21216
- grid-template-rows: auto auto;
21275
+ grid-template-rows: auto auto auto;
21217
21276
 
21218
21277
  & > [data-element=file-name] {
21219
21278
  grid-row: 1;
@@ -21222,10 +21281,14 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
21222
21281
  text-overflow: ellipsis;
21223
21282
  }
21224
21283
 
21225
- & > [data-element=progress] {
21284
+ & > progress {
21226
21285
  grid-row: 2;
21227
21286
  width: 100%;
21228
21287
  }
21288
+ & > [data-element=error] {
21289
+ grid-row: 3;
21290
+ width: 100%;
21291
+ }
21229
21292
 
21230
21293
  `.installGlobal("[data-attachment-file]");
21231
21294
  LocalFileService = class LocalFileService extends TaskManager {
@@ -21348,20 +21411,36 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
21348
21411
  const upload = {
21349
21412
  total: 0,
21350
21413
  tasks,
21351
- progress: 0
21414
+ progress: 0,
21415
+ error: ""
21352
21416
  };
21353
21417
  for (const file of files) {
21354
21418
  upload.total += file.size;
21355
21419
  const uploadFile = {
21356
21420
  name: file.name,
21421
+ error: "",
21357
21422
  progress: 0
21358
21423
  };
21359
21424
  uploadFile.promise = this.run(() => __awaiter(this, void 0, void 0, function* () {
21360
- uploadFile.progress = 0.01;
21361
- const r = yield this.uploadFile(file, extra, ct, n => uploadFile.progress = n);
21362
- upload.progress += r.file.size;
21363
- setTimeout(() => tasks.remove(uploadFile), 500);
21364
- return r;
21425
+ var _a, _b;
21426
+ let lastError;
21427
+ for (let i = 0; i < 3; i++) {
21428
+ try {
21429
+ uploadFile.progress = 0.01;
21430
+ const r = yield this.uploadFile(file, extra, ct, n => uploadFile.progress = n);
21431
+ upload.progress += r.file.size;
21432
+ setTimeout(() => tasks.remove(uploadFile), 500);
21433
+ upload.error = "";
21434
+ lastError = null;
21435
+ return r;
21436
+ } catch (error) {
21437
+ lastError = `${(_a = file.webkitRelativePath) !== null && _a !== void 0 ? _a : ""}/${file.name} failed to upload.\n${(_b = error.stack) !== null && _b !== void 0 ? _b : error}`;
21438
+ uploadFile.error = lastError;
21439
+ }
21440
+ }
21441
+ if (lastError) {
21442
+ upload.error += "\n" + lastError;
21443
+ }
21365
21444
  }));
21366
21445
  tasks.push(uploadFile);
21367
21446
  }
@@ -21415,6 +21494,10 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
21415
21494
  min: 0,
21416
21495
  max: 1,
21417
21496
  value: Bind.source(file, x => x.source.progress)
21497
+ }), XNode.create("div", {
21498
+ "data-element": "error",
21499
+ "data-color": "red",
21500
+ text: Bind.source(file, x => x.source.error)
21418
21501
  }))
21419
21502
  })));
21420
21503
  try {
@@ -23697,22 +23780,621 @@ System.register(["@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/
23697
23780
 
23698
23781
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/file-preview/FilePreview");
23699
23782
 
23700
- 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) {
23783
+ System.register(["@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/controls/AtomControl"], function (_export, _context) {
23784
+ "use strict";
23785
+
23786
+ var styled, AtomControl, Animations;
23787
+ _export("default", void 0);
23788
+ return {
23789
+ setters: [function (_webAtomsCoreDistStyleStyled) {
23790
+ styled = _webAtomsCoreDistStyleStyled.default;
23791
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
23792
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
23793
+ }],
23794
+ execute: function () {
23795
+ styled.css`
23796
+ transition: all 0.5s ease-out;
23797
+
23798
+ &:not([data-animation-state]) {
23799
+ display: none;
23800
+ }
23801
+
23802
+ &[data-animation-state=down] {
23803
+ transform: translate(0,100%);
23804
+ }
23805
+
23806
+ &[data-animation-state=normal] {
23807
+ transform: translate(0,0);
23808
+ }
23809
+ `.installGlobal("[data-animate-slide=from-bottom]");
23810
+ styled.css`
23811
+ transition: all 0.5s ease-out;
23812
+
23813
+ &:not([data-animation-state]) {
23814
+ display: none;
23815
+ }
23816
+
23817
+ &[data-animation-state=up] {
23818
+ transform: translate(0,-100%);
23819
+ }
23820
+
23821
+ &[data-animation-state=normal] {
23822
+ transform: translate(0,0);
23823
+ }
23824
+ `.installGlobal("[data-animate-slide=from-top]");
23825
+ _export("default", Animations = class Animations {});
23826
+ Animations.slideFromBottom = AtomControl.registerProperty("animate", "bottom-slide", (ctrl, e, v) => {
23827
+ e.dataset.animateSlide = "from-bottom";
23828
+ if (v) {
23829
+ e.dataset.animationState = "down";
23830
+ setTimeout(() => {
23831
+ e.dataset.animationState = "normal";
23832
+ }, 10);
23833
+ return;
23834
+ }
23835
+ if (e.dataset.animationState === "normal") {
23836
+ e.dataset.animationState = "down";
23837
+ }
23838
+ setTimeout(() => {
23839
+ e.removeAttribute("data-animation-state");
23840
+ }, 600);
23841
+ });
23842
+ Animations.slideFromTop = AtomControl.registerProperty("animate", "top-slide", (ctrl, e, v) => {
23843
+ e.dataset.animateSlide = "from-top";
23844
+ if (v) {
23845
+ e.dataset.animationState = "up";
23846
+ setTimeout(() => {
23847
+ e.dataset.animationState = "normal";
23848
+ }, 10);
23849
+ return;
23850
+ }
23851
+ if (e.dataset.animationState === "normal") {
23852
+ e.dataset.animationState = "up";
23853
+ }
23854
+ setTimeout(() => {
23855
+ e.removeAttribute("data-animation-state");
23856
+ }, 600);
23857
+ });
23858
+ }
23859
+ };
23860
+ });
23861
+ //# sourceMappingURL=Animations.js.map
23862
+
23863
+ AmdLoader.instance.setup("@web-atoms/web-controls/dist/animations/Animations");
23864
+
23865
+ 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) {
23866
+ "use strict";
23867
+
23868
+ var __awaiter, __decorate, __metadata, BindableProperty, CancelToken, XNode, AtomControl, ChildEnumerator, PopupService, MobileApp, styled, BottomPopup;
23869
+ _export("default", void 0);
23870
+ return {
23871
+ setters: [function (_tslib) {
23872
+ __awaiter = _tslib.__awaiter;
23873
+ __decorate = _tslib.__decorate;
23874
+ __metadata = _tslib.__metadata;
23875
+ }, function (_webAtomsCoreDistCoreBindableProperty) {
23876
+ BindableProperty = _webAtomsCoreDistCoreBindableProperty.BindableProperty;
23877
+ }, function (_webAtomsCoreDistCoreTypes) {
23878
+ CancelToken = _webAtomsCoreDistCoreTypes.CancelToken;
23879
+ }, function (_webAtomsCoreDistCoreXNode) {
23880
+ XNode = _webAtomsCoreDistCoreXNode.default;
23881
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
23882
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
23883
+ }, function (_webAtomsCoreDistWebCoreAtomUI) {
23884
+ ChildEnumerator = _webAtomsCoreDistWebCoreAtomUI.ChildEnumerator;
23885
+ }, function (_webAtomsCoreDistWebServicesPopupService) {
23886
+ PopupService = _webAtomsCoreDistWebServicesPopupService.default;
23887
+ }, function (_animationsAnimations) {
23888
+ _export({});
23889
+ }, function (_MobileApp) {
23890
+ MobileApp = _MobileApp.default;
23891
+ }, function (_webAtomsCoreDistStyleStyled) {
23892
+ styled = _webAtomsCoreDistStyleStyled.default;
23893
+ }],
23894
+ execute: function () {
23895
+ styled.css`
23896
+ position: absolute;
23897
+ left: 0;
23898
+ top: 0;
23899
+ bottom: 0;
23900
+ right: 0;
23901
+ background-color: rgba(0,0,0,0.3);
23902
+ z-index: 500;
23903
+ `.installGlobal("*[data-bottom-popup-container]");
23904
+ styled.css`
23905
+ position: absolute;
23906
+ left: 0px;
23907
+ right: 0px;
23908
+ bottom: 0px;
23909
+ margin-left: 2px;
23910
+ margin-right: 2px;
23911
+ border-top-left-radius: 5px;
23912
+ border-top-right-radius: 5px;
23913
+ display: grid;
23914
+ grid-template-columns: auto 1fr auto;
23915
+ grid-template-rows: auto auto auto;
23916
+ background-color: #ffffff;
23917
+
23918
+ & > [data-element=bar] {
23919
+ border-top-left-radius: 5px;
23920
+ border-top-right-radius: 5px;
23921
+ grid-row: 1;
23922
+ grid-column: 1 / span 3;
23923
+ background-color: #d3d3d3;
23924
+ z-index: 10;
23925
+ }
23926
+
23927
+ & > [data-element=icon] {
23928
+ grid-row: 1;
23929
+ grid-column: 1;
23930
+ padding: 5px;
23931
+ align-self: center;
23932
+ margin-right: 5px;
23933
+ z-index: 11;
23934
+ }
23935
+
23936
+ & > [data-element=close] {
23937
+ grid-row: 1;
23938
+ grid-column: 3;
23939
+ padding: 5px;
23940
+ margin-left: 5px;
23941
+ align-self: center;
23942
+ z-index: 11;
23943
+ }
23944
+
23945
+ & > [data-element=title] {
23946
+ grid-row: 1;
23947
+ grid-column: 2;
23948
+ padding: 5px;
23949
+ z-index: 11;
23950
+ }
23951
+
23952
+ & > [data-element=content] {
23953
+ padding: 5px;
23954
+ grid-row: 2;
23955
+ grid-column: 1 / span 3;
23956
+ z-index: 11;
23957
+ }
23958
+
23959
+ & > [data-element=footer] {
23960
+ grid-row: 3;
23961
+ grid-column: 1 / span 3;
23962
+ margin-top: 5px;
23963
+ padding: 5px;
23964
+ z-index: 11;
23965
+ }
23966
+ `.installGlobal("*[data-bottom-popup]");
23967
+ _export("default", BottomPopup = class BottomPopup extends AtomControl {
23968
+ static showModal(options) {
23969
+ return this.show(options);
23970
+ }
23971
+ static show({
23972
+ parameters,
23973
+ cancelToken
23974
+ } = {}) {
23975
+ var _a;
23976
+ return __awaiter(this, void 0, void 0, function* () {
23977
+ const last = PopupService.lastTarget;
23978
+ const current = MobileApp.current;
23979
+ const popup = new this(current.app);
23980
+ popup.parameters = parameters;
23981
+ popup.bindEvent(window, "backButton", ce => {
23982
+ ce.preventDefault();
23983
+ return popup.cancelRequested();
23984
+ }, void 0, true);
23985
+ popup.bindEvent(popup.element, "cancelPopup", () => popup.cancelRequested());
23986
+ if (popup.modal) {
23987
+ const container = document.createElement("div");
23988
+ container.setAttribute("data-bottom-popup-container", "1");
23989
+ popup.bindEvent(container, "click", e => {
23990
+ if (e.target === e.currentTarget) {
23991
+ e.preventDefault();
23992
+ e.stopImmediatePropagation();
23993
+ e.stopPropagation();
23994
+ popup.element.dispatchEvent(new CustomEvent("cancelPopup"));
23995
+ }
23996
+ });
23997
+ popup.registerDisposable({
23998
+ dispose: () => {
23999
+ container.remove();
24000
+ }
24001
+ });
24002
+ container.append(popup.element);
24003
+ current.element.append(container);
24004
+ } else {
24005
+ current.element.append(popup.element);
24006
+ }
24007
+ if (cancelToken) {
24008
+ cancelToken.registerForCancel(popup.cancel);
24009
+ }
24010
+ const result = new Promise((resolve, reject) => {
24011
+ let disposed = false;
24012
+ popup.close = r => {
24013
+ if (disposed) {
24014
+ return;
24015
+ }
24016
+ disposed = true;
24017
+ popup.dispose();
24018
+ resolve(r);
24019
+ PopupService.lastTarget = last;
24020
+ };
24021
+ popup.cancel = (reason = "cancelled") => {
24022
+ if (disposed) {
24023
+ return;
24024
+ }
24025
+ disposed = true;
24026
+ popup.dispose();
24027
+ reject(reason);
24028
+ PopupService.lastTarget = last;
24029
+ };
24030
+ });
24031
+ const pr = (_a = popup.init) === null || _a === void 0 ? void 0 : _a.call(popup);
24032
+ if (pr) {
24033
+ try {
24034
+ yield pr;
24035
+ } catch (e) {
24036
+ popup.cancel(e);
24037
+ }
24038
+ }
24039
+ return yield result;
24040
+ });
24041
+ }
24042
+ dispose(e) {
24043
+ if (e) {
24044
+ super.dispose(e);
24045
+ return;
24046
+ }
24047
+ const element = this.element;
24048
+ this.element.setAttribute("data-animation-state", "down");
24049
+ setTimeout(() => {
24050
+ super.dispose(e);
24051
+ element.remove();
24052
+ }, 500);
24053
+ }
24054
+ init() {
24055
+ return __awaiter(this, void 0, void 0, function* () {});
24056
+ }
24057
+ preCreate() {
24058
+ this.modal = true;
24059
+ const element = this.element;
24060
+ element.dataset.bottomPopup = "bottom-popup";
24061
+ this.animate = true;
24062
+ super.preCreate();
24063
+ this.barRenderer = () => XNode.create("div", null);
24064
+ this.popupCancelToken = new CancelToken();
24065
+ this.registerDisposable({
24066
+ dispose: () => {
24067
+ this.popupCancelToken.cancel();
24068
+ }
24069
+ });
24070
+ this.bindEvent(this.element, "closeClick", () => this.cancelRequested());
24071
+ }
24072
+ render(node, e, creator) {
24073
+ var _a, _b;
24074
+ this.render = super.render;
24075
+ const na = (_a = node.attributes) !== null && _a !== void 0 ? _a : node.attributes = {};
24076
+ na["data-element"] = "content";
24077
+ (_b = na["data-click-event"]) !== null && _b !== void 0 ? _b : na["data-click-event"] = "popupClick";
24078
+ this.render(XNode.create("div", null, node));
24079
+ this.updateElement("title");
24080
+ this.updateElement("bar");
24081
+ this.updateElement("icon");
24082
+ this.updateElement("close");
24083
+ this.updateElement("footer");
24084
+ if (!this.animate) {
24085
+ return;
24086
+ }
24087
+ this.element.setAttribute("data-animate-slide", this.animate ? "from-bottom" : "normal");
24088
+ this.element.setAttribute("data-animation-state", "down");
24089
+ this.animate = false;
24090
+ setTimeout(() => {
24091
+ this.element.setAttribute("data-animation-state", "normal");
24092
+ }, 10);
24093
+ }
24094
+ cancelRequested() {
24095
+ return this.cancel();
24096
+ }
24097
+ updateElement(name, property = name + "Renderer") {
24098
+ var _a, _b;
24099
+ const r = this[property];
24100
+ const child = ChildEnumerator.find(this.element, e => e.dataset.element === name);
24101
+ if (child) {
24102
+ this.dispose(child);
24103
+ child.remove();
24104
+ }
24105
+ const node = r === null || r === void 0 ? void 0 : r();
24106
+ if (!node) {
24107
+ return;
24108
+ }
24109
+ const na = (_a = node.attributes) !== null && _a !== void 0 ? _a : node.attributes = {};
24110
+ na["data-element"] = name;
24111
+ (_b = na["data-click-event"]) !== null && _b !== void 0 ? _b : na["data-click-event"] = name + "-click";
24112
+ this.render(XNode.create("div", null, node));
24113
+ }
24114
+ });
24115
+ __decorate([BindableProperty, __metadata("design:type", Function)], BottomPopup.prototype, "titleRenderer", void 0);
24116
+ __decorate([BindableProperty, __metadata("design:type", Function)], BottomPopup.prototype, "headerRenderer", void 0);
24117
+ __decorate([BindableProperty, __metadata("design:type", Function)], BottomPopup.prototype, "closeRenderer", void 0);
24118
+ __decorate([BindableProperty, __metadata("design:type", Function)], BottomPopup.prototype, "footerRenderer", void 0);
24119
+ __decorate([BindableProperty, __metadata("design:type", Function)], BottomPopup.prototype, "barRenderer", void 0);
24120
+ delete BottomPopup.prototype.init;
24121
+ }
24122
+ };
24123
+ });
24124
+ //# sourceMappingURL=BottomPopup.js.map
24125
+
24126
+ AmdLoader.instance.setup("@web-atoms/web-controls/dist/mobile-app/BottomPopup");
24127
+
24128
+ System.register(["tslib", "@web-atoms/date-time/dist/TimeSpan"], function (_export, _context) {
24129
+ "use strict";
24130
+
24131
+ var __awaiter, TimeSpan, WebRecordingSession, WebRTCService;
24132
+ _export({
24133
+ WebRecordingSession: void 0,
24134
+ default: void 0
24135
+ });
24136
+ return {
24137
+ setters: [function (_tslib) {
24138
+ __awaiter = _tslib.__awaiter;
24139
+ }, function (_webAtomsDateTimeDistTimeSpan) {
24140
+ TimeSpan = _webAtomsDateTimeDistTimeSpan.default;
24141
+ }],
24142
+ execute: function () {
24143
+ _export("WebRecordingSession", WebRecordingSession = class WebRecordingSession {
24144
+ constructor(stream) {
24145
+ this.duration = TimeSpan.fromSeconds(0);
24146
+ this.recorder = new MediaRecorder(stream);
24147
+ }
24148
+ start(segments) {
24149
+ const buffer = [];
24150
+ return new Promise((resolve, reject) => {
24151
+ this.recorder.ondataavailable = be => {
24152
+ buffer.push(be.data);
24153
+ };
24154
+ const start = Date.now();
24155
+ const id = setInterval(() => {
24156
+ const seconds = Math.ceil((Date.now() - start) / 1000);
24157
+ this.duration = TimeSpan.fromSeconds(seconds);
24158
+ }, 1000);
24159
+ this.recorder.onerror = me => {
24160
+ clearInterval(id);
24161
+ reject(me.error);
24162
+ };
24163
+ this.recorder.onstop = () => {
24164
+ clearInterval(id);
24165
+ resolve(new Blob(buffer, {
24166
+ type: this.recorder.mimeType
24167
+ }));
24168
+ };
24169
+ this.recorder.start(segments);
24170
+ });
24171
+ }
24172
+ stop() {
24173
+ this.recorder.stop();
24174
+ }
24175
+ });
24176
+ _export("default", WebRTCService = class WebRTCService {
24177
+ static startAudioSession() {
24178
+ return __awaiter(this, void 0, void 0, function* () {
24179
+ return new WebRecordingSession(yield navigator.mediaDevices.getUserMedia({
24180
+ audio: true
24181
+ }));
24182
+ });
24183
+ }
24184
+ });
24185
+ }
24186
+ };
24187
+ });
24188
+ //# sourceMappingURL=WebRTCService.js.map
24189
+
24190
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/audio/WebRTCService");
24191
+
24192
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/styled"], function (_export, _context) {
24193
+ "use strict";
24194
+
24195
+ var __rest, XNode, styled;
24196
+ function RoundButton(_a, ...nodes) {
24197
+ var {
24198
+ icon
24199
+ } = _a,
24200
+ a = __rest(_a, ["icon"]);
24201
+ if (icon) {
24202
+ return XNode.create("button", Object.assign({
24203
+ "data-color": "white",
24204
+ "data-round-button": "round-button"
24205
+ }, a), XNode.create("i", {
24206
+ class: `${icon} white`
24207
+ }), ...nodes);
24208
+ }
24209
+ return XNode.create("button", Object.assign({
24210
+ "data-color": "white",
24211
+ "data-round-button": "round-button"
24212
+ }, a), ...nodes);
24213
+ }
24214
+ _export("default", RoundButton);
24215
+ return {
24216
+ setters: [function (_tslib) {
24217
+ __rest = _tslib.__rest;
24218
+ }, function (_webAtomsCoreDistCoreXNode) {
24219
+ XNode = _webAtomsCoreDistCoreXNode.default;
24220
+ }, function (_webAtomsCoreDistStyleStyled) {
24221
+ styled = _webAtomsCoreDistStyleStyled.default;
24222
+ }],
24223
+ execute: function () {
24224
+ styled.css`
24225
+ border-radius: 9999px;
24226
+ height: 70px;
24227
+ width: 70px;
24228
+ min-height: 70px;
24229
+ text-align: center;
24230
+ align-self: center;
24231
+ border: none;
24232
+ background-color: var(--accent-color);
24233
+ color: var(--accent-text-color);
24234
+ font-weight: bold;
24235
+ flex-basis: auto;
24236
+ margin-left: auto;
24237
+ margin-right: auto;
24238
+ `.installGlobal("button[data-round-button=round-button]");
24239
+ }
24240
+ };
24241
+ });
24242
+ //# sourceMappingURL=RoundButton.js.map
24243
+
24244
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/buttons/RoundButton");
24245
+
24246
+ 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) {
24247
+ "use strict";
24248
+
24249
+ var __awaiter, Bind, XNode, DateTime, BottomPopup, WebRTCService, styled, RoundButton, LocalFileService, AudioRecorder, css;
24250
+ _export("default", void 0);
24251
+ return {
24252
+ setters: [function (_tslib) {
24253
+ __awaiter = _tslib.__awaiter;
24254
+ }, function (_webAtomsCoreDistCoreBind) {
24255
+ Bind = _webAtomsCoreDistCoreBind.default;
24256
+ }, function (_webAtomsCoreDistCoreXNode) {
24257
+ XNode = _webAtomsCoreDistCoreXNode.default;
24258
+ }, function (_webAtomsDateTimeDistDateTime) {
24259
+ DateTime = _webAtomsDateTimeDistDateTime.default;
24260
+ }, function (_webAtomsWebControlsDistMobileAppBottomPopup) {
24261
+ BottomPopup = _webAtomsWebControlsDistMobileAppBottomPopup.default;
24262
+ }, function (_WebRTCService) {
24263
+ WebRTCService = _WebRTCService.default;
24264
+ }, function (_webAtomsCoreDistStyleStyled) {
24265
+ styled = _webAtomsCoreDistStyleStyled.default;
24266
+ }, function (_buttonsRoundButton) {
24267
+ RoundButton = _buttonsRoundButton.default;
24268
+ }, function (_servicesFilesLocalFileService) {
24269
+ LocalFileService = _servicesFilesLocalFileService.default;
24270
+ }],
24271
+ execute: function () {
24272
+ css = styled.css`
24273
+
24274
+ position: absolute;
24275
+ left: 0px;
24276
+ right: 0px;
24277
+ bottom: 0px;
24278
+ padding-top: 50px;
24279
+ padding-bottom: 100px;
24280
+ flex-direction: column;
24281
+ align-items: center;
24282
+ justify-content: center;
24283
+ gap: 4px;
24284
+ display: flex;
24285
+ `.installLocal();
24286
+ _export("default", AudioRecorder = class AudioRecorder extends BottomPopup {
24287
+ create() {
24288
+ this.renderer = XNode.create("div", {
24289
+ class: css
24290
+ }, XNode.create("div", {
24291
+ text: "Tap mic when ready"
24292
+ }), XNode.create(RoundButton, {
24293
+ icon: "fa-solid fa-microphone-lines fa-xl",
24294
+ "event-click": () => this.startRecording()
24295
+ }));
24296
+ }
24297
+ startRecording() {
24298
+ return __awaiter(this, void 0, void 0, function* () {
24299
+ this.element.dataset.clickEvent = "none";
24300
+ if (location.protocol !== "https:") {
24301
+ this.cancel(new Error("Recording only supported in Secure URLs"));
24302
+ return;
24303
+ }
24304
+ this.recorder = yield WebRTCService.startAudioSession();
24305
+ this.renderer = XNode.create("div", {
24306
+ class: css
24307
+ }, XNode.create("div", {
24308
+ "data-background-color": "white",
24309
+ "data-border-radius": "full",
24310
+ "data-layout": "vertical-flex-center-items"
24311
+ }, XNode.create("div", {
24312
+ text: Bind.oneWay(() => this.recorder.duration.toString())
24313
+ }), XNode.create(RoundButton, {
24314
+ icon: "fa-solid fa-stop fa-xl",
24315
+ "event-click": () => this.recorder.stop()
24316
+ })));
24317
+ const blob = yield this.recorder.start();
24318
+ this.element.dataset.clickEvent = "none";
24319
+ const url = URL.createObjectURL(blob);
24320
+ this.registerDisposable({
24321
+ dispose: () => {
24322
+ URL.revokeObjectURL(url);
24323
+ }
24324
+ });
24325
+ this.renderer = XNode.create("div", {
24326
+ class: css
24327
+ }, XNode.create("audio", {
24328
+ src: url,
24329
+ controls: true
24330
+ }), XNode.create("div", {
24331
+ "data-layout": "row"
24332
+ }, XNode.create(RoundButton, {
24333
+ icon: "button fa-solid fa-inbox-out fa-2xl",
24334
+ "event-click": () => this.uploadAudio(blob)
24335
+ }), XNode.create(RoundButton, {
24336
+ icon: "button fa-solid fa-circle-xmark fa-2xl",
24337
+ "event-click": () => this.cancel()
24338
+ })));
24339
+ });
24340
+ }
24341
+ uploadAudio(blob) {
24342
+ return __awaiter(this, void 0, void 0, function* () {
24343
+ const uploadService = this.app.resolve(LocalFileService);
24344
+ const dt = DateTime.now;
24345
+ const fileName = `${dt.year}-${dt.month + 1}-${dt.day}.mp4`;
24346
+ this.renderer = XNode.create("div", {
24347
+ class: css
24348
+ }, XNode.create("div", null, "Uploading... ", XNode.create("i", {
24349
+ class: "fa-solid fa-spinner fa-spin"
24350
+ }), " "));
24351
+ const file = yield uploadService.uploadFile(new File([blob], fileName, {
24352
+ type: blob.type
24353
+ }), {});
24354
+ this.close(file);
24355
+ });
24356
+ }
24357
+ });
24358
+ }
24359
+ };
24360
+ });
24361
+ //# sourceMappingURL=AudioRecorder.js.map
24362
+
24363
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/audio/AudioRecorder");
24364
+
24365
+ 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) {
23701
24366
  "use strict";
23702
24367
 
23703
- var __awaiter, XNode, styled, AtomControl, Bind, MiniComposeBox, css;
24368
+ var __awaiter, __decorate, __metadata, XNode, styled, AtomControl, AppFile, Email, Bind, Action, AudioRecorder, ConversationService, AtomRepeater, InjectProperty, AtomBinder, MiniComposeBox, css;
23704
24369
  _export("default", void 0);
23705
24370
  return {
23706
24371
  setters: [function (_tslib) {
23707
24372
  __awaiter = _tslib.__awaiter;
24373
+ __decorate = _tslib.__decorate;
24374
+ __metadata = _tslib.__metadata;
23708
24375
  }, function (_webAtomsCoreDistCoreXNode) {
23709
24376
  XNode = _webAtomsCoreDistCoreXNode.default;
23710
24377
  }, function (_webAtomsCoreDistStyleStyled) {
23711
24378
  styled = _webAtomsCoreDistStyleStyled.default;
23712
24379
  }, function (_webAtomsCoreDistWebControlsAtomControl) {
23713
24380
  AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
24381
+ }, function (_modelModel) {
24382
+ AppFile = _modelModel.AppFile;
24383
+ Email = _modelModel.Email;
23714
24384
  }, function (_webAtomsCoreDistCoreBind) {
23715
24385
  Bind = _webAtomsCoreDistCoreBind.default;
24386
+ }, function (_webAtomsCoreDistViewModelAction) {
24387
+ Action = _webAtomsCoreDistViewModelAction.default;
24388
+ }, function (_commonControlsAudioAudioRecorder) {
24389
+ AudioRecorder = _commonControlsAudioAudioRecorder.default;
24390
+ }, function (_serviceConversationService) {
24391
+ ConversationService = _serviceConversationService.default;
24392
+ }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
24393
+ AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
24394
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
24395
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
24396
+ }, function (_webAtomsCoreDistCoreAtomBinder) {
24397
+ AtomBinder = _webAtomsCoreDistCoreAtomBinder.AtomBinder;
23716
24398
  }],
23717
24399
  execute: function () {
23718
24400
  css = styled.css`
@@ -23736,8 +24418,9 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
23736
24418
  _export("default", MiniComposeBox = class MiniComposeBox extends AtomControl {
23737
24419
  constructor(app, e) {
23738
24420
  super(app, e);
23739
- this.mailbox = null;
23740
- this.message = "";
24421
+ this.mailboxContact = null;
24422
+ this.draft = null;
24423
+ this.typedMessage = "";
23741
24424
  this.element.className = css;
23742
24425
  this.app.runAsync(() => this.init());
23743
24426
  }
@@ -23745,14 +24428,91 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
23745
24428
  return __awaiter(this, void 0, void 0, function* () {
23746
24429
  this.render(XNode.create("div", null, XNode.create("textarea", {
23747
24430
  "data-element": "editor",
23748
- value: Bind.twoWaysImmediate(() => this.message)
23749
- }), XNode.create("button", {
24431
+ value: Bind.twoWaysImmediate(() => this.typedMessage)
24432
+ }), XNode.create("i", {
24433
+ "data-element": "send",
24434
+ class: "fa-solid fa-microphone-lines mic",
24435
+ "event-click": () => this.sendAudioMessage(),
24436
+ "style-display": Bind.oneWay(() => !this.typedMessage)
24437
+ }), XNode.create("i", {
23750
24438
  "data-element": "send",
23751
- class: "fas fa-send"
24439
+ class: "fa-solid fa-angle-double-right send",
24440
+ "style-display": Bind.oneWay(() => !!this.typedMessage),
24441
+ "event-click": () => this.sendMessage()
24442
+ }), XNode.create(AtomRepeater, {
24443
+ items: Bind.oneWay(() => {
24444
+ var _a;
24445
+ return (_a = this.draft) === null || _a === void 0 ? void 0 : _a.attachments;
24446
+ }),
24447
+ "data-layout": "flex-wrap-padding",
24448
+ itemRenderer: item => XNode.create("div", {
24449
+ "data-layout": "row"
24450
+ }, XNode.create("label", {
24451
+ text: item.name
24452
+ }))
23752
24453
  })));
23753
24454
  });
23754
24455
  }
24456
+ onChanged() {
24457
+ var _a;
24458
+ return __awaiter(this, void 0, void 0, function* () {
24459
+ if (!this.typedMessage) {
24460
+ return;
24461
+ }
24462
+ (_a = this.draft) !== null && _a !== void 0 ? _a : this.draft = Email.create({
24463
+ attachments: []
24464
+ });
24465
+ this.draft.mdBody = this.typedMessage;
24466
+ yield this.save();
24467
+ });
24468
+ }
24469
+ sendMessage() {
24470
+ throw new Error("Method not implemented.");
24471
+ }
24472
+ sendAudioMessage() {
24473
+ var _a;
24474
+ return __awaiter(this, void 0, void 0, function* () {
24475
+ const uploadedFile = yield AudioRecorder.show();
24476
+ (_a = this.draft) !== null && _a !== void 0 ? _a : this.draft = Email.create({
24477
+ attachments: []
24478
+ });
24479
+ this.draft.mdBody = this.typedMessage;
24480
+ this.addFile(uploadedFile);
24481
+ yield this.save();
24482
+ });
24483
+ }
24484
+ addFile({
24485
+ appFileID,
24486
+ url,
24487
+ file
24488
+ }) {
24489
+ var _a;
24490
+ var _b;
24491
+ (_a = (_b = this.draft).attachments) !== null && _a !== void 0 ? _a : _b.attachments = [];
24492
+ AtomBinder.refreshValue(this, "draft");
24493
+ this.draft.attachments.add(AppFile.create({
24494
+ appFileID,
24495
+ contentType: file.type,
24496
+ name: file.name,
24497
+ contentID: appFileID.toString(36),
24498
+ url
24499
+ }));
24500
+ }
24501
+ save() {
24502
+ return __awaiter(this, void 0, void 0, function* () {
24503
+ this.draft = yield this.conversationService.draft(Object.assign(Object.assign({}, this.mailboxContact), {
24504
+ email: this.draft
24505
+ }), true);
24506
+ });
24507
+ }
23755
24508
  });
24509
+ __decorate([InjectProperty, __metadata("design:type", ConversationService)], MiniComposeBox.prototype, "conversationService", void 0);
24510
+ __decorate([Action({
24511
+ onEvent: "input",
24512
+ defer: 500,
24513
+ blockMultipleExecution: true
24514
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], MiniComposeBox.prototype, "onChanged", null);
24515
+ __decorate([Action({}), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], MiniComposeBox.prototype, "sendAudioMessage", null);
23756
24516
  }
23757
24517
  };
23758
24518
  });
@@ -23867,6 +24627,7 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
23867
24627
  constructor() {
23868
24628
  super(...arguments);
23869
24629
  this.mails = [];
24630
+ this.draft = null;
23870
24631
  this.search = "";
23871
24632
  this.version = 1;
23872
24633
  }
@@ -23972,7 +24733,11 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
23972
24733
  icon: "fas fa-ban",
23973
24734
  label: "Block Sender"
23974
24735
  })));
23975
- this.footerRenderer = () => XNode.create(MiniComposeBox, null);
24736
+ this.draft = yield this.conversationService.getDraft(this.parameters);
24737
+ this.footerRenderer = () => XNode.create(MiniComposeBox, {
24738
+ mailboxContact: this.parameters,
24739
+ draft: this.draft
24740
+ });
23976
24741
  });
23977
24742
  }
23978
24743
  onClick(a, e) {
@@ -24023,6 +24788,7 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
24023
24788
  });
24024
24789
  }
24025
24790
  mailOptions(thread, ce) {
24791
+ var _a;
24026
24792
  return __awaiter(this, void 0, void 0, function* () {
24027
24793
  void InlinePopupControl.showPopup(ce.target, XNode.create("div", {
24028
24794
  "data-click-event": "none",
@@ -24039,6 +24805,10 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
24039
24805
  "data-click-event": "open-logs",
24040
24806
  icon: "fa-regular fa-clock-rotate-left",
24041
24807
  label: "Logs"
24808
+ }), ((_a = thread.email) === null || _a === void 0 ? void 0 : _a.status) === "draft" && XNode.create(MenuItem, {
24809
+ "data-click-event": "delete-draft",
24810
+ icon: "fa-regular fa-clock-rotate-left",
24811
+ label: "Delete Draft"
24042
24812
  })));
24043
24813
  });
24044
24814
  }
@@ -35786,23 +36556,24 @@ html, body {
35786
36556
  }
35787
36557
 
35788
36558
  * {
35789
- scrollbar-width: 5px;
36559
+ scrollbar-width: thin;
35790
36560
  scrollbar-color: var(--accent-color) white;
36561
+ }
35791
36562
 
35792
- &::-webkit-scrollbar {
35793
- width: 5px;
35794
- }
35795
- &::-webkit-scrollbar-track {
36563
+
36564
+ ::-webkit-scrollbar {
36565
+ width: 5px;
36566
+ }
36567
+ ::-webkit-scrollbar-track {
35796
36568
  background: white;
35797
- }
35798
- &::-webkit-scrollbar-thumb {
35799
- background-color: white;
35800
- border-radius: 20px;
35801
- border: 3px solid var(--accent-color);
35802
- }
36569
+ border-radius: 20px;
36570
+ }
36571
+ ::-webkit-scrollbar-thumb {
36572
+ background: var(--accent-color);
36573
+ border-radius: 20px;
35803
36574
  }
35804
36575
 
35805
- body {
36576
+ body {
35806
36577
  font-family: trebuchet ms, "Source Sans Pro";
35807
36578
  font-size: 16px;
35808
36579
  justify-content: stretch;