@voyant-travel/commerce-react 0.20.0 → 0.21.1
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/pricing/hooks/use-pricing-categories.d.ts +1 -1
- package/dist/pricing/hooks/use-pricing-categories.d.ts.map +1 -1
- package/dist/pricing/hooks/use-pricing-categories.js +2 -25
- package/dist/pricing/hooks/use-pricing-categories.js.map +1 -1
- package/dist/promotions/i18n/en.d.ts.map +1 -1
- package/dist/promotions/i18n/en.js +34 -0
- package/dist/promotions/i18n/en.js.map +1 -1
- package/dist/promotions/i18n/messages.d.ts +34 -0
- package/dist/promotions/i18n/messages.d.ts.map +1 -1
- package/dist/promotions/i18n/ro.d.ts.map +1 -1
- package/dist/promotions/i18n/ro.js +34 -0
- package/dist/promotions/i18n/ro.js.map +1 -1
- package/dist/promotions/promotion-dialog-model.d.ts +34 -0
- package/dist/promotions/promotion-dialog-model.d.ts.map +1 -0
- package/dist/promotions/promotion-dialog-model.js +184 -0
- package/dist/promotions/promotion-dialog-model.js.map +1 -0
- package/dist/promotions/promotion-dialog.d.ts.map +1 -1
- package/dist/promotions/promotion-dialog.js +39 -161
- package/dist/promotions/promotion-dialog.js.map +1 -1
- package/dist/promotions/promotions-page-actions.d.ts +13 -0
- package/dist/promotions/promotions-page-actions.d.ts.map +1 -0
- package/dist/promotions/promotions-page-actions.js +24 -0
- package/dist/promotions/promotions-page-actions.js.map +1 -0
- package/dist/promotions/promotions-page-utils.d.ts +1 -1
- package/dist/promotions/promotions-page-utils.js +1 -1
- package/dist/promotions/promotions-page.d.ts.map +1 -1
- package/dist/promotions/promotions-page.js +36 -3
- package/dist/promotions/promotions-page.js.map +1 -1
- package/package.json +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-pricing-categories.d.ts","sourceRoot":"","sources":["../../../src/pricing/hooks/use-pricing-categories.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-pricing-categories.d.ts","sourceRoot":"","sources":["../../../src/pricing/hooks/use-pricing-categories.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAA;AAGpE,MAAM,WAAW,2BAA4B,SAAQ,4BAA4B;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,2BAAgC;;;;;;;;;;;;;;;;;;;;;;;;WAQ7E"}
|
|
@@ -1,35 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
|
-
import { fetchWithValidation } from "../client.js";
|
|
4
3
|
import { useVoyantPricingContext } from "../provider.js";
|
|
5
|
-
import {
|
|
6
|
-
import { pricingCategoryListResponse } from "../schemas.js";
|
|
4
|
+
import { getPricingCategoriesQueryOptions } from "../query-options.js";
|
|
7
5
|
export function usePricingCategories(options = {}) {
|
|
8
6
|
const { baseUrl, fetcher } = useVoyantPricingContext();
|
|
9
7
|
const { enabled = true, ...filters } = options;
|
|
10
8
|
return useQuery({
|
|
11
|
-
|
|
12
|
-
queryFn: () => {
|
|
13
|
-
const params = new URLSearchParams();
|
|
14
|
-
if (filters.productId)
|
|
15
|
-
params.set("productId", filters.productId);
|
|
16
|
-
if (filters.optionId)
|
|
17
|
-
params.set("optionId", filters.optionId);
|
|
18
|
-
if (filters.unitId)
|
|
19
|
-
params.set("unitId", filters.unitId);
|
|
20
|
-
if (filters.categoryType)
|
|
21
|
-
params.set("categoryType", filters.categoryType);
|
|
22
|
-
if (filters.active !== undefined)
|
|
23
|
-
params.set("active", String(filters.active));
|
|
24
|
-
if (filters.search)
|
|
25
|
-
params.set("search", filters.search);
|
|
26
|
-
if (filters.limit !== undefined)
|
|
27
|
-
params.set("limit", String(filters.limit));
|
|
28
|
-
if (filters.offset !== undefined)
|
|
29
|
-
params.set("offset", String(filters.offset));
|
|
30
|
-
const qs = params.toString();
|
|
31
|
-
return fetchWithValidation(`/v1/admin/pricing/pricing-categories${qs ? `?${qs}` : ""}`, pricingCategoryListResponse, { baseUrl, fetcher });
|
|
32
|
-
},
|
|
9
|
+
...getPricingCategoriesQueryOptions({ baseUrl, fetcher }, filters),
|
|
33
10
|
enabled,
|
|
34
11
|
});
|
|
35
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-pricing-categories.js","sourceRoot":"","sources":["../../../src/pricing/hooks/use-pricing-categories.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"use-pricing-categories.js","sourceRoot":"","sources":["../../../src/pricing/hooks/use-pricing-categories.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAExD,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAA;AAMtE,MAAM,UAAU,oBAAoB,CAAC,UAAuC,EAAE;IAC5E,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,uBAAuB,EAAE,CAAA;IACtD,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAA;IAE9C,OAAO,QAAQ,CAAC;QACd,GAAG,gCAAgC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC;QAClE,OAAO;KACR,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,eAAO,MAAM,cAAc,EAAE,oBA0L5B,CAAA"}
|
|
@@ -5,6 +5,10 @@ export const promotionsUiEn = {
|
|
|
5
5
|
saveChanges: "Save changes",
|
|
6
6
|
saving: "Saving...",
|
|
7
7
|
active: "Active",
|
|
8
|
+
edit: "Edit",
|
|
9
|
+
archive: "Archive",
|
|
10
|
+
activate: "Activate",
|
|
11
|
+
delete: "Delete",
|
|
8
12
|
discountTypeLabels: {
|
|
9
13
|
percentage: "Percentage",
|
|
10
14
|
fixed_amount: "Fixed amount",
|
|
@@ -62,6 +66,19 @@ export const promotionsUiEn = {
|
|
|
62
66
|
validity: "Validity",
|
|
63
67
|
code: "Code",
|
|
64
68
|
status: "Status",
|
|
69
|
+
actions: "Actions",
|
|
70
|
+
},
|
|
71
|
+
actions: {
|
|
72
|
+
edit: "Edit",
|
|
73
|
+
archive: "Archive",
|
|
74
|
+
activate: "Activate",
|
|
75
|
+
delete: "Delete",
|
|
76
|
+
archiveConfirm: "Archive this promotion? It will stop applying to new bookings.",
|
|
77
|
+
activateConfirm: "Activate this promotion? It can apply again when its validity window matches.",
|
|
78
|
+
deleteConfirm: "Delete this promotion permanently? Use archive if it should only be retired.",
|
|
79
|
+
deleteConflict: "This promotion has redemptions and cannot be deleted. Archive it instead.",
|
|
80
|
+
actionFailedPrefix: "{action} failed: {message}",
|
|
81
|
+
dismissError: "Dismiss promotion action error",
|
|
65
82
|
},
|
|
66
83
|
badges: {
|
|
67
84
|
auto: "Auto",
|
|
@@ -110,6 +127,8 @@ export const promotionsUiEn = {
|
|
|
110
127
|
currency: "Currency",
|
|
111
128
|
scope: "Scope",
|
|
112
129
|
scopeIds: "{scope}",
|
|
130
|
+
products: "Products",
|
|
131
|
+
categories: "Categories",
|
|
113
132
|
audiences: "Audiences",
|
|
114
133
|
validFrom: "Valid from",
|
|
115
134
|
validUntil: "Valid until",
|
|
@@ -128,7 +147,9 @@ export const promotionsUiEn = {
|
|
|
128
147
|
code: "EARLYBIRD2026",
|
|
129
148
|
minPax: "4",
|
|
130
149
|
productIds: "Add product references",
|
|
150
|
+
productPicker: "Search products to add",
|
|
131
151
|
categoryIds: "Add category references",
|
|
152
|
+
categoryPicker: "Search categories to add",
|
|
132
153
|
destinationIds: "Add destination references",
|
|
133
154
|
marketIds: "Add market references",
|
|
134
155
|
fareCodes: "Add fare codes",
|
|
@@ -137,15 +158,28 @@ export const promotionsUiEn = {
|
|
|
137
158
|
hints: {
|
|
138
159
|
globalScope: "Applies to every product.",
|
|
139
160
|
commaSeparatedIds: "comma-separated references",
|
|
161
|
+
noProductsSelected: "No products selected.",
|
|
162
|
+
noCategoriesSelected: "No categories selected.",
|
|
163
|
+
},
|
|
164
|
+
actions: {
|
|
165
|
+
removeScopeId: "Remove {id}",
|
|
140
166
|
},
|
|
141
167
|
validation: {
|
|
142
168
|
nameRequired: "Name is required",
|
|
143
169
|
slugRequired: "Slug is required",
|
|
170
|
+
slugInvalid: "Slug: use lowercase letters, numbers, and hyphens.",
|
|
171
|
+
codeInvalid: "Code: use letters, numbers, hyphens, or underscores.",
|
|
144
172
|
discountPercentRequired: "Discount percent is required for percentage offers",
|
|
173
|
+
discountPercentInvalid: "Discount percent must be greater than 0 and no more than 100.",
|
|
145
174
|
discountAmountRequired: "Discount amount is required for fixed-amount offers",
|
|
146
175
|
currencyRequired: "Currency is required for fixed-amount offers",
|
|
176
|
+
minPaxInvalid: "Min pax must be a whole number greater than 0.",
|
|
177
|
+
validFromInvalid: "Valid from is not a valid date/time.",
|
|
178
|
+
validUntilInvalid: "Valid until is not a valid date/time.",
|
|
179
|
+
validRangeInvalid: "Valid until must be after valid from.",
|
|
147
180
|
scopeInvalid: "invalid",
|
|
148
181
|
scopeInvalidPrefix: "Scope: {message}",
|
|
182
|
+
scopeIdsRequired: "{scope}: add at least one value.",
|
|
149
183
|
},
|
|
150
184
|
},
|
|
151
185
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/promotions/i18n/en.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAyB;IAClD,MAAM,EAAE;QACN,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,QAAQ;QAChB,kBAAkB,EAAE;YAClB,UAAU,EAAE,YAAY;YACxB,YAAY,EAAE,cAAc;SAC7B;QACD,qBAAqB,EAAE;YACrB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,eAAe;SACtB;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,UAAU;SACrB;QACD,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,YAAY;YACxB,YAAY,EAAE,cAAc;YAC5B,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,WAAW;YACtB,UAAU,EAAE,YAAY;YACxB,YAAY,EAAE,cAAc;SAC7B;QACD,cAAc,EAAE;YACd,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,cAAc,EAAE;QACd,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,0DAA0D;QACvE,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,mBAAmB;QAChC,iBAAiB,EAAE,yCAAyC;QAC5D,eAAe,EAAE,MAAM;QACvB,QAAQ,EAAE,WAAW;QACrB,iBAAiB,EAAE,QAAQ;QAC3B,WAAW,EAAE,cAAc;QAC3B,gBAAgB,EAAE,OAAO;QACzB,SAAS,EAAE,YAAY;QACvB,wBAAwB,EAAE,gBAAgB;QAC1C,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,eAAe;QAC7B,UAAU,EAAE,4BAA4B;QACxC,gBAAgB,EAAE,2BAA2B;QAC7C,KAAK,EAAE,0CAA0C;QACjD,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/promotions/i18n/en.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,10 @@ export type PromotionsUiMessages = {
|
|
|
6
6
|
saveChanges: string;
|
|
7
7
|
saving: string;
|
|
8
8
|
active: string;
|
|
9
|
+
edit: string;
|
|
10
|
+
archive: string;
|
|
11
|
+
activate: string;
|
|
12
|
+
delete: string;
|
|
9
13
|
discountTypeLabels: Record<"percentage" | "fixed_amount", string>;
|
|
10
14
|
applicationModeLabels: Record<PromotionalOfferApplicationMode, string>;
|
|
11
15
|
statusLabels: Record<PromotionalOfferListStatus, string>;
|
|
@@ -38,6 +42,19 @@ export type PromotionsUiMessages = {
|
|
|
38
42
|
validity: string;
|
|
39
43
|
code: string;
|
|
40
44
|
status: string;
|
|
45
|
+
actions: string;
|
|
46
|
+
};
|
|
47
|
+
actions: {
|
|
48
|
+
edit: string;
|
|
49
|
+
archive: string;
|
|
50
|
+
activate: string;
|
|
51
|
+
delete: string;
|
|
52
|
+
archiveConfirm: string;
|
|
53
|
+
activateConfirm: string;
|
|
54
|
+
deleteConfirm: string;
|
|
55
|
+
deleteConflict: string;
|
|
56
|
+
actionFailedPrefix: string;
|
|
57
|
+
dismissError: string;
|
|
41
58
|
};
|
|
42
59
|
badges: {
|
|
43
60
|
auto: string;
|
|
@@ -95,6 +112,8 @@ export type PromotionsUiMessages = {
|
|
|
95
112
|
currency: string;
|
|
96
113
|
scope: string;
|
|
97
114
|
scopeIds: string;
|
|
115
|
+
products: string;
|
|
116
|
+
categories: string;
|
|
98
117
|
audiences: string;
|
|
99
118
|
validFrom: string;
|
|
100
119
|
validUntil: string;
|
|
@@ -113,7 +132,9 @@ export type PromotionsUiMessages = {
|
|
|
113
132
|
code: string;
|
|
114
133
|
minPax: string;
|
|
115
134
|
productIds: string;
|
|
135
|
+
productPicker: string;
|
|
116
136
|
categoryIds: string;
|
|
137
|
+
categoryPicker: string;
|
|
117
138
|
destinationIds: string;
|
|
118
139
|
marketIds: string;
|
|
119
140
|
fareCodes: string;
|
|
@@ -122,15 +143,28 @@ export type PromotionsUiMessages = {
|
|
|
122
143
|
hints: {
|
|
123
144
|
globalScope: string;
|
|
124
145
|
commaSeparatedIds: string;
|
|
146
|
+
noProductsSelected: string;
|
|
147
|
+
noCategoriesSelected: string;
|
|
148
|
+
};
|
|
149
|
+
actions: {
|
|
150
|
+
removeScopeId: string;
|
|
125
151
|
};
|
|
126
152
|
validation: {
|
|
127
153
|
nameRequired: string;
|
|
128
154
|
slugRequired: string;
|
|
155
|
+
slugInvalid: string;
|
|
156
|
+
codeInvalid: string;
|
|
129
157
|
discountPercentRequired: string;
|
|
158
|
+
discountPercentInvalid: string;
|
|
130
159
|
discountAmountRequired: string;
|
|
131
160
|
currencyRequired: string;
|
|
161
|
+
minPaxInvalid: string;
|
|
162
|
+
validFromInvalid: string;
|
|
163
|
+
validUntilInvalid: string;
|
|
164
|
+
validRangeInvalid: string;
|
|
132
165
|
scopeInvalid: string;
|
|
133
166
|
scopeInvalidPrefix: string;
|
|
167
|
+
scopeIdsRequired: string;
|
|
134
168
|
};
|
|
135
169
|
};
|
|
136
170
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,kBAAkB,EAAE,MAAM,CAAC,YAAY,GAAG,cAAc,EAAE,MAAM,CAAC,CAAA;QACjE,qBAAqB,EAAE,MAAM,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAA;QACtE,YAAY,EAAE,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;QACxD,eAAe,EAAE,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAA;QAC1D,cAAc,EAAE,MAAM,CAAC,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,EAAE,MAAM,CAAC,CAAA;KAC9E,CAAA;IACD,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,EAAE,MAAM,CAAA;QACnB,iBAAiB,EAAE,MAAM,CAAA;QACzB,eAAe,EAAE,MAAM,CAAA;QACvB,QAAQ,EAAE,MAAM,CAAA;QAChB,iBAAiB,EAAE,MAAM,CAAA;QACzB,WAAW,EAAE,MAAM,CAAA;QACnB,gBAAgB,EAAE,MAAM,CAAA;QACxB,SAAS,EAAE,MAAM,CAAA;QACjB,wBAAwB,EAAE,MAAM,CAAA;QAChC,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,MAAM,CAAA;QACpB,UAAU,EAAE,MAAM,CAAA;QAClB,gBAAgB,EAAE,MAAM,CAAA;QACxB,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,kBAAkB,EAAE,MAAM,CAAC,YAAY,GAAG,cAAc,EAAE,MAAM,CAAC,CAAA;QACjE,qBAAqB,EAAE,MAAM,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAA;QACtE,YAAY,EAAE,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;QACxD,eAAe,EAAE,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAA;QAC1D,cAAc,EAAE,MAAM,CAAC,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,EAAE,MAAM,CAAC,CAAA;KAC9E,CAAA;IACD,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,EAAE,MAAM,CAAA;QACnB,iBAAiB,EAAE,MAAM,CAAA;QACzB,eAAe,EAAE,MAAM,CAAA;QACvB,QAAQ,EAAE,MAAM,CAAA;QAChB,iBAAiB,EAAE,MAAM,CAAA;QACzB,WAAW,EAAE,MAAM,CAAA;QACnB,gBAAgB,EAAE,MAAM,CAAA;QACxB,SAAS,EAAE,MAAM,CAAA;QACjB,wBAAwB,EAAE,MAAM,CAAA;QAChC,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,MAAM,CAAA;QACpB,UAAU,EAAE,MAAM,CAAA;QAClB,gBAAgB,EAAE,MAAM,CAAA;QACxB,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,OAAO,EAAE,MAAM,CAAA;SAChB,CAAA;QACD,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;YAChB,MAAM,EAAE,MAAM,CAAA;YACd,cAAc,EAAE,MAAM,CAAA;YACtB,eAAe,EAAE,MAAM,CAAA;YACvB,aAAa,EAAE,MAAM,CAAA;YACrB,cAAc,EAAE,MAAM,CAAA;YACtB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;QACD,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,CAAA;SAClB,CAAA;QACD,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,SAAS,EAAE;YACT,WAAW,EAAE,MAAM,CAAA;YACnB,aAAa,EAAE,MAAM,CAAA;YACrB,eAAe,EAAE,MAAM,CAAA;YACvB,iBAAiB,EAAE,MAAM,CAAA;YACzB,YAAY,EAAE,MAAM,CAAA;YACpB,cAAc,EAAE,MAAM,CAAA;YACtB,cAAc,EAAE,MAAM,CAAA;YACtB,gBAAgB,EAAE,MAAM,CAAA;YACxB,YAAY,EAAE;gBACZ,QAAQ,EAAE,MAAM,CAAA;gBAChB,MAAM,EAAE,MAAM,CAAA;aACf,CAAA;YACD,aAAa,EAAE;gBACb,QAAQ,EAAE,MAAM,CAAA;gBAChB,MAAM,EAAE,MAAM,CAAA;aACf,CAAA;YACD,gBAAgB,EAAE;gBAChB,QAAQ,EAAE,MAAM,CAAA;gBAChB,MAAM,EAAE,MAAM,CAAA;aACf,CAAA;YACD,iBAAiB,EAAE,MAAM,CAAA;YACzB,OAAO,EAAE,MAAM,CAAA;YACf,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;IACD,eAAe,EAAE;QACf,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,WAAW,EAAE,MAAM,CAAA;YACnB,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,MAAM,EAAE,MAAM,CAAA;YACd,QAAQ,EAAE,MAAM,CAAA;YAChB,KAAK,EAAE,MAAM,CAAA;YACb,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,UAAU,EAAE,MAAM,CAAA;YAClB,SAAS,EAAE,MAAM,CAAA;YACjB,SAAS,EAAE,MAAM,CAAA;YACjB,UAAU,EAAE,MAAM,CAAA;YAClB,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,WAAW,EAAE,MAAM,CAAA;YACnB,OAAO,EAAE,MAAM,CAAA;YACf,MAAM,EAAE,MAAM,CAAA;YACd,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,UAAU,EAAE,MAAM,CAAA;YAClB,aAAa,EAAE,MAAM,CAAA;YACrB,WAAW,EAAE,MAAM,CAAA;YACnB,cAAc,EAAE,MAAM,CAAA;YACtB,cAAc,EAAE,MAAM,CAAA;YACtB,SAAS,EAAE,MAAM,CAAA;YACjB,SAAS,EAAE,MAAM,CAAA;YACjB,eAAe,EAAE,MAAM,CAAA;SACxB,CAAA;QACD,KAAK,EAAE;YACL,WAAW,EAAE,MAAM,CAAA;YACnB,iBAAiB,EAAE,MAAM,CAAA;YACzB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,oBAAoB,EAAE,MAAM,CAAA;SAC7B,CAAA;QACD,OAAO,EAAE;YACP,aAAa,EAAE,MAAM,CAAA;SACtB,CAAA;QACD,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAA;YACpB,YAAY,EAAE,MAAM,CAAA;YACpB,WAAW,EAAE,MAAM,CAAA;YACnB,WAAW,EAAE,MAAM,CAAA;YACnB,uBAAuB,EAAE,MAAM,CAAA;YAC/B,sBAAsB,EAAE,MAAM,CAAA;YAC9B,sBAAsB,EAAE,MAAM,CAAA;YAC9B,gBAAgB,EAAE,MAAM,CAAA;YACxB,aAAa,EAAE,MAAM,CAAA;YACrB,gBAAgB,EAAE,MAAM,CAAA;YACxB,iBAAiB,EAAE,MAAM,CAAA;YACzB,iBAAiB,EAAE,MAAM,CAAA;YACzB,YAAY,EAAE,MAAM,CAAA;YACpB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,gBAAgB,EAAE,MAAM,CAAA;SACzB,CAAA;KACF,CAAA;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/ro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/ro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,eAAO,MAAM,cAAc,EAAE,oBA4L5B,CAAA"}
|
|
@@ -5,6 +5,10 @@ export const promotionsUiRo = {
|
|
|
5
5
|
saveChanges: "Salveaza modificarile",
|
|
6
6
|
saving: "Se salveaza...",
|
|
7
7
|
active: "Activa",
|
|
8
|
+
edit: "Editeaza",
|
|
9
|
+
archive: "Arhiveaza",
|
|
10
|
+
activate: "Activeaza",
|
|
11
|
+
delete: "Sterge",
|
|
8
12
|
discountTypeLabels: {
|
|
9
13
|
percentage: "Procent",
|
|
10
14
|
fixed_amount: "Suma fixa",
|
|
@@ -62,6 +66,19 @@ export const promotionsUiRo = {
|
|
|
62
66
|
validity: "Valabilitate",
|
|
63
67
|
code: "Cod",
|
|
64
68
|
status: "Status",
|
|
69
|
+
actions: "Actiuni",
|
|
70
|
+
},
|
|
71
|
+
actions: {
|
|
72
|
+
edit: "Editeaza",
|
|
73
|
+
archive: "Arhiveaza",
|
|
74
|
+
activate: "Activeaza",
|
|
75
|
+
delete: "Sterge",
|
|
76
|
+
archiveConfirm: "Arhivezi aceasta promotie? Nu se va mai aplica la rezervari noi.",
|
|
77
|
+
activateConfirm: "Activezi aceasta promotie? Se poate aplica din nou cand intervalul este valid.",
|
|
78
|
+
deleteConfirm: "Stergi definitiv aceasta promotie? Foloseste arhivarea daca trebuie doar retrasa.",
|
|
79
|
+
deleteConflict: "Aceasta promotie are valorificari si nu poate fi stearsa. Arhiveaz-o in schimb.",
|
|
80
|
+
actionFailedPrefix: "{action} a esuat: {message}",
|
|
81
|
+
dismissError: "Inchide eroarea actiunii pe promotie",
|
|
65
82
|
},
|
|
66
83
|
badges: {
|
|
67
84
|
auto: "Automat",
|
|
@@ -110,6 +127,8 @@ export const promotionsUiRo = {
|
|
|
110
127
|
currency: "Moneda",
|
|
111
128
|
scope: "Domeniu",
|
|
112
129
|
scopeIds: "{scope}",
|
|
130
|
+
products: "Produse",
|
|
131
|
+
categories: "Categorii",
|
|
113
132
|
audiences: "Audiente",
|
|
114
133
|
validFrom: "Valabila din",
|
|
115
134
|
validUntil: "Valabila pana la",
|
|
@@ -128,7 +147,9 @@ export const promotionsUiRo = {
|
|
|
128
147
|
code: "EARLYBIRD2026",
|
|
129
148
|
minPax: "4",
|
|
130
149
|
productIds: "Adauga referinte de produse",
|
|
150
|
+
productPicker: "Cauta produse de adaugat",
|
|
131
151
|
categoryIds: "Adauga referinte de categorii",
|
|
152
|
+
categoryPicker: "Cauta categorii de adaugat",
|
|
132
153
|
destinationIds: "Adauga referinte de destinatii",
|
|
133
154
|
marketIds: "Adauga referinte de piete",
|
|
134
155
|
fareCodes: "Adauga coduri tarifare",
|
|
@@ -137,15 +158,28 @@ export const promotionsUiRo = {
|
|
|
137
158
|
hints: {
|
|
138
159
|
globalScope: "Se aplica tuturor produselor.",
|
|
139
160
|
commaSeparatedIds: "Referinte separate prin virgula",
|
|
161
|
+
noProductsSelected: "Niciun produs selectat.",
|
|
162
|
+
noCategoriesSelected: "Nicio categorie selectata.",
|
|
163
|
+
},
|
|
164
|
+
actions: {
|
|
165
|
+
removeScopeId: "Elimina {id}",
|
|
140
166
|
},
|
|
141
167
|
validation: {
|
|
142
168
|
nameRequired: "Numele este obligatoriu",
|
|
143
169
|
slugRequired: "Slug-ul este obligatoriu",
|
|
170
|
+
slugInvalid: "Slug: foloseste litere mici, cifre si cratime.",
|
|
171
|
+
codeInvalid: "Cod: foloseste litere, cifre, cratime sau underscore.",
|
|
144
172
|
discountPercentRequired: "Procentul de discount este obligatoriu pentru ofertele procentuale",
|
|
173
|
+
discountPercentInvalid: "Procentul de discount trebuie sa fie peste 0 si cel mult 100.",
|
|
145
174
|
discountAmountRequired: "Suma discountului este obligatorie pentru ofertele cu suma fixa",
|
|
146
175
|
currencyRequired: "Moneda este obligatorie pentru ofertele cu suma fixa",
|
|
176
|
+
minPaxInvalid: "Pax minim trebuie sa fie un numar intreg mai mare decat 0.",
|
|
177
|
+
validFromInvalid: "Data de inceput nu este valida.",
|
|
178
|
+
validUntilInvalid: "Data de final nu este valida.",
|
|
179
|
+
validRangeInvalid: "Data de final trebuie sa fie dupa data de inceput.",
|
|
147
180
|
scopeInvalid: "invalid",
|
|
148
181
|
scopeInvalidPrefix: "Domeniu: {message}",
|
|
182
|
+
scopeIdsRequired: "{scope}: adauga cel putin o valoare.",
|
|
149
183
|
},
|
|
150
184
|
},
|
|
151
185
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ro.js","sourceRoot":"","sources":["../../../src/promotions/i18n/ro.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAyB;IAClD,MAAM,EAAE;QACN,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,uBAAuB;QACpC,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,QAAQ;QAChB,kBAAkB,EAAE;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,WAAW;SAC1B;QACD,qBAAqB,EAAE;YACrB,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,QAAQ;SACf;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,UAAU;SACrB;QACD,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,WAAW;YACvB,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,UAAU;YACrB,UAAU,EAAE,iBAAiB;YAC7B,YAAY,EAAE,cAAc;SAC7B;QACD,cAAc,EAAE;YACd,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,cAAc,EAAE;QACd,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,wEAAwE;QACrF,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,gBAAgB;QAC7B,iBAAiB,EAAE,0CAA0C;QAC7D,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,QAAQ;QAC3B,WAAW,EAAE,mBAAmB;QAChC,gBAAgB,EAAE,SAAS;QAC3B,SAAS,EAAE,iBAAiB;QAC5B,wBAAwB,EAAE,uBAAuB;QACjD,aAAa,EAAE,QAAQ;QACvB,YAAY,EAAE,iBAAiB;QAC/B,UAAU,EAAE,sCAAsC;QAClD,gBAAgB,EAAE,+BAA+B;QACjD,KAAK,EAAE,oDAAoD;QAC3D,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"ro.js","sourceRoot":"","sources":["../../../src/promotions/i18n/ro.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAyB;IAClD,MAAM,EAAE;QACN,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,uBAAuB;QACpC,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,QAAQ;QAChB,kBAAkB,EAAE;YAClB,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,WAAW;SAC1B;QACD,qBAAqB,EAAE;YACrB,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,QAAQ;SACf;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,UAAU;SACrB;QACD,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,WAAW;YACvB,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,UAAU;YACrB,UAAU,EAAE,iBAAiB;YAC7B,YAAY,EAAE,cAAc;SAC7B;QACD,cAAc,EAAE;YACd,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,cAAc,EAAE;QACd,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,wEAAwE;QACrF,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,gBAAgB;QAC7B,iBAAiB,EAAE,0CAA0C;QAC7D,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,QAAQ;QAC3B,WAAW,EAAE,mBAAmB;QAChC,gBAAgB,EAAE,SAAS;QAC3B,SAAS,EAAE,iBAAiB;QAC5B,wBAAwB,EAAE,uBAAuB;QACjD,aAAa,EAAE,QAAQ;QACvB,YAAY,EAAE,iBAAiB;QAC/B,UAAU,EAAE,sCAAsC;QAClD,gBAAgB,EAAE,+BAA+B;QACjD,KAAK,EAAE,oDAAoD;QAC3D,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;SACnB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,WAAW;YACrB,MAAM,EAAE,QAAQ;YAChB,cAAc,EAAE,kEAAkE;YAClF,eAAe,EACb,gFAAgF;YAClF,aAAa,EACX,mFAAmF;YACrF,cAAc,EACZ,iFAAiF;YACnF,kBAAkB,EAAE,6BAA6B;YACjD,YAAY,EAAE,sCAAsC;SACrD;QACD,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,YAAY;SACxB;QACD,UAAU,EAAE;YACV,OAAO,EAAE,6BAA6B;YACtC,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,+BAA+B;SACtC;QACD,SAAS,EAAE;YACT,WAAW,EAAE,QAAQ;YACrB,aAAa,EAAE,gBAAgB;YAC/B,eAAe,EAAE,gBAAgB;YACjC,iBAAiB,EAAE,gBAAgB;YACnC,YAAY,EAAE,kBAAkB;YAChC,cAAc,EAAE,uBAAuB;YACvC,cAAc,EAAE,8BAA8B;YAC9C,gBAAgB,EAAE,iCAAiC;YACnD,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;YACvD,aAAa,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;YAC7D,gBAAgB,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;YAClE,iBAAiB,EAAE,GAAG;YACtB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,kBAAkB;YACzB,MAAM,EAAE,GAAG;SACZ;KACF;IACD,eAAe,EAAE;QACf,MAAM,EAAE;YACN,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,mBAAmB;SAC1B;QACD,WAAW,EACT,mJAAmJ;QACrJ,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,WAAW;YACvB,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,cAAc;YACzB,UAAU,EAAE,kBAAkB;YAC9B,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,sBAAsB;YAC9B,SAAS,EAAE,2BAA2B;YACtC,MAAM,EAAE,QAAQ;SACjB;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,qCAAqC;YAClD,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,6BAA6B;YACzC,aAAa,EAAE,0BAA0B;YACzC,WAAW,EAAE,+BAA+B;YAC5C,cAAc,EAAE,4BAA4B;YAC5C,cAAc,EAAE,gCAAgC;YAChD,SAAS,EAAE,2BAA2B;YACtC,SAAS,EAAE,wBAAwB;YACnC,eAAe,EAAE,+BAA+B;SACjD;QACD,KAAK,EAAE;YACL,WAAW,EAAE,+BAA+B;YAC5C,iBAAiB,EAAE,iCAAiC;YACpD,kBAAkB,EAAE,yBAAyB;YAC7C,oBAAoB,EAAE,4BAA4B;SACnD;QACD,OAAO,EAAE;YACP,aAAa,EAAE,cAAc;SAC9B;QACD,UAAU,EAAE;YACV,YAAY,EAAE,yBAAyB;YACvC,YAAY,EAAE,0BAA0B;YACxC,WAAW,EAAE,gDAAgD;YAC7D,WAAW,EAAE,uDAAuD;YACpE,uBAAuB,EAAE,oEAAoE;YAC7F,sBAAsB,EAAE,+DAA+D;YACvF,sBAAsB,EAAE,iEAAiE;YACzF,gBAAgB,EAAE,sDAAsD;YACxE,aAAa,EAAE,4DAA4D;YAC3E,gBAAgB,EAAE,iCAAiC;YACnD,iBAAiB,EAAE,+BAA+B;YAClD,iBAAiB,EAAE,oDAAoD;YACvE,YAAY,EAAE,SAAS;YACvB,kBAAkB,EAAE,oBAAoB;YACxC,gBAAgB,EAAE,sCAAsC;SACzD;KACF;CACF,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { PromotionsUiMessages } from "./i18n/messages.js";
|
|
2
|
+
import type { PromotionalOfferRecord, PromotionalOfferScope, PromotionInsertInput } from "./index.js";
|
|
3
|
+
export type ScopeKind = PromotionalOfferScope["kind"];
|
|
4
|
+
export declare const SCOPE_KINDS: ScopeKind[];
|
|
5
|
+
export declare const AUDIENCE_OPTIONS: Array<"staff" | "customer" | "partner" | "supplier">;
|
|
6
|
+
export interface PromotionFormState {
|
|
7
|
+
name: string;
|
|
8
|
+
slug: string;
|
|
9
|
+
description: string;
|
|
10
|
+
discountType: "percentage" | "fixed_amount";
|
|
11
|
+
discountPercent: string;
|
|
12
|
+
discountAmountCents: number | null;
|
|
13
|
+
currency: string;
|
|
14
|
+
scopeKind: ScopeKind;
|
|
15
|
+
scopeIds: string;
|
|
16
|
+
scopeAudiences: Array<"staff" | "customer" | "partner" | "supplier">;
|
|
17
|
+
minPax: string;
|
|
18
|
+
validFrom: string;
|
|
19
|
+
validUntil: string;
|
|
20
|
+
code: string;
|
|
21
|
+
stackable: boolean;
|
|
22
|
+
active: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare function emptyPromotionForm(): PromotionFormState;
|
|
25
|
+
export declare function offerToPromotionForm(offer: PromotionalOfferRecord): PromotionFormState;
|
|
26
|
+
export declare function scopeIdsToString(scope: PromotionalOfferScope): string;
|
|
27
|
+
export declare function toDateTimePickerValue(iso: string): string;
|
|
28
|
+
export declare function parseScopeIds(raw: string): string[];
|
|
29
|
+
export declare function scopeIdsToFormValue(ids: string[]): string;
|
|
30
|
+
export declare function buildPromotionScope(state: PromotionFormState): PromotionalOfferScope;
|
|
31
|
+
export declare function buildPromotionPayload(state: PromotionFormState, messages: PromotionsUiMessages["promotionDialog"], scopeLabel: string): PromotionInsertInput | {
|
|
32
|
+
error: string;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=promotion-dialog-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promotion-dialog-model.d.ts","sourceRoot":"","sources":["../../src/promotions/promotion-dialog-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AAGnB,MAAM,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;AAErD,eAAO,MAAM,WAAW,EAAE,SAAS,EASlC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAKjF,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,YAAY,GAAG,cAAc,CAAA;IAC3C,eAAe,EAAE,MAAM,CAAA;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,KAAK,CAAC,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC,CAAA;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,wBAAgB,kBAAkB,IAAI,kBAAkB,CAmBvD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,sBAAsB,GAAG,kBAAkB,CAmBtF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAiBrE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKnD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,qBAAqB,CAmBpF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,EACjD,UAAU,EAAE,MAAM,GACjB,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAkE1C"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { formatMessage } from "@voyant-travel/i18n";
|
|
2
|
+
import { promotionalOfferScopeSchema } from "./index.js";
|
|
3
|
+
export const SCOPE_KINDS = [
|
|
4
|
+
"global",
|
|
5
|
+
"products",
|
|
6
|
+
"categories",
|
|
7
|
+
"destinations",
|
|
8
|
+
"markets",
|
|
9
|
+
"audiences",
|
|
10
|
+
"fare_codes",
|
|
11
|
+
"cabin_grades",
|
|
12
|
+
];
|
|
13
|
+
export const AUDIENCE_OPTIONS = [
|
|
14
|
+
"staff",
|
|
15
|
+
"customer",
|
|
16
|
+
"partner",
|
|
17
|
+
"supplier",
|
|
18
|
+
];
|
|
19
|
+
export function emptyPromotionForm() {
|
|
20
|
+
return {
|
|
21
|
+
name: "",
|
|
22
|
+
slug: "",
|
|
23
|
+
description: "",
|
|
24
|
+
discountType: "percentage",
|
|
25
|
+
discountPercent: "",
|
|
26
|
+
discountAmountCents: null,
|
|
27
|
+
currency: "USD",
|
|
28
|
+
scopeKind: "global",
|
|
29
|
+
scopeIds: "",
|
|
30
|
+
scopeAudiences: ["customer"],
|
|
31
|
+
minPax: "",
|
|
32
|
+
validFrom: "",
|
|
33
|
+
validUntil: "",
|
|
34
|
+
code: "",
|
|
35
|
+
stackable: false,
|
|
36
|
+
active: true,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function offerToPromotionForm(offer) {
|
|
40
|
+
const base = emptyPromotionForm();
|
|
41
|
+
base.name = offer.name;
|
|
42
|
+
base.slug = offer.slug;
|
|
43
|
+
base.description = offer.description ?? "";
|
|
44
|
+
base.discountType = offer.discountType;
|
|
45
|
+
base.discountPercent = offer.discountPercent ?? "";
|
|
46
|
+
base.discountAmountCents = offer.discountAmountCents ?? null;
|
|
47
|
+
base.currency = offer.currency ?? "USD";
|
|
48
|
+
base.scopeKind = offer.scope.kind;
|
|
49
|
+
base.scopeIds = scopeIdsToString(offer.scope);
|
|
50
|
+
base.scopeAudiences = offer.scope.kind === "audiences" ? [...offer.scope.audiences] : ["customer"];
|
|
51
|
+
base.minPax = offer.conditions.minPax != null ? String(offer.conditions.minPax) : "";
|
|
52
|
+
base.validFrom = offer.validFrom ? toDateTimePickerValue(offer.validFrom) : "";
|
|
53
|
+
base.validUntil = offer.validUntil ? toDateTimePickerValue(offer.validUntil) : "";
|
|
54
|
+
base.code = offer.code ?? "";
|
|
55
|
+
base.stackable = offer.stackable;
|
|
56
|
+
base.active = offer.active;
|
|
57
|
+
return base;
|
|
58
|
+
}
|
|
59
|
+
export function scopeIdsToString(scope) {
|
|
60
|
+
switch (scope.kind) {
|
|
61
|
+
case "products":
|
|
62
|
+
return scope.productIds.join(", ");
|
|
63
|
+
case "categories":
|
|
64
|
+
return scope.categoryIds.join(", ");
|
|
65
|
+
case "destinations":
|
|
66
|
+
return scope.destinationIds.join(", ");
|
|
67
|
+
case "markets":
|
|
68
|
+
return scope.marketIds.join(", ");
|
|
69
|
+
case "fare_codes":
|
|
70
|
+
return scope.fareCodes.join(", ");
|
|
71
|
+
case "cabin_grades":
|
|
72
|
+
return scope.cabinGradeCodes.join(", ");
|
|
73
|
+
default:
|
|
74
|
+
return "";
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export function toDateTimePickerValue(iso) {
|
|
78
|
+
return iso.slice(0, 16);
|
|
79
|
+
}
|
|
80
|
+
export function parseScopeIds(raw) {
|
|
81
|
+
return raw
|
|
82
|
+
.split(/[,\s]+/)
|
|
83
|
+
.map((s) => s.trim())
|
|
84
|
+
.filter((s) => s.length > 0);
|
|
85
|
+
}
|
|
86
|
+
export function scopeIdsToFormValue(ids) {
|
|
87
|
+
return Array.from(new Set(ids.map((id) => id.trim()).filter(Boolean))).join(", ");
|
|
88
|
+
}
|
|
89
|
+
export function buildPromotionScope(state) {
|
|
90
|
+
switch (state.scopeKind) {
|
|
91
|
+
case "global":
|
|
92
|
+
return { kind: "global" };
|
|
93
|
+
case "products":
|
|
94
|
+
return { kind: "products", productIds: parseScopeIds(state.scopeIds) };
|
|
95
|
+
case "categories":
|
|
96
|
+
return { kind: "categories", categoryIds: parseScopeIds(state.scopeIds) };
|
|
97
|
+
case "destinations":
|
|
98
|
+
return { kind: "destinations", destinationIds: parseScopeIds(state.scopeIds) };
|
|
99
|
+
case "markets":
|
|
100
|
+
return { kind: "markets", marketIds: parseScopeIds(state.scopeIds) };
|
|
101
|
+
case "audiences":
|
|
102
|
+
return { kind: "audiences", audiences: state.scopeAudiences };
|
|
103
|
+
case "fare_codes":
|
|
104
|
+
return { kind: "fare_codes", fareCodes: parseScopeIds(state.scopeIds) };
|
|
105
|
+
case "cabin_grades":
|
|
106
|
+
return { kind: "cabin_grades", cabinGradeCodes: parseScopeIds(state.scopeIds) };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export function buildPromotionPayload(state, messages, scopeLabel) {
|
|
110
|
+
const name = state.name.trim();
|
|
111
|
+
const slug = state.slug.trim();
|
|
112
|
+
const code = state.code.trim();
|
|
113
|
+
const minPax = state.minPax.trim();
|
|
114
|
+
if (!name)
|
|
115
|
+
return { error: messages.validation.nameRequired };
|
|
116
|
+
if (!slug)
|
|
117
|
+
return { error: messages.validation.slugRequired };
|
|
118
|
+
if (!/^[a-z0-9-]+$/.test(slug))
|
|
119
|
+
return { error: messages.validation.slugInvalid };
|
|
120
|
+
if (code && !/^[A-Za-z0-9_-]+$/.test(code))
|
|
121
|
+
return { error: messages.validation.codeInvalid };
|
|
122
|
+
const discountPercent = state.discountType === "percentage" ? Number(state.discountPercent) : null;
|
|
123
|
+
if (state.discountType === "percentage") {
|
|
124
|
+
if (!state.discountPercent)
|
|
125
|
+
return { error: messages.validation.discountPercentRequired };
|
|
126
|
+
if (!Number.isFinite(discountPercent) || discountPercent == null || discountPercent <= 0) {
|
|
127
|
+
return { error: messages.validation.discountPercentInvalid };
|
|
128
|
+
}
|
|
129
|
+
if (discountPercent > 100)
|
|
130
|
+
return { error: messages.validation.discountPercentInvalid };
|
|
131
|
+
}
|
|
132
|
+
if (state.discountType === "fixed_amount") {
|
|
133
|
+
if (state.discountAmountCents == null || state.discountAmountCents <= 0) {
|
|
134
|
+
return { error: messages.validation.discountAmountRequired };
|
|
135
|
+
}
|
|
136
|
+
if (!state.currency.trim())
|
|
137
|
+
return { error: messages.validation.currencyRequired };
|
|
138
|
+
}
|
|
139
|
+
if (minPax && (!Number.isInteger(Number(minPax)) || Number(minPax) <= 0)) {
|
|
140
|
+
return { error: messages.validation.minPaxInvalid };
|
|
141
|
+
}
|
|
142
|
+
const validFrom = parseOptionalDate(state.validFrom);
|
|
143
|
+
const validUntil = parseOptionalDate(state.validUntil);
|
|
144
|
+
if (validFrom === "invalid")
|
|
145
|
+
return { error: messages.validation.validFromInvalid };
|
|
146
|
+
if (validUntil === "invalid")
|
|
147
|
+
return { error: messages.validation.validUntilInvalid };
|
|
148
|
+
if (validFrom != null && validUntil != null && validFrom.getTime() >= validUntil.getTime()) {
|
|
149
|
+
return { error: messages.validation.validRangeInvalid };
|
|
150
|
+
}
|
|
151
|
+
const scope = buildPromotionScope(state);
|
|
152
|
+
const scopeResult = promotionalOfferScopeSchema.safeParse(scope);
|
|
153
|
+
if (!scopeResult.success) {
|
|
154
|
+
return {
|
|
155
|
+
error: formatMessage(messages.validation.scopeIdsRequired, {
|
|
156
|
+
scope: scopeLabel,
|
|
157
|
+
}),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
const payload = {
|
|
161
|
+
name,
|
|
162
|
+
slug,
|
|
163
|
+
description: state.description.trim() || null,
|
|
164
|
+
discountType: state.discountType,
|
|
165
|
+
discountPercent,
|
|
166
|
+
discountAmountCents: state.discountType === "fixed_amount" ? state.discountAmountCents : null,
|
|
167
|
+
currency: state.discountType === "fixed_amount" ? state.currency.trim().toUpperCase() : null,
|
|
168
|
+
scope,
|
|
169
|
+
conditions: minPax ? { minPax: Number(minPax) } : {},
|
|
170
|
+
validFrom: validFrom ? validFrom.toISOString() : null,
|
|
171
|
+
validUntil: validUntil ? validUntil.toISOString() : null,
|
|
172
|
+
code: code || null,
|
|
173
|
+
stackable: state.stackable,
|
|
174
|
+
active: state.active,
|
|
175
|
+
};
|
|
176
|
+
return payload;
|
|
177
|
+
}
|
|
178
|
+
function parseOptionalDate(value) {
|
|
179
|
+
if (!value)
|
|
180
|
+
return null;
|
|
181
|
+
const parsed = new Date(value);
|
|
182
|
+
return Number.isNaN(parsed.getTime()) ? "invalid" : parsed;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=promotion-dialog-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promotion-dialog-model.js","sourceRoot":"","sources":["../../src/promotions/promotion-dialog-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promotion-dialog.d.ts","sourceRoot":"","sources":["../../src/promotions/promotion-dialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"promotion-dialog.d.ts","sourceRoot":"","sources":["../../src/promotions/promotion-dialog.tsx"],"names":[],"mappings":"AAyCA,OAAO,EACL,KAAK,sBAAsB,EAI5B,MAAM,YAAY,CAAA;AAanB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,oDAAoD;IACpD,KAAK,CAAC,EAAE,sBAAsB,CAAA;CAC/B;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,oBAAoB,+BA6TlF"}
|