@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.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +10 -10
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +10 -10
- package/es/components/HDLKiosk/{contracts → app/contracts}/config.js +1 -1
- package/es/components/HDLKiosk/app/manifest.js +11 -11
- package/es/components/HDLKiosk/app/operations.js +92 -0
- package/es/components/HDLKiosk/app/workflow/barcode.js +7 -3
- package/es/components/HDLKiosk/app/workflow/index.js +16 -0
- package/es/components/HDLKiosk/app/workflow/predicates.js +1 -1
- package/es/components/HDLKiosk/app/workflow/quick.js +1 -1
- package/es/components/HDLKiosk/app/workflow/registry.js +4 -4
- package/es/components/HDLKiosk/app/workflow/scale.js +5 -1
- package/es/components/HDLKiosk/components/common/HDLKioskSkuOptionsSelection/index.less +1 -1
- package/es/components/HDLKiosk/components/overlays/HDLKioskModal/index.less +1 -1
- package/es/components/HDLKiosk/components/shell/HDLKioskBottomBarHost/index.js +4 -1
- package/es/components/HDLKiosk/docs/00-/346/226/207/344/273/266/345/257/274/350/210/252.md +104 -167
- 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
- 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
- package/es/components/HDLKiosk/docs/04-/350/256/276/345/244/207/344/270/216/347/247/260/351/207/215.md +43 -26
- package/es/components/HDLKiosk/docs/05-/344/272/244/346/230/223/345/256/211/345/205/250.md +2 -0
- 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
- 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
- package/es/components/HDLKiosk/docs/README.md +6 -2
- package/es/components/HDLKiosk/docs//345/256/236/346/226/275/350/277/233/345/272/246.md +8 -7
- package/es/components/HDLKiosk/docs//346/236/266/346/236/204/350/256/276/350/256/241.md +16 -18
- package/es/components/HDLKiosk/index.js +32 -30
- package/es/components/HDLKiosk/index.less +8 -3
- package/es/components/HDLKiosk/kernel/README.md +13 -12
- package/es/components/HDLKiosk/kernel/application/defineApplication.js +63 -24
- package/es/components/HDLKiosk/kernel/application/defineSlice.js +6 -6
- package/es/components/HDLKiosk/kernel/application/runtime.js +237 -0
- package/es/components/HDLKiosk/kernel/operations/coordinator.js +1 -1
- package/es/components/HDLKiosk/kernel/operations/registry.js +3 -3
- package/es/components/HDLKiosk/kernel/operations/sessionEpoch.js +1 -1
- package/es/components/HDLKiosk/kernel/operations/types.js +7 -3
- package/es/components/HDLKiosk/kernel/workflow/actor.js +16 -17
- package/es/components/HDLKiosk/kernel/workflow/compiler.js +14 -16
- package/es/components/HDLKiosk/runtime/createRuntime.js +238 -0
- package/es/components/HDLKiosk/{devices → runtime/devices}/dedupeStore.js +1 -1
- package/es/components/HDLKiosk/{devices → runtime/devices}/scaleIngress.js +1 -1
- package/es/components/HDLKiosk/{devices/scale/runtime.js → runtime/devices/scaleStore.js} +18 -24
- package/es/components/HDLKiosk/{devices → runtime/devices}/scannerIngress.js +1 -1
- package/es/components/HDLKiosk/runtime/devices/scannerSessionPort.js +60 -0
- package/es/components/HDLKiosk/runtime/devices/scannerSessionRouter.js +212 -0
- package/es/components/HDLKiosk/runtime/operations/barcode.js +18 -0
- package/es/components/HDLKiosk/runtime/operations/cart.js +44 -0
- package/es/components/HDLKiosk/{app → runtime}/operations/cartConsistency.js +1 -1
- package/es/components/HDLKiosk/{app → runtime}/operations/checkout.js +95 -110
- package/es/components/HDLKiosk/{app → runtime}/operations/checkoutRequirements.js +1 -1
- package/es/components/HDLKiosk/{app → runtime}/operations/checkoutSafety.js +1 -1
- package/es/components/HDLKiosk/{app → runtime}/operations/coordinator.js +2 -2
- package/es/components/HDLKiosk/runtime/operations/customization.js +70 -0
- package/es/components/HDLKiosk/{app → runtime}/operations/errors.js +1 -1
- package/es/components/HDLKiosk/runtime/operations/fulfillment.js +6 -0
- package/es/components/HDLKiosk/runtime/operations/identity.js +55 -0
- package/es/components/HDLKiosk/runtime/operations/registry.js +34 -0
- package/es/components/HDLKiosk/runtime/operations/session.js +29 -0
- package/es/components/HDLKiosk/runtime/operations/types.js +13 -0
- package/es/components/HDLKiosk/runtime/session/blockPolicy.js +14 -0
- package/es/components/HDLKiosk/runtime/{createWorkflowSession.js → session/createSession.js} +67 -17
- package/es/components/HDLKiosk/runtime/{domainTransitionRunner.js → session/transitionRunner.js} +10 -5
- package/es/components/HDLKiosk/runtime/{workflowContext.js → session/workflowContext.js} +2 -2
- package/es/components/HDLKiosk/runtime/{workflowLifecycle.js → session/workflowLifecycle.js} +2 -2
- package/es/components/HDLKiosk/runtime/triggers.js +28 -0
- package/es/components/HDLKiosk/slices/catalog/Screen/index.js +15 -8
- package/es/components/HDLKiosk/slices/catalog/Screen/index.less +74 -13
- package/es/components/HDLKiosk/slices/catalog/slice.js +2 -2
- package/es/components/HDLKiosk/slices/customization/Screen/index.js +34 -35
- package/es/components/HDLKiosk/slices/customization/Screen/index.less +5 -0
- package/es/components/HDLKiosk/slices/customization/slice.js +2 -3
- package/es/components/HDLKiosk/slices/fulfillment/slice.js +2 -2
- package/es/components/HDLKiosk/slices/fulfillment/view.js +1 -1
- package/es/components/HDLKiosk/slices/identity/Screen/index.less +1 -1
- package/es/components/HDLKiosk/slices/identity/slice.js +2 -2
- package/es/components/HDLKiosk/slices/identity/view.js +1 -1
- package/es/components/HDLKiosk/slices/payment/Screen/index.less +1 -1
- package/es/components/HDLKiosk/slices/payment/slice.js +3 -3
- package/es/components/HDLKiosk/slices/primaryProductPrompt/slice.js +1 -1
- package/es/components/HDLKiosk/{runtime → ui}/HDLKioskWorkflowView.js +68 -129
- package/es/components/HDLKiosk/ui/ScaleSimulatorConsole/index.js +387 -0
- package/es/components/HDLKiosk/ui/ScaleSimulatorConsole/index.less +621 -0
- package/es/components/HDLKiosk/{app → ui}/ScreenRenderer.js +1 -1
- package/es/components/HDLKiosk/ui/collaborationStatus.js +11 -0
- package/es/components/HDLKiosk/ui/controllers/useHDLKioskActionDispatcher.js +66 -0
- package/es/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskCustomerController.js +1 -1
- package/es/components/HDLKiosk/ui/controllers/useHDLKioskDeviceController.js +25 -0
- package/es/components/HDLKiosk/ui/controllers/useHDLKioskExitController.js +53 -0
- package/es/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskScreenData.js +1 -1
- package/es/components/HDLKiosk/ui/controllers/useHDLKioskSessionController.js +39 -0
- package/es/components/HDLKiosk/{app → ui}/entry/Screen/index.js +8 -6
- package/es/components/HDLKiosk/{app → ui}/entry/model.js +2 -2
- package/es/components/HDLKiosk/ui/scale.js +20 -0
- package/es/components/HDLKiosk/{runtime/useHostSnapshot.js → ui/snapshots.js} +6 -8
- package/es/components/HDLKiosk/{app → ui}/views.js +1 -1
- package/es/components/HDLKiosk/{runtime → ui}/workflowEvent.js +1 -1
- package/es/components/HDLKiosk/utils.js +4 -4
- package/es/components/bigSale/templates/HDLKiosk/README.md +43 -0
- package/es/components/bigSale/templates/HDLKiosk/adapter/createHost.js +7 -7
- package/es/components/bigSale/templates/HDLKiosk/adapter/{devices.js → devices/devicePort.js} +10 -38
- package/es/components/bigSale/templates/HDLKiosk/adapter/{capabilities.js → host/capabilities.js} +2 -2
- package/es/components/bigSale/templates/HDLKiosk/adapter/{fulfillment.js → host/fulfillmentWriter.js} +3 -3
- package/es/components/bigSale/templates/HDLKiosk/adapter/{projection.js → host/projection.js} +24 -14
- package/es/components/bigSale/templates/HDLKiosk/adapter/{telemetry.js → host/telemetry.js} +1 -1
- package/es/components/bigSale/templates/HDLKiosk/adapter/sales/cart.js +187 -0
- package/es/components/bigSale/templates/HDLKiosk/adapter/sales/catalog.js +160 -0
- package/es/components/bigSale/templates/HDLKiosk/adapter/{customizationProduct.js → sales/customizationProduct.js} +3 -3
- package/es/components/bigSale/templates/HDLKiosk/adapter/sales/fulfillment.js +31 -0
- package/es/components/bigSale/templates/HDLKiosk/adapter/sales/identity.js +57 -0
- package/es/components/bigSale/templates/HDLKiosk/adapter/sales/index.js +18 -0
- package/es/components/bigSale/templates/HDLKiosk/adapter/sales/payment.js +123 -0
- package/es/components/bigSale/templates/HDLKiosk/adapter/sales/session.js +71 -0
- package/es/components/bigSale/templates/HDLKiosk/adapter/sales/weightedOperations.js +124 -0
- package/es/components/bigSale/templates/HDLKiosk/adapter/{weightedProduct.js → sales/weightedProduct.js} +2 -2
- package/es/components/bigSale/templates/HDLKiosk/adapter/useBigSaleHDLKioskAdapter.js +41 -0
- package/es/components/bigSale/templates/HDLKiosk/adapter/useBigSaleHDLKioskHost.js +10 -7
- package/es/components/bigSale/templates/HDLKiosk/cart/useBigSaleHDLKioskCart.js +122 -0
- package/es/components/bigSale/templates/HDLKiosk/{adapter → hooks}/useHDLKioskEntryPreparationToast.js +2 -1
- package/es/components/bigSale/templates/HDLKiosk/index.js +42 -148
- package/es/components/bigSale/templates/HDLKiosk/{adapter/scaleTrigger.js → runtime/BigSaleScaleRuntimeOwner.js} +33 -62
- package/es/components/bigSale/templates/HDLKiosk/{adapter → runtime}/HDLKioskPaymentRuntime.js +4 -3
- package/es/components/bigSale/templates/HDLKiosk/runtime/scaleBridge.js +44 -0
- package/lib/components/HDLKiosk/{contracts → app/contracts}/config.js +1 -1
- package/lib/components/HDLKiosk/app/manifest.js +18 -19
- package/lib/components/HDLKiosk/app/operations.js +105 -0
- package/lib/components/HDLKiosk/app/workflow/barcode.js +7 -3
- package/lib/components/HDLKiosk/app/workflow/index.js +16 -0
- package/lib/components/HDLKiosk/app/workflow/predicates.js +1 -0
- package/lib/components/HDLKiosk/app/workflow/quick.js +1 -1
- package/lib/components/HDLKiosk/app/workflow/registry.js +3 -3
- package/lib/components/HDLKiosk/app/workflow/scale.js +5 -1
- package/lib/components/HDLKiosk/components/common/HDLKioskSkuOptionsSelection/index.less +1 -1
- package/lib/components/HDLKiosk/components/overlays/HDLKioskModal/index.less +1 -1
- package/lib/components/HDLKiosk/components/shell/HDLKioskBottomBarHost/index.js +4 -1
- package/lib/components/HDLKiosk/docs/00-/346/226/207/344/273/266/345/257/274/350/210/252.md +104 -167
- 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
- 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
- package/lib/components/HDLKiosk/docs/04-/350/256/276/345/244/207/344/270/216/347/247/260/351/207/215.md +43 -26
- package/lib/components/HDLKiosk/docs/05-/344/272/244/346/230/223/345/256/211/345/205/250.md +2 -0
- 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
- 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
- package/lib/components/HDLKiosk/docs/README.md +6 -2
- package/lib/components/HDLKiosk/docs//345/256/236/346/226/275/350/277/233/345/272/246.md +8 -7
- package/lib/components/HDLKiosk/docs//346/236/266/346/236/204/350/256/276/350/256/241.md +16 -18
- package/lib/components/HDLKiosk/index.js +35 -33
- package/lib/components/HDLKiosk/index.less +8 -3
- package/lib/components/HDLKiosk/kernel/README.md +13 -12
- package/lib/components/HDLKiosk/kernel/application/defineApplication.js +65 -25
- package/lib/components/HDLKiosk/kernel/application/defineSlice.js +6 -6
- package/lib/components/HDLKiosk/kernel/application/runtime.js +237 -0
- package/lib/components/HDLKiosk/kernel/operations/coordinator.js +1 -1
- package/lib/components/HDLKiosk/kernel/operations/registry.js +3 -3
- package/lib/components/HDLKiosk/kernel/operations/sessionEpoch.js +1 -1
- package/lib/components/HDLKiosk/kernel/operations/types.js +8 -3
- package/lib/components/HDLKiosk/kernel/workflow/actor.js +16 -17
- package/lib/components/HDLKiosk/kernel/workflow/compiler.js +14 -16
- package/lib/components/HDLKiosk/runtime/createRuntime.js +239 -0
- package/lib/components/HDLKiosk/{devices → runtime/devices}/dedupeStore.js +1 -1
- package/lib/components/HDLKiosk/{devices → runtime/devices}/scaleIngress.js +1 -1
- package/lib/components/HDLKiosk/{devices/scale/runtime.js → runtime/devices/scaleStore.js} +17 -27
- package/lib/components/HDLKiosk/{devices → runtime/devices}/scannerIngress.js +1 -1
- package/lib/components/HDLKiosk/runtime/devices/scannerSessionPort.js +60 -0
- package/lib/components/HDLKiosk/runtime/devices/scannerSessionRouter.js +212 -0
- package/lib/components/HDLKiosk/runtime/operations/barcode.js +17 -0
- package/lib/components/HDLKiosk/runtime/operations/cart.js +46 -0
- package/lib/components/HDLKiosk/{app → runtime}/operations/cartConsistency.js +1 -1
- package/lib/components/HDLKiosk/{app → runtime}/operations/checkout.js +97 -112
- package/lib/components/HDLKiosk/{app → runtime}/operations/checkoutRequirements.js +1 -1
- package/lib/components/HDLKiosk/{app → runtime}/operations/checkoutSafety.js +1 -1
- package/lib/components/HDLKiosk/{app → runtime}/operations/coordinator.js +2 -2
- package/lib/components/HDLKiosk/runtime/operations/customization.js +73 -0
- package/lib/components/HDLKiosk/{app → runtime}/operations/errors.js +1 -1
- package/lib/components/HDLKiosk/runtime/operations/fulfillment.js +5 -0
- package/lib/components/HDLKiosk/runtime/operations/identity.js +55 -0
- package/lib/components/HDLKiosk/runtime/operations/registry.js +34 -0
- package/lib/components/HDLKiosk/runtime/operations/session.js +30 -0
- package/lib/components/HDLKiosk/runtime/operations/types.js +14 -0
- package/lib/components/HDLKiosk/runtime/session/blockPolicy.js +14 -0
- package/lib/components/HDLKiosk/runtime/{createWorkflowSession.js → session/createSession.js} +71 -21
- package/lib/components/HDLKiosk/runtime/{domainTransitionRunner.js → session/transitionRunner.js} +10 -5
- package/lib/components/HDLKiosk/runtime/{workflowContext.js → session/workflowContext.js} +2 -2
- package/lib/components/HDLKiosk/runtime/{workflowLifecycle.js → session/workflowLifecycle.js} +2 -2
- package/lib/components/HDLKiosk/runtime/triggers.js +28 -0
- package/lib/components/HDLKiosk/slices/catalog/Screen/index.js +15 -8
- package/lib/components/HDLKiosk/slices/catalog/Screen/index.less +74 -13
- package/lib/components/HDLKiosk/slices/catalog/slice.js +3 -3
- package/lib/components/HDLKiosk/slices/customization/Screen/index.js +35 -36
- package/lib/components/HDLKiosk/slices/customization/Screen/index.less +5 -0
- package/lib/components/HDLKiosk/slices/customization/slice.js +5 -6
- package/lib/components/HDLKiosk/slices/fulfillment/slice.js +3 -3
- package/lib/components/HDLKiosk/slices/fulfillment/view.js +1 -1
- package/lib/components/HDLKiosk/slices/identity/Screen/index.less +1 -1
- package/lib/components/HDLKiosk/slices/identity/slice.js +4 -4
- package/lib/components/HDLKiosk/slices/identity/view.js +1 -1
- package/lib/components/HDLKiosk/slices/payment/Screen/index.less +1 -1
- package/lib/components/HDLKiosk/slices/payment/slice.js +5 -5
- package/lib/components/HDLKiosk/slices/primaryProductPrompt/slice.js +1 -1
- package/lib/components/HDLKiosk/{runtime → ui}/HDLKioskWorkflowView.js +69 -130
- package/lib/components/HDLKiosk/ui/ScaleSimulatorConsole/index.js +390 -0
- package/lib/components/HDLKiosk/ui/ScaleSimulatorConsole/index.less +621 -0
- package/lib/components/HDLKiosk/{app → ui}/ScreenRenderer.js +1 -1
- package/lib/components/HDLKiosk/ui/collaborationStatus.js +11 -0
- package/lib/components/HDLKiosk/ui/controllers/useHDLKioskActionDispatcher.js +67 -0
- package/lib/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskCustomerController.js +1 -1
- package/lib/components/HDLKiosk/ui/controllers/useHDLKioskDeviceController.js +26 -0
- package/lib/components/HDLKiosk/ui/controllers/useHDLKioskExitController.js +54 -0
- package/lib/components/HDLKiosk/{runtime → ui}/controllers/useHDLKioskScreenData.js +1 -1
- package/lib/components/HDLKiosk/ui/controllers/useHDLKioskSessionController.js +40 -0
- package/lib/components/HDLKiosk/{app → ui}/entry/Screen/index.js +8 -6
- package/lib/components/HDLKiosk/{app → ui}/entry/model.js +2 -2
- package/lib/components/HDLKiosk/ui/scale.js +24 -0
- package/lib/components/HDLKiosk/{runtime/useHostSnapshot.js → ui/snapshots.js} +6 -7
- package/lib/components/HDLKiosk/{app → ui}/views.js +1 -1
- package/lib/components/HDLKiosk/{runtime → ui}/workflowEvent.js +1 -1
- package/lib/components/HDLKiosk/utils.js +4 -4
- package/lib/components/bigSale/templates/HDLKiosk/README.md +43 -0
- package/lib/components/bigSale/templates/HDLKiosk/adapter/createHost.js +9 -9
- package/lib/components/bigSale/templates/HDLKiosk/adapter/{devices.js → devices/devicePort.js} +10 -38
- package/lib/components/bigSale/templates/HDLKiosk/adapter/{capabilities.js → host/capabilities.js} +2 -2
- package/lib/components/bigSale/templates/HDLKiosk/adapter/{fulfillment.js → host/fulfillmentWriter.js} +3 -3
- package/lib/components/bigSale/templates/HDLKiosk/adapter/{projection.js → host/projection.js} +25 -14
- package/lib/components/bigSale/templates/HDLKiosk/adapter/{telemetry.js → host/telemetry.js} +1 -1
- package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/cart.js +189 -0
- package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/catalog.js +162 -0
- package/lib/components/bigSale/templates/HDLKiosk/adapter/{customizationProduct.js → sales/customizationProduct.js} +4 -4
- package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/fulfillment.js +31 -0
- package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/identity.js +57 -0
- package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/index.js +18 -0
- package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/payment.js +123 -0
- package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/session.js +71 -0
- package/lib/components/bigSale/templates/HDLKiosk/adapter/sales/weightedOperations.js +126 -0
- package/lib/components/bigSale/templates/HDLKiosk/adapter/{weightedProduct.js → sales/weightedProduct.js} +3 -3
- package/lib/components/bigSale/templates/HDLKiosk/adapter/useBigSaleHDLKioskAdapter.js +42 -0
- package/lib/components/bigSale/templates/HDLKiosk/adapter/useBigSaleHDLKioskHost.js +10 -7
- package/lib/components/bigSale/templates/HDLKiosk/cart/useBigSaleHDLKioskCart.js +124 -0
- package/lib/components/bigSale/templates/HDLKiosk/{adapter → hooks}/useHDLKioskEntryPreparationToast.js +2 -1
- package/lib/components/bigSale/templates/HDLKiosk/index.js +43 -149
- package/lib/components/bigSale/templates/HDLKiosk/{adapter/scaleTrigger.js → runtime/BigSaleScaleRuntimeOwner.js} +31 -61
- package/lib/components/bigSale/templates/HDLKiosk/{adapter → runtime}/HDLKioskPaymentRuntime.js +4 -3
- package/lib/components/bigSale/templates/HDLKiosk/runtime/scaleBridge.js +44 -0
- package/package.json +2 -2
- package/es/components/HDLKiosk/app/constants.js +0 -9
- package/es/components/HDLKiosk/app/operations/barcode.js +0 -22
- package/es/components/HDLKiosk/app/operations/cart.js +0 -60
- package/es/components/HDLKiosk/app/operations/fulfillment.js +0 -11
- package/es/components/HDLKiosk/app/operations/session.js +0 -41
- package/es/components/HDLKiosk/app/operations/types.js +0 -11
- package/es/components/HDLKiosk/devices/entryArbiter.js +0 -33
- package/es/components/HDLKiosk/runtime/controllers/useHDLKioskDeviceController.js +0 -75
- package/es/components/HDLKiosk/runtime/controllers/useHDLKioskScannerController.js +0 -160
- package/es/components/HDLKiosk/runtime/controllers/useHDLKioskSessionController.js +0 -185
- package/es/components/HDLKiosk/runtime/useWorkflowSnapshot.js +0 -12
- package/es/components/HDLKiosk/slices/customization/operation.js +0 -80
- package/es/components/HDLKiosk/slices/identity/operation.js +0 -60
- package/es/components/bigSale/templates/HDLKiosk/adapter/sales.js +0 -692
- package/lib/components/HDLKiosk/app/constants.js +0 -9
- package/lib/components/HDLKiosk/app/operations/barcode.js +0 -21
- package/lib/components/HDLKiosk/app/operations/cart.js +0 -62
- package/lib/components/HDLKiosk/app/operations/fulfillment.js +0 -10
- package/lib/components/HDLKiosk/app/operations/session.js +0 -42
- package/lib/components/HDLKiosk/app/operations/types.js +0 -12
- package/lib/components/HDLKiosk/devices/entryArbiter.js +0 -33
- package/lib/components/HDLKiosk/runtime/controllers/useHDLKioskDeviceController.js +0 -76
- package/lib/components/HDLKiosk/runtime/controllers/useHDLKioskScannerController.js +0 -161
- package/lib/components/HDLKiosk/runtime/controllers/useHDLKioskSessionController.js +0 -186
- package/lib/components/HDLKiosk/runtime/useWorkflowSnapshot.js +0 -13
- package/lib/components/HDLKiosk/slices/customization/operation.js +0 -83
- package/lib/components/HDLKiosk/slices/identity/operation.js +0 -60
- package/lib/components/bigSale/templates/HDLKiosk/adapter/sales.js +0 -694
- /package/es/components/HDLKiosk/{app → ui}/entry/Screen/index.less +0 -0
- /package/lib/components/HDLKiosk/{app → ui}/entry/Screen/index.less +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const require_asyncToGenerator = require("../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js");
|
|
2
|
+
const require_operations = require("../../app/operations.js");
|
|
3
|
+
const require_errors = require("./errors.js");
|
|
4
|
+
const require_types = require("./types.js");
|
|
5
|
+
//#region src/components/HDLKiosk/runtime/operations/identity.ts
|
|
6
|
+
function partialFailure(code, cause) {
|
|
7
|
+
return {
|
|
8
|
+
status: "partialFailure",
|
|
9
|
+
error: require_errors.createOperationError(code, "staff", cause)
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function identityMatches(customerId, customer) {
|
|
13
|
+
if (!customerId) return (customer === null || customer === void 0 ? void 0 : customer.member) !== true;
|
|
14
|
+
if ((customer === null || customer === void 0 ? void 0 : customer.member) !== true) return false;
|
|
15
|
+
return customer.customerId === customerId;
|
|
16
|
+
}
|
|
17
|
+
const identitySyncOperationBinding = require_types.bindOperation(require_operations.identitySyncOperation, { execute: function() {
|
|
18
|
+
var _ref = require_asyncToGenerator._asyncToGenerator(function* (context, input, signal) {
|
|
19
|
+
var _input$customerId;
|
|
20
|
+
if (!input || input.customerId !== void 0 && !input.customerId.trim()) return require_errors.operationFailed("identityInputInvalid", "back");
|
|
21
|
+
const customerId = (_input$customerId = input.customerId) === null || _input$customerId === void 0 ? void 0 : _input$customerId.trim();
|
|
22
|
+
const beforeSelection = context.host.sales.getObservedSnapshot();
|
|
23
|
+
const selected = yield context.host.sales.selectIdentity(customerId ? { customerId } : {}, signal);
|
|
24
|
+
if (selected.status !== "succeeded") return selected;
|
|
25
|
+
if (signal.aborted) return require_errors.operationUnknown("identityAbortedAfterWrite");
|
|
26
|
+
const afterSelection = context.host.sales.getObservedSnapshot();
|
|
27
|
+
const hasOrderLines = beforeSelection.cart.lineCount > 0 || afterSelection.cart.lineCount > 0;
|
|
28
|
+
let summaryConfirmed = false;
|
|
29
|
+
if (hasOrderLines) {
|
|
30
|
+
const consistency = yield context.host.sales.waitForCartConsistency(signal);
|
|
31
|
+
if (consistency.status !== "succeeded") {
|
|
32
|
+
if (consistency.status === "unknown") return consistency;
|
|
33
|
+
return partialFailure("identityConsistencyFailed", consistency);
|
|
34
|
+
}
|
|
35
|
+
const summary = yield context.host.sales.recalculateSummary(signal);
|
|
36
|
+
if (summary.status !== "succeeded") {
|
|
37
|
+
if (summary.status === "unknown") return summary;
|
|
38
|
+
return partialFailure("identitySummaryRecalculationFailed", summary);
|
|
39
|
+
}
|
|
40
|
+
summaryConfirmed = Boolean(summary.data.confirmedSummary);
|
|
41
|
+
}
|
|
42
|
+
const observed = context.host.sales.getObservedSnapshot();
|
|
43
|
+
if (hasOrderLines && !summaryConfirmed && observed.summary.status !== "ready") return partialFailure("identitySummaryProjectionMissing");
|
|
44
|
+
if (!(customerId ? identityMatches(customerId, selected.data.customer) : selected.data.customer === void 0) && !identityMatches(customerId, observed.customer)) return require_errors.operationUnknown("identitySelectionNotObserved");
|
|
45
|
+
return {
|
|
46
|
+
status: "succeeded",
|
|
47
|
+
data: void 0
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
return function execute(_x, _x2, _x3) {
|
|
51
|
+
return _ref.apply(this, arguments);
|
|
52
|
+
};
|
|
53
|
+
}() });
|
|
54
|
+
//#endregion
|
|
55
|
+
exports.identitySyncOperationBinding = identitySyncOperationBinding;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const require_types = require("./types.js");
|
|
2
|
+
const require_barcode = require("./barcode.js");
|
|
3
|
+
const require_cart = require("./cart.js");
|
|
4
|
+
const require_checkout = require("./checkout.js");
|
|
5
|
+
const require_fulfillment = require("./fulfillment.js");
|
|
6
|
+
const require_session = require("./session.js");
|
|
7
|
+
const require_identity = require("./identity.js");
|
|
8
|
+
const require_customization = require("./customization.js");
|
|
9
|
+
//#region src/components/HDLKiosk/runtime/operations/registry.ts
|
|
10
|
+
/**
|
|
11
|
+
* 文件角色:为 HDLKiosk Operation Contract 提供生产 Runtime Handler Registry。
|
|
12
|
+
* 边界:Application Manifest 只引用 Contract;Host 业务方法只能从本 Binding 层进入。
|
|
13
|
+
*/
|
|
14
|
+
const HDLKIOSK_OPERATION_BINDINGS = Object.freeze([
|
|
15
|
+
require_barcode.barcodeConsumeOperationBinding,
|
|
16
|
+
require_cart.cartAddProductOperationBinding,
|
|
17
|
+
require_cart.cartRemoveLineOperationBinding,
|
|
18
|
+
require_cart.cartUpdateQuantityOperationBinding,
|
|
19
|
+
require_checkout.checkoutOpenOperationBinding,
|
|
20
|
+
require_checkout.checkoutPayEftposOperationBinding,
|
|
21
|
+
require_checkout.checkoutPrepareOperationBinding,
|
|
22
|
+
require_checkout.checkoutRequestStaffPaymentApprovalOperationBinding,
|
|
23
|
+
require_session.sessionEnsureOperationBinding,
|
|
24
|
+
require_session.sessionResetOperationBinding,
|
|
25
|
+
require_fulfillment.setFulfillmentOperationBinding,
|
|
26
|
+
require_identity.identitySyncOperationBinding,
|
|
27
|
+
require_customization.productRemovePrimaryProductOperationBinding,
|
|
28
|
+
require_customization.productSyncPrimaryWeightedProductOperationBinding
|
|
29
|
+
]);
|
|
30
|
+
function createHDLKioskOperationRegistry() {
|
|
31
|
+
return require_types.createOperationRegistry(HDLKIOSK_OPERATION_BINDINGS);
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
exports.createHDLKioskOperationRegistry = createHDLKioskOperationRegistry;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const require_asyncToGenerator = require("../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js");
|
|
2
|
+
const require_operations = require("../../app/operations.js");
|
|
3
|
+
const require_errors = require("./errors.js");
|
|
4
|
+
const require_types = require("./types.js");
|
|
5
|
+
//#region src/components/HDLKiosk/runtime/operations/session.ts
|
|
6
|
+
function forwardFailure(result) {
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
const sessionEnsureOperationBinding = require_types.bindOperation(require_operations.sessionEnsureOperation, { execute: ({ host }, _input, signal) => host.sales.ensureSession(signal) });
|
|
10
|
+
const sessionResetOperationBinding = require_types.bindOperation(require_operations.sessionResetOperation, { execute: function() {
|
|
11
|
+
var _ref = require_asyncToGenerator._asyncToGenerator(function* ({ host }, _input, signal) {
|
|
12
|
+
const before = host.sales.getObservedSnapshot();
|
|
13
|
+
if (before.payment.status === "pending" || before.payment.status === "unknown") return require_errors.operationUnknown("resetBlockedByPaymentState");
|
|
14
|
+
const reset = yield host.sales.clearAndReset(signal);
|
|
15
|
+
if (reset.status !== "succeeded") return forwardFailure(reset);
|
|
16
|
+
if (!reset.data.cartEmpty) return require_errors.operationUnknown("resetHostResultNotEmpty");
|
|
17
|
+
const consistency = yield host.sales.waitForCartConsistency(signal);
|
|
18
|
+
if (consistency.status !== "succeeded") return forwardFailure(consistency);
|
|
19
|
+
return {
|
|
20
|
+
status: "succeeded",
|
|
21
|
+
data: void 0
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
return function execute(_x, _x2, _x3) {
|
|
25
|
+
return _ref.apply(this, arguments);
|
|
26
|
+
};
|
|
27
|
+
}() });
|
|
28
|
+
//#endregion
|
|
29
|
+
exports.sessionEnsureOperationBinding = sessionEnsureOperationBinding;
|
|
30
|
+
exports.sessionResetOperationBinding = sessionResetOperationBinding;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const require_objectSpread2 = require("../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js");
|
|
2
|
+
const require_registry = require("../../kernel/operations/registry.js");
|
|
3
|
+
const require_types = require("../../kernel/operations/types.js");
|
|
4
|
+
//#region src/components/HDLKiosk/runtime/operations/types.ts
|
|
5
|
+
function bindOperation(contract, handler) {
|
|
6
|
+
const bound = require_types.bindKernelOperation(contract, { execute: handler.execute });
|
|
7
|
+
return Object.freeze(require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, bound), {}, { verify: handler.verify }));
|
|
8
|
+
}
|
|
9
|
+
function createOperationRegistry(operations) {
|
|
10
|
+
return require_registry.createKernelOperationRegistry(operations);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
exports.bindOperation = bindOperation;
|
|
14
|
+
exports.createOperationRegistry = createOperationRegistry;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/components/HDLKiosk/runtime/session/blockPolicy.ts
|
|
2
|
+
const CHECKOUT_DISPATCH_OPERATIONS = new Set(["checkout.open", "checkout.payEftpos"]);
|
|
3
|
+
/** 这些结果发生在任何支付调用之前,不存在重复扣款风险。 */
|
|
4
|
+
const RETRYABLE_CHECKOUT_PREFLIGHT_ERRORS = new Set(["checkoutProjectionUnstable", "checkoutCartStillChanging"]);
|
|
5
|
+
function shouldHardBlockOperationResult(operationId, result) {
|
|
6
|
+
var _result$error$details;
|
|
7
|
+
if (result.status !== "partialFailure" && result.status !== "unknown") return false;
|
|
8
|
+
if (operationId === "session.reset") return true;
|
|
9
|
+
if (!CHECKOUT_DISPATCH_OPERATIONS.has(operationId)) return false;
|
|
10
|
+
if (((_result$error$details = result.error.details) === null || _result$error$details === void 0 ? void 0 : _result$error$details.checkoutDispatched) === false) return false;
|
|
11
|
+
return !RETRYABLE_CHECKOUT_PREFLIGHT_ERRORS.has(result.error.code);
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
exports.shouldHardBlockOperationResult = shouldHardBlockOperationResult;
|
package/lib/components/HDLKiosk/runtime/{createWorkflowSession.js → session/createSession.js}
RENAMED
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
require("
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const require_lifecycle = require("
|
|
11
|
-
const require_actor = require("
|
|
12
|
-
const require_compiler = require("
|
|
13
|
-
const
|
|
1
|
+
require("../../../../_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require_objectSpread2 = require("../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js");
|
|
3
|
+
const require_asyncToGenerator = require("../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js");
|
|
4
|
+
const require_registry = require("../../app/workflow/registry.js");
|
|
5
|
+
const require_predicates = require("../../app/workflow/predicates.js");
|
|
6
|
+
const require_navigationGuards = require("../../app/workflow/navigationGuards.js");
|
|
7
|
+
const require_policy = require("../../app/workflow/policy.js");
|
|
8
|
+
const require_index = require("../../app/workflow/index.js");
|
|
9
|
+
const require_registry$1 = require("../operations/registry.js");
|
|
10
|
+
const require_lifecycle = require("../../kernel/lifecycle.js");
|
|
11
|
+
const require_actor = require("../../kernel/workflow/actor.js");
|
|
12
|
+
const require_compiler = require("../../kernel/workflow/compiler.js");
|
|
13
|
+
const require_coordinator = require("../operations/coordinator.js");
|
|
14
|
+
const require_blockPolicy = require("./blockPolicy.js");
|
|
15
|
+
const require_transitionRunner = require("./transitionRunner.js");
|
|
14
16
|
const require_workflowLifecycle = require("./workflowLifecycle.js");
|
|
15
17
|
const require_workflowContext = require("./workflowContext.js");
|
|
16
18
|
let _pisell_utils = require("@pisell/utils");
|
|
17
|
-
//#region src/components/HDLKiosk/runtime/
|
|
19
|
+
//#region src/components/HDLKiosk/runtime/session/createSession.ts
|
|
18
20
|
/**
|
|
19
21
|
* 文件角色:创建一次点餐会话所需的全部纯 Core 对象。
|
|
20
22
|
* 运行机制:选择/编译 Definition,组装 Activity Registry、Operation Registry、
|
|
@@ -22,14 +24,14 @@ let _pisell_utils = require("@pisell/utils");
|
|
|
22
24
|
* 边界:每次会话创建一次;不持有 React UI,也不复用上一单 Actor。
|
|
23
25
|
*/
|
|
24
26
|
function createHDLKioskWorkflowSession(entry, host, options = {}) {
|
|
25
|
-
var _options$initialConte, _options$lifecycleExt;
|
|
26
|
-
const operations =
|
|
27
|
+
var _options$initialConte, _options$lifecycleExt, _options$cause, _options$sessionId;
|
|
28
|
+
const operations = require_registry$1.createHDLKioskOperationRegistry();
|
|
27
29
|
const structuralCompilation = require_compiler.compileWorkflowStructure(require_registry.getBuiltInWorkflowDefinition(entry), {
|
|
28
30
|
operations,
|
|
29
31
|
activities: require_registry.defaultActivityRegistry,
|
|
30
32
|
predicates: require_predicates.defaultPredicateRegistry,
|
|
31
33
|
navigationGuards: require_navigationGuards.defaultNavigationGuardRegistry,
|
|
32
|
-
workflowIds:
|
|
34
|
+
workflowIds: require_index.HDL_WORKFLOW_IDS
|
|
33
35
|
});
|
|
34
36
|
if (structuralCompilation.status !== "valid") throw new Error(`Invalid built-in HDLKiosk workflow: ${structuralCompilation.issues.map((issue) => issue.code).join(",")}`);
|
|
35
37
|
const definition = structuralCompilation.definition;
|
|
@@ -42,7 +44,7 @@ function createHDLKioskWorkflowSession(entry, host, options = {}) {
|
|
|
42
44
|
});
|
|
43
45
|
let actorRef;
|
|
44
46
|
const coordinator = require_coordinator.createOperationCoordinator(host, operations, {
|
|
45
|
-
checkoutRequirementIds: definition.
|
|
47
|
+
checkoutRequirementIds: definition.requirements,
|
|
46
48
|
getWorkflowContext: () => {
|
|
47
49
|
var _actorRef$getSnapshot;
|
|
48
50
|
return (_actorRef$getSnapshot = actorRef === null || actorRef === void 0 ? void 0 : actorRef.getSnapshot().context) !== null && _actorRef$getSnapshot !== void 0 ? _actorRef$getSnapshot : initialContext;
|
|
@@ -52,7 +54,7 @@ function createHDLKioskWorkflowSession(entry, host, options = {}) {
|
|
|
52
54
|
coordinator.dispose();
|
|
53
55
|
throw new Error(`HDLKiosk workflow ${definition.id} cannot use entry ${entry}`);
|
|
54
56
|
}
|
|
55
|
-
const transitionRunner =
|
|
57
|
+
const transitionRunner = require_transitionRunner.createHDLKioskTransitionRunner({
|
|
56
58
|
host,
|
|
57
59
|
coordinator,
|
|
58
60
|
predicates: require_predicates.defaultPredicateRegistry
|
|
@@ -67,6 +69,40 @@ function createHDLKioskWorkflowSession(entry, host, options = {}) {
|
|
|
67
69
|
beforeEach: require_navigationGuards.createHDLKioskBeforeEachGuard(() => host.sales.getObservedSnapshot())
|
|
68
70
|
});
|
|
69
71
|
actorRef = workflowActor;
|
|
72
|
+
let paymentProjectionObservationId;
|
|
73
|
+
const advanceConfirmedPayment = () => {
|
|
74
|
+
var _definition$nodes$sna;
|
|
75
|
+
const snapshot = workflowActor.getSnapshot();
|
|
76
|
+
const projection = host.sales.getObservedSnapshot();
|
|
77
|
+
if (snapshot.status !== "idle" || ((_definition$nodes$sna = definition.nodes[snapshot.nodeId]) === null || _definition$nodes$sna === void 0 ? void 0 : _definition$nodes$sna.activity) !== "paymentMethod" || projection.payment.status !== "succeeded" || paymentProjectionObservationId === projection.observationId) return;
|
|
78
|
+
paymentProjectionObservationId = projection.observationId;
|
|
79
|
+
workflowActor.send({
|
|
80
|
+
type: "ACTIVITY_INTENT",
|
|
81
|
+
stepId: snapshot.nodeId,
|
|
82
|
+
activityId: "paymentMethod",
|
|
83
|
+
intent: "complete",
|
|
84
|
+
intentId: `projection:payment:${snapshot.sessionEpoch}:${projection.observationId}`
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
let unsubscribePaymentProjection = () => void 0;
|
|
88
|
+
let unsubscribePaymentWorkflow = () => void 0;
|
|
89
|
+
try {
|
|
90
|
+
unsubscribePaymentProjection = host.sales.subscribe(advanceConfirmedPayment);
|
|
91
|
+
unsubscribePaymentWorkflow = workflowActor.subscribe(advanceConfirmedPayment);
|
|
92
|
+
} catch (error) {
|
|
93
|
+
unsubscribePaymentProjection();
|
|
94
|
+
workflowActor.dispose();
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
advanceConfirmedPayment();
|
|
98
|
+
const sessionSnapshot = workflowActor.getSnapshot();
|
|
99
|
+
const cause = (_options$cause = options.cause) !== null && _options$cause !== void 0 ? _options$cause : Object.freeze({
|
|
100
|
+
trigger: "manual",
|
|
101
|
+
channel: definition.id,
|
|
102
|
+
occurrenceId: `${definition.id}:${sessionSnapshot.sessionEpoch}`,
|
|
103
|
+
correlationId: `${definition.id}:${sessionSnapshot.sessionEpoch}`
|
|
104
|
+
});
|
|
105
|
+
let disposed = false;
|
|
70
106
|
try {
|
|
71
107
|
const snapshot = workflowActor.getSnapshot();
|
|
72
108
|
host.telemetry.emit({
|
|
@@ -80,10 +116,24 @@ function createHDLKioskWorkflowSession(entry, host, options = {}) {
|
|
|
80
116
|
}
|
|
81
117
|
});
|
|
82
118
|
} catch (_unused) {}
|
|
119
|
+
const disposeSession = () => {
|
|
120
|
+
if (disposed) return;
|
|
121
|
+
disposed = true;
|
|
122
|
+
unsubscribePaymentProjection();
|
|
123
|
+
unsubscribePaymentWorkflow();
|
|
124
|
+
workflowActor.dispose();
|
|
125
|
+
};
|
|
126
|
+
const publicActor = Object.freeze(require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, workflowActor), {}, { dispose: disposeSession }));
|
|
83
127
|
return Object.freeze({
|
|
128
|
+
id: (_options$sessionId = options.sessionId) !== null && _options$sessionId !== void 0 ? _options$sessionId : `${definition.id}:${sessionSnapshot.sessionEpoch}:${cause.occurrenceId}`,
|
|
129
|
+
workflowId: definition.id,
|
|
130
|
+
cause,
|
|
84
131
|
entry,
|
|
85
132
|
definition,
|
|
86
|
-
actor:
|
|
133
|
+
actor: publicActor,
|
|
134
|
+
dispatch: (event) => workflowActor.send(event),
|
|
135
|
+
isActive: () => !disposed && workflowActor.getSnapshot().status !== "finished",
|
|
136
|
+
dispose: disposeSession,
|
|
87
137
|
ensure: (intentId) => {
|
|
88
138
|
const snapshot = workflowActor.getSnapshot();
|
|
89
139
|
return coordinator.execute("session.ensure", {
|
|
@@ -102,7 +152,7 @@ function createHDLKioskWorkflowSession(entry, host, options = {}) {
|
|
|
102
152
|
sessionEpoch: snapshot.sessionEpoch,
|
|
103
153
|
input
|
|
104
154
|
});
|
|
105
|
-
if (
|
|
155
|
+
if (require_blockPolicy.shouldHardBlockOperationResult(commandId, result)) workflowActor.block(result.error, intentId);
|
|
106
156
|
return result;
|
|
107
157
|
});
|
|
108
158
|
return function executeCommand(_x, _x2, _x3) {
|
package/lib/components/HDLKiosk/runtime/{domainTransitionRunner.js → session/transitionRunner.js}
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
const require_asyncToGenerator = require("
|
|
2
|
-
const require_transition = require("
|
|
3
|
-
|
|
1
|
+
const require_asyncToGenerator = require("../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js");
|
|
2
|
+
const require_transition = require("../../kernel/workflow/transition.js");
|
|
3
|
+
const require_blockPolicy = require("./blockPolicy.js");
|
|
4
|
+
//#region src/components/HDLKiosk/runtime/session/transitionRunner.ts
|
|
4
5
|
let domainErrorSequence = 0;
|
|
5
6
|
function createDomainWorkflowError(code, recovery = "staff", cause) {
|
|
6
7
|
domainErrorSequence += 1;
|
|
@@ -44,7 +45,7 @@ function createHDLKioskTransitionRunner({ host, coordinator, predicates, now = D
|
|
|
44
45
|
const error = createDomainWorkflowError("workflowPredicateEvaluationFailed", "staff", cause);
|
|
45
46
|
emitError(error, workflowId, stepId, event.intent);
|
|
46
47
|
return {
|
|
47
|
-
status: "
|
|
48
|
+
status: "stay",
|
|
48
49
|
lastError: error
|
|
49
50
|
};
|
|
50
51
|
}
|
|
@@ -94,6 +95,10 @@ function createHDLKioskTransitionRunner({ host, coordinator, predicates, now = D
|
|
|
94
95
|
status: "stay",
|
|
95
96
|
lastError: createDomainWorkflowError("checkoutPaymentCancelled", "retry", result.reason)
|
|
96
97
|
};
|
|
98
|
+
if ((result.status === "partialFailure" || result.status === "unknown") && !require_blockPolicy.shouldHardBlockOperationResult(command.id, result)) return {
|
|
99
|
+
status: "stay",
|
|
100
|
+
lastError: result.error
|
|
101
|
+
};
|
|
97
102
|
const decision = require_transition.resolveOperationTransition({
|
|
98
103
|
currentNodeId: stepId,
|
|
99
104
|
targetNodeId: transition.target,
|
|
@@ -105,7 +110,7 @@ function createHDLKioskTransitionRunner({ host, coordinator, predicates, now = D
|
|
|
105
110
|
};
|
|
106
111
|
if (decision.nodeId === transition.target) return {
|
|
107
112
|
status: "advance",
|
|
108
|
-
|
|
113
|
+
receipt: (command.id === "checkout.open" || command.id === "checkout.payEftpos") && result.status === "succeeded" ? result.data : void 0
|
|
109
114
|
};
|
|
110
115
|
return {
|
|
111
116
|
status: "stay",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_objectSpread2 = require("
|
|
2
|
-
//#region src/components/HDLKiosk/runtime/workflowContext.ts
|
|
1
|
+
const require_objectSpread2 = require("../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js");
|
|
2
|
+
//#region src/components/HDLKiosk/runtime/session/workflowContext.ts
|
|
3
3
|
const reduceHDLKioskWorkflowContext = (context, patch) => {
|
|
4
4
|
if (!patch) return context;
|
|
5
5
|
const fulfillment = patch.fulfillment === "dine_in" || patch.fulfillment === "takeaway" ? patch.fulfillment : context.fulfillment;
|
package/lib/components/HDLKiosk/runtime/{workflowLifecycle.js → session/workflowLifecycle.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_asyncToGenerator = require("
|
|
2
|
-
//#region src/components/HDLKiosk/runtime/workflowLifecycle.ts
|
|
1
|
+
const require_asyncToGenerator = require("../../../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js");
|
|
2
|
+
//#region src/components/HDLKiosk/runtime/session/workflowLifecycle.ts
|
|
3
3
|
function createHDLKioskWorkflowLifecycle(host, now = Date.now) {
|
|
4
4
|
const lifecycle = {
|
|
5
5
|
committed: function() {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const require_scaleIngress = require("./devices/scaleIngress.js");
|
|
2
|
+
//#region src/components/HDLKiosk/runtime/triggers.ts
|
|
3
|
+
function createHDLKioskEntryTriggerAdapters(host, config, scannerTriggerAdapter) {
|
|
4
|
+
const scaleIngress = require_scaleIngress.createScaleIngress();
|
|
5
|
+
const onWeight = Object.freeze({
|
|
6
|
+
trigger: "onWeight",
|
|
7
|
+
activate: ({ emit }) => host.devices.subscribe((event) => {
|
|
8
|
+
if (event.type !== "weightChanged") return;
|
|
9
|
+
const accepted = scaleIngress.accept(event, {
|
|
10
|
+
active: true,
|
|
11
|
+
supported: config.enabledEntries.includes("scale") && Boolean(config.primaryWeightedProductId) && host.capabilities.scale.available && host.capabilities.scale.weightChangeTrigger,
|
|
12
|
+
workflowLocked: false,
|
|
13
|
+
nodeAcceptsEvent: true,
|
|
14
|
+
paymentFrozen: false
|
|
15
|
+
});
|
|
16
|
+
if (accepted.status !== "accepted") return;
|
|
17
|
+
emit({
|
|
18
|
+
channel: "weighing-product",
|
|
19
|
+
occurrenceId: accepted.event.eventId,
|
|
20
|
+
correlationId: `device:scale:${accepted.event.eventId}`,
|
|
21
|
+
payload: { weight: accepted.event.weight }
|
|
22
|
+
});
|
|
23
|
+
}, { sources: ["scale"] })
|
|
24
|
+
});
|
|
25
|
+
return Object.freeze([scannerTriggerAdapter, onWeight]);
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
exports.createHDLKioskEntryTriggerAdapters = createHDLKioskEntryTriggerAdapters;
|
|
@@ -228,20 +228,24 @@ function CatalogScreen({ products, loading, errorReference, errorMessage, busy,
|
|
|
228
228
|
const item = rawItem;
|
|
229
229
|
const product = item;
|
|
230
230
|
const quantity = formatQuantity(orderBar.quantitiesByProduct[product.productId]);
|
|
231
|
+
const addProduct = () => send({
|
|
232
|
+
kind: "command",
|
|
233
|
+
command: "cart.addProduct",
|
|
234
|
+
input: {
|
|
235
|
+
productId: product.productId,
|
|
236
|
+
quantity: "1"
|
|
237
|
+
}
|
|
238
|
+
});
|
|
231
239
|
const action = /* @__PURE__ */ react.default.createElement("button", {
|
|
232
240
|
type: "button",
|
|
233
241
|
className: `${require_kioskCatalog.KIOSK_CATALOG_PRODUCT_CARD_CLASS_NAME}__add`,
|
|
234
242
|
disabled: busy || !product.available,
|
|
235
243
|
"aria-label": `${_pisell_utils.locales.getText("pisell2.hdl-kiosk.catalog-add-item")}: ${product.name}`,
|
|
236
244
|
"aria-busy": busy || void 0,
|
|
237
|
-
onClick: () =>
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
productId: product.productId,
|
|
242
|
-
quantity: "1"
|
|
243
|
-
}
|
|
244
|
-
})
|
|
245
|
+
onClick: (event) => {
|
|
246
|
+
event.stopPropagation();
|
|
247
|
+
addProduct();
|
|
248
|
+
}
|
|
245
249
|
}, quantity ? /* @__PURE__ */ react.default.createElement("span", { "data-length": Math.min(quantity.length, 5) }, quantity) : /* @__PURE__ */ react.default.createElement(PlusIcon, null));
|
|
246
250
|
return /* @__PURE__ */ react.default.createElement(require_index.default, {
|
|
247
251
|
key: product.productId,
|
|
@@ -249,6 +253,9 @@ function CatalogScreen({ products, loading, errorReference, errorMessage, busy,
|
|
|
249
253
|
index,
|
|
250
254
|
scenario: "booking2",
|
|
251
255
|
selectionTrigger: "click",
|
|
256
|
+
onSelect: busy || !product.available ? void 0 : addProduct,
|
|
257
|
+
onSelectCover: busy || !product.available ? void 0 : addProduct,
|
|
258
|
+
onSelectInfo: busy || !product.available ? void 0 : addProduct,
|
|
252
259
|
className: require_kioskCatalog.KIOSK_CATALOG_PRODUCT_CARD_CLASS_NAME,
|
|
253
260
|
customSkuCardAllConfig: require_kioskCatalog.createKioskCatalogProductCardConfig({
|
|
254
261
|
title: product.name,
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
.pisell-hdl-kiosk {
|
|
2
2
|
.hdl-catalog-screen {
|
|
3
|
+
--hdl-catalog-menu-font-level-1: 24px;
|
|
4
|
+
--hdl-catalog-menu-font-level-2: 20px;
|
|
5
|
+
--hdl-catalog-menu-font-level-3: 18px;
|
|
3
6
|
position: relative;
|
|
4
7
|
width: 100%;
|
|
5
8
|
height: 100%;
|
|
@@ -9,16 +12,14 @@
|
|
|
9
12
|
}
|
|
10
13
|
|
|
11
14
|
.hdl-catalog-layout {
|
|
12
|
-
display:
|
|
15
|
+
display: flex;
|
|
13
16
|
width: 100%;
|
|
14
17
|
height: 100%;
|
|
15
18
|
min-height: 0;
|
|
16
|
-
grid-template-columns: clamp(96px, 18vw, 180px) minmax(0, 1fr);
|
|
17
19
|
overflow: hidden;
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
.hdl-catalog-layout > .pisell-kiosk-category-sidebar {
|
|
21
|
-
width: 100%;
|
|
22
23
|
border-right-color: rgba(255, 255, 255, 0.1);
|
|
23
24
|
background: #202735;
|
|
24
25
|
--pisell-kiosk-cart-capsule-reserved-space: max(
|
|
@@ -49,14 +50,17 @@
|
|
|
49
50
|
.pisell-kiosk-category-sidebar__tabbar
|
|
50
51
|
.text-card {
|
|
51
52
|
box-sizing: border-box;
|
|
53
|
+
min-height: 80px !important;
|
|
52
54
|
justify-content: flex-start !important;
|
|
55
|
+
gap: 10px !important;
|
|
53
56
|
border: 1px solid rgba(255, 255, 255, 0.1) !important;
|
|
54
57
|
border-radius: 14px !important;
|
|
58
|
+
padding: 10px 16px !important;
|
|
55
59
|
background: rgba(255, 255, 255, 0.06) !important;
|
|
56
60
|
color: rgba(255, 255, 255, 0.78) !important;
|
|
57
|
-
font-size:
|
|
58
|
-
font-weight:
|
|
59
|
-
line-height: 1.
|
|
61
|
+
font-size: var(--hdl-catalog-menu-font-level-1);
|
|
62
|
+
font-weight: 850;
|
|
63
|
+
line-height: 1.15;
|
|
60
64
|
text-align: left;
|
|
61
65
|
}
|
|
62
66
|
|
|
@@ -65,9 +69,9 @@
|
|
|
65
69
|
.text-card
|
|
66
70
|
.text-card__content {
|
|
67
71
|
color: rgba(255, 255, 255, 0.78) !important;
|
|
68
|
-
font-size:
|
|
69
|
-
font-weight:
|
|
70
|
-
line-height: 1.
|
|
72
|
+
font-size: var(--hdl-catalog-menu-font-level-1) !important;
|
|
73
|
+
font-weight: 850 !important;
|
|
74
|
+
line-height: 1.15;
|
|
71
75
|
text-align: left !important;
|
|
72
76
|
}
|
|
73
77
|
|
|
@@ -84,6 +88,16 @@
|
|
|
84
88
|
.text-card
|
|
85
89
|
.anticon {
|
|
86
90
|
color: rgba(255, 255, 255, 0.86) !important;
|
|
91
|
+
font-size: 24px !important;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.hdl-catalog-layout
|
|
95
|
+
.pisell-kiosk-category-sidebar__tabbar
|
|
96
|
+
.text-card
|
|
97
|
+
.text-card__icon
|
|
98
|
+
img {
|
|
99
|
+
width: 24px !important;
|
|
100
|
+
height: 24px !important;
|
|
87
101
|
}
|
|
88
102
|
|
|
89
103
|
.hdl-catalog-layout
|
|
@@ -130,10 +144,14 @@
|
|
|
130
144
|
.pisell-kiosk-category-sidebar__tabbar
|
|
131
145
|
.pisell-tabbar__level--2
|
|
132
146
|
.text-card {
|
|
147
|
+
min-height: 68px !important;
|
|
148
|
+
gap: 8px !important;
|
|
133
149
|
border-radius: 12px !important;
|
|
150
|
+
padding: 8px 14px !important;
|
|
134
151
|
background: transparent !important;
|
|
135
|
-
font-size:
|
|
152
|
+
font-size: var(--hdl-catalog-menu-font-level-2);
|
|
136
153
|
font-weight: 850;
|
|
154
|
+
line-height: 1.15;
|
|
137
155
|
}
|
|
138
156
|
|
|
139
157
|
.hdl-catalog-layout
|
|
@@ -141,18 +159,23 @@
|
|
|
141
159
|
.pisell-tabbar__level--2
|
|
142
160
|
.text-card
|
|
143
161
|
.text-card__content {
|
|
144
|
-
font-size:
|
|
162
|
+
font-size: var(--hdl-catalog-menu-font-level-2) !important;
|
|
145
163
|
font-weight: 850 !important;
|
|
164
|
+
line-height: 1.15;
|
|
146
165
|
}
|
|
147
166
|
|
|
148
167
|
.hdl-catalog-layout
|
|
149
168
|
.pisell-kiosk-category-sidebar__tabbar
|
|
150
169
|
.pisell-tabbar__level--3
|
|
151
170
|
.text-card {
|
|
171
|
+
min-height: 60px !important;
|
|
172
|
+
gap: 8px !important;
|
|
152
173
|
border-radius: 10px !important;
|
|
174
|
+
padding: 7px 12px !important;
|
|
153
175
|
background: transparent !important;
|
|
154
|
-
font-size:
|
|
176
|
+
font-size: var(--hdl-catalog-menu-font-level-3);
|
|
155
177
|
font-weight: 800;
|
|
178
|
+
line-height: 1.15;
|
|
156
179
|
}
|
|
157
180
|
|
|
158
181
|
.hdl-catalog-layout
|
|
@@ -160,8 +183,45 @@
|
|
|
160
183
|
.pisell-tabbar__level--3
|
|
161
184
|
.text-card
|
|
162
185
|
.text-card__content {
|
|
163
|
-
font-size:
|
|
186
|
+
font-size: var(--hdl-catalog-menu-font-level-3) !important;
|
|
164
187
|
font-weight: 800 !important;
|
|
188
|
+
line-height: 1.15;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.hdl-catalog-layout
|
|
192
|
+
.pisell-kiosk-category-sidebar__tabbar
|
|
193
|
+
.pisell-tabbar__level--2
|
|
194
|
+
.text-card
|
|
195
|
+
:is(.pisell-icon, .iconfont, .anticon) {
|
|
196
|
+
font-size: 20px !important;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.hdl-catalog-layout
|
|
200
|
+
.pisell-kiosk-category-sidebar__tabbar
|
|
201
|
+
.pisell-tabbar__level--2
|
|
202
|
+
.text-card
|
|
203
|
+
.text-card__icon
|
|
204
|
+
img {
|
|
205
|
+
width: 20px !important;
|
|
206
|
+
height: 20px !important;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.hdl-catalog-layout
|
|
210
|
+
.pisell-kiosk-category-sidebar__tabbar
|
|
211
|
+
.pisell-tabbar__level--3
|
|
212
|
+
.text-card
|
|
213
|
+
:is(.pisell-icon, .iconfont, .anticon) {
|
|
214
|
+
font-size: 18px !important;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.hdl-catalog-layout
|
|
218
|
+
.pisell-kiosk-category-sidebar__tabbar
|
|
219
|
+
.pisell-tabbar__level--3
|
|
220
|
+
.text-card
|
|
221
|
+
.text-card__icon
|
|
222
|
+
img {
|
|
223
|
+
width: 18px !important;
|
|
224
|
+
height: 18px !important;
|
|
165
225
|
}
|
|
166
226
|
|
|
167
227
|
.hdl-catalog-layout
|
|
@@ -206,6 +266,7 @@
|
|
|
206
266
|
.hdl-catalog-main {
|
|
207
267
|
position: relative;
|
|
208
268
|
display: flex;
|
|
269
|
+
flex: 1 1 0;
|
|
209
270
|
min-width: 0;
|
|
210
271
|
min-height: 0;
|
|
211
272
|
flex-direction: column;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
const require_defineSlice = require("../../kernel/application/defineSlice.js");
|
|
2
|
-
const
|
|
2
|
+
const require_operations = require("../../app/operations.js");
|
|
3
3
|
//#region src/components/HDLKiosk/slices/catalog/slice.ts
|
|
4
4
|
/** Catalog Slice:声明补充商品加购;商品浏览动作不进入 Workflow。 */
|
|
5
5
|
const catalogSlice = require_defineSlice.defineSlice({
|
|
6
6
|
id: "catalog",
|
|
7
|
-
|
|
8
|
-
commands: { addProduct:
|
|
7
|
+
surface: { id: "catalog" },
|
|
8
|
+
commands: { addProduct: require_operations.cartAddProductOperation },
|
|
9
9
|
intents: { complete: require_defineSlice.intentPrecondition("cart.notEmpty", { navigate: "next" }) }
|
|
10
10
|
});
|
|
11
11
|
//#endregion
|