UNPKG

anl

Version:
2 lines (1 loc) 1.6 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("yoctocolors-cjs"),r=require("../../../core/dist/esm/lib/create-prompt.mjs.js"),t=require("../../../core/dist/esm/lib/use-state.mjs.js"),s=require("../../../core/dist/esm/lib/make-theme.mjs.js"),i=require("../../../core/dist/esm/lib/use-prefix.mjs.js"),a=require("../../../core/dist/esm/lib/use-keypress.mjs.js"),o=require("../../../core/dist/esm/lib/Separator.mjs.js"),n=require("../../../core/dist/esm/lib/key.mjs.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=u(e);const m=/\d+/;function c(e){return null!=e&&!o.Separator.isSeparator(e)}var p=r.createPrompt(((e,r)=>{const{choices:u}=e,[p,d]=t.useState("pending"),[j,f]=t.useState(""),[y,S]=t.useState(),b=s.makeTheme(e.theme),v=i.usePrefix({theme:b});a.useKeypress(((e,t)=>{if(n.isEnterKey(e)){let e;if(m.test(j)){const r=Number.parseInt(j,10)-1;e=u.filter(c)[r]}else e=u.find((e=>c(e)&&e.key===j));c(e)?(f(e.short??e.name??String(e.value)),d("done"),r(e.value)):S(""===j?"Please input a value":`"${l.default.red(j)}" isn't an available option`)}else f(t.line),S(void 0)}));const $=b.style.message(e.message);if("done"===p)return`${v} ${$} ${b.style.answer(j)}`;let h=0;const g=u.map((e=>{if(o.Separator.isSeparator(e))return` ${e.separator}`;h+=1;const r=` ${e.key||h}) ${String(e.name||e.value)}`;return e.key===j.toLowerCase()||String(h)===j?b.style.highlight(r):r})).join("\n");let q="";return y&&(q=b.style.error(y)),[`${v} ${$} ${j}`,[g,q].filter(Boolean).join("\n")]}));exports.Separator=o.Separator,exports.default=p;