<script>
(function(){
 const c=(v,up)=>{ v=String(v==null?'':v).replace(/\r/g,'').replace(/\u00a0/g,' ').trim(); v=v.replace(/\s+/g,' ').trim(); return up?v.toUpperCase():v; };
 const isMore=(v)=> /^more$/i.test(c(v,0));
 const isPri=(v)=> /^priority_(high|medium|low)$/i.test(c(v,0));
 const isDate=(v)=>{ v=c(v,0); return /^\d{4}-\d{2}-\d{2}$/.test(v) || /^indefinite$/i.test(v); };
 const isNumTok=(v)=>{ v=c(v,0); if(!v) return false; v=v.replace(/%/g,'').replace(/,/g,''); return /^\-?\d+(\.\d+)?$/.test(v); };
 const isRights=(v)=>{ v=c(v,0); if(!v) return false; if(/^sy$/i.test(v)) return true; return /all\s*pr|all\s*mr|pr\s*\/\s*mr|\bpr\b|\bmr\b/i.test(v); };

 function isTerr(v,tokMax){ v=c(v,0); if(!v) return false;
 var re=new RegExp('[+\\-]\\s*[A-Za-z0-9]{1,'+tokMax+'}','g');
 var m=v.match(re); if(!m||!m.length) return false;
 var stripped=v.replace(/[\s,]+/g,'');
 return stripped.replace(new RegExp('[+\\-][A-Za-z0-9]{1,'+tokMax+'}','g'),'')===''; }

 function normRow(r,isRole){ r.role=c(r.role,1); if(isRole && !isRole(r.role)) return null;
 r.name=c(r.name,0); r.ipi=c(r.ipi,0)||'NA';
 r.territory=c(r.territory,0); r.rights=c(r.rights,0);
 r.perf=c(r.perf,0); r.mech=c(r.mech,0); return r; }

 function parseInput(text,tokMax,isRole){
 var raw=String(text||'').replace(/\r/g,'').replace(/^\uFEFF/,''); if(!raw.trim()) return [];
 var lines=raw.split('\n').map(s=>String(s||'').replace(/\s+$/,'')).filter(s=>!isMore(s));
 var rows=[]; for(var i=0;i<lines.length;i++){
 var s=c(lines[i],0); if(!s||!isRole(s)) continue;
 var a={role:s,name:'',ipi:'NA',territory:'',rights:'',perf:'',mech:''};
 var j=i+1,v; for(;j<lines.length && !c(lines[j],0);j++){}
 if(j<lines.length){ v=c(lines[j],0);
 if(v && !isRole(v) && !isRights(v) && !isNumTok(v) && !isTerr(v,tokMax) && !isDate(v) && !isPri(v)){
 var h=v.charAt(0); if(h!=='+'&&h!=='-'){ a.name=v; j++; } } }
 if(j<lines.length && /^\d{6,}$/.test(c(lines[j],0))){ a.ipi=c(lines[j],0); j++; }

 for(;j<lines.length;j++){ v=c(lines[j],0); if(!v) continue;
 if(isRole(v)) break;
 if(!a.territory && isTerr(v,tokMax)){ a.territory=v; continue; }
 if(!a.rights && isRights(v)){ a.rights=v; continue; }
 if(a.perf==='' && isNumTok(v)){ a.perf=v.replace(/%/g,''); continue; }
 if(a.mech==='' && isNumTok(v)){ a.mech=v.replace(/%/g,''); continue; } }

 if(/^sy$/i.test(c(a.rights,0))){ i=j-1; continue; }
 if(a.perf==='' && /all\s*pr/i.test(a.rights)) a.perf='100';
 if(a.mech==='' && /all\s*mr/i.test(a.rights)) a.mech='100';
 a=normRow(a,isRole); if(a) rows.push(a); i=j-1; }
 return rows; }

 window.CCMPX_PARSE={parseInput:parseInput,c:c};
})();
</script>
<script>
(function(){
 const q=(s,r)=> (r||document).querySelector(s), qa=(s,r)=> Array.prototype.slice.call((r||document).querySelectorAll(s));
 const j=(el,attr,fb)=>{ try{ return JSON.parse((el&&el.getAttribute?el.getAttribute(attr):'')||'') }catch(e){ return fb; } };
 const csvEsc=(v)=>{ v=String(v==null?'':v); if(/["\n\r,]/.test(v)) return '"'+v.replace(/"/g,'""')+'"'; return v; };
 const toCSV=(rows)=>{ var head=['role','name','ipi','territory','rights','perf','mech'];
 var out=[head.join(',')]; for(var i=0;i<(rows||[]).length;i++){ var r=rows[i]||{}; out.push(head.map(k=> csvEsc(r[k])).join(',')); } return out.join('\n'); };

 function init(root){ if(!root||root.__ccmpxInit) return; var P=window.CCMPX_PARSE; if(!P) return; root.__ccmpxInit=true;
 var cfg=j(root,'data-cfg',{})||{}; cfg.roles=(cfg.roles&&cfg.roles.length)?cfg.roles:["CA","AR","C","A","E","SE"]; cfg.tokMax=cfg.tokMax||6;
 var rolesMap=Object.create(null); cfg.roles.forEach(x=>{ x=P.c(x,1); if(x) rolesMap[x]=1; }); root.__isRole=(v)=> rolesMap[P.c(v,1)]===1;
 root.__tokMax=cfg.tokMax; root.__cfg=cfg;

 root.__rawTa=q('[data-raw]',root); root.__csvTa=q('[data-csv]',root); root.__msg=q('[data-msg]',root);
 const setMsg=(s)=>{ if(root.__msg) root.__msg.textContent=s||''; };
 const setCSV=(s)=>{ if(root.__csvTa) root.__csvTa.value=s||''; };

 const run=()=>{ var txt=root.__rawTa?root.__rawTa.value:''; var rows=P.parseInput(txt,root.__tokMax,root.__isRole);
 root.__rows=rows||[]; setCSV(toCSV(root.__rows)); setMsg((root.__rows.length?('Parsed '+root.__rows.length+' row(s).'):'No rows parsed.')); };

 const clearAll=()=>{ if(root.__rawTa) root.__rawTa.value=''; root.__rows=[]; setCSV(''); setMsg('Paste raw data to export CSV.'); };

 root.addEventListener('click',(e)=>{ var t=e.target;
 if(t&&t.matches('[data-parse]')){ run(); return; }
 if(t&&t.matches('[data-clear]')){ clearAll(); return; }
 if(t&&t.matches('[data-copy]')){ var v=(root.__csvTa&&root.__csvTa.value)||''; if(!v) return;
 (navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(v):Promise.reject())
 .then(()=>setMsg('Copied CSV.'),()=>{ root.__csvTa.select(); document.execCommand('copy'); setMsg('Copied CSV.'); }); return; }
 if(t&&t.matches('[data-dl]')){ var v=(root.__csvTa&&root.__csvTa.value)||''; if(!v) return;
 var blob=new Blob([v],{type:'text/csv;charset=utf-8'}); var url=URL.createObjectURL(blob);
 var a=document.createElement('a'); a.href=url; a.download='claim_export.csv'; document.body.appendChild(a); a.click(); a.remove();
 setTimeout(()=>URL.revokeObjectURL(url),2500); setMsg('Downloaded claim_export.csv.'); return; }
 });

 root.addEventListener('paste',(e)=>{ var t=e.target; if(t&&t.matches('[data-raw]')) setTimeout(run,0); },true);
 root.addEventListener('input',(e)=>{ var t=e.target; if(t&&t.matches('[data-raw]')){ var to=root.__to; if(to) clearTimeout(to); root.__to=setTimeout(run,(cfg.debounce||140)); } },true);

 clearAll();
 }

 document.addEventListener('DOMContentLoaded',()=>{ qa('[data-ccmpx]').forEach(init); });
})();
</script>
<style>
.ccmpx{width:80%;margin:10px auto;display:grid;gap:10px}
.ccmpx-card{border:1px solid #e2e2e2;border-radius:14px;background:#fff;padding:10px}
.ccmpx-h{font-weight:700;margin-bottom:6px}
.ccmpx-ta{width:100%;border:1px solid #ddd;border-radius:12px;padding:8px;box-sizing:border-box}
.ccmpx-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.ccmpx-btn{border:1px solid #c9c9c9;background:#fff;padding:8px 12px}
.ccmpx-btn:hover{background:#f6f6f6}.ccmpx-btn-ghost{}
.ccmpx-sub{font-size:10px;color:#333;margin-top:8px}
</style>
{"id":128,"date":"2026-02-13T23:56:16","date_gmt":"2026-02-13T23:56:16","guid":{"rendered":"https:\/\/www.relayed.net\/?post_type=tools&#038;p=128"},"modified":"2026-02-15T00:54:12","modified_gmt":"2026-02-15T00:54:12","slug":"new-converter","status":"publish","type":"tools","link":"https:\/\/www.relayed.net\/?tools=new-converter","title":{"rendered":"New Converter"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"> <div class=\"ccmpx\" data-ccmpx data-cfg=\"{&quot;roles&quot;:[&quot;CA&quot;,&quot;AR&quot;,&quot;C&quot;,&quot;A&quot;,&quot;E&quot;,&quot;SE&quot;],&quot;debounce&quot;:140,&quot;tokMax&quot;:6,&quot;ph&quot;:{&quot;main&quot;:&quot;Paste raw claim data&quot;,&quot;csv&quot;:&quot;CSV here.&quot;}}\">\n <div class=\"ccmpx-card\"> <div class=\"ccmpx-h\">Raw input<\/div>\n <textarea class=\"ccmpx-ta\" rows=\"12\" data-raw><\/textarea>\n <div class=\"ccmpx-row\"> <button type=\"button\" class=\"ccmpx-btn\" data-parse>Parse<\/button>\n <button type=\"button\" class=\"ccmpx-btn ccmpx-btn-ghost\" data-clear>Clear<\/button>\n <\/div> <\/div>\n <div class=\"ccmpx-card\"> <div class=\"ccmpx-h\">CSV output<\/div>\n <textarea class=\"ccmpx-ta\" rows=\"10\" data-csv readonly><\/textarea>\n <div class=\"ccmpx-row\">\n <button type=\"button\" class=\"ccmpx-btn\" data-copy>Copy CSV<\/button>\n <button type=\"button\" class=\"ccmpx-btn\" data-dl>Download CSV<\/button> <\/div>\n <div class=\"ccmpx-sub\" data-msg>Paste raw data to export CSV.<\/div> <\/div> <\/div> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"author":1,"featured_media":135,"template":"","meta":{"org":"","name":"","type":"","content":""},"class_list":["post-128","tools","type-tools","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.relayed.net\/index.php?rest_route=\/wp\/v2\/tools\/128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.relayed.net\/index.php?rest_route=\/wp\/v2\/tools"}],"about":[{"href":"https:\/\/www.relayed.net\/index.php?rest_route=\/wp\/v2\/types\/tools"}],"author":[{"embeddable":true,"href":"https:\/\/www.relayed.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.relayed.net\/index.php?rest_route=\/wp\/v2\/media\/135"}],"wp:attachment":[{"href":"https:\/\/www.relayed.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}