@elaraai/e3-ui 1.0.94 → 1.0.95
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/src/allocation/adapters.d.ts +159 -0
- package/dist/src/allocation/adapters.d.ts.map +1 -0
- package/dist/src/allocation/adapters.js +241 -0
- package/dist/src/allocation/adapters.js.map +1 -0
- package/dist/src/allocation/functions.d.ts +664 -0
- package/dist/src/allocation/functions.d.ts.map +1 -0
- package/dist/src/allocation/functions.js +782 -0
- package/dist/src/allocation/functions.js.map +1 -0
- package/dist/src/allocation/index.d.ts +2985 -0
- package/dist/src/allocation/index.d.ts.map +1 -0
- package/dist/src/allocation/index.js +499 -0
- package/dist/src/allocation/index.js.map +1 -0
- package/dist/src/allocation/types.d.ts +832 -0
- package/dist/src/allocation/types.d.ts.map +1 -0
- package/dist/src/allocation/types.js +360 -0
- package/dist/src/allocation/types.js.map +1 -0
- package/dist/src/bind/func.d.ts +14 -0
- package/dist/src/bind/func.d.ts.map +1 -1
- package/dist/src/bind/func.js +22 -1
- package/dist/src/bind/func.js.map +1 -1
- package/dist/src/calendar/index.d.ts +510 -1639
- package/dist/src/calendar/index.d.ts.map +1 -1
- package/dist/src/calendar/index.js +56 -29
- package/dist/src/calendar/index.js.map +1 -1
- package/dist/src/flowchart/canvas.d.ts +9 -21
- package/dist/src/flowchart/canvas.d.ts.map +1 -1
- package/dist/src/flowchart/canvas.js +10 -22
- package/dist/src/flowchart/canvas.js.map +1 -1
- package/dist/src/flowchart/flowchart.d.ts +19 -13
- package/dist/src/flowchart/flowchart.d.ts.map +1 -1
- package/dist/src/flowchart/flowchart.js.map +1 -1
- package/dist/src/flowchart/index.d.ts +44 -21
- package/dist/src/flowchart/index.d.ts.map +1 -1
- package/dist/src/flowchart/index.js +43 -20
- package/dist/src/flowchart/index.js.map +1 -1
- package/dist/src/flowchart/library.d.ts +166 -81
- package/dist/src/flowchart/library.d.ts.map +1 -1
- package/dist/src/flowchart/library.js +232 -105
- package/dist/src/flowchart/library.js.map +1 -1
- package/dist/src/flowchart/over.d.ts +9 -16
- package/dist/src/flowchart/over.d.ts.map +1 -1
- package/dist/src/flowchart/over.js +9 -16
- package/dist/src/flowchart/over.js.map +1 -1
- package/dist/src/flowchart/payload.d.ts +710 -508
- package/dist/src/flowchart/payload.d.ts.map +1 -1
- package/dist/src/flowchart/payload.js +128 -74
- package/dist/src/flowchart/payload.js.map +1 -1
- package/dist/src/flowchart/window.d.ts +132 -347
- package/dist/src/flowchart/window.d.ts.map +1 -1
- package/dist/src/flowchart/window.js +48 -55
- package/dist/src/flowchart/window.js.map +1 -1
- package/dist/src/index.d.ts +11 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +14 -6
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +18 -7
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +28 -9
- package/dist/src/internal.js.map +1 -1
- package/dist/src/plan/event-rows.d.ts +26 -10
- package/dist/src/plan/event-rows.d.ts.map +1 -1
- package/dist/src/plan/event-rows.js +39 -13
- package/dist/src/plan/event-rows.js.map +1 -1
- package/dist/src/plan/ir.d.ts +244 -815
- package/dist/src/plan/ir.d.ts.map +1 -1
- package/dist/src/plan/ir.js +8 -6
- package/dist/src/plan/ir.js.map +1 -1
- package/dist/src/plan/library.d.ts +3 -0
- package/dist/src/plan/library.d.ts.map +1 -1
- package/dist/src/plan/library.js +1 -1
- package/dist/src/plan/library.js.map +1 -1
- package/dist/src/plan/ordered-source.d.ts +1 -0
- package/dist/src/plan/ordered-source.d.ts.map +1 -1
- package/dist/src/plan/plan.d.ts +559 -1667
- package/dist/src/plan/plan.d.ts.map +1 -1
- package/dist/src/plan/plan.js +123 -45
- package/dist/src/plan/plan.js.map +1 -1
- package/dist/src/plan/root.d.ts +16 -20
- package/dist/src/plan/root.d.ts.map +1 -1
- package/dist/src/plan/root.js +23 -33
- package/dist/src/plan/root.js.map +1 -1
- package/dist/src/roster/coverage.d.ts +17 -231
- package/dist/src/roster/coverage.d.ts.map +1 -1
- package/dist/src/roster/coverage.js +94 -90
- package/dist/src/roster/coverage.js.map +1 -1
- package/dist/src/roster/fit.d.ts +59 -0
- package/dist/src/roster/fit.d.ts.map +1 -0
- package/dist/src/roster/fit.js +155 -0
- package/dist/src/roster/fit.js.map +1 -0
- package/dist/src/roster/index.d.ts +2862 -3662
- package/dist/src/roster/index.d.ts.map +1 -1
- package/dist/src/roster/index.js +383 -81
- package/dist/src/roster/index.js.map +1 -1
- package/dist/src/roster/library.d.ts +37 -92
- package/dist/src/roster/library.d.ts.map +1 -1
- package/dist/src/roster/library.js +25 -64
- package/dist/src/roster/library.js.map +1 -1
- package/dist/src/roster/lists.d.ts +195 -0
- package/dist/src/roster/lists.d.ts.map +1 -0
- package/dist/src/roster/lists.js +233 -0
- package/dist/src/roster/lists.js.map +1 -0
- package/dist/src/roster/rules.d.ts +17 -260
- package/dist/src/roster/rules.d.ts.map +1 -1
- package/dist/src/roster/rules.js +135 -132
- package/dist/src/roster/rules.js.map +1 -1
- package/dist/src/roster/targets.d.ts +115 -0
- package/dist/src/roster/targets.d.ts.map +1 -0
- package/dist/src/roster/targets.js +213 -0
- package/dist/src/roster/targets.js.map +1 -0
- package/dist/src/roster/times.d.ts +251 -0
- package/dist/src/roster/times.d.ts.map +1 -0
- package/dist/src/roster/times.js +174 -0
- package/dist/src/roster/times.js.map +1 -0
- package/dist/src/roster/types.d.ts +828 -183
- package/dist/src/roster/types.d.ts.map +1 -1
- package/dist/src/roster/types.js +224 -97
- package/dist/src/roster/types.js.map +1 -1
- package/dist/src/schedule/accessor.d.ts +28 -0
- package/dist/src/schedule/accessor.d.ts.map +1 -0
- package/dist/src/schedule/accessor.js +39 -0
- package/dist/src/schedule/accessor.js.map +1 -0
- package/dist/src/schedule/events.d.ts +170 -42
- package/dist/src/schedule/events.d.ts.map +1 -1
- package/dist/src/schedule/events.js +431 -171
- package/dist/src/schedule/events.js.map +1 -1
- package/dist/src/schedule/index.d.ts +41 -4
- package/dist/src/schedule/index.d.ts.map +1 -1
- package/dist/src/schedule/index.js +35 -3
- package/dist/src/schedule/index.js.map +1 -1
- package/dist/src/schedule/library.d.ts +13 -3
- package/dist/src/schedule/library.d.ts.map +1 -1
- package/dist/src/schedule/library.js +11 -4
- package/dist/src/schedule/library.js.map +1 -1
- package/dist/src/schedule/periods.d.ts +115 -0
- package/dist/src/schedule/periods.d.ts.map +1 -0
- package/dist/src/schedule/periods.js +215 -0
- package/dist/src/schedule/periods.js.map +1 -0
- package/dist/src/schedule/record-window.d.ts +25 -3
- package/dist/src/schedule/record-window.d.ts.map +1 -1
- package/dist/src/schedule/record-window.js +31 -18
- package/dist/src/schedule/record-window.js.map +1 -1
- package/dist/src/schedule/resources.d.ts +82 -4
- package/dist/src/schedule/resources.d.ts.map +1 -1
- package/dist/src/schedule/resources.js +44 -14
- package/dist/src/schedule/resources.js.map +1 -1
- package/dist/src/schedule/session.d.ts +69 -0
- package/dist/src/schedule/session.d.ts.map +1 -0
- package/dist/src/schedule/session.js +121 -0
- package/dist/src/schedule/session.js.map +1 -0
- package/dist/src/schedule/templates.d.ts +14 -2
- package/dist/src/schedule/templates.d.ts.map +1 -1
- package/dist/src/schedule/templates.js +5 -3
- package/dist/src/schedule/templates.js.map +1 -1
- package/dist/src/schedule/types.d.ts +1671 -37
- package/dist/src/schedule/types.d.ts.map +1 -1
- package/dist/src/schedule/types.js +196 -5
- package/dist/src/schedule/types.js.map +1 -1
- package/dist/src/schedule/window.d.ts +14 -0
- package/dist/src/schedule/window.d.ts.map +1 -1
- package/dist/src/schedule/window.js +14 -4
- package/dist/src/schedule/window.js.map +1 -1
- package/dist/src/schedule/words.d.ts +22 -0
- package/dist/src/schedule/words.d.ts.map +1 -0
- package/dist/src/schedule/words.js +25 -0
- package/dist/src/schedule/words.js.map +1 -0
- package/dist/src/sheet/index.d.ts +61 -27
- package/dist/src/sheet/index.d.ts.map +1 -1
- package/dist/src/sheet/index.js +59 -25
- package/dist/src/sheet/index.js.map +1 -1
- package/dist/src/sheet/library.d.ts +21 -3
- package/dist/src/sheet/library.d.ts.map +1 -1
- package/dist/src/sheet/library.js +23 -6
- package/dist/src/sheet/library.js.map +1 -1
- package/dist/src/sheet/registers.d.ts +100 -85
- package/dist/src/sheet/registers.d.ts.map +1 -1
- package/dist/src/sheet/registers.js +100 -85
- package/dist/src/sheet/registers.js.map +1 -1
- package/dist/src/sheet/root.d.ts +8 -12
- package/dist/src/sheet/root.d.ts.map +1 -1
- package/dist/src/sheet/root.js +6 -40
- package/dist/src/sheet/root.js.map +1 -1
- package/dist/src/sheet/sheet.d.ts +598 -2349
- package/dist/src/sheet/sheet.d.ts.map +1 -1
- package/dist/src/sheet/sheet.js +124 -37
- package/dist/src/sheet/sheet.js.map +1 -1
- package/dist/src/sheet/sub-rows.d.ts +74 -28
- package/dist/src/sheet/sub-rows.d.ts.map +1 -1
- package/dist/src/sheet/sub-rows.js +74 -28
- package/dist/src/sheet/sub-rows.js.map +1 -1
- package/dist/src/sheet/templates.d.ts +98 -34
- package/dist/src/sheet/templates.d.ts.map +1 -1
- package/dist/src/sheet/templates.js +102 -58
- package/dist/src/sheet/templates.js.map +1 -1
- package/dist/src/sheet/types.d.ts +289 -1359
- package/dist/src/sheet/types.d.ts.map +1 -1
- package/dist/src/sheet/types.js +20 -26
- package/dist/src/sheet/types.js.map +1 -1
- package/dist/src/sheet/views.d.ts +10 -11
- package/dist/src/sheet/views.d.ts.map +1 -1
- package/dist/src/sheet/views.js +15 -20
- package/dist/src/sheet/views.js.map +1 -1
- package/dist/src/{roster/visibility.d.ts → utils/key-visibility.d.ts} +42 -7
- package/dist/src/utils/key-visibility.d.ts.map +1 -0
- package/dist/src/utils/key-visibility.js +36 -0
- package/dist/src/utils/key-visibility.js.map +1 -0
- package/dist/src/utils/ordered-source.d.ts +1 -0
- package/dist/src/utils/ordered-source.d.ts.map +1 -1
- package/dist/src/utils/ordered-source.js +8 -3
- package/dist/src/utils/ordered-source.js.map +1 -1
- package/dist/src/utils/record-sources.d.ts +107 -0
- package/dist/src/utils/record-sources.d.ts.map +1 -0
- package/dist/src/utils/record-sources.js +132 -0
- package/dist/src/utils/record-sources.js.map +1 -0
- package/dist/test/allocation/allocation.examples.d.ts +2902 -0
- package/dist/test/allocation/allocation.examples.d.ts.map +1 -0
- package/dist/test/allocation/allocation.examples.js +643 -0
- package/dist/test/allocation/allocation.examples.js.map +1 -0
- package/dist/test/allocation/fit.examples.d.ts +546 -0
- package/dist/test/allocation/fit.examples.d.ts.map +1 -0
- package/dist/test/allocation/fit.examples.js +171 -0
- package/dist/test/allocation/fit.examples.js.map +1 -0
- package/dist/test/allocation/kiln-yard.d.ts +181 -0
- package/dist/test/allocation/kiln-yard.d.ts.map +1 -0
- package/dist/test/allocation/kiln-yard.js +228 -0
- package/dist/test/allocation/kiln-yard.js.map +1 -0
- package/dist/test/bind/data/data.examples.d.ts +651 -1
- package/dist/test/bind/data/data.examples.d.ts.map +1 -1
- package/dist/test/bind/data/data.examples.js +140 -2
- package/dist/test/bind/data/data.examples.js.map +1 -1
- package/dist/test/bind/func/func.examples.d.ts +10 -1
- package/dist/test/bind/func/func.examples.d.ts.map +1 -1
- package/dist/test/bind/func/func.examples.js +8 -1
- package/dist/test/bind/func/func.examples.js.map +1 -1
- package/dist/test/bind/record/record.examples.d.ts +633 -1
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/bind/record/record.examples.js +26 -2
- package/dist/test/bind/record/record.examples.js.map +1 -1
- package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar-records.examples.js +18 -14
- package/dist/test/calendar/calendar-records.examples.js.map +1 -1
- package/dist/test/calendar/calendar.examples.d.ts +521 -16
- package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar.examples.js +182 -135
- package/dist/test/calendar/calendar.examples.js.map +1 -1
- package/dist/test/examples-package.d.ts +75 -0
- package/dist/test/examples-package.d.ts.map +1 -0
- package/dist/test/examples-package.js +263 -0
- package/dist/test/examples-package.js.map +1 -0
- package/dist/test/flowchart/flowchart.examples.d.ts +211 -19
- package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
- package/dist/test/flowchart/flowchart.examples.js +102 -75
- package/dist/test/flowchart/flowchart.examples.js.map +1 -1
- package/dist/test/plan/plan-events.examples.d.ts +1439 -209
- package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-events.examples.js +199 -59
- package/dist/test/plan/plan-events.examples.js.map +1 -1
- package/dist/test/plan/plan-records.examples.d.ts +420 -0
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-records.examples.js +70 -19
- package/dist/test/plan/plan-records.examples.js.map +1 -1
- package/dist/test/plan/plan-windows.examples.d.ts +636 -55
- package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-windows.examples.js +69 -33
- package/dist/test/plan/plan-windows.examples.js.map +1 -1
- package/dist/test/plan/plan.examples.d.ts +153 -31
- package/dist/test/plan/plan.examples.d.ts.map +1 -1
- package/dist/test/plan/plan.examples.js +178 -101
- package/dist/test/plan/plan.examples.js.map +1 -1
- package/dist/test/roster/domain.examples.d.ts +467 -250
- package/dist/test/roster/domain.examples.d.ts.map +1 -1
- package/dist/test/roster/domain.examples.js +92 -29
- package/dist/test/roster/domain.examples.js.map +1 -1
- package/dist/test/roster/roster-records.examples.d.ts +430 -586
- package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
- package/dist/test/roster/roster-records.examples.js +102 -43
- package/dist/test/roster/roster-records.examples.js.map +1 -1
- package/dist/test/roster/roster.examples.d.ts +2319 -606
- package/dist/test/roster/roster.examples.d.ts.map +1 -1
- package/dist/test/roster/roster.examples.js +456 -148
- package/dist/test/roster/roster.examples.js.map +1 -1
- package/dist/test/roster/warehouse.d.ts +172 -63
- package/dist/test/roster/warehouse.d.ts.map +1 -1
- package/dist/test/roster/warehouse.js +172 -39
- package/dist/test/roster/warehouse.js.map +1 -1
- package/dist/test/schedule/schedule.examples.d.ts +3499 -0
- package/dist/test/schedule/schedule.examples.d.ts.map +1 -0
- package/dist/test/schedule/schedule.examples.js +192 -0
- package/dist/test/schedule/schedule.examples.js.map +1 -0
- package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet-records.examples.js +22 -18
- package/dist/test/sheet/sheet-records.examples.js.map +1 -1
- package/dist/test/sheet/sheet.examples.d.ts +715 -26
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet.examples.js +204 -130
- package/dist/test/sheet/sheet.examples.js.map +1 -1
- package/package.json +17 -10
- package/dist/src/roster/people.d.ts +0 -50
- package/dist/src/roster/people.d.ts.map +0 -1
- package/dist/src/roster/people.js +0 -32
- package/dist/src/roster/people.js.map +0 -1
- package/dist/src/roster/visibility.d.ts.map +0 -1
- package/dist/src/roster/visibility.js +0 -25
- package/dist/src/roster/visibility.js.map +0 -1
|
@@ -0,0 +1,664 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The Allocation's pure functions (`Allocation Spec.md` §5.1, §12): a day's
|
|
7
|
+
* loads, a fit's candidates, the built-in rules, an answer to a fit's
|
|
8
|
+
* question, a greedy look-ahead, the built-in checks and the day's slots, and
|
|
9
|
+
* a bin as the board reads it from the app's row. Tasks, the app's
|
|
10
|
+
* `e3.function` fit and the renderer run these same East functions, so the
|
|
11
|
+
* screen and e3 agree on every figure and every word.
|
|
12
|
+
*
|
|
13
|
+
* Those over a day take the app's bin row type (#1371, `Builder Interfaces
|
|
14
|
+
* Spec.md` §6.3), as `Editing.apply` takes its source type:
|
|
15
|
+
* `Allocation.loads(KilnBin)` is an East function over
|
|
16
|
+
* `Allocation.Types.Day(KilnBin)`. They read each bin's roles, never its row,
|
|
17
|
+
* which they carry for the app's own functions. `Allocation.fit` reads one
|
|
18
|
+
* candidate, so it needs none.
|
|
19
|
+
*
|
|
20
|
+
* @packageDocumentation
|
|
21
|
+
*/
|
|
22
|
+
import { ArrayType, BooleanType, DateTimeType, DictType, FloatType, FunctionType, IntegerType, OptionType, StringType, StructType, type EastType, type ExprType } from "@elaraai/east";
|
|
23
|
+
import { ScheduleAllocationRolesType } from "../schedule/types.js";
|
|
24
|
+
import { AllocationCandidateType, AllocationFitResultType, AllocationFitType, AllocationIssueType, AllocationLoadType, AllocationSlotType, type AllocationBinType, type AllocationContextType as ContextType, type AllocationDayType, type AllocationFitRequestType } from "./types.js";
|
|
25
|
+
/**
|
|
26
|
+
* A duration in milliseconds — a month counts 30 days, as Schedule's do.
|
|
27
|
+
*
|
|
28
|
+
* @param step - The duration
|
|
29
|
+
* @returns Its length in milliseconds
|
|
30
|
+
*/
|
|
31
|
+
export declare const allocationMilliseconds: import("@elaraai/east").CallableFunctionExpr<[import("@elaraai/east").VariantType<{
|
|
32
|
+
readonly minutes: FloatType;
|
|
33
|
+
readonly hours: FloatType;
|
|
34
|
+
readonly days: FloatType;
|
|
35
|
+
readonly weeks: FloatType;
|
|
36
|
+
readonly months: FloatType;
|
|
37
|
+
}>], IntegerType>;
|
|
38
|
+
/**
|
|
39
|
+
* A quantity and its unit.
|
|
40
|
+
*
|
|
41
|
+
* @param value - The quantity
|
|
42
|
+
* @param unit - The unit, or empty
|
|
43
|
+
* @returns `21 m³`, or `21` with no unit
|
|
44
|
+
*/
|
|
45
|
+
export declare const allocationQuantityText: import("@elaraai/east").CallableFunctionExpr<[FloatType, StringType], StringType>;
|
|
46
|
+
/**
|
|
47
|
+
* A day as the board names it.
|
|
48
|
+
*
|
|
49
|
+
* @param at - An instant on the day
|
|
50
|
+
* @returns `Wed 19`
|
|
51
|
+
*/
|
|
52
|
+
export declare const allocationDayText: import("@elaraai/east").CallableFunctionExpr<[DateTimeType], StringType>;
|
|
53
|
+
/**
|
|
54
|
+
* A resource's load, naming the limit it breaks (A19).
|
|
55
|
+
*
|
|
56
|
+
* @param fill - What its bins put on it
|
|
57
|
+
* @param resource - The resource
|
|
58
|
+
* @param unit - The quantity's unit
|
|
59
|
+
* @returns `11 m³ · max 9 · 2 over`, `16 m³ · min 40 · 24 short`, or `45 m³ · takes 26–48`
|
|
60
|
+
*/
|
|
61
|
+
export declare const allocationLoadText: import("@elaraai/east").CallableFunctionExpr<[FloatType, StructType<{
|
|
62
|
+
readonly key: StringType;
|
|
63
|
+
readonly label: StringType;
|
|
64
|
+
readonly group: OptionType<StringType>;
|
|
65
|
+
readonly meta: OptionType<StringType>;
|
|
66
|
+
readonly note: OptionType<StringType>;
|
|
67
|
+
readonly min: FloatType;
|
|
68
|
+
readonly max: FloatType;
|
|
69
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
70
|
+
readonly minutes: FloatType;
|
|
71
|
+
readonly hours: FloatType;
|
|
72
|
+
readonly days: FloatType;
|
|
73
|
+
readonly weeks: FloatType;
|
|
74
|
+
readonly months: FloatType;
|
|
75
|
+
}>;
|
|
76
|
+
readonly jobs: ArrayType<StructType<{
|
|
77
|
+
readonly label: StringType;
|
|
78
|
+
readonly start: DateTimeType;
|
|
79
|
+
readonly end: DateTimeType;
|
|
80
|
+
}>>;
|
|
81
|
+
}>, StringType], StringType>;
|
|
82
|
+
/**
|
|
83
|
+
* The job that makes a resource busy on a day: one covering the day's start,
|
|
84
|
+
* the latest to end of them.
|
|
85
|
+
*
|
|
86
|
+
* @param resource - The resource
|
|
87
|
+
* @param day - The plan day
|
|
88
|
+
* @returns The job, or `none`
|
|
89
|
+
*/
|
|
90
|
+
export declare const allocationBusyJob: import("@elaraai/east").CallableFunctionExpr<[StructType<{
|
|
91
|
+
readonly key: StringType;
|
|
92
|
+
readonly label: StringType;
|
|
93
|
+
readonly group: OptionType<StringType>;
|
|
94
|
+
readonly meta: OptionType<StringType>;
|
|
95
|
+
readonly note: OptionType<StringType>;
|
|
96
|
+
readonly min: FloatType;
|
|
97
|
+
readonly max: FloatType;
|
|
98
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
99
|
+
readonly minutes: FloatType;
|
|
100
|
+
readonly hours: FloatType;
|
|
101
|
+
readonly days: FloatType;
|
|
102
|
+
readonly weeks: FloatType;
|
|
103
|
+
readonly months: FloatType;
|
|
104
|
+
}>;
|
|
105
|
+
readonly jobs: ArrayType<StructType<{
|
|
106
|
+
readonly label: StringType;
|
|
107
|
+
readonly start: DateTimeType;
|
|
108
|
+
readonly end: DateTimeType;
|
|
109
|
+
}>>;
|
|
110
|
+
}>, DateTimeType], OptionType<StructType<{
|
|
111
|
+
readonly label: StringType;
|
|
112
|
+
readonly start: DateTimeType;
|
|
113
|
+
readonly end: DateTimeType;
|
|
114
|
+
}>>>;
|
|
115
|
+
/**
|
|
116
|
+
* A resource's next job after a day's start: the first to start.
|
|
117
|
+
*
|
|
118
|
+
* @param resource - The resource
|
|
119
|
+
* @param day - The plan day
|
|
120
|
+
* @returns The job, or `none`
|
|
121
|
+
*/
|
|
122
|
+
export declare const allocationNextJob: import("@elaraai/east").CallableFunctionExpr<[StructType<{
|
|
123
|
+
readonly key: StringType;
|
|
124
|
+
readonly label: StringType;
|
|
125
|
+
readonly group: OptionType<StringType>;
|
|
126
|
+
readonly meta: OptionType<StringType>;
|
|
127
|
+
readonly note: OptionType<StringType>;
|
|
128
|
+
readonly min: FloatType;
|
|
129
|
+
readonly max: FloatType;
|
|
130
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
131
|
+
readonly minutes: FloatType;
|
|
132
|
+
readonly hours: FloatType;
|
|
133
|
+
readonly days: FloatType;
|
|
134
|
+
readonly weeks: FloatType;
|
|
135
|
+
readonly months: FloatType;
|
|
136
|
+
}>;
|
|
137
|
+
readonly jobs: ArrayType<StructType<{
|
|
138
|
+
readonly label: StringType;
|
|
139
|
+
readonly start: DateTimeType;
|
|
140
|
+
readonly end: DateTimeType;
|
|
141
|
+
}>>;
|
|
142
|
+
}>, DateTimeType], OptionType<StructType<{
|
|
143
|
+
readonly label: StringType;
|
|
144
|
+
readonly start: DateTimeType;
|
|
145
|
+
readonly end: DateTimeType;
|
|
146
|
+
}>>>;
|
|
147
|
+
/**
|
|
148
|
+
* A resource's line on the plan day (A19), and the marks its bins' cards carry
|
|
149
|
+
* (A16).
|
|
150
|
+
*
|
|
151
|
+
* @param day - The plan day
|
|
152
|
+
* @param resource - The resource
|
|
153
|
+
* @param load - Its load
|
|
154
|
+
* @param unit - The quantity's unit
|
|
155
|
+
* @returns Its line, its tone, whether it is over its maximum, under its minimum, or held into its next job, and that job
|
|
156
|
+
*
|
|
157
|
+
* @remarks
|
|
158
|
+
* Loading, the line is its load (`45 m³ · takes 26–48`; `reserved · takes
|
|
159
|
+
* 26–48` with only reservations) and `· 2 d into next job` when its hold runs
|
|
160
|
+
* into the job; busy, `busy until Fri 14`; free, its meta (or its group) and
|
|
161
|
+
* what it takes (`Hall B · 40 m³ · takes 20–40 m³`).
|
|
162
|
+
*/
|
|
163
|
+
export declare const allocationResourceLine: import("@elaraai/east").CallableFunctionExpr<[DateTimeType, StructType<{
|
|
164
|
+
readonly key: StringType;
|
|
165
|
+
readonly label: StringType;
|
|
166
|
+
readonly group: OptionType<StringType>;
|
|
167
|
+
readonly meta: OptionType<StringType>;
|
|
168
|
+
readonly note: OptionType<StringType>;
|
|
169
|
+
readonly min: FloatType;
|
|
170
|
+
readonly max: FloatType;
|
|
171
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
172
|
+
readonly minutes: FloatType;
|
|
173
|
+
readonly hours: FloatType;
|
|
174
|
+
readonly days: FloatType;
|
|
175
|
+
readonly weeks: FloatType;
|
|
176
|
+
readonly months: FloatType;
|
|
177
|
+
}>;
|
|
178
|
+
readonly jobs: ArrayType<StructType<{
|
|
179
|
+
readonly label: StringType;
|
|
180
|
+
readonly start: DateTimeType;
|
|
181
|
+
readonly end: DateTimeType;
|
|
182
|
+
}>>;
|
|
183
|
+
}>, StructType<{
|
|
184
|
+
readonly resource: StringType;
|
|
185
|
+
readonly fill: FloatType;
|
|
186
|
+
readonly bins: IntegerType;
|
|
187
|
+
readonly hold: OptionType<StructType<{
|
|
188
|
+
readonly from: DateTimeType;
|
|
189
|
+
readonly to: DateTimeType;
|
|
190
|
+
}>>;
|
|
191
|
+
readonly state: import("@elaraai/east").VariantType<{
|
|
192
|
+
readonly free: import("@elaraai/east").NullType;
|
|
193
|
+
readonly loading: import("@elaraai/east").NullType;
|
|
194
|
+
readonly busy: import("@elaraai/east").NullType;
|
|
195
|
+
}>;
|
|
196
|
+
}>, StringType], StructType<{
|
|
197
|
+
readonly text: StringType;
|
|
198
|
+
readonly tone: import("@elaraai/east").VariantType<{
|
|
199
|
+
readonly success: import("@elaraai/east").NullType;
|
|
200
|
+
readonly warning: import("@elaraai/east").NullType;
|
|
201
|
+
readonly danger: import("@elaraai/east").NullType;
|
|
202
|
+
readonly info: import("@elaraai/east").NullType;
|
|
203
|
+
readonly neutral: import("@elaraai/east").NullType;
|
|
204
|
+
}>;
|
|
205
|
+
readonly over: BooleanType;
|
|
206
|
+
readonly under: BooleanType;
|
|
207
|
+
readonly overlap: BooleanType;
|
|
208
|
+
readonly next: OptionType<StructType<{
|
|
209
|
+
readonly label: StringType;
|
|
210
|
+
readonly start: DateTimeType;
|
|
211
|
+
readonly end: DateTimeType;
|
|
212
|
+
}>>;
|
|
213
|
+
}>>;
|
|
214
|
+
/**
|
|
215
|
+
* One bin, as the board reads it on its plan day (#1371, B12): its kind's
|
|
216
|
+
* roles beside its row — a stored bin's roles as the kind's `rows` gives them,
|
|
217
|
+
* a drafted one's as its `read` does.
|
|
218
|
+
*
|
|
219
|
+
* @typeParam R - The app's bin row type
|
|
220
|
+
* @param row - The app's bin row type
|
|
221
|
+
* @returns An East function `(roles, row, day) → Option<Bin(R)>`: the bin, when its `at` falls in the day `[day, day + 1 d)`; `none` for a bin of another day
|
|
222
|
+
*
|
|
223
|
+
* @remarks
|
|
224
|
+
* A bin's UTC day is its plan day (`Builder Interfaces Spec.md` §6.2), so the
|
|
225
|
+
* board's day holds the bins whose `at` falls in it, `day` its UTC midnight.
|
|
226
|
+
* Each bin's `at` is read as it is, so a batch's bins, booked a minute apart,
|
|
227
|
+
* read back a minute apart, in one slot (`Allocation.slots`).
|
|
228
|
+
* @internal
|
|
229
|
+
*/
|
|
230
|
+
export declare function allocationBinOf<R extends EastType>(row: R): ExprType<FunctionType<[ScheduleAllocationRolesType, R, DateTimeType], OptionType<AllocationBinType<R>>>>;
|
|
231
|
+
/**
|
|
232
|
+
* One bin's part on one resource, as loads and candidates read it.
|
|
233
|
+
*
|
|
234
|
+
* @property bin - The bin's id; empty for a placement the look-ahead adds
|
|
235
|
+
* @property quantity - Its part's quantity
|
|
236
|
+
* @property hold - Its hold, in milliseconds
|
|
237
|
+
* @property kind - Its kind
|
|
238
|
+
* @property reserve - Whether it is a reservation
|
|
239
|
+
* @internal
|
|
240
|
+
*/
|
|
241
|
+
export declare const AllocationMateType: StructType<{
|
|
242
|
+
readonly bin: StringType;
|
|
243
|
+
readonly quantity: FloatType;
|
|
244
|
+
readonly hold: IntegerType;
|
|
245
|
+
readonly kind: OptionType<StringType>;
|
|
246
|
+
readonly reserve: BooleanType;
|
|
247
|
+
}>;
|
|
248
|
+
/** The bins' parts on every resource, by the resource's key. @internal */
|
|
249
|
+
declare const MatesType: DictType<StringType, ArrayType<StructType<{
|
|
250
|
+
readonly bin: StringType;
|
|
251
|
+
readonly quantity: FloatType;
|
|
252
|
+
readonly hold: IntegerType;
|
|
253
|
+
readonly kind: OptionType<StringType>;
|
|
254
|
+
readonly reserve: BooleanType;
|
|
255
|
+
}>>>;
|
|
256
|
+
/**
|
|
257
|
+
* Every resource's parts of the day's bins, an entry for every resource.
|
|
258
|
+
*
|
|
259
|
+
* @typeParam R - The app's bin row type
|
|
260
|
+
* @param row - The app's bin row type
|
|
261
|
+
* @returns An East function from the day and the context to the parts on each resource
|
|
262
|
+
* @internal
|
|
263
|
+
*/
|
|
264
|
+
export declare function allocationMates<R extends EastType>(row: R): ExprType<FunctionType<[AllocationDayType<R>, ContextType], typeof MatesType>>;
|
|
265
|
+
/**
|
|
266
|
+
* A resource's load from its parts.
|
|
267
|
+
*
|
|
268
|
+
* @param day - The plan day
|
|
269
|
+
* @param resource - The resource
|
|
270
|
+
* @param mates - Its parts
|
|
271
|
+
* @returns Its load
|
|
272
|
+
* @internal
|
|
273
|
+
*/
|
|
274
|
+
export declare const allocationLoadOf: import("@elaraai/east").CallableFunctionExpr<[DateTimeType, StructType<{
|
|
275
|
+
readonly key: StringType;
|
|
276
|
+
readonly label: StringType;
|
|
277
|
+
readonly group: OptionType<StringType>;
|
|
278
|
+
readonly meta: OptionType<StringType>;
|
|
279
|
+
readonly note: OptionType<StringType>;
|
|
280
|
+
readonly min: FloatType;
|
|
281
|
+
readonly max: FloatType;
|
|
282
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
283
|
+
readonly minutes: FloatType;
|
|
284
|
+
readonly hours: FloatType;
|
|
285
|
+
readonly days: FloatType;
|
|
286
|
+
readonly weeks: FloatType;
|
|
287
|
+
readonly months: FloatType;
|
|
288
|
+
}>;
|
|
289
|
+
readonly jobs: ArrayType<StructType<{
|
|
290
|
+
readonly label: StringType;
|
|
291
|
+
readonly start: DateTimeType;
|
|
292
|
+
readonly end: DateTimeType;
|
|
293
|
+
}>>;
|
|
294
|
+
}>, ArrayType<StructType<{
|
|
295
|
+
readonly bin: StringType;
|
|
296
|
+
readonly quantity: FloatType;
|
|
297
|
+
readonly hold: IntegerType;
|
|
298
|
+
readonly kind: OptionType<StringType>;
|
|
299
|
+
readonly reserve: BooleanType;
|
|
300
|
+
}>>], StructType<{
|
|
301
|
+
readonly resource: StringType;
|
|
302
|
+
readonly fill: FloatType;
|
|
303
|
+
readonly bins: IntegerType;
|
|
304
|
+
readonly hold: OptionType<StructType<{
|
|
305
|
+
readonly from: DateTimeType;
|
|
306
|
+
readonly to: DateTimeType;
|
|
307
|
+
}>>;
|
|
308
|
+
readonly state: import("@elaraai/east").VariantType<{
|
|
309
|
+
readonly free: import("@elaraai/east").NullType;
|
|
310
|
+
readonly loading: import("@elaraai/east").NullType;
|
|
311
|
+
readonly busy: import("@elaraai/east").NullType;
|
|
312
|
+
}>;
|
|
313
|
+
}>>;
|
|
314
|
+
/**
|
|
315
|
+
* One candidate: a quantity on a resource, against the parts it already holds.
|
|
316
|
+
*
|
|
317
|
+
* @param day - The plan day
|
|
318
|
+
* @param bin - The bin it is for, if any
|
|
319
|
+
* @param reserve - Whether it reserves a slot
|
|
320
|
+
* @param quantity - What the resource would hold of it
|
|
321
|
+
* @param arrival - Its arrival, if any
|
|
322
|
+
* @param kind - Its kind
|
|
323
|
+
* @param hold - Its hold, in milliseconds
|
|
324
|
+
* @param resource - The resource
|
|
325
|
+
* @param mates - The resource's other parts
|
|
326
|
+
* @param load - The resource's load
|
|
327
|
+
* @param rules - The built-in rules
|
|
328
|
+
* @param unit - The quantity's unit
|
|
329
|
+
* @returns The candidate
|
|
330
|
+
* @internal
|
|
331
|
+
*/
|
|
332
|
+
export declare const allocationCandidateOf: import("@elaraai/east").CallableFunctionExpr<[DateTimeType, OptionType<StringType>, BooleanType, FloatType, OptionType<StructType<{
|
|
333
|
+
readonly key: StringType;
|
|
334
|
+
readonly label: StringType;
|
|
335
|
+
readonly meta: OptionType<StringType>;
|
|
336
|
+
readonly quantity: FloatType;
|
|
337
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
338
|
+
readonly minutes: FloatType;
|
|
339
|
+
readonly hours: FloatType;
|
|
340
|
+
readonly days: FloatType;
|
|
341
|
+
readonly weeks: FloatType;
|
|
342
|
+
readonly months: FloatType;
|
|
343
|
+
}>;
|
|
344
|
+
readonly kind: OptionType<StringType>;
|
|
345
|
+
readonly due: OptionType<DateTimeType>;
|
|
346
|
+
readonly window: OptionType<StructType<{
|
|
347
|
+
readonly from: DateTimeType;
|
|
348
|
+
readonly to: DateTimeType;
|
|
349
|
+
}>>;
|
|
350
|
+
readonly details: ArrayType<StructType<{
|
|
351
|
+
readonly label: StringType;
|
|
352
|
+
readonly value: StringType;
|
|
353
|
+
}>>;
|
|
354
|
+
}>>, OptionType<StringType>, IntegerType, StructType<{
|
|
355
|
+
readonly key: StringType;
|
|
356
|
+
readonly label: StringType;
|
|
357
|
+
readonly group: OptionType<StringType>;
|
|
358
|
+
readonly meta: OptionType<StringType>;
|
|
359
|
+
readonly note: OptionType<StringType>;
|
|
360
|
+
readonly min: FloatType;
|
|
361
|
+
readonly max: FloatType;
|
|
362
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
363
|
+
readonly minutes: FloatType;
|
|
364
|
+
readonly hours: FloatType;
|
|
365
|
+
readonly days: FloatType;
|
|
366
|
+
readonly weeks: FloatType;
|
|
367
|
+
readonly months: FloatType;
|
|
368
|
+
}>;
|
|
369
|
+
readonly jobs: ArrayType<StructType<{
|
|
370
|
+
readonly label: StringType;
|
|
371
|
+
readonly start: DateTimeType;
|
|
372
|
+
readonly end: DateTimeType;
|
|
373
|
+
}>>;
|
|
374
|
+
}>, ArrayType<StructType<{
|
|
375
|
+
readonly bin: StringType;
|
|
376
|
+
readonly quantity: FloatType;
|
|
377
|
+
readonly hold: IntegerType;
|
|
378
|
+
readonly kind: OptionType<StringType>;
|
|
379
|
+
readonly reserve: BooleanType;
|
|
380
|
+
}>>, StructType<{
|
|
381
|
+
readonly resource: StringType;
|
|
382
|
+
readonly fill: FloatType;
|
|
383
|
+
readonly bins: IntegerType;
|
|
384
|
+
readonly hold: OptionType<StructType<{
|
|
385
|
+
readonly from: DateTimeType;
|
|
386
|
+
readonly to: DateTimeType;
|
|
387
|
+
}>>;
|
|
388
|
+
readonly state: import("@elaraai/east").VariantType<{
|
|
389
|
+
readonly free: import("@elaraai/east").NullType;
|
|
390
|
+
readonly loading: import("@elaraai/east").NullType;
|
|
391
|
+
readonly busy: import("@elaraai/east").NullType;
|
|
392
|
+
}>;
|
|
393
|
+
}>, StructType<{
|
|
394
|
+
readonly under: BooleanType;
|
|
395
|
+
}>, StringType], StructType<{
|
|
396
|
+
readonly day: DateTimeType;
|
|
397
|
+
readonly bin: OptionType<StringType>;
|
|
398
|
+
readonly reserve: BooleanType;
|
|
399
|
+
readonly quantity: FloatType;
|
|
400
|
+
readonly arrival: OptionType<StructType<{
|
|
401
|
+
readonly key: StringType;
|
|
402
|
+
readonly label: StringType;
|
|
403
|
+
readonly meta: OptionType<StringType>;
|
|
404
|
+
readonly quantity: FloatType;
|
|
405
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
406
|
+
readonly minutes: FloatType;
|
|
407
|
+
readonly hours: FloatType;
|
|
408
|
+
readonly days: FloatType;
|
|
409
|
+
readonly weeks: FloatType;
|
|
410
|
+
readonly months: FloatType;
|
|
411
|
+
}>;
|
|
412
|
+
readonly kind: OptionType<StringType>;
|
|
413
|
+
readonly due: OptionType<DateTimeType>;
|
|
414
|
+
readonly window: OptionType<StructType<{
|
|
415
|
+
readonly from: DateTimeType;
|
|
416
|
+
readonly to: DateTimeType;
|
|
417
|
+
}>>;
|
|
418
|
+
readonly details: ArrayType<StructType<{
|
|
419
|
+
readonly label: StringType;
|
|
420
|
+
readonly value: StringType;
|
|
421
|
+
}>>;
|
|
422
|
+
}>>;
|
|
423
|
+
readonly kind: OptionType<StringType>;
|
|
424
|
+
readonly resource: StructType<{
|
|
425
|
+
readonly key: StringType;
|
|
426
|
+
readonly label: StringType;
|
|
427
|
+
readonly group: OptionType<StringType>;
|
|
428
|
+
readonly meta: OptionType<StringType>;
|
|
429
|
+
readonly note: OptionType<StringType>;
|
|
430
|
+
readonly min: FloatType;
|
|
431
|
+
readonly max: FloatType;
|
|
432
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
433
|
+
readonly minutes: FloatType;
|
|
434
|
+
readonly hours: FloatType;
|
|
435
|
+
readonly days: FloatType;
|
|
436
|
+
readonly weeks: FloatType;
|
|
437
|
+
readonly months: FloatType;
|
|
438
|
+
}>;
|
|
439
|
+
readonly jobs: ArrayType<StructType<{
|
|
440
|
+
readonly label: StringType;
|
|
441
|
+
readonly start: DateTimeType;
|
|
442
|
+
readonly end: DateTimeType;
|
|
443
|
+
}>>;
|
|
444
|
+
}>;
|
|
445
|
+
readonly load: StructType<{
|
|
446
|
+
readonly resource: StringType;
|
|
447
|
+
readonly fill: FloatType;
|
|
448
|
+
readonly bins: IntegerType;
|
|
449
|
+
readonly hold: OptionType<StructType<{
|
|
450
|
+
readonly from: DateTimeType;
|
|
451
|
+
readonly to: DateTimeType;
|
|
452
|
+
}>>;
|
|
453
|
+
readonly state: import("@elaraai/east").VariantType<{
|
|
454
|
+
readonly free: import("@elaraai/east").NullType;
|
|
455
|
+
readonly loading: import("@elaraai/east").NullType;
|
|
456
|
+
readonly busy: import("@elaraai/east").NullType;
|
|
457
|
+
}>;
|
|
458
|
+
}>;
|
|
459
|
+
readonly after: FloatType;
|
|
460
|
+
readonly hold: StructType<{
|
|
461
|
+
readonly from: DateTimeType;
|
|
462
|
+
readonly to: DateTimeType;
|
|
463
|
+
}>;
|
|
464
|
+
readonly spare: OptionType<FloatType>;
|
|
465
|
+
readonly kindMates: BooleanType;
|
|
466
|
+
readonly otherMates: BooleanType;
|
|
467
|
+
readonly rules: StructType<{
|
|
468
|
+
readonly under: BooleanType;
|
|
469
|
+
}>;
|
|
470
|
+
readonly unit: StringType;
|
|
471
|
+
}>>;
|
|
472
|
+
/**
|
|
473
|
+
* The built-in rules (§12.3): one verdict for one candidate.
|
|
474
|
+
*
|
|
475
|
+
* @param candidate - A quantity on a resource, against the drafted day
|
|
476
|
+
* @returns Its verdict
|
|
477
|
+
*
|
|
478
|
+
* @remarks
|
|
479
|
+
* In order: a job covering the day's start refuses it (`busy until Fri 14`);
|
|
480
|
+
* a hold running past the next job's start refuses it (`gap too short · next
|
|
481
|
+
* job Wed 19`); a fill over the maximum refuses it (`over max by 4 m³`); a
|
|
482
|
+
* reservation on a resource already at its maximum is refused (`full · …`).
|
|
483
|
+
* Otherwise it fits: its score is what it fills of the maximum, plus 0.25 when
|
|
484
|
+
* a bin of its kind is already there, less 0.1 when only other kinds are, less
|
|
485
|
+
* 0.5 under the minimum, less 0.04 a spare day up to six; its reason the spare
|
|
486
|
+
* days and the load it leaves; under the minimum it warns, when the rules ask.
|
|
487
|
+
*/
|
|
488
|
+
export declare const allocationFit: import("@elaraai/east").CallableFunctionExpr<[StructType<{
|
|
489
|
+
readonly day: DateTimeType;
|
|
490
|
+
readonly bin: OptionType<StringType>;
|
|
491
|
+
readonly reserve: BooleanType;
|
|
492
|
+
readonly quantity: FloatType;
|
|
493
|
+
readonly arrival: OptionType<StructType<{
|
|
494
|
+
readonly key: StringType;
|
|
495
|
+
readonly label: StringType;
|
|
496
|
+
readonly meta: OptionType<StringType>;
|
|
497
|
+
readonly quantity: FloatType;
|
|
498
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
499
|
+
readonly minutes: FloatType;
|
|
500
|
+
readonly hours: FloatType;
|
|
501
|
+
readonly days: FloatType;
|
|
502
|
+
readonly weeks: FloatType;
|
|
503
|
+
readonly months: FloatType;
|
|
504
|
+
}>;
|
|
505
|
+
readonly kind: OptionType<StringType>;
|
|
506
|
+
readonly due: OptionType<DateTimeType>;
|
|
507
|
+
readonly window: OptionType<StructType<{
|
|
508
|
+
readonly from: DateTimeType;
|
|
509
|
+
readonly to: DateTimeType;
|
|
510
|
+
}>>;
|
|
511
|
+
readonly details: ArrayType<StructType<{
|
|
512
|
+
readonly label: StringType;
|
|
513
|
+
readonly value: StringType;
|
|
514
|
+
}>>;
|
|
515
|
+
}>>;
|
|
516
|
+
readonly kind: OptionType<StringType>;
|
|
517
|
+
readonly resource: StructType<{
|
|
518
|
+
readonly key: StringType;
|
|
519
|
+
readonly label: StringType;
|
|
520
|
+
readonly group: OptionType<StringType>;
|
|
521
|
+
readonly meta: OptionType<StringType>;
|
|
522
|
+
readonly note: OptionType<StringType>;
|
|
523
|
+
readonly min: FloatType;
|
|
524
|
+
readonly max: FloatType;
|
|
525
|
+
readonly hold: import("@elaraai/east").VariantType<{
|
|
526
|
+
readonly minutes: FloatType;
|
|
527
|
+
readonly hours: FloatType;
|
|
528
|
+
readonly days: FloatType;
|
|
529
|
+
readonly weeks: FloatType;
|
|
530
|
+
readonly months: FloatType;
|
|
531
|
+
}>;
|
|
532
|
+
readonly jobs: ArrayType<StructType<{
|
|
533
|
+
readonly label: StringType;
|
|
534
|
+
readonly start: DateTimeType;
|
|
535
|
+
readonly end: DateTimeType;
|
|
536
|
+
}>>;
|
|
537
|
+
}>;
|
|
538
|
+
readonly load: StructType<{
|
|
539
|
+
readonly resource: StringType;
|
|
540
|
+
readonly fill: FloatType;
|
|
541
|
+
readonly bins: IntegerType;
|
|
542
|
+
readonly hold: OptionType<StructType<{
|
|
543
|
+
readonly from: DateTimeType;
|
|
544
|
+
readonly to: DateTimeType;
|
|
545
|
+
}>>;
|
|
546
|
+
readonly state: import("@elaraai/east").VariantType<{
|
|
547
|
+
readonly free: import("@elaraai/east").NullType;
|
|
548
|
+
readonly loading: import("@elaraai/east").NullType;
|
|
549
|
+
readonly busy: import("@elaraai/east").NullType;
|
|
550
|
+
}>;
|
|
551
|
+
}>;
|
|
552
|
+
readonly after: FloatType;
|
|
553
|
+
readonly hold: StructType<{
|
|
554
|
+
readonly from: DateTimeType;
|
|
555
|
+
readonly to: DateTimeType;
|
|
556
|
+
}>;
|
|
557
|
+
readonly spare: OptionType<FloatType>;
|
|
558
|
+
readonly kindMates: BooleanType;
|
|
559
|
+
readonly otherMates: BooleanType;
|
|
560
|
+
readonly rules: StructType<{
|
|
561
|
+
readonly under: BooleanType;
|
|
562
|
+
}>;
|
|
563
|
+
readonly unit: StringType;
|
|
564
|
+
}>], import("@elaraai/east").VariantType<{
|
|
565
|
+
readonly fits: StructType<{
|
|
566
|
+
readonly score: FloatType;
|
|
567
|
+
readonly why: StringType;
|
|
568
|
+
readonly warn: OptionType<StringType>;
|
|
569
|
+
}>;
|
|
570
|
+
readonly refused: StructType<{
|
|
571
|
+
readonly group: StringType;
|
|
572
|
+
readonly reason: StringType;
|
|
573
|
+
readonly measure: import("@elaraai/east").VariantType<{
|
|
574
|
+
readonly none: import("@elaraai/east").NullType;
|
|
575
|
+
readonly amount: StructType<{
|
|
576
|
+
readonly lead: StringType;
|
|
577
|
+
readonly value: FloatType;
|
|
578
|
+
}>;
|
|
579
|
+
readonly day: StructType<{
|
|
580
|
+
readonly lead: StringType;
|
|
581
|
+
readonly at: DateTimeType;
|
|
582
|
+
}>;
|
|
583
|
+
}>;
|
|
584
|
+
}>;
|
|
585
|
+
}>>;
|
|
586
|
+
/**
|
|
587
|
+
* Every resource's load on the plan day.
|
|
588
|
+
*
|
|
589
|
+
* @typeParam R - The app's bin row type
|
|
590
|
+
* @param row - The app's bin row type
|
|
591
|
+
* @returns An East function `(day, plan, context) → Dict<String, Load>`: an entry for every resource, by key
|
|
592
|
+
*/
|
|
593
|
+
export declare function allocationLoads<R extends EastType>(row: R): ExprType<FunctionType<[DateTimeType, AllocationDayType<R>, ContextType], DictType<StringType, typeof AllocationLoadType>>>;
|
|
594
|
+
/**
|
|
595
|
+
* The candidates for a fit's question.
|
|
596
|
+
*
|
|
597
|
+
* @typeParam R - The app's bin row type
|
|
598
|
+
* @param row - The app's bin row type
|
|
599
|
+
* @returns An East function `(request) → Array<Candidate>`: a place's subject on every resource, in the resources' key order; or for a take, every bin on its resource, then every arrival the day has not booked, then a reservation
|
|
600
|
+
*
|
|
601
|
+
* @remarks
|
|
602
|
+
* A bin is placed with its own kind and hold, an arrival with its, and a bin
|
|
603
|
+
* booking no arrival — a reservation — with no quantity and each resource's
|
|
604
|
+
* own hold (§12.3, rule 4); the resource's other parts are every bin's but
|
|
605
|
+
* the subject's. A take places each bin's unallocated quantity (with its part
|
|
606
|
+
* already there), or the whole bin when it has none; then each arrival no bin
|
|
607
|
+
* of the day books, whole, as a place of it would; and last a reservation with
|
|
608
|
+
* the resource's hold.
|
|
609
|
+
*/
|
|
610
|
+
export declare function allocationCandidates<R extends EastType>(row: R): ExprType<FunctionType<[AllocationFitRequestType<R>], ArrayType<typeof AllocationCandidateType>>>;
|
|
611
|
+
/**
|
|
612
|
+
* Answers a fit's question with a fit per candidate.
|
|
613
|
+
*
|
|
614
|
+
* @typeParam R - The app's bin row type
|
|
615
|
+
* @param row - The app's bin row type
|
|
616
|
+
* @returns An East function `(request, fit, basis) → FitResult`: a place's verdict for every resource, or a take's for every bin, every arrival the day has not booked, and reserving; `basis` says in words how the fit ranks (`ranked by load, kind and spare days`)
|
|
617
|
+
*/
|
|
618
|
+
export declare function allocationAnswer<R extends EastType>(row: R): ExprType<FunctionType<[AllocationFitRequestType<R>, FunctionType<[typeof AllocationCandidateType], typeof AllocationFitType>, StringType], typeof AllocationFitResultType>>;
|
|
619
|
+
/**
|
|
620
|
+
* A greedy look-ahead over a fit (§12.4): what a placement leaves for the
|
|
621
|
+
* day's other arrivals.
|
|
622
|
+
*
|
|
623
|
+
* @typeParam R - The app's bin row type
|
|
624
|
+
* @param row - The app's bin row type
|
|
625
|
+
* @returns An East function `(request, candidate, fit) → Fit`
|
|
626
|
+
*
|
|
627
|
+
* @remarks
|
|
628
|
+
* A refusal is returned as `fit` gives it. A fit places the candidate — a bin
|
|
629
|
+
* moves whole onto the candidate's resource with the candidate's quantity —
|
|
630
|
+
* then each of the day's unbooked arrivals, largest first (ties in key
|
|
631
|
+
* order), on the resource `fit` scores best for it (ties in key order), and
|
|
632
|
+
* lowers the score by one for each arrival left with nowhere to go, adding
|
|
633
|
+
* `· leaves 1 load with no fit` to its reason.
|
|
634
|
+
*/
|
|
635
|
+
export declare function allocationLookahead<R extends EastType>(row: R): ExprType<FunctionType<[AllocationFitRequestType<R>, typeof AllocationCandidateType, FunctionType<[typeof AllocationCandidateType], typeof AllocationFitType>], typeof AllocationFitType>>;
|
|
636
|
+
/**
|
|
637
|
+
* The built-in checks (§12.3), over committed and drafted bins alike.
|
|
638
|
+
*
|
|
639
|
+
* @typeParam R - The app's bin row type
|
|
640
|
+
* @param row - The app's bin row type
|
|
641
|
+
* @returns An East function `(day, plan, context) → Array<Issue>`: bins not linked, then partly allocated, then resources whose hold overlaps their next job, over their maximum, and under their minimum when the rules ask
|
|
642
|
+
*
|
|
643
|
+
* @remarks
|
|
644
|
+
* Issues never block Save or Publish. A resource's issue offers to move its
|
|
645
|
+
* latest bin; the app's `check` follows these wherever issues show.
|
|
646
|
+
*/
|
|
647
|
+
export declare function allocationCheck<R extends EastType>(row: R): ExprType<FunctionType<[DateTimeType, AllocationDayType<R>, ContextType], ArrayType<typeof AllocationIssueType>>>;
|
|
648
|
+
/**
|
|
649
|
+
* The plan day's lane slots: one per lane per `every`, in time then lane order.
|
|
650
|
+
*
|
|
651
|
+
* @typeParam R - The app's bin row type
|
|
652
|
+
* @param row - The app's bin row type
|
|
653
|
+
* @returns An East function `(day, plan, context) → Array<Slot>`
|
|
654
|
+
*
|
|
655
|
+
* @remarks
|
|
656
|
+
* A bin is in the slot whose time it follows: from ten minutes before the
|
|
657
|
+
* slot's time to ten minutes before the next one's, as a batch follows its
|
|
658
|
+
* slot by a minute a bin. A slot holding a bin booking an arrival is booked,
|
|
659
|
+
* one holding only reservations reserved, an empty one free. A bin in a lane
|
|
660
|
+
* the context does not have is in no slot.
|
|
661
|
+
*/
|
|
662
|
+
export declare function allocationSlots<R extends EastType>(row: R): ExprType<FunctionType<[DateTimeType, AllocationDayType<R>, ContextType], ArrayType<typeof AllocationSlotType>>>;
|
|
663
|
+
export {};
|
|
664
|
+
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/allocation/functions.ts"],"names":[],"mappings":"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"}
|