PageSourceSearch

https://adsysnet.com/chunk-HLOVBN5R.js

js adsysnet.com collected 2026-10-08 19:27:41 UTC 6,938 bytes, 1 lines download raw bytes

1import{a as E}from"./chunk-DMG2QZD3.js";import{d as S,e as A,g as w,q as P}from"./chunk-6QV62N6E.js";import{a as C}from"./chunk-SGWS245Z.js";import{b as k,d as M}from"./chunk-5JT2KAKO.js";import"./chunk-MPN3YM5U.js";import"./chunk-3AIRW276.js";import{Ga as f,N as g,Ra as h,Sa as u,Ta as b,Wa as p,Xa as e,Ya as n,Za as d,da as s,dc as _,eb as m,fb as y,lb as v,nb as r,ob as x,ta as l}from"./chunk-PGWAQGBE.js";function L(a,i){if(a&1&&(e(0,"div",6),d(1,"i",28),e(2,"div"),r(3),n()()),a&2){let o=y();l(3),x(o.errorMessage())}}function O(a,i){a&1&&(d(0,"span",29),e(1,"span"),r(2,"Verifying Authorization..."),n())}function N(a,i){a&1&&(d(0,"i",30),e(1,"span"),r(2,"Access Admin Portal"),n())}var I=class a{auth=g(C);router=g(M);route=g(k);toast=g(E);keyInput=s("");showKey=s(!1);rememberMe=s(!0);isLoading=s(!1);errorMessage=s(null);returnUrl="/admin/dashboard";ngOnInit(){this.route.queryParams.subscribe(i=>{i.returnUrl&&(this.returnUrl=i.returnUrl)}),this.auth.isAuthenticated()&&this.router.navigateByUrl(this.returnUrl)}onKeyChange(i){let o=i.target;this.keyInput.set(o.value),this.errorMessage.set(null)}toggleShowKey(){this.showKey.update(i=>!i)}fillDevKey(){this.keyInput.set("admin_dev_secret_key_adsysnet"),this.errorMessage.set(null)}onSubmit(){let i=this.keyInput().trim();if(!i){this.errorMessage.set("Please enter a valid administrative API key.");return}this.isLoading.set(!0),this.errorMessage.set(null),this.auth.login(i).subscribe({next:o=>{this.isLoading.set(!1),o?(this.toast.success("Successfully authenticated as System Admin.","Welcome"),this.router.navigateByUrl(this.returnUrl)):this.errorMessage.set("Authentication failed. The provided API key was not recognized.")},error:o=>{this.isLoading.set(!1);let t=o?.error?.error||"Unauthorized: Missing or invalid admin authorization token";this.errorMessage.set(t)}})}static \u0275fac=function(o){return new(o||a)};static \u0275cmp=f({type:a,selectors:[["app-admin-login"]],decls:40,vars:11,consts:[[1,"login-page"],[1,"login-card"],[1,"login-logo"],["src","images/cubeicon.png","alt","AdSysNet","height","28"],[1,"login-title"],[1,"login-subtitle"],["role","alert",1,"alert","alert-danger","d-flex","align-items-center","gap-2","py-2","px-3","small","mb-3"],[3,"ngSubmit"],[1,"mb-3"],["for","adminKeyInput",1,"form-label"],[1,"input-group"],[1,"input-group-text"],[1,"bi","bi-shield-lock"],["id","adminKeyInput","placeholder","Enter admin API key...","autocomplete","off","required","",1,"form-control",3,"input","type","value"],["type","button",1,"btn","btn-outline-secondary","text-white-50","border-secondary-subtle",3,"click"],[1,"bi"],[1,"form-text","text-muted",2,"font-size","0.75rem"],[1,"d-flex","align-items-center","justify-content-between","mb-4"],[1,"form-check"],["type","checkbox","id","rememberMe",1,"form-check-input","bg-dark","border-secondary",3,"change","checked"],["for","rememberMe",1,"form-check-label","text-muted","small"],["href","/",1,"text-decoration-none","small","text-primary-emphasis"],[1,"bi","bi-arrow-right"],["type","submit",1,"btn","btn-login","d-flex","align-items-center","justify-content-center","gap-2",3,"disabled"],[1,"dev-helper","text-center"],[1,"small","text-muted","mb-2"],["type","button",1,"btn","btn-sm","btn-outline-primary","w-100","py-1",3,"click"],[1,"bi","bi-lightning-charge-fill","me-1"],[1,"bi","bi-exclamation-triangle-fill","fs-6","flex-shrink-0"],["role","status","aria-hidden","true",1,"spinner-border","spinner-border-sm"],[1,"bi","bi-unlock-fill"]],template:function(o,t){o&1&&(e(0,"div",0)(1,"div",1)(2,"div",2),d(3,"img",3),n(),e(4,"h1",4),r(5,"Admin Console"),n(),e(6,"p",5),r(7,"Authenticate to access AdSysNet administrative tools"),n(),u(8,L,4,1,"div",6),e(9,"form",7),m("ngSubmit",function(){return t.onSubmit()}),e(10,"div",8)(11,"label",9),r(12,"Administrative API Key"),n(),e(13,"div",10)(14,"span",11),d(15,"i",12),n(),e(16,"input",13),m("input",function(K){return t.onKeyChange(K)}),n(),e(17,"button",14),m("click",function(){return t.toggleShowKey()}),d(18,"i",15),n()(),e(19,"div",16),r(20," Verified against "),e(21,"code"),r(22,"/api/admin/auth/verify"),n()()(),e(23,"div",17)(24,"div",18)(25,"input",19),m("change",function(){return t.rememberMe.set(!t.rememberMe())}),n(),e(26,"label",20),r(27," Remember session "),n()(),e(28,"a",21),r(29," Return to 
1site "),d(30,"i",22),n()(),e(31,"button",23),u(32,O,3,0)(33,N,3,0),n()(),e(34,"div",24)(35,"div",25),r(36,"Local Development Key:"),n(),e(37,"button",26),m("click",function(){return t.fillDevKey()}),d(38,"i",27),r(39," Auto-fill Dev Secret Key "),n()()()()),o&2&&(l(8),b(t.errorMessage()?8:-1),l(8),p("type",t.showKey()?"text":"password")("value",t.keyInput()),l(),h("aria-label",t.showKey()?"Hide Key":"Show Key"),l(),v("bi-eye-slash",t.showKey())("bi-eye",!t.showKey()),l(7),p("checked",t.rememberMe()),l(6),p("disabled",t.isLoading()||!t.keyInput().trim()),l(),b(t.isLoading()?32:33))},dependencies:[_,P,w,S,A],styles:[".login-page[_ngcontent-%COMP%]{min-height:100vh;background:radial-gradient(circle at 50% 20%,#172554,#0b1120 70%);display:flex;align-items:center;justify-content:center;padding:1.5rem;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.login-card[_ngcontent-%COMP%]{width:100%;max-width:440px;background:#0f172ad9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2.5rem 2rem;box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff0d}.login-logo[_ngcontent-%COMP%]{width:48px;height:48px;border-radius:12px;background:#2563eb26;border:1px solid rgba(59,130,246,.3);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}.login-title[_ngcontent-%COMP%]{color:#fff;font-size:1.4rem;font-weight:800;text-align:center;margin-bottom:.25rem}.login-subtitle[_ngcontent-%COMP%]{color:#94a3b8;font-size:.85rem;text-align:center;margin-bottom:1.75rem}.form-label[_ngcontent-%COMP%]{color:#cbd5e1;font-size:.82rem;font-weight:600;margin-bottom:.4rem}.input-group-text[_ngcontent-%COMP%]{background:#1e293b;border-color:#ffffff1a;color:#94a3b8}.form-control[_ngcontent-%COMP%]{background:#1e293b;border:1px solid rgba(255,255,255,.1);color:#f8fafc;font-size:.88rem;padding:.65rem .85rem;border-radius:8px}.form-control[_ngcontent-%COMP%]:focus{background:#1e293b;border-color:#3b82f6;color:#fff;box-shadow:0 0 0 3px #3b82f640}.btn-login[_ngcontent-%COMP%]{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;color:#fff;font-weight:600;font-size:.92rem;padding:.75rem;border-radius:8px;width:100%;transition:all .2s ease;box-shadow:0 4px 12px #2563eb4d}.btn-login[_ngcontent-%COMP%]:hover:not(:disabled){background:linear-gradient(135deg,#3b82f6,#2563eb);transform:translateY(-1px);box-shadow:0 6px 16px #2563eb66}.dev-helper[_ngcontent-%COMP%]{background:#1e293b99;border:1px dashed rgba(255,255,255,.15);border-radius:10px;padding:.85rem;margin-top:1.5rem}"]})};export{I as AdminLoginComponent};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.