1import{a as Ne,b as Fe,c as Ae,d as Ve,e as $e,g as Re,h as oe,i as ae,j as ze,k as He,l as Ue}from"./chunk-ZEENNMKI.js";import{b as De}from"./chunk-YGSKJHA2.js";import"./chunk-24X2TKOE.js";import{c as Pe}from"./chunk-4LZFHSH6.js";import"./chunk-E7XUTXZZ.js";import{b as Le,c as W,e as j,f as ke,g as f}from"./chunk-3IJ3VEBH.js";import"./chunk-Y6LFHO74.js";import"./chunk-VSYH54DY.js";import"./chunk-R3EMWJDX.js";import"./chunk-BSW7QPZY.js";import"./chunk-QCSZSGG3.js";import"./chunk-BPCTOBSY.js";import"./chunk-WCOE7NEP.js";import"./chunk-YYZJYWRU.js";import"./chunk-HE72SMZE.js";import{c as Ie,k as Be}from"./chunk-5BTRMVOH.js";import{b as q}from"./chunk-5D6E3B7Z.js";import"./chunk-VNMPCTCO.js";import"./chunk-MPV6QC75.js";import{b as Me}from"./chunk-KWNFVAD4.js";import"./chunk-MYURY4DW.js";import"./chunk-7KWXR6AB.js";import{a as xe}from"./chunk-X7JNSEDD.js";import"./chunk-K7FY64C4.js";import"./chunk-CXWH6TYC.js";import"./chunk-Z6IUL6LI.js";import"./chunk-BTHM7NUC.js";import"./chunk-QFRUBDFN.js";import"./chunk-3LVYPE24.js";import"./chunk-APKADBJS.js";import"./chunk-BPKZUJZT.js";import"./chunk-LPQVYQAW.js";import"./chunk-QYYBCH2R.js";import"./chunk-FH4PAS6M.js";import"./chunk-TK3L3BZL.js";import"./chunk-KYLOFBSV.js";import"./chunk-AGPNC6HF.js";import"./chunk-72QW37UE.js";import{x as Te}from"./chunk-JSTUJ2WS.js";import"./chunk-6IVH25JI.js";import"./chunk-TXFXHDGL.js";import"./chunk-KFOWFSWK.js";import{a as Ee}from"./chunk-FAACLXQ2.js";import"./chunk-S24PT66N.js";import"./chunk-Q6MSBDSY.js";import"./chunk-QLWNYNGD.js";import"./chunk-WXQXVJP2.js";import"./chunk-HU777VAE.js";import"./chunk-OLFW4DPP.js";import{b as ve}from"./chunk-4UKO6KQV.js";import"./chunk-YJYVI5WW.js";import"./chunk-WXYVLBOU.js";import"./chunk-COCB37UL.js";import{a as we}from"./chunk-NL4YGRDR.js";import"./chunk-QXT6TTQZ.js";import"./chunk-6BKRTIKI.js";import"./chunk-IEUE3JR7.js";import{a as Oe}from"./chunk-4EPZVYPG.js";import"./chunk-U2DLDSEZ.js";import{j as Ge}from"./chunk-2C3OI57X.js";import"./chunk-5CAJXM5U.js";import{b as Ce}from"./chunk-6FPJRJ4U.js";import"./chunk-75TSEUQ4.js";import{j as Se}from"./chunk-2HI4M2HF.js";import"./chunk-3XQWUKYG.js";import{a as U}from"./chunk-BZLTXMPL.js";import{c as ye}from"./chunk-Q6XGM6HP.js";import{D as fe,h as he,o as be}from"./chunk-J5MMLNOU.js";import{Ac as ge,Fb as K,Fd as me,G as A,Ga as B,Hb as m,Jb as _,Jc as z,Kc as te,Lb as se,Mb as P,Nb as D,Nd as _e,Ob as u,Pb as a,Q as V,Qa as O,Qb as l,Ra as S,Rb as b,Tc as ie,Vc as ne,Xb as Q,Ya as E,Yb as I,Zc as ue,_b as x,ac as s,cd as G,fa as k,fd as H,ga as le,gd as T,jc as X,lb as o,lc as M,oc as p,pc as N,qc as v,rc as ee,u as L,ua as $,ub as R,yc as ce,zb as de,zc as pe}from"./chunk-CZEFH2NR.js";import{a as Y,b as J}from"./chunk-QDSGMOWV.js";var Je=(i,c)=>c.Id;function Ke(i,c){i&1&&(a(0,"bn-web-ui-badge",8),b(1,"fa-icon",13),p(2," No healthy origins "),l())}function Qe(i,c){i&1&&(a(0,"bn-web-ui-badge",9),b(1,"fa-icon",13),p(2," No enabled origins "),l())}function Xe(i,c){if(i&1&&(a(0,"span"),p(1,"\xB7"),l(),b(2,"fa-icon",14),a(3,"span"),p(4),ie(5,"number"),ie(6,"number"),l()),i&2){let e=s();o(4),ee("",ne(5,2,e.group().Latitude??0,"1.0-2"),", ",ne(6,5,e.group().Longitude??0,"1.0-2"))}}function et(i,c){if(i&1&&(a(0,"span"),p(1,"\xB7"),l(),a(2,"span"),p(3),l()),i&2){let e=s();o(3),v("Weight ",e.group().Weight??0)}}function tt(i,c){if(i&1&&(a(0,"div",23),p(1),l()),i&2){let e=s().$implicit,t=s(2);o(),N(t.originDisplay(e))}}function it(i,c){i&1&&(a(0,"bn-web-ui-badge",25),b(1,"fa-icon",13),p(2," Unhealthy "),l())}function nt(i,c){if(i&1&&(a(0,"bn-web-ui-badge",26),b(1,"fa-icon",30),p(2),l()),i&2){let e=s().$implicit;o(2),v(" ",e.StandardOrigin==null?null:e.StandardOrigin.HostHeader," ")}}function ot(i,c){if(i&1&&(a(0,"bn-web-ui-badge",27),b(1,"fa-icon",31),p(2),l()),i&2){let e=s().$implicit;u("color",e.StandardOrigin!=null&&e.StandardOrigin.VerifySsl?"green":""),o(),u("icon",e.StandardOrigin!=null&&e.StandardOrigin.VerifySsl?"lock":"lock-open"),o(),v(" ",e.StandardOrigin!=null&&e.StandardOrigin.VerifySsl?"SSL verified":"SSL unverified"," ")}}function at(i,c){if(i&1&&b(0,"bn-web-ui-chart",36),i&2){let e=s(2).$implicit,t=s(2);u("chartType",t.chartTypes.MiniLine)("contextType",e.Enabled&&e.HealthStatus===t.healthStatus.Healthy?"success":"danger")("options",c)}}function rt(i,c){i&1&&b(0,"span",37)}function lt(i,c){if(i&1&&(a(0,"span",32)(1,"span",33)(2,"span",34),p(3,"AVG"),l(),a(4,"span",35),p(5),a(6,"small"),p(7,"ms"),l()()(),a(8,"span",33)(9,"span",34),p(10,"P95"),l(
1),a(11,"span",35),p(12),a(13,"small"),p(14,"ms"),l()()(),a(15,"span",33)(16,"span",34),p(17,"P99"),l(),a(18,"span",35),p(19),a(20,"small"),p(21,"ms"),l()()()(),m(22,at,1,3,"bn-web-ui-chart",36)(23,rt,1,0,"span",37)),i&2){let e,t=s().$implicit,n=s(2).latencyView(t);o(5),v("",(n==null?null:n.average)??"\u2014"," "),o(7),v("",(n==null?null:n.p95)??"\u2014"," "),o(7),v("",(n==null?null:n.p99)??"\u2014"," "),o(3),_((e=n==null?null:n.spark)?22:23,e)}}function dt(i,c){if(i&1&&(a(0,"span",28),p(1),l()),i&2){let e=s().$implicit;o(),v("Weight ",e.Weight??0)}}function st(i,c){if(i&1){let e=I();a(0,"div",18),b(1,"span",19)(2,"fa-icon",20),a(3,"div",21)(4,"div",22),p(5),l(),m(6,tt,2,1,"div",23),a(7,"div",24),m(8,it,3,0,"bn-web-ui-badge",25),a(9,"bn-web-ui-badge",26),p(10),l(),m(11,nt,3,1,"bn-web-ui-badge",26),m(12,ot,3,3,"bn-web-ui-badge",27),l()(),m(13,lt,24,4),m(14,dt,2,1,"span",28),a(15,"bn-web-ui-switch",29),x("ngModelChange",function(n){let r=O(e).$implicit,d=s(2);return S(d.toggleOrigin.emit({origin:r,enabled:n}))}),l()()}if(i&2){let e=c.$implicit,t=s(2);M("bn-load-balancer-group-summary__origin--disabled",!e.Enabled)("bn-load-balancer-group-summary__origin--unhealthy",t.isUnhealthy(e)),o(),M("bn-dot--danger",t.isUnhealthy(e))("bn-dot--success",e.Enabled&&e.HealthStatus===t.healthStatus.Healthy)("bn-load-balancer-group-summary__dot--off",!e.Enabled),u("tooltip",t.healthLabel(e)),K("aria-label",t.healthLabel(e)),o(),u("icon",t.originIcon(e)),o(3),N(e.Name||t.originDisplay(e)),o(),_(e.Name?6:-1),o(2),_(t.isUnhealthy(e)?8:-1),o(2),v(" ",t.originTypeLabel(e)," "),o(),_(e.StandardOrigin!=null&&e.StandardOrigin.HostHeader?11:-1),o(),_(e.OriginType===t.originType.Standard?12:-1),o(),_(t.hasLatencyData()?13:-1),o(),_(t.showWeights?14:-1),o(),u("disabled",t.disabled())("ngModel",e.Enabled)}}function ct(i,c){if(i&1&&(b(0,"hr",15),a(1,"div",16),P(2,st,16,23,"div",17,Je),l()),i&2){let e=s();o(2),D(e.origins)}}var pt={[f.Standard]:"globe",[f.Storage]:"database",[f.EdgeScript]:"code",[f.MagicContainer]:"cube"},gt={[f.Standard]:"Standard",[f.Storage]:"Storage Zone",[f.EdgeScript]:"Edge Script",[f.MagicContainer]:"Magic Container"},Z=i=>{let c=Object.values(i?.Values??{});return c.length?Math.round(c.reduce((e,t)=>e+t,0)/c.length):null},qe=(()=>{class i{constructor(){this.group=T.required(),this.profileAlgorithm=T.required(),this.disabled=T(!1),this.isPrimary=T(!1),this.originLatency=T(new Map),this.edit=H(),this.toggleGroup=H(),this.toggleOrigin=H(),this.expanded=E(!1),this.profileMethod=j,this.healthStatus=W,this.originType=f,this.chartTypes=Ie,this.hasLatencyData=G(()=>this.originLatency().size>0),this.#n=G(()=>{let e=new Map;for(let[t,n]of this.originLatency()){let r=h=>n.find(C=>C.Percentile===h),d=r(90)??n[0],g=d?.Values??{},w=Object.entries(g).sort(([h],[C])=>h.localeCompare(C));e.set(t,{average:Z(r(0))??Z(d),p95:Z(r(95)),p99:Z(r(99)),spark:w.length?{dataset:{source:w.map(([h,C])=>[h,C])}}:null})}return e})}#n;latencyView(e){return e.Id!=null?this.#n().get(e.Id):void 0}get origins(){return this.group().Origins??[]}get healthyCount(){return this.origins.filter(e=>e.Enabled&&e.HealthStatus===W.Healthy).length}get enabledCount(){return this.origins.filter(e=>e.Enabled).length}get isDown(){return!!this.group().Enabled&&this.enabledCount>0&&this.healthyCount===0}get hasNoEnabledOrigins(){return!!this.group().Enabled&&this.enabledCount===0}isUnhealthy(e){return!!e.Enabled&&e.HealthStatus!==W.Healthy}healthLabel(e){return e.Enabled?this.isUnhealthy(e)?"Unhealthy":"Healthy":"Disabled"}get algorithmTitle(){return De.find(e=>e.value===this.group().OriginLoadBalancingMethod)?.title??""}get showWeights(){return this.group().OriginLoadBalancingMethod===ke.WeightedRandom}toggleExpanded(){this.expanded.set(!this.expanded())}originIcon(e){return pt[e.OriginType??f.Standard]??"globe"}originTypeLabel(e){return gt[e.OriginType??f.Standard]??"Standard"}originDisplay(e){switch(e.OriginType){case f.Storage:return`Storage Zone #${e.StorageZoneId}`;case f.EdgeScript:return`Edge Script #${e.EdgeScriptId}`;case f.MagicContainer:return e.MagicContainersOrigin?.AppId??"Magic Containers app";default:return e.StandardOrigin?.OriginUrl||"No URL set"}}static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275cmp=R({type:i,selectors:[["bn-load-balancer-origin-group-summary"]],inputs:{group:[1,"group"],profileAlgorithm:[1,"profileAlgorithm"],disabled:[1,"disabled"],isPrimary:[1,"isPrimary"],originLatency:[1,"originLatency"]},outputs:{edit:"edit",toggleGroup:"toggleGroup",toggleOrigin:"toggleOrigin"},decls:25,vars:21,consts:[[1,"d-block","mb-4",3,"background"],["data-e2e","LoadB
1alancerGroupSummaryHead","role","button","tabindex","0",1,"bn-load-balancer-group-summary__head","d-flex","align-items-center","gap-3",3,"click","keydown.enter","keydown.space"],["icon","chevron-right",1,"bn-load-balancer-group-summary__chevron","text-dark-5"],[1,"flex-grow-1"],[1,"text-300-semi-bold","text-bunny-dark"],[1,"d-flex","align-items-center","flex-wrap","gap-2","mt-1","text-100-regular","text-dark-6"],["size","sm","type","tag",3,"color","tooltip"],["icon","flag"],["color","red","data-e2e","LoadBalancerGroupDownBadge","size","sm","tooltip","Traffic fails over to the next priority group","type","tag"],["color","yellow","data-e2e","LoadBalancerGroupNoOriginsBadge","size","sm","tooltip","Enable at least one origin to put this group in rotation","type","tag"],["data-e2e","LoadBalancerOriginGroupSummaryEnabledSwitchWrapper",1,"d-flex","align-items-center","flex-shrink-0",3,"click"],["data-e2e","LoadBalancerGroupSummaryEnabledSwitch",3,"ngModelChange","disabled","ngModel"],["data-e2e","LoadBalancerGroupSummaryEditButton","itemStyle","stroke","leftIcon","pencil","size","sm","type","button",1,"flex-shrink-0",3,"click"],["icon","circle-exclamation"],["icon","location-dot",1,"text-warning-6"],[1,"my-3"],[1,"d-flex","flex-column","gap-2"],[1,"bn-load-balancer-group-summary__origin","d-flex","align-items-center","gap-3",3,"bn-load-balancer-group-summary__origin--disabled","bn-load-balancer-group-summary__origin--unhealthy"],[1,"bn-load-balancer-group-summary__origin","d-flex","align-items-center","gap-3"],["role","img",1,"bn-dot",3,"tooltip"],[1,"text-dark-5","flex-shrink-0",3,"icon"],[1,"bn-load-balancer-group-summary__origin-info","flex-grow-1"],[1,"text-200-medium","text-bunny-dark","text-truncate"],[1,"text-100-regular","text-dark-6","text-truncate"],[1,"d-flex","align-items-center","flex-wrap","gap-2","mt-1"],["color","red","data-e2e","LoadBalancerOriginUnhealthyBadge","size","sm","type","tag"],["size","sm","type","tag"],["size","sm","type","tag",3,"color"],[1,"text-100-regular","text-dark-6"],["data-e2e","LoadBalancerOriginSummaryEnabledSwitch",1,"flex-shrink-0",3,"ngModelChange","disabled","ngModel"],["icon","globe"],[3,"icon"],[1,"bn-load-balancer-group-summary__stats"],[1,"bn-load-balancer-group-summary__stat"],[1,"bn-load-balancer-group-summary__stat-label"],[1,"bn-load-balancer-group-summary__stat-value"],["size","xs",1,"bn-load-balancer-group-summary__spark",3,"chartType","contextType","options"],[1,"bn-load-balancer-group-summary__spark"]],template:function(t,n){t&1&&(a(0,"bn-web-ui-card",0)(1,"div",1),x("click",function(){return n.toggleExpanded()})("keydown.enter",function(){return n.toggleExpanded()})("keydown.space",function(d){return n.toggleExpanded(),d.preventDefault()}),b(2,"fa-icon",2),a(3,"div",3)(4,"div",4),p(5),l(),a(6,"div",5)(7,"bn-web-ui-badge",6),b(8,"fa-icon",7),p(9),l(),a(10,"span"),p(11),l(),a(12,"span"),p(13,"\xB7"),l(),m(14,Ke,3,0,"bn-web-ui-badge",8)(15,Qe,3,0,"bn-web-ui-badge",9),a(16,"span"),p(17),l(),m(18,Xe,7,8),m(19,et,4,1),l()(),a(20,"span",10),x("click",function(d){return d.stopPropagation()}),a(21,"bn-web-ui-switch",11),x("ngModelChange",function(d){return n.toggleGroup.emit(d)}),l()(),a(22,"bn-web-ui-button",12),x("click",function(d){return n.edit.emit(),d.stopPropagation()}),p(23," Edit "),l()(),m(24,ct,4,0),l()),t&2&&(M("bn-load-balancer-group-summary--disabled",!n.group().Enabled),u("background",n.isDown?"var(--color-danger-1)":void 0),o(),K("aria-expanded",n.expanded()),o(),M("bn-load-balancer-group-summary__chevron--open",n.expanded()),o(3),N(n.group().Name),o(2),u("color",n.isPrimary()?"orange":"")("tooltip",n.isPrimary()?"Highest priority, carries traffic first":"Failover, used when higher-priority groups have no healthy origins"),o(2),v(" Priority ",n.group().Priority??0," "),o(2),N(n.algorithmTitle),o(3),_(n.isDown?14:n.hasNoEnabledOrigins?15:-1),o(2),M("text-danger-6",n.isDown),o(),ee("",n.healthyCount,"/",n.enabledCount," enabled healthy"),o(),_(n.profileAlgorithm()===n.profileMethod.GeoLocation?18:-1),o(),_(n.profileAlgorithm()===n.profileMethod.WeightedRandom?19:-1),o(2),u("disabled",n.disabled())("ngModel",n.group().Enabled),o(3),_(n.expanded()?24:-1))}
1,dependencies:[Oe,U,q,Be,ye,fe,he,be,we,Ce,_e],styles:[".bn-load-balancer-group-summary--disabled[_ngcontent-%COMP%]{opacity:.6}.bn-load-balancer-group-summary__head[_ngcontent-%COMP%]{cursor:pointer}.bn-load-balancer-group-summary__chevron[_ngcontent-%COMP%]{transition:transform .15s ease}.bn-load-balancer-group-summary__chevron--open[_ngcontent-%COMP%]{transform:rotate(90deg)}.bn-load-balancer-group-summary__origin[_ngcontent-%COMP%]{padding:10px 12px;border:1px solid var(--color-dark-2);border-radius:8px;background:var(--color-base-2)}.bn-load-balancer-group-summary__origin[_ngcontent-%COMP%] .bn-dot[_ngcontent-%COMP%]{flex-shrink:0}.bn-load-balancer-group-summary__origin--unhealthy[_ngcontent-%COMP%]{border-color:var(--color-danger-3);background:var(--color-danger-1)}.bn-load-balancer-group-summary__origin--disabled[_ngcontent-%COMP%]{opacity:.6}.bn-load-balancer-group-summary__origin-info[_ngcontent-%COMP%]{min-width:0}.bn-load-balancer-group-summary__dot--off[_ngcontent-%COMP%]{background:var(--color-dark-3)}.bn-load-balancer-group-summary__stats[_ngcontent-%COMP%]{display:flex;flex-shrink:0;gap:var(--bn-spacer-4);padding:var(--bn-spacer-1) var(--bn-spacer-3);background:var(--color-dark-1);border-radius:8px}@media(max-width:1199.98px){.bn-load-balancer-group-summary__stats[_ngcontent-%COMP%]{display:none}}.bn-load-balancer-group-summary__stat[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;min-width:42px}.bn-load-balancer-group-summary__stat-label[_ngcontent-%COMP%]{color:var(--color-dark-5);font-size:.7142857143rem;font-weight:600;text-transform:uppercase}.bn-load-balancer-group-summary__stat-value[_ngcontent-%COMP%]{color:var(--color-dark-7);font-size:.8571428571rem;font-weight:600;white-space:nowrap}.bn-load-balancer-group-summary__stat-value[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{color:var(--color-dark-5);font-weight:400}.bn-load-balancer-group-summary__spark[_ngcontent-%COMP%]{display:block;flex-shrink:0;width:96px;height:28px;overflow:hidden}@media(max-width:1199.98px){.bn-load-balancer-group-summary__spark[_ngcontent-%COMP%]{display:none}}"]})}}return i})();var je=i=>({index:i}),ut=()=>[0,1,2],mt=()=>({"width.%":30,"height.px":20,"margin-bottom.px":10}),_t=()=>({"width.%":55,"height.px":14,"margin-bottom.px":0}),ht=(i,c)=>c.Id;function bt(i,c){if(i&1&&Q(0,3),i&2){let e=s().$index;s(2);let t=X(4);u("ngTemplateOutlet",t)("ngTemplateOutletContext",te(2,je,e))}}function ft(i,c){if(i&1){let e=I();a(0,"bn-load-balancer-origin-group-summary",6),x("edit",function(){O(e);let n=s().$implicit,r=s(2);return S(r.onEditGroup(n))})("toggleGroup",function(n){O(e);let r=s().$implicit,d=s(2);return S(d.onToggleGroup(r,n))})("toggleOrigin",function(n){O(e);let r=s().$implicit,d=s(2);return S(d.onToggleOrigin(r,n))}),l()}if(i&2){let e=s().$implicit,t=s(2);u("disabled",t.isMutating()||t.isSaving())("group",e)("isPrimary",e.Priority===t.topPriority())("originLatency",t.latencyByOrigin())("profileAlgorithm",t.profileAlgorithm())}}function yt(i,c){if(i&1&&m(0,bt,1,4,"ng-container",3)(1,ft,1,5,"bn-load-balancer-origin-group-summary",5),i&2){let e=c.$implicit,t=s(2);_(t.isEditing(e)?0:1)}}function xt(i,c){if(i&1&&Q(0,3),i&2){let e=s(2),t=X(4);u("ngTemplateOutlet",t)("ngTemplateOutletContext",te(2,je,e.groups().length))}}function Ct(i,c){if(i&1){let e=I();a(0,"button",7),x("click",function(){O(e);let n=s(2);return S(n.onAddGroup())}),p(1," Add another origin group "),l()}if(i&2){let e=s(2);u("disabled",e.isSaving())}}function Ot(i,c){if(i&1&&(a(0,"bn-web-ui-alert",2),p(1," Groups are tried in priority order, lowest number first. The highest-priority group carries production traffic; the others only receive requests when every higher-priority group has no healthy origins. "),l(),P(2,yt,2,1,null,null,ht),m(4,xt,1,4,"ng-container",3)(5,Ct,2,1,"button",4)),i&2){let e=s();u("showIcon",!0),o(2),D(e.groups()),o(2),_(e.isAddingNew()?4:5)}}function St(i,c){i&1&&(a(0,"bn-web-ui-card",8),b(1,"ngx-skeleton-loader",9)(2,"ngx-skeleton-loader",9),l()),i&2&&(o(),u("theme",z(2,mt)),o(),u("theme",z(3,_t)))}function vt(i,c){i&1&&P(0,St,3,4,"bn-web-ui-card",8,se),i&2&&D(z(0,ut))}function Gt(i,c){i&1&&(a(0,"p",1),p(1,"This load balancer could not be loaded. Refresh the page to try again."),l())}function wt(i,c){if(i&1){let e=I();a(0,"button",15),x("click",function(){O(e);let n=s(3);return S(n.onDeleteEditingGroup())}),p(1," Delete Group "),l()}if(i&2){let e=s(3);u("disabled",e.isSaving())}}function Et(i,c){if(i&1){let e=I();b(0,"bn-load-balancer-origin-group-form",10),a(1,"div",11)(2,"button",12),x("click",function(){O(e);let n=s(2);return S(n.onSaveGroup())}),p(3," Save Group "),l(),a(4,"button",13),x("click",function(){O(e);let n=s(2);return S(n.onCancelEdit())}),p(5," Cancel "),l(),m(6,wt,2,1,"button",14),l()}if(i&2){let e=s().index,t=ge(0),n=s();u("canRemove",!1)("group",t)("index",e)("profileAlgorithm",n.profileAlgorithm()),o(2),u("loading",n.isSaving()),o(2),u("disabled",n.isSaving()),o(2),_(!n.isAddingNew()&&n.groups().length>1?6:-1)}}function It(i,c){if(i&1&&(ce(0),m(1,Et,7,7)),i&2){let e=pe(s().editForm());o(),_(e?1:-1)}}var We=-1,ci=(()=>{class i{#n;#c;#t;#e;#a;#r;constructor(){this.#n=B(Ge),this.#c=B(ve),this.#t=B(Pe),this.#e=B(Le),this.#a=B(Se),this.loadBalancer=this.#t.loadBalancer,this.isDetailLoa
1ding=this.#t.isLoading(Te.Item),this.groups=G(()=>[...this.loadBalancer()?.OriginGroups??[]].sort((e,t)=>(e.Priority??0)-(t.Priority??0))),this.topPriority=G(()=>Math.min(...this.groups().map(e=>e.Priority??0))),this.latencyByOrigin=G(()=>{let e=new Map;for(let t of this.#t.statistics()?.OriginLatency??[])t.OriginId!=null&&e.set(t.OriginId,[...e.get(t.OriginId)??[],t]);return e}),this.profileAlgorithm=G(()=>this.loadBalancer()?.OriginGroupLoadBalancingMethod??j.WeightedRandom),this.editingGroupId=E(null),this.editForm=E(null),this.isSaving=E(!1),this.isMutating=E(!1),this.isAddingNew=G(()=>this.editingGroupId()===We),this.#r=[],this.#n.setTitle("Origin Groups")}canDeactivate(){return!this.editForm()?.dirty}isEditing(e){return this.editingGroupId()===e.Id}onAddGroup(){this.#p(()=>this.#g(null))}onEditGroup(e){this.isEditing(e)||this.#p(()=>this.#g(e))}onCancelEdit(){if(!this.editForm()?.dirty){this.#o();return}this.#s("Discard changes?","Changes made to this origin group have not been saved.","Discard Changes",()=>this.#o())}onToggleGroup(e,t){let n=this.loadBalancer()?.LoadBalancerId;!n||e.Id==null||this.isMutating()||(this.isMutating.set(!0),this.#l(r=>{let d=r.OriginGroups?.find(g=>g.Id===e.Id);d&&(d.Enabled=t)}),this.#e.loadBalancerOriginGroupEndpointUpdateOriginGroup({loadBalancerId:n,id:e.Id,originGroupCreateModel:J(Y({},ze(e)),{Enabled:t})}).pipe(k(()=>this.isMutating.set(!1))).subscribe({next:()=>this.#i(),error:()=>{this.#l(r=>{let d=r.OriginGroups?.find(g=>g.Id===e.Id);d&&(d.Enabled=!t)}),this.#i()}}))}onToggleOrigin(e,t){let n=this.loadBalancer()?.LoadBalancerId;!n||e.Id==null||t.origin.Id==null||this.isMutating()||(this.isMutating.set(!0),this.#l(r=>{let d=r.OriginGroups?.find(g=>g.Id===e.Id)?.Origins?.find(g=>g.Id===t.origin.Id);d&&(d.Enabled=t.enabled)}),this.#e.loadBalancerOriginEndpointUpdateOrigin({loadBalancerId:n,originGroupId:e.Id,originId:t.origin.Id,loadBalancerOriginCreateModel:J(Y({},He(t.origin)),{Enabled:t.enabled})}).pipe(k(()=>this.isMutating.set(!1))).subscribe({next:()=>this.#i(),error:()=>{this.#l(r=>{let d=r.OriginGroups?.find(g=>g.Id===e.Id)?.Origins?.find(g=>g.Id===t.origin.Id);d&&(d.Enabled=!t.enabled)}),this.#i()}}))}onDeleteEditingGroup(){let e=this.groups().find(r=>r.Id===this.editingGroupId()),t=this.loadBalancer()?.LoadBalancerId;if(!e?.Id||!t||this.groups().length<=1||this.isSaving())return;let n=e.Origins?.length??0;this.#s("Remove origin group?",`This will permanently remove "${e.Name}" and its ${n} ${n===1?"origin":"origins"}.`,"Remove Group",()=>{let r=e.Id;this.isSaving.set(!0),this.#e.loadBalancerOriginGroupEndpointDeleteOriginGroup({loadBalancerId:t,id:r}).pipe(k(()=>this.isSaving.set(!1))).subscribe(()=>{this.#a.success("Origin group was removed.",e.Name??void 0),this.editingGroupId()===r&&this.#o(),this.#i()})})}onSaveGroup(){let e=this.editForm(),t=this.loadBalancer()?.LoadBalancerId;if(!e||!t||(e.markAllAsTouched(),Fe(this.#d(e),this.groups().filter(h=>h.Id!==this.editingGroupId()).flatMap(h=>(h.Origins??[]).map(C=>C.Name))),e.invalid||this.isSaving()))return;this.isSaving.set(!0);let n=!1,r=new Set,d=(h,C)=>{n=!0;let y=Ne(h,C);return y&&r.add(y),L(null)},g=this.editingGroupId();(this.isAddingNew()?this.#u(t,e,d):this.#m(t,e,d)).pipe(k(()=>this.isSaving.set(!1))).subscribe({next:()=>{let h=e.get("Name")?.value;n?this.#a.warning(Ae("Some origin group changes could not be saved.",r),h):this.#a.success("Origin group was saved.",h),this.editingGroupId()===g&&this.#o(),this.#i()},error:()=>{}})}#u(e,t,n){return this.#e.loadBalancerOriginGroupEndpointAddOriginGroup({loadBalancerId:e,originGroupCreateModel:oe(t)}).pipe($(r=>{let d=this.#d(t).map(g=>this.#e.loadBalancerOriginEndpointAddOrigin({loadBalancerId:e,originGroupId:r.Id,loadBalancerOriginCreateModel:ae(g)}).pipe(V(w=>n(w,g))));return d.length?A(d):L([])}))}#m(e,t,n){let r=this.editingGroupId();return this.#e.loadBalancerOriginGroupEndpointUpdateOriginGroup({loadBalancerId:e,id:r,originGroupCreateModel:oe(t)}).pipe($(()=>{let d=this.#d(t),g=d.map(y=>y.get("Id")?.value).filter(y=>y!=null),w=this.#r.filter(y=>!g.includes(y)).map(y=>this.#e.loadBalancerOriginEndpointDeleteOrigin({loadBalancerId:e,originGroupId:r,originId:y}).pipe(V(F=>n(F)))),h=d.map(y=>{let F=y.get("Id")?.value,re=ae(y);return(F!=null?this.#e.loadBalancerOriginEndpointUpdateOrigin({loadBalancerId:e,originGroupId:r,originId:F,loadBalancerOriginCreateModel:re}):this.#e.loadBalancerOriginEndpointAddOrigin({loadBalancerId:e,originGroupId:r,loadBalancerOriginCreateModel:re})).pipe(V(Ze=>n(Ze,y)))});return(w.length?A(w):L([])).pipe($(()=>h.length?A(h):L([])))}))}#d(e){return e.get("Origins").controls}#p(e){if(!this.editForm()?.dirty){e();return}this.#s("Discard changes?","Changes made to the open origin group have not been saved.","Discard Changes",()=>{this.#o(),e()})}#g(e){this.editForm.set(e?Re(e):$e(`Group ${this.groups().length+1}`,Ve(this.groups().map(t=>t.Priority)))),this.#r=(e?.Origins??[]).map(t=>t.Id).filter(t=>t!=null),this.editingGroupId.set(e?.Id??We)}#o(){this.editForm.set(null),this.editingGroupId.set(null),this.#r=[]}#s(e,t,n,r){let d=this.#c.show(Ee,{class:"modal-dialog-centered modal
1-sm",initialState:{data:{title:e,description:t,confirmButtonName:n,textCenter:!0,event:{action:"confirm"}}}});d.content?.getOnAction$().pipe(le()).subscribe(g=>{d.hide(),g.action==="confirm"&&r()})}#l(e){let t=this.loadBalancer();if(!t)return;let n=structuredClone(t);e(n),this.#t.patchLoadBalancer(n)}#i(){let e=this.loadBalancer()?.LoadBalancerId;e&&this.#t.reloadLoadBalancer(e)}static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275cmp=R({type:i,selectors:[["ng-component"]],decls:5,vars:1,consts:[["editorTemplate",""],[1,"text-200-regular","text-dark-6"],["alertType","info",1,"d-block","mb-4",3,"showIcon"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["bn-web-ui-button","","data-e2e","LoadBalancerAddGroupButton","itemStyle","stroke","leftIcon","plus","size","md","type","button",3,"disabled"],[3,"disabled","group","isPrimary","originLatency","profileAlgorithm"],[3,"edit","toggleGroup","toggleOrigin","disabled","group","isPrimary","originLatency","profileAlgorithm"],["bn-web-ui-button","","data-e2e","LoadBalancerAddGroupButton","itemStyle","stroke","leftIcon","plus","size","md","type","button",3,"click","disabled"],[1,"d-block","mb-4"],["animation","progress",3,"theme"],[3,"canRemove","group","index","profileAlgorithm"],[1,"d-flex","align-items-center","gap-3","mb-4"],["bn-web-ui-button","","data-e2e","LoadBalancerGroupSaveButton","size","md","type","button",3,"click","loading"],["bn-web-ui-button","","data-e2e","LoadBalancerGroupCancelEditButton","itemStyle","stroke","size","md","type","button",3,"click","disabled"],["bn-web-ui-button","","data-e2e","LoadBalancerGroupDeleteButton","itemStyle","danger","leftIcon","trash-can","size","md","type","button",1,"ms-auto",3,"disabled"],["bn-web-ui-button","","data-e2e","LoadBalancerGroupDeleteButton","itemStyle","danger","leftIcon","trash-can","size","md","type","button",1,"ms-auto",3,"click","disabled"]],template:function(t,n){t&1&&(m(0,Ot,6,2)(1,vt,2,1)(2,Gt,2,0,"p",1),de(3,It,2,2,"ng-template",null,0,ue)),t&2&&_(n.loadBalancer()?0:n.isDetailLoading()?1:2)},dependencies:[Me,U,q,Ue,qe,me,xe],encapsulation:2})}}return i})();export{ci as LoadBalancerOriginGroupsPage};
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.