@social-mail/social-mail-client 1.0.44 → 1.0.46

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 (70) hide show
  1. package/dist/admin/AdminAppIndex.pack.js +442 -195
  2. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  3. package/dist/admin/AdminAppIndex.pack.min.js +50 -41
  4. package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
  5. package/dist/common/Sql.js.map +1 -1
  6. package/dist/common/cache/CacheTTL.js +18 -0
  7. package/dist/common/cache/CacheTTL.js.map +1 -0
  8. package/dist/common/controls/email-recipients/EmailRecipientChips.js +94 -0
  9. package/dist/common/controls/email-recipients/EmailRecipientChips.js.map +1 -0
  10. package/dist/common/controls/tree/TreeView.js +294 -0
  11. package/dist/common/controls/tree/TreeView.js.map +1 -0
  12. package/dist/model/model.js +19 -2
  13. package/dist/model/model.js.map +1 -1
  14. package/dist/services/email-addresses/EmailAddressService.js +69 -0
  15. package/dist/services/email-addresses/EmailAddressService.js.map +1 -0
  16. package/dist/services/files/LocalFileService.js +17 -3
  17. package/dist/services/files/LocalFileService.js.map +1 -1
  18. package/dist/style/GlobalStyle.js +9 -0
  19. package/dist/style/GlobalStyle.js.map +1 -1
  20. package/dist/tsconfig.tsbuildinfo +1 -1
  21. package/dist/web/AppIndex.pack.js +1144 -237
  22. package/dist/web/AppIndex.pack.js.map +1 -1
  23. package/dist/web/AppIndex.pack.min.js +139 -43
  24. package/dist/web/AppIndex.pack.min.js.map +1 -1
  25. package/dist/web/commands/AppCommands.js +5 -0
  26. package/dist/web/commands/AppCommands.js.map +1 -1
  27. package/dist/web/drawer/AppDrawer.js +5 -1
  28. package/dist/web/drawer/AppDrawer.js.map +1 -1
  29. package/dist/web/page/files/FilesPage.js +92 -0
  30. package/dist/web/page/files/FilesPage.js.map +1 -0
  31. package/dist/web/page/files/FolderPage.js +156 -0
  32. package/dist/web/page/files/FolderPage.js.map +1 -0
  33. package/dist/web/page/files/service/CloudFileService.js +97 -0
  34. package/dist/web/page/files/service/CloudFileService.js.map +1 -0
  35. package/dist/web/page/mails/ComposeMailPage.js +6 -20
  36. package/dist/web/page/mails/ComposeMailPage.js.map +1 -1
  37. package/dist/web/page/mails/ConversationPage.js +21 -3
  38. package/dist/web/page/mails/ConversationPage.js.map +1 -1
  39. package/dist/web/page/mails/service/ConversationService.js +3 -1
  40. package/dist/web/page/mails/service/ConversationService.js.map +1 -1
  41. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.d.ts.map +1 -1
  42. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.js +10 -6
  43. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.js.map +1 -1
  44. package/node_modules/@web-atoms/web-controls/dist/basic/UploadEvent.js +2 -1
  45. package/node_modules/@web-atoms/web-controls/dist/basic/UploadEvent.js.map +1 -1
  46. package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.d.ts.map +1 -1
  47. package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.js +7 -1
  48. package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.js.map +1 -1
  49. package/node_modules/@web-atoms/web-controls/dist/tsconfig.tsbuildinfo +1 -1
  50. package/node_modules/@web-atoms/web-controls/package.json +1 -1
  51. package/node_modules/@web-atoms/web-controls/src/basic/AtomChips.tsx +10 -6
  52. package/node_modules/@web-atoms/web-controls/src/basic/UploadEvent.tsx +1 -1
  53. package/node_modules/@web-atoms/web-controls/src/mobile-app/MobileApp.tsx +6 -0
  54. package/package.json +2 -2
  55. package/src/common/Sql.ts +8 -0
  56. package/src/common/cache/CacheTTL.ts +7 -0
  57. package/src/common/controls/email-recipients/EmailRecipientChips.tsx +80 -0
  58. package/src/common/controls/tree/TreeView.tsx +307 -0
  59. package/src/model/model.ts +38 -5
  60. package/src/services/email-addresses/EmailAddressService.ts +53 -0
  61. package/src/services/files/LocalFileService.tsx +20 -3
  62. package/src/style/GlobalStyle.ts +9 -0
  63. package/src/web/commands/AppCommands.ts +6 -0
  64. package/src/web/drawer/AppDrawer.tsx +6 -1
  65. package/src/web/page/files/FilesPage.tsx +73 -0
  66. package/src/web/page/files/FolderPage.tsx +127 -0
  67. package/src/web/page/files/service/CloudFileService.ts +71 -0
  68. package/src/web/page/mails/ComposeMailPage.tsx +3 -13
  69. package/src/web/page/mails/ConversationPage.tsx +7 -1
  70. package/src/web/page/mails/service/ConversationService.tsx +3 -1
@@ -1864,7 +1864,7 @@ const UMD = new UMDClass();
1864
1864
 
1865
1865
  AmdLoader.instance.register(
1866
1866
  ["@social-mail/social-mail-client","@web-atoms/core","reflect-metadata","@web-atoms/web-controls","@web-atoms/date-time","@web-atoms/entity","@web-atoms/email-dom","@web-atoms/data-styles"],
1867
- ["@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/AtomBridge","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/AtomWatcher","@web-atoms/core/dist/core/PropertyMap","@web-atoms/core/dist/core/FormattedString","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/WebImage","@web-atoms/core/dist/web/styles/AtomStyle","@web-atoms/core/dist/web/styles/AtomStyleSheet","@web-atoms/core/dist/web/services/PopupService","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/services/PopupWindow","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/desktop-app/DesktopApp","@social-mail/social-mail-client/dist/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","@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/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","@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/SocialMailApp","@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/MailsPage","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/web-controls/dist/basic/styles/drop-down-style","@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","@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/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","@web-atoms/web-controls/dist/basic/TitleEditor","@web-atoms/web-controls/dist/basic/styles/title-editor-style","@social-mail/social-mail-client/dist/services/socket/sockets","@web-atoms/web-controls/dist/basic/LimitedText","@social-mail/social-mail-client/dist/style/GlobalStyle","@social-mail/social-mail-client/dist/style/OverrideAppStyle","@social-mail/social-mail-client/dist/services/UserService","@social-mail/social-mail-client/dist/common/pages/user/LoginPage","@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/web/drawer/AppDrawer","@social-mail/social-mail-client/dist/common/controls/menu/MenuItem","@social-mail/social-mail-client/dist/common/controls/ModuleInfo","@web-atoms/core/dist/web/WebApp","@web-atoms/core/dist/core/AtomOnce","@web-atoms/core/dist/web/services/WebBusyIndicatorService","@web-atoms/core/dist/web/styles/StyleBuilder","@web-atoms/core/dist/web/services/WindowService","@web-atoms/core/dist/Atom","@web-atoms/core/dist/core/FormattedError","@web-atoms/core/dist/view-model/AtomWindowViewModel","@web-atoms/core/dist/view-model/AtomViewModel","@web-atoms/core/dist/view-model/baseTypes","@web-atoms/core/dist/web/controls/AtomAlertWindow","@web-atoms/core/dist/web/styles/AtomAlertWindowStyle","@web-atoms/core/dist/web/styles/AtomWindowStyle","@web-atoms/core/src/web/images/close-button-hover.svg","@web-atoms/core/dist/web/controls/AtomWindow","@web-atoms/core/dist/web/controls/AtomTemplate","@web-atoms/core/dist/web/controls/AtomNotification","@web-atoms/core/dist/web/styles/AtomNotificationStyle","@web-atoms/core/dist/web/styles/AtomPopupStyle","@web-atoms/core/dist/web/services/NotificationPopup","@web-atoms/core/dist/web/styles/AtomTheme"]);
1867
+ ["@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/AtomBridge","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/AtomWatcher","@web-atoms/core/dist/core/PropertyMap","@web-atoms/core/dist/core/FormattedString","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/WebImage","@web-atoms/core/dist/web/styles/AtomStyle","@web-atoms/core/dist/web/styles/AtomStyleSheet","@web-atoms/core/dist/web/services/PopupService","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/services/PopupWindow","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/desktop-app/DesktopApp","@social-mail/social-mail-client/dist/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","@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/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","@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/SocialMailApp","@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/MailsPage","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/web-controls/dist/basic/styles/drop-down-style","@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","@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/services/socket/sockets","@web-atoms/web-controls/dist/basic/LimitedText","@social-mail/social-mail-client/dist/web/page/files/FilesPage","@social-mail/social-mail-client/dist/web/page/files/service/CloudFileService","@social-mail/social-mail-client/dist/web/page/files/FolderPage","@social-mail/social-mail-client/dist/common/controls/tree/TreeView","@social-mail/social-mail-client/dist/style/GlobalStyle","@social-mail/social-mail-client/dist/style/OverrideAppStyle","@social-mail/social-mail-client/dist/services/UserService","@social-mail/social-mail-client/dist/common/pages/user/LoginPage","@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/web/drawer/AppDrawer","@social-mail/social-mail-client/dist/common/controls/menu/MenuItem","@social-mail/social-mail-client/dist/common/controls/ModuleInfo","@web-atoms/core/dist/web/WebApp","@web-atoms/core/dist/core/AtomOnce","@web-atoms/core/dist/web/services/WebBusyIndicatorService","@web-atoms/core/dist/web/styles/StyleBuilder","@web-atoms/core/dist/web/services/WindowService","@web-atoms/core/dist/Atom","@web-atoms/core/dist/core/FormattedError","@web-atoms/core/dist/view-model/AtomWindowViewModel","@web-atoms/core/dist/view-model/AtomViewModel","@web-atoms/core/dist/view-model/baseTypes","@web-atoms/core/dist/web/controls/AtomAlertWindow","@web-atoms/core/dist/web/styles/AtomAlertWindowStyle","@web-atoms/core/dist/web/styles/AtomWindowStyle","@web-atoms/core/src/web/images/close-button-hover.svg","@web-atoms/core/dist/web/controls/AtomWindow","@web-atoms/core/dist/web/controls/AtomTemplate","@web-atoms/core/dist/web/controls/AtomNotification","@web-atoms/core/dist/web/styles/AtomNotificationStyle","@web-atoms/core/dist/web/styles/AtomPopupStyle","@web-atoms/core/dist/web/services/NotificationPopup","@web-atoms/core/dist/web/styles/AtomTheme"]);
1868
1868
 
1869
1869
  System.register([], function (_export, _context) {
1870
1870
  "use strict";
@@ -10486,7 +10486,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/types", "@web-atoms/core/di
10486
10486
  System.register(["tslib", "@web-atoms/core/dist/core/AtomLoader", "@web-atoms/core/dist/core/sleep", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/services/NavigationService", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/services/PopupService", "../PageNavigator", "@web-atoms/core/dist/core/StringHelper", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/core/BindableProperty", "@web-atoms/core/dist/core/AtomDisposableList", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/types", "@web-atoms/core/dist/web/core/AtomUI", "@web-atoms/core/dist/core/Command", "@web-atoms/core/dist/core/Route"], function (_export, _context) {
10487
10487
  "use strict";
10488
10488
 
10489
- var __awaiter, __decorate, __metadata, AtomLoader, sleep, XNode, NavigationService, AtomControl, PopupService, PopupWindow, PageNavigator, StringHelper, styled, BindableProperty, AtomDisposableList, Bind, CancelToken, ChildEnumerator, displayRouteSymbol, Route, Drawer, BasePage, ContentPage, TabbedPage, MobileApp, PopupWindowEx, PopupWindowPage, _a, isMobileView, isPopupPage, root;
10489
+ var __awaiter, __decorate, __metadata, AtomLoader, sleep, XNode, NavigationService, AtomControl, PopupService, PopupWindow, PageNavigator, StringHelper, styled, BindableProperty, AtomDisposableList, Bind, CancelToken, ChildEnumerator, displayRouteSymbol, Route, Drawer, BasePage, ContentPage, TabbedPage, MobileApp, PopupWindowEx, PopupWindowPage, _a, historyBackCalled, isMobileView, isPopupPage, root;
10490
10490
  function PullToRefresh() {
10491
10491
  return XNode.create("div", null, XNode.create("i", {
10492
10492
  class: "pull-icon fa-solid fa-down"
@@ -10811,6 +10811,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomLoader", "@web-atoms/co
10811
10811
  }
10812
10812
  });
10813
10813
  delete Drawer.prototype.init;
10814
+ historyBackCalled = false;
10814
10815
  _export("BasePage", BasePage = class BasePage extends AtomControl {
10815
10816
  constructor() {
10816
10817
  super(...arguments);
@@ -10841,6 +10842,9 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomLoader", "@web-atoms/co
10841
10842
  history.pushState(state, "", url);
10842
10843
  const eventRegistration = e => {
10843
10844
  var _b;
10845
+ if (historyBackCalled) {
10846
+ return;
10847
+ }
10844
10848
  if (((_b = e.state) === null || _b === void 0 ? void 0 : _b.url) === last) {
10845
10849
  this.cancel();
10846
10850
  }
@@ -10851,7 +10855,9 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomLoader", "@web-atoms/co
10851
10855
  var _b;
10852
10856
  window.removeEventListener("popstate", eventRegistration);
10853
10857
  if (((_b = history.state) === null || _b === void 0 ? void 0 : _b.url) === state.url) {
10858
+ historyBackCalled = true;
10854
10859
  history.back();
10860
+ setTimeout(() => historyBackCalled = false, 500);
10855
10861
  }
10856
10862
  }
10857
10863
  };
@@ -15169,7 +15175,7 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/ent
15169
15175
  System.register(["@web-atoms/date-time/dist/DateTime", "@web-atoms/entity/dist/services/BaseEntityService"], function (_export, _context) {
15170
15176
  "use strict";
15171
15177
 
15172
- var DateTime, Model, AppRole, AppFileContentDispositionArray, AppFile, AppFileTag, FileContent, Configuration, Domain, HostedDomain, DomainUser, DomainRelayTypeArray, DomainRelay, DomainKey, EmailStatusArray, Email, EmailRecipientTypeArray, EmailRecipient, EmailTag, EmailAddress, Mailbox, MailboxEmail, MailboxThread, MailboxThreadEmail, User, UserRole, UserMailbox, UserAuthFactorMethodArray, UserAuthFactor, LoginSession, Tag;
15178
+ var DateTime, Model, AppRole, AppFileContentDispositionArray, AppFile, AppFileVersion, AppFileAccessTypeArray, AppFileAccess, AppFileTag, FileContent, Configuration, Domain, HostedDomain, DomainUser, DomainRelayTypeArray, DomainRelay, DomainKey, EmailStatusArray, Email, EmailRecipientTypeArray, EmailRecipient, EmailTag, EmailAddress, Mailbox, MailboxEmail, MailboxThread, MailboxThreadEmail, User, UserRole, UserMailbox, UserAuthFactorMethodArray, UserAuthFactor, LoginSession, Tag;
15173
15179
  return {
15174
15180
  setters: [function (_webAtomsDateTimeDistDateTime) {
15175
15181
  DateTime = _webAtomsDateTimeDistDateTime.default;
@@ -15189,11 +15195,28 @@ System.register(["@web-atoms/date-time/dist/DateTime", "@web-atoms/entity/dist/s
15189
15195
  }]);
15190
15196
  _export("AppFile", AppFile = new Model("AppFile", ["appFileID"], {
15191
15197
  isFolder: false,
15192
- folder: "",
15193
15198
  name: "",
15194
15199
  fileSize: 0,
15195
15200
  contentType: ""
15196
15201
  }));
15202
+ _export("AppFileVersion", AppFileVersion = new Model("AppFileVersion", ["versionID"], {
15203
+ fileID: 0,
15204
+ fileContentID: 0,
15205
+ name: "",
15206
+ dateCreated: new DateTime()
15207
+ }));
15208
+ _export("AppFileAccessTypeArray", AppFileAccessTypeArray = [{
15209
+ "label": "read",
15210
+ "value": "read"
15211
+ }, {
15212
+ "label": "write",
15213
+ "value": "write"
15214
+ }]);
15215
+ _export("AppFileAccess", AppFileAccess = new Model("AppFileAccess", ["fileID", "userID", "type"], {
15216
+ fileID: 0,
15217
+ userID: 0,
15218
+ type: "read"
15219
+ }));
15197
15220
  _export("AppFileTag", AppFileTag = new Model("AppFileTag", ["appFileID", "tagID"], {
15198
15221
  appFileID: 0,
15199
15222
  tagID: 0
@@ -17514,7 +17537,9 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
17514
17537
  emailAddressID
17515
17538
  }, p => x => x.mailboxID === p.mailboxID && x.emailAddressID === p.emailAddressID);
17516
17539
  if (search) {
17517
- search = `%${search}%`;
17540
+ if (!/\%/.test(search)) {
17541
+ search = `%${search}%`;
17542
+ }
17518
17543
  q = q.where({
17519
17544
  search
17520
17545
  }, p => x => Sql.text.iLike(x.email.subject, p.search) || Sql.text.iLike(x.email.textBody, p.search));
@@ -20320,6 +20345,7 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
20320
20345
  name: "upload-command"
20321
20346
  });
20322
20347
  window.addEventListener(uploadCommand.eventName, ce => {
20348
+ var _a;
20323
20349
  if (ce.defaultPrevented) {
20324
20350
  return;
20325
20351
  }
@@ -20331,7 +20357,7 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
20331
20357
  }
20332
20358
  }
20333
20359
  const multiple = element.getAttribute("data-multiple") === "true";
20334
- const extra = element.extra;
20360
+ const extra = (_a = element.extra) !== null && _a !== void 0 ? _a : element.getAttribute("data-extra");
20335
20361
  const upload = element.getAttribute("data-upload") === "true";
20336
20362
  const uploadEvent = StringHelper.fromHyphenToCamel(element.getAttribute("data-upload-event"));
20337
20363
  const chain = [];
@@ -20561,7 +20587,7 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
20561
20587
  return detail.files;
20562
20588
  });
20563
20589
  }
20564
- upload(files) {
20590
+ upload(files, extra) {
20565
20591
  return __awaiter(this, void 0, void 0, function* () {
20566
20592
  return files.map(file => {
20567
20593
  const uploadFile = {
@@ -20598,7 +20624,21 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
20598
20624
  resolve(r);
20599
20625
  }
20600
20626
  });
20601
- xhr.open("POST", "/api/upload", true);
20627
+ let postUrl = "/api/upload";
20628
+ if (extra) {
20629
+ if (typeof extra === "string") {
20630
+ extra = JSON.parse(extra);
20631
+ }
20632
+ const s = new URLSearchParams();
20633
+ for (const key in extra) {
20634
+ if (Object.prototype.hasOwnProperty.call(extra, key)) {
20635
+ const element = extra[key];
20636
+ s.append(key, element);
20637
+ }
20638
+ }
20639
+ postUrl += "?" + s.toString();
20640
+ }
20641
+ xhr.open("POST", postUrl, true);
20602
20642
  xhr.send(body);
20603
20643
  });
20604
20644
  return uploadFile;
@@ -20627,7 +20667,7 @@ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core
20627
20667
  }), null, {
20628
20668
  capture: true
20629
20669
  });
20630
- this.files = yield this.localFileService.upload(this.parameters.files);
20670
+ this.files = yield this.localFileService.upload(this.parameters.files, this.parameters.extra);
20631
20671
  this.render(XNode.create("div", null, XNode.create(AtomRepeater, {
20632
20672
  items: this.files,
20633
20673
  itemRenderer: file => XNode.create("div", {
@@ -20854,6 +20894,192 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-con
20854
20894
 
20855
20895
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/html/InlineHtmlEditorWithToolbar");
20856
20896
 
20897
+ System.register(["@web-atoms/core/dist/style/styled"], function (_export, _context) {
20898
+ "use strict";
20899
+
20900
+ var styled;
20901
+ return {
20902
+ setters: [function (_webAtomsCoreDistStyleStyled) {
20903
+ styled = _webAtomsCoreDistStyleStyled.default;
20904
+ }],
20905
+ execute: function () {
20906
+ styled.css`
20907
+ display: inline-grid;
20908
+ grid-template-rows: 1fr auto;
20909
+ grid-template-columns: 1fr 40px;
20910
+ column-gap: 5px;
20911
+
20912
+ & > input {
20913
+ grid-row: 1 / span 2;
20914
+ grid-column: 1;
20915
+ }
20916
+
20917
+ & > i {
20918
+ grid-row: 1;
20919
+ grid-column: 2;
20920
+ font-size: smaller;
20921
+ padding-left: 5px;
20922
+ padding-right: 5px;
20923
+ align-self: stretch;
20924
+ justify-self: stretch;
20925
+ text-align: center;
20926
+ }
20927
+
20928
+ & > span {
20929
+ grid-row: 2;
20930
+ grid-column: 2;
20931
+ font-size: xx-small;
20932
+ align-self: stretch;
20933
+ justify-self: stretch;
20934
+ text-align: center;
20935
+ }
20936
+
20937
+ `.installGlobal("[data-title-editor=title-editor]");
20938
+ }
20939
+ };
20940
+ });
20941
+ //# sourceMappingURL=title-editor-style.js.map
20942
+
20943
+ AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/title-editor-style");
20944
+
20945
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "./styles/title-editor-style"], function (_export, _context) {
20946
+ "use strict";
20947
+
20948
+ var __rest, XNode, paste, formatText, capitalizeText, toText, changeCase;
20949
+ function TitleEditor(_a) {
20950
+ var {
20951
+ value,
20952
+ type,
20953
+ placeholder,
20954
+ capitalize = "on",
20955
+ capitalizationTitle = "Capitalization"
20956
+ } = _a,
20957
+ a = __rest(_a, ["value", "type", "placeholder", "capitalize", "capitalizationTitle"]);
20958
+ return XNode.create("div", Object.assign({
20959
+ "data-title-editor": "title-editor"
20960
+ }, a), XNode.create("input", {
20961
+ autocapitalize: capitalize,
20962
+ type: type,
20963
+ placeholder: placeholder,
20964
+ value: value,
20965
+ "event-input": capitalizeText,
20966
+ "event-paste": paste
20967
+ }), XNode.create("i", {
20968
+ "data-element": "icon",
20969
+ class: "fas fa-font-case",
20970
+ "event-click": changeCase,
20971
+ title: capitalizationTitle
20972
+ }), XNode.create("span", {
20973
+ "data-element": "text",
20974
+ text: toText(capitalize),
20975
+ "event-click": changeCase,
20976
+ title: capitalizationTitle
20977
+ }));
20978
+ }
20979
+ _export("default", TitleEditor);
20980
+ return {
20981
+ setters: [function (_tslib) {
20982
+ __rest = _tslib.__rest;
20983
+ }, function (_webAtomsCoreDistCoreXNode) {
20984
+ XNode = _webAtomsCoreDistCoreXNode.default;
20985
+ }, function (_stylesTitleEditorStyle) {}],
20986
+ execute: function () {
20987
+ paste = e => {
20988
+ const input = e.target;
20989
+ const capitalize = input.autocapitalize;
20990
+ if (!capitalize || capitalize === "off" || capitalize === "none") {
20991
+ return;
20992
+ }
20993
+ setTimeout(() => {
20994
+ const start = input.selectionStart;
20995
+ const end = input.selectionEnd;
20996
+ formatText(input, capitalize);
20997
+ input.setSelectionRange(start, end);
20998
+ }, 1);
20999
+ };
21000
+ formatText = (input, capitalize, all = true) => {
21001
+ let value = input.value;
21002
+ if (!value) {
21003
+ return;
21004
+ }
21005
+ switch (capitalize) {
21006
+ case "on":
21007
+ case "sentences":
21008
+ if (value.length === 1) {
21009
+ value = value.toLocaleUpperCase();
21010
+ }
21011
+ break;
21012
+ case "words":
21013
+ if (all) {
21014
+ value = value.replace(/(\S+)/g, s => s.substring(0, 1).toLocaleUpperCase() + s.substring(1));
21015
+ } else {
21016
+ value = value.replace(/(\S+)$/g, s => s.substring(0, 1).toLocaleUpperCase() + s.substring(1));
21017
+ }
21018
+ break;
21019
+ case "characters":
21020
+ value = value.toLocaleUpperCase();
21021
+ break;
21022
+ }
21023
+ input.value = value;
21024
+ };
21025
+ capitalizeText = /android|iPhone|iOS/i.test(navigator.userAgent) ? () => undefined : e => {
21026
+ const input = e.target;
21027
+ const capitalize = input.autocapitalize;
21028
+ if (!capitalize || capitalize === "off" || capitalize === "none") {
21029
+ return;
21030
+ }
21031
+ const start = input.selectionStart;
21032
+ const end = input.selectionEnd;
21033
+ formatText(input, capitalize, false);
21034
+ input.setSelectionRange(start, end);
21035
+ };
21036
+ toText = capitalize => {
21037
+ switch (capitalize) {
21038
+ case "off":
21039
+ case "none":
21040
+ return "Caps Off";
21041
+ case "characters":
21042
+ return "All Caps";
21043
+ case "on":
21044
+ case "sentences":
21045
+ return "Sentence";
21046
+ case "words":
21047
+ return "Title Case";
21048
+ }
21049
+ return "";
21050
+ };
21051
+ changeCase = e => {
21052
+ let element = e.target;
21053
+ if (element.tagName === "SPAN") {
21054
+ element = element.previousElementSibling;
21055
+ }
21056
+ const input = element.previousElementSibling;
21057
+ const span = element.nextElementSibling;
21058
+ let capitalize = input.autocapitalize;
21059
+ switch (capitalize) {
21060
+ case "sentences":
21061
+ capitalize = "words";
21062
+ break;
21063
+ case "words":
21064
+ capitalize = "characters";
21065
+ break;
21066
+ case "characters":
21067
+ capitalize = "off";
21068
+ break;
21069
+ default:
21070
+ capitalize = "sentences";
21071
+ break;
21072
+ }
21073
+ span.textContent = toText(capitalize);
21074
+ input.autocapitalize = capitalize;
21075
+ };
21076
+ }
21077
+ };
21078
+ });
21079
+ //# sourceMappingURL=TitleEditor.js.map
21080
+
21081
+ AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/TitleEditor");
21082
+
20857
21083
  System.register(["@web-atoms/core/dist/style/styled"], function (_export, _context) {
20858
21084
  "use strict";
20859
21085
 
@@ -21284,13 +21510,17 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomBinder", "@web-atoms/co
21284
21510
  this.bindEvent(this.element, "removeChip", e => e.defaultPrevented || this.removeItem(e.detail));
21285
21511
  this.bindEvent(this.element, "undoRemoveChip", e => e.defaultPrevented || this.undoRemoveItem(e.detail));
21286
21512
  this.bindEvent(this.searchInput, "blur", () => {
21287
- if (this.onBlurItemToChip && this.search) {
21288
- const item = this.onBlurItemToChip(this.search);
21289
- if (item) {
21290
- this.items.add(item);
21291
- this.searchInput.value = "";
21513
+ const search = this.search;
21514
+ setTimeout(() => {
21515
+ if (this.onBlurItemToChip && search) {
21516
+ const item = this.onBlurItemToChip(search);
21517
+ if (item) {
21518
+ this.items.add(item);
21519
+ this.searchInput.value = "";
21520
+ this.search = "";
21521
+ }
21292
21522
  }
21293
- }
21523
+ }, 50);
21294
21524
  });
21295
21525
  }
21296
21526
  setFocus(hasFocus) {
@@ -21478,196 +21708,200 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomBinder", "@web-atoms/co
21478
21708
 
21479
21709
  AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/AtomChips");
21480
21710
 
21481
- System.register(["@web-atoms/core/dist/style/styled"], function (_export, _context) {
21711
+ System.register([], function (_export, _context) {
21482
21712
  "use strict";
21483
21713
 
21484
- var styled;
21714
+ var CacheTTL;
21485
21715
  return {
21486
- setters: [function (_webAtomsCoreDistStyleStyled) {
21487
- styled = _webAtomsCoreDistStyleStyled.default;
21488
- }],
21716
+ setters: [],
21489
21717
  execute: function () {
21490
- styled.css`
21491
- display: inline-grid;
21492
- grid-template-rows: 1fr auto;
21493
- grid-template-columns: 1fr 40px;
21494
- column-gap: 5px;
21495
-
21496
- & > input {
21497
- grid-row: 1 / span 2;
21498
- grid-column: 1;
21499
- }
21500
-
21501
- & > i {
21502
- grid-row: 1;
21503
- grid-column: 2;
21504
- font-size: smaller;
21505
- padding-left: 5px;
21506
- padding-right: 5px;
21507
- align-self: stretch;
21508
- justify-self: stretch;
21509
- text-align: center;
21510
- }
21511
-
21512
- & > span {
21513
- grid-row: 2;
21514
- grid-column: 2;
21515
- font-size: xx-small;
21516
- align-self: stretch;
21517
- justify-self: stretch;
21518
- text-align: center;
21519
- }
21520
-
21521
- `.installGlobal("[data-title-editor=title-editor]");
21718
+ _export("CacheTTL", CacheTTL = {
21719
+ seconds: {
21720
+ oneHour: 60 * 60,
21721
+ oneDay: 60 * 60 * 24,
21722
+ oneMonth: 60 * 60 * 24 * 30
21723
+ }
21724
+ });
21522
21725
  }
21523
21726
  };
21524
21727
  });
21525
- //# sourceMappingURL=title-editor-style.js.map
21728
+ //# sourceMappingURL=CacheTTL.js.map
21526
21729
 
21527
- AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/title-editor-style");
21730
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/cache/CacheTTL");
21528
21731
 
21529
- System.register(["tslib", "@web-atoms/core/dist/core/XNode", "./styles/title-editor-style"], function (_export, _context) {
21732
+ System.register(["tslib", "@web-atoms/core/dist/di/Inject", "../EntityService", "../../common/Sql", "../../model/model", "../../common/cache/CacheTTL", "@web-atoms/core/dist/di/DISingleton"], function (_export, _context) {
21530
21733
  "use strict";
21531
21734
 
21532
- var __rest, XNode, paste, formatText, capitalizeText, toText, changeCase;
21533
- function TitleEditor(_a) {
21534
- var {
21535
- value,
21536
- type,
21537
- placeholder,
21538
- capitalize = "on",
21539
- capitalizationTitle = "Capitalization"
21540
- } = _a,
21541
- a = __rest(_a, ["value", "type", "placeholder", "capitalize", "capitalizationTitle"]);
21542
- return XNode.create("div", Object.assign({
21543
- "data-title-editor": "title-editor"
21544
- }, a), XNode.create("input", {
21545
- autocapitalize: capitalize,
21546
- type: type,
21547
- placeholder: placeholder,
21548
- value: value,
21549
- "event-input": capitalizeText,
21550
- "event-paste": paste
21551
- }), XNode.create("i", {
21552
- "data-element": "icon",
21553
- class: "fas fa-font-case",
21554
- "event-click": changeCase,
21555
- title: capitalizationTitle
21556
- }), XNode.create("span", {
21557
- "data-element": "text",
21558
- text: toText(capitalize),
21559
- "event-click": changeCase,
21560
- title: capitalizationTitle
21561
- }));
21562
- }
21563
- _export("default", TitleEditor);
21735
+ var __awaiter, __decorate, __metadata, Inject, EntityService, Sql, EmailAddress, CacheTTL, DISingleton, cacheVersion, cacheSeconds, hideActivityIndicator, EmailAddressService;
21564
21736
  return {
21565
21737
  setters: [function (_tslib) {
21566
- __rest = _tslib.__rest;
21567
- }, function (_webAtomsCoreDistCoreXNode) {
21568
- XNode = _webAtomsCoreDistCoreXNode.default;
21569
- }, function (_stylesTitleEditorStyle) {}],
21738
+ __awaiter = _tslib.__awaiter;
21739
+ __decorate = _tslib.__decorate;
21740
+ __metadata = _tslib.__metadata;
21741
+ }, function (_webAtomsCoreDistDiInject) {
21742
+ Inject = _webAtomsCoreDistDiInject.Inject;
21743
+ }, function (_EntityService) {
21744
+ EntityService = _EntityService.default;
21745
+ }, function (_commonSql) {
21746
+ Sql = _commonSql.Sql;
21747
+ }, function (_modelModel) {
21748
+ EmailAddress = _modelModel.EmailAddress;
21749
+ }, function (_commonCacheCacheTTL) {
21750
+ CacheTTL = _commonCacheCacheTTL.CacheTTL;
21751
+ }, function (_webAtomsCoreDistDiDISingleton) {
21752
+ DISingleton = _webAtomsCoreDistDiDISingleton.default;
21753
+ }],
21570
21754
  execute: function () {
21571
- paste = e => {
21572
- const input = e.target;
21573
- const capitalize = input.autocapitalize;
21574
- if (!capitalize || capitalize === "off" || capitalize === "none") {
21575
- return;
21576
- }
21577
- setTimeout(() => {
21578
- const start = input.selectionStart;
21579
- const end = input.selectionEnd;
21580
- formatText(input, capitalize);
21581
- input.setSelectionRange(start, end);
21582
- }, 1);
21583
- };
21584
- formatText = (input, capitalize, all = true) => {
21585
- let value = input.value;
21586
- if (!value) {
21587
- return;
21755
+ cacheVersion = "1";
21756
+ cacheSeconds = CacheTTL.seconds.oneDay;
21757
+ hideActivityIndicator = true;
21758
+ EmailAddressService = class EmailAddressService {
21759
+ getName(ea) {
21760
+ return __awaiter(this, void 0, void 0, function* () {
21761
+ const f = yield this.entityService.query(EmailAddress).where({
21762
+ ea
21763
+ }, p => x => x.emailAddress === p.ea).firstOrDefault({
21764
+ cacheSeconds,
21765
+ cacheVersion,
21766
+ hideActivityIndicator
21767
+ });
21768
+ return f === null || f === void 0 ? void 0 : f.name;
21769
+ });
21588
21770
  }
21589
- switch (capitalize) {
21590
- case "on":
21591
- case "sentences":
21592
- if (value.length === 1) {
21593
- value = value.toLocaleUpperCase();
21771
+ search(search, cancelToken) {
21772
+ return __awaiter(this, void 0, void 0, function* () {
21773
+ if (!search) {
21774
+ return [];
21594
21775
  }
21595
- break;
21596
- case "words":
21597
- if (all) {
21598
- value = value.replace(/(\S+)/g, s => s.substring(0, 1).toLocaleUpperCase() + s.substring(1));
21599
- } else {
21600
- value = value.replace(/(\S+)$/g, s => s.substring(0, 1).toLocaleUpperCase() + s.substring(1));
21776
+ if (!/\%$/.test(search)) {
21777
+ search = search + "%";
21601
21778
  }
21602
- break;
21603
- case "characters":
21604
- value = value.toLocaleUpperCase();
21605
- break;
21606
- }
21607
- input.value = value;
21608
- };
21609
- capitalizeText = /android|iPhone|iOS/i.test(navigator.userAgent) ? () => undefined : e => {
21610
- const input = e.target;
21611
- const capitalize = input.autocapitalize;
21612
- if (!capitalize || capitalize === "off" || capitalize === "none") {
21613
- return;
21614
- }
21615
- const start = input.selectionStart;
21616
- const end = input.selectionEnd;
21617
- formatText(input, capitalize, false);
21618
- input.setSelectionRange(start, end);
21619
- };
21620
- toText = capitalize => {
21621
- switch (capitalize) {
21622
- case "off":
21623
- case "none":
21624
- return "Caps Off";
21625
- case "characters":
21626
- return "All Caps";
21627
- case "on":
21628
- case "sentences":
21629
- return "Sentence";
21630
- case "words":
21631
- return "Title Case";
21779
+ const list = yield this.entityService.query(EmailAddress).where({
21780
+ search
21781
+ }, p => x => Sql.text.like(x.emailAddress, p.search)).orderByDescending(x => x.emailAddressID).toPagedList({
21782
+ start: 0,
21783
+ size: 10,
21784
+ count: false,
21785
+ cacheSeconds,
21786
+ cacheVersion,
21787
+ cancelToken,
21788
+ hideActivityIndicator
21789
+ });
21790
+ return list.items;
21791
+ });
21632
21792
  }
21633
- return "";
21634
21793
  };
21635
- changeCase = e => {
21636
- let element = e.target;
21637
- if (element.tagName === "SPAN") {
21638
- element = element.previousElementSibling;
21794
+ __decorate([Inject, __metadata("design:type", EntityService)], EmailAddressService.prototype, "entityService", void 0);
21795
+ EmailAddressService = __decorate([DISingleton()], EmailAddressService);
21796
+ _export("default", EmailAddressService);
21797
+ }
21798
+ };
21799
+ });
21800
+ //# sourceMappingURL=EmailAddressService.js.map
21801
+
21802
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/email-addresses/EmailAddressService");
21803
+
21804
+ System.register(["tslib", "@web-atoms/web-controls/dist/basic/AtomChips", "../../../model/model", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/InjectProperty", "../../../services/email-addresses/EmailAddressService"], function (_export, _context) {
21805
+ "use strict";
21806
+
21807
+ var __awaiter, __decorate, __metadata, AtomChips, Chip, EmailRecipient, XNode, Bind, InjectProperty, EmailAddressService, EmailRecipientChips;
21808
+ _export("default", void 0);
21809
+ return {
21810
+ setters: [function (_tslib) {
21811
+ __awaiter = _tslib.__awaiter;
21812
+ __decorate = _tslib.__decorate;
21813
+ __metadata = _tslib.__metadata;
21814
+ }, function (_webAtomsWebControlsDistBasicAtomChips) {
21815
+ AtomChips = _webAtomsWebControlsDistBasicAtomChips.default;
21816
+ Chip = _webAtomsWebControlsDistBasicAtomChips.Chip;
21817
+ }, function (_modelModel) {
21818
+ EmailRecipient = _modelModel.EmailRecipient;
21819
+ }, function (_webAtomsCoreDistCoreXNode) {
21820
+ XNode = _webAtomsCoreDistCoreXNode.default;
21821
+ }, function (_webAtomsCoreDistCoreBind) {
21822
+ Bind = _webAtomsCoreDistCoreBind.default;
21823
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
21824
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
21825
+ }, function (_servicesEmailAddressesEmailAddressService) {
21826
+ EmailAddressService = _servicesEmailAddressesEmailAddressService.default;
21827
+ }],
21828
+ execute: function () {
21829
+ _export("default", EmailRecipientChips = class EmailRecipientChips extends AtomChips {
21830
+ preCreate() {
21831
+ super.preCreate();
21832
+ this.search = "";
21833
+ this.suggestions = [];
21834
+ this.itemToChip = (item, text) => {
21835
+ if (typeof item === "string") {
21836
+ return this.createRecipient(item);
21837
+ }
21838
+ const {
21839
+ name,
21840
+ emailAddress,
21841
+ emailAddressID
21842
+ } = item;
21843
+ return EmailRecipient.create({
21844
+ emailAddressID,
21845
+ name,
21846
+ emailAddressText: emailAddress
21847
+ });
21848
+ };
21849
+ this.itemRenderer = item => XNode.create(Chip, {
21850
+ title: item.name ? item.emailAddressText : void 0,
21851
+ label: item.name || item.emailAddressText
21852
+ });
21853
+ this.suggestionRenderer = item => XNode.create("div", {
21854
+ "data-layout": "vertical-flex-stretch-items"
21855
+ }, item.name && item.name !== item.emailAddress && XNode.create("div", {
21856
+ text: item.name
21857
+ }), XNode.create("div", {
21858
+ text: item.emailAddress
21859
+ }));
21860
+ this.onKeyPressedItemToChip = (key, search) => {
21861
+ if (key === "Enter" || key === "Comma") {
21862
+ return this.createRecipient(search);
21863
+ }
21864
+ };
21865
+ this.onBlurItemToChip = search => this.createRecipient(search);
21866
+ this.render(XNode.create("div", {
21867
+ suggestions: Bind.oneWayAsync((c, e, ct) => this.addressService.search(this.search, ct))
21868
+ }));
21639
21869
  }
21640
- const input = element.previousElementSibling;
21641
- const span = element.nextElementSibling;
21642
- let capitalize = input.autocapitalize;
21643
- switch (capitalize) {
21644
- case "sentences":
21645
- capitalize = "words";
21646
- break;
21647
- case "words":
21648
- capitalize = "characters";
21649
- break;
21650
- case "characters":
21651
- capitalize = "off";
21652
- break;
21653
- default:
21654
- capitalize = "sentences";
21655
- break;
21870
+ createRecipient(search) {
21871
+ search = search === null || search === void 0 ? void 0 : search.trim();
21872
+ if (!search) {
21873
+ return;
21874
+ }
21875
+ if (!/\@/.test(search)) {
21876
+ return;
21877
+ }
21878
+ const er = EmailRecipient.create({
21879
+ emailAddressText: search
21880
+ });
21881
+ if (!er.name && er.emailAddressText) {
21882
+ this.app.runAsync(() => __awaiter(this, void 0, void 0, function* () {
21883
+ const n = yield this.addressService.getName(er.emailAddressText);
21884
+ if (n) {
21885
+ er.name = n;
21886
+ this.refreshItem(er);
21887
+ }
21888
+ }));
21889
+ }
21890
+ return er;
21656
21891
  }
21657
- span.textContent = toText(capitalize);
21658
- input.autocapitalize = capitalize;
21659
- };
21892
+ });
21893
+ __decorate([InjectProperty, __metadata("design:type", EmailAddressService)], EmailRecipientChips.prototype, "addressService", void 0);
21660
21894
  }
21661
21895
  };
21662
21896
  });
21663
- //# sourceMappingURL=TitleEditor.js.map
21897
+ //# sourceMappingURL=EmailRecipientChips.js.map
21664
21898
 
21665
- AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/TitleEditor");
21899
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/email-recipients/EmailRecipientChips");
21666
21900
 
21667
- System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../common/controls/html/InlineHtmlEditorWithToolbar", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/core/Bind", "@web-atoms/web-controls/dist/basic/Form", "@web-atoms/web-controls/dist/basic/FormField", "../../../model/model", "@web-atoms/web-controls/dist/basic/AtomChips", "@web-atoms/core/dist/view-model/Action", "./service/MailService", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/date-time/dist/DateTime", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/basic/TitleEditor"], function (_export, _context) {
21901
+ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../common/controls/html/InlineHtmlEditorWithToolbar", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/core/Bind", "@web-atoms/web-controls/dist/basic/Form", "@web-atoms/web-controls/dist/basic/FormField", "../../../model/model", "@web-atoms/core/dist/view-model/Action", "./service/MailService", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/date-time/dist/DateTime", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/basic/TitleEditor", "../../../common/controls/email-recipients/EmailRecipientChips"], function (_export, _context) {
21668
21902
  "use strict";
21669
21903
 
21670
- var __awaiter, __decorate, __metadata, PopupWindowPage, InlineHtmlEditorWithToolbar, XNode, Bind, Form, FormField, HorizontalFormField, AppFile, Email, EmailRecipient, AtomChips, Chip, Action, MailService, InjectProperty, DateTime, AtomRepeater, TitleEditor, ComposeMailPage;
21904
+ var __awaiter, __decorate, __metadata, PopupWindowPage, InlineHtmlEditorWithToolbar, XNode, Bind, Form, FormField, HorizontalFormField, AppFile, Email, EmailRecipient, Action, MailService, InjectProperty, DateTime, AtomRepeater, TitleEditor, EmailRecipientChips, ComposeMailPage;
21671
21905
  _export("default", void 0);
21672
21906
  return {
21673
21907
  setters: [function (_tslib) {
@@ -21691,9 +21925,6 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
21691
21925
  AppFile = _modelModel.AppFile;
21692
21926
  Email = _modelModel.Email;
21693
21927
  EmailRecipient = _modelModel.EmailRecipient;
21694
- }, function (_webAtomsWebControlsDistBasicAtomChips) {
21695
- AtomChips = _webAtomsWebControlsDistBasicAtomChips.default;
21696
- Chip = _webAtomsWebControlsDistBasicAtomChips.Chip;
21697
21928
  }, function (_webAtomsCoreDistViewModelAction) {
21698
21929
  Action = _webAtomsCoreDistViewModelAction.default;
21699
21930
  }, function (_serviceMailService) {
@@ -21706,6 +21937,8 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
21706
21937
  AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
21707
21938
  }, function (_webAtomsWebControlsDistBasicTitleEditor) {
21708
21939
  TitleEditor = _webAtomsWebControlsDistBasicTitleEditor.default;
21940
+ }, function (_commonControlsEmailRecipientsEmailRecipientChips) {
21941
+ EmailRecipientChips = _commonControlsEmailRecipientsEmailRecipientChips.default;
21709
21942
  }],
21710
21943
  execute: function () {
21711
21944
  _export("default", ComposeMailPage = class ComposeMailPage extends PopupWindowPage {
@@ -21732,21 +21965,8 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
21732
21965
  }
21733
21966
  this.renderer = XNode.create("div", null, XNode.create(Form, null, XNode.create(HorizontalFormField, {
21734
21967
  label: "To:"
21735
- }, XNode.create(AtomChips, {
21736
- itemToChip: text => EmailRecipient.create({
21737
- emailAddressText: text
21738
- }),
21739
- items: this.model.recipients,
21740
- itemRenderer: item => XNode.create(Chip, {
21741
- label: item.name ? item.emailAddressText : void 0,
21742
- text: item.name || item.emailAddressText
21743
- }),
21744
- onKeyPressedItemToChip: (key, search) => key === "Enter" || key === "Comma" ? EmailRecipient.create({
21745
- emailAddressText: search.trim()
21746
- }) : void 0,
21747
- onBlurItemToChip: search => EmailRecipient.create({
21748
- emailAddressText: search.trim()
21749
- })
21968
+ }, XNode.create(EmailRecipientChips, {
21969
+ items: this.model.recipients
21750
21970
  })), XNode.create(FormField, {
21751
21971
  label: ""
21752
21972
  }, XNode.create(TitleEditor, {
@@ -22055,10 +22275,10 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
22055
22275
 
22056
22276
  AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/LimitedText");
22057
22277
 
22058
- System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../model/model", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "../../../common/controls/repeater/InfiniteRepeater", "./service/ConversationService", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/PageNavigator", "./ComposeMailPage", "../../../services/socket/sockets", "@web-atoms/web-controls/dist/basic/LimitedText"], function (_export, _context) {
22278
+ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../model/model", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "../../../common/controls/repeater/InfiniteRepeater", "./service/ConversationService", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/PageNavigator", "./ComposeMailPage", "../../../services/socket/sockets", "@web-atoms/web-controls/dist/basic/LimitedText"], function (_export, _context) {
22059
22279
  "use strict";
22060
22280
 
22061
- var __awaiter, __decorate, __metadata, ContentPage, Email, EmailRecipient, XNode, AtomRepeater, InfiniteRepeater, ConversationService, renderMail, InjectProperty, styled, Action, PageNavigator, ComposeMailPage, MailboxSocket, LimitedText, ConversationPage, css, id, fixLinks;
22281
+ var __awaiter, __decorate, __metadata, ContentPage, Email, EmailRecipient, XNode, AtomRepeater, InfiniteRepeater, ConversationService, renderMail, InjectProperty, Bind, styled, Action, PageNavigator, ComposeMailPage, MailboxSocket, LimitedText, ConversationPage, css, id, fixLinks;
22062
22282
  _export("default", void 0);
22063
22283
  return {
22064
22284
  setters: [function (_tslib) {
@@ -22081,6 +22301,8 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
22081
22301
  renderMail = _serviceConversationService.renderMail;
22082
22302
  }, function (_webAtomsCoreDistCoreInjectProperty) {
22083
22303
  InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
22304
+ }, function (_webAtomsCoreDistCoreBind) {
22305
+ Bind = _webAtomsCoreDistCoreBind.default;
22084
22306
  }, function (_webAtomsCoreDistStyleStyled) {
22085
22307
  styled = _webAtomsCoreDistStyleStyled.default;
22086
22308
  }, function (_webAtomsCoreDistViewModelAction) {
@@ -22130,6 +22352,18 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
22130
22352
  var _a;
22131
22353
  return __awaiter(this, void 0, void 0, function* () {
22132
22354
  const mb = this.parameters;
22355
+ this.titleRenderer = () => {
22356
+ var _a;
22357
+ return XNode.create("div", {
22358
+ "data-layout": "row"
22359
+ }, XNode.create("input", {
22360
+ value: Bind.twoWaysImmediate(() => this.search),
22361
+ type: "search",
22362
+ placeholder: "Search"
22363
+ }), XNode.create("span", {
22364
+ text: mb.lastEmail.senderID === mb.mailboxID ? (_a = mb.emailAddress) === null || _a === void 0 ? void 0 : _a.emailAddress : mb.lastEmail.senderName
22365
+ }));
22366
+ };
22133
22367
  this.title = mb.lastEmail.senderID === mb.mailboxID ? (_a = mb.emailAddress) === null || _a === void 0 ? void 0 : _a.emailAddress : mb.lastEmail.senderName;
22134
22368
  this.registerDisposable(yield this.resolve(MailboxSocket).join(mb.mailboxID.toString(), {
22135
22369
  newMail: () => {
@@ -22181,11 +22415,14 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
22181
22415
  })));
22182
22416
  });
22183
22417
  }
22184
- replyEmail(email) {
22418
+ replyEmail({
22419
+ email
22420
+ }) {
22185
22421
  var _a, _b;
22186
22422
  return __awaiter(this, void 0, void 0, function* () {
22187
22423
  const parse = JSON.parse(email.headers);
22188
22424
  const emailAddressText = (_b = (_a = parse === null || parse === void 0 ? void 0 : parse.replyTo) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : this.parameters.emailAddress.emailAddress;
22425
+ const name = email.senderName;
22189
22426
  const parentID = email.emailID;
22190
22427
  const child = Email.create({
22191
22428
  senderID: this.parameters.mailboxID,
@@ -22193,6 +22430,7 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
22193
22430
  parentID,
22194
22431
  received: false,
22195
22432
  recipients: [EmailRecipient.create({
22433
+ name,
22196
22434
  emailAddressText
22197
22435
  })],
22198
22436
  htmlBody: `<div contentEditable="true"><p><br/><br/><br/><br/><br/></p></div>`
@@ -22530,49 +22768,705 @@ System.register(["tslib", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dis
22530
22768
 
22531
22769
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage");
22532
22770
 
22533
- System.register(["@web-atoms/core/dist/core/Command", "../../common/commands/CommonCommands"], function (_export, _context) {
22771
+ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/core/dist/di/Inject", "../../../../services/EntityService", "../../../../model/model", "@web-atoms/date-time/dist/DateTime", "../../../../common/Sql"], function (_export, _context) {
22534
22772
  "use strict";
22535
22773
 
22536
- var Command, CommonCommands, AppCommands;
22537
- _export("default", void 0);
22774
+ var __awaiter, __decorate, __metadata, DISingleton, Inject, EntityService, AppFile, DateTime, Sql, hideActivityIndicator, CloudFileService;
22538
22775
  return {
22539
- setters: [function (_webAtomsCoreDistCoreCommand) {
22540
- Command = _webAtomsCoreDistCoreCommand.default;
22541
- }, function (_commonCommandsCommonCommands) {
22542
- CommonCommands = _commonCommandsCommonCommands.default;
22776
+ setters: [function (_tslib) {
22777
+ __awaiter = _tslib.__awaiter;
22778
+ __decorate = _tslib.__decorate;
22779
+ __metadata = _tslib.__metadata;
22780
+ }, function (_webAtomsCoreDistDiDISingleton) {
22781
+ DISingleton = _webAtomsCoreDistDiDISingleton.default;
22782
+ }, function (_webAtomsCoreDistDiInject) {
22783
+ Inject = _webAtomsCoreDistDiInject.Inject;
22784
+ }, function (_servicesEntityService) {
22785
+ EntityService = _servicesEntityService.default;
22786
+ }, function (_modelModel) {
22787
+ AppFile = _modelModel.AppFile;
22788
+ }, function (_webAtomsDateTimeDistDateTime) {
22789
+ DateTime = _webAtomsDateTimeDistDateTime.default;
22790
+ }, function (_commonSql) {
22791
+ Sql = _commonSql.Sql;
22543
22792
  }],
22544
22793
  execute: function () {
22545
- _export("default", AppCommands = class AppCommands extends CommonCommands {});
22546
- AppCommands.openHome = Command.create({
22547
- route: "/",
22548
- routeOrder: 200,
22549
- openPage: () => _context.import("../page/home/HomePage")
22550
- });
22551
- AppCommands.openMailboxList = Command.create({
22552
- route: "/mailboxes",
22553
- routeOrder: 100,
22554
- openPage: () => _context.import("../../common/pages/mailboxes/MailboxListPage")
22555
- });
22556
- AppCommands.openMails = Command.create({
22557
- route: "/mails",
22558
- routeOrder: 100,
22559
- openPage: () => _context.import("../page/mails/MailsPage")
22560
- });
22561
- }
22562
- };
22563
- });
22564
- //# sourceMappingURL=AppCommands.js.map
22565
-
22566
- AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/commands/AppCommands");
22567
-
22568
- System.register(["@web-atoms/core/dist/style/styled"], function (_export, _context) {
22569
- "use strict";
22570
-
22571
- var styled;
22572
- return {
22573
- setters: [function (_webAtomsCoreDistStyleStyled) {
22574
- styled = _webAtomsCoreDistStyleStyled.default;
22575
- }],
22794
+ hideActivityIndicator = true;
22795
+ CloudFileService = class CloudFileService {
22796
+ rootFolders() {
22797
+ return __awaiter(this, void 0, void 0, function* () {
22798
+ return this.entityService.query(AppFile).where(x => x.isFolder === true && x.parentID === null).include(x => x.creator).toArray();
22799
+ });
22800
+ }
22801
+ createFolder({
22802
+ name,
22803
+ parentID
22804
+ }) {
22805
+ return __awaiter(this, void 0, void 0, function* () {
22806
+ const dateCreated = DateTime.utcNow;
22807
+ return this.entityService.save(AppFile.create({
22808
+ name,
22809
+ parentID,
22810
+ isFolder: true,
22811
+ contentType: "folder",
22812
+ dateCreated,
22813
+ dateUpdated: dateCreated
22814
+ }));
22815
+ });
22816
+ }
22817
+ expand(folder) {
22818
+ return __awaiter(this, void 0, void 0, function* () {
22819
+ const parentID = folder.appFileID;
22820
+ const files = yield this.entityService.query(AppFile).where({
22821
+ parentID
22822
+ }, p => x => x.parentID === p.parentID && x.isFolder === true).toArray({
22823
+ hideActivityIndicator
22824
+ });
22825
+ const {
22826
+ children
22827
+ } = folder;
22828
+ for (const iterator of files) {
22829
+ if (children.some(c => c.appFileID === iterator.appFileID)) {
22830
+ continue;
22831
+ }
22832
+ children.add(iterator);
22833
+ }
22834
+ });
22835
+ }
22836
+ files({
22837
+ search = "",
22838
+ folder,
22839
+ cancelToken
22840
+ }) {
22841
+ return __awaiter(this, void 0, void 0, function* () {
22842
+ const parentID = folder.appFileID;
22843
+ let q = this.entityService.query(AppFile).where({
22844
+ parentID
22845
+ }, p => x => x.parentID === p.parentID);
22846
+ if (search) {
22847
+ if (!/\%/.test(search)) {
22848
+ search = search + "%";
22849
+ }
22850
+ q = q.where({
22851
+ search
22852
+ }, p => x => Sql.text.like(x.name, p.search));
22853
+ }
22854
+ const files = yield q.orderByDescending(x => x.isFolder).thenBy(x => x.name).toArray({
22855
+ cancelToken
22856
+ });
22857
+ return files;
22858
+ });
22859
+ }
22860
+ };
22861
+ __decorate([Inject, __metadata("design:type", EntityService)], CloudFileService.prototype, "entityService", void 0);
22862
+ CloudFileService = __decorate([DISingleton()], CloudFileService);
22863
+ _export("default", CloudFileService);
22864
+ }
22865
+ };
22866
+ });
22867
+ //# sourceMappingURL=CloudFileService.js.map
22868
+
22869
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/service/CloudFileService");
22870
+
22871
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/core/BindableProperty", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/core/AtomUI"], function (_export, _context) {
22872
+ "use strict";
22873
+
22874
+ var __decorate, __metadata, XNode, AtomControl, BindableProperty, styled, AncestorEnumerator, TreeView, expandSymbol;
22875
+ function findTreeElement(element) {
22876
+ if (element.matches("[data-layout=tree-view-item]")) {
22877
+ return element;
22878
+ }
22879
+ return AncestorEnumerator.findSelector(element, "[data-layout=tree-view-item]");
22880
+ }
22881
+ _export({
22882
+ findTreeElement: findTreeElement,
22883
+ default: void 0
22884
+ });
22885
+ return {
22886
+ setters: [function (_tslib) {
22887
+ __decorate = _tslib.__decorate;
22888
+ __metadata = _tslib.__metadata;
22889
+ }, function (_webAtomsCoreDistCoreXNode) {
22890
+ XNode = _webAtomsCoreDistCoreXNode.default;
22891
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
22892
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
22893
+ }, function (_webAtomsCoreDistCoreBindableProperty) {
22894
+ BindableProperty = _webAtomsCoreDistCoreBindableProperty.BindableProperty;
22895
+ }, function (_webAtomsCoreDistStyleStyled) {
22896
+ styled = _webAtomsCoreDistStyleStyled.default;
22897
+ }, function (_webAtomsCoreDistWebCoreAtomUI) {
22898
+ AncestorEnumerator = _webAtomsCoreDistWebCoreAtomUI.AncestorEnumerator;
22899
+ }],
22900
+ execute: function () {
22901
+ expandSymbol = Symbol("expand");
22902
+ styled.css`
22903
+
22904
+ display: flex;
22905
+ flex-direction: column;
22906
+ gap: 5px;
22907
+
22908
+ & [data-layout=tree-view-item] {
22909
+
22910
+ display: grid;
22911
+ grid-template-columns: auto 1fr auto;
22912
+ grid-template-rows: auto auto;
22913
+ align-items: center;
22914
+
22915
+ &[data-selected] {
22916
+ & > [data-element=label] {
22917
+ background-color: Highlight;
22918
+ color: HighlightText;
22919
+ }
22920
+ }
22921
+
22922
+ & > [data-element=action] {
22923
+ grid-row: 1;
22924
+ grid-column: 2;
22925
+ }
22926
+
22927
+ & > [data-element=label] {
22928
+ grid-row: 1;
22929
+ grid-column: 2;
22930
+ padding: 2px;
22931
+ padding-left: 5px;
22932
+ padding-right: 5px;
22933
+ }
22934
+
22935
+ & > [data-element=expand-collapse] {
22936
+
22937
+ grid-row: 1;
22938
+ grid-column: 1;
22939
+ padding-right: 5px;
22940
+
22941
+ &::before {
22942
+ content: "\\2b";
22943
+ }
22944
+ }
22945
+
22946
+ & > [data-element=children] {
22947
+
22948
+ display: none;
22949
+ padding: 5px;
22950
+ grid-row: 2;
22951
+ grid-column: 2;
22952
+
22953
+ }
22954
+
22955
+ &[data-expanded] {
22956
+
22957
+ & > [data-element=expand-collapse] {
22958
+
22959
+ &::before {
22960
+ content: "\\f068";
22961
+ }
22962
+
22963
+ }
22964
+
22965
+ & > [data-element=children] {
22966
+ display: flex;
22967
+ flex-direction: column;
22968
+ gap: 5px;
22969
+ }
22970
+ }
22971
+ }
22972
+
22973
+ `.installGlobal("[data-layout=tree-view]");
22974
+ ;
22975
+ _export("default", TreeView = class TreeView extends AtomControl {
22976
+ constructor() {
22977
+ super(...arguments);
22978
+ this.map = new WeakMap();
22979
+ }
22980
+ onPropertyChanging(name, oldValue, newValue) {
22981
+ if (name === "selectedItem") {
22982
+ if (oldValue) {
22983
+ const selectedElement = this.map.get(oldValue);
22984
+ if (selectedElement) {
22985
+ selectedElement.removeAttribute("data-selected");
22986
+ }
22987
+ }
22988
+ if (newValue) {
22989
+ this.selectItem(newValue);
22990
+ }
22991
+ }
22992
+ }
22993
+ selectItem(newValue) {
22994
+ if (!this.childrenProperty) {
22995
+ return;
22996
+ }
22997
+ const element = this.map.get(newValue);
22998
+ if (!element) {
22999
+ console.error(`Item not in the tree`);
23000
+ return;
23001
+ }
23002
+ element.setAttribute("data-selected", "true");
23003
+ }
23004
+ onPropertyChanged(name) {
23005
+ switch (name) {
23006
+ case "root":
23007
+ case "childrenProperty":
23008
+ case "labelRenderer":
23009
+ case "collapseIconRenderer":
23010
+ case "actionRenderer":
23011
+ const rootElement = this.element.firstElementChild;
23012
+ rootElement === null || rootElement === void 0 ? void 0 : rootElement.dispose();
23013
+ if (this.root && this.childrenProperty && this.labelRenderer && this.collapseIconRenderer) {
23014
+ this.element.innerHTML = "";
23015
+ this.createElement(this.element, this.root, -1);
23016
+ this.expand(this.root);
23017
+ if (this.selectedItem) {
23018
+ this.selectItem(this.selectedItem);
23019
+ }
23020
+ }
23021
+ break;
23022
+ case "selectedItem":
23023
+ if (this.selectedItem) {
23024
+ this.selectItem(this.selectedItem);
23025
+ }
23026
+ break;
23027
+ }
23028
+ }
23029
+ expand(item) {
23030
+ const element = this.map.get(item);
23031
+ if (element) {
23032
+ this.expandElement(element);
23033
+ }
23034
+ }
23035
+ preCreate() {
23036
+ this.root = null;
23037
+ this.selectedItem = null;
23038
+ this.childrenProperty = null;
23039
+ this.actionRenderer = null;
23040
+ this.element.setAttribute("data-layout", "tree-view");
23041
+ this.labelRenderer = item => {
23042
+ var _a, _b;
23043
+ return XNode.create("span", {
23044
+ text: (_b = (_a = item.label) !== null && _a !== void 0 ? _a : item.name) !== null && _b !== void 0 ? _b : item
23045
+ });
23046
+ };
23047
+ this.collapseIconRenderer = item => XNode.create("i", {
23048
+ "data-click-event": "expand-collapse-item",
23049
+ class: "fas"
23050
+ });
23051
+ this.runAfterInit(() => {
23052
+ if (this.root && !this.element.firstElementChild) {
23053
+ if (this.childrenProperty) {
23054
+ this.createElement(this.element, this.root);
23055
+ this.expand(this.root);
23056
+ }
23057
+ if (this.selectedItem) {
23058
+ this.selectItem(this.selectedItem);
23059
+ }
23060
+ }
23061
+ });
23062
+ this.bindEvent(this.element, "selectItem", ce => {
23063
+ const element = findTreeElement(ce.target);
23064
+ if (element === null || element === void 0 ? void 0 : element.dataItem) {
23065
+ this.selectedItem = element.dataItem;
23066
+ }
23067
+ });
23068
+ this.bindEvent(this.element, "toggleExpand", ce => {
23069
+ const element = findTreeElement(ce.target);
23070
+ this.expandElement(element);
23071
+ });
23072
+ }
23073
+ expandElement(element) {
23074
+ if (element === null || element === void 0 ? void 0 : element.dataItem) {
23075
+ if (element.getAttribute("data-expanded")) {
23076
+ element.removeAttribute("data-expanded");
23077
+ element.dispatchEvent(new CustomEvent("itemCollapsed", {
23078
+ detail: element.dataItem,
23079
+ bubbles: true,
23080
+ cancelable: true
23081
+ }));
23082
+ } else {
23083
+ element.setAttribute("data-expanded", "true");
23084
+ element.dispatchEvent(new CustomEvent("itemExpanded", {
23085
+ detail: element.dataItem,
23086
+ bubbles: true,
23087
+ cancelable: true
23088
+ }));
23089
+ }
23090
+ }
23091
+ }
23092
+ createElement(parent, item, insertIndex = -1) {
23093
+ var _a, _b, _c, _d, _e, _f;
23094
+ const element = document.createElement("div");
23095
+ element.setAttribute("data-layout", "tree-view-item");
23096
+ element.dataItem = item;
23097
+ element.parentItem = ((_a = parent.parentElement) !== null && _a !== void 0 ? _a : parent).dataItem;
23098
+ this.map.set(item, element);
23099
+ const children = this.childrenProperty(item);
23100
+ if (!children) {
23101
+ throw new Error("Children array must not be empty");
23102
+ }
23103
+ const childrenElement = document.createElement("div");
23104
+ childrenElement.setAttribute("data-element", "children");
23105
+ element.appendChild(childrenElement);
23106
+ const watcher = children.watch((target, event, index, child) => {
23107
+ if (event === "add" || event === "set") {
23108
+ this.createElement(childrenElement, child, index);
23109
+ return;
23110
+ }
23111
+ if (event === "remove") {
23112
+ for (const iterator of Array.from(childrenElement.children)) {
23113
+ if (iterator.dataItem === child) {
23114
+ iterator.remove();
23115
+ return;
23116
+ }
23117
+ }
23118
+ }
23119
+ for (const iterator of Array.from(childrenElement.children)) {
23120
+ iterator === null || iterator === void 0 ? void 0 : iterator.dispose();
23121
+ }
23122
+ for (const iterator of children) {
23123
+ this.createElement(element, iterator);
23124
+ }
23125
+ });
23126
+ element.dispose = () => {
23127
+ watcher.dispose();
23128
+ for (const iterator of Array.from(childrenElement.children)) {
23129
+ iterator === null || iterator === void 0 ? void 0 : iterator.dispose();
23130
+ }
23131
+ element.remove();
23132
+ };
23133
+ const actionElement = (_b = this.actionRenderer) === null || _b === void 0 ? void 0 : _b.call(this, item);
23134
+ const collapseElement = this.collapseIconRenderer(item);
23135
+ const labelElement = this.labelRenderer(item);
23136
+ if (labelElement) {
23137
+ const a = (_c = labelElement.attributes) !== null && _c !== void 0 ? _c : labelElement.attributes = {};
23138
+ a["data-element"] = "label";
23139
+ (_d = a["data-click-event"]) !== null && _d !== void 0 ? _d : a["data-click-event"] = "select-item";
23140
+ this.render(XNode.create("div", null, labelElement), element, this);
23141
+ }
23142
+ if (actionElement) {
23143
+ ((_e = actionElement.attributes) !== null && _e !== void 0 ? _e : actionElement.attributes = {})["data-element"] = "action";
23144
+ this.render(XNode.create("div", null, actionElement), element, this);
23145
+ }
23146
+ if (collapseElement) {
23147
+ const a = (_f = collapseElement.attributes) !== null && _f !== void 0 ? _f : collapseElement.attributes = {};
23148
+ a["data-element"] = "expand-collapse";
23149
+ a["data-click-event"] = "toggle-expand";
23150
+ this.render(XNode.create("div", null, collapseElement), element, this);
23151
+ }
23152
+ for (const iterator of children) {
23153
+ this.createElement(childrenElement, iterator);
23154
+ }
23155
+ parent.appendChild(element);
23156
+ return element;
23157
+ }
23158
+ });
23159
+ __decorate([BindableProperty, __metadata("design:type", Object)], TreeView.prototype, "root", void 0);
23160
+ __decorate([BindableProperty, __metadata("design:type", Object)], TreeView.prototype, "selectedItem", void 0);
23161
+ }
23162
+ };
23163
+ });
23164
+ //# sourceMappingURL=TreeView.js.map
23165
+
23166
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/tree/TreeView");
23167
+
23168
+ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/UploadEvent", "../../../services/files/LocalFileService", "@web-atoms/web-controls/dist/basic/AtomRepeater", "../../../common/controls/tree/TreeView", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/view-model/Action", "./service/CloudFileService", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/style/styled", "../../../common/NumberFormats"], function (_export, _context) {
23169
+ "use strict";
23170
+
23171
+ var __awaiter, __decorate, __metadata, ContentPage, XNode, UploadEvent, acceptDocumentAndMedia, AtomRepeater, TreeView, Bind, Action, CloudFileService, InjectProperty, styled, toFileSize, FolderPage, css;
23172
+ _export("default", void 0);
23173
+ return {
23174
+ setters: [function (_tslib) {
23175
+ __awaiter = _tslib.__awaiter;
23176
+ __decorate = _tslib.__decorate;
23177
+ __metadata = _tslib.__metadata;
23178
+ }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
23179
+ ContentPage = _webAtomsWebControlsDistMobileAppMobileApp.ContentPage;
23180
+ }, function (_webAtomsCoreDistCoreXNode) {
23181
+ XNode = _webAtomsCoreDistCoreXNode.default;
23182
+ }, function (_webAtomsWebControlsDistBasicUploadEvent) {
23183
+ UploadEvent = _webAtomsWebControlsDistBasicUploadEvent.default;
23184
+ }, function (_servicesFilesLocalFileService) {
23185
+ acceptDocumentAndMedia = _servicesFilesLocalFileService.acceptDocumentAndMedia;
23186
+ }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
23187
+ AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
23188
+ }, function (_commonControlsTreeTreeView) {
23189
+ TreeView = _commonControlsTreeTreeView.default;
23190
+ }, function (_webAtomsCoreDistCoreBind) {
23191
+ Bind = _webAtomsCoreDistCoreBind.default;
23192
+ }, function (_webAtomsCoreDistViewModelAction) {
23193
+ Action = _webAtomsCoreDistViewModelAction.default;
23194
+ }, function (_serviceCloudFileService) {
23195
+ CloudFileService = _serviceCloudFileService.default;
23196
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
23197
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
23198
+ }, function (_webAtomsCoreDistStyleStyled) {
23199
+ styled = _webAtomsCoreDistStyleStyled.default;
23200
+ }, function (_commonNumberFormats) {
23201
+ toFileSize = _commonNumberFormats.toFileSize;
23202
+ }],
23203
+ execute: function () {
23204
+ css = styled.css`
23205
+ display: grid;
23206
+ grid-template-columns: 200px 1fr;
23207
+ gap: 5px;
23208
+ & .folder-tree {
23209
+ grid-column: 1;
23210
+ grid-row: 1;
23211
+ }
23212
+ & .file-list {
23213
+ grid-row: 1;
23214
+ grid-column: 2;
23215
+ }
23216
+ `.installLocal();
23217
+ _export("default", FolderPage = class FolderPage extends ContentPage {
23218
+ constructor() {
23219
+ super(...arguments);
23220
+ this.version = 1;
23221
+ }
23222
+ init() {
23223
+ var _a;
23224
+ var _b;
23225
+ return __awaiter(this, void 0, void 0, function* () {
23226
+ this.search = "";
23227
+ (_a = (_b = this.parameters).children) !== null && _a !== void 0 ? _a : _b.children = [];
23228
+ this.root = this.parameters;
23229
+ this.selectedFolder = this.root;
23230
+ this.titleRenderer = () => XNode.create("div", {
23231
+ "data-layout": "row"
23232
+ }, XNode.create("div", {
23233
+ text: Bind.oneWay(() => this.selectedFolder.name)
23234
+ }), XNode.create("i", Object.assign({
23235
+ class: "fas fa-upload",
23236
+ "data-extra": Bind.oneWay(() => JSON.stringify({
23237
+ parentID: this.selectedFolder.appFileID
23238
+ })),
23239
+ title: "Upload"
23240
+ }, UploadEvent.AttachUploadAction({
23241
+ accept: acceptDocumentAndMedia
23242
+ }))), XNode.create("span", Object.assign({
23243
+ text: "Upload",
23244
+ "data-extra": Bind.oneWay(() => JSON.stringify({
23245
+ parentID: this.selectedFolder.appFileID
23246
+ }))
23247
+ }, UploadEvent.AttachUploadAction({
23248
+ accept: acceptDocumentAndMedia
23249
+ }))), XNode.create("span", {
23250
+ text: "|"
23251
+ }), XNode.create("i", {
23252
+ "data-click-event": "new-folder",
23253
+ class: "fas fa-plus"
23254
+ }), XNode.create("span", {
23255
+ "data-click-event": "new-folder",
23256
+ text: "Folder"
23257
+ }));
23258
+ this.renderer = XNode.create("div", {
23259
+ class: css
23260
+ }, XNode.create(TreeView, {
23261
+ class: "folder-tree",
23262
+ childrenProperty: item => {
23263
+ var _a;
23264
+ return (_a = item.children) !== null && _a !== void 0 ? _a : item.children = [];
23265
+ },
23266
+ root: this.root,
23267
+ selectedItem: Bind.twoWaysImmediate(() => this.selectedFolder)
23268
+ }), XNode.create(AtomRepeater, {
23269
+ class: "file-list",
23270
+ for: "table",
23271
+ items: Bind.oneWayAsync((c, e, cancelToken) => this.cloudFileService.files({
23272
+ search: this.search,
23273
+ folder: this.selectedFolder,
23274
+ version: this.version,
23275
+ cancelToken
23276
+ })),
23277
+ itemRenderer: item => XNode.create("tr", null, XNode.create("td", {
23278
+ text: item.name
23279
+ }), XNode.create("td", {
23280
+ text: toFileSize(item.fileSize)
23281
+ }))
23282
+ }));
23283
+ });
23284
+ }
23285
+ newFolder() {
23286
+ return __awaiter(this, void 0, void 0, function* () {
23287
+ const name = prompt("Enter name of the folder");
23288
+ if (!name) {
23289
+ return;
23290
+ }
23291
+ const parentID = this.selectedFolder.appFileID;
23292
+ const folder = yield this.cloudFileService.createFolder({
23293
+ name,
23294
+ parentID
23295
+ });
23296
+ this.selectedFolder.children.add(folder);
23297
+ });
23298
+ }
23299
+ onItemExpanded(item) {
23300
+ return __awaiter(this, void 0, void 0, function* () {
23301
+ yield this.cloudFileService.expand(item);
23302
+ });
23303
+ }
23304
+ onFilesUploaded() {
23305
+ return __awaiter(this, void 0, void 0, function* () {
23306
+ this.version++;
23307
+ });
23308
+ }
23309
+ });
23310
+ __decorate([InjectProperty, __metadata("design:type", CloudFileService)], FolderPage.prototype, "cloudFileService", void 0);
23311
+ __decorate([Action({
23312
+ onEvent: "new-folder"
23313
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], FolderPage.prototype, "newFolder", null);
23314
+ __decorate([Action({
23315
+ onEvent: "item-expanded"
23316
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", Promise)], FolderPage.prototype, "onItemExpanded", null);
23317
+ __decorate([Action({
23318
+ onEvent: "files-available"
23319
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], FolderPage.prototype, "onFilesUploaded", null);
23320
+ }
23321
+ };
23322
+ });
23323
+ //# sourceMappingURL=FolderPage.js.map
23324
+
23325
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/FolderPage");
23326
+
23327
+ System.register(["tslib", "@web-atoms/core/dist/core/InjectProperty", "./service/CloudFileService", "@web-atoms/web-controls/dist/mobile-app/MasterDetailPage", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/view-model/Action", "./FolderPage"], function (_export, _context) {
23328
+ "use strict";
23329
+
23330
+ var __awaiter, __decorate, __metadata, InjectProperty, CloudFileService, MasterDetailPage, styled, XNode, AtomRepeater, Bind, Action, FolderPage, FilesPage, css;
23331
+ _export("default", void 0);
23332
+ return {
23333
+ setters: [function (_tslib) {
23334
+ __awaiter = _tslib.__awaiter;
23335
+ __decorate = _tslib.__decorate;
23336
+ __metadata = _tslib.__metadata;
23337
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
23338
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
23339
+ }, function (_serviceCloudFileService) {
23340
+ CloudFileService = _serviceCloudFileService.default;
23341
+ }, function (_webAtomsWebControlsDistMobileAppMasterDetailPage) {
23342
+ MasterDetailPage = _webAtomsWebControlsDistMobileAppMasterDetailPage.default;
23343
+ }, function (_webAtomsCoreDistStyleStyled) {
23344
+ styled = _webAtomsCoreDistStyleStyled.default;
23345
+ }, function (_webAtomsCoreDistCoreXNode) {
23346
+ XNode = _webAtomsCoreDistCoreXNode.default;
23347
+ }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
23348
+ AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
23349
+ }, function (_webAtomsCoreDistCoreBind) {
23350
+ Bind = _webAtomsCoreDistCoreBind.default;
23351
+ }, function (_webAtomsCoreDistViewModelAction) {
23352
+ Action = _webAtomsCoreDistViewModelAction.default;
23353
+ }, function (_FolderPage) {
23354
+ FolderPage = _FolderPage.default;
23355
+ }],
23356
+ execute: function () {
23357
+ css = styled.css`
23358
+ &[data-page-type=master-detail] > [data-page-element=content][data-mode=desktop] {
23359
+ grid-template-columns: 150px 1fr auto;
23360
+ }
23361
+ `.installLocal();
23362
+ _export("default", FilesPage = class FilesPage extends MasterDetailPage {
23363
+ init() {
23364
+ var _a;
23365
+ return __awaiter(this, void 0, void 0, function* () {
23366
+ this.element.className = css;
23367
+ this.selectedFolder = null;
23368
+ this.rootFolders = yield this.cloudFileService.rootFolders();
23369
+ this.actionRenderer = () => XNode.create("i", {
23370
+ class: "fas fa-plus",
23371
+ "data-click-event": "create-folder"
23372
+ });
23373
+ this.selectedFolder = (_a = this.rootFolders[0]) !== null && _a !== void 0 ? _a : null;
23374
+ this.renderer = XNode.create("div", null, XNode.create(AtomRepeater, {
23375
+ items: this.rootFolders,
23376
+ selectOnClick: true,
23377
+ selectedItem: Bind.twoWaysImmediate(() => this.selectedFolder),
23378
+ "data-list-selection": "default",
23379
+ "data-selection-updated-event": "on-selection-changed",
23380
+ itemRenderer: item => XNode.create("div", null, XNode.create("div", {
23381
+ text: item.name
23382
+ }), XNode.create("div", {
23383
+ text: item.creator.displayName
23384
+ }))
23385
+ }));
23386
+ });
23387
+ }
23388
+ onSelectionChanged() {
23389
+ if (!this.selectedFolder) {
23390
+ return;
23391
+ }
23392
+ this.openDetail(FolderPage, this.selectedFolder);
23393
+ }
23394
+ createFolder() {
23395
+ return __awaiter(this, void 0, void 0, function* () {
23396
+ const name = prompt("Enter name of the folder you want to create");
23397
+ if (!name) {
23398
+ return;
23399
+ }
23400
+ const folder = yield this.cloudFileService.createFolder({
23401
+ name
23402
+ });
23403
+ this.rootFolders.add(folder);
23404
+ this.selectedFolder = folder;
23405
+ });
23406
+ }
23407
+ });
23408
+ __decorate([InjectProperty, __metadata("design:type", CloudFileService)], FilesPage.prototype, "cloudFileService", void 0);
23409
+ __decorate([Action({
23410
+ onEvent: "on-selection-changed"
23411
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], FilesPage.prototype, "onSelectionChanged", null);
23412
+ __decorate([Action({
23413
+ onEvent: "create-folder"
23414
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], FilesPage.prototype, "createFolder", null);
23415
+ }
23416
+ };
23417
+ });
23418
+ //# sourceMappingURL=FilesPage.js.map
23419
+
23420
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/FilesPage");
23421
+
23422
+ System.register(["@web-atoms/core/dist/core/Command", "../../common/commands/CommonCommands"], function (_export, _context) {
23423
+ "use strict";
23424
+
23425
+ var Command, CommonCommands, AppCommands;
23426
+ _export("default", void 0);
23427
+ return {
23428
+ setters: [function (_webAtomsCoreDistCoreCommand) {
23429
+ Command = _webAtomsCoreDistCoreCommand.default;
23430
+ }, function (_commonCommandsCommonCommands) {
23431
+ CommonCommands = _commonCommandsCommonCommands.default;
23432
+ }],
23433
+ execute: function () {
23434
+ _export("default", AppCommands = class AppCommands extends CommonCommands {});
23435
+ AppCommands.openHome = Command.create({
23436
+ route: "/",
23437
+ routeOrder: 200,
23438
+ openPage: () => _context.import("../page/home/HomePage")
23439
+ });
23440
+ AppCommands.openMailboxList = Command.create({
23441
+ route: "/mailboxes",
23442
+ routeOrder: 100,
23443
+ openPage: () => _context.import("../../common/pages/mailboxes/MailboxListPage")
23444
+ });
23445
+ AppCommands.openMails = Command.create({
23446
+ route: "/mails",
23447
+ routeOrder: 100,
23448
+ openPage: () => _context.import("../page/mails/MailsPage")
23449
+ });
23450
+ AppCommands.openFiles = Command.create({
23451
+ route: "/files",
23452
+ routeOrder: 100,
23453
+ openPage: () => _context.import("../page/files/FilesPage")
23454
+ });
23455
+ }
23456
+ };
23457
+ });
23458
+ //# sourceMappingURL=AppCommands.js.map
23459
+
23460
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/commands/AppCommands");
23461
+
23462
+ System.register(["@web-atoms/core/dist/style/styled"], function (_export, _context) {
23463
+ "use strict";
23464
+
23465
+ var styled;
23466
+ return {
23467
+ setters: [function (_webAtomsCoreDistStyleStyled) {
23468
+ styled = _webAtomsCoreDistStyleStyled.default;
23469
+ }],
22576
23470
  execute: function () {
22577
23471
  styled.css`
22578
23472
 
@@ -22681,6 +23575,15 @@ body {
22681
23575
  & ul {
22682
23576
  padding-inline-start: 15px;
22683
23577
  }
23578
+
23579
+ & input[type=search] {
23580
+ border: none;
23581
+ outline: none;
23582
+ border-radius: 9999px;
23583
+ padding-right: 10px;
23584
+ padding-left: 25px;
23585
+ background: canvas url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' class='bi bi-search' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'%3E%3C/path%3E%3C/svg%3E") no-repeat 5px center;
23586
+ }
22684
23587
  }
22685
23588
 
22686
23589
  `.withId("global-styles").withOrder("medium").installGlobal();
@@ -23030,9 +23933,13 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-con
23030
23933
  label: "Mails",
23031
23934
  commandLink: AppCommands.openMails.displayRoute({})
23032
23935
  }), XNode.create(MenuItem, {
23033
- icon: "fas fa-folder",
23936
+ icon: "fas fa-envelopes-bulk",
23034
23937
  label: "Mailboxes",
23035
23938
  commandLink: AppCommands.openMailboxList.displayRoute({})
23939
+ }), XNode.create(MenuItem, {
23940
+ icon: "fas fa-folder",
23941
+ label: "Files",
23942
+ commandLink: AppCommands.openFiles.displayRoute({})
23036
23943
  }));
23037
23944
  });
23038
23945
  }