@bobfrankston/rmfmail 1.1.99 → 1.1.102
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 +44 -3
- package/client/app.bundle.js.map +2 -2
- package/client/components/message-list.js +55 -3
- package/client/components/message-list.js.map +1 -1
- package/client/components/message-list.ts +56 -3
- package/client/components/message-viewer.js +5 -1
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +5 -1
- package/client/compose/compose.bundle.js +11 -1
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/compose/compose.js +22 -1
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +22 -1
- package/client/styles/components.css +10 -0
- package/npmchanges.md +19 -0
- package/package.json +5 -5
- 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 +117 -19
- package/packages/mailx-imap/index.js.map +1 -1
- package/packages/mailx-imap/index.ts +113 -18
- 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-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 +107 -5
- package/packages/mailx-store/db.js.map +1 -1
- package/packages/mailx-store/db.ts +120 -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 -16
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-75440 → node_modules.npmglobalize-stash-47276}/.package-lock.json +0 -0
package/client/app.bundle.js
CHANGED
|
@@ -2246,7 +2246,7 @@ var init_message_viewer = __esm({
|
|
|
2246
2246
|
ZOOM_MIN = 0.5;
|
|
2247
2247
|
ZOOM_MAX = 3;
|
|
2248
2248
|
ZOOM_STEP = 0.1;
|
|
2249
|
-
previewZoom = clampZoom(parseFloat(localStorage.getItem(ZOOM_KEY) || "1"));
|
|
2249
|
+
previewZoom = clampZoom(parseFloat(localStorage.getItem(ZOOM_KEY) || "1.15"));
|
|
2250
2250
|
subscribeStore("*", (ev) => {
|
|
2251
2251
|
if (ev.kind !== "bodyFetchError")
|
|
2252
2252
|
return;
|
|
@@ -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"))
|
|
@@ -3324,7 +3349,14 @@ var init_message_list = __esm({
|
|
|
3324
3349
|
}
|
|
3325
3350
|
const date = document.createElement("span");
|
|
3326
3351
|
date.className = "ml-date";
|
|
3327
|
-
|
|
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);
|
|
3328
3360
|
row.appendChild(avatar);
|
|
3329
3361
|
row.appendChild(flag);
|
|
3330
3362
|
row.appendChild(from);
|
|
@@ -3371,10 +3403,19 @@ var init_message_list = __esm({
|
|
|
3371
3403
|
* rather than waiting for the next IMAP APPEND + sync round-trip. */
|
|
3372
3404
|
setDate(epochMs) {
|
|
3373
3405
|
this.msg.date = epochMs;
|
|
3374
|
-
const el = this.el.querySelector(".ml-date");
|
|
3406
|
+
const el = this.el.querySelector(".ml-date-text");
|
|
3375
3407
|
if (el)
|
|
3376
3408
|
el.textContent = formatDate(epochMs);
|
|
3377
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
|
+
}
|
|
3378
3419
|
// Visual-state accessors for flag toggles. Read the *visual* state
|
|
3379
3420
|
// (CSS class), not `this.msg.flags`, because the flag array can lag
|
|
3380
3421
|
// the rendered class — auto-mark-as-read removes the `unread` class
|