const e=require("is-fullwidth-code-point"),t=require("ansi-styles"),s=/^[\uD800-\uDBFF][\uDC00-\uDFFF]$/,i=["","›"],o=e=>`${i[0]}[${e}m`,n=(e,s,i)=>{let n=[];e=[...e];for(let i of e){const r=i;i.includes(";")&&(i=i.split(";")[0][0]+"0");const u=t.codes.get(Number.parseInt(i,10));if(u){const t=e.indexOf(u.toString());-1===t?n.push(o(s?u:r)):e.splice(t,1)}else{if(s){n.push(o(0));break}n.push(o(r))}}if(s&&(n=n.filter((e,t)=>n.indexOf(e)===t),void 0!==i)){const e=o(t.codes.get(Number.parseInt(i,10)));n=n.reduce((t,s)=>s===e?[s,...t]:[...t,s],[])}return n.join("")};module.exports=function(t,o,r){const u=[...t],l=[];let c,f="number"==typeof r?r:u.length,d=!1,p=0,m="";for(const[h,b]of u.entries()){let u=!1;if(i.includes(b)){const e=/\d[^m]*/.exec(t.slice(h,h+18));c=e&&e.length>0?e[0]:void 0,po&&p<=f)m+=b;else if(p!==o||d||void 0===c){if(p>=f){m+=n(l,!0,c);break}}else m=n(l)}return m};