ngx-xtroedge-cms 1.3.7 → 1.3.8
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/dist/index.global.js +10 -8
- package/dist/index.js +28 -23
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +28 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -131,10 +131,12 @@ var CMS_STYLES = `
|
|
|
131
131
|
.lcms-toggle input:checked + .lcms-toggle-slider::after { transform: translateX(16px); background: white; }
|
|
132
132
|
.lcms-toggle-label { font-size: 12px; font-weight: 700; color: rgba(255,255,255,0.5); letter-spacing: 0.5px; transition: color 0.25s; }
|
|
133
133
|
.lcms-toggle input:checked ~ .lcms-toggle-label { color: rgba(var(--lcms-primary-rgb, 0,200,83),0.75); }
|
|
134
|
-
.lcms-lang-switch {
|
|
135
|
-
.lcms-lang-
|
|
136
|
-
.lcms-lang-
|
|
137
|
-
.lcms-lang-
|
|
134
|
+
.lcms-lang-switch { margin-left: auto; position: relative; }
|
|
135
|
+
.lcms-lang-select { background: rgba(var(--lcms-primary-rgb, 0,200,83),0.15); border: 1px solid rgba(var(--lcms-primary-rgb, 0,200,83),0.4); border-radius: 6px; color: white; padding: 3px 24px 3px 8px; font-size: 11px; font-weight: 600; cursor: pointer; appearance: none; -webkit-appearance: none; outline: none; transition: all 0.2s; }
|
|
136
|
+
.lcms-lang-select:hover { background: rgba(var(--lcms-primary-rgb, 0,200,83),0.3); }
|
|
137
|
+
.lcms-lang-select:focus { border-color: var(--lcms-primary, #00C853); }
|
|
138
|
+
.lcms-lang-select option { background: #1a1a2e; color: white; }
|
|
139
|
+
.lcms-lang-arrow { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); pointer-events: none; color: rgba(255,255,255,0.6); font-size: 10px; }
|
|
138
140
|
.lcms-close-btn { background: transparent; border: none; color: rgba(255,255,255,0.4); cursor: pointer; padding: 2px; display: flex; transition: color 0.2s; }
|
|
139
141
|
.lcms-close-btn:hover { color: white; }
|
|
140
142
|
.lcms-changes-info { font-size: 12px; color: rgba(var(--lcms-primary-rgb, 0,200,83),0.75); margin-bottom: 10px; padding-left: 2px; }
|
|
@@ -738,16 +740,24 @@ var XtroedgeCMS = class _XtroedgeCMS {
|
|
|
738
740
|
buildLangButtons() {
|
|
739
741
|
if (!this.langSwitchEl) return;
|
|
740
742
|
this.langSwitchEl.innerHTML = "";
|
|
743
|
+
const select = document.createElement("select");
|
|
744
|
+
select.className = "lcms-lang-select";
|
|
741
745
|
for (const lang of this.languages) {
|
|
742
|
-
const
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
this.switchLang(lang);
|
|
748
|
-
});
|
|
749
|
-
this.langSwitchEl.appendChild(btn);
|
|
746
|
+
const opt = document.createElement("option");
|
|
747
|
+
opt.value = lang;
|
|
748
|
+
opt.textContent = lang.toUpperCase();
|
|
749
|
+
if (lang === this.currentLang) opt.selected = true;
|
|
750
|
+
select.appendChild(opt);
|
|
750
751
|
}
|
|
752
|
+
select.addEventListener("change", (e) => {
|
|
753
|
+
e.stopPropagation();
|
|
754
|
+
this.switchLang(e.target.value);
|
|
755
|
+
});
|
|
756
|
+
this.langSwitchEl.appendChild(select);
|
|
757
|
+
const arrow = document.createElement("span");
|
|
758
|
+
arrow.className = "lcms-lang-arrow";
|
|
759
|
+
arrow.textContent = "\u25BC";
|
|
760
|
+
this.langSwitchEl.appendChild(arrow);
|
|
751
761
|
}
|
|
752
762
|
// ===============================================
|
|
753
763
|
// UI UPDATE
|
|
@@ -778,10 +788,8 @@ var XtroedgeCMS = class _XtroedgeCMS {
|
|
|
778
788
|
if (this.editToggle) this.editToggle.checked = this.editMode;
|
|
779
789
|
if (this.langSwitchEl) {
|
|
780
790
|
this.langSwitchEl.classList.toggle("lcms-hidden", !this.editMode || this.languages.length <= 1);
|
|
781
|
-
const
|
|
782
|
-
|
|
783
|
-
btn.classList.toggle("active", btn.textContent === this.currentLang.toUpperCase());
|
|
784
|
-
});
|
|
791
|
+
const sel = this.langSwitchEl.querySelector(".lcms-lang-select");
|
|
792
|
+
if (sel) sel.value = this.currentLang;
|
|
785
793
|
}
|
|
786
794
|
if (this.editModeContent) {
|
|
787
795
|
this.editModeContent.classList.toggle("lcms-hidden", !this.editMode);
|
|
@@ -1668,15 +1676,12 @@ var XtroedgeCMS = class _XtroedgeCMS {
|
|
|
1668
1676
|
}
|
|
1669
1677
|
switchLang(lang) {
|
|
1670
1678
|
this.currentLang = lang;
|
|
1671
|
-
const html = document.documentElement;
|
|
1672
|
-
html.setAttribute("lang", lang);
|
|
1673
|
-
html.setAttribute("dir", lang === "ar" ? "rtl" : "ltr");
|
|
1674
1679
|
localStorage.setItem("selectedLanguage", lang);
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
this.updateUI();
|
|
1678
|
-
window.dispatchEvent(new CustomEvent("cms:langChanged", { detail: { lang } }));
|
|
1680
|
+
document.documentElement.setAttribute("lang", lang);
|
|
1681
|
+
document.documentElement.setAttribute("dir", lang === "ar" ? "rtl" : "ltr");
|
|
1679
1682
|
this.config.onLangChanged?.(lang);
|
|
1683
|
+
window.dispatchEvent(new CustomEvent("cms:langChanged", { detail: { lang } }));
|
|
1684
|
+
window.location.reload();
|
|
1680
1685
|
}
|
|
1681
1686
|
// ===============================================
|
|
1682
1687
|
// FAB DRAG
|