1(function(x,f){typeof exports=="object"&&typeof module<"u"?module.exports=f():typeof define=="function"&&define.amd?define(f):(x=typeof globalThis<"u"?globalThis:x||self,x.BanksWidget=f())})(this,(function(){"use strict";var se=Object.defineProperty;var ne=(x,f,_)=>f in x?se(x,f,{enumerable:!0,configurable:!0,writable:!0,value:_}):x[f]=_;var c=(x,f,_)=>ne(x,typeof f!="symbol"?f+"":f,_);const x=`.bkwg-card{background:var(--bkwg-bg-primary);border:1px solid var(--bkwg-border);border-radius:8px;position:relative;transition:box-shadow .3s,border-color .2s}.bkwg-card:hover{box-shadow:0 4px 6px -1px #0000001a}.bkwg-card--highlighted{border-color:var(--bkwg-top)!important}.bkwg-card--highlighted:hover{border-color:color-mix(in srgb,var(--bkwg-top),#000 12%)!important}.bkwg-card__top{align-items:center;background:var(--bkwg-top);border-bottom-left-radius:16px;border-top-right-radius:8px;color:var(--bkwg-top-text);display:flex;font-size:12px;font-weight:700;gap:4px;padding:6px 8px 6px 12px;position:absolute;right:-1px;top:-1px;transition:background .2s}.bkwg-card--highlighted:hover .bkwg-card__top{background:color-mix(in srgb,var(--bkwg-top),#000 12%)}.bkwg-card__top-icon{height:12px;width:12px}.bkwg-card__inner{padding:16px}.bkwg-card__content,.bkwg-card__inner{display:flex;flex-direction:column;gap:16px}.bkwg-card__title{color:var(--bkwg-text);font-size:16px;font-weight:600;margin:0}.bkwg-card__grid{display:flex;flex-direction:column;gap:12px}@media(min-width:640px){.bkwg-card__grid{align-items:start;display:grid;gap:16px;grid-template-columns:1fr 1fr}}.bkwg-card__main-content{align-items:center;background-color:var(--bkwg-bg-secondary);border-radius:8px;display:flex;gap:8px;padding:16px}.bkwg-card__main-info{display:flex;flex:1;flex-direction:column}.bkwg-card__card-main-content{align-items:center;display:flex;gap:12px}.bkwg-card__card-main-info{display:flex;flex:1;flex-direction:column}.bkwg-card__title-link{color:var(--bkwg-text);font-size:16px;font-weight:700;text-decoration:none}.bkwg-card__title-link:hover{text-decoration:underline}.bkwg-card__subtitle{color:var(--bkwg-text-secondary);font-size:14px;margin:0}.bkwg-card__bank-name{color:var(--bkwg-link);font-size:14px;font-weight:600;text-decoration:none}.bkwg-card__card-bank-name{color:var(--bkwg-text);font-weight:400}.bkwg-card__bank-name:hover,a.bkwg-card__title:hover{text-decoration:underline}.bkwg-card__details{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}@media(min-width:640px){.bkwg-card__details{grid-template-columns:repeat(3,1fr)}}.bkwg-card__badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.bkwg-card__card-details{align-items:start;display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.bkwg-card__logo-link{align-items:center;background:var(--bkwg-bg-primary);border:1px solid var(--bkwg-border);border-radius:8px;display:flex;flex-shrink:0;height:54px;justify-content:center;padding:6px;width:54px}.bkwg-card__logo{height:40px;-o-object-fit:contain;object-fit:contain;width:40px}.bkwg-card__card-logo-link{align-items:center;border-radius:6px;display:flex;flex-shrink:0;justify-content:center;overflow:hidden}.bkwg-card__card-logo{width:112px}.bkwg-card__footer{display:flex;flex-wrap:wrap;gap:8px}.bkwg-card__detail-col{display:flex;flex-direction:column}.bkwg-card__detail-col--badges{align-items:center;flex-direction:row;flex-wrap:wrap;gap:6px;grid-column:1/-1}.bkwg-card__detail-label{color:var(--bkwg-text-secondary);font-size:14px;margin-bottom:4px}.bkwg-card__detail-value{color:var(--bkwg-text);font-size:14px;font-weight:600}.bkwg-card__actions{display:flex;flex-direction:column;gap:16px}@media(min-width:640px){.bkwg-card__actions{align-items:center;flex-direction:row}}.bkwg-card__form-container{opacity:0;padding-left:16px;padding-right:16px;position:absolute}.bkwg-card__form-container--visible{opacity:1;position:static}.bkwg-custom-select{font-family:inherit;position:relative;width:100%}.bkwg-cs-trigger{align-items:center;background:var(--bkwg-bg-primary);border:1px solid var(--bkwg-border);border-radius:6px;box-sizing:border-box;color:var(--bkwg-text);cursor:pointer;display:flex;font-size:14px;height:36px;justify-content:space-between;padding:8px 12px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.bkwg-custom-select.open .bkwg-cs-trigger{box-shadow:#fff 0 0 0 2px,var(--bkwg-accent) 0 0 0 4px}.bkwg-cs-value-wrapper{align-items:center;display:flex;gap:8px;overflow:hidden}.bkwg-cs-trigger-icon{flex-shrink:0;height:20px;-o-object-fit:contain;object-fit:contain;width:20px}.bkwg-cs-arrow{align-items:center;color:var(--bkwg-text-secondary);display:flex;flex-shrink:0}.bkwg-cs-dropdown{background:var(--bkwg-bg-primary);border:1px solid var(--bkwg-border);border-radius:6px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-sizing:border-box;overflow-y:auto;z-index:2147483647}.bkwg-cs-option{align-items:center;color:var(--bkwg-text);cursor:pointer;display:flex;font-size:14px;gap:8px;padding:6px 8px 6px 12px;transition:background-color .1s;white-space:nowrap}.bkwg-cs-option-flag{flex-shrink:0}.bkwg-cs-option.focused,.bkwg-cs-option:hover{background-color:var(--bkwg-bg-secondary);color:var(--bkwg-text);outline:none}.bkwg-cs-option.selected{background-color:var(--bkwg-bg-secondary);color:var(--bkwg-text);font-weight:400}.bkwg-form{border-top:1px solid var(--bkwg-border);max-height:0;overflow:hidden;transition:max-height .3s ease-out,padding .3s ease-out}.bkwg-form--open{max-height:2000px;overflow:visible;padding:8px 0 16px}.bkwg-form__header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:20px}.bkwg-form__intro{color:var(--bkwg-text-soft);font-size:14px;line-height:1.4;margin-right:20px}.bkwg-form__close{align-items:center;background:none;border:none;color:var(--bkwg-text-soft);cursor:pointer;display:flex;justify-content:center;padding:4px}.bkwg-form__close:hover{color:var(--bkwg-text)}.bkwg-form__grid{display:grid;gap:16px;grid-template-columns:1fr}@media(min-width:640px){.bkwg-form__grid{grid-template-columns:1fr 1fr}}@media(min-width:1024px){.bkwg-form__grid{grid-template-columns:1fr 1fr 1fr}}.bkwg-form__footer{display:flex;justify-content:flex-start;margin-top:24px}.bkwg-form-item{display:flex;flex-direction:column;gap:6px}.bkwg-form-label{color:var(--bkwg-text);font-size:13px;font-weight:500}.bkwg-form-input,.bkwg-form-select,.bkwg-form-textarea{background:var(--bkwg-bg-primary);border:1px solid var(--bkwg-border);border-radius:6px;box-sizing:border-box;color:var(--bkwg-text);font-size:14px;height:36px;padding:0 12px;width:100%}.bkwg-form-textarea{height:80px;padding:8px 12px;resize:vertical}.bkwg-form-input:focus,.bkwg-form-textarea:focus{box-shadow:#fff 0 0 0 2px,var(--bkwg-accent) 0 0 0 4px;outline:2px solid transparent;outline-offset:2px}.bkwg-form-error{color:var(--bkwg-error);font-size:12px;margin-top:4px}.bkwg-form-input--error{border-color:var(--bkwg-error)}.bkwg-amount-group{border:1px solid var(--bkwg-border,#d1d5db);border-radius:8px;display:flex;gap:0;height:36px;overflow:hidden}.bkwg-amount-group:focus-within{box-shadow:#fff 0 0 0 2px,var(--bkwg-accent) 0 0 0 4px}.bkwg-amount-group .bkwg-form-input{border:none;border-radius:0;box-sizing:border-box;flex:1;height:36px}.bkwg-amount-group .bkwg-form-select{background-position:right 8px center;border:none;border-left:1px solid var(--bkwg-border);border-radius:0;box-sizing:border-box;height:36px;width:100px}.bkwg-amount-group .bkwg-custom-select{flex-shrink:0;width:100px}.bkwg-amount-group .bkwg-cs-trigger{border:none;border-left:1px solid var(--bkwg-border,#d1d5db);border-radius:0;box-sizing:border-box;height:36px;padding:8px 12px}.bkwg-amount-group .bkwg-cs-trigger:focus{box-shadow:none;outline:none}.bkwg-amount-group .bkwg-custom-select.open .bkwg-cs-trigger{border-color:transparent;border-left-color:var(--bkwg-border,#d1d5db);box-shadow:none}.bkwg-agreement{align-items:flex-start;cursor:pointer;display:flex;gap:8px;margin-top:8px}.bkwg-agreement input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--bkwg-bg-primary);border:1px solid var(--bkwg-border);border-radius:4px;cursor:pointer;flex-shrink:0;height:18px;margin-top:2px;transition:all .15s;width:18px}.bkwg-agreement input[type=checkbox]:checked{background:var(--bkwg-accent);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' viewBox='0 0 12 12'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 6 2.5 2.5L10 3'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;border-color:var(--bkwg-accent)}.bkwg-agreement span{color:var(--bkwg-text-soft);font-size:13px}.bkwg-agreement a{color:var(--bkwg-link);text-decoration:underline}.bkwg-alert{border-radius:6px;font-size:14px;padding:16px}.bkwg-alert--success{background:var(--bkwg-alert-success-bg);border:1px solid var(--bkwg-alert-success);color:var(--bkwg-alert-success-text)}.bkwg-alert--error{background:var(--bkwg-alert-error-bg);border:1px solid var(--bkwg-alert-error);color:var(--bkwg-alert-error-text)}.bkwg-phone-input-wrapper{align-items:center;background:var(--bkwg-bg-primary);border:1px solid var(--bkwg-border);border-radius:6px;display:flex;height:36px;padding:0 12px}.bkwg-phone-input-wrapper:focus-within{box-shadow:#fff 0 0 0 2px,var(--bkwg-accent) 0 0 0 4px}.bkwg-phone-flag{flex-shrink:0;margin-right:8px}.bkwg-phone-prefix{color:var(--bkwg-text-soft);font-size:14px;line-height:14px;margin-right:4px}.bkwg-phone-input{background:none;border:none;color:var(--bkwg-text);flex:1;font-size:14px;outline:none;padding:0}.bkwg-root a.bkwg-button,.bkwg-root button.bkwg-button{font-weight:var(--bkwg-btn-weight)}.bkwg-button{align-items:center;border:1px solid transparent;border-radius:var(--bkwg-btn-radius);box-sizing:border-box;
1cursor:pointer;display:inline-flex;font-size:14px;height:40px;justify-content:center;padding:0 16px;text-decoration:none;transition:background-color .2s,color .2s}.bkwg-button--primary{background-color:var(--bkwg-btn-primary);color:var(--bkwg-btn-primary-text)}.bkwg-button--primary:hover{background-color:var(--bkwg-btn-primary-hover)}.bkwg-loader{align-items:center;display:flex;justify-content:center;padding:48px 16px}.bkwg-loader__spinner{animation:bkwg-spin .8s linear infinite;border:3px solid var(--bkwg-border);border-radius:50%;border-top-color:var(--bkwg-accent,#2563eb);height:40px;width:40px}@keyframes bkwg-spin{to{transform:rotate(1turn)}}.bkwg-empty-state{align-items:center;background:var(--bkwg-bg-primary);border:1px solid var(--bkwg-border);border-radius:8px;display:flex;gap:16px;padding:24px}.bkwg-empty-state__icon-wrapper{align-items:center;background:color-mix(in srgb,var(--bkwg-link),#fff 90%);border-radius:50%;color:var(--bkwg-link);display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.bkwg-empty-state__icon{height:24px;width:24px}.bkwg-empty-state__content{display:flex;flex-direction:column;gap:4px}.bkwg-empty-state__title{color:var(--bkwg-text);font-size:16px;font-weight:600;margin:0}.bkwg-empty-state__text{color:var(--bkwg-text-secondary);font-size:14px;margin:0}@media(max-width:480px){.bkwg-empty-state,.bkwg-error-state{flex-direction:column;text-align:center}}.bkwg-error-state{align-items:center;background:var(--bkwg-bg-primary);border:1px solid var(--bkwg-border);border-radius:8px;display:flex;gap:16px;padding:24px}.bkwg-error-state__icon-wrapper{align-items:center;background:color-mix(in srgb,var(--bkwg-error),#fff 90%);border-radius:50%;color:var(--bkwg-error);display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.bkwg-error-state__icon{height:24px;width:24px}.bkwg-error-state__content{display:flex;flex-direction:column;gap:4px}.bkwg-error-state__title{color:var(--bkwg-text);font-size:16px;font-weight:600;margin:0}.bkwg-error-state__text{color:var(--bkwg-text-secondary);font-size:14px;margin:0}.bkwg-error-state__link{align-items:center;color:var(--bkwg-link);display:inline-flex;font-size:14px;gap:4px;margin:0;text-decoration:none;transition:opacity .2s}.bkwg-error-state__link:hover{opacity:.8;text-decoration:underline}.bkwg-footer{align-items:center;background:var(--bkwg-bg-primary);border-radius:6px;display:flex;justify-content:space-between;margin-top:8px;padding:8px 16px}.bkwg-footer__divider{border:none;border-top:1px solid var(--bkwg-border);display:none;margin:0;width:100%}@media(max-width:480px){.bkwg-footer{align-items:center;flex-direction:column;gap:12px}.bkwg-footer__divider{display:block}}.bkwg-footer__toggle{background:none;border:none;color:var(--bkwg-link);cursor:pointer;font-size:14px;font-weight:500;padding:0;text-decoration:none;transition:color .2s ease}.bkwg-footer__toggle:hover{text-decoration:underline}.bkwg-footer__link{align-items:center;color:var(--bkwg-link);display:flex;gap:12px;text-decoration:none;transition:opacity .2s ease}.bkwg-footer__link:hover{text-decoration:underline}.bkwg-footer .bkwg-footer__logo{display:block;height:28px;width:auto}.bkwg-footer__text{font-size:14px;font-weight:500;margin-bottom:5px}.bkwg-badge{background-color:var(--bkwg-bg-secondary);border-radius:12px;color:var(--bkwg-text);display:inline-block;font-size:12px;font-weight:700;padding:3px 8px;white-space:nowrap}:host{contain:content;display:block}.bkwg-root{all:initial;display:block;position:relative;width:100%;--bkwg-accent:#2563eb;--bkwg-bg-primary:#fff;--bkwg-bg-secondary:#f3f4f6;--bkwg-text:#2d2d2d;--bkwg-text-secondary:#374151;--bkwg-border:#e5e7eb;--bkwg-link:#2563eb;--bkwg-top:#ea580c;--bkwg-top-text:#fff;--bkwg-error:#ef4444;--bkwg-alert-success:#10b981;--bkwg-alert-success-bg:color-mix(in srgb,var(--bkwg-alert-success),#fff 92%);--bkwg-alert-success-text:color-mix(in srgb,var(--bkwg-alert-success),#000 45%);--bkwg-alert-error:#ef4444;--bkwg-alert-error-bg:color-mix(in srgb,var(--bkwg-alert-error),#fff 92%);--bkwg-alert-error-text:color-mix(in srgb,var(--bkwg-alert-error),#000 45%);--bkwg-btn-primary:#2563eb;--bkwg-btn-primary-hover:color-mix(in srgb,var(--bkwg-btn-primary),#000 10%);--bkwg-btn-primary-text:#fff;--bkwg-btn-page-inactive:#fff;--bkwg-btn-page-inactive-text:#374151;--bkwg-btn-weight:500;--bkwg-btn-radius:6px;color:var(--bkwg-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:1.5;text-align:left;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bkwg-root,.bkwg-root *,.bkwg-root :after,.bkwg-root :before{box-sizing:border-box}.bkwg-root ol,.bkwg-root ul{list-style:none;margin:0;padding:0}.bkwg-root a{text-decoration:none}.bkwg-root img{display:block;height:auto;max-width:100%}
1.bkwg-root button{cursor:pointer;font:inherit}.bkwg-products{display:flex;flex-direction:column}.bkwg-products__content{border-radius:8px}.bkwg-products__more,.bkwg-products__results{display:flex;flex-direction:column}.bkwg-products__more{gap:12px}.bkwg-products__more--visible{max-height:none;opacity:1}.bkwg-filters-section{background:var(--bkwg-bg-secondary);border:1px solid var(--bkwg-border);border-radius:10px;margin-bottom:16px;padding:12px 16px 14px}.bkwg-filters-section__header{align-items:center;color:var(--bkwg-text-secondary);display:flex;gap:5px;margin-bottom:10px}.bkwg-filters-section__icon{flex-shrink:0;opacity:.6}.bkwg-filters-section__title{flex:1;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.bkwg-filters-reset{color:var(--bkwg-text-secondary);cursor:pointer;display:none;font-size:11px;font-weight:500;text-decoration:underline;text-decoration-color:transparent;transition:color .15s,text-decoration-color .15s;white-space:nowrap}.bkwg-filters-reset:hover{color:var(--bkwg-error);text-decoration-color:var(--bkwg-error)}.bkwg-filters-section--active .bkwg-filters-reset{display:flex}.bkwg-filters-row{display:flex;flex-wrap:wrap;gap:10px}.bkwg-filter{display:flex;flex:1 1 200px;flex-direction:column;gap:5px;max-width:320px;min-width:0}.bkwg-filter__label{color:var(--bkwg-text-secondary);font-size:12px;font-weight:500;line-height:1.2}@media(max-width:768px){.bkwg-filter{flex:1 1 100%;max-width:100%}}.bkwg-pagination-bar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-top:16px}.bkwg-pagination__counter{align-items:center;background:var(--bkwg-bg-primary);border:1px solid var(--bkwg-border);border-radius:8px;color:var(--bkwg-text-secondary);display:inline-flex;font-size:13px;height:36px;margin:0;padding:0 12px;white-space:nowrap}.bkwg-pagination{align-items:center;display:flex;gap:4px;justify-content:center;margin-left:auto}button.bkwg-pagination__btn{align-items:center;background:var(--bkwg-btn-page-inactive);border:1px solid var(--bkwg-border);border-radius:8px;color:var(--bkwg-btn-page-inactive-text);cursor:pointer;display:inline-flex;font-size:14px;font-variant-numeric:tabular-nums;font-weight:500;height:36px;justify-content:center;min-width:36px;padding:0 8px;transition:background-color .15s ease,border-color .15s ease,color .15s ease}button.bkwg-pagination__btn:disabled{border-color:color-mix(in srgb,var(--bkwg-border),transparent 50%);color:color-mix(in srgb,var(--bkwg-btn-page-inactive-text),transparent 60%);cursor:default}button.bkwg-pagination__btn:hover:not(:disabled):not(.bkwg-pagination__btn--active){background:var(--bkwg-btn-primary-hover);border-color:var(--bkwg-btn-primary-hover);color:var(--bkwg-btn-primary-text)}.bkwg-pagination__icon{display:block;height:18px;width:18px}.bkwg-pagination__btn:focus-visible{outline:2px solid var(--bkwg-accent);outline-offset:2px}button.bkwg-pagination__btn--active{background:var(--bkwg-btn-primary);border-color:var(--bkwg-btn-primary);color:var(--bkwg-btn-primary-text)!important}button.bkwg-pagination__ellipsis{align-items:flex-end;border-color:transparent;color:color-mix(in srgb,var(--bkwg-btn-page-inactive-text),transparent 40%);min-width:28px;padding:0 0 8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}button.bkwg-pagination__ellipsis:hover:not(:disabled){background:var(--bkwg-btn-primary-hover);border-color:var(--bkwg-btn-primary-hover);color:var(--bkwg-btn-primary-text)}@media(max-width:480px){.bkwg-pagination__btn--sibling{display:none}.bkwg-pagination-bar{justify-content:center}.bkwg-pagination{margin-left:0}}`;class f{constructor(e){this.value=e}}function _(g){return new f(g)}function d(g,...e){let t="",r=0;const i=new Map;for(let o=0;o<g.length;o++)if(t+=g[o],o<e.length){const l=e[o];if(typeof l=="string")t+=q(l);else if(l instanceof f)t+=l.value;else if(l instanceof HTMLElement){const a=`__ELEMENT_${r}__`;t+=a,i.set(r,l),r++}}const s=document.createElement("template");s.innerHTML=t.trim();const n=s.content.firstChild;if(n){const o=[],l=a=>
1{a.nodeType===Node.TEXT_NODE?o.push(a):a.childNodes.forEach(l)};l(n),o.forEach(a=>{const p=a.textContent||"",b=[...p.matchAll(/__ELEMENT_(\d+)__/g)];if(b.length>0){const h=document.createDocumentFragment();let w=0;b.forEach(u=>{u.index>w&&h.appendChild(document.createTextNode(p.slice(w,u.index)));const k=parseInt(u[1]),m=i.get(k);m&&h.appendChild(m),w=u.index+u[0].length}),w<p.length&&h.appendChild(document.createTextNode(p.slice(w))),a.parentNode?.replaceChild(h,a)}})}return n||document.createElement("div")}function q(g){const e=document.createElement("div");return e.textContent=g,e.innerHTML}class E{constructor(e=!1){this.isNotFound=e}render(){const e=this.isNotFound?d`<p class="bkwg-error-state__text"> 2 ÐÐ¸Ð´Ð¶ÐµÑ Ñ Ñаким ID не найден, пожалÑйÑÑа 3 <a href="https://banks.kg/contacts" target="_blank" class="bkwg-error-state__link" 4 >напиÑиÑе нам</a 5 > 6 </p>`:d`<p class="bkwg-error-state__text">ÐÑибка загÑÑзки</p>`;return d` 7 <div class="bkwg-error-state"> 8 <div class="bkwg-error-state__icon-wrapper"> 9 <svg 10 class="bkwg-error-state__icon" 11 xmlns="http://www.w3.org/2000/svg" 12 width="24" 13 height="24"
14 viewBox="0 0 24 24" 15 fill="none" 16 stroke="currentColor" 17 stroke-width="2" 18 stroke-linecap="round" 19 stroke-linejoin="round" 20 > 21 <path d="M18 6 6 18" /> 22 <path d="m6 6 12 12" /> 23 </svg> 24 </div> 25 <div class="bkwg-error-state__content"> 26 <p class="bkwg-error-state__title">ÐÑоизоÑла оÑибка</p> 27 ${e} 28 </div> 29 </div> 30 `}}class B{render(){return d` 31 <div class="bkwg-loader"> 32 <div class="bkwg-loader__spinner"></div> 33 </div> 34 `}}class F{constructor(e){this.config=e}async fetchProducts(){let t=`${this.config.widgetBaseUrl.replace(/\/+$/,"")}/${this.config.widgetId.replace(/^\/+/,"")}`;if(this.config.filters){const i=new URLSearchParams;this.config.filters.organization_id&&i.append("filter[organization_id]",String(this.config.filters.organization_id)),this.config.filters.organization_type&&i.append("filter[organization_type]",this.config.filters.organization_type),i.toString()&&(t+="?"+i.toString())}return await(await fetch(t,{method:"GET",headers:{"Content-Type":"application/json"}})).json()}}const $={accent:{cssVar:"--bkwg-accent",default:"#2563eb"},backgroundPrimary:{cssVar:"--bkwg-bg-primary",default:"#ffffff"},backgroundSecondary:{cssVar:"--bkwg-bg-secondary",default:"#f3f4f6"},border:{cssVar:"--bkwg-border",default:"#e5e7eb"},link:{cssVar:"--bkwg-link",default:"#2563eb"},top:{cssVar:"--bkwg-top",default:"#ea580c"},topText:{cssVar:"--bkwg-top-text",default:"#ffffff"},error:{cssVar:"--bkwg-error",default:"#ef4444"},alertSuccess:{cssVar:"--bkwg-alert-success",default:"#10b981"},alertSuccessBg:{cssVar:"--bkwg-alert-success-bg",default:null},alertSuccessText:{cssVar:"--bkwg-alert-success-text",default:null},alertError:{cssVar:"--bkwg-alert-error",default:null,fallback:"error"},alertErrorBg:{cssVar:"--bkwg-alert-error-bg",default:null},alertErrorText:{cssVar:"--bkwg-alert-error-text",default:null},btnPrimary:{cssVar:"--bkwg-btn-primary",default:"#2563eb"},btnPrimaryHover:{cssVar:"--bkwg-btn-primary-hover",default:null},btnPrimaryText:{cssVar:"--bkwg-btn-primary-text",default:"#ffffff"},btnPageInactive:{cssVar:"--bkwg-btn-page-inactive",default:"#ffffff"},btnPageInactiveText:{cssVar:"--bkwg-btn-page-inactive-text",default:"#374151"},btnWeight:{cssVar:"--bkwg-btn-weight",default:"500"},btnRadius:{cssVar:"--bkwg-btn-radius",default:"6px"}},T=Object.keys($),H=[...T.map(g=>$[g].cssVar),"--bkwg-text","--bkwg-text-secondary"];function R(g={}){const e={};for(const t of T){const r=$[t],i=g[t]??(r.fallback?e[r.fallback]:void 0)??r.default;i&&(e[t]=i)}return e}class W{constructor(){c(this,"instances",new Map);c(this,"nextId",0)}init(e){const t=this.nextId++,r=this.resolveContainer(e.container),i=this.createShadowRoot(r),s=this.resolveConfig(e,i);return this.mountWidget(s,i,t),{update:n=>this.update(t,n),destroy:()=>this.destroy(t)}}scan(){typeof document>"u"||document.querySelectorAll(".banks-widget").forEach(e=>{if(!(e instanceof HTMLElement)||e.dataset.bkwgInitialized)return;const t=e.dataset.id;if(!t)return;const r=e.dataset.filterOrganizationId,i=e.dataset.filterOrganizationType,s=this.findFooterLink(e);if(!this.validateFooterLink(s)){this.showError(e,"ÐожалÑйÑÑа вÑÑавÑÑе ÑÑÑлкÑ"),e.dataset.bkwgInitialized="true";return}s?.remove(),this.init({container:e,widgetId:t,colors:this.readColorAttributes(e),filters:{...r?{organization_id:parseInt(r)}:{},...i?{organization_type:i}:{}}}),e.dataset.bkwgInitialized="success"})}async mountWidget(e,t,r){const i=document.createElement("div");i.className="bkwg-loader-wrapper";const s=new B;i.appendChild(s.render()),t.appendChild(i);try{const o=await new F(e).fetchProducts();if(i.remove(),!o.success||!o.data){const k=new E(!o.success);t.appendChild(k.render());return}o.data.length>0&&(o.data[0].isTop=!0);const l=o.type||"credit",a=this.resolveConfig(e,t,l),p=await(l==="card"?Promise.resolve().then(()=>J):Promise.resolve().then(()=>ie)),b=l==="card"?p.mountCardWidget:p.mountCreditWidget,h={data:o.data,options:o.options,success:o.success},w=b(a,t,h),u=t.parentElement;this.instances.set(r,{widget:w,el:u,config:a,productType:l})}catch(n){i.remove(),console.error("Failed to load product module:",n);const o=new E(!1);throw t.appendChild(o.render()),n}}update(e,t){const r=this.instances.get(e);if(!r)return;const i=r.el.shadowRoot?.querySelector(".bkwg-root");
34if(!i)return;const s=this.resolveConfig({...r.config,...t},i,r.productType);r.widget.update(s)}destroy(e){const t=this.instances.get(e);t&&(t.widget.destroy(),t.el.remove(),this.instances.delete(e))}resolveContainer(e){if(typeof e=="string"){const t=document.querySelector(e);if(!t)throw new Error(`Container not found: ${e}`);if(!(t instanceof HTMLElement))throw new Error(`Container is not HTMLElement: ${e}`);return t}return e}resolveConfig(e,t,r="credit"){const i=r==="card"?"ÐÑоÑмиÑÑ ÐºÐ°ÑÑÑ":"ÐÑоÑмиÑÑ ÐºÑедиÑ",s={widgetBaseUrl:"https://api.banks.kg/api/widget",publicBaseUrl:e.publicBaseUrl??"https://banks.kg",widgetId:e.widgetId,texts:{error:"ÐÑибка загÑÑзки",empty:"ÐÐµÑ Ð¿Ñедложений",showAll:"СмоÑÑеÑÑ Ð´ÑÑгие ваÑианÑÑ",collapse:"СвеÑнÑÑÑ",...e.texts,apply:i},colors:R(e.colors),container:t,filters:e.filters};return this.applyColorVars(t,s.colors),s}readColorAttributes(e){const t={};for(const r of T){const i=e.dataset[r];i&&(t[r]=i)}return t}applyColorVars(e,t){for(const r of T){const i=t[r],{cssVar:s}=$[r];i?e.style.setProperty(s,i):e.style.removeProperty(s)}}findFooterLink(e){let t=e.nextElementSibling;for(;t;){if(t instanceof HTMLAnchorElement&&t.classList.contains("bkwg-link"))return t;t=t.nextElementSibling}return null}validateFooterLink(e){if(!e||!["https://banks.kg/"].includes(e.href))return!1;const r=["ÑÑавниÑе пÑедложениÑ"],i=e.textContent?.trim();return!(!i||!r.includes(i))}createShadowRoot(e){const t=document.createElement("div");t.className="bkwg-host",e.appendChild(t);const r=t.attachShadow({mode:"open"}),i=document.createElement("style");i.textContent=x,r.appendChild(i);const s=document.createElement("div");return s.className="bkwg-root",r.appendChild(s),s}showError(e,t){const r=this.createShadowRoot(e),i=new E(!1);r.appendChild(i.render());const s=r.querySelector(".bkwg-error-state__text");s&&(s.textContent=t)}}const C=new W;if(typeof window<"u"){window.BanksWidget=C;const g=window.BanksWidgetQueue||[];window.BanksWidgetQueue=void 0,g.forEach(t=>{C.init(t)});const e=()=>{C.scan(),typeof MutationObserver<"u"&&document.body&&new MutationObserver(r=>{r.forEach(i=>{i.addedNodes.forEach(s=>{if(s instanceof HTMLElement&&s.classList.contains("bkwg-link")){const n=s.previousElementSibling;n instanceof HTMLElement&&n.classList.contains("banks-widget")&&n.dataset.bkwgInitialized==="success"&&s.remove()}})})}).observe(document.body,{childList:!0,subtree:!0}),typeof MutationObserver<"u"&&document.body&&new MutationObserver(r=>{let i=!1;r.forEach(s=>{s.type==="childList"&&s.addedNodes.forEach(n=>{n instanceof HTMLElement&&(n.classList.contains("banks-widget")||n.querySelector(".banks-widget"))&&(i=!0)})}),i&&C.scan()}).observe(document.body,{childList:!0,subtree:!0})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):document.body?e():window.addEventListener("load",e)}class G{constructor(){c(this,"state",{status:"loading",products:null,options:null,error:null,apiSuccess:null});c(this,"listeners",[])}get(){return{...this.state}}setLoading(e){this.state.status=e?"loading":this.state.products?"success":"error",this.notify()}setProducts(e,t=null,r=!0){this.state.products=e,this.state.options=t,this.state.apiSuccess=r,this.state.status=r?"success":"error",this.state.error=null,this.notify()}setError(e){this.state.error=e,this.state.status="error",this.notify()}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}notify(){const e=this.get();this.listeners.forEach(t=>t(e))}}class K{render(){return d` 35 <div class="bkwg-empty-state"> 36 <div class="bkwg-empty-state__icon-wrapper"> 37 <svg 38 class="bkwg-empty-state__icon" 39 xmlns="http://www.w3.org/2000/svg" 40 width="24" 41 height="24"
42 viewBox="0 0 24 24" 43 fill="none" 44 stroke="currentColor" 45 stroke-width="2" 46 stroke-linecap="round" 47 stroke-linejoin="round" 48 > 49 <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" /> 50 <polyline points="17 8 12 3 7 8" /> 51 <line x1="12" x2="12" y1="3" y2="15" /> 52 </svg> 53 </div> 54 <div class="bkwg-empty-state__content"> 55 <p class="bkwg-empty-state__title">ÐиÑего не найдено</p> 56 <p class="bkwg-empty-state__text">Ðо ваÑим паÑамеÑÑам Ð½ÐµÑ Ð¿Ñедложений</p> 57 </div> 58 </div> 59 `}}class Y{constructor(e,t="credit",r={}){c(this,"text");c(this,"link");c(this,"element",null);c(this,"hasMore");c(this,"isMoreVisible");c(this,"onToggle");this.config=e,this.text=t==="card"?"ÑÑавниÑе каÑÑÑ":"ÑÑавниÑе кÑедиÑÑ",this.link=t==="card"?"/cards":"/credits",this.hasMore=r.hasMore??!1,this.isMoreVisible=r.isMoreVisible??!1,this.onToggle=r.onToggle??null}render(){const e=d` 60 <footer class="bkwg-footer"> 61 ${this.hasMore?d`<button class="bkwg-footer__toggle">${this.getToggleText()}</button>`:""} 62 ${this.hasMore?d`<hr class="bkwg-footer__divider" />`:""} 63 <a 64 href="${this.config.publicBaseUrl}${this.link}" 65 target="_blank" 66 rel="noopener noreferrer" 67 class="bkwg-footer__link" 68 > 69 <img 70 src="${this.config.publicBaseUrl}/images/logos/banks-logo.svg" 71 alt="Banks.kg" 72 class="bkwg-footer__logo" 73 /> 74 <span class="bkwg-footer__text">${this.text}</span> 75 </a> 76 </footer> 77 `;return this.hasMore&&this.onToggle&&e.querySelector(".bkwg-footer__toggle")?.addEventListener("click",()=>{this.onToggle?.()}),this.element=e,e}updateState(e){this.isMoreVisible=e;const t=this.element?.querySelector(".bkwg-footer__toggle");t&&(t.textContent=this.getToggleText())}getToggleText(){return this.isMoreVisible?this.config.texts.collapse:this.config.texts.showAll}}const v=class v{constructor(e,t={}){c(this,"container");c(this,"trigger");c(this,"dropdown",null);c(this,"options",[]);c(this,"isOpen",!1);c(this,"value","");c(this,"documentClickListener",null);c(this,"focusedIndex",-1);c(this,"handleDropdownKeydown",e=>{if(!this.dropdown)return;if(e.key==="Escape"){this.close(),this.trigger.focus();return}const t=this.dropdown.querySelectorAll(".bkwg-cs-option");if(t.length!==0){if(e.key==="ArrowDown")e.preventDefault(),this.focusOption(Math.min(this.focusedIndex+1,t.length-1));else if(e.key==="ArrowUp")e.preventDefault(),this.focusOption(Math.max(this.focusedIndex-1,0));else if(e.key==="Enter"&&this.focusedIndex>=0){e.preventDefault();const r=t[this.focusedIndex];this.select(r.dataset.value)}}});this.originalSelect=e,this.settings=t,this.originalSelect.style.display="none",this.options=Array.from(this.originalSelect.options).map(r=>({text:r.text,value:r.value,selected:r.selected,flagCode:r.dataset.flagCode,imgUrl:r.dataset.imgUrl})),this.value=this.originalSelect.value,this.render(),this.bindEvents(),this.originalSelect.parentNode?.insertBefore(this.container,this.originalSelect.nextSibling)}render(){this.container=document.createElement("div"),this.container.className="bkwg-custom-select";const e=this.options.find(t=>t.value===this.value);this.trigger=document.createElement("div"),this.trigger.className="bkwg-cs-trigger",this.trigger.tabIndex=0,this.trigger.innerHTML=` 78 <span class="bkwg-cs-value-wrapper"> 79 ${e?.imgUrl?`<img src="${e.imgUrl}" alt="${e.text}" class="bkwg-cs-trigger-icon" />`:""} 80 <span class="bkwg-cs-value">${e?e.text:this.settings.placeholder||""}</span> 81 </span> 82 <div class="bkwg-cs-arrow"> 83 <svg width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"> 84 <path d="m3 5 3 3 3-3"/> 85 </svg> 86 </div> 87 `,this.container.appendChild(this.trigger)}inheritThemeVars(e){const t=this.container.closest(".bkwg-root");
87if(!t)return;const r=getComputedStyle(t);for(const i of H){const s=r.getPropertyValue(i).trim();s&&e.style.setProperty(i,s)}}createDropdown(){const e=document.createElement("div");e.className="bkwg-cs-dropdown",e.style.all="initial",this.inheritThemeVars(e),e.style.background="var(--bkwg-bg-primary, #fff)",e.style.border="1px solid var(--bkwg-border, #e5e7eb)",e.style.borderRadius="6px",e.style.boxShadow="0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)",e.style.zIndex="2147483647",e.style.overflowY="auto",e.style.boxSizing="border-box",e.style.display="block";const t=window.getComputedStyle(this.trigger);return e.style.fontFamily=t.fontFamily,e.style.fontSize=t.fontSize,e.style.lineHeight=t.lineHeight,this.options.forEach(r=>{const i=document.createElement("div");i.className=`bkwg-cs-option ${r.value===this.value?"selected":""}`,i.dataset.value=r.value,i.style.all="initial",i.style.padding="6px 12px 6px 32px",i.style.cursor="pointer",i.style.color="var(--bkwg-text, #030712)",i.style.display="flex",i.style.alignItems="center",i.style.gap="8px",i.style.whiteSpace="nowrap",i.style.boxSizing="border-box",i.style.fontFamily="inherit",i.style.fontSize="inherit",i.style.lineHeight="inherit",i.style.position="relative";const s=()=>{i.style.backgroundColor="var(--bkwg-bg-secondary, #f3f4f6)"},n=()=>{i.style.backgroundColor="transparent"};if(i.addEventListener("mouseenter",s),i.addEventListener("mouseleave",n),r.value===this.value){const a=document.createElement("div");a.innerHTML=` 88 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 89 <polyline points="4 8 6.5 10.5 12 5"></polyline> 90 </svg> 91 `,a.style.all="initial",a.style.position="absolute",a.style.left="8px",a.style.top="50%",a.style.transform="translateY(-50%)",a.style.color="var(--bkwg-text-secondary, #6b7280)",a.style.flexShrink="0",a.style.display="flex",a.style.alignItems="center",a.style.zIndex="1",i.appendChild(a)}const o=r.imgUrl||(r.flagCode&&this.settings.flagBaseUrl?`${this.settings.flagBaseUrl}
91/${r.flagCode.toLowerCase()}.png`:null);if(o){const a=document.createElement("img");a.src=o,a.alt=r.text,a.className="bkwg-cs-option-flag",a.style.all="initial",a.style.cursor="pointer",a.style.width="20px",a.style.height="20px",a.style.objectFit="contain",a.style.flexShrink="0",a.style.display="block",i.appendChild(a)}const l=document.createElement("span");l.textContent=r.text,l.style.all="initial",l.style.fontFamily="inherit",l.style.fontSize="inherit",l.style.lineHeight="inherit",l.style.cursor="pointer",i.appendChild(l),i.tabIndex=0,i.addEventListener("click",a=>{a.stopPropagation(),this.select(r.value)}),e.appendChild(i)}),e}bindEvents(){this.trigger.addEventListener("click",e=>{e.stopPropagation(),this.toggle()}),this.documentClickListener=e=>{const t=e.composedPath(),r=t.includes(this.container)||this.dropdown&&t.includes(this.dropdown);this.isOpen&&!r&&this.close()},document.addEventListener("click",this.documentClickListener),this.trigger.addEventListener("keydown",this.handleTriggerKeydown.bind(this))}handleTriggerKeydown(e){(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),this.toggle()),e.key==="ArrowDown"&&!this.isOpen&&(e.preventDefault(),this.open(),this.focusOption(0))}focusOption(e){if(!this.dropdown)return;const t=this.dropdown.querySelectorAll(".bkwg-cs-option");t.forEach((r,i)=>r.classList.toggle("focused",i===e)),e>=0&&e<t.length&&(t[e].focus(),this.focusedIndex=e)}toggle(){this.isOpen?this.close():this.open()}open(){if(this.isOpen||this.dropdown)return;v.openDropdown&&v.openDropdown!==this&&v.openDropdown.close(),v.openDropdown=this,this.isOpen=!0,this.container.classList.add("open"),this.dropdown=this.createDropdown();const e=this.trigger.getBoundingClientRect(),t=window.scrollX,r=window.scrollY;this.dropdown.style.position="absolute",this.dropdown.style.left=`${e.left+t}px`,this.dropdown.style.width=`${e.width}px`;const i=36,n=i*10,o=window.innerHeight-e.bottom,l=e.top;let a,p;o>=i*2?(a=e.bottom+r,p=Math.min(o-8,n)):(p=Math.min(l-8,n),a=e.top+r-p),this.dropdown.style.top=`${a+6}px`,this.dropdown.style.maxHeight=`${p-6}px`,document.body.appendChild(this.dropdown),this.dropdown.addEventListener("keydown",this.handleDropdownKeydown)}close(){this.dropdown&&(v.openDropdown===this&&(v.openDropdown=null),this.isOpen=!1,this.container.classList.remove("open"),this.focusedIndex=-1,this.dropdown.removeEventListener("keydown",this.handleDropdownKeydown),this.dropdown.remove(),this.dropdown=null)}select(e){this.value=e,this.originalSelect.value=e,this.originalSelect.dispatchEvent(new Event("change"));const t=this.options.find(r=>r.value===e);if(t){const r=this.trigger.querySelector(".bkwg-cs-value-wrapper");r&&(r.innerHTML=` 92 ${t.imgUrl?`<img src="${t.imgUrl}" alt="${t.text}" class="bkwg-cs-trigger-icon" />`:""} 93 <span class="bkwg-cs-value">${t.text}</span> 94 `)}this.close(),this.settings.onChange&&this.settings.onChange(e)}destroy(){this.close(),this.documentClickListener&&document.removeEventListener("click",this.documentClickListener),this.container.remove(),this.originalSelect.style.display=""}setValue(e){this.options.some(r=>r.value===e)&&this.select(e)}};c(v,"openDropdown",null);let y=v;const O={option_loyalty_program:"ÐÑогÑамма лоÑлÑноÑÑи",option_bonuses:"ÐонÑÑÑ",option_cashback:"ÐÑÑбÑк",option_online_payments:"Ðнлайн плаÑежи",option_wireless_payments:"ÐеÑконÑакÑÐ½Ð°Ñ Ð¾Ð¿Ð»Ð°Ñа",option_sms_notifications:"СÐС ÑведомлениÑ",option_salary_project:"ÐаÑплаÑнÑй пÑоекÑ",option_online_banking:"ÐобилÑнÑй банкинг",option_overdraft:"ÐвеÑдÑаÑÑ"};class j{render(e,t){return d`<span class="bkwg-badge">${t}</span>`}renderBadgesFromOptions(e){const t=[];for(const[r,i]of Object.entries(e))i&&O[r]&&t.push(this.render(r,O[r]));return t}}class N{constructor(e,t){c(this,"formContainer",null);c(this,"isFormOpen",!1);this.product=e,this.config=t}mountForm(e){const t=this.config.form;t&&(this.formContainer=document.createElement("div"),this.formContainer.className="bkwg-card__form-container",e.appendChild(this.formContainer),this.formContainer.appendChild(t.render()))}closeForm(){this.isFormOpen&&this.toggleForm(this.getFormInstance())}toggleForm(e){!e||!this.formContainer||(this.isFormOpen=!this.isFormOpen,e.toggle(this.isFormOpen),this.isFormOpen?this.formContainer.classList.add("bkwg-card__form-container--visible"):this.formContainer.classList.remove("bkwg-card__form-container--visible"))}getFormInstance(){return this.config.form??null}renderTopMarker(){return d`
95 <span class="bkwg-card__top"> 96 <svg 97 class="bkwg-card__top-icon" 98 xmlns="http://www.w3.org/2000/svg" 99 width="12" 100 height="12" 101 viewBox="0 0 24 24" 102 fill="#fff" 103 stroke="currentColor" 104 stroke-width="2" 105 stroke-linecap="round" 106 stroke-linejoin="round" 107 > 108 <path 109 d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" 110 /> 111 </svg> 112 ТÐÐ 113 </span> 114 `}renderActions(e){return d` 115 <div class="bkwg-card__actions"> 116 ${e?d` 117 <button class="bkwg-button bkwg-button--primary bkwg-apply-trigger"> 118 ${this.config.texts.apply} 119 </button> 120 `:d` 121 <a 122 href="${this.config.widgetConfig.publicBaseUrl}${this.product.url}" 123 class="bkwg-button bkwg-button--primary" 124 >${this.config.texts.apply}</a 125 > 126 `} 127 </div> 128 `}attachEventListeners(e,t){if(t){const r=this.getFormInstance();e.querySelector(".bkwg-apply-trigger")?.addEventListener("click",()=>this.toggleForm(r))}}}class V extends N{constructor(t,r){super(t,r);c(this,"badge",new j)}render(){const t=this.getFormEnabled(),r=d` 129 <article class="${this.config.showTitle?"bkwg-card bkwg-card--highlighted":"bkwg-card"}"> 130 ${this.config.showTitle?this.renderTopMarker():""} 131 <div class="bkwg-card__inner"> 132 <div class="bkwg-card__content"> 133 ${this.config.showTitle?d`<div class="bkwg-card__title">ÐÑÑÑее пÑедложение</div>`:""} 134 ${this.renderBankInfo()} ${this.renderDetails()} 135 </div> 136 ${this.renderActions(t)} 137 </div> 138 </article> 139 `;return this.mountForm(r),this.attachEventListeners(r,t),r}renderBankInfo(){return d` 140 <div class="bkwg-card__main-content"> 141 <a 142 href="${this.config.widgetConfig.publicBaseUrl}${this.product.organization.url}" 143 class="bkwg-card__logo-link" 144 > 145 <img 146 src="${this.product.organization.logo}" 147 alt="${this.product.organization.title}" 148 class="bkwg-card__logo" 149 /> 150 </a> 151 <div class="bkwg-card__main-info"> 152 <a 153 href="${this.config.widgetConfig.publicBaseUrl}${this.product.organization.url}" 154 class="bkwg-card__bank-name bkwg-card__card-bank-name" 155 >${this.product.organization.title}</a 156 > 157 <a 158 href="${this.config.widgetConfig.publicBaseUrl}${this.product.url}" 159 class="bkwg-card__title" 160 >${this.product.title}</a 161 > 162 </div> 163 </div> 164 `}renderDetails(){const t=this.product.currencies?.map(i=>i.code).join(", ")||"â",r=document.createElement("div");return this.product.types?.length&&(r.className="bkwg-card__badges",this.product.types.forEach(i=>r.appendChild(this.badge.render("",i.title)))),d` 165 <div> 166 <div class="bkwg-card__details"> 167 <div class="bkwg-card__detail-col"> 168 <div class="bkwg-card__detail-label">СÑавка в год</div> 169 <div class="bkwg-card__detail-value">${this.product.min_rate}</div> 170 </div> 171 <div class="bkwg-card__detail-col"> 172 <div class="bkwg-card__detail-label">СÑок</div> 173 <div class="bkwg-card__detail-value">${this.product.max_period||"â"}</div> 174 </div> 175 <div class="bkwg-card__detail-col"> 176 <div class="bkwg-card__detail-label">ÐалÑÑа</div> 177 <div class="bkwg-card__detail-value">${t}</div> 178 </div> 179 </div> 180 ${this.product.types?.length?r:""} 181 </div> 182 `}getFormEnabled(){return!!this.config.options?.enable_credit_form}}class D extends N{constructor(t,r){super(t,r);c(this,"badge",new j)}render(){const t=this.getFormEnabled(),r=d` 183 <article class="${this.config.showTitle?"bkwg-card bkwg-card--highlighted":"bkwg-card"}"> 184 ${this.config.showTitle?this.renderTopMarker():""} 185 <div class="bkwg-card__inner"> 186 ${this.config.showTitle?d`<div class="bkwg-card__title">ÐÑÑÑее пÑедложение</div>`:""} 187 <div class="bkwg-card__grid"> 188 <div class="bkwg-card__main">${this.renderBankInfo()}</div> 189 <div class="bkwg-card__details-wrapper">${this.renderDetails()}</div> 190 </div> 191 ${this.renderBadges()||""} ${this.renderActions(t)} 192 </div> 193 </article> 194 `;return this.mountForm(r),this.attachEventListeners(r,t),r}renderBadges(){if(!this.config.showTitle||!this.product.options)return null;const t=this.badge.renderBadgesFromOptions(this.product.options);if(t.length===0)return null;const r=document.createElement("footer");return r.className="bkwg-card__footer",t.forEach(i=>
194r.appendChild(i)),r}renderBankInfo(){const t=d` 195 <a 196 href="${this.config.widgetConfig.publicBaseUrl}${this.product.url}" 197 class="bkwg-card__card-logo-link" 198 > 199 <img src="${this.product.logo}" alt="${this.product.title}" class="bkwg-card__card-logo" /> 200 </a> 201 `,r=d` 202 <a 203 href="${this.config.widgetConfig.publicBaseUrl}${this.product.url}" 204 class="bkwg-card__title-link" 205 > 206 ${this.product.title} 207 </a> 208 `,i=d` 209 <a 210 href="${this.config.widgetConfig.publicBaseUrl}${this.product.organization.url}" 211 class="bkwg-card__bank-name" 212 > 213 ${this.product.organization.title} 214 </a> 215 `,s=[];this.product.currency_type==="multi"?s.push("ÐÑлÑÑивалÑÑнаÑ"):this.product.currency_type==="single"&&s.push("ÐоновалÑÑнаÑ");const n=typeof this.product.card_system_name=="string"?this.product.card_system_name:this.product.card_system_name?.title;return n&&s.push(n),d` 216 <div class="bkwg-card__card-main-content"> 217 ${t} 218 <div class="bkwg-card__card-main-info"> 219 ${r} 220 ${s.length?d`<p class="bkwg-card__subtitle">${s.join(" â ")}</p>`:""} 221 ${i} 222 </div> 223 </div> 224 `}renderDetails(){const t=this.product.service_fee===0?"ÐеÑплаÑно":`${this.product.service_fee}.00 â`,r=[];this.product.type?.debit&&r.push("ÐебеÑоваÑ"),this.product.type?.credit&&r.push("ÐÑедиÑнаÑ");const i=this.product.currencies?this.product.currencies.map(s=>s.code).join(", "):"";return d` 225 <div class="bkwg-card__card-details"> 226 <div class="bkwg-card__detail-col"> 227 <div class="bkwg-card__detail-label">ÐÐ¶ÐµÐ³Ð¾Ð´Ð½Ð°Ñ Ð¿Ð»Ð°Ñа</div> 228 <div class="bkwg-card__detail-value">${t}</div> 229 </div> 230 ${r.length?d` 231 <div class="bkwg-card__detail-col"> 232 <div class="bkwg-card__detail-label">Тип</div> 233 <div class="bkwg-card__detail-value">${r.join(", ")}</div> 234 </div> 235 `:""} 236 ${i?d` 237 <div class="bkwg-card__detail-col"> 238 <div class="bkwg-card__detail-label">ÐалÑÑа</div> 239 <div class="bkwg-card__detail-value">${i}</div> 240 </div> 241 `:""} 242 </div> 243 `}getFormEnabled(){return!!this.config.options?.enable_card_form}}const I=10,L="â¦";function X(g,e){if(e<=7)return Array.from({length:e},(b,h)=>h+1);const i=Math.max(g-1,1),s=Math.min(g+1,e),n=i>2,o=s<e-1,l=[1];n&&l.push(L);const a=n?i:2,p=o?s:e-1;for(let b=a;b<=p;b++)l.push(b);return o&&l.push(L),l.push(e),l}
243class A{constructor(e,t,r,i){c(this,"api");c(this,"state");c(this,"resultsContainer",null);c(this,"container",null);c(this,"unsubscribe",null);c(this,"initialData",null);c(this,"productType");c(this,"formFactory",null);c(this,"currentPage",1);c(this,"isMoreVisible",!1);c(this,"selectedOrgId",null);c(this,"selectedTypeId",null);c(this,"selectedPurposeId",null);c(this,"selectedCardType",null);c(this,"footer",null);c(this,"orgSelect",null);c(this,"typeSelect",null);c(this,"purposeSelect",null);c(this,"cardTypeSelect",null);this.config=e,this.api=new F(e),this.state=new G,this.productType=t,this.initialData=r||null,this.formFactory=i??null}mount(){return this.render()}getSelectedPurposeId(){return this.selectedPurposeId}update(e){this.config=e,this.api=new F(e),this.fetchData()}destroy(){this.unsubscribe?.(),this.orgSelect?.destroy(),this.orgSelect=null,this.typeSelect?.destroy(),this.typeSelect=null,this.purposeSelect?.destroy(),this.purposeSelect=null,this.cardTypeSelect?.destroy(),this.cardTypeSelect=null}render(){const e=d` 244 <div class="bkwg-products"> 245 <div class="bkwg-products__content"> 246 <div class="bkwg-products__results" id="results"></div> 247 </div> 248 </div> 249 `;return this.resultsContainer=e.querySelector("#results"),this.container=e,this.unsubscribe=this.state.subscribe(t=>this.renderResults(t)),this.initialData?(this.state.setProducts(this.initialData.data,this.initialData.options,this.initialData.success),this.initialData=null):this.fetchData(),e}async fetchData(){this.isMoreVisible=!1,this.currentPage=1,this.selectedOrgId=null,this.selectedTypeId=null,this.selectedPurposeId=null,this.selectedCardType=null;try{this.state.setLoading(!0);const e=await this.api.fetchProducts();this.state.setProducts(e.data??null,e.options??null,e.success)}catch(e){this.state.setError(e instanceof Error?e:new Error("Unknown error"))}finally{this.state.setLoading(!1)}}removeExistingFooter(){this.container?.querySelector(".bkwg-footer")?.remove()}renderEmptyState(){const t=new K().render(),r=t.querySelector(".bkwg-empty-state__text");return r&&(r.textContent=this.config.texts.empty),t}renderProductList(e,t){if(this.resultsContainer){if(e.length===0){this.resultsContainer.appendChild(this.renderEmptyState());return}if(this.isMoreVisible)this.renderMore(e,t);else{const r=this.createEntity(e[0],{showTitle:!!e[0].isTop,texts:{apply:this.config.texts.apply},widgetConfig:this.config,options:t}).render();r.classList.add("bkwg-first-card"),this.resultsContainer.appendChild(r)}}}renderResults(e){if(!this.resultsContainer||!this.container)return;for(this.orgSelect?.destroy(),this.orgSelect=null,this.typeSelect?.destroy(),this.typeSelect=null,this.purposeSelect?.destroy(),this.purposeSelect=null,this.cardTypeSelect?.destroy(),this.cardTypeSelect=null;this.resultsContainer.lastChild;)this.resultsContainer.removeChild(this.resultsContainer.lastChild);if(e.status==="loading"){this.resultsContainer.appendChild(new B().render()),this.removeExistingFooter();return}if(e.status==="error"||!e.products){const w=e.apiSuccess===!1,k=new E(w).render();if(e.apiSuccess!==!1){const m=k.querySelector(".bkwg-error-state__text");m&&(m.textContent=this.config.texts.error)}this.resultsContainer.appendChild(k),this.removeExistingFooter();return}if(e.products.length===0){this.resultsContainer.appendChild(this.renderEmptyState()),this.removeExistingFooter();return}const t=e.products.filter(w=>this.productType==="credit"?this.isCreditProduct(w):this.isCardProduct(w));if(t.length===0){this.resultsContainer.appendChild(this.renderEmptyState());return}const r=this.getOrganizations(t),i=r.length>1,s=this.getTypes(t),n=s.length>1,o=this.getPurposes(t),l=o.length>1,a=this.getCardTypes(t),p=a.length>1;(i||n||l||p)&&this.resultsContainer.appendChild(this.renderFiltersSection(r,s,o,a,t,e.options,{hasOrgFilter:i,hasTypeFilter:n,hasPurposeFilter:l,hasCardTypeFilter:p}));const b=this.applyFilters(t,{hasOrgFilter:i,hasTypeFilter:n,hasPurposeFilter:l,hasCardTypeFilter:p});this.renderProductList(b,e.options),this.removeExistingFooter();const h=b.length>1;this.footer=new Y(this.config,this.productType,{hasMore:h,isMoreVisible:this.isMoreVisible,onToggle:h?()=>{if(this.isMoreVisible=!this.isMoreVisible,this.currentPage=1,this.isMoreVisible)this.renderMore(b,e.options);else{this.renderResults(this.state.get());return}this.footer?.updateState(this.isMoreVisible)}:void 0}),this.container.appendChild(this.footer.render())}applyFilters(e,t){let r=t.hasOrgFilter&&this.selectedOrgId!==null?e.filter(i=>i.organization_id===this.selectedOrgId):e;return t.hasTypeFilter&&this.selectedTypeId!==null&&(r=r.filter(i=>this.isCreditProduct(i)&&i.types?.some(s=>s.id===this.selectedTypeId))),t.hasPurposeFilter&&this.selectedPurposeId!==null&&(r=r.filter(i=>this.isCreditProduct(i)&&i.purposes?.some(s=>s.id===this.selectedPurposeId))),t.hasCardTypeFilter&&this.selectedCardType!==null&&(r=r.filter(i=>this.isCardProduct(i)&&i.type[this.selectedCardType])),r}isCreditProduct(e){return"min_rate"in e&&"currencies"in e}isCardProduct(e){return"logo"in e&&"card_system_name"in e}createEntity(e,t){let r=null;if(this.formFactory&&t.options&&(this.productType==="card"?!!t.options.enable_card_form:!!t.options.enable_credit_form)){const n={fn:()=>{}};r=this.formFactory(e,()=>n.fn());const o={...t,form:r};let l;if(this.productType==="card"&&this.isCardProduct(e))l=new D(e,o);else if(this.productType==="credit"&&this.isCreditProduct(e))l=new V(e,o);else throw new Error(`Invalid product type for ${this.productType} widget`);return n.fn=()=>l.closeForm(),l}const i={...t,form:r};if(this.productType==="card"&&this.isCardProduct(e))return new D(e,i);if(this.productType==="credit"&&this.isCreditProduct(e))return new V(e,i);throw new Error(`Invalid product type for ${this.productType} widget`)}renderFiltersSection(e,t,r,i,s,n,o){const l=d` 250 <div class="bkwg-filters-section"> 251 <div class="bkwg-filters-section__header"> 252 <svg 253 class="bkwg-filters-section__icon" 254 width="13" 255 height="13"
256 viewBox="0 0 24 24" 257 fill="none" 258 stroke="currentColor" 259 stroke-width="2.5" 260 stroke-linecap="round" 261 stroke-linejoin="round" 262 aria-hidden="true" 263 > 264 <line x1="4" y1="6" x2="20" y2="6"></line> 265 <line x1="8" y1="12" x2="16" y2="12"></line> 266 <line x1="11" y1="18" x2="13" y2="18"></line> 267 </svg> 268 <span class="bkwg-filters-section__title">ФилÑÑÑÑ</span> 269 <a class="bkwg-filters-reset" role="button" aria-label="СбÑоÑиÑÑ ÑилÑÑÑÑ">СбÑоÑиÑÑ</a> 270 </div> 271 <div class="bkwg-filters-row"></div> 272 </div> 273 `,a=l.querySelector(".bkwg-filters-row");return o.hasOrgFilter&&a.appendChild(this.renderOrgFilter(e,s,n)),o.hasTypeFilter&&a.appendChild(this.renderTypeFilter(t,s,n)),o.hasPurposeFilter&&a.appendChild(this.renderPurposeFilter(r,s,n)),o.hasCardTypeFilter&&a.appendChild(this.renderCardTypeFilter(i,s,n)),l.querySelector(".bkwg-filters-reset")?.addEventListener("click",()=>{this.selectedOrgId=null,this.selectedTypeId=null,this.selectedPurposeId=null,this.selectedCardType=null,this.currentPage=1,this.renderResults(this.state.get())}),l}toggleResetButton(){const e=this.resultsContainer?.querySelector(".bkwg-filters-section");if(!e)return;const t=this.selectedOrgId!==null||this.selectedTypeId!==null||this.selectedPurposeId!==null||this.selectedCardType!==null;e.classList.toggle("bkwg-filters-section--active",t)}getOrganizations(e){const t=new Set,r=[];for(const i of e)t.has(i.organization_id)||(t.add(i.organization_id),r.push({id:i.organization_id,title:i.organization.title,logo:i.organization.logo}));return r}renderOrgFilter(e,t,r){const i=d`<div class="bkwg-filter"> 274 <div class="bkwg-filter__label">ÐÑганизаÑиÑ</div> 275 </div>`,s=this.buildNativeSelect("ÐÑе оÑганизаÑии");return e.forEach(n=>{const o=document.createElement("option");o.value=String(n.id),o.textContent=n.title,o.dataset.imgUrl=n.logo,this.selectedOrgId===n.id&&(o.selected=!0),s.appendChild(o)}),i.appendChild(s),this.orgSelect=new y(s,{placeholder:"ÐÑе оÑганизаÑии",onChange:n=>{this.selectedOrgId=n?Number(n):null,this.currentPage=1,this.toggleResetButton(),this.rerenderProducts(t,r)}}),i}getCreditProductAttributes(e,t){const r=new Set,i=[];for(const s of e)if(this.isCreditProduct(s)&&s[t])for(const n of s[t])r.has(n.id)||(r.add(n.id),i.push({id:n.id,title:n.title}));return i}getTypes(e){return this.getCreditProductAttributes(e,"types")}renderCreditAttrFilter(e,t,r,i,s,n,o,l){const a=d`<div class="bkwg-filter"> 276 <div class="bkwg-filter__label">${t}</div> 277 </div>`,p=this.buildNativeSelect(r);return e.forEach(b=>{const h=document.createElement("option");h.value=String(b.id),h.textContent=b.title,i()===b.id&&(h.selected=!0),p.appendChild(h)}),a.appendChild(p),n(new y(p,{placeholder:r,onChange:b=>{s(b?Number(b):null),this.currentPage=1,this.toggleResetButton(),this.rerenderProducts(o,l)}})),a}renderTypeFilter(e,t,r){return this.renderCreditAttrFilter(e,"Тип кÑедиÑа","ÐÑе ÑипÑ",()=>this.selectedTypeId,i=>this.selectedTypeId=i,i=>
277this.typeSelect=i,t,r)}getPurposes(e){return this.getCreditProductAttributes(e,"purposes")}renderPurposeFilter(e,t,r){return this.renderCreditAttrFilter(e,"Ð¦ÐµÐ»Ñ ÐºÑедиÑа","ÐÑе Ñели",()=>this.selectedPurposeId,i=>this.selectedPurposeId=i,i=>this.purposeSelect=i,t,r)}getCardTypes(e){const t=new Set;for(const i of e)this.isCardProduct(i)&&(i.type.debit&&t.add("debit"),i.type.credit&&t.add("credit"));const r=[];return t.has("debit")&&r.push({id:"debit",title:"ÐебеÑоваÑ"}),t.has("credit")&&r.push({id:"credit",title:"ÐÑедиÑнаÑ"}),r}renderCardTypeFilter(e,t,r){const i=d`<div class="bkwg-filter"> 278 <div class="bkwg-filter__label">Тип каÑÑÑ</div> 279 </div>`,s=this.buildNativeSelect("ÐÑе ÑипÑ");return e.forEach(n=>{const o=document.createElement("option");o.value=n.id,o.textContent=n.title,this.selectedCardType===n.id&&(o.selected=!0),s.appendChild(o)}),i.appendChild(s),this.cardTypeSelect=new y(s,{placeholder:"ÐÑе ÑипÑ",onChange:n=>{this.selectedCardType=n||null,this.currentPage=1,this.toggleResetButton(),this.rerenderProducts(t,r)}}),i}buildNativeSelect(e){const t=document.createElement("select");t.style.display="none";const r=document.createElement("option");return r.value="",r.textContent=e,t.appendChild(r),t}rerenderProducts(e,t){if(!this.resultsContainer)return;const r=this.applyFilters(e,{hasOrgFilter:!0,hasTypeFilter:!0,hasPurposeFilter:!0,hasCardTypeFilter:!0});Array.from(this.resultsContainer.children).forEach(i=>{i.classList.contains("bkwg-filters-section")||i.remove()}),this.renderProductList(r,t)}renderMore(e,t){if(!this.resultsContainer||e.length===0)return;this.resultsContainer.querySelector(".bkwg-products__more")?.remove(),this.resultsContainer.querySelector(".bkwg-first-card")?.remove();const r=this.currentPage===1,i=e.slice(1),s=Math.ceil((i.length+1)/I),n=r?0:(this.currentPage-1)*I-1,o=i.slice(n,n+(r?I-1:I)),l=d`<div class="bkwg-products__more bkwg-products__more--visible"></div>`;if(r){const a=this.createEntity(e[0],{showTitle:!!e[0].isTop,texts:{apply:this.config.texts.apply},widgetConfig:this.config,options:t}).render();a.classList.add("bkwg-first-card"),l.appendChild(a)}if(o.forEach(a=>{l.appendChild(this.createEntity(a,{showTitle:!1,texts:{apply:this.config.texts.apply},widgetConfig:this.config,options:t}).render())}),s>1){const a=o.length+(r?1:0),p=r?1:n+2;l.appendChild(this.renderPagination(s,e,t,p,p+a-1))}this.resultsContainer.appendChild(l)}renderPagination(e,t,r,i,s){const n=d`<div class="bkwg-pagination-bar"></div>`,o=d`<nav class="bkwg-pagination" aria-label="СÑÑаниÑÑ"></nav>`,l="bkwg-pagination__btn--sibling",a=u=>{this.currentPage=Math.min(Math.max(u,1),e),this.renderMore(t,r),this.resultsContainer?.scrollIntoView({behavior:"smooth",block:"start"})},p=(u,k,m,z=!1,S="")=>{const M=d`<button 280 class="bkwg-pagination__btn ${z?"bkwg-pagination__btn--active":""} ${S}" 281 aria-label="СÑÑаниÑа ${u}" 282 > 283 ${u} 284 </button>`;return z&&M.setAttribute("aria-current","page"),M.addEventListener("click",()=>a(k)),M},b=(u,k,m)=>{const S=d`<button 285 class="bkwg-pagination__btn bkwg-pagination__btn--arrow" 286 aria-label="${u==="prev"?"ÐÑедÑдÑÑÐ°Ñ ÑÑÑаниÑа":"СледÑÑÑÐ°Ñ ÑÑÑаниÑа"}" 287 > 288 ${_(`<svg class="bkwg-pagination__icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="${u==="prev"?"M15 18l-6-6 6-6":"M9 18l6-6-6-6"}"/></svg>`)} 289 </button>`;return m?S.setAttribute("disabled",""):S.addEventListener("click",()=>a(k)),S},h=(u,k)=>{const m=d`<button 290 class="bkwg-pagination__btn bkwg-pagination__ellipsis bkwg-pagination__btn--sibling" 291 aria-label="${k==="prev"?"Ðазад на 5 ÑÑÑаниÑ":"ÐпеÑÑд на 5 ÑÑÑаниÑ"}" 292 > 293 ⦠294 </button>`;return m.addEventListener("click",()=>a(u)),m};o.appendChild(b("prev",this.currentPage-1,this.currentPage===1)),X(this.currentPage,e).forEach(u=>{if(u===L){const m=o.querySelectorAll(".bkwg-pagination__btn--active").length===0;o.appendChild(m?h(Math.max(this.currentPage-5,1),"prev"):h(Math.min(this.currentPage+5,e),"next"));return}const k=u===1||u===e||u===this.currentPage;o.appendChild(p(String(u),u,!1,u===this.currentPage,k?"":l))}),o.appendChild(b("next",this.currentPage+1,this.currentPage===e));const w=d`<p class="bkwg-pagination__counter"> 295 Ðоказано ${`${i}â${s}`} из ${String(t.length)} 296 </p>`;return n.appendChild(w),n.appendChild(o),n}}const P=[{id:1,slug:"bishkek",url:null,title:"г. ÐиÑкек",location_id:2},{id:9,slug:"osh",url:null,title:"г. ÐÑ",location_id:7},{id:2,slug:"chuiskaya-oblast",url:null,title:"ЧÑйÑÐºÐ°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ",location_id:null},{id:3,slug:"issykkulskaya-oblast",url:null,title:"ÐÑÑÑк-ÐÑлÑÑÐºÐ°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ",location_id:null},{id:4,slug:"narynskaya-oblast",url:null,title:"ÐаÑÑнÑÐºÐ°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ",location_id:null},{id:5,slug:"talasskaya-oblast",url:null,title:"ТалаÑÑÐºÐ°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ",location_id:null},{id:6,slug:"jalalabadskaya-oblast",url:null,title:"Ðжалал-ÐбадÑÐºÐ°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ",location_id:null},{id:7,slug:"oshskaya-oblast",url:null,title:"ÐÑÑÐºÐ°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ",location_id:null},{id:8,slug:"batkenskaya-oblast",url:null,title:"ÐаÑкенÑÐºÐ°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ",location_id:null},{id:10,slug:"talas",url:null,title:"г. ТалаÑ",location_id:5},{id:11,slug:"naryn",url:null,title:"г. ÐаÑÑн",location_id:4},{id:12,slug:"cholpon-ata",url:null,title:"г. Чолпон-ÐÑа",location_id:3},{id:13,slug:"balykchy",url:null,title:"г. ÐалÑкÑи",location_id:3},{id:14,slug:"karakol",url:null,title:"г. ÐаÑакол",location_id:3},{id:15,slug:"jalal-abad",url:null,title:"г. ÐанаÑ",location_id:6},{id:16,slug:"batken",url:null,title:"г. ÐаÑкен",location_id:8},{id:17,slug:"tokmok",url:null,title:"г. Токмок",location_id:2},{id:18,slug:"kara-balta",url:null,title:"г. ÐаÑа-ÐалÑа",location_id:2},{id:19,slug:"kant",url:null,title:"г. ÐанÑ",location_id:2},{id:20,slug:"uzgen",url:null,title:"г. Узген",location_id:7},{id:21,slug:"kara-suu",url:null,title:"г. ÐаÑа-СÑÑ",location_id:7},{id:22,slug:"kerben",url:null,title:"г. ÐеÑбен",location_id:6},{id:23,slug:"mailuu-suu",url:null,title:"г. ÐайлÑÑ-СÑÑ",location_id:6},{id:24,slug:"tash-kumyr",url:null,title:"г. ТаÑ-ÐÑмÑÑ",location_id:6},{id:25,slug:"kyzyl-kia",url:null,title:"г. ÐÑзÑл-ÐиÑ",location_id:8},{id:26,slug:"sulukta",url:null,title:"г. СÑлÑкÑа",location_id:8},{id:27,slug:"kochkor-ata",url:null,title:"г. ÐоÑкоÑ-ÐÑа",location_id:6},{id:28,slug:"nookat",url:null,title:"г. ÐоокаÑ",location_id:7},{id:29,slug:"kadamjai",url:null,title:"г. Ðадамжай",location_id:8},{id:30,slug:"kemin",url:null,title:"г. Ðемин",location_id:2},{id:31,slug:"kara-kul",url:null,title:"г. ÐаÑа-ÐÑлÑ",location_id:6},{id:32,slug:"razzakov",url:null,title:"г. Раззаков",location_id:8}];class U{constructor(e,t){c(this,"element");c(this,"isSubmitted",!1);c(this,"requestId","");c(this,"errors",{});c(this,"selectInstances",[]);c(this,"values",{last_name:"",first_name:"",phone:"",email:"",location_id:P[0]?.id||"",agreement:!1});this.config=e,this.onClose=t,this.element=d`<div class="bkwg-form"></div>`}render(){return this.updateContent(),this.element}toggle(e){this.element.classList.toggle("bkwg-form--open",e)}
296updateContent(){for(this.selectInstances.forEach(i=>i.destroy()),this.selectInstances=[];this.element.lastChild;)this.element.removeChild(this.element.lastChild);if(this.isSubmitted){this.element.appendChild(this.renderSuccess());return}const e=d` 297 <div> 298 <div class="bkwg-form__header"> 299 <div class="bkwg-form__intro">${this.introText}</div> 300 <button class="bkwg-form__close" type="button" aria-label="ÐакÑÑÑÑ"> 301 <svg 302 width="20" 303 height="20" 304 viewBox="0 0 24 24" 305 fill="none" 306 stroke="currentColor" 307 stroke-width="2" 308 stroke-linecap="round" 309 stroke-linejoin="round" 310 > 311 <line x1="18" y1="6" x2="6" y2="18"></line> 312 <line x1="6" y1="6" x2="18" y2="18"></line> 313 </svg> 314 </button> 315 </div> 316 317 <form class="bkwg-form__body"> 318 <div class="bkwg-form__grid" data-slot="grid"></div> 319 <div data-slot="extra"></div> 320 321 <label class="bkwg-agreement"> 322 <input 323 type="checkbox" 324 data-name="agreement" 325 ${this.values.agreement?"checked":""} 326 /> 327 <span> 328 Я ÑоглаÑен Ñ 329 <a href="${this.config.publicBaseUrl}/privacy-policy" target="_blank" 330 >полиÑикой конÑиденÑиалÑноÑÑи</a 331 > 332 </span> 333 </label> 334 ${this.errors.agreement?d`<div class="bkwg-form-error">${this.errors.agreement}</div>`:""} 335 336 <div class="bkwg-form__footer"> 337 <button class="bkwg-button bkwg-button--primary" type="submit">ÐÑпÑавиÑÑ Ð·Ð°ÑвкÑ</button> 338 </div> 339 </form> 340 </div> 341 `,t=e.querySelector('[data-slot="grid"]');this.renderGridFields().forEach(i=>t.appendChild(i));const r=e.querySelector('[data-slot="extra"]');this.renderExtraFields().forEach(i=>r.appendChild(i)),e.querySelector(".bkwg-form__close")?.addEventListener("click",()=>this.onClose()),e.querySelector("form")?.addEventListener("submit",i=>{i.preventDefault(),this.handleSubmit()}),e.querySelectorAll("input, select, textarea").forEach(i=>{if(i.getAttribute("data-name")==="agreement"){const s=()=>{delete this.errors.agreement;const o=i.closest(".bkwg-agreement")?.nextElementSibling;o?.classList.contains("bkwg-form-error")&&o.remove()};i.addEventListener("change",s),i.addEventListener("click",s)}i.addEventListener("change",s=>{const n=s.target,o=n.dataset.name;o&&(this.values[o]=n.type==="checkbox"?n.checked:n.value)}),i.addEventListener("input",s=>{const n=s.target,o=n.dataset.name;if(!o||!this.errors[o])return;this.values[o]=n.value,delete this.errors[o];const l=i.closest(".bkwg-phone-input-wrapper, .bkwg-amount-group");l?l.classList.remove("bkwg-form-input--error"):i.classList.remove("bkwg-form-input--error"),i.closest(".bkwg-form-item")?.querySelector(".bkwg-form-error")?.remove()})}),this.element.appendChild(e),this.initSelects()}initSelects(){this.element.querySelectorAll("select").forEach(e=>{const t=e.dataset.currencySelect==="true",r=new y(e,{onChange:i=>{const s=e.dataset.name;s&&(this.values[s]=i)},flagBaseUrl:t?`${this.config.publicBaseUrl}/images/flags/country/2x`:void 0});this.selectInstances.push(r)})}renderInput(e,t,r,i){const s=this.errors[e];return d` 342 <div class="bkwg-form-item"> 343 <label class="bkwg-form-label">${t}</label> 344 <input 345 type="${r}" 346 class="bkwg-form-input ${s?"bkwg-form-input--error":""}" 347 placeholder="${i}" 348 data-name="${e}" 349 value="${String(this.values[e]||"")}" 350 /> 351 ${s?d`<div class="bkwg-form-error">${s}</div>`:""} 352 </div> 353 `}renderPhoneInput(){const e=this.errors.phone,t=`${this.config.publicBaseUrl}/images/flags/country/2x/kgs.png`;return d` 354 <div class="bkwg-form-item"> 355 <label class="bkwg-form-label">ТелеÑон*</label> 356 <div class="bkwg-phone-input-wrapper ${e?"bkwg-form-input--error":""}"> 357 <img src="${t}" alt="KG" class="bkwg-phone-flag" width="20" height="15" />
358 <span class="bkwg-phone-prefix">+996</span> 359 <input 360 type="text" 361 class="bkwg-phone-input" 362 placeholder="777 123 456" 363 data-name="phone" 364 value="${String(this.values.phone||"")}" 365 maxlength="9" 366 /> 367 </div> 368 ${e?d`<div class="bkwg-form-error">${e}</div>`:""} 369 </div> 370 `}renderSelect(e,t,r){const i=this.errors[e],s=r.map(n=>`<option value="${n.id}" ${this.values[e]==n.id?"selected":""}>${n.title}</option>`).join("");return d` 371 <div class="bkwg-form-item"> 372 <label class="bkwg-form-label">${t}</label> 373 <select 374 class="bkwg-form-select ${i?"bkwg-form-input--error":""}" 375 data-name="${e}" 376 > 377 ${_(s)} 378 </select> 379 ${i?d`<div class="bkwg-form-error">${i}</div>`:""} 380 </div> 381 `}renderSuccess(){return d` 382 <div class="bkwg-alert bkwg-alert--success"> 383 <strong>ÐаÑвка ÑÑпеÑно оÑпÑавлена!</strong><br /> 384 ÐÐ°Ñ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½ÑалÑно оÑпÑавилÑÑ Ð¾Ð¿ÐµÑаÑоÑÑ Ð±Ð°Ð½ÐºÐ°. СпеÑиалиÑÑ ÑвÑжеÑÑÑ Ñ Ð²Ð°Ð¼Ð¸ в кÑаÑÑайÑие 385 ÑÑоки.<br /> 386 ÐÐ¾Ð¼ÐµÑ Ð·Ð°Ñвки: #${this.requestId} 387 </div> 388 `}renderNetworkError(e){this.element.querySelector(".bkwg-form__network-error")?.remove();const r=d`<div class="bkwg-alert bkwg-alert--error bkwg-form__network-error"> 389 ${e||"ÐÑоизоÑла оÑибка пÑи оÑпÑавке ÑоÑмÑ. ÐопÑобÑйÑе позже."} 390 </div>`,i=this.element.querySelector(".bkwg-form__footer");i?.parentElement?.insertBefore(r,i)}validate(){this.errors={},this.values.last_name||(this.errors.last_name="Ðоле Ð¤Ð°Ð¼Ð¸Ð»Ð¸Ñ Ð¾Ð±ÑзаÑелÑно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ."),this.values.first_name||(this.errors.first_name="Ðоле ÐÐ¼Ñ Ð¾Ð±ÑзаÑелÑно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ.");const e=String(this.values.phone||"");e?/^\d{9}$/.test(e)?/^0/.test(e)&&(this.errors.phone="ÐведиÑе коÑÑекÑнÑй Ð½Ð¾Ð¼ÐµÑ ÑелеÑона (код опеÑаÑоÑа не Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°ÑинаÑÑÑÑ Ñ 0)."):this.errors.phone="ÐведиÑе 9 ÑиÑÑ Ð½Ð¾Ð¼ÐµÑа":this.errors.phone="Ðоле ТелеÑон обÑзаÑелÑно Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ.",this.values.agreement||(this.errors.agreement="ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð´Ð°ÑÑ ÑоглаÑие на обÑабоÑÐºÑ Ð´Ð°Ð½Ð½ÑÑ ");const t=String(this.values.email||"");return t&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)&&(this.errors.email="ÐекоÑÑекÑнÑй email"),this.validateExtra(),this.updateContent(),Object.keys(this.errors).length===0}getFingerprint(){try{let e=localStorage.getItem("bkwg_fingerprint");return e||(e=Math.random().toString(36).substring(2)+Date.now().toString(36),localStorage.setItem("bkwg_fingerprint",e)),e}catch{return Math.random().toString(36).substring(2)+Date.now().toString(36)}}async handleSubmit(){if(this.validate())try{const e=`${this.config.widgetBaseUrl.replace(/\/+$/,"")}/${this.config.widgetId}`,t=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(this.buildSubmitData())});if(!t.ok){const i=await t.json();if(i.errors){Object.keys(i.errors).forEach(s=>{this.errors[s]=i.errors[s][0]}),this.updateContent();return}throw new Error(i.message||"Server error")}const r=await t.json();this.isSubmitted=!0,this.requestId=String(r.data?.id||""),this.updateContent()}catch(e){console.error("Submit error:",e);const t=e instanceof Error?e.message:void 0;this.renderNetworkError(t==="Server error"?void 0:t)}}renderExtraFields(){return[]}validateExtra(){}}class Q extends U{constructor(e,t,r){super(t,r),this.product=e}get introText(){return"ÐаполниÑе заÑÐ²ÐºÑ Ð¾Ð½Ð»Ð°Ð¹Ð½, ÑÑÐ¾Ð±Ñ Ð²Ð°Ñ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½ÑалÑно оÑпÑавилÑÑ Ð¾Ð¿ÐµÑаÑоÑÑ Ð±Ð°Ð½ÐºÐ°. РкÑаÑÑайÑие ÑÑоки ÑпеÑиалиÑÑ ÑвÑжеÑÑÑ Ñ Ð²Ð°Ð¼Ð¸."}renderGridFields(){return[this.renderInput("last_name","ФамилиÑ*","text","ÐведиÑе ÑамилиÑ"),this.renderInput("first_name","ÐмÑ*","text","ÐведиÑе имÑ"),this.renderPhoneInput(),this.renderInput("email","Email","email","[email protected]"),this.renderSelect("location_id","ÐоÑод*",P)]}buildSubmitData(){return{leadable_type:"card",leadable_id:this.product.id,last_name:String(this.values.last_name),first_name:String(this.values.first_name),phone:`+996${String(this.values.phone)}`,email:String(this.values.email||""),location_id:Number(this.values.location_id)}}}function Z(g,e,t){const r=(s,n)=>new Q(s,g,n),i=new A(g,"card",t,r);return e.appendChild(i.mount()),i}const J=Object.freeze(Object.defineProperty({__proto__:null,mountCardWidget:Z},Symbol.toStringTag,{value:"Module"})),ee={currencies:[{id:1,url:null,title:"ÐÑÑгÑзÑкий Ñом",description:"<div>Сом â наÑионалÑÐ½Ð°Ñ Ð²Ð°Ð»ÑÑа ÐÑÑгÑзÑÑана. Ðдин Ñом Ñавен ÑÑа ÑÑйÑнам.</div>
390",is_freely_convertible:1,code:"KGS",symbol:"â",quantity:1,formatting_dec_point:".",formatting_thousands_sep:" ",formatting_decimals:2,formatting_decimals_nb:2,formatting_space:"after"},{id:2,url:null,title:"ÐÐ¾Ð»Ð»Ð°Ñ Ð¡Ð¨Ð",description:"<div><strong>ÐÐ¾Ð»Ð»Ð°Ñ Ð¡Ð¨Ð</strong> (United States dollar) â Ð´ÐµÐ½ÐµÐ¶Ð½Ð°Ñ ÐµÐ´Ð¸Ð½Ð¸Ñа СШÐ, одна из оÑновнÑÑ
обÑепÑизнаннÑÑ
в миÑе валÑÑ, коÑоÑÐ°Ñ Ð½Ð°ÐºÐ°Ð¿Ð»Ð¸Ð²Ð°ÐµÑÑÑ ÑенÑÑалÑнÑми банками в валÑÑнÑÑ
ÑезеÑваÑ
. ÐÑавом денежной ÑмиÑÑии Ð¾Ð±Ð»Ð°Ð´Ð°ÐµÑ Ð¤ÐµÐ´ÐµÑалÑÐ½Ð°Ñ ÑезеÑÐ²Ð½Ð°Ñ ÑиÑÑема, вÑполнÑÑÑÐ°Ñ Ð² СШРÑÑнкÑии ÑенÑÑалÑного банка.<br>ÐÐ¾Ð»Ð»Ð°Ñ Ð¡Ð¨Ð Ñакже Ð¸Ð¼ÐµÐµÑ ÑÑаÑÑÑ Ð³Ð¾ÑÑдаÑÑÑвенной валÑÑÑ Ð² некоÑоÑÑÑ
дÑÑгиÑ
ÑÑÑанаÑ
(напÑимеÑ, ÐаÑÑÐ°Ð»Ð»Ð¾Ð²Ñ Ð¾ÑÑÑова, СалÑвадоÑ).</div>",is_freely_convertible:1,code:"USD",symbol:"$",quantity:1,formatting_dec_point:".",formatting_thousands_sep:" ",formatting_decimals:2,formatting_decimals_nb:2,formatting_space:"before"},{id:3,url:null,title:"ÐвÑо",description:"<div>ÐÌвÑо â оÑиÑиалÑÐ½Ð°Ñ Ð²Ð°Ð»ÑÑа 17 ÑÑÑан: ÐвÑÑÑии, ÐелÑгии, ÐеÑмании, ÐÑеÑии, ÐÑландии, ÐÑпании, ÐÑалии, ÐипÑа, ÐÑкÑембÑÑга, ÐалÑÑÑ, ÐидеÑландов, ÐоÑÑÑгалии, Словакии, Словении, ФинлÑндии, ФÑанÑии, ÐÑÑонии. Также валÑÑа иÑполÑзÑеÑÑÑ ÐµÑÑ Ð² 9 гоÑÑдаÑÑÑваÑ
, 7 из коÑоÑÑÑ
â евÑопейÑкие.</div>",is_freely_convertible:1,code:"EUR",symbol:"â¬",quantity:1,formatting_dec_point:".",formatting_thousands_sep:" ",formatting_decimals:2,formatting_decimals_nb:2,formatting_space:"after"},{id:4,url:null,title:"РоÑÑийÑкий ÑÑблÑ",description:"<div>Ð ÑÐ±Ð»Ñ â валÑÑа РоÑÑийÑкой ФедеÑаÑии, Ñакже иÑполÑзÑÐµÐ¼Ð°Ñ Ð½Ð° ÑеÑÑиÑоÑии РеÑпÑблики ÐбÑ
Ð°Ð·Ð¸Ñ Ð¸ РеÑпÑблики Ð®Ð¶Ð½Ð°Ñ ÐÑеÑиÑ.</div>",is_freely_convertible:1,code:"RUB",symbol:"â½",quantity:1,formatting_dec_point:".",formatting_thousands_sep:" ",formatting_decimals:3,formatting_decimals_nb:3,formatting_space:"after"},{id:5,url:null,title:"ÐазаÑ
Ñкий Ñенге",description:"<div>ÐазаÑ
ÑÑаÌнÑкий ÑÐµÐ½Ð³ÐµÌ â наÑионалÑÐ½Ð°Ñ Ð²Ð°Ð»ÑÑа ÐазаÑ
ÑÑана.</div>",is_freely_convertible:1,code:"KZT",symbol:"â¸",quantity:1,formatting_dec_point:".",formatting_thousands_sep:" ",formatting_decimals:3,formatting_decimals_nb:3,formatting_space:"after"},{id:13,url:null,title:"ÐиÑайÑкий ÑанÑ",description:"<div>ЮаÌÐ½Ñ (киÑ. ÑÑад. å, ÑпÑ. å
, пинÑÐ¸Ð½Ñ Yuán) â ÑовÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð´ÐµÐ½ÐµÐ¶Ð½Ð°Ñ ÐµÐ´Ð¸Ð½Ð¸Ñа ÐиÑайÑкой ÐаÑодной РеÑпÑблики, в коÑоÑой измеÑÑеÑÑÑ ÑÑоимоÑÑÑ Ð¶ÑнÑминÑби (киÑ. ÑпÑ. 人æ°å¸, пинÑÐ¸Ð½Ñ RénmÃnbì, бÑквалÑно: «наÑоднÑе денÑги», ÑокÑаÑÑнно RMB). ÐÑ
Ð¾Ð´Ð¸Ñ Ð² «коÑзинÑ» ÑпеÑиалÑнÑÑ
пÑав заимÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ ÐÐФ. ÐеждÑнаÑодное обознаÑение валÑÑÑ Ð² ÑÑандаÑÑе ISO 4217 â CNY.</div>",is_freely_convertible:1,code:"CNY",symbol:"Â¥",quantity:1,formatting_dec_point:".",formatting_thousands_sep:null,formatting_decimals:2,formatting_decimals_nb:3,formatting_space:"nospace"}]};
390class te extends U{constructor(e,t,r,i){super(t,r),this.product=e;const s=i!=null&&e.purposes?.some(n=>n.id===i)?i:e.purposes?.[0]?.id??"";Object.assign(this.values,{middle_name:"",period:"12",credit_purpose_id:s,amount:"",comments:"",currency_id:e.currencies?.[0]?.id||""})}get introText(){return"ÐаполниÑе заÑÐ²ÐºÑ Ð¾Ð½Ð»Ð°Ð¹Ð½, ÑÑÐ¾Ð±Ñ Ð²Ð°Ñ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½ÑалÑно оÑпÑавилÑÑ Ð¾Ð¿ÐµÑаÑоÑÑ Ð±Ð°Ð½ÐºÐ°. РкÑаÑÑайÑие ÑÑоки ÑпеÑиалиÑÑ ÑвÑжеÑÑÑ Ñ Ð²Ð°Ð¼Ð¸ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑделаÑÑ Ð²Ñгодное пÑедложение."}renderGridFields(){return[this.renderInput("last_name","ФамилиÑ*","text","ÐведиÑе ÑамилиÑ"),this.renderInput("first_name","ÐмÑ*","text","ÐведиÑе имÑ"),this.renderInput("middle_name","ÐÑÑеÑÑво","text","ÐведиÑе оÑÑеÑÑво"),this.renderPhoneInput(),this.renderInput("email","Email","email","[email protected]"),this.renderSelect("location_id","ÐоÑод*",P),this.renderSelect("period","СÑок*",[{id:"3",title:"3 меÑÑÑа"},{id:"6",title:"6 меÑÑÑев"},{id:"12",title:"12 меÑÑÑев"},{id:"18",title:"18 меÑÑÑев"},{id:"24",title:"24 меÑÑÑа"},{id:"36",title:"36 меÑÑÑев"},{id:"48",title:"48 меÑÑÑев"},{id:"60",title:"60 меÑÑÑев"}]),this.renderSelect("credit_purpose_id","Ð¦ÐµÐ»Ñ ÐºÑедиÑа*",this.product.purposes),this.renderAmountGroup()]}renderExtraFields(){return[d` 391 <div class="bkwg-form-item" style="margin-top: 16px;"> 392 <label class="bkwg-form-label">ÐомменÑаÑии</label> 393 <textarea 394 class="bkwg-form-textarea" 395 placeholder="ÐополниÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑиÑ" 396 data-name="comments" 397 > 398${String(this.values.comments||"")}</textarea 399 > 400 </div> 401 `]}validateExtra(){const e=Number(this.values.amount||0);(!this.values.amount||e<=0)&&(this.errors.amount="ÐведиÑе ÑÑÐ¼Ð¼Ñ ÐºÑедиÑа.")}buildSubmitData(){return{leadable_type:"credit",leadable_id:this.product.id,currency_id:Number(this.values.currency_id),last_name:String(this.values.last_name),first_name:String(this.values.first_name),middle_name:String(this.values.middle_name||""),phone:`+996${String(this.values.phone)}`,email:String(this.values.email||""),amount:Number(this.values.amount),period:Number(this.values.period),location_id:Number(this.values.location_id),credit_purpose_id:Number(this.values.credit_purpose_id),comments:String(this.values.comments||""),fingerprint_id:this.getFingerprint()}}renderAmountGroup(){const e=this.errors.amount||this.errors.currency_id,t=this.product.currencies.map(s=>s.code.toUpperCase()),i=ee.currencies.filter(s=>t.includes(s.code.toUpperCase())).map(s=>`<option value="${s.id}" data-flag-code="${s.code}" ${this.values.currency_id==s.id?"selected":""}>${s.code}</option>`).join("");return d` 402 <div class="bkwg-form-item"> 403 <label class="bkwg-form-label">СÑмма*</label> 404 <div class="bkwg-amount-group ${e?"bkwg-form-input--error":""}"> 405 <input 406 type="number" 407 class="bkwg-form-input" 408 placeholder="СÑмма" 409 data-name="amount" 410 value="${String(this.values.amount||"")}" 411 min="1" 412 /> 413 <select class="bkwg-form-select" data-name="currency_id" data-currency-select="true"> 414 ${_(i)} 415 </select> 416 </div> 417 ${e?d`<div class="bkwg-form-error">${e}</div>`:""} 418 </div> 419 `}}function re(g,e,t){let r;const i=(s,n)=>new te(s,g,n,r.getSelectedPurposeId());return r=new A(g,"credit",t,i),e.appendChild(r.mount()),r}const ie=Object.freeze(Object.defineProperty({__proto__:null,mountCreditWidget:re},Symbol.toStringTag,{value:"Module"}));return C}));
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.