@pisell/pisellos 0.0.569 → 0.10.2
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/dist/core/index.js +10 -6
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -3
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/evaluator.js +7 -5
- package/dist/model/strategy/adapter/walletPass/example.js +26 -3
- package/dist/model/strategy/adapter/walletPass/index.js +5 -5
- package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
- package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
- package/dist/model/strategy/adapter/walletPass/utils.js +17 -92
- package/dist/model/strategy/strategy-example.js +19 -5
- package/dist/modules/BaseModule.d.ts +1 -1
- package/dist/modules/BaseModule.js +8 -10
- package/dist/modules/Cart/index.js +3 -0
- package/dist/modules/Cart/utils/cartProduct.js +1 -0
- package/dist/modules/Cart/utils/cartResource.js +0 -2
- package/dist/modules/Cart/utils/changePrice.js +9 -16
- package/dist/modules/Date/index.js +5 -1
- package/dist/modules/Discount/index.d.ts +0 -1
- package/dist/modules/Discount/index.js +7 -22
- package/dist/modules/Discount/types.d.ts +0 -1
- package/dist/modules/OpenData/index.js +2 -0
- package/dist/modules/Order/index.js +70 -40
- package/dist/modules/Payment/index.js +162 -97
- package/dist/modules/Payment/types.d.ts +4 -8
- package/dist/modules/Payment/walletpass.d.ts +0 -2
- package/dist/modules/Payment/walletpass.js +5 -4
- package/dist/modules/ProductList/index.d.ts +1 -1
- package/dist/modules/ProductList/index.js +3 -12
- package/dist/modules/ProductList/types.d.ts +0 -1
- package/dist/modules/Rules/index.js +126 -427
- package/dist/modules/SalesSummary/utils.js +1 -2
- package/dist/modules/Schedule/getDateIsInSchedule.js +0 -5
- package/dist/modules/Schedule/index.js +1 -0
- package/dist/modules/Schedule/utils.js +1 -0
- package/dist/modules/Step/index.js +1 -0
- package/dist/modules/Summary/utils.js +22 -43
- package/dist/plugins/request.js +4 -1
- package/dist/plugins/window.js +6 -2
- package/dist/server/index.js +129 -97
- package/dist/server/modules/menu/index.js +41 -32
- package/dist/server/modules/order/index.js +4 -2
- package/dist/server/modules/products/index.js +42 -24
- package/dist/server/modules/quotation/index.js +38 -29
- package/dist/server/modules/resource/index.js +4 -3
- package/dist/server/modules/schedule/index.js +35 -27
- package/dist/server/utils/product.js +1 -0
- package/dist/solution/BaseSales/index.js +41 -38
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingByStep/index.js +60 -11
- package/dist/solution/BookingByStep/utils/capacity.js +11 -1
- package/dist/solution/BookingByStep/utils/resources.js +3 -1
- package/dist/solution/BookingByStep/utils/timeslots.js +43 -2
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +2 -0
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +7 -6
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +31 -25
- package/dist/solution/BookingTicket/utils/scan/index.js +10 -6
- package/dist/solution/BuyTickets/index.js +12 -9
- package/dist/solution/Checkout/index.js +252 -177
- package/dist/solution/Checkout/utils/index.js +16 -4
- package/dist/solution/RegisterAndLogin/index.js +76 -30
- package/dist/solution/ScanOrder/index.js +60 -50
- package/dist/solution/ShopDiscount/index.js +14 -15
- package/dist/solution/ShopDiscount/types.d.ts +4 -5
- package/dist/solution/ShopDiscount/utils.d.ts +0 -9
- package/dist/solution/ShopDiscount/utils.js +0 -9
- package/dist/solution/VenueBooking/index.d.ts +3 -31
- package/dist/solution/VenueBooking/index.js +496 -651
- package/dist/solution/VenueBooking/types.d.ts +1 -3
- package/dist/solution/VenueBooking/types.js +0 -1
- package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
- package/dist/solution/VenueBooking/utils/dateSummary.js +25 -12
- package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
- package/dist/solution/VenueBooking/utils/timeSlot.js +4 -9
- package/dist/types/index.d.ts +1 -1
- package/dist/utils/task.js +18 -15
- package/dist/utils/watch.js +1 -0
- package/lib/apis/picoding.js +0 -2
- package/lib/core/index.js +132 -130
- package/lib/effects/index.js +57 -46
- package/lib/index.d.ts +0 -1
- package/lib/index.js +50 -92
- package/lib/model/index.js +21 -14
- package/lib/model/strategy/adapter/dataVariant/adapter.js +50 -38
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +236 -162
- package/lib/model/strategy/adapter/dataVariant/examples.js +237 -229
- package/lib/model/strategy/adapter/dataVariant/index.js +34 -39
- package/lib/model/strategy/adapter/dataVariant/type.js +28 -57
- package/lib/model/strategy/adapter/index.js +64 -100
- package/lib/model/strategy/adapter/itemRule/adapter.js +144 -156
- package/lib/model/strategy/adapter/itemRule/evaluator.js +48 -36
- package/lib/model/strategy/adapter/itemRule/examples.js +225 -295
- package/lib/model/strategy/adapter/itemRule/index.js +57 -83
- package/lib/model/strategy/adapter/itemRule/type.js +36 -97
- package/lib/model/strategy/adapter/promotion/adapter.js +63 -84
- package/lib/model/strategy/adapter/promotion/evaluator.js +231 -381
- package/lib/model/strategy/adapter/promotion/examples.js +159 -139
- package/lib/model/strategy/adapter/promotion/index.js +49 -1
- package/lib/model/strategy/adapter/promotion/type.js +35 -199
- package/lib/model/strategy/adapter/type.js +16 -4
- package/lib/model/strategy/adapter/walletPass/evaluator.js +152 -180
- package/lib/model/strategy/adapter/walletPass/example.js +190 -217
- package/lib/model/strategy/adapter/walletPass/index.js +51 -75
- package/lib/model/strategy/adapter/walletPass/locales.js +58 -36
- package/lib/model/strategy/adapter/walletPass/type.d.ts +0 -3
- package/lib/model/strategy/adapter/walletPass/type.js +16 -4
- package/lib/model/strategy/adapter/walletPass/utils.d.ts +0 -26
- package/lib/model/strategy/adapter/walletPass/utils.js +383 -678
- package/lib/model/strategy/engine.js +168 -270
- package/lib/model/strategy/index.js +34 -49
- package/lib/model/strategy/strategy-example.js +239 -243
- package/lib/model/strategy/type.js +40 -100
- package/lib/modules/Account/index.js +53 -39
- package/lib/modules/Account/types.js +33 -20
- package/lib/modules/AccountList/index.js +154 -116
- package/lib/modules/AccountList/types.js +31 -30
- package/lib/modules/AccountList/utils.js +30 -18
- package/lib/modules/BaseModule.d.ts +1 -1
- package/lib/modules/BaseModule.js +46 -25
- package/lib/modules/BookingContext/index.js +136 -158
- package/lib/modules/BookingContext/types.js +32 -46
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +143 -131
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +82 -75
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +150 -170
- package/lib/modules/BookingContext/utils/flexible.js +55 -38
- package/lib/modules/BookingContext/utils/formatResourceList.js +34 -19
- package/lib/modules/BookingContext/utils/index.js +41 -124
- package/lib/modules/BookingContext/utils/noResource.js +70 -58
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +41 -14
- package/lib/modules/BookingContext/utils/productExtend.js +155 -202
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +41 -19
- package/lib/modules/BookingContext/utils/resources.js +167 -209
- package/lib/modules/BookingContext/utils/serviceTimes.js +116 -115
- package/lib/modules/BookingContext/utils/timeSlices.js +80 -70
- package/lib/modules/Cart/index.js +124 -170
- package/lib/modules/Cart/types.js +51 -46
- package/lib/modules/Cart/utils/cartAccount.js +39 -40
- package/lib/modules/Cart/utils/cartDate.js +61 -56
- package/lib/modules/Cart/utils/cartDiscount.js +33 -28
- package/lib/modules/Cart/utils/cartNote.js +32 -27
- package/lib/modules/Cart/utils/cartProduct.js +251 -321
- package/lib/modules/Cart/utils/cartRelationForms.js +35 -29
- package/lib/modules/Cart/utils/cartResource.js +78 -72
- package/lib/modules/Cart/utils/changePrice.js +50 -28
- package/lib/modules/Cart/utils/index.js +48 -106
- package/lib/modules/Customer/constants.js +34 -13
- package/lib/modules/Customer/index.js +169 -232
- package/lib/modules/Customer/types.js +35 -38
- package/lib/modules/Date/index.js +115 -116
- package/lib/modules/Date/types.js +28 -16
- package/lib/modules/Date/utils.js +123 -174
- package/lib/modules/Discount/index.d.ts +0 -1
- package/lib/modules/Discount/index.js +128 -130
- package/lib/modules/Discount/types.d.ts +0 -1
- package/lib/modules/Discount/types.js +31 -9
- package/lib/modules/Guests/index.js +56 -30
- package/lib/modules/Guests/types.js +33 -23
- package/lib/modules/Holder/index.js +189 -209
- package/lib/modules/Holder/types.js +16 -4
- package/lib/modules/Holder/utils.js +49 -20
- package/lib/modules/OpenData/index.js +76 -69
- package/lib/modules/OpenData/types.js +16 -4
- package/lib/modules/OpenData/utils.js +78 -44
- package/lib/modules/Order/index.js +1909 -1572
- package/lib/modules/Order/types.js +35 -78
- package/lib/modules/Order/utils/bundleDiscountHydration.js +74 -41
- package/lib/modules/Order/utils/manualProductDiscount.js +123 -124
- package/lib/modules/Order/utils/orderCollectionIdentity.js +210 -148
- package/lib/modules/Order/utils.js +634 -799
- package/lib/modules/Payment/cash.js +33 -20
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
- package/lib/modules/Payment/eftpos.js +30 -16
- package/lib/modules/Payment/index.js +378 -518
- package/lib/modules/Payment/mx51.js +0 -1
- package/lib/modules/Payment/types.d.ts +4 -8
- package/lib/modules/Payment/types.js +107 -216
- package/lib/modules/Payment/utils.js +48 -51
- package/lib/modules/Payment/walletpass.d.ts +0 -2
- package/lib/modules/Payment/walletpass.js +211 -226
- package/lib/modules/Product/index.js +46 -51
- package/lib/modules/Product/types.js +16 -4
- package/lib/modules/Product/utils.js +33 -32
- package/lib/modules/ProductList/index.d.ts +1 -1
- package/lib/modules/ProductList/index.js +117 -117
- package/lib/modules/ProductList/types.d.ts +0 -1
- package/lib/modules/ProductList/types.js +31 -9
- package/lib/modules/Quotation/index.js +100 -66
- package/lib/modules/Quotation/types.js +16 -4
- package/lib/modules/Resource/index.js +59 -27
- package/lib/modules/Resource/types.js +32 -22
- package/lib/modules/Resource/utils.js +38 -30
- package/lib/modules/ResourcePlanner/index.js +61 -60
- package/lib/modules/ResourcePlanner/planner.js +384 -346
- package/lib/modules/ResourcePlanner/types.js +16 -4
- package/lib/modules/Rules/index.js +903 -1475
- package/lib/modules/Rules/types.js +40 -17
- package/lib/modules/SalesSummary/index.js +90 -85
- package/lib/modules/SalesSummary/types.js +16 -4
- package/lib/modules/SalesSummary/utils.js +427 -351
- package/lib/modules/ScanOrderLogger/index.js +79 -59
- package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
- package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
- package/lib/modules/ScanOrderLogger/types.js +16 -4
- package/lib/modules/Schedule/getDateIsInSchedule.js +163 -339
- package/lib/modules/Schedule/index.js +114 -100
- package/lib/modules/Schedule/type.js +16 -4
- package/lib/modules/Schedule/types.js +16 -4
- package/lib/modules/Schedule/utils.js +291 -433
- package/lib/modules/Step/index.js +52 -40
- package/lib/modules/Step/tyeps.js +16 -4
- package/lib/modules/Summary/index.js +71 -66
- package/lib/modules/Summary/types.js +16 -4
- package/lib/modules/Summary/utils.js +418 -791
- package/lib/modules/SurchargeList/index.js +60 -46
- package/lib/modules/SurchargeList/types.js +16 -4
- package/lib/modules/index.js +63 -245
- package/lib/plugins/app.js +16 -4
- package/lib/plugins/index.js +25 -36
- package/lib/plugins/request.js +126 -137
- package/lib/plugins/shopStore.js +16 -4
- package/lib/plugins/user.js +16 -4
- package/lib/plugins/window.js +179 -171
- package/lib/server/index.js +2337 -2675
- package/lib/server/modules/floor-plan/index.js +123 -102
- package/lib/server/modules/floor-plan/types.js +30 -15
- package/lib/server/modules/index.js +68 -106
- package/lib/server/modules/menu/index.js +122 -146
- package/lib/server/modules/menu/types.js +31 -18
- package/lib/server/modules/order/index.js +642 -567
- package/lib/server/modules/order/types.js +32 -117
- package/lib/server/modules/order/utils/filterBookings.js +194 -219
- package/lib/server/modules/order/utils/filterOrders.js +92 -118
- package/lib/server/modules/payment/index.js +83 -59
- package/lib/server/modules/payment/types.js +16 -4
- package/lib/server/modules/products/index.js +459 -575
- package/lib/server/modules/products/types.js +34 -44
- package/lib/server/modules/quotation/index.js +172 -137
- package/lib/server/modules/quotation/types.js +31 -21
- package/lib/server/modules/resource/index.js +184 -213
- package/lib/server/modules/resource/types.js +33 -42
- package/lib/server/modules/schedule/index.js +123 -135
- package/lib/server/modules/schedule/types.js +21 -14
- package/lib/server/modules/schedule/utils.js +163 -334
- package/lib/server/types.js +16 -4
- package/lib/server/utils/index.js +23 -25
- package/lib/server/utils/product.js +139 -196
- package/lib/server/utils/schedule.js +41 -34
- package/lib/server/utils/small-ticket.js +456 -478
- package/lib/server/utils/time.js +49 -40
- package/lib/solution/BaseSales/index.js +1016 -850
- package/lib/solution/BaseSales/types.js +37 -41
- package/lib/solution/BaseSales/utils/cartPromotion.js +460 -611
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +105 -85
- package/lib/solution/BaseSales/utils/quotationPrice.js +114 -56
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +143 -102
- package/lib/solution/BaseSales/utils.js +140 -155
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1340 -1530
- package/lib/solution/BookingByStep/types.js +99 -40
- package/lib/solution/BookingByStep/utils/capacity.js +160 -192
- package/lib/solution/BookingByStep/utils/products.js +52 -42
- package/lib/solution/BookingByStep/utils/resources.js +330 -527
- package/lib/solution/BookingByStep/utils/stock.js +44 -65
- package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +459 -543
- package/lib/solution/BookingTicket/types.js +77 -99
- package/lib/solution/BookingTicket/utils/addProductDecision.js +184 -219
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +89 -58
- package/lib/solution/BookingTicket/utils/bookingStatus.js +78 -107
- package/lib/solution/BookingTicket/utils/cartView.js +94 -110
- package/lib/solution/BookingTicket/utils/exampleData.js +0 -185
- package/lib/solution/BookingTicket/utils/orderCustomer.js +41 -18
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +86 -219
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +93 -144
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +91 -79
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +41 -54
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -84
- package/lib/solution/BookingTicket/utils/scan/index.js +104 -98
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +64 -52
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +58 -56
- package/lib/solution/BuyTickets/index.js +70 -67
- package/lib/solution/BuyTickets/types.js +38 -22
- package/lib/solution/Checkout/index.js +1158 -1451
- package/lib/solution/Checkout/types.js +61 -91
- package/lib/solution/Checkout/utils/index.js +156 -228
- package/lib/solution/PlaceOrder/index.js +0 -55
- package/lib/solution/RegisterAndLogin/config.js +460 -493
- package/lib/solution/RegisterAndLogin/index.js +630 -633
- package/lib/solution/RegisterAndLogin/types.js +76 -189
- package/lib/solution/RegisterAndLogin/utils.js +125 -183
- package/lib/solution/Sales/index.js +320 -317
- package/lib/solution/Sales/types.js +33 -27
- package/lib/solution/ScanOrder/index.js +862 -831
- package/lib/solution/ScanOrder/types.js +34 -33
- package/lib/solution/ScanOrder/utils.js +371 -406
- package/lib/solution/ShopDiscount/index.js +233 -235
- package/lib/solution/ShopDiscount/types.d.ts +4 -5
- package/lib/solution/ShopDiscount/types.js +37 -15
- package/lib/solution/ShopDiscount/utils.d.ts +0 -9
- package/lib/solution/ShopDiscount/utils.js +172 -309
- package/lib/solution/UnifiedBookingSales/index.js +405 -379
- package/lib/solution/UnifiedBookingSales/types.js +31 -12
- package/lib/solution/VenueBooking/index.d.ts +3 -31
- package/lib/solution/VenueBooking/index.js +916 -967
- package/lib/solution/VenueBooking/types.d.ts +1 -3
- package/lib/solution/VenueBooking/types.js +39 -20
- package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
- package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
- package/lib/solution/VenueBooking/utils/resource.js +54 -31
- package/lib/solution/VenueBooking/utils/slotMerge.js +107 -94
- package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
- package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
- package/lib/solution/VenueBooking/utils.js +67 -130
- package/lib/solution/index.js +41 -124
- package/lib/store/createStore.js +29 -32
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.js +16 -4
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +47 -81
- package/package.json +2 -4
- package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
- package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
- package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
- package/lib/solution/VenueBooking/utils/smartPricing.js +0 -192
|
@@ -1,289 +1,282 @@
|
|
|
1
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
2
28
|
|
|
3
|
-
|
|
4
|
-
|
|
29
|
+
// src/modules/Discount/index.ts
|
|
30
|
+
var Discount_exports = {};
|
|
31
|
+
__export(Discount_exports, {
|
|
32
|
+
DiscountModule: () => DiscountModule
|
|
5
33
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
class DiscountModule extends _BaseModule.BaseModule {
|
|
13
|
-
defaultName = 'discount';
|
|
14
|
-
defaultVersion = '1.0.0';
|
|
15
|
-
request;
|
|
16
|
-
window;
|
|
17
|
-
store;
|
|
18
|
-
cacheId;
|
|
19
|
-
openCache = false;
|
|
20
|
-
fatherModule;
|
|
34
|
+
module.exports = __toCommonJS(Discount_exports);
|
|
35
|
+
var import_utils = require("../../solution/ShopDiscount/utils");
|
|
36
|
+
var import_BaseModule = require("../BaseModule");
|
|
37
|
+
var import_types = require("./types");
|
|
38
|
+
var import_decimal = __toESM(require("decimal.js"));
|
|
39
|
+
var DiscountModule = class extends import_BaseModule.BaseModule {
|
|
21
40
|
constructor(name, version) {
|
|
22
41
|
super(name, version);
|
|
42
|
+
this.defaultName = "discount";
|
|
43
|
+
this.defaultVersion = "1.0.0";
|
|
44
|
+
this.openCache = false;
|
|
23
45
|
}
|
|
24
46
|
async initialize(core, options) {
|
|
47
|
+
var _a, _b, _c, _d;
|
|
25
48
|
this.core = core;
|
|
26
|
-
this.store = options
|
|
27
|
-
if (Array.isArray(options
|
|
28
|
-
this.store.discountList = options
|
|
49
|
+
this.store = options == null ? void 0 : options.store;
|
|
50
|
+
if (Array.isArray((_a = options == null ? void 0 : options.initialState) == null ? void 0 : _a.discountList)) {
|
|
51
|
+
this.store.discountList = options == null ? void 0 : options.initialState.discountList;
|
|
29
52
|
} else {
|
|
30
53
|
this.store.discountList = [];
|
|
31
54
|
}
|
|
32
|
-
if (Array.isArray(options
|
|
33
|
-
this.store.originalDiscountList = options
|
|
55
|
+
if (Array.isArray((_b = options == null ? void 0 : options.initialState) == null ? void 0 : _b.originalDiscountList)) {
|
|
56
|
+
this.store.originalDiscountList = options == null ? void 0 : options.initialState.originalDiscountList;
|
|
34
57
|
} else {
|
|
35
58
|
this.store.originalDiscountList = [];
|
|
36
59
|
}
|
|
37
|
-
if (options
|
|
60
|
+
if ((_c = options == null ? void 0 : options.otherParams) == null ? void 0 : _c.cacheId) {
|
|
38
61
|
this.openCache = options.otherParams.openCache;
|
|
39
62
|
this.cacheId = options.otherParams.cacheId;
|
|
40
63
|
}
|
|
41
|
-
if (options
|
|
64
|
+
if ((_d = options == null ? void 0 : options.otherParams) == null ? void 0 : _d.fatherModule) {
|
|
42
65
|
this.fatherModule = options.otherParams.fatherModule;
|
|
43
66
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
this.request = core.getPlugin('request');
|
|
47
|
-
this.window = core.getPlugin('window');
|
|
67
|
+
this.request = core.getPlugin("request");
|
|
68
|
+
this.window = core.getPlugin("window");
|
|
48
69
|
if (!this.request) {
|
|
49
|
-
throw new Error(
|
|
70
|
+
throw new Error("discount模块需要 request 插件支持");
|
|
50
71
|
}
|
|
51
72
|
if (!this.window) {
|
|
52
|
-
throw new Error(
|
|
73
|
+
throw new Error("discount模块需要 window 插件支持");
|
|
53
74
|
}
|
|
54
75
|
}
|
|
55
76
|
async setDiscountList(discountList) {
|
|
56
77
|
this.store.discountList = discountList;
|
|
57
|
-
await this.core.effects.emit(
|
|
78
|
+
await this.core.effects.emit(
|
|
79
|
+
import_types.DiscountHooks.OnDiscountListChange,
|
|
80
|
+
discountList
|
|
81
|
+
);
|
|
58
82
|
}
|
|
59
83
|
getDiscountList() {
|
|
60
84
|
return this.store.discountList;
|
|
61
85
|
}
|
|
62
|
-
|
|
63
86
|
// 设置原始优惠券列表
|
|
64
87
|
async setOriginalDiscountList(originalDiscountList) {
|
|
65
88
|
this.store.originalDiscountList = originalDiscountList;
|
|
66
89
|
}
|
|
67
|
-
|
|
68
90
|
// 获取原始优惠券列表
|
|
69
91
|
getOriginalDiscountList() {
|
|
70
92
|
return this.store.originalDiscountList || [];
|
|
71
93
|
}
|
|
72
94
|
normalizePositiveNumberIds(values) {
|
|
73
|
-
const ids = values.map(value => Number(value)).filter(value => Number.isFinite(value) && value > 0);
|
|
95
|
+
const ids = values.map((value) => Number(value)).filter((value) => Number.isFinite(value) && value > 0);
|
|
74
96
|
return Array.from(new Set(ids));
|
|
75
97
|
}
|
|
76
98
|
async loadPrepareConfig(params) {
|
|
77
|
-
|
|
78
|
-
|
|
99
|
+
var _a, _b, _c, _d, _e;
|
|
100
|
+
if (typeof params.order_id === "string" && params.order_id.startsWith("LOCAL_")) {
|
|
101
|
+
params.order_id = void 0;
|
|
79
102
|
}
|
|
80
|
-
const prepareConfig = await this.request.post(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
103
|
+
const prepareConfig = await this.request.post(
|
|
104
|
+
`/order/prepare/config`,
|
|
105
|
+
{
|
|
106
|
+
...params,
|
|
107
|
+
with_available_wallet_flag: params.with_available_wallet_flag ?? 1,
|
|
108
|
+
with_available_wallet_pass_flag: params.with_available_wallet_pass_flag ?? 1
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
const rawDiscountList = [
|
|
112
|
+
...((_a = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _a.good_pass_list) || [],
|
|
113
|
+
...((_b = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _b.discount_card_list) || []
|
|
114
|
+
];
|
|
115
|
+
const availableWalletList = [
|
|
116
|
+
...((_c = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _c.avaiable_wallet_list) || [],
|
|
117
|
+
...((_d = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _d.available_wallet_list) || []
|
|
118
|
+
];
|
|
119
|
+
const availableWalletPassList = ((_e = prepareConfig == null ? void 0 : prepareConfig.data) == null ? void 0 : _e.available_wallet_pass_list) || [];
|
|
120
|
+
const availableWalletIds = this.normalizePositiveNumberIds([
|
|
121
|
+
...availableWalletList.map((item) => item == null ? void 0 : item.wallet_id),
|
|
122
|
+
...availableWalletPassList.map((item) => item == null ? void 0 : item.product_id)
|
|
123
|
+
]);
|
|
124
|
+
const goodPassList = this.filterEnabledDiscountList(
|
|
125
|
+
rawDiscountList
|
|
126
|
+
) || [];
|
|
93
127
|
return {
|
|
94
128
|
discountList: goodPassList,
|
|
95
|
-
availableWalletIds
|
|
129
|
+
availableWalletIds
|
|
96
130
|
};
|
|
97
131
|
}
|
|
98
|
-
extractAvailableWalletIds(data) {
|
|
99
|
-
const availableWalletList = Array.isArray(data?.avaiable_wallet_list) ? data.avaiable_wallet_list : Array.isArray(data?.available_wallet_list) ? data.available_wallet_list : [];
|
|
100
|
-
const availableWalletPassList = Array.isArray(data?.available_wallet_pass_list) ? data.available_wallet_pass_list : [];
|
|
101
|
-
const walletIds = availableWalletList.map(item => Number(item?.id)).filter(id => Number.isFinite(id) && id > 0);
|
|
102
|
-
const walletPassProductIds = availableWalletPassList.map(item => Number(item?.product_id)).filter(id => Number.isFinite(id) && id > 0);
|
|
103
|
-
return Array.from(new Set([...walletIds, ...walletPassProductIds]));
|
|
104
|
-
}
|
|
105
132
|
async batchSearch(code, options) {
|
|
106
|
-
const {
|
|
107
|
-
customerId,
|
|
108
|
-
orderId
|
|
109
|
-
} = options || {};
|
|
133
|
+
const { customerId, orderId } = options || {};
|
|
110
134
|
const result = await this.request.get(`/machinecode/batch-search`, {
|
|
111
135
|
code,
|
|
112
136
|
translate_flag: 1,
|
|
113
|
-
tags: [
|
|
137
|
+
tags: ["good_pass", "product_discount_card"],
|
|
114
138
|
// available: 1,
|
|
115
139
|
relation_product: 1,
|
|
116
|
-
with: [
|
|
140
|
+
with: ["extensionData", "customScheduleSnapshot", "holder.detail"],
|
|
117
141
|
order_behavior_count: 1,
|
|
118
142
|
order_behavior_count_customer_id: customerId || 1,
|
|
143
|
+
...orderId ? { order_behavior_count_order_id: orderId } : {},
|
|
119
144
|
unified_status_info_flag: 1,
|
|
120
|
-
...(orderId ? {
|
|
121
|
-
order_behavior_count_order_id: orderId
|
|
122
|
-
} : {}),
|
|
123
145
|
request_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
|
|
124
146
|
});
|
|
125
|
-
const resultDiscountWithReason = this.filterEnabledDiscountListWithReason(result
|
|
147
|
+
const resultDiscountWithReason = this.filterEnabledDiscountListWithReason((result == null ? void 0 : result.data) || []) || [];
|
|
126
148
|
return resultDiscountWithReason;
|
|
127
149
|
}
|
|
128
150
|
async batchSearchByProductIds(productIds) {
|
|
129
151
|
const result = await this.request.get(`/machinecode/batch-search`, {
|
|
130
152
|
ids: productIds,
|
|
131
153
|
translate_flag: 1,
|
|
132
|
-
tags: [
|
|
154
|
+
tags: ["good_pass", "product_discount_card"],
|
|
133
155
|
relation_product: 1
|
|
134
156
|
});
|
|
135
|
-
return result
|
|
157
|
+
return (result == null ? void 0 : result.data) || [];
|
|
136
158
|
}
|
|
137
159
|
filterEnabledDiscountList(discountList) {
|
|
138
|
-
return discountList.filter(
|
|
160
|
+
return discountList.filter(
|
|
161
|
+
(discount) => discount.limit_status === "enable" && new import_decimal.default((discount == null ? void 0 : discount.par_value) || 0).minus(new import_decimal.default((discount == null ? void 0 : discount.used_par_value) || 0)).greaterThan(0) && this.checkUsageCreditsLimit(discount)
|
|
162
|
+
);
|
|
139
163
|
}
|
|
140
|
-
|
|
141
164
|
// 检查使用次数限制
|
|
142
165
|
checkUsageCreditsLimit(discount) {
|
|
143
|
-
// 如果没有 extension_data,则不需要限制
|
|
144
166
|
if (!discount.extension_data || discount.extension_data.length === 0) {
|
|
145
167
|
return true;
|
|
146
168
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
// 如果没有找到 usage_credits 数据,则不需要限制
|
|
169
|
+
const usageCreditsData = discount.extension_data.find(
|
|
170
|
+
(data) => data.field_key === "usage_credits"
|
|
171
|
+
);
|
|
152
172
|
if (!usageCreditsData) {
|
|
153
173
|
return true;
|
|
154
174
|
}
|
|
155
175
|
const value = usageCreditsData.value;
|
|
156
|
-
|
|
157
|
-
// 检查总次数限制
|
|
158
176
|
if (value.total_credits && value.total_credits > 0) {
|
|
159
177
|
if ((discount.total_order_behavior_count || 0) >= value.total_credits) {
|
|
160
178
|
return false;
|
|
161
179
|
}
|
|
162
180
|
}
|
|
163
|
-
|
|
164
|
-
// 检查单用户限制
|
|
165
181
|
if (value.per_user_limit && value.per_user_limit > 0) {
|
|
166
182
|
if ((discount.customer_order_behavior_count || 0) >= value.per_user_limit) {
|
|
167
183
|
return false;
|
|
168
184
|
}
|
|
169
185
|
}
|
|
170
|
-
|
|
171
|
-
// 检查单日限制
|
|
172
186
|
if (value.max_per_day && value.max_per_day > 0) {
|
|
173
187
|
if ((discount.today_order_behavior_count || 0) >= value.max_per_day) {
|
|
174
188
|
return false;
|
|
175
189
|
}
|
|
176
190
|
}
|
|
177
|
-
|
|
178
|
-
// 检查单周限制
|
|
179
191
|
if (value.max_per_week && value.max_per_week > 0) {
|
|
180
192
|
if ((discount.week_order_behavior_count || 0) >= value.max_per_week) {
|
|
181
193
|
return false;
|
|
182
194
|
}
|
|
183
195
|
}
|
|
184
|
-
|
|
185
|
-
// 检查单月限制
|
|
186
196
|
if (value.max_per_month && value.max_per_month > 0) {
|
|
187
197
|
if ((discount.month_order_behavior_count || 0) >= value.max_per_month) {
|
|
188
198
|
return false;
|
|
189
199
|
}
|
|
190
200
|
}
|
|
191
|
-
|
|
192
|
-
// 所有检查都通过
|
|
193
201
|
return true;
|
|
194
202
|
}
|
|
195
|
-
|
|
196
203
|
// 过滤启用且可用的优惠券,并返回校验失败原因
|
|
197
204
|
filterEnabledDiscountListWithReason(discountList) {
|
|
198
|
-
let lists = discountList.filter(discount => discount.limit_status ===
|
|
199
|
-
const remaining = new
|
|
205
|
+
let lists = discountList.filter((discount) => discount.limit_status === "enable").filter((discount) => {
|
|
206
|
+
const remaining = new import_decimal.default((discount == null ? void 0 : discount.par_value) || 0).minus(new import_decimal.default((discount == null ? void 0 : discount.used_par_value) || 0)).greaterThan(0);
|
|
200
207
|
return remaining;
|
|
201
|
-
}).map(discount => {
|
|
208
|
+
}).map((discount) => {
|
|
202
209
|
const limitFailKey = this.checkUsageCreditsLimitWithFailKey(discount);
|
|
203
210
|
return {
|
|
204
211
|
...discount,
|
|
205
212
|
usageLimitFailKey: limitFailKey
|
|
206
213
|
};
|
|
207
214
|
});
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
const availableLists = lists.filter(item => !item.usageLimitFailKey && item.unified_available_status !== 0);
|
|
211
|
-
// 不可用数据
|
|
212
|
-
const currentFailDiscount = lists.find(item => item.usageLimitFailKey);
|
|
215
|
+
const availableLists = lists.filter((item) => !item.usageLimitFailKey && item.unified_available_status !== 0);
|
|
216
|
+
const currentFailDiscount = lists.find((item) => item.usageLimitFailKey);
|
|
213
217
|
return {
|
|
214
218
|
discountList: availableLists,
|
|
215
|
-
unavailableReasonKey: currentFailDiscount
|
|
219
|
+
unavailableReasonKey: currentFailDiscount == null ? void 0 : currentFailDiscount.usageLimitFailKey
|
|
216
220
|
};
|
|
217
221
|
}
|
|
218
|
-
|
|
219
222
|
// 检查使用次数限制,并返回校验失败原因
|
|
220
223
|
checkUsageCreditsLimitWithFailKey(discount) {
|
|
221
224
|
if (!discount.extension_data || discount.extension_data.length === 0) {
|
|
222
225
|
return null;
|
|
223
226
|
}
|
|
224
|
-
const usageCreditsData = discount.extension_data.find(
|
|
227
|
+
const usageCreditsData = discount.extension_data.find(
|
|
228
|
+
(data) => data.field_key === "usage_credits"
|
|
229
|
+
);
|
|
225
230
|
if (!usageCreditsData) {
|
|
226
231
|
return null;
|
|
227
232
|
}
|
|
228
233
|
const value = usageCreditsData.value;
|
|
229
|
-
|
|
230
|
-
// 总次数限制
|
|
231
234
|
if (value.total_credits && value.total_credits > 0) {
|
|
232
235
|
if ((discount.total_order_behavior_count || 0) >= value.total_credits) {
|
|
233
|
-
return
|
|
236
|
+
return "total_credits";
|
|
234
237
|
}
|
|
235
238
|
}
|
|
236
|
-
|
|
237
|
-
// 单用户限制
|
|
238
239
|
if (value.per_user_limit && value.per_user_limit > 0) {
|
|
239
240
|
if ((discount.customer_order_behavior_count || 0) >= value.per_user_limit) {
|
|
240
|
-
return
|
|
241
|
+
return "per_user_limit";
|
|
241
242
|
}
|
|
242
243
|
}
|
|
243
|
-
|
|
244
|
-
// 单日限制
|
|
245
244
|
if (value.max_per_day && value.max_per_day > 0) {
|
|
246
245
|
if ((discount.today_order_behavior_count || 0) >= value.max_per_day) {
|
|
247
|
-
return
|
|
246
|
+
return "max_per_day";
|
|
248
247
|
}
|
|
249
248
|
}
|
|
250
|
-
|
|
251
|
-
// 单周限制
|
|
252
249
|
if (value.max_per_week && value.max_per_week > 0) {
|
|
253
250
|
if ((discount.week_order_behavior_count || 0) >= value.max_per_week) {
|
|
254
|
-
return
|
|
251
|
+
return "max_per_week";
|
|
255
252
|
}
|
|
256
253
|
}
|
|
257
|
-
|
|
258
|
-
// 单月限制
|
|
259
254
|
if (value.max_per_month && value.max_per_month > 0) {
|
|
260
255
|
if ((discount.month_order_behavior_count || 0) >= value.max_per_month) {
|
|
261
|
-
return
|
|
256
|
+
return "max_per_month";
|
|
262
257
|
}
|
|
263
258
|
}
|
|
264
|
-
|
|
265
|
-
// 全部通过
|
|
266
259
|
return null;
|
|
267
260
|
}
|
|
268
|
-
|
|
269
261
|
// 根据productIds去重
|
|
270
262
|
uniqueByProductId(discountList) {
|
|
271
|
-
return (0,
|
|
263
|
+
return (0, import_utils.uniqueById)(discountList, "product_id");
|
|
272
264
|
}
|
|
273
265
|
filterDiscountListByProductIds(discountList, productIds) {
|
|
274
|
-
return discountList.filter(discount => {
|
|
266
|
+
return discountList.filter((discount) => {
|
|
275
267
|
const applicableProductIds = discount.applicableProductIds || [];
|
|
276
|
-
return applicableProductIds.some(id => productIds.includes(id));
|
|
268
|
+
return applicableProductIds.some((id) => productIds.includes(id));
|
|
277
269
|
});
|
|
278
270
|
}
|
|
279
271
|
calcDiscountApplicableProductTotalPrice(discount) {
|
|
280
|
-
if (discount
|
|
281
|
-
return discount
|
|
272
|
+
if (discount == null ? void 0 : discount.savedAmount) {
|
|
273
|
+
return (discount == null ? void 0 : discount.savedAmount) || 0;
|
|
282
274
|
}
|
|
283
275
|
if (discount.appliedProductDetails) {
|
|
284
276
|
return discount.appliedProductDetails.reduce((total, product) => {
|
|
285
|
-
|
|
286
|
-
|
|
277
|
+
var _a, _b;
|
|
278
|
+
const price = new import_decimal.default(((_a = product == null ? void 0 : product.discount) == null ? void 0 : _a.fixed_amount) || 0).mul((product == null ? void 0 : product._num) || 1);
|
|
279
|
+
return new import_decimal.default(total).plus(price).add(((_b = product == null ? void 0 : product.metadata) == null ? void 0 : _b.product_discount_difference) || 0).toNumber();
|
|
287
280
|
}, 0);
|
|
288
281
|
}
|
|
289
282
|
}
|
|
@@ -291,11 +284,13 @@ class DiscountModule extends _BaseModule.BaseModule {
|
|
|
291
284
|
this.store.discountList = [];
|
|
292
285
|
this.core.effects.offByModuleDestroy(this.name);
|
|
293
286
|
await this.core.effects.emit(`${this.name}:onDestroy`, {});
|
|
287
|
+
console.log("[Discount] 已销毁");
|
|
294
288
|
super.destroy();
|
|
295
289
|
}
|
|
296
290
|
async clear() {
|
|
297
291
|
this.store.discountList = [];
|
|
298
292
|
this.store.originalDiscountList = [];
|
|
293
|
+
console.log("[Discount] clear");
|
|
299
294
|
}
|
|
300
295
|
storeChange() {
|
|
301
296
|
if (this.openCache) {
|
|
@@ -303,9 +298,12 @@ class DiscountModule extends _BaseModule.BaseModule {
|
|
|
303
298
|
cacheId: this.cacheId,
|
|
304
299
|
fatherModule: this.fatherModule,
|
|
305
300
|
store: this.store,
|
|
306
|
-
cacheKey: [
|
|
301
|
+
cacheKey: ["discountList"]
|
|
307
302
|
});
|
|
308
303
|
}
|
|
309
304
|
}
|
|
310
|
-
}
|
|
311
|
-
|
|
305
|
+
};
|
|
306
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
307
|
+
0 && (module.exports = {
|
|
308
|
+
DiscountModule
|
|
309
|
+
});
|
|
@@ -100,7 +100,6 @@ export interface Discount {
|
|
|
100
100
|
balance: string;
|
|
101
101
|
format_title: Formattitle;
|
|
102
102
|
metadata?: {
|
|
103
|
-
num?: number;
|
|
104
103
|
discount_card_type?: 'fixed_amount' | 'percent';
|
|
105
104
|
custom_product_bundle_map_id?: string;
|
|
106
105
|
validity_type?: "custom_schedule_validity" | "fixed_validity";
|
|
@@ -1,11 +1,33 @@
|
|
|
1
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
2
18
|
|
|
3
|
-
|
|
4
|
-
|
|
19
|
+
// src/modules/Discount/types.ts
|
|
20
|
+
var types_exports = {};
|
|
21
|
+
__export(types_exports, {
|
|
22
|
+
DiscountHooks: () => DiscountHooks
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(types_exports);
|
|
25
|
+
var DiscountHooks = /* @__PURE__ */ ((DiscountHooks2) => {
|
|
26
|
+
DiscountHooks2["OnDiscountListChange"] = "discount:onDiscountListChange";
|
|
27
|
+
DiscountHooks2["OnDestroy"] = "discount:onDestroy";
|
|
28
|
+
return DiscountHooks2;
|
|
29
|
+
})(DiscountHooks || {});
|
|
30
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
+
0 && (module.exports = {
|
|
32
|
+
DiscountHooks
|
|
5
33
|
});
|
|
6
|
-
exports.DiscountHooks = void 0;
|
|
7
|
-
let DiscountHooks = exports.DiscountHooks = /*#__PURE__*/function (DiscountHooks) {
|
|
8
|
-
DiscountHooks["OnDiscountListChange"] = "discount:onDiscountListChange";
|
|
9
|
-
DiscountHooks["OnDestroy"] = "discount:onDestroy";
|
|
10
|
-
return DiscountHooks;
|
|
11
|
-
}({});
|
|
@@ -1,27 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
2
18
|
|
|
3
|
-
|
|
4
|
-
|
|
19
|
+
// src/modules/Guests/index.ts
|
|
20
|
+
var Guests_exports = {};
|
|
21
|
+
__export(Guests_exports, {
|
|
22
|
+
GuestListModule: () => GuestListModule
|
|
5
23
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
defaultName = 'guestList';
|
|
11
|
-
defaultVersion = '1.0.0';
|
|
12
|
-
state = {
|
|
13
|
-
list: []
|
|
14
|
-
};
|
|
24
|
+
module.exports = __toCommonJS(Guests_exports);
|
|
25
|
+
var import_BaseModule = require("../BaseModule");
|
|
26
|
+
var import_types = require("./types");
|
|
27
|
+
var GuestListModule = class extends import_BaseModule.BaseModule {
|
|
15
28
|
constructor(name, version) {
|
|
16
29
|
super(name, version);
|
|
30
|
+
this.defaultName = "guestList";
|
|
31
|
+
this.defaultVersion = "1.0.0";
|
|
32
|
+
this.state = {
|
|
33
|
+
list: []
|
|
34
|
+
};
|
|
17
35
|
}
|
|
18
36
|
async initialize(core, options) {
|
|
19
37
|
this.core = core;
|
|
20
|
-
if (options
|
|
21
|
-
this.state = {
|
|
22
|
-
...this.state,
|
|
23
|
-
...options.initialState
|
|
24
|
-
};
|
|
38
|
+
if (options == null ? void 0 : options.initialState) {
|
|
39
|
+
this.state = { ...this.state, ...options.initialState };
|
|
25
40
|
}
|
|
26
41
|
}
|
|
27
42
|
async addGuest(guest) {
|
|
@@ -30,18 +45,23 @@ class GuestListModule extends _BaseModule.BaseModule {
|
|
|
30
45
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
31
46
|
}
|
|
32
47
|
async updateGuest(id, updates) {
|
|
33
|
-
const index = this.state.list.findIndex(g => g.id === id);
|
|
34
|
-
if (index === -1)
|
|
48
|
+
const index = this.state.list.findIndex((g) => g.id === id);
|
|
49
|
+
if (index === -1)
|
|
50
|
+
return;
|
|
35
51
|
this.state.list[index] = {
|
|
36
52
|
...this.state.list[index],
|
|
37
53
|
...updates
|
|
38
54
|
};
|
|
39
|
-
await this.core.effects.emit(
|
|
55
|
+
await this.core.effects.emit(
|
|
56
|
+
import_types.GuestHooks.OnGuestUpdate,
|
|
57
|
+
this.state.list[index]
|
|
58
|
+
);
|
|
40
59
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
41
60
|
}
|
|
42
61
|
async removeGuest(id) {
|
|
43
|
-
const index = this.state.list.findIndex(g => g.id === id);
|
|
44
|
-
if (index === -1)
|
|
62
|
+
const index = this.state.list.findIndex((g) => g.id === id);
|
|
63
|
+
if (index === -1)
|
|
64
|
+
return;
|
|
45
65
|
const [removed] = this.state.list.splice(index, 1);
|
|
46
66
|
await this.core.effects.emit(`${this.name}:onGuestRemove`, removed);
|
|
47
67
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
@@ -53,20 +73,26 @@ class GuestListModule extends _BaseModule.BaseModule {
|
|
|
53
73
|
return this.state.list.length;
|
|
54
74
|
}
|
|
55
75
|
async addItemToGuest(guestId, item) {
|
|
56
|
-
const guest = this.state.list.find(g => g.id === guestId);
|
|
57
|
-
if (!guest)
|
|
76
|
+
const guest = this.state.list.find((g) => g.id === guestId);
|
|
77
|
+
if (!guest)
|
|
78
|
+
return;
|
|
58
79
|
guest.items.push(item);
|
|
59
80
|
await this.core.effects.emit(`${this.name}:onGuestUpdate`, guest);
|
|
60
81
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
61
82
|
}
|
|
62
83
|
async removeItemFromGuest(guestId, itemId) {
|
|
63
|
-
const guest = this.state.list.find(g => g.id === guestId);
|
|
64
|
-
if (!guest)
|
|
65
|
-
|
|
66
|
-
|
|
84
|
+
const guest = this.state.list.find((g) => g.id === guestId);
|
|
85
|
+
if (!guest)
|
|
86
|
+
return;
|
|
87
|
+
const index = guest.items.findIndex((i) => i.id === itemId);
|
|
88
|
+
if (index === -1)
|
|
89
|
+
return;
|
|
67
90
|
guest.items.splice(index, 1);
|
|
68
91
|
await this.core.effects.emit(`${this.name}:onGuestUpdate`, guest);
|
|
69
92
|
await this.core.effects.emit(`${this.name}:onGuestChange`, this.state.list);
|
|
70
93
|
}
|
|
71
|
-
}
|
|
72
|
-
|
|
94
|
+
};
|
|
95
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
96
|
+
0 && (module.exports = {
|
|
97
|
+
GuestListModule
|
|
98
|
+
});
|