@kosdev-code/kos-dispense-sdk 2.0.18 → 2.0.19
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.cjs +1 -1
- package/index.js +1 -1
- package/package.json +3 -3
- package/pump-provider-BU_HZL2F.cjs +2 -0
- package/{pump-provider-Csj2RXYB.cjs.map → pump-provider-BU_HZL2F.cjs.map} +1 -1
- package/pump-provider-D7OslYhd.js +1070 -0
- package/{pump-provider-UGrGomQa.js.map → pump-provider-D7OslYhd.js.map} +1 -1
- package/ui/hooks/pour/use-pour.d.ts +2 -1
- package/ui/hooks/pour/use-pour.d.ts.map +1 -1
- package/ui.cjs +1 -1
- package/ui.js +1 -1
- package/pump-provider-Csj2RXYB.cjs +0 -2
- package/pump-provider-UGrGomQa.js +0 -1065
|
@@ -3,6 +3,7 @@ import { PourState } from '../../../models/models/types/pouring';
|
|
|
3
3
|
import { ReactDOMAttributes } from '@use-gesture/react/dist/declarations/src/types';
|
|
4
4
|
|
|
5
5
|
interface PourProps {
|
|
6
|
+
onBeforePour?: () => Promise<boolean>;
|
|
6
7
|
onPour?: () => void;
|
|
7
8
|
onPourCancel?: () => void;
|
|
8
9
|
onPourAbort?: () => void;
|
|
@@ -45,6 +46,6 @@ export interface PourResponse {
|
|
|
45
46
|
|
|
46
47
|
* @see {@link usePressGesture}
|
|
47
48
|
**/
|
|
48
|
-
export declare const usePourTarget: ({ onPour, onPourCancel, onPourAbort, pourTarget, strategy, }: PourProps) => PourResponse;
|
|
49
|
+
export declare const usePourTarget: ({ onBeforePour, onPour, onPourCancel, onPourAbort, pourTarget, strategy, }: PourProps) => PourResponse;
|
|
49
50
|
export {};
|
|
50
51
|
//# sourceMappingURL=use-pour.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-pour.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/ui/hooks/pour/use-pour.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEtE,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAE9C,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,kBAAkB,CAAC;IACjD,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,SAAS,CAAC;KACzB,CAAC;CACH;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BI;AACJ,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"use-pour.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/ui/hooks/pour/use-pour.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEtE,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAE9C,UAAU,SAAS;IACjB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,kBAAkB,CAAC;IACjD,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,SAAS,CAAC;KACzB,CAAC;CACH;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BI;AACJ,eAAO,MAAM,aAAa,+EAOvB,SAAS,KAAG,YAiDd,CAAC"}
|
package/ui.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./pump-provider-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./pump-provider-BU_HZL2F.cjs");require("@emotion/react/jsx-runtime");require("@kosdev-code/kos-ui-sdk");require("react");require("./dispense-registration-manager-DRFXN5Fe.cjs");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;
|
|
2
2
|
//# sourceMappingURL=ui.cjs.map
|
package/ui.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as o, a as n, d as u, B as d, f as l, C, G as P, F as v, J as y, D as g, a4 as m, a5 as I, j as A, H as p, m as B, I as x, N as b, P as h, a6 as w, a7 as z, a8 as H, i as S, q as c, u as D, r as E, b as N, z as T, t as G, x as K, e as R, c as _, E as O, K as f, O as L, L as U, R as F, g as V, M as W, Q as j, a9 as k, T as q, V as J, k as M, h as Q, X, _ as Y, n as Z, l as $, Y as ee, a0 as ae, o as se, a2 as re, a3 as te, p as ie, w as oe, s as ne, v as ue, y as de, S as le, aa as Ce, U as Pe, W as ve, Z as ye, $ as ge, a1 as me } from "./pump-provider-
|
|
1
|
+
import { A as o, a as n, d as u, B as d, f as l, C, G as P, F as v, J as y, D as g, a4 as m, a5 as I, j as A, H as p, m as B, I as x, N as b, P as h, a6 as w, a7 as z, a8 as H, i as S, q as c, u as D, r as E, b as N, z as T, t as G, x as K, e as R, c as _, E as O, K as f, O as L, L as U, R as F, g as V, M as W, Q as j, a9 as k, T as q, V as J, k as M, h as Q, X, _ as Y, n as Z, l as $, Y as ee, a0 as ae, o as se, a2 as re, a3 as te, p as ie, w as oe, s as ne, v as ue, y as de, S as le, aa as Ce, U as Pe, W as ve, Z as ye, $ as ge, a1 as me } from "./pump-provider-D7OslYhd.js";
|
|
2
2
|
import "@emotion/react/jsx-runtime";
|
|
3
3
|
import "@kosdev-code/kos-ui-sdk";
|
|
4
4
|
import "react";
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var Ge=Object.defineProperty;var Ye=(e,t,r)=>t in e?Ge(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var L=(e,t,r)=>(Ye(e,typeof t!="symbol"?t+"":t,r),r);const l=require("@emotion/react/jsx-runtime"),a=require("@kosdev-code/kos-ui-sdk"),n=require("react"),v=require("./dispense-registration-manager-DRFXN5Fe.cjs"),Z=()=>{const e=v.Assembly.type;return a.useKosModel({modelId:e,modelType:v.Assembly.type,options:{}})};function _e(e){return t=>{const{model:r,status:s,KosModelLoader:o}=Z();return l.jsx(o,{...s,children:l.jsx(e,{...t,assembly:r})})}}const z=()=>{const e=v.Availability.type;return a.useKosModel({modelId:e,modelType:v.Availability.type,options:{}})};function Ue(e){return t=>{const{model:r,status:s,KosModelLoader:o}=z();return l.jsx(o,{...s,children:l.jsx(e,{...t,beverage:r})})}}const ee=e=>{const t=e;return a.useKosModel({modelId:t,modelType:v.Board.type,options:{}})};function Fe(e){return t=>r=>{const{model:s,status:o,KosModelLoader:u}=ee(t);return l.jsx(u,{...o,children:l.jsx(e,{...r,board:s})})}}const te=()=>{const e=v.BoardContainer.type;return a.useKosModel({modelId:e,modelType:v.BoardContainer.type,options:{}})};function Ve(e){return t=>{const{model:r,status:s,KosModelLoader:o}=te();return l.jsx(o,{...s,children:l.jsx(e,{...t,boardContainer:r})})}}const se=e=>{const t=e;return a.useKosModel({modelId:t,modelType:v.Nozzle.type,options:{path:e}})},le=n.createContext(void 0),be=({children:e,path:t})=>{const{model:r,ready:s}=se(t),o=n.useMemo(()=>s&&r?{model:r}:{},[s,r]);return l.jsx(le.Provider,{value:o,children:e})},T=()=>{const e=n.useContext(le);if(!e)throw new Error("useNozzleContext must be used within a NozzleProvider");return e},me=({onBeverageSelected:e,onClearBeverage:t,companionType:r})=>{const{model:s}=T(),[o,u]=n.useState([]),[c,b]=n.useState(null),h=n.useMemo(()=>r?o.map(m=>a.getKosCompanionModel(m,r)):[],[o,r]),f=n.useCallback(async m=>{b(m),await(s==null?void 0:s.setSelectedPourable({beverage:m})),e==null||e(m)},[s,e]),d=n.useCallback(async()=>{b(null),await(s==null?void 0:s.setSelectedPourable({beverage:void 0})),t==null||t()},[s,t]);return n.useEffect(()=>{const m=a.kosAutoEffect(()=>{if(!s)return;const i=s.selectedBrand;if(!i){const P=s.getGroupAvailabilityItems("beverages").filter(p=>p.visible);u(P??[]);return}const C=s.getAvailabilityByParent(i.id).filter(P=>P.visible);u(C??[])});return()=>{m()}},[s]),{beverages:o,beverageCompanions:h,selectBeverage:f,selectedBeverage:c,clearBeverage:d}},he=({onBrandSelected:e,onBrandCleared:t,companionType:r})=>{const{model:s}=T(),[o,u]=n.useState(null),c=n.useMemo(()=>(s==null?void 0:s.getGroupAvailabilityItems("brands").filter(d=>d.visible))??[],[s]),b=n.useMemo(()=>r?c.map(d=>a.getKosCompanionModel(d,r)):[],[c,r]),h=n.useCallback(async d=>{u(d),s==null||s.setSelectedBrand(d),e==null||e(d)},[s,e]),f=n.useCallback(()=>{u(null),s==null||s.setSelectedBrand(void 0),t==null||t()},[s,t]);return{brands:c,brandCompanions:b,selectedBrand:o,selectBrand:h,clearBrand:f}},qe=a.KosLog.createLogger({name:"HoldToPourStrategy",group:"kos-hooks"}),re={name:"HoldToPourStrategy",async initiate(e){if(!(e!=null&&e.canPour)){qe.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())}},q=a.KosLog.createLogger({name:"useNozzlePour",group:"kos-hooks"}),fe=({onPour:e,onPourCancel:t,strategy:r=re})=>{const{model:s}=T(),o=n.useCallback(()=>{q.debug(`[${r==null?void 0:r.name}] - Pour initiated for nozzle ${s==null?void 0:s.id}.`),r==null||r.initiate(s),e==null||e()},[e,s,r]),u=n.useCallback(()=>{var h;q.debug(`[${r==null?void 0:r.name}] - Pour initiate ended called for nozzle ${s==null?void 0:s.id}.`),(h=r==null?void 0:r.initiateEnded)==null||h.call(r,s),t==null||t()},[t,s,r]),c=n.useCallback(()=>{q.debug(`Force cancelling pour for nozzle ${s==null?void 0:s.id}.`),s==null||s.cancelPour(),t==null||t()},[t,s]);return{handlers:a.usePressGesture({onPressed:o,onRelease:u}).dom,cancel:c,status:s}},pe=({onFlavorSelected:e,onFlavorCleared:t,companionType:r})=>{const{model:s}=T(),o=n.useMemo(()=>(s==null?void 0:s.getGroupAvailabilityItems("flavors").filter(d=>d.visible))??[],[s]),u=n.useMemo(()=>r?o.map(d=>a.getKosCompanionModel(d,r)):[],[o,r]),[c,b]=n.useState([]),h=n.useCallback(async d=>{if(b(m=>m!=null&&m.includes(d)?[...m.filter(i=>i!==d)]:[...m??[],d]),s!=null&&s.selectedPourable){const{beverage:m}=s.selectedPourable;await s.setSelectedPourable({beverage:m,additional:c??[]})}e==null||e(d,c??[])},[s,e,c]),f=n.useCallback(async()=>{if(b([]),s!=null&&s.selectedPourable){const{beverage:d}=s.selectedPourable;s.setSelectedPourable({beverage:d}),t==null||t()}},[s,t]);return{flavors:o,flavorCompanions:u,selectFlavor:h,selectedFlavors:c,clearFlavors:f}},y="brands",N="beverages",M="flavors",ve=({initialGroup:e=y,options:t={}})=>{var E,G,Y;const[r,s]=n.useState(e),{model:o}=T(),u=n.useCallback(x=>{s(M);const $=`/kos/dispense/${o==null?void 0:o.path}/brand/selected/`;a.EventBus.publish($,x)},[o==null?void 0:o.path]),c=n.useCallback(()=>{const x=`/kos/dispense/${o==null?void 0:o.path}/brand/cleared/`;a.EventBus.publish(x,{})},[o==null?void 0:o.path]),b=n.useCallback(x=>{s(M);const $=`/kos/dispense/${o==null?void 0:o.path}/beverage/selected/`;a.EventBus.publish($,x)},[o==null?void 0:o.path]),h=n.useCallback(()=>{const x=`/kos/dispense/${o==null?void 0:o.path}/beverage/cleared/`;a.EventBus.publish(x,{})},[o==null?void 0:o.path]),f=n.useCallback(x=>{const $=`/kos/dispense/${o==null?void 0:o.path}/flavor/selected/`;a.EventBus.publish($,x)},[o==null?void 0:o.path]),d=n.useCallback(()=>{const x=`/kos/dispense/${o==null?void 0:o.path}/flavor/cleared/`;a.EventBus.publish(x,{})},[o==null?void 0:o.path]),m=n.useCallback(()=>{const x=`/kos/dispense/${o==null?void 0:o.path}/pour/`;a.EventBus.publish(x,{})},[o==null?void 0:o.path]),i=n.useCallback(()=>{const x=`/kos/dispense/${o==null?void 0:o.path}/pour/cancel/`;a.EventBus.publish(x,{})},[o==null?void 0:o.path]),{brands:C,selectBrand:P,selectedBrand:p,clearBrand:k,brandCompanions:H}=he({companionType:(E=t.companionTypes)==null?void 0:E.brand,onBrandSelected:u,onBrandCleared:c}),{beverages:B,selectBeverage:D,selectedBeverage:R,clearBeverage:I,beverageCompanions:U}=me({companionType:(G=t.companionTypes)==null?void 0:G.beverage,onBeverageSelected:b,onClearBeverage:h}),{clearFlavors:F,flavors:S,selectFlavor:A,selectedFlavors:V,flavorCompanions:O}=pe({companionType:(Y=t.companionTypes)==null?void 0:Y.flavor,onFlavorSelected:f,onFlavorCleared:d}),g=fe({onPour:m,onPourCancel:i}),K=n.useCallback(()=>{switch(r){case y:I(),k();break;case N:case M:s(e),I(),k();break}},[I,k,r,e]),w=n.useCallback(()=>{s(e),e===y&&(I(),k()),e===N&&I()},[I,k,e]);return{nav:{currentGroup:r,back:K,home:w},pour:g,selections:{[y]:p,[N]:R,[M]:V},[y]:{models:C,companions:H,clear:k,handlers:{onSelected:P}},[N]:{models:B,companions:U,clear:I,handlers:{onSelected:D}},[M]:{models:S,companions:O,clear:F,handlers:{onSelected:A}}}},We=e=>{const{model:t}=T(),[r,s]=n.useState(null),{onAmbientTimer:o,onAttractTimer:u,onResetAttractTimer:c,onResumeAttractTimer:b,defaultAttractTime:h,defaultAmbientTime:f}=e,d=n.useCallback(()=>{o&&(a.KosLog.info("Ambient timer expired. Calling callback"),o==null||o())},[o]),m=n.useCallback(()=>{u&&(a.KosLog.info("Attract timer expired. Calling callback"),u==null||u())},[u]),i=n.useCallback(()=>{r&&(r.restart(),c==null||c())},[r,c]),C=n.useCallback(()=>{r&&(r.reset(),c==null||c())},[r,c]),P=n.useCallback(()=>{r&&(r.pause(),b==null||b())},[r,b]);return n.useEffect(()=>{if(t&&h){a.KosLog.info("Nozzle is available. Creating timers");const p=a.TimerManager.createTimer("attract-timer-"+t.path,h);return h&&(p==null||p.addTimeoutAction({name:"attract-timer",remainingTime:0,action:m})),f&&(p==null||p.addTimeoutAction({name:"ambient-timer",remainingTime:f,action:d})),h&&(p==null||p.start()),s(p??null),()=>{p==null||p.reset(),s(null)}}return()=>{a.KosLog.info("Nozzle is not available. No timers to clear")}},[f,h,d,m,t]),{attractTimer:r,restart:i,pause:C,resume:P}},Je=(e,t)=>{if(t)return a.EventBus.subscribe(e,t).unsubscribe},Ce=({onInit:e,onBrandSelected:t,onBrandCleared:r,onBeverageCleared:s,onBeverageSelected:o,onFlavorCleared:u,onFlavorSelected:c,onPour:b,onPourCancel:h,onAmbientTimer:f,onAttractTimer:d,onResumeAttractTimer:m})=>{const{model:i}=T();n.useEffect(()=>{const P=[{topic:`/kos/dispense/${i==null?void 0:i.path}/brand/selected/`,callback:t},{topic:`/kos/dispense/${i==null?void 0:i.path}/brand/cleared/`,callback:r},{topic:`/kos/dispense/${i==null?void 0:i.path}/beverage/selected/`,callback:o},{topic:`/kos/dispense/${i==null?void 0:i.path}/beverage/cleared/`,callback:s},{topic:`/kos/dispense/${i==null?void 0:i.path}/flavor/selected/`,callback:c},{topic:`/kos/dispense/${i==null?void 0:i.path}/flavor/cleared/`,callback:u},{topic:`/kos/dispense/${i==null?void 0:i.path}/pour/`,callback:b},{topic:`/kos/dispense/${i==null?void 0:i.path}/pour/cancel/`,callback:h},{topic:`/kos/dispense/${i==null?void 0:i.path}/ambient/start/`,callback:f},{topic:`/kos/dispense/${i==null?void 0:i.path}/attract/start/`,callback:d},{topic:`/kos/dispense/${i==null?void 0:i.path}/attract/resume/`,callback:m},{topic:`/kos/dispense/${i==null?void 0:i.path}/init/`,callback:e}].map(({topic:p,callback:k})=>Je(p,k));return()=>{P.forEach(p=>p==null?void 0:p())}},[i==null?void 0:i.path,f,d,s,o,r,t,u,c,b,h,m,e])},X=e=>{const{model:t}=T(),[r,s]=n.useState(null),{onAreYouThereTimer:o,onIdleTimer:u,onResetIdleTimer:c,defaultAreYouThereTime:b=10,defaultIdleTime:h=20}=e,f=n.useCallback(()=>{o&&(a.KosLog.info("Are you there timer expired. Calling callback"),o==null||o())},[o]),d=n.useCallback(()=>{u&&(a.KosLog.info("Idle timer expired. Calling callback"),u==null||u())},[u]),m=n.useCallback(()=>{r&&(r.restart(),c==null||c())},[r,c]),i=n.useCallback(()=>{r&&(r.reset(),c==null||c())},[r,c]);return n.useEffect(()=>{if(t){a.KosLog.info("Nozzle is available. Creating timers");const C=a.TimerManager.createTimer(`${e.prefix??""}idle-timer-${t.path}`,h);return C==null||C.addTimeoutAction({name:"idle-timer",remainingTime:0,action:d}),C==null||C.addTimeoutAction({name:"are-you-there-timer",remainingTime:b,action:f}),s(C??null),()=>{C==null||C.reset(),s(null)}}return()=>{a.KosLog.info("Nozzle is not available. No timers to clear")}},[b,h,f,d,t,e.prefix]),{idleTimer:r,restart:m,pause:i}},Qe=({kit:e,inactivity:t,pour:r,screens:s})=>{var ce;const[o,u]=n.useState(!1),[c,b]=n.useState(!1),[h,f]=n.useState(!1),{model:d}=T(),[m,i]=n.useState(!1),C=(t==null?void 0:t.idleTimeout)??15,P=(t==null?void 0:t.areYouThereTimeoutOffset)??10,p=(r==null?void 0:r.idleTimeout)??(t==null?void 0:t.idleTimeout)??10,k=(r==null?void 0:r.areYouThereTimeoutOffset)??(t==null?void 0:t.areYouThereTimeoutOffset)??5,H=s==null?void 0:s.ambientTimeoutOffset,B=s==null?void 0:s.attractTimeout,D=n.useCallback(()=>{u(!0)},[]),R=n.useCallback(()=>{u(!1),e==null||e.nav.home()},[(ce=e==null?void 0:e.nav)==null?void 0:ce.home]),I=n.useCallback(()=>{H&&(b(!0),f(!1))},[H]),U=n.useCallback(()=>{B&&(f(!0),b(!1))},[B]),F=n.useCallback(()=>{B&&(f(!1),b(!1),e==null||e.nav.home())},[e==null?void 0:e.nav,B]),{pause:S,restart:A,resume:V,attractTimer:O}=We({defaultAmbientTime:H,defaultAttractTime:B,onAmbientTimer:I,onAttractTimer:U,onResumeAttractTimer:F}),{pause:g,restart:K}=X({defaultAreYouThereTime:P,defaultIdleTime:C,onAreYouThereTimer:D,onIdleTimer:R}),{pause:w,restart:E}=X({defaultAreYouThereTime:k,defaultIdleTime:p,onAreYouThereTimer:D,onIdleTimer:R,prefix:"pour-"}),G=n.useCallback(()=>{i(!1),w(),g()},[g,w]),Y=n.useCallback(()=>{i(!0),console.log("restarting pour timer"),E(),g()},[g,E]),x=n.useCallback(()=>{u(!1),m?(E(),g()):(K(),w())},[m,g,w,K,E]),$=n.useCallback(()=>{S(),f(!1),b(!1),K()},[S,K]),Le=n.useCallback(()=>{f(!1),b(!1),i(!1),w(),A()},[A,w]),je=n.useCallback(()=>{f(!1),b(!1),i(!1),S(),K()},[S,K]),Ne=n.useCallback(()=>{f(!1),b(!1),i(!1),A(),g(),w()},[A,g,w]),De=n.useCallback(()=>{f(!1),b(!1),A(),g()},[A,g]);Ce({onBrandSelected:$,onBrandCleared:Le,onBeverageSelected:je,onBeverageCleared:Ne,onPour:G,onPourCancel:Y,onInit:De});const Re=m?k:P;return n.useEffect(()=>{if(d&&O){const Oe=`/kos/dispense/${d==null?void 0:d.path}/init/`;a.EventBus.publish(Oe,{})}},[d,O]),{showAreYouThere:o,clearAreYouThere:x,areYouThereCountdown:Re,showAmbientScreen:c,showAttractScreen:h,pauseScreenTimer:V}},oe=()=>{const e=v.DeviceAssembly.type;return a.useKosModel({modelId:e,modelType:v.DeviceAssembly.type,options:{}})};function Xe(e){return t=>{const{model:r,status:s,KosModelLoader:o}=oe();return l.jsx(o,{...s,children:l.jsx(e,{...t,deviceAssembly:r})})}}const ne=e=>{const t=e;return a.useKosModel({modelId:t,modelType:v.Holder.type,options:{}})};function Ze(e,t){return r=>{const{model:s,status:o,KosModelLoader:u}=ne(e);return l.jsx(u,{...o,children:l.jsx(t,{...r,holder:s})})}}const ie=()=>{const e=v.HolderContainer.type;return a.useKosModel({modelId:e,modelType:v.HolderContainer.type,options:{}})};function ze(e){return t=>{const{model:r,status:s,KosModelLoader:o}=ie();return l.jsx(o,{...s,children:l.jsx(e,{...t,holderContainer:r})})}}const ae=()=>{const e=v.Ingredient.type;return a.useKosModel({modelId:e,modelType:v.Ingredient.type,options:{}})},W=a.KosLog.createLogger({name:"HoldToPourIntentStrategy",group:"kos-hooks"}),xe={name:"HoldToPourIntentStrategy",async initiate(e,t){if(!(e!=null&&e.canPour)){W.debug(`${e==null?void 0:e.id} cannot pour. Returning early.`);return}t?(W.debug(`performing intent: ${t}`),await(e==null?void 0:e.performIntent(t))):W.debug("no intent provided. Returning early.")},async initiateEnded(e){await(e==null?void 0:e.cancelPour())}},J=a.KosLog.createLogger({name:"useNozzlePour",group:"kos-hooks"}),et=({onPour:e,onPourCancel:t,intentContainer:r,strategy:s=xe})=>{const o=n.useCallback(()=>{J.debug(`[${s==null?void 0:s.name}] - Pour initiated for model ${r==null?void 0:r.id}.`),s==null||s.initiate(r),e==null||e()},[e,r,s]),u=n.useCallback(()=>{var h;J.debug(`[${s==null?void 0:s.name}] - Pour initiate ended called for nozzle ${r==null?void 0:r.id}.`),(h=s==null?void 0:s.initiateEnded)==null||h.call(s,r),t==null||t()},[t,r,s]),c=n.useCallback(()=>{J.debug(`Force cancelling pour for nozzle ${r==null?void 0:r.id}.`),r==null||r.cancelPour(),t==null||t()},[t,r]);return{handlers:a.usePressGesture({onPressed:o,onRelease:u}).dom,cancel:c,status:r}};function tt(e){return t=>{const{model:r,status:s,KosModelLoader:o}=ae();return l.jsx(o,{...s,children:l.jsx(e,{...t,ingredient:r})})}}const ue=()=>{const e=v.IngredientContainer.type;return a.useKosModel({modelId:e,modelType:v.IngredientContainer.type,options:{}})};function st(e){return t=>{const{model:r,status:s,KosModelLoader:o}=ue();return l.jsx(o,{...s,children:l.jsx(e,{...t,ingredientContainer:r})})}}function rt(e,t){return r=>{const{model:s,status:o,KosModelLoader:u}=se(e);return l.jsx(u,{...o,children:l.jsx(t,{...r,nozzle:s})})}}const Q=a.KosLog.createLogger({name:"usePour",group:"kos-hooks"}),ot=({onPour:e,onPourCancel:t,onPourAbort:r,pourTarget:s,strategy:o=re})=>{const u=n.useCallback(async()=>{Q.debug(`[${o==null?void 0:o.name}] - Pour initiated for pour target ${s==null?void 0:s.id}.`),await(o==null?void 0:o.initiate(s)),e==null||e(),s!=null&&s.isPouring||r==null||r()},[e,s,o]),c=n.useCallback(async()=>{var d;Q.debug(`[${o==null?void 0:o.name}] - Pour initiate ended called for pour target ${s==null?void 0:s.id}.`),await((d=o==null?void 0:o.initiateEnded)==null?void 0:d.call(o,s))||t==null||t()},[t,s,o]),b=n.useCallback(async()=>{Q.debug(`Force cancelling pour for pour target ${s==null?void 0:s.id}.`),await(s==null?void 0:s.cancelPour()),t==null||t()},[t,s]);return{handlers:a.usePressGesture({onPressed:u,onRelease:c}).dom,cancel:b,status:s}},j=a.KosLog.createLogger({name:"TapOrHoldIntentStrategy",group:"kos-hooks"});class nt{constructor(t){L(this,"intent");L(this,"name","TapOrHoldIntentStrategy");L(this,"isHold",!1);L(this,"disposer",null);this.intent=t}async initiate(t,r){if(this.disposer=setTimeout(()=>{this.isHold=!0},250),t!=null&&t.isPouring&&!this.isHold){j.debug("additional tap detected. cancelling pour"),await t.cancelPour();return}if(!(t!=null&&t.canPour)){j.debug(`${t==null?void 0:t.id} cannot pour. Returning early.`);return}r?(j.debug(`performing intent: ${r}`),await(t==null?void 0:t.performIntent(r))):j.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):(j.debug("Tap detected. don't cancel and return."),!0)}}const _=a.KosLog.createLogger({name:"TapToPourIntentStrategy",group:"kos-hooks"}),it={name:"TapToPourIntentStrategy",async initiate(e,t){if(e!=null&&e.isPouring){_.debug(`Nozzle ${e==null?void 0:e.id} is already pouring. cancelling pour`),await e.cancelPour();return}if(!(e!=null&&e.canPour)){_.debug(`Nozzle ${e==null?void 0:e.id} cannot pour. Returning early.`);return}t?(_.debug(`performing intent: ${t}`),await(e==null?void 0:e.performIntent(t))):_.debug("no intent provided. Returning early.")},async initiateEnded(e){return!0}},de=a.KosLog.createLogger({name:"HoldToPourStrategy",group:"kos-hooks"}),at={name:"TapToPourStrategy",async initiate(e){if(e!=null&&e.isPouring){de.debug(`Nozzle ${e==null?void 0:e.id} is already pouring. cancelling pour`),await e.cancelPour();return}if(!(e!=null&&e.canPour)){de.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}},Pe=(e,t,r)=>{const s=e;return a.useKosModel({modelId:s,modelType:v.GenericPour.type,options:{servicePathFactory:t,selectedId:r}})};function ut(e){return t=>{const{model:r,status:s,KosModelLoader:o}=Pe(t.id,t.servicePathFactory,t.itemId);return l.jsx(o,{...s,children:l.jsx(e,{...t,genericPour:r})})}}const ge=n.createContext(void 0),ct=({children:e})=>{const{model:t,ready:r}=Z(),s=n.useMemo(()=>r&&t?{model:t}:{},[r,t]);return l.jsx(ge.Provider,{value:s,children:e})},dt=()=>{const e=n.useContext(ge);if(!e)throw new Error("useAssemblyContext must be used within a AssemblyProvider");return e},ke=n.createContext(void 0),lt=({children:e})=>{const{model:t,ready:r}=z(),s=n.useMemo(()=>r&&t?{model:t}:{},[r,t]);return l.jsx(ke.Provider,{value:s,children:e})},bt=()=>{const e=n.useContext(ke);if(!e)throw new Error("useAvailabilityContext must be used within a AvailabilityProvider");return e},we=n.createContext(void 0),mt=({children:e,id:t})=>{const{model:r,ready:s}=ee(t),o=n.useMemo(()=>s&&r?{model:r}:{},[s,r]);return l.jsx(we.Provider,{value:o,children:e})},ht=()=>{const e=n.useContext(we);if(!e)throw new Error("useBoardContext must be used within a BoardProvider");return e},Te=n.createContext(void 0),ft=({children:e})=>{const{model:t,ready:r}=te(),s=n.useMemo(()=>r&&t?{model:t}:{},[r,t]);return l.jsx(Te.Provider,{value:s,children:e})},pt=()=>{const e=n.useContext(Te);if(!e)throw new Error("useBoardContainerContext must be used within a BoardContainerProvider");return e},Ie=n.createContext(void 0),Ae=({children:e})=>{const{model:t,ready:r}=oe(),s=n.useMemo(()=>{if(r&&t){const u=t.nozzlePaths;return{model:t,nozzlePaths:u}}return{}},[r,t]),o=r&&t?e:null;return l.jsx(Ie.Provider,{value:s,children:o})},Ke=()=>{const e=n.useContext(Ie);if(!e)throw new Error("useDeviceAssemblyContext must be used within a DeviceAssemblyProvider");return e};function vt(){const e=n.createContext(null);return[()=>{const r=n.useContext(e);if(r===void 0)throw new Error("useDispenseKitContext must be used within a Provider");return r},e.Provider]}function Be({children:e,provider:t,props:r}){const s=ve(r);return l.jsx(t,{value:s,children:e({})})}function Ct({children:e,provider:t,props:r}){const{nozzlePaths:s}=Ke();return(s==null?void 0:s.map(u=>l.jsx(be,{path:u,children:l.jsx(Be,{provider:t,props:r,children:e})},u)))||[]}function Ee({provider:e,props:t}){return({children:r})=>e?l.jsx(Ae,{children:l.jsx(Ct,{provider:e,props:t,children:r})}):null}function xt(e){const[t,r]=vt();return[t,Ee({provider:r,props:e})]}const $e=n.createContext(void 0),Pt=({children:e,id:t})=>{const{model:r,ready:s}=ne(t||""),o=n.useMemo(()=>s&&r?{model:r}:{},[s,r]);return l.jsx($e.Provider,{value:o,children:e})},gt=()=>{const e=n.useContext($e);if(!e)throw new Error("useHolderContext must be used within a HolderProvider");return e},Se=n.createContext(void 0),kt=({children:e})=>{const{model:t,ready:r}=ie(),s=n.useMemo(()=>r&&t?{model:t}:{},[r,t]);return l.jsx(Se.Provider,{value:s,children:e})},wt=()=>{const e=n.useContext(Se);if(!e)throw new Error("useHolderContainerContext must be used within a HolderContainerProvider");return e},ye=n.createContext(void 0),Tt=({children:e})=>{const{model:t,ready:r}=ae(),s=n.useMemo(()=>r&&t?{model:t}:{},[r,t]);return l.jsx(ye.Provider,{value:s,children:e})},It=()=>{const e=n.useContext(ye);if(!e)throw new Error("useIngredientContext must be used within a IngredientProvider");return e},Me=n.createContext(void 0),At=({children:e})=>{const{model:t,ready:r}=ue(),s=n.useMemo(()=>r&&t?{model:t}:{},[r,t]);return l.jsx(Me.Provider,{value:s,children:e})},Kt=()=>{const e=n.useContext(Me);if(!e)throw new Error("useIngredientContainerContext must be used within a IngredientContainerProvider");return e},Bt=()=>{const e=v.Pump.type;return a.useKosModel({modelId:e,modelType:v.Pump.type,options:{}})},He=n.createContext(void 0),Et=({children:e})=>{const{model:t,ready:r}=Bt(),s=n.useMemo(()=>r&&t?{model:t}:{},[r,t]);return l.jsx(He.Provider,{value:s,children:e})},$t=()=>{const e=n.useContext(He);if(!e)throw new Error("usePumpContext must be used within a PumpProvider");return e};exports.AssemblyProvider=ct;exports.AvailabilityProvider=lt;exports.BoardContainerProvider=ft;exports.BoardProvider=mt;exports.CuiKit=Ee;exports.CuiKitWrapper=Be;exports.DISPENSE_GROUP_BEVERAGE=N;exports.DISPENSE_GROUP_BRAND=y;exports.DISPENSE_GROUP_FLAVOR=M;exports.DeviceAssemblyProvider=Ae;exports.HoldToPourIntentStrategy=xe;exports.HoldToPourStrategy=re;exports.HolderContainerProvider=kt;exports.HolderProvider=Pt;exports.IngredientContainerProvider=At;exports.IngredientProvider=Tt;exports.NozzleProvider=be;exports.PumpProvider=Et;exports.TapOrHoldIntentStrategy=nt;exports.TapToPourIntentStrategy=it;exports.TapToPourStrategy=at;exports.initializeCuiKit=xt;exports.useAssembly=Z;exports.useAssemblyContext=dt;exports.useAvailability=z;exports.useAvailabilityContext=bt;exports.useBeverages=me;exports.useBoard=ee;exports.useBoardContainer=te;exports.useBoardContainerContext=pt;exports.useBoardContext=ht;exports.useBrands=he;exports.useCuiKit=ve;exports.useCuiKitTimers=X;exports.useDefaultCuiKitLifecycle=Qe;exports.useDeviceAssembly=oe;exports.useDeviceAssemblyContext=Ke;exports.useDispenseLifecycle=Ce;exports.useFlavors=pe;exports.useGenericPour=Pe;exports.useHolder=ne;exports.useHolderContainer=ie;exports.useHolderContainerContext=wt;exports.useHolderContext=gt;exports.useIngredient=ae;exports.useIngredientContainer=ue;exports.useIngredientContainerContext=Kt;exports.useIngredientContext=It;exports.useIngredientPour=et;exports.useNozzle=se;exports.useNozzleContext=T;exports.useNozzlePour=fe;exports.usePourTarget=ot;exports.usePumpContext=$t;exports.withAssembly=_e;exports.withBeverage=Ue;exports.withBoard=Fe;exports.withBoardContainer=Ve;exports.withDeviceAssembly=Xe;exports.withGenericPour=ut;exports.withHolder=Ze;exports.withHolderContainer=ze;exports.withIngredient=tt;exports.withIngredientContainer=st;exports.withNozzle=rt;
|
|
2
|
-
//# sourceMappingURL=pump-provider-Csj2RXYB.cjs.map
|