1import{a as U}from"./chunk-TPEH54NC.js";import"./chunk-DNFLHLBL.js";import{a as W}from"./chunk-KSCKDLJY.js";import"./chunk-77FKT5JT.js";import{a as B}from"./chunk-UDAFKW5T.js";import"./chunk-QT4Y6DAG.js";import"./chunk-I27FSOWI.js";import"./chunk-YDHC32EP.js";import"./chunk-JJ3UGRRV.js";import"./chunk-PFKBWYNX.js";import"./chunk-BYRCIEHW.js";import"./chunk-KM2WX4AO.js";import"./chunk-LFU76I3C.js";import"./chunk-FDCJHWSN.js";import{a as G}from"./chunk-HPDJFCJP.js";import{a as L,c as q,f as j,g as z}from"./chunk-VFH6MHTA.js";import"./chunk-ZIUGQAJ6.js";import"./chunk-UPMGB634.js";import{a as O}from"./chunk-XAAKPWGS.js";import{a as M}from"./chunk-HV3GO5Z2.js";import"./chunk-XZBHOAEY.js";import"./chunk-RQPHNGPS.js";import{b as y}from"./chunk-2XTP3JNB.js";import"./chunk-NWDWORH2.js";import"./chunk-5MUAM7JS.js";import"./chunk-IHJCQUK6.js";import{a as $}from"./chunk-HRGIHHFE.js";import"./chunk-KLAEZ5UA.js";import"./chunk-FJMQYAVB.js";import"./chunk-T5P3A2XG.js";import{g as V,i as T}from"./chunk-UFD3WH34.js";import"./chunk-4GRCKKS4.js";import{$b as r,Ab as v,Dc as o,Ec as k,Fc as c,L as E,Tc as D,Ub as C,Vb as g,Vc as R,Xc as A,Yb as P,Zb as N,_b as s,ac as a,bc as l,ga as x,lb as n,mc as u,oc as _,pb as p,qb as m,sa as F,za as S,zc as I}from"./chunk-WOGKWOFI.js";import"./chunk-HT2G6UXV.js";import{a as f,b as w}from"./chunk-QJI7QS7F.js";var h=class d{dialogRef;data;scopeOptions=S([]);model=S({code:"",discounted_price:"",scope:"",auto_subscribe:!1,description:"",stripe_price_id:"",valid_to:""});form=L(this.model,t=>{j(t.code,{message:"Code is required"}),q(t.discounted_price,({value:e})=>{let i=Number(e());return e().trim()!==""&&Number.isFinite(i)&&i>=0?null:{kind:"min",message:"Enter a price of 0 or more"}})});ngOnInit(){let t=this.data?.pinned,e=t?.network?{value:`network:${t.network.id}`,label:`Network \u2014 ${t.network.name}`}:t?.firm?{value:`firm:${t.firm.id}`,label:`Firm \u2014 ${t.firm.name}`}:null;if(e){this.scopeOptions.set([e]),this.model.update(i=>w(f({},i),{scope:e.value}));return}this.scopeOptions.set([{value:"",label:"Global (all networks)"},...(this.data?.networks??[]).map(i=>({value:`network:${i.id}`,label:`Network \u2014 ${i.name}`})),...(this.data?.firms??[]).map(i=>({value:`firm:${i.id}`,label:`Firm \u2014 ${i.name}`}))])}close(){this.dialogRef.close()}submit(){if(this.form().invalid())return;let t=this.model(),[e,i]=t.scope.split(":"),b=f(f(f(w(f(f({code:t.code.trim(),discounted_price:Number(t.discounted_price)},e==="network"?{network:Number(i)}:{}),e==="firm"?{firm:Number(i)}:{}),{auto_subscribe:t.auto_subscribe}),t.description.trim()?{description:t.description.trim()}:{}),t.stripe_price_id.trim()?{stripe_price_id:t.stripe_price_id.trim()}:{}),t.valid_to?{valid_to:new Date(t.valid_to).toISOString()}:{});this.dialogRef.close(b)}static \u0275fac=function(e){return new(e||d)};static \u0275cmp=v({type:d,selectors:[["app-create-partner-code-dialog"]],decls:21,vars:8,consts:[["role","dialog","aria-modal","true","aria-labelledby","create-partner-code-title",1,"bg-linear-to-br","from-[#0d1a2d]","to-[#1a2332]","shadow-2xl","flex","flex-col","w-[95svw]","md:w-[520px]","mx-auto","overflow-hidden","relative","rounded-xl"],[1,"flex","items-center","justify-between","px-6","py-4","border-b","border-white/10","shrink-0"],["id","create-partner-code-title",1,"text-xl","font-bold","text-white"],["variant","close","size","sm","aria-label","Close dialog",3,"clicked"],["type","signal",1,"space-y-0","flex","flex-col",3,"submitted"],[1,"flex","flex-col","gap-5","px-6","py-6"],["id","pc-code","type","text","label","Code","placeholder","ALLINIAL-STD",3,"formField"],["id","pc-price","type","number","label","Discounted price","placeholder","299","step","0.01",3,"formField"],["id","pc-scope","label","Assign to",3,"options","formField"],["id","pc-description","type","text","label","Description (optional)","placeholder","Allinial standard plan",3,"formField"],["id","pc-stripe-price","type","text","label","Stripe price ID (optional)","placeholder","price_1N\u2026",3,"formField"],["id","pc-valid-to","type","datetime-local","label","Valid to (optional)",3,"formField"],[1,"-mt-3","text-xs",2,"color","var(--mm-fg-3)"],["id","pc-auto-subscribe","type","checkbox","label","Auto-subscribe on redemption",3,"formField"],[1,"flex","items-center","justify-end","gap-3","px-6","py-4","border-t","border-white/10","bg-white/3"],["variant","outline","size","default",1,"text-white",3,"clicked"],["variant","primary","size","default","type","submit"]],template:function(e,i){e&1&&(r(0,"div",0)(1,"div",1)(2,"h2",2),o(3,"Create partner code"),a(),r(4,"app-button",3),u("clicked",function(){return i.close()}),a()(),r(5,"app-forms",4),u("submitted",function(){return i.submit()}),r(6,"div",5),l(7,"app-aria-input",6),p(),l(8,"app-aria-input",7),p(),l(9,"app-aria-select",8),p(),l(10,"app-aria-input",9),p(),l(11,"app-aria-input",10),p(),l(12,"app-aria-input",11),p(),r(13,"p",12),o(14," Expiry for direct (non-seat) redemption. Seats minted from this plan are unaffected. "),a(),l(15,"app-aria-input",13),p(),a(),r(16,"div",14)(17,"app-button",15),u("clicked",function(){return i.close()}),o(18," Cancel "),a(),r(19,"app-button",16),o(20," Create code "),a()()()()),e&2&&(n(7),s("formField",i.form.code),m(),n(),s("formField",i.form.discounted_price),m(),n(),s("options",i.scopeOptions())("formField",i.form.scope),m(),n(),s("formField",i.form.description),m(),n(),s("formField",i.form.stripe_price_id),m(),n(),s("formField",i.form.valid_to),m(),n(3),s("formField",i.form.auto_subscribe),m())},dependencies:[z,G,B,W,y],encapsulation:2})};var K=(d,t)=>t.id;function Q(d,t){if(d&1&&(r(0,"div",6),o(1),a()),d&2){let e=_();n(),c(" ",e.facade.partnerCodesError()," ")}}function X(d,t){if(d&1&&(r(0,"tr",13)(1,"td",15),o(2),a(),r(3,"td",16),o(4),a(),r(5,"td",17),o(6),D(7,"currency"),a(),r(8,"td",18),o(9),a(),r(10,"td",16),o(11),a(),r(12,"td",19),o(13),a(),r(14,"td",16),o(15),D(16,"date"),a(),r(17,"td",20)(18,"span",21),o(19),a()()()),d&2){let e=t.$implicit,i=_();n(2),k(e.code),n(2),k(e.description||"\u2014"),n(2),c(" ",A(7,12,+e.discounted_price,"USD","symbol","1.2-2")," "),n(3),c(" ",i.assignedLabel(e)," "),n(2),c(" ",e.auto_subscribe?"Yes":"No"," "),n(2),c(" ",e.stripe_price_id||"\u2014"," "),n(2),c(" ",e.valid_to?R(16,17,e.valid_to,"mediumDate"):"\u2014"," "),n(3),I("background",e.is_active?"var(--mm-success-bg)":"var(--mm-danger-bg)")("color",e.is_active?"var(--mm-success-fg)":"var(--mm-danger-fg)"),n(),c(" ",e.is_active?"Active":"Inactive"," ")}}function Z(d,t){d&1&&(r(0,"tr")(1,"td",22),o(2," No partner codes yet. Create one to start minting seats. "),a()())}function ee(d,t){if(d&1&&C(0,Z,3,0,"tr"),d&2){let e=_();g(e.facade.partnerCodesLoading()?-1:0)}}function te(d,t){d&1&&(r(0,"div",14),l(1,"app-spinner",23),a())}var Y=class d{facade=x(U);dialog=x(O);destroyRef=x(F);assignedLabel(t){return t.network?`Network \u2014 ${t.network.name}`:t.firm?`Firm \u2014 ${t.firm.name}`:"Global"}openCreate(){this.dialog.open(h,{data:{networks:this.facade.activeNetworks(),firms:this.facade.firms().filter(e=>e.is_active)},maxWidth:"520px",ariaLabel:"Create partner code"}).afterClosed$.pipe(E(1),$(this.destroyRef)).subscribe(e=>{e&&this.facade.createPartnerCode(e)})}static \u0275fac=function(e){return new(e||d)};static \u0275cmp=v({type:d,selectors:[["app-codes-v2"]],hostAttrs:[1,"block","w-full"],decls:35,vars:3,consts:[[1,"admin-theme","flex","flex-col","gap-6","p-6","text-white","min-h-full"],[1,"flex","flex-wrap","items-start","justify-between","gap-3"],[1,"flex","flex-col","gap-1"],[1,"text-2xl","font-bold","leading-tight"],[1,"text-sm",2,"color","var(--mm-fg-3)"],["variant","primary",3,"clicked"],["role","alert",1,"px-3","py-2","text-sm","rounded-md",2,"background","var(--mm-danger-bg)","color","var(--mm-danger-fg)"],[1,"overflow-x-auto","rounded-md","border","border-white/10"],[1,"w-full","min-w-[880px]","text-left","text-sm"],[1,"text-[11px]","uppercase","tracking-wider",2,"color","var(--mm-fg-3)","background","var(--mm-surface-2)"],[1,"px-4","py-3","font-semibold"],[1,"px-4","py-3","font-semibold","text-right"],[1,"divi
1de-y","divide-white/10"],[1,"hover:bg-white/3","transition-colors"],[1,"flex","justify-center","py-4"],[1,"px-4","py-4","font-mono","font-semibold","whitespace-nowrap"],[1,"px-4","py-4",2,"color","var(--mm-fg-3)"],[1,"px-4","py-4","text-right","tabular-nums"],[1,"px-4","py-4",2,"color","var(--mm-fg-2)"],[1,"px-4","py-4","font-mono","text-xs",2,"color","var(--mm-fg-3)"],[1,"px-4","py-4"],[1,"inline-flex","items-center","rounded","px-2","py-1","text-xs","font-medium"],["colspan","8",1,"px-4","py-8","text-center",2,"color","var(--mm-fg-3)"],["size","sm"]],template:function(e,i){e&1&&(r(0,"section",0)(1,"header",1)(2,"div",2)(3,"h1",3),o(4,"Partner Codes"),a(),r(5,"p",4),o(6," Plan/price templates. Create a code and assign it to a network, a firm, or leave it global \u2014 seats are minted and priced from these. "),a()(),r(7,"app-button",5),u("clicked",function(){return i.openCreate()}),o(8,"Create partner code"),a()(),C(9,Q,2,1,"div",6),r(10,"div",7)(11,"table",8)(12,"thead",9)(13,"tr")(14,"th",10),o(15,"Code"),a(),r(16,"th",10),o(17,"Description"),a(),r(18,"th",11),o(19,"Discounted price"),a(),r(20,"th",10),o(21,"Assigned to"),a(),r(22,"th",10),o(23,"Auto-subscribe"),a(),r(24,"th",10),o(25,"Stripe price"),a(),r(26,"th",10),o(27,"Valid to"),a(),r(28,"th",10),o(29,"Status"),a()()(),r(30,"tbody",12),P(31,X,20,20,"tr",13,K,!1,ee,1,1),a()()(),C(34,te,2,0,"div",14),a()),e&2&&(n(9),g(i.facade.partnerCodesError()?9:-1),n(22),N(i.facade.partnerCodes()),n(3),g(i.facade.partnerCodesLoading()?34:-1))},dependencies:[y,M,T,V],encapsulation:2})};export{Y as CodesV2};
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.