PageSourceSearch

https://dash.bunny.net/chunk-546XKJKR.js

js bunny.net collected 2026-10-01 08:34:04 UTC 17,717 bytes, 1 lines download raw bytes

1import{a as R}from"./chunk-AKHXJEER.js";import{a as I}from"./chunk-MDY4NMJ6.js";import"./chunk-GFK62BBE.js";import{a as X}from"./chunk-LLGUBQAX.js";import{c as ee}from"./chunk-3IJ3VEBH.js";import{e as J}from"./chunk-X2HXKAVZ.js";import"./chunk-VXZPHLE2.js";import"./chunk-737UJVWI.js";import"./chunk-MFJ7FIGJ.js";import"./chunk-5KZZ65X3.js";import{a as C}from"./chunk-YZHK7LLM.js";import"./chunk-HE72SMZE.js";import"./chunk-MNWYEZQ2.js";import"./chunk-NXRDVMU7.js";import"./chunk-ERIW265U.js";import"./chunk-5BTRMVOH.js";import"./chunk-VNMPCTCO.js";import{a as Q}from"./chunk-MPV6QC75.js";import"./chunk-6TOUWQAZ.js";import"./chunk-SPBKDB25.js";import"./chunk-MYURY4DW.js";import"./chunk-7KWXR6AB.js";import"./chunk-X7JNSEDD.js";import"./chunk-K7FY64C4.js";import"./chunk-72QW37UE.js";import{x as D}from"./chunk-JSTUJ2WS.js";import"./chunk-Q6MSBDSY.js";import"./chunk-QLWNYNGD.js";import"./chunk-WXQXVJP2.js";import"./chunk-HU777VAE.js";import{a as K}from"./chunk-OLFW4DPP.js";import"./chunk-4UKO6KQV.js";import{d as Y}from"./chunk-YJYVI5WW.js";import"./chunk-WXYVLBOU.js";import"./chunk-COCB37UL.js";import"./chunk-NL4YGRDR.js";import"./chunk-QXT6TTQZ.js";import"./chunk-6BKRTIKI.js";import"./chunk-IEUE3JR7.js";import{a as U}from"./chunk-4EPZVYPG.js";import"./chunk-U2DLDSEZ.js";import{j as S}from"./chunk-2C3OI57X.js";import"./chunk-5CAJXM5U.js";import{b as G}from"./chunk-6FPJRJ4U.js";import"./chunk-75TSEUQ4.js";import"./chunk-2HI4M2HF.js";import"./chunk-3XQWUKYG.js";import{a as y}from"./chunk-BZLTXMPL.js";import{c as v}from"./chunk-Q6XGM6HP.js";import{D as V,F as j,K as p,V as f,h as $,o as H,ua as T}from"./chunk-J5MMLNOU.js";import{Ga as m,Gd as q,Hb as u,Ic as F,Jb as g,Jc as P,Kc as O,Ob as d,Pb as e,Qa as L,Qb as t,Ra as k,Rb as o,Tc as z,Uc as N,Yb as B,_b as E,ac as s,cd as M,gd as W,lb as c,me as Z,oc as i,re as w,ub as _,ze as x}from"./chunk-CZEFH2NR.js";import"./chunk-QDSGMOWV.js";function ae(a,h){if(a&1&&(e(0,"a",7),o(1,"fa-icon",55),t()),a&2){let n=s();d("lessPadding",!0)("routerLink",n.listRoute)}}var te=(()=>{class a{constructor(){this.#t=m(S),this.showBackButton=W(!1),this.listRoute=`/${f.CDN}/${p.LoadBalancer}`,this.addRoute=`/${f.CDN}/${p.LoadBalancer}/${p.Add}`}#t;ngOnInit(){this.#t.showHeader(!1)}ngOnDestroy(){this.#t.showHeader(!0)}static{this.\u0275fac=function(r){return new(r||a)}}static{this.\u0275cmp=_({type:a,selectors:[["bn-load-balancer-welcome"]],inputs:{showBackButton:[1,"showBackButton"]},decls:118,vars:3,consts:[[3,"showHeader"],[1,"pt-4"],[1,"bn-container","bn-container--2md"],[1,"mt-4","bn-load-balancer-welcome__banner"],[1,"row"],[1,"col-6"],[1,"d-flex","align-items-center","mb-2"],["bn-web-ui-button","","containerClass","m-1","data-e2e","LoadBalancerWelcomeBackButton","itemStyle","link",1,"bn-add-form__back",3,"lessPadding","routerLink"],[1,"bn-load-balancer-welcome__banner__header-title"],["color","info","size","sm","tooltip","Load Balancer is currently in public preview","type","flat",1,"ms-2"],[1,"col-6","d-flex","justify-content-end"],["data-e2e","LoadBalancerDocsLink","href","https://bunny.net/docs/cdn/load-balancer","target","_blank",1,"bn-button__learn","bn-button__learn--circle"],["icon","graduation-cap"],[1,"col-12","col-sm","mb-6"],[1,"bn-load-balancer-welcome__banner__title","mb-2"],[1,"bn-load-balancer-welcome__banner__content","mb-0"],["bn-web-ui-button","","data-e2e","CreateFirstLoadBalancerButton","itemStyle","primary","leftIcon","plus","size","xl",1,"mt-4",3,"routerLink"],[1,"col","text-end"],["alt","Bunny balancing servers","src","/assets/libs/products/load-balancer/images/bunny-servers.svg",1,"bn-load-balancer-welcome__banner__heading-img","d-none","d-sm-inline-block","img-fluid"],[1,"bn-load-balancer-welcome__statement","mb-6","row"],[1,"col-12","col-md-7"],[1,"text-700-bold","text-bunny-dark"],[1,"text-400-regular"],[1,"col-12","col-md-5","d-none","d-md-block","text-end"],["alt","Bunny giving a thumbs up","src","/assets/libs/products/load-balancer/images/bunny-thumbs-up.svg",1,"bn-load-balancer-welcome__statement-img"],[1,"bn-load-balancer-welcome__cards","row"],[1,"col-12","col-lg-6","d-flex"],[1,"bn-load-balancer-welcome__card","text-400-regular","text-dark-6","h-100"],["icon","shuffle","size","2xl",1,"text-warning-6","mb-2","d-block","gradientIcon"],[1,"text-500-bold","text-bunny-dark"],["icon","arrows-rotate","size","2xl",1,"text-warning-6","mb-2","d-block","gradientIcon"],["icon","heart-pulse","size","2xl",1,"text-warning-6","mb-2","d-block","gradientIcon"],["icon","cookie-bite","size","2xl",1,"text-warning-6","mb-2","d-block","gradientIcon"],[1,"mb-4","row","text-400-regular"],[1,"col-12","col-lg-6"],[1,"text-400-regular","mb-4"],[1,"text-bunny-dark"],[1,"mb-2"],["icon","check-circle",1,"me-1"],[1,"text-200-regular"],[1,"bn-load-balancer-welcome__diagram"],["color","default","size","md","type","pill"],["icon","globe"],[1,"bn-load-balancer-welcome__diagram-connector"],["data-e2e","LoadB
1alancerWelcomeDiagramLoadBalancer","itemStyle","primary","leftIcon","network-wired","size","sm"],[1,"bn-load-balancer-welcome__diagram-groups"],[1,"bn-load-balancer-welcome__diagram-group"],[1,"bn-load-balancer-welcome__diagram-group-head"],["color","orange","size","xs","type","tag"],[1,"bn-load-balancer-welcome__diagram-origins"],["color","default","size","sm","type","pill"],[1,"bn-dot","bn-dot--success"],[1,"bn-load-balancer-welcome__diagram-group","bn-load-balancer-welcome__diagram-group--standby"],["color","grey","size","xs","type","tag"],[1,"bn-dot","bn-load-balancer-welcome__diagram-dot"],["icon","arrow-left-long",1,"text-bunny-dark"]],template:function(r,l){r&1&&(e(0,"bn-web-ui-content",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4)(5,"div",5)(6,"div",6),u(7,ae,2,2,"a",7),e(8,"div",8),i(9,"Load Balancer"),t(),e(10,"bn-web-ui-badge",9),i(11," Preview "),t()()(),e(12,"div",10)(13,"a",11),o(14,"fa-icon",12),t()(),e(15,"div",13)(16,"div",14),i(17,"Keep your origins online, everywhere."),t(),e(18,"p",15),i(19," Layer 7 load balancing at the edge. Route requests across multiple origins by weight, latency or geography, and fail over automatically the moment one goes down, with no DNS changes and no extra infrastructure. "),t(),e(20,"a",16),i(21," Create Your First Load Balancer "),t()(),e(22,"div",17),o(23,"img",18),t()()(),e(24,"div",19)(25,"div",20)(26,"h2",21),i(27,"One entry point. Every origin."),t(),e(28,"p",22),i(29," A load balancer sits at the edge in front of your origins and decides where each request should go. Mix standard hosts, Storage Zones, Edge Scripts and Magic Containers in a single balancer, group them by priority, and let us handle distribution, health and failover for you. "),t()(),e(30,"div",23),o(31,"img",24),t()(),e(32,"div",25)(33,"div",26)(34,"div",27),o(35,"fa-icon",28),e(36,"h3",29),i(37,"Route traffic intelligently"),t(),e(38,"p"),i(39,"Weighted, round-robin, lowest-latency or geo-distance routing, chosen per group so each tier of your stack behaves exactly how you need."),t()()(),e(40,"div",26)(41,"div",27),o(42,"fa-icon",30),e(43,"h3",29),i(44,"Fail over automatically"),t(),e(45,"p"),i(46," Organise origins into priority groups. When every origin in a group goes unhealthy, traffic shifts to the next group in seconds, then shifts back on recovery. "),t()()(),e(47,"div",26)(48,"div",27),o(49,"fa-icon",31),e(50,"h3",29),i(51,"Health checks from everywhere"),t(),e(52,"p"),i(53,"Global HTTP(S) probes run from multiple regions on the path you set per group, so unhealthy origins drop out before users ever notice."),t()()(),e(54,"div",26)(55,"div",27),o(56,"fa-icon",32),e(57,"h3",29),i(58,"Keep sessions sticky"),t(),e(59,"p"),i(60," Pin each client to an origin with a short-lived cookie when your app needs it, with automatic reassignment if that origin becomes unavailable. "),t()()()(),e(61,"div",33)(62,"div",34)(63,"h2",21),i(64,"Plug it into your stack."),t(),e(65,"p",35),i(66," Attach a load balancer to any Pull Zone and it takes over origin selection instantly. Point individual requests elsewhere with a Force Origin edge rule whenever you need a manual override. "),t(),e(67,"div",36)(68,"div",37),o(69,"fa-icon",38),e(70,"span",39),i(71,"Attach to any Pull Zone in one click"),t()(),e(72,"div",37),o(73,"fa-icon",38),e(74,"span",39),i(75,"Standard, Storage, Edge Script & Magic Container origins"),t()(),e(76,"div",37),o(77,"fa-icon",38),e(78,"span",39),i(79,"Per-origin enable/disable for zero-downtime maintenance"),t()(),e(80,"div"),o(81,"fa-icon",38),e(82,"span",39),i(83,"Force Origin edge rules override the balancer per request"),t()()()(),e(84,"div",34)(85,"div",40)(86,"bn-web-ui-badge",41),o(87,"fa-icon",42),i(88," Pull Zone "),t(),o(89,"div",43),e(90,"bn-web-ui-button",44),i(91," Load Balancer "),t(),o(92,"div",43),e(93,"div",45)(94,"div",46)(95,"div",47)(96,"bn-web-ui-badge",48),i(97," PRIORITY 0 "),t(),i(98," Latency "),t(),e(99,"div",49)(100,"bn-web-ui-badge",50),o(101,"span",51),i(102," origin-a "),t(),e(103,"bn-web-ui-badge",50),o(104,"span",51),i(105," origin-b "),t()()(),e(106,"div",52)(107,"div",47)(108,"bn-web-ui-badge",53),i(109," PRIORITY 1 "),t(),i(110," Round robin "),t(),e(111,"div",49)(112,"bn-web-ui-badge",50),o(113,"span",54),i(114," failover-a "),t(),e(115,"bn-web-ui-badge",50),o(116,"span",54),i(117," failover-b "),t()()()()()()()()()()),r&2&&(d("showHeader",!1),c(7),g(l.showBackButton()?7:-1),c(13),d("routerLink",l.addRoute))},dependencies:[U,y,C,v,K,x,w,G],styles:[".bn-load-balancer-welcome__banner__header-title[_ngcontent-%COMP%]{background:linear-gradient(180deg,#ff7a53,#ffa84a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-size:1.1428571429rem;font-weight:700}.bn-load-balancer-welcome__banner__title[_ngcontent-%COMP%]{color:var(--color-bunny-dark);font-size:1.7142857143rem;font-weight:700}.bn-load-balancer-welcome__banner__content[_ngcontent-%COMP%]{color:var(--color-dark-7);font-size:1.1428571429rem}.bn-load-balancer-welcome__banner__heading-img[_ngcontent-%COMP%]{max-height:300px;max-width:100%}.bn-load-balancer-welcome__statement[_ngcontent-%COMP%]{margin-top:130px}.bn-load-balancer-welcome__statement-img[_ngcontent-%COMP%]{max-height:180px;max-width:100%}.bn-load-balancer-welcome__cards[_ngcontent-%COMP%]{--bs-gutter-y: var(--bs-gutter-x);margin-bottom:5.7144rem}.bn-load-balancer-welcome__card[_ngcontent-%COMP%]{padding:var(--bn-spacer-5);border-radius:var(--border-radius-4xl);
1border:1px solid var(--Backgrounds-card-border, #e6e9ec);background:linear-gradient(180deg,#fff,#ffffff1a)}.bn-load-balancer-welcome__diagram[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:var(--bn-spacer-4);background-color:var(--color-base);border:1px solid var(--color-dark-1);border-radius:8px;box-shadow:var(--shadow-2)}.bn-load-balancer-welcome__diagram-connector[_ngcontent-%COMP%]{width:2px;height:var(--bn-spacer-3);background-color:var(--color-dark-3)}.bn-load-balancer-welcome__diagram-groups[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--bn-spacer-2);width:100%}.bn-load-balancer-welcome__diagram-group[_ngcontent-%COMP%]{padding:var(--bn-spacer-2) var(--bn-spacer-3);border:1px solid var(--color-dark-2);border-radius:8px;background-color:var(--color-base)}.bn-load-balancer-welcome__diagram-group--standby[_ngcontent-%COMP%]{background-color:var(--color-base-2);opacity:.85}.bn-load-balancer-welcome__diagram-group-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--bn-spacer-1);margin-bottom:var(--bn-spacer-2);color:var(--color-dark-7);font-size:.8571428571rem;font-weight:600}.bn-load-balancer-welcome__diagram-origins[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:var(--bn-spacer-1)}.bn-load-balancer-welcome__diagram-dot[_ngcontent-%COMP%]{background-color:var(--color-dark-4)}.dark[_nghost-%COMP%]   .bn-load-balancer-welcome__card[_ngcontent-%COMP%], .dark   [_nghost-%COMP%]   .bn-load-balancer-welcome__card[_ngcontent-%COMP%]{border:1px solid var(--Backgrounds-card-border, #3a3b45);background:var(--dark-gradient-info, linear-gradient(180deg, rgba(255, 255, 255, .2) 0%, rgba(255, 255, 255, 0) 100%))}"]})}}return a})();var oe=()=>({circle:!0,absolute:!1}),re=()=>({icon:"magnifying-glass",size:"xs"}),le=a=>[a],de=a=>({rightAddons:a,isRounded:!0});function ce(a,h){a&1&&o(0,"bn-load-balancer-welcome")}function se(a,h){if(a&1){let n=B();e(0,"p"),i(1,"Something went wrong while loading your load balancers."),t(),e(2,"button",6),E("click",function(){L(n);let l=s(2);return k(l.retryLoadList())}),i(3," Try Again "),t()}if(a&2){let n=s(2);c(2),d("loading",n.isListLoading())}}function me(a,h){if(a&1){let n=B();e(0,"div",7)(1,"bn-web-ui-input",9),z(2,"async"),E("ngModelChange",function(l){L(n);let b=s(3);return k(b.filterService.mergeValues({search:l}))}),t()()}if(a&2){let n,r=s(3);c(),d("ngModel",(n=N(2,2,r.filter.filter$))==null?null:n.search)("options",O(7,de,O(5,le,P(4,re))))}}function be(a,h){if(a&1&&(u(0,me,3,9,"div",7),o(1,"bn-web-ui-table",8)),a&2){let n=s(2);g(n.hasAnyRecords()?0:-1),c(),d("columns",n.tableColumns)("isLoading",n.initialLoading()||n.isListLoading())("noDataOptions",n.noDataOptions.search)("tableDataSource",n.initialLoading()?null:n.tableData())}}function ue(a,h){if(a&1&&(e(0,"bn-web-ui-content",0)(1,"div",1)(2,"button",2),i(3," Add Load Balancer "),t(),e(4,"button",3),o(5,"fa-icon",4),t(),o(6,"a",5),t(),u(7,se,4,1)(8,be,2,5),t()),a&2){let n=s();d("badge",n.previewBadge),c(4),d("lessPadding",!0),c(2),d("options",P(4,oe)),c(),g(n.isListError()?7:8)}}var Ge=(()=>{class a{#t;#e;#n;constructor(){this.previewBadge={contextType:"info",text:"Preview",type:"flat",tooltip:"Load Balancer is currently in public preview"},this.#t=m(S),this.#e=m(R),this.#n=m(Z),this.filterService=m(I),this.filter=this.filterService.filter,this.initialLoading=this.#e.initialLoading,this.hasActiveFilter=this.#e.hasActiveFilter,this.totalItems=this.#e.totalItems,this.hasAnyRecords=M(()=>(this.totalItems()??0)>0),this.isListError=this.#e.isError(D.List),this.isListLoading=this.#e.isLoading(D.List),this.filterConfig=[{align:"start",filterType:X.Input,icon:"magnifying-glass",id:"search",minLength:1,placeholder:"Search Load Balancers",value:void 0}],this.tableColumns=[{id:"name",name:"Name",mobileOrder:1,mobileWidth:"full"},{id:"origins",name:"Origins",mobileOrder:2,mobileWidth:"full"},{id:"pullZones",name:"Pull zones",mobileOrder:3,mobileWidth:"half"},{id:"requests",name:"Requests \xB7 MTD",mobileOrder:4,mobileWidth:"half"},{id:"bandwidth",name:"Bandwidth \xB7 MTD",mobileOrder:5,mobileWidth:"half"}],this.tableData=M(()=>this.#e.filteredLoadBalancers().map(n=>this.#a(n))),this.noDataOptions={search:{title:"No load balancers Found",description:"No load balancers matched your search query.",height:"250px",buttonsOptions:[{text:"Add Load Balancer",routerLink:"./add"}],imageOptions:{bottom:"0px",top:"40px",isAbsolute:!0,fileName:"bunny-searching.svg"}}},this.#t.setTitle("Load Balancer"),this.#t.setBackButton(void 0),this.filterService.setAllowedApiParams(["search"]),this.filterService.setItems(this.filterConfig),this.filterService.mergeValues(this.#n.snapshot.queryParams),this.filterService.getFilter().pipe(j()).subscribe(n=>this.#e.setSearch(n.search))}#i(n){return(n.OriginGroups??[]).flatMap(l=>
1l.Origins??[]).map(l=>{let b=l.Name||l.StandardOrigin?.HostHeader||`Origin ${l.Id}`;if(!l.Enabled)return{value:"circle",tooltip:`${b} is disabled`};let A=l.HealthStatus===ee.Healthy;return{value:"circle",selected:!0,contextType:A?"success":"danger",tooltip:`${b} is ${A?"healthy":"unhealthy"}`}})}retryLoadList(){this.#e.loadList()}#a(n){let r=this.#e.statisticsById().get(n.LoadBalancerId);return{itemId:n.LoadBalancerId,name:n.Name??"",columns:[{id:"name",value:n.Name??"",valueType:"link",valueTypeOptions:{routerLink:`/${f.CDN}/${p.LoadBalancer}/${n.LoadBalancerId}`},isBold:!0,hasEllipsis:!0,width:"25%"},{id:"origins",valueType:"icons",icons:this.#i(n)},{id:"pullZones",value:r?r.AttachedPullZoneCount??0:T.Dash},r?.TotalRequests!=null?{id:"requests",value:r.TotalRequests,valueType:"number",valueTypeOptions:{number:{nameType:"shortScaleSymbol"}}}:{id:"requests",value:T.Dash},{id:"bandwidth",value:r?.TotalTraffic??void 0,valueType:"file-size"}]}}static{this.\u0275fac=function(r){return new(r||a)}}static{this.\u0275cmp=_({type:a,selectors:[["ng-component"]],features:[F([I,R])],decls:2,vars:1,consts:[["heading","Load Balancer",3,"badge"],["header","",1,"d-flex"],["bn-web-ui-button","","data-e2e","AddLoadBalancerButton","itemStyle","secondary","leftIcon","plus","routerLink","add",1,"d-none","d-lg-inline-block"],["bn-web-ui-button","","data-e2e","AddLoadBalancerButtonMobile","itemStyle","secondary","routerLink","add",1,"d-inline-block","d-lg-none","ms-2",3,"lessPadding"],["icon","plus"],["bn-web-ui-learn-more-button","","data-e2e","LoadBalancerLearnMoreButton","href","https://bunny.net/docs/cdn/load-balancer","target","_blank","text","Learn",1,"ms-2",3,"options"],["bn-web-ui-button","","data-e2e","LoadBalancerListRetryButton","itemStyle","stroke","leftIcon","arrows-rotate","size","sm","type","button",3,"click","loading"],[1,"d-flex","w-100","align-content-center","align-items-center","mb-2","justify-content-end"],["data-e2e","LoadBalancerTable",3,"columns","isLoading","noDataOptions","tableDataSource"],["data-e2e","LoadBalancerSearchInput","itemStyle","primary","placeholder","Search Load Balancers","size","xxs",3,"ngModelChange","ngModel","options"]],template:function(r,l){if(r&1&&u(0,ce,1,0,"bn-load-balancer-welcome")(1,ue,9,5,"bn-web-ui-content",0),r&2){let b=!l.initialLoading()&&!l.isListError()&&l.totalItems()===0&&!l.hasActiveFilter();g(b?0:1)}},dependencies:[V,$,H,x,w,y,C,v,Y,Q,te,J,q],encapsulation:2})}}return a})();export{Ge as LoadBalancerPage};

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.