@mirai/core 0.3.164 → 0.3.166

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.
@@ -60,21 +60,15 @@
60
60
  "basePrice": 984.54,
61
61
  "checkoutPrice": 877.23,
62
62
  "dayPrice": 146.21,
63
- "days": [
64
- { "deal": "207167", "price": 119.88, "value": "19/02/2024" },
65
- { "deal": "207167", "price": 119.88, "value": "20/02/2024" },
66
- { "deal": "207167", "price": 119.88, "value": "21/02/2024" },
67
- { "deal": "207167", "price": 119.88, "value": "22/02/2024" },
68
- { "deal": "207167", "price": 140.13, "value": "23/02/2024" },
69
- { "deal": "207167", "price": 257.58, "value": "24/02/2024" }
70
- ],
71
63
  "deals": ["207167"],
72
64
  "discount": { "percentage": 19, "breakdown": [{ "type": 1, "value": 187.06 }] },
73
65
  "id": "7818--61103--335428b0--4378--207167",
74
66
  "name": "Breakfast included",
67
+ "offerDates": ["19/02/2024", "20/02/2024", "21/02/2024", "22/02/2024", "23/02/2024", "24/02/2024"],
75
68
  "originalPrice": 1083,
76
69
  "price": 877.23,
77
70
  "taxes": 79.75,
71
+ "variants": [],
78
72
  "increment": 0
79
73
  },
80
74
  {
@@ -86,14 +80,6 @@
86
80
  "basePrice": 984.55,
87
81
  "checkoutPrice": 956.84,
88
82
  "dayPrice": 159.47,
89
- "days": [
90
- { "deal": "205800", "price": 130.76, "value": "19/02/2024" },
91
- { "deal": "205800", "price": 130.76, "value": "20/02/2024" },
92
- { "deal": "205800", "price": 130.76, "value": "21/02/2024" },
93
- { "deal": "205800", "price": 130.76, "value": "22/02/2024" },
94
- { "deal": "205800", "price": 152.85, "value": "23/02/2024" },
95
- { "deal": "205800", "price": 280.95, "value": "24/02/2024" }
96
- ],
97
83
  "deals": ["205800"],
98
84
  "discount": {
99
85
  "percentage": 12,
@@ -104,9 +90,11 @@
104
90
  },
105
91
  "id": "7818--61103--335428b0--4378--205800",
106
92
  "name": "Breakfast included",
93
+ "offerDates": ["19/02/2024", "20/02/2024", "21/02/2024", "22/02/2024", "23/02/2024", "24/02/2024"],
107
94
  "originalPrice": 1083,
108
95
  "price": 956.84,
109
96
  "taxes": 86.99,
97
+ "variants": [],
110
98
  "increment": 0
111
99
  }
112
100
  ],
@@ -235,21 +223,15 @@
235
223
  "basePrice": 1066.36,
236
224
  "checkoutPrice": 950.13,
237
225
  "dayPrice": 158.36,
238
- "days": [
239
- { "deal": "207167", "price": 132.03, "value": "19/02/2024" },
240
- { "deal": "207167", "price": 132.03, "value": "20/02/2024" },
241
- { "deal": "207167", "price": 132.03, "value": "21/02/2024" },
242
- { "deal": "207167", "price": 132.03, "value": "22/02/2024" },
243
- { "deal": "207167", "price": 152.28, "value": "23/02/2024" },
244
- { "deal": "207167", "price": 269.73, "value": "24/02/2024" }
245
- ],
246
226
  "deals": ["207167"],
247
227
  "discount": { "percentage": 19, "breakdown": [{ "type": 1, "value": 202.61 }] },
248
228
  "id": "7818--60815--334026b0--4378--207167",
249
229
  "name": "Breakfast included",
230
+ "offerDates": ["19/02/2024", "20/02/2024", "21/02/2024", "22/02/2024", "23/02/2024", "24/02/2024"],
250
231
  "originalPrice": 1173,
251
232
  "price": 950.13,
252
233
  "taxes": 86.38,
234
+ "variants": [],
253
235
  "increment": 0
254
236
  },
255
237
  {
@@ -261,14 +243,6 @@
261
243
  "basePrice": 1066.37,
262
244
  "checkoutPrice": 1036.35,
263
245
  "dayPrice": 172.73,
264
- "days": [
265
- { "deal": "205800", "price": 144.01, "value": "19/02/2024" },
266
- { "deal": "205800", "price": 144.01, "value": "20/02/2024" },
267
- { "deal": "205800", "price": 144.01, "value": "21/02/2024" },
268
- { "deal": "205800", "price": 144.01, "value": "22/02/2024" },
269
- { "deal": "205800", "price": 166.1, "value": "23/02/2024" },
270
- { "deal": "205800", "price": 294.21, "value": "24/02/2024" }
271
- ],
272
246
  "deals": ["205800"],
273
247
  "discount": {
274
248
  "percentage": 12,
@@ -279,9 +253,11 @@
279
253
  },
280
254
  "id": "7818--60815--334026b0--4378--205800",
281
255
  "name": "Breakfast included",
256
+ "offerDates": ["19/02/2024", "20/02/2024", "21/02/2024", "22/02/2024", "23/02/2024", "24/02/2024"],
282
257
  "originalPrice": 1173,
283
258
  "price": 1036.35,
284
259
  "taxes": 94.21,
260
+ "variants": [],
285
261
  "increment": 0
286
262
  }
287
263
  ],
@@ -8,6 +8,7 @@ var _getIncrements = require("./getIncrements");
8
8
  var _getPrice = require("./getPrice");
9
9
  var _normalizePrice = require("./normalizePrice");
10
10
  var _parseDiscount = require("./parseDiscount");
11
+ const VARIABLE_OFFER = 'OFFER_WARNING_ONLY_X_NIGHTS';
11
12
  const parseBoards = _ref => {
12
13
  let {
13
14
  currency,
@@ -35,11 +36,17 @@ const parseBoards = _ref => {
35
36
  offer = false,
36
37
  paymentText: paymentConditions,
37
38
  pendingSecondsValid: countdown,
38
- rateWarnings,
39
+ rateWarnings: warnings,
39
40
  // 3. boards
40
41
  boardOptions = {}
41
42
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
42
- const restrictions = Object.values(rateWarnings);
43
+ const restrictions = Object.entries(warnings).map(function () {
44
+ let [key, value] = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
45
+ return {
46
+ isVariableOffer: key === VARIABLE_OFFER,
47
+ value
48
+ };
49
+ });
43
50
  // 1. get cancellations
44
51
  let cancellation = cancellations.find(function () {
45
52
  let {
@@ -125,23 +132,6 @@ const parseBoards = _ref => {
125
132
  hotelCurrency,
126
133
  price: taxes ? withTaxesAvgPrice : originalAvgPrice
127
134
  }),
128
- days: detail.map(function () {
129
- let {
130
- dayStandardFormat: value,
131
- offerId: deal,
132
- priceWithoutTaxes: basePrice,
133
- priceWithTaxes: price
134
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
135
- return {
136
- deal,
137
- price: (0, _getPrice.getPrice)({
138
- currency,
139
- hotelCurrency,
140
- price: taxes ? price : basePrice
141
- }),
142
- value
143
- };
144
- }),
145
135
  deals,
146
136
  discount: (0, _parseDiscount.parseDiscount)({
147
137
  currency,
@@ -157,6 +147,17 @@ const parseBoards = _ref => {
157
147
  price: localTaxes
158
148
  }),
159
149
  name,
150
+ offerDates: detail.filter(function () {
151
+ let {
152
+ offerDay
153
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
154
+ return offerDay;
155
+ }).map(_ref3 => {
156
+ let {
157
+ dayStandardFormat: date
158
+ } = _ref3;
159
+ return date;
160
+ }),
160
161
  originalPrice: (0, _getPrice.getPrice)({
161
162
  currency,
162
163
  hotelCurrency,
@@ -171,6 +172,21 @@ const parseBoards = _ref => {
171
172
  currency,
172
173
  hotelCurrency,
173
174
  price: totalPrice - totalBasePrice - (fees ? localTaxes : 0)
175
+ }),
176
+ variants: detail.map(function () {
177
+ let {
178
+ boardTranslation: name,
179
+ dayStandardFormat: value
180
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
181
+ return {
182
+ name,
183
+ value
184
+ };
185
+ }).filter(function () {
186
+ let {
187
+ name: detailName
188
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
189
+ return detailName !== name;
174
190
  })
175
191
  });
176
192
  });
@@ -1 +1 @@
1
- {"version":3,"file":"parseBoards.js","names":["_getIncrements","require","_getPrice","_normalizePrice","_parseDiscount","parseBoards","_ref","currency","fees","hotelCurrency","rates","baseRates","taxes","cancellations","boards","Object","values","forEach","cancellationPolicyDeadline","cancelCaption","cancellationPolicyName","cancelName","cancellationPolicyText","cancelText","cancellationPolicyTooltip","cancelTitle","cancellationPolicyTypeEnum","cancelId","id","rateId","includedList","included","isClub","name","offer","paymentText","paymentConditions","pendingSecondsValid","countdown","rateWarnings","boardOptions","arguments","length","undefined","restrictions","cancellation","find","concat","caption","title","text","push","discountPercentage","map","discountPricesBefore","offerDiscountPercentInCents","value","parseInt","filter","now","Date","cancellationId","setSeconds","getSeconds","Set","flat","_ref2","boardGroupName","detail","discounts","offersApplied","deals","originalAvgPrice","totalBasePrice","totalLocalTaxes","localTaxes","totalPriceOriginal","totalPriceWithTaxes","totalPrice","withTaxesAvgPrice","clientCodeDiscountPercentInCents","promoCodeValue","clientCodeTotal","promoCode","clubDiscountPercentInCents","clubValue","clubTotal","club","dealValue","offerTotal","deal","price","basePrice","withoutTaxes","originalPrice","Math","max","withTaxes","original","slice","getPrice","checkoutPrice","normalizePrice","dayPrice","days","dayStandardFormat","offerId","priceWithoutTaxes","priceWithTaxes","discount","parseDiscount","getIncrements","exports"],"sources":["../../../../src/services/Rates/helpers/parseBoards.js"],"sourcesContent":["import { getIncrements } from './getIncrements';\nimport { getPrice } from './getPrice';\nimport { normalizePrice } from './normalizePrice';\nimport { parseDiscount } from './parseDiscount';\n\nexport const parseBoards = ({ currency, fees, hotelCurrency, rates: baseRates = {}, taxes }) => {\n const cancellations = [];\n const rates = [];\n const boards = [];\n\n Object.values(baseRates).forEach(\n ({\n // 1. cancellations\n cancellationPolicyDeadline: cancelCaption,\n cancellationPolicyName: cancelName,\n cancellationPolicyText: cancelText,\n cancellationPolicyTooltip: cancelTitle,\n cancellationPolicyTypeEnum: cancelId,\n // 2. rates\n id: rateId,\n includedList: included,\n isClub,\n name,\n offer = false,\n paymentText: paymentConditions,\n pendingSecondsValid: countdown,\n rateWarnings,\n // 3. boards\n boardOptions = {},\n } = {}) => {\n const restrictions = Object.values(rateWarnings);\n // 1. get cancellations\n let cancellation = cancellations.find(({ id } = {}) => id === `${cancelId}-${cancelTitle}`);\n\n if (!cancellation) {\n cancellation = {\n caption: cancelCaption,\n id: `${cancelId}-${cancelTitle}`,\n name: cancelName,\n title: cancelTitle,\n text: cancelText,\n };\n cancellations.push(cancellation);\n }\n\n // 2. get rates\n const [discountPercentage] = Object.values(boardOptions)\n .map(({ discountPricesBefore: { offerDiscountPercentInCents: value = 0 } = {} } = {}) =>\n value !== null ? parseInt(value / 100) : undefined,\n )\n .filter((value) => value > 0);\n const now = new Date();\n\n rates.push({\n id: rateId,\n cancellationId: cancellation.id,\n countdown: countdown !== null ? now.setSeconds(now.getSeconds() + countdown) : undefined,\n discountPercentage,\n included: [...new Set(Object.values(included).flat())],\n isClub,\n name,\n offer,\n restrictions,\n });\n\n // 3. get boards\n Object.values(boardOptions).forEach(\n ({\n boardGroupName: name,\n detail,\n discountPricesBefore: discounts = {},\n id,\n offersApplied: deals,\n originalAvgPrice,\n totalBasePrice,\n totalLocalTaxes: localTaxes,\n totalPriceOriginal,\n totalPriceWithTaxes: totalPrice,\n withTaxesAvgPrice,\n }) => {\n const {\n clientCodeDiscountPercentInCents: promoCodeValue,\n clientCodeTotal: promoCode,\n clubDiscountPercentInCents: clubValue,\n clubTotal: club,\n offerDiscountPercentInCents: dealValue,\n offerTotal: deal,\n } = discounts;\n const price = taxes && fees ? totalPrice : totalPriceOriginal;\n const basePrice =\n totalBasePrice +\n (deal && dealValue ? deal.withoutTaxes * (dealValue / 10000) : 0) +\n (club && clubValue ? club.withoutTaxes * (clubValue / 10000) : 0) +\n (promoCode && promoCodeValue ? promoCode.withoutTaxes * (promoCodeValue / 10000) : 0);\n const originalPrice =\n (taxes\n ? Math.max(deal?.withTaxes || 0, club?.withTaxes || 0, promoCode?.withTaxes || 0)\n : Math.max(deal?.original || 0, club?.original || 0, promoCode?.original || 0)) || price;\n\n boards.push({\n cancellationId: cancellation.id,\n rateId,\n // rate info\n included: [...new Set(Object.values(included).flat())].slice(0, 3),\n paymentConditions,\n restrictions,\n // board info\n basePrice: getPrice({ currency, hotelCurrency, price: basePrice }),\n checkoutPrice: normalizePrice(totalPriceOriginal, currency),\n dayPrice: getPrice({ currency, hotelCurrency, price: taxes ? withTaxesAvgPrice : originalAvgPrice }),\n days: detail.map(\n ({\n dayStandardFormat: value,\n offerId: deal,\n priceWithoutTaxes: basePrice,\n priceWithTaxes: price,\n } = {}) => ({\n deal,\n price: getPrice({ currency, hotelCurrency, price: taxes ? price : basePrice }),\n value,\n }),\n ),\n deals,\n discount: parseDiscount({ currency, hotelCurrency, ...discounts, originalPrice, totalPrice: price }),\n id,\n fees: getPrice({ currency, hotelCurrency, price: localTaxes }),\n name,\n originalPrice: getPrice({ currency, hotelCurrency, price: originalPrice }),\n price: getPrice({ currency, hotelCurrency, price }),\n taxes: getPrice({\n currency,\n hotelCurrency,\n price: totalPrice - totalBasePrice - (fees ? localTaxes : 0),\n }),\n });\n },\n );\n },\n );\n\n return { ...getIncrements({ cancellations, rates, boards }) };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"parseBoards.js","names":["_getIncrements","require","_getPrice","_normalizePrice","_parseDiscount","VARIABLE_OFFER","parseBoards","_ref","currency","fees","hotelCurrency","rates","baseRates","taxes","cancellations","boards","Object","values","forEach","cancellationPolicyDeadline","cancelCaption","cancellationPolicyName","cancelName","cancellationPolicyText","cancelText","cancellationPolicyTooltip","cancelTitle","cancellationPolicyTypeEnum","cancelId","id","rateId","includedList","included","isClub","name","offer","paymentText","paymentConditions","pendingSecondsValid","countdown","rateWarnings","warnings","boardOptions","arguments","length","undefined","restrictions","entries","map","key","value","isVariableOffer","cancellation","find","concat","caption","title","text","push","discountPercentage","discountPricesBefore","offerDiscountPercentInCents","parseInt","filter","now","Date","cancellationId","setSeconds","getSeconds","Set","flat","_ref2","boardGroupName","detail","discounts","offersApplied","deals","originalAvgPrice","totalBasePrice","totalLocalTaxes","localTaxes","totalPriceOriginal","totalPriceWithTaxes","totalPrice","withTaxesAvgPrice","clientCodeDiscountPercentInCents","promoCodeValue","clientCodeTotal","promoCode","clubDiscountPercentInCents","clubValue","clubTotal","club","dealValue","offerTotal","deal","price","basePrice","withoutTaxes","originalPrice","Math","max","withTaxes","original","slice","getPrice","checkoutPrice","normalizePrice","dayPrice","discount","parseDiscount","offerDates","offerDay","_ref3","dayStandardFormat","date","variants","boardTranslation","detailName","getIncrements","exports"],"sources":["../../../../src/services/Rates/helpers/parseBoards.js"],"sourcesContent":["import { getIncrements } from './getIncrements';\nimport { getPrice } from './getPrice';\nimport { normalizePrice } from './normalizePrice';\nimport { parseDiscount } from './parseDiscount';\n\nconst VARIABLE_OFFER = 'OFFER_WARNING_ONLY_X_NIGHTS';\n\nexport const parseBoards = ({ currency, fees, hotelCurrency, rates: baseRates = {}, taxes }) => {\n const cancellations = [];\n const rates = [];\n const boards = [];\n\n Object.values(baseRates).forEach(\n ({\n // 1. cancellations\n cancellationPolicyDeadline: cancelCaption,\n cancellationPolicyName: cancelName,\n cancellationPolicyText: cancelText,\n cancellationPolicyTooltip: cancelTitle,\n cancellationPolicyTypeEnum: cancelId,\n // 2. rates\n id: rateId,\n includedList: included,\n isClub,\n name,\n offer = false,\n paymentText: paymentConditions,\n pendingSecondsValid: countdown,\n rateWarnings: warnings,\n // 3. boards\n boardOptions = {},\n } = {}) => {\n const restrictions = Object.entries(warnings).map(([key, value] = []) => ({\n isVariableOffer: key === VARIABLE_OFFER,\n value,\n }));\n // 1. get cancellations\n let cancellation = cancellations.find(({ id } = {}) => id === `${cancelId}-${cancelTitle}`);\n\n if (!cancellation) {\n cancellation = {\n caption: cancelCaption,\n id: `${cancelId}-${cancelTitle}`,\n name: cancelName,\n title: cancelTitle,\n text: cancelText,\n };\n cancellations.push(cancellation);\n }\n\n // 2. get rates\n const [discountPercentage] = Object.values(boardOptions)\n .map(({ discountPricesBefore: { offerDiscountPercentInCents: value = 0 } = {} } = {}) =>\n value !== null ? parseInt(value / 100) : undefined,\n )\n .filter((value) => value > 0);\n const now = new Date();\n\n rates.push({\n id: rateId,\n cancellationId: cancellation.id,\n countdown: countdown !== null ? now.setSeconds(now.getSeconds() + countdown) : undefined,\n discountPercentage,\n included: [...new Set(Object.values(included).flat())],\n isClub,\n name,\n offer,\n restrictions,\n });\n\n // 3. get boards\n Object.values(boardOptions).forEach(\n ({\n boardGroupName: name,\n detail,\n discountPricesBefore: discounts = {},\n id,\n offersApplied: deals,\n originalAvgPrice,\n totalBasePrice,\n totalLocalTaxes: localTaxes,\n totalPriceOriginal,\n totalPriceWithTaxes: totalPrice,\n withTaxesAvgPrice,\n }) => {\n const {\n clientCodeDiscountPercentInCents: promoCodeValue,\n clientCodeTotal: promoCode,\n clubDiscountPercentInCents: clubValue,\n clubTotal: club,\n offerDiscountPercentInCents: dealValue,\n offerTotal: deal,\n } = discounts;\n const price = taxes && fees ? totalPrice : totalPriceOriginal;\n const basePrice =\n totalBasePrice +\n (deal && dealValue ? deal.withoutTaxes * (dealValue / 10000) : 0) +\n (club && clubValue ? club.withoutTaxes * (clubValue / 10000) : 0) +\n (promoCode && promoCodeValue ? promoCode.withoutTaxes * (promoCodeValue / 10000) : 0);\n const originalPrice =\n (taxes\n ? Math.max(deal?.withTaxes || 0, club?.withTaxes || 0, promoCode?.withTaxes || 0)\n : Math.max(deal?.original || 0, club?.original || 0, promoCode?.original || 0)) || price;\n\n boards.push({\n cancellationId: cancellation.id,\n rateId,\n // rate info\n included: [...new Set(Object.values(included).flat())].slice(0, 3),\n paymentConditions,\n restrictions,\n // board info\n basePrice: getPrice({ currency, hotelCurrency, price: basePrice }),\n checkoutPrice: normalizePrice(totalPriceOriginal, currency),\n dayPrice: getPrice({ currency, hotelCurrency, price: taxes ? withTaxesAvgPrice : originalAvgPrice }),\n deals,\n discount: parseDiscount({ currency, hotelCurrency, ...discounts, originalPrice, totalPrice: price }),\n id,\n fees: getPrice({ currency, hotelCurrency, price: localTaxes }),\n name,\n offerDates: detail.filter(({ offerDay } = {}) => offerDay).map(({ dayStandardFormat: date }) => date),\n originalPrice: getPrice({ currency, hotelCurrency, price: originalPrice }),\n price: getPrice({ currency, hotelCurrency, price }),\n taxes: getPrice({\n currency,\n hotelCurrency,\n price: totalPrice - totalBasePrice - (fees ? localTaxes : 0),\n }),\n variants: detail\n .map(({ boardTranslation: name, dayStandardFormat: value } = {}) => ({ name, value }))\n .filter(({ name: detailName } = {}) => detailName !== name),\n });\n },\n );\n },\n );\n\n return { ...getIncrements({ cancellations, rates, boards }) };\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirai/core",
3
- "version": "0.3.164",
3
+ "version": "0.3.166",
4
4
  "source": "src/index.js",
5
5
  "repository": "https://gitlab.com/miraicorp/dev/frontend/core",
6
6
  "author": "JΛVI <hello@soyjavi.com>",
package/public/App.jsx CHANGED
@@ -9,7 +9,7 @@ const App = () => {
9
9
  const [location] = useLocation();
10
10
 
11
11
  useEffect(() => {
12
- window.Mirai?.core();
12
+ window.Mirai?.core?.();
13
13
  window.scrollTo({ behavior: 'smooth', top: 0 });
14
14
  }, [location]);
15
15