PageSourceSearch

https://uni.xyz/chunk-TZBO2O2Y.js

js uni.xyz collected 2026-10-01 11:43:47 UTC 17,622 bytes, 1 lines download raw bytes

1import{$e as _e,Ad as ne,Le as B,Nd as ae,Qd as le,Rd as se,Td as ve,bb as K,bd as ee,dd as te,ef as we,hd as ie,je as V,l as j,o as J,od as re,p as b,qd as oe,wb as W,yb as Z}from"./chunk-HIVZMOGT.js";import{B as be,e as X,l as ce,m as de,n as me,o as ue,r as pe,s as fe,t as he,z as ge}from"./chunk-UKNSY7J4.js";import{Ab as E,Bb as g,Da as q,Ea as y,Fb as $,Gb as Y,Hb as H,Ia as o,Kb as x,Lc as U,Mb as m,Nb as P,Ob as S,Pc as Q,Sa as L,Tc as A,Uc as N,Ya as O,Yb as R,Zb as k,aa as p,fa as w,ga as C,kb as F,la as z,mb as f,mc as I,nb as h,pb as T,qb as v,rb as _,sb as c,tb as n,ub as a,vb as d,ya as G,z as M,zb as D}from"./chunk-L45A6KDO.js";import"./chunk-6MDQTQU3.js";var ye=["emailInput"];function Se(t,l){t&1&&d(0,"ng-icon",9)}function Fe(t,l){t&1&&d(0,"span",10)}var Ce=()=>[1,2,3,4],Ee=()=>[1,2,3,4,5],xe=()=>[],ke=(t,l)=>l.link,Me=(t,l)=>l.title,Te=(t,l)=>l.route||l.label;function De(t,l){t&1&&d(0,"uni-skeleton-loader",20),t&2&&c("borderRadius","4px")}function Pe(t,l){t&1&&d(0,"uni-skeleton-loader",14)}function ze(t,l){t&1&&(n(0,"div",22),d(1,"uni-skeleton-loader",23),n(2,"div",24),v(3,Pe,1,0,"uni-skeleton-loader",14,T),a()()),t&2&&(o(3),_(k(0,Ee)))}function Le(t,l){t&1&&(n(0,"div",11)(1,"div",12),d(2,"uni-skeleton-loader",13)(3,"uni-skeleton-loader",14),a(),n(4,"div",15),d(5,"uni-skeleton-loader",16)(6,"uni-skeleton-loader",17)(7,"uni-skeleton-loader",18),a(),n(8,"div",19),v(9,De,1,1,"uni-skeleton-loader",20,T),a()(),n(11,"div",21),v(12,ze,5,1,"div",22,T),a()),t&2&&(o(2),c("borderRadius","8px"),o(7),_(k(1,Ce)),o(3),_(k(2,Ce)))}function Oe(t,l){if(t&1){let e=D();n(0,"div",3)(1,"div",25),d(2,"ng-icon",26),n(3,"span"),m(4,"Failed to load footer content"),a(),n(5,"button",27),E("click",function(){w(e);let r=g();return C(r.retryLoadData())}),m(6,"Retry"),a()()()}}function Re(t,l){if(t&1&&m(0),t&2){let e=g(2);S(" ",e.footerData==null?null:e.footerData.footer_tagline," ")}}function Ie(t,l){t&1&&m(0," Empowering creators worldwide to showcase their work, participate in competitions, and connect with a global community of innovators. ")}function Ue(t,l){if(t&1&&(n(0,"a",34),d(1,"ng-icon",36),a()),t&2){let e=l.$implicit,i=g(2);c("href",e.link,y),F("aria-label",i.getSocialLabel(e.link)),o(),c("name",i.getSocialIcon(e.link))}}function Ae(t,l){if(t&1&&(n(0,"a",39),m(1),a()),t&2){let e=g().$implicit;c("routerLink",e.route),o(),S(" ",e.label," ")}}function Ne(t,l){if(t&1&&(n(0,"a",40),m(1),a()),t&2){let e=g().$implicit;c("href",e.href,y)("target",e.external?"_blank":"_self")("rel",e.external?"nofollow noopener noreferrer":""),o(),S(" ",e.label," ")}}function Ve(t,l){if(t&1&&(n(0,"li"),f(1,Ae,2,2,"a",39),f(2,Ne,2,4,"a",40),a()),t&2){let e=l.$implicit;o(),h(e.route?1:-1),o(),h(e.href?2:-1)}}function Be(t,l){if(t&1&&(n(0,"div",22)(1,"h3",37),m(2),a(),n(3,"ul",38),v(4,Ve,3,2,"li",null,Te),a()()),t&2){let e=l.$implicit;o(),c("id","footer-section-"+e.title.toLowerCase().replace(" ","-")),o(),P(e.title),o(),F("aria-labelledby","footer-section-"+e.title.toLowerCase().replace(" ","-")),o(),_(e.links)}}function Ge(t,l){if(t&1){let e=D();n(0,"div",11)(1,"div",12)(2,"div",28),d(3,"img",29),a(),n(4,"p",30),f(5,Re,1,1)(6,Ie,1,0),a()(),n(7,"div",31)(8,"uni-newsletter",32),E("subscribed",function(r){w(e);let s=g();return C(s.onNewsletterSubscribed(r))})("error",function(r){w(e);let s=g();return C(s.onNewsletterError(r))}),a()(),n(9,"nav",33),v(10,Ue,2,3,"a",34,ke),a()(),n(12,"nav",35),v(13,Be,6,3,"div",22,Me),a()}if(t&2){let e=g();o(3),c("src",e.logoUrl,y),o(2),h(e.footerData!=null&&e.footerData.footer_tagline?5:6),o(5),_((e.footerData==null?null:e.footerData.uni_social_link)||k(2,xe)),o(3),_(e.footerSections)}}function qe(t,l){if(t&1&&d(0,"img",41),t&2){let e=g(2);c("src",e.selectedFootnote.image_url,y)("alt",e.selectedFootnote.title)}}function $e(t,l){if(t&1&&(n(0,"div",10),f(1,qe,1,2,"img",41),d(2,"span",42),a()),t&2){let e=g();o(),h(e.selectedFootnote.image_url?1:-1),o(),c("innerHTML",e.selectedFootnote.title,q)}}var Ye=(()=>{class t{http=p(X);toastService=p(V);cdr=p(I);fb=p(ge);destroyRef=p(z);emailInput;title="Stay updated";subtitle="Get the latest news and updates";placeholder="Enter your email";apiUrl="/api/v2/subscribe_newsletter/subscribe/";theme="light";subscribed=new O;error=new O;newsletterForm;showSuccess=!1;showEmailError=!1;emailErrorMessage="";static EMAIL_REGEX=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;ngOnInit(){this.initializeForm()}initializeForm(){this.newsletterForm=this.fb.group({email:["",[de.required,this.emailValidator.bind(this)]]})}emailValidator(e){let i=e.value;
1return i?t.EMAIL_REGEX.test(i)?null:{invalidEmail:!0}:null}onEmailBlur(){let e=this.newsletterForm.get("email");e?.touched&&e?.invalid&&(this.showEmailError=!0,e.errors?.required?this.emailErrorMessage="Email is required":e.errors?.invalidEmail&&(this.emailErrorMessage="Please enter a valid email address"),this.cdr.markForCheck())}subscribeToNewsletter(){if(this.newsletterForm.markAllAsTouched(),this.newsletterForm.valid){let e=this.newsletterForm.get("email")?.value;this.newsletterForm.disable(),this.showEmailError=!1,this.announceToScreenReader("Subscribing to newsletter...");let i={email:e},r=ve(this.apiUrl);this.http.post(r,i,{withCredentials:!0}).pipe(b(this.destroyRef)).subscribe({next:s=>{this.showSuccess=!0,this.newsletterForm.reset(),this.newsletterForm.enable();let u=s.message||"Successfully subscribed to newsletter!";this.toastService.success(u),this.announceToScreenReader(u),this.subscribed.emit(e),M(3e3).pipe(b(this.destroyRef)).subscribe(()=>{this.showSuccess=!1,this.cdr.markForCheck()}),this.cdr.markForCheck()},error:s=>{this.newsletterForm.enable();let u;s.error&&(s.error.error==="subscription already requested"||s.error.error==="You are already subscribed on uni")?(u="You're already subscribed to our newsletter!",this.toastService.info(u)):s.status===500||s.status===401||s.status===403?(u="Newsletter subscription requires you to be signed in. Please sign in first, or contact [email protected] to be added to our newsletter.",this.toastService.warning(u)):(u="Sorry, there was an issue subscribing to the newsletter. Please try again later or contact [email protected].",this.toastService.error(u)),this.announceToScreenReader(u),this.error.emit(s),this.cdr.markForCheck()}})}else{let e=this.newsletterForm.get("email");e?.errors?.required?(this.showEmailError=!0,this.emailErrorMessage="Email is required"):e?.errors?.invalidEmail&&(this.showEmailError=!0,this.emailErrorMessage="Please enter a valid email address"),this.focusEmailInput(),this.announceToScreenReader(this.emailErrorMessage),this.cdr.markForCheck()}}get emailControl(){return this.newsletterForm.get("email")}get isSubmitting(){return!this.newsletterForm.enabled}announceToScreenReader(e){if(typeof document>"u")return;let i=document.createElement("div");i.setAttribute("role","status"),i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true"),i.style.position="absolute",i.style.left="-10000px",i.style.width="1px",i.style.height="1px",
1i.style.overflow="hidden",i.textContent=e,document.body.appendChild(i),M(1e3).pipe(b(this.destroyRef)).subscribe(()=>{document.body.removeChild(i)})}focusEmailInput(){this.emailInput&&this.emailInput.nativeElement.focus()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=L({type:t,selectors:[["uni-newsletter"]],viewQuery:function(i,r){if(i&1&&$(ye,5),i&2){let s;Y(s=H())&&(r.emailInput=s.first)}},inputs:{title:"title",subtitle:"subtitle",placeholder:"placeholder",apiUrl:"apiUrl",theme:"theme"},outputs:{subscribed:"subscribed",error:"error"},features:[R([A({matEmail:W,matArrowForward:K})])],decls:17,vars:20,consts:[["emailInput",""],[1,"uni-newsletter"],["id","newsletter-title",1,"newsletter-title"],["id","newsletter-subtitle",1,"newsletter-subtitle"],["aria-labelledby","newsletter-title newsletter-subtitle",1,"newsletter-form",3,"ngSubmit","formGroup"],[1,"input-wrapper"],["name","matEmail","size","20",1,"input-icon"],["type","email","formControlName","email","aria-label","Email address for newsletter",1,"newsletter-input",3,"blur","placeholder"],["type","submit",1,"newsletter-button",3,"disabled"],["name","matArrowForward","size","20"],[1,"spinner"],["id","email-error","role","alert",1,"error-message"],[1,"success-message"]],template:function(i,r){if(i&1){let s=D();n(0,"div",1)(1,"h4",2),m(2),a(),n(3,"p",3),m(4),a(),n(5,"form",4),E("ngSubmit",function(){return w(s),C(r.subscribeToNewsletter())}),n(6,"div",5),d(7,"ng-icon",6),n(8,"input",7,0),E("blur",function(){return w(s),C(r.onEmailBlur())}),a(),n(10,"button",8),f(11,Se,1,0,"ng-icon",9),f(12,Fe,1,0,"span",10),a()(),n(13,"div",11),m(14),a(),n(15,"div",12),m(16," \u2713 Successfully subscribed! "),a()()()}i&2&&(x("theme-dark",r.theme==="dark"),o(2),P(r.title),o(2),P(r.subtitle),o(),c("formGroup",r.newsletterForm),o(),x("error",r.showEmailError),o(2),c("placeholder",r.placeholder),F("aria-invalid",r.showEmailError)("aria-describedby",r.showEmailError?"email-error":null),o(2),c("disabled",r.isSubmitting),F("aria-label",r.isSubmitting?"Subscribing...":"Subscribe to newsletter")("aria-busy",r.isSubmitting),o(),h(r.isSubmitting?-1:11),o(),h(r.isSubmitting?12:-1),o(),x("show",r.showEmailError),o(),S(" ",r.emailErrorMessage," "),o(),x("show",r.showSuccess))},dependencies:[U,be,pe,ce,me,ue,fe,he,N],styles:['@charset "UTF-8";.uni-newsletter[_ngcontent-%COMP%]   .newsletter-title[_ngcontent-%COMP%]{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-secondary);margin:0 0 var(--size-4)}.uni-newsletter[_ngcontent-%COMP%]   .newsletter-subtitle[_ngcontent-%COMP%]{font-size:var(--font-size-xs);color:var(--text-secondary);margin:0 0 var(--size-4)}.newsletter-form[_ngcontent-%COMP%]{position:relative}.input-wrapper[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;background:var(--surface);border:var(--border-width-thin) solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--duration-normal) var(--easing-in-out)}.input-wrapper[_ngcontent-%COMP%]:focus-within{border-color:var(--primary-500)}.input-wrapper.error[_ngcontent-%COMP%]{border-color:var(--error-600)}.input-wrapper.error[_ngcontent-%COMP%]:focus-within{border-color:var(--error-600)}.input-wrapper.error[_ngcontent-%COMP%]   .input-icon[_ngcontent-%COMP%]{color:var(--error-600)}.input-icon[_ngcontent-%COMP%]{position:absolute;left:var(--size-3);color:var(--text-tertiary);pointer-events:none;transition:color var(--duration-normal) var(--easing-in-out)}.newsletter-input[_ngcontent-%COMP%]{flex:1;padding:var(--size-3) var(--size-4) var(--size-3) var(--size-10);background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--font-size-sm)}.newsletter-input[_ngcontent-%COMP%]::placeholder{color:var(--text-tertiary)}.newsletter-input[_ngcontent-%COMP%]:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.newsletter-button[_ngcontent-%COMP%]{padding:var(--size-3) var(--size-6);background:var(--primary-500);border:none;color:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-normal) var(--easing-in-out)}.newsletter-button[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--primary-600)}.newsletter-button[_ngcontent-%COMP%]:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.success-message[_ngcontent-%COMP%], .error-message[_ngcontent-%COMP%]{position:absolute;top:calc(100% + var(--size-2));left:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);opacity:var(--opacity-0);transform:translateY(calc(var(--size-2) * -1));transition:all var(--duration-slow) var(--easing-in-out);white-space:nowrap}.success-message.show[_ngcontent-%COMP%], .error-message.show[_ngcontent-%COMP%]{opacity:var(--opacity-100);transform:var(--transform-translate-y-0)}.success-message[_ngcontent-%COMP%]{color:var(--success-700)}.error-message[_ngcontent-%COMP%]{color:var(--error-700)}.spinner[_ngcontent-%COMP%]{width:var(--size-4);height:var(--size-4);border:var(--border-width-thick) solid var(--border);border-top-color:var(--white);border-radius:var(--radius-full);animation:_ngcontent-%COMP%_spin var(--duration-slow) var(--easing-linear) infinite}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}.theme-dark[_ngcontent-%COMP%]   .input-wrapper[_ngcontent-%COMP%]{background:var(--bg-tertiary);border-color:var(--border)}.theme-dark[_ngcontent-%COMP%]   .spinner[_ngcontent-%COMP%]{border-color:var(--border);border-top-color:var(--white)}'],changeDetection:0})}return t})(),mt=(()=>{class t{platformId=p(G);toastService=p(V);cdr=p(I);footerDataService=p(_e);destroyRef=p(z);currentYear=new Date().getFullYear();footerSections=[];footerData=null;logoUrl=B.logo.main;textLogoUrl=B.logo.textLogo;isLoading=!0;loadingError=!1;get fallbackFooterSections(){return this.footerDataService.fallbackFooterSections}getSocialLabel=this.footerDataService.getSocialLabel.bind(this.footerDataService);getSocialIcon=this.footerDataService.getSocialIcon.bind(this.footerDataService);selectedFootnote=null;ngOnInit(){this.footerDataService.isLoading.pipe(b(this.destroyRef)).subscribe(e=>{this.isLoading=e,this.cdr.markForCheck()}),this.footerDataService.loadingError.pipe(b(this.destroyRef)).subscribe(e=>{this.loadingError=e,e&&(this.footerSections=this.fallbackFooterSections),this.cdr.markForCheck()}),this.footerDataService.loadFooterData().pipe(b(this.destroyRef)).subscribe(e=>{e?(this.footerData=e,this.footerSections=this.footerDataService.mapApiDataToLocalFormat(e),this.selectedFootnote=this.footerDataService.getRandomFootnote(e)):this.footerSections=this.fallbackFooterSections,this.cdr.markForCheck()})}ngOnDestroy(){}onNewsletterSubscribed(e){}onNewsletterError(e){}trackBySocialLink(e,i){return i.id}trackBySection(e,i){return i.title}trackByLink(e,i){return i.label+(i.route||i.href||"")}retryLoadData(){this.footerDataService.refreshFooterData().pipe(b(this.destroyRef)).subscribe(e=>{e&&(this.footerData=e,this.footerSections=this.footerDataService.mapApiDataToLocalFormat(e),this.selectedFootnote=this.footerDataService.getRandomFootnote(e)),this.cdr.markForCheck()}),this.announceToScreenReader("Retrying to load footer content...")}announceToScreenReader(e){if(!Q(this.platformId))return;let i=document.createElement("div");i.setAttribute("role","status"),i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true"),i.style.position="absolute",i.style.left="-10000px",i.style.width="1px",i.style.height="1px",
1i.style.overflow="hidden",i.textContent=e,document.body.appendChild(i),M(1e3).pipe(b(this.destroyRef)).subscribe(()=>{document.body.removeChild(i)})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=L({type:t,selectors:[["lib-footer"]],features:[R([A({matError:Z,phosphorFacebookLogoFill:te,phosphorTwitterLogoFill:ae,phosphorLinkedinLogoFill:oe,phosphorInstagramLogoFill:re,phosphorYoutubeLogoFill:se,phosphorGithubLogoFill:ie,phosphorDiscordLogoFill:ee,phosphorPinterestLogoFill:ne,phosphorXLogoFill:le})])],decls:15,vars:6,consts:[["role","contentinfo","aria-label","Site footer",1,"footer"],["role","region","aria-label","Footer content",1,"footer-main"],[1,"footer-container"],[1,"error-state"],["role","region","aria-label","Footer bottom bar",1,"footer-bottom"],[1,"bottom-content"],[1,"bottom-left"],[1,"copyright"],["alt","uni.xyz","width","80","height","40","loading","lazy",1,"footer-text-logo",3,"src"],[1,"bottom-right"],[1,"footnote-content"],[1,"footer-brand"],[1,"brand-header"],["type","custom","width","40px","height","40px",3,"borderRadius"],["type","text","width","80%"],[1,"newsletter-section"],["type","title","width","120px"],["type","text","width","180px"],["type","custom","height","48px","width","100%"],[1,"social-links"],["type","custom","width","24px","height","24px",3,"borderRadius"],[1,"footer-links-grid"],[1,"footer-section"],["type","title","width","100px"],[1,"section-links"],["role","alert","aria-live","polite",1,"error-message"],["name","matError","size","24","aria-hidden","true"],["aria-label","Retry loading footer content",1,"retry-button",3,"click"],[1,"brand-logo"],["alt","uni.xyz","width","40","height","40","loading","lazy",1,"logo-img",3,"src"],[1,"brand-description"],["role","region","aria-label","Newsletter subscription",1,"newsletter-section"],["title","Stay updated","subtitle","Get the latest news and updates","placeholder","Enter your email",3,"subscribed","error"],["role","navigation","aria-label","Social media links",1,"social-links"],["target","_blank","rel","nofollow noopener noreferrer",1,"social-link","no-external-icon",3,"href"],["role","navigation","aria-label","Footer navigation links",1,"footer-links-grid"],["size","24","aria-hidden","true",1,"social-icon",3,"name"],[1,"section-title",3,"id"],["role","list",1,"section-links"],[1,"footer-link",3,"routerLink"],[1,"footer-link",3,"href","target","rel"],["width","40","height","40","loading","lazy",1,"footnote-image",3,"src","alt"],[1,"footnote-title",3,"innerHTML"]],template:function(i,r){i&1&&(n(0,"footer",0)(1,"div",1)(2,"div",2),f(3,Le,14,3),f(4,Oe,7,0,"div",3),f(5,Ge,15,3),a()(),n(6,"div",4)(7,"div",5)(8,"div",6)(9,"div",7),d(10,"img",8),n(11,"span"),m(12),a()()(),n(13,"div",9),f(14,$e,3,2,"div",10),a()()()()),i&2&&(o(3),h(r.isLoading?3:-1),o(),h(r.loadingError&&!r.isLoading?4:-1),o(),h(!r.isLoading&&!r.loadingError?5:-1),o(5),c("src",r.textLogoUrl,y),o(2),S("\xA9 ",r.currentYear," uni.xyz. All rights reserved."),o(2),h(r.selectedFootnote?14:-1))},dependencies:[U,J,j,N,we,Ye],encapsulation:2,changeDetection:0})}return t})();export{mt as FooterComponent};

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.