@social-mail/social-mail-client 1.2.261 → 1.2.263

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 (46) hide show
  1. package/dist/admin/AdminAppIndex.pack.js +172 -38
  2. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  3. package/dist/admin/AdminAppIndex.pack.min.js +10 -6
  4. package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
  5. package/dist/common/currency.js +1 -1
  6. package/dist/common/currency.js.map +1 -1
  7. package/dist/common/pages/stores/products/ProductEditor.d.ts.map +1 -1
  8. package/dist/common/pages/stores/products/ProductEditor.js +2 -0
  9. package/dist/common/pages/stores/products/ProductEditor.js.map +1 -1
  10. package/dist/model/model.d.ts +27 -2
  11. package/dist/model/model.d.ts.map +1 -1
  12. package/dist/model/model.js +120 -14
  13. package/dist/model/model.js.map +1 -1
  14. package/dist/public/channel/ChannelView.pack.js +120 -14
  15. package/dist/public/channel/ChannelView.pack.js.map +1 -1
  16. package/dist/public/channel/ChannelView.pack.min.js +1 -1
  17. package/dist/public/channel/ChannelView.pack.min.js.map +1 -1
  18. package/dist/public/store/Store.pack.js +124 -19
  19. package/dist/public/store/Store.pack.js.map +1 -1
  20. package/dist/public/store/Store.pack.min.js +3 -3
  21. package/dist/public/store/Store.pack.min.js.map +1 -1
  22. package/dist/public/store/StoreItemDetailView.d.ts.map +1 -1
  23. package/dist/public/store/StoreItemDetailView.js +3 -4
  24. package/dist/public/store/StoreItemDetailView.js.map +1 -1
  25. package/dist/public/store/StoreItemListView.d.ts.map +1 -1
  26. package/dist/public/store/StoreItemListView.js.map +1 -1
  27. package/dist/tsconfig.tsbuildinfo +1 -1
  28. package/dist/web/AppIndex.pack.js +172 -38
  29. package/dist/web/AppIndex.pack.js.map +1 -1
  30. package/dist/web/AppIndex.pack.min.js +10 -6
  31. package/dist/web/AppIndex.pack.min.js.map +1 -1
  32. package/dist/web/page/mails/ConversationPage.d.ts +2 -1
  33. package/dist/web/page/mails/ConversationPage.d.ts.map +1 -1
  34. package/dist/web/page/mails/ConversationPage.js +29 -13
  35. package/dist/web/page/mails/ConversationPage.js.map +1 -1
  36. package/dist/web/page/mails/mini-compose/MiniComposeBox.d.ts.map +1 -1
  37. package/dist/web/page/mails/mini-compose/MiniComposeBox.js +21 -11
  38. package/dist/web/page/mails/mini-compose/MiniComposeBox.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/common/currency.ts +1 -1
  41. package/src/common/pages/stores/products/ProductEditor.tsx +1 -0
  42. package/src/model/model.ts +44 -13
  43. package/src/public/store/StoreItemDetailView.tsx +2 -3
  44. package/src/public/store/StoreItemListView.tsx +0 -1
  45. package/src/web/page/mails/ConversationPage.tsx +20 -3
  46. package/src/web/page/mails/mini-compose/MiniComposeBox.tsx +13 -6
@@ -52,13 +52,13 @@ export interface IAppFile extends IClrEntity {
52
52
  mailboxLogos?: ICollection<IMailbox>;
53
53
  previewContacts?: ICollection<IContact>;
54
54
  templates?: ICollection<IEmailTemplate>;
55
+ websiteFolder?: IWebSiteFolder;
56
+ currentVersionWebSites?: ICollection<IWebSiteFolder>;
55
57
  stores?: ICollection<IStore>;
56
58
  storeItems?: ICollection<IStoreItem>;
57
59
  storeMediaFiles?: ICollection<IStoreMediaFile>;
58
60
  storeJournals?: ICollection<IStoreJournal>;
59
61
  userPins?: ICollection<IUserPin>;
60
- websiteFolder?: IWebSiteFolder;
61
- currentVersionWebSites?: ICollection<IWebSiteFolder>;
62
62
  websiteVersions?: ICollection<IWebSiteFolderVersion>;
63
63
  }
64
64
 
@@ -68,7 +68,7 @@ export const AppFile: IModel<IAppFile> = new Model<IAppFile>(
68
68
  "AppFile",
69
69
  ["appFileID"],
70
70
  { isFolder: false,name: "",fileSize: 0,contentType: "",isDeleted: false,isShared: false,dateCreated: new DefaultFactory(() => new DateTime()) },
71
- {"name":"app_files","keys":[{"name":"appFileID","type":"number","generated":"identity"}],"properties":[{"name":"path","type":"string","default":["path","\"\""]},{"name":"isFolder","type":"boolean","default":["isFolder","false"]},{"name":"name","type":"string","default":["name","\"\""]},{"name":"fileSize","type":"number","default":["fileSize","0"]},{"name":"contentType","type":"string","default":["contentType","\"\""]},{"name":"contentDisposition","type":"string","default":["contentDisposition","\"attachment\""]},{"name":"contentID","type":"string","default":["contentID","\"\""]},{"name":"fileContentID","type":"number"},{"name":"creatorID","type":"number"},{"name":"parentID","type":"number"},{"name":"emailID","type":"number"},{"name":"isDeleted","type":"boolean","default":["isDeleted","false"]},{"name":"isShared","type":"boolean","default":["isShared","false"]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"versions","type":"number","default":["versions","0"]}],"relations":[{"name":"fileContent","fkMap":[{"fk":"fileContentID","relatedKey":"fileContentID"}],"relatedName":"FileContent"},{"name":"creator","fkMap":[{"fk":"creatorID","relatedKey":"userID"}],"relatedName":"User"},{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"AppFile"},{"name":"email","fkMap":[{"fk":"emailID","relatedKey":"emailID"}],"relatedName":"Email"},{"name":"fileVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"folderVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"accessList","isCollection":true,"isInverse":true,"relatedName":"AppFileAccess"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"AppFileTag"},{"name":"mailboxLogos","isCollection":true,"isInverse":true,"relatedName":"Mailbox"},{"name":"previewContacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"},{"name":"stores","isCollection":true,"isInverse":true,"relatedName":"Store"},{"name":"storeItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"storeMediaFiles","isCollection":true,"isInverse":true,"relatedName":"StoreMediaFile"},{"name":"storeJournals","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"userPins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"websiteFolder","isCollection":false,"isInverse":true,"relatedName":"WebSiteFolder"},{"name":"currentVersionWebSites","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolder"},{"name":"websiteVersions","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolderVersion"}]}
71
+ {"name":"app_files","keys":[{"name":"appFileID","type":"number","generated":"identity"}],"properties":[{"name":"path","type":"string","default":["path","\"\""]},{"name":"isFolder","type":"boolean","default":["isFolder","false"]},{"name":"name","type":"string","default":["name","\"\""]},{"name":"fileSize","type":"number","default":["fileSize","0"]},{"name":"contentType","type":"string","default":["contentType","\"\""]},{"name":"contentDisposition","type":"string","default":["contentDisposition","\"attachment\""]},{"name":"contentID","type":"string","default":["contentID","\"\""]},{"name":"fileContentID","type":"number"},{"name":"creatorID","type":"number"},{"name":"parentID","type":"number"},{"name":"emailID","type":"number"},{"name":"isDeleted","type":"boolean","default":["isDeleted","false"]},{"name":"isShared","type":"boolean","default":["isShared","false"]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"versions","type":"number","default":["versions","0"]}],"relations":[{"name":"fileContent","fkMap":[{"fk":"fileContentID","relatedKey":"fileContentID"}],"relatedName":"FileContent"},{"name":"creator","fkMap":[{"fk":"creatorID","relatedKey":"userID"}],"relatedName":"User"},{"name":"parent","fkMap":[{"fk":"parentID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"children","isCollection":true,"isInverse":true,"relatedName":"AppFile"},{"name":"email","fkMap":[{"fk":"emailID","relatedKey":"emailID"}],"relatedName":"Email"},{"name":"fileVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"folderVersions","isCollection":true,"isInverse":true,"relatedName":"AppFileVersion"},{"name":"accessList","isCollection":true,"isInverse":true,"relatedName":"AppFileAccess"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"AppFileTag"},{"name":"mailboxLogos","isCollection":true,"isInverse":true,"relatedName":"Mailbox"},{"name":"previewContacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"},{"name":"websiteFolder","isCollection":false,"isInverse":true,"relatedName":"WebSiteFolder"},{"name":"currentVersionWebSites","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolder"},{"name":"stores","isCollection":true,"isInverse":true,"relatedName":"Store"},{"name":"storeItems","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"storeMediaFiles","isCollection":true,"isInverse":true,"relatedName":"StoreMediaFile"},{"name":"storeJournals","isCollection":true,"isInverse":true,"relatedName":"StoreJournal"},{"name":"userPins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"websiteVersions","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolderVersion"}]}
72
72
  );
73
73
  modelEntitySchemas["AppFile"] = AppFile;
74
74
 
@@ -351,16 +351,19 @@ modelEntitySchemas["CachedItem"] = CachedItem;
351
351
  export interface IDomain extends IClrEntity {
352
352
  readonly domainID?: number;
353
353
  name?: string;
354
+ received?: number;
355
+ failed?: number;
354
356
  emailAddresses?: ICollection<IEmailAddress>;
355
357
  hostedDomain?: IHostedDomain;
356
358
  contactDomains?: ICollection<IContactDomain>;
359
+ activities?: ICollection<IServerActivity>;
357
360
  }
358
361
 
359
362
  export const Domain: IModel<IDomain> = new Model<IDomain>(
360
363
  "Domain",
361
364
  ["domainID"],
362
- { name: "" },
363
- {"name":"domains","keys":[{"name":"domainID","type":"number","generated":"identity"}],"properties":[{"name":"name","type":"string","default":["name","\"\""]}],"relations":[{"name":"emailAddresses","isCollection":true,"isInverse":true,"relatedName":"EmailAddress"},{"name":"hostedDomain","isCollection":false,"isInverse":true,"relatedName":"HostedDomain"},{"name":"contactDomains","isCollection":true,"isInverse":true,"relatedName":"ContactDomain"}]}
365
+ { name: "",received: 0,failed: 0 },
366
+ {"name":"domains","keys":[{"name":"domainID","type":"number","generated":"identity"}],"properties":[{"name":"name","type":"string","default":["name","\"\""]},{"name":"received","type":"number","default":["received","0"]},{"name":"failed","type":"number","default":["failed","0"]}],"relations":[{"name":"emailAddresses","isCollection":true,"isInverse":true,"relatedName":"EmailAddress"},{"name":"hostedDomain","isCollection":false,"isInverse":true,"relatedName":"HostedDomain"},{"name":"contactDomains","isCollection":true,"isInverse":true,"relatedName":"ContactDomain"},{"name":"activities","isCollection":true,"isInverse":true,"relatedName":"ServerActivity"}]}
364
367
  );
365
368
  modelEntitySchemas["Domain"] = Domain;
366
369
 
@@ -631,6 +634,8 @@ export interface IMailbox extends IClrEntity {
631
634
  maxStorage?: number;
632
635
  indexAttachments?: boolean;
633
636
  indexImageAttachments?: boolean;
637
+ readonly unreplied?: number;
638
+ readonly unread?: number;
634
639
  logoID?: number | null;
635
640
  description?: string | null;
636
641
  dateCreated?: DateTime;
@@ -663,8 +668,8 @@ export interface IMailbox extends IClrEntity {
663
668
  export const Mailbox: IModel<IMailbox> = new Model<IMailbox>(
664
669
  "Mailbox",
665
670
  ["mailboxID"],
666
- { storage: 0,maxStorage: 0,indexAttachments: false,indexImageAttachments: false,dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),isChannel: false,isPrivateChannel: false,requireApproval: false,subscriberCount: 0 },
667
- {"name":"mailboxes","keys":[{"name":"mailboxID","type":"number"}],"properties":[{"name":"domainID","type":"number"},{"name":"storage","type":"number","default":["storage","0"]},{"name":"maxStorage","type":"number","default":["maxStorage","0"]},{"name":"indexAttachments","type":"boolean","default":["indexAttachments","false"]},{"name":"indexImageAttachments","type":"boolean","default":["indexImageAttachments","false"]},{"name":"firstID","type":"number","default":["firstID","0"]},{"name":"recentID","type":"number","default":["recentID","0"]},{"name":"logoID","type":"number"},{"name":"description","type":"string","default":["description","\"\""]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"isChannel","type":"boolean","default":["isChannel","false"]},{"name":"isPrivateChannel","type":"boolean","default":["isPrivateChannel","false"]},{"name":"requireApproval","type":"boolean","default":["requireApproval","false"]},{"name":"subscriberCount","type":"number","default":["subscriberCount","0"]},{"name":"datePublished","type":"DateTime","default":["datePublished","new DefaultFactory(() => new DateTime())"]},{"name":"dateEngaged","type":"DateTime","default":["dateEngaged","new DefaultFactory(() => new DateTime())"]},{"name":"parentID","type":"number","default":["parentID","0"]}],"relations":[{"name":"emailAddress","fkMap":[{"fk":"mailboxID","relatedKey":"emailAddressID"}],"relatedName":"EmailAddress"},{"name":"domain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"logo","fkMap":[{"fk":"logoID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"contacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"},{"name":"emails","isCollection":true,"isInverse":true,"relatedName":"MailboxEmail"},{"name":"mailboxContacts","isCollection":true,"isInverse":true,"relatedName":"MailboxContact"},{"name":"threadEmails","isCollection":true,"isInverse":true,"relatedName":"MailboxContactEmail"},{"name":"syncTargets","isCollection":true,"isInverse":true,"relatedName":"MailboxSyncTarget"},{"name":"channelConfig","isCollection":false,"isInverse":true,"relatedName":"ChannelConfig"},{"name":"subscriberActivities","isCollection":true,"isInverse":true,"relatedName":"SubscriberActivity"},{"name":"userPins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"userMailboxes","isCollection":true,"isInverse":true,"relatedName":"UserMailbox"},{"name":"websiteChannels","isCollection":true,"isInverse":true,"relatedName":"WebSiteChannel"}]}
671
+ { storage: 0,maxStorage: 0,indexAttachments: false,indexImageAttachments: false,unreplied: 0,unread: 0,dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),isChannel: false,isPrivateChannel: false,requireApproval: false,subscriberCount: 0 },
672
+ {"name":"mailboxes","keys":[{"name":"mailboxID","type":"number"}],"properties":[{"name":"domainID","type":"number"},{"name":"storage","type":"number","default":["storage","0"]},{"name":"maxStorage","type":"number","default":["maxStorage","0"]},{"name":"indexAttachments","type":"boolean","default":["indexAttachments","false"]},{"name":"indexImageAttachments","type":"boolean","default":["indexImageAttachments","false"]},{"name":"firstID","type":"number","default":["firstID","0"]},{"name":"recentID","type":"number","default":["recentID","0"]},{"name":"unreplied","type":"number","default":["unreplied","0"]},{"name":"unread","type":"number","default":["unread","0"]},{"name":"logoID","type":"number"},{"name":"description","type":"string","default":["description","\"\""]},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"isChannel","type":"boolean","default":["isChannel","false"]},{"name":"isPrivateChannel","type":"boolean","default":["isPrivateChannel","false"]},{"name":"requireApproval","type":"boolean","default":["requireApproval","false"]},{"name":"subscriberCount","type":"number","default":["subscriberCount","0"]},{"name":"datePublished","type":"DateTime","default":["datePublished","new DefaultFactory(() => new DateTime())"]},{"name":"dateEngaged","type":"DateTime","default":["dateEngaged","new DefaultFactory(() => new DateTime())"]},{"name":"parentID","type":"number","default":["parentID","0"]}],"relations":[{"name":"emailAddress","fkMap":[{"fk":"mailboxID","relatedKey":"emailAddressID"}],"relatedName":"EmailAddress"},{"name":"domain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"HostedDomain"},{"name":"logo","fkMap":[{"fk":"logoID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"contacts","isCollection":true,"isInverse":true,"relatedName":"Contact"},{"name":"templates","isCollection":true,"isInverse":true,"relatedName":"EmailTemplate"},{"name":"emails","isCollection":true,"isInverse":true,"relatedName":"MailboxEmail"},{"name":"mailboxContacts","isCollection":true,"isInverse":true,"relatedName":"MailboxContact"},{"name":"threadEmails","isCollection":true,"isInverse":true,"relatedName":"MailboxContactEmail"},{"name":"syncTargets","isCollection":true,"isInverse":true,"relatedName":"MailboxSyncTarget"},{"name":"channelConfig","isCollection":false,"isInverse":true,"relatedName":"ChannelConfig"},{"name":"subscriberActivities","isCollection":true,"isInverse":true,"relatedName":"SubscriberActivity"},{"name":"userPins","isCollection":true,"isInverse":true,"relatedName":"UserPin"},{"name":"userMailboxes","isCollection":true,"isInverse":true,"relatedName":"UserMailbox"},{"name":"websiteChannels","isCollection":true,"isInverse":true,"relatedName":"WebSiteChannel"}]}
668
673
  );
669
674
  modelEntitySchemas["Mailbox"] = Mailbox;
670
675
 
@@ -690,6 +695,7 @@ export interface IMailboxContact extends IClrEntity {
690
695
  dateCreated?: DateTime;
691
696
  dateUpdated?: DateTime;
692
697
  unread?: number;
698
+ readonly replied?: DateTime | null;
693
699
  total?: number;
694
700
  doNotIndex?: boolean | null;
695
701
  doNotIndexAttachments?: boolean | null;
@@ -714,7 +720,7 @@ export const MailboxContact: IModel<IMailboxContact> = new Model<IMailboxContact
714
720
  "MailboxContact",
715
721
  ["mailboxID","emailAddressID"],
716
722
  { dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),unread: 0,total: 0,isOwner: false,canContribute: false,priority: 0,blocked: false,mute: false,status: "invited" },
717
- {"name":"mailbox_contacts","keys":[{"name":"mailboxID","type":"number"},{"name":"emailAddressID","type":"number"}],"properties":[{"name":"lastEmailID","type":"number"},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"unread","type":"number","default":["unread","0"]},{"name":"total","type":"number","default":["total","0"]},{"name":"doNotIndex","type":"boolean","default":["doNotIndex","false"]},{"name":"doNotIndexAttachments","type":"boolean","default":["doNotIndexAttachments","false"]},{"name":"isOwner","type":"boolean","default":["isOwner","false"]},{"name":"canContribute","type":"boolean","default":["canContribute","false"]},{"name":"priority","type":"number","default":["priority","0"]},{"name":"blocked","type":"boolean","default":["blocked","false"]},{"name":"mute","type":"boolean","default":["mute","false"]},{"name":"status","type":"string","default":["status","\"invited\""]}],"relations":[{"name":"mailbox","fkMap":[{"fk":"mailboxID","relatedKey":"mailboxID"}],"relatedName":"Mailbox"},{"name":"emailAddress","fkMap":[{"fk":"emailAddressID","relatedKey":"emailAddressID"}],"relatedName":"EmailAddress"},{"name":"lastEmail","fkMap":[{"fk":"lastEmailID","relatedKey":"emailID"}],"relatedName":"Email"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"MailboxContactTag"}]}
723
+ {"name":"mailbox_contacts","keys":[{"name":"mailboxID","type":"number"},{"name":"emailAddressID","type":"number"}],"properties":[{"name":"lastEmailID","type":"number"},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"unread","type":"number","default":["unread","0"]},{"name":"replied","type":"DateTime","default":["replied","new DefaultFactory(() => new DateTime())"]},{"name":"total","type":"number","default":["total","0"]},{"name":"doNotIndex","type":"boolean","default":["doNotIndex","false"]},{"name":"doNotIndexAttachments","type":"boolean","default":["doNotIndexAttachments","false"]},{"name":"isOwner","type":"boolean","default":["isOwner","false"]},{"name":"canContribute","type":"boolean","default":["canContribute","false"]},{"name":"priority","type":"number","default":["priority","0"]},{"name":"blocked","type":"boolean","default":["blocked","false"]},{"name":"mute","type":"boolean","default":["mute","false"]},{"name":"status","type":"string","default":["status","\"invited\""]}],"relations":[{"name":"mailbox","fkMap":[{"fk":"mailboxID","relatedKey":"mailboxID"}],"relatedName":"Mailbox"},{"name":"emailAddress","fkMap":[{"fk":"emailAddressID","relatedKey":"emailAddressID"}],"relatedName":"EmailAddress"},{"name":"lastEmail","fkMap":[{"fk":"lastEmailID","relatedKey":"emailID"}],"relatedName":"Email"},{"name":"tags","isCollection":true,"isInverse":true,"relatedName":"MailboxContactTag"}]}
718
724
  );
719
725
  modelEntitySchemas["MailboxContact"] = MailboxContact;
720
726
 
@@ -870,6 +876,27 @@ export const SearchWordIndex: IModel<ISearchWordIndex> = new Model<ISearchWordIn
870
876
  );
871
877
  modelEntitySchemas["SearchWordIndex"] = SearchWordIndex;
872
878
 
879
+ export interface IServerActivity extends IClrEntity {
880
+ readonly activityID?: number;
881
+ domainID?: number | null;
882
+ webSiteFolderID?: number | null;
883
+ dateCreated?: DateTime;
884
+ ipAddress?: string;
885
+ activity?: "visit" | "rcpt-not-found" | "mail-received";
886
+ domain?: IDomain;
887
+ webSite?: IWebSiteFolder;
888
+ }
889
+
890
+ export const ServerActivityActivityArray = [{"label":"visit","value":"visit"},{"label":"rcpt-not-found","value":"rcpt-not-found"},{"label":"mail-received","value":"mail-received"}];
891
+
892
+ export const ServerActivity: IModel<IServerActivity> = new Model<IServerActivity>(
893
+ "ServerActivity",
894
+ ["activityID"],
895
+ { dateCreated: new DefaultFactory(() => new DateTime()),ipAddress: "",activity: "visit" },
896
+ {"name":"server_activities","keys":[{"name":"activityID","type":"number","generated":"identity"}],"properties":[{"name":"domainID","type":"number"},{"name":"webSiteFolderID","type":"number"},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"ipAddress","type":"string","default":["ipAddress","\"\""]},{"name":"activity","type":"string","default":["activity","\"visit\""]}],"relations":[{"name":"domain","fkMap":[{"fk":"domainID","relatedKey":"domainID"}],"relatedName":"Domain"},{"name":"webSite","fkMap":[{"fk":"webSiteFolderID","relatedKey":"folderID"}],"relatedName":"WebSiteFolder"}]}
897
+ );
898
+ modelEntitySchemas["ServerActivity"] = ServerActivity;
899
+
873
900
  export interface IStore extends IClrEntity {
874
901
  readonly storeID?: number;
875
902
  name?: string;
@@ -942,6 +969,8 @@ export interface IStoreItem extends IClrEntity {
942
969
  dateCreated?: DateTime;
943
970
  dateUpdated?: DateTime;
944
971
  vendorID?: number | null;
972
+ readonly price?: number;
973
+ readonly maxPrice?: number;
945
974
  signed?: string;
946
975
  store?: IStore;
947
976
  itemFolder?: IStoreItemFolder;
@@ -965,8 +994,8 @@ export const StoreItemItemTypeArray = [{"label":"product","value":"product"},{"l
965
994
  export const StoreItem: IModel<IStoreItem> = new Model<IStoreItem>(
966
995
  "StoreItem",
967
996
  ["storeItemID"],
968
- { name: "",active: false,itemType: "product",dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()) },
969
- {"name":"store_items","keys":[{"name":"storeItemID","type":"number","generated":"identity"}],"properties":[{"name":"storeID","type":"number"},{"name":"itemFolderID","type":"number"},{"name":"name","type":"string","default":["name","\"\""]},{"name":"active","type":"boolean","default":["active","false"]},{"name":"internalNotes","type":"string","default":["internalNotes","\"\""]},{"name":"description","type":"string","default":["description","\"\""]},{"name":"itemType","type":"string","default":["itemType","\"product\""]},{"name":"folderID","type":"number"},{"name":"sizeForID","type":"number"},{"name":"variantForID","type":"number"},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"vendorID","type":"number"}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"itemFolder","fkMap":[{"fk":"itemFolderID","relatedKey":"itemFolderID"}],"relatedName":"StoreItemFolder"},{"name":"fileFolder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"sizeFor","fkMap":[{"fk":"sizeForID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"sizes","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"variantFor","fkMap":[{"fk":"variantForID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"variants","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"vendor","fkMap":[{"fk":"vendorID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"storeItemPrices","isCollection":true,"isInverse":true,"relatedName":"StoreItemPrice"},{"name":"priceAddOns","isCollection":true,"isInverse":true,"relatedName":"StorePriceAddOn"},{"name":"mediaFiles","isCollection":true,"isInverse":true,"relatedName":"StoreMediaFile"},{"name":"insights","isCollection":true,"isInverse":true,"relatedName":"StoreInsight"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"lineItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"},{"name":"storeItemTags","isCollection":true,"isInverse":true,"relatedName":"StoreItemTag"}]}
997
+ { name: "",active: false,itemType: "product",dateCreated: new DefaultFactory(() => new DateTime()),dateUpdated: new DefaultFactory(() => new DateTime()),price: 0,maxPrice: 0 },
998
+ {"name":"store_items","keys":[{"name":"storeItemID","type":"number","generated":"identity"}],"properties":[{"name":"storeID","type":"number"},{"name":"itemFolderID","type":"number"},{"name":"name","type":"string","default":["name","\"\""]},{"name":"active","type":"boolean","default":["active","false"]},{"name":"internalNotes","type":"string","default":["internalNotes","\"\""]},{"name":"description","type":"string","default":["description","\"\""]},{"name":"itemType","type":"string","default":["itemType","\"product\""]},{"name":"folderID","type":"number"},{"name":"sizeForID","type":"number"},{"name":"variantForID","type":"number"},{"name":"dateCreated","type":"DateTime","default":["dateCreated","new DefaultFactory(() => new DateTime())"]},{"name":"dateUpdated","type":"DateTime","default":["dateUpdated","new DefaultFactory(() => new DateTime())"]},{"name":"vendorID","type":"number"},{"name":"price","type":"number","default":["price","0"]},{"name":"maxPrice","type":"number","default":["maxPrice","0"]}],"relations":[{"name":"store","fkMap":[{"fk":"storeID","relatedKey":"storeID"}],"relatedName":"Store"},{"name":"itemFolder","fkMap":[{"fk":"itemFolderID","relatedKey":"itemFolderID"}],"relatedName":"StoreItemFolder"},{"name":"fileFolder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"sizeFor","fkMap":[{"fk":"sizeForID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"sizes","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"variantFor","fkMap":[{"fk":"variantForID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"variants","isCollection":true,"isInverse":true,"relatedName":"StoreItem"},{"name":"vendor","fkMap":[{"fk":"vendorID","relatedKey":"contactID"}],"relatedName":"Contact"},{"name":"storeItemPrices","isCollection":true,"isInverse":true,"relatedName":"StoreItemPrice"},{"name":"priceAddOns","isCollection":true,"isInverse":true,"relatedName":"StorePriceAddOn"},{"name":"mediaFiles","isCollection":true,"isInverse":true,"relatedName":"StoreMediaFile"},{"name":"insights","isCollection":true,"isInverse":true,"relatedName":"StoreInsight"},{"name":"ledgers","isCollection":true,"isInverse":true,"relatedName":"StoreLedger"},{"name":"lineItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"},{"name":"storeItemTags","isCollection":true,"isInverse":true,"relatedName":"StoreItemTag"}]}
970
999
  );
971
1000
  modelEntitySchemas["StoreItem"] = StoreItem;
972
1001
 
@@ -1000,6 +1029,7 @@ export interface IStoreItemPrice extends IClrEntity {
1000
1029
  amount?: number;
1001
1030
  maxAmount?: number | null;
1002
1031
  active?: boolean;
1032
+ addonsAmount?: number;
1003
1033
  storeItem?: IStoreItem;
1004
1034
  addons?: ICollection<IStorePriceAddOn>;
1005
1035
  lineItems?: ICollection<IStoreJournalLineItem>;
@@ -1008,8 +1038,8 @@ export interface IStoreItemPrice extends IClrEntity {
1008
1038
  export const StoreItemPrice: IModel<IStoreItemPrice> = new Model<IStoreItemPrice>(
1009
1039
  "StoreItemPrice",
1010
1040
  ["priceID"],
1011
- { startDate: new DefaultFactory(() => new DateTime()),currency: "",amount: 0,active: false },
1012
- {"name":"store_item_prices","keys":[{"name":"priceID","type":"number","generated":"identity"}],"properties":[{"name":"storeItemID","type":"number"},{"name":"startDate","type":"DateTime","default":["startDate","new DefaultFactory(() => new DateTime())"]},{"name":"endDate","type":"DateTime","default":["endDate","new DefaultFactory(() => new DateTime())"]},{"name":"currency","type":"string","default":["currency","\"\""]},{"name":"amount","type":"number","default":["amount","0"]},{"name":"maxAmount","type":"number","default":["maxAmount","0"]},{"name":"active","type":"boolean","default":["active","false"]}],"relations":[{"name":"storeItem","fkMap":[{"fk":"storeItemID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"addons","isCollection":true,"isInverse":true,"relatedName":"StorePriceAddOn"},{"name":"lineItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"}]}
1041
+ { startDate: new DefaultFactory(() => new DateTime()),currency: "",amount: 0,active: false,addonsAmount: 0 },
1042
+ {"name":"store_item_prices","keys":[{"name":"priceID","type":"number","generated":"identity"}],"properties":[{"name":"storeItemID","type":"number"},{"name":"startDate","type":"DateTime","default":["startDate","new DefaultFactory(() => new DateTime())"]},{"name":"endDate","type":"DateTime","default":["endDate","new DefaultFactory(() => new DateTime())"]},{"name":"currency","type":"string","default":["currency","\"\""]},{"name":"amount","type":"number","default":["amount","0"]},{"name":"maxAmount","type":"number","default":["maxAmount","0"]},{"name":"active","type":"boolean","default":["active","false"]},{"name":"addonsAmount","type":"number","default":["addonsAmount","0"]}],"relations":[{"name":"storeItem","fkMap":[{"fk":"storeItemID","relatedKey":"storeItemID"}],"relatedName":"StoreItem"},{"name":"addons","isCollection":true,"isInverse":true,"relatedName":"StorePriceAddOn"},{"name":"lineItems","isCollection":true,"isInverse":true,"relatedName":"StoreJournalLineItem"}]}
1013
1043
  );
1014
1044
  modelEntitySchemas["StoreItemPrice"] = StoreItemPrice;
1015
1045
 
@@ -1347,6 +1377,7 @@ export interface IWebSiteFolder extends IClrEntity {
1347
1377
  isModified?: boolean;
1348
1378
  folder?: IAppFile;
1349
1379
  currentVersion?: IAppFile;
1380
+ activities?: ICollection<IServerActivity>;
1350
1381
  hosts?: ICollection<IWebSiteFolderHost>;
1351
1382
  versions?: ICollection<IWebSiteFolderVersion>;
1352
1383
  channels?: ICollection<IWebSiteChannel>;
@@ -1357,7 +1388,7 @@ export const WebSiteFolder: IModel<IWebSiteFolder> = new Model<IWebSiteFolder>(
1357
1388
  "WebSiteFolder",
1358
1389
  ["folderID"],
1359
1390
  { isStatic: false,isTemplate: false,isModified: false },
1360
- {"name":"web_site_folders","keys":[{"name":"folderID","type":"number"}],"properties":[{"name":"currentVersionID","type":"number"},{"name":"isStatic","type":"boolean","default":["isStatic","false"]},{"name":"isTemplate","type":"boolean","default":["isTemplate","false"]},{"name":"isModified","type":"boolean","default":["isModified","false"]}],"relations":[{"name":"folder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"currentVersion","fkMap":[{"fk":"currentVersionID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"hosts","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolderHost"},{"name":"versions","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolderVersion"},{"name":"channels","isCollection":true,"isInverse":true,"relatedName":"WebSiteChannel"},{"name":"websiteStores","isCollection":true,"isInverse":true,"relatedName":"WebSiteStore"}]}
1391
+ {"name":"web_site_folders","keys":[{"name":"folderID","type":"number"}],"properties":[{"name":"currentVersionID","type":"number"},{"name":"isStatic","type":"boolean","default":["isStatic","false"]},{"name":"isTemplate","type":"boolean","default":["isTemplate","false"]},{"name":"isModified","type":"boolean","default":["isModified","false"]}],"relations":[{"name":"folder","fkMap":[{"fk":"folderID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"currentVersion","fkMap":[{"fk":"currentVersionID","relatedKey":"appFileID"}],"relatedName":"AppFile"},{"name":"activities","isCollection":true,"isInverse":true,"relatedName":"ServerActivity"},{"name":"hosts","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolderHost"},{"name":"versions","isCollection":true,"isInverse":true,"relatedName":"WebSiteFolderVersion"},{"name":"channels","isCollection":true,"isInverse":true,"relatedName":"WebSiteChannel"},{"name":"websiteStores","isCollection":true,"isInverse":true,"relatedName":"WebSiteStore"}]}
1361
1392
  );
1362
1393
  modelEntitySchemas["WebSiteFolder"] = WebSiteFolder;
1363
1394
 
@@ -11,7 +11,7 @@ import Bind from "@web-atoms/core/dist/core/Bind";
11
11
  import Action from "@web-atoms/core/dist/view-model/Action";
12
12
  import styled from "@web-atoms/core/dist/style/styled";
13
13
  import FetchBuilder from "@web-atoms/core/dist/services/FetchBuilder";
14
- import { formatCurrency } from "../../common/currency";
14
+ import { formatCurrency, formatPrice } from "../../common/currency";
15
15
 
16
16
  const url = (window as any).pageUrl as URL;
17
17
 
@@ -103,7 +103,6 @@ export default class StoreItemDetailView extends AtomControl {
103
103
  const specifications = this.model.mediaFiles.find((x) => x.title === "specs.html");
104
104
 
105
105
  const price = this.model.storeItemPrices[0];
106
- const sellPrice = price.amount;
107
106
  const maxPrice = price.maxAmount ? price.maxAmount : ( Math.ceil(price.amount * 1.1));
108
107
 
109
108
  const [offerHtml, specHtml] = await Promise.all([
@@ -141,7 +140,7 @@ export default class StoreItemDetailView extends AtomControl {
141
140
  {this.model.description}
142
141
  </p>
143
142
  <p>
144
- <label text={ formatCurrency(sellPrice, price.currency) }/>
143
+ <label text={ formatPrice(price) }/>
145
144
  </p>
146
145
  <button>Buy</button>
147
146
  </section>
@@ -181,7 +181,6 @@ export default class StoreItemListView extends AtomControl {
181
181
  for (const item of items.items) {
182
182
  item.storeItemTags?.sort((a, b) => a.sortOrder - b.sortOrder);
183
183
  }
184
-
185
184
  return items;
186
185
  }
187
186
  }
@@ -316,6 +316,14 @@ export default class ConversationPage extends ContentPage {
316
316
  // mailboxContact={this.parameters}
317
317
  // />;
318
318
 
319
+ this.showComposeButton();
320
+ }
321
+
322
+ @Action({ onEvent: "emailSent"})
323
+ showComposeButton(email = null) {
324
+ if (email) {
325
+ this.mailsRepeater.items.remove(email);
326
+ }
319
327
  this.footerRenderer = () => <div
320
328
  data-position="absolute"
321
329
  style-right="20px"
@@ -324,8 +332,7 @@ export default class ConversationPage extends ContentPage {
324
332
  <AddIconTextButton
325
333
  event-click={() => this.startCompose()}
326
334
  data-margin-left="auto"
327
- text="Compose"
328
- />
335
+ text="Compose" />
329
336
  </div>;
330
337
  }
331
338
 
@@ -386,6 +393,13 @@ export default class ConversationPage extends ContentPage {
386
393
  }
387
394
  const { emailID } = email;
388
395
  const { emailAddressID, mailboxID } = this.parameters;
396
+
397
+ // if it is present... remove..
398
+ const index = this.mails.findIndex((x) => x.emailID === emailID);
399
+ if (index !== -1) {
400
+ this.mails.removeAt(index);
401
+ }
402
+
389
403
  this.mails.insert(0, MailboxContactEmail.create({
390
404
  emailID,
391
405
  emailAddressID,
@@ -507,7 +521,8 @@ export default class ConversationPage extends ContentPage {
507
521
  }
508
522
 
509
523
  @Action({ onEvent: ["reply-email", "reply-all-email" ]})
510
- async replyEmail({ email }: IMailboxContactEmail, ce: CustomEvent) {
524
+ async replyEmail(mce: IMailboxContactEmail, ce: CustomEvent) {
525
+ const { email } = mce;
511
526
  const parse = JSON.parse(email.headers);
512
527
  const replyTo = parse?.replyTo?.[0];
513
528
  const emailAddressText = (this.parameters.emailAddress.emailAddress)
@@ -518,6 +533,7 @@ export default class ConversationPage extends ContentPage {
518
533
  EmailRecipient.create({
519
534
  name,
520
535
  replyTo,
536
+ emailAddressID: this.parameters.emailAddressID,
521
537
  emailAddressText
522
538
  })
523
539
  ];
@@ -531,6 +547,7 @@ export default class ConversationPage extends ContentPage {
531
547
  }
532
548
  recipients.push(EmailRecipient.create({
533
549
  name: rName,
550
+ emailAddressID,
534
551
  emailAddressText: emailAddress
535
552
  }));
536
553
  }
@@ -35,6 +35,7 @@ import DomToString from "@web-atoms/email-dom/dist/DomToString";
35
35
  import EmailLabel from "../../../../common/controls/email-recipients/EmailLabel";
36
36
  import Loader from "../../../../common/controls/Loader";
37
37
  import { descendentElementIterator } from "@web-atoms/core/dist/web/core/AtomUI";
38
+ import TitleEditor from "@web-atoms/web-controls/dist/basic/TitleEditor";
38
39
 
39
40
  const css = styled.css `
40
41
  display: grid;
@@ -78,7 +79,7 @@ const css = styled.css `
78
79
  border-color: transparent;
79
80
  }
80
81
 
81
- & input.subject {
82
+ & .subject {
82
83
  border-bottom: solid 1px lightgray;
83
84
  place-self: stretch;
84
85
  margin-left: 5px;
@@ -88,6 +89,10 @@ const css = styled.css `
88
89
  outline: none;
89
90
  border: none;
90
91
  border-bottom: solid 1px lightgray;
92
+ & input {
93
+ border: none;
94
+ outline: none;
95
+ }
91
96
  }
92
97
  `.installLocal();
93
98
 
@@ -135,10 +140,10 @@ export default class MiniComposeBox extends AtomControl {
135
140
 
136
141
  await sleep(100);
137
142
 
138
- this.draft ??= (await this.conversationService.getDraft(this.mailboxContact))?.email;
143
+ this.draft ??= null;
139
144
 
140
- if (this.draft) {
141
- this.draft.attachments ??= [];
145
+ if (!this.draft) {
146
+ this.ensureDraft();
142
147
  }
143
148
 
144
149
  this.typedMessage = this.draft?.htmlBody
@@ -162,7 +167,7 @@ export default class MiniComposeBox extends AtomControl {
162
167
  <AddLink/>
163
168
  <Unlink/>
164
169
  </Toolbar>
165
- <input
170
+ <TitleEditor
166
171
  class="subject"
167
172
  placeholder="Subject ... "
168
173
  value={Bind.sourceTwoWays(this, (x) => x.source.draft.subject)}/>
@@ -205,7 +210,7 @@ export default class MiniComposeBox extends AtomControl {
205
210
  await sleep(100);
206
211
 
207
212
  if (!this.draft.subject) {
208
- (this.editor.element.querySelector("input.subject") as HTMLInputElement)?.focus();
213
+ (this.editor.element.querySelector(".subject > input") as HTMLInputElement)?.focus();
209
214
  return;
210
215
  }
211
216
 
@@ -432,12 +437,14 @@ export default class MiniComposeBox extends AtomControl {
432
437
  this.draft.dateSent = DateTime.now.add(TimeSpan.fromSeconds(30));
433
438
  this.draft.dateUpdated = DateTime.now;
434
439
  await this.mailService.send(this.draft);
440
+ const saved = this.draft;
435
441
  this.draft = Email.create({
436
442
  subject: "",
437
443
  htmlBody: defaultEmailBody,
438
444
  attachments: []
439
445
  });
440
446
  this.editor.htmlContent = this.draft.htmlBody;
447
+ this.element.dispatchEvent(new CustomEvent("emailSent", { bubbles: true, detail: saved }));
441
448
  }
442
449
 
443
450
  @Action({})