@social-mail/social-mail-client 1.0.20 → 1.0.21

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 (43) hide show
  1. package/dist/admin/AdminAppIndex.pack.js +222 -147
  2. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  3. package/dist/admin/AdminAppIndex.pack.min.js +11 -4
  4. package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
  5. package/dist/admin/pages/domains/services/AdminDomainService.js +1 -1
  6. package/dist/admin/pages/domains/services/AdminDomainService.js.map +1 -1
  7. package/dist/admin/pages/users/EditUserPage.js +65 -69
  8. package/dist/admin/pages/users/EditUserPage.js.map +1 -1
  9. package/dist/admin/pages/users/UserListPage.js +26 -4
  10. package/dist/admin/pages/users/UserListPage.js.map +1 -1
  11. package/dist/common/controls/password/PasswordStrength.js +59 -0
  12. package/dist/common/controls/password/PasswordStrength.js.map +1 -0
  13. package/dist/common/pages/user/LoginPage.js +44 -7
  14. package/dist/common/pages/user/LoginPage.js.map +1 -1
  15. package/dist/common/validators/Validators.js +27 -0
  16. package/dist/common/validators/Validators.js.map +1 -0
  17. package/dist/model/model.js +4 -2
  18. package/dist/model/model.js.map +1 -1
  19. package/dist/style/OverrideAppStyle.js +6 -0
  20. package/dist/style/OverrideAppStyle.js.map +1 -1
  21. package/dist/tsconfig.tsbuildinfo +1 -1
  22. package/dist/web/AppIndex.pack.js +149 -11
  23. package/dist/web/AppIndex.pack.js.map +1 -1
  24. package/dist/web/AppIndex.pack.min.js +11 -4
  25. package/dist/web/AppIndex.pack.min.js.map +1 -1
  26. package/dist/web/page/mails/MailsPage.js +1 -1
  27. package/dist/web/page/mails/MailsPage.js.map +1 -1
  28. package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.d.ts.map +1 -1
  29. package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.js +1 -0
  30. package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.js.map +1 -1
  31. package/node_modules/@web-atoms/web-controls/dist/tsconfig.tsbuildinfo +1 -1
  32. package/node_modules/@web-atoms/web-controls/package.json +1 -1
  33. package/node_modules/@web-atoms/web-controls/src/mobile-app/MobileApp.tsx +1 -0
  34. package/package.json +2 -2
  35. package/src/admin/pages/domains/services/AdminDomainService.ts +2 -1
  36. package/src/admin/pages/users/EditUserPage.tsx +58 -57
  37. package/src/admin/pages/users/UserListPage.tsx +15 -2
  38. package/src/common/controls/password/PasswordStrength.tsx +43 -0
  39. package/src/common/pages/user/LoginPage.tsx +52 -3
  40. package/src/common/validators/Validators.ts +27 -0
  41. package/src/model/model.ts +6 -5
  42. package/src/style/OverrideAppStyle.ts +6 -0
  43. package/src/web/page/mails/MailsPage.tsx +1 -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","@web-atoms/web-controls","reflect-metadata","@web-atoms/date-time","@web-atoms/data-styles","@web-atoms/entity"],
1867
- ["@social-mail/social-mail-client/dist/admin/AdminAppIndex","@web-atoms/core/dist/Pack","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/AtomLoader","@web-atoms/core/dist/services/JsonService","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/di/RegisterSingleton","@web-atoms/core/dist/di/Register","@web-atoms/core/dist/core/types","reflect-metadata","@web-atoms/core/dist/core/AtomMap","@web-atoms/core/dist/di/ServiceCollection","@web-atoms/core/dist/di/TypeKey","@web-atoms/date-time/dist/DateTime","@web-atoms/date-time/dist/TimeSpan","@web-atoms/core/dist/services/ReferenceService","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/core/AtomUri","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/core/dist/core/Command","@web-atoms/core/dist/core/EventScope","@web-atoms/core/dist/core/Route","@web-atoms/core/dist/core/InheritedProperty","@web-atoms/core/dist/core/AtomBinder","@web-atoms/core/dist/core/sleep","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/ExpressionParser","@web-atoms/core/dist/services/NavigationService","@web-atoms/core/dist/core/AtomComponent","@web-atoms/core/dist/App","@web-atoms/core/dist/core/AtomDispatcher","@web-atoms/core/dist/di/ServiceProvider","@web-atoms/core/dist/core/TransientDisposable","@web-atoms/core/dist/di/Inject","@web-atoms/core/dist/services/BusyIndicatorService","@web-atoms/core/dist/core/AtomBridge","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/AtomWatcher","@web-atoms/core/dist/core/PropertyMap","@web-atoms/core/dist/core/FormattedString","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/WebImage","@web-atoms/core/dist/web/styles/AtomStyle","@web-atoms/core/dist/web/styles/AtomStyleSheet","@web-atoms/core/dist/web/services/PopupService","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/services/PopupWindow","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/desktop-app/DesktopApp","@social-mail/social-mail-client/dist/style/GlobalStyle","@web-atoms/core/dist/core/AtomList","@social-mail/social-mail-client/dist/style/OverrideAppStyle","@web-atoms/data-styles/data-styles","@social-mail/social-mail-client/dist/services/UserService","@social-mail/social-mail-client/dist/services/EntityService","@web-atoms/entity/dist/services/BaseEntityService","@web-atoms/entity/dist/models/Cloner","@web-atoms/entity/dist/models/cloneSource","@web-atoms/entity/dist/models/IEntityModel","@web-atoms/entity/dist/services/HttpSession","@web-atoms/core/dist/services/http/JsonError","@web-atoms/entity/dist/services/mergeProperties","@web-atoms/entity/dist/services/Query","@web-atoms/entity/dist/services/StringHelper","@web-atoms/entity/dist/services/resolve","@social-mail/social-mail-client/dist/services/BusyProgress","@social-mail/social-mail-client/dist/model/model","@social-mail/social-mail-client/dist/common/SocialMailApp","@web-atoms/core/dist/core/InjectProperty","@social-mail/social-mail-client/dist/admin/commands/AdminCommands","@social-mail/social-mail-client/dist/admin/pages/home/AdminHome","@social-mail/social-mail-client/dist/admin/pages/domains/DomainListPage","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Colors","@web-atoms/core/dist/core/WatchProperty","@web-atoms/web-controls/dist/basic/InlinePopup","@web-atoms/web-controls/dist/basic/styles/inline-popup-style","@web-atoms/web-controls/dist/basic/MergeNode","@web-atoms/web-controls/dist/basic/ItemPath","@web-atoms/web-controls/dist/basic/styles/ui-display-none-style","@web-atoms/web-controls/dist/basic/styles/popup-style","@web-atoms/web-controls/dist/basic/styles/suggestion-popup","@web-atoms/web-controls/dist/basic/styles/repeater-style","@social-mail/social-mail-client/dist/admin/pages/domains/services/AdminDomainService","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/view-model/Action","@social-mail/social-mail-client/dist/admin/pages/domains/edit/EditDomainPage","@web-atoms/web-controls/dist/basic/Form","@social-mail/social-mail-client/dist/common/controls/form/RequiredFormField","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/styles/form-field-style","@web-atoms/web-controls/dist/basic/PasswordBox","@web-atoms/web-controls/dist/basic/styles/password-box-style","@web-atoms/web-controls/dist/basic/Checkbox","@web-atoms/web-controls/dist/basic/styles/checkbox-style","@web-atoms/web-controls/dist/basic/Expander","@web-atoms/web-controls/dist/basic/styles/expander-style","@social-mail/social-mail-client/dist/common/controls/buttons/IconButton","@social-mail/social-mail-client/dist/admin/pages/domains/edit/DomainKeySetupPage","@social-mail/social-mail-client/dist/common/controls/buttons/CopyIcon","@social-mail/social-mail-client/dist/admin/pages/domains/domain-user/DomainUserEditor","@social-mail/social-mail-client/dist/common/controls/drop-downs/user/UserDropDown","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/web-controls/dist/basic/styles/drop-down-style","@social-mail/social-mail-client/dist/admin/pages/users/services/AdminUserService","@social-mail/social-mail-client/dist/common/Sql","@social-mail/social-mail-client/dist/admin/pages/users/UserListPage","@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater","@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage","@social-mail/social-mail-client/dist/admin/pages/domains/choose/ChooseDomainPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage","@web-atoms/web-controls/dist/basic/ComboBox","@social-mail/social-mail-client/dist/common/NumberFormats","@social-mail/social-mail-client/dist/admin/pages/relays/edit/EditRelayPage","@social-mail/social-mail-client/dist/common/pages/user/LoginPage","@social-mail/social-mail-client/dist/admin/drawer/AdminDrawer","@social-mail/social-mail-client/dist/common/controls/menu/MenuItem","@social-mail/social-mail-client/dist/services/files/LocalFileService","@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/admin/AdminAppIndex","@web-atoms/core/dist/Pack","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/AtomLoader","@web-atoms/core/dist/services/JsonService","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/di/RegisterSingleton","@web-atoms/core/dist/di/Register","@web-atoms/core/dist/core/types","reflect-metadata","@web-atoms/core/dist/core/AtomMap","@web-atoms/core/dist/di/ServiceCollection","@web-atoms/core/dist/di/TypeKey","@web-atoms/date-time/dist/DateTime","@web-atoms/date-time/dist/TimeSpan","@web-atoms/core/dist/services/ReferenceService","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/core/AtomUri","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/core/dist/core/Command","@web-atoms/core/dist/core/EventScope","@web-atoms/core/dist/core/Route","@web-atoms/core/dist/core/InheritedProperty","@web-atoms/core/dist/core/AtomBinder","@web-atoms/core/dist/core/sleep","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/ExpressionParser","@web-atoms/core/dist/services/NavigationService","@web-atoms/core/dist/core/AtomComponent","@web-atoms/core/dist/App","@web-atoms/core/dist/core/AtomDispatcher","@web-atoms/core/dist/di/ServiceProvider","@web-atoms/core/dist/core/TransientDisposable","@web-atoms/core/dist/di/Inject","@web-atoms/core/dist/services/BusyIndicatorService","@web-atoms/core/dist/core/AtomBridge","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/AtomWatcher","@web-atoms/core/dist/core/PropertyMap","@web-atoms/core/dist/core/FormattedString","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/WebImage","@web-atoms/core/dist/web/styles/AtomStyle","@web-atoms/core/dist/web/styles/AtomStyleSheet","@web-atoms/core/dist/web/services/PopupService","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/services/PopupWindow","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/desktop-app/DesktopApp","@social-mail/social-mail-client/dist/style/GlobalStyle","@web-atoms/core/dist/core/AtomList","@social-mail/social-mail-client/dist/style/OverrideAppStyle","@web-atoms/data-styles/data-styles","@social-mail/social-mail-client/dist/services/UserService","@social-mail/social-mail-client/dist/services/EntityService","@web-atoms/entity/dist/services/BaseEntityService","@web-atoms/entity/dist/models/Cloner","@web-atoms/entity/dist/models/cloneSource","@web-atoms/entity/dist/models/IEntityModel","@web-atoms/entity/dist/services/HttpSession","@web-atoms/core/dist/services/http/JsonError","@web-atoms/entity/dist/services/mergeProperties","@web-atoms/entity/dist/services/Query","@web-atoms/entity/dist/services/StringHelper","@web-atoms/entity/dist/services/resolve","@social-mail/social-mail-client/dist/services/BusyProgress","@social-mail/social-mail-client/dist/model/model","@social-mail/social-mail-client/dist/common/SocialMailApp","@web-atoms/core/dist/core/InjectProperty","@social-mail/social-mail-client/dist/admin/commands/AdminCommands","@social-mail/social-mail-client/dist/admin/pages/home/AdminHome","@social-mail/social-mail-client/dist/admin/pages/domains/DomainListPage","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Colors","@web-atoms/core/dist/core/WatchProperty","@web-atoms/web-controls/dist/basic/InlinePopup","@web-atoms/web-controls/dist/basic/styles/inline-popup-style","@web-atoms/web-controls/dist/basic/MergeNode","@web-atoms/web-controls/dist/basic/ItemPath","@web-atoms/web-controls/dist/basic/styles/ui-display-none-style","@web-atoms/web-controls/dist/basic/styles/popup-style","@web-atoms/web-controls/dist/basic/styles/suggestion-popup","@web-atoms/web-controls/dist/basic/styles/repeater-style","@social-mail/social-mail-client/dist/admin/pages/domains/services/AdminDomainService","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/view-model/Action","@social-mail/social-mail-client/dist/admin/pages/domains/edit/EditDomainPage","@web-atoms/web-controls/dist/basic/Form","@social-mail/social-mail-client/dist/common/controls/form/RequiredFormField","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/styles/form-field-style","@web-atoms/web-controls/dist/basic/PasswordBox","@web-atoms/web-controls/dist/basic/styles/password-box-style","@web-atoms/web-controls/dist/basic/Checkbox","@web-atoms/web-controls/dist/basic/styles/checkbox-style","@web-atoms/web-controls/dist/basic/Expander","@web-atoms/web-controls/dist/basic/styles/expander-style","@social-mail/social-mail-client/dist/common/controls/buttons/IconButton","@social-mail/social-mail-client/dist/admin/pages/domains/edit/DomainKeySetupPage","@social-mail/social-mail-client/dist/common/controls/buttons/CopyIcon","@social-mail/social-mail-client/dist/admin/pages/domains/domain-user/DomainUserEditor","@social-mail/social-mail-client/dist/common/controls/drop-downs/user/UserDropDown","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/web-controls/dist/basic/styles/drop-down-style","@social-mail/social-mail-client/dist/admin/pages/users/services/AdminUserService","@social-mail/social-mail-client/dist/common/Sql","@social-mail/social-mail-client/dist/admin/pages/users/UserListPage","@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater","@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage","@social-mail/social-mail-client/dist/common/validators/Validators","@social-mail/social-mail-client/dist/common/controls/password/PasswordStrength","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage","@web-atoms/web-controls/dist/basic/ComboBox","@social-mail/social-mail-client/dist/common/NumberFormats","@social-mail/social-mail-client/dist/admin/pages/relays/edit/EditRelayPage","@social-mail/social-mail-client/dist/common/pages/user/LoginPage","@social-mail/social-mail-client/dist/admin/drawer/AdminDrawer","@social-mail/social-mail-client/dist/common/controls/menu/MenuItem","@social-mail/social-mail-client/dist/services/files/LocalFileService","@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";
@@ -10618,6 +10618,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomLoader", "@web-atoms/co
10618
10618
  grid-row-start: 1;
10619
10619
  grid-column-start: 2;
10620
10620
  overflow: hidden;
10621
+ overflow-y: visible;
10621
10622
  white-space: nowrap;
10622
10623
  text-overflow: ellipsis;
10623
10624
  color: var(--accent-text-color, black);
@@ -11762,6 +11763,12 @@ System.register(["@web-atoms/core/dist/style/styled"], function (_export, _conte
11762
11763
  width: 100%;
11763
11764
  }
11764
11765
 
11766
+ div[data-base-page=base-page] {
11767
+ & > [data-page-element=title] {
11768
+ overflow: visible;
11769
+ }
11770
+ }
11771
+
11765
11772
  `.withId("default-app-style").withOrder("medium").installGlobal();
11766
11773
  }
11767
11774
  };
@@ -13321,7 +13328,8 @@ System.register(["@web-atoms/date-time/dist/DateTime", "@web-atoms/entity/dist/s
13321
13328
  emailAddressID: 0,
13322
13329
  lastEmailID: 0,
13323
13330
  dateUpdated: new DateTime(),
13324
- unread: 0
13331
+ unread: 0,
13332
+ total: 0
13325
13333
  }));
13326
13334
  _export("MailboxThreadEmail", MailboxThreadEmail = new Model("MailboxThreadEmail", {
13327
13335
  mailboxID: 0,
@@ -13330,7 +13338,8 @@ System.register(["@web-atoms/date-time/dist/DateTime", "@web-atoms/entity/dist/s
13330
13338
  }));
13331
13339
  _export("User", User = new Model("User", {
13332
13340
  userName: "",
13333
- displayName: ""
13341
+ displayName: "",
13342
+ dateUpdated: new DateTime()
13334
13343
  }));
13335
13344
  _export("UserRole", UserRole = new Model("UserRole", {
13336
13345
  userID: 0,
@@ -15669,7 +15678,7 @@ System.register(["tslib", "@web-atoms/core/dist/di/DITransient", "@web-atoms/cor
15669
15678
  return this.entityService.query(HostedDomain).include(x => x.domain).toArray();
15670
15679
  }
15671
15680
  save(domain) {
15672
- const clone = this.entityService.cloner(domain).include(x => [x.domainUsers, x.domain, x.domainKeys]);
15681
+ const clone = this.entityService.cloner(domain).include(x => x.domainUsers).include(x => x.domain);
15673
15682
  return this.entityService.save(clone.copy);
15674
15683
  }
15675
15684
  get(domainID) {
@@ -17986,91 +17995,102 @@ System.register(["tslib", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dis
17986
17995
 
17987
17996
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater");
17988
17997
 
17989
- System.register(["tslib", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/PageNavigator", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../edit/EditDomainPage", "../services/AdminDomainService", "@web-atoms/core/dist/core/Bind"], function (_export, _context) {
17998
+ System.register([], function (_export, _context) {
17999
+ "use strict";
18000
+
18001
+ var Validators;
18002
+ return {
18003
+ setters: [],
18004
+ execute: function () {
18005
+ _export("Validators", Validators = {
18006
+ checkPassword: password => {
18007
+ const hasMinimumLength = password.length >= 7;
18008
+ const hasNumber = /\d/.test(password);
18009
+ const hasSymbol = /[\@\#\$\%\^\&\*\!]/.test(password);
18010
+ return {
18011
+ hasMinimumLength,
18012
+ hasNumber,
18013
+ hasSymbol,
18014
+ isValid: hasMinimumLength && hasNumber && hasSymbol
18015
+ };
18016
+ },
18017
+ isValidPassword: password => {
18018
+ return Validators.checkPassword(password).isValid;
18019
+ }
18020
+ });
18021
+ }
18022
+ };
18023
+ });
18024
+ //# sourceMappingURL=Validators.js.map
18025
+
18026
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/validators/Validators");
18027
+
18028
+ System.register(["@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/web/controls/AtomControl", "../../validators/Validators"], function (_export, _context) {
17990
18029
  "use strict";
17991
18030
 
17992
- var __awaiter, __decorate, __metadata, InjectProperty, XNode, Action, PageNavigator, AtomRepeater, PopupWindowPage, EditDomainPage, AdminDomainService, Bind, ChooseDomainPage;
18031
+ var Bind, XNode, AtomControl, Validators, PasswordStrength;
17993
18032
  _export("default", void 0);
17994
18033
  return {
17995
- setters: [function (_tslib) {
17996
- __awaiter = _tslib.__awaiter;
17997
- __decorate = _tslib.__decorate;
17998
- __metadata = _tslib.__metadata;
17999
- }, function (_webAtomsCoreDistCoreInjectProperty) {
18000
- InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
18034
+ setters: [function (_webAtomsCoreDistCoreBind) {
18035
+ Bind = _webAtomsCoreDistCoreBind.default;
18001
18036
  }, function (_webAtomsCoreDistCoreXNode) {
18002
18037
  XNode = _webAtomsCoreDistCoreXNode.default;
18003
- }, function (_webAtomsCoreDistViewModelAction) {
18004
- Action = _webAtomsCoreDistViewModelAction.default;
18005
- }, function (_webAtomsWebControlsDistPageNavigator) {
18006
- PageNavigator = _webAtomsWebControlsDistPageNavigator.default;
18007
- }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
18008
- AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
18009
- }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
18010
- PopupWindowPage = _webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;
18011
- }, function (_editEditDomainPage) {
18012
- EditDomainPage = _editEditDomainPage.default;
18013
- }, function (_servicesAdminDomainService) {
18014
- AdminDomainService = _servicesAdminDomainService.default;
18015
- }, function (_webAtomsCoreDistCoreBind) {
18016
- Bind = _webAtomsCoreDistCoreBind.default;
18038
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
18039
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
18040
+ }, function (_validatorsValidators) {
18041
+ Validators = _validatorsValidators.Validators;
18017
18042
  }],
18018
18043
  execute: function () {
18019
- _export("default", ChooseDomainPage = class ChooseDomainPage extends PopupWindowPage {
18044
+ _export("default", PasswordStrength = class PasswordStrength extends AtomControl {
18020
18045
  constructor() {
18021
18046
  super(...arguments);
18022
- this.domain = null;
18023
- }
18024
- init() {
18025
- return __awaiter(this, void 0, void 0, function* () {
18026
- this.title = "Domains";
18027
- this.domains = yield this.adminDomainService.list();
18028
- this.actionRenderer = () => XNode.create("i", {
18029
- "data-click-event": "add-domain",
18030
- class: "fas fa-plus"
18031
- });
18032
- this.renderer = XNode.create("div", null, XNode.create(AtomRepeater, {
18033
- "data-list-selection": "default",
18034
- for: "table",
18035
- items: this.domains,
18036
- "data-selection-updated-event": "domain-selected",
18037
- selectedItem: Bind.twoWaysImmediate(() => this.domain),
18038
- itemRenderer: domain => XNode.create("tr", {
18039
- "data-click-event": "item-select"
18040
- }, XNode.create("td", null, domain.domain.name))
18041
- }));
18042
- });
18043
- }
18044
- addDomain() {
18045
- return __awaiter(this, void 0, void 0, function* () {
18046
- const domain = yield PageNavigator.pushPageForResult(EditDomainPage, {});
18047
- this.domains.add(domain);
18048
- });
18047
+ this.password = "";
18048
+ this.validation = {
18049
+ hasMinimumLength: false,
18050
+ hasNumber: false,
18051
+ hasSymbol: false,
18052
+ isValid: false
18053
+ };
18049
18054
  }
18050
- domainSelected() {
18051
- if (this.domain) {
18052
- this.close(this.domain);
18053
- }
18055
+ preCreate() {
18056
+ this.render(XNode.create("div", {
18057
+ "data-layout": "vertical-flex",
18058
+ validation: Bind.oneWay(() => Validators.checkPassword(this.password))
18059
+ }, XNode.create("div", {
18060
+ "data-layout": "row"
18061
+ }, XNode.create("i", {
18062
+ "data-color": Bind.oneWay(() => this.validation.hasMinimumLength ? "green" : "red"),
18063
+ class: Bind.oneWay(() => this.validation.hasMinimumLength ? "fas fa-check" : "fas fa-times")
18064
+ }), XNode.create("span", {
18065
+ text: "Password is at least 7 characters long."
18066
+ })), XNode.create("div", {
18067
+ "data-layout": "row"
18068
+ }, XNode.create("i", {
18069
+ "data-color": Bind.oneWay(() => this.validation.hasNumber ? "green" : "red"),
18070
+ class: Bind.oneWay(() => this.validation.hasNumber ? "fas fa-check" : "fas fa-times")
18071
+ }), XNode.create("span", {
18072
+ text: "Password has a number."
18073
+ })), XNode.create("div", {
18074
+ "data-layout": "row"
18075
+ }, XNode.create("i", {
18076
+ "data-color": Bind.oneWay(() => this.validation.hasSymbol ? "green" : "red"),
18077
+ class: Bind.oneWay(() => this.validation.hasSymbol ? "fas fa-check" : "fas fa-times")
18078
+ }), XNode.create("span", {
18079
+ text: "Password has a symbol."
18080
+ }))));
18054
18081
  }
18055
18082
  });
18056
- __decorate([InjectProperty, __metadata("design:type", AdminDomainService)], ChooseDomainPage.prototype, "adminDomainService", void 0);
18057
- __decorate([Action({
18058
- onEvent: "add-domain"
18059
- }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], ChooseDomainPage.prototype, "addDomain", null);
18060
- __decorate([Action({
18061
- onEvent: "domain-selected"
18062
- }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], ChooseDomainPage.prototype, "domainSelected", null);
18063
18083
  }
18064
18084
  };
18065
18085
  });
18066
- //# sourceMappingURL=ChooseDomainPage.js.map
18086
+ //# sourceMappingURL=PasswordStrength.js.map
18067
18087
 
18068
- AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/choose/ChooseDomainPage");
18088
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/password/PasswordStrength");
18069
18089
 
18070
- System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../model/model", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/Form", "../../../common/controls/form/RequiredFormField", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/PageNavigator", "../domains/choose/ChooseDomainPage", "./services/AdminUserService", "@web-atoms/core/dist/core/InjectProperty"], function (_export, _context) {
18090
+ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/Form", "@web-atoms/web-controls/dist/basic/FormField", "@web-atoms/web-controls/dist/basic/PasswordBox", "@web-atoms/core/dist/core/Bind", "../../../common/validators/Validators", "../../../common/controls/password/PasswordStrength", "@web-atoms/core/dist/view-model/Action", "../../../services/EntityService", "@web-atoms/date-time/dist/DateTime", "@web-atoms/web-controls/dist/basic/Checkbox"], function (_export, _context) {
18071
18091
  "use strict";
18072
18092
 
18073
- var __awaiter, __decorate, __metadata, ContentPage, DomainUser, User, XNode, Form, PasswordFormField, TextFormField, Action, AtomRepeater, PageNavigator, ChooseDomainPage, AdminUserService, InjectProperty, EditUserPage;
18093
+ var __awaiter, __decorate, __metadata, PopupWindowPage, XNode, Form, FormField, PasswordBox, Bind, Validators, PasswordStrength, Action, EntityService, DateTime, Checkbox, EditUserPage;
18074
18094
  _export("default", void 0);
18075
18095
  return {
18076
18096
  setters: [function (_tslib) {
@@ -18078,99 +18098,95 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
18078
18098
  __decorate = _tslib.__decorate;
18079
18099
  __metadata = _tslib.__metadata;
18080
18100
  }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
18081
- ContentPage = _webAtomsWebControlsDistMobileAppMobileApp.ContentPage;
18082
- }, function (_modelModel) {
18083
- DomainUser = _modelModel.DomainUser;
18084
- User = _modelModel.User;
18101
+ PopupWindowPage = _webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;
18085
18102
  }, function (_webAtomsCoreDistCoreXNode) {
18086
18103
  XNode = _webAtomsCoreDistCoreXNode.default;
18087
18104
  }, function (_webAtomsWebControlsDistBasicForm) {
18088
18105
  Form = _webAtomsWebControlsDistBasicForm.default;
18089
- }, function (_commonControlsFormRequiredFormField) {
18090
- PasswordFormField = _commonControlsFormRequiredFormField.PasswordFormField;
18091
- TextFormField = _commonControlsFormRequiredFormField.TextFormField;
18106
+ }, function (_webAtomsWebControlsDistBasicFormField) {
18107
+ FormField = _webAtomsWebControlsDistBasicFormField.default;
18108
+ }, function (_webAtomsWebControlsDistBasicPasswordBox) {
18109
+ PasswordBox = _webAtomsWebControlsDistBasicPasswordBox.default;
18110
+ }, function (_webAtomsCoreDistCoreBind) {
18111
+ Bind = _webAtomsCoreDistCoreBind.default;
18112
+ }, function (_commonValidatorsValidators) {
18113
+ Validators = _commonValidatorsValidators.Validators;
18114
+ }, function (_commonControlsPasswordPasswordStrength) {
18115
+ PasswordStrength = _commonControlsPasswordPasswordStrength.default;
18092
18116
  }, function (_webAtomsCoreDistViewModelAction) {
18093
18117
  Action = _webAtomsCoreDistViewModelAction.default;
18094
- }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
18095
- AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
18096
- }, function (_webAtomsWebControlsDistPageNavigator) {
18097
- PageNavigator = _webAtomsWebControlsDistPageNavigator.default;
18098
- }, function (_domainsChooseChooseDomainPage) {
18099
- ChooseDomainPage = _domainsChooseChooseDomainPage.default;
18100
- }, function (_servicesAdminUserService) {
18101
- AdminUserService = _servicesAdminUserService.default;
18102
- }, function (_webAtomsCoreDistCoreInjectProperty) {
18103
- InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
18118
+ }, function (_servicesEntityService) {
18119
+ EntityService = _servicesEntityService.default;
18120
+ }, function (_webAtomsDateTimeDistDateTime) {
18121
+ DateTime = _webAtomsDateTimeDistDateTime.default;
18122
+ }, function (_webAtomsWebControlsDistBasicCheckbox) {
18123
+ Checkbox = _webAtomsWebControlsDistBasicCheckbox.default;
18104
18124
  }],
18105
18125
  execute: function () {
18106
- _export("default", EditUserPage = class EditUserPage extends ContentPage {
18126
+ _export("default", EditUserPage = class EditUserPage extends PopupWindowPage {
18127
+ constructor() {
18128
+ super(...arguments);
18129
+ this.password = "";
18130
+ }
18107
18131
  init() {
18108
18132
  var _a;
18133
+ var _b;
18109
18134
  return __awaiter(this, void 0, void 0, function* () {
18110
- this.model = (_a = this.parameters.model) !== null && _a !== void 0 ? _a : Object.assign(Object.assign({}, User.create({
18111
- domainUsers: []
18112
- })), {
18113
- password: ""
18114
- });
18115
- this.renderer = XNode.create("div", {
18116
- "data-layout": "center-page-900px"
18117
- }, XNode.create(Form, null, XNode.create(TextFormField, {
18118
- label: "Display Name",
18119
- autofocus: true,
18120
- required: true,
18121
- value: () => this.model.displayName
18122
- }), XNode.create(TextFormField, {
18123
- label: "Username",
18124
- required: true,
18125
- value: () => this.model.userName
18126
- }), this.model.userID ? XNode.create(PasswordFormField, {
18135
+ this.model = this.parameters;
18136
+ (_a = (_b = this.model).changePassword) !== null && _a !== void 0 ? _a : _b.changePassword = {
18137
+ newPassword: "",
18138
+ forceChangePasswordOnLogin: true
18139
+ };
18140
+ this.title = `Reset Password for ${this.model.displayName} (${this.model.userID}, ${this.model.userName})`;
18141
+ this.renderer = XNode.create("div", null, XNode.create(Form, null, !this.model.userID && XNode.create(FormField, {
18142
+ label: "Display Name"
18143
+ }, XNode.create("input", {
18144
+ value: Bind.twoWaysImmediate(() => this.model.displayName)
18145
+ })), !this.model.userID && XNode.create(FormField, {
18146
+ label: "Username"
18147
+ }, XNode.create("input", {
18148
+ value: Bind.twoWaysImmediate(() => this.model.userName)
18149
+ })), XNode.create(FormField, {
18127
18150
  label: "Password",
18128
18151
  required: true,
18129
- value: () => this.model.password
18130
- }) : XNode.create(PasswordFormField, {
18131
- label: "Password",
18132
- placeholder: "Leave empty...",
18133
- value: () => this.model.password
18134
- }), XNode.create("div", null, XNode.create("h5", null, "Domains ", XNode.create("i", {
18135
- "data-click-event": "add-domain",
18136
- class: "fas fa-plus"
18137
- })), XNode.create(AtomRepeater, {
18138
- for: "table",
18139
- items: this.model.domainUsers,
18140
- itemRenderer: item => XNode.create("tr", null, XNode.create("td", null, item.hostedDomain.domain.name))
18152
+ error: Bind.oneWay(() => Validators.isValidPassword(this.password) ? "" : "Password is invalid")
18153
+ }, XNode.create(PasswordBox, {
18154
+ value: Bind.twoWaysImmediate(() => this.password)
18155
+ })), XNode.create(PasswordStrength, {
18156
+ password: Bind.oneWay(() => this.password)
18157
+ }), XNode.create(FormField, {
18158
+ label: "Password again",
18159
+ required: true,
18160
+ error: Bind.oneWay(() => this.password !== this.model.changePassword.newPassword ? "Passwords do not match" : "")
18161
+ }, XNode.create(PasswordBox, {
18162
+ value: Bind.twoWaysImmediate(() => this.model.changePassword.newPassword)
18163
+ })), XNode.create(FormField, {
18164
+ label: "Force Change Password"
18165
+ }, XNode.create(Checkbox, {
18166
+ checked: Bind.twoWaysImmediate(() => this.model.changePassword.forceChangePasswordOnLogin),
18167
+ text: "Force user to change password on next login."
18141
18168
  })), XNode.create("div", {
18142
18169
  "data-layout": "command-row"
18143
18170
  }, XNode.create("button", {
18144
- "data-submit-event": "save-user",
18145
- "data-layout": "accept-button",
18171
+ "data-submit-event": "reset-password",
18146
18172
  text: "Save"
18147
18173
  }))));
18148
18174
  });
18149
18175
  }
18150
- addDomain() {
18176
+ resetPassword() {
18151
18177
  return __awaiter(this, void 0, void 0, function* () {
18152
- const hostedDomain = yield PageNavigator.pushPageForResult(ChooseDomainPage);
18153
- this.model.domainUsers.add(DomainUser.create({
18154
- domainID: hostedDomain.domainID,
18155
- hostedDomain
18156
- }));
18157
- });
18158
- }
18159
- saveUser() {
18160
- return __awaiter(this, void 0, void 0, function* () {
18161
- yield this.adminUserService.save(this.model);
18162
- return this.model;
18178
+ const entityService = this.resolve(EntityService);
18179
+ this.model.dateUpdated = DateTime.utcNow;
18180
+ const clone = entityService.cloner(this.model).include(x => x.changePassword).copy;
18181
+ yield entityService.save(clone);
18163
18182
  });
18164
18183
  }
18165
18184
  });
18166
- __decorate([InjectProperty, __metadata("design:type", AdminUserService)], EditUserPage.prototype, "adminUserService", void 0);
18167
18185
  __decorate([Action({
18168
- onEvent: "add-domain"
18169
- }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], EditUserPage.prototype, "addDomain", null);
18170
- __decorate([Action({
18171
- onEvent: "save-user",
18186
+ onEvent: "reset-password",
18187
+ success: "Information saved successfully.",
18172
18188
  close: true
18173
- }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], EditUserPage.prototype, "saveUser", null);
18189
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], EditUserPage.prototype, "resetPassword", null);
18174
18190
  }
18175
18191
  };
18176
18192
  });
@@ -18178,10 +18194,10 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
18178
18194
 
18179
18195
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage");
18180
18196
 
18181
- System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/PageNavigator", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "./services/AdminUserService", "@web-atoms/core/dist/core/InjectProperty", "../../../common/controls/repeater/InfiniteRepeater", "@web-atoms/core/dist/core/Bind", "./EditUserPage"], function (_export, _context) {
18197
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/PageNavigator", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../model/model", "./services/AdminUserService", "@web-atoms/core/dist/core/InjectProperty", "../../../common/controls/repeater/InfiniteRepeater", "@web-atoms/core/dist/core/Bind", "./EditUserPage"], function (_export, _context) {
18182
18198
  "use strict";
18183
18199
 
18184
- var __awaiter, __decorate, __metadata, XNode, Action, PageNavigator, AtomRepeater, ContentPage, AdminUserService, InjectProperty, InfiniteRepeater, Bind, EditUserPage, UserListPage;
18200
+ var __awaiter, __decorate, __metadata, XNode, Action, PageNavigator, AtomRepeater, ContentPage, User, AdminUserService, InjectProperty, InfiniteRepeater, Bind, EditUserPage, UserListPage;
18185
18201
  _export("default", void 0);
18186
18202
  return {
18187
18203
  setters: [function (_tslib) {
@@ -18198,6 +18214,8 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18198
18214
  AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
18199
18215
  }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
18200
18216
  ContentPage = _webAtomsWebControlsDistMobileAppMobileApp.ContentPage;
18217
+ }, function (_modelModel) {
18218
+ User = _modelModel.User;
18201
18219
  }, function (_servicesAdminUserService) {
18202
18220
  AdminUserService = _servicesAdminUserService.default;
18203
18221
  }, function (_webAtomsCoreDistCoreInjectProperty) {
@@ -18237,21 +18255,41 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18237
18255
  search: this.search,
18238
18256
  cancelToken
18239
18257
  })), {
18240
- itemRenderer: user => XNode.create("tr", null, XNode.create("td", null, user.userID), XNode.create("td", null, user.userName), XNode.create("td", null, user.displayName))
18258
+ itemRenderer: user => XNode.create("tr", null, XNode.create("td", null, user.userID), XNode.create("td", null, user.userName), XNode.create("td", null, user.displayName), XNode.create("td", null, XNode.create("i", {
18259
+ "data-cursor": "pointer",
18260
+ class: "fas fa-key",
18261
+ title: "Change Password",
18262
+ "data-click-event": "user-change-password"
18263
+ })))
18241
18264
  })));
18242
18265
  });
18243
18266
  }
18244
18267
  addDomain() {
18245
18268
  return __awaiter(this, void 0, void 0, function* () {
18246
- yield PageNavigator.pushPageForResult(EditUserPage, {});
18269
+ yield PageNavigator.pushPageForResult(EditUserPage, User.create({
18270
+ userName: "",
18271
+ displayName: "",
18272
+ changePassword: {
18273
+ forceChangePasswordOnLogin: true,
18274
+ newPassword: ""
18275
+ }
18276
+ }));
18247
18277
  this.version++;
18248
18278
  });
18249
18279
  }
18280
+ userChangePassword(model) {
18281
+ return __awaiter(this, void 0, void 0, function* () {
18282
+ PageNavigator.pushPage(EditUserPage, model);
18283
+ });
18284
+ }
18250
18285
  });
18251
18286
  __decorate([InjectProperty, __metadata("design:type", AdminUserService)], UserListPage.prototype, "userService", void 0);
18252
18287
  __decorate([Action({
18253
18288
  onEvent: "add-user"
18254
18289
  }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], UserListPage.prototype, "addDomain", null);
18290
+ __decorate([Action({
18291
+ onEvent: "user-change-password"
18292
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", Promise)], UserListPage.prototype, "userChangePassword", null);
18255
18293
  }
18256
18294
  };
18257
18295
  });
@@ -18832,10 +18870,10 @@ System.register(["@web-atoms/core/dist/core/Command"], function (_export, _conte
18832
18870
 
18833
18871
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/commands/AdminCommands");
18834
18872
 
18835
- System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "@web-atoms/web-controls/dist/basic/Form", "@web-atoms/web-controls/dist/basic/FormField", "../../../model/model", "@web-atoms/core/dist/core/Bind", "@web-atoms/web-controls/dist/basic/PasswordBox", "@web-atoms/core/dist/view-model/Action", "@web-atoms/core/dist/core/InjectProperty", "../../../services/UserService"], function (_export, _context) {
18873
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "@web-atoms/web-controls/dist/basic/Form", "@web-atoms/web-controls/dist/basic/FormField", "../../../model/model", "@web-atoms/core/dist/core/Bind", "@web-atoms/web-controls/dist/basic/PasswordBox", "@web-atoms/core/dist/view-model/Action", "@web-atoms/core/dist/core/InjectProperty", "../../../services/UserService", "../../controls/password/PasswordStrength", "../../validators/Validators"], function (_export, _context) {
18836
18874
  "use strict";
18837
18875
 
18838
- var __awaiter, __decorate, __metadata, XNode, ContentPage, Form, FormField, LoginSession, Bind, PasswordBox, Action, InjectProperty, UserService, LoginPage;
18876
+ var __awaiter, __decorate, __metadata, XNode, ContentPage, Form, FormField, LoginSession, Bind, PasswordBox, Action, InjectProperty, UserService, PasswordStrength, Validators, LoginPage;
18839
18877
  _export("default", void 0);
18840
18878
  return {
18841
18879
  setters: [function (_tslib) {
@@ -18862,9 +18900,17 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-con
18862
18900
  InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
18863
18901
  }, function (_servicesUserService) {
18864
18902
  UserService = _servicesUserService.default;
18903
+ }, function (_controlsPasswordPasswordStrength) {
18904
+ PasswordStrength = _controlsPasswordPasswordStrength.default;
18905
+ }, function (_validatorsValidators) {
18906
+ Validators = _validatorsValidators.Validators;
18865
18907
  }],
18866
18908
  execute: function () {
18867
18909
  _export("default", LoginPage = class LoginPage extends ContentPage {
18910
+ constructor() {
18911
+ super(...arguments);
18912
+ this.password = "";
18913
+ }
18868
18914
  init() {
18869
18915
  return __awaiter(this, void 0, void 0, function* () {
18870
18916
  this.model = LoginSession.create({});
@@ -18872,9 +18918,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-con
18872
18918
  this.model.checkPassword = "";
18873
18919
  this.render(XNode.create("div", null, XNode.create("div", {
18874
18920
  "data-layout": "center-all"
18875
- }, XNode.create(Form, {
18876
- "data-submit-event": "login"
18877
- }, XNode.create(FormField, {
18921
+ }, XNode.create(Form, null, XNode.create(FormField, {
18878
18922
  label: "Username"
18879
18923
  }, XNode.create("input", {
18880
18924
  value: Bind.twoWaysImmediate(() => this.model.userName)
@@ -18884,14 +18928,45 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-con
18884
18928
  value: Bind.twoWaysImmediate(() => this.model.checkPassword)
18885
18929
  })), XNode.create("div", null, XNode.create("button", {
18886
18930
  "data-layout": "accent-button",
18887
- "data-type": "submit",
18931
+ "data-submit-event": "login",
18888
18932
  text: "Login"
18889
18933
  }))))));
18890
18934
  });
18891
18935
  }
18892
18936
  login() {
18937
+ var _a;
18893
18938
  return __awaiter(this, void 0, void 0, function* () {
18894
- yield this.userService.login(this.model);
18939
+ try {
18940
+ yield this.userService.login(this.model);
18941
+ return;
18942
+ } catch (error) {
18943
+ if (!/change the password/i.test((_a = error.stack) !== null && _a !== void 0 ? _a : error)) {
18944
+ throw error;
18945
+ }
18946
+ }
18947
+ this.model.newPassword = "";
18948
+ this.renderer = XNode.create("div", null, XNode.create("div", {
18949
+ "data-layout": "center-all"
18950
+ }, XNode.create(Form, null, XNode.create("div", null, "Update your password, your one time password is expired."), XNode.create(FormField, {
18951
+ label: "Password",
18952
+ required: true,
18953
+ error: Bind.oneWay(() => Validators.isValidPassword(this.password) ? "" : "Password must contain one symbol, one number and should be minimum 7 characters")
18954
+ }, XNode.create(PasswordBox, {
18955
+ value: Bind.twoWaysImmediate(() => this.password)
18956
+ })), XNode.create(PasswordStrength, {
18957
+ password: Bind.oneWay(() => this.password)
18958
+ }), XNode.create(FormField, {
18959
+ label: "Password Again",
18960
+ required: true,
18961
+ error: Bind.oneWay(() => this.model.newPassword !== this.password ? "Passwords do not match" : "")
18962
+ }, XNode.create(PasswordBox, {
18963
+ value: Bind.twoWaysImmediate(() => this.model.newPassword)
18964
+ })), XNode.create("div", {
18965
+ "data-layout": "command-row"
18966
+ }, XNode.create("button", {
18967
+ "data-submit-event": "login",
18968
+ text: "Change Password & Login"
18969
+ })))));
18895
18970
  });
18896
18971
  }
18897
18972
  });