@fayz-ai/pos 0.20.4 → 0.21.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/dist/app/config.d.ts +216 -4
- package/dist/app/config.d.ts.map +1 -1
- package/dist/index.d.ts +101 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10849 -2517
- package/dist/index.js.map +1 -1
- package/dist/lib/useFloorBell.d.ts +21 -0
- package/dist/lib/useFloorBell.d.ts.map +1 -0
- package/dist/screen/AreaInspector.d.ts +19 -0
- package/dist/screen/AreaInspector.d.ts.map +1 -0
- package/dist/screen/AreaOutlineSheet.d.ts +15 -0
- package/dist/screen/AreaOutlineSheet.d.ts.map +1 -0
- package/dist/screen/ArrangeSheet.d.ts +8 -0
- package/dist/screen/ArrangeSheet.d.ts.map +1 -0
- package/dist/screen/AuthorizeSheet.d.ts +73 -0
- package/dist/screen/AuthorizeSheet.d.ts.map +1 -0
- package/dist/screen/CancelSheet.d.ts +35 -0
- package/dist/screen/CancelSheet.d.ts.map +1 -0
- package/dist/screen/ClosedPanel.d.ts +55 -0
- package/dist/screen/ClosedPanel.d.ts.map +1 -0
- package/dist/screen/ConfirmSheet.d.ts +12 -0
- package/dist/screen/ConfirmSheet.d.ts.map +1 -0
- package/dist/screen/CourtesySheet.d.ts +23 -0
- package/dist/screen/CourtesySheet.d.ts.map +1 -0
- package/dist/screen/CoverChargeSheet.d.ts +16 -0
- package/dist/screen/CoverChargeSheet.d.ts.map +1 -0
- package/dist/screen/DeliveryBoard.d.ts +13 -0
- package/dist/screen/DeliveryBoard.d.ts.map +1 -1
- package/dist/screen/DiscountSheet.d.ts +85 -0
- package/dist/screen/DiscountSheet.d.ts.map +1 -0
- package/dist/screen/DispatchRail.d.ts.map +1 -1
- package/dist/screen/FloorScopeBanner.d.ts +11 -0
- package/dist/screen/FloorScopeBanner.d.ts.map +1 -0
- package/dist/screen/GuestBar.d.ts +51 -0
- package/dist/screen/GuestBar.d.ts.map +1 -0
- package/dist/screen/GuestCountSheet.d.ts +16 -0
- package/dist/screen/GuestCountSheet.d.ts.map +1 -0
- package/dist/screen/IdentitySheet.d.ts.map +1 -1
- package/dist/screen/ModifierSheet.d.ts.map +1 -1
- package/dist/screen/OpenTableSheet.d.ts.map +1 -1
- package/dist/screen/PinSheet.d.ts.map +1 -1
- package/dist/screen/PlanStage.d.ts +130 -0
- package/dist/screen/PlanStage.d.ts.map +1 -0
- package/dist/screen/PosScreen.d.ts +350 -3
- package/dist/screen/PosScreen.d.ts.map +1 -1
- package/dist/screen/ServiceChargeSheet.d.ts +98 -0
- package/dist/screen/ServiceChargeSheet.d.ts.map +1 -0
- package/dist/screen/SheetLayer.d.ts +8 -0
- package/dist/screen/SheetLayer.d.ts.map +1 -0
- package/dist/screen/ShiftPanel.d.ts +45 -0
- package/dist/screen/ShiftPanel.d.ts.map +1 -0
- package/dist/screen/ShortcutsOverlay.d.ts.map +1 -1
- package/dist/screen/SplitSheet.d.ts.map +1 -1
- package/dist/screen/TableInspector.d.ts +22 -0
- package/dist/screen/TableInspector.d.ts.map +1 -0
- package/dist/screen/TicketRail.d.ts +175 -2
- package/dist/screen/TicketRail.d.ts.map +1 -1
- package/dist/screen/TransferHistorySheet.d.ts +17 -0
- package/dist/screen/TransferHistorySheet.d.ts.map +1 -0
- package/dist/screen/TransferSheet.d.ts +65 -0
- package/dist/screen/TransferSheet.d.ts.map +1 -0
- package/dist/screen/UnassignedTables.d.ts +14 -0
- package/dist/screen/UnassignedTables.d.ts.map +1 -0
- package/dist/screen/WaitlistEntrySheet.d.ts +23 -0
- package/dist/screen/WaitlistEntrySheet.d.ts.map +1 -0
- package/dist/screen/WaitlistView.d.ts +41 -0
- package/dist/screen/WaitlistView.d.ts.map +1 -0
- package/dist/screen/ZoneDrawLayer.d.ts +11 -0
- package/dist/screen/ZoneDrawLayer.d.ts.map +1 -0
- package/dist/screen/ZoneHandles.d.ts +18 -0
- package/dist/screen/ZoneHandles.d.ts.map +1 -0
- package/dist/screen/ZoneInspector.d.ts +27 -0
- package/dist/screen/ZoneInspector.d.ts.map +1 -0
- package/dist/screen/accountFit.d.ts +17 -0
- package/dist/screen/accountFit.d.ts.map +1 -0
- package/dist/screen/accountPick.d.ts +16 -0
- package/dist/screen/accountPick.d.ts.map +1 -0
- package/dist/screen/areaOutline.d.ts +59 -0
- package/dist/screen/areaOutline.d.ts.map +1 -0
- package/dist/screen/arrangePlan.d.ts +109 -0
- package/dist/screen/arrangePlan.d.ts.map +1 -0
- package/dist/screen/arrangeTables.d.ts +69 -0
- package/dist/screen/arrangeTables.d.ts.map +1 -0
- package/dist/screen/billPrint.d.ts +66 -0
- package/dist/screen/billPrint.d.ts.map +1 -0
- package/dist/screen/cancelCheck.d.ts +31 -0
- package/dist/screen/cancelCheck.d.ts.map +1 -0
- package/dist/screen/cardBrand.d.ts +44 -0
- package/dist/screen/cardBrand.d.ts.map +1 -0
- package/dist/screen/cashGate.d.ts +31 -0
- package/dist/screen/cashGate.d.ts.map +1 -0
- package/dist/screen/catalogEmpty.d.ts +13 -0
- package/dist/screen/catalogEmpty.d.ts.map +1 -0
- package/dist/screen/categoryIcon.d.ts +4 -0
- package/dist/screen/categoryIcon.d.ts.map +1 -0
- package/dist/screen/channelSlot.d.ts +93 -0
- package/dist/screen/channelSlot.d.ts.map +1 -0
- package/dist/screen/comandaChannel.d.ts +25 -0
- package/dist/screen/comandaChannel.d.ts.map +1 -0
- package/dist/screen/courtesyGate.d.ts +31 -0
- package/dist/screen/courtesyGate.d.ts.map +1 -0
- package/dist/screen/coverQuantities.d.ts +46 -0
- package/dist/screen/coverQuantities.d.ts.map +1 -0
- package/dist/screen/deliveryColumns.d.ts +54 -0
- package/dist/screen/deliveryColumns.d.ts.map +1 -0
- package/dist/screen/discardCheck.d.ts +8 -0
- package/dist/screen/discardCheck.d.ts.map +1 -0
- package/dist/screen/discountBook.d.ts +40 -0
- package/dist/screen/discountBook.d.ts.map +1 -0
- package/dist/screen/discountCap.d.ts +9 -0
- package/dist/screen/discountCap.d.ts.map +1 -0
- package/dist/screen/discountSelectable.d.ts +20 -0
- package/dist/screen/discountSelectable.d.ts.map +1 -0
- package/dist/screen/dockScope.d.ts +9 -0
- package/dist/screen/dockScope.d.ts.map +1 -0
- package/dist/screen/fiscalSeal.d.ts +40 -0
- package/dist/screen/fiscalSeal.d.ts.map +1 -0
- package/dist/screen/floorEmpty.d.ts +20 -0
- package/dist/screen/floorEmpty.d.ts.map +1 -0
- package/dist/screen/floorGeometry.d.ts +295 -0
- package/dist/screen/floorGeometry.d.ts.map +1 -0
- package/dist/screen/floorScope.d.ts +49 -0
- package/dist/screen/floorScope.d.ts.map +1 -0
- package/dist/screen/floorStale.d.ts +5 -0
- package/dist/screen/floorStale.d.ts.map +1 -0
- package/dist/screen/guestCount.d.ts +28 -0
- package/dist/screen/guestCount.d.ts.map +1 -0
- package/dist/screen/guestCountOnClose.d.ts +11 -0
- package/dist/screen/guestCountOnClose.d.ts.map +1 -0
- package/dist/screen/ledgerMethod.d.ts +11 -0
- package/dist/screen/ledgerMethod.d.ts.map +1 -0
- package/dist/screen/menuFreshness.d.ts +18 -0
- package/dist/screen/menuFreshness.d.ts.map +1 -0
- package/dist/screen/menuSearch.d.ts +55 -0
- package/dist/screen/menuSearch.d.ts.map +1 -0
- package/dist/screen/modifierCheck.d.ts +23 -0
- package/dist/screen/modifierCheck.d.ts.map +1 -0
- package/dist/screen/openChannelCounts.d.ts +26 -0
- package/dist/screen/openChannelCounts.d.ts.map +1 -0
- package/dist/screen/orderRef.d.ts +17 -0
- package/dist/screen/orderRef.d.ts.map +1 -0
- package/dist/screen/paymentList.d.ts +26 -0
- package/dist/screen/paymentList.d.ts.map +1 -0
- package/dist/screen/pinGate.d.ts +28 -0
- package/dist/screen/pinGate.d.ts.map +1 -0
- package/dist/screen/reopen.d.ts +36 -0
- package/dist/screen/reopen.d.ts.map +1 -0
- package/dist/screen/searchSubject.d.ts +22 -0
- package/dist/screen/searchSubject.d.ts.map +1 -0
- package/dist/screen/serviceChargeCheck.d.ts +29 -0
- package/dist/screen/serviceChargeCheck.d.ts.map +1 -0
- package/dist/screen/serviceChargeGuard.d.ts +145 -0
- package/dist/screen/serviceChargeGuard.d.ts.map +1 -0
- package/dist/screen/servicePreview.d.ts +35 -0
- package/dist/screen/servicePreview.d.ts.map +1 -0
- package/dist/screen/session.d.ts +207 -0
- package/dist/screen/session.d.ts.map +1 -1
- package/dist/screen/sheetSubtitle.d.ts +8 -0
- package/dist/screen/sheetSubtitle.d.ts.map +1 -0
- package/dist/screen/shift.d.ts +97 -0
- package/dist/screen/shift.d.ts.map +1 -0
- package/dist/screen/specialReuse.d.ts +45 -0
- package/dist/screen/specialReuse.d.ts.map +1 -0
- package/dist/screen/svgDrag.d.ts +24 -0
- package/dist/screen/svgDrag.d.ts.map +1 -0
- package/dist/screen/tableTone.d.ts +64 -0
- package/dist/screen/tableTone.d.ts.map +1 -0
- package/dist/screen/transferDone.d.ts +12 -0
- package/dist/screen/transferDone.d.ts.map +1 -0
- package/dist/screen/transferGuestBlock.d.ts +30 -0
- package/dist/screen/transferGuestBlock.d.ts.map +1 -0
- package/dist/screen/transferPick.d.ts +51 -0
- package/dist/screen/transferPick.d.ts.map +1 -0
- package/dist/screen/views.d.ts +139 -4
- package/dist/screen/views.d.ts.map +1 -1
- package/dist/screen/waitlist.d.ts +211 -0
- package/dist/screen/waitlist.d.ts.map +1 -0
- package/dist/screen/writeFailure.d.ts +22 -0
- package/dist/screen/writeFailure.d.ts.map +1 -0
- package/dist/screen/zoneDraft.d.ts +75 -0
- package/dist/screen/zoneDraft.d.ts.map +1 -0
- package/dist/screen/zoneEditing.d.ts +56 -0
- package/dist/screen/zoneEditing.d.ts.map +1 -0
- package/dist/styles.css +2697 -200
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceChargeSheet.d.ts","sourceRoot":"","sources":["../../src/screen/ServiceChargeSheet.tsx"],"names":[],"mappings":"AAqCA,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,cAAc,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CACnE;AAED,wBAAgB,kBAAkB,CAAC,EACjC,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAC5F,YAAY,EAAE,QAAQ,EAAE,SAAS,EACjC,QAAQ,EAAE,OAAO,GAClB,EAAE;IACD,cAAc,EAAE,MAAM,CAAA;IACtB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;IAC5G,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;0DACsD;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;CACjD,+BA0OA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export declare function SheetLayer({ children, ...rest }: {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
role?: string;
|
|
5
|
+
'aria-modal'?: boolean | 'true' | 'false';
|
|
6
|
+
'aria-label'?: string;
|
|
7
|
+
}): import("react").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=SheetLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SheetLayer.d.ts","sourceRoot":"","sources":["../../src/screen/SheetLayer.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE;IAChD,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,+BAmBA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type ShiftAssignment, type ShiftRole } from './shift';
|
|
2
|
+
export interface ShiftTargetPick {
|
|
3
|
+
kind: 'area' | 'table';
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ShiftPerson {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A escala NA COLUNA da direita, e não numa folha por cima.
|
|
13
|
+
*
|
|
14
|
+
* Em modal ela cobria a planta — e a planta é de onde se escolhe o alvo. O
|
|
15
|
+
* gesto do V1 é "toque a praça, escolha quem atende", e um diálogo no meio
|
|
16
|
+
* obriga a fechar, olhar, reabrir. Na coluna os dois convivem: a mesa fica
|
|
17
|
+
* visível enquanto se escala alguém para ela.
|
|
18
|
+
*/
|
|
19
|
+
export declare function ShiftPanel({ assignments, people, areas, target, cutoff, loading, error, saving, onPickCleared, onAssign, onUnassign, onRetry, onClose, onSaveDayCut, }: {
|
|
20
|
+
assignments: ShiftAssignment[];
|
|
21
|
+
people: ShiftPerson[];
|
|
22
|
+
/** Quantas praças a unidade tem — muda a frase do vazio. */
|
|
23
|
+
areas: number;
|
|
24
|
+
/** O que o gerente tocou na planta enquanto o painel está aberto. */
|
|
25
|
+
target: ShiftTargetPick | null;
|
|
26
|
+
cutoff?: string | null;
|
|
27
|
+
loading?: boolean;
|
|
28
|
+
error?: string;
|
|
29
|
+
saving?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Gravar o corte do dia. Ausente = o rodapé só informa, sem «mudar» — um app
|
|
32
|
+
* que não deixa mudar não deve oferecer o link.
|
|
33
|
+
*/
|
|
34
|
+
onSaveDayCut?: (hhmm: string) => void | Promise<void>;
|
|
35
|
+
onPickCleared: () => void;
|
|
36
|
+
onAssign: (input: {
|
|
37
|
+
personId: string;
|
|
38
|
+
role: ShiftRole;
|
|
39
|
+
untilEndOfDay: boolean;
|
|
40
|
+
}) => void;
|
|
41
|
+
onUnassign: (id: string) => void;
|
|
42
|
+
onRetry?: () => void;
|
|
43
|
+
onClose: () => void;
|
|
44
|
+
}): import("react").JSX.Element;
|
|
45
|
+
//# sourceMappingURL=ShiftPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShiftPanel.d.ts","sourceRoot":"","sources":["../../src/screen/ShiftPanel.tsx"],"names":[],"mappings":"AAwBA,OAAO,EAEL,KAAK,eAAe,EAAE,KAAK,SAAS,EACrC,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAClE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GACpE,EAAE;IACD,WAAW,EAAE,eAAe,EAAE,CAAA;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACxF,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BA4MA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortcutsOverlay.d.ts","sourceRoot":"","sources":["../../src/screen/ShortcutsOverlay.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"ShortcutsOverlay.d.ts","sourceRoot":"","sources":["../../src/screen/ShortcutsOverlay.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAY9C,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IACrD,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BAsDA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitSheet.d.ts","sourceRoot":"","sources":["../../src/screen/SplitSheet.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"SplitSheet.d.ts","sourceRoot":"","sources":["../../src/screen/SplitSheet.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAKrD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CACrC,+BA6IA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type TableShape } from './floorGeometry';
|
|
2
|
+
export interface InspectorTable {
|
|
3
|
+
id: string;
|
|
4
|
+
number: number;
|
|
5
|
+
name?: string | null;
|
|
6
|
+
seats: number;
|
|
7
|
+
shape: TableShape;
|
|
8
|
+
widthM: number;
|
|
9
|
+
heightM: number;
|
|
10
|
+
diameterM: number;
|
|
11
|
+
rotation: number;
|
|
12
|
+
}
|
|
13
|
+
export type TablePatch = Partial<Omit<InspectorTable, 'id'>>;
|
|
14
|
+
export declare function TableInspector({ table, areaName, onSave, onZoom, onDetach }: {
|
|
15
|
+
table: InspectorTable;
|
|
16
|
+
/** `null` = a mesa não está na planta. */
|
|
17
|
+
areaName?: string | null;
|
|
18
|
+
onSave: (patch: TablePatch) => void;
|
|
19
|
+
onZoom?: () => void;
|
|
20
|
+
onDetach?: () => void;
|
|
21
|
+
}): import("react").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=TableInspector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableInspector.d.ts","sourceRoot":"","sources":["../../src/screen/TableInspector.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAMnE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAA;AAQ5D,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAC5E,KAAK,EAAE,cAAc,CAAA;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB,+BA0KA"}
|
|
@@ -1,6 +1,44 @@
|
|
|
1
1
|
import type { PosPaymentMethod, PosPositionStatus, PosVocabulary } from '../app/config';
|
|
2
|
+
import { type PaymentRow } from './paymentList';
|
|
3
|
+
import { type GuestDraft } from './GuestBar';
|
|
4
|
+
import { type TicketGuest } from './session';
|
|
2
5
|
import type { Ticket, TicketTotals } from './session';
|
|
3
|
-
|
|
6
|
+
import { type ClosedTicket } from './ClosedPanel';
|
|
7
|
+
import type { FiscalSeal } from './fiscalSeal';
|
|
8
|
+
/** Uma linha de couvert na conta. */
|
|
9
|
+
export interface OrderCover {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
unitAmount: number;
|
|
13
|
+
guestCount: number;
|
|
14
|
+
total: number;
|
|
15
|
+
discount: number;
|
|
16
|
+
/**
|
|
17
|
+
* Quantos couverts cada participante levou, quando a casa já repartiu.
|
|
18
|
+
*
|
|
19
|
+
* Ausente quer dizer «nunca foi repartido» — e aí a folha começa com 1 em
|
|
20
|
+
* cada um, que é a conta que a RPC aplicou. Ausente NÃO é zero: zero é uma
|
|
21
|
+
* decisão que alguém tomou.
|
|
22
|
+
*/
|
|
23
|
+
guestQuantities?: Array<{
|
|
24
|
+
guestId: string;
|
|
25
|
+
qty: number;
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Quantos couverts a POLÍTICA cobra de quem tem nome e de quem não tem.
|
|
29
|
+
*
|
|
30
|
+
* O adapter já devolvia os dois (`qty_identified`/`qty_unidentified` da
|
|
31
|
+
* cobrança) e este tipo não os declarava, então o `openingCoverQty` do app
|
|
32
|
+
* não COMPILAVA: TS2559, «não tem nada em comum com a política». Em runtime a
|
|
33
|
+
* folha abria certa — o Pertinho cobra 2 de quem tem nome, e era 2 que
|
|
34
|
+
* aparecia, porque o objeto carrega os campos que o tipo omitia. O defeito
|
|
35
|
+
* era de compilação, e ficou escondido porque o Vite não confere tipo e o
|
|
36
|
+
* typecheck do app apontava para OUTRA árvore do SDK.
|
|
37
|
+
*/
|
|
38
|
+
qtyIdentified?: number;
|
|
39
|
+
qtyUnidentified?: number;
|
|
40
|
+
}
|
|
41
|
+
export declare function TicketRail({ onCollapse, ticket, totals, vocabulary, paymentMethods, selectedPaymentId, onSelectPayment, onChangeQuantity, selectedLineId, onSelectLine, onClose, closeShortcut, guests, status, open, zoneLabel, request, now, containerRef, onBrowseCatalog, onEditLine, onEditIdentity, alias, customerPhone, onFire, fireShortcut, moreActions, onMoreAction, onPrint, onDiscount, party, selectedGuestId, sharedLabel, serviceChargePercent, guestPaidCents, payments, guestCount, onEditGuestCount, closedChannel, closed, closedIsCounter, closedLoading, closedSeals, closedSealsFailed, onOpenClosed, onReopenClosed, panel, hasOpenOrder, covers, onEditCover, settling, onServiceCharge, receivingAccounts, selectedAccountId, onSelectAccount, selectedInstallments, onSelectInstallments, selectedCardBrand, onSelectCardBrand, onSelectGuest, onAddGuest, onIdentifyGuest, onRemoveGuest, onLookupPhone, }: {
|
|
4
42
|
ticket: Ticket;
|
|
5
43
|
totals: TicketTotals;
|
|
6
44
|
vocabulary: PosVocabulary;
|
|
@@ -10,7 +48,30 @@ export declare function TicketRail({ onCollapse, ticket, totals, vocabulary, pay
|
|
|
10
48
|
onChangeQuantity: (lineId: string, delta: number) => void;
|
|
11
49
|
selectedLineId?: string;
|
|
12
50
|
onSelectLine: (lineId: string) => void;
|
|
13
|
-
|
|
51
|
+
/** As contas que podem receber a forma escolhida. */
|
|
52
|
+
receivingAccounts?: Array<{
|
|
53
|
+
id: string;
|
|
54
|
+
name: string;
|
|
55
|
+
kind: string;
|
|
56
|
+
}>;
|
|
57
|
+
/** A bandeira escolhida — «Visa», «Alelo». Ver `brandList`. */
|
|
58
|
+
selectedCardBrand?: string;
|
|
59
|
+
onSelectCardBrand?: (brand: string | undefined) => void;
|
|
60
|
+
selectedAccountId?: string;
|
|
61
|
+
onSelectAccount?: (id?: string) => void;
|
|
62
|
+
/** Em quantas vezes. Só o crédito parcela. */
|
|
63
|
+
selectedInstallments?: number;
|
|
64
|
+
onSelectInstallments?: (n: number) => void;
|
|
65
|
+
/** Fechar a conta. Leva QUEM está pagando e QUANTO — nunca só o gesto. */
|
|
66
|
+
onClose: (cobranca?: {
|
|
67
|
+
guestIds: string[];
|
|
68
|
+
/** O que se cobra NESTE gesto. */
|
|
69
|
+
amountCents: number;
|
|
70
|
+
/** O que a comanda ainda deve, no total. */
|
|
71
|
+
outstandingCents: number;
|
|
72
|
+
/** Para ONDE o dinheiro vai. Sem isto o razão não sabe onde creditar. */
|
|
73
|
+
accountId?: string;
|
|
74
|
+
}) => void;
|
|
14
75
|
closeShortcut?: string;
|
|
15
76
|
guests?: number;
|
|
16
77
|
status?: PosPositionStatus;
|
|
@@ -31,6 +92,118 @@ export declare function TicketRail({ onCollapse, ticket, totals, vocabulary, pay
|
|
|
31
92
|
containerRef?: React.Ref<HTMLDivElement>;
|
|
32
93
|
/** An empty ticket's only useful action is going where the items are. */
|
|
33
94
|
onBrowseCatalog?: () => void;
|
|
95
|
+
/**
|
|
96
|
+
* O que mais se pode fazer com ESTA comanda — transferir, dar desconto,
|
|
97
|
+
* cancelar item, encerrar como cortesia.
|
|
98
|
+
*
|
|
99
|
+
* Vive num `…` ao lado de "Fechar conta" e não em botões soltos: durante o
|
|
100
|
+
* serviço só dois gestos se repetem (lançar e fechar), e uma fileira de seis
|
|
101
|
+
* botões faz o operador mirar. O V1 resolveu assim e a leitura está certa.
|
|
102
|
+
*
|
|
103
|
+
* `disabledReason` é obrigatório para desabilitar: uma linha apagada que não
|
|
104
|
+
* diz por quê vira chamado para o suporte. É o detalhe do V1 que mais
|
|
105
|
+
* economiza pergunta — "Disponível após enviar itens" responde sozinho.
|
|
106
|
+
*/
|
|
107
|
+
/**
|
|
108
|
+
* As pessoas desta comanda.
|
|
109
|
+
*
|
|
110
|
+
* Vazio quer dizer "ninguém identificado", e aí a comanda é uma lista só —
|
|
111
|
+
* é o caso comum do balcão. Com gente dentro, a conta passa a ser repartida
|
|
112
|
+
* na tela, e o operador consegue responder "quanto é o da Ana" sem somar de
|
|
113
|
+
* cabeça.
|
|
114
|
+
*/
|
|
115
|
+
party?: TicketGuest[];
|
|
116
|
+
/** `null` = a pastilha compartilhada. É o DESTINO dos próximos itens. */
|
|
117
|
+
selectedGuestId?: string | null;
|
|
118
|
+
/** "Mesa" no salão, "Balcão" no balcão — vocabulário do canal. */
|
|
119
|
+
sharedLabel?: string;
|
|
120
|
+
/** A taxa da mesa, para o participante que não tem a sua. */
|
|
121
|
+
serviceChargePercent?: number;
|
|
122
|
+
/** Quanto cada um JÁ PAGOU. A chave do compartilhado é `mesa`. */
|
|
123
|
+
guestPaidCents?: Record<string, number>;
|
|
124
|
+
/** O que já entrou nesta comanda, um por pagamento. */
|
|
125
|
+
payments?: PaymentRow[];
|
|
126
|
+
/**
|
|
127
|
+
* Quantas pessoas SENTARAM — o fato de hoje.
|
|
128
|
+
*
|
|
129
|
+
* Separado de `guests` de propósito: aquele é a CAPACIDADE, e é ele que diz
|
|
130
|
+
* quantas cadeiras a `GuestBar` desenha. O cabeçalho mostrava a capacidade
|
|
131
|
+
* escrita «4 pessoas» numa mesa onde duas sentaram — e é esse número que o
|
|
132
|
+
* couvert cobra, então o cabeçalho contradizia a conta.
|
|
133
|
+
*/
|
|
134
|
+
guestCount?: number;
|
|
135
|
+
/** Abrir «Número de Pessoas». Ausente = o número não se muda daqui. */
|
|
136
|
+
onEditGuestCount?: () => void;
|
|
137
|
+
/** Qual canal o painel de fechadas está mostrando — ele nomeia as frases. */
|
|
138
|
+
closedChannel?: string;
|
|
139
|
+
/**
|
|
140
|
+
* As contas fechadas hoje. `undefined` mantém o estado vazio de sempre —
|
|
141
|
+
* o app decide se esta coluna tem esse papel.
|
|
142
|
+
*/
|
|
143
|
+
closed?: ClosedTicket[];
|
|
144
|
+
/**
|
|
145
|
+
* Um painel que TOMA a coluna — hoje a «Escala de hoje».
|
|
146
|
+
*
|
|
147
|
+
* Substitui a comanda enquanto está aberto, em vez de cobrir a tela com um
|
|
148
|
+
* diálogo: a planta continua à vista, e é dela que se escolhe o alvo.
|
|
149
|
+
*/
|
|
150
|
+
panel?: React.ReactNode;
|
|
151
|
+
/**
|
|
152
|
+
* Há comanda ABERTA nesta posição?
|
|
153
|
+
*
|
|
154
|
+
* Diferente de «a comanda tem itens». Sem isto o rail confundia as duas e
|
|
155
|
+
* trocava a comanda recém-aberta pelo histórico do dia. Ausente, cai no
|
|
156
|
+
* comportamento antigo.
|
|
157
|
+
*/
|
|
158
|
+
hasOpenOrder?: boolean;
|
|
159
|
+
/** O couvert aplicado — linhas da conta, não itens do cardápio. */
|
|
160
|
+
covers?: OrderCover[];
|
|
161
|
+
/** Abrir a folha que reparte o couvert por participante — o lápis do V1. */
|
|
162
|
+
onEditCover?: (cover: OrderCover) => void;
|
|
163
|
+
/** A escrita do fechamento está correndo — o «Finalizando…» do V1. */
|
|
164
|
+
settling?: boolean;
|
|
165
|
+
/** Abre a folha da taxa de serviço a partir da linha dela no rodapé. */
|
|
166
|
+
/** Recebe DE QUEM é a taxa: a pastilha do participante manda o id dele, e a
|
|
167
|
+
* linha do rodapé não manda nada (é a da mesa). */
|
|
168
|
+
onServiceCharge?: (guestId?: string) => void;
|
|
169
|
+
/** No balcão o título é "Histórico do balcão": lá não há mesa. */
|
|
170
|
+
closedIsCounter?: boolean;
|
|
171
|
+
closedLoading?: boolean;
|
|
172
|
+
/** Saiu nota? Por conta fechada — é o que faz a lista valer mais que um
|
|
173
|
+
* histórico: emitir nota se cobra depois, e a mesa sem nota só aparece
|
|
174
|
+
* quando já é tarde. */
|
|
175
|
+
closedSeals?: Record<string, FiscalSeal>;
|
|
176
|
+
/** A leitura fiscal falhou. Diferente de "nenhuma tem nota". */
|
|
177
|
+
closedSealsFailed?: boolean;
|
|
178
|
+
onOpenClosed?: (id: string) => void;
|
|
179
|
+
/** REABRIR uma conta fechada. Ausente = a tela não oferece. Ver `reopen.ts`. */
|
|
180
|
+
onReopenClosed?: (t: ClosedTicket) => void;
|
|
181
|
+
onSelectGuest?: (id: string | null) => void;
|
|
182
|
+
onAddGuest?: (draft: GuestDraft) => void | Promise<void>;
|
|
183
|
+
onIdentifyGuest?: (id: string, draft: GuestDraft) => void | Promise<void>;
|
|
184
|
+
onRemoveGuest?: (id: string) => void | Promise<void>;
|
|
185
|
+
onLookupPhone?: (phone: string) => Promise<{
|
|
186
|
+
id: string;
|
|
187
|
+
name: string;
|
|
188
|
+
} | null>;
|
|
189
|
+
moreActions?: Array<{
|
|
190
|
+
id: string;
|
|
191
|
+
label: string;
|
|
192
|
+
disabledReason?: string;
|
|
193
|
+
danger?: boolean;
|
|
194
|
+
separator?: boolean;
|
|
195
|
+
}>;
|
|
196
|
+
onMoreAction?: (id: string) => void;
|
|
197
|
+
/**
|
|
198
|
+
* `Imprimir` e `% Desconto`, ao lado do `…`.
|
|
199
|
+
*
|
|
200
|
+
* No V1 os três dividem a mesma linha acima de "Fechar Comanda", e não é
|
|
201
|
+
* arbitrário: são as ações que se usam com a conta NA MÃO, no minuto em que
|
|
202
|
+
* o cliente pede para fechar. Enterrá-las no menu custa um toque em cada
|
|
203
|
+
* fechamento — e o fechamento é o que mais se repete na noite.
|
|
204
|
+
*/
|
|
205
|
+
onPrint?: () => void;
|
|
206
|
+
onDiscount?: () => void;
|
|
34
207
|
/** Reopens a line for its options and note. */
|
|
35
208
|
onEditLine?: (lineId: string) => void;
|
|
36
209
|
/** Names the ticket and takes the customer's phone. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TicketRail.d.ts","sourceRoot":"","sources":["../../src/screen/TicketRail.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TicketRail.d.ts","sourceRoot":"","sources":["../../src/screen/TicketRail.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface TransferLog {
|
|
2
|
+
id: string;
|
|
3
|
+
kind: 'table' | 'guest' | 'items';
|
|
4
|
+
fromLabel?: string;
|
|
5
|
+
toLabel?: string;
|
|
6
|
+
guestLabel?: string;
|
|
7
|
+
itemCount: number;
|
|
8
|
+
authorizedByName?: string;
|
|
9
|
+
note?: string;
|
|
10
|
+
createdAt: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function TransferHistorySheet({ logs, loading, onClose }: {
|
|
13
|
+
logs: TransferLog[];
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
onClose: () => void;
|
|
16
|
+
}): import("react").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=TransferHistorySheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransferHistorySheet.d.ts","sourceRoot":"","sources":["../../src/screen/TransferHistorySheet.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AAoBD,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAC/D,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,+BAyEA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { Ticket } from './session';
|
|
2
|
+
export type TransferKind = 'table' | 'guest' | 'items';
|
|
3
|
+
export interface TransferTarget {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
/**
|
|
7
|
+
* A mesa já tem comanda aberta.
|
|
8
|
+
*
|
|
9
|
+
* Não é o mesmo que indisponível, e é por isso que a marca existe em vez de
|
|
10
|
+
* um filtro só: **mudar a comanda INTEIRA** para uma mesa ocupada juntaria
|
|
11
|
+
* duas contas que ninguém pediu para juntar, e o V1 nem oferece
|
|
12
|
+
* (`fetchAvailableTables(true)`); **mudar UMA PESSOA** para uma mesa ocupada
|
|
13
|
+
* é o caso normal — «o Fabiano foi sentar com o pessoal da 11» — e lá a
|
|
14
|
+
* lista vem inteira (`fetchAvailableTables(false)`).
|
|
15
|
+
*
|
|
16
|
+
* Oferecer só mesa vazia nos dois casos fecha justamente o mais comum dos
|
|
17
|
+
* dois.
|
|
18
|
+
*/
|
|
19
|
+
occupied?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface TransferGuest {
|
|
22
|
+
id: string;
|
|
23
|
+
label: string;
|
|
24
|
+
/** Quitado: aparece marcado e não se transfere. */
|
|
25
|
+
settled?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Quanto ele já pôs, em centavos.
|
|
28
|
+
*
|
|
29
|
+
* O V1 bloqueia por PAGAMENTO, não por quitação — ver
|
|
30
|
+
* `guestTransferBlocked`. Quem pagou R$ 20 de R$ 50 não está quitado e
|
|
31
|
+
* também não se muda de mesa.
|
|
32
|
+
*/
|
|
33
|
+
paidCents?: number;
|
|
34
|
+
}
|
|
35
|
+
export interface TransferIntent {
|
|
36
|
+
kind: TransferKind;
|
|
37
|
+
toTableId?: string;
|
|
38
|
+
guestId?: string;
|
|
39
|
+
toGuestId?: string | null;
|
|
40
|
+
lineIds?: string[];
|
|
41
|
+
}
|
|
42
|
+
export declare function TransferSheet({ ticket, positionLabel, tables, guests, authorizers, error, onCancel, onConfirm, }: {
|
|
43
|
+
ticket: Ticket;
|
|
44
|
+
/** A mesa de onde se sai — o V1 mostra "Mesa atual:". */
|
|
45
|
+
positionLabel?: string;
|
|
46
|
+
/** As mesas para onde se pode ir. */
|
|
47
|
+
tables: TransferTarget[];
|
|
48
|
+
guests: TransferGuest[];
|
|
49
|
+
authorizers: Array<{
|
|
50
|
+
id: string;
|
|
51
|
+
name: string;
|
|
52
|
+
}>;
|
|
53
|
+
/**
|
|
54
|
+
* A recusa do SERVIDOR — PIN errado, alçada estourada, comanda travada.
|
|
55
|
+
*
|
|
56
|
+
* Vive na folha, e não num aviso atrás dela: a folha cobre a tela, e um
|
|
57
|
+
* recado que aparece por baixo não existe. Foi o que aconteceu ao portar a
|
|
58
|
+
* conferência de PIN — a autorização era recusada corretamente e o operador
|
|
59
|
+
* via a tela parada, sem uma palavra.
|
|
60
|
+
*/
|
|
61
|
+
error?: string;
|
|
62
|
+
onCancel: () => void;
|
|
63
|
+
onConfirm: (intent: TransferIntent) => void;
|
|
64
|
+
}): import("react").JSX.Element;
|
|
65
|
+
//# sourceMappingURL=TransferSheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransferSheet.d.ts","sourceRoot":"","sources":["../../src/screen/TransferSheet.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,WAAW,CAAA;AASnD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AA2CD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,GAC/E,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;CAC5C,+BA6OA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface UnassignedTable {
|
|
2
|
+
id: string;
|
|
3
|
+
/** Ausente ou 0 = a mesa não tem número, e o NOME identifica. */
|
|
4
|
+
number?: number | null;
|
|
5
|
+
name?: string | null;
|
|
6
|
+
seats?: number | null;
|
|
7
|
+
}
|
|
8
|
+
export declare function UnassignedTables({ tables, targetName, onPlace }: {
|
|
9
|
+
tables: UnassignedTable[];
|
|
10
|
+
/** O ambiente que vai receber a mesa. `null` desabilita o botão. */
|
|
11
|
+
targetName?: string | null;
|
|
12
|
+
onPlace: (table: UnassignedTable) => void;
|
|
13
|
+
}): import("react").JSX.Element | null;
|
|
14
|
+
//# sourceMappingURL=UnassignedTables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnassignedTables.d.ts","sourceRoot":"","sources":["../../src/screen/UnassignedTables.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;CAC1C,sCAqCA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type NewWaitlistEntry } from './waitlist';
|
|
2
|
+
export declare function WaitlistEntrySheet({ zones, onCancel, onConfirm, onLookupPhone, saving }: {
|
|
3
|
+
/** Os ambientes da casa. Vazio: a pergunta não aparece, como no V1. */
|
|
4
|
+
zones?: Array<{
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
}>;
|
|
8
|
+
onCancel: () => void;
|
|
9
|
+
onConfirm: (entry: NewWaitlistEntry) => void;
|
|
10
|
+
/**
|
|
11
|
+
* O telefone JÁ é de alguém?
|
|
12
|
+
*
|
|
13
|
+
* Regra do V1: se o número casa com uma ficha que existe, o walk-in entra no
|
|
14
|
+
* histórico daquela pessoa — e o nome se preenche sozinho. Se NÃO casa, nada
|
|
15
|
+
* é criado: quem passou na porta uma vez não vira cadastro sem querer.
|
|
16
|
+
*/
|
|
17
|
+
onLookupPhone?: (digits: string) => Promise<{
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
} | null>;
|
|
21
|
+
saving?: boolean;
|
|
22
|
+
}): import("react").JSX.Element;
|
|
23
|
+
//# sourceMappingURL=WaitlistEntrySheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaitlistEntrySheet.d.ts","sourceRoot":"","sources":["../../src/screen/WaitlistEntrySheet.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAA;AAEnB,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;IACxF,uEAAuE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5C,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC5C;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAChF,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,+BAuLA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { PosReservation } from '../app/config';
|
|
2
|
+
import { type WaitlistEntry } from './waitlist';
|
|
3
|
+
export declare function WaitlistView({ entries, reservations, zones, now, canSeat, onAdd, onCall, onSeat, onNoShow, onSeatReservation, onMarkArrived, busyId, query, }: {
|
|
4
|
+
entries: WaitlistEntry[];
|
|
5
|
+
/**
|
|
6
|
+
* As reservas do dia que ainda não sentaram.
|
|
7
|
+
*
|
|
8
|
+
* Elas entram NA MESMA lista, acima da fila: a casa já prometeu aquela mesa,
|
|
9
|
+
* e quem chegou sem reserva disputa o que sobrou. Duas listas em duas telas
|
|
10
|
+
* era o anfitrião cruzando as duas na cabeça — e errando quando o salão
|
|
11
|
+
* enche.
|
|
12
|
+
*/
|
|
13
|
+
reservations?: PosReservation[];
|
|
14
|
+
/** Os ambientes, só para nomear o «ambiente preferido» da linha. */
|
|
15
|
+
zones?: Array<{
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
}>;
|
|
19
|
+
now: number;
|
|
20
|
+
/**
|
|
21
|
+
* Existe mesa livre que comporta este grupo AGORA?
|
|
22
|
+
*
|
|
23
|
+
* A pergunta é feita por linha porque a resposta muda por linha: a mesa de
|
|
24
|
+
* dois que acabou de vagar serve o casal e não serve a família. Quem sabe é
|
|
25
|
+
* a tela que tem o salão inteiro, não esta lista.
|
|
26
|
+
*/
|
|
27
|
+
canSeat: (entry: WaitlistEntry) => boolean;
|
|
28
|
+
onAdd: () => void;
|
|
29
|
+
onCall: (entry: WaitlistEntry) => void;
|
|
30
|
+
onSeat: (entry: WaitlistEntry) => void;
|
|
31
|
+
onNoShow: (entry: WaitlistEntry) => void;
|
|
32
|
+
/** Acomodar a reserva — mesmo gesto do grupo da fila. */
|
|
33
|
+
onSeatReservation?: (reservation: PosReservation) => void;
|
|
34
|
+
/** O CHECK-IN: o grupo da reserva se apresentou na recepção. */
|
|
35
|
+
onMarkArrived?: (reservation: PosReservation) => void;
|
|
36
|
+
/** A linha que está esperando o servidor — só ela desliga. */
|
|
37
|
+
busyId?: string;
|
|
38
|
+
/** O termo da caixa de busca da coluna. Filtra os DOIS grupos. */
|
|
39
|
+
query?: string;
|
|
40
|
+
}): import("react").JSX.Element;
|
|
41
|
+
//# sourceMappingURL=WaitlistView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WaitlistView.d.ts","sourceRoot":"","sources":["../../src/screen/WaitlistView.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAGnD,OAAO,EAGoB,KAAK,aAAa,EAC5C,MAAM,YAAY,CAAA;AAEnB,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EAAE,YAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAChF,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,KAAU,GACrD,EAAE;IACD,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,cAAc,EAAE,CAAA;IAC/B,oEAAoE;IACpE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;OAMG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAA;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACxC,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,KAAK,IAAI,CAAA;IACzD,gEAAgE;IAChE,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,KAAK,IAAI,CAAA;IACrD,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,+BAkMA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Box, Point } from './floorGeometry';
|
|
2
|
+
import type { ZoneTool } from './zoneDraft';
|
|
3
|
+
export declare function ZoneDrawLayer({ tool, color, box, stroke }: {
|
|
4
|
+
tool: ZoneTool;
|
|
5
|
+
color: string;
|
|
6
|
+
/** Retângulo/elipse: a caixa do arrasto. */
|
|
7
|
+
box: Box | null;
|
|
8
|
+
/** Mão livre: o traço cru, em metros. */
|
|
9
|
+
stroke: Point[];
|
|
10
|
+
}): import("react").JSX.Element | null;
|
|
11
|
+
//# sourceMappingURL=ZoneDrawLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoneDrawLayer.d.ts","sourceRoot":"","sources":["../../src/screen/ZoneDrawLayer.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAC1D,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,4CAA4C;IAC5C,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;IACf,yCAAyC;IACzC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,sCAyCA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Point } from './floorGeometry';
|
|
2
|
+
import { type ZoneGeometry } from './zoneEditing';
|
|
3
|
+
export declare function ZoneHandles<T extends ZoneGeometry & {
|
|
4
|
+
name: string;
|
|
5
|
+
}>({ zone, ppm, toWorld, onPreview, onCommit, onRefuse, }: {
|
|
6
|
+
/** A praça COMO ESTÁ NO BANCO — a base de todo delta do gesto. */
|
|
7
|
+
zone: T;
|
|
8
|
+
/** Pixels por metro do enquadramento: as alças têm tamanho de tela. */
|
|
9
|
+
ppm: number;
|
|
10
|
+
toWorld: (clientX: number, clientY: number) => Point;
|
|
11
|
+
/** Durante o gesto: a praça como ela FICARÁ, para o desenho acompanhar. */
|
|
12
|
+
onPreview: (z: T | null) => void;
|
|
13
|
+
/** Ao soltar: só os campos que mudaram. */
|
|
14
|
+
onCommit: (patch: Partial<ZoneGeometry>) => void;
|
|
15
|
+
/** A recusa, com a frase que explica qual regra foi encostada. */
|
|
16
|
+
onRefuse: (reason: string) => void;
|
|
17
|
+
}): import("react").JSX.Element | null;
|
|
18
|
+
//# sourceMappingURL=ZoneHandles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoneHandles.d.ts","sourceRoot":"","sources":["../../src/screen/ZoneHandles.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAEkD,KAAK,KAAK,EAClE,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAgE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AAS/G,wBAAgB,WAAW,CAAC,CAAC,SAAS,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EACrE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAClD,EAAE;IACD,kEAAkE;IAClE,IAAI,EAAE,CAAC,CAAA;IACP,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,KAAK,CAAA;IACpD,2EAA2E;IAC3E,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAA;IAChC,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAA;IAChD,kEAAkE;IAClE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC,sCA4KA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ZoneGeometry } from './zoneEditing';
|
|
2
|
+
export interface InspectorZone extends ZoneGeometry {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
color?: string | null;
|
|
6
|
+
}
|
|
7
|
+
/** A mesa como a ficha a lista. */
|
|
8
|
+
export interface InspectorZoneTable {
|
|
9
|
+
id: string;
|
|
10
|
+
label: string;
|
|
11
|
+
name?: string | null;
|
|
12
|
+
/** Os nomes das OUTRAS praças a que ela pertence — o «também em:». */
|
|
13
|
+
alsoIn?: string[];
|
|
14
|
+
}
|
|
15
|
+
export declare function ZoneInspector({ zone, tables, picking, onPick, onRename, onRecolor, onDropTable, onZoom, onDelete, }: {
|
|
16
|
+
zone: InspectorZone;
|
|
17
|
+
tables: InspectorZoneTable[];
|
|
18
|
+
/** O modo «escolher na planta» está ligado? */
|
|
19
|
+
picking: boolean;
|
|
20
|
+
onPick: (v: boolean) => void;
|
|
21
|
+
onRename: (name: string) => void;
|
|
22
|
+
onRecolor: (color: string) => void;
|
|
23
|
+
onDropTable: (tableId: string) => void;
|
|
24
|
+
onZoom?: () => void;
|
|
25
|
+
onDelete?: () => void;
|
|
26
|
+
}): import("react").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=ZoneInspector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoneInspector.d.ts","sourceRoot":"","sources":["../../src/screen/ZoneInspector.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AAE7D,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AASD,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAClF,EAAE;IACD,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,kBAAkB,EAAE,CAAA;IAC5B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB,+BAgJA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Esta forma PERGUNTA a conta?
|
|
3
|
+
*
|
|
4
|
+
* Dinheiro não. `financial_receive_payment` ignora `p_account_id` quando o
|
|
5
|
+
* método é `cash` e liquida na sessão de caixa ABERTA do operador — a conta
|
|
6
|
+
* escolhida não vai a lugar nenhum.
|
|
7
|
+
*
|
|
8
|
+
* E perguntar mesmo assim não era só inútil: o `allowed_account_types` do
|
|
9
|
+
* `cash` inclui `cash_session`, e o cluster do Pertinho tem 118 delas. O
|
|
10
|
+
* seletor listava **26 sessões de outros dias e de outras pessoas** —
|
|
11
|
+
* «Caixa 04/05/2026 - SILVIO MAIA GMAIL» entre elas. Escolher uma afirmava ao
|
|
12
|
+
* operador que o dinheiro ia para o caixa de outra pessoa, num dia que já
|
|
13
|
+
* fechou. Um campo que mente é pior que um campo ausente.
|
|
14
|
+
*/
|
|
15
|
+
export declare function methodAsksAccount(transactionType: string | null | undefined): boolean;
|
|
16
|
+
export declare function accountFitsMethod(transactionType: string | null | undefined, accountKind: string | null | undefined): boolean;
|
|
17
|
+
//# sourceMappingURL=accountFit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountFit.d.ts","sourceRoot":"","sources":["../../src/screen/accountFit.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAErF;AAED,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACrC,OAAO,CAQT"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface PickableAccount {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
kind: string;
|
|
5
|
+
/** A unidade dona. `null`/ausente = conta da conta inteira. */
|
|
6
|
+
unitId?: string | null;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Resolve o empate por nome, preferindo a unidade ativa.
|
|
10
|
+
*
|
|
11
|
+
* Sem unidade ativa — ou quando nenhuma das homônimas é dela — a primeira
|
|
12
|
+
* sobrevive, e a ordem de entrada manda. Nunca some com um nome inteiro: o
|
|
13
|
+
* seletor perde a linha repetida, não a opção.
|
|
14
|
+
*/
|
|
15
|
+
export declare function dedupeAccountsByName<T extends PickableAccount>(accounts: readonly T[], activeUnitId?: string | null): T[];
|
|
16
|
+
//# sourceMappingURL=accountPick.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountPick.d.ts","sourceRoot":"","sources":["../../src/screen/accountPick.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,eAAe,EAC5D,QAAQ,EAAE,SAAS,CAAC,EAAE,EACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,CAAC,EAAE,CAcL"}
|