@kosdev-code/kos-dispense-sdk 2.0.32 → 2.0.34

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.
Files changed (34) hide show
  1. package/dispense-registration-manager-BZeOXyYn.cjs +2 -0
  2. package/dispense-registration-manager-BZeOXyYn.cjs.map +1 -0
  3. package/{dispense-registration-manager-CKFF29mO.js → dispense-registration-manager-eOOE05xT.js} +333 -328
  4. package/dispense-registration-manager-eOOE05xT.js.map +1 -0
  5. package/{extension-utils-Bb22_AzV.js → extension-utils-B9gziKDQ.js} +69 -62
  6. package/extension-utils-B9gziKDQ.js.map +1 -0
  7. package/{extension-utils-CScCluY5.cjs → extension-utils-DcOOx69a.cjs} +2 -2
  8. package/extension-utils-DcOOx69a.cjs.map +1 -0
  9. package/index.cjs +1 -1
  10. package/index.js +87 -85
  11. package/models/constants/constants.d.ts +2 -1
  12. package/models/constants/constants.d.ts.map +1 -1
  13. package/models/models/assembly/assembly-model.d.ts +1 -0
  14. package/models/models/assembly/assembly-model.d.ts.map +1 -1
  15. package/models/models/assembly/index.d.ts +2 -1
  16. package/models/models/assembly/index.d.ts.map +1 -1
  17. package/models/utils/extension-utils.d.ts +3 -2
  18. package/models/utils/extension-utils.d.ts.map +1 -1
  19. package/models/utils/service.d.ts +5 -1
  20. package/models/utils/service.d.ts.map +1 -1
  21. package/models.cjs +1 -1
  22. package/models.js +28 -26
  23. package/package.json +3 -3
  24. package/{pump-provider-CP6xxU4h.cjs → pump-provider-Z1-LKiNf.cjs} +2 -2
  25. package/{pump-provider-CP6xxU4h.cjs.map → pump-provider-Z1-LKiNf.cjs.map} +1 -1
  26. package/{pump-provider-jdIoS5JD.js → pump-provider-vUHjuUqW.js} +2 -2
  27. package/{pump-provider-jdIoS5JD.js.map → pump-provider-vUHjuUqW.js.map} +1 -1
  28. package/ui.cjs +1 -1
  29. package/ui.js +2 -2
  30. package/dispense-registration-manager-CKFF29mO.js.map +0 -1
  31. package/dispense-registration-manager-CjKpNrUy.cjs +0 -2
  32. package/dispense-registration-manager-CjKpNrUy.cjs.map +0 -1
  33. package/extension-utils-Bb22_AzV.js.map +0 -1
  34. package/extension-utils-CScCluY5.cjs.map +0 -1
@@ -6,6 +6,7 @@ import { IKosModelLogger, KosContext, KosContextLogger, KosCreationContext } fro
6
6
 
7
7
  export declare const MODEL_TYPE = "assembly-model";
8
8
  export declare const CONTEXT_ASSEMBLY_DATA = "assembly-data";
9
+ export declare const CONTEXT_ASSEMBLY_RAW_DATA = "assembly-raw-data";
9
10
  export declare class AssemblyModelImpl<AssemblyExt extends object = any, HolderExt extends object = any> implements AssemblyModel<AssemblyExt>, IKosModelLogger {
10
11
  id: string;
11
12
  private _nozzlePaths;
@@ -1 +1 @@
1
- {"version":3,"file":"assembly-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/assembly/assembly-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAYjC,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG9D,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAK7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAMzC,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AACrD,qBACa,iBAAiB,CAC5B,WAAW,SAAS,MAAM,GAAG,GAAG,EAChC,SAAS,SAAS,MAAM,GAAG,GAAG,CAC9B,YAAW,aAAa,CAAC,WAAW,CAAC,EAAE,eAAe;IAEtD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,YAAY,CAAqB;IAIzC,OAAO,CAAC,gBAAgB,CAAyB;IAEvC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,aAAa,CAAqB;IACpD,MAAM,EAAE,gBAAgB,CAAC;gBAEvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,kBAAkB;IAS7B,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAI5C,IAAI,UAAU,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAEzC;IAED,IAAI,YAAY,IAAI,MAAM,EAAE,CAE3B;IAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IACD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE;IAI1D,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE;IAIhE;;;;;OAKG;IACH,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAEpD;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAE9B;IAIK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK;IAIL,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA4E/C"}
1
+ {"version":3,"file":"assembly-model.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/assembly/assembly-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAcjC,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG9D,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAK7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAMzC,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AACrD,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAC7D,qBACa,iBAAiB,CAC5B,WAAW,SAAS,MAAM,GAAG,GAAG,EAChC,SAAS,SAAS,MAAM,GAAG,GAAG,CAC9B,YAAW,aAAa,CAAC,WAAW,CAAC,EAAE,eAAe;IAEtD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,YAAY,CAAqB;IAIzC,OAAO,CAAC,gBAAgB,CAAyB;IAEvC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,aAAa,CAAqB;IACpD,MAAM,EAAE,gBAAgB,CAAC;gBAEvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,kBAAkB;IAS7B,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAI5C,IAAI,UAAU,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAEzC;IAED,IAAI,YAAY,IAAI,MAAM,EAAE,CAE3B;IAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAE1B;IACD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE;IAI1D,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE;IAIhE;;;;;OAKG;IACH,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAEpD;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAE9B;IAIK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK;IAQL,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA6E/C"}
@@ -1,4 +1,5 @@
1
+ export { CONTEXT_ASSEMBLY_DATA, CONTEXT_ASSEMBLY_RAW_DATA, } from './assembly-model';
1
2
  export { Assembly } from './assembly-registration';
2
- export type * from './types';
3
3
  export * as AssemblyServices from './services';
4
+ export type * from './types';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/assembly/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,mBAAmB,SAAS,CAAC;AAC7B,OAAO,KAAK,gBAAgB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../packages/sdk/kos-dispense-sdk/src/models/models/assembly/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,KAAK,gBAAgB,MAAM,YAAY,CAAC;AAC/C,mBAAmB,SAAS,CAAC"}
@@ -3,8 +3,8 @@ import { BeverageResponse } from '../models/nozzle/services';
3
3
  import { IngredientResponse } from '../models/ingredient/services';
4
4
  import { HolderModel } from '../models/holder/types';
5
5
  import { HolderResponse } from '../models/holder/services';
6
- import { AssemblyTypes } from '../models';
7
- import { CoreExtensionManager, DataLoader, DataMapper, IndexExtension, PropertyMapper } from '@kosdev-code/kos-ui-sdk';
6
+ import { AssemblyTypes, AssemblyModel } from '../models';
7
+ import { CoreExtensionManager, DataLoader, DataMapper, IndexExtension, PropertyMapper, FlagResolver } from '@kosdev-code/kos-ui-sdk';
8
8
 
9
9
  export type IngredientDataMapper<AdditionalData extends object = Record<string, any>> = DataMapper<IngredientResponse, AdditionalData, any>;
10
10
  /**
@@ -248,6 +248,7 @@ export declare class DispenseExtensionManager {
248
248
  registerAssemblyDataMapper(assemblyDataMapper: AssemblyMapper): this;
249
249
  registerBoardIndex(boardIndex: IndexExtension): this;
250
250
  registerBoardDataMapper(boardDataMapper: BoardDataMapper<any, any>): this;
251
+ registerAssemblyFeatureFlagResolver(assemblyFeatureFlagResolver: FlagResolver<AssemblyModel>): this;
251
252
  }
252
253
  /**
253
254
  * The KosExtensionManager provides access to the extension points that are provided in the SDK for Dispense applications.
@@ -1 +1 @@
1
- {"version":3,"file":"extension-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-dispense-sdk/src/models/utils/extension-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-dispense-sdk/src/models/utils/extension-utils.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,11 @@ export declare const api: {
57
57
  } | undefined) => Promise<import('@kosdev-code/kos-ui-sdk').ServiceResponse<ClientResponse<paths, K_2, "put">>>;
58
58
  delete: <K_3 extends "/api/ext/dispense/nozzle/nozzle/pipeline/beverage/select" | "/api/app/kosdev.ddk/copyLogs/{id}" | "/api/ext/dispense/metrics/{name}" | "/api/ext/dispense/metrics/{nozzle}/{name}" | "/api/ext/dispense/assignments/{holderPath}" | "/api/kos/nodeMgr/node/{nodeId}/blockedManifests" | "/api/kos/nodeMgr/node/{nodeId}/blockedManifests/{manifestId}" | "/api/kos/nodeMgr/blockedManifests/{manifestId}" | "/api/kos/criticalData/data/{name}" | "/api/app/tccc.fits/medusa/profiles/{profileId}" | "/api/app/tccc.fits/medusa/profiles/{profileId}/recipes/{name}" | "/api/app/tccc.fits/medusa/profiles/{profileId}/tests/{testId}" | "/api/app/tccc.fits/medusa/profiles/{profileId}/builder/blocks" | "/api/app/tccc.fits/medusa/profiles/{profileId}/builder/bevs/{bevId}" | "/api/app/tccc.fits/medusa/profiles/{profileId}/results/{resultsId}" | "/api/app/tccc.fits/scales/{serialNum}" | "/api/app/tccc.fits/session/data/{key}" | "/api/kos/log/overrides">(endpoint: K_3, params?: (paths[K_3]["delete"] extends {
59
59
  parameters: infer P_3;
60
- } ? P_3 : never) | undefined, options?: {
60
+ } ? P_3 : never) | undefined, body?: (paths[K_3]["put"] extends {
61
+ requestBody: {
62
+ content: infer B_1;
63
+ };
64
+ } ? B_1[keyof B_1] : never) | undefined, options?: {
61
65
  ordered?: boolean | undefined;
62
66
  tracker?: string | undefined;
63
67
  timeout?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-dispense-sdk/src/models/utils/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwB,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAE/E,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../../packages/sdk/kos-dispense-sdk/src/models/utils/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAwB,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAE/E,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,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-CjKpNrUy.cjs"),n=require("./extension-utils-CScCluY5.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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./dispense-registration-manager-BZeOXyYn.cjs"),n=require("./extension-utils-DcOOx69a.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.CONTEXT_ASSEMBLY_DATA=e.CONTEXT_ASSEMBLY_DATA;exports.CONTEXT_ASSEMBLY_RAW_DATA=e.CONTEXT_ASSEMBLY_RAW_DATA;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,40 +1,42 @@
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-CKFF29mO.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-Bb22_AzV.js";
1
+ import { A as o, b as i, e as n, d as t, B as l, C as d, a as A, f as p, D as m, E as D, G as T, H as c, g, I as S, h as u, K as C, N as E, l as P, P as y, i as I, j as M, T as _, c as v, k as B, r as N } from "./dispense-registration-manager-eOOE05xT.js";
2
+ import { i as x, f as K, D as O, a as f, b as z, c as G, K as H, d as L, e as R, g as k } from "./extension-utils-B9gziKDQ.js";
3
3
  import "@kosdev-code/kos-ui-sdk";
4
4
  import "react";
5
5
  export {
6
6
  o as Assembly,
7
- K as AssemblyServices,
8
- N as AssemblyTypes,
7
+ x as AssemblyServices,
8
+ K as AssemblyTypes,
9
9
  i as Availability,
10
10
  n as Board,
11
11
  t as BoardContainer,
12
12
  l as BoardContainerModel,
13
- d as DeviceAssembly,
14
- T as DispenseExtensionManager,
15
- p as DispenseModelType,
16
- m as ExtensionType,
17
- c as GenericPour,
13
+ d as CONTEXT_ASSEMBLY_DATA,
14
+ A as CONTEXT_ASSEMBLY_RAW_DATA,
15
+ p as DeviceAssembly,
16
+ O as DispenseExtensionManager,
17
+ m as DispenseModelType,
18
+ D as ExtensionType,
19
+ T as GenericPour,
18
20
  f as GenericPourServices,
19
- g as Holder,
20
- u as HolderContainer,
21
+ c as Holder,
22
+ g as HolderContainer,
21
23
  z as HolderServices,
22
- D as Ingredient,
23
- P as IngredientContainer,
24
+ S as Ingredient,
25
+ u as IngredientContainer,
24
26
  G as IngredientServices,
25
27
  H as KosExtensionManager,
26
- y as KosModelRegistry,
27
- I as Nozzle,
28
- O as NozzleServices,
29
- v as PourState,
30
- A as Pump,
31
- b as PumpContainer,
32
- C as PumpIndex,
33
- _ as PumpServices,
34
- M as TOPIC_BOARD_LINKED,
35
- S as TOPIC_BOARD_UNLINKED,
36
- R as getFuelGaugeValue,
37
- x as kosModels,
38
- B as registerDispenseModels
28
+ C as KosModelRegistry,
29
+ E as Nozzle,
30
+ L as NozzleServices,
31
+ P as PourState,
32
+ y as Pump,
33
+ I as PumpContainer,
34
+ M as PumpIndex,
35
+ R as PumpServices,
36
+ _ as TOPIC_BOARD_LINKED,
37
+ v as TOPIC_BOARD_UNLINKED,
38
+ k as getFuelGaugeValue,
39
+ B as kosModels,
40
+ N as registerDispenseModels
39
41
  };
40
42
  //# sourceMappingURL=models.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kosdev-code/kos-dispense-sdk",
3
- "version": "2.0.32",
3
+ "version": "2.0.34",
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.32"
26
+ "@kosdev-code/kos-ui-sdk": "~2.0.34"
27
27
  },
28
28
  "publishConfig": {
29
29
  "registry": "https://registry.npmjs.org/"
30
30
  },
31
31
  "kos": {
32
32
  "build": {
33
- "gitHash": "ea8751ddd6a1c43f56f22bab3bf99a0e3bd3f824"
33
+ "gitHash": "abc125566178e7aa50012d17d649f46b4b511cc4"
34
34
  }
35
35
  }
36
36
  }
@@ -1,2 +1,2 @@
1
- "use strict";var We=Object.defineProperty;var Je=(e,t,r)=>t in e?We(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var y=(e,t,r)=>(Je(e,typeof t!="symbol"?t+"":t,r),r);const b=require("@emotion/react/jsx-runtime"),u=require("@kosdev-code/kos-ui-sdk"),o=require("react"),g=require("./dispense-registration-manager-CjKpNrUy.cjs"),ae=()=>{const e=g.Assembly.type;return u.useKosModel({modelId:e,modelType:g.Assembly.type,options:{}})};function Qe(e){return t=>{const{model:r,status:n,KosModelLoader:s}=ae();return b.jsx(s,{...n,children:b.jsx(e,{...t,assembly:r})})}}const ue=()=>{const e=g.Availability.type;return u.useKosModel({modelId:e,modelType:g.Availability.type,options:{}})};function Xe(e){return t=>{const{model:r,status:n,KosModelLoader:s}=ue();return b.jsx(s,{...n,children:b.jsx(e,{...t,beverage:r})})}}const ce=e=>{const t=e;return u.useKosModel({modelId:t,modelType:g.Board.type,options:{}})};function Ze(e){return t=>r=>{const{model:n,status:s,KosModelLoader:i}=ce(t);return b.jsx(i,{...s,children:b.jsx(e,{...r,board:n})})}}const de=()=>{const e=g.BoardContainer.type;return u.useKosModel({modelId:e,modelType:g.BoardContainer.type,options:{}})};function ze(e){return t=>{const{model:r,status:n,KosModelLoader:s}=de();return b.jsx(s,{...n,children:b.jsx(e,{...t,boardContainer:r})})}}const le=e=>{const t=e;return u.useKosModel({modelId:t,modelType:g.Nozzle.type,options:{path:e}})},ke=o.createContext(void 0),Te=({children:e,path:t})=>{const{model:r,ready:n}=le(t),s=o.useMemo(()=>n&&r?{model:r}:{},[n,r]);return b.jsx(ke.Provider,{value:s,children:e})},A=()=>{const e=o.useContext(ke);if(!e)throw new Error("useNozzleContext must be used within a NozzleProvider");return e},Ie=({onBeverageSelected:e,onClearBeverage:t,companionType:r})=>{const{model:n}=A(),[s,i]=o.useState([]),[c,l]=o.useState(null),h=o.useMemo(()=>r?s.map(d=>u.getKosCompanionModel(d,r)):[],[s,r]),f=o.useCallback(async d=>{l(d),await(n==null?void 0:n.setSelectedPourable({beverage:d})),e==null||e(d)},[n,e]),m=o.useCallback(async()=>{l(null),await(n==null?void 0:n.setSelectedPourable({beverage:void 0})),t==null||t()},[n,t]);return o.useEffect(()=>{const d=u.kosAutoEffect(()=>{if(!n)return;const C=n.selectedBrand;if(!C){const a=n.getGroupAvailabilityItems("beverages").filter(x=>x.visible);i(a??[]);return}const v=n.getAvailabilityByParent(C.id).filter(a=>a.visible);i(v??[])});return()=>{d()}},[n]),{beverages:s,beverageCompanions:h,selectBeverage:f,selectedBeverage:c,clearBeverage:m}},Ae=({onBrandSelected:e,onBrandCleared:t,companionType:r})=>{const{model:n}=A(),[s,i]=o.useState(null),[c,l]=o.useState([]),h=o.useMemo(()=>r?c.map(d=>u.getKosCompanionModel(d,r)):[],[c,r]),f=o.useCallback(async d=>{i(d),n==null||n.setSelectedBrand(d),e==null||e(d)},[n,e]),m=o.useCallback(()=>{i(null),n==null||n.setSelectedBrand(void 0),t==null||t()},[n,t]);return o.useEffect(()=>{const d=u.kosAutoEffect(()=>{n&&l(n.visibleBrands)});return()=>{d()}},[n]),{brands:c,brandCompanions:h,selectedBrand:s,selectBrand:f,clearBrand:m}},et=u.KosLog.createLogger({name:"HoldToPourStrategy",group:"kos-hooks"}),be={name:"HoldToPourStrategy",async initiate(e){if(!(e!=null&&e.canPour)){et.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())}},F=u.KosLog.createLogger({name:"useNozzlePour",group:"kos-hooks"}),$e=({onPour:e,onPourCancel:t,onBeforePour:r,onBeforePourRejected:n,strategy:s=be})=>{const{model:i}=A(),c=o.useCallback(async()=>{(r?await(r==null?void 0:r()):!0)?(F.debug(`[${s==null?void 0:s.name}] - Pour initiated for nozzle ${i==null?void 0:i.id}.`),s==null||s.initiate(i),e==null||e()):(F.debug(`[${s==null?void 0:s.name}] - Did not pass onBeforePour gate for nozzle ${i==null?void 0:i.id}. Cancelling pour.`),n==null||n())},[e,i,s,r,t]),l=o.useCallback(()=>{var m;F.debug(`[${s==null?void 0:s.name}] - Pour initiate ended called for nozzle ${i==null?void 0:i.id}.`),(m=s==null?void 0:s.initiateEnded)==null||m.call(s,i),t==null||t()},[t,i,s]),h=o.useCallback(()=>{F.debug(`Force cancelling pour for nozzle ${i==null?void 0:i.id}.`),i==null||i.cancelPour(),t==null||t()},[t,i]);return{handlers:u.usePressGesture({onPressed:c,onRelease:l}).dom,cancel:h,status:i}},Ee=({onFlavorSelected:e,onFlavorCleared:t,companionType:r})=>{const{model:n}=A(),s=o.useMemo(()=>(n==null?void 0:n.getGroupAvailabilityItems("flavors").filter(m=>m.visible))??[],[n]),i=o.useMemo(()=>r?s.map(m=>u.getKosCompanionModel(m,r)):[],[s,r]),[c,l]=o.useState([]),h=o.useCallback(async m=>{if(l(d=>d!=null&&d.includes(m)?[...d.filter(C=>C!==m)]:[...d??[],m]),n!=null&&n.selectedPourable){const{beverage:d}=n.selectedPourable;await n.setSelectedPourable({beverage:d,additional:c??[]})}e==null||e(m,c??[])},[n,e,c]),f=o.useCallback(async()=>{if(l([]),n!=null&&n.selectedPourable){const{beverage:m}=n.selectedPourable;n.setSelectedPourable({beverage:m}),t==null||t()}},[n,t]);return{flavors:s,flavorCompanions:i,selectFlavor:h,selectedFlavors:c,clearFlavors:f}},j="brands",O="beverages",H="flavors",B=u.KosLog.createLogger({name:"use-cui-kit"}),Ke=({initialGroup:e=j,options:t={}})=>{var G,_,U;const[r,n]=o.useState(e),{model:s}=A(),i=o.useRef([]),c=o.useCallback(p=>{n(H);const I=`/kos/dispense/${s==null?void 0:s.path}/brand/selected/`;u.EventBus.publish(I,p)},[s==null?void 0:s.path]),l=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/brand/cleared/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),h=o.useCallback(p=>{n(H);const I=`/kos/dispense/${s==null?void 0:s.path}/beverage/selected/`;u.EventBus.publish(I,p)},[s==null?void 0:s.path]),f=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/beverage/cleared/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),m=o.useCallback(p=>{const I=`/kos/dispense/${s==null?void 0:s.path}/flavor/selected/`;u.EventBus.publish(I,p)},[s==null?void 0:s.path]),d=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/flavor/cleared/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),C=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/pour/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),v=o.useCallback(async()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/pre/pour/`;return u.EventBus.publish(p,{}),await(P==null?void 0:P())||!0},[s==null?void 0:s.path]),a=o.useCallback(async()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/pre/pour/rejected/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),x=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/pour/cancel/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),{brands:L,selectBrand:T,selectedBrand:$,clearBrand:E,brandCompanions:Y}=Ae({companionType:(G=t.companionTypes)==null?void 0:G.brand,onBrandSelected:c,onBrandCleared:l}),{beverages:q,selectBeverage:W,selectedBeverage:J,clearBeverage:w,beverageCompanions:S}=Ie({companionType:(_=t.companionTypes)==null?void 0:_.beverage,onBeverageSelected:h,onClearBeverage:f}),{clearFlavors:Q,flavors:N,selectFlavor:k,selectedFlavors:K,flavorCompanions:X}=Ee({companionType:(U=t.companionTypes)==null?void 0:U.flavor,onFlavorSelected:m,onFlavorCleared:d}),[P,M]=o.useState(),Z=o.useCallback(p=>{M(()=>p)},[]),z=$e({onPour:C,onPourCancel:x,onBeforePour:v,onBeforePourRejected:a}),ee=o.useCallback(()=>{switch(B.debug(`Navigating back from group: ${r}`),r){case j:w(),E();break;case O:case H:n(e),w(),E();break}},[w,E,r,e]),te=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/home/`;u.EventBus.publish(p,{}),n(e),e===j&&(w(),E()),e===O&&w()},[w,E,e]),se=o.useCallback(()=>{if(i.current.length===0){B.debug("No timers to pause.");return}B.debug(`Pausing ${i.current.length} timers.`),i.current.forEach(p=>{B.debug(`Pausing timer with id ${p.id}.`),p.pause()})},[]),re=o.useCallback(()=>{if(i.current.length===0){B.debug("No timers to restart.");return}B.debug(`Restarting ${i.current.length} timers.`),i.current.forEach(p=>{B.debug(`Restarting timer with id ${p.id}.`),p.restart()})},[]);return{timers:{add:o.useCallback(p=>{if(p){if(i.current.some(I=>I.id===p.id)){B.debug(`Timer with id ${p.id} already exists.`);return}i.current.push(p)}},[]),pause:se,restart:re},nav:{currentGroup:r,back:ee,home:te},pour:z,updateOnBeforePour:Z,selections:{[j]:$,[O]:J,[H]:K},[j]:{models:L,companions:Y,clear:E,handlers:{onSelected:T}},[O]:{models:q,companions:S,clear:w,handlers:{onSelected:W}},[H]:{models:N,companions:X,clear:Q,handlers:{onSelected:k}}}},tt=e=>{const{model:t}=A(),[r,n]=o.useState(null),{onAmbientTimer:s,onAttractTimer:i,onResetAttractTimer:c,onResumeAttractTimer:l,defaultAttractTime:h,defaultAmbientTime:f}=e,m=o.useCallback(()=>{s&&(u.KosLog.info("Ambient timer expired. Calling callback"),s==null||s())},[s]),d=o.useCallback(()=>{i&&(u.KosLog.info("Attract timer expired. Calling callback"),i==null||i())},[i]),C=o.useCallback(()=>{r&&(r.restart(),c==null||c())},[r,c]),v=o.useCallback(()=>{r&&(r.reset(),c==null||c())},[r,c]),a=o.useCallback(()=>{r&&(r.pause(),l==null||l())},[r,l]);return o.useEffect(()=>{if(t&&h){u.KosLog.info("Nozzle is available. Creating timers");const x=u.TimerManager.createTimer("attract-timer-"+t.path,h);return h&&(x==null||x.addTimeoutAction({name:"attract-timer",remainingTime:0,action:d})),f&&(x==null||x.addTimeoutAction({name:"ambient-timer",remainingTime:f,action:m})),h&&(x==null||x.start()),n(x??null),()=>{x==null||x.reset(),n(null)}}return()=>{u.KosLog.info("Nozzle is not available. No timers to clear")}},[f,h,m,d,t]),{attractTimer:r,restart:C,pause:v,resume:a}},st=(e,t)=>{if(t)return u.EventBus.subscribe(e,t).unsubscribe},Se=({onInit:e,onBrandSelected:t,onBrandCleared:r,onBeverageCleared:n,onBeverageSelected:s,onFlavorCleared:i,onFlavorSelected:c,onReturnToHome:l,onPour:h,onPourCancel:f,onBeforePourRejected:m,onAmbientTimer:d,onAttractTimer:C,onResumeAttractTimer:v})=>{const{model:a}=A();o.useEffect(()=>{const L=[{topic:`/kos/dispense/${a==null?void 0:a.path}/brand/selected/`,callback:t},{topic:`/kos/dispense/${a==null?void 0:a.path}/brand/cleared/`,callback:r},{topic:`/kos/dispense/${a==null?void 0:a.path}/beverage/selected/`,callback:s},{topic:`/kos/dispense/${a==null?void 0:a.path}/beverage/cleared/`,callback:n},{topic:`/kos/dispense/${a==null?void 0:a.path}/flavor/selected/`,callback:c},{topic:`/kos/dispense/${a==null?void 0:a.path}/flavor/cleared/`,callback:i},{topic:`/kos/dispense/${a==null?void 0:a.path}/pour/`,callback:h},{topic:`/kos/dispense/${a==null?void 0:a.path}/pour/cancel/`,callback:f},{topic:`/kos/dispense/${a==null?void 0:a.path}/pre/pour/rejected/`,callback:m},{topic:`/kos/dispense/${a==null?void 0:a.path}/ambient/start/`,callback:d},{topic:`/kos/dispense/${a==null?void 0:a.path}/attract/start/`,callback:C},{topic:`/kos/dispense/${a==null?void 0:a.path}/attract/resume/`,callback:v},{topic:`/kos/dispense/${a==null?void 0:a.path}/init/`,callback:e},{topic:`/kos/dispense/${a==null?void 0:a.path}/home/`,callback:l}].map(({topic:T,callback:$})=>st(T,$));return()=>{L.forEach(T=>T==null?void 0:T())}},[a==null?void 0:a.path,d,C,n,s,r,t,i,c,h,f,v,e,l])},ie=e=>{const{model:t}=A(),[r,n]=o.useState(null),{onAreYouThereTimer:s,onIdleTimer:i,onResetIdleTimer:c,defaultAreYouThereTime:l=10,defaultIdleTime:h=20}=e,f=o.useCallback(()=>{s&&(u.KosLog.info("Are you there timer expired. Calling callback"),s==null||s())},[s]),m=o.useCallback(()=>{i&&(u.KosLog.info("Idle timer expired. Calling callback"),i==null||i())},[i]),d=o.useCallback(()=>{r&&(r.restart(),c==null||c())},[r,c]),C=o.useCallback(()=>{r&&(r.reset(),c==null||c())},[r,c]);return o.useEffect(()=>{if(t){u.KosLog.info("Nozzle is available. Creating timers");const v=u.TimerManager.createTimer(`${e.prefix??""}idle-timer-${t.path}`,h);return v==null||v.addTimeoutAction({name:"idle-timer",remainingTime:0,action:m}),v==null||v.addTimeoutAction({name:"are-you-there-timer",remainingTime:l,action:f}),n(v??null),()=>{v==null||v.reset(),n(null)}}return()=>{u.KosLog.info("Nozzle is not available. No timers to clear")}},[l,h,f,m,t,e.prefix]),{idleTimer:r,restart:d,pause:C}},rt=({kit:e,inactivity:t,pour:r,screens:n})=>{var I,xe,ge,Pe;const[s,i]=o.useState(!1),[c,l]=o.useState(!1),[h,f]=o.useState(!1),{model:m}=A(),[d,C]=o.useState(!1),v=(t==null?void 0:t.idleTimeout)??15,a=(t==null?void 0:t.areYouThereTimeoutOffset)??10,x=(r==null?void 0:r.idleTimeout)??(t==null?void 0:t.idleTimeout)??10,L=(r==null?void 0:r.areYouThereTimeoutOffset)??(t==null?void 0:t.areYouThereTimeoutOffset)??5,T=n==null?void 0:n.ambientTimeoutOffset,$=n==null?void 0:n.attractTimeout,E=o.useCallback(()=>{i(!0)},[]),Y=o.useCallback(()=>{i(!1),e==null||e.nav.home()},[(I=e==null?void 0:e.nav)==null?void 0:I.home]),q=o.useCallback(()=>{T&&(l(!0),f(!1))},[T]),W=o.useCallback(()=>{$&&(f(!0),l(!1))},[$]),J=o.useCallback(()=>{$&&(f(!1),l(!1),e==null||e.nav.home())},[e==null?void 0:e.nav,$]),{pause:w,restart:S,resume:Q,attractTimer:N}=tt({defaultAmbientTime:T,defaultAttractTime:$,onAmbientTimer:q,onAttractTimer:W,onResumeAttractTimer:J});(xe=e==null?void 0:e.timers)==null||xe.add(N);const{pause:k,restart:K,idleTimer:X}=ie({defaultAreYouThereTime:a,defaultIdleTime:v,onAreYouThereTimer:E,onIdleTimer:Y});(ge=e==null?void 0:e.timers)==null||ge.add(X);const{pause:P,restart:M,idleTimer:Z}=ie({defaultAreYouThereTime:L,defaultIdleTime:x,onAreYouThereTimer:E,onIdleTimer:Y,prefix:"pour-"});(Pe=e==null?void 0:e.timers)==null||Pe.add(Z);const z=o.useCallback(()=>{C(!1),P(),k()},[k,P]),ee=o.useCallback(()=>{C(!0),console.log("restarting pour timer"),M(),k()},[k,M]),te=o.useCallback(()=>{C(!1),console.log("restarting pour timer on before pour rejected"),P(),K()},[]),se=o.useCallback(()=>{i(!1),d?(M(),k()):(K(),P())},[d,k,P,K,M]),re=o.useCallback(()=>{w(),f(!1),l(!1),K()},[w,K]),Ce=o.useCallback(()=>{f(!1),l(!1),C(!1),P(),S()},[S,P]),G=o.useCallback(()=>{f(!1),l(!1),C(!1),w(),K()},[w,K]),_=o.useCallback(()=>{f(!1),l(!1),C(!1),S(),k(),P()},[S,k,P]),U=o.useCallback(()=>{f(!1),l(!1),S(),k()},[S,k]);Se({onBrandSelected:re,onBrandCleared:Ce,onBeverageSelected:G,onBeverageCleared:_,onPour:z,onPourCancel:ee,onBeforePourRejected:te,onInit:U});const p=d?L:a;return o.useEffect(()=>{if(m&&N){const qe=`/kos/dispense/${m==null?void 0:m.path}/init/`;u.EventBus.publish(qe,{})}},[m,N]),{showAreYouThere:s,clearAreYouThere:se,areYouThereCountdown:p,showAmbientScreen:c,showAttractScreen:h,pauseScreenTimer:Q}},me=()=>{const e=g.DeviceAssembly.type;return u.useKosModel({modelId:e,modelType:g.DeviceAssembly.type,options:{}})};function nt(e){return t=>{const{model:r,status:n,KosModelLoader:s}=me();return b.jsx(s,{...n,children:b.jsx(e,{...t,deviceAssembly:r})})}}const pe=e=>{const t=e;return u.useKosModel({modelId:t,modelType:g.Holder.type,options:{}})};function ot(e,t){return r=>{const{model:n,status:s,KosModelLoader:i}=pe(e);return b.jsx(i,{...s,children:b.jsx(t,{...r,holder:n})})}}const he=()=>{const e=g.HolderContainer.type;return u.useKosModel({modelId:e,modelType:g.HolderContainer.type,options:{}})};function it(e){return t=>{const{model:r,status:n,KosModelLoader:s}=he();return b.jsx(s,{...n,children:b.jsx(e,{...t,holderContainer:r})})}}const fe=()=>{const e=g.Ingredient.type;return u.useKosModel({modelId:e,modelType:g.Ingredient.type,options:{}})},ne=u.KosLog.createLogger({name:"HoldToPourIntentStrategy",group:"kos-hooks"}),Be={name:"HoldToPourIntentStrategy",async initiate(e,t){if(!(e!=null&&e.canPour)){ne.debug(`${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){await(e==null?void 0:e.cancelPour())}},oe=u.KosLog.createLogger({name:"useNozzlePour",group:"kos-hooks"}),at=({onPour:e,onPourCancel:t,intentContainer:r,strategy:n=Be})=>{const s=o.useCallback(()=>{oe.debug(`[${n==null?void 0:n.name}] - Pour initiated for model ${r==null?void 0:r.id}.`),n==null||n.initiate(r),e==null||e()},[e,r,n]),i=o.useCallback(()=>{var h;oe.debug(`[${n==null?void 0:n.name}] - Pour initiate ended called for nozzle ${r==null?void 0:r.id}.`),(h=n==null?void 0:n.initiateEnded)==null||h.call(n,r),t==null||t()},[t,r,n]),c=o.useCallback(()=>{oe.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:s,onRelease:i}).dom,cancel:c,status:r}};function ut(e){return t=>{const{model:r,status:n,KosModelLoader:s}=fe();return b.jsx(s,{...n,children:b.jsx(e,{...t,ingredient:r})})}}const ve=()=>{const e=g.IngredientContainer.type;return u.useKosModel({modelId:e,modelType:g.IngredientContainer.type,options:{}})};function ct(e){return t=>{const{model:r,status:n,KosModelLoader:s}=ve();return b.jsx(s,{...n,children:b.jsx(e,{...t,ingredientContainer:r})})}}function dt(e,t){return r=>{const{model:n,status:s,KosModelLoader:i}=le(e);return b.jsx(i,{...s,children:b.jsx(t,{...r,nozzle:n})})}}const D=u.KosLog.createLogger({name:"usePour",group:"kos-hooks"}),lt=({onBeforePour:e,onPour:t,onPourCancel:r,onPourAbort:n,pourTarget:s,strategy:i=be})=>{const c=o.useCallback(async()=>{D.debug(`[${i==null?void 0:i.name}] - calling before pour for pour target ${s==null?void 0:s.id}.`),(e?await(e==null?void 0:e()):!0)?(D.debug(`[${i==null?void 0:i.name}] - Pour initiated for pour target ${s==null?void 0:s.id}.`),await(i==null?void 0:i.initiate(s)),t==null||t(),s!=null&&s.isPouring||n==null||n()):(D.debug(`[${i==null?void 0:i.name}] - Pour cancelled for pour target ${s==null?void 0:s.id}.`),r==null||r())},[t,s,i]),l=o.useCallback(async()=>{var d;D.debug(`[${i==null?void 0:i.name}] - Pour initiate ended called for pour target ${s==null?void 0:s.id}.`),await((d=i==null?void 0:i.initiateEnded)==null?void 0:d.call(i,s))||r==null||r()},[r,s,i]),h=o.useCallback(async()=>{D.debug(`Force cancelling pour for pour target ${s==null?void 0:s.id}.`),await(s==null?void 0:s.cancelPour()),r==null||r()},[r,s]);return{handlers:u.usePressGesture({onPressed:c,onRelease:l}).dom,cancel:h,status:s}},R=u.KosLog.createLogger({name:"TapOrHoldIntentStrategy",group:"kos-hooks"});class bt{constructor(t){y(this,"intent");y(this,"name","TapOrHoldIntentStrategy");y(this,"isHold",!1);y(this,"disposer",null);this.intent=t}async initiate(t,r){if(this.disposer=setTimeout(()=>{this.isHold=!0},250),t!=null&&t.isPouring&&!this.isHold){R.debug("additional tap detected. cancelling pour"),await t.cancelPour();return}if(!(t!=null&&t.canPour)){R.debug(`${t==null?void 0:t.id} cannot pour. Returning early.`);return}r?(R.debug(`performing intent: ${r}`),await(t==null?void 0:t.performIntent(r))):R.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):(R.debug("Tap detected. don't cancel and return."),!0)}}const V=u.KosLog.createLogger({name:"TapToPourIntentStrategy",group:"kos-hooks"}),mt={name:"TapToPourIntentStrategy",async initiate(e,t){if(e!=null&&e.isPouring){V.debug(`Nozzle ${e==null?void 0:e.id} is already pouring. cancelling pour`),await e.cancelPour();return}if(!(e!=null&&e.canPour)){V.debug(`Nozzle ${e==null?void 0:e.id} cannot pour. Returning early.`);return}t?(V.debug(`performing intent: ${t}`),await(e==null?void 0:e.performIntent(t))):V.debug("no intent provided. Returning early.")},async initiateEnded(e){return!0}},we=u.KosLog.createLogger({name:"HoldToPourStrategy",group:"kos-hooks"}),pt={name:"TapToPourStrategy",async initiate(e){if(e!=null&&e.isPouring){we.debug(`Nozzle ${e==null?void 0:e.id} is already pouring. cancelling pour`),await e.cancelPour();return}if(!(e!=null&&e.canPour)){we.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}},Le=(e,t,r)=>{const n=e;return u.useKosModel({modelId:n,modelType:g.GenericPour.type,options:{servicePathFactory:t,selectedId:r}})};function ht(e){return t=>{const{model:r,status:n,KosModelLoader:s}=Le(t.id,t.servicePathFactory,t.itemId);return b.jsx(s,{...n,children:b.jsx(e,{...t,genericPour:r})})}}const Me=o.createContext(void 0),ft=({children:e})=>{const{model:t,ready:r}=ae(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(Me.Provider,{value:n,children:e})},vt=()=>{const e=o.useContext(Me);if(!e)throw new Error("useAssemblyContext must be used within a AssemblyProvider");return e},je=o.createContext(void 0),Ct=({children:e})=>{const{model:t,ready:r}=ue(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(je.Provider,{value:n,children:e})},xt=()=>{const e=o.useContext(je);if(!e)throw new Error("useAvailabilityContext must be used within a AvailabilityProvider");return e},He=o.createContext(void 0),gt=({children:e,id:t})=>{const{model:r,ready:n}=ce(t),s=o.useMemo(()=>n&&r?{model:r}:{},[n,r]);return b.jsx(He.Provider,{value:s,children:e})},Pt=()=>{const e=o.useContext(He);if(!e)throw new Error("useBoardContext must be used within a BoardProvider");return e},Ne=o.createContext(void 0),wt=({children:e})=>{const{model:t,ready:r}=de(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(Ne.Provider,{value:n,children:e})},kt=()=>{const e=o.useContext(Ne);if(!e)throw new Error("useBoardContainerContext must be used within a BoardContainerProvider");return e},ye=o.createContext(void 0),De=({children:e})=>{const{model:t,ready:r}=me(),n=o.useMemo(()=>{if(r&&t){const i=t.nozzlePaths;return{model:t,nozzlePaths:i}}return{}},[r,t]),s=r&&t?e:null;return b.jsx(ye.Provider,{value:n,children:s})},Re=()=>{const e=o.useContext(ye);if(!e)throw new Error("useDeviceAssemblyContext must be used within a DeviceAssemblyProvider");return e};function Tt(){const e=o.createContext(null);return[()=>{const r=o.useContext(e);if(r===void 0)throw new Error("useDispenseKitContext must be used within a Provider");return r},e.Provider]}function Oe({children:e,provider:t,props:r,nozzleProps:n}){const s=Ke(r);return b.jsx(t,{value:s,children:e(n||{})})}function It({children:e,provider:t,props:r}){const{nozzlePaths:n}=Re(),s=(n==null?void 0:n.length)||0;return(n==null?void 0:n.map((c,l)=>b.jsx(Te,{path:c,children:b.jsx(Oe,{provider:t,props:r,nozzleProps:{nozzleIndex:l,nozzlePath:c,totalNozzles:s,isFirstNozzle:l===0,isLastNozzle:l===s-1},children:e})},c)))||[]}function Ye({provider:e,props:t}){return({children:r})=>e?b.jsx(De,{children:b.jsx(It,{provider:e,props:t,children:r})}):null}function At(e){const[t,r]=Tt();return[t,Ye({provider:r,props:e})]}const Ge=o.createContext(void 0),$t=({children:e,id:t})=>{const{model:r,ready:n}=pe(t||""),s=o.useMemo(()=>n&&r?{model:r}:{},[n,r]);return b.jsx(Ge.Provider,{value:s,children:e})},Et=()=>{const e=o.useContext(Ge);if(!e)throw new Error("useHolderContext must be used within a HolderProvider");return e},_e=o.createContext(void 0),Kt=({children:e})=>{const{model:t,ready:r}=he(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(_e.Provider,{value:n,children:e})},St=()=>{const e=o.useContext(_e);if(!e)throw new Error("useHolderContainerContext must be used within a HolderContainerProvider");return e},Ue=o.createContext(void 0),Bt=({children:e})=>{const{model:t,ready:r}=fe(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(Ue.Provider,{value:n,children:e})},Lt=()=>{const e=o.useContext(Ue);if(!e)throw new Error("useIngredientContext must be used within a IngredientProvider");return e},Fe=o.createContext(void 0),Mt=({children:e})=>{const{model:t,ready:r}=ve(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(Fe.Provider,{value:n,children:e})},jt=()=>{const e=o.useContext(Fe);if(!e)throw new Error("useIngredientContainerContext must be used within a IngredientContainerProvider");return e},Ht=()=>{const e=g.Pump.type;return u.useKosModel({modelId:e,modelType:g.Pump.type,options:{}})},Ve=o.createContext(void 0),Nt=({children:e})=>{const{model:t,ready:r}=Ht(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(Ve.Provider,{value:n,children:e})},yt=()=>{const e=o.useContext(Ve);if(!e)throw new Error("usePumpContext must be used within a PumpProvider");return e};exports.AssemblyProvider=ft;exports.AvailabilityProvider=Ct;exports.BoardContainerProvider=wt;exports.BoardProvider=gt;exports.CuiKit=Ye;exports.CuiKitWrapper=Oe;exports.DISPENSE_GROUP_BEVERAGE=O;exports.DISPENSE_GROUP_BRAND=j;exports.DISPENSE_GROUP_FLAVOR=H;exports.DeviceAssemblyProvider=De;exports.HoldToPourIntentStrategy=Be;exports.HoldToPourStrategy=be;exports.HolderContainerProvider=Kt;exports.HolderProvider=$t;exports.IngredientContainerProvider=Mt;exports.IngredientProvider=Bt;exports.NozzleProvider=Te;exports.PumpProvider=Nt;exports.TapOrHoldIntentStrategy=bt;exports.TapToPourIntentStrategy=mt;exports.TapToPourStrategy=pt;exports.initializeCuiKit=At;exports.useAssembly=ae;exports.useAssemblyContext=vt;exports.useAvailability=ue;exports.useAvailabilityContext=xt;exports.useBeverages=Ie;exports.useBoard=ce;exports.useBoardContainer=de;exports.useBoardContainerContext=kt;exports.useBoardContext=Pt;exports.useBrands=Ae;exports.useCuiKit=Ke;exports.useCuiKitTimers=ie;exports.useDefaultCuiKitLifecycle=rt;exports.useDeviceAssembly=me;exports.useDeviceAssemblyContext=Re;exports.useDispenseLifecycle=Se;exports.useFlavors=Ee;exports.useGenericPour=Le;exports.useHolder=pe;exports.useHolderContainer=he;exports.useHolderContainerContext=St;exports.useHolderContext=Et;exports.useIngredient=fe;exports.useIngredientContainer=ve;exports.useIngredientContainerContext=jt;exports.useIngredientContext=Lt;exports.useIngredientPour=at;exports.useNozzle=le;exports.useNozzleContext=A;exports.useNozzlePour=$e;exports.usePourTarget=lt;exports.usePumpContext=yt;exports.withAssembly=Qe;exports.withBeverage=Xe;exports.withBoard=Ze;exports.withBoardContainer=ze;exports.withDeviceAssembly=nt;exports.withGenericPour=ht;exports.withHolder=ot;exports.withHolderContainer=it;exports.withIngredient=ut;exports.withIngredientContainer=ct;exports.withNozzle=dt;
2
- //# sourceMappingURL=pump-provider-CP6xxU4h.cjs.map
1
+ "use strict";var We=Object.defineProperty;var Je=(e,t,r)=>t in e?We(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var y=(e,t,r)=>(Je(e,typeof t!="symbol"?t+"":t,r),r);const b=require("@emotion/react/jsx-runtime"),u=require("@kosdev-code/kos-ui-sdk"),o=require("react"),g=require("./dispense-registration-manager-BZeOXyYn.cjs"),ae=()=>{const e=g.Assembly.type;return u.useKosModel({modelId:e,modelType:g.Assembly.type,options:{}})};function Qe(e){return t=>{const{model:r,status:n,KosModelLoader:s}=ae();return b.jsx(s,{...n,children:b.jsx(e,{...t,assembly:r})})}}const ue=()=>{const e=g.Availability.type;return u.useKosModel({modelId:e,modelType:g.Availability.type,options:{}})};function Xe(e){return t=>{const{model:r,status:n,KosModelLoader:s}=ue();return b.jsx(s,{...n,children:b.jsx(e,{...t,beverage:r})})}}const ce=e=>{const t=e;return u.useKosModel({modelId:t,modelType:g.Board.type,options:{}})};function Ze(e){return t=>r=>{const{model:n,status:s,KosModelLoader:i}=ce(t);return b.jsx(i,{...s,children:b.jsx(e,{...r,board:n})})}}const de=()=>{const e=g.BoardContainer.type;return u.useKosModel({modelId:e,modelType:g.BoardContainer.type,options:{}})};function ze(e){return t=>{const{model:r,status:n,KosModelLoader:s}=de();return b.jsx(s,{...n,children:b.jsx(e,{...t,boardContainer:r})})}}const le=e=>{const t=e;return u.useKosModel({modelId:t,modelType:g.Nozzle.type,options:{path:e}})},ke=o.createContext(void 0),Te=({children:e,path:t})=>{const{model:r,ready:n}=le(t),s=o.useMemo(()=>n&&r?{model:r}:{},[n,r]);return b.jsx(ke.Provider,{value:s,children:e})},A=()=>{const e=o.useContext(ke);if(!e)throw new Error("useNozzleContext must be used within a NozzleProvider");return e},Ie=({onBeverageSelected:e,onClearBeverage:t,companionType:r})=>{const{model:n}=A(),[s,i]=o.useState([]),[c,l]=o.useState(null),h=o.useMemo(()=>r?s.map(d=>u.getKosCompanionModel(d,r)):[],[s,r]),f=o.useCallback(async d=>{l(d),await(n==null?void 0:n.setSelectedPourable({beverage:d})),e==null||e(d)},[n,e]),m=o.useCallback(async()=>{l(null),await(n==null?void 0:n.setSelectedPourable({beverage:void 0})),t==null||t()},[n,t]);return o.useEffect(()=>{const d=u.kosAutoEffect(()=>{if(!n)return;const C=n.selectedBrand;if(!C){const a=n.getGroupAvailabilityItems("beverages").filter(x=>x.visible);i(a??[]);return}const v=n.getAvailabilityByParent(C.id).filter(a=>a.visible);i(v??[])});return()=>{d()}},[n]),{beverages:s,beverageCompanions:h,selectBeverage:f,selectedBeverage:c,clearBeverage:m}},Ae=({onBrandSelected:e,onBrandCleared:t,companionType:r})=>{const{model:n}=A(),[s,i]=o.useState(null),[c,l]=o.useState([]),h=o.useMemo(()=>r?c.map(d=>u.getKosCompanionModel(d,r)):[],[c,r]),f=o.useCallback(async d=>{i(d),n==null||n.setSelectedBrand(d),e==null||e(d)},[n,e]),m=o.useCallback(()=>{i(null),n==null||n.setSelectedBrand(void 0),t==null||t()},[n,t]);return o.useEffect(()=>{const d=u.kosAutoEffect(()=>{n&&l(n.visibleBrands)});return()=>{d()}},[n]),{brands:c,brandCompanions:h,selectedBrand:s,selectBrand:f,clearBrand:m}},et=u.KosLog.createLogger({name:"HoldToPourStrategy",group:"kos-hooks"}),be={name:"HoldToPourStrategy",async initiate(e){if(!(e!=null&&e.canPour)){et.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())}},F=u.KosLog.createLogger({name:"useNozzlePour",group:"kos-hooks"}),$e=({onPour:e,onPourCancel:t,onBeforePour:r,onBeforePourRejected:n,strategy:s=be})=>{const{model:i}=A(),c=o.useCallback(async()=>{(r?await(r==null?void 0:r()):!0)?(F.debug(`[${s==null?void 0:s.name}] - Pour initiated for nozzle ${i==null?void 0:i.id}.`),s==null||s.initiate(i),e==null||e()):(F.debug(`[${s==null?void 0:s.name}] - Did not pass onBeforePour gate for nozzle ${i==null?void 0:i.id}. Cancelling pour.`),n==null||n())},[e,i,s,r,t]),l=o.useCallback(()=>{var m;F.debug(`[${s==null?void 0:s.name}] - Pour initiate ended called for nozzle ${i==null?void 0:i.id}.`),(m=s==null?void 0:s.initiateEnded)==null||m.call(s,i),t==null||t()},[t,i,s]),h=o.useCallback(()=>{F.debug(`Force cancelling pour for nozzle ${i==null?void 0:i.id}.`),i==null||i.cancelPour(),t==null||t()},[t,i]);return{handlers:u.usePressGesture({onPressed:c,onRelease:l}).dom,cancel:h,status:i}},Ee=({onFlavorSelected:e,onFlavorCleared:t,companionType:r})=>{const{model:n}=A(),s=o.useMemo(()=>(n==null?void 0:n.getGroupAvailabilityItems("flavors").filter(m=>m.visible))??[],[n]),i=o.useMemo(()=>r?s.map(m=>u.getKosCompanionModel(m,r)):[],[s,r]),[c,l]=o.useState([]),h=o.useCallback(async m=>{if(l(d=>d!=null&&d.includes(m)?[...d.filter(C=>C!==m)]:[...d??[],m]),n!=null&&n.selectedPourable){const{beverage:d}=n.selectedPourable;await n.setSelectedPourable({beverage:d,additional:c??[]})}e==null||e(m,c??[])},[n,e,c]),f=o.useCallback(async()=>{if(l([]),n!=null&&n.selectedPourable){const{beverage:m}=n.selectedPourable;n.setSelectedPourable({beverage:m}),t==null||t()}},[n,t]);return{flavors:s,flavorCompanions:i,selectFlavor:h,selectedFlavors:c,clearFlavors:f}},j="brands",O="beverages",H="flavors",B=u.KosLog.createLogger({name:"use-cui-kit"}),Ke=({initialGroup:e=j,options:t={}})=>{var G,_,U;const[r,n]=o.useState(e),{model:s}=A(),i=o.useRef([]),c=o.useCallback(p=>{n(H);const I=`/kos/dispense/${s==null?void 0:s.path}/brand/selected/`;u.EventBus.publish(I,p)},[s==null?void 0:s.path]),l=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/brand/cleared/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),h=o.useCallback(p=>{n(H);const I=`/kos/dispense/${s==null?void 0:s.path}/beverage/selected/`;u.EventBus.publish(I,p)},[s==null?void 0:s.path]),f=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/beverage/cleared/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),m=o.useCallback(p=>{const I=`/kos/dispense/${s==null?void 0:s.path}/flavor/selected/`;u.EventBus.publish(I,p)},[s==null?void 0:s.path]),d=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/flavor/cleared/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),C=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/pour/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),v=o.useCallback(async()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/pre/pour/`;return u.EventBus.publish(p,{}),await(P==null?void 0:P())||!0},[s==null?void 0:s.path]),a=o.useCallback(async()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/pre/pour/rejected/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),x=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/pour/cancel/`;u.EventBus.publish(p,{})},[s==null?void 0:s.path]),{brands:L,selectBrand:T,selectedBrand:$,clearBrand:E,brandCompanions:Y}=Ae({companionType:(G=t.companionTypes)==null?void 0:G.brand,onBrandSelected:c,onBrandCleared:l}),{beverages:q,selectBeverage:W,selectedBeverage:J,clearBeverage:w,beverageCompanions:S}=Ie({companionType:(_=t.companionTypes)==null?void 0:_.beverage,onBeverageSelected:h,onClearBeverage:f}),{clearFlavors:Q,flavors:N,selectFlavor:k,selectedFlavors:K,flavorCompanions:X}=Ee({companionType:(U=t.companionTypes)==null?void 0:U.flavor,onFlavorSelected:m,onFlavorCleared:d}),[P,M]=o.useState(),Z=o.useCallback(p=>{M(()=>p)},[]),z=$e({onPour:C,onPourCancel:x,onBeforePour:v,onBeforePourRejected:a}),ee=o.useCallback(()=>{switch(B.debug(`Navigating back from group: ${r}`),r){case j:w(),E();break;case O:case H:n(e),w(),E();break}},[w,E,r,e]),te=o.useCallback(()=>{const p=`/kos/dispense/${s==null?void 0:s.path}/home/`;u.EventBus.publish(p,{}),n(e),e===j&&(w(),E()),e===O&&w()},[w,E,e]),se=o.useCallback(()=>{if(i.current.length===0){B.debug("No timers to pause.");return}B.debug(`Pausing ${i.current.length} timers.`),i.current.forEach(p=>{B.debug(`Pausing timer with id ${p.id}.`),p.pause()})},[]),re=o.useCallback(()=>{if(i.current.length===0){B.debug("No timers to restart.");return}B.debug(`Restarting ${i.current.length} timers.`),i.current.forEach(p=>{B.debug(`Restarting timer with id ${p.id}.`),p.restart()})},[]);return{timers:{add:o.useCallback(p=>{if(p){if(i.current.some(I=>I.id===p.id)){B.debug(`Timer with id ${p.id} already exists.`);return}i.current.push(p)}},[]),pause:se,restart:re},nav:{currentGroup:r,back:ee,home:te},pour:z,updateOnBeforePour:Z,selections:{[j]:$,[O]:J,[H]:K},[j]:{models:L,companions:Y,clear:E,handlers:{onSelected:T}},[O]:{models:q,companions:S,clear:w,handlers:{onSelected:W}},[H]:{models:N,companions:X,clear:Q,handlers:{onSelected:k}}}},tt=e=>{const{model:t}=A(),[r,n]=o.useState(null),{onAmbientTimer:s,onAttractTimer:i,onResetAttractTimer:c,onResumeAttractTimer:l,defaultAttractTime:h,defaultAmbientTime:f}=e,m=o.useCallback(()=>{s&&(u.KosLog.info("Ambient timer expired. Calling callback"),s==null||s())},[s]),d=o.useCallback(()=>{i&&(u.KosLog.info("Attract timer expired. Calling callback"),i==null||i())},[i]),C=o.useCallback(()=>{r&&(r.restart(),c==null||c())},[r,c]),v=o.useCallback(()=>{r&&(r.reset(),c==null||c())},[r,c]),a=o.useCallback(()=>{r&&(r.pause(),l==null||l())},[r,l]);return o.useEffect(()=>{if(t&&h){u.KosLog.info("Nozzle is available. Creating timers");const x=u.TimerManager.createTimer("attract-timer-"+t.path,h);return h&&(x==null||x.addTimeoutAction({name:"attract-timer",remainingTime:0,action:d})),f&&(x==null||x.addTimeoutAction({name:"ambient-timer",remainingTime:f,action:m})),h&&(x==null||x.start()),n(x??null),()=>{x==null||x.reset(),n(null)}}return()=>{u.KosLog.info("Nozzle is not available. No timers to clear")}},[f,h,m,d,t]),{attractTimer:r,restart:C,pause:v,resume:a}},st=(e,t)=>{if(t)return u.EventBus.subscribe(e,t).unsubscribe},Se=({onInit:e,onBrandSelected:t,onBrandCleared:r,onBeverageCleared:n,onBeverageSelected:s,onFlavorCleared:i,onFlavorSelected:c,onReturnToHome:l,onPour:h,onPourCancel:f,onBeforePourRejected:m,onAmbientTimer:d,onAttractTimer:C,onResumeAttractTimer:v})=>{const{model:a}=A();o.useEffect(()=>{const L=[{topic:`/kos/dispense/${a==null?void 0:a.path}/brand/selected/`,callback:t},{topic:`/kos/dispense/${a==null?void 0:a.path}/brand/cleared/`,callback:r},{topic:`/kos/dispense/${a==null?void 0:a.path}/beverage/selected/`,callback:s},{topic:`/kos/dispense/${a==null?void 0:a.path}/beverage/cleared/`,callback:n},{topic:`/kos/dispense/${a==null?void 0:a.path}/flavor/selected/`,callback:c},{topic:`/kos/dispense/${a==null?void 0:a.path}/flavor/cleared/`,callback:i},{topic:`/kos/dispense/${a==null?void 0:a.path}/pour/`,callback:h},{topic:`/kos/dispense/${a==null?void 0:a.path}/pour/cancel/`,callback:f},{topic:`/kos/dispense/${a==null?void 0:a.path}/pre/pour/rejected/`,callback:m},{topic:`/kos/dispense/${a==null?void 0:a.path}/ambient/start/`,callback:d},{topic:`/kos/dispense/${a==null?void 0:a.path}/attract/start/`,callback:C},{topic:`/kos/dispense/${a==null?void 0:a.path}/attract/resume/`,callback:v},{topic:`/kos/dispense/${a==null?void 0:a.path}/init/`,callback:e},{topic:`/kos/dispense/${a==null?void 0:a.path}/home/`,callback:l}].map(({topic:T,callback:$})=>st(T,$));return()=>{L.forEach(T=>T==null?void 0:T())}},[a==null?void 0:a.path,d,C,n,s,r,t,i,c,h,f,v,e,l])},ie=e=>{const{model:t}=A(),[r,n]=o.useState(null),{onAreYouThereTimer:s,onIdleTimer:i,onResetIdleTimer:c,defaultAreYouThereTime:l=10,defaultIdleTime:h=20}=e,f=o.useCallback(()=>{s&&(u.KosLog.info("Are you there timer expired. Calling callback"),s==null||s())},[s]),m=o.useCallback(()=>{i&&(u.KosLog.info("Idle timer expired. Calling callback"),i==null||i())},[i]),d=o.useCallback(()=>{r&&(r.restart(),c==null||c())},[r,c]),C=o.useCallback(()=>{r&&(r.reset(),c==null||c())},[r,c]);return o.useEffect(()=>{if(t){u.KosLog.info("Nozzle is available. Creating timers");const v=u.TimerManager.createTimer(`${e.prefix??""}idle-timer-${t.path}`,h);return v==null||v.addTimeoutAction({name:"idle-timer",remainingTime:0,action:m}),v==null||v.addTimeoutAction({name:"are-you-there-timer",remainingTime:l,action:f}),n(v??null),()=>{v==null||v.reset(),n(null)}}return()=>{u.KosLog.info("Nozzle is not available. No timers to clear")}},[l,h,f,m,t,e.prefix]),{idleTimer:r,restart:d,pause:C}},rt=({kit:e,inactivity:t,pour:r,screens:n})=>{var I,xe,ge,Pe;const[s,i]=o.useState(!1),[c,l]=o.useState(!1),[h,f]=o.useState(!1),{model:m}=A(),[d,C]=o.useState(!1),v=(t==null?void 0:t.idleTimeout)??15,a=(t==null?void 0:t.areYouThereTimeoutOffset)??10,x=(r==null?void 0:r.idleTimeout)??(t==null?void 0:t.idleTimeout)??10,L=(r==null?void 0:r.areYouThereTimeoutOffset)??(t==null?void 0:t.areYouThereTimeoutOffset)??5,T=n==null?void 0:n.ambientTimeoutOffset,$=n==null?void 0:n.attractTimeout,E=o.useCallback(()=>{i(!0)},[]),Y=o.useCallback(()=>{i(!1),e==null||e.nav.home()},[(I=e==null?void 0:e.nav)==null?void 0:I.home]),q=o.useCallback(()=>{T&&(l(!0),f(!1))},[T]),W=o.useCallback(()=>{$&&(f(!0),l(!1))},[$]),J=o.useCallback(()=>{$&&(f(!1),l(!1),e==null||e.nav.home())},[e==null?void 0:e.nav,$]),{pause:w,restart:S,resume:Q,attractTimer:N}=tt({defaultAmbientTime:T,defaultAttractTime:$,onAmbientTimer:q,onAttractTimer:W,onResumeAttractTimer:J});(xe=e==null?void 0:e.timers)==null||xe.add(N);const{pause:k,restart:K,idleTimer:X}=ie({defaultAreYouThereTime:a,defaultIdleTime:v,onAreYouThereTimer:E,onIdleTimer:Y});(ge=e==null?void 0:e.timers)==null||ge.add(X);const{pause:P,restart:M,idleTimer:Z}=ie({defaultAreYouThereTime:L,defaultIdleTime:x,onAreYouThereTimer:E,onIdleTimer:Y,prefix:"pour-"});(Pe=e==null?void 0:e.timers)==null||Pe.add(Z);const z=o.useCallback(()=>{C(!1),P(),k()},[k,P]),ee=o.useCallback(()=>{C(!0),console.log("restarting pour timer"),M(),k()},[k,M]),te=o.useCallback(()=>{C(!1),console.log("restarting pour timer on before pour rejected"),P(),K()},[]),se=o.useCallback(()=>{i(!1),d?(M(),k()):(K(),P())},[d,k,P,K,M]),re=o.useCallback(()=>{w(),f(!1),l(!1),K()},[w,K]),Ce=o.useCallback(()=>{f(!1),l(!1),C(!1),P(),S()},[S,P]),G=o.useCallback(()=>{f(!1),l(!1),C(!1),w(),K()},[w,K]),_=o.useCallback(()=>{f(!1),l(!1),C(!1),S(),k(),P()},[S,k,P]),U=o.useCallback(()=>{f(!1),l(!1),S(),k()},[S,k]);Se({onBrandSelected:re,onBrandCleared:Ce,onBeverageSelected:G,onBeverageCleared:_,onPour:z,onPourCancel:ee,onBeforePourRejected:te,onInit:U});const p=d?L:a;return o.useEffect(()=>{if(m&&N){const qe=`/kos/dispense/${m==null?void 0:m.path}/init/`;u.EventBus.publish(qe,{})}},[m,N]),{showAreYouThere:s,clearAreYouThere:se,areYouThereCountdown:p,showAmbientScreen:c,showAttractScreen:h,pauseScreenTimer:Q}},me=()=>{const e=g.DeviceAssembly.type;return u.useKosModel({modelId:e,modelType:g.DeviceAssembly.type,options:{}})};function nt(e){return t=>{const{model:r,status:n,KosModelLoader:s}=me();return b.jsx(s,{...n,children:b.jsx(e,{...t,deviceAssembly:r})})}}const pe=e=>{const t=e;return u.useKosModel({modelId:t,modelType:g.Holder.type,options:{}})};function ot(e,t){return r=>{const{model:n,status:s,KosModelLoader:i}=pe(e);return b.jsx(i,{...s,children:b.jsx(t,{...r,holder:n})})}}const he=()=>{const e=g.HolderContainer.type;return u.useKosModel({modelId:e,modelType:g.HolderContainer.type,options:{}})};function it(e){return t=>{const{model:r,status:n,KosModelLoader:s}=he();return b.jsx(s,{...n,children:b.jsx(e,{...t,holderContainer:r})})}}const fe=()=>{const e=g.Ingredient.type;return u.useKosModel({modelId:e,modelType:g.Ingredient.type,options:{}})},ne=u.KosLog.createLogger({name:"HoldToPourIntentStrategy",group:"kos-hooks"}),Be={name:"HoldToPourIntentStrategy",async initiate(e,t){if(!(e!=null&&e.canPour)){ne.debug(`${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){await(e==null?void 0:e.cancelPour())}},oe=u.KosLog.createLogger({name:"useNozzlePour",group:"kos-hooks"}),at=({onPour:e,onPourCancel:t,intentContainer:r,strategy:n=Be})=>{const s=o.useCallback(()=>{oe.debug(`[${n==null?void 0:n.name}] - Pour initiated for model ${r==null?void 0:r.id}.`),n==null||n.initiate(r),e==null||e()},[e,r,n]),i=o.useCallback(()=>{var h;oe.debug(`[${n==null?void 0:n.name}] - Pour initiate ended called for nozzle ${r==null?void 0:r.id}.`),(h=n==null?void 0:n.initiateEnded)==null||h.call(n,r),t==null||t()},[t,r,n]),c=o.useCallback(()=>{oe.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:s,onRelease:i}).dom,cancel:c,status:r}};function ut(e){return t=>{const{model:r,status:n,KosModelLoader:s}=fe();return b.jsx(s,{...n,children:b.jsx(e,{...t,ingredient:r})})}}const ve=()=>{const e=g.IngredientContainer.type;return u.useKosModel({modelId:e,modelType:g.IngredientContainer.type,options:{}})};function ct(e){return t=>{const{model:r,status:n,KosModelLoader:s}=ve();return b.jsx(s,{...n,children:b.jsx(e,{...t,ingredientContainer:r})})}}function dt(e,t){return r=>{const{model:n,status:s,KosModelLoader:i}=le(e);return b.jsx(i,{...s,children:b.jsx(t,{...r,nozzle:n})})}}const D=u.KosLog.createLogger({name:"usePour",group:"kos-hooks"}),lt=({onBeforePour:e,onPour:t,onPourCancel:r,onPourAbort:n,pourTarget:s,strategy:i=be})=>{const c=o.useCallback(async()=>{D.debug(`[${i==null?void 0:i.name}] - calling before pour for pour target ${s==null?void 0:s.id}.`),(e?await(e==null?void 0:e()):!0)?(D.debug(`[${i==null?void 0:i.name}] - Pour initiated for pour target ${s==null?void 0:s.id}.`),await(i==null?void 0:i.initiate(s)),t==null||t(),s!=null&&s.isPouring||n==null||n()):(D.debug(`[${i==null?void 0:i.name}] - Pour cancelled for pour target ${s==null?void 0:s.id}.`),r==null||r())},[t,s,i]),l=o.useCallback(async()=>{var d;D.debug(`[${i==null?void 0:i.name}] - Pour initiate ended called for pour target ${s==null?void 0:s.id}.`),await((d=i==null?void 0:i.initiateEnded)==null?void 0:d.call(i,s))||r==null||r()},[r,s,i]),h=o.useCallback(async()=>{D.debug(`Force cancelling pour for pour target ${s==null?void 0:s.id}.`),await(s==null?void 0:s.cancelPour()),r==null||r()},[r,s]);return{handlers:u.usePressGesture({onPressed:c,onRelease:l}).dom,cancel:h,status:s}},R=u.KosLog.createLogger({name:"TapOrHoldIntentStrategy",group:"kos-hooks"});class bt{constructor(t){y(this,"intent");y(this,"name","TapOrHoldIntentStrategy");y(this,"isHold",!1);y(this,"disposer",null);this.intent=t}async initiate(t,r){if(this.disposer=setTimeout(()=>{this.isHold=!0},250),t!=null&&t.isPouring&&!this.isHold){R.debug("additional tap detected. cancelling pour"),await t.cancelPour();return}if(!(t!=null&&t.canPour)){R.debug(`${t==null?void 0:t.id} cannot pour. Returning early.`);return}r?(R.debug(`performing intent: ${r}`),await(t==null?void 0:t.performIntent(r))):R.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):(R.debug("Tap detected. don't cancel and return."),!0)}}const V=u.KosLog.createLogger({name:"TapToPourIntentStrategy",group:"kos-hooks"}),mt={name:"TapToPourIntentStrategy",async initiate(e,t){if(e!=null&&e.isPouring){V.debug(`Nozzle ${e==null?void 0:e.id} is already pouring. cancelling pour`),await e.cancelPour();return}if(!(e!=null&&e.canPour)){V.debug(`Nozzle ${e==null?void 0:e.id} cannot pour. Returning early.`);return}t?(V.debug(`performing intent: ${t}`),await(e==null?void 0:e.performIntent(t))):V.debug("no intent provided. Returning early.")},async initiateEnded(e){return!0}},we=u.KosLog.createLogger({name:"HoldToPourStrategy",group:"kos-hooks"}),pt={name:"TapToPourStrategy",async initiate(e){if(e!=null&&e.isPouring){we.debug(`Nozzle ${e==null?void 0:e.id} is already pouring. cancelling pour`),await e.cancelPour();return}if(!(e!=null&&e.canPour)){we.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}},Le=(e,t,r)=>{const n=e;return u.useKosModel({modelId:n,modelType:g.GenericPour.type,options:{servicePathFactory:t,selectedId:r}})};function ht(e){return t=>{const{model:r,status:n,KosModelLoader:s}=Le(t.id,t.servicePathFactory,t.itemId);return b.jsx(s,{...n,children:b.jsx(e,{...t,genericPour:r})})}}const Me=o.createContext(void 0),ft=({children:e})=>{const{model:t,ready:r}=ae(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(Me.Provider,{value:n,children:e})},vt=()=>{const e=o.useContext(Me);if(!e)throw new Error("useAssemblyContext must be used within a AssemblyProvider");return e},je=o.createContext(void 0),Ct=({children:e})=>{const{model:t,ready:r}=ue(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(je.Provider,{value:n,children:e})},xt=()=>{const e=o.useContext(je);if(!e)throw new Error("useAvailabilityContext must be used within a AvailabilityProvider");return e},He=o.createContext(void 0),gt=({children:e,id:t})=>{const{model:r,ready:n}=ce(t),s=o.useMemo(()=>n&&r?{model:r}:{},[n,r]);return b.jsx(He.Provider,{value:s,children:e})},Pt=()=>{const e=o.useContext(He);if(!e)throw new Error("useBoardContext must be used within a BoardProvider");return e},Ne=o.createContext(void 0),wt=({children:e})=>{const{model:t,ready:r}=de(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(Ne.Provider,{value:n,children:e})},kt=()=>{const e=o.useContext(Ne);if(!e)throw new Error("useBoardContainerContext must be used within a BoardContainerProvider");return e},ye=o.createContext(void 0),De=({children:e})=>{const{model:t,ready:r}=me(),n=o.useMemo(()=>{if(r&&t){const i=t.nozzlePaths;return{model:t,nozzlePaths:i}}return{}},[r,t]),s=r&&t?e:null;return b.jsx(ye.Provider,{value:n,children:s})},Re=()=>{const e=o.useContext(ye);if(!e)throw new Error("useDeviceAssemblyContext must be used within a DeviceAssemblyProvider");return e};function Tt(){const e=o.createContext(null);return[()=>{const r=o.useContext(e);if(r===void 0)throw new Error("useDispenseKitContext must be used within a Provider");return r},e.Provider]}function Oe({children:e,provider:t,props:r,nozzleProps:n}){const s=Ke(r);return b.jsx(t,{value:s,children:e(n||{})})}function It({children:e,provider:t,props:r}){const{nozzlePaths:n}=Re(),s=(n==null?void 0:n.length)||0;return(n==null?void 0:n.map((c,l)=>b.jsx(Te,{path:c,children:b.jsx(Oe,{provider:t,props:r,nozzleProps:{nozzleIndex:l,nozzlePath:c,totalNozzles:s,isFirstNozzle:l===0,isLastNozzle:l===s-1},children:e})},c)))||[]}function Ye({provider:e,props:t}){return({children:r})=>e?b.jsx(De,{children:b.jsx(It,{provider:e,props:t,children:r})}):null}function At(e){const[t,r]=Tt();return[t,Ye({provider:r,props:e})]}const Ge=o.createContext(void 0),$t=({children:e,id:t})=>{const{model:r,ready:n}=pe(t||""),s=o.useMemo(()=>n&&r?{model:r}:{},[n,r]);return b.jsx(Ge.Provider,{value:s,children:e})},Et=()=>{const e=o.useContext(Ge);if(!e)throw new Error("useHolderContext must be used within a HolderProvider");return e},_e=o.createContext(void 0),Kt=({children:e})=>{const{model:t,ready:r}=he(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(_e.Provider,{value:n,children:e})},St=()=>{const e=o.useContext(_e);if(!e)throw new Error("useHolderContainerContext must be used within a HolderContainerProvider");return e},Ue=o.createContext(void 0),Bt=({children:e})=>{const{model:t,ready:r}=fe(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(Ue.Provider,{value:n,children:e})},Lt=()=>{const e=o.useContext(Ue);if(!e)throw new Error("useIngredientContext must be used within a IngredientProvider");return e},Fe=o.createContext(void 0),Mt=({children:e})=>{const{model:t,ready:r}=ve(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(Fe.Provider,{value:n,children:e})},jt=()=>{const e=o.useContext(Fe);if(!e)throw new Error("useIngredientContainerContext must be used within a IngredientContainerProvider");return e},Ht=()=>{const e=g.Pump.type;return u.useKosModel({modelId:e,modelType:g.Pump.type,options:{}})},Ve=o.createContext(void 0),Nt=({children:e})=>{const{model:t,ready:r}=Ht(),n=o.useMemo(()=>r&&t?{model:t}:{},[r,t]);return b.jsx(Ve.Provider,{value:n,children:e})},yt=()=>{const e=o.useContext(Ve);if(!e)throw new Error("usePumpContext must be used within a PumpProvider");return e};exports.AssemblyProvider=ft;exports.AvailabilityProvider=Ct;exports.BoardContainerProvider=wt;exports.BoardProvider=gt;exports.CuiKit=Ye;exports.CuiKitWrapper=Oe;exports.DISPENSE_GROUP_BEVERAGE=O;exports.DISPENSE_GROUP_BRAND=j;exports.DISPENSE_GROUP_FLAVOR=H;exports.DeviceAssemblyProvider=De;exports.HoldToPourIntentStrategy=Be;exports.HoldToPourStrategy=be;exports.HolderContainerProvider=Kt;exports.HolderProvider=$t;exports.IngredientContainerProvider=Mt;exports.IngredientProvider=Bt;exports.NozzleProvider=Te;exports.PumpProvider=Nt;exports.TapOrHoldIntentStrategy=bt;exports.TapToPourIntentStrategy=mt;exports.TapToPourStrategy=pt;exports.initializeCuiKit=At;exports.useAssembly=ae;exports.useAssemblyContext=vt;exports.useAvailability=ue;exports.useAvailabilityContext=xt;exports.useBeverages=Ie;exports.useBoard=ce;exports.useBoardContainer=de;exports.useBoardContainerContext=kt;exports.useBoardContext=Pt;exports.useBrands=Ae;exports.useCuiKit=Ke;exports.useCuiKitTimers=ie;exports.useDefaultCuiKitLifecycle=rt;exports.useDeviceAssembly=me;exports.useDeviceAssemblyContext=Re;exports.useDispenseLifecycle=Se;exports.useFlavors=Ee;exports.useGenericPour=Le;exports.useHolder=pe;exports.useHolderContainer=he;exports.useHolderContainerContext=St;exports.useHolderContext=Et;exports.useIngredient=fe;exports.useIngredientContainer=ve;exports.useIngredientContainerContext=jt;exports.useIngredientContext=Lt;exports.useIngredientPour=at;exports.useNozzle=le;exports.useNozzleContext=A;exports.useNozzlePour=$e;exports.usePourTarget=lt;exports.usePumpContext=yt;exports.withAssembly=Qe;exports.withBeverage=Xe;exports.withBoard=Ze;exports.withBoardContainer=ze;exports.withDeviceAssembly=nt;exports.withGenericPour=ht;exports.withHolder=ot;exports.withHolderContainer=it;exports.withIngredient=ut;exports.withIngredientContainer=ct;exports.withNozzle=dt;
2
+ //# sourceMappingURL=pump-provider-Z1-LKiNf.cjs.map