1import{a as ae}from"./chunk-MX52JLSM.js";import{a as ne}from"./chunk-VMF7DVVE.js";import{a as ie}from"./chunk-GEUXSSNY.js";import"./chunk-COG6NDFD.js";import{a as K}from"./chunk-UGA52WK6.js";import{d as G,i as X,n as Z}from"./chunk-3BFAUH7X.js";import"./chunk-AVU5L2TO.js";import"./chunk-UI46IEFP.js";import"./chunk-2CKLEDFQ.js";import{i as z}from"./chunk-33FEPJ3A.js";import"./chunk-TPBA6ABQ.js";import"./chunk-AEEFSUM3.js";import"./chunk-RQ6AKNCT.js";import"./chunk-KZOPVYTS.js";import"./chunk-V2OO5VHH.js";import"./chunk-PYUPTSCS.js";import"./chunk-7K5NL6GZ.js";import"./chunk-ZLZN3GPS.js";import"./chunk-XJIAS6SL.js";import"./chunk-P5JEEBZF.js";import"./chunk-T4M4G6BT.js";import"./chunk-FZT3HNTI.js";import"./chunk-YG7VAGBA.js";import"./chunk-5O6V4YTM.js";import{A as q,b as U,f as O,l as $}from"./chunk-R3FAXX6Z.js";import{E as te}from"./chunk-SBE4IRCG.js";import{H as Q}from"./chunk-7N4UQO3G.js";import"./chunk-YH4AQGDE.js";import"./chunk-HBGIEOJ5.js";import"./chunk-5WTM5GVB.js";import{a as ee}from"./chunk-4DJZWZ6L.js";import"./chunk-4IXKFKR2.js";import"./chunk-5S33QXEP.js";import{S as J,d as j,n as H,u as N}from"./chunk-LYBZHU26.js";import{$b as t,Bb as f,Gc as e,Hc as r,Ic as V,Lc as b,Mc as v,Nb as P,Nc as y,Ub as u,Uc as W,Vb as x,W as T,_b as p,ac as n,ba as k,bc as E,dd as h,e as I,ed as F,fb as l,fd as g,ga as _,gd as L,kc as B,na as w,oa as M,pc as C,rc as S,vb as D}from"./chunk-2HYWGLDD.js";import"./chunk-CHAYX62K.js";var R=(()=>{class a{constructor(){this.webAPI=_(ee)}getStatus(){return this.webAPI.getData("admin/csa-tools/lowest-cost-plans-cache/status")}getHistory(){return this.webAPI.getData("admin/csa-tools/lowest-cost-plans-cache/history")}runCacheBuild(i){return this.webAPI.postData("admin/csa-tools/lowest-cost-plans-cache/run",i)}static{this.\u0275fac=function(s){return new(s||a)}}static{this.\u0275prov=k({token:a,factory:a.\u0275fac})}}return a})();function le(a,c){if(a&1&&(e(0,` 2 `),t(1,"dt",30),e(2,"Error"),n(),e(3,` 3 `),t(4,"dd",31),e(5),n(),e(6,` 4 `)),a&2){let i=S(2);l(5),r(i.status.errorMessage)}}function re(a,c){if(a&1&&(e(0,` 5 `),t(1,"dl",29),e(2,` 6 `),t(3,"dt",30),e(4,"Plan Year"),n(),e(5,` 7 `),t(6,"dd",31),e(7),n(),e(8,` 8 9 `),t(9,"dt",30),e(10,"Rating Source"),n(),e(11,` 10 `),t(12,"dd",31),e(13),n(),e(14,` 11 12 `),t(15,"dt",30),e(16,"Status"),n(),e(17,` 13 `),t(18,"dd",31),e(19,` 14 `),E(20,"app-pill",32),e(21,` 15 `),n(),e(22,` 16 17 `),t(23,"dt",30),e(24,"Started At"),n(),e(25,` 18 `),t(26,"dd",31),e(27),h(28,"date"),n(),e(29,` 19 20 `),t(30,"dt",30),e(31,"Completed At"),n(),e(32,` 21 `),t(33,"dd",31),e(34),h(35,"date"),n(),e(36,` 22 23 `),t(37,"dt",30),e(38,"Duration"),n(),e(39,` 24 `),t(40,"dd",31),e(41),n(),e(42,` 25 26 `),t(43,"dt",30),e(44,"Pair Count"),n(),e(45,` 27 `),t(46,"dd",31),e(47),n(),e(48,` 28 29 `),t(49,"dt",30),e(50,"Market Count"),n(),e(51,` 30 `),t(52,"dd",31),e(53),n(),e(54,` 31 32 `),t(55,"dt",30),e(56,"Metal Count"),n(),e(57,` 33 `),t(58,"dd",31),e(59),n(),e(60,` 34 35 `),t(61,"dt",30),e(62,"Rows Upserted"),n(),e(63,` 36 `),t(64,"dd",31),e(65),n(),e(66,` 37 38 `),u(67,le,7,1),n(),e(68,` 39 `)),a&2){let i=S();l(7),r(i.status.planYear),l(6),r(i.getSourceLabel(i.status.externalEligibilityRatingSource)),l(7),p("status",i.getStatusPillStatus(i.status.status))("text",i.status.status),l(7),r(g(28,12,i.status.startedAt,"MMM d, y, h:mm a")),l(7),r(g(35,15,i.status.completedAt,"MMM d, y, h:mm a")),l(7),r(i.getDuration(i.status)??"\u2014"),l(6),r(i.status.pairCount??"\u2014"),l(6),r(i.status.marketCount??"\u2014"),l(6),r(i.status.metalCount??"\u2014"),l(6),r(i.status.rowsUpserted??"\u2014"),l(2),x(i.status.status==="Failed"?67:-1)}}function se(a,c){a&1&&(e(0,` 40 `),t(1,"p",9),e(2,"No runs yet."),n(),e(3,` 41 `))}function de(a,c){a&1&&(e(0,` 42 `),t(1,"tr"),e(2,` 43 `),t(3,"th"),e(4,"Plan Year"),n(),e(5,` 44 `),t(6,"th"),e(7,"Rating Source"),n(),e(8,` 45 `),t(9,"th"),e(10,"Status"),n(),e(11,` 46 `),t(12,"th"),e(13,"Queued At"),n(),e(14,` 47 `),t(15,"th"),e(16,"Started At"),n(),e(17,` 48 `),t(18,"th"),e(19,"Completed At"),n(),e(20,` 49 `),t(21,"th"),e(22,"Duration"),n(),e(23,` 50 `),t(24,"th"),e(25,"Triggered By"),n(),e(26,` 51 `),t(27,"th"),e(28,"Pair Count"),n(),e(29,` 52 `),t(30,"th"),e(31,"Rows Upserted"),n(),e(32,` 53 `),t(33,"th"),e(34,"Error"),n(),e(35,` 54 `),E(36,"th"),e(37,` 55 `),n(),e(38,` 56 `))}
56function me(a,c){a&1&&e(0,` 57 \u2026 58 `)}function ce(a,c){if(a&1&&(e(0),h(1,"slice"),u(2,me,1,0)),a&2){let i=S().$implicit;V(` 59 `,L(1,2,i.errorMessage,0,60),` 60 `),l(2),x((i.errorMessage==null?null:i.errorMessage.length)>60?2:-1)}}function pe(a,c){if(a&1&&(e(0,` 61 `),t(1,"button",33),e(2,` 62 `),E(3,"i",34),e(4,` 63 `),n(),e(5,` 64 `)),a&2){let i=S(),s=i.$implicit,o=i.expanded;l(),p("pRowToggler",s),l(2),p("ngClass",o?"fa fa-chevron-up":"fa fa-chevron-down")}}function ue(a,c){if(a&1&&(e(0,` 65 `),t(1,"tr"),e(2,` 66 `),t(3,"td"),e(4),n(),e(5,` 67 `),t(6,"td"),e(7),n(),e(8,` 68 `),t(9,"td"),e(10,` 69 `),E(11,"app-pill",32),e(12,` 70 `),n(),e(13,` 71 `),t(14,"td"),e(15),h(16,"date"),n(),e(17,` 72 `),t(18,"td"),e(19),h(20,"date"),n(),e(21,` 73 `),t(22,"td"),e(23),h(24,"date"),n(),e(25,` 74 `),t(26,"td"),e(27),n(),e(28,` 75 `),t(29,"td"),e(30),n(),e(31,` 76 `),t(32,"td"),e(33),n(),e(34,` 77 `),t(35,"td"),e(36),n(),e(37,` 78 `),t(38,"td"),e(39,` 79 `),u(40,ce,3,6),n(),e(41,` 80 `),t(42,"td"),e(43,` 81 `),u(44,pe,6,2),n(),e(45,` 82 `),n(),e(46,` 83 `)),a&2){let i=c.$implicit,s=S();l(4),r(i.planYear),l(3),r(s.getSourceLabel(i.externalEligibilityRatingSource)),l(4),p("status",s.getStatusPillStatus(i.status))("text",i.status),l(4),r(g(16,13,i.queuedAt,"MMM d, y, h:mm a")),l(4),r(g(20,16,i.startedAt,"MMM d, y, h:mm a")),l(4),r(g(24,19,i.completedAt,"MMM d, y, h:mm a")),l(4),r(s.getDuration(i)??"\u2014"),l(3),r(i.triggeredByUserID),l(3),r(i.pairCount),l(3),r(i.rowsUpserted),l(4),x(i.errorMessage?40:-1),l(4),x(i.errorMessage?44:-1)}}function xe(a,c){if(a&1&&(e(0,` 84 `),t(1,"tr"),e(2,` 85 `),t(3,"td"),e(4,` 86 `),t(5,"pre",35),e(6),n(),e(7,` 87 `),n(),e(8,` 88 `),n(),e(9,` 89 `)),a&2){let i=c.$implicit;l(3),P("colspan",12),l(3),r(i.errorMessage)}}function Se(a,c){a&1&&(e(0,` 90 `),t(1,"tr"),e(2,` 91 `),t(3,"td"),e(4,"No runs found."),n(),e(5,` 92 `),n(),e(6,` 93 `)),a&2&&(l(3),P("colspan",12))}function he(a,c){a&1&&(e(0,` 94 `),t(1,"p",36),e(2,"A Running or Queued job already exists for this plan year."),n(),e(3,` 95 `))}function Ce(a,c){a&1&&(e(0,` 96 `),t(1,"p",36),e(2,"Select at least one rating source."),n(),e(3,` 97 `))}function _e(a,c){if(a&1){let i=B();e(0,` 98 `),t(1,"app-yes-no-modal",37),C("onYesSelect",function(){w(i);let o=S();return M(o.onRunConfirmed())})("onNoSelect",function(){w(i);let o=S();return M(o.showConfirmDialog=!1)}),e(2,` 99 `),n(),e(3,` 100`)}if(a&2){let i=S();l(),p("modalText","Schedule cache build for plan year "+i.selectedPlanYear+"?")}}var je=(()=>{class a{constructor(){this.router=_(J),this.siteDataService=_(te),this.csaToolsService=_(R),this.unsubscribe$=new I,this.status=null,this.history=[],this.loading=!1,this.expandedRows={},this.planYearOptions=[],this.showRunModal=!1,this.showConfirmDialog=!1,this.includeStandard=!0,this.includeVendorProposed=!1}ngOnInit(){let i=new Date().getUTCFullYear(),s=2021,o=i+1;this.planYearOptions=[];for(let m=s;m<=o;m++)this.planYearOptions.push(m);this.selectedPlanYear=i,this.loadStatus(),this.loadHistory()}ngOnDestroy(){this.unsubscribe$.next(),this.unsubscribe$.complete()}loadStatus(){this.csaToolsService.getStatus().pipe(T(this.unsubscribe$)).subscribe(i=>{this.status=i})}loadHistory(){this.csaToolsService.getHistory().pipe(T(this.unsubscribe$)).subscribe(i=>{this.history=i})}openRunModal(){let i=new Date().getUTCFullYear();this.showRunModal=!0,this.selectedPlanYear=i,this.includeStandard=!0,this.includeVendorProposed=!1}get hasSourceSelected(){return this.includeStandard||this.includeVendorProposed}closeRunModal(){this.showRunModal=!1,this.showConfirmDialog=!1}onRunConfirmRequested(){this.showConfirmDialog=!0}onRunConfirmed(){this.csaToolsService.runCacheBuild({planYear:this.selectedPlanYear,includeStandard:this.includeStandard,includeVendorProposed:this.includeVendorProposed}).pipe(T(this.unsubscribe$)).subscribe({next:()=>{this.siteDataService.showSiteSuccessAlert("Cache build job scheduled successfully"),this.loadStatus(),this.loadHistory(),this.closeRunModal()},error:i=>{let s=i?.error??i?.message??"Failed to schedule cache build job";this.siteDataService.showSiteErrorAlert(s)}})}isJobActiveForYear(i){return this.status?.planYear===i&&(this.status.status==="Running"||this.status.status==="Queued")?!0:this.history?.some(o=>o.planYear===i&&(o.status==="Running"||o.status==="Queued"))}getStatusPillStatus(i){switch(i){case"Queued":return"secondary";case"Running":return"active";case"Succeeded":return"success";case"Failed":return"error";default:return"secondary"}}getSourceLabel(i){switch(i){case 2:return"Vendor Proposed";case null:case void 0:return"Standard";default:return`Source ${i}`}}navigateBack(){this.router.navigate(["/admin/csa-v2"])}getDuration(i){if(!i.startedAt||!i.completedAt)return null;let s=new Date(i.startedAt),m=new Date(i.completedAt).getTime()-s.getTime();if(!Number.isFinite(m)||m<0)return null;let d=Math.floor(m/1e3),A=Math.floor(d/60),Y=d%60;return A<=0?`${Y}s`:`${A}m ${Y}s`}static{this.\u0275fac=function(s){return new(s||a)}}static{this.\u0275cmp=D({type:a,selectors:[["ng-component"]],features:[W([R])],decls:107,vars:22,consts:[[1,"container-fluid","px-0"],["pageTitle","CSA Admin Tools",3,"parentLinkAction","showBackButton"],[1,"card"],[1,"card-header"],[1,"card-body"],[1,"d-none"],[1,"d-flex","align-items-center","justify-content-between","mb-3"],[1,"mb-0"],[1,"btn","btn-primary",3,"click"],[1,"mb-3"],[1,"mb-2"],["responsiveLayout","scroll",3,"value","dataKey","expandedRowKeys","paginator","rows","loading"],["pTemplate","header"],["pTemplate","body"],["pTemplate","rowexpansion"],["pTemplate","emptymessage"],["blockScroll","true","header","Run Cache Build","styleClass","standardWidthDialog",3,"visibleChange","onHide","visible","modal","closable"],[1,"form-label"],[3,"ngModelChange","ngModel","options"],[1,"form-label","d-block"],[1,"form-check"],["type","checkbox","id","sourceStandard",1,"form-check-input",3,"ngModelChange","ngModel"],["for","sourceStandard",1,"form-check-label"],["type","checkbox","id","sourceVendorProposed",1,"form-check-input",3,"ngModelChange","ngModel"],["for","sourceVendorProposed",1,"form-check-label"],[1,"text-muted"],[1,"d-flex","gap-2"],[1,"btn","btn-primary",3,"click","disabled"],[1,"btn","btn-secondary",3,"click"],[1,"row"],[1,"col-sm-3"],[1,"col-sm-9"],[3,"status","text"],[1,"btn","btn-secondary","btn-sm",3,"pRowToggler"],[3,"ngClass"],[1,"p-3","bg-light","text-small"],[1,"text-warning"],["headerText","Confirm Cache Build","yesButtonText","Confirm","noButtonText","Cancel",3,"onYesSelect","onNoSelect","modalText"]],template:function(s,o){s&1&&(t(0,"main"),e(1,` 101 `),t(2,"div",0),e(3,` 102 103 `),t(4,"app-admin-header",1),C("parentLinkAction",function(){return o.navigateBack()}),e(5,` 104 `),n(),e(6,` 105 106 `),t(7,"p"),e(8,"Administrative tools for CSA operations"),n(),e(9,` 107 108 `),t(10,"section",2),e(11,` 109 `),t(12,"div",3),e(13,` 110 `),t(14,"h5"),e(15,"Compute & Cache Lowest Cost Plans"),n(),e(16,` 111 `),t(17,"p"),e(18,"Computes and caches the lowest cost plans by metal tier for all rating and service location pairs."),n(),e(19,` 112 `),n(),e(20,` 113 `),t(21,"div",4),e(22,` 114 `),t(23,"span",5),e(24),h(25,"date"),n(),e(26,` 115 116 `),t(27,"div",6),e(28,` 117 `),t(29,"h6",7),e(30,"Most Recent Run"),n(),e(31,` 118 `),t(32,"button",8),C("click",function(){return o.openRunModal()}),e(33,"Run Cache Build"),n(),e(34,` 119 `),n(),e(35,` 120 121 `),u(36,re,69,18)(37,se,4,0),t(38,"div",9),e(39,` 122 `),t(40,"h6",10),e(41,"Run History"),n(),e(42,` 123 `),t(43,"p-table",11),e(44,` 124 125 `),f(45,de,39,0,"ng-template",12),e(46,` 126 127 `),f(47,ue,47,22,"ng-template",13),e(48,` 128 129 `),f(49,xe,10,2,"ng-template",14),e(50,` 130 131 `),f(51,Se,7,1,"ng-template",15),e(52,` 132 133 `),n(),e(53,` 134 `),n(),e(54,` 135 136 `),t(55,"p-dialog",16),y("visibleChange",function(d){return v(o.showRunModal,d)||(o.showRunModal=d),d}),C("onHide",function(){return o.closeRunModal()}),e(56,` 137 138 `),t(57,"div",9),e(58,` 139 `),t(59,"label",17),e(60,"Plan Year"),n(),e(61,` 140 `),t(62,"p-select",18),y("ngModelChange",function(d){return v(o.selectedPlanYear,d)||(o.selectedPlanYear=d),d}),n(),e(63,` 141 `),n(),e(64,` 142 143 `),t(65,"div",9),e(66,` 144 `),t(67,"label",19),e(68,"Rating Source"),n(),e(69,` 145 `),t(70,"div",20),e(71,` 146 `),t(72,"input",21),y("ngModelChange",function(d){return v(o.includeStandard,d)||(o.includeStandard=d),d}),n(),e(73,` 147 `),t(74,"label",22),e(75,"Standard (no external rating source)"),n(),e(76,` 148 `),n(),e(77,` 149 `),t(78,"div",20),e(79,` 150 `),t(80,"input",23),y("ngModelChange",function(d){return v(o.includeVendorProposed,d)||(o.includeVendorProposed=d),d}),n(),e(81,` 151 `),t(82,"label",24),e(83,"Vendor Proposed"),n(),e(84,` 152 `),n(),e(85,` 153 `),t(86,"small",25),e(87,"Each selected source is queued as its own run."),n(),e(88,` 154 `),n(),e(89,` 155 156 `),u(90,he,4,0),u(91,Ce,4,0),t(92,"div",26),e(93,` 157 `),t(94,"button",27),C("click",function(){return o.onRunConfirmRequested()}),e(95,"Confirm"),n(),e(96,` 158 `),t(97,"button",28),C("click",function(){return o.closeRunModal()}),e(98,"Cancel"),n(),e(99,` 159 `),n(),e(100,` 160 161 `),n(),e(101,` 162 `),n(),e(102,` 163 `),n(),e(103,` 164 165 `),n(),e(104,` 166`),n(),e(105,` 167 168`),u(106,_e,4,1)),s&2&&(l(4),p("showBackButton",!0),l(20),r(F(25,20,o.status==null?null:o.status.queuedAt)),l(12),x(o.status?36:37),l(7),p("value",o.history)("dataKey","preComputedLowestCostPlanJobID")("expandedRowKeys",o.expandedRows)("paginator",!0)("rows",25)("loading",o.loading),l(12),b("visible",o.showRunModal),p("modal",!0)("closable",!0),l(7),b("ngModel",o.selectedPlanYear),p("options",o.planYearOptions),l(10),b("ngModel",o.includeStandard),l(8),b("ngModel",o.includeVendorProposed),l(10),x(o.isJobActiveForYear(o.selectedPlanYear)?90:-1),l(),x(o.hasSourceSelected?-1:91),l(3),p("disabled",o.isJobActiveForYear(o.selectedPlanYear)||!o.hasSourceSelected),l(12),x(o.showConfirmDialog?106:-1))},dependencies:[ne,ie,Z,G,Q,X,z,K,q,U,O,$,ae,j,H,N],encapsulation:2})}}return a})();export{je as CsaToolsComponent};
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.