@bobfrankston/rmfmail 1.1.98 → 1.1.101
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.
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js +45 -2
- package/client/app.bundle.js.map +2 -2
- package/client/components/message-list.js +63 -3
- package/client/components/message-list.js.map +1 -1
- package/client/components/message-list.ts +63 -3
- package/client/styles/components.css +10 -0
- package/npmchanges.md +29 -0
- package/package.json +1 -1
- package/packages/mailx-core/index.d.ts +1 -0
- package/packages/mailx-core/index.d.ts.map +1 -1
- package/packages/mailx-imap/index.d.ts +24 -0
- package/packages/mailx-imap/index.d.ts.map +1 -1
- package/packages/mailx-imap/index.js +96 -4
- package/packages/mailx-imap/index.js.map +1 -1
- package/packages/mailx-imap/index.ts +90 -4
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +1 -1
- package/packages/mailx-service/index.d.ts.map +1 -1
- package/packages/mailx-service/index.js +17 -0
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-service/index.ts +15 -0
- package/packages/mailx-service/reconciler.d.ts.map +1 -1
- package/packages/mailx-service/reconciler.js +4 -0
- package/packages/mailx-service/reconciler.js.map +1 -1
- package/packages/mailx-service/reconciler.ts +6 -0
- package/packages/mailx-service/sync-queue.d.ts +8 -0
- package/packages/mailx-service/sync-queue.d.ts.map +1 -1
- package/packages/mailx-service/sync-queue.js +40 -4
- package/packages/mailx-service/sync-queue.js.map +1 -1
- package/packages/mailx-service/sync-queue.ts +39 -4
- package/packages/mailx-settings/docs/rmf-tiny.md +31 -2
- package/packages/mailx-settings/package.json +1 -1
- package/packages/mailx-store/db.d.ts +27 -0
- package/packages/mailx-store/db.d.ts.map +1 -1
- package/packages/mailx-store/db.js +99 -5
- package/packages/mailx-store/db.js.map +1 -1
- package/packages/mailx-store/db.ts +113 -5
- package/packages/mailx-store/package.json +1 -1
- package/packages/mailx-store-web/package.json +1 -1
- package/packages/mailx-types/index.d.ts +1 -0
- package/packages/mailx-types/index.d.ts.map +1 -1
- package/packages/mailx-types/index.js.map +1 -1
- package/packages/mailx-types/index.ts +1 -0
- package/packages/mailx-types/package.json +1 -1
- package/.commitmsg +0 -7
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-82308 → node_modules.npmglobalize-stash-12320}/.package-lock.json +0 -0
package/client/app.bundle.js
CHANGED
|
@@ -2612,6 +2612,31 @@ function senderColor(seed) {
|
|
|
2612
2612
|
const hue = Math.abs(h) % 12 * 30 + 15;
|
|
2613
2613
|
return `oklch(0.62 0.14 ${hue})`;
|
|
2614
2614
|
}
|
|
2615
|
+
function renderStatusIcons(host, msg) {
|
|
2616
|
+
host.textContent = "";
|
|
2617
|
+
if (msg.hasAttachments) {
|
|
2618
|
+
const a = document.createElement("span");
|
|
2619
|
+
a.className = "ml-icon ml-icon-attach";
|
|
2620
|
+
a.textContent = "\u{1F4CE}";
|
|
2621
|
+
a.title = "Has attachments";
|
|
2622
|
+
host.appendChild(a);
|
|
2623
|
+
}
|
|
2624
|
+
const flags = msg.flags || [];
|
|
2625
|
+
if (msg.isReplied || flags.includes("\\Answered")) {
|
|
2626
|
+
const r = document.createElement("span");
|
|
2627
|
+
r.className = "ml-icon ml-icon-replied";
|
|
2628
|
+
r.textContent = "\u21A9";
|
|
2629
|
+
r.title = "Replied";
|
|
2630
|
+
host.appendChild(r);
|
|
2631
|
+
}
|
|
2632
|
+
if (flags.includes("$Forwarded")) {
|
|
2633
|
+
const f = document.createElement("span");
|
|
2634
|
+
f.className = "ml-icon ml-icon-forwarded";
|
|
2635
|
+
f.textContent = "\u21AA";
|
|
2636
|
+
f.title = "Forwarded";
|
|
2637
|
+
host.appendChild(f);
|
|
2638
|
+
}
|
|
2639
|
+
}
|
|
2615
2640
|
function exitMultiSelect() {
|
|
2616
2641
|
const body = document.getElementById("ml-body");
|
|
2617
2642
|
if (!body?.classList.contains("multi-select-on"))
|
|
@@ -2633,6 +2658,8 @@ function selectRange(from, to) {
|
|
|
2633
2658
|
return;
|
|
2634
2659
|
const lo = Math.min(fromIdx, toIdx);
|
|
2635
2660
|
const hi = Math.max(fromIdx, toIdx);
|
|
2661
|
+
if (hi > lo)
|
|
2662
|
+
body.classList.add("multi-select-on");
|
|
2636
2663
|
for (let i = lo; i <= hi; i++)
|
|
2637
2664
|
rows[i].classList.add("selected");
|
|
2638
2665
|
}
|
|
@@ -3322,7 +3349,14 @@ var init_message_list = __esm({
|
|
|
3322
3349
|
}
|
|
3323
3350
|
const date = document.createElement("span");
|
|
3324
3351
|
date.className = "ml-date";
|
|
3325
|
-
|
|
3352
|
+
const icons = document.createElement("span");
|
|
3353
|
+
icons.className = "ml-status-icons";
|
|
3354
|
+
renderStatusIcons(icons, msg);
|
|
3355
|
+
const dateText = document.createElement("span");
|
|
3356
|
+
dateText.className = "ml-date-text";
|
|
3357
|
+
dateText.textContent = formatDate(msg.date);
|
|
3358
|
+
date.appendChild(icons);
|
|
3359
|
+
date.appendChild(dateText);
|
|
3326
3360
|
row.appendChild(avatar);
|
|
3327
3361
|
row.appendChild(flag);
|
|
3328
3362
|
row.appendChild(from);
|
|
@@ -3369,10 +3403,19 @@ var init_message_list = __esm({
|
|
|
3369
3403
|
* rather than waiting for the next IMAP APPEND + sync round-trip. */
|
|
3370
3404
|
setDate(epochMs) {
|
|
3371
3405
|
this.msg.date = epochMs;
|
|
3372
|
-
const el = this.el.querySelector(".ml-date");
|
|
3406
|
+
const el = this.el.querySelector(".ml-date-text");
|
|
3373
3407
|
if (el)
|
|
3374
3408
|
el.textContent = formatDate(epochMs);
|
|
3375
3409
|
}
|
|
3410
|
+
/** Re-render the attachment / replied / forwarded glyphs in the date
|
|
3411
|
+
* cell. Called when a flag-change event (Answered, $Forwarded) lands
|
|
3412
|
+
* for this row so the icon strip reflects current state without a
|
|
3413
|
+
* full row rebuild. */
|
|
3414
|
+
refreshStatusIcons() {
|
|
3415
|
+
const icons = this.el.querySelector(".ml-status-icons");
|
|
3416
|
+
if (icons)
|
|
3417
|
+
renderStatusIcons(icons, this.msg);
|
|
3418
|
+
}
|
|
3376
3419
|
// Visual-state accessors for flag toggles. Read the *visual* state
|
|
3377
3420
|
// (CSS class), not `this.msg.flags`, because the flag array can lag
|
|
3378
3421
|
// the rendered class — auto-mark-as-read removes the `unread` class
|