@kosdev-code/kos-dispense-sdk 2.1.5 → 2.1.6

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/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import { A as t, b as n, e as u, d, B as l, C, a as P, f as v, D as A, k as g, E as y, G as m, H as p, g as I, I as T, h as D, K as S, N as c, l as E, P as B, i as N, j as b, T as x, c as _, k as O, r as z } from "./dispense-registration-manager-pB5e_YT1.js";
1
+ import { A as t, b as n, e as u, d, B as l, C, a as P, f as v, D as A, k as g, E as y, G as m, H as p, g as I, I as T, h as D, K as S, N as c, l as E, P as B, i as N, j as x, T as b, c as _, k as O, r as z } from "./dispense-registration-manager-pB5e_YT1.js";
2
2
  import { i as h, f as K, D as R, a as w, b as G, c as M, K as f, d as L, e as U, g as k } from "./extension-utils-siWT4ZuD.js";
3
- import { A as V, a as X, d as W, B as Y, ab as j, f as q, C as J, G as Q, F as Z, J as $, D as ee, ac as se, a4 as ae, a5 as re, j as ie, H as oe, m as te, I as ne, N as ue, P as de, a6 as le, a7 as Ce, a8 as Pe, i as ve, q as Ae, u as ge, r as ye, b as me, z as pe, t as Ie, x as Te, e as De, c as Se, E as ce, K as Ee, O as Be, L as Ne, R as be, g as xe, M as _e, Q as Oe, a9 as ze, T as He, V as he, k as Ke, h as Re, X as we, _ as Ge, n as Me, l as fe, Y as Le, a0 as Ue, o as ke, a2 as Fe, a3 as Ve, p as Xe, w as We, s as Ye, v as je, y as qe, S as Je, aa as Qe, U as Ze, W as $e, Z as es, $ as ss, a1 as as } from "./control-pour-extension-BE0tHeaO.js";
3
+ import { A as V, a as X, d as W, B as Y, ac as j, f as q, C as J, G as Q, F as Z, J as $, D as ee, ad as se, a4 as ae, a5 as re, j as oe, H as ie, m as te, I as ne, N as ue, ab as de, P as le, a6 as Ce, a7 as Pe, a8 as ve, i as Ae, q as ge, u as ye, r as me, b as pe, z as Ie, t as Te, x as De, e as Se, c as ce, E as Ee, K as Be, O as Ne, L as xe, R as be, g as _e, M as Oe, Q as ze, a9 as He, T as he, V as Ke, k as Re, h as we, X as Ge, _ as Me, n as fe, l as Le, Y as Ue, a0 as ke, o as Fe, a2 as Ve, a3 as Xe, p as We, w as Ye, s as je, v as qe, y as Je, S as Qe, aa as Ze, U as $e, W as es, Z as ss, $ as as, a1 as rs } from "./control-pour-extension-DLJOCOIC.js";
4
4
  import "@kosdev-code/kos-ui-sdk";
5
5
  import "react";
6
6
  import "@emotion/react/jsx-runtime";
@@ -38,8 +38,8 @@ export {
38
38
  re as HoldToPourStrategy,
39
39
  p as Holder,
40
40
  I as HolderContainer,
41
- ie as HolderContainerProvider,
42
- oe as HolderProvider,
41
+ oe as HolderContainerProvider,
42
+ ie as HolderProvider,
43
43
  G as HolderServices,
44
44
  T as Ingredient,
45
45
  D as IngredientContainer,
@@ -51,63 +51,64 @@ export {
51
51
  c as Nozzle,
52
52
  ue as NozzleProvider,
53
53
  L as NozzleServices,
54
+ de as PourContext,
54
55
  E as PourState,
55
56
  B as Pump,
56
57
  N as PumpContainer,
57
- b as PumpIndex,
58
- de as PumpProvider,
58
+ x as PumpIndex,
59
+ le as PumpProvider,
59
60
  U as PumpServices,
60
- x as TOPIC_BOARD_LINKED,
61
+ b as TOPIC_BOARD_LINKED,
61
62
  _ as TOPIC_BOARD_UNLINKED,
62
- le as TapOrHoldIntentStrategy,
63
- Ce as TapToPourIntentStrategy,
64
- Pe as TapToPourStrategy,
63
+ Ce as TapOrHoldIntentStrategy,
64
+ Pe as TapToPourIntentStrategy,
65
+ ve as TapToPourStrategy,
65
66
  k as getFuelGaugeValue,
66
- ve as initializeCuiKit,
67
+ Ae as initializeCuiKit,
67
68
  O as kosModels,
68
69
  z as registerDispenseModels,
69
- Ae as useAssembly,
70
- ge as useAssemblyContext,
71
- ye as useAvailability,
72
- me as useAvailabilityContext,
73
- pe as useBeverages,
74
- Ie as useBoard,
75
- Te as useBoardContainer,
76
- De as useBoardContainerContext,
77
- Se as useBoardContext,
78
- ce as useBrands,
79
- Ee as useCuiKit,
80
- Be as useCuiKitTimers,
81
- Ne as useDefaultCuiKitLifecycle,
70
+ ge as useAssembly,
71
+ ye as useAssemblyContext,
72
+ me as useAvailability,
73
+ pe as useAvailabilityContext,
74
+ Ie as useBeverages,
75
+ Te as useBoard,
76
+ De as useBoardContainer,
77
+ Se as useBoardContainerContext,
78
+ ce as useBoardContext,
79
+ Ee as useBrands,
80
+ Be as useCuiKit,
81
+ Ne as useCuiKitTimers,
82
+ xe as useDefaultCuiKitLifecycle,
82
83
  be as useDeviceAssembly,
83
- xe as useDeviceAssemblyContext,
84
- _e as useDispenseLifecycle,
85
- Oe as useFlavors,
86
- ze as useGenericPour,
87
- He as useHolder,
88
- he as useHolderContainer,
89
- Ke as useHolderContainerContext,
90
- Re as useHolderContext,
91
- we as useIngredient,
92
- Ge as useIngredientContainer,
93
- Me as useIngredientContainerContext,
94
- fe as useIngredientContext,
95
- Le as useIngredientPour,
96
- Ue as useNozzle,
97
- ke as useNozzleContext,
98
- Fe as useNozzlePour,
99
- Ve as usePourTarget,
100
- Xe as usePumpContext,
101
- We as withAssembly,
102
- Ye as withBeverage,
103
- je as withBoard,
104
- qe as withBoardContainer,
105
- Je as withDeviceAssembly,
106
- Qe as withGenericPour,
107
- Ze as withHolder,
108
- $e as withHolderContainer,
109
- es as withIngredient,
110
- ss as withIngredientContainer,
111
- as as withNozzle
84
+ _e as useDeviceAssemblyContext,
85
+ Oe as useDispenseLifecycle,
86
+ ze as useFlavors,
87
+ He as useGenericPour,
88
+ he as useHolder,
89
+ Ke as useHolderContainer,
90
+ Re as useHolderContainerContext,
91
+ we as useHolderContext,
92
+ Ge as useIngredient,
93
+ Me as useIngredientContainer,
94
+ fe as useIngredientContainerContext,
95
+ Le as useIngredientContext,
96
+ Ue as useIngredientPour,
97
+ ke as useNozzle,
98
+ Fe as useNozzleContext,
99
+ Ve as useNozzlePour,
100
+ Xe as usePourTarget,
101
+ We as usePumpContext,
102
+ Ye as withAssembly,
103
+ je as withBeverage,
104
+ qe as withBoard,
105
+ Je as withBoardContainer,
106
+ Qe as withDeviceAssembly,
107
+ Ze as withGenericPour,
108
+ $e as withHolder,
109
+ es as withHolderContainer,
110
+ ss as withIngredient,
111
+ as as withIngredientContainer,
112
+ rs as withNozzle
112
113
  };
113
114
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kosdev-code/kos-dispense-sdk",
3
- "version": "2.1.5",
3
+ "version": "2.1.6",
4
4
  "type": "module",
5
5
  "types": "./index.d.ts",
6
6
  "main": "./index.js",
@@ -23,14 +23,14 @@
23
23
  "./package.json": "./package.json"
24
24
  },
25
25
  "dependencies": {
26
- "@kosdev-code/kos-ui-sdk": "~2.1.5"
26
+ "@kosdev-code/kos-ui-sdk": "~2.1.6"
27
27
  },
28
28
  "publishConfig": {
29
29
  "registry": "https://registry.npmjs.org/"
30
30
  },
31
31
  "kos": {
32
32
  "build": {
33
- "gitHash": "f6380de36ef603bff40ba99564d1f4c094003f6f"
33
+ "gitHash": "25b2fd8901604f4bcba7eb07dc94143f2feedd55"
34
34
  }
35
35
  }
36
36
  }
@@ -1,4 +1,5 @@
1
1
  import { useNozzlePour } from '../nozzle-pour/use-nozzle-pour';
2
+ import { PourContext } from '../../utils/pour-context';
2
3
  import { AvailabilityModel } from '../../../models';
3
4
  import { IKosDataModel, KosTimer } from '@kosdev-code/kos-ui-sdk';
4
5
 
@@ -106,7 +107,7 @@ export interface CuiKitType<BrandData extends Record<string, any> = any, Beverag
106
107
  * Provides functions and status related to the pour operation.
107
108
  */
108
109
  pour: ReturnType<typeof useNozzlePour>;
109
- updateOnBeforePour: (callback: () => Promise<boolean>) => void;
110
+ updateOnBeforePour: (callback: (context?: PourContext) => Promise<boolean>) => void;
110
111
  /**
111
112
  * The current selections of the cui kit.
112
113
  */
@@ -1 +1 @@
1
- {"version":3,"file":"use-cui-kit.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/ui/hooks/cui-kit/use-cui-kit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-cui-kit.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/ui/hooks/cui-kit/use-cui-kit.ts"],"names":[],"mappings":"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"}
package/ui/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './contexts';
2
2
  export * from './hooks';
3
+ export * from './utils/pour-context';
3
4
  //# sourceMappingURL=index.d.ts.map
package/ui/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/sdk/kos-dispense-sdk/src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/sdk/kos-dispense-sdk/src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC"}
package/ui.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./control-pour-extension-6WFoj5jQ.cjs");require("@emotion/react/jsx-runtime");require("./dispense-registration-manager-DauhdXxX.cjs");require("@kosdev-code/kos-ui-sdk");require("react");require("zod");exports.AssemblyProvider=e.AssemblyProvider;exports.AvailabilityProvider=e.AvailabilityProvider;exports.BoardContainerProvider=e.BoardContainerProvider;exports.BoardProvider=e.BoardProvider;exports.CuiKit=e.CuiKit;exports.CuiKitWrapper=e.CuiKitWrapper;exports.DISPENSE_GROUP_BEVERAGE=e.DISPENSE_GROUP_BEVERAGE;exports.DISPENSE_GROUP_BRAND=e.DISPENSE_GROUP_BRAND;exports.DISPENSE_GROUP_FLAVOR=e.DISPENSE_GROUP_FLAVOR;exports.DeviceAssemblyProvider=e.DeviceAssemblyProvider;exports.HoldToPourIntentStrategy=e.HoldToPourIntentStrategy;exports.HoldToPourStrategy=e.HoldToPourStrategy;exports.HolderContainerProvider=e.HolderContainerProvider;exports.HolderProvider=e.HolderProvider;exports.IngredientContainerProvider=e.IngredientContainerProvider;exports.IngredientProvider=e.IngredientProvider;exports.NozzleProvider=e.NozzleProvider;exports.PumpProvider=e.PumpProvider;exports.TapOrHoldIntentStrategy=e.TapOrHoldIntentStrategy;exports.TapToPourIntentStrategy=e.TapToPourIntentStrategy;exports.TapToPourStrategy=e.TapToPourStrategy;exports.initializeCuiKit=e.initializeCuiKit;exports.useAssembly=e.useAssembly;exports.useAssemblyContext=e.useAssemblyContext;exports.useAvailability=e.useAvailability;exports.useAvailabilityContext=e.useAvailabilityContext;exports.useBeverages=e.useBeverages;exports.useBoard=e.useBoard;exports.useBoardContainer=e.useBoardContainer;exports.useBoardContainerContext=e.useBoardContainerContext;exports.useBoardContext=e.useBoardContext;exports.useBrands=e.useBrands;exports.useCuiKit=e.useCuiKit;exports.useCuiKitTimers=e.useCuiKitTimers;exports.useDefaultCuiKitLifecycle=e.useDefaultCuiKitLifecycle;exports.useDeviceAssembly=e.useDeviceAssembly;exports.useDeviceAssemblyContext=e.useDeviceAssemblyContext;exports.useDispenseLifecycle=e.useDispenseLifecycle;exports.useFlavors=e.useFlavors;exports.useGenericPour=e.useGenericPour;exports.useHolder=e.useHolder;exports.useHolderContainer=e.useHolderContainer;exports.useHolderContainerContext=e.useHolderContainerContext;exports.useHolderContext=e.useHolderContext;exports.useIngredient=e.useIngredient;exports.useIngredientContainer=e.useIngredientContainer;exports.useIngredientContainerContext=e.useIngredientContainerContext;exports.useIngredientContext=e.useIngredientContext;exports.useIngredientPour=e.useIngredientPour;exports.useNozzle=e.useNozzle;exports.useNozzleContext=e.useNozzleContext;exports.useNozzlePour=e.useNozzlePour;exports.usePourTarget=e.usePourTarget;exports.usePumpContext=e.usePumpContext;exports.withAssembly=e.withAssembly;exports.withBeverage=e.withBeverage;exports.withBoard=e.withBoard;exports.withBoardContainer=e.withBoardContainer;exports.withDeviceAssembly=e.withDeviceAssembly;exports.withGenericPour=e.withGenericPour;exports.withHolder=e.withHolder;exports.withHolderContainer=e.withHolderContainer;exports.withIngredient=e.withIngredient;exports.withIngredientContainer=e.withIngredientContainer;exports.withNozzle=e.withNozzle;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./control-pour-extension-BAEKgAmw.cjs");require("@emotion/react/jsx-runtime");require("./dispense-registration-manager-DauhdXxX.cjs");require("@kosdev-code/kos-ui-sdk");require("react");require("zod");exports.AssemblyProvider=e.AssemblyProvider;exports.AvailabilityProvider=e.AvailabilityProvider;exports.BoardContainerProvider=e.BoardContainerProvider;exports.BoardProvider=e.BoardProvider;exports.CuiKit=e.CuiKit;exports.CuiKitWrapper=e.CuiKitWrapper;exports.DISPENSE_GROUP_BEVERAGE=e.DISPENSE_GROUP_BEVERAGE;exports.DISPENSE_GROUP_BRAND=e.DISPENSE_GROUP_BRAND;exports.DISPENSE_GROUP_FLAVOR=e.DISPENSE_GROUP_FLAVOR;exports.DeviceAssemblyProvider=e.DeviceAssemblyProvider;exports.HoldToPourIntentStrategy=e.HoldToPourIntentStrategy;exports.HoldToPourStrategy=e.HoldToPourStrategy;exports.HolderContainerProvider=e.HolderContainerProvider;exports.HolderProvider=e.HolderProvider;exports.IngredientContainerProvider=e.IngredientContainerProvider;exports.IngredientProvider=e.IngredientProvider;exports.NozzleProvider=e.NozzleProvider;exports.PourContext=e.PourContext;exports.PumpProvider=e.PumpProvider;exports.TapOrHoldIntentStrategy=e.TapOrHoldIntentStrategy;exports.TapToPourIntentStrategy=e.TapToPourIntentStrategy;exports.TapToPourStrategy=e.TapToPourStrategy;exports.initializeCuiKit=e.initializeCuiKit;exports.useAssembly=e.useAssembly;exports.useAssemblyContext=e.useAssemblyContext;exports.useAvailability=e.useAvailability;exports.useAvailabilityContext=e.useAvailabilityContext;exports.useBeverages=e.useBeverages;exports.useBoard=e.useBoard;exports.useBoardContainer=e.useBoardContainer;exports.useBoardContainerContext=e.useBoardContainerContext;exports.useBoardContext=e.useBoardContext;exports.useBrands=e.useBrands;exports.useCuiKit=e.useCuiKit;exports.useCuiKitTimers=e.useCuiKitTimers;exports.useDefaultCuiKitLifecycle=e.useDefaultCuiKitLifecycle;exports.useDeviceAssembly=e.useDeviceAssembly;exports.useDeviceAssemblyContext=e.useDeviceAssemblyContext;exports.useDispenseLifecycle=e.useDispenseLifecycle;exports.useFlavors=e.useFlavors;exports.useGenericPour=e.useGenericPour;exports.useHolder=e.useHolder;exports.useHolderContainer=e.useHolderContainer;exports.useHolderContainerContext=e.useHolderContainerContext;exports.useHolderContext=e.useHolderContext;exports.useIngredient=e.useIngredient;exports.useIngredientContainer=e.useIngredientContainer;exports.useIngredientContainerContext=e.useIngredientContainerContext;exports.useIngredientContext=e.useIngredientContext;exports.useIngredientPour=e.useIngredientPour;exports.useNozzle=e.useNozzle;exports.useNozzleContext=e.useNozzleContext;exports.useNozzlePour=e.useNozzlePour;exports.usePourTarget=e.usePourTarget;exports.usePumpContext=e.usePumpContext;exports.withAssembly=e.withAssembly;exports.withBeverage=e.withBeverage;exports.withBoard=e.withBoard;exports.withBoardContainer=e.withBoardContainer;exports.withDeviceAssembly=e.withDeviceAssembly;exports.withGenericPour=e.withGenericPour;exports.withHolder=e.withHolder;exports.withHolderContainer=e.withHolderContainer;exports.withIngredient=e.withIngredient;exports.withIngredientContainer=e.withIngredientContainer;exports.withNozzle=e.withNozzle;
2
2
  //# sourceMappingURL=ui.cjs.map
package/ui.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as n, a as u, d, B as l, f as C, C as P, G as v, F as y, J as g, D as m, a4 as I, a5 as p, j as A, H as B, m as x, I as b, N as h, P as w, a6 as z, a7 as H, a8 as S, i as c, q as D, u as E, r as N, b as T, z as G, t as K, x as R, e as _, c as O, E as f, K as L, O as U, L as F, R as V, g as W, M as j, Q as k, a9 as q, T as J, V as M, k as Q, h as X, X as Y, _ as Z, n as $, l as ee, Y as ae, a0 as se, o as re, a2 as te, a3 as ie, p as oe, w as ne, s as ue, v as de, y as le, S as Ce, aa as Pe, U as ve, W as ye, Z as ge, $ as me, a1 as Ie } from "./control-pour-extension-BE0tHeaO.js";
1
+ import { A as n, a as u, d, B as l, f as C, C as P, G as v, F as y, J as g, D as m, a4 as I, a5 as p, j as A, H as x, m as B, I as b, N as h, ab as w, P as z, a6 as H, a7 as S, a8 as c, i as D, q as E, u as N, r as T, b as G, z as K, t as R, x as _, e as O, c as f, E as L, K as U, O as F, L as V, R as W, g as j, M as k, Q as q, a9 as J, T as M, V as Q, k as X, h as Y, X as Z, _ as $, n as ee, l as ae, Y as se, a0 as re, o as te, a2 as ie, a3 as oe, p as ne, w as ue, s as de, v as le, y as Ce, S as Pe, aa as ve, U as ye, W as ge, Z as me, $ as Ie, a1 as pe } from "./control-pour-extension-DLJOCOIC.js";
2
2
  import "@emotion/react/jsx-runtime";
3
3
  import "./dispense-registration-manager-pB5e_YT1.js";
4
4
  import "@kosdev-code/kos-ui-sdk";
@@ -18,57 +18,58 @@ export {
18
18
  I as HoldToPourIntentStrategy,
19
19
  p as HoldToPourStrategy,
20
20
  A as HolderContainerProvider,
21
- B as HolderProvider,
22
- x as IngredientContainerProvider,
21
+ x as HolderProvider,
22
+ B as IngredientContainerProvider,
23
23
  b as IngredientProvider,
24
24
  h as NozzleProvider,
25
- w as PumpProvider,
26
- z as TapOrHoldIntentStrategy,
27
- H as TapToPourIntentStrategy,
28
- S as TapToPourStrategy,
29
- c as initializeCuiKit,
30
- D as useAssembly,
31
- E as useAssemblyContext,
32
- N as useAvailability,
33
- T as useAvailabilityContext,
34
- G as useBeverages,
35
- K as useBoard,
36
- R as useBoardContainer,
37
- _ as useBoardContainerContext,
38
- O as useBoardContext,
39
- f as useBrands,
40
- L as useCuiKit,
41
- U as useCuiKitTimers,
42
- F as useDefaultCuiKitLifecycle,
43
- V as useDeviceAssembly,
44
- W as useDeviceAssemblyContext,
45
- j as useDispenseLifecycle,
46
- k as useFlavors,
47
- q as useGenericPour,
48
- J as useHolder,
49
- M as useHolderContainer,
50
- Q as useHolderContainerContext,
51
- X as useHolderContext,
52
- Y as useIngredient,
53
- Z as useIngredientContainer,
54
- $ as useIngredientContainerContext,
55
- ee as useIngredientContext,
56
- ae as useIngredientPour,
57
- se as useNozzle,
58
- re as useNozzleContext,
59
- te as useNozzlePour,
60
- ie as usePourTarget,
61
- oe as usePumpContext,
62
- ne as withAssembly,
63
- ue as withBeverage,
64
- de as withBoard,
65
- le as withBoardContainer,
66
- Ce as withDeviceAssembly,
67
- Pe as withGenericPour,
68
- ve as withHolder,
69
- ye as withHolderContainer,
70
- ge as withIngredient,
71
- me as withIngredientContainer,
72
- Ie as withNozzle
25
+ w as PourContext,
26
+ z as PumpProvider,
27
+ H as TapOrHoldIntentStrategy,
28
+ S as TapToPourIntentStrategy,
29
+ c as TapToPourStrategy,
30
+ D as initializeCuiKit,
31
+ E as useAssembly,
32
+ N as useAssemblyContext,
33
+ T as useAvailability,
34
+ G as useAvailabilityContext,
35
+ K as useBeverages,
36
+ R as useBoard,
37
+ _ as useBoardContainer,
38
+ O as useBoardContainerContext,
39
+ f as useBoardContext,
40
+ L as useBrands,
41
+ U as useCuiKit,
42
+ F as useCuiKitTimers,
43
+ V as useDefaultCuiKitLifecycle,
44
+ W as useDeviceAssembly,
45
+ j as useDeviceAssemblyContext,
46
+ k as useDispenseLifecycle,
47
+ q as useFlavors,
48
+ J as useGenericPour,
49
+ M as useHolder,
50
+ Q as useHolderContainer,
51
+ X as useHolderContainerContext,
52
+ Y as useHolderContext,
53
+ Z as useIngredient,
54
+ $ as useIngredientContainer,
55
+ ee as useIngredientContainerContext,
56
+ ae as useIngredientContext,
57
+ se as useIngredientPour,
58
+ re as useNozzle,
59
+ te as useNozzleContext,
60
+ ie as useNozzlePour,
61
+ oe as usePourTarget,
62
+ ne as usePumpContext,
63
+ ue as withAssembly,
64
+ de as withBeverage,
65
+ le as withBoard,
66
+ Ce as withBoardContainer,
67
+ Pe as withDeviceAssembly,
68
+ ve as withGenericPour,
69
+ ye as withHolder,
70
+ ge as withHolderContainer,
71
+ me as withIngredient,
72
+ Ie as withIngredientContainer,
73
+ pe as withNozzle
73
74
  };
74
75
  //# sourceMappingURL=ui.js.map
@@ -1,2 +0,0 @@
1
- "use strict";var lt=Object.defineProperty;var mt=(e,t,s)=>t in e?lt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var B=(e,t,s)=>(mt(e,typeof t!="symbol"?t+"":t,s),s);const b=require("@emotion/react/jsx-runtime"),P=require("./dispense-registration-manager-DauhdXxX.cjs"),l=require("@kosdev-code/kos-ui-sdk"),o=require("react"),D=require("zod"),Pe=()=>{const e=P.Assembly.type;return l.useKosModel({modelId:e,modelType:P.Assembly.type,options:{}})};function pt(e){return t=>{const{model:s,status:n,KosModelLoader:r}=Pe();return b.jsx(r,{...n,children:b.jsx(e,{...t,assembly:s})})}}const we=()=>{const e=P.Availability.type;return l.useKosModel({modelId:e,modelType:P.Availability.type,options:{}})};function ft(e){return t=>{const{model:s,status:n,KosModelLoader:r}=we();return b.jsx(r,{...n,children:b.jsx(e,{...t,beverage:s})})}}const Ie=e=>{const t=e;return l.useKosModel({modelId:t,modelType:P.Board.type,options:{}})};function ht(e){return t=>s=>{const{model:n,status:r,KosModelLoader:a}=Ie(t);return b.jsx(a,{...r,children:b.jsx(e,{...s,board:n})})}}const ke=()=>{const e=P.BoardContainer.type;return l.useKosModel({modelId:e,modelType:P.BoardContainer.type,options:{}})};function bt(e){return t=>{const{model:s,status:n,KosModelLoader:r}=ke();return b.jsx(r,{...n,children:b.jsx(e,{...t,boardContainer:s})})}}const Ee=e=>{const t=e;return l.useKosModel({modelId:t,modelType:P.Nozzle.type,options:{path:e}})},Le=o.createContext(void 0),He=({children:e,path:t})=>{const{model:s,ready:n}=Ee(t),r=o.useMemo(()=>n&&s?{model:s}:{},[n,s]);return b.jsx(Le.Provider,{value:r,children:e})},A=()=>{const e=o.useContext(Le);if(!e)throw new Error("useNozzleContext must be used within a NozzleProvider");return e},De=({onBeverageSelected:e,onClearBeverage:t,companionType:s})=>{const{model:n}=A(),[r,a]=o.useState([]),[i,c]=o.useState(null),f=o.useMemo(()=>s?r.map(m=>l.getKosCompanionModel(m,s)):[],[r,s]),p=o.useCallback(async m=>{c(m),await(n==null?void 0:n.setSelectedPourable({beverage:m})),e==null||e(m)},[n,e]),d=o.useCallback(async()=>{c(null),await(n==null?void 0:n.setSelectedPourable({beverage:void 0})),t==null||t()},[n,t]);return o.useEffect(()=>{const m=l.kosAutoEffect(()=>{if(!n)return;const C=n.selectedBrand;if(!C){const x=n.getGroupAvailabilityItems("beverages").filter(h=>h.visible);a(x??[]);return}const g=n.getAvailabilityByParent(C.id).filter(x=>x.visible);a(g??[])});return()=>{m()}},[n]),{beverages:r,beverageCompanions:f,selectBeverage:p,selectedBeverage:i,clearBeverage:d}},Oe=({onBrandSelected:e,onBrandCleared:t,companionType:s})=>{const{model:n}=A(),[r,a]=o.useState(null),[i,c]=o.useState([]),f=o.useMemo(()=>s?i.map(m=>l.getKosCompanionModel(m,s)):[],[i,s]),p=o.useCallback(async m=>{a(m),n==null||n.setSelectedBrand(m),e==null||e(m)},[n,e]),d=o.useCallback(()=>{a(null),n==null||n.setSelectedBrand(void 0),t==null||t()},[n,t]);return o.useEffect(()=>{const m=l.kosAutoEffect(()=>{n&&c(n.visibleBrands)});return()=>{m()}},[n]),{brands:i,brandCompanions:f,selectedBrand:r,selectBrand:p,clearBrand:d}};class Ue{constructor(){B(this,"_data",new Map)}get(t){return this._data.get(t)}set(t,s){this._data.set(t,s)}remove(t){this._data.delete(t)}has(t){return this._data.has(t)}}const vt=l.KosLog.createLogger({name:"HoldToPourStrategy",group:"kos-hooks"}),$e={name:"HoldToPourStrategy",async initiate(e){if(!(e!=null&&e.canPour)){vt.debug(`Nozzle ${e==null?void 0:e.id} cannot pour. Returning early.`);return}await(e==null?void 0:e.pour())},async initiateEnded(e){await(e==null?void 0:e.cancelPour())}},re=l.KosLog.createLogger({name:"useNozzlePour",group:"kos-hooks"}),Fe=({onPour:e,onPourCancel:t,onBeforePour:s,onBeforePourRejected:n,pourContext:r,strategy:a=$e})=>{const{model:i}=A(),[c,f]=o.useState(r||new Ue),p=o.useCallback(async()=>{(s?await(s==null?void 0:s(c)):!0)?(re.debug(`[${a==null?void 0:a.name}] - Pour initiated for nozzle ${i==null?void 0:i.id}.`),a==null||a.initiate(i),e==null||e()):(re.debug(`[${a==null?void 0:a.name}] - Did not pass onBeforePour gate for nozzle ${i==null?void 0:i.id}. Cancelling pour.`),n==null||n())},[e,i,a,s,t,c,n]),d=o.useCallback(()=>{var h;re.debug(`[${a==null?void 0:a.name}] - Pour initiate ended called for nozzle ${i==null?void 0:i.id}.`),(h=a==null?void 0:a.initiateEnded)==null||h.call(a,i),t==null||t()},[t,i,a]),m=o.useCallback(()=>{re.debug(`Force cancelling pour for nozzle ${i==null?void 0:i.id}.`),i==null||i.cancelPour(),t==null||t()},[t,i]),C=o.useCallback((h,u)=>{c.set(h,u)},[c]),g=o.useCallback(h=>{c.remove(h)},[c]);return{handlers:l.usePressGesture({onPressed:p,onRelease:d}).dom,cancel:m,updatePourContext:C,removeFromPourContext:g,status:i}},Ge=({onFlavorSelected:e,onFlavorCleared:t,companionType:s})=>{const{model:n}=A(),r=o.useMemo(()=>(n==null?void 0:n.getGroupAvailabilityItems("flavors").filter(d=>d.visible))??[],[n]),a=o.useMemo(()=>s?r.map(d=>l.getKosCompanionModel(d,s)):[],[r,s]),[i,c]=o.useState([]),f=o.useCallback(async d=>{if(c(m=>m!=null&&m.includes(d)?[...m.filter(C=>C!==d)]:[...m??[],d]),n!=null&&n.selectedPourable){const{beverage:m}=n.selectedPourable;await n.setSelectedPourable({beverage:m,additional:i??[]})}e==null||e(d,i??[])},[n,e,i]),p=o.useCallback(async()=>{if(c([]),n!=null&&n.selectedPourable){const{beverage:d}=n.selectedPourable;n.setSelectedPourable({beverage:d}),t==null||t()}},[n,t]);return{flavors:r,flavorCompanions:a,selectFlavor:f,selectedFlavors:i,clearFlavors:p}},Y="brands",z="beverages",q="flavors",N=l.KosLog.createLogger({name:"use-cui-kit"}),Ve=({initialGroup:e=Y,options:t={}})=>{var ee,te,se;const[s,n]=o.useState(e),{model:r}=A(),a=o.useRef([]),i=o.useRef(),c=o.useRef(),f=o.useCallback(v=>{n(q);const k=`/kos/dispense/${r==null?void 0:r.path}/brand/selected/`;l.EventBus.publish(k,v)},[r==null?void 0:r.path]),p=o.useCallback(()=>{const v=`/kos/dispense/${r==null?void 0:r.path}/brand/cleared/`;l.EventBus.publish(v,{})},[r==null?void 0:r.path]),d=o.useCallback(v=>{var Z;n(q),(Z=i.current)==null||Z.call(i,"selectedBeverage",v);const k=`/kos/dispense/${r==null?void 0:r.path}/beverage/selected/`;l.EventBus.publish(k,v)},[r==null?void 0:r.path]),m=o.useCallback(()=>{var k;const v=`/kos/dispense/${r==null?void 0:r.path}/beverage/cleared/`;(k=c.current)==null||k.call(c,"selectedBeverage"),l.EventBus.publish(v,{})},[r==null?void 0:r.path]),C=o.useCallback(v=>{const k=`/kos/dispense/${r==null?void 0:r.path}/flavor/selected/`;l.EventBus.publish(k,v)},[r==null?void 0:r.path]),g=o.useCallback(()=>{const v=`/kos/dispense/${r==null?void 0:r.path}/flavor/cleared/`;l.EventBus.publish(v,{})},[r==null?void 0:r.path]),x=o.useCallback(()=>{const v=`/kos/dispense/${r==null?void 0:r.path}/pour/`;l.EventBus.publish(v,{})},[r==null?void 0:r.path]),h=o.useCallback(async()=>{const v=`/kos/dispense/${r==null?void 0:r.path}/pre/pour/`;return l.EventBus.publish(v,{}),await(M==null?void 0:M())||!0},[r==null?void 0:r.path]),u=o.useCallback(async()=>{const v=`/kos/dispense/${r==null?void 0:r.path}/pre/pour/rejected/`;l.EventBus.publish(v,{})},[r==null?void 0:r.path]),O=o.useCallback(()=>{const v=`/kos/dispense/${r==null?void 0:r.path}/pour/cancel/`;l.EventBus.publish(v,{})},[r==null?void 0:r.path]),{brands:S,selectBrand:$,selectedBrand:W,clearBrand:_,brandCompanions:ie}=Oe({companionType:(ee=t.companionTypes)==null?void 0:ee.brand,onBrandSelected:f,onBrandCleared:p}),{beverages:ae,selectBeverage:R,selectedBeverage:K,clearBeverage:T,beverageCompanions:ce}=De({companionType:(te=t.companionTypes)==null?void 0:te.beverage,onBeverageSelected:d,onClearBeverage:m}),{clearFlavors:U,flavors:w,selectFlavor:y,selectedFlavors:F,flavorCompanions:I}=Ge({companionType:(se=t.companionTypes)==null?void 0:se.flavor,onFlavorSelected:C,onFlavorCleared:g}),[M,G]=o.useState(),V=o.useCallback(v=>{G(()=>v)},[]),X=Fe({onPour:x,onPourCancel:O,onBeforePour:h,onBeforePourRejected:u});i.current=X.updatePourContext,c.current=X.removeFromPourContext;const ue=o.useCallback(()=>{switch(N.debug(`Navigating back from group: ${s}`),s){case Y:T(),_();break;case z:case q:n(e),T(),_();break}},[T,_,s,e]),de=o.useCallback(()=>{const v=`/kos/dispense/${r==null?void 0:r.path}/home/`;l.EventBus.publish(v,{}),n(e),e===Y&&(T(),_()),e===z&&T()},[T,_,e]),le=o.useCallback(()=>{if(a.current.length===0){N.debug("No timers to pause.");return}N.debug(`Pausing ${a.current.length} timers.`),a.current.forEach(v=>{N.debug(`Pausing timer with id ${v.id}.`),v.pause()})},[]),me=o.useCallback(()=>{if(a.current.length===0){N.debug("No timers to restart.");return}N.debug(`Restarting ${a.current.length} timers.`),a.current.forEach(v=>{N.debug(`Restarting timer with id ${v.id}.`),v.restart()})},[]);return{timers:{add:o.useCallback(v=>{if(v){if(a.current.some(k=>k.id===v.id)){N.debug(`Timer with id ${v.id} already exists.`);return}a.current.push(v)}},[]),pause:le,restart:me},nav:{currentGroup:s,back:ue,home:de},pour:X,updateOnBeforePour:V,selections:{[Y]:W,[z]:K,[q]:F},[Y]:{models:S,companions:ie,clear:_,handlers:{onSelected:$}},[z]:{models:ae,companions:ce,clear:T,handlers:{onSelected:R}},[q]:{models:w,companions:I,clear:U,handlers:{onSelected:y}}}},xt=e=>{const{model:t}=A(),[s,n]=o.useState(null),{onAmbientTimer:r,onAttractTimer:a,onResetAttractTimer:i,onResumeAttractTimer:c,defaultAttractTime:f,defaultAmbientTime:p}=e,d=o.useCallback(()=>{r&&(l.KosLog.info("Ambient timer expired. Calling callback"),r==null||r())},[r]),m=o.useCallback(()=>{a&&(l.KosLog.info("Attract timer expired. Calling callback"),a==null||a())},[a]),C=o.useCallback(()=>{s&&(s.restart(),i==null||i())},[s,i]),g=o.useCallback(()=>{s&&(s.reset(),i==null||i())},[s,i]),x=o.useCallback(()=>{s&&(s.pause(),c==null||c())},[s,c]);return o.useEffect(()=>{if(t&&f){l.KosLog.info("Nozzle is available. Creating timers");const h=l.TimerManager.createTimer("attract-timer-"+t.path,f);return f&&(h==null||h.addTimeoutAction({name:"attract-timer",remainingTime:0,action:m})),p&&(h==null||h.addTimeoutAction({name:"ambient-timer",remainingTime:p,action:d})),f&&(h==null||h.start()),n(h??null),()=>{h==null||h.reset(),n(null)}}return()=>{l.KosLog.info("Nozzle is not available. No timers to clear")}},[p,f,d,m,t]),{attractTimer:s,restart:C,pause:g,resume:x}},Ct=(e,t)=>{if(t)return l.EventBus.subscribe(e,t).unsubscribe},Ye=({onInit:e,onBrandSelected:t,onBrandCleared:s,onBeverageCleared:n,onBeverageSelected:r,onFlavorCleared:a,onFlavorSelected:i,onReturnToHome:c,onPour:f,onPourCancel:p,onBeforePourRejected:d,onAmbientTimer:m,onAttractTimer:C,onResumeAttractTimer:g,onIdleTimeout:x,onAreYouThereTimeout:h})=>{const{model:u}=A();o.useEffect(()=>{const S=[{topic:`/kos/dispense/${u==null?void 0:u.path}/brand/selected/`,callback:t},{topic:`/kos/dispense/${u==null?void 0:u.path}/brand/cleared/`,callback:s},{topic:`/kos/dispense/${u==null?void 0:u.path}/beverage/selected/`,callback:r},{topic:`/kos/dispense/${u==null?void 0:u.path}/beverage/cleared/`,callback:n},{topic:`/kos/dispense/${u==null?void 0:u.path}/flavor/selected/`,callback:i},{topic:`/kos/dispense/${u==null?void 0:u.path}/flavor/cleared/`,callback:a},{topic:`/kos/dispense/${u==null?void 0:u.path}/pour/`,callback:f},{topic:`/kos/dispense/${u==null?void 0:u.path}/pour/cancel/`,callback:p},{topic:`/kos/dispense/${u==null?void 0:u.path}/pre/pour/rejected/`,callback:d},{topic:`/kos/dispense/${u==null?void 0:u.path}/ambient/start/`,callback:m},{topic:`/kos/dispense/${u==null?void 0:u.path}/attract/start/`,callback:C},{topic:`/kos/dispense/${u==null?void 0:u.path}/attract/resume/`,callback:g},{topic:`/kos/dispense/${u==null?void 0:u.path}/idle/timeout/`,callback:x},{topic:`/kos/dispense/${u==null?void 0:u.path}/are-you-there/timeout/`,callback:h},{topic:`/kos/dispense/${u==null?void 0:u.path}/init/`,callback:e},{topic:`/kos/dispense/${u==null?void 0:u.path}/home/`,callback:c}].map(({topic:$,callback:W})=>Ct($,W));return()=>{S.forEach($=>$==null?void 0:$())}},[u==null?void 0:u.path,m,C,n,r,s,t,a,i,f,p,g,x,h,e,c])},j=l.KosLog.createLogger({name:"useCuiKitTimers"}),xe=e=>{const{model:t}=A(),[s,n]=o.useState(null),{onAreYouThereTimer:r,onIdleTimer:a,onResetIdleTimer:i,defaultAreYouThereTime:c=10,defaultIdleTime:f=20}=e,p=o.useRef(!1),d=o.useCallback(()=>{!p.current&&r&&(l.KosLog.info("Are you there timer expired. Calling callback"),p.current=!0,r==null||r())},[r]),m=o.useCallback(()=>{j.debug("handleIdleTimer called in useCuiKitTimers, onIdleTimer exists:",!!a),a?(j.debug("Idle timer expired. Calling callback"),a==null||a()):j.debug("No onIdleTimer callback provided!")},[a]),C=o.useCallback(()=>{j.debug(`TIMER RESTART called for ${e.prefix??""}timer`),s&&(s.restart(),p.current=!1,i==null||i())},[s,i,e.prefix]),g=o.useCallback(()=>{j.debug(`TIMER PAUSE/RESET called for ${e.prefix??""}timer`),s&&(s.reset(),p.current=!1,i==null||i())},[s,i,e.prefix]);return o.useEffect(()=>{if(j.debug(`useCuiKitTimers effect triggered - nozzle: ${!!t}, path: ${t==null?void 0:t.path}, callbacks: handleIdle=${!!m}, handleAreYouThere=${!!d}`),t){j.info("Nozzle is available. Creating timers");const x=l.TimerManager.createTimer(`${e.prefix??""}idle-timer-${t.path}`,f);return j.debug(`Adding idle timer action for ${e.prefix??""}idle-timer-${t.path} with callback:`,!!m),x==null||x.addTimeoutAction({name:"idle-timer",remainingTime:0,action:m}),x==null||x.addTimeoutAction({name:"are-you-there-timer",remainingTime:c,action:d}),n(x??null),()=>{x==null||x.reset(),n(null)}}return()=>{j.info("Nozzle is not available. No timers to clear")}},[c,f,d,m,t,e.prefix]),{idleTimer:s,restart:C,pause:g}},H=l.KosLog.createLogger({name:"useDefaultCuiKitLifecycle"}),gt=({kit:e,inactivity:t,pour:s,screens:n,onBeforeAreYouThereTimer:r,areYouThereRejectionPolicy:a="pause"})=>{var k,Z,Me,Be;const[i,c]=o.useState(!1),[f,p]=o.useState(!1),{model:d}=A(),[m,C]=o.useState(!1),g=(t==null?void 0:t.idleTimeout)??15,x=(t==null?void 0:t.areYouThereTimeoutOffset)??10,h=(s==null?void 0:s.idleTimeout)??(t==null?void 0:t.idleTimeout)??10,u=(s==null?void 0:s.areYouThereTimeoutOffset)??(t==null?void 0:t.areYouThereTimeoutOffset)??5,O=n==null?void 0:n.ambientTimeoutOffset,S=n==null?void 0:n.attractTimeout,$=o.useCallback(()=>{if(H.info("handleIdleTimeout called - navigating home and publishing event"),U(!1),e==null||e.nav.home(),d){const E=`/kos/dispense/${d.path}/idle/timeout/`;l.EventBus.publish(E,{})}},[(k=e==null?void 0:e.nav)==null?void 0:k.home,d]),W=o.useCallback(()=>{H.info("handleResetIdleTimer called - resetting idle timer"),U(!1)},[]),_=o.useCallback(()=>{if(O&&(c(!0),p(!1),d)){const E=`/kos/dispense/${d.path}/ambient/start/`;l.EventBus.publish(E,{})}},[O,d]),ie=o.useCallback(()=>{if(S&&(p(!0),c(!1),d)){const E=`/kos/dispense/${d.path}/attract/start/`;l.EventBus.publish(E,{})}},[S,d]),ae=o.useCallback(()=>{if(S&&(p(!1),c(!1),e==null||e.nav.home(),d)){const E=`/kos/dispense/${d.path}/attract/resume/`;l.EventBus.publish(E,{})}},[e==null?void 0:e.nav,S,d]),{pause:R,restart:K,attractTimer:T}=xt({defaultAmbientTime:O,defaultAttractTime:S,onAmbientTimer:_,onAttractTimer:ie,onResumeAttractTimer:ae});(Z=e==null?void 0:e.timers)==null||Z.add(T);const[ce,U]=o.useState(!1);H.info("Creating idle timer with timeout:",g,"seconds and callback:",!!$);const{pause:w,restart:y,idleTimer:F}=xe({defaultAreYouThereTime:x,defaultIdleTime:g,onIdleTimer:$,onResetIdleTimer:W});H.info(`Creating pour timer with timeout: ${h} seconds and callback: ${!!$}`);const{pause:I,restart:M,idleTimer:G}=xe({defaultAreYouThereTime:u,defaultIdleTime:h,onIdleTimer:$,prefix:"pour-"}),V=o.useCallback(async()=>{let E=!0;if(r)try{E=await r()}catch(pe){H.error(`onBeforeAreYouThereTimer callback failed: ${pe}`),E=!1}if(E){if(d){const pe=`/kos/dispense/${d.path}/are-you-there/timeout/`;l.EventBus.publish(pe,{})}U(!0),m?I():w()}else switch(a){case"pause":m?I():w();break;case"restart":m?M():y();break}},[r,d,a,m]),X=o.useCallback(()=>{U(!1),R(),m?(M(),w()):(y(),I())},[m,w,I,y,M]);o.useEffect(()=>{F&&F.addTimeoutAction({name:"are-you-there-timer",remainingTime:x,action:V})},[F,x,V]),o.useEffect(()=>{G&&G.addTimeoutAction({name:"pour-are-you-there-timer",remainingTime:u,action:V})},[G,u,V]),(Me=e==null?void 0:e.timers)==null||Me.add(F),(Be=e==null?void 0:e.timers)==null||Be.add(G);const ue=o.useCallback(()=>{C(!1),I(),w(),R()},[w,I]),de=o.useCallback(()=>{C(!0),H.info("restarting pour timer"),M(),R(),w()},[w,M]),le=o.useCallback(()=>{C(!1),H.info("restarting pour timer on before pour rejected"),I(),y()},[]),me=o.useCallback(()=>{R(),p(!1),c(!1),y()},[R,y]),Ke=o.useCallback(()=>{p(!1),c(!1),C(!1),I(),K()},[K,I]),ee=o.useCallback(()=>{p(!1),c(!1),C(!1),R(),y()},[R,y]),te=o.useCallback(()=>{p(!1),c(!1),C(!1),K(),w(),I()},[K,w,I]),se=o.useCallback(()=>{p(!1),c(!1),K(),w()},[K,w]);Ye({onBrandSelected:me,onBrandCleared:Ke,onBeverageSelected:ee,onBeverageCleared:te,onPour:ue,onPourCancel:de,onBeforePourRejected:le,onInit:se});const v=m?u:x;return o.useEffect(()=>{if(d&&T){const E=`/kos/dispense/${d==null?void 0:d.path}/init/`;l.EventBus.publish(E,{})}},[d,T]),{showAreYouThere:ce,clearAreYouThere:X,pauseIdleTimer:w,restartIdleTimer:y,areYouThereCountdown:v,showAmbientScreen:i,showAttractScreen:f,pauseScreenTimer:R,restartScreenTimer:K}},Te=()=>{const e=P.DeviceAssembly.type;return l.useKosModel({modelId:e,modelType:P.DeviceAssembly.type,options:{}})};function Pt(e){return t=>{const{model:s,status:n,KosModelLoader:r}=Te();return b.jsx(r,{...n,children:b.jsx(e,{...t,deviceAssembly:s})})}}const ye=e=>{const t=e;return l.useKosModel({modelId:t,modelType:P.Holder.type,options:{}})};function wt(e,t){return s=>{const{model:n,status:r,KosModelLoader:a}=ye(e);return b.jsx(a,{...r,children:b.jsx(t,{...s,holder:n})})}}const Re=()=>{const e=P.HolderContainer.type;return l.useKosModel({modelId:e,modelType:P.HolderContainer.type,options:{}})};function It(e){return t=>{const{model:s,status:n,KosModelLoader:r}=Re();return b.jsx(r,{...n,children:b.jsx(e,{...t,holderContainer:s})})}}const Ae=()=>{const e=P.Ingredient.type;return l.useKosModel({modelId:e,modelType:P.Ingredient.type,options:{}})},fe=l.KosLog.createLogger({name:"HoldToPourIntentStrategy",group:"kos-hooks"}),qe={name:"HoldToPourIntentStrategy",async initiate(e,t){if(!(e!=null&&e.canPour)){fe.debug(`${e==null?void 0:e.id} cannot pour. Returning early.`);return}t?(fe.debug(`performing intent: ${t}`),await(e==null?void 0:e.performIntent(t))):fe.debug("no intent provided. Returning early.")},async initiateEnded(e){await(e==null?void 0:e.cancelPour())}},he=l.KosLog.createLogger({name:"useNozzlePour",group:"kos-hooks"}),kt=({onPour:e,onPourCancel:t,intentContainer:s,strategy:n=qe})=>{const r=o.useCallback(()=>{he.debug(`[${n==null?void 0:n.name}] - Pour initiated for model ${s==null?void 0:s.id}.`),n==null||n.initiate(s),e==null||e()},[e,s,n]),a=o.useCallback(()=>{var f;he.debug(`[${n==null?void 0:n.name}] - Pour initiate ended called for nozzle ${s==null?void 0:s.id}.`),(f=n==null?void 0:n.initiateEnded)==null||f.call(n,s),t==null||t()},[t,s,n]),i=o.useCallback(()=>{he.debug(`Force cancelling pour for nozzle ${s==null?void 0:s.id}.`),s==null||s.cancelPour(),t==null||t()},[t,s]);return{handlers:l.usePressGesture({onPressed:r,onRelease:a}).dom,cancel:i,status:s}};function Et(e){return t=>{const{model:s,status:n,KosModelLoader:r}=Ae();return b.jsx(r,{...n,children:b.jsx(e,{...t,ingredient:s})})}}const Se=()=>{const e=P.IngredientContainer.type;return l.useKosModel({modelId:e,modelType:P.IngredientContainer.type,options:{}})};function $t(e){return t=>{const{model:s,status:n,KosModelLoader:r}=Se();return b.jsx(r,{...n,children:b.jsx(e,{...t,ingredientContainer:s})})}}function Tt(e,t){return s=>{const{model:n,status:r,KosModelLoader:a}=Ee(e);return b.jsx(a,{...r,children:b.jsx(t,{...s,nozzle:n})})}}const J=l.KosLog.createLogger({name:"usePour",group:"kos-hooks"}),yt=({onBeforePour:e,onPour:t,onPourCancel:s,onPourAbort:n,pourTarget:r,pourContext:a,strategy:i=$e})=>{const[c,f]=o.useState(a||new Ue),p=o.useCallback(async()=>{J.debug(`[${i==null?void 0:i.name}] - calling before pour for pour target ${r==null?void 0:r.id}.`),(e?await(e==null?void 0:e(c)):!0)?(J.debug(`[${i==null?void 0:i.name}] - Pour initiated for pour target ${r==null?void 0:r.id}.`),await(i==null?void 0:i.initiate(r)),t==null||t(),r!=null&&r.isPouring||n==null||n()):(J.debug(`[${i==null?void 0:i.name}] - Pour cancelled for pour target ${r==null?void 0:r.id}.`),s==null||s())},[t,e,n,r,i,c]),d=o.useCallback(async()=>{var u;J.debug(`[${i==null?void 0:i.name}] - Pour initiate ended called for pour target ${r==null?void 0:r.id}.`),await((u=i==null?void 0:i.initiateEnded)==null?void 0:u.call(i,r))||s==null||s()},[s,r,i]),m=o.useCallback(async()=>{J.debug(`Force cancelling pour for pour target ${r==null?void 0:r.id}.`),await(r==null?void 0:r.cancelPour()),s==null||s()},[s,r]),C=o.useCallback((h,u)=>{c.set(h,u)},[c]),g=o.useCallback(h=>{c.remove(h)},[c]);return{handlers:l.usePressGesture({onPressed:p,onRelease:d}).dom,cancel:m,updatePourContext:C,removeFromPourContext:g,status:r}},Q=l.KosLog.createLogger({name:"TapOrHoldIntentStrategy",group:"kos-hooks"});class Rt{constructor(t){B(this,"intent");B(this,"name","TapOrHoldIntentStrategy");B(this,"isHold",!1);B(this,"disposer",null);this.intent=t}async initiate(t,s){if(this.disposer=setTimeout(()=>{this.isHold=!0},250),t!=null&&t.isPouring&&!this.isHold){Q.debug("additional tap detected. cancelling pour"),await t.cancelPour();return}if(!(t!=null&&t.canPour)){Q.debug(`${t==null?void 0:t.id} cannot pour. Returning early.`);return}s?(Q.debug(`performing intent: ${s}`),await(t==null?void 0:t.performIntent(s))):Q.debug("no intent provided. Returning early.")}async initiateEnded(t){return this.disposer&&clearTimeout(this.disposer),this.disposer=null,this.isHold?(await(t==null?void 0:t.cancelPour()),!1):(Q.debug("Tap detected. don't cancel and return."),!0)}}const ne=l.KosLog.createLogger({name:"TapToPourIntentStrategy",group:"kos-hooks"}),At={name:"TapToPourIntentStrategy",async initiate(e,t){if(e!=null&&e.isPouring){ne.debug(`Nozzle ${e==null?void 0:e.id} is already pouring. cancelling pour`),await e.cancelPour();return}if(!(e!=null&&e.canPour)){ne.debug(`Nozzle ${e==null?void 0:e.id} cannot pour. Returning early.`);return}t?(ne.debug(`performing intent: ${t}`),await(e==null?void 0:e.performIntent(t))):ne.debug("no intent provided. Returning early.")},async initiateEnded(e){return!0}},je=l.KosLog.createLogger({name:"HoldToPourStrategy",group:"kos-hooks"}),St={name:"TapToPourStrategy",async initiate(e){if(e!=null&&e.isPouring){je.debug(`Nozzle ${e==null?void 0:e.id} is already pouring. cancelling pour`),await e.cancelPour();return}if(!(e!=null&&e.canPour)){je.debug(`Nozzle ${e==null?void 0:e.id} cannot pour. Returning early.`);return}await(e==null?void 0:e.pour())},async initiateEnded(e){return!0}},We=(e,t,s)=>{const n=e;return l.useKosModel({modelId:n,modelType:P.GenericPour.type,options:{servicePathFactory:t,selectedId:s}})};function Kt(e){return t=>{const{model:s,status:n,KosModelLoader:r}=We(t.id,t.servicePathFactory,t.itemId);return b.jsx(r,{...n,children:b.jsx(e,{...t,genericPour:s})})}}const Xe=o.createContext(void 0),Mt=({children:e})=>{const{model:t,ready:s}=Pe(),n=o.useMemo(()=>s&&t?{model:t}:{},[s,t]);return b.jsx(Xe.Provider,{value:n,children:e})},Bt=()=>{const e=o.useContext(Xe);if(!e)throw new Error("useAssemblyContext must be used within a AssemblyProvider");return e},Ze=o.createContext(void 0),jt=({children:e})=>{const{model:t,ready:s}=we(),n=o.useMemo(()=>s&&t?{model:t}:{},[s,t]);return b.jsx(Ze.Provider,{value:n,children:e})},_t=()=>{const e=o.useContext(Ze);if(!e)throw new Error("useAvailabilityContext must be used within a AvailabilityProvider");return e},Je=o.createContext(void 0),Nt=({children:e,id:t})=>{const{model:s,ready:n}=Ie(t),r=o.useMemo(()=>n&&s?{model:s}:{},[n,s]);return b.jsx(Je.Provider,{value:r,children:e})},Lt=()=>{const e=o.useContext(Je);if(!e)throw new Error("useBoardContext must be used within a BoardProvider");return e},Qe=o.createContext(void 0),Ht=({children:e})=>{const{model:t,ready:s}=ke(),n=o.useMemo(()=>s&&t?{model:t}:{},[s,t]);return b.jsx(Qe.Provider,{value:n,children:e})},Dt=()=>{const e=o.useContext(Qe);if(!e)throw new Error("useBoardContainerContext must be used within a BoardContainerProvider");return e},ze=o.createContext(void 0),et=({children:e})=>{const{model:t,ready:s}=Te(),n=o.useMemo(()=>{if(s&&t){const a=t.nozzlePaths;return{model:t,nozzlePaths:a}}return{}},[s,t]),r=s&&t?e:null;return b.jsx(ze.Provider,{value:n,children:r})},tt=()=>{const e=o.useContext(ze);if(!e)throw new Error("useDeviceAssemblyContext must be used within a DeviceAssemblyProvider");return e};function Ot(){const e=o.createContext(null);return[()=>{const s=o.useContext(e);if(s===void 0)throw new Error("useDispenseKitContext must be used within a Provider");return s},e.Provider]}function st({children:e,provider:t,props:s,nozzleProps:n}){const r=Ve(s);return b.jsx(t,{value:r,children:e(n||{})})}function Ut({children:e,provider:t,props:s}){const{nozzlePaths:n}=tt(),r=(n==null?void 0:n.length)||0;return(n==null?void 0:n.map((i,c)=>b.jsx(He,{path:i,children:b.jsx(st,{provider:t,props:s,nozzleProps:{nozzleIndex:c,nozzlePath:i,totalNozzles:r,isFirstNozzle:c===0,isLastNozzle:c===r-1},children:e})},i)))||[]}function rt({provider:e,props:t}){return({children:s})=>e?b.jsx(et,{children:b.jsx(Ut,{provider:e,props:t,children:s})}):null}function Ft(e){const[t,s]=Ot();return[t,rt({provider:s,props:e})]}const nt=o.createContext(void 0),Gt=({children:e,id:t})=>{const{model:s,ready:n}=ye(t||""),r=o.useMemo(()=>n&&s?{model:s}:{},[n,s]);return b.jsx(nt.Provider,{value:r,children:e})},Vt=()=>{const e=o.useContext(nt);if(!e)throw new Error("useHolderContext must be used within a HolderProvider");return e},ot=o.createContext(void 0),Yt=({children:e})=>{const{model:t,ready:s}=Re(),n=o.useMemo(()=>s&&t?{model:t}:{},[s,t]);return b.jsx(ot.Provider,{value:n,children:e})},qt=()=>{const e=o.useContext(ot);if(!e)throw new Error("useHolderContainerContext must be used within a HolderContainerProvider");return e},it=o.createContext(void 0),Wt=({children:e})=>{const{model:t,ready:s}=Ae(),n=o.useMemo(()=>s&&t?{model:t}:{},[s,t]);return b.jsx(it.Provider,{value:n,children:e})},Xt=()=>{const e=o.useContext(it);if(!e)throw new Error("useIngredientContext must be used within a IngredientProvider");return e},at=o.createContext(void 0),Zt=({children:e})=>{const{model:t,ready:s}=Se(),n=o.useMemo(()=>s&&t?{model:t}:{},[s,t]);return b.jsx(at.Provider,{value:n,children:e})},Jt=()=>{const e=o.useContext(at);if(!e)throw new Error("useIngredientContainerContext must be used within a IngredientContainerProvider");return e},Qt=()=>{const e=P.Pump.type;return l.useKosModel({modelId:e,modelType:P.Pump.type,options:{}})},ct=o.createContext(void 0),zt=({children:e})=>{const{model:t,ready:s}=Qt(),n=o.useMemo(()=>s&&t?{model:t}:{},[s,t]);return b.jsx(ct.Provider,{value:n,children:e})},es=()=>{const e=o.useContext(ct);if(!e)throw new Error("usePumpContext must be used within a PumpProvider");return e};function ts(e){var t;try{if("shape"in e){const s=e,n=[];for(const[r,a]of Object.entries(s.shape)){const i=a,c={name:r,required:!i.isOptional()};if(i._def&&i._def.description&&(c.description=i._def.description),i._def){let f=i._def.typeName||"unknown";f==="ZodOptional"&&i._def.innerType&&(f=((t=i._def.innerType._def)==null?void 0:t.typeName)||"unknown"),c.type=f.replace("Zod","").toLowerCase()}n.push(c)}return n}return[]}catch(s){return console.warn("Failed to extract schema field info:",s),[]}}class ss{constructor(){B(this,"issues",[])}addError(t){this.issues.push({type:"error",message:t})}addWarning(t){this.issues.push({type:"warning",message:t})}addInfo(t){this.issues.push({type:"info",message:t})}hasErrors(){return this.issues.some(t=>t.type==="error")}hasIssues(){return this.issues.length>0}getIssues(){return[...this.issues]}}class rs{constructor(){B(this,"cache",new Map)}set(t,s){this.cache.set(t,s)}get(t){return this.cache.get(t)||[]}clear(){this.cache.clear()}}const be=new rs;class ns{constructor(){B(this,"extensionPoints",new Map)}define(t){if(this.extensionPoints.has(t.id))return console.warn(`Extension point ${t.id} is already defined`),this.extensionPoints.get(t.id);const s={config:t,id:t.id,isRegistered:!1,getExtensions:n=>n[t.id]||{},register:()=>{if(s.isRegistered){console.warn(`Extension point ${t.id} is already registered`);return}this.createReducer(t),s.isRegistered=!0}};return t.schema&&(s.getSchemaFieldInfo=()=>ts(t.schema)),this.extensionPoints.set(t.id,s),s}createReducer(t){return(s,n,r)=>{const a=n[t.contributionKey];return!a||typeof a!="object"||Object.entries(a).forEach(([i,c])=>{var m,C;if(!c)return;const f={remote:c.remote||"",sectionId:c.sectionId||i,experiences:r,contributions:n};if(t.validate){const g=new ss;if(t.validate(c,g)==="skip"){be.set(i,[{type:"warning",message:"Plugin marked to skip processing"}]);return}if(g.hasIssues()){const h=g.getIssues().map(u=>({...u,message:`Extension point validation: ${u.message}`}));if(be.set(i,h),g.hasErrors()){console.error(`Validation failed for ${t.id} contribution "${i}":`,h.filter(u=>u.type==="error").map(u=>u.message).join(", "));return}}else be.set(i,[])}const p=t.transform?t.transform(c,f):c;s[t.id]||(s[t.id]={});const d={id:i,type:t.contributionKey,data:p,remote:f.remote,sectionId:f.sectionId};if(t.isRankable&&typeof c.rank=="number"&&(d.rank=c.rank),p&&typeof p=="object"&&("component"in p&&(d.component=p.component),"view"in p&&(d.view=p.view),"location"in p&&(d.location=p.location)),s[t.id][i]=d,t.hasView&&((m=t.relatedPoints)!=null&&m.view)){const g=c.experienceId,x=r==null?void 0:r[g];x&&(s[t.relatedPoints.view]||(s[t.relatedPoints.view]={}),s[t.relatedPoints.view][i]={id:i,type:`${t.contributionKey}.view`,data:x,remote:f.remote,sectionId:f.sectionId})}(C=t.relatedPoints)!=null&&C.definition&&(s[t.relatedPoints.definition]||(s[t.relatedPoints.definition]={}),s[t.relatedPoints.definition][i]={id:i,type:`${t.contributionKey}.definition`,data:p,remote:f.remote,sectionId:f.sectionId})}),s}}getAllExtensionPoints(){return Array.from(this.extensionPoints.values()).filter(t=>t.isRegistered)}getAllDefinedExtensionPoints(){return Array.from(this.extensionPoints.values())}getExtensionPoint(t){return this.extensionPoints.get(t)}hasExtensionPoint(t){return this.extensionPoints.has(t)}}const os=new ns;var is={},L={};Object.defineProperty(L,"__esModule",{value:!0});L.loadRemoteModule=L.setRemoteDefinitions=L.setRemoteUrlResolver=void 0;let oe,Ce;const ve=new Map,ge=new Map;let _e=!1;function as(e){Ce=e}L.setRemoteUrlResolver=as;function cs(e){oe=e}L.setRemoteDefinitions=cs;async function us(e,t){const s=`${e}:${t}`;if(ve.has(s))return ve.get(s);const a=(await(ge.has(e)?ge.get(e):await ls(e)).get(t))();return ve.set(s,a),a}L.loadRemoteModule=us;const ds=(e,t)=>new Promise((s,n)=>{const r=document.createElement("script");r.src=e,r.type="text/javascript",r.async=!0,r.onload=()=>{s({get:i=>window[t].get(i),init:i=>{try{window[t].init(i)}catch(c){console.error(`Failed to initialize remote ${t}`,c),n(c)}}})},r.onerror=()=>n(new Error(`Remote ${t} not found`)),document.head.appendChild(r)});async function ls(e){if(!Ce&&!oe)throw new Error("Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.");_e||(_e=!0,await __webpack_init_sharing__("default"));const t=oe?oe[e]:await Ce(e);let s=t;!t.endsWith(".mjs")&&!t.endsWith(".js")&&(s=`${t}${t.endsWith("/")?"":"/"}remoteEntry.js`);const n=await ds(s,e);return await n.init(__webpack_share_scopes__.default),ge.set(e,n),n}(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.setRemoteUrlResolver=e.setRemoteDefinitions=e.loadRemoteModule=void 0;var t=L;Object.defineProperty(e,"loadRemoteModule",{enumerable:!0,get:function(){return t.loadRemoteModule}}),Object.defineProperty(e,"setRemoteDefinitions",{enumerable:!0,get:function(){return t.setRemoteDefinitions}}),Object.defineProperty(e,"setRemoteUrlResolver",{enumerable:!0,get:function(){return t.setRemoteUrlResolver}})})(is);function ms(e,t,...s){return[e,t,...s].filter(Boolean).join(".")}function ps(e={}){const{experienceIdProperty:t="experienceId",flattenComponentProperties:s=!0,customTransform:n}=e;return(r,a)=>{var p;const i=r[t],c=i?((p=a.experiences)==null?void 0:p[i])||{}:{};let f={...r,view:c};return s&&c&&(c.component&&(f.component=c.component),c.location&&(f.location=c.location)),n&&(f=n(r,c,a)||f),f}}function fs(e){return os.define(e)}const ut=D.z.object({id:D.z.string().min(1,"ID is required").describe("Unique identifier for this extension"),title:D.z.string().min(1,"Title is required").describe("Display title shown in the interface"),namespace:D.z.string().min(1,"Namespace is required").describe("Namespace for organizing related extensions"),experienceId:D.z.string().min(1,"Experience ID is required").describe("Reference to the UI component experience for rendering")}),hs=ut.extend({rank:D.z.number().int().min(0).optional().describe("Optional ranking for ordering (higher = preferred)")});function bs(e,t,s){const n=e.safeParse(t);return n.success?!0:(n.error.errors.forEach(r=>{s.addError(`${r.path.join(".")}: ${r.message}`)}),!1)}function vs(e,t={}){return(t.rankable?hs:ut).extend(e)}const Ne=vs({type:D.z.literal("control.pour").describe("Type identifier for control pour extensions")},{rankable:!1}),dt=ms("cui","control","pour"),xs=fs({id:dt,contributionKey:"controlPour",displayName:"Control Pour",description:"Extension point for controlled pour plugin configurations with view support",hasView:!0,isRankable:!1,schema:Ne,metadata:{exportName:"ControlPourExtension",category:"Dispense",tags:["pour","control","beverage"]},validate:(e,t)=>{bs(Ne,e,t)},transform:ps()}),Cs=dt;exports.AssemblyProvider=Mt;exports.AvailabilityProvider=jt;exports.BoardContainerProvider=Ht;exports.BoardProvider=Nt;exports.ControlPourExtension=xs;exports.CuiKit=rt;exports.CuiKitWrapper=st;exports.DISPENSE_GROUP_BEVERAGE=z;exports.DISPENSE_GROUP_BRAND=Y;exports.DISPENSE_GROUP_FLAVOR=q;exports.DeviceAssemblyProvider=et;exports.EXTENSION_POINT_CONTROL_POUR=Cs;exports.HoldToPourIntentStrategy=qe;exports.HoldToPourStrategy=$e;exports.HolderContainerProvider=Yt;exports.HolderProvider=Gt;exports.IngredientContainerProvider=Zt;exports.IngredientProvider=Wt;exports.NozzleProvider=He;exports.PumpProvider=zt;exports.TapOrHoldIntentStrategy=Rt;exports.TapToPourIntentStrategy=At;exports.TapToPourStrategy=St;exports.initializeCuiKit=Ft;exports.useAssembly=Pe;exports.useAssemblyContext=Bt;exports.useAvailability=we;exports.useAvailabilityContext=_t;exports.useBeverages=De;exports.useBoard=Ie;exports.useBoardContainer=ke;exports.useBoardContainerContext=Dt;exports.useBoardContext=Lt;exports.useBrands=Oe;exports.useCuiKit=Ve;exports.useCuiKitTimers=xe;exports.useDefaultCuiKitLifecycle=gt;exports.useDeviceAssembly=Te;exports.useDeviceAssemblyContext=tt;exports.useDispenseLifecycle=Ye;exports.useFlavors=Ge;exports.useGenericPour=We;exports.useHolder=ye;exports.useHolderContainer=Re;exports.useHolderContainerContext=qt;exports.useHolderContext=Vt;exports.useIngredient=Ae;exports.useIngredientContainer=Se;exports.useIngredientContainerContext=Jt;exports.useIngredientContext=Xt;exports.useIngredientPour=kt;exports.useNozzle=Ee;exports.useNozzleContext=A;exports.useNozzlePour=Fe;exports.usePourTarget=yt;exports.usePumpContext=es;exports.withAssembly=pt;exports.withBeverage=ft;exports.withBoard=ht;exports.withBoardContainer=bt;exports.withDeviceAssembly=Pt;exports.withGenericPour=Kt;exports.withHolder=wt;exports.withHolderContainer=It;exports.withIngredient=Et;exports.withIngredientContainer=$t;exports.withNozzle=Tt;
2
- //# sourceMappingURL=control-pour-extension-6WFoj5jQ.cjs.map