1import{a as e}from"./standalone-app-Bj-IdwrG.js";import{E as t,_ as n,x as r}from"./institution-DyFDvNu6.js";import{t as i}from"./date-URgChy6n.js";import{s as a}from"./main-5Sl8yySz.js";import"./jha-progress-CjUOO3no.js";import"./jha-card-DC-UH8vN.js";import"./jha-card-header-D2XWRnD9.js";import"./jha-button-Dyau4S4K.js";import"./jha-link-button-k4YCp-l3.js";import{f as o,i as s,o as c,s as l}from"./banno-styles-B3iGgKv1.js";import"./jha-list-UCQUTbOQ.js";import"./jha-tab-B1tU4TYA.js";import"./jha-tab-item-CLlXVNd7.js";import{t as u}from"./observable-models-lit-Conecq5s.js";import"./positive-pay-ach-exceptions-AXZuzPPV.js";import{t as d}from"./positive-pay-controller-BawhNixs.js";import"./bannoweb-positive-pay-issued-items-list-cQUjo2SS.js";var f=100,p={NEW:`New`,QUEUED:`Queued`,UNAPPROVED:`Unapproved`,UPLOADED:`Uploaded`,IN_PROGRESS:`InProgress`,STALLED:`Stalled`,DONE:`Done`,ERROR:`Error`,DELETED:`Deleted`,CANNOT_OPEN_FILE:`Cannot Open File`,NOT_SUCCESSFUL:`Not successful`,SUCCESSFUL:`Successful`,APPROVED:`Approved`},m=u(n);window.BannowebPositivePayCardElement=class extends m{static get is(){return`bannoweb-positive-pay-card`}static get properties(){return{accounts:{type:Object},positivePayController:{type:Object},fileUploads:{type:Object},historyLimit:{type:Number},isLoading:{type:Boolean}}}constructor(){super(),e(()=>import(`./icon-money-checks-d_f0Iy7b.js`).then(e=>e.t),[]),e(()=>import(`./icon-file-CyVSo-hM.js`).then(e=>e.t),[]),e(()=>import(`./icon-chevron-right-small-BraCudZ4.js`).then(e=>e.t),[]),this.accounts=a.store.accounts,this.positivePayController=d,this.fileUploads,this.historyLimit=f,this.isLoading=!1}hasData_(e,t){return!e||t>0}isLoadingNoItems_(e,t,...n){return!e&&t}getDisplayedUploads(e,t,...n){return(e||[]).filter(e=>[p.NEW,p.QUEUED,p.IN_PROGRESS,p.UNAPPROVED,p.UPLOADED,p.APPROVED,p.DONE,p.SUCCESSFUL].includes(e.status)&&Math.abs(i.dayDiff(e.uploadedAt))<=7).sort((e,t)=>new Date(t.uploadedAt)-new Date(e.uploadedAt)).slice(0,t)}hasUploadsToDisplay(e,t,...n){return(this.getDisplayedUploads(e,t)||[]).length>0}hasMore_(e,t,...n){return e>t}showMoreUploads_(e){this.hasMore_(this.fileUploads.items.length,this.historyLimit)&&(this.historyLimit+=f)}getAccountName_(e,...t){return(this.accounts.get(e)||{}).name||`Unknown`}retryLoadUploads(e){this.dispatchEvent(new CustomEvent(`retry-load-uploads`,{bubbles:!0,composed:!0}))}static get styles(){return[c,o,s,l,t` :host { 2 display: block; 3 } 4 div.progress { 5 padding: 50px 0; 6 } 7 jha-card[has-data] jha-card-header { 8 --jha-border-color: transparent; 9 --jha-card-header-padding-bottom: 0; 10 } 11 a:hover * { 12 text-decoration: none; 13 } 14 .title { 15 color: var(--jha-text-base); 16 font-weight: 600; 17 } 18 .account { 19 color: var(--jha-text-neutral); 20 font-size: 13px; 21 } 22 .label { 23 width: 100px; 24 color: var(--body-text-secondary-color); 25 } 26 .title-description { 27 flex-grow: 1; 28 margin-left: 10px; 29 } 30 jha-list[borderless] jha-list-item { 31 display: flex; 32 align-items: center; 33 } 34 jha-list-item a:hover { 35 text-decoration: none; 36 } 37 p { 38 color: var(--body-text-secondary-color); 39 } 40 .no-content { 41 display: flex; 42 justify-content: center; 43 align-items: center; 44 text-align: center; 45 color: var(--jha-text-neutral); 46 height: 220px; 47 flex-direction: column; 48 } 49 .no-content button { 50 width: auto; 51 } 52 .secondary-icon { 53 fill: var(--body-text-secondary-color); 54 } 55 .status-chip { 56 font-weight: 500; 57 margin-top: 4px; 58 font-size: 12px; 59 border-radius: 16px; 60 padding: 2px 8px; 61 height: 14px; 62 display: flex; 63 justify-content: center; 64 color: var(--body-text-primary-color); 65 background: var(--secondary-content-background-color); 66 line-height: 1.3; 67 display: inline-block; 68 } 69 .status-chip.approved, 70 .status-chip.done, 71 .status-chip.successful { 72 background: none; // background is handled by the after pseudo elements below. 73 color: var(--body-text-primary-color); 74 position: relative; 75 } 76 .status-chip.approved::after, 77 .status-chip.done::after, 78 .status-chip.successful::after { 79 content: ''; 80 background: var(--jha-color-success); 81 display: inline-block; 82 position: absolute; 83 top: 0; 84 left: 0; 85 width: 100%; 86 height: 100%; 87 opacity: 0.4; 88 border-radius: 16px; 89 z-index: -1; 90 } 91 .status-chip.inprogress, 92 .status-chip.queued { 93 color: var(--secondary-content-background-color); 94 background: var(--body-text-theme-color); 95 } 96 .flex-wrapper { 97 display: flex; 98 justify-content: space-between; 99 align-items: flex-start; 100 } 101 .right-side { 102 text-align: right; 103 font-size: 14px; 104 display: flex; 105 align-items: center; 106 } 107 .date { 108 font-style: italic; 109 } 110 div.header { 111 display: flex; 112 margin: var(--payment-column-labels-margin, 14px 12px 0); 113 } 114 footer { 115 padding: 16px var(--jha-content-inset) 24px 0; 116 text-align: right; 117 } `]}
117renderLoadingFailed(){return r`<div class="no-content" id="error-uploads"> <jh-icon-money-checks class="secondary-icon"></jh-icon-money-checks> <p>${`Check uploads failed to load.`}</p> <button type="button" @click="${this.retryLoadUploads}"> ${`Retry`} </button> </div>`}get loadingTemplate(){return r`<div class="progress"> <jha-progress card=""></jha-progress> </div>`}get noUploadsTemplate(){return r`<div class="no-content" id="no-uploads"> <jh-icon-money-checks class="secondary-icon"></jh-icon-money-checks> <p>${`Your check uploads will display here`}</p> </div>`}get renderUploadsList(){return this.getDisplayedUploads(this.fileUploads.items,this.historyLimit).map((e,t)=>t===0&&e.status===p.DONE?r`<jha-list-item no-padding> <a href="/positive-pay/review-checks/${e.id}" class="list-item-padding flex-wrapper"> <jh-icon-file></jh-icon-file> <div class="title-description"> <div> <span class="title">${e.fileName}</span> <span class="account">${e.accountDesignator}</span> </div> <div> <span class="status-chip ${e.status.toLowerCase()}">${`Pending`}</span> </div> </div> <div class="right-side"> <span class="review-approve">${`Review & approve`}</span> <jh-icon-chevron-right-small></jh-icon-chevron-right-small> </div> </a> </jha-list-item>`:r`<jha-list-item no-padding> <article> <div class="list-item-padding flex-wrapper"> <jh-icon-file></jh-icon-file> <div class="title-description"> <div> <span class="title">${e.fileName}</span> <span class="account">${e.accountDesignator}</span> </div> <div> <span class="status-chip ${e.status.toLowerCase()}"> ${e.status===p.IN_PROGRESS||e.status===p.QUEUED?`In Progress`:e.status} </span> </div> </div> <div class="right-side"> <span class="date" title="Uploaded on ${i.getSimpleDate(e.uploadedAt)} at ${new Date(e.uploadedAt).toTimeString().split(` `)[0]}" aria-label="Uploaded on ${i.getSimpleDate(e.uploadedAt)} at ${new Date(e.uploadedAt).toTimeString().split(` `)[0]}"> ${i.getRelativeTimestamp(new Date(e.uploadedAt),`uploaded`)} </span> </div> </div> </article> </jha-list-item>`)}get renderFooter(){if(this.hasMore_(this.fileUploads.items.length,this.historyLimit,this.fileUploads.loading))return r`<footer> <jha-button id="load-payments" default sync wide type="button" @click="${this.showMoreUploads_}"> Load more </jha-button> </footer>`}renderUploads(){return this.isLoadingNoItems_(this.fileUploads.items.length,this.fileUploads.loading)?this.loadingTemplate:this.hasUploadsToDisplay(this.fileUploads.items,this.historyLimit,this.fileUploads.loading)?r`<div id="history"> <jha-list id="history">${this.renderUploadsList}</jha-list> ${this.renderFooter} </div>`:this.noUploadsTemplate}render(){return r`<jha-card ?hasData="${this.hasData_(this.fileUploads.loading,this.fileUploads.items.length)}"> <jha-card-header .loading="${this.isLoading}"> <h1>${`Check entries`}</h1> </jha-card-header> ${this.fileUploads.loadingFailed?this.renderLoadingFailed():``} ${this.renderUploads()} </jha-card>`}},customElements.define(window.BannowebPositivePayCardElement.is,window.BannowebPositivePayCardElement),window.BannowebPositivePayCardElement;export{p as t};
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.