@kosdev-code/kos-dispense-sdk 2.0.11 → 2.0.15
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/dispense-registration-manager-6NDXduUb.cjs +2 -0
- package/dispense-registration-manager-6NDXduUb.cjs.map +1 -0
- package/dispense-registration-manager-CSjwKonf.js +1904 -0
- package/dispense-registration-manager-CSjwKonf.js.map +1 -0
- package/{extension-utils-CMoNCoHG.js → extension-utils-BBJG9cnM.js} +53 -49
- package/{extension-utils-CMoNCoHG.js.map → extension-utils-BBJG9cnM.js.map} +1 -1
- package/extension-utils-DYqo5NBO.cjs +2 -0
- package/{extension-utils-BMU452cN.cjs.map → extension-utils-DYqo5NBO.cjs.map} +1 -1
- package/index.cjs +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +91 -86
- package/models/models/generic-pour/generic-pour-model.d.ts +51 -0
- package/models/models/generic-pour/generic-pour-model.d.ts.map +1 -0
- package/models/models/generic-pour/generic-pour-registration.d.ts +87 -0
- package/models/models/generic-pour/generic-pour-registration.d.ts.map +1 -0
- package/models/models/generic-pour/index.d.ts +5 -0
- package/models/models/generic-pour/index.d.ts.map +1 -0
- package/models/models/generic-pour/services/generic-pour-services.d.ts +16 -0
- package/models/models/generic-pour/services/generic-pour-services.d.ts.map +1 -0
- package/models/models/generic-pour/services/index.d.ts +2 -0
- package/models/models/generic-pour/services/index.d.ts.map +1 -0
- package/models/models/generic-pour/types/index.d.ts +4 -0
- package/models/models/index.d.ts +1 -0
- package/models/models/index.d.ts.map +1 -1
- package/models.cjs +1 -1
- package/models.js +18 -16
- package/package.json +3 -3
- package/pump-provider-B2FPLQDA.cjs +2 -0
- package/pump-provider-B2FPLQDA.cjs.map +1 -0
- package/pump-provider-BN6_xdlt.js +1073 -0
- package/pump-provider-BN6_xdlt.js.map +1 -0
- package/ui/hooks/generic-pour/index.d.ts +3 -0
- package/ui/hooks/generic-pour/index.d.ts.map +1 -0
- package/ui/hooks/generic-pour/use-generic-pour.d.ts +14 -0
- package/ui/hooks/generic-pour/use-generic-pour.d.ts.map +1 -0
- package/ui/hooks/generic-pour/with-generic-pour.d.ts +13 -0
- package/ui/hooks/generic-pour/with-generic-pour.d.ts.map +1 -0
- package/ui/hooks/index.d.ts +2 -0
- package/ui/hooks/index.d.ts.map +1 -1
- package/ui/hooks/pour/index.d.ts +2 -0
- package/ui/hooks/pour/index.d.ts.map +1 -0
- package/ui/hooks/pour/use-pour.d.ts +49 -0
- package/ui/hooks/pour/use-pour.d.ts.map +1 -0
- package/ui/hooks/utils/pour-strategy/hold-to-pour-strategy.d.ts.map +1 -1
- package/ui/hooks/utils/pour-strategy/pour-strategy.d.ts +10 -2
- package/ui/hooks/utils/pour-strategy/pour-strategy.d.ts.map +1 -1
- package/ui/hooks/utils/pour-strategy/tap-to-pour-strategy.d.ts.map +1 -1
- package/ui.cjs +1 -1
- package/ui.js +42 -39
- package/dispense-registration-manager-BtVe7yFS.js +0 -1770
- package/dispense-registration-manager-BtVe7yFS.js.map +0 -1
- package/dispense-registration-manager-CcV-anPv.cjs +0 -2
- package/dispense-registration-manager-CcV-anPv.cjs.map +0 -1
- package/extension-utils-BMU452cN.cjs +0 -2
- package/pump-provider-3XH9JScg.js +0 -1016
- package/pump-provider-3XH9JScg.js.map +0 -1
- package/pump-provider-CyLiBpMN.cjs +0 -2
- package/pump-provider-CyLiBpMN.cjs.map +0 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { GenericPourOptions } from './types';
|
|
2
|
+
import { PourState } from '../types';
|
|
3
|
+
import { PourStrategyAware } from '../../../ui/hooks/utils/pour-strategy';
|
|
4
|
+
import { FutureAwareContainer, FutureContainer, IFutureModel, IKosDataModel, KosCreationContext, PublicModelInterface } from '@kosdev-code/kos-ui-sdk';
|
|
5
|
+
|
|
6
|
+
export declare const MODEL_TYPE = "generic-pour-model";
|
|
7
|
+
export type GenericPourModel = PublicModelInterface<GenericPourModelImpl>;
|
|
8
|
+
export declare const TOPIC_GENERIC_POUR_STARTED = "/kos/generic/pour/started";
|
|
9
|
+
export declare const TOPIC_GENERIC_POUR_PROGRESS = "/kos/generic/pour/progress";
|
|
10
|
+
export declare const TOPIC_GENERIC_POUR_CANCEL = "/kos/generic/pour/cancel";
|
|
11
|
+
export declare class GenericPourModelImpl implements IKosDataModel, PourStrategyAware, FutureContainer {
|
|
12
|
+
id: string;
|
|
13
|
+
currentState: PourState;
|
|
14
|
+
servicePath: string;
|
|
15
|
+
pourType: string;
|
|
16
|
+
private logger;
|
|
17
|
+
futureHandler: FutureAwareContainer;
|
|
18
|
+
constructor(modelId: string, options: GenericPourOptions, context: KosCreationContext);
|
|
19
|
+
/**
|
|
20
|
+
* An action that will initiate a pour for this nozzle.
|
|
21
|
+
*
|
|
22
|
+
* The invocation of this action will result in a Future being returned that will
|
|
23
|
+
* provide the status of the pour and return any errors that may occur.
|
|
24
|
+
*
|
|
25
|
+
* @see {@link kosFuture}
|
|
26
|
+
* */
|
|
27
|
+
pour(tracker?: string): Promise<void>;
|
|
28
|
+
cancelPour(): Promise<void>;
|
|
29
|
+
private updateIfCurrent;
|
|
30
|
+
/**
|
|
31
|
+
* A derived value that indicates if the nozzle is currently pouring a beverage.
|
|
32
|
+
* @readonly
|
|
33
|
+
*/
|
|
34
|
+
get isPouring(): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* A derived value that indicates if the pour target is currently available to pour a beverage.
|
|
37
|
+
*
|
|
38
|
+
* Generally this means that the pour target is currently idle and not in the process of pouring, initiating a pour, or canceling a pour.
|
|
39
|
+
* The value is observable and will change when the selected pourable changes or the pour target
|
|
40
|
+
* starts or stops pouring.
|
|
41
|
+
* @readonly
|
|
42
|
+
* */
|
|
43
|
+
get canPour(): boolean;
|
|
44
|
+
get future(): IFutureModel<Record<string, unknown>> | undefined;
|
|
45
|
+
get pourProgress(): number;
|
|
46
|
+
updateServicePath(servicePath: string, cancelPour: boolean): void;
|
|
47
|
+
onFutureUpdate(future: IFutureModel<any>): void;
|
|
48
|
+
init(): Promise<void>;
|
|
49
|
+
load(): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=generic-pour-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-pour-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/generic-pour/generic-pour-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAEf,YAAY,EACZ,aAAa,EAEb,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,UAAU,uBAAuB,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;AAE1E,eAAO,MAAM,0BAA0B,8BAA8B,CAAC;AACtE,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AACxE,eAAO,MAAM,yBAAyB,6BAA6B,CAAC;AA2BpE,qBACa,oBACX,YAAW,aAAa,EAAE,iBAAiB,EAAE,eAAe;IAE5D,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,SAAS,CAAkB;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,MAAM,CAAmB;IACjC,aAAa,EAAE,oBAAoB,CAAC;gBAElC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,kBAAkB;IAS7B;;;;;;;SAOK;IAEQ,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM;IAgCrB,UAAU;IAwBvB,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,IAAI,SAAS,YAUZ;IAED;;;;;;;SAOK;IACL,IAAI,OAAO,YAEV;IAED,IAAI,MAAM,sDAET;IAED,IAAI,YAAY,WAEf;IAED,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO;IAW1D,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC;IAuBlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { GenericPourModel } from './generic-pour-model';
|
|
2
|
+
import { GenericPourOptions } from './types';
|
|
3
|
+
import { KosModelRegistrationFactory } from '@kosdev-code/kos-ui-sdk';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* # GenericPour
|
|
7
|
+
*
|
|
8
|
+
* The registration bean includes convenience methods for creating and working with GenericPourModel instances.
|
|
9
|
+
*
|
|
10
|
+
* ## type
|
|
11
|
+
* The type property is a string that identifies the model type.
|
|
12
|
+
* The type is used to identify the model type in the model registry and to narrow down the model type in type predicates. It's most frequently
|
|
13
|
+
* used when declaring dependencies on models.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
*
|
|
18
|
+
* @kosDependency({modelType: GenericPour.type, id: "genericPourId"})
|
|
19
|
+
* private genericPourModel: GenericPourModel;
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
*
|
|
23
|
+
* ## factory
|
|
24
|
+
*
|
|
25
|
+
* The factory method creates a factory function that can be used to create new GenericPourModel instances.
|
|
26
|
+
*
|
|
27
|
+
|
|
28
|
+
* The factory function is a curried function that takes the model id as the first argument and the options as the second argument.
|
|
29
|
+
*
|
|
30
|
+
* If a model with the specified id already exists, the factory function will return the existing model. The options will be ignored
|
|
31
|
+
* in this case and the existing model will be returned in its current state.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const model = GenericPour.factory("genericPourId")({
|
|
36
|
+
* // Add option data
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
*
|
|
42
|
+
* ## predicate
|
|
43
|
+
*
|
|
44
|
+
* [Typescript type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates) function that will identify and narrow down a model to a GenericPourModel.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
*
|
|
49
|
+
* const model: IKosDataModel = ...; // some model
|
|
50
|
+
*
|
|
51
|
+
* if (GenericPour.predicate(model)) {
|
|
52
|
+
* // if the function evaluates to true, the model is narrowed down to GenericPourModel
|
|
53
|
+
* // and the compiler will know that the model has the GenericPourModel interface
|
|
54
|
+
* model.updateAvailability(false);
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* ## registration
|
|
59
|
+
*
|
|
60
|
+
* The registration property is an object that can be used to simplify registration of the model with the model registry. The registration object
|
|
61
|
+
* can be spread into the model registration and provides all of the required information to register the model implementation class against the model type.
|
|
62
|
+
*
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
*
|
|
66
|
+
* In an application registration file you can declare the model registration as follows:
|
|
67
|
+
*
|
|
68
|
+
* **registration.ts**
|
|
69
|
+
* ```typescript
|
|
70
|
+
* import { GenericPour } from "@kos-ui/project-models";
|
|
71
|
+
* import { KosModelRegistry } from "@kosdev-code/kos-dispense-sdk";
|
|
72
|
+
*
|
|
73
|
+
* import { initKosProvider } from "@kosdev-code/kos-ui-sdk";
|
|
74
|
+
*
|
|
75
|
+
* KosModelRegistry.dispense
|
|
76
|
+
* .models()
|
|
77
|
+
* .model(GenericPour);
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* ## registration.singleton
|
|
81
|
+
|
|
82
|
+
* The genericPour model is NOT a singleton model. This means that each time the factory function is called with a unique ID, a new model instance will be created.
|
|
83
|
+
* If the factory function is called with an ID that already exists, the existing model will be returned.
|
|
84
|
+
|
|
85
|
+
* */
|
|
86
|
+
export declare const GenericPour: KosModelRegistrationFactory<GenericPourModel, GenericPourOptions>;
|
|
87
|
+
//# sourceMappingURL=generic-pour-registration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-pour-registration.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/generic-pour/generic-pour-registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgFK;AACL,eAAO,MAAM,WAAW,mEAMtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/generic-pour/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,mBAAmB,SAAS,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,mBAAmB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Initiates a pour for a pour target on a given path.
|
|
4
|
+
*
|
|
5
|
+
|
|
6
|
+
*
|
|
7
|
+
* @param path - the API path to pour from, this will be passed in from the model
|
|
8
|
+
* @param tracker - the tracker to use for the pour. It will be returned in the future to allow consumers
|
|
9
|
+
* to track the pour
|
|
10
|
+
* @category Service
|
|
11
|
+
*
|
|
12
|
+
* @see {@link FutureManager.initiateFuture}
|
|
13
|
+
* @returns - a Future that encapsulates the pour including its status and progress.
|
|
14
|
+
**/
|
|
15
|
+
export declare const pourOnTarget: (path: string, tracker: string) => Promise<import('@kosdev-code/kos-ui-sdk').KosServiceResponse<any> | undefined>;
|
|
16
|
+
//# sourceMappingURL=generic-pour-services.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic-pour-services.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/generic-pour/services/generic-pour-services.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;IAaI;AACJ,eAAO,MAAM,YAAY,SAAgB,MAAM,WAAW,MAAM,mFAW/D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/generic-pour/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
package/models/models/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC"}
|
package/models.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dispense-registration-manager-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dispense-registration-manager-6NDXduUb.cjs"),n=require("./extension-utils-DYqo5NBO.cjs");require("@kosdev-code/kos-ui-sdk");require("react");exports.Assembly=e.Assembly;exports.Availability=e.Availability;exports.Board=e.Board;exports.BoardContainer=e.BoardContainer;Object.defineProperty(exports,"BoardContainerModel",{enumerable:!0,get:()=>e.BoardContainerModel});exports.DeviceAssembly=e.DeviceAssembly;exports.DispenseModelType=e.DispenseModelType;exports.ExtensionType=e.ExtensionType;exports.GenericPour=e.GenericPour;exports.Holder=e.Holder;exports.HolderContainer=e.HolderContainer;exports.Ingredient=e.Ingredient;exports.IngredientContainer=e.IngredientContainer;exports.KosModelRegistry=e.KosModelRegistry;exports.Nozzle=e.Nozzle;exports.PourState=e.PourState;exports.Pump=e.Pump;exports.PumpContainer=e.PumpContainer;exports.PumpIndex=e.PumpIndex;exports.TOPIC_BOARD_LINKED=e.TOPIC_BOARD_LINKED;exports.TOPIC_BOARD_UNLINKED=e.TOPIC_BOARD_UNLINKED;exports.kosModels=e.kosModels;exports.registerDispenseModels=e.registerDispenseModels;exports.AssemblyServices=n.index;exports.AssemblyTypes=n.assembly;exports.DispenseExtensionManager=n.DispenseExtensionManager;exports.GenericPourServices=n.index$1;exports.HolderServices=n.index$2;exports.IngredientServices=n.index$3;exports.KosExtensionManager=n.KosExtensionManager;exports.NozzleServices=n.index$4;exports.PumpServices=n.index$5;exports.getFuelGaugeValue=n.getFuelGaugeValue;
|
|
2
2
|
//# sourceMappingURL=models.cjs.map
|
package/models.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as o, a as i, d as n, c as t, B as l, e as d, D as p, E as m, H as g, f as
|
|
2
|
-
import { i as K,
|
|
1
|
+
import { A as o, a as i, d as n, c as t, B as l, e as d, D as p, E as m, G as c, H as g, f as u, I as D, g as P, K as y, N as I, j as v, P as A, h as b, i as C, T as M, b as S, k as x, r as B } from "./dispense-registration-manager-CSjwKonf.js";
|
|
2
|
+
import { i as K, f as N, D as T, a as f, b as z, c as G, K as H, d as O, e as _, g as R } from "./extension-utils-BBJG9cnM.js";
|
|
3
3
|
import "@kosdev-code/kos-ui-sdk";
|
|
4
4
|
import "react";
|
|
5
5
|
export {
|
|
@@ -11,27 +11,29 @@ export {
|
|
|
11
11
|
t as BoardContainer,
|
|
12
12
|
l as BoardContainerModel,
|
|
13
13
|
d as DeviceAssembly,
|
|
14
|
-
|
|
14
|
+
T as DispenseExtensionManager,
|
|
15
15
|
p as DispenseModelType,
|
|
16
16
|
m as ExtensionType,
|
|
17
|
+
c as GenericPour,
|
|
18
|
+
f as GenericPourServices,
|
|
17
19
|
g as Holder,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
u as HolderContainer,
|
|
21
|
+
z as HolderServices,
|
|
22
|
+
D as Ingredient,
|
|
23
|
+
P as IngredientContainer,
|
|
24
|
+
G as IngredientServices,
|
|
23
25
|
H as KosExtensionManager,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
y as KosModelRegistry,
|
|
27
|
+
I as Nozzle,
|
|
26
28
|
O as NozzleServices,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
v as PourState,
|
|
30
|
+
A as Pump,
|
|
29
31
|
b as PumpContainer,
|
|
30
|
-
|
|
32
|
+
C as PumpIndex,
|
|
31
33
|
_ as PumpServices,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
M as TOPIC_BOARD_LINKED,
|
|
35
|
+
S as TOPIC_BOARD_UNLINKED,
|
|
36
|
+
R as getFuelGaugeValue,
|
|
35
37
|
x as kosModels,
|
|
36
38
|
B as registerDispenseModels
|
|
37
39
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kosdev-code/kos-dispense-sdk",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.15",
|
|
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.0.
|
|
26
|
+
"@kosdev-code/kos-ui-sdk": "~2.0.15"
|
|
27
27
|
},
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"registry": "https://registry.npmjs.org/"
|
|
30
30
|
},
|
|
31
31
|
"kos": {
|
|
32
32
|
"build": {
|
|
33
|
-
"gitHash": "
|
|
33
|
+
"gitHash": "094801c4dad84a87afcf8b6cbdefd9aa38bfaf78"
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var Ge=Object.defineProperty;var Ye=(e,t,s)=>t in e?Ge(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var j=(e,t,s)=>(Ye(e,typeof t!="symbol"?t+"":t,s),s);const d=require("@emotion/react/jsx-runtime"),u=require("@kosdev-code/kos-ui-sdk"),n=require("react"),v=require("./dispense-registration-manager-6NDXduUb.cjs"),Z=()=>{const e=v.Assembly.type;return u.useKosModel({modelId:e,modelType:v.Assembly.type,options:{}})};function _e(e){return t=>{const{model:s,status:r,KosModelLoader:o}=Z();return d.jsx(o,{...r,children:d.jsx(e,{...t,assembly:s})})}}const z=()=>{const e=v.Availability.type;return u.useKosModel({modelId:e,modelType:v.Availability.type,options:{}})};function Ue(e){return t=>{const{model:s,status:r,KosModelLoader:o}=z();return d.jsx(o,{...r,children:d.jsx(e,{...t,beverage:s})})}}const ee=e=>{const t=e;return u.useKosModel({modelId:t,modelType:v.Board.type,options:{}})};function Ve(e){return t=>s=>{const{model:r,status:o,KosModelLoader:a}=ee(t);return d.jsx(a,{...o,children:d.jsx(e,{...s,board:r})})}}const te=()=>{const e=v.BoardContainer.type;return u.useKosModel({modelId:e,modelType:v.BoardContainer.type,options:{}})};function qe(e){return t=>{const{model:s,status:r,KosModelLoader:o}=te();return d.jsx(o,{...r,children:d.jsx(e,{...t,boardContainer:s})})}}const se=e=>{const t=e;return u.useKosModel({modelId:t,modelType:v.Nozzle.type,options:{path:e}})},le=n.createContext(void 0),be=({children:e,path:t})=>{const{model:s,ready:r}=se(t),o=n.useMemo(()=>r&&s?{model:s}:{},[r,s]);return d.jsx(le.Provider,{value:o,children:e})},A=()=>{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:s})=>{const{model:r}=A(),[o,a]=n.useState([]),[c,b]=n.useState(null),m=n.useMemo(()=>s?o.map(p=>u.getKosCompanionModel(p,s)):[],[o,s]),h=n.useCallback(async p=>{b(p),await(r==null?void 0:r.setSelectedPourable({beverage:p})),e==null||e(p)},[r,e]),l=n.useCallback(async()=>{b(null),await(r==null?void 0:r.setSelectedPourable({beverage:void 0})),t==null||t()},[r,t]);return n.useEffect(()=>{const p=u.kosAutoEffect(()=>{if(!r)return;const i=r.selectedBrand;if(!i){const P=r.getGroupAvailabilityItems("beverages").filter(f=>f.visible);a(P??[]);return}const C=r.getAvailabilityByParent(i.id).filter(P=>P.visible);a(C??[])});return()=>{p()}},[r]),{beverages:o,beverageCompanions:m,selectBeverage:h,selectedBeverage:c,clearBeverage:l}},pe=({onBrandSelected:e,onBrandCleared:t,companionType:s})=>{const{model:r}=A(),[o,a]=n.useState(null),c=n.useMemo(()=>(r==null?void 0:r.getGroupAvailabilityItems("brands").filter(l=>l.visible))??[],[r]),b=n.useMemo(()=>s?c.map(l=>u.getKosCompanionModel(l,s)):[],[c,s]),m=n.useCallback(async l=>{a(l),r==null||r.setSelectedBrand(l),e==null||e(l)},[r,e]),h=n.useCallback(()=>{a(null),r==null||r.setSelectedBrand(void 0),t==null||t()},[r,t]);return{brands:c,brandCompanions:b,selectedBrand:o,selectBrand:m,clearBrand:h}},Fe=u.KosLog.createLogger({name:"HoldToPourStrategy",group:"kos-hooks"}),re={name:"HoldToPourStrategy",initiate(e){if(!(e!=null&&e.canPour)){Fe.debug(`Nozzle ${e==null?void 0:e.id} cannot pour. Returning early.`);return}e==null||e.pour()},initiateEnded(e){e==null||e.cancelPour()}},F=u.KosLog.createLogger({name:"useNozzlePour",group:"kos-hooks"}),he=({onPour:e,onPourCancel:t,strategy:s=re})=>{const{model:r}=A(),o=n.useCallback(()=>{F.debug(`[${s==null?void 0:s.name}] - Pour initiated for nozzle ${r==null?void 0:r.id}.`),s==null||s.initiate(r),e==null||e()},[e,r,s]),a=n.useCallback(()=>{var m;F.debug(`[${s==null?void 0:s.name}] - Pour initiate ended called for nozzle ${r==null?void 0:r.id}.`),(m=s==null?void 0:s.initiateEnded)==null||m.call(s,r),t==null||t()},[t,r,s]),c=n.useCallback(()=>{F.debug(`Force cancelling pour for nozzle ${r==null?void 0:r.id}.`),r==null||r.cancelPour(),t==null||t()},[t,r]);return{handlers:u.usePressGesture({onPressed:o,onRelease:a}).dom,cancel:c,status:r}},fe=({onFlavorSelected:e,onFlavorCleared:t,companionType:s})=>{const{model:r}=A(),o=n.useMemo(()=>(r==null?void 0:r.getGroupAvailabilityItems("flavors").filter(l=>l.visible))??[],[r]),a=n.useMemo(()=>s?o.map(l=>u.getKosCompanionModel(l,s)):[],[o,s]),[c,b]=n.useState([]),m=n.useCallback(async l=>{if(b(p=>p!=null&&p.includes(l)?[...p.filter(i=>i!==l)]:[...p??[],l]),r!=null&&r.selectedPourable){const{beverage:p}=r.selectedPourable;await r.setSelectedPourable({beverage:p,additional:c??[]})}e==null||e(l,c??[])},[r,e,c]),h=n.useCallback(async()=>{if(b([]),r!=null&&r.selectedPourable){const{beverage:l}=r.selectedPourable;r.setSelectedPourable({beverage:l}),t==null||t()}},[r,t]);return{flavors:o,flavorCompanions:a,selectFlavor:m,selectedFlavors:c,clearFlavors:h}},M="brands",y="beverages",H="flavors",ve=({initialGroup:e=M,options:t={}})=>{var B,G,Y;const[s,r]=n.useState(e),{model:o}=A(),a=n.useCallback(x=>{r(H);const $=`/kos/dispense/${o==null?void 0:o.path}/brand/selected/`;u.EventBus.publish($,x)},[o==null?void 0:o.path]),c=n.useCallback(()=>{const x=`/kos/dispense/${o==null?void 0:o.path}/brand/cleared/`;u.EventBus.publish(x,{})},[o==null?void 0:o.path]),b=n.useCallback(x=>{r(H);const $=`/kos/dispense/${o==null?void 0:o.path}/beverage/selected/`;u.EventBus.publish($,x)},[o==null?void 0:o.path]),m=n.useCallback(()=>{const x=`/kos/dispense/${o==null?void 0:o.path}/beverage/cleared/`;u.EventBus.publish(x,{})},[o==null?void 0:o.path]),h=n.useCallback(x=>{const $=`/kos/dispense/${o==null?void 0:o.path}/flavor/selected/`;u.EventBus.publish($,x)},[o==null?void 0:o.path]),l=n.useCallback(()=>{const x=`/kos/dispense/${o==null?void 0:o.path}/flavor/cleared/`;u.EventBus.publish(x,{})},[o==null?void 0:o.path]),p=n.useCallback(()=>{const x=`/kos/dispense/${o==null?void 0:o.path}/pour/`;u.EventBus.publish(x,{})},[o==null?void 0:o.path]),i=n.useCallback(()=>{const x=`/kos/dispense/${o==null?void 0:o.path}/pour/cancel/`;u.EventBus.publish(x,{})},[o==null?void 0:o.path]),{brands:C,selectBrand:P,selectedBrand:f,clearBrand:k,brandCompanions:L}=pe({companionType:(B=t.companionTypes)==null?void 0:B.brand,onBrandSelected:a,onBrandCleared:c}),{beverages:E,selectBeverage:D,selectedBeverage:R,clearBeverage:I,beverageCompanions:U}=me({companionType:(G=t.companionTypes)==null?void 0:G.beverage,onBeverageSelected:b,onClearBeverage:m}),{clearFlavors:V,flavors:S,selectFlavor:w,selectedFlavors:q,flavorCompanions:O}=fe({companionType:(Y=t.companionTypes)==null?void 0:Y.flavor,onFlavorSelected:h,onFlavorCleared:l}),g=he({onPour:p,onPourCancel:i}),K=n.useCallback(()=>{switch(s){case M:I(),k();break;case y:case H:r(e),I(),k();break}},[I,k,s,e]),T=n.useCallback(()=>{r(e),e===M&&(I(),k()),e===y&&I()},[I,k,e]);return{nav:{currentGroup:s,back:K,home:T},pour:g,selections:{[M]:f,[y]:R,[H]:q},[M]:{models:C,companions:L,clear:k,handlers:{onSelected:P}},[y]:{models:E,companions:U,clear:I,handlers:{onSelected:D}},[H]:{models:S,companions:O,clear:V,handlers:{onSelected:w}}}},We=e=>{const{model:t}=A(),[s,r]=n.useState(null),{onAmbientTimer:o,onAttractTimer:a,onResetAttractTimer:c,onResumeAttractTimer:b,defaultAttractTime:m,defaultAmbientTime:h}=e,l=n.useCallback(()=>{o&&(u.KosLog.info("Ambient timer expired. Calling callback"),o==null||o())},[o]),p=n.useCallback(()=>{a&&(u.KosLog.info("Attract timer expired. Calling callback"),a==null||a())},[a]),i=n.useCallback(()=>{s&&(s.restart(),c==null||c())},[s,c]),C=n.useCallback(()=>{s&&(s.reset(),c==null||c())},[s,c]),P=n.useCallback(()=>{s&&(s.pause(),b==null||b())},[s,b]);return n.useEffect(()=>{if(t&&m){u.KosLog.info("Nozzle is available. Creating timers");const f=u.TimerManager.createTimer("attract-timer-"+t.path,m);return m&&(f==null||f.addTimeoutAction({name:"attract-timer",remainingTime:0,action:p})),h&&(f==null||f.addTimeoutAction({name:"ambient-timer",remainingTime:h,action:l})),m&&(f==null||f.start()),r(f??null),()=>{f==null||f.reset(),r(null)}}return()=>{u.KosLog.info("Nozzle is not available. No timers to clear")}},[h,m,l,p,t]),{attractTimer:s,restart:i,pause:C,resume:P}},Je=(e,t)=>{if(t)return u.EventBus.subscribe(e,t).unsubscribe},Ce=({onInit:e,onBrandSelected:t,onBrandCleared:s,onBeverageCleared:r,onBeverageSelected:o,onFlavorCleared:a,onFlavorSelected:c,onPour:b,onPourCancel:m,onAmbientTimer:h,onAttractTimer:l,onResumeAttractTimer:p})=>{const{model:i}=A();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:s},{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:r},{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:a},{topic:`/kos/dispense/${i==null?void 0:i.path}/pour/`,callback:b},{topic:`/kos/dispense/${i==null?void 0:i.path}/pour/cancel/`,callback:m},{topic:`/kos/dispense/${i==null?void 0:i.path}/ambient/start/`,callback:h},{topic:`/kos/dispense/${i==null?void 0:i.path}/attract/start/`,callback:l},{topic:`/kos/dispense/${i==null?void 0:i.path}/attract/resume/`,callback:p},{topic:`/kos/dispense/${i==null?void 0:i.path}/init/`,callback:e}].map(({topic:f,callback:k})=>Je(f,k));return()=>{P.forEach(f=>f==null?void 0:f())}},[i==null?void 0:i.path,h,l,r,o,s,t,a,c,b,m,p,e])},X=e=>{const{model:t}=A(),[s,r]=n.useState(null),{onAreYouThereTimer:o,onIdleTimer:a,onResetIdleTimer:c,defaultAreYouThereTime:b=10,defaultIdleTime:m=20}=e,h=n.useCallback(()=>{o&&(u.KosLog.info("Are you there timer expired. Calling callback"),o==null||o())},[o]),l=n.useCallback(()=>{a&&(u.KosLog.info("Idle timer expired. Calling callback"),a==null||a())},[a]),p=n.useCallback(()=>{s&&(s.restart(),c==null||c())},[s,c]),i=n.useCallback(()=>{s&&(s.reset(),c==null||c())},[s,c]);return n.useEffect(()=>{if(t){u.KosLog.info("Nozzle is available. Creating timers");const C=u.TimerManager.createTimer(`${e.prefix??""}idle-timer-${t.path}`,m);return C==null||C.addTimeoutAction({name:"idle-timer",remainingTime:0,action:l}),C==null||C.addTimeoutAction({name:"are-you-there-timer",remainingTime:b,action:h}),r(C??null),()=>{C==null||C.reset(),r(null)}}return()=>{u.KosLog.info("Nozzle is not available. No timers to clear")}},[b,m,h,l,t,e.prefix]),{idleTimer:s,restart:p,pause:i}},Qe=({kit:e,inactivity:t,pour:s,screens:r})=>{var ce;const[o,a]=n.useState(!1),[c,b]=n.useState(!1),[m,h]=n.useState(!1),{model:l}=A(),[p,i]=n.useState(!1),C=(t==null?void 0:t.idleTimeout)??15,P=(t==null?void 0:t.areYouThereTimeoutOffset)??10,f=(s==null?void 0:s.idleTimeout)??(t==null?void 0:t.idleTimeout)??10,k=(s==null?void 0:s.areYouThereTimeoutOffset)??(t==null?void 0:t.areYouThereTimeoutOffset)??5,L=r==null?void 0:r.ambientTimeoutOffset,E=r==null?void 0:r.attractTimeout,D=n.useCallback(()=>{a(!0)},[]),R=n.useCallback(()=>{a(!1),e==null||e.nav.home()},[(ce=e==null?void 0:e.nav)==null?void 0:ce.home]),I=n.useCallback(()=>{L&&(b(!0),h(!1))},[L]),U=n.useCallback(()=>{E&&(h(!0),b(!1))},[E]),V=n.useCallback(()=>{E&&(h(!1),b(!1),e==null||e.nav.home())},[e==null?void 0:e.nav,E]),{pause:S,restart:w,resume:q,attractTimer:O}=We({defaultAmbientTime:L,defaultAttractTime:E,onAmbientTimer:I,onAttractTimer:U,onResumeAttractTimer:V}),{pause:g,restart:K}=X({defaultAreYouThereTime:P,defaultIdleTime:C,onAreYouThereTimer:D,onIdleTimer:R}),{pause:T,restart:B}=X({defaultAreYouThereTime:k,defaultIdleTime:f,onAreYouThereTimer:D,onIdleTimer:R,prefix:"pour-"}),G=n.useCallback(()=>{i(!1),T(),g()},[g,T]),Y=n.useCallback(()=>{i(!0),console.log("restarting pour timer"),B(),g()},[g,B]),x=n.useCallback(()=>{a(!1),p?(B(),g()):(K(),T())},[p,g,T,K,B]),$=n.useCallback(()=>{S(),h(!1),b(!1),K()},[S,K]),je=n.useCallback(()=>{h(!1),b(!1),i(!1),T(),w()},[w,T]),Ne=n.useCallback(()=>{h(!1),b(!1),i(!1),S(),K()},[S,K]),ye=n.useCallback(()=>{h(!1),b(!1),i(!1),w(),g(),T()},[w,g,T]),De=n.useCallback(()=>{h(!1),b(!1),w(),g()},[w,g]);Ce({onBrandSelected:$,onBrandCleared:je,onBeverageSelected:Ne,onBeverageCleared:ye,onPour:G,onPourCancel:Y,onInit:De});const Re=p?k:P;return n.useEffect(()=>{if(l&&O){const Oe=`/kos/dispense/${l==null?void 0:l.path}/init/`;u.EventBus.publish(Oe,{})}},[l,O]),{showAreYouThere:o,clearAreYouThere:x,areYouThereCountdown:Re,showAmbientScreen:c,showAttractScreen:m,pauseScreenTimer:q}},oe=()=>{const e=v.DeviceAssembly.type;return u.useKosModel({modelId:e,modelType:v.DeviceAssembly.type,options:{}})};function Xe(e){return t=>{const{model:s,status:r,KosModelLoader:o}=oe();return d.jsx(o,{...r,children:d.jsx(e,{...t,deviceAssembly:s})})}}const ne=e=>{const t=e;return u.useKosModel({modelId:t,modelType:v.Holder.type,options:{}})};function Ze(e,t){return s=>{const{model:r,status:o,KosModelLoader:a}=ne(e);return d.jsx(a,{...o,children:d.jsx(t,{...s,holder:r})})}}const ie=()=>{const e=v.HolderContainer.type;return u.useKosModel({modelId:e,modelType:v.HolderContainer.type,options:{}})};function ze(e){return t=>{const{model:s,status:r,KosModelLoader:o}=ie();return d.jsx(o,{...r,children:d.jsx(e,{...t,holderContainer:s})})}}const ae=()=>{const e=v.Ingredient.type;return u.useKosModel({modelId:e,modelType:v.Ingredient.type,options:{}})},W=u.KosLog.createLogger({name:"HoldToPourIntentStrategy",group:"kos-hooks"}),xe={name:"HoldToPourIntentStrategy",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}`),e==null||e.performIntent(t)):W.debug("no intent provided. Returning early.")},initiateEnded(e){e==null||e.cancelPour()}},J=u.KosLog.createLogger({name:"useNozzlePour",group:"kos-hooks"}),et=({onPour:e,onPourCancel:t,intentContainer:s,strategy:r=xe})=>{const o=n.useCallback(()=>{J.debug(`[${r==null?void 0:r.name}] - Pour initiated for model ${s==null?void 0:s.id}.`),r==null||r.initiate(s),e==null||e()},[e,s,r]),a=n.useCallback(()=>{var m;J.debug(`[${r==null?void 0:r.name}] - Pour initiate ended called for nozzle ${s==null?void 0:s.id}.`),(m=r==null?void 0:r.initiateEnded)==null||m.call(r,s),t==null||t()},[t,s,r]),c=n.useCallback(()=>{J.debug(`Force cancelling pour for nozzle ${s==null?void 0:s.id}.`),s==null||s.cancelPour(),t==null||t()},[t,s]);return{handlers:u.usePressGesture({onPressed:o,onRelease:a}).dom,cancel:c,status:s}};function tt(e){return t=>{const{model:s,status:r,KosModelLoader:o}=ae();return d.jsx(o,{...r,children:d.jsx(e,{...t,ingredient:s})})}}const ue=()=>{const e=v.IngredientContainer.type;return u.useKosModel({modelId:e,modelType:v.IngredientContainer.type,options:{}})};function st(e){return t=>{const{model:s,status:r,KosModelLoader:o}=ue();return d.jsx(o,{...r,children:d.jsx(e,{...t,ingredientContainer:s})})}}function rt(e,t){return s=>{const{model:r,status:o,KosModelLoader:a}=se(e);return d.jsx(a,{...o,children:d.jsx(t,{...s,nozzle:r})})}}const Q=u.KosLog.createLogger({name:"usePour",group:"kos-hooks"}),ot=({onPour:e,onPourCancel:t,pourTarget:s,strategy:r=re})=>{const o=n.useCallback(()=>{Q.debug(`[${r==null?void 0:r.name}] - Pour initiated for pour target ${s==null?void 0:s.id}.`),r==null||r.initiate(s),e==null||e()},[e,s,r]),a=n.useCallback(()=>{var m;Q.debug(`[${r==null?void 0:r.name}] - Pour initiate ended called for pour target ${s==null?void 0:s.id}.`),(m=r==null?void 0:r.initiateEnded)==null||m.call(r,s),t==null||t()},[t,s,r]),c=n.useCallback(()=>{Q.debug(`Force cancelling pour for pour target ${s==null?void 0:s.id}.`),s==null||s.cancelPour(),t==null||t()},[t,s]);return{handlers:u.usePressGesture({onPressed:o,onRelease:a}).dom,cancel:c,status:s}},N=u.KosLog.createLogger({name:"TapOrHoldIntentStrategy",group:"kos-hooks"});class nt{constructor(t){j(this,"intent");j(this,"name","TapOrHoldIntentStrategy");j(this,"isHold",!1);j(this,"disposer",null);this.intent=t}initiate(t,s){if(this.disposer=setTimeout(()=>{this.isHold=!0},250),t!=null&&t.isPouring&&!this.isHold){N.debug("additional tap detected. cancelling pour"),t.cancelPour();return}if(!(t!=null&&t.canPour)){N.debug(`${t==null?void 0:t.id} cannot pour. Returning early.`);return}s?(N.debug(`performing intent: ${s}`),t==null||t.performIntent(s)):N.debug("no intent provided. Returning early.")}initiateEnded(t){if(this.disposer&&clearTimeout(this.disposer),this.disposer=null,!this.isHold){N.debug("Tap detected. don't cancel and return.");return}t==null||t.cancelPour()}}const _=u.KosLog.createLogger({name:"TapToPourIntentStrategy",group:"kos-hooks"}),it={name:"TapToPourIntentStrategy",initiate(e,t){if(e!=null&&e.isPouring){_.debug(`Nozzle ${e==null?void 0:e.id} is already pouring. cancelling pour`),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}`),e==null||e.performIntent(t)):_.debug("no intent provided. Returning early.")},initiateEnded(e){}},de=u.KosLog.createLogger({name:"HoldToPourStrategy",group:"kos-hooks"}),at={name:"TapToPourStrategy",initiate(e){if(e!=null&&e.isPouring){de.debug(`Nozzle ${e==null?void 0:e.id} is already pouring. cancelling pour`),e.cancelPour();return}if(!(e!=null&&e.canPour)){de.debug(`Nozzle ${e==null?void 0:e.id} cannot pour. Returning early.`);return}e==null||e.pour()},initiateEnded(e){}},Pe=(e,t)=>{const s=e,r=u.useKosModel({modelId:s,modelType:v.GenericPour.type,options:{servicePath:t}});return n.useEffect(()=>{var o,a;(o=r==null?void 0:r.model)!=null&&o.servicePath&&t!=((a=r==null?void 0:r.model)==null?void 0:a.servicePath)&&u.kosAction(()=>{var c;(c=r==null?void 0:r.model)!=null&&c.servicePath&&(r.model.servicePath=t)})},[r==null?void 0:r.model,t]),r};function ut(e){return t=>{const{model:s,status:r,KosModelLoader:o}=Pe(t.id,t.servicePath);return d.jsx(o,{...r,children:d.jsx(e,{...t,genericPour:s})})}}const ge=n.createContext(void 0),ct=({children:e})=>{const{model:t,ready:s}=Z(),r=n.useMemo(()=>s&&t?{model:t}:{},[s,t]);return d.jsx(ge.Provider,{value:r,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:s}=z(),r=n.useMemo(()=>s&&t?{model:t}:{},[s,t]);return d.jsx(ke.Provider,{value:r,children:e})},bt=()=>{const e=n.useContext(ke);if(!e)throw new Error("useAvailabilityContext must be used within a AvailabilityProvider");return e},Te=n.createContext(void 0),mt=({children:e,id:t})=>{const{model:s,ready:r}=ee(t),o=n.useMemo(()=>r&&s?{model:s}:{},[r,s]);return d.jsx(Te.Provider,{value:o,children:e})},pt=()=>{const e=n.useContext(Te);if(!e)throw new Error("useBoardContext must be used within a BoardProvider");return e},Ae=n.createContext(void 0),ht=({children:e})=>{const{model:t,ready:s}=te(),r=n.useMemo(()=>s&&t?{model:t}:{},[s,t]);return d.jsx(Ae.Provider,{value:r,children:e})},ft=()=>{const e=n.useContext(Ae);if(!e)throw new Error("useBoardContainerContext must be used within a BoardContainerProvider");return e},Ie=n.createContext(void 0),we=({children:e})=>{const{model:t,ready:s}=oe(),r=n.useMemo(()=>{if(s&&t){const a=t.nozzlePaths;return{model:t,nozzlePaths:a}}return{}},[s,t]),o=s&&t?e:null;return d.jsx(Ie.Provider,{value:r,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 s=n.useContext(e);if(s===void 0)throw new Error("useDispenseKitContext must be used within a Provider");return s},e.Provider]}function Ee({children:e,provider:t,props:s}){const r=ve(s);return d.jsx(t,{value:r,children:e({})})}function Ct({children:e,provider:t,props:s}){const{nozzlePaths:r}=Ke();return(r==null?void 0:r.map(a=>d.jsx(be,{path:a,children:d.jsx(Ee,{provider:t,props:s,children:e})},a)))||[]}function Be({provider:e,props:t}){return({children:s})=>e?d.jsx(we,{children:d.jsx(Ct,{provider:e,props:t,children:s})}):null}function xt(e){const[t,s]=vt();return[t,Be({provider:s,props:e})]}const $e=n.createContext(void 0),Pt=({children:e,id:t})=>{const{model:s,ready:r}=ne(t||""),o=n.useMemo(()=>r&&s?{model:s}:{},[r,s]);return d.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:s}=ie(),r=n.useMemo(()=>s&&t?{model:t}:{},[s,t]);return d.jsx(Se.Provider,{value:r,children:e})},Tt=()=>{const e=n.useContext(Se);if(!e)throw new Error("useHolderContainerContext must be used within a HolderContainerProvider");return e},Me=n.createContext(void 0),At=({children:e})=>{const{model:t,ready:s}=ae(),r=n.useMemo(()=>s&&t?{model:t}:{},[s,t]);return d.jsx(Me.Provider,{value:r,children:e})},It=()=>{const e=n.useContext(Me);if(!e)throw new Error("useIngredientContext must be used within a IngredientProvider");return e},He=n.createContext(void 0),wt=({children:e})=>{const{model:t,ready:s}=ue(),r=n.useMemo(()=>s&&t?{model:t}:{},[s,t]);return d.jsx(He.Provider,{value:r,children:e})},Kt=()=>{const e=n.useContext(He);if(!e)throw new Error("useIngredientContainerContext must be used within a IngredientContainerProvider");return e},Et=()=>{const e=v.Pump.type;return u.useKosModel({modelId:e,modelType:v.Pump.type,options:{}})},Le=n.createContext(void 0),Bt=({children:e})=>{const{model:t,ready:s}=Et(),r=n.useMemo(()=>s&&t?{model:t}:{},[s,t]);return d.jsx(Le.Provider,{value:r,children:e})},$t=()=>{const e=n.useContext(Le);if(!e)throw new Error("usePumpContext must be used within a PumpProvider");return e};exports.AssemblyProvider=ct;exports.AvailabilityProvider=lt;exports.BoardContainerProvider=ht;exports.BoardProvider=mt;exports.CuiKit=Be;exports.CuiKitWrapper=Ee;exports.DISPENSE_GROUP_BEVERAGE=y;exports.DISPENSE_GROUP_BRAND=M;exports.DISPENSE_GROUP_FLAVOR=H;exports.DeviceAssemblyProvider=we;exports.HoldToPourIntentStrategy=xe;exports.HoldToPourStrategy=re;exports.HolderContainerProvider=kt;exports.HolderProvider=Pt;exports.IngredientContainerProvider=wt;exports.IngredientProvider=At;exports.NozzleProvider=be;exports.PumpProvider=Bt;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=ft;exports.useBoardContext=pt;exports.useBrands=pe;exports.useCuiKit=ve;exports.useCuiKitTimers=X;exports.useDefaultCuiKitLifecycle=Qe;exports.useDeviceAssembly=oe;exports.useDeviceAssemblyContext=Ke;exports.useDispenseLifecycle=Ce;exports.useFlavors=fe;exports.useGenericPour=Pe;exports.useHolder=ne;exports.useHolderContainer=ie;exports.useHolderContainerContext=Tt;exports.useHolderContext=gt;exports.useIngredient=ae;exports.useIngredientContainer=ue;exports.useIngredientContainerContext=Kt;exports.useIngredientContext=It;exports.useIngredientPour=et;exports.useNozzle=se;exports.useNozzleContext=A;exports.useNozzlePour=he;exports.usePourTarget=ot;exports.usePumpContext=$t;exports.withAssembly=_e;exports.withBeverage=Ue;exports.withBoard=Ve;exports.withBoardContainer=qe;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-B2FPLQDA.cjs.map
|