@flowselections/pick-schermen-kwekers 1.0.36 → 1.0.39
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-lib/components/pick/PickScherm.d.ts.map +1 -1
- package/dist-lib/components/pick/PickScherm.js +3 -2
- package/dist-lib/components/pick/StickerState.d.ts +11 -0
- package/dist-lib/components/pick/StickerState.d.ts.map +1 -0
- package/dist-lib/components/pick/StickerState.js +45 -0
- package/dist-lib/index.d.ts +2 -0
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +2 -0
- package/dist-lib/integrations/supabase/types.d.ts +897 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/__tests__/pickStickers.test.d.ts +2 -0
- package/dist-lib/lib/__tests__/pickStickers.test.d.ts.map +1 -0
- package/dist-lib/lib/__tests__/pickStickers.test.js +25 -0
- package/dist-lib/lib/__tests__/pickStickers138.test.d.ts +2 -0
- package/dist-lib/lib/__tests__/pickStickers138.test.d.ts.map +1 -0
- package/dist-lib/lib/__tests__/pickStickers138.test.js +32 -0
- package/dist-lib/lib/pickRowState.d.ts +1 -1
- package/dist-lib/lib/pickRowState.d.ts.map +1 -1
- package/dist-lib/lib/pickRowState.js +1 -1
- package/dist-lib/lib/pickStickers.d.ts +41 -0
- package/dist-lib/lib/pickStickers.d.ts.map +1 -0
- package/dist-lib/lib/pickStickers.js +111 -0
- package/dist-lib/lib/pickTypes.js +2 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PickScherm.d.ts","sourceRoot":"","sources":["../../../src/components/pick/PickScherm.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"PickScherm.d.ts","sourceRoot":"","sources":["../../../src/components/pick/PickScherm.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAuD7B,UAAU,KAAK;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAwBD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,+BAm9DpD"}
|
|
@@ -22,6 +22,7 @@ import { usePrintBatch, usePrintJob } from "../../hooks/usePrintJob";
|
|
|
22
22
|
import { useShippingNoteStatus } from "../../hooks/useShippingNoteStatus";
|
|
23
23
|
import { firstVisibleTarget, isJobFinished, isRowGoneError, NO_ROW_IN_FILTER_MESSAGE, RELEASE_PENDING_MESSAGE, ROW_GONE_MESSAGE, stuckMessage, stuckMinutesOf, } from "../../lib/pickRowState";
|
|
24
24
|
import { CartItemRows, PlanWarnings } from "./CartItemRows";
|
|
25
|
+
import { CartStickerState, OrderStickerMeldingen } from "./StickerState";
|
|
25
26
|
import { isWaitingShippingNote, shippingNoteMessage, shippingNoteSourceLabel, } from "../../lib/shippingNoteStatus";
|
|
26
27
|
const LANG_STORAGE_KEY = "pick.language";
|
|
27
28
|
/** Melding als de planning voor deze order geen karren heeft vastgelegd. */
|
|
@@ -1213,7 +1214,7 @@ export function PickScherm({ station, onBack }) {
|
|
|
1213
1214
|
? "De pakbon wordt bij de bron opgevraagd. Zodra alles compleet is, verschijnt de printknop weer."
|
|
1214
1215
|
: planReason
|
|
1215
1216
|
? `${planReason} Klik op "Pakbon ophalen" om hem bij de bron op te vragen.`
|
|
1216
|
-
: NOT_READY_NOTICE })] }) })), cartPlan && (_jsxs(CardContent, { className: "border-t p-4 sm:p-5", children: [_jsx("div", { className: "mb-3 empty:hidden", children: _jsx(PlanWarnings, { warnings: cartPlan.warnings }) }), _jsxs("div", { className: "grid gap-3 lg:grid-cols-[minmax(0,0.8fr)_minmax(0,1.2fr)]", children: [_jsxs("div", { className: "space-y-2", children: [_jsx("p", { className: "text-sm font-semibold text-foreground", children: "Karren van deze order" }), _jsx("div", { className: "max-h-72 space-y-2 overflow-y-auto rounded-md border p-2", children: cartPlan.carts.map((cart) => {
|
|
1217
|
+
: NOT_READY_NOTICE })] }) })), cartPlan && (_jsxs(CardContent, { className: "border-t p-4 sm:p-5", children: [_jsx(OrderStickerMeldingen, { orderId: cartPlan.orderId, slug: station.slug ?? null }), _jsx("div", { className: "mb-3 empty:hidden", children: _jsx(PlanWarnings, { warnings: cartPlan.warnings }) }), _jsxs("div", { className: "grid gap-3 lg:grid-cols-[minmax(0,0.8fr)_minmax(0,1.2fr)]", children: [_jsxs("div", { className: "space-y-2", children: [_jsx("p", { className: "text-sm font-semibold text-foreground", children: "Karren van deze order" }), _jsx("div", { className: "max-h-72 space-y-2 overflow-y-auto rounded-md border p-2", children: cartPlan.carts.map((cart) => {
|
|
1217
1218
|
const done = printedCartIdsOf(pending).includes(cart.cartId);
|
|
1218
1219
|
const active = cart.cartId === activeCartId;
|
|
1219
1220
|
return (_jsxs("div", { role: "button", tabIndex: 0, onClick: () => setActiveCartId(cart.cartId), onKeyDown: (event) => {
|
|
@@ -1231,7 +1232,7 @@ export function PickScherm({ station, onBack }) {
|
|
|
1231
1232
|
const activeCart = cartPlan.carts.find((cart) => cart.cartId === activeCartId);
|
|
1232
1233
|
if (!activeCart)
|
|
1233
1234
|
return null;
|
|
1234
|
-
return (_jsxs("div", { className: "rounded-md border bg-muted/20 p-4", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsxs("div", { children: [_jsx("p", { className: "text-lg font-bold text-foreground", children: activeCart.cartLabel }), _jsxs("p", { className: "text-sm text-muted-foreground", children: [activeCart.isFullCart ? "Volle kar" : "Halve kar (deel van de order)", activeCart.isShared ? " · gedeeld" : ""] })] }), activeCart.barcode && _jsx(Badge, { variant: "outline", children: activeCart.barcode })] }), _jsx("div", { className: "mt-4 divide-y rounded-md border bg-background", children: _jsx(CartItemRows, { items: activeCart.items, cartId: activeCart.cartId }) })] }));
|
|
1235
|
+
return (_jsxs("div", { className: "rounded-md border bg-muted/20 p-4", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsxs("div", { children: [_jsx("p", { className: "text-lg font-bold text-foreground", children: activeCart.cartLabel }), _jsxs("p", { className: "text-sm text-muted-foreground", children: [activeCart.isFullCart ? "Volle kar" : "Halve kar (deel van de order)", activeCart.isShared ? " · gedeeld" : ""] })] }), activeCart.barcode && _jsx(Badge, { variant: "outline", children: activeCart.barcode })] }), _jsx("div", { className: "mt-4 divide-y rounded-md border bg-background", children: _jsx(CartItemRows, { items: activeCart.items, cartId: activeCart.cartId }) }), _jsx(CartStickerState, { cartId: activeCart.cartId, slug: station.slug ?? null })] }));
|
|
1235
1236
|
})()] })] }))] })), batch && (_jsx(Card, { className: batchFailed > 0 ? "border-2 border-destructive" : "border-2 border-primary/40", children: _jsxs(CardContent, { className: "flex items-center gap-3 p-4", children: [batchCompleted + batchFailed === batch.jobs.length ? (batchFailed > 0 ? _jsx(AlertTriangle, { className: "h-6 w-6 shrink-0 text-destructive" }) : _jsx(CheckCircle2, { className: "h-6 w-6 shrink-0 text-primary" })) : (_jsx(Loader2, { className: "h-6 w-6 shrink-0 animate-spin text-muted-foreground" })), _jsxs("div", { className: "min-w-0", children: [_jsxs("p", { className: "truncate text-sm text-muted-foreground", children: [jobTexts.jobTitle, batch.documentNumber ? ` · ${batch.documentNumber}` : ""] }), _jsxs("p", { className: "font-semibold text-foreground", children: [batchCompleted, " van ", batch.jobs.length, " pakbonnen voltooid", batchFailed > 0 ? ` · ${batchFailed} mislukt` : ""] }), batch.jobs.map((entry) => {
|
|
1236
1237
|
const minutes = stuckMinutesOf(entry.job, sentAtRef.current.get(entry.jobId) ?? null, nowTick);
|
|
1237
1238
|
if (minutes === null)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Actuele stickermeldingen van de Engine, letterlijk, bovenaan de order. */
|
|
2
|
+
export declare function OrderStickerMeldingen({ orderId, slug }: {
|
|
3
|
+
orderId: string | null;
|
|
4
|
+
slug: string | null;
|
|
5
|
+
}): import("react").JSX.Element | null;
|
|
6
|
+
/** Stand van de stickers van één kar; alleen tonen, nooit printen. */
|
|
7
|
+
export declare function CartStickerState({ cartId, slug }: {
|
|
8
|
+
cartId: string;
|
|
9
|
+
slug: string | null;
|
|
10
|
+
}): import("react").JSX.Element | null;
|
|
11
|
+
//# sourceMappingURL=StickerState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StickerState.d.ts","sourceRoot":"","sources":["../../../src/components/pick/StickerState.tsx"],"names":[],"mappings":"AAWA,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,sCAoBvG;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,sCAqCzF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
import { fetchCartStickerState, fetchOrderStickerMeldingen, STICKER_UNKNOWN, stickerStatusLabel, stickerSummary, } from "../../lib/pickStickers";
|
|
4
|
+
const POLL = 15000;
|
|
5
|
+
/** Actuele stickermeldingen van de Engine, letterlijk, bovenaan de order. */
|
|
6
|
+
export function OrderStickerMeldingen({ orderId, slug }) {
|
|
7
|
+
const q = useQuery({
|
|
8
|
+
queryKey: ["pick", "sticker-meldingen", orderId, slug],
|
|
9
|
+
queryFn: () => fetchOrderStickerMeldingen(orderId, slug),
|
|
10
|
+
enabled: !!orderId,
|
|
11
|
+
refetchInterval: POLL,
|
|
12
|
+
placeholderData: (prev) => prev,
|
|
13
|
+
retry: 1,
|
|
14
|
+
});
|
|
15
|
+
if (!orderId || q.isLoading)
|
|
16
|
+
return null;
|
|
17
|
+
if (q.isError || q.data == null) {
|
|
18
|
+
return _jsxs("p", { className: "mb-3 text-xs text-muted-foreground", children: ["Stickermeldingen: ", STICKER_UNKNOWN] });
|
|
19
|
+
}
|
|
20
|
+
const list = Array.isArray(q.data) ? q.data : [];
|
|
21
|
+
if (list.length === 0)
|
|
22
|
+
return null;
|
|
23
|
+
return (_jsx("div", { role: "status", className: "mb-3 space-y-1 rounded-md border-2 border-primary/40 bg-primary/5 p-3 text-sm text-foreground", children: list.map((m, i) => _jsx("p", { children: m.tekst }, m.id ?? `${i}-${m.tekst}`)) }));
|
|
24
|
+
}
|
|
25
|
+
/** Stand van de stickers van één kar; alleen tonen, nooit printen. */
|
|
26
|
+
export function CartStickerState({ cartId, slug }) {
|
|
27
|
+
const q = useQuery({
|
|
28
|
+
queryKey: ["pick", "sticker-state", cartId, slug],
|
|
29
|
+
queryFn: () => fetchCartStickerState(cartId, slug),
|
|
30
|
+
refetchInterval: POLL,
|
|
31
|
+
placeholderData: (prev) => prev,
|
|
32
|
+
retry: 1,
|
|
33
|
+
});
|
|
34
|
+
if (q.isLoading)
|
|
35
|
+
return null;
|
|
36
|
+
if (q.isError || !q.data) {
|
|
37
|
+
return _jsx("p", { className: "mt-3 text-xs text-muted-foreground", children: STICKER_UNKNOWN });
|
|
38
|
+
}
|
|
39
|
+
const s = q.data;
|
|
40
|
+
const regels = Array.isArray(s.regels) ? s.regels : [];
|
|
41
|
+
const summary = stickerSummary(s);
|
|
42
|
+
if (s.totaal === 0)
|
|
43
|
+
return _jsx("p", { className: "mt-3 text-xs text-muted-foreground", children: summary });
|
|
44
|
+
return (_jsxs("details", { className: "mt-3 rounded-md border bg-background p-3 text-sm", children: [_jsxs("summary", { className: "cursor-pointer font-medium text-foreground", children: ["Stickers: ", s.totaal ?? regels.length, " \u00B7 in de printwachtrij ", s.inPrintwachtrij ?? "—", " \u00B7 wachtend ", s.wachtend ?? "—", " \u00B7 geblokkeerd ", s.geblokkeerd ?? "—"] }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "In de printwachtrij betekent nog niet fysiek geprint." }), _jsx("ul", { className: "mt-2 divide-y", children: regels.map((r, i) => (_jsxs("li", { className: "flex flex-wrap justify-between gap-2 py-1.5 text-xs", children: [_jsxs("span", { className: "text-foreground", children: [r.soort ?? "sticker", " \u00B7 ", r.kopieen ?? "—", "x", r.breedteMm && r.hoogteMm ? ` · ${r.breedteMm}x${r.hoogteMm} mm` : ""] }), _jsxs("span", { className: "text-muted-foreground", children: [stickerStatusLabel(r.status), r.reden ? ` — ${r.reden}` : ""] })] }, r.stickerId ?? i))) })] }));
|
|
45
|
+
}
|
package/dist-lib/index.d.ts
CHANGED
|
@@ -25,4 +25,6 @@ export { usePickReferenceData, PICK_REFERENCE_QUERY_KEY } from './hooks/usePickR
|
|
|
25
25
|
export { ReferentiedataPickdocumentenCard } from './components/settings/ReferentiedataPickdocumentenCard';
|
|
26
26
|
export { ReferentiedataBanner } from './components/pick/ReferentiedataBanner';
|
|
27
27
|
export declare const pickSchermenModule: FlowModule;
|
|
28
|
+
export * from './lib/pickStickers';
|
|
29
|
+
export { CartStickerState, OrderStickerMeldingen } from './components/pick/StickerState';
|
|
28
30
|
//# sourceMappingURL=index.d.ts.map
|
package/dist-lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,gCAAgC,EAAE,MAAM,wDAAwD,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,eAAO,MAAM,kBAAkB,EAAE,UAYhC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,gCAAgC,EAAE,MAAM,wDAAwD,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,eAAO,MAAM,kBAAkB,EAAE,UAYhC,CAAC;AAEF,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC"}
|
package/dist-lib/index.js
CHANGED