arcli 1.7.1 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -1
- package/README.md +9 -16
- package/dist/cli/commands/vouchers.command.js +4 -3
- package/dist/cli/commands/vouchers.command.js.map +1 -1
- package/dist/cli/help.js +1 -1
- package/dist/cli/interactive/config.flow.d.ts +1 -1
- package/dist/cli/interactive/config.flow.js +53 -18
- package/dist/cli/interactive/config.flow.js.map +1 -1
- package/dist/cli/interactive/history.flow.d.ts +4 -0
- package/dist/cli/interactive/history.flow.js +22 -8
- package/dist/cli/interactive/history.flow.js.map +1 -1
- package/dist/cli/interactive/interactive-mode.js +24 -10
- package/dist/cli/interactive/interactive-mode.js.map +1 -1
- package/dist/cli/interactive/invoice-picker.d.ts +25 -0
- package/dist/cli/interactive/invoice-picker.js +152 -0
- package/dist/cli/interactive/invoice-picker.js.map +1 -0
- package/dist/cli/interactive/note.flow.d.ts +6 -2
- package/dist/cli/interactive/note.flow.js +19 -30
- package/dist/cli/interactive/note.flow.js.map +1 -1
- package/dist/cli/interactive/prompts.d.ts +34 -5
- package/dist/cli/interactive/prompts.js +181 -19
- package/dist/cli/interactive/prompts.js.map +1 -1
- package/dist/cli/interactive/repeat.flow.js +5 -11
- package/dist/cli/interactive/repeat.flow.js.map +1 -1
- package/dist/cli/interactive/status.flow.d.ts +3 -0
- package/dist/cli/interactive/status.flow.js +29 -0
- package/dist/cli/interactive/status.flow.js.map +1 -0
- package/dist/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/modules/config/config-value-parser.d.ts +1 -1
- package/dist/modules/config/config-value-parser.js +10 -0
- package/dist/modules/config/config-value-parser.js.map +1 -1
- package/dist/modules/config/config.presenter.d.ts +4 -0
- package/dist/modules/config/config.presenter.js +57 -37
- package/dist/modules/config/config.presenter.js.map +1 -1
- package/dist/modules/config/config.schemas.d.ts +2 -0
- package/dist/modules/config/config.schemas.js +4 -0
- package/dist/modules/config/config.schemas.js.map +1 -1
- package/dist/modules/config/config.sections.d.ts +14 -0
- package/dist/modules/config/config.sections.js +61 -0
- package/dist/modules/config/config.sections.js.map +1 -0
- package/dist/modules/config/config.service.js +1 -0
- package/dist/modules/config/config.service.js.map +1 -1
- package/dist/modules/interactive/config-fields.d.ts +1 -3
- package/dist/modules/interactive/config-fields.js +36 -42
- package/dist/modules/interactive/config-fields.js.map +1 -1
- package/dist/modules/vouchers/voucher-history.d.ts +9 -4
- package/dist/modules/vouchers/voucher-history.js +8 -3
- package/dist/modules/vouchers/voucher-history.js.map +1 -1
- package/dist/modules/vouchers/voucher-history.presenter.d.ts +9 -2
- package/dist/modules/vouchers/voucher-history.presenter.js +32 -14
- package/dist/modules/vouchers/voucher-history.presenter.js.map +1 -1
- package/dist/ui/components/statusBar.d.ts +2 -0
- package/dist/ui/components/statusBar.js +5 -1
- package/dist/ui/components/statusBar.js.map +1 -1
- package/llms.txt +2 -2
- package/package.json +1 -1
- package/dist/cli/interactive/lookup.flow.d.ts +0 -5
- package/dist/cli/interactive/lookup.flow.js +0 -72
- package/dist/cli/interactive/lookup.flow.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoice-picker.js","sourceRoot":"","sources":["../../../src/cli/interactive/invoice-picker.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { VoucherKindDefinition } from '../../modules/billing/billing.types'
|
|
|
3
3
|
import { type WizardStep } from '../../modules/interactive/wizard';
|
|
4
4
|
import { type IssuedVoucher } from '../../modules/vouchers/voucher-history';
|
|
5
5
|
import { type InteractiveSession } from './session';
|
|
6
|
+
export type NoteKind = 'credito' | 'debito';
|
|
6
7
|
export interface NoteState {
|
|
7
8
|
readonly cancellation?: boolean;
|
|
8
9
|
readonly concept?: BillingConcept;
|
|
@@ -10,9 +11,12 @@ export interface NoteState {
|
|
|
10
11
|
readonly documentType?: BillingCommandInput['documentType'];
|
|
11
12
|
readonly invoice?: IssuedVoucher;
|
|
12
13
|
readonly invoiceKind?: VoucherKindDefinition;
|
|
14
|
+
/** Punto de venta de la factura asociada; ingresada a mano puede no ser el configurado. */
|
|
15
|
+
readonly invoicePointOfSale?: number;
|
|
13
16
|
readonly ivaCondition?: BillingCommandInput['ivaCondition'];
|
|
14
17
|
readonly ivaRate?: BillingCommandInput['ivaRate'];
|
|
15
|
-
|
|
18
|
+
/** Credito o debito: viene del menu principal. */
|
|
19
|
+
readonly kind?: NoteKind;
|
|
16
20
|
readonly periodFrom?: string;
|
|
17
21
|
readonly periodTo?: string;
|
|
18
22
|
/** Sobre una factura de la lista o sobre un periodo (solo notas comunes). */
|
|
@@ -23,4 +27,4 @@ export interface NoteState {
|
|
|
23
27
|
export declare function noteSteps(session: InteractiveSession, pointOfSale: number): Array<WizardStep<NoteState>>;
|
|
24
28
|
/** Arma la entrada del CLI con lo que respondio el usuario. */
|
|
25
29
|
export declare function buildNoteInput(state: NoteState, session: InteractiveSession, pointOfSale: number): BillingCommandInput;
|
|
26
|
-
export declare function runNoteFlow(session: InteractiveSession): Promise<void>;
|
|
30
|
+
export declare function runNoteFlow(session: InteractiveSession, kind: NoteKind): Promise<void>;
|
|
@@ -4,10 +4,9 @@ import { billingCommandSchema, } from '../../modules/billing/billing.schemas.js'
|
|
|
4
4
|
import { parseAmountInput } from '../../modules/interactive/amount-input.js';
|
|
5
5
|
import { conceptChoices, invoiceKindChoices, ivaConditionChoices, ivaRateChoices, noteKindChoices, receiverChoices, } from '../../modules/interactive/choices.js';
|
|
6
6
|
import { BACK, runWizard } from '../../modules/interactive/wizard.js';
|
|
7
|
-
import { inferIvaRate,
|
|
8
|
-
import { formatVoucherSummary } from '../../modules/vouchers/voucher-history.presenter.js';
|
|
7
|
+
import { inferIvaRate, resolveDocumentType } from '../../modules/vouchers/voucher-history.js';
|
|
9
8
|
import { noticePanel, writeTerminalOutput } from '../../ui/index.js';
|
|
10
|
-
import {
|
|
9
|
+
import { pickInvoice } from './invoice-picker.js';
|
|
11
10
|
import { askTextStep, chooseStep } from './prompts.js';
|
|
12
11
|
import { previewAndEmit, requirePointOfSale } from './session.js';
|
|
13
12
|
import { normalizeDocumentNumber, validateAmount, validateCuit, validateDate, validateDni } from './validators.js';
|
|
@@ -45,16 +44,6 @@ async function askNoteAmount(state) {
|
|
|
45
44
|
/** Pasos del flujo de notas; cada uno se puede deshacer con "Volver". */
|
|
46
45
|
export function noteSteps(session, pointOfSale) {
|
|
47
46
|
return [
|
|
48
|
-
{
|
|
49
|
-
name: 'nota',
|
|
50
|
-
run: async () => {
|
|
51
|
-
const kind = await chooseStep('¿Que nota queres emitir?', [
|
|
52
|
-
{ name: 'Nota de credito (descuento, devolucion o anulacion)', value: 'credito' },
|
|
53
|
-
{ name: 'Nota de debito (cargo adicional)', value: 'debito' },
|
|
54
|
-
]);
|
|
55
|
-
return kind === BACK ? BACK : { kind };
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
47
|
{
|
|
59
48
|
name: 'tipo-factura',
|
|
60
49
|
run: async () => {
|
|
@@ -66,7 +55,11 @@ export function noteSteps(session, pointOfSale) {
|
|
|
66
55
|
name: 'asociacion',
|
|
67
56
|
run: async () => {
|
|
68
57
|
const target = await chooseStep('¿A que la asociamos?', [
|
|
69
|
-
{
|
|
58
|
+
{
|
|
59
|
+
description: 'Elegis una de las ultimas emitidas o la ingresas a mano',
|
|
60
|
+
name: 'A una factura',
|
|
61
|
+
value: 'factura',
|
|
62
|
+
},
|
|
70
63
|
{
|
|
71
64
|
description: 'Por ejemplo, un descuento sobre todo el mes',
|
|
72
65
|
name: 'A un periodo',
|
|
@@ -82,20 +75,15 @@ export function noteSteps(session, pointOfSale) {
|
|
|
82
75
|
name: 'factura',
|
|
83
76
|
run: async (state) => {
|
|
84
77
|
const invoiceKind = state.invoiceKind;
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const invoice = await chooseStep(`¿Sobre que ${invoiceKind.displayName}?`, invoices.map((item) => ({
|
|
92
|
-
description: item.cae ? `CAE ${item.cae}` : undefined,
|
|
93
|
-
name: formatVoucherSummary(pointOfSale, item),
|
|
94
|
-
value: item,
|
|
95
|
-
})));
|
|
96
|
-
if (invoice === BACK) {
|
|
78
|
+
const picked = await pickInvoice(session, {
|
|
79
|
+
message: `¿Sobre que ${invoiceKind.displayName}?`,
|
|
80
|
+
pointOfSale,
|
|
81
|
+
voucherKind: invoiceKind,
|
|
82
|
+
});
|
|
83
|
+
if (picked === BACK) {
|
|
97
84
|
return BACK;
|
|
98
85
|
}
|
|
86
|
+
const { invoice } = picked;
|
|
99
87
|
const documentType = resolveDocumentType(invoice.documentTypeCode);
|
|
100
88
|
if (!documentType) {
|
|
101
89
|
writeTerminalOutput(noticePanel('La factura tiene un tipo de documento que el asistente no soporta. Usa los flags del CLI.', 'warning'));
|
|
@@ -107,6 +95,7 @@ export function noteSteps(session, pointOfSale) {
|
|
|
107
95
|
documentNumber: documentType === 'consumidor-final' ? undefined : invoice.documentNumber,
|
|
108
96
|
documentType,
|
|
109
97
|
invoice,
|
|
98
|
+
invoicePointOfSale: picked.pointOfSale,
|
|
110
99
|
ivaCondition: documentType === 'consumidor-final' ? 'consumidor-final' : undefined,
|
|
111
100
|
ivaRate: invoiceKind.letter === 'c' ? undefined : inferIvaRate(invoice.netAmount, invoice.ivaAmount),
|
|
112
101
|
};
|
|
@@ -121,7 +110,7 @@ export function noteSteps(session, pointOfSale) {
|
|
|
121
110
|
return BACK;
|
|
122
111
|
}
|
|
123
112
|
const periodTo = await askTextStep('Periodo hasta:', { validate: validateDate });
|
|
124
|
-
return periodTo === BACK ? BACK : { invoice: undefined, periodFrom, periodTo };
|
|
113
|
+
return periodTo === BACK ? BACK : { invoice: undefined, invoicePointOfSale: undefined, periodFrom, periodTo };
|
|
125
114
|
},
|
|
126
115
|
skip: (state) => !isPeriod(state),
|
|
127
116
|
},
|
|
@@ -208,7 +197,7 @@ export function buildNoteInput(state, session, pointOfSale) {
|
|
|
208
197
|
cuit: String(session.runtime.context.cuit),
|
|
209
198
|
fecha: formatArcaDateAsArgentineDate(invoice.date),
|
|
210
199
|
numero: invoice.number,
|
|
211
|
-
puntoVenta: pointOfSale,
|
|
200
|
+
puntoVenta: state.invoicePointOfSale ?? pointOfSale,
|
|
212
201
|
shortcut: invoiceKind.shortcut,
|
|
213
202
|
}
|
|
214
203
|
: undefined,
|
|
@@ -222,12 +211,12 @@ export function buildNoteInput(state, session, pointOfSale) {
|
|
|
222
211
|
totalAmount: state.totalAmount,
|
|
223
212
|
});
|
|
224
213
|
}
|
|
225
|
-
export async function runNoteFlow(session) {
|
|
214
|
+
export async function runNoteFlow(session, kind) {
|
|
226
215
|
const pointOfSale = requirePointOfSale(session);
|
|
227
216
|
if (!pointOfSale) {
|
|
228
217
|
return;
|
|
229
218
|
}
|
|
230
|
-
const state = await runWizard(noteSteps(session, pointOfSale), {});
|
|
219
|
+
const state = await runWizard(noteSteps(session, pointOfSale), { kind });
|
|
231
220
|
if (!state) {
|
|
232
221
|
return;
|
|
233
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/note.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAEL,oBAAoB,GAErB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAa,SAAS,EAAmB,MAAM,kCAAkC,CAAC;AAC/F,OAAO,
|
|
1
|
+
{"version":3,"file":"note.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/note.flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,55 @@
|
|
|
1
|
+
import { Separator } from '@inquirer/select';
|
|
1
2
|
import { type Back } from '../../modules/interactive/wizard';
|
|
2
3
|
export interface Choice<T> {
|
|
3
4
|
readonly description?: string;
|
|
4
5
|
readonly name: string;
|
|
6
|
+
/** Lo que queda en la linea "✔ pregunta respuesta" al elegirla; por defecto, `name`. */
|
|
7
|
+
readonly short?: string;
|
|
5
8
|
readonly value: T;
|
|
6
9
|
}
|
|
7
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Una lista simple. Con `escapeValue`, Esc la cierra devolviendo ese valor (por ejemplo, "volver", "no" o
|
|
12
|
+
* "salir") y la ayuda de teclas lo muestra con `escapeLabel`; sin el, Esc no hace nada.
|
|
13
|
+
*/
|
|
14
|
+
export declare function chooseOne<T>(message: string, choices: ReadonlyArray<Choice<T> | Separator>, defaultValue?: T, options?: {
|
|
15
|
+
readonly escapeLabel?: string;
|
|
16
|
+
readonly escapeValue?: T;
|
|
17
|
+
}): Promise<T>;
|
|
8
18
|
export declare function askText(message: string, options?: {
|
|
9
19
|
readonly defaultValue?: string;
|
|
10
20
|
readonly validate?: (value: string) => string | true;
|
|
11
21
|
}): Promise<string>;
|
|
22
|
+
/** Si o no; Esc cuenta como no. */
|
|
12
23
|
export declare function confirm(message: string, yesLabel: string, noLabel?: string): Promise<boolean>;
|
|
13
24
|
/** Ctrl+C dentro de un prompt de @inquirer. */
|
|
14
25
|
export declare function isPromptCancellation(error: unknown): boolean;
|
|
15
|
-
/**
|
|
16
|
-
export declare function
|
|
17
|
-
/**
|
|
26
|
+
/** Alto de lista para `count` opciones: todas si entran en la terminal, si no las que entren (minimo 12). */
|
|
27
|
+
export declare function fitPageSize(count: number): number;
|
|
28
|
+
/**
|
|
29
|
+
* Como chooseOne, con una opcion "← Volver" al final para el motor de pasos (Esc hace lo mismo).
|
|
30
|
+
* Acepta separadores entre opciones.
|
|
31
|
+
*/
|
|
32
|
+
export declare function chooseStep<T>(message: string, choices: ReadonlyArray<Choice<T> | Separator>, defaultValue?: T, pageSize?: number): Promise<Back | T>;
|
|
33
|
+
/** Borra la linea de la ultima respuesta ("✔ pregunta respuesta"), para redibujar la misma lista en su lugar. */
|
|
34
|
+
export declare function eraseLastAnswer(): void;
|
|
35
|
+
export type LoadingResult<T, L> = {
|
|
36
|
+
readonly answer: Back | T;
|
|
37
|
+
} | {
|
|
38
|
+
readonly loaded: L;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Muestra la lista mientras `loading` esta en curso (por ejemplo, con "Cargando…" en lugar de un boton).
|
|
42
|
+
* Si termina la carga, la lista desaparece sin dejar rastro y devuelve lo cargado; si antes se elige
|
|
43
|
+
* una opcion (o Esc), devuelve esa respuesta.
|
|
44
|
+
*/
|
|
45
|
+
export declare function chooseStepWhileLoading<T, L>(message: string, choices: ReadonlyArray<Choice<T> | Separator>, defaultValue: T | undefined, pageSize: number, loading: Promise<L>): Promise<LoadingResult<T, L>>;
|
|
46
|
+
/** Como askText, pero Esc (o escribir "<") vuelve al paso anterior. */
|
|
18
47
|
export declare function askTextStep(message: string, options?: {
|
|
19
48
|
readonly defaultValue?: string;
|
|
20
49
|
readonly validate?: (value: string) => string | true;
|
|
21
50
|
}): Promise<Back | string>;
|
|
22
51
|
/**
|
|
23
52
|
* Seleccion multiple: espacio marca, Enter confirma (sin marcar nada tambien vale). Tiene un "← Volver" al
|
|
24
|
-
* final para el motor de pasos: si se marca, vuelve al paso anterior.
|
|
53
|
+
* final para el motor de pasos: si se marca (o con Esc), vuelve al paso anterior.
|
|
25
54
|
*/
|
|
26
55
|
export declare function chooseManyStep<T>(message: string, choices: ReadonlyArray<Choice<T>>, selected?: readonly T[]): Promise<Back | T[]>;
|
|
@@ -1,60 +1,222 @@
|
|
|
1
1
|
import checkbox from '@inquirer/checkbox';
|
|
2
2
|
import input from '@inquirer/input';
|
|
3
|
-
import select from '@inquirer/select';
|
|
3
|
+
import select, { Separator } from '@inquirer/select';
|
|
4
|
+
import { emitKeypressEvents } from 'node:readline';
|
|
5
|
+
import { styleText } from 'node:util';
|
|
4
6
|
import { BACK } from '../../modules/interactive/wizard.js';
|
|
5
7
|
import { colorize } from '../../ui/index.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
// La ayuda de teclas de @inquirer viene en ingles.
|
|
9
|
+
const HELP_TRANSLATIONS = {
|
|
10
|
+
'a all': ['a', 'todos'],
|
|
11
|
+
'i invert': ['i', 'invertir'],
|
|
12
|
+
'space select': ['espacio', 'marcar'],
|
|
13
|
+
'↑↓ navigate': ['↑↓', 'mover'],
|
|
14
|
+
'⏎ select': ['⏎', 'elegir'],
|
|
15
|
+
'⏎ submit': ['⏎', 'confirmar'],
|
|
16
|
+
};
|
|
17
|
+
function keysHelpTip(extra) {
|
|
18
|
+
return (keys) => [...keys.map(([key, action]) => HELP_TRANSLATIONS[`${key} ${action}`] ?? [key, action]), ...extra]
|
|
19
|
+
.map(([key, action]) => `${styleText('bold', key)} ${styleText('dim', action)}`)
|
|
20
|
+
.join(styleText('dim', ' • '));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* La pregunta activa lleva dos lineas en blanco arriba, para separarla de las ya respondidas. Al responderla
|
|
24
|
+
* @inquirer la redibuja con el prefijo "done", sin esas lineas, y las respuestas quedan juntas.
|
|
25
|
+
*/
|
|
26
|
+
const PROMPT_PREFIX = { idle: `\n\n${styleText('blue', '?')}` };
|
|
27
|
+
/**
|
|
28
|
+
* En las listas, mientras la pregunta esta activa, una linea en blanco entre la pregunta y las opciones, y otra
|
|
29
|
+
* entre la descripcion de la opcion marcada y la ayuda de teclas.
|
|
30
|
+
*/
|
|
31
|
+
function listStyle(extraKeys) {
|
|
32
|
+
return {
|
|
33
|
+
description: (text) => `${styleText('cyan', text)}\n`,
|
|
34
|
+
keysHelpTip: keysHelpTip(extraKeys),
|
|
35
|
+
message: (text, status) => status === 'done' ? styleText('bold', text) : `${styleText('bold', text)}\n`,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const MENU_THEME = { prefix: PROMPT_PREFIX, style: listStyle([]) };
|
|
39
|
+
const STEP_THEME = { prefix: PROMPT_PREFIX, style: listStyle([['esc', 'volver']]) };
|
|
40
|
+
const TEXT_THEME = { prefix: PROMPT_PREFIX };
|
|
41
|
+
/**
|
|
42
|
+
* Una lista simple. Con `escapeValue`, Esc la cierra devolviendo ese valor (por ejemplo, "volver", "no" o
|
|
43
|
+
* "salir") y la ayuda de teclas lo muestra con `escapeLabel`; sin el, Esc no hace nada.
|
|
44
|
+
*/
|
|
45
|
+
export async function chooseOne(message, choices, defaultValue, options = {}) {
|
|
46
|
+
const { escapeLabel = 'volver', escapeValue } = options;
|
|
47
|
+
const config = {
|
|
48
|
+
choices: [...choices],
|
|
49
|
+
default: defaultValue,
|
|
50
|
+
loop: false,
|
|
51
|
+
message,
|
|
52
|
+
pageSize: 12,
|
|
53
|
+
theme: escapeValue === undefined
|
|
54
|
+
? MENU_THEME
|
|
55
|
+
: { prefix: PROMPT_PREFIX, style: listStyle([['esc', escapeLabel]]) },
|
|
56
|
+
};
|
|
57
|
+
if (escapeValue === undefined) {
|
|
58
|
+
return select(config);
|
|
59
|
+
}
|
|
60
|
+
const result = await runStepPrompt((context) => select(config, context), (answer) => ({ answer: choiceName(choices, answer), message }));
|
|
61
|
+
return 'answer' in result && result.answer !== BACK ? result.answer : escapeValue;
|
|
8
62
|
}
|
|
9
63
|
export async function askText(message, options = {}) {
|
|
10
64
|
const answer = await input({
|
|
11
65
|
default: options.defaultValue,
|
|
12
66
|
message,
|
|
67
|
+
theme: TEXT_THEME,
|
|
13
68
|
validate: options.validate,
|
|
14
69
|
});
|
|
15
70
|
return answer.trim();
|
|
16
71
|
}
|
|
72
|
+
/** Si o no; Esc cuenta como no. */
|
|
17
73
|
export async function confirm(message, yesLabel, noLabel = 'Cancelar') {
|
|
18
74
|
return chooseOne(message, [
|
|
19
75
|
{ name: yesLabel, value: true },
|
|
20
76
|
{ name: noLabel, value: false },
|
|
21
|
-
]);
|
|
77
|
+
], undefined, { escapeValue: false });
|
|
22
78
|
}
|
|
23
79
|
/** Ctrl+C dentro de un prompt de @inquirer. */
|
|
24
80
|
export function isPromptCancellation(error) {
|
|
25
81
|
return error instanceof Error && error.name === 'ExitPromptError';
|
|
26
82
|
}
|
|
83
|
+
// Lineas que ocupa el prompt fuera de la lista: linea en blanco, pregunta, descripcion y ayuda de teclas.
|
|
84
|
+
const PROMPT_CHROME_LINES = 6;
|
|
85
|
+
/** Alto de lista para `count` opciones: todas si entran en la terminal, si no las que entren (minimo 12). */
|
|
86
|
+
export function fitPageSize(count) {
|
|
87
|
+
const available = (process.stdout.rows || 24) - PROMPT_CHROME_LINES;
|
|
88
|
+
return Math.max(12, Math.min(count, available));
|
|
89
|
+
}
|
|
27
90
|
const BACK_CHOICE = { name: '← Volver', value: BACK };
|
|
91
|
+
// Linea en blanco entre las opciones y "Volver".
|
|
92
|
+
const BACK_SPACER = new Separator(' ');
|
|
93
|
+
// Alternativa a Esc, por si la terminal no la manda.
|
|
28
94
|
const BACK_TEXT = '<';
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
95
|
+
const ESCAPE_REASON = 'esc';
|
|
96
|
+
/** La misma linea que deja @inquirer al responder; hace falta cuando el prompt se borra al cerrarse. */
|
|
97
|
+
function writeAnsweredLine(message, answer) {
|
|
98
|
+
process.stdout.write(`${styleText('green', '✔')} ${styleText('bold', message)} ${styleText('cyan', answer)}\n`);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Corre un prompt de paso que se cierra con Esc (vuelve al paso anterior) o cuando se aborta `signal`.
|
|
102
|
+
* El prompt se borra al cerrarse, asi una pregunta abandonada no queda en pantalla; si se respondio,
|
|
103
|
+
* se escribe la linea "✔ pregunta respuesta" igual que siempre.
|
|
104
|
+
*/
|
|
105
|
+
async function runStepPrompt(run, answeredLine, signal) {
|
|
106
|
+
const controller = new AbortController();
|
|
107
|
+
const onKeypress = (_text, key) => {
|
|
108
|
+
if (key?.name === 'escape') {
|
|
109
|
+
controller.abort(ESCAPE_REASON);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
const onAbort = () => controller.abort(signal?.reason);
|
|
113
|
+
signal?.addEventListener('abort', onAbort);
|
|
114
|
+
// @inquirer ya emite keypress sobre stdin; llamarlo de nuevo no hace nada.
|
|
115
|
+
emitKeypressEvents(process.stdin);
|
|
116
|
+
process.stdin.on('keypress', onKeypress);
|
|
117
|
+
try {
|
|
118
|
+
const answer = await run({ clearPromptOnDone: true, signal: controller.signal });
|
|
119
|
+
const line = answeredLine(answer);
|
|
120
|
+
writeAnsweredLine(line.message, line.answer);
|
|
121
|
+
return { answer };
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
if (!(error instanceof Error && error.name === 'AbortPromptError')) {
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
return controller.signal.reason === ESCAPE_REASON ? { answer: BACK } : { aborted: true };
|
|
128
|
+
}
|
|
129
|
+
finally {
|
|
130
|
+
process.stdin.off('keypress', onKeypress);
|
|
131
|
+
signal?.removeEventListener('abort', onAbort);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function stepConfig(message, choices, defaultValue, pageSize) {
|
|
135
|
+
return {
|
|
136
|
+
choices: [...choices, BACK_SPACER, BACK_CHOICE],
|
|
33
137
|
default: defaultValue,
|
|
34
138
|
loop: false,
|
|
35
139
|
message,
|
|
36
|
-
pageSize
|
|
37
|
-
|
|
140
|
+
pageSize,
|
|
141
|
+
theme: STEP_THEME,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
function choiceName(choices, answer) {
|
|
145
|
+
if (answer === BACK) {
|
|
146
|
+
return BACK_CHOICE.name;
|
|
147
|
+
}
|
|
148
|
+
const chosen = choices.find((item) => !Separator.isSeparator(item) && item.value === answer);
|
|
149
|
+
return chosen?.short ?? chosen?.name ?? '';
|
|
150
|
+
}
|
|
151
|
+
async function selectStep(message, choices, defaultValue, pageSize, signal) {
|
|
152
|
+
return runStepPrompt((context) => select(stepConfig(message, choices, defaultValue, pageSize), context), (answer) => ({ answer: choiceName(choices, answer), message }), signal);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Como chooseOne, con una opcion "← Volver" al final para el motor de pasos (Esc hace lo mismo).
|
|
156
|
+
* Acepta separadores entre opciones.
|
|
157
|
+
*/
|
|
158
|
+
export async function chooseStep(message, choices, defaultValue, pageSize = 12) {
|
|
159
|
+
const result = await selectStep(message, choices, defaultValue, pageSize);
|
|
160
|
+
// Sin signal externo, solo Esc aborta, y eso ya vuelve como BACK.
|
|
161
|
+
return 'answer' in result ? result.answer : BACK;
|
|
38
162
|
}
|
|
39
|
-
/**
|
|
163
|
+
/** Borra la linea de la ultima respuesta ("✔ pregunta respuesta"), para redibujar la misma lista en su lugar. */
|
|
164
|
+
export function eraseLastAnswer() {
|
|
165
|
+
if (process.stdout.isTTY) {
|
|
166
|
+
process.stdout.write('\u001B[1A\u001B[2K\r');
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Muestra la lista mientras `loading` esta en curso (por ejemplo, con "Cargando…" en lugar de un boton).
|
|
171
|
+
* Si termina la carga, la lista desaparece sin dejar rastro y devuelve lo cargado; si antes se elige
|
|
172
|
+
* una opcion (o Esc), devuelve esa respuesta.
|
|
173
|
+
*/
|
|
174
|
+
export async function chooseStepWhileLoading(message, choices, defaultValue, pageSize, loading) {
|
|
175
|
+
const loaded = new AbortController();
|
|
176
|
+
const stop = () => loaded.abort();
|
|
177
|
+
loading.then(stop, stop);
|
|
178
|
+
const result = await selectStep(message, choices, defaultValue, pageSize, loaded.signal);
|
|
179
|
+
return 'answer' in result ? result : { loaded: await loading };
|
|
180
|
+
}
|
|
181
|
+
/** Como askText, pero Esc (o escribir "<") vuelve al paso anterior. */
|
|
40
182
|
export async function askTextStep(message, options = {}) {
|
|
41
|
-
const
|
|
42
|
-
|
|
183
|
+
const result = await runStepPrompt((context) => input({
|
|
184
|
+
default: options.defaultValue,
|
|
185
|
+
message: `${message} ${colorize('([esc] para volver)', 'muted')}`,
|
|
186
|
+
theme: TEXT_THEME,
|
|
43
187
|
validate: (value) => (value.trim() === BACK_TEXT ? true : (options.validate?.(value) ?? true)),
|
|
44
|
-
});
|
|
188
|
+
}, context), (answer) => ({ answer: answer.trim(), message }));
|
|
189
|
+
if (!('answer' in result) || result.answer === BACK) {
|
|
190
|
+
return BACK;
|
|
191
|
+
}
|
|
192
|
+
const answer = result.answer.trim();
|
|
45
193
|
return answer === BACK_TEXT ? BACK : answer;
|
|
46
194
|
}
|
|
47
195
|
/**
|
|
48
196
|
* Seleccion multiple: espacio marca, Enter confirma (sin marcar nada tambien vale). Tiene un "← Volver" al
|
|
49
|
-
* final para el motor de pasos: si se marca, vuelve al paso anterior.
|
|
197
|
+
* final para el motor de pasos: si se marca (o con Esc), vuelve al paso anterior.
|
|
50
198
|
*/
|
|
51
199
|
export async function chooseManyStep(message, choices, selected = []) {
|
|
52
|
-
const
|
|
53
|
-
choices: [
|
|
200
|
+
const result = await runStepPrompt((context) => checkbox({
|
|
201
|
+
choices: [
|
|
202
|
+
...choices.map((choice) => ({ ...choice, checked: selected.includes(choice.value) })),
|
|
203
|
+
BACK_SPACER,
|
|
204
|
+
BACK_CHOICE,
|
|
205
|
+
],
|
|
54
206
|
loop: false,
|
|
55
207
|
message,
|
|
56
208
|
pageSize: 12,
|
|
57
|
-
|
|
58
|
-
|
|
209
|
+
theme: STEP_THEME,
|
|
210
|
+
}, context), (answer) => ({
|
|
211
|
+
answer: choices
|
|
212
|
+
.filter((choice) => answer.includes(choice.value))
|
|
213
|
+
.map((choice) => choice.name)
|
|
214
|
+
.join(', '),
|
|
215
|
+
message,
|
|
216
|
+
}));
|
|
217
|
+
if (!('answer' in result) || result.answer === BACK || result.answer.includes(BACK)) {
|
|
218
|
+
return BACK;
|
|
219
|
+
}
|
|
220
|
+
return result.answer;
|
|
59
221
|
}
|
|
60
222
|
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/cli/interactive/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,MAAM,iBAAiB,CAAC;AACpC,OAAO,MAAM,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAa,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/cli/interactive/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,11 @@ import { parseAmountInput } from '../../modules/interactive/amount-input.js';
|
|
|
3
3
|
import { invoiceKindChoices, ivaConditionChoices } from '../../modules/interactive/choices.js';
|
|
4
4
|
import { currentMonthPeriod, previousMonthPeriod } from '../../modules/interactive/periods.js';
|
|
5
5
|
import { BACK, runWizard } from '../../modules/interactive/wizard.js';
|
|
6
|
-
import { inferIvaRate,
|
|
7
|
-
import { formatVoucherSummary } from '../../modules/vouchers/voucher-history.presenter.js';
|
|
6
|
+
import { inferIvaRate, resolveDocumentType } from '../../modules/vouchers/voucher-history.js';
|
|
8
7
|
import { noticePanel, writeTerminalOutput } from '../../ui/index.js';
|
|
9
|
-
import { startSpinner } from '../spinner.js';
|
|
10
8
|
import { askAdvancedOptions } from './advanced-options.js';
|
|
11
9
|
import { buildInvoiceInput } from './invoice.flow.js';
|
|
10
|
+
import { pickInvoice } from './invoice-picker.js';
|
|
12
11
|
import { askTextStep, chooseStep } from './prompts.js';
|
|
13
12
|
import { previewAndEmit, requirePointOfSale } from './session.js';
|
|
14
13
|
import { validateAmount, validateCbu, validateDate } from './validators.js';
|
|
@@ -39,16 +38,11 @@ export function repeatSteps(session, pointOfSale, today = new Date()) {
|
|
|
39
38
|
name: 'factura',
|
|
40
39
|
run: async (state) => {
|
|
41
40
|
const voucherKind = state.voucherKind;
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
if (invoices.length === 0) {
|
|
45
|
-
writeTerminalOutput(noticePanel(`No hay ${voucherKind.displayName} emitidas en el punto de venta ${pointOfSale}.`, 'warning'));
|
|
46
|
-
return BACK;
|
|
47
|
-
}
|
|
48
|
-
const original = await chooseStep('¿Cual repetimos?', invoices.map((item) => ({ name: formatVoucherSummary(pointOfSale, item), value: item })));
|
|
49
|
-
if (original === BACK) {
|
|
41
|
+
const picked = await pickInvoice(session, { message: '¿Cual repetimos?', pointOfSale, voucherKind });
|
|
42
|
+
if (picked === BACK) {
|
|
50
43
|
return BACK;
|
|
51
44
|
}
|
|
45
|
+
const original = picked.invoice;
|
|
52
46
|
const documentType = resolveDocumentType(original.documentTypeCode);
|
|
53
47
|
if (!documentType) {
|
|
54
48
|
writeTerminalOutput(noticePanel('La factura tiene un tipo de documento que el asistente no soporta. Usa los flags del CLI.', 'warning'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repeat.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/repeat.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAsB,MAAM,mCAAmC,CAAC;AAChH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAmB,MAAM,kCAAkC,CAAC;AACpF,OAAO,
|
|
1
|
+
{"version":3,"file":"repeat.flow.js","sourceRoot":"","sources":["../../../src/cli/interactive/repeat.flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAsB,MAAM,mCAAmC,CAAC;AAChH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAmB,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,YAAY,EAAsB,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC/G,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAqB,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAA2B,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzE,MAAM,gBAAgB,GAAmC;IACvD,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,qBAAqB;CACzB,CAAC;AAMF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAE5D,SAAS,cAAc,CAAC,MAAqB;IAC3C,OAAO,GAAG,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,OAA2B,EAC3B,WAAmB,EACnB,QAAc,IAAI,IAAI,EAAE;IAExB,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAEnC,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,sCAAsC,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAEnG,OAAO,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;YACvD,CAAC;SACF;QACD;YACE,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAoC,CAAC;gBAC/D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;gBAErG,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;gBAChC,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBAEpE,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,mBAAmB,CACjB,WAAW,CACT,2FAA2F,EAC3F,SAAS,CACV,CACF,CAAC;oBAEF,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,OAAO;oBACL,QAAQ,EAAE;wBACR,YAAY,EAAE,KAAK;wBACnB,OAAO,EAAE,WAAW,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;wBACtG,YAAY,EAAE,KAAK;qBACpB;oBACD,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,WAAW;oBAC/D,cAAc,EAAE,YAAY,KAAK,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc;oBACzF,YAAY;oBACZ,YAAY,EAAE,YAAY,KAAK,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;oBAClF,QAAQ;oBACR,WAAW,EAAE,QAAQ,CAAC,KAAK;iBAC5B,CAAC;YACJ,CAAC;SACF;QACD;YACE,IAAI,EAAE,cAAc;YACpB,wEAAwE;YACxE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnB,MAAM,YAAY,GAAG,MAAM,UAAU,CACnC,uCAAuC,EACvC,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,IAAI,GAAG,CAAC,EACrD,MAAM,CAAC,qBAAqB,CAC7B,CAAC;gBAEF,OAAO,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;YACzD,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,kBAAkB;SAC3D;QACD;YACE,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAyB,CAAC;gBACjD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,eAAe,EAAE;oBAC9C,EAAE,IAAI,EAAE,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,OAAgB,EAAE;oBAC5E,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAe,EAAE;iBAC5D,CAAC,CAAC;gBAEH,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBACxC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjE,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;gBAE/E,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5E,CAAC;SACF;QACD;YACE,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnB,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAiC,uBAAuB,EAAE;oBACvF,EAAE,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE;oBAC1E,EAAE,WAAW,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACjF,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAc,EAAE;oBAC7E,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAe,EAAE;iBACjD,CAAC,CAAC;gBAEH,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,QAAQ,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAEvC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBACrB,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAC;gBAC/F,CAAC;gBAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjG,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;gBAE9E,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;gBAE5E,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;YACxG,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,WAAW;SAC/C;QACD;YACE,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,KAAK,IAAI,EAAE;gBACd,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;gBAEzF,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YACvC,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,KAAK,6BAA6B,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;SACpG;QACD;YACE,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnB,kGAAkG;gBAClG,MAAM,OAAO,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAEhE,IAAI,OAAO,EAAE,CAAC;oBACZ,mBAAmB,CACjB,WAAW,CAAC,mFAAmF,EAAE,MAAM,CAAC,CACzG,CAAC;gBACJ,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACxD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,WAAW;oBACrC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,kBAAkB,IAAI,IAAI;oBAC3E,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;oBACvC,WAAW,EAAE,KAAK,CAAC,WAAoC;iBACxD,CAAC,CAAC;gBAEH,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;YACjD,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA2B;IAC7D,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;QAC/D,QAAQ,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;KACvD,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,MAAM,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC"}
|