diy-template-components 2.0.67 → 2.0.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.es.js CHANGED
@@ -226,6 +226,51 @@ const useSectionStyles$a = createUseStyles(theme => ({
226
226
  justifyContent: 'center',
227
227
  width: '10%'
228
228
  },
229
+ offerPrice: {
230
+ fontSize: theme.typography.fontSize.h4,
231
+ fontWeight: '700'
232
+ },
233
+ originalPrice: {
234
+ textDecoration: 'line-through',
235
+ color: 'rgba(51, 51, 51, 0.6)'
236
+ },
237
+ offerDiscount: {
238
+ color: '#08BD80',
239
+ fontWeight: '600'
240
+ },
241
+ rightNav: {
242
+ marginRight: '120px',
243
+ display: 'flex'
244
+ },
245
+ priceBox: {
246
+ marginRight: '16px'
247
+ },
248
+ offerBox: {
249
+ marginRight: '24px',
250
+ display: 'flex',
251
+ flexDirection: 'column',
252
+ backgroundColor: 'rgba(244, 249, 253, 1)',
253
+ justifyContent: 'space-between',
254
+ borderRadius: '8px'
255
+ },
256
+ offerBoxText: {
257
+ color: 'rgba(51, 51, 51, 0.6)',
258
+ fontWeight: '600',
259
+ fontSize: '10px',
260
+ padding: '3px 12px 3px, 12px',
261
+ padding: '4px',
262
+ textAlign: 'center',
263
+ marginTop: '4px'
264
+ },
265
+ offerBoxCountDown: {
266
+ backgroundColor: 'rgba(235, 87, 87, 0.1)',
267
+ border: '0px 1px 1px 1px',
268
+ borderRadius: '8px',
269
+ color: '#EB5757',
270
+ fontSize: '16px',
271
+ fontWeight: '700',
272
+ padding: '6px 16px'
273
+ },
229
274
  '@media screen and (max-width: 767px)': {
230
275
  optionsContainer: {
231
276
  flexDirection: 'column',
@@ -1305,8 +1350,17 @@ function DesktopHeader({
1305
1350
  navData,
1306
1351
  isTutorWebsite,
1307
1352
  isLandingPage = false,
1308
- onDownloadAppTriggered
1353
+ onDownloadAppTriggered,
1354
+ extraProps
1309
1355
  }) {
1356
+ let mockHeader = {
1357
+ isOfferActive: true,
1358
+ effectivePrice: 0.51,
1359
+ price: 1,
1360
+ discount: 0.5,
1361
+ endDate: Date.now() + 24 * 60 * 60 * 1000,
1362
+ offerPriceValidFor: 20
1363
+ };
1310
1364
  const {
1311
1365
  isFixed = true
1312
1366
  } = header;
@@ -1342,13 +1396,113 @@ function DesktopHeader({
1342
1396
 
1343
1397
  // console.log(header, 'sakshat header desktop');
1344
1398
 
1399
+ const renderer = ({
1400
+ days,
1401
+ hours,
1402
+ minutes,
1403
+ seconds
1404
+ }) => {
1405
+ if (days === 0 && hours < 24) {
1406
+ return /*#__PURE__*/React.createElement("span", null, hours, "h : ", minutes, "m : ", seconds, "s");
1407
+ } else {
1408
+ let given = moment(mockHeader.endDate);
1409
+ let current = moment().startOf('day');
1410
+ return /*#__PURE__*/React.createElement("span", null, Math.floor(moment.duration(given.diff(current)).asDays()), " ", 'Days');
1411
+ }
1412
+ };
1413
+ const checkIfOfferIsValid = (endDate = null) => moment().diff(moment(endDate || 0)) < 0;
1414
+ const checkForShowDiscount = (endDate = null, offerPriceValidFor = null, discount = 0) => {
1415
+ let conversions = extraProps?.conversions || 0;
1416
+ if (endDate === null || checkIfOfferIsValid()) {
1417
+ if (discount > 0 && offerPriceValidFor === null) {
1418
+ return true;
1419
+ } else if (discount > 0 && offerPriceValidFor !== null && offerPriceValidFor - conversions <= 0) {
1420
+ return false;
1421
+ }
1422
+ } else if (offerPriceValidFor >= null && discount) {
1423
+ if (offerPriceValidFor <= conversions) {
1424
+ return false;
1425
+ }
1426
+ if (offerPriceValidFor - conversions < 0) {
1427
+ return false;
1428
+ } else {
1429
+ return true;
1430
+ }
1431
+ }
1432
+ if (discount > 0) {
1433
+ return true;
1434
+ }
1435
+ };
1436
+ const getDiscount = (price, discount) => {
1437
+ return (discount / price * 100).toFixed(2);
1438
+ };
1439
+ const OfferDetailsJSX = () => {
1440
+ let conversions = extraProps?.conversions || 0;
1441
+ if (checkForShowDiscount(mockHeader?.endDate, mockHeader?.offerPriceValidFor, mockHeader?.discount) && mockHeader?.endDate ? checkIfOfferIsValid(mockHeader?.endDate) : true) {
1442
+ return /*#__PURE__*/React.createElement("div", {
1443
+ className: classes.rightNav
1444
+ }, mockHeader?.isOfferActive && (mockHeader?.offerPriceValidFor ? mockHeader.offerPriceValidFor - conversions > 0 : true) ? /*#__PURE__*/React.createElement("div", {
1445
+ className: classes.offerBox
1446
+ }, /*#__PURE__*/React.createElement("div", {
1447
+ className: classes.offerBoxText
1448
+ }, "Offer Ends In"), /*#__PURE__*/React.createElement("div", {
1449
+ className: classes.offerBoxCountDown
1450
+ }, /*#__PURE__*/React.createElement(Countdown, {
1451
+ renderer: renderer,
1452
+ date: mockHeader?.endDate
1453
+ }))) : null, /*#__PURE__*/React.createElement("div", {
1454
+ className: classes.priceBox
1455
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
1456
+ className: classes.offerDiscount
1457
+ }, `${getDiscount(mockHeader?.price, mockHeader?.discount)}%`, "\xA0OFF"), "\xA0\xA0", /*#__PURE__*/React.createElement("span", {
1458
+ className: classes.originalPrice
1459
+ }, mockHeader?.price), ' '), /*#__PURE__*/React.createElement("div", {
1460
+ style: {
1461
+ textAlign: 'end'
1462
+ }
1463
+ }, /*#__PURE__*/React.createElement("span", {
1464
+ className: classes.offerPrice
1465
+ }, mockHeader?.effectivePrice), ' ')), /*#__PURE__*/React.createElement(Button, {
1466
+ data: {
1467
+ // link: 'headerData?.loginCtaLink',
1468
+ // isLink: 1,
1469
+ value: 'BUY NOW'
1470
+ // isExternal: 1
1471
+ },
1472
+
1473
+ onClick: extraProps?.courseBuyNow,
1474
+ type: 'primary',
1475
+ size: 'small',
1476
+ target: null,
1477
+ name: "button",
1478
+ rel: null
1479
+ // styling={isMobile ? { margin: '0 40px' } : {}}
1480
+ }));
1481
+ } else return /*#__PURE__*/React.createElement(Button, {
1482
+ data: {
1483
+ // link: 'headerData?.loginCtaLink',
1484
+ // isLink: 1,
1485
+ value: 'BUY NOW'
1486
+ // isExternal: 1
1487
+ },
1488
+
1489
+ onClick: extraProps?.courseBuyNow,
1490
+ type: 'primary',
1491
+ size: 'medium',
1492
+ target: null,
1493
+ name: "button",
1494
+ rel: null
1495
+ // styling={isMobile ? { margin: '0 40px' } : {}}
1496
+ });
1497
+ };
1498
+
1345
1499
  return /*#__PURE__*/React.createElement("nav", {
1346
1500
  className: classes.section
1347
1501
  }, !(header?.websiteLogo === DEFAULT_HEADER_IMAGE_LP && isCustomWebsite) ? /*#__PURE__*/React.createElement("div", {
1348
1502
  className: classes.headerSection
1349
1503
  }, /*#__PURE__*/React.createElement("div", {
1350
1504
  className: classes.headerContainer
1351
- }, /*#__PURE__*/React.createElement("div", {
1505
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
1352
1506
  className: classes.imageDiv
1353
1507
  }, header?.websiteLogo ? /*#__PURE__*/React.createElement("a", {
1354
1508
  href: logoUrl,
@@ -1376,7 +1530,7 @@ function DesktopHeader({
1376
1530
  moreContent: moreContentFn(),
1377
1531
  isTutorWebsite: isTutorWebsite,
1378
1532
  onDownloadAppTriggered: onDownloadAppTriggered
1379
- }))) : /*#__PURE__*/React.createElement("div", {
1533
+ })), OfferDetailsJSX())) : /*#__PURE__*/React.createElement("div", {
1380
1534
  style: {
1381
1535
  paddingTop: '30px'
1382
1536
  }
@@ -1570,13 +1724,15 @@ function Header({
1570
1724
  header: data,
1571
1725
  isTutorWebsite: isTutorWebsite,
1572
1726
  isLandingPage: isLandingPage,
1573
- onDownloadAppTriggered: extraProps?.DownloadAppButtonTriggered
1727
+ onDownloadAppTriggered: extraProps?.DownloadAppButtonTriggered,
1728
+ extraProps: extraProps
1574
1729
  }) : /*#__PURE__*/React.createElement(DesktopHeader, {
1575
1730
  navData: filterHiddenNavs(),
1576
1731
  header: data,
1577
1732
  isTutorWebsite: isTutorWebsite,
1578
1733
  isLandingPage: isLandingPage,
1579
- onDownloadAppTriggered: extraProps?.DownloadAppButtonTriggered
1734
+ onDownloadAppTriggered: extraProps?.DownloadAppButtonTriggered,
1735
+ extraProps: extraProps
1580
1736
  });
1581
1737
  }
1582
1738
 
@@ -10206,21 +10362,28 @@ const TimerAndCall = ({
10206
10362
  text: "Secs"
10207
10363
  }));
10208
10364
  };
10365
+ const CountDownJSX = offerPriceValidFor => {
10366
+ let conversions = extraProps?.conversions || 0;
10367
+ if (offerPriceValidFor && offerPriceValidFor - conversions <= 0) {
10368
+ return null;
10369
+ }
10370
+ return /*#__PURE__*/React.createElement("div", {
10371
+ className: classes.offerWrapper
10372
+ }, /*#__PURE__*/React.createElement("div", {
10373
+ className: classes.offerEndsTitle
10374
+ }, "Offer ends in"), /*#__PURE__*/React.createElement(Countdown, {
10375
+ renderer: renderer,
10376
+ date: nodeData.offerCounter?.metadata?.endDate,
10377
+ daysInHours: true
10378
+ }));
10379
+ };
10209
10380
  return /*#__PURE__*/React.createElement("section", {
10210
10381
  className: classes.timerAndCallSection
10211
10382
  }, /*#__PURE__*/React.createElement("div", {
10212
10383
  className: classes.timerAndCallContainer
10213
10384
  }, /*#__PURE__*/React.createElement("div", {
10214
10385
  className: classes.timerAndCallBox
10215
- }, nodeData?.showOffer?.metadata?.value && nodeData.offerCounter?.metadata?.isOfferActive ? /*#__PURE__*/React.createElement("div", {
10216
- className: classes.offerWrapper
10217
- }, /*#__PURE__*/React.createElement("div", {
10218
- className: classes.offerEndsTitle
10219
- }, "Offer ends in"), /*#__PURE__*/React.createElement(Countdown, {
10220
- renderer: renderer,
10221
- date: nodeData.offerCounter?.metadata?.endDate,
10222
- daysInHours: true
10223
- })) : null, nodeData?.title?.metadata?.value ? /*#__PURE__*/React.createElement("div", {
10386
+ }, nodeData?.showOffer?.metadata?.value && nodeData.offerCounter?.metadata?.isOfferActive ? CountDownJSX(nodeData.offerCounter?.metadata?.offerPriceValidFor) : null, nodeData?.title?.metadata?.value ? /*#__PURE__*/React.createElement("div", {
10224
10387
  className: classes.title
10225
10388
  }, /*#__PURE__*/React.createElement("span", {
10226
10389
  ref: nodeData?.heading?.refSetter,