@bobfrankston/rmfmail 1.1.222 → 1.1.228

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 (81) hide show
  1. package/client/app.bundle.js +17 -7
  2. package/client/app.bundle.js.map +2 -2
  3. package/client/app.js +8 -0
  4. package/client/app.js.map +1 -1
  5. package/client/app.ts +7 -0
  6. package/client/components/message-list.js +14 -5
  7. package/client/components/message-list.js.map +1 -1
  8. package/client/components/message-list.ts +15 -5
  9. package/client/components/message-viewer.js +14 -0
  10. package/client/components/message-viewer.js.map +1 -1
  11. package/client/components/message-viewer.ts +9 -0
  12. package/client/compose/compose.bundle.js +24 -12
  13. package/client/compose/compose.bundle.js.map +2 -2
  14. package/client/lib/api-client.js +2 -2
  15. package/client/lib/api-client.js.map +1 -1
  16. package/client/lib/api-client.ts +2 -2
  17. package/client/lib/mailxapi.js +2 -2
  18. package/client/lib/rmf-tiny.js +35 -10
  19. package/client/lib/tinymce/CHANGELOG.md +12 -0
  20. package/client/lib/tinymce/composer.json +1 -1
  21. package/client/lib/tinymce/models/dom/model.js +1 -1
  22. package/client/lib/tinymce/package.json +1 -1
  23. package/client/lib/tinymce/plugins/accordion/plugin.js +1 -1
  24. package/client/lib/tinymce/plugins/advlist/plugin.js +1 -1
  25. package/client/lib/tinymce/plugins/anchor/plugin.js +1 -1
  26. package/client/lib/tinymce/plugins/autolink/plugin.js +1 -1
  27. package/client/lib/tinymce/plugins/autoresize/plugin.js +1 -1
  28. package/client/lib/tinymce/plugins/autosave/plugin.js +1 -1
  29. package/client/lib/tinymce/plugins/charmap/plugin.js +1 -1
  30. package/client/lib/tinymce/plugins/code/plugin.js +1 -1
  31. package/client/lib/tinymce/plugins/codesample/plugin.js +1 -1
  32. package/client/lib/tinymce/plugins/directionality/plugin.js +1 -1
  33. package/client/lib/tinymce/plugins/emoticons/plugin.js +1 -1
  34. package/client/lib/tinymce/plugins/fullscreen/plugin.js +1 -1
  35. package/client/lib/tinymce/plugins/help/plugin.js +1 -1
  36. package/client/lib/tinymce/plugins/image/plugin.js +1 -1
  37. package/client/lib/tinymce/plugins/importcss/plugin.js +1 -1
  38. package/client/lib/tinymce/plugins/insertdatetime/plugin.js +1 -1
  39. package/client/lib/tinymce/plugins/link/plugin.js +1 -1
  40. package/client/lib/tinymce/plugins/lists/plugin.js +1 -1
  41. package/client/lib/tinymce/plugins/media/plugin.js +66 -41
  42. package/client/lib/tinymce/plugins/media/plugin.min.js +1 -1
  43. package/client/lib/tinymce/plugins/nonbreaking/plugin.js +1 -1
  44. package/client/lib/tinymce/plugins/pagebreak/plugin.js +1 -1
  45. package/client/lib/tinymce/plugins/preview/plugin.js +1 -1
  46. package/client/lib/tinymce/plugins/quickbars/plugin.js +1 -1
  47. package/client/lib/tinymce/plugins/save/plugin.js +1 -1
  48. package/client/lib/tinymce/plugins/searchreplace/plugin.js +1 -1
  49. package/client/lib/tinymce/plugins/table/plugin.js +1 -1
  50. package/client/lib/tinymce/plugins/visualblocks/plugin.js +1 -1
  51. package/client/lib/tinymce/plugins/visualchars/plugin.js +1 -1
  52. package/client/lib/tinymce/plugins/wordcount/plugin.js +1 -1
  53. package/client/lib/tinymce/themes/silver/theme.js +345 -155
  54. package/client/lib/tinymce/themes/silver/theme.min.js +3 -1
  55. package/client/lib/tinymce/tinymce.js +393 -171
  56. package/client/lib/tinymce/tinymce.min.js +4 -2
  57. package/client/styles/layout.css +1 -0
  58. package/docs/outlook.md +215 -0
  59. package/package.json +3 -3
  60. package/packages/mailx-service/db-worker.js +1 -1
  61. package/packages/mailx-service/db-worker.js.map +1 -1
  62. package/packages/mailx-service/db-worker.ts +2 -2
  63. package/packages/mailx-service/index.d.ts +1 -1
  64. package/packages/mailx-service/index.d.ts.map +1 -1
  65. package/packages/mailx-service/index.js +2 -2
  66. package/packages/mailx-service/index.js.map +1 -1
  67. package/packages/mailx-service/index.ts +2 -2
  68. package/packages/mailx-service/jsonrpc.js +1 -1
  69. package/packages/mailx-service/jsonrpc.js.map +1 -1
  70. package/packages/mailx-service/jsonrpc.ts +1 -1
  71. package/packages/mailx-store/db.d.ts +1 -1
  72. package/packages/mailx-store/db.d.ts.map +1 -1
  73. package/packages/mailx-store/db.js +10 -3
  74. package/packages/mailx-store/db.js.map +1 -1
  75. package/packages/mailx-store/db.ts +10 -3
  76. package/packages/mailx-store/store.d.ts +1 -1
  77. package/packages/mailx-store/store.d.ts.map +1 -1
  78. package/packages/mailx-store/store.js +2 -2
  79. package/packages/mailx-store/store.js.map +1 -1
  80. package/packages/mailx-store/store.ts +2 -2
  81. /package/packages/mailx-imap/{node_modules.npmglobalize-stash-8608 → node_modules.npmglobalize-stash-126048}/.package-lock.json +0 -0
@@ -190,9 +190,9 @@ function getMessages(accountId, folderId, page = 1, pageSize = 50, flaggedOnly =
190
190
  abortMessageListRequests();
191
191
  return ipc().getMessages(accountId, folderId, page, pageSize, sort, sortDir, void 0, flaggedOnly);
192
192
  }
193
- function getUnifiedInbox(page = 1, pageSize = 50) {
193
+ function getUnifiedInbox(page = 1, pageSize = 50, flaggedOnly = false) {
194
194
  abortMessageListRequests();
195
- return ipc().getUnifiedInbox(page, pageSize);
195
+ return ipc().getUnifiedInbox(page, pageSize, flaggedOnly);
196
196
  }
197
197
  function searchMessages(query, page = 1, pageSize = 50, scope = "all", accountId = "", folderId = 0, includeTrashSpam = false) {
198
198
  return ipc().searchMessages(query, page, pageSize, scope, accountId, folderId, includeTrashSpam);
@@ -1934,6 +1934,13 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
1934
1934
  } catch (e) {
1935
1935
  const err = e.message || "Unknown error";
1936
1936
  console.error("showMessage error:", e);
1937
+ const failEnv = cached || lastEnvelope || envelope;
1938
+ if (failEnv) {
1939
+ try {
1940
+ renderHeaderFromEnvelope(headerEl, failEnv);
1941
+ } catch {
1942
+ }
1943
+ }
1937
1944
  const isNotFound = /deleted from the server|isNotFound|not found|Not Found|404/.test(err);
1938
1945
  if (isNotFound) {
1939
1946
  document.dispatchEvent(new CustomEvent("mailx-remove-stale", {
@@ -3186,9 +3193,11 @@ async function loadUnifiedInbox(autoSelect = true) {
3186
3193
  const fromHeader = document.querySelector(".ml-col-from");
3187
3194
  if (fromHeader)
3188
3195
  fromHeader.textContent = "From";
3196
+ const flaggedOnly = body.classList.contains("flagged-only");
3197
+ const unifiedCacheKey = flaggedOnly ? CACHE_KEY_UNIFIED + ":flagged" : CACHE_KEY_UNIFIED;
3189
3198
  const remembered = positionMemory.get(CACHE_KEY_UNIFIED);
3190
3199
  const savedScroll = remembered?.scroll ?? (!autoSelect ? body.scrollTop : 0);
3191
- const cached = listCache.get(CACHE_KEY_UNIFIED);
3200
+ const cached = listCache.get(unifiedCacheKey);
3192
3201
  if (cached) {
3193
3202
  totalMessages = cached.total;
3194
3203
  setMessages(cached.items);
@@ -3204,16 +3213,16 @@ async function loadUnifiedInbox(autoSelect = true) {
3204
3213
  body.innerHTML = `<div class="ml-empty">Loading...</div>`;
3205
3214
  }
3206
3215
  try {
3207
- const result = await getUnifiedInbox(1);
3216
+ const result = await getUnifiedInbox(1, 50, flaggedOnly);
3208
3217
  if (myGen !== loadGen)
3209
3218
  return;
3210
3219
  totalMessages = result.total;
3211
- listCache.set(CACHE_KEY_UNIFIED, { items: result.items, total: result.total, timestamp: Date.now() });
3220
+ listCache.set(unifiedCacheKey, { items: result.items, total: result.total, timestamp: Date.now() });
3212
3221
  if (cached && listResultsEqual(cached.items, result.items))
3213
3222
  return;
3214
3223
  if (result.items.length === 0) {
3215
3224
  setMessages([]);
3216
- body.innerHTML = `<div class="ml-empty">${result.total > 0 ? `${result.total} messages syncing...` : "Syncing \u2014 messages will appear shortly"}</div>`;
3225
+ body.innerHTML = flaggedOnly ? `<div class="ml-empty">No flagged messages</div>` : `<div class="ml-empty">${result.total > 0 ? `${result.total} messages syncing...` : "Syncing \u2014 messages will appear shortly"}</div>`;
3217
3226
  return;
3218
3227
  }
3219
3228
  setMessages(result.items);
@@ -3403,7 +3412,7 @@ async function loadMoreMessages() {
3403
3412
  currentPage++;
3404
3413
  try {
3405
3414
  const flaggedOnly = body.classList.contains("flagged-only");
3406
- const result = searchMode ? await searchMessages(currentSearchQuery, currentPage) : unifiedMode ? await getUnifiedInbox(currentPage) : await getMessages(currentAccountId2, currentFolderId, currentPage, 50, flaggedOnly);
3415
+ const result = searchMode ? await searchMessages(currentSearchQuery, currentPage) : unifiedMode ? await getUnifiedInbox(currentPage, 50, flaggedOnly) : await getMessages(currentAccountId2, currentFolderId, currentPage, 50, flaggedOnly);
3407
3416
  const current = getMessages2();
3408
3417
  setMessages([...current, ...result.items]);
3409
3418
  appendMessages(body, unifiedMode ? "" : currentAccountId2, result.items);
@@ -9382,6 +9391,7 @@ document.addEventListener("keydown", (e) => {
9382
9391
  document.getElementById("message-viewer")?.addEventListener("dblclick", (e) => {
9383
9392
  const target = e.target;
9384
9393
  if (target?.closest("a, button, input, select, textarea, [contenteditable]")) return;
9394
+ if (target?.closest(".mv-header")) return;
9385
9395
  toggleFullscreenPreview();
9386
9396
  });
9387
9397
  function focusPaneById(id) {