@pisell/private-materials 6.12.168 → 6.12.170

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 (275) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.css +1 -1
  6. package/build/lowcode/render/default/view.js +10 -10
  7. package/build/lowcode/view.css +1 -1
  8. package/build/lowcode/view.js +10 -10
  9. package/es/components/HDLKiosk/{contracts → app/contracts}/config.js +1 -1
  10. package/es/components/HDLKiosk/app/manifest.js +11 -11
  11. package/es/components/HDLKiosk/app/operations.js +92 -0
  12. package/es/components/HDLKiosk/app/workflow/barcode.js +7 -3
  13. package/es/components/HDLKiosk/app/workflow/index.js +16 -0
  14. package/es/components/HDLKiosk/app/workflow/predicates.js +1 -1
  15. package/es/components/HDLKiosk/app/workflow/quick.js +1 -1
  16. package/es/components/HDLKiosk/app/workflow/registry.js +4 -4
  17. package/es/components/HDLKiosk/app/workflow/scale.js +5 -1
  18. package/es/components/HDLKiosk/components/common/HDLKioskSkuOptionsSelection/index.less +1 -1
  19. package/es/components/HDLKiosk/components/overlays/HDLKioskModal/index.less +1 -1
  20. package/es/components/HDLKiosk/components/shell/HDLKioskBottomBarHost/index.js +4 -1
  21. package/es/components/HDLKiosk/docs/00-/346/226/207/344/273/266/345/257/274/350/210/252.md +104 -167
  22. package/es/components/HDLKiosk/docs/01-/346/240/270/345/277/203/350/277/220/350/241/214/346/234/272/345/210/266.md +95 -89
  23. package/es/components/HDLKiosk/docs/02-Host/351/200/202/351/205/215/344/270/216/344/270/232/345/212/241/346/225/260/346/215/256.md +20 -19
  24. package/es/components/HDLKiosk/docs/04-/350/256/276/345/244/207/344/270/216/347/247/260/351/207/215.md +43 -26
  25. package/es/components/HDLKiosk/docs/05-/344/272/244/346/230/223/345/256/211/345/205/250.md +2 -0
  26. package/es/components/HDLKiosk/docs/08-/346/227/240/345/244/264Application/350/277/220/350/241/214/346/227/266/351/207/215/346/236/204/350/256/276/350/256/241.md +719 -0
  27. package/es/components/HDLKiosk/docs/09-Entry/350/256/276/345/244/207/344/272/213/344/273/266/351/207/215/346/236/204/344/277/256/345/244/215/346/212/245/345/221/212.md +187 -0
  28. package/es/components/HDLKiosk/docs/README.md +6 -2
  29. package/es/components/HDLKiosk/docs//345/256/236/346/226/275/350/277/233/345/272/246.md +8 -7
  30. package/es/components/HDLKiosk/docs//346/236/266/346/236/204/350/256/276/350/256/241.md +16 -18
  31. package/es/components/HDLKiosk/index.js +32 -30
  32. package/es/components/HDLKiosk/index.less +8 -3
  33. package/es/components/HDLKiosk/kernel/README.md +13 -12
  34. package/es/components/HDLKiosk/kernel/application/defineApplication.js +63 -24
  35. package/es/components/HDLKiosk/kernel/application/defineSlice.js +6 -6
  36. package/es/components/HDLKiosk/kernel/application/runtime.js +237 -0
  37. package/es/components/HDLKiosk/kernel/operations/coordinator.js +1 -1
  38. package/es/components/HDLKiosk/kernel/operations/registry.js +3 -3
  39. package/es/components/HDLKiosk/kernel/operations/sessionEpoch.js +1 -1
  40. package/es/components/HDLKiosk/kernel/operations/types.js +7 -3
  41. package/es/components/HDLKiosk/kernel/workflow/actor.js +16 -17
  42. package/es/components/HDLKiosk/kernel/workflow/compiler.js +14 -16
  43. package/es/components/HDLKiosk/runtime/createRuntime.js +238 -0
  44. package/es/components/HDLKiosk/{devices → runtime/devices}/dedupeStore.js +1 -1
  45. package/es/components/HDLKiosk/{devices → runtime/devices}/scaleIngress.js +1 -1
  46. package/es/components/HDLKiosk/{devices/scale/runtime.js → runtime/devices/scaleStore.js} +18 -24
  47. package/es/components/HDLKiosk/{devices → runtime/devices}/scannerIngress.js +1 -1
  48. package/es/components/HDLKiosk/runtime/devices/scannerSessionPort.js +60 -0
  49. package/es/components/HDLKiosk/runtime/devices/scannerSessionRouter.js +212 -0
  50. package/es/components/HDLKiosk/runtime/operations/barcode.js +18 -0
  51. package/es/components/HDLKiosk/runtime/operations/cart.js +44 -0
  52. package/es/components/HDLKiosk/{app → runtime}/operations/cartConsistency.js +1 -1
  53. package/es/components/HDLKiosk/{app → runtime}/operations/checkout.js +95 -110
  54. package/es/components/HDLKiosk/{app → runtime}/operations/checkoutRequirements.js +1 -1
  55. package/es/components/HDLKiosk/{app → runtime}/operations/checkoutSafety.js +1 -1
  56. package/es/components/HDLKiosk/{app → runtime}/operations/coordinator.js +2 -2
  57. package/es/components/HDLKiosk/runtime/operations/customization.js +70 -0
  58. package/es/components/HDLKiosk/{app → runtime}/operations/errors.js +1 -1
  59. package/es/components/HDLKiosk/runtime/operations/fulfillment.js +6 -0
  60. package/es/components/HDLKiosk/runtime/operations/identity.js +55 -0
  61. package/es/components/HDLKiosk/runtime/operations/registry.js +34 -0
  62. package/es/components/HDLKiosk/runtime/operations/session.js +29 -0
  63. package/es/components/HDLKiosk/runtime/operations/types.js +13 -0
  64. package/es/components/HDLKiosk/runtime/session/blockPolicy.js +14 -0
  65. package/es/components/HDLKiosk/runtime/{createWorkflowSession.js → session/createSession.js} +67 -17
  66. package/es/components/HDLKiosk/runtime/{domainTransitionRunner.js → session/transitionRunner.js} +10 -5
  67. package/es/components/HDLKiosk/runtime/{workflowContext.js → session/workflowContext.js} +2 -2
  68. package/es/components/HDLKiosk/runtime/{workflowLifecycle.js → session/workflowLifecycle.js} +2 -2
  69. package/es/components/HDLKiosk/runtime/triggers.js +28 -0
  70. package/es/components/HDLKiosk/slices/catalog/Screen/index.js +15 -8
  71. package/es/components/HDLKiosk/slices/catalog/Screen/index.less +74 -13
  72. package/es/components/HDLKiosk/slices/catalog/slice.js +2 -2
  73. package/es/components/HDLKiosk/slices/customization/Screen/index.js +34 -35
  74. package/es/components/HDLKiosk/slices/customization/Screen/index.less +5 -0
  75. package/es/components/HDLKiosk/slices/customization/slice.js +2 -3
  76. package/es/components/HDLKiosk/slices/fulfillment/slice.js +2 -2
  77. package/es/components/HDLKiosk/slices/fulfillment/view.js +1 -1
  78. package/es/components/HDLKiosk/slices/identity/Screen/index.less +1 -1
  79. package/es/components/HDLKiosk/slices/identity/slice.js +2 -2
  80. package/es/components/HDLKiosk/slices/identity/view.js +1 -1
  81. package/es/components/HDLKiosk/slices/payment/Screen/index.less +1 -1
  82. package/es/components/HDLKiosk/slices/payment/slice.js +3 -3
  83. package/es/components/HDLKiosk/slices/primaryProductPrompt/slice.js +1 -1
  84. package/es/components/HDLKiosk/{runtime → ui}/HDLKioskWorkflowView.js +68 -129
  85. package/es/components/HDLKiosk/ui/ScaleSimulatorConsole/index.js +387 -0
  86. package/es/components/HDLKiosk/ui/ScaleSimulatorConsole/index.less +621 -0
  87. package/es/components/HDLKiosk/{app → ui}/ScreenRenderer.js +1 -1
  88. package/es/components/HDLKiosk/ui/collaborationStatus.js +11 -0
  89. package/es/components/HDLKiosk/ui/controllers/useHDLKioskActionDispatcher.js +66 -0
  90. package/es/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskCustomerController.js +1 -1
  91. package/es/components/HDLKiosk/ui/controllers/useHDLKioskDeviceController.js +25 -0
  92. package/es/components/HDLKiosk/ui/controllers/useHDLKioskExitController.js +53 -0
  93. package/es/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskScreenData.js +1 -1
  94. package/es/components/HDLKiosk/ui/controllers/useHDLKioskSessionController.js +39 -0
  95. package/es/components/HDLKiosk/{app → ui}/entry/Screen/index.js +8 -6
  96. package/es/components/HDLKiosk/{app → ui}/entry/model.js +2 -2
  97. package/es/components/HDLKiosk/ui/scale.js +20 -0
  98. package/es/components/HDLKiosk/{runtime/useHostSnapshot.js → ui/snapshots.js} +6 -8
  99. package/es/components/HDLKiosk/{app → ui}/views.js +1 -1
  100. package/es/components/HDLKiosk/{runtime → ui}/workflowEvent.js +1 -1
  101. package/es/components/HDLKiosk/utils.js +4 -4
  102. package/es/components/bigSale/templates/HDLKiosk/README.md +43 -0
  103. package/es/components/bigSale/templates/HDLKiosk/adapter/createHost.js +7 -7
  104. package/es/components/bigSale/templates/HDLKiosk/adapter/{devices.js → devices/devicePort.js} +10 -38
  105. package/es/components/bigSale/templates/HDLKiosk/adapter/{capabilities.js → host/capabilities.js} +2 -2
  106. package/es/components/bigSale/templates/HDLKiosk/adapter/{fulfillment.js → host/fulfillmentWriter.js} +3 -3
  107. package/es/components/bigSale/templates/HDLKiosk/adapter/{projection.js → host/projection.js} +24 -14
  108. package/es/components/bigSale/templates/HDLKiosk/adapter/{telemetry.js → host/telemetry.js} +1 -1
  109. package/es/components/bigSale/templates/HDLKiosk/adapter/sales/cart.js +187 -0
  110. package/es/components/bigSale/templates/HDLKiosk/adapter/sales/catalog.js +160 -0
  111. package/es/components/bigSale/templates/HDLKiosk/adapter/{customizationProduct.js → sales/customizationProduct.js} +3 -3
  112. package/es/components/bigSale/templates/HDLKiosk/adapter/sales/fulfillment.js +31 -0
  113. package/es/components/bigSale/templates/HDLKiosk/adapter/sales/identity.js +57 -0
  114. package/es/components/bigSale/templates/HDLKiosk/adapter/sales/index.js +18 -0
  115. package/es/components/bigSale/templates/HDLKiosk/adapter/sales/payment.js +123 -0
  116. package/es/components/bigSale/templates/HDLKiosk/adapter/sales/session.js +71 -0
  117. package/es/components/bigSale/templates/HDLKiosk/adapter/sales/weightedOperations.js +124 -0
  118. package/es/components/bigSale/templates/HDLKiosk/adapter/{weightedProduct.js → sales/weightedProduct.js} +2 -2
  119. package/es/components/bigSale/templates/HDLKiosk/adapter/useBigSaleHDLKioskAdapter.js +41 -0
  120. package/es/components/bigSale/templates/HDLKiosk/adapter/useBigSaleHDLKioskHost.js +10 -7
  121. package/es/components/bigSale/templates/HDLKiosk/cart/useBigSaleHDLKioskCart.js +122 -0
  122. package/es/components/bigSale/templates/HDLKiosk/{adapter → hooks}/useHDLKioskEntryPreparationToast.js +2 -1
  123. package/es/components/bigSale/templates/HDLKiosk/index.js +42 -148
  124. package/es/components/bigSale/templates/HDLKiosk/{adapter/scaleTrigger.js → runtime/BigSaleScaleRuntimeOwner.js} +33 -62
  125. package/es/components/bigSale/templates/HDLKiosk/{adapter → runtime}/HDLKioskPaymentRuntime.js +4 -3
  126. package/es/components/bigSale/templates/HDLKiosk/runtime/scaleBridge.js +44 -0
  127. package/lib/components/HDLKiosk/{contracts → app/contracts}/config.js +1 -1
  128. package/lib/components/HDLKiosk/app/manifest.js +18 -19
  129. package/lib/components/HDLKiosk/app/operations.js +105 -0
  130. package/lib/components/HDLKiosk/app/workflow/barcode.js +7 -3
  131. package/lib/components/HDLKiosk/app/workflow/index.js +16 -0
  132. package/lib/components/HDLKiosk/app/workflow/predicates.js +1 -0
  133. package/lib/components/HDLKiosk/app/workflow/quick.js +1 -1
  134. package/lib/components/HDLKiosk/app/workflow/registry.js +3 -3
  135. package/lib/components/HDLKiosk/app/workflow/scale.js +5 -1
  136. package/lib/components/HDLKiosk/components/common/HDLKioskSkuOptionsSelection/index.less +1 -1
  137. package/lib/components/HDLKiosk/components/overlays/HDLKioskModal/index.less +1 -1
  138. package/lib/components/HDLKiosk/components/shell/HDLKioskBottomBarHost/index.js +4 -1
  139. package/lib/components/HDLKiosk/docs/00-/346/226/207/344/273/266/345/257/274/350/210/252.md +104 -167
  140. package/lib/components/HDLKiosk/docs/01-/346/240/270/345/277/203/350/277/220/350/241/214/346/234/272/345/210/266.md +95 -89
  141. package/lib/components/HDLKiosk/docs/02-Host/351/200/202/351/205/215/344/270/216/344/270/232/345/212/241/346/225/260/346/215/256.md +20 -19
  142. package/lib/components/HDLKiosk/docs/04-/350/256/276/345/244/207/344/270/216/347/247/260/351/207/215.md +43 -26
  143. package/lib/components/HDLKiosk/docs/05-/344/272/244/346/230/223/345/256/211/345/205/250.md +2 -0
  144. package/lib/components/HDLKiosk/docs/08-/346/227/240/345/244/264Application/350/277/220/350/241/214/346/227/266/351/207/215/346/236/204/350/256/276/350/256/241.md +719 -0
  145. package/lib/components/HDLKiosk/docs/09-Entry/350/256/276/345/244/207/344/272/213/344/273/266/351/207/215/346/236/204/344/277/256/345/244/215/346/212/245/345/221/212.md +187 -0
  146. package/lib/components/HDLKiosk/docs/README.md +6 -2
  147. package/lib/components/HDLKiosk/docs//345/256/236/346/226/275/350/277/233/345/272/246.md +8 -7
  148. package/lib/components/HDLKiosk/docs//346/236/266/346/236/204/350/256/276/350/256/241.md +16 -18
  149. package/lib/components/HDLKiosk/index.js +35 -33
  150. package/lib/components/HDLKiosk/index.less +8 -3
  151. package/lib/components/HDLKiosk/kernel/README.md +13 -12
  152. package/lib/components/HDLKiosk/kernel/application/defineApplication.js +65 -25
  153. package/lib/components/HDLKiosk/kernel/application/defineSlice.js +6 -6
  154. package/lib/components/HDLKiosk/kernel/application/runtime.js +237 -0
  155. package/lib/components/HDLKiosk/kernel/operations/coordinator.js +1 -1
  156. package/lib/components/HDLKiosk/kernel/operations/registry.js +3 -3
  157. package/lib/components/HDLKiosk/kernel/operations/sessionEpoch.js +1 -1
  158. package/lib/components/HDLKiosk/kernel/operations/types.js +8 -3
  159. package/lib/components/HDLKiosk/kernel/workflow/actor.js +16 -17
  160. package/lib/components/HDLKiosk/kernel/workflow/compiler.js +14 -16
  161. package/lib/components/HDLKiosk/runtime/createRuntime.js +239 -0
  162. package/lib/components/HDLKiosk/{devices → runtime/devices}/dedupeStore.js +1 -1
  163. package/lib/components/HDLKiosk/{devices → runtime/devices}/scaleIngress.js +1 -1
  164. package/lib/components/HDLKiosk/{devices/scale/runtime.js → runtime/devices/scaleStore.js} +17 -27
  165. package/lib/components/HDLKiosk/{devices → runtime/devices}/scannerIngress.js +1 -1
  166. package/lib/components/HDLKiosk/runtime/devices/scannerSessionPort.js +60 -0
  167. package/lib/components/HDLKiosk/runtime/devices/scannerSessionRouter.js +212 -0
  168. package/lib/components/HDLKiosk/runtime/operations/barcode.js +17 -0
  169. package/lib/components/HDLKiosk/runtime/operations/cart.js +46 -0
  170. package/lib/components/HDLKiosk/{app → runtime}/operations/cartConsistency.js +1 -1
  171. package/lib/components/HDLKiosk/{app → runtime}/operations/checkout.js +97 -112
  172. package/lib/components/HDLKiosk/{app → runtime}/operations/checkoutRequirements.js +1 -1
  173. package/lib/components/HDLKiosk/{app → runtime}/operations/checkoutSafety.js +1 -1
  174. package/lib/components/HDLKiosk/{app → runtime}/operations/coordinator.js +2 -2
  175. package/lib/components/HDLKiosk/runtime/operations/customization.js +73 -0
  176. package/lib/components/HDLKiosk/{app → runtime}/operations/errors.js +1 -1
  177. package/lib/components/HDLKiosk/runtime/operations/fulfillment.js +5 -0
  178. package/lib/components/HDLKiosk/runtime/operations/identity.js +55 -0
  179. package/lib/components/HDLKiosk/runtime/operations/registry.js +34 -0
  180. package/lib/components/HDLKiosk/runtime/operations/session.js +30 -0
  181. package/lib/components/HDLKiosk/runtime/operations/types.js +14 -0
  182. package/lib/components/HDLKiosk/runtime/session/blockPolicy.js +14 -0
  183. package/lib/components/HDLKiosk/runtime/{createWorkflowSession.js → session/createSession.js} +71 -21
  184. package/lib/components/HDLKiosk/runtime/{domainTransitionRunner.js → session/transitionRunner.js} +10 -5
  185. package/lib/components/HDLKiosk/runtime/{workflowContext.js → session/workflowContext.js} +2 -2
  186. package/lib/components/HDLKiosk/runtime/{workflowLifecycle.js → session/workflowLifecycle.js} +2 -2
  187. package/lib/components/HDLKiosk/runtime/triggers.js +28 -0
  188. package/lib/components/HDLKiosk/slices/catalog/Screen/index.js +15 -8
  189. package/lib/components/HDLKiosk/slices/catalog/Screen/index.less +74 -13
  190. package/lib/components/HDLKiosk/slices/catalog/slice.js +3 -3
  191. package/lib/components/HDLKiosk/slices/customization/Screen/index.js +35 -36
  192. package/lib/components/HDLKiosk/slices/customization/Screen/index.less +5 -0
  193. package/lib/components/HDLKiosk/slices/customization/slice.js +5 -6
  194. package/lib/components/HDLKiosk/slices/fulfillment/slice.js +3 -3
  195. package/lib/components/HDLKiosk/slices/fulfillment/view.js +1 -1
  196. package/lib/components/HDLKiosk/slices/identity/Screen/index.less +1 -1
  197. package/lib/components/HDLKiosk/slices/identity/slice.js +4 -4
  198. package/lib/components/HDLKiosk/slices/identity/view.js +1 -1
  199. package/lib/components/HDLKiosk/slices/payment/Screen/index.less +1 -1
  200. package/lib/components/HDLKiosk/slices/payment/slice.js +5 -5
  201. package/lib/components/HDLKiosk/slices/primaryProductPrompt/slice.js +1 -1
  202. package/lib/components/HDLKiosk/{runtime → ui}/HDLKioskWorkflowView.js +69 -130
  203. package/lib/components/HDLKiosk/ui/ScaleSimulatorConsole/index.js +390 -0
  204. package/lib/components/HDLKiosk/ui/ScaleSimulatorConsole/index.less +621 -0
  205. package/lib/components/HDLKiosk/{app → ui}/ScreenRenderer.js +1 -1
  206. package/lib/components/HDLKiosk/ui/collaborationStatus.js +11 -0
  207. package/lib/components/HDLKiosk/ui/controllers/useHDLKioskActionDispatcher.js +67 -0
  208. package/lib/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskCustomerController.js +1 -1
  209. package/lib/components/HDLKiosk/ui/controllers/useHDLKioskDeviceController.js +26 -0
  210. package/lib/components/HDLKiosk/ui/controllers/useHDLKioskExitController.js +54 -0
  211. package/lib/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskScreenData.js +1 -1
  212. package/lib/components/HDLKiosk/ui/controllers/useHDLKioskSessionController.js +40 -0
  213. package/lib/components/HDLKiosk/{app → ui}/entry/Screen/index.js +8 -6
  214. package/lib/components/HDLKiosk/{app → ui}/entry/model.js +2 -2
  215. package/lib/components/HDLKiosk/ui/scale.js +24 -0
  216. package/lib/components/HDLKiosk/{runtime/useHostSnapshot.js → ui/snapshots.js} +6 -7
  217. package/lib/components/HDLKiosk/{app → ui}/views.js +1 -1
  218. package/lib/components/HDLKiosk/{runtime → ui}/workflowEvent.js +1 -1
  219. package/lib/components/HDLKiosk/utils.js +4 -4
  220. package/lib/components/bigSale/templates/HDLKiosk/README.md +43 -0
  221. package/lib/components/bigSale/templates/HDLKiosk/adapter/createHost.js +9 -9
  222. package/lib/components/bigSale/templates/HDLKiosk/adapter/{devices.js → devices/devicePort.js} +10 -38
  223. package/lib/components/bigSale/templates/HDLKiosk/adapter/{capabilities.js → host/capabilities.js} +2 -2
  224. package/lib/components/bigSale/templates/HDLKiosk/adapter/{fulfillment.js → host/fulfillmentWriter.js} +3 -3
  225. package/lib/components/bigSale/templates/HDLKiosk/adapter/{projection.js → host/projection.js} +25 -14
  226. package/lib/components/bigSale/templates/HDLKiosk/adapter/{telemetry.js → host/telemetry.js} +1 -1
  227. package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/cart.js +189 -0
  228. package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/catalog.js +162 -0
  229. package/lib/components/bigSale/templates/HDLKiosk/adapter/{customizationProduct.js → sales/customizationProduct.js} +4 -4
  230. package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/fulfillment.js +31 -0
  231. package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/identity.js +57 -0
  232. package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/index.js +18 -0
  233. package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/payment.js +123 -0
  234. package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/session.js +71 -0
  235. package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/weightedOperations.js +126 -0
  236. package/lib/components/bigSale/templates/HDLKiosk/adapter/{weightedProduct.js → sales/weightedProduct.js} +3 -3
  237. package/lib/components/bigSale/templates/HDLKiosk/adapter/useBigSaleHDLKioskAdapter.js +42 -0
  238. package/lib/components/bigSale/templates/HDLKiosk/adapter/useBigSaleHDLKioskHost.js +10 -7
  239. package/lib/components/bigSale/templates/HDLKiosk/cart/useBigSaleHDLKioskCart.js +124 -0
  240. package/lib/components/bigSale/templates/HDLKiosk/{adapter → hooks}/useHDLKioskEntryPreparationToast.js +2 -1
  241. package/lib/components/bigSale/templates/HDLKiosk/index.js +43 -149
  242. package/lib/components/bigSale/templates/HDLKiosk/{adapter/scaleTrigger.js → runtime/BigSaleScaleRuntimeOwner.js} +31 -61
  243. package/lib/components/bigSale/templates/HDLKiosk/{adapter → runtime}/HDLKioskPaymentRuntime.js +4 -3
  244. package/lib/components/bigSale/templates/HDLKiosk/runtime/scaleBridge.js +44 -0
  245. package/package.json +2 -2
  246. package/es/components/HDLKiosk/app/constants.js +0 -9
  247. package/es/components/HDLKiosk/app/operations/barcode.js +0 -22
  248. package/es/components/HDLKiosk/app/operations/cart.js +0 -60
  249. package/es/components/HDLKiosk/app/operations/fulfillment.js +0 -11
  250. package/es/components/HDLKiosk/app/operations/session.js +0 -41
  251. package/es/components/HDLKiosk/app/operations/types.js +0 -11
  252. package/es/components/HDLKiosk/devices/entryArbiter.js +0 -33
  253. package/es/components/HDLKiosk/runtime/controllers/useHDLKioskDeviceController.js +0 -75
  254. package/es/components/HDLKiosk/runtime/controllers/useHDLKioskScannerController.js +0 -160
  255. package/es/components/HDLKiosk/runtime/controllers/useHDLKioskSessionController.js +0 -185
  256. package/es/components/HDLKiosk/runtime/useWorkflowSnapshot.js +0 -12
  257. package/es/components/HDLKiosk/slices/customization/operation.js +0 -80
  258. package/es/components/HDLKiosk/slices/identity/operation.js +0 -60
  259. package/es/components/bigSale/templates/HDLKiosk/adapter/sales.js +0 -692
  260. package/lib/components/HDLKiosk/app/constants.js +0 -9
  261. package/lib/components/HDLKiosk/app/operations/barcode.js +0 -21
  262. package/lib/components/HDLKiosk/app/operations/cart.js +0 -62
  263. package/lib/components/HDLKiosk/app/operations/fulfillment.js +0 -10
  264. package/lib/components/HDLKiosk/app/operations/session.js +0 -42
  265. package/lib/components/HDLKiosk/app/operations/types.js +0 -12
  266. package/lib/components/HDLKiosk/devices/entryArbiter.js +0 -33
  267. package/lib/components/HDLKiosk/runtime/controllers/useHDLKioskDeviceController.js +0 -76
  268. package/lib/components/HDLKiosk/runtime/controllers/useHDLKioskScannerController.js +0 -161
  269. package/lib/components/HDLKiosk/runtime/controllers/useHDLKioskSessionController.js +0 -186
  270. package/lib/components/HDLKiosk/runtime/useWorkflowSnapshot.js +0 -13
  271. package/lib/components/HDLKiosk/slices/customization/operation.js +0 -83
  272. package/lib/components/HDLKiosk/slices/identity/operation.js +0 -60
  273. package/lib/components/bigSale/templates/HDLKiosk/adapter/sales.js +0 -694
  274. /package/es/components/HDLKiosk/{app → ui}/entry/Screen/index.less +0 -0
  275. /package/lib/components/HDLKiosk/{app → ui}/entry/Screen/index.less +0 -0
@@ -1,23 +1,17 @@
1
1
  const require_runtime = require("../../../../_virtual/_rolldown/runtime.js");
2
2
  const require_objectSpread2 = require("../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js");
3
3
  const require_useEngineContext = require("../../../../hooks/useEngineContext.js");
4
- const require_usePickSaleDetailContext = require("../../hooks/usePickSaleDetailContext.js");
5
- const require_useOrderNoteModal = require("../../../../plus/saleDetail/hooks/useOrderNoteModal.js");
6
- const require_adapters = require("../../../../plus/saleDetail/components/PromotionWalletPanels/adapters.js");
7
- const require_useSaleWalletAssets = require("../../../../plus/saleDetail/components/PromotionWalletPanels/useSaleWalletAssets.js");
8
- const require_Base = require("../../../../plus/saleDetail/Base.js");
9
4
  const require_locales = require("../../../HDLKiosk/locales.js");
10
- const require_runtime$1 = require("../../../HDLKiosk/devices/scale/runtime.js");
11
5
  const require_index = require("../../../HDLKiosk/index.js");
12
- const require_config = require("../../../HDLKiosk/contracts/config.js");
13
- const require_useBigSaleHDLKioskHost = require("./adapter/useBigSaleHDLKioskHost.js");
14
- const require_useHDLKioskEntryPreparationToast = require("./adapter/useHDLKioskEntryPreparationToast.js");
15
- const require_HDLKioskPaymentRuntime = require("./adapter/HDLKioskPaymentRuntime.js");
16
- const require_fulfillment = require("./adapter/fulfillment.js");
6
+ const require_config = require("../../../HDLKiosk/app/contracts/config.js");
7
+ const require_useBigSaleHDLKioskAdapter = require("./adapter/useBigSaleHDLKioskAdapter.js");
8
+ const require_useHDLKioskEntryPreparationToast = require("./hooks/useHDLKioskEntryPreparationToast.js");
9
+ const require_HDLKioskPaymentRuntime = require("./runtime/HDLKioskPaymentRuntime.js");
17
10
  const require_HDLKioskIdentityAuthPanel = require("./auth/HDLKioskIdentityAuthPanel.js");
18
11
  const require_useHDLKioskH5AuthModule = require("./auth/useHDLKioskH5AuthModule.js");
19
- const require_scaleTrigger = require("./adapter/scaleTrigger.js");
12
+ const require_BigSaleScaleRuntimeOwner = require("./runtime/BigSaleScaleRuntimeOwner.js");
20
13
  const require_primaryWeightedProduct = require("./primaryWeightedProduct.js");
14
+ const require_useBigSaleHDLKioskCart = require("./cart/useBigSaleHDLKioskCart.js");
21
15
  let react = require("react");
22
16
  react = require_runtime.__toESM(react);
23
17
  let _pisell_utils = require("@pisell/utils");
@@ -28,41 +22,6 @@ let _pisell_utils = require("@pisell/utils");
28
22
  * NativeScale owner,再将独立 HDLKiosk 作为物料渲染。
29
23
  * 边界:兼容代码限制在本目录,不修改 HDLKiosk Core,也不要求 BigSale 上层传专用 props。
30
24
  */
31
- const HDL_KIOSK_CART_HIDDEN_MODULES = [
32
- "overview",
33
- "customer",
34
- "contact",
35
- "cartActions",
36
- "orderActions",
37
- "promotionAlert"
38
- ];
39
- const HDL_KIOSK_A12_PRESENTATION = {
40
- density: "comfortable",
41
- optionColumns: 2,
42
- mediaFit: "cover",
43
- contentAlign: "center",
44
- tokens: {
45
- background: "#ffffff",
46
- borderColor: "#e4e7ec",
47
- borderRadius: "18px",
48
- minHeight: "164px",
49
- mediaWidth: "228px",
50
- actionRailWidth: "174px",
51
- contentPadding: "20px 22px",
52
- actionRailPadding: "18px 20px",
53
- accentColor: "#b20d12",
54
- titleColor: "#101828",
55
- titleFontSize: "32px",
56
- titleFontWeight: 800,
57
- priceColor: "#b20d12",
58
- priceFontSize: "30px",
59
- optionBackground: "#f5f6f8",
60
- optionLabelColor: "#667085",
61
- optionValueColor: "#101828",
62
- optionGap: "6px",
63
- shadow: "0 12px 28px rgba(16, 24, 40, 0.08)"
64
- }
65
- };
66
25
  function resolveHDLKioskBigSaleConfig(primaryWeightedProductId) {
67
26
  return require_config.resolveHDLKioskConfig({ primaryWeightedProductId });
68
27
  }
@@ -71,7 +30,7 @@ function resolveHDLKioskBigSaleConfig(primaryWeightedProductId) {
71
30
  * 仅负责装配 Host 和配置,不承载流程或页面语义。
72
31
  */
73
32
  function HDLKioskBigSaleTemplate({ isActive = true, context, businessCode, locale, productLoadParams, productCatalogSessionKey, productCatalogReady = true, saleDetailModuleConfig, onOrderComplete, variant }) {
74
- var _engineContext$appHel, _engineContext$appHel2, _engineContext$appHel4, _engineContext$appHel5, _engineContext$appHel6, _engineContext$appHel7, _note, _ref, _context$sales$tempOr, _context$sales$bookin, _context$sales$bookin2, _context$customer$sel, _context$sales$bookin3, _context$sales$bookin4, _context$sales$bookin5, _productLoadParams$me, _context$sales$defaul, _context$sales$tempOr2, _context$sales$tempOr3, _context$sales$tempOr4, _context$sales$tempOr5, _ref3;
33
+ var _engineContext$appHel, _engineContext$appHel2, _engineContext$appHel4, _engineContext$appHel9, _engineContext$appHel10, _engineContext$appHel11, _engineContext$appHel12, _context$sales$bookin, _context$sales$bookin2, _context$sales$bookin3, _productLoadParams$me, _context$sales$defaul, _context$sales$tempOr, _context$sales$tempOr2, _context$sales$tempOr3, _context$sales$tempOr4, _ref;
75
34
  const entryDataPreparing = !productCatalogReady || context.products.loading || context.sales.catalogState === "pending";
76
35
  const primaryWeightedProductId = !entryDataPreparing && !context.products.error && context.sales.catalogState === "ready" ? require_primaryWeightedProduct.resolvePrimaryWeightedProductId(context.products.products) : void 0;
77
36
  const config = (0, react.useMemo)(() => resolveHDLKioskBigSaleConfig(primaryWeightedProductId), [primaryWeightedProductId]);
@@ -92,113 +51,49 @@ function HDLKioskBigSaleTemplate({ isActive = true, context, businessCode, local
92
51
  const app = engineContext === null || engineContext === void 0 || (_engineContext$appHel3 = engineContext.appHelper) === null || _engineContext$appHel3 === void 0 || (_engineContext$appHel3 = _engineContext$appHel3.utils) === null || _engineContext$appHel3 === void 0 ? void 0 : _engineContext$appHel3.getApp();
93
52
  app === null || app === void 0 || (_app$history = app.history) === null || _app$history === void 0 || _app$history.push("/admin-entry");
94
53
  }, [engineContext === null || engineContext === void 0 || (_engineContext$appHel4 = engineContext.appHelper) === null || _engineContext$appHel4 === void 0 ? void 0 : _engineContext$appHel4.utils]);
95
- const h5AuthModuleName = require_useHDLKioskH5AuthModule.useHDLKioskH5AuthModule(engineContext, context.sales);
96
- const scaleTriggerHub = (0, react.useMemo)(() => require_scaleTrigger.createScaleTriggerHub(), []);
97
- const scaleRuntime = (0, react.useMemo)(require_runtime$1.createHDLScaleRuntime, []);
98
- const authenticatedCustomerRef = (0, react.useRef)(void 0);
99
- const paymentControllerRef = (0, react.useRef)();
100
- const walletAssetsCleanupCoordinatorRef = (0, react.useRef)(require_useSaleWalletAssets.createSaleWalletAssetsCleanupCoordinator());
101
- const scaleRuntimeOwnerId = (0, react.useMemo)(() => `hdl-kiosk-scale-runtime:${Date.now()}`, []);
102
- const nativeScaleTools = engineContext === null || engineContext === void 0 || (_engineContext$appHel5 = engineContext.appHelper) === null || _engineContext$appHel5 === void 0 || (_engineContext$appHel5 = _engineContext$appHel5.utils) === null || _engineContext$appHel5 === void 0 || (_engineContext$appHel6 = _engineContext$appHel5.getApp) === null || _engineContext$appHel6 === void 0 || (_engineContext$appHel6 = _engineContext$appHel6.call(_engineContext$appHel5)) === null || _engineContext$appHel6 === void 0 || (_engineContext$appHel6 = _engineContext$appHel6.plugins) === null || _engineContext$appHel6 === void 0 || (_engineContext$appHel7 = _engineContext$appHel6.get) === null || _engineContext$appHel7 === void 0 ? void 0 : _engineContext$appHel7.call(_engineContext$appHel6, "nativeScaleTools");
103
- const nativeScaleSourceAvailable = typeof (nativeScaleTools === null || nativeScaleTools === void 0 ? void 0 : nativeScaleTools.useNativeScale) === "function";
104
- const fulfillmentWriter = (0, react.useMemo)(() => require_fulfillment.createHDLKioskFulfillmentWriter(context.sales.bookingTicket), [context.sales.bookingTicket]);
105
- const host = require_useBigSaleHDLKioskHost.useBigSaleHDLKioskHost(context, businessCode, (0, react.useMemo)(() => ({
106
- writeFulfillment: fulfillmentWriter,
107
- getPaymentController: () => paymentControllerRef.current,
108
- subscribeWeightChange: scaleTriggerHub.subscribeWeightChange,
109
- subscribeScaleConnection: scaleTriggerHub.subscribeConnection,
110
- getAuthenticatedCustomer: (customerId) => {
111
- const customer = authenticatedCustomerRef.current;
112
- return customer && String(customer.id) === customerId ? customer : void 0;
54
+ const publishCollaborationStatus = (0, react.useCallback)((status) => {
55
+ try {
56
+ var _engineContext$appHel5, _engineContext$appHel6, _engineContext$appHel7, _engineContext$appHel8;
57
+ engineContext === null || engineContext === void 0 || (_engineContext$appHel5 = engineContext.appHelper) === null || _engineContext$appHel5 === void 0 || (_engineContext$appHel5 = _engineContext$appHel5.utils) === null || _engineContext$appHel5 === void 0 || (_engineContext$appHel6 = _engineContext$appHel5.getApp) === null || _engineContext$appHel6 === void 0 || (_engineContext$appHel6 = _engineContext$appHel6.call(_engineContext$appHel5)) === null || _engineContext$appHel6 === void 0 || (_engineContext$appHel6 = _engineContext$appHel6.applicationManager) === null || _engineContext$appHel6 === void 0 || (_engineContext$appHel7 = _engineContext$appHel6.get) === null || _engineContext$appHel7 === void 0 || (_engineContext$appHel7 = _engineContext$appHel7.call(_engineContext$appHel6, "kioskCollaborationPreview")) === null || _engineContext$appHel7 === void 0 || (_engineContext$appHel8 = _engineContext$appHel7.runFunction) === null || _engineContext$appHel8 === void 0 || _engineContext$appHel8.call(_engineContext$appHel7, "publishStatus", { status });
58
+ } catch (error) {
59
+ console.warn("[HDLKiosk] 协同预览状态上报失败,不影响销售流程", error);
113
60
  }
114
- }), [fulfillmentWriter, scaleTriggerHub]), nativeScaleSourceAvailable);
61
+ }, [engineContext === null || engineContext === void 0 || (_engineContext$appHel9 = engineContext.appHelper) === null || _engineContext$appHel9 === void 0 ? void 0 : _engineContext$appHel9.utils]);
62
+ const h5AuthModuleName = require_useHDLKioskH5AuthModule.useHDLKioskH5AuthModule(engineContext, context.sales);
63
+ const nativeScaleTools = engineContext === null || engineContext === void 0 || (_engineContext$appHel10 = engineContext.appHelper) === null || _engineContext$appHel10 === void 0 || (_engineContext$appHel10 = _engineContext$appHel10.utils) === null || _engineContext$appHel10 === void 0 || (_engineContext$appHel11 = _engineContext$appHel10.getApp) === null || _engineContext$appHel11 === void 0 || (_engineContext$appHel11 = _engineContext$appHel11.call(_engineContext$appHel10)) === null || _engineContext$appHel11 === void 0 || (_engineContext$appHel11 = _engineContext$appHel11.plugins) === null || _engineContext$appHel11 === void 0 || (_engineContext$appHel12 = _engineContext$appHel11.get) === null || _engineContext$appHel12 === void 0 ? void 0 : _engineContext$appHel12.call(_engineContext$appHel11, "nativeScaleTools");
64
+ const { host, paymentControllerRef, rememberAuthenticatedCustomer, scaleBridge } = require_useBigSaleHDLKioskAdapter.useBigSaleHDLKioskAdapter({
65
+ context,
66
+ businessCode,
67
+ isActive,
68
+ nativeScaleSourceAvailable: typeof (nativeScaleTools === null || nativeScaleTools === void 0 ? void 0 : nativeScaleTools.useNativeScale) === "function"
69
+ });
115
70
  const catalogLoadAttemptRef = (0, react.useRef)(void 0);
116
71
  const renderIdentityAuth = (0, react.useCallback)((props) => /* @__PURE__ */ react.default.createElement(require_HDLKioskIdentityAuthPanel.HDLKioskIdentityAuthPanel, require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, props), {}, {
117
72
  context,
118
73
  registerAndLoginModuleName: h5AuthModuleName,
119
- onCustomerResolved: (customer) => {
120
- authenticatedCustomerRef.current = customer;
121
- }
122
- })), [context, h5AuthModuleName]);
123
- const saleDetailContext = require_usePickSaleDetailContext.usePickSaleDetailContext(context, onOrderComplete);
124
- const { openOrderNoteModal, orderNoteModal } = require_useOrderNoteModal.useOrderNoteModal({
125
- context: saleDetailContext,
126
- modalClassName: "pisell-kiosk-modal pisell-kiosk-note-modal"
127
- });
128
- const hasOrderNote = Boolean(String((_note = (_ref = (_context$sales$tempOr = context.sales.tempOrder) !== null && _context$sales$tempOr !== void 0 ? _context$sales$tempOr : (_context$sales$bookin = context.sales.bookingTicket) === null || _context$sales$bookin === void 0 || (_context$sales$bookin2 = _context$sales$bookin.getTempOrder) === null || _context$sales$bookin2 === void 0 ? void 0 : _context$sales$bookin2.call(_context$sales$bookin)) === null || _ref === void 0 ? void 0 : _ref.note) !== null && _note !== void 0 ? _note : "").trim());
129
- const selectedPromotionCount = (0, react.useMemo)(() => require_adapters.buildVoucherViews(context.cart.discountList || []).filter((voucher) => voucher.selected).length, [context.cart.discountList]);
130
- const cartOverlayActions = (0, react.useMemo)(() => ({
131
- hasNote: hasOrderNote,
132
- onAddNote: openOrderNoteModal,
133
- promotionAppliedCount: selectedPromotionCount
134
- }), [
135
- hasOrderNote,
136
- openOrderNoteModal,
137
- selectedPromotionCount
74
+ onCustomerResolved: rememberAuthenticatedCustomer
75
+ })), [
76
+ context,
77
+ h5AuthModuleName,
78
+ rememberAuthenticatedCustomer
138
79
  ]);
139
- const voucherWalletModuleConfig = (0, react.useMemo)(() => require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, saleDetailModuleConfig), {}, {
140
- hidden: HDL_KIOSK_CART_HIDDEN_MODULES,
141
- cartItems: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, saleDetailModuleConfig === null || saleDetailModuleConfig === void 0 ? void 0 : saleDetailModuleConfig.cartItems), {}, {
142
- rightActionsDisplay: "inline",
143
- bookingQuantityMode: "hidden",
144
- lineNoteEditingEnabled: true,
145
- showInlineRemoveButton: false,
146
- showQuantityBadge: false,
147
- showRemoveButton: true,
148
- clearSelectedQuantityOnDelete: true,
149
- productLineItemType: "a12",
150
- productLineItemPresentation: HDL_KIOSK_A12_PRESENTATION
151
- }),
152
- amountDetails: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, saleDetailModuleConfig === null || saleDetailModuleConfig === void 0 ? void 0 : saleDetailModuleConfig.amountDetails), {}, { defaultExpanded: true }),
153
- promotionWalletPanels: typeof (saleDetailModuleConfig === null || saleDetailModuleConfig === void 0 ? void 0 : saleDetailModuleConfig.promotionWalletPanels) === "object" ? saleDetailModuleConfig.promotionWalletPanels : void 0,
154
- promotionWalletPanelsAppearance: "light",
155
- promotionWalletPanelsBehavior: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, saleDetailModuleConfig === null || saleDetailModuleConfig === void 0 ? void 0 : saleDetailModuleConfig.promotionWalletPanelsBehavior), {}, {
156
- walletAssetsCleanupCoordinator: walletAssetsCleanupCoordinatorRef.current,
157
- enableManualPromotionCode: true,
158
- enablePromotionBanner: true,
159
- enableVoucherProductAdd: true,
160
- enableWalletAssets: true,
161
- preserveWalletAssetsWhileRefreshing: true
162
- })
163
- }), [saleDetailModuleConfig]);
164
- const isPrimaryProductLine = (0, react.useCallback)((item) => {
165
- var _ref2, _item$_extend$product, _item$_extend, _config$primaryWeight;
166
- return String((_ref2 = (_item$_extend$product = item === null || item === void 0 || (_item$_extend = item._extend) === null || _item$_extend === void 0 || (_item$_extend = _item$_extend.product) === null || _item$_extend === void 0 ? void 0 : _item$_extend.product_id) !== null && _item$_extend$product !== void 0 ? _item$_extend$product : item === null || item === void 0 ? void 0 : item.product_id) !== null && _ref2 !== void 0 ? _ref2 : "") === String((_config$primaryWeight = config.primaryWeightedProductId) !== null && _config$primaryWeight !== void 0 ? _config$primaryWeight : "");
167
- }, [config.primaryWeightedProductId]);
168
- const renderCartContent = (0, react.useCallback)(({ promotionsVisible, onEditPrimaryProduct }) => /* @__PURE__ */ react.default.createElement(require_Base.default, {
169
- className: "hdl-kiosk-voucher-wallet",
170
- context: saleDetailContext,
171
- mobilePresentation: "inline",
172
- moduleConfig: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, voucherWalletModuleConfig), {}, {
173
- hidden: [...HDL_KIOSK_CART_HIDDEN_MODULES, ...promotionsVisible ? [] : ["promotionWalletPanels"]],
174
- cartItems: require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, voucherWalletModuleConfig.cartItems), {}, {
175
- isProductLineItemEditable: isPrimaryProductLine,
176
- onProductLineItemEdit: onEditPrimaryProduct ? () => onEditPrimaryProduct() : void 0
177
- })
178
- }),
179
- renderType: "current",
180
- template: "A",
80
+ const { cartOverlayActions, orderNoteModal, renderCartContent } = require_useBigSaleHDLKioskCart.useBigSaleHDLKioskCart({
81
+ context,
82
+ onOrderComplete,
83
+ primaryWeightedProductId: config.primaryWeightedProductId,
84
+ saleDetailModuleConfig,
181
85
  variant
182
- }), [
183
- isPrimaryProductLine,
184
- saleDetailContext,
185
- variant,
186
- voucherWalletModuleConfig
187
- ]);
188
- const selectedCustomerId = (_context$customer$sel = context.customer.selected) === null || _context$customer$sel === void 0 ? void 0 : _context$customer$sel.id;
189
- (0, react.useEffect)(() => {
190
- if (!isActive || selectedCustomerId == null) authenticatedCustomerRef.current = void 0;
191
- }, [isActive, selectedCustomerId]);
86
+ });
192
87
  const catalogProductCount = context.products.products.length;
193
- const osCatalogProductCount = (_context$sales$bookin3 = (_context$sales$bookin4 = context.sales.bookingTicket) === null || _context$sales$bookin4 === void 0 || (_context$sales$bookin5 = _context$sales$bookin4.getProductCatalog) === null || _context$sales$bookin5 === void 0 || (_context$sales$bookin5 = _context$sales$bookin5.call(_context$sales$bookin4)) === null || _context$sales$bookin5 === void 0 || (_context$sales$bookin5 = _context$sales$bookin5.products) === null || _context$sales$bookin5 === void 0 ? void 0 : _context$sales$bookin5.length) !== null && _context$sales$bookin3 !== void 0 ? _context$sales$bookin3 : 0;
88
+ const osCatalogProductCount = (_context$sales$bookin = (_context$sales$bookin2 = context.sales.bookingTicket) === null || _context$sales$bookin2 === void 0 || (_context$sales$bookin3 = _context$sales$bookin2.getProductCatalog) === null || _context$sales$bookin3 === void 0 || (_context$sales$bookin3 = _context$sales$bookin3.call(_context$sales$bookin2)) === null || _context$sales$bookin3 === void 0 || (_context$sales$bookin3 = _context$sales$bookin3.products) === null || _context$sales$bookin3 === void 0 ? void 0 : _context$sales$bookin3.length) !== null && _context$sales$bookin !== void 0 ? _context$sales$bookin : 0;
194
89
  const menuListIds = (_productLoadParams$me = productLoadParams === null || productLoadParams === void 0 ? void 0 : productLoadParams.menu_list_ids) !== null && _productLoadParams$me !== void 0 ? _productLoadParams$me : (_context$sales$defaul = context.sales.defaultProductLoadParams) === null || _context$sales$defaul === void 0 ? void 0 : _context$sales$defaul.menu_list_ids;
195
90
  const hasCatalogSource = catalogProductCount > 0 || osCatalogProductCount > 0 || Array.isArray(menuListIds) && menuListIds.length > 0;
196
91
  const skipsCatalogLoad = typeof productCatalogSessionKey === "string" && /-p0$/.test(productCatalogSessionKey);
197
92
  const catalogLoadKey = JSON.stringify({
198
93
  sessionKey: productCatalogSessionKey !== null && productCatalogSessionKey !== void 0 ? productCatalogSessionKey : "",
199
- orderId: (_context$sales$tempOr2 = (_context$sales$tempOr3 = context.sales.tempOrder) === null || _context$sales$tempOr3 === void 0 ? void 0 : _context$sales$tempOr3.order_id) !== null && _context$sales$tempOr2 !== void 0 ? _context$sales$tempOr2 : null,
200
- customerId: (_context$sales$tempOr4 = (_context$sales$tempOr5 = context.sales.tempOrder) === null || _context$sales$tempOr5 === void 0 ? void 0 : _context$sales$tempOr5.customer_id) !== null && _context$sales$tempOr4 !== void 0 ? _context$sales$tempOr4 : null,
201
- params: (_ref3 = productLoadParams !== null && productLoadParams !== void 0 ? productLoadParams : context.sales.defaultProductLoadParams) !== null && _ref3 !== void 0 ? _ref3 : {}
94
+ orderId: (_context$sales$tempOr = (_context$sales$tempOr2 = context.sales.tempOrder) === null || _context$sales$tempOr2 === void 0 ? void 0 : _context$sales$tempOr2.order_id) !== null && _context$sales$tempOr !== void 0 ? _context$sales$tempOr : null,
95
+ customerId: (_context$sales$tempOr3 = (_context$sales$tempOr4 = context.sales.tempOrder) === null || _context$sales$tempOr4 === void 0 ? void 0 : _context$sales$tempOr4.customer_id) !== null && _context$sales$tempOr3 !== void 0 ? _context$sales$tempOr3 : null,
96
+ params: (_ref = productLoadParams !== null && productLoadParams !== void 0 ? productLoadParams : context.sales.defaultProductLoadParams) !== null && _ref !== void 0 ? _ref : {}
202
97
  });
203
98
  (0, react.useEffect)(() => {
204
99
  if (!isActive || !productCatalogReady || skipsCatalogLoad || !context.sales.isReady || context.sales.catalogState !== "ready" || !context.sales.bookingTicket || !hasCatalogSource || catalogLoadAttemptRef.current === catalogLoadKey) return;
@@ -220,13 +115,11 @@ function HDLKioskBigSaleTemplate({ isActive = true, context, businessCode, local
220
115
  productLoadParams,
221
116
  skipsCatalogLoad
222
117
  ]);
223
- return /* @__PURE__ */ react.default.createElement(react.default.Fragment, null, /* @__PURE__ */ react.default.createElement(require_scaleTrigger.BigSaleScaleRuntimeOwner, {
224
- active: isActive && (config.enabledEntries.includes("scale") || config.enabledEntries.includes("quick")) && Boolean(config.primaryWeightedProductId),
225
- hub: scaleTriggerHub,
118
+ return /* @__PURE__ */ react.default.createElement(react.default.Fragment, null, /* @__PURE__ */ react.default.createElement(require_BigSaleScaleRuntimeOwner.BigSaleScaleRuntimeOwner, {
119
+ active: isActive && (config.enabledEntries.includes("scale") || config.enabledEntries.includes("quick") || config.enabledEntries.includes("barcode")) && Boolean(config.primaryWeightedProductId),
120
+ bridge: scaleBridge,
226
121
  nativeScaleTools,
227
- minimumWeightKg: config.scaleTriggerMinimumWeightKg,
228
- ownerId: scaleRuntimeOwnerId,
229
- runtime: scaleRuntime
122
+ minimumWeightKg: config.scaleTriggerMinimumWeightKg
230
123
  }), /* @__PURE__ */ react.default.createElement(require_index.default, {
231
124
  host,
232
125
  config,
@@ -234,8 +127,9 @@ function HDLKioskBigSaleTemplate({ isActive = true, context, businessCode, local
234
127
  isActive,
235
128
  locale,
236
129
  onTechnicalSupportClick: handleTechnicalSupportClick,
130
+ onCollaborationStatusChange: publishCollaborationStatus,
237
131
  onLocaleChange: typeof updateLocaleRuntime === "function" ? handleLocaleChange : void 0,
238
- scaleRuntime,
132
+ scaleRuntime: scaleBridge.runtime,
239
133
  renderIdentityAuth: h5AuthModuleName ? renderIdentityAuth : void 0,
240
134
  renderCartContent,
241
135
  cartOverlayActions
@@ -3,51 +3,13 @@ const require_defineProperty = require("../../../../../_virtual/_@oxc-project_ru
3
3
  const require_objectSpread2 = require("../../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js");
4
4
  let react = require("react");
5
5
  react = require_runtime.__toESM(react);
6
- //#region src/components/bigSale/templates/HDLKiosk/adapter/scaleTrigger.tsx
6
+ //#region src/components/bigSale/templates/HDLKiosk/runtime/BigSaleScaleRuntimeOwner.tsx
7
7
  /**
8
8
  * 文件角色:拥有 BigSale 的 useNativeScale Hook,并桥接到 HDLKiosk 全局 Scale Runtime。
9
- * 运行机制:顶层 owner 在整个物料生命周期持续监听真秤/Web 模拟器,将读数发布给 Runtime
10
- * 和入口 TriggerHub;Screen 只订阅共享快照。
9
+ * 运行机制:顶层 owner 在整个物料生命周期持续监听真秤/Web 模拟器,将读数统一发布给
10
+ * ScaleBridge;Screen 读取 Snapshot,入口消费离散设备事件。
11
11
  * 边界:不复用旧 Weighing UI,不在本文件决定进入流程或更新购物车。
12
12
  */
13
- function createScaleTriggerHub() {
14
- const weightListeners = /* @__PURE__ */ new Set();
15
- const connectionListeners = /* @__PURE__ */ new Set();
16
- const activityListeners = /* @__PURE__ */ new Set();
17
- let lastConnection;
18
- const notifyActivity = () => activityListeners.forEach((listener) => listener());
19
- return {
20
- subscribeWeightChange: (listener) => {
21
- weightListeners.add(listener);
22
- notifyActivity();
23
- return () => {
24
- weightListeners.delete(listener);
25
- notifyActivity();
26
- };
27
- },
28
- subscribeConnection: (listener) => {
29
- connectionListeners.add(listener);
30
- if (lastConnection) listener(lastConnection);
31
- notifyActivity();
32
- return () => {
33
- connectionListeners.delete(listener);
34
- notifyActivity();
35
- };
36
- },
37
- publishWeightChange: (payload) => weightListeners.forEach((listener) => listener(payload)),
38
- publishConnection: (payload) => {
39
- lastConnection = payload;
40
- connectionListeners.forEach((listener) => listener(payload));
41
- },
42
- hasSubscribers: () => weightListeners.size > 0 || connectionListeners.size > 0,
43
- subscribeActivity: (listener) => {
44
- activityListeners.add(listener);
45
- return () => {
46
- activityListeners.delete(listener);
47
- };
48
- }
49
- };
50
- }
51
13
  function inspectScaleEntrySnapshot(scale, minimumWeightKg) {
52
14
  var _ref, _scale$connectionStat, _scale$rawData;
53
15
  const nativeConnectionState = (_ref = (_scale$connectionStat = scale.connectionState) !== null && _scale$connectionStat !== void 0 ? _scale$connectionStat : (_scale$rawData = scale.rawData) === null || _scale$rawData === void 0 ? void 0 : _scale$rawData.connectionState) !== null && _ref !== void 0 ? _ref : null;
@@ -78,51 +40,58 @@ function BigSaleScaleRuntimeOwner(props) {
78
40
  var _props$nativeScaleToo;
79
41
  const useNativeScale = (_props$nativeScaleToo = props.nativeScaleTools) === null || _props$nativeScaleToo === void 0 ? void 0 : _props$nativeScaleToo.useNativeScale;
80
42
  if (!props.active || typeof useNativeScale !== "function") return null;
81
- return /* @__PURE__ */ react.default.createElement(MonitorBoundary, { onError: () => props.hub.publishConnection({
43
+ return /* @__PURE__ */ react.default.createElement(MonitorBoundary, { onError: () => props.bridge.publishConnection({
82
44
  connected: false,
83
45
  state: "error",
84
46
  occurredAt: Date.now()
85
47
  }) }, /* @__PURE__ */ react.default.createElement(ActiveScaleRuntimeOwner, require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, props), {}, { useNativeScale })));
86
48
  }
87
- function ActiveScaleRuntimeOwner({ active, hub, minimumWeightKg, ownerId, runtime, useNativeScale }) {
49
+ function ActiveScaleRuntimeOwner({ active, bridge, minimumWeightKg, useNativeScale }) {
88
50
  const consumedReadingRef = (0, react.useRef)(false);
89
51
  const lastConnectionStateRef = (0, react.useRef)();
90
52
  const eventSequenceRef = (0, react.useRef)(0);
53
+ const [sample, setSample] = (0, react.useState)({
54
+ sequence: 0,
55
+ receivedAt: 0
56
+ });
91
57
  const scale = useNativeScale({
92
58
  unit: "KILOGRAMS",
93
59
  precision: 3,
94
60
  tareWeight: 0,
95
- autoStart: active
61
+ autoStart: active,
62
+ onChange: (0, react.useCallback)(() => {
63
+ setSample((current) => ({
64
+ sequence: current.sequence + 1,
65
+ receivedAt: Date.now()
66
+ }));
67
+ }, [])
96
68
  });
97
69
  const inspection = inspectScaleEntrySnapshot(scale, minimumWeightKg);
98
70
  (0, react.useEffect)(() => {
99
71
  if (!active) return void 0;
100
- return runtime.activate(ownerId);
101
- }, [
102
- active,
103
- ownerId,
104
- runtime
105
- ]);
72
+ return bridge.runtime.activate(bridge.ownerId);
73
+ }, [active, bridge]);
106
74
  (0, react.useEffect)(() => {
107
75
  if (!active) return;
108
- runtime.publish(ownerId, {
76
+ bridge.runtime.publish(bridge.ownerId, {
109
77
  grossWeightKg: scale.grossWeight,
110
78
  status: scale.status,
111
79
  connectionState: scale.connectionState,
112
80
  rawData: scale.rawData,
113
81
  isListening: scale.isListening,
114
- error: scale.error
82
+ error: scale.error,
83
+ sampleSequence: sample.sequence
115
84
  });
116
85
  }, [
117
86
  active,
118
- ownerId,
119
- runtime,
87
+ bridge,
120
88
  scale.connectionState,
121
89
  scale.error,
122
90
  scale.grossWeight,
123
91
  scale.isListening,
124
92
  scale.rawData,
125
- scale.status
93
+ scale.status,
94
+ sample.sequence
126
95
  ]);
127
96
  (0, react.useEffect)(() => {
128
97
  if (!active) {
@@ -132,7 +101,7 @@ function ActiveScaleRuntimeOwner({ active, hub, minimumWeightKg, ownerId, runtim
132
101
  const state = inspection.connectionState;
133
102
  if (lastConnectionStateRef.current !== state) {
134
103
  lastConnectionStateRef.current = state;
135
- hub.publishConnection({
104
+ bridge.publishConnection({
136
105
  connected: state === "connected",
137
106
  state,
138
107
  occurredAt: Date.now()
@@ -140,7 +109,7 @@ function ActiveScaleRuntimeOwner({ active, hub, minimumWeightKg, ownerId, runtim
140
109
  }
141
110
  }, [
142
111
  active,
143
- hub,
112
+ bridge,
144
113
  inspection.connectionState
145
114
  ]);
146
115
  (0, react.useEffect)(() => {
@@ -150,12 +119,13 @@ function ActiveScaleRuntimeOwner({ active, hub, minimumWeightKg, ownerId, runtim
150
119
  return;
151
120
  }
152
121
  if (consumedReadingRef.current) return;
122
+ if (!bridge.runtime.getSnapshot().hasLiveSample) return;
153
123
  const grossWeight = inspection.validGrossWeightKg;
154
124
  if (grossWeight === void 0) return;
155
125
  consumedReadingRef.current = true;
156
126
  eventSequenceRef.current += 1;
157
- const occurredAt = Date.now();
158
- hub.publishWeightChange({
127
+ const occurredAt = sample.receivedAt || Date.now();
128
+ bridge.publishWeightChange({
159
129
  eventId: `native-scale-change:${occurredAt}:${eventSequenceRef.current}`,
160
130
  occurredAt,
161
131
  weight: {
@@ -167,13 +137,13 @@ function ActiveScaleRuntimeOwner({ active, hub, minimumWeightKg, ownerId, runtim
167
137
  });
168
138
  }, [
169
139
  active,
170
- hub,
140
+ bridge,
171
141
  inspection.belowTriggerThreshold,
172
142
  inspection.validGrossWeightKg,
143
+ sample.receivedAt,
173
144
  scale.status
174
145
  ]);
175
146
  return null;
176
147
  }
177
148
  //#endregion
178
149
  exports.BigSaleScaleRuntimeOwner = BigSaleScaleRuntimeOwner;
179
- exports.createScaleTriggerHub = createScaleTriggerHub;
@@ -6,10 +6,10 @@ const require_constants = require("../../../../checkout/constants.js");
6
6
  const require_PaymentMethodRuntime = require("../../../../checkout/paymentRuntime/PaymentMethodRuntime.js");
7
7
  const require_pendingEftposLifecycle = require("../../../../checkout/paymentRuntime/pendingEftposLifecycle.js");
8
8
  const require_utils = require("../../../../checkout/utils.js");
9
- const require_normalize = require("./normalize.js");
9
+ const require_normalize = require("../adapter/normalize.js");
10
10
  let react = require("react");
11
11
  react = require_runtime.__toESM(react);
12
- //#region src/components/bigSale/templates/HDLKiosk/adapter/HDLKioskPaymentRuntime.tsx
12
+ //#region src/components/bigSale/templates/HDLKiosk/runtime/HDLKioskPaymentRuntime.tsx
13
13
  /**
14
14
  * BigSale 模板内的 Kiosk 支付桥。它持有需要 React/设备 UI 的 PaymentMethodRuntime,
15
15
  * 再把窄命令交给独立 HDLKiosk Host;Core 不感知 BigSale、PiPayment 或 window.app。
@@ -107,7 +107,7 @@ function HDLKioskPaymentRuntime({ context, controllerRef }) {
107
107
  const amount = currentAmount(context);
108
108
  if (amount <= 0) return require_normalize.failed("paymentAmountInvalid", "back");
109
109
  const runtime = runtimeRef.current;
110
- if (!runtime) return require_normalize.unknown("paymentRuntimeUnavailable");
110
+ if (!runtime) return require_normalize.failed("paymentRuntimeUnavailable", "retry");
111
111
  const piProvider = require_constants.resolvePiPaymentProvider(method.code, Boolean((_engineContext$appHel2 = engineContext.appHelper) === null || _engineContext$appHel2 === void 0 || (_engineContext$appHel2 = _engineContext$appHel2.utils) === null || _engineContext$appHel2 === void 0 || (_engineContext$appHel2 = _engineContext$appHel2.businessUtils) === null || _engineContext$appHel2 === void 0 || (_engineContext$appHel3 = _engineContext$appHel2.isPiPaymentEnabled) === null || _engineContext$appHel3 === void 0 ? void 0 : _engineContext$appHel3.call(_engineContext$appHel2)));
112
112
  let prepared;
113
113
  let shouldDiscardPrepared = false;
@@ -184,6 +184,7 @@ function HDLKioskPaymentRuntime({ context, controllerRef }) {
184
184
  } catch (discardError) {
185
185
  return require_normalize.unknown("eftposPendingRollbackFailed", discardError);
186
186
  }
187
+ if (prepared && !shouldDiscardPrepared) return require_normalize.unknown("eftposPaymentFinalizationUnresolved", error);
187
188
  return require_normalize.failed("eftposPaymentFailed", "retry", error);
188
189
  }
189
190
  });
@@ -0,0 +1,44 @@
1
+ const require_scaleStore = require("../../../../HDLKiosk/runtime/devices/scaleStore.js");
2
+ //#region src/components/bigSale/templates/HDLKiosk/runtime/scaleBridge.ts
3
+ function createBigSaleScaleBridge({ now = Date.now } = {}) {
4
+ const listeners = /* @__PURE__ */ new Set();
5
+ const runtime = require_scaleStore.createHDLScaleRuntime();
6
+ const ownerId = `hdl-kiosk-scale-runtime:${now()}`;
7
+ let eventSequence = 0;
8
+ let lastConnection;
9
+ const emit = (event) => {
10
+ listeners.forEach((listener) => listener(event));
11
+ };
12
+ return Object.freeze({
13
+ ownerId,
14
+ runtime,
15
+ subscribeDeviceEvents: (listener) => {
16
+ listeners.add(listener);
17
+ if (lastConnection) listener(lastConnection);
18
+ return () => {
19
+ listeners.delete(listener);
20
+ };
21
+ },
22
+ publishWeightChange: ({ weight, eventId, occurredAt = now() }) => {
23
+ eventSequence += 1;
24
+ emit({
25
+ type: "weightChanged",
26
+ eventId: eventId !== null && eventId !== void 0 ? eventId : `big-sale-scale:${occurredAt}:${eventSequence}`,
27
+ weight,
28
+ occurredAt
29
+ });
30
+ },
31
+ publishConnection: ({ connected, state, occurredAt = now() }) => {
32
+ lastConnection = {
33
+ type: "connectionChanged",
34
+ device: "scale",
35
+ connected,
36
+ state,
37
+ occurredAt
38
+ };
39
+ emit(lastConnection);
40
+ }
41
+ });
42
+ }
43
+ //#endregion
44
+ exports.createBigSaleScaleBridge = createBigSaleScaleBridge;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pisell/private-materials",
3
- "version": "6.12.168",
3
+ "version": "6.12.170",
4
4
  "main": "./lib/index.js",
5
5
  "module": "./es/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -70,8 +70,8 @@
70
70
  "styled-components": "^6.0.0-rc.3",
71
71
  "use-sync-external-store": "^1.6.0",
72
72
  "@pisell/pi-payment-sdk": "0.0.3",
73
- "@pisell/date-picker": "3.0.10",
74
73
  "@pisell/utils": "3.0.4",
74
+ "@pisell/date-picker": "3.0.10",
75
75
  "@pisell/icon": "0.0.11",
76
76
  "@pisell/materials": "6.12.50"
77
77
  },
@@ -1,9 +0,0 @@
1
- //#region src/components/HDLKiosk/app/constants.ts
2
- /** HDLKiosk 应用级稳定常量;不包含可由宿主或 Workflow 定义覆盖的业务行为。 */
3
- const HDL_WORKFLOW_IDS = Object.freeze([
4
- "hdl.quick",
5
- "hdl.barcode",
6
- "hdl.scale"
7
- ]);
8
- //#endregion
9
- export { HDL_WORKFLOW_IDS };
@@ -1,22 +0,0 @@
1
- import { _asyncToGenerator } from "../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js";
2
- import { finalizeCartMutation } from "./cartConsistency.js";
3
- import { defineOperation } from "./types.js";
4
- //#region src/components/HDLKiosk/app/operations/barcode.ts
5
- const barcodeConsumeOperation = defineOperation({
6
- id: "barcode.consume",
7
- conflictScope: "cart",
8
- retry: "explicit-user",
9
- execute: function() {
10
- var _ref = _asyncToGenerator(function* (context, input, signal) {
11
- const beforeFingerprint = context.host.sales.getObservedSnapshot().fingerprint.value;
12
- const mutation = yield context.host.sales.consumeBarcode(input.code, signal);
13
- if (mutation.status === "succeeded" && mutation.data.code === "requiresSelection") return mutation;
14
- return finalizeCartMutation(context, mutation, signal, () => mutation.status === "succeeded" && mutation.data.code === "added" && mutation.data.cartChangeConfirmed === true || context.host.sales.getObservedSnapshot().fingerprint.value !== beforeFingerprint);
15
- });
16
- return function execute(_x, _x2, _x3) {
17
- return _ref.apply(this, arguments);
18
- };
19
- }()
20
- });
21
- //#endregion
22
- export { barcodeConsumeOperation };
@@ -1,60 +0,0 @@
1
- import { _asyncToGenerator } from "../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js";
2
- import { finalizeCartMutation } from "./cartConsistency.js";
3
- import { defineOperation } from "./types.js";
4
- //#region src/components/HDLKiosk/app/operations/cart.ts
5
- const cartAddProductOperation = defineOperation({
6
- id: "cart.addProduct",
7
- conflictScope: "cart",
8
- retry: "explicit-user",
9
- execute: function() {
10
- var _ref = _asyncToGenerator(function* (context, input, signal) {
11
- return finalizeCartMutation(context, yield context.host.sales.addProduct(input, signal), signal);
12
- });
13
- return function execute(_x, _x2, _x3) {
14
- return _ref.apply(this, arguments);
15
- };
16
- }()
17
- });
18
- const cartUpdateQuantityOperation = defineOperation({
19
- id: "cart.updateQuantity",
20
- conflictScope: "cart",
21
- timeoutMs: 15e3,
22
- retry: "explicit-user",
23
- execute: function() {
24
- var _ref2 = _asyncToGenerator(function* (context, input, signal) {
25
- const mutation = yield context.host.sales.updateQuantity(input, signal);
26
- return finalizeCartMutation(context, mutation, signal, () => {
27
- var _mutation$data$confir;
28
- if (mutation.status === "succeeded" && mutation.data.affectedLineId === input.lineId && ((_mutation$data$confir = mutation.data.confirmedLine) === null || _mutation$data$confir === void 0 ? void 0 : _mutation$data$confir.lineId) === input.lineId && decimalValuesEqual(mutation.data.confirmedLine.quantity, input.quantity)) return true;
29
- const line = context.host.sales.getObservedSnapshot().cart.lines.find((item) => item.lineId === input.lineId);
30
- return decimalValuesEqual(line === null || line === void 0 ? void 0 : line.quantity, input.quantity);
31
- });
32
- });
33
- return function execute(_x4, _x5, _x6) {
34
- return _ref2.apply(this, arguments);
35
- };
36
- }()
37
- });
38
- function decimalValuesEqual(left, right) {
39
- if (left === void 0) return false;
40
- const leftNumber = Number(left);
41
- const rightNumber = Number(right);
42
- return Number.isFinite(leftNumber) && Number.isFinite(rightNumber) && leftNumber === rightNumber;
43
- }
44
- const cartRemoveLineOperation = defineOperation({
45
- id: "cart.removeLine",
46
- conflictScope: "cart",
47
- timeoutMs: 15e3,
48
- retry: "explicit-user",
49
- execute: function() {
50
- var _ref3 = _asyncToGenerator(function* (context, input, signal) {
51
- const mutation = yield context.host.sales.removeLine(input, signal);
52
- return finalizeCartMutation(context, mutation, signal, () => mutation.status === "succeeded" && mutation.data.removedLineId === input.lineId || !context.host.sales.getObservedSnapshot().cart.lines.some((item) => item.lineId === input.lineId));
53
- });
54
- return function execute(_x7, _x8, _x9) {
55
- return _ref3.apply(this, arguments);
56
- };
57
- }()
58
- });
59
- //#endregion
60
- export { cartAddProductOperation, cartRemoveLineOperation, cartUpdateQuantityOperation };
@@ -1,11 +0,0 @@
1
- import { defineOperation } from "./types.js";
2
- //#region src/components/HDLKiosk/app/operations/fulfillment.ts
3
- const setFulfillmentOperation = defineOperation({
4
- id: "fulfillment.set",
5
- conflictScope: "cart",
6
- timeoutMs: 2e4,
7
- retry: "explicit-user",
8
- execute: (context, input, signal) => context.host.sales.setFulfillment(input, signal)
9
- });
10
- //#endregion
11
- export { setFulfillmentOperation };