1import{aF as g,al as c,x as i,m as h,cw as p,d as w,au as b,a as v,t as d,e as f}from"./indexhtml-DernGyVj.js";import{C as u}from"./cadmin-base-D1Atg8vc.js";import{j as x,k as $,l as y,m as C,o as _}from"./EndpointSiteAdmin-C-rZLh4Q.js";import"./siteadmin-crm-org-DA4BUa8I.js";import"./oum-dialog-confirm-BDhyA_P0.js";import"./oum-admin-list-CSWUU1vZ.js";import"./oum-person-select-DSynm1MI.js";import"./oum-country-cbx-C6SOE2Jf.js";var R=Object.defineProperty,T=Object.getOwnPropertyDescriptor,n=(e,a,t,r)=>{for(var o=r>1?void 0:r?T(a,t):a,l=e.length-1,m;l>=0;l--)(m=e[l])&&(o=(r?m(a,t,o):m(o))||o);return r&&o&&R(a,t,o),o};let s=class extends u{constructor(){super(...arguments),this.tab="search",this.orgTab="contacts",this.searchText="",this.searchResult=[],this.federations=[],this.customers=[],this.email_afterYear=2025,this.email_allEmails=[],this.debounceSearchText=g.debounce(e=>{e!=this.searchText&&(this.searchText=e,this.doSearch())},250),this.nameRenderer=(e,a,t)=>{const r=t.item;e.innerText=r.id.name},this.publikRenderer=(e,a,t)=>{const r=t.item;c(r.publik?i` 2 <wa-icon name="users" color="var(--c-semantic-positive)"></wa-icon>`:i` 3 <wa-icon name="lock" color="var(--c-semantic-negative)"></wa-icon>`,e)},this.stripeRenderer=(e,a,t)=>{const r=t.item;c(r.hasStripe?i` 4 <wa-icon name="check" color="var(--c-semantic-positive)"></wa-icon>`:i``,e)},this.contactsRenderer=(e,a,t)=>{const r=t.item;c(r.contactsCount>0?i` 5 <wa-icon name="check" color="var(--c-semantic-positive)"></wa-icon>`:i``,e)},this.adminsRenderer=(e,a,t)=>{const r=t.item;c(r.adminCount>0?i` 6 <wa-icon name="check" color="var(--c-semantic-positive)"></wa-icon>`:i``,e)},this.compsRenderer=(e,a,t)=>{const r=t.item;e.innerText=r.competitionCount.toString()}}connectedCallback(){super.connectedCallback(),x().then(e=>{this.federations=e.sort((a,t)=>a.id.name.localeCompare(t.id.name))}),$().then(e=>{this.customers=e.sort((a,t)=>a.id.name.localeCompare(t.id.name))})}updated(e){e.has("tab")&&this.tab=="emails"?this.updateEmailList():(e.has("email_selectedCountry")||e.has("email_afterYear"))&&this.updateEmailList()}updateEmailList(){y(this.email_selectedCountry,this.email_afterYear).then(e=>{this.email_allEmails=e})}doSearch(){C(this.searchText).then(e=>{this.searchResult=e.sort((a,t)=>a.id.name.localeCompare(t.id.name))})}renderTop(){return this.selectedOrg?i` 7 <flex-c style="width:100%"> 8 <flex-r style="align-items:center;justify-content:space-between;padding-left:var(--space-sm);width:100%"> 9 <h3>${this.selectedOrg.id.name}</h3> 10 <wa-button appearance="plain" 11 @click="${()=>this.selectedOrg=void 0}" aria-label="Close"> 12 <wa-icon name="xmark" label="Close"></wa-icon> 13 </wa-button> 14 </flex-r> 15 <wa-tab-group style="width:100%"> 16 <wa-tab ?active=${this.orgTab=="contacts"} @click="${()=>this.orgTab="contacts"}"> 17 Contacts 18 </wa-tab> 19 <wa-tab ?active=${this.orgTab=="settings"} @click="${()=>this.orgTab="settings"}"> 20 Settings 21 </wa-tab> 22 <wa-tab ?active=${this.orgTab=="notes"} @click="${()=>this.orgTab="notes"}"> 23 Notes 24 </wa-tab> 25 <wa-tab ?active=${this.orgTab=="send-email"} @click="${()=>this.orgTab="send-email"}"> 26 Send email settings 27 </wa-tab> 28 <wa-tab ?active=${this.orgTab=="merge"} @click="${()=>this.orgTab="merge"}"> 29 Merge 30 </wa-tab> 31 </wa-tab-group> 32 </flex-c> 33 `:i` 34 <wa-tab-group style="width:100%"> 35 <wa-tab ?active=${this.tab=="search"} @click="${()=>this.tab="search"}"> 36 Search 37 </wa-tab> 38 <wa-tab ?active=${this.tab=="customers"} @click="${()=>this.tab="customers"}"> 39 Customers 40 </wa-tab> 41 <wa-tab ?active=${this.tab=="federations"} @click="${()=>this.tab="federations"}"> 42 Federations 43 </wa-tab> 44 <wa-tab ?active=${this.tab=="emails"} @click="${()=>this.tab="emails"}"> 45 Emails 46 </wa-tab> 47 </wa-tab-group> 48 <wa-button @click=${()=>{_().then(e=>{e&&(this.federations.push(e),this.federations=[...this.federations].sort((a,t)=>a.id.name.localeCompare(t.id.name)),this.requestUpdate("federations"))})}}> 49 Create fed 50 </wa-button>
50 51 `}renderContent(){return this.selectedOrg?i` 52 <siteadmin-crm-org .orgInput="${this.selectedOrg}" 53 .tab="${this.orgTab}"> 54 </siteadmin-crm-org>`:this.tab=="search"?this.renderSearch():this.tab=="customers"?this.renderCustomers():this.tab=="emails"?this.renderEmails():this.renderFederations()}renderEmails(){return i` 55 <design-centered style="flex:1"> 56 <flex-c class="pad-wa-input" 57 style="flex:1;gap:var(--space-ml);width:100%"> 58 <oum-country-cbx label="${h("Country")}" 59 @change=${e=>{p.allCountries().then(a=>{this.email_selectedCountry=e.detail.value})}} 60 style="width:100%"> 61 </oum-country-cbx> 62 <wa-input label="${h("After year")}" 63 type="number" 64 .value="${this.email_afterYear}" 65 @change="${e=>{this.email_afterYear=parseInt(e.target.value)}}" 66 style="width:100%"> 67 </wa-input> 68 69 <wa-textarea label="${h("Email text")}" 70 .value="${this.email_allEmails.join("; ")}" 71 rows="20" 72 style="flex:1;width:100%"> 73 </wa-textarea> 74 </flex-c> 75 </design-centered> 76 `}renderSearch(){return i` 77 <flex-c style="flex:1;justify-content:center"> 78 <oum-searchbar @input="${e=>{this.debounceSearchText(e.detail.value)}}"> 79 </oum-searchbar> 80 <vaadin-grid id="grid" 81 .items="${this.searchResult}" 82 theme="no-row-borders no-border" 83 class="grid-clean no-cell-padding" 84 @active-item-changed=${e=>{this.selectedOrg=e.detail.value}} 85 style="flex:1"> 86 <vaadin-grid-column 87 .renderer="${this.publikRenderer}" 88 flex-grow="0" 89 width="63px"></vaadin-grid-column> 90 <vaadin-grid-column 91 .renderer="${this.nameRenderer}" 92 flex-grow="1"></vaadin-grid-column> 93 <vaadin-grid-column 94 header="Stripe" 95 .renderer="${this.stripeRenderer}" 96 flex-grow="0" 97 width="91px" 98 ></vaadin-grid-column> 99 <vaadin-grid-column 100 header="Contacts" 101 .renderer="${this.contactsRenderer}" 102 flex-grow="0" 103 width="91px" 104 ></vaadin-grid-column> 105 <vaadin-grid-column 106 header="Admins" 107 .renderer="${this.adminsRenderer}" 108 flex-grow="0" 109 width="91px" 110 ></vaadin-grid-column> 111 <vaadin-grid-column 112 header="Competitions" 113 .renderer="${this.compsRenderer}" 114 flex-grow="0" 115 width="91px" 116 ></vaadin-grid-column> 117 </vaadin-grid> 118 </flex-c> 119 `}renderCustomers(){return i` 120 <vaadin-grid id="grid" 121 .items="${this.customers}" 122 theme="no-row-borders no-border" 123 class="grid-clean no-cell-padding" 124 @active-item-changed=${e=>{this.selectedOrg=e.detail.value}} 125 style="flex:1"> 126 <vaadin-grid-column 127 .renderer="${this.publikRenderer}" 128 flex-grow="0" 129 width="63px"></vaadin-grid-column> 130 <vaadin-grid-column 131 .renderer="${this.nameRenderer}" 132 flex-grow="1"></vaadin-grid-column> 133 <vaadin-grid-column 134 header="Contacts" 135 .renderer="${this.contactsRenderer}" 136 flex-grow="0" 137 width="91px" 138 ></vaadin-grid-column> 139 <vaadin-grid-column 140 header="Admins" 141 .renderer="${this.adminsRenderer}" 142 flex-grow="0" 143 width="91px" 144 ></vaadin-grid-column> 145 <vaadin-grid-column 146 header="Competitions" 147 .renderer="${this.compsRenderer}" 148 flex-grow="0" 149 width="91px" 150 ></vaadin-grid-column> 151 </vaadin-grid> 152 153 `}renderFederations(){return i` 154 <vaadin-grid id="grid" 155 .items="${this.federations}" 156 theme="no-row-borders no-border" 157 class="grid-clean no-cell-padding" 158 @active-item-changed=${e=>{this.selectedOrg=e.detail.value}} 159 style="flex:1"> 160 <vaadin-grid-column 161 .renderer="${this.publikRenderer}" 162 flex-grow="0" 163 width="63px"></vaadin-grid-column> 164 <vaadin-grid-column 165 .renderer="${this.nameRenderer}" 166 flex-grow="1"></vaadin-grid-column> 167 <vaadin-grid-column 168 header="Contacts" 169 .renderer="${this.contactsRenderer}" 170 flex-grow="0" 171 width="91px" 172 ></vaadin-grid-column> 173 <vaadin-grid-column 174 header="Admins" 175 .renderer="${this.adminsRenderer}" 176 flex-grow="0" 177 width="91px" 178 ></vaadin-grid-column> 179 <vaadin-grid-column 180 header="Competitions" 181 .renderer="${this.compsRenderer}" 182 flex-grow="0" 183 width="91px" 184 ></vaadin-grid-column> 185 </vaadin-grid> 186 `}};s.styles=[w,b,u.stylesBase,v` 187 `];n([d()],s.prototype,"tab",2);n([d()],s.prototype,"orgTab",2);n([d()],s.prototype,"searchText",2);n([d()],s.prototype,"searchResult",2);n([d()],s.prototype,"selectedOrg",2);n([d()],s.prototype,"federations",2);n([d()],s.prototype,"customers",2);n([d()],s.prototype,"email_selectedCountry",2);n([d()],s.prototype,"email_afterYear",2);n([d()],s.prototype,"email_allEmails",2);s=n([f("siteadmin-crm-list")],s);export{s as SiteAdminCrmList};
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.