@bobfrankston/rmfmail 1.2.274 → 1.2.277
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/.commitmsg +31 -0
- package/bin/build-tinymce.js +27 -0
- package/client/android-bootstrap.bundle.js +169 -0
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js +231 -23
- package/client/app.bundle.js.map +4 -4
- package/client/app.js +81 -1
- package/client/app.js.map +1 -1
- package/client/app.ts +75 -1
- package/client/components/invite-card.js +107 -0
- package/client/components/invite-card.js.map +1 -0
- package/client/components/invite-card.ts +119 -0
- package/client/components/message-viewer.js +42 -17
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +42 -16
- package/client/compose/compose.bundle.js +90 -2
- package/client/compose/compose.bundle.js.map +4 -4
- package/client/compose/compose.js +26 -1
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +22 -1
- package/client/compose/editor.js +12 -1
- package/client/compose/editor.js.map +1 -1
- package/client/compose/editor.ts +17 -2
- package/client/index.html +1 -0
- package/client/lib/rmf-tiny.js +3 -0
- package/client/lib/tinymce/langs/ar-SA.js +440 -0
- package/client/lib/tinymce/langs/ar.js +441 -0
- package/client/lib/tinymce/langs/az.js +440 -0
- package/client/lib/tinymce/langs/be.js +440 -0
- package/client/lib/tinymce/langs/bg-BG.js +440 -0
- package/client/lib/tinymce/langs/bn-BD.js +440 -0
- package/client/lib/tinymce/langs/bs.js +440 -0
- package/client/lib/tinymce/langs/ca.js +440 -0
- package/client/lib/tinymce/langs/cs.js +440 -0
- package/client/lib/tinymce/langs/cy.js +440 -0
- package/client/lib/tinymce/langs/da.js +440 -0
- package/client/lib/tinymce/langs/de.js +440 -0
- package/client/lib/tinymce/langs/el.js +440 -0
- package/client/lib/tinymce/langs/eo.js +440 -0
- package/client/lib/tinymce/langs/es-MX.js +440 -0
- package/client/lib/tinymce/langs/es.js +440 -0
- package/client/lib/tinymce/langs/et.js +440 -0
- package/client/lib/tinymce/langs/eu.js +440 -0
- package/client/lib/tinymce/langs/fa.js +441 -0
- package/client/lib/tinymce/langs/fi.js +440 -0
- package/client/lib/tinymce/langs/fr-FR.js +440 -0
- package/client/lib/tinymce/langs/gl.js +440 -0
- package/client/lib/tinymce/langs/he-IL.js +440 -0
- package/client/lib/tinymce/langs/hr.js +440 -0
- package/client/lib/tinymce/langs/hu-HU.js +440 -0
- package/client/lib/tinymce/langs/hy.js +440 -0
- package/client/lib/tinymce/langs/id.js +440 -0
- package/client/lib/tinymce/langs/index.json +63 -0
- package/client/lib/tinymce/langs/is-IS.js +440 -0
- package/client/lib/tinymce/langs/it.js +440 -0
- package/client/lib/tinymce/langs/ja.js +440 -0
- package/client/lib/tinymce/langs/ka-GE.js +440 -0
- package/client/lib/tinymce/langs/kab.js +440 -0
- package/client/lib/tinymce/langs/kk.js +440 -0
- package/client/lib/tinymce/langs/ko-KR.js +440 -0
- package/client/lib/tinymce/langs/lt.js +440 -0
- package/client/lib/tinymce/langs/lv.js +440 -0
- package/client/lib/tinymce/langs/nb-NO.js +440 -0
- package/client/lib/tinymce/langs/ne.js +440 -0
- package/client/lib/tinymce/langs/nl-BE.js +440 -0
- package/client/lib/tinymce/langs/nl.js +440 -0
- package/client/lib/tinymce/langs/oc.js +440 -0
- package/client/lib/tinymce/langs/pl.js +440 -0
- package/client/lib/tinymce/langs/pt-BR.js +440 -0
- package/client/lib/tinymce/langs/pt-PT.js +440 -0
- package/client/lib/tinymce/langs/ro.js +440 -0
- package/client/lib/tinymce/langs/ru.js +440 -0
- package/client/lib/tinymce/langs/sk.js +440 -0
- package/client/lib/tinymce/langs/sl-SI.js +440 -0
- package/client/lib/tinymce/langs/sr.js +440 -0
- package/client/lib/tinymce/langs/sv-SE.js +440 -0
- package/client/lib/tinymce/langs/ta.js +440 -0
- package/client/lib/tinymce/langs/tg.js +440 -0
- package/client/lib/tinymce/langs/th-TH.js +440 -0
- package/client/lib/tinymce/langs/tr.js +440 -0
- package/client/lib/tinymce/langs/ug.js +440 -0
- package/client/lib/tinymce/langs/uk.js +440 -0
- package/client/lib/tinymce/langs/vi.js +440 -0
- package/client/lib/tinymce/langs/zh-CN.js +440 -0
- package/client/lib/tinymce/langs/zh-HK.js +440 -0
- package/client/lib/tinymce/langs/zh-MO.js +440 -0
- package/client/lib/tinymce/langs/zh-TW.js +440 -0
- package/client/lib/tinymce-langs.js +96 -0
- package/client/lib/tinymce-langs.js.map +1 -0
- package/client/lib/tinymce-langs.ts +99 -0
- package/client/package.json +1 -1
- package/client/styles/components.css +48 -0
- package/docs/editor.md +29 -3
- package/docs/preferences.md +2 -1
- package/npmchanges.md +29 -0
- package/package.json +18 -15
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +2 -2
- package/packages/mailx-settings/package.json +1 -1
- package/packages/mailx-store/package.json +1 -1
- package/packages/mailx-store/store.d.ts +5 -0
- package/packages/mailx-store/store.d.ts.map +1 -1
- package/packages/mailx-store/store.js +21 -0
- package/packages/mailx-store/store.js.map +1 -1
- package/packages/mailx-store/store.ts +27 -0
- package/packages/mailx-types/index.d.ts +56 -0
- package/packages/mailx-types/index.d.ts.map +1 -1
- package/packages/mailx-types/index.js +187 -0
- package/packages/mailx-types/index.js.map +1 -1
- package/packages/mailx-types/index.ts +192 -0
- package/packages/mailx-types/package.json +1 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-31304 → node_modules.npmglobalize-stash-48352}/.package-lock.json +0 -0
|
@@ -2714,6 +2714,9 @@ async function createTinyMceEditor(container2, opts = {}) {
|
|
|
2714
2714
|
// Adding Text first so it's the default; rest are the modern
|
|
2715
2715
|
// languages we actually paste.
|
|
2716
2716
|
codesample_languages: CODE_LANGS,
|
|
2717
|
+
// UI language. Left unset (TinyMCE default "en") when the host
|
|
2718
|
+
// passes nothing, which also skips the langs/ fetch entirely.
|
|
2719
|
+
...opts.language && opts.language !== "en" ? { language: opts.language } : {},
|
|
2717
2720
|
// WebView's native spell-check (red underlines, right-click
|
|
2718
2721
|
// "Add to dictionary"). Free; same UX as Quill's spellcheck=true.
|
|
2719
2722
|
// Premium tinymcespellchecker plugin would replace this with a
|
|
@@ -3428,6 +3431,67 @@ var init_rmf_tiny = __esm({
|
|
|
3428
3431
|
}
|
|
3429
3432
|
});
|
|
3430
3433
|
|
|
3434
|
+
// client/lib/tinymce-langs.js
|
|
3435
|
+
var tinymce_langs_exports = {};
|
|
3436
|
+
__export(tinymce_langs_exports, {
|
|
3437
|
+
LANGUAGE_AUTO: () => LANGUAGE_AUTO,
|
|
3438
|
+
LANGUAGE_ENGLISH: () => LANGUAGE_ENGLISH,
|
|
3439
|
+
availableLanguages: () => availableLanguages,
|
|
3440
|
+
langManifestUrl: () => langManifestUrl,
|
|
3441
|
+
languageLabel: () => languageLabel,
|
|
3442
|
+
resolveLanguage: () => resolveLanguage
|
|
3443
|
+
});
|
|
3444
|
+
function langManifestUrl(tinymceScriptUrl) {
|
|
3445
|
+
return new URL("langs/index.json", new URL(tinymceScriptUrl, location.href)).href;
|
|
3446
|
+
}
|
|
3447
|
+
async function availableLanguages(tinymceScriptUrl) {
|
|
3448
|
+
try {
|
|
3449
|
+
const r = await fetch(langManifestUrl(tinymceScriptUrl));
|
|
3450
|
+
if (!r.ok)
|
|
3451
|
+
return [];
|
|
3452
|
+
const list = await r.json();
|
|
3453
|
+
return Array.isArray(list) ? list.filter((x) => typeof x === "string") : [];
|
|
3454
|
+
} catch {
|
|
3455
|
+
return [];
|
|
3456
|
+
}
|
|
3457
|
+
}
|
|
3458
|
+
function resolveLanguage(setting, available, preferred = navigator.languages || [navigator.language]) {
|
|
3459
|
+
const byLower = new Map(available.map((code) => [code.toLowerCase(), code]));
|
|
3460
|
+
if (setting && setting !== LANGUAGE_AUTO) {
|
|
3461
|
+
if (setting === LANGUAGE_ENGLISH)
|
|
3462
|
+
return LANGUAGE_ENGLISH;
|
|
3463
|
+
return byLower.get(setting.toLowerCase()) || LANGUAGE_ENGLISH;
|
|
3464
|
+
}
|
|
3465
|
+
for (const tag of preferred) {
|
|
3466
|
+
if (!tag)
|
|
3467
|
+
continue;
|
|
3468
|
+
const lower = tag.toLowerCase();
|
|
3469
|
+
const base = lower.split("-")[0];
|
|
3470
|
+
if (base === LANGUAGE_ENGLISH)
|
|
3471
|
+
return LANGUAGE_ENGLISH;
|
|
3472
|
+
const hit = byLower.get(lower) || byLower.get(base) || available.find((code) => code.toLowerCase().split("-")[0] === base);
|
|
3473
|
+
if (hit)
|
|
3474
|
+
return hit;
|
|
3475
|
+
}
|
|
3476
|
+
return LANGUAGE_ENGLISH;
|
|
3477
|
+
}
|
|
3478
|
+
function languageLabel(code) {
|
|
3479
|
+
try {
|
|
3480
|
+
const names = new Intl.DisplayNames(navigator.languages || void 0, { type: "language" });
|
|
3481
|
+
return names.of(code) || code;
|
|
3482
|
+
} catch {
|
|
3483
|
+
return code;
|
|
3484
|
+
}
|
|
3485
|
+
}
|
|
3486
|
+
var LANGUAGE_AUTO, LANGUAGE_ENGLISH;
|
|
3487
|
+
var init_tinymce_langs = __esm({
|
|
3488
|
+
"client/lib/tinymce-langs.js"() {
|
|
3489
|
+
"use strict";
|
|
3490
|
+
LANGUAGE_AUTO = "auto";
|
|
3491
|
+
LANGUAGE_ENGLISH = "en";
|
|
3492
|
+
}
|
|
3493
|
+
});
|
|
3494
|
+
|
|
3431
3495
|
// client/compose/spellcheck.js
|
|
3432
3496
|
var spellcheck_exports = {};
|
|
3433
3497
|
__export(spellcheck_exports, {
|
|
@@ -5074,7 +5138,15 @@ async function createTinyMceEditor2(container2, opts = {}) {
|
|
|
5074
5138
|
}
|
|
5075
5139
|
const m = await Promise.resolve().then(() => (init_rmf_tiny(), rmf_tiny_exports));
|
|
5076
5140
|
const cssPx = parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--compose-font-size"));
|
|
5077
|
-
|
|
5141
|
+
let language;
|
|
5142
|
+
try {
|
|
5143
|
+
const { availableLanguages: availableLanguages2, resolveLanguage: resolveLanguage2, LANGUAGE_ENGLISH: LANGUAGE_ENGLISH2 } = await Promise.resolve().then(() => (init_tinymce_langs(), tinymce_langs_exports));
|
|
5144
|
+
const resolved = resolveLanguage2(opts.language || "auto", await availableLanguages2(cdnUrl));
|
|
5145
|
+
if (resolved !== LANGUAGE_ENGLISH2)
|
|
5146
|
+
language = resolved;
|
|
5147
|
+
} catch {
|
|
5148
|
+
}
|
|
5149
|
+
const ed = await m.createTinyMceEditor(container2, { cdnUrl, apiKey, onFiles: opts.onFiles, fontSizePx: Number.isFinite(cssPx) ? cssPx : void 0, language });
|
|
5078
5150
|
try {
|
|
5079
5151
|
const native = ed.nativeEditor;
|
|
5080
5152
|
const body = native?.getBody?.();
|
|
@@ -5161,6 +5233,15 @@ if (__bootUi?.editor === "tiptap" || __bootUi?.editor === "quill" || __bootUi?.e
|
|
|
5161
5233
|
} catch {
|
|
5162
5234
|
}
|
|
5163
5235
|
}
|
|
5236
|
+
var editorLanguage = "auto";
|
|
5237
|
+
if (typeof __bootUi?.editorLanguage === "string" && __bootUi.editorLanguage) {
|
|
5238
|
+
editorLanguage = __bootUi.editorLanguage;
|
|
5239
|
+
} else {
|
|
5240
|
+
try {
|
|
5241
|
+
editorLanguage = localStorage.getItem("mailx-editor-language") || "auto";
|
|
5242
|
+
} catch {
|
|
5243
|
+
}
|
|
5244
|
+
}
|
|
5164
5245
|
var COMPOSE_FONT_MIN_PX = 8;
|
|
5165
5246
|
var COMPOSE_FONT_MAX_PX = 32;
|
|
5166
5247
|
var COMPOSE_FONT_DEFAULT_PX = 20;
|
|
@@ -5183,6 +5264,13 @@ try {
|
|
|
5183
5264
|
localStorage.setItem("mailx-editor-type", next);
|
|
5184
5265
|
} catch {
|
|
5185
5266
|
}
|
|
5267
|
+
const lang = appSettings?.ui?.editorLanguage;
|
|
5268
|
+
if (typeof lang === "string" && lang) {
|
|
5269
|
+
try {
|
|
5270
|
+
localStorage.setItem("mailx-editor-language", lang);
|
|
5271
|
+
} catch {
|
|
5272
|
+
}
|
|
5273
|
+
}
|
|
5186
5274
|
const fontPx = Number(appSettings?.ui?.composeFontSize);
|
|
5187
5275
|
if (Number.isFinite(fontPx) && fontPx >= COMPOSE_FONT_MIN_PX && fontPx <= COMPOSE_FONT_MAX_PX) {
|
|
5188
5276
|
try {
|
|
@@ -5243,7 +5331,7 @@ async function tryEditor(type) {
|
|
|
5243
5331
|
try {
|
|
5244
5332
|
const ed = await createEditor(container, type, { onFiles: (files) => {
|
|
5245
5333
|
void ingestFiles(files);
|
|
5246
|
-
} });
|
|
5334
|
+
}, language: editorLanguage });
|
|
5247
5335
|
if (type === "tinymce" && ed && ed.nativeEditor) {
|
|
5248
5336
|
const native = ed.nativeEditor;
|
|
5249
5337
|
const attach = () => {
|