1import{a as T}from"./chunk-2BAXZUOS.js";import{a as w,d as N}from"./chunk-WKCSWF4J.js";import{a as F}from"./chunk-DEJ63H6L.js";import{c as D}from"./chunk-FCYE6DTJ.js";import{Ca as C,Ga as d,Kb as L,Lb as o,Mb as y,Ua as M,Y as A,ba as u,ca as x,fb as p,gb as m,jb as b,kb as h,lb as c,mb as n,nb as a,nc as S,oa as E,ob as v,oc as f,tb as P,wb as _,yb as s}from"./chunk-3QWUI42W.js";var k=(i,t)=>t.learningLang+":"+t.explanationLang,B=(i,t)=>t.code;function R(i,t){if(i&1&&v(0,"img",6),i&2){let e=s().$implicit,r=s();c("src",t,C)("alt",r.langName(e.learningLang))}}function U(i,t){if(i&1&&v(0,"img",6),i&2){let e=s().$implicit,r=s();c("src",t,C)("alt",r.langName(e.explanationLang))}}function $(i,t){if(i&1){let e=P();n(0,"button",19),_("click",function(){u(e);let l=s().$implicit,g=s();return x(g.onRemove(l.learningLang,l.explanationLang))}),v(1,"ng-icon",20),a()}}function z(i,t){if(i&1){let e=P();n(0,"li",3),p(1,R,1,2,"img",6),n(2,"span",7),o(3),a(),n(4,"span",8),o(5,"\u2192"),a(),p(6,U,1,2,"img",6),n(7,"span",9),o(8),a(),n(9,"select",10),_("change",function(l){let g=u(e).$implicit,I=s();return x(I.onCefr(g.learningLang,g.explanationLang,l.target.value))}),n(10,"option",11),o(11,"\u2014"),a(),n(12,"option",12),o(13,"A1"),a(),n(14,"option",13),o(15,"A2"),a(),n(16,"option",14),o(17,"B1"),a(),n(18,"option",15),o(19,"B2"),a(),n(20,"option",16),o(21,"C1"),a(),n(22,"option",17),o(23,"C2"),a()(),p(24,$,2,0,"button",18),a()}if(i&2){let e,r,l=t.$implicit,g=s();d(),m((e=g.flagUrl(l.learningLang))?1:-1,e),d(2),y(g.displayName(l.learningLang)),d(3),m((r=g.flagUrl(l.explanationLang))?6:-1,r),d(2),y(g.displayName(l.explanationLang)),d(),L("select-chevron tap-target rounded border border-border/60 "+g.selectBgClass()+" pl-1.5 pr-6 py-0.5 text-xs text-fg"),c("value",l.cefrLevel??""),d(15),m(g.allowManual()?24:-1)}}function j(i,t){if(i&1&&(n(0,"li",4),o(1),a()),i&2){let e=s();d(),y(e.emptyMessage())}}function G(i,t){if(i&1&&v(0,"img",22),i&2){let e=s(2);c("src",e.flagImageFor(e.addPairLearning()),C)("alt",e.langDisplay.forCode(e.addPairLearning())+" flag")}}function q(i,t){if(i&1&&(n(0,"option",24),o(1),a()),i&2){let e=t.$implicit,r=s(2);c("value",e.code),d(),y(r.displayName(e.code))}}function O(i,t){if(i&1&&v(0,"img",22),i&2){let e=s(2);c("src",e.flagImageFor(e.addPairExplanation()),C)("alt",e.langDisplay.forCode(e.addPairExplanation())+" flag")}}function W(i,t){if(i&1&&(n(0,"option",24),o(1),a()),i&2){let e=t.$implicit,r=s(2);c("value",e.code),d(),y(r.displayName(e.code))}}function X(i,t){if(i&1){let e=P();n(0,"div",5)(1,"div",21),p(2,G,1,2,"img",22),n(3,"select",23),_("change",function(l){u(e);let g=s();return x(g.addPairLearning.set(l.target.value))}),n(4,"option",11),o(5,"Learning\u2026"),a(),b(6,q,2,2,"option",24,B),a()(),n(8,"span",25),o(9,"\u2192"),a(),n(10,"div",21),p(11,O,1,2,"img",22),n(12,"select",26),_("change",function(l){u(e);let g=s();return x(g.addPairExplanation.set(l.target.value))}),n(13,"option",11),o(14,"Explanation\u2026"),a(),b(15,W,2,2,"option",24,B),a()(),n(17,"select",27),_("change",function(l){u(e);let g=s();return x(g.addPairCefr.set(l.target.value))}),n(18,"option",11),o(19,"\u2014"),a(),n(20,"option",12),o(21,"A1"),a(),n(22,"option",13),o(23,"A2"),a(),n(24,"option",14),o(25,"B1"),a(),n(26,"option",15),o(27,"B2"),a(),n(28,"option",16),o(29,"C1"),a(),n(30,"option",17),o(31,"C2"),a()(),n(32,"button",28),_("click",function(){u(e);let l=s();return x(l.onAdd())}),o(33," + Add "),a()()}if(i&2){let e=s();d(2),m(e.showAddPairFlags()&&e.addPairLearning()?2:-1),d(),L("select-chevron tap-target flex-1 min-w-0 rounded border border-border/60 "+e.selectBgClass()+" pl-2 pr-7 py-1 text-xs text-fg"),c("value",e.addPairLearning()),d(3),h(e.supportedLangs),d(5),m(e.showAddPairFlags()&&e.addPairExplanation()?11:-1),d(),L("select-chevron tap-target flex-1 min-w-0 rounded border border-border/60 "+e.selectBgClass()+" pl-2 pr-7 py-1 text-xs text-fg"),c("value",e.addPairExplanation()),d(3),h(e.supportedLangs),d(2),L("select-chevron tap-target rounded border border-border/60 "+e.selectBgClass()+" pl-2 pr-6 py-1 text-xs text-fg"),c("value",e.addPairCefr()),d(15),c("disabled",!e.canAdd())}}var V=class i{pairs=f.required();allowManual=f(!1);emptyMessage=f("No pairs yet.");selectBg=f("canvas");showAddPairFlags=f(!0);useAutonyms=f(!0);cefrChange=S();pairAdded=S();pairRemoved=S();langDisplay=A(T);
1supportedLangs=w;addPairLearning=E("");addPairExplanation=E("");addPairCefr=E("");onCefr(t,e,r){this.cefrChange.emit({learningLang:t,explanationLang:e,cefrLevel:r})}onRemove(t,e){this.pairRemoved.emit({learningLang:t,explanationLang:e})}onAdd(){let t=this.addPairLearning().trim(),e=this.addPairExplanation().trim();!t||!e||t===e||this.pairs().some(r=>r.learningLang===t&&r.explanationLang===e)||(this.pairAdded.emit({learningLang:t,explanationLang:e,cefrLevel:this.addPairCefr()}),this.addPairLearning.set(""),this.addPairExplanation.set(""),this.addPairCefr.set(""))}canAdd(){let t=this.addPairLearning(),e=this.addPairExplanation();return!!t&&!!e&&t!==e}resolveLang(t){let e=t?.trim();if(!e)return;let r=e.toLowerCase();return w.find(l=>l.code===r||l.name.toLowerCase()===r)}flagUrl(t){let e=this.resolveLang(t);return e?`/flags/${e.country}.svg`:null}langName(t){return t?this.resolveLang(t)?.name??t:""}displayName(t){return t?(this.useAutonyms()?this.langDisplay.forCodeWithAutonym(t):this.langDisplay.forCode(t))||this.langName(t):""}selectBgClass(){return this.selectBg()==="soft"?"bg-canvas-soft":"bg-canvas"}flagImageFor(t){return t?N(t):""}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=M({type:i,selectors:[["app-language-pair-editor"]],inputs:{pairs:[1,"pairs"],allowManual:[1,"allowManual"],emptyMessage:[1,"emptyMessage"],selectBg:[1,"selectBg"],showAddPairFlags:[1,"showAddPairFlags"],useAutonyms:[1,"useAutonyms"]},outputs:{cefrChange:"cefrChange",pairAdded:"pairAdded",pairRemoved:"pairRemoved"},decls:8,vars:2,consts:[[1,"border-t","border-border/40","pt-3"],[1,"text-xs","font-medium","text-fg-muted"],[1,"mt-2","space-y-1.5"],[1,"flex","items-center","gap-2","text-xs"],[1,"text-xs","text-fg-muted"],[1,"mt-3","flex","flex-wrap","items-center","gap-1.5"],["appLockedImg","",1,"h-3","w-auto",3,"src","alt"],[1,"text-fg"],[1,"text-fg-muted"],[1,"flex-1","text-fg"],["aria-label","CEFR level for this language pair",3,"change","value"],["value",""],["value","A1"],["value","A2"],["value","B1"],["value","B2"],["value","C1"],["value","C2"],["type","button","title","Remove pair",1,"inline-flex","items-center","justify-center","-ml-1","rounded","p-1","tap-target","text-fg-muted","hover:text-red-500","hover:bg-canvas-raised","transition-colors"],["type","button","title","Remove pair",1,"inline-flex","items-center","justify-center","-ml-1","rounded","p-1","tap-target","text-fg-muted","hover:text-red-500","hover:bg-canvas-raised","transition-colors",3,"click"],["name","lucideX","aria-hidden","true",1,"text-xs"],[1,"flex-1","min-w-[6rem]","flex","items-center","gap-1.5"],["appLockedImg","","loading","lazy",1,"h-3","w-auto","rounded-[1.5px]","shrink-0",3,"src","alt"],["aria-label","Learning language",3,"change","value"],[3,"value"],[1,"text-fg-muted","text-xs"],["aria-label","Explanation language",3,"change","value"],["aria-label","CEFR level (optional)",3,"change","value"],["type","button",1,"inline-flex","items-center","gap-1","tap-target","rounded-md","bg-fg","px-2","py-1","text-xs","font-medium","text-canvas","hover:opacity-90","disabled:opacity-40",3,"click","disabled"]],template:function(e,r){e&1&&(n(0,"div",0)(1,"span",1),o(2,"Language pairs"),a(),n(3,"ul",2),b(4,z,25,8,"li",3,k),p(6,j,2,1,"li",4),a(),p(7,X,34,12,"div",5),a()),e&2&&(d(4),h(r.pairs()),d(2),m(r.pairs().length===0?6:-1),d(),m(r.allowManual()?7:-1))},dependencies:[D,F],encapsulation:2,changeDetection:0})};export{V as a}; 2/**i18n:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855*/
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.