@flowselections/floriday-afhandeling-module 1.0.15 → 1.0.16
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/afhandeling/LeveringenPage.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/LeveringenPage.js +2 -2
- package/dist-lib/components/afhandeling/PickAgendaView.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/PickAgendaView.js +2 -3
- package/dist-lib/components/afhandeling/WeekAgendaView.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/WeekAgendaView.js +31 -17
- package/dist-lib/components/engine/CapaciteitsmaatregelenPage.d.ts +2 -0
- package/dist-lib/components/engine/CapaciteitsmaatregelenPage.d.ts.map +1 -0
- package/dist-lib/components/engine/CapaciteitsmaatregelenPage.js +40 -0
- package/dist-lib/components/engine/CapaciteitsmonitorPage.d.ts +2 -0
- package/dist-lib/components/engine/CapaciteitsmonitorPage.d.ts.map +1 -0
- package/dist-lib/components/engine/CapaciteitsmonitorPage.js +49 -0
- package/dist-lib/components/engine/FormulesPage.d.ts +2 -0
- package/dist-lib/components/engine/FormulesPage.d.ts.map +1 -0
- package/dist-lib/components/engine/FormulesPage.js +255 -0
- package/dist-lib/components/engine/PlaceholderPage.d.ts +6 -0
- package/dist-lib/components/engine/PlaceholderPage.d.ts.map +1 -0
- package/dist-lib/components/engine/PlaceholderPage.js +6 -0
- package/dist-lib/components/engine/StrategieenPage.d.ts +2 -0
- package/dist-lib/components/engine/StrategieenPage.d.ts.map +1 -0
- package/dist-lib/components/engine/StrategieenPage.js +80 -0
- package/dist-lib/components/pickstation/PickstationPage.d.ts.map +1 -1
- package/dist-lib/components/pickstation/PickstationPage.js +16 -4
- package/dist-lib/hooks/useOrderPlanning.d.ts.map +1 -1
- package/dist-lib/hooks/useOrderPlanning.js +37 -3
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +2 -1
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +1340 -164
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.d.ts +1340 -164
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +1340 -164
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +1469 -262
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/afhandelingSettings.functions.d.ts +2862 -510
- package/dist-lib/lib/afhandelingSettings.functions.d.ts.map +1 -1
- package/dist-lib/lib/ai-gateway.server.d.ts +2 -0
- package/dist-lib/lib/ai-gateway.server.d.ts.map +1 -0
- package/dist-lib/lib/ai-gateway.server.js +11 -0
- package/dist-lib/lib/authGateway.server.d.ts +16 -0
- package/dist-lib/lib/authGateway.server.d.ts.map +1 -0
- package/dist-lib/lib/authGateway.server.js +195 -0
- package/dist-lib/lib/carriers.functions.d.ts +6645 -765
- package/dist-lib/lib/carriers.functions.d.ts.map +1 -1
- package/dist-lib/lib/cartAssignments.functions.d.ts +6645 -765
- package/dist-lib/lib/cartAssignments.functions.d.ts.map +1 -1
- package/dist-lib/lib/cartControl.functions.d.ts +13290 -1530
- package/dist-lib/lib/cartControl.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday.functions.d.ts +1340 -164
- package/dist-lib/lib/floriday.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday.functions.js +41 -8
- package/dist-lib/lib/logisticsEngine/capacity.functions.d.ts +50090 -0
- package/dist-lib/lib/logisticsEngine/capacity.functions.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/capacity.functions.js +90 -0
- package/dist-lib/lib/logisticsEngine/config.d.ts +140 -0
- package/dist-lib/lib/logisticsEngine/config.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/config.js +488 -0
- package/dist-lib/lib/logisticsEngine/enginePickTime.d.ts +29 -0
- package/dist-lib/lib/logisticsEngine/enginePickTime.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/enginePickTime.js +136 -0
- package/dist-lib/lib/logisticsEngine/evaluate.functions.d.ts +12556 -0
- package/dist-lib/lib/logisticsEngine/evaluate.functions.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/evaluate.functions.js +104 -0
- package/dist-lib/lib/logisticsEngine/expression.d.ts +21 -0
- package/dist-lib/lib/logisticsEngine/expression.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/expression.js +263 -0
- package/dist-lib/lib/logisticsEngine/formulas.functions.d.ts +25068 -0
- package/dist-lib/lib/logisticsEngine/formulas.functions.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/formulas.functions.js +58 -0
- package/dist-lib/lib/logisticsEngine/safetyLayer.d.ts +83 -0
- package/dist-lib/lib/logisticsEngine/safetyLayer.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/safetyLayer.js +182 -0
- package/dist-lib/lib/logisticsEngine/strategies.functions.d.ts +100185 -0
- package/dist-lib/lib/logisticsEngine/strategies.functions.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/strategies.functions.js +176 -0
- package/dist-lib/lib/logisticsEngine/variables.d.ts +29 -0
- package/dist-lib/lib/logisticsEngine/variables.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/variables.js +144 -0
- package/dist-lib/lib/logisticsEngine/wizard.functions.d.ts +50096 -0
- package/dist-lib/lib/logisticsEngine/wizard.functions.d.ts.map +1 -0
- package/dist-lib/lib/logisticsEngine/wizard.functions.js +175 -0
- package/dist-lib/lib/pickstationI18n.d.ts +2 -0
- package/dist-lib/lib/pickstationI18n.d.ts.map +1 -1
- package/dist-lib/lib/pickstationI18n.js +12 -0
- package/dist-lib/lib/pickstationOrders.server.d.ts +5 -0
- package/dist-lib/lib/pickstationOrders.server.d.ts.map +1 -1
- package/dist-lib/lib/pickstationOrders.server.js +29 -0
- package/dist-lib/lib/pickstationTypes.d.ts +4 -0
- package/dist-lib/lib/pickstationTypes.d.ts.map +1 -1
- package/package.json +6 -4
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { createServerFn } from "@tanstack/react-start";
|
|
2
|
+
import { requireSupabaseAuth } from "../../integrations/supabase/auth-middleware";
|
|
3
|
+
import { DEFAULT_CAPACITY_SETTINGS, evaluateCapacity, } from "./safetyLayer";
|
|
4
|
+
function mergeSettings(raw) {
|
|
5
|
+
const r = (raw ?? {});
|
|
6
|
+
return {
|
|
7
|
+
...DEFAULT_CAPACITY_SETTINGS,
|
|
8
|
+
...r,
|
|
9
|
+
measures: Array.isArray(r.measures) && r.measures.length > 0 ? r.measures : DEFAULT_CAPACITY_SETTINGS.measures,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export const getCapacitySettings = createServerFn({ method: "GET" })
|
|
13
|
+
.middleware([requireSupabaseAuth])
|
|
14
|
+
.handler(async ({ context }) => {
|
|
15
|
+
const supabase = context.supabase;
|
|
16
|
+
const { data, error } = await supabase
|
|
17
|
+
.from("logistics_capacity_settings")
|
|
18
|
+
.select("settings")
|
|
19
|
+
.eq("user_id", context.userId)
|
|
20
|
+
.maybeSingle();
|
|
21
|
+
if (error)
|
|
22
|
+
throw new Error(error.message);
|
|
23
|
+
return { settings: mergeSettings(data?.settings) };
|
|
24
|
+
});
|
|
25
|
+
export const saveCapacitySettings = createServerFn({ method: "POST" })
|
|
26
|
+
.middleware([requireSupabaseAuth])
|
|
27
|
+
.inputValidator((d) => ({ settings: d.settings }))
|
|
28
|
+
.handler(async ({ data, context }) => {
|
|
29
|
+
const supabase = context.supabase;
|
|
30
|
+
const clean = mergeSettings(data.settings);
|
|
31
|
+
const { error } = await supabase
|
|
32
|
+
.from("logistics_capacity_settings")
|
|
33
|
+
.upsert({
|
|
34
|
+
user_id: context.userId,
|
|
35
|
+
settings: clean,
|
|
36
|
+
updated_at: new Date().toISOString(),
|
|
37
|
+
}, { onConflict: "user_id" });
|
|
38
|
+
if (error)
|
|
39
|
+
throw new Error(error.message);
|
|
40
|
+
return { ok: true, settings: clean };
|
|
41
|
+
});
|
|
42
|
+
export const evaluateCapacityFn = createServerFn({ method: "POST" })
|
|
43
|
+
.middleware([requireSupabaseAuth])
|
|
44
|
+
.inputValidator((d) => ({
|
|
45
|
+
input: d.input,
|
|
46
|
+
log: d.log !== false,
|
|
47
|
+
note: d.note ?? null,
|
|
48
|
+
}))
|
|
49
|
+
.handler(async ({ data, context }) => {
|
|
50
|
+
const supabase = context.supabase;
|
|
51
|
+
const { data: row } = await supabase
|
|
52
|
+
.from("logistics_capacity_settings")
|
|
53
|
+
.select("settings")
|
|
54
|
+
.eq("user_id", context.userId)
|
|
55
|
+
.maybeSingle();
|
|
56
|
+
const settings = mergeSettings(row?.settings);
|
|
57
|
+
const evaluation = evaluateCapacity(data.input, settings);
|
|
58
|
+
if (data.log) {
|
|
59
|
+
await supabase.from("logistics_capacity_events").insert({
|
|
60
|
+
user_id: context.userId,
|
|
61
|
+
status: evaluation.status,
|
|
62
|
+
required_carts: evaluation.requiredCarts,
|
|
63
|
+
available_carts: evaluation.availableCarts,
|
|
64
|
+
reserve_minutes: evaluation.reserveMinutes,
|
|
65
|
+
shortage_carts: evaluation.shortageCarts,
|
|
66
|
+
measures: evaluation.measures,
|
|
67
|
+
outcome: evaluation.status === "green"
|
|
68
|
+
? "healthy"
|
|
69
|
+
: evaluation.stillShortAfterMeasures > 0
|
|
70
|
+
? "needs-intervention"
|
|
71
|
+
: "measures-suggested",
|
|
72
|
+
note: data.note,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return { evaluation };
|
|
76
|
+
});
|
|
77
|
+
export const listCapacityEvents = createServerFn({ method: "GET" })
|
|
78
|
+
.middleware([requireSupabaseAuth])
|
|
79
|
+
.handler(async ({ context }) => {
|
|
80
|
+
const supabase = context.supabase;
|
|
81
|
+
const { data, error } = await supabase
|
|
82
|
+
.from("logistics_capacity_events")
|
|
83
|
+
.select("*")
|
|
84
|
+
.eq("user_id", context.userId)
|
|
85
|
+
.order("created_at", { ascending: false })
|
|
86
|
+
.limit(50);
|
|
87
|
+
if (error)
|
|
88
|
+
throw new Error(error.message);
|
|
89
|
+
return { events: (data ?? []) };
|
|
90
|
+
});
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wizard-configuratie voor de Logistieke Configurator.
|
|
3
|
+
* De gebruiker beantwoordt vragen in gewone taal; deze module vertaalt
|
|
4
|
+
* de antwoorden naar de onderliggende formules per slot.
|
|
5
|
+
*/
|
|
6
|
+
export type OrderMode = "per-order" | "per-customer" | "per-location" | "per-cart" | "custom";
|
|
7
|
+
export type CombineMode = "none" | "auction" | "bvo" | "all";
|
|
8
|
+
export type CustomersPerLayer = "multi" | "single";
|
|
9
|
+
export type CartFullMode = "auto" | "pct" | "layers" | "weight" | "custom";
|
|
10
|
+
export type PackingSlipTiming = "cart-full" | "batch-close" | "pickstation";
|
|
11
|
+
export type DeliveryNoteTiming = "floriday" | "pickstation" | "manual";
|
|
12
|
+
export type PickReadyMode = "auto" | "custom";
|
|
13
|
+
export type PickReadyControl = "none" | "quality" | "cart" | "both" | "manual";
|
|
14
|
+
export type PickPlanningReleaseMode = "latest" | "hours-before-departure" | "between-signup-window" | "fixed-time" | "days-before-delivery" | "manual" | "custom";
|
|
15
|
+
export interface WorkBreak {
|
|
16
|
+
/** Starttijd pauze "HH:MM". */
|
|
17
|
+
start: string;
|
|
18
|
+
/** Eindtijd pauze "HH:MM". */
|
|
19
|
+
end: string;
|
|
20
|
+
/** Optioneel label, bv. "Lunch". */
|
|
21
|
+
label?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface WorkingSchedule {
|
|
24
|
+
/** ISO-dagnummers waarop het pickteam werkt (1=ma … 7=zo). */
|
|
25
|
+
weekdays: number[];
|
|
26
|
+
/** Starttijd werkdag "HH:MM". */
|
|
27
|
+
startTime: string;
|
|
28
|
+
/** Eindtijd werkdag "HH:MM". */
|
|
29
|
+
endTime: string;
|
|
30
|
+
/** Pauzes die van de beschikbare werktijd worden afgetrokken. */
|
|
31
|
+
breaks: WorkBreak[];
|
|
32
|
+
}
|
|
33
|
+
export interface WizardConfig {
|
|
34
|
+
orderMode: OrderMode;
|
|
35
|
+
workingSchedule: WorkingSchedule;
|
|
36
|
+
combine: {
|
|
37
|
+
mode: CombineMode;
|
|
38
|
+
maxLayersOwnCart: number;
|
|
39
|
+
maxCustomersPerCart: number;
|
|
40
|
+
sameCarrier: boolean;
|
|
41
|
+
sameRoute: boolean;
|
|
42
|
+
sameLocation: boolean;
|
|
43
|
+
sameCrateType: boolean;
|
|
44
|
+
sameDeliveryDate: boolean;
|
|
45
|
+
customersPerLayer: CustomersPerLayer;
|
|
46
|
+
};
|
|
47
|
+
cartFull: {
|
|
48
|
+
mode: CartFullMode;
|
|
49
|
+
fillPct: number;
|
|
50
|
+
maxLayers: number;
|
|
51
|
+
maxWeight: number;
|
|
52
|
+
customExpression: string;
|
|
53
|
+
};
|
|
54
|
+
cartClose: {
|
|
55
|
+
whenFull: boolean;
|
|
56
|
+
whenCapacityReached: boolean;
|
|
57
|
+
when30minLeft: boolean;
|
|
58
|
+
whenTransportRegistered: boolean;
|
|
59
|
+
onlyManual: boolean;
|
|
60
|
+
};
|
|
61
|
+
documents: {
|
|
62
|
+
packingSlip: PackingSlipTiming;
|
|
63
|
+
deliveryNote: DeliveryNoteTiming;
|
|
64
|
+
};
|
|
65
|
+
pickPlanningRelease: {
|
|
66
|
+
mode: PickPlanningReleaseMode;
|
|
67
|
+
hoursBeforeDeparture: number;
|
|
68
|
+
fixedTime: string;
|
|
69
|
+
daysBeforeDelivery: number;
|
|
70
|
+
safetyBufferMinutes: number;
|
|
71
|
+
customExpression: string;
|
|
72
|
+
/** Vensterbreedte: hoeveel werkuren vóór het aanmeldmoment mogen karren naar het Pickstation. */
|
|
73
|
+
hoursBeforeSignupWindow: number;
|
|
74
|
+
/** Extra werkuren dat karren eerder naar het Pickstation mogen als het te druk wordt. */
|
|
75
|
+
earlyPickHours: number;
|
|
76
|
+
/** Mogen niet-volle karren ook vóór het aanmeldmoment vrijgegeven worden? */
|
|
77
|
+
incompleteCartsBeforeSignup: boolean;
|
|
78
|
+
/** Buffer als vaste minuten of als percentage van benodigde picktijd. */
|
|
79
|
+
safetyBufferMode: "minutes" | "percent";
|
|
80
|
+
safetyBufferPercent: number;
|
|
81
|
+
};
|
|
82
|
+
pickstationVisibility: {
|
|
83
|
+
mode: PickReadyMode;
|
|
84
|
+
logistics: {
|
|
85
|
+
batchClosed: boolean;
|
|
86
|
+
cartBuilt: boolean;
|
|
87
|
+
cartFull: boolean;
|
|
88
|
+
plannerApproved: boolean;
|
|
89
|
+
capacityReleased: boolean;
|
|
90
|
+
};
|
|
91
|
+
documents: {
|
|
92
|
+
packingSlip: boolean;
|
|
93
|
+
deliveryNote: boolean;
|
|
94
|
+
transportLabel: boolean;
|
|
95
|
+
};
|
|
96
|
+
control: PickReadyControl;
|
|
97
|
+
};
|
|
98
|
+
startMoment: {
|
|
99
|
+
autoWhenCapacity: boolean;
|
|
100
|
+
safetyBufferMinutes: number;
|
|
101
|
+
capacityMode: "carts-per-hour" | "minutes-per-cart";
|
|
102
|
+
pickCapacityPerHour: number;
|
|
103
|
+
minutesPerCart: number;
|
|
104
|
+
};
|
|
105
|
+
continuous: {
|
|
106
|
+
enabled: boolean;
|
|
107
|
+
normalPickHours: number;
|
|
108
|
+
allowEarlier: boolean;
|
|
109
|
+
maxEarlierHours: number;
|
|
110
|
+
incompleteCartsMode: "immediate" | "after-registration";
|
|
111
|
+
ordersAfterRegistration: "current-batch" | "new-batch" | "next-round";
|
|
112
|
+
keepStationFilled: boolean;
|
|
113
|
+
evenWorkload: boolean;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
export declare const CONTINUOUS_PRESET: WizardConfig["continuous"];
|
|
117
|
+
export declare const DEFAULT_CONFIG: WizardConfig;
|
|
118
|
+
/** Slot-key gebruikt om de wizard-JSON zelf op te slaan. */
|
|
119
|
+
export declare const CONFIG_SLOT = "_wizard_config";
|
|
120
|
+
export interface CompiledFormula {
|
|
121
|
+
slot: string;
|
|
122
|
+
expression: string;
|
|
123
|
+
}
|
|
124
|
+
/** Vertaal wizard-config naar formule-expressies per slot. */
|
|
125
|
+
export declare function compileConfig(c: WizardConfig): CompiledFormula[];
|
|
126
|
+
/** Genereer een leesbare samenvatting in gewone Nederlandse taal. */
|
|
127
|
+
export declare function summarizeConfig(c: WizardConfig): string[];
|
|
128
|
+
/** Praktijkvoorbeeld — puur illustratief, gebaseerd op de instellingen. */
|
|
129
|
+
export interface LivePreview {
|
|
130
|
+
orders: number;
|
|
131
|
+
carts: number;
|
|
132
|
+
full: number;
|
|
133
|
+
combined: number;
|
|
134
|
+
rest: number;
|
|
135
|
+
pickStart: string;
|
|
136
|
+
packingSlipTime: string;
|
|
137
|
+
pickstationStart: string;
|
|
138
|
+
}
|
|
139
|
+
export declare function computePreview(c: WizardConfig): LivePreview;
|
|
140
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/logisticsEngine/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC9F,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC3E,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;AAE5E,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AACvE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC9C,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC/E,MAAM,MAAM,uBAAuB,GAC/B,QAAQ,GACR,wBAAwB,GACxB,uBAAuB,GACvB,YAAY,GACZ,sBAAsB,GACtB,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,SAAS;IACxB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,EAAE;QACP,IAAI,EAAE,WAAW,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,OAAO,CAAC;QACtB,aAAa,EAAE,OAAO,CAAC;QACvB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,iBAAiB,EAAE,iBAAiB,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,OAAO,CAAC;QAClB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,aAAa,EAAE,OAAO,CAAC;QACvB,uBAAuB,EAAE,OAAO,CAAC;QACjC,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,SAAS,EAAE;QACT,WAAW,EAAE,iBAAiB,CAAC;QAC/B,YAAY,EAAE,kBAAkB,CAAC;KAClC,CAAC;IACF,mBAAmB,EAAE;QACnB,IAAI,EAAE,uBAAuB,CAAC;QAC9B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,iGAAiG;QACjG,uBAAuB,EAAE,MAAM,CAAC;QAChC,yFAAyF;QACzF,cAAc,EAAE,MAAM,CAAC;QACvB,6EAA6E;QAC7E,2BAA2B,EAAE,OAAO,CAAC;QACrC,yEAAyE;QACzE,gBAAgB,EAAE,SAAS,GAAG,SAAS,CAAC;QACxC,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IAEF,qBAAqB,EAAE;QACrB,IAAI,EAAE,aAAa,CAAC;QACpB,SAAS,EAAE;YACT,WAAW,EAAE,OAAO,CAAC;YACrB,SAAS,EAAE,OAAO,CAAC;YACnB,QAAQ,EAAE,OAAO,CAAC;YAClB,eAAe,EAAE,OAAO,CAAC;YACzB,gBAAgB,EAAE,OAAO,CAAC;SAC3B,CAAC;QACF,SAAS,EAAE;YACT,WAAW,EAAE,OAAO,CAAC;YACrB,YAAY,EAAE,OAAO,CAAC;YACtB,cAAc,EAAE,OAAO,CAAC;SACzB,CAAC;QACF,OAAO,EAAE,gBAAgB,CAAC;KAC3B,CAAC;IACF,WAAW,EAAE;QACX,gBAAgB,EAAE,OAAO,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,gBAAgB,GAAG,kBAAkB,CAAC;QACpD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,WAAW,GAAG,oBAAoB,CAAC;QACxD,uBAAuB,EAAE,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;QACtE,iBAAiB,EAAE,OAAO,CAAC;QAC3B,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,YAAY,CASxD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,YAoF5B,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,eAAe,EAAE,CAwKhE;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,CAqJzD;AAED,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,CAkB3D"}
|