ngx-xtroedge-cms 1.3.3 → 1.3.5
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 +4 -4
- package/dist/index.js +16 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.global.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var XtroedgeCMSLib=(()=>{var x=Object.defineProperty;var
|
|
1
|
+
"use strict";var XtroedgeCMSLib=(()=>{var x=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var k=(g,t)=>{for(var e in t)x(g,e,{get:t[e],enumerable:!0})},I=(g,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of M(t))!C.call(g,s)&&s!==e&&x(g,s,{get:()=>t[s],enumerable:!(i=L(t,s))||i.enumerable});return g};var P=g=>I(x({},"__esModule",{value:!0}),g);var O={};k(O,{XtroedgeCMS:()=>v});var w=`
|
|
2
2
|
/* ===== XTROEDGE CMS ===== */
|
|
3
3
|
|
|
4
4
|
/* LOADER */
|
|
@@ -310,8 +310,8 @@
|
|
|
310
310
|
<div class="lcms-login-title">Builder Login</div>
|
|
311
311
|
<div class="lcms-login-sub">Sign in to access edit mode</div>
|
|
312
312
|
<div class="lcms-login-field">
|
|
313
|
-
<label class="lcms-login-label">
|
|
314
|
-
<input class="lcms-login-input" id="lcms-login-email" type="text" placeholder="Enter your
|
|
313
|
+
<label class="lcms-login-label">Username</label>
|
|
314
|
+
<input class="lcms-login-input" id="lcms-login-email" type="text" placeholder="Enter your username" autocomplete="username" />
|
|
315
315
|
</div>
|
|
316
316
|
<div class="lcms-login-field">
|
|
317
317
|
<label class="lcms-login-label">Password</label>
|
|
@@ -320,4 +320,4 @@
|
|
|
320
320
|
<button class="lcms-login-btn" id="lcms-login-btn">Sign In</button>
|
|
321
321
|
<div class="lcms-login-error" id="lcms-login-error"></div>
|
|
322
322
|
</div>
|
|
323
|
-
`,document.body.appendChild(t),this.loginModalEl=t;let e=t.querySelector("#lcms-login-btn"),i=t.querySelector("#lcms-login-email"),s=t.querySelector("#lcms-login-password"),n=()=>this.attemptLogin(i.value.trim(),s.value);e.addEventListener("click",n),s.addEventListener("keydown",a=>{a.key==="Enter"&&n()}),setTimeout(()=>i.focus(),50)}hideLoginModal(){this.loginModalEl?.remove(),this.loginModalEl=null}async attemptLogin(t,e){let i=document.getElementById("lcms-login-btn"),s=document.getElementById("lcms-login-error");if(!t||!e){s.textContent="Please enter your
|
|
323
|
+
`,document.body.appendChild(t),this.loginModalEl=t;let e=t.querySelector("#lcms-login-btn"),i=t.querySelector("#lcms-login-email"),s=t.querySelector("#lcms-login-password"),n=()=>this.attemptLogin(i.value.trim(),s.value);e.addEventListener("click",n),s.addEventListener("keydown",a=>{a.key==="Enter"&&n()}),setTimeout(()=>i.focus(),50)}hideLoginModal(){this.loginModalEl?.remove(),this.loginModalEl=null}async attemptLogin(t,e){let i=document.getElementById("lcms-login-btn"),s=document.getElementById("lcms-login-error");if(!t||!e){s.textContent="Please enter your username and password.",s.classList.add("visible");return}i.disabled=!0,i.textContent="Signing in...",s.classList.remove("visible");try{let n=this.config.loginUrl||`${this.config.apiBase}/auth/login`,a=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:t,password:e})}),o=null;try{o=await a.json()}catch{}if(!a.ok){let d=o?.message||o?.error||null;throw new Error(d||`HTTP ${a.status}`)}let r=o?.token||o?.authToken||o?.auth_token||o?.data?.token;if(!r)throw new Error("Login successful but no token returned.");localStorage.setItem("builder_token",r),this.hideLoginModal(),this.editMode=!0,this.pendingEditMode=!1,sessionStorage.setItem("builder_edit_mode","true"),this.applyEditMode(!0),this.updateUI(),this.loadPageContent("draft")}catch(n){i.disabled=!1,i.textContent="Sign In",s.textContent=n?.message||"Login failed. Please try again.",s.classList.add("visible")}}resolveSiteIdentifier(){let t=window.location.hostname;if(t&&t!=="localhost"&&t!=="127.0.0.1"&&!t.startsWith("192.168."))return t;let e=localStorage.getItem("xtroedge_site_id");return e||(e="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let s=Math.random()*16|0;return(i==="x"?s:s&3|8).toString(16)}),localStorage.setItem("xtroedge_site_id",e)),e}hexToRgb(t){let e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?`${parseInt(e[1],16)},${parseInt(e[2],16)},${parseInt(e[3],16)}`:"0,200,83"}getDarkerColor(t){let e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);if(!e)return"#2E7D32";let i=Math.max(0,Math.floor(parseInt(e[1],16)*.6)),s=Math.max(0,Math.floor(parseInt(e[2],16)*.6)),n=Math.max(0,Math.floor(parseInt(e[3],16)*.6));return`#${i.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}`}applyThemeColor(t){if(this.highlightColor=t,document.documentElement.style.setProperty("--lcms-primary",t),document.documentElement.style.setProperty("--lcms-primary-rgb",this.hexToRgb(t)),document.documentElement.style.setProperty("--lcms-primary-dark",this.getDarkerColor(t)),this.editMode){for(let[i]of this.managedElements)i.style.borderBottom=`2px dashed ${t}`;for(let[i]of this.managedImages)i.style.outline=`2px dashed ${t}`}this.panelEl?.querySelectorAll(".lcms-theme-swatch")?.forEach(i=>{i.classList.toggle("active",i.dataset.color===t)}),localStorage.setItem("xtroedge_theme_color",t)}static create(t){let e=new g(t);return e.init(),e}static autoInit(){if(window.__xtroedge_cms_instance__)return;let t=window.__XTROEDGE_CMS_CONFIG__||{},e=g.create(t);window.__xtroedge_cms_instance__=e}};function T(){v.autoInit()}typeof window<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",T):T());return P(O);})();
|
package/dist/index.js
CHANGED
|
@@ -1802,8 +1802,8 @@ var XtroedgeCMS = class _XtroedgeCMS {
|
|
|
1802
1802
|
<div class="lcms-login-title">Builder Login</div>
|
|
1803
1803
|
<div class="lcms-login-sub">Sign in to access edit mode</div>
|
|
1804
1804
|
<div class="lcms-login-field">
|
|
1805
|
-
<label class="lcms-login-label">
|
|
1806
|
-
<input class="lcms-login-input" id="lcms-login-email" type="text" placeholder="Enter your
|
|
1805
|
+
<label class="lcms-login-label">Username</label>
|
|
1806
|
+
<input class="lcms-login-input" id="lcms-login-email" type="text" placeholder="Enter your username" autocomplete="username" />
|
|
1807
1807
|
</div>
|
|
1808
1808
|
<div class="lcms-login-field">
|
|
1809
1809
|
<label class="lcms-login-label">Password</label>
|
|
@@ -1833,7 +1833,7 @@ var XtroedgeCMS = class _XtroedgeCMS {
|
|
|
1833
1833
|
const btn = document.getElementById("lcms-login-btn");
|
|
1834
1834
|
const errorEl = document.getElementById("lcms-login-error");
|
|
1835
1835
|
if (!email || !password) {
|
|
1836
|
-
errorEl.textContent = "Please enter your
|
|
1836
|
+
errorEl.textContent = "Please enter your username and password.";
|
|
1837
1837
|
errorEl.classList.add("visible");
|
|
1838
1838
|
return;
|
|
1839
1839
|
}
|
|
@@ -1845,12 +1845,19 @@ var XtroedgeCMS = class _XtroedgeCMS {
|
|
|
1845
1845
|
const res = await fetch(loginUrl, {
|
|
1846
1846
|
method: "POST",
|
|
1847
1847
|
headers: { "Content-Type": "application/json" },
|
|
1848
|
-
body: JSON.stringify({ email, password })
|
|
1848
|
+
body: JSON.stringify({ username: email, password })
|
|
1849
1849
|
});
|
|
1850
|
-
|
|
1851
|
-
|
|
1850
|
+
let data = null;
|
|
1851
|
+
try {
|
|
1852
|
+
data = await res.json();
|
|
1853
|
+
} catch {
|
|
1854
|
+
}
|
|
1855
|
+
if (!res.ok) {
|
|
1856
|
+
const apiMsg = data?.message || data?.error || null;
|
|
1857
|
+
throw new Error(apiMsg || `HTTP ${res.status}`);
|
|
1858
|
+
}
|
|
1852
1859
|
const token = data?.token || data?.authToken || data?.auth_token || data?.data?.token;
|
|
1853
|
-
if (!token) throw new Error("
|
|
1860
|
+
if (!token) throw new Error("Login successful but no token returned.");
|
|
1854
1861
|
localStorage.setItem("builder_token", token);
|
|
1855
1862
|
this.hideLoginModal();
|
|
1856
1863
|
this.editMode = true;
|
|
@@ -1859,10 +1866,10 @@ var XtroedgeCMS = class _XtroedgeCMS {
|
|
|
1859
1866
|
this.applyEditMode(true);
|
|
1860
1867
|
this.updateUI();
|
|
1861
1868
|
this.loadPageContent("draft");
|
|
1862
|
-
} catch {
|
|
1869
|
+
} catch (err) {
|
|
1863
1870
|
btn.disabled = false;
|
|
1864
1871
|
btn.textContent = "Sign In";
|
|
1865
|
-
errorEl.textContent = "
|
|
1872
|
+
errorEl.textContent = err?.message || "Login failed. Please try again.";
|
|
1866
1873
|
errorEl.classList.add("visible");
|
|
1867
1874
|
}
|
|
1868
1875
|
}
|