diy-template-components 4.0.0 → 4.0.4

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.js CHANGED
@@ -10,7 +10,6 @@ var Countdown = require('react-countdown');
10
10
  var koreanLocale = require('moment/locale/ko');
11
11
  var ReactDOMServer = require('react-dom/server');
12
12
  var reactJss = require('react-jss');
13
- require('@storybook/theming');
14
13
 
15
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
15
 
@@ -2758,33 +2757,36 @@ function withSectionBackground(WrappedSectionRenderer) {
2758
2757
  }
2759
2758
 
2760
2759
  const TYPE_TO_COMPONENT_MAP$1 = {
2761
- BANNER_CAROUSEL_RIGHT: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$q; })),
2762
- GRID_CARD: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$p; })),
2763
- BANNER_CAROUSEL_CENTER: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$o; })),
2764
- BANNER_CAROUSEL_CENTER_V2: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$n; })),
2765
- BANNER_CAROUSEL_LEFT: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$m; })),
2766
- FORM_SUBSCRIBE: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$l; })),
2767
- TEXT_TESTIMONIAL: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$k; })),
2768
- VIDEO_TESTIMONIAL: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$j; })),
2769
- VIDEO_WORKSHOP_PROMOTION: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$2; })),
2770
- VIDEO: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$i; })),
2771
- INFO: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$h; })),
2772
- TEXT: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$g; })),
2773
- IMAGE_GALLERY: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$f; })),
2774
- FAQ_LISTING: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$e; })),
2775
- COURSE_CAROUSEL: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$c; })),
2776
- TEAM_CARD: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$b; })),
2777
- TEXT_GRID: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$d; })),
2778
- CONTACT: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$a; })),
2779
- FORM_ENQUIRY: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$9; })),
2780
- WEBINAR_LANDING_PAGE: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$8; })),
2781
- COURSE_LANDING_PAGE: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$7; })),
2782
- COURSE_LANDING_PAGE_V2: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$1; })),
2783
- FORM_LANDING_PAGE: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$6; })),
2784
- TILES_SECTION: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$5; })),
2785
- EMAIL_DRIP_MARKET: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$4; })),
2786
- ABOUT_INSTITUTE: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$3; })),
2787
- COUNTER_SECTION: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index; }))
2760
+ BANNER_CAROUSEL_RIGHT: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$t; })),
2761
+ GRID_CARD: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$s; })),
2762
+ BANNER_CAROUSEL_CENTER: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$r; })),
2763
+ BANNER_CAROUSEL_CENTER_V2: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$q; })),
2764
+ BANNER_CAROUSEL_LEFT: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$p; })),
2765
+ FORM_SUBSCRIBE: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$o; })),
2766
+ TEXT_TESTIMONIAL: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$n; })),
2767
+ VIDEO_TESTIMONIAL: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$m; })),
2768
+ VIDEO_WORKSHOP_PROMOTION: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$1; })),
2769
+ VIDEO: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$l; })),
2770
+ INFO: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$k; })),
2771
+ TEXT: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$j; })),
2772
+ IMAGE_GALLERY: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$i; })),
2773
+ FAQ_LISTING: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$h; })),
2774
+ COURSE_CAROUSEL: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$f; })),
2775
+ TEAM_CARD: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$e; })),
2776
+ TEXT_GRID: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$g; })),
2777
+ CONTACT: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$d; })),
2778
+ FORM_ENQUIRY: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$c; })),
2779
+ WEBINAR_LANDING_PAGE: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$b; })),
2780
+ COURSE_LANDING_PAGE: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$a; })),
2781
+ COURSE_LANDING_PAGE_V2: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index; })),
2782
+ FORM_LANDING_PAGE: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$9; })),
2783
+ TILES_SECTION: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$8; })),
2784
+ EMAIL_DRIP_MARKET: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$7; })),
2785
+ ABOUT_INSTITUTE: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$6; })),
2786
+ COUNTER_SECTION: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$5; })),
2787
+ TIMER_AND_CALL: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$2; })),
2788
+ STICKY_CTA: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$4; })),
2789
+ CUSTOM_HTML_SECTION: /*#__PURE__*/React.lazy(() => Promise.resolve().then(function () { return index$3; }))
2788
2790
  };
2789
2791
  const getCompToRender$1 = type => {
2790
2792
  const Comp = TYPE_TO_COMPONENT_MAP$1[type];
@@ -2805,7 +2807,7 @@ const MemoisedSection$1 = /*#__PURE__*/React.memo(({
2805
2807
  sectionIndex: sectionIndex
2806
2808
  });
2807
2809
  });
2808
- const SectionWithBackground = withSectionBackground(MemoisedSection$1);
2810
+ const SectionWithBackground$1 = withSectionBackground(MemoisedSection$1);
2809
2811
  function SectionRenderer$1({
2810
2812
  sectionData,
2811
2813
  sectionIndex,
@@ -2818,35 +2820,21 @@ function SectionRenderer$1({
2818
2820
 
2819
2821
  console.log('nishu222', sectionData);
2820
2822
  let sectionBg = {};
2821
- debugger;
2822
2823
  if (sectionData?.isV2Section) {
2823
- let currentObj = sectionData?.components?.find(component => component.hasOwnProperty('sectionsBgname')?.sectionBgData || {});
2824
- sectionBg = currentObj?.sectionsBgname?.sectionBgData || {};
2824
+ sectionBg = sectionData?.bgSection?.components?.[0]?.sectionBgData || {};
2825
+ }
2826
+ if (sectionData?.type === 'STICKY_CTA') {
2827
+ sectionData = {
2828
+ ...sectionData,
2829
+ isDefaultEditor: true
2830
+ };
2825
2831
  }
2826
-
2827
- // sectionBg ={
2828
- // id:"625fb1a879d4c9001261cewqsazxs21",
2829
- // value: "imagev",
2830
- // label: "",
2831
- // type: "image",
2832
- // bgType: "video",
2833
- // name: "Image",
2834
- // isYoutubeVideo: true,
2835
- // elementType: "div",
2836
- // isV2: true,
2837
- // metadata: {
2838
- // value: "https://www.youtube.com/watch?v=bjxTIcuzB6k&list=PLe6YKWr4VVM1x2LIpiqmVvG4QgIvoDEdO",
2839
- // }
2840
- // }
2841
- console.log('nishu222333', sectionData);
2842
2832
  return /*#__PURE__*/React__default["default"].createElement(React.Suspense, {
2843
2833
  fallback: null /*GIF maybe*/
2844
- }, /*#__PURE__*/React__default["default"].createElement(SectionWithBackground, {
2834
+ }, /*#__PURE__*/React__default["default"].createElement(SectionWithBackground$1, {
2845
2835
  sectionData: sectionData,
2846
2836
  extraProps: extraProps,
2847
- sectionIndex: sectionIndex
2848
- // isSkipV2Section={sectionData?.isV2Section}
2849
- ,
2837
+ sectionIndex: sectionIndex,
2850
2838
  isSkipV2Section: sectionData?.isV2Section
2851
2839
  // componentBg={sectionData?.componentBg || { type: "image", value: "https://fastly.picsum.photos/id/4/5000/3333.jpg?hmac=ghf06FdmgiD0-G4c9DdNM8RnBIN7BO0-ZGEw47khHP4" }}
2852
2840
  ,
@@ -3096,522 +3084,6 @@ function PageRenderer$1({
3096
3084
  currencySymbol
3097
3085
  }), [isMobile, isLandingPages, layout, baseURLs, hashToken, isPreview, isEdit, templateId, navList, isMasterTemplate, basePath, validations, isTutorWebsite, extraProps, hideLogin, _id, countryCode, currencySymbol]);
3098
3086
  const theme = React.useMemo(() => generateTheme(color, font, context.isMobile), [color, font, context.isMobile]);
3099
- // sections = [
3100
- // {
3101
- // landingPageType: 'course',
3102
- // isActive: true,
3103
- // isV2Section: false,
3104
- // _id: '69980d5bf8d29a00129ae9a6',
3105
- // type: 'COURSE_LANDING_PAGE',
3106
- // label: 'COURSE LANDING PAGE',
3107
- // metadata: {},
3108
- // components: [
3109
- // {
3110
- // _id: '69980d5bf8d29a00129ae9a7',
3111
- // isActive: true,
3112
- // isEditable: true,
3113
- // sectionBgData: null,
3114
- // sectionBgOption: [],
3115
- // type: 'landingPage',
3116
- // metadata: {
3117
- // effectivePrice: 10.5,
3118
- // offerPriceValidFor: null,
3119
- // courseName: 'SSC test sanity Backward testing',
3120
- // courseId: 269615,
3121
- // courseType: 0,
3122
- // enableHandlingFee: 1,
3123
- // isPhysicalDeliveryEnabled: 0,
3124
- // orgId: 437914,
3125
- // isInstallmentEnabledInDIY: 0,
3126
- // price: 100,
3127
- // discount: 90,
3128
- // ifFeeHandledByTutor: 0,
3129
- // endDate: 1771871399000,
3130
- // thumbnail:
3131
- // 'https://storage.googleapis.com/cp-lower-whitelabel-assets-as-sth1-gcs/preprod/single/tcgsce/e1881549-cc79-4fd7-a6cb-44be0b992bcb.jpg',
3132
- // description: 'SSC test sanity Backward testing',
3133
- // isOfferActive: true,
3134
- // courseOverviewData: {
3135
- // states: [
3136
- // { key: 'OTH', name: 'Others' },
3137
- // { key: 'AN', name: 'Andaman and Nicobar Islands' },
3138
- // { key: 'AP', name: 'Andhra Pradesh' },
3139
- // { key: 'AR', name: 'Arunachal Pradesh' },
3140
- // { key: 'AS', name: 'Assam' },
3141
- // { key: 'BR', name: 'Bihar' },
3142
- // { key: 'CG', name: 'Chandigarh' },
3143
- // { key: 'CH', name: 'Chhattisgarh' },
3144
- // { key: 'DN', name: 'Dadra and Nagar Haveli' },
3145
- // { key: 'DD', name: 'Daman and Diu' },
3146
- // { key: 'DL', name: 'Delhi' },
3147
- // { key: 'GA', name: 'Goa' },
3148
- // { key: 'GJ', name: 'Gujarat' },
3149
- // { key: 'HR', name: 'Haryana' },
3150
- // { key: 'HP', name: 'Himachal Pradesh' },
3151
- // { key: 'JK', name: 'Jammu and Kashmir' },
3152
- // { key: 'JH', name: 'Jharkhand' },
3153
- // { key: 'KA', name: 'Karnataka' },
3154
- // { key: 'KL', name: 'Kerala' },
3155
- // { key: 'LA', name: 'Ladakh' },
3156
- // { key: 'LD', name: 'Lakshadweep' },
3157
- // { key: 'MP', name: 'Madhya Pradesh' },
3158
- // { key: 'MH', name: 'Maharashtra' },
3159
- // { key: 'MN', name: 'Manipur' },
3160
- // { key: 'ML', name: 'Meghalaya' },
3161
- // { key: 'MZ', name: 'Mizoram' },
3162
- // { key: 'NL', name: 'Nagaland' },
3163
- // { key: 'OR', name: 'Odisha' },
3164
- // { key: 'PY', name: 'Puducherry' },
3165
- // { key: 'PB', name: 'Punjab' },
3166
- // { key: 'RJ', name: 'Rajasthan' },
3167
- // { key: 'SK', name: 'Sikkim' },
3168
- // { key: 'TN', name: 'Tamil Nadu' },
3169
- // { key: 'TS', name: 'Telangana' },
3170
- // { key: 'TR', name: 'Tripura' },
3171
- // { key: 'UP', name: 'Uttar Pradesh' },
3172
- // { key: 'UK', name: 'Uttarakhand' },
3173
- // { key: 'WB', name: 'West Bengal' }
3174
- // ],
3175
- // priorityOrderList: [],
3176
- // socialLinks: {
3177
- // links: [
3178
- // {
3179
- // type: 'WHATSAPP',
3180
- // iconUrl:
3181
- // 'https://ali-cdn-cp-assets-public.classplus.co/cams/store/icon/icon_whatsap.png',
3182
- // shareUrl:
3183
- // 'https://api.whatsapp.com/send?text=Hey! I’m learning with DIY-preprod and you can too. Here’s a course you might like: SSC test sanity Backward testing by PRE-prod/QA tutor\n https://tcgsce.tw-preprod.classplusapp.com/269615?utm_source=whatsapp\u0026utm_medium=social\u0026utm_campaign=web-course-share\u0026utm_referrer=null',
3184
- // shareText:
3185
- // 'Hey! I’m learning with DIY-preprod and you can too. Here’s a course you might like: SSC test sanity Backward testing by PRE-prod/QA tutor\n https://tcgsce.tw-preprod.classplusapp.com/269615?utm_source=whatsapp\u0026utm_medium=social\u0026utm_campaign=web-course-share\u0026utm_referrer=null',
3186
- // appName: 'WhatsApp'
3187
- // },
3188
- // {
3189
- // type: 'FACEBOOK',
3190
- // iconUrl:
3191
- // 'https://ali-cdn-cp-assets-public.classplus.co/cams/store/icon/icon_fb.png',
3192
- // shareUrl:
3193
- // 'https://www.facebook.com/sharer/sharer.php?u=https://tcgsce.tw-preprod.classplusapp.com/269615?utm_source=facebook\u0026utm_medium=social-fb\u0026utm_campaign=web-course-share\u0026utm_referrer=null',
3194
- // shareText:
3195
- // 'Hey! I’m learning with DIY-preprod and you can too. Here’s a course you might like: SSC test sanity Backward testing by PRE-prod/QA tutor\n https://tcgsce.tw-preprod.classplusapp.com/269615?utm_source=facebook\u0026utm_medium=social-fb\u0026utm_campaign=web-course-share\u0026utm_referrer=null',
3196
- // appName: 'Facebook'
3197
- // },
3198
- // {
3199
- // type: 'TELEGRAM',
3200
- // iconUrl:
3201
- // 'https://ali-cdn-cp-assets-public.classplus.co/cams/store/icon/icon_telegram.png',
3202
- // shareUrl:
3203
- // 'https://t.me/share/url?url=Hey! I’m learning with DIY-preprod and you can too. Here’s a course you might like: SSC test sanity Backward testing by PRE-prod/QA tutor\n https://tcgsce.tw-preprod.classplusapp.com/269615\u0026text=Hey! I’m learning with DIY-preprod and you can too. Here’s a course you might like: SSC test sanity Backward testing by PRE-prod/QA tutor\n https://tcgsce.tw-preprod.classplusapp.com/269615?utm_source=telegram\u0026utm_medium=social\u0026utm_campaign=web-course-share\u0026utm_referrer=null',
3204
- // shareText:
3205
- // 'Hey! I’m learning with DIY-preprod and you can too. Here’s a course you might like: SSC test sanity Backward testing by PRE-prod/QA tutor\n https://tcgsce.tw-preprod.classplusapp.com/269615?utm_source=telegram\u0026utm_medium=social\u0026utm_campaign=web-course-share\u0026utm_referrer=null',
3206
- // appName: 'Telegram'
3207
- // },
3208
- // {
3209
- // type: 'LINKEDIN',
3210
- // iconUrl:
3211
- // 'https://ali-cdn-cp-assets-public.classplus.co/cams/store/icon/icon_linkedIn.png',
3212
- // shareUrl:
3213
- // 'https://www.linkedin.com/shareArticle?mini=true\u0026url=Hey! I’m learning with DIY-preprod and you can too. Here’s a course you might like: SSC test sanity Backward testing by PRE-prod/QA tutor\n https://tcgsce.tw-preprod.classplusapp.com/269615?utm_source=linkedin\u0026utm_medium=social-link\u0026utm_campaign=web-course-share\u0026utm_referrer=null',
3214
- // shareText:
3215
- // 'Hey! I’m learning with DIY-preprod and you can too. Here’s a course you might like: SSC test sanity Backward testing by PRE-prod/QA tutor\n https://tcgsce.tw-preprod.classplusapp.com/269615?utm_source=linkedin\u0026utm_medium=social-link\u0026utm_campaign=web-course-share\u0026utm_referrer=null',
3216
- // appName: 'LinkedIn'
3217
- // }
3218
- // ],
3219
- // copyUrl:
3220
- // 'https://tcgsce.tw-preprod.classplusapp.com/269615?utm_referrer=null\u0026utm_source=copy-link\u0026utm_medium=social\u0026utm_campaign=web-course-share',
3221
- // moreAppsText:
3222
- // 'Hey! I’m learning with DIY-preprod and you can too. Here’s a course you might like: SSC test sanity Backward testing by PRE-prod/QA tutor\n https://tcgsce.tw-preprod.classplusapp.com/269615?utm_source=copy-link\u0026utm_medium=social\u0026utm_campaign=web-course-share\u0026utm_referrer=null',
3223
- // publishText:
3224
- // 'You have Successfully Published SSC test sanity Backward testing'
3225
- // },
3226
- // details: {
3227
- // name: 'SSC test sanity Backward testing',
3228
- // description: 'SSC test sanity Backward testing',
3229
- // isWebVideoAllowed: 0,
3230
- // duration: '1 YEAR(S)',
3231
- // shareStatus: '',
3232
- // imageUrl:
3233
- // 'https://storage.googleapis.com/cp-lower-whitelabel-assets-as-sth1-gcs/preprod/single/tcgsce/e1881549-cc79-4fd7-a6cb-44be0b992bcb.jpg',
3234
- // shareUrl: 'https://tcgsce.tw-preprod.classplusapp.com/269615',
3235
- // utmUrls: {},
3236
- // appLink: 'https://tcgsce.on-app.in/app/oc/269615/tcgsce',
3237
- // tncUrl:
3238
- // 'https://cdn-wl-assets.classplus.co/tnc/student_tnc.html',
3239
- // strip: null
3240
- // },
3241
- // installments: {
3242
- // isInstallmentEnabled: 0,
3243
- // showInstallmentInfo: 1
3244
- // },
3245
- // resources: { files: 2, videos: 1, tests: 6 },
3246
- // freeContent: null,
3247
- // freeContentCount: 0,
3248
- // resourseDataText: {
3249
- // heading: '9 Learning Material',
3250
- // subHeading: '2 Files, 1 Video lectures, 6 Tests',
3251
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/store-urp/content.svg',
3252
- // iconUrl:
3253
- // 'https://ali-cdn-cp-assets-public.classplus.co/cp-store-ui-revamp/courseOverview/play_button_png.png'
3254
- // },
3255
- // resourceCount: 9,
3256
- // courseTagList: [
3257
- // {
3258
- // text: 'TEST',
3259
- // color: '#3C4852',
3260
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cp-store-ui-revamp/courseOverview/tests-cov.svg',
3261
- // bgTriangleColor: '#F6F8FA'
3262
- // },
3263
- // {
3264
- // text: 'PDFs',
3265
- // color: '#3C4852',
3266
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cp-store-ui-revamp/courseOverview/pdfs-cov.svg',
3267
- // bgTriangleColor: '#F6F8FA'
3268
- // },
3269
- // {
3270
- // text: 'VIDEOS',
3271
- // color: '#3C4852',
3272
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cp-store-ui-revamp/courseOverview/videos-cov.svg',
3273
- // bgTriangleColor: '#F6F8FA'
3274
- // }
3275
- // ],
3276
- // categories: [],
3277
- // categoryList: [],
3278
- // likeText: '5',
3279
- // createdBy: null,
3280
- // videoRestrictions: null,
3281
- // priceDetails: {
3282
- // isPreview: 1,
3283
- // handlingCharges: 0.05,
3284
- // tncUrl:
3285
- // 'https://cdn-wl-assets.classplus.co/tnc/student_tnc.html',
3286
- // isPriceDetails: 1,
3287
- // coursePrice: 1,
3288
- // ifFeeHandledByTutor: 0,
3289
- // handlingFactor: 5.030984140321408,
3290
- // totalPayableAmount: 105,
3291
- // discountPercentage: 0,
3292
- // price: 1,
3293
- // discount: 0
3294
- // },
3295
- // priceDetailsForGuest: null,
3296
- // chatDetails: {
3297
- // id: 52422588,
3298
- // name: 'PRE-prod/QA tutor',
3299
- // imageUrl: null
3300
- // },
3301
- // paymentSummary: null,
3302
- // duration: {
3303
- // isLifetime: 0,
3304
- // expiryDateType: 3,
3305
- // expiryDateValue: 1,
3306
- // isExpiryFixed: 0,
3307
- // fixedExpiryDateTimestamp: null,
3308
- // fixedExpiryDate: null
3309
- // },
3310
- // metaData: {
3311
- // ownerExpiryDate: '-1',
3312
- // enableTax: 1,
3313
- // enableHandlingFee: 1,
3314
- // contentMarketAccessStatus: 2,
3315
- // isTbTest: 0,
3316
- // id: 269615,
3317
- // courseType: 0,
3318
- // canEditCourseType: 1,
3319
- // totalSubscriberCount: 5,
3320
- // isFeatured: null,
3321
- // isFreeCourse: 0,
3322
- // isShareable: 0,
3323
- // isPhysicalDeliveryEnabled: 0,
3324
- // isDeliveryFeeHandledByTutor: 0,
3325
- // tentativeDeliveryDays: null,
3326
- // isCertificateEnabled: 0,
3327
- // isPreview: 1,
3328
- // isPurchased: 0,
3329
- // isReselling: 0,
3330
- // isOwn: 1,
3331
- // isDeletable: 1,
3332
- // isPublished: 1,
3333
- // singlePaymentLink: '',
3334
- // canEditPermissions: 0,
3335
- // canEditCourse: 0,
3336
- // price: 1,
3337
- // discount: 0,
3338
- // orgId: '437914',
3339
- // isPmsEnabled: 1,
3340
- // pdfDownloadOnWeb: 0,
3341
- // pdfSecuirityOnWeb: 0,
3342
- // offlineMaterialFlag: 0,
3343
- // doubtBuddyCourseFlag: 0,
3344
- // isPaymentSupportEnabled: 0,
3345
- // isPaymentProEnabled: 0,
3346
- // ocsId: null,
3347
- // isDynamicBundlingEnabled: 0,
3348
- // isLiked: 0,
3349
- // isPromoApplicable: 0,
3350
- // showSignUp: 0,
3351
- // isDownloadable: 0,
3352
- // isDocDownloadable: 0,
3353
- // tncUrl:
3354
- // 'https://cdn-wl-assets.classplus.co/tnc/student_tnc.html',
3355
- // bundleData: {
3356
- // bundleId: null,
3357
- // bundles: [],
3358
- // isBundlingEnabled: 1,
3359
- // isBooksAdded: 0,
3360
- // isTestSeriesAdded: 0,
3361
- // bundledReceipt: '',
3362
- // bookDeliveryFees: 0,
3363
- // linkedCoursePrice: 0,
3364
- // whatsAppLink: 'https://classplus.typeform.com/to/ykzMVJ4Z',
3365
- // recommendedCourses: []
3366
- // },
3367
- // isComboActive: 0,
3368
- // toShowShareObjects: 1
3369
- // },
3370
- // likes: {
3371
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cams/cards-icon/red_icon_3x.png',
3372
- // value: '5'
3373
- // },
3374
- // liveCard: null,
3375
- // zoomLiveCard: null,
3376
- // zoomLiveCardV2: null,
3377
- // courseDuration: {
3378
- // heading: 'Course Duration',
3379
- // text: 'Valid for 1 year',
3380
- // subText: 'Course available for 1 year after purchase',
3381
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cams/sellOnWhatsapp/ic_validity.svg'
3382
- // },
3383
- // singlePaymentStudentShareUrl:
3384
- // 'https://tcgsce.tw-preprod.classplusapp.com/269615',
3385
- // courseCreatorDetails: {
3386
- // heading: 'About Course Creator',
3387
- // imageUrl: '',
3388
- // tutorName: 'PRE-prod/QA tutor',
3389
- // orgName: 'DIY-preprod',
3390
- // experience: 0,
3391
- // qualification: '',
3392
- // specialisation: 'jkfhgg8',
3393
- // courses: {
3394
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cams/sellOnWhatsapp/ic_courses.svg',
3395
- // text: '1031 Courses',
3396
- // value: 1031
3397
- // },
3398
- // tutorDescription:
3399
- // 'cucj fhjevwihfvhjwrebvhjbdsjhvcbjhdfsbjkvcbwdjkbcjewbvjkbewjkvbjkewbv dsdsddsdsdjhjgjh'
3400
- // },
3401
- // multipleValidity: null,
3402
- // multipleValiditySelected: 0,
3403
- // orgDetails: {
3404
- // id: '437914',
3405
- // code: 'tcgsce',
3406
- // name: 'DIY-preprod',
3407
- // isInternational: 0,
3408
- // refundPolicyUrl: null
3409
- // },
3410
- // isGooglePlayEnabled: 0,
3411
- // purchaseViaWhatsapp: 0,
3412
- // purchaseViaWhatsappV2: 0,
3413
- // durationText: {
3414
- // heading: '1 Year Validity',
3415
- // subHeading: 'You will get this course for 1 full Year(s)',
3416
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/store-urp/validity.svg',
3417
- // iconUrl:
3418
- // 'https://ali-cdn-cp-assets-public.classplus.co/cp-store-ui-revamp/courseOverview/time_png.png'
3419
- // },
3420
- // whatsIncluded: [],
3421
- // upcomingLiveClasses: null,
3422
- // allAppDownloadLiveCard: null,
3423
- // videoDisclaimer: null
3424
- // }
3425
- // },
3426
- // components: []
3427
- // }
3428
- // ],
3429
- // order: 1,
3430
- // sectionId: '6301efb45f80177acb4e5720'
3431
- // },
3432
- // {
3433
- // landingPageType: 'template',
3434
- // isActive: true,
3435
- // isV2Section: true,
3436
- // _id: '69980d7ff8d29a00129ae9aa',
3437
- // type: 'INFO',
3438
- // components: [
3439
- // {
3440
- // _id: '69957138231456ffc3cf274c',
3441
- // metadata: {},
3442
- // sectionsBgname: {
3443
- // _id: '6995713d49059b26de4dba0e',
3444
- // isActive: true,
3445
- // isEditable: true,
3446
- // sectionBgData: {
3447
- // id: '6995714b9911177086c6ed58',
3448
- // value: '',
3449
- // label: '',
3450
- // type: 'text',
3451
- // name: 'Color',
3452
- // bgType: 'color',
3453
- // elementType: 'div',
3454
- // isYoutubeVideo: false,
3455
- // metadata: { value: 'pink' }
3456
- // },
3457
- // sectionBgOption: [
3458
- // {
3459
- // id: '699571422bfd97eb41067be7',
3460
- // value: 'imagev',
3461
- // label: '',
3462
- // bgType: 'image',
3463
- // type: 'image',
3464
- // name: 'Image',
3465
- // isYoutubeVideo: false,
3466
- // elementType: 'div',
3467
- // metadata: {
3468
- // value:
3469
- // 'https://fastly.picsum.photos/id/4/5000/3333.jpg?hmac=ghf06FdmgiD0-G4c9DdNM8RnBIN7BO0-ZGEw47khHP4'
3470
- // }
3471
- // },
3472
- // {
3473
- // id: '699571461f66062042534e24',
3474
- // value: 'colorv',
3475
- // label: '',
3476
- // type: 'video',
3477
- // bgType: 'video',
3478
- // isYoutubeVideo: true,
3479
- // name: 'Video',
3480
- // elementType: 'div',
3481
- // metadata: {
3482
- // value: 'https://www.youtube.com/watch?v=rET3lp6kk2E'
3483
- // }
3484
- // },
3485
- // {
3486
- // id: '6995714b9911177086c6ed58',
3487
- // value: '',
3488
- // label: '',
3489
- // type: 'text',
3490
- // name: 'Color',
3491
- // bgType: 'color',
3492
- // elementType: 'div',
3493
- // isYoutubeVideo: false,
3494
- // metadata: { value: 'pink' }
3495
- // },
3496
- // {
3497
- // id: '6995714ff18384ed30435509',
3498
- // value: '',
3499
- // label: '',
3500
- // type: 'gradient',
3501
- // name: 'Theme',
3502
- // bgType: 'gradient',
3503
- // elementType: 'div',
3504
- // isYoutubeVideo: false,
3505
- // metadata: {
3506
- // value: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)'
3507
- // }
3508
- // }
3509
- // ],
3510
- // type: 'sectionbg',
3511
- // name: 'sectionsBgname',
3512
- // label: 'background',
3513
- // elementType: 'div',
3514
- // components: []
3515
- // }
3516
- // },
3517
- // {
3518
- // _id: '6995715b9bba9bc46615c1e4',
3519
- // metadata: { order: 1 },
3520
- // cardHeading: {
3521
- // _id: '6995715f2a9947226b1907f9',
3522
- // isActive: true,
3523
- // isEditable: true,
3524
- // sectionBgData: null,
3525
- // sectionBgOption: [],
3526
- // type: 'text',
3527
- // name: 'cardHeading',
3528
- // elementType: 'div',
3529
- // label: 'Heading',
3530
- // metadata: { value: 'OUR COURSES' },
3531
- // components: []
3532
- // },
3533
- // title: {
3534
- // _id: '699571642b8fffd9ae0847b6',
3535
- // isActive: true,
3536
- // isEditable: true,
3537
- // sectionBgData: null,
3538
- // sectionBgOption: [],
3539
- // type: 'text',
3540
- // name: 'title',
3541
- // elementType: 'h2',
3542
- // label: 'Title',
3543
- // metadata: {
3544
- // value: 'Cohesive approach delivers comprehensive results'
3545
- // },
3546
- // components: []
3547
- // },
3548
- // contentList: {
3549
- // _id: '69957168a02d7605b87aae07',
3550
- // isActive: true,
3551
- // isEditable: true,
3552
- // sectionBgData: null,
3553
- // sectionBgOption: [],
3554
- // type: 'carousel',
3555
- // name: 'contentList',
3556
- // elementType: '',
3557
- // label: 'Content List',
3558
- // components: [
3559
- // {
3560
- // _id: '6995716ca258103860327c34',
3561
- // metadata: { order: 1 },
3562
- // contentHeading: {
3563
- // _id: '699571705718b5a51caf4c80',
3564
- // isActive: true,
3565
- // isEditable: true,
3566
- // sectionBgData: null,
3567
- // sectionBgOption: [],
3568
- // type: 'text',
3569
- // name: 'contentHeading',
3570
- // elementType: 'h3',
3571
- // label: 'Subheading',
3572
- // metadata: { value: 'Diploma in vocal music' },
3573
- // components: []
3574
- // },
3575
- // contentPara: {
3576
- // _id: '69957174083cdd8b733c312c',
3577
- // isActive: true,
3578
- // isEditable: true,
3579
- // sectionBgData: null,
3580
- // sectionBgOption: [],
3581
- // type: 'text',
3582
- // name: 'contentPara',
3583
- // elementType: 'p',
3584
- // label: 'Description',
3585
- // metadata: {
3586
- // value:
3587
- // 'Produce musical sounds with the voice and augment regular speech by using the perfect rhythm, vocal techniques and sustained tonality.'
3588
- // },
3589
- // components: []
3590
- // },
3591
- // icon: {
3592
- // _id: '6995717d57fb5824858c1f67',
3593
- // isActive: true,
3594
- // isEditable: true,
3595
- // sectionBgData: null,
3596
- // sectionBgOption: [],
3597
- // type: 'icon',
3598
- // name: 'icon',
3599
- // elementType: 'Icon',
3600
- // label: 'Icon',
3601
- // metadata: { value: 'Vocal' },
3602
- // components: []
3603
- // }
3604
- // }
3605
- // ]
3606
- // }
3607
- // }
3608
- // ],
3609
- // label: 'INFO',
3610
- // metadata: {},
3611
- // order: 2
3612
- // }
3613
- // ];
3614
-
3615
3087
  const Wrapper = SectionWrapper || React.Fragment;
3616
3088
  return /*#__PURE__*/React__default["default"].createElement(ThemeProvider, {
3617
3089
  theme: theme
@@ -4106,7 +3578,7 @@ function BannerCarouselRight({
4106
3578
  })))));
4107
3579
  }
4108
3580
 
4109
- var index$q = /*#__PURE__*/Object.freeze({
3581
+ var index$t = /*#__PURE__*/Object.freeze({
4110
3582
  __proto__: null,
4111
3583
  'default': BannerCarouselRight
4112
3584
  });
@@ -4282,7 +3754,7 @@ function List({
4282
3754
  containerWidth,
4283
3755
  isMobile
4284
3756
  });
4285
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
3757
+ const [nodeData] = sectionData.components;
4286
3758
  const getNumber = val => {
4287
3759
  return val.toString().length == 1 ? '0' + val : val;
4288
3760
  };
@@ -4330,7 +3802,7 @@ function List({
4330
3802
  }))));
4331
3803
  }
4332
3804
 
4333
- var index$p = /*#__PURE__*/Object.freeze({
3805
+ var index$s = /*#__PURE__*/Object.freeze({
4334
3806
  __proto__: null,
4335
3807
  'default': List
4336
3808
  });
@@ -4638,7 +4110,7 @@ function BannerCarouselCenter({
4638
4110
  }))));
4639
4111
  }
4640
4112
 
4641
- var index$o = /*#__PURE__*/Object.freeze({
4113
+ var index$r = /*#__PURE__*/Object.freeze({
4642
4114
  __proto__: null,
4643
4115
  'default': BannerCarouselCenter
4644
4116
  });
@@ -4933,7 +4405,7 @@ function BannerCarouselCenterv2({
4933
4405
  }))));
4934
4406
  }
4935
4407
 
4936
- var index$n = /*#__PURE__*/Object.freeze({
4408
+ var index$q = /*#__PURE__*/Object.freeze({
4937
4409
  __proto__: null,
4938
4410
  'default': BannerCarouselCenterv2
4939
4411
  });
@@ -5174,7 +4646,7 @@ function BannerCarouselLeft({
5174
4646
  })))));
5175
4647
  }
5176
4648
 
5177
- var index$m = /*#__PURE__*/Object.freeze({
4649
+ var index$p = /*#__PURE__*/Object.freeze({
5178
4650
  __proto__: null,
5179
4651
  'default': BannerCarouselLeft
5180
4652
  });
@@ -5455,7 +4927,7 @@ function SubscribeToNewsletter({
5455
4927
  isLandingPages,
5456
4928
  extraProps
5457
4929
  } = React.useContext(PageContext);
5458
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
4930
+ const [nodeData] = sectionData.components;
5459
4931
  const classes = useSectionStyles$4({
5460
4932
  containerWidth,
5461
4933
  isMobile
@@ -5570,7 +5042,7 @@ function SubscribeToNewsletter({
5570
5042
  })))))));
5571
5043
  }
5572
5044
 
5573
- var index$l = /*#__PURE__*/Object.freeze({
5045
+ var index$o = /*#__PURE__*/Object.freeze({
5574
5046
  __proto__: null,
5575
5047
  'default': SubscribeToNewsletter
5576
5048
  });
@@ -5858,7 +5330,7 @@ function Testimonials({
5858
5330
  }));
5859
5331
  }
5860
5332
 
5861
- var index$k = /*#__PURE__*/Object.freeze({
5333
+ var index$n = /*#__PURE__*/Object.freeze({
5862
5334
  __proto__: null,
5863
5335
  'default': Testimonials
5864
5336
  });
@@ -6231,7 +5703,7 @@ function VideoTestimonial({
6231
5703
  containerWidth,
6232
5704
  isMobile
6233
5705
  });
6234
- const [videoData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
5706
+ const [videoData] = sectionData.components;
6235
5707
  const Wrapper = videoData.videoCarousel.components.length > 1 ? Carousel : React.Fragment;
6236
5708
  return /*#__PURE__*/React__default["default"].createElement("div", {
6237
5709
  className: classes.videoTestimonialSuperContainer
@@ -6262,7 +5734,7 @@ function VideoTestimonial({
6262
5734
  }))))));
6263
5735
  }
6264
5736
 
6265
- var index$j = /*#__PURE__*/Object.freeze({
5737
+ var index$m = /*#__PURE__*/Object.freeze({
6266
5738
  __proto__: null,
6267
5739
  'default': VideoTestimonial
6268
5740
  });
@@ -6451,7 +5923,7 @@ function Video({
6451
5923
  containerWidth
6452
5924
  }
6453
5925
  } = React.useContext(PageContext);
6454
- const [videoData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
5926
+ const [videoData] = sectionData.components;
6455
5927
  const cardsCount = videoData?.videoCarousel?.components?.length;
6456
5928
  const slidesToShow = isMobile ? 1 : 2;
6457
5929
  const classes = useVideoStyles({
@@ -6498,7 +5970,7 @@ function Video({
6498
5970
  }, carouselContent))));
6499
5971
  }
6500
5972
 
6501
- var index$i = /*#__PURE__*/Object.freeze({
5973
+ var index$l = /*#__PURE__*/Object.freeze({
6502
5974
  __proto__: null,
6503
5975
  'default': Video
6504
5976
  });
@@ -6658,7 +6130,7 @@ function Info({
6658
6130
  } = React.useContext(PageContext);
6659
6131
  const theme = useTheme();
6660
6132
  const slidesToShow = isMobile ? 1 : 4;
6661
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
6133
+ const [nodeData] = sectionData.components;
6662
6134
  const carouselList = nodeData?.contentList?.components;
6663
6135
  const cardsCount = carouselList?.length;
6664
6136
  const classes = useSectionStyles$3({
@@ -6734,7 +6206,7 @@ function Info({
6734
6206
  }, carouselContent))));
6735
6207
  }
6736
6208
 
6737
- var index$h = /*#__PURE__*/Object.freeze({
6209
+ var index$k = /*#__PURE__*/Object.freeze({
6738
6210
  __proto__: null,
6739
6211
  'default': Info
6740
6212
  });
@@ -6817,7 +6289,7 @@ const TextSection = ({
6817
6289
  containerWidth,
6818
6290
  isMobile
6819
6291
  });
6820
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
6292
+ const [nodeData] = sectionData.components;
6821
6293
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("section", {
6822
6294
  className: classes.section
6823
6295
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -6853,7 +6325,7 @@ const TextSection = ({
6853
6325
  })))));
6854
6326
  };
6855
6327
 
6856
- var index$g = /*#__PURE__*/Object.freeze({
6328
+ var index$j = /*#__PURE__*/Object.freeze({
6857
6329
  __proto__: null,
6858
6330
  'default': TextSection
6859
6331
  });
@@ -6994,7 +6466,7 @@ function PhotoGallery({
6994
6466
  containerWidth
6995
6467
  }
6996
6468
  } = React.useContext(PageContext);
6997
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
6469
+ const [nodeData] = sectionData.components;
6998
6470
  const carouselList = nodeData?.cardCarousel?.components;
6999
6471
  const cardsCount = carouselList?.length;
7000
6472
  const slidesToShow = isMobile ? 1 : 2;
@@ -7076,7 +6548,7 @@ function PhotoGallery({
7076
6548
  }, carouselContent))));
7077
6549
  }
7078
6550
 
7079
- var index$f = /*#__PURE__*/Object.freeze({
6551
+ var index$i = /*#__PURE__*/Object.freeze({
7080
6552
  __proto__: null,
7081
6553
  'default': PhotoGallery
7082
6554
  });
@@ -7193,7 +6665,7 @@ const FAQListing = ({
7193
6665
  containerWidth,
7194
6666
  isMobile
7195
6667
  });
7196
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
6668
+ const [nodeData] = sectionData.components;
7197
6669
  return /*#__PURE__*/React__default["default"].createElement("section", {
7198
6670
  className: classes.section
7199
6671
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -7259,7 +6731,7 @@ const Accordion = ({
7259
6731
  })));
7260
6732
  };
7261
6733
 
7262
- var index$e = /*#__PURE__*/Object.freeze({
6734
+ var index$h = /*#__PURE__*/Object.freeze({
7263
6735
  __proto__: null,
7264
6736
  'default': FAQListing
7265
6737
  });
@@ -7371,7 +6843,7 @@ const TextGrid = ({
7371
6843
  containerWidth
7372
6844
  }
7373
6845
  } = React.useContext(PageContext);
7374
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
6846
+ const [nodeData] = sectionData.components;
7375
6847
  const cardsCount = nodeData?.contentList?.components?.length;
7376
6848
  const slidesToShow = isMobile ? 1 : 2;
7377
6849
  const classes = useTextGridStyles({
@@ -7430,7 +6902,7 @@ const TextGrid = ({
7430
6902
  }, carouselContent))));
7431
6903
  };
7432
6904
 
7433
- var index$d = /*#__PURE__*/Object.freeze({
6905
+ var index$g = /*#__PURE__*/Object.freeze({
7434
6906
  __proto__: null,
7435
6907
  'default': TextGrid
7436
6908
  });
@@ -8714,7 +8186,7 @@ function SimpleCardsContainer({
8714
8186
  }, children);
8715
8187
  }
8716
8188
 
8717
- var index$c = /*#__PURE__*/Object.freeze({
8189
+ var index$f = /*#__PURE__*/Object.freeze({
8718
8190
  __proto__: null,
8719
8191
  'default': courses
8720
8192
  });
@@ -8980,7 +8452,7 @@ function TeamCard({
8980
8452
  containerWidth
8981
8453
  }
8982
8454
  } = React.useContext(PageContext);
8983
- const [teamData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
8455
+ const [teamData] = sectionData.components;
8984
8456
  const cardsCount = teamData?.teamCarousel?.components?.length;
8985
8457
  const slidesToShow = isMobile ? 1 : 4;
8986
8458
  const classes = useTeamStyles({
@@ -9032,7 +8504,7 @@ function TeamCard({
9032
8504
  }, " ", getCarouselContent())));
9033
8505
  }
9034
8506
 
9035
- var index$b = /*#__PURE__*/Object.freeze({
8507
+ var index$e = /*#__PURE__*/Object.freeze({
9036
8508
  __proto__: null,
9037
8509
  'default': TeamCard
9038
8510
  });
@@ -9219,7 +8691,7 @@ function FormEnquiry({
9219
8691
  containerWidth,
9220
8692
  isMobile
9221
8693
  });
9222
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
8694
+ const [nodeData] = sectionData.components;
9223
8695
  const [isSubmitted, setIsSubmitted] = React.useState(false);
9224
8696
  const theme = useTheme();
9225
8697
  let [btnDisabled, setBtnDisabled] = React.useState(false);
@@ -9453,7 +8925,7 @@ function FormEnquiry({
9453
8925
  })))))));
9454
8926
  }
9455
8927
 
9456
- var index$a = /*#__PURE__*/Object.freeze({
8928
+ var index$d = /*#__PURE__*/Object.freeze({
9457
8929
  __proto__: null,
9458
8930
  'default': FormEnquiry
9459
8931
  });
@@ -9676,7 +9148,7 @@ function Contact({
9676
9148
  } = React.useContext(PageContext);
9677
9149
  let [btnDisabled, setBtnDisabled] = React.useState(false);
9678
9150
  const [isSubmitted, setIsSubmitted] = React.useState(false);
9679
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
9151
+ const [nodeData] = sectionData.components;
9680
9152
  const classes = useSectionStyles({
9681
9153
  containerWidth,
9682
9154
  isMobile
@@ -9875,7 +9347,7 @@ function Contact({
9875
9347
  })))))));
9876
9348
  }
9877
9349
 
9878
- var index$9 = /*#__PURE__*/Object.freeze({
9350
+ var index$c = /*#__PURE__*/Object.freeze({
9879
9351
  __proto__: null,
9880
9352
  'default': Contact
9881
9353
  });
@@ -10352,7 +9824,7 @@ function CoursePromotionPage$1({
10352
9824
  }))));
10353
9825
  }
10354
9826
 
10355
- var index$8 = /*#__PURE__*/Object.freeze({
9827
+ var index$b = /*#__PURE__*/Object.freeze({
10356
9828
  __proto__: null,
10357
9829
  'default': CoursePromotionPage$1
10358
9830
  });
@@ -10939,7 +10411,7 @@ function CoursePromotionPage({
10939
10411
  }))));
10940
10412
  }
10941
10413
 
10942
- var index$7 = /*#__PURE__*/Object.freeze({
10414
+ var index$a = /*#__PURE__*/Object.freeze({
10943
10415
  __proto__: null,
10944
10416
  'default': CoursePromotionPage
10945
10417
  });
@@ -11302,7 +10774,7 @@ const FormPage = ({
11302
10774
  })))));
11303
10775
  };
11304
10776
 
11305
- var index$6 = /*#__PURE__*/Object.freeze({
10777
+ var index$9 = /*#__PURE__*/Object.freeze({
11306
10778
  __proto__: null,
11307
10779
  'default': FormPage
11308
10780
  });
@@ -11402,7 +10874,7 @@ function Tiles({
11402
10874
  const classes = useTilesStyles({
11403
10875
  isMobile
11404
10876
  });
11405
- const nodeData = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
10877
+ const nodeData = sectionData.components;
11406
10878
  const tilesList = nodeData[0]?.tilesList.components;
11407
10879
  const handleClick = value => {
11408
10880
  if (!isEdit && value) {
@@ -11450,7 +10922,7 @@ function Tiles({
11450
10922
  }, TileDiv)));
11451
10923
  }
11452
10924
 
11453
- var index$5 = /*#__PURE__*/Object.freeze({
10925
+ var index$8 = /*#__PURE__*/Object.freeze({
11454
10926
  __proto__: null,
11455
10927
  'default': Tiles
11456
10928
  });
@@ -11923,7 +11395,7 @@ function EmailDripMarket({
11923
11395
  })));
11924
11396
  }
11925
11397
 
11926
- var index$4 = /*#__PURE__*/Object.freeze({
11398
+ var index$7 = /*#__PURE__*/Object.freeze({
11927
11399
  __proto__: null,
11928
11400
  'default': EmailDripMarket
11929
11401
  });
@@ -12149,7 +11621,7 @@ function ABOUT_INSTITUTE({
12149
11621
  containerWidth,
12150
11622
  isMobile
12151
11623
  });
12152
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
11624
+ const [nodeData] = sectionData.components;
12153
11625
  const [highlightNodeData] = nodeData?.highlight?.components;
12154
11626
  const theme = useTheme();
12155
11627
  const ImageJSX = () => {
@@ -12291,205 +11763,26 @@ function ABOUT_INSTITUTE({
12291
11763
  }, /*#__PURE__*/React__default["default"].createElement(ImageJSX, null), /*#__PURE__*/React__default["default"].createElement(ContentJSX, null)), /*#__PURE__*/React__default["default"].createElement(HighlightJSX, null)));
12292
11764
  }
12293
11765
 
12294
- var index$3 = /*#__PURE__*/Object.freeze({
11766
+ var index$6 = /*#__PURE__*/Object.freeze({
12295
11767
  __proto__: null,
12296
11768
  'default': ABOUT_INSTITUTE
12297
11769
  });
12298
11770
 
12299
- // import TIMER_AND_CALL from '../../sections/timerAndCall';
12300
- const TYPE_TO_COMPONENT_MAP = {
12301
- BANNER_CAROUSEL_RIGHT: BannerCarouselRight,
12302
- GRID_CARD: List,
12303
- BANNER_CAROUSEL_CENTER: BannerCarouselCenter,
12304
- BANNER_CAROUSEL_CENTER_V2: BannerCarouselCenterv2,
12305
- BANNER_CAROUSEL_LEFT: BannerCarouselLeft,
12306
- FORM_SUBSCRIBE: SubscribeToNewsletter,
12307
- TEXT_TESTIMONIAL: Testimonials,
12308
- VIDEO_TESTIMONIAL: VideoTestimonial,
12309
- VIDEO: Video,
12310
- INFO: Info,
12311
- TEXT: TextSection,
12312
- IMAGE_GALLERY: PhotoGallery,
12313
- FAQ_LISTING: FAQListing,
12314
- TEXT_GRID: TextGrid,
12315
- COURSE_CAROUSEL: courses,
12316
- TEAM_CARD: TeamCard,
12317
- CONTACT: FormEnquiry,
12318
- FORM_ENQUIRY: Contact,
12319
- WEBINAR_LANDING_PAGE: CoursePromotionPage$1,
12320
- COURSE_LANDING_PAGE: CoursePromotionPage,
12321
- FORM_LANDING_PAGE: FormPage,
12322
- TILES_SECTION: Tiles,
12323
- EMAIL_DRIP_MARKET: EmailDripMarket,
12324
- ABOUT_INSTITUTE
12325
- };
12326
- const getCompToRender = type => TYPE_TO_COMPONENT_MAP[type] || (() => null);
12327
- const MemoisedSection = /*#__PURE__*/React.memo(({
12328
- sectionData,
12329
- extraProps,
12330
- isCustomWebsite,
12331
- sectionIndex
12332
- }) => {
12333
- console.log('extraProps in section data', extraProps);
12334
- const SectionComp = getCompToRender(sectionData.type);
12335
- return /*#__PURE__*/React__default["default"].createElement(SectionComp, {
12336
- sectionData: sectionData,
12337
- extraProps: extraProps,
12338
- isCustomWebsite: isCustomWebsite,
12339
- sectionIndex: sectionIndex
12340
- });
12341
- });
12342
- function SectionRenderer({
12343
- sectionData,
12344
- extraProps,
12345
- isCustomWebsite,
12346
- sectionIndex
12347
- }) {
12348
- return /*#__PURE__*/React__default["default"].createElement(MemoisedSection, {
12349
- sectionData: sectionData,
12350
- extraProps: extraProps,
12351
- isCustomWebsite: isCustomWebsite,
12352
- sectionIndex: sectionIndex
12353
- });
12354
- }
12355
-
12356
- function PageRenderer({
12357
- pageData: {
12358
- metadata: {
12359
- theme: {
12360
- color = defaultTheme.color,
12361
- font = defaultTheme.font
12362
- } = defaultTheme,
12363
- layout = defaultLayout
12364
- } = defaultMetadata,
12365
- sections,
12366
- header,
12367
- footer,
12368
- validations = {},
12369
- _id,
12370
- isLandingPage = false,
12371
- isCustomWebsite = false
12372
- },
12373
- isMobile = false,
12374
- isLandingPages = false,
12375
- baseURLs = {},
12376
- hashToken,
12377
- SectionWrapper,
12378
- isMasterTemplate,
12379
- basePath,
12380
- countryCode,
12381
- currencySymbol,
12382
- isPreview,
12383
- isEdit,
12384
- sectionPlaceholder,
12385
- templateId,
12386
- isTutorWebsite = false,
12387
- extraProps,
12388
- hideLogin
12389
- }) {
12390
- const navList = header?.navs;
12391
- const context = React.useMemo(() => ({
12392
- isMobile,
12393
- isLandingPages,
12394
- layout,
12395
- baseURLs,
12396
- hashToken,
12397
- isMasterTemplate,
12398
- basePath,
12399
- isPreview,
12400
- isEdit,
12401
- templateId,
12402
- navList,
12403
- validations,
12404
- isTutorWebsite,
12405
- extraProps,
12406
- hideLogin,
12407
- isCustomWebsite,
12408
- _id,
12409
- countryCode,
12410
- currencySymbol
12411
- }), [isMobile, isLandingPages, layout, baseURLs, hashToken, isPreview, isEdit, templateId, navList, isMasterTemplate, basePath, validations, isTutorWebsite, extraProps, hideLogin, _id, countryCode, currencySymbol]);
12412
- const theme = React.useMemo(() => generateTheme(color, font, context.isMobile), [color, font, context.isMobile]);
12413
- const Wrapper = SectionWrapper || React.Fragment;
12414
- return /*#__PURE__*/React__default["default"].createElement(ThemeProvider, {
12415
- theme: theme
12416
- }, /*#__PURE__*/React__default["default"].createElement(PageContext.Provider, {
12417
- value: context
12418
- }, /*#__PURE__*/React__default["default"].createElement(FontSeeder, {
12419
- fontFamily: font
12420
- }), !!header && /*#__PURE__*/React__default["default"].createElement(Wrapper, !!SectionWrapper && {
12421
- sectionData: header,
12422
- isHeader: true
12423
- }, /*#__PURE__*/React__default["default"].createElement(Header, {
12424
- data: header,
12425
- isLandingPage: isLandingPage,
12426
- extraProps: extraProps
12427
- })), sections?.length ? sections?.map((sectionData, sectionIndex) => /*#__PURE__*/React__default["default"].createElement(Wrapper, _extends({}, !!SectionWrapper && {
12428
- sectionData,
12429
- sectionIndex
12430
- }, {
12431
- key: sectionData.type + (sectionData._id || sectionIndex)
12432
- }), /*#__PURE__*/React__default["default"].createElement(SectionRenderer, {
12433
- sectionData: sectionData,
12434
- extraProps: extraProps,
12435
- isCustomWebsite: isCustomWebsite,
12436
- sectionIndex: sectionIndex
12437
- }))) : sectionPlaceholder, !!footer && /*#__PURE__*/React__default["default"].createElement(Wrapper, !!SectionWrapper && {
12438
- sectionData: footer,
12439
- isFooter: true
12440
- }, /*#__PURE__*/React__default["default"].createElement(Footer, {
12441
- data: footer
12442
- }))));
12443
- }
12444
-
12445
- const componentParser = compObj => {
12446
- if (compObj.type === 'componentCollection') {
12447
- const component = {
12448
- _id: compObj._id,
12449
- metadata: compObj.metadata || {}
12450
- };
12451
- compObj.components.forEach(comp => {
12452
- component[comp.name] = componentParser(comp);
12453
- });
12454
- return component;
12455
- }
12456
- if (Array.isArray(compObj.components)) {
12457
- compObj.components = compObj.components.map(componentParser);
12458
- }
12459
- return compObj;
12460
- };
12461
- const inverseComponentParser = compObj => {
12462
- if (!compObj.type) {
12463
- const {
12464
- metadata,
12465
- _id,
12466
- ...existingComponent
12467
- } = compObj;
12468
- const newComponent = {
12469
- type: 'componentCollection',
12470
- name: '',
12471
- elementType: '',
12472
- label: '',
12473
- metadata: metadata || {},
12474
- components: [],
12475
- _id
12476
- };
12477
- newComponent.components = Object.values(existingComponent).map(inverseComponentParser);
12478
- return newComponent;
12479
- } else {
12480
- if (compObj.components) {
12481
- compObj.components = compObj.components.map(inverseComponentParser);
12482
- }
12483
- return compObj;
12484
- }
12485
- };
12486
-
12487
- const useVideoWorkshopPromotionStyles = createUseStyles(theme => {
11771
+ const useCounterSectionStyles = createUseStyles(theme => {
12488
11772
  return {
12489
11773
  section: {
12490
11774
  width: '100%',
12491
- background: 'linear-gradient(135deg, #6b2d5c 0%, #4a3f6b 40%, #2d5a6b 70%, #3d6b5a 100%)',
12492
- minHeight: '100%',
11775
+ borderRadius: theme.shape?.borderRadius?.regular || '12px',
11776
+ overflow: 'hidden',
11777
+ backgroundImage: ({
11778
+ backgroundImage
11779
+ } = {}) => backgroundImage ? `url("${backgroundImage}")` : 'none',
11780
+ backgroundColor: ({
11781
+ backgroundColor
11782
+ } = {}) => backgroundColor || '#f8f8fa',
11783
+ backgroundSize: 'cover',
11784
+ backgroundPosition: 'center',
11785
+ backgroundRepeat: 'no-repeat',
12493
11786
  '&, & *, & *:before, & *:after': {
12494
11787
  fontFamily: theme?.typography?.fontFamily,
12495
11788
  boxSizing: 'border-box'
@@ -12497,9 +11790,1046 @@ const useVideoWorkshopPromotionStyles = createUseStyles(theme => {
12497
11790
  },
12498
11791
  container: {
12499
11792
  width: '100%',
12500
- maxWidth: '1440px',
12501
- margin: '0 auto',
12502
- padding: ({
11793
+ maxWidth: ({
11794
+ containerWidth
11795
+ } = {}) => containerWidth || '1440px',
11796
+ margin: '0 auto',
11797
+ padding: ({
11798
+ isMobile
11799
+ } = {}) => isMobile ? `${theme.spacing.padding.regular}px ${theme.spacing.padding.tiny}px` : `${theme.spacing.padding.small}px ${theme.spacing.padding.medium}px`
11800
+ },
11801
+ grid: {
11802
+ display: 'grid',
11803
+ gridTemplateColumns: 'repeat(4, 1fr)',
11804
+ gap: ({
11805
+ isMobile
11806
+ } = {}) => isMobile ? '24px' : '32px',
11807
+ alignItems: 'stretch'
11808
+ },
11809
+ counterItem: {
11810
+ display: 'flex',
11811
+ flexDirection: 'column',
11812
+ alignItems: 'center',
11813
+ justifyContent: 'center',
11814
+ textAlign: 'center'
11815
+ },
11816
+ value: {
11817
+ margin: 0,
11818
+ marginBottom: '8px',
11819
+ fontSize: '64px',
11820
+ fontWeight: theme.typography?.fontWeight?.bold,
11821
+ lineHeight: 1.1,
11822
+ color: 'rgba(247, 37, 133, 1)' ,
11823
+ wordBreak: 'break-word'
11824
+ },
11825
+ description: {
11826
+ margin: 0,
11827
+ fontSize: '20px',
11828
+ lineHeight: 1.4,
11829
+ fontWeight: '700',
11830
+ color: 'rgba(51, 51, 51, 1)' ,
11831
+ wordBreak: 'break-word'
11832
+ },
11833
+ '@media (max-width: 1024px)': {
11834
+ grid: {
11835
+ gridTemplateColumns: 'repeat(2, 1fr)',
11836
+ gap: '28px'
11837
+ }
11838
+ },
11839
+ '@media (max-width: 767px)': {
11840
+ section: {
11841
+ borderRadius: theme.shape?.borderRadius?.small || '8px'
11842
+ },
11843
+ container: {
11844
+ padding: `${theme.spacing.padding.regular}px ${theme.spacing.padding.tiny}px`
11845
+ },
11846
+ grid: {
11847
+ gridTemplateColumns: '1fr',
11848
+ gap: '24px'
11849
+ },
11850
+ value: {
11851
+ fontSize: theme.typography.fontSize.h3,
11852
+ marginBottom: '4px',
11853
+ lineHeight: 1.1
11854
+ },
11855
+ description: {
11856
+ fontSize: theme.typography.fontSize.body,
11857
+ lineHeight: 1.4
11858
+ }
11859
+ }
11860
+ };
11861
+ });
11862
+
11863
+ function CounterSection({
11864
+ sectionData,
11865
+ sectionIndex
11866
+ }) {
11867
+ const {
11868
+ layout: {
11869
+ containerWidth
11870
+ },
11871
+ isMobile
11872
+ } = React.useContext(PageContext);
11873
+ console.log('llll', sectionData);
11874
+ sectionData.components = sectionData.components;
11875
+ const metadata = sectionData.metadata || {};
11876
+ const backgroundImage = metadata.backgroundImage || '';
11877
+ const backgroundColor = metadata.backgroundColor || '#f8f8fa';
11878
+ const classes = useCounterSectionStyles({
11879
+ containerWidth,
11880
+ isMobile,
11881
+ backgroundImage: backgroundImage || null,
11882
+ backgroundColor
11883
+ });
11884
+ const cardData = sectionData?.components[0];
11885
+ const [sectionComponent] = sectionData.components || [];
11886
+ const counterSection = sectionComponent?.counterSection;
11887
+ counterSection?.components || [];
11888
+ if (!cardData) return null;
11889
+ return /*#__PURE__*/React__default["default"].createElement("section", {
11890
+ className: classes.section
11891
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
11892
+ className: classes.container
11893
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
11894
+ className: classes.grid
11895
+ }, cardData?.contentList?.components?.map((item, index) => /*#__PURE__*/React__default["default"].createElement("div", {
11896
+ key: item._id || index,
11897
+ className: classes.counterItem
11898
+ }, item.contentHeading?.metadata?.value != null && item.contentHeading?.metadata?.value !== '' && /*#__PURE__*/React__default["default"].createElement("h2", {
11899
+ ref: item.contentHeading?.refSetter,
11900
+ className: classes.value,
11901
+ dangerouslySetInnerHTML: {
11902
+ __html: item.contentHeading.metadata.value
11903
+ }
11904
+ }), item.contentPara?.metadata?.value != null && item.contentPara?.metadata?.value !== '' && /*#__PURE__*/React__default["default"].createElement("p", {
11905
+ ref: item.contentPara?.refSetter,
11906
+ className: classes.description,
11907
+ dangerouslySetInnerHTML: {
11908
+ __html: item.contentPara.metadata.value
11909
+ }
11910
+ }))))));
11911
+ }
11912
+
11913
+ var index$5 = /*#__PURE__*/Object.freeze({
11914
+ __proto__: null,
11915
+ 'default': CounterSection
11916
+ });
11917
+
11918
+ const BREAKPOINTS = {
11919
+ mobile: 0,
11920
+ tablet: 768,
11921
+ desktop: 1024
11922
+ };
11923
+
11924
+ /**
11925
+ * Get current breakpoint from window width
11926
+ */
11927
+ const getBreakpoint = width => {
11928
+ if (width >= BREAKPOINTS.desktop) return 'desktop';
11929
+ if (width >= BREAKPOINTS.tablet) return 'tablet';
11930
+ return 'mobile';
11931
+ };
11932
+ const stickyBarBase = {
11933
+ position: 'fixed',
11934
+ left: 0,
11935
+ right: 0,
11936
+ bottom: 0,
11937
+ zIndex: 9998,
11938
+ display: 'flex',
11939
+ alignItems: 'center',
11940
+ justifyContent: 'center',
11941
+ backgroundColor: '#F8F9FB',
11942
+ boxShadow: '0 -2px 8px rgba(0, 0, 0, 0.06)',
11943
+ borderTop: '1px solid #E5E7EB'
11944
+ };
11945
+ const stickyBarResponsive = {
11946
+ mobile: {
11947
+ ...stickyBarBase,
11948
+ padding: '12px 16px',
11949
+ gap: '12px',
11950
+ flexDirection: 'column',
11951
+ alignItems: 'stretch'
11952
+ },
11953
+ tablet: {
11954
+ ...stickyBarBase,
11955
+ padding: '14px 24px',
11956
+ gap: '16px',
11957
+ flexDirection: 'row',
11958
+ alignItems: 'center'
11959
+ },
11960
+ desktop: {
11961
+ ...stickyBarBase,
11962
+ padding: '16px 32px',
11963
+ gap: '24px',
11964
+ flexDirection: 'row',
11965
+ alignItems: 'center'
11966
+ }
11967
+ };
11968
+ const getStickyBarStyle = breakpoint => stickyBarResponsive[breakpoint] || stickyBarResponsive.mobile;
11969
+ const stickyTextBase = {
11970
+ color: '#343A40',
11971
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
11972
+ margin: 0
11973
+ };
11974
+ const stickyTextResponsive = {
11975
+ mobile: {
11976
+ ...stickyTextBase,
11977
+ fontSize: '13px',
11978
+ lineHeight: 1.4,
11979
+ textAlign: 'center'
11980
+ },
11981
+ tablet: {
11982
+ ...stickyTextBase,
11983
+ fontSize: '14px',
11984
+ lineHeight: 1.45,
11985
+ textAlign: 'left'
11986
+ },
11987
+ desktop: {
11988
+ ...stickyTextBase,
11989
+ fontSize: '15px',
11990
+ lineHeight: 1.5,
11991
+ textAlign: 'left'
11992
+ }
11993
+ };
11994
+ const getStickyTextStyle = breakpoint => stickyTextResponsive[breakpoint] || stickyTextResponsive.mobile;
11995
+ const stickyButtonBase = {
11996
+ backgroundColor: '#3366FF',
11997
+ color: '#FFFFFF',
11998
+ border: 'none',
11999
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
12000
+ fontWeight: 600,
12001
+ textTransform: 'uppercase',
12002
+ letterSpacing: '0.02em',
12003
+ cursor: 'pointer',
12004
+ whiteSpace: 'nowrap',
12005
+ flexShrink: 0
12006
+ };
12007
+ const stickyButtonResponsive = {
12008
+ mobile: {
12009
+ ...stickyButtonBase,
12010
+ padding: '10px 20px',
12011
+ fontSize: '12px',
12012
+ borderRadius: '6px'
12013
+ },
12014
+ tablet: {
12015
+ ...stickyButtonBase,
12016
+ padding: '12px 24px',
12017
+ fontSize: '13px',
12018
+ borderRadius: '8px'
12019
+ },
12020
+ desktop: {
12021
+ ...stickyButtonBase,
12022
+ padding: '14px 28px',
12023
+ fontSize: '14px',
12024
+ borderRadius: '8px'
12025
+ }
12026
+ };
12027
+ const getStickyButtonStyle = breakpoint => stickyButtonResponsive[breakpoint] || stickyButtonResponsive.mobile;
12028
+
12029
+ // --- Floating (WhatsApp) type ---
12030
+
12031
+ const floatingButtonBase = {
12032
+ position: 'fixed',
12033
+ bottom: 24,
12034
+ right: 24,
12035
+ width: 'fit-content',
12036
+ marginLeft: 'auto',
12037
+ zIndex: 9999,
12038
+ display: 'inline-flex',
12039
+ alignItems: 'center',
12040
+ gap: '10px',
12041
+ padding: '12px 20px',
12042
+ backgroundColor: '#FFFFFF',
12043
+ border: '1px solid #E5E7EB',
12044
+ borderRadius: '9999px',
12045
+ boxShadow: '0 4px 12px rgba(0, 0, 0, 0.1)',
12046
+ cursor: 'pointer',
12047
+ textDecoration: 'none',
12048
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
12049
+ fontWeight: 700,
12050
+ fontSize: '14px',
12051
+ textTransform: 'uppercase',
12052
+ letterSpacing: '0.02em',
12053
+ color: '#000000',
12054
+ transition: 'box-shadow 0.2s ease, transform 0.2s ease'
12055
+ };
12056
+ const floatingButtonResponsive = {
12057
+ mobile: {
12058
+ ...floatingButtonBase,
12059
+ bottom: 16,
12060
+ left: 16,
12061
+ padding: '10px 16px',
12062
+ gap: '8px',
12063
+ fontSize: '12px'
12064
+ },
12065
+ tablet: {
12066
+ ...floatingButtonBase,
12067
+ bottom: 20,
12068
+ left: 20,
12069
+ padding: '12px 18px',
12070
+ gap: '10px',
12071
+ fontSize: '13px'
12072
+ },
12073
+ desktop: {
12074
+ ...floatingButtonBase,
12075
+ bottom: 24,
12076
+ left: 24,
12077
+ padding: '12px 20px',
12078
+ gap: '10px',
12079
+ fontSize: '14px'
12080
+ }
12081
+ };
12082
+ const getFloatingButtonStyle = breakpoint => floatingButtonResponsive[breakpoint] || floatingButtonResponsive.mobile;
12083
+ const whatsAppIconSvgSize = {
12084
+ mobile: 24,
12085
+ tablet: 26,
12086
+ desktop: 28
12087
+ };
12088
+ const getWhatsAppIconSize = breakpoint => whatsAppIconSvgSize[breakpoint] ?? whatsAppIconSvgSize.mobile;
12089
+
12090
+ const DEFAULT_WHATSAPP_ICON_COLOR = '#25D366';
12091
+
12092
+ /** Build WhatsApp wa.me URL from phone number (digits only, optional + prefix). */
12093
+ function buildWhatsAppUrl(phoneNumber) {
12094
+ if (!phoneNumber || typeof phoneNumber !== 'string') return null;
12095
+ const digits = phoneNumber.replace(/\D/g, '');
12096
+ return digits.length > 0 ? `https://wa.me/${digits}` : null;
12097
+ }
12098
+
12099
+ /**
12100
+ * WhatsApp icon SVG – bubble color is dynamic via props (default #25D366)
12101
+ */
12102
+ const WhatsAppIcon = ({
12103
+ size = 28,
12104
+ color = DEFAULT_WHATSAPP_ICON_COLOR
12105
+ }) => /*#__PURE__*/React__default["default"].createElement("svg", {
12106
+ width: size,
12107
+ height: size,
12108
+ viewBox: "0 0 24 24",
12109
+ fill: "none",
12110
+ xmlns: "http://www.w3.org/2000/svg",
12111
+ "aria-hidden": true
12112
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
12113
+ d: "M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z",
12114
+ fill: color
12115
+ }));
12116
+
12117
+ /** Icon: image when iconImageUrl is provided, otherwise WhatsApp SVG */
12118
+ const CtaIcon = ({
12119
+ size = 28,
12120
+ color,
12121
+ iconImageUrl
12122
+ }) => {
12123
+ if (iconImageUrl && typeof iconImageUrl === 'string') {
12124
+ return /*#__PURE__*/React__default["default"].createElement("img", {
12125
+ src: iconImageUrl,
12126
+ alt: "",
12127
+ width: size,
12128
+ height: size,
12129
+ style: {
12130
+ display: 'block',
12131
+ objectFit: 'contain'
12132
+ },
12133
+ "aria-hidden": true
12134
+ });
12135
+ }
12136
+ return /*#__PURE__*/React__default["default"].createElement(WhatsAppIcon, {
12137
+ size: size,
12138
+ color: color ?? DEFAULT_WHATSAPP_ICON_COLOR
12139
+ });
12140
+ };
12141
+
12142
+ /**
12143
+ * Sticky CTA component.
12144
+ * Renders relative to viewport (app root), not parent section.
12145
+ * Accepts either sectionData (from pageRenderer/sectionRenderer) or flat props.
12146
+ *
12147
+ * @param {object} [sectionData] - Section payload when rendered via SectionRenderer: { type, label, components: [{ type, stickyMessage, ... }] }
12148
+ * @param {string} type - "sticky" | "floating"
12149
+ * @param {string} [stickyMessage] - Message text for sticky bar
12150
+ * @param {string} [stickyButtonText] - CTA button label (default "ENQUIRE NOW")
12151
+ * @param {string} [whatsAppPhoneNumber] - Mobile number for WhatsApp
12152
+ * @param {string} [whatsAppHref] - Optional fallback full URL when whatsAppPhoneNumber is not provided
12153
+ * @param {string} [whatsAppLabel] - Label next to icon (default "SUPPORT")
12154
+ * @param {string} [whatsAppIconColor] - WhatsApp icon color (used when iconImageUrl is not set)
12155
+ * @param {string} [whatsAppButtonBackgroundColor] - Floating button background color
12156
+ * @param {string} [iconImageUrl] - Optional image URL for the icon; when set, shows <img> instead of WhatsApp SVG
12157
+ * @param {object} [extraProps] - From SectionRenderer; extraProps.isEdit true shows in-flow edit hint
12158
+ * @param {boolean} [showEditHint] - When true, shows "Click on edit button to edit this section" in normal flow
12159
+ */
12160
+ function StickyCta({
12161
+ sectionData,
12162
+ type = 'sticky',
12163
+ stickyMessage = 'Live Masterclass will be on 26 January (Monday) from 05:00 PM',
12164
+ stickyButtonText = 'ENQUIRE NOW',
12165
+ whatsAppPhoneNumber,
12166
+ whatsAppHref,
12167
+ whatsAppLabel = 'SUPPORT',
12168
+ whatsAppIconColor,
12169
+ whatsAppButtonBackgroundColor,
12170
+ iconImageUrl
12171
+ }) {
12172
+ console.log('nishu03333', sectionData);
12173
+ const node = sectionData?.components?.[0];
12174
+ const contentList = node?.contentList?.components || [];
12175
+ const showEditHint = sectionData?.isDefaultEditor ?? false;
12176
+ const propsFromSection = node ? {
12177
+ type: node?.title?.metadata?.value ?? type,
12178
+ stickyMessage: contentList[1]?.contentPara?.metadata?.value ?? stickyMessage,
12179
+ stickyButtonText: contentList[1]?.contentHeading?.metadata?.value ?? stickyButtonText,
12180
+ whatsAppPhoneNumber: node.subheading?.metadata?.value ?? whatsAppPhoneNumber,
12181
+ whatsAppHref: node.whatsAppHref ?? whatsAppHref,
12182
+ whatsAppLabel: contentList[0]?.contentHeading?.metadata?.value ?? whatsAppLabel,
12183
+ whatsAppIconColor: node.whatsAppIconColor ?? whatsAppIconColor,
12184
+ whatsAppButtonBackgroundColor: node.whatsAppButtonBackgroundColor ?? whatsAppButtonBackgroundColor,
12185
+ iconImageUrl: contentList[0]?.contentPara?.metadata?.value ?? iconImageUrl
12186
+ } : null;
12187
+ const p = propsFromSection ?? {
12188
+ type,
12189
+ stickyMessage,
12190
+ stickyButtonText,
12191
+ whatsAppPhoneNumber,
12192
+ whatsAppHref,
12193
+ whatsAppLabel,
12194
+ whatsAppIconColor,
12195
+ whatsAppButtonBackgroundColor,
12196
+ iconImageUrl
12197
+ };
12198
+ const whatsAppUrl = p?.whatsAppPhoneNumber ? p?.whatsAppPhoneNumber : buildWhatsAppUrl(p?.whatsAppPhoneNumber);
12199
+ const [breakpoint, setBreakpoint] = React.useState(() => typeof window !== 'undefined' ? getBreakpoint(window.innerWidth) : 'mobile');
12200
+ React.useEffect(() => {
12201
+ if (typeof window === 'undefined') return;
12202
+ const onResize = () => setBreakpoint(getBreakpoint(window.innerWidth));
12203
+ window.addEventListener('resize', onResize);
12204
+ return () => window.removeEventListener('resize', onResize);
12205
+ }, []);
12206
+ const editHintBlock = showEditHint ? /*#__PURE__*/React__default["default"].createElement("div", {
12207
+ "data-section": "sticky-cta-edit-hint",
12208
+ style: {
12209
+ position: 'relative',
12210
+ width: '100%',
12211
+ padding: '12px 16px',
12212
+ textAlign: 'center',
12213
+ backgroundColor: '#f5f5f5',
12214
+ border: '1px dashed #ccc',
12215
+ borderRadius: 8,
12216
+ marginBottom: 8
12217
+ }
12218
+ }, /*#__PURE__*/React__default["default"].createElement("h2", {
12219
+ style: {
12220
+ margin: 0,
12221
+ fontSize: 16,
12222
+ fontWeight: 600,
12223
+ color: '#555'
12224
+ }
12225
+ }, "Click on edit button to edit this section")) : null;
12226
+ if (p.type === 'floating') {
12227
+ const buttonStyle = {
12228
+ ...getFloatingButtonStyle(breakpoint),
12229
+ ...(p.whatsAppButtonBackgroundColor != null && {
12230
+ backgroundColor: p.whatsAppButtonBackgroundColor
12231
+ })
12232
+ };
12233
+ const iconSize = getWhatsAppIconSize(breakpoint);
12234
+ const iconColor = p.whatsAppIconColor ?? DEFAULT_WHATSAPP_ICON_COLOR;
12235
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, editHintBlock, /*#__PURE__*/React__default["default"].createElement("a", {
12236
+ href: whatsAppUrl,
12237
+ target: "_blank",
12238
+ rel: "noopener noreferrer",
12239
+ "access-cta": "DIY",
12240
+ style: buttonStyle,
12241
+ onMouseEnter: e => {
12242
+ e.currentTarget.style.boxShadow = '0 6px 16px rgba(0, 0, 0, 0.12)';
12243
+ e.currentTarget.style.transform = 'scale(1.02)';
12244
+ },
12245
+ onMouseLeave: e => {
12246
+ e.currentTarget.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.1)';
12247
+ e.currentTarget.style.transform = 'scale(1)';
12248
+ },
12249
+ "aria-label": `${p.whatsAppLabel} via WhatsApp`
12250
+ }, /*#__PURE__*/React__default["default"].createElement(CtaIcon, {
12251
+ size: iconSize,
12252
+ color: iconColor,
12253
+ iconImageUrl: p.iconImageUrl
12254
+ }), /*#__PURE__*/React__default["default"].createElement("span", null, p.whatsAppLabel)));
12255
+ }
12256
+
12257
+ // type === 'sticky' – button uses mobile number from props to build URL; click redirects to WhatsApp
12258
+ const barStyle = getStickyBarStyle(breakpoint);
12259
+ const textStyle = getStickyTextStyle(breakpoint);
12260
+ const buttonStyle = getStickyButtonStyle(breakpoint);
12261
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, editHintBlock, /*#__PURE__*/React__default["default"].createElement("div", {
12262
+ style: barStyle,
12263
+ role: "banner"
12264
+ }, /*#__PURE__*/React__default["default"].createElement("p", {
12265
+ style: textStyle
12266
+ }, p.stickyMessage), /*#__PURE__*/React__default["default"].createElement("a", {
12267
+ href: whatsAppUrl,
12268
+ target: "_blank",
12269
+ rel: "noopener noreferrer",
12270
+ "access-cta-container": "DIY",
12271
+ style: {
12272
+ ...buttonStyle,
12273
+ textDecoration: 'none',
12274
+ display: 'inline-flex',
12275
+ alignItems: 'center',
12276
+ justifyContent: 'center'
12277
+ }
12278
+ }, p.stickyButtonText)));
12279
+ }
12280
+
12281
+ var index$4 = /*#__PURE__*/Object.freeze({
12282
+ __proto__: null,
12283
+ 'default': StickyCta,
12284
+ WhatsAppIcon: WhatsAppIcon
12285
+ });
12286
+
12287
+ /**
12288
+ * Styles for CustomHtmlRender section.
12289
+ * Wrapper for user-provided HTML content.
12290
+ */
12291
+
12292
+ const sectionStyle = {
12293
+ width: '100%',
12294
+ maxWidth: '100%',
12295
+ height: 'auto',
12296
+ minHeight: 'auto',
12297
+ margin: 0,
12298
+ padding: 0,
12299
+ overflow: 'visible'
12300
+ };
12301
+
12302
+ const SHADOW_WRAPPER_CLASS = 'custom-html-body-wrap';
12303
+ const SHADOW_INNER_CLASS = 'custom-html-render__shadow-inner';
12304
+
12305
+ /**
12306
+ * Parses full HTML string and extracts styles + body/content for Shadow DOM.
12307
+ * - Strips <!DOCTYPE>, <html>, <head>, <body> and uses inner content + all <style>.
12308
+ * - Scopes "body" and "html" selectors to a wrapper class so styles don't leak to the main app.
12309
+ */
12310
+ function parseHtmlForShadow(html) {
12311
+ if (typeof html !== 'string' || !html.trim()) return {
12312
+ styles: '',
12313
+ content: ''
12314
+ };
12315
+ const styleRegex = /<style[^>]*>([\s\S]*?)<\/style>/gi;
12316
+ const bodyRegex = /<body[^>]*>([\s\S]*?)<\/body>/i;
12317
+ let styles = '';
12318
+ let match;
12319
+ while ((match = styleRegex.exec(html)) !== null) {
12320
+ styles += match[1];
12321
+ }
12322
+ const bodyMatch = html.match(bodyRegex);
12323
+ const rawContent = bodyMatch ? bodyMatch[1].trim() : html;
12324
+
12325
+ // Scope "body" and "html" in CSS to the wrapper so they don't affect the main page.
12326
+ // Only replace as standalone selectors (word boundary) to avoid breaking values like content: "body"
12327
+ let scopedStyles = styles.replace(/\bbody\b(?=\s*[{,])/g, `.${SHADOW_WRAPPER_CLASS}`).replace(/\bhtml\b(?=\s*[{,])/g, `.${SHADOW_WRAPPER_CLASS}`);
12328
+ const content = bodyMatch ? `<div class="${SHADOW_WRAPPER_CLASS}">${rawContent}</div>` : rawContent;
12329
+ return {
12330
+ styles: scopedStyles,
12331
+ content
12332
+ };
12333
+ }
12334
+
12335
+ /**
12336
+ * Base styles inside shadow so the body wrapper has layout and can show background/padding.
12337
+ */
12338
+ const SHADOW_BASE_STYLES = `
12339
+ .${SHADOW_INNER_CLASS}, .${SHADOW_WRAPPER_CLASS} {
12340
+ display: block;
12341
+ width: 100%;
12342
+ box-sizing: border-box;
12343
+ }
12344
+ .${SHADOW_INNER_CLASS} {
12345
+ min-height: 0;
12346
+ }
12347
+ `;
12348
+
12349
+ /**
12350
+ * Resolves HTML string from section data.
12351
+ * Supports: sectionData.components[0].CustomHtml.metadata.value (API shape)
12352
+ * and sectionData.components[0].html or props.html (legacy/flat).
12353
+ */
12354
+ function getHtmlFromSectionData(sectionData, fallbackHtml = '') {
12355
+ const node = sectionData?.components?.[0];
12356
+ if (!node) return fallbackHtml;
12357
+ const fromCustomHtml = node.CustomHtml?.metadata?.value;
12358
+ if (typeof fromCustomHtml === 'string') return fromCustomHtml;
12359
+ if (typeof node.html === 'string') return node.html;
12360
+ return fallbackHtml;
12361
+ }
12362
+
12363
+ /**
12364
+ * CustomHtmlRender – renders any full HTML document or fragment in an encapsulated Shadow DOM.
12365
+ * Receives html via sectionData.components[0].CustomHtml.metadata.value (or .html) or props.html.
12366
+ * Body/html background, padding, and all other CSS apply only inside this section.
12367
+ */
12368
+ function CustomHtmlRender({
12369
+ sectionData,
12370
+ html = '',
12371
+ className,
12372
+ style = {}
12373
+ }) {
12374
+ const containerRef = React.useRef(null);
12375
+ const node = sectionData?.components?.[0];
12376
+ const resolvedHtml = getHtmlFromSectionData(sectionData, html);
12377
+ const p = node ? {
12378
+ html: resolvedHtml,
12379
+ className: node.className ?? className,
12380
+ style: node.style ?? style
12381
+ } : {
12382
+ html: resolvedHtml,
12383
+ className,
12384
+ style
12385
+ };
12386
+ const safeHtml = typeof p.html === 'string' ? p.html : '';
12387
+ const setSectionRef = el => {
12388
+ containerRef.current = el;
12389
+ const refSetter = node?.CustomHtml?.refSetter;
12390
+ if (refSetter) {
12391
+ if (typeof refSetter === 'function') refSetter(el);else if (refSetter && typeof refSetter === 'object') refSetter.current = el;
12392
+ }
12393
+ };
12394
+ React.useEffect(() => {
12395
+ if (!safeHtml.trim() || !containerRef.current) return;
12396
+ const {
12397
+ styles,
12398
+ content
12399
+ } = parseHtmlForShadow(safeHtml);
12400
+ const host = containerRef.current;
12401
+ if (!host.shadowRoot) {
12402
+ host.attachShadow({
12403
+ mode: 'open'
12404
+ });
12405
+ }
12406
+ const shadowRoot = host.shadowRoot;
12407
+ shadowRoot.innerHTML = '';
12408
+ const inner = document.createElement('div');
12409
+ inner.className = SHADOW_INNER_CLASS;
12410
+ if (SHADOW_BASE_STYLES) {
12411
+ const baseStyle = document.createElement('style');
12412
+ baseStyle.textContent = SHADOW_BASE_STYLES;
12413
+ shadowRoot.appendChild(baseStyle);
12414
+ }
12415
+ if (styles) {
12416
+ const styleEl = document.createElement('style');
12417
+ styleEl.textContent = styles;
12418
+ shadowRoot.appendChild(styleEl);
12419
+ }
12420
+ const contentWrap = document.createElement('div');
12421
+ contentWrap.innerHTML = content;
12422
+ while (contentWrap.firstChild) {
12423
+ inner.appendChild(contentWrap.firstChild);
12424
+ }
12425
+ shadowRoot.appendChild(inner);
12426
+ return () => {
12427
+ shadowRoot.innerHTML = '';
12428
+ };
12429
+ }, [safeHtml]);
12430
+ if (!safeHtml.trim()) {
12431
+ return null;
12432
+ }
12433
+ return /*#__PURE__*/React__default["default"].createElement("section", {
12434
+ ref: setSectionRef,
12435
+ className: p.className,
12436
+ style: {
12437
+ ...sectionStyle,
12438
+ ...p.style
12439
+ },
12440
+ "data-section": "custom-html-render"
12441
+ });
12442
+ }
12443
+
12444
+ var index$3 = /*#__PURE__*/Object.freeze({
12445
+ __proto__: null,
12446
+ 'default': CustomHtmlRender
12447
+ });
12448
+
12449
+ const useTimerCallPageStyles = createUseStyles(theme => ({
12450
+ timerAndCallSection: {
12451
+ padding: ({
12452
+ isMobile
12453
+ } = {}) => isMobile ? '24px' : '80px 120px',
12454
+ background: theme?.colors?.white,
12455
+ '&, & *, & *:before, & *:after': {
12456
+ fontFamily: theme?.typography?.fontFamily,
12457
+ boxSizing: 'border-box'
12458
+ }
12459
+ },
12460
+ timerAndCallContainer: {
12461
+ padding: '72px',
12462
+ background: '#F4F9FF',
12463
+ borderRadius: '8px',
12464
+ boxShadow: '0px 4px 10px rgba(0, 0, 0, 0.16)'
12465
+ },
12466
+ timerAndCallBox: {
12467
+ display: 'flex',
12468
+ flexDirection: 'column',
12469
+ gap: '42px',
12470
+ justifyContent: 'center',
12471
+ alignItems: 'center'
12472
+ },
12473
+ title: {
12474
+ fontWeight: '700',
12475
+ fontSize: '40px',
12476
+ textAlign: 'center',
12477
+ lineHeight: '45px'
12478
+ },
12479
+ offerWrapper: {
12480
+ display: 'flex',
12481
+ flexDirection: 'column',
12482
+ gap: '24px',
12483
+ justifyContent: 'center',
12484
+ alignItems: 'center'
12485
+ },
12486
+ offerEndsTitle: {
12487
+ fontWeight: '700',
12488
+ fontSize: '16px'
12489
+ },
12490
+ countdown: {
12491
+ display: 'flex',
12492
+ gap: '10px'
12493
+ },
12494
+ counterBox: {
12495
+ display: 'flex',
12496
+ flexDirection: 'column',
12497
+ justifyContent: 'center',
12498
+ alignItems: 'center',
12499
+ border: '0.56px solid #2C88FF',
12500
+ borderRadius: '8px',
12501
+ background: '#FFFFFF',
12502
+ color: '#2C88FF',
12503
+ padding: '12px 16px 12px 16px',
12504
+ fontWeight: '600',
12505
+ fontSize: '14px'
12506
+ },
12507
+ // SMALL SCREEN
12508
+ '@media screen and (max-width: 767px)': {
12509
+ timerAndCallSection: {
12510
+ padding: '24px'
12511
+ },
12512
+ timerAndCallContainer: {
12513
+ padding: '16px'
12514
+ },
12515
+ timerAndCallBox: {
12516
+ gap: '32px'
12517
+ },
12518
+ title: {
12519
+ fontSize: '24px'
12520
+ },
12521
+ offerWrapper: {
12522
+ gap: '16px'
12523
+ }
12524
+ }
12525
+ }));
12526
+
12527
+ const TimerAndCall = ({
12528
+ sectionData,
12529
+ extraProps = {}
12530
+ }) => {
12531
+ const {
12532
+ isMobile,
12533
+ fullPageData
12534
+ } = React.useContext(PageContext);
12535
+ const [nodeData] = sectionData?.components;
12536
+ const classes = useTimerCallPageStyles({
12537
+ isMobile
12538
+ });
12539
+ const CounterBox = ({
12540
+ value,
12541
+ text
12542
+ }) => {
12543
+ return /*#__PURE__*/React__default["default"].createElement("div", {
12544
+ className: classes.counterBox
12545
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, value), /*#__PURE__*/React__default["default"].createElement("div", null, text));
12546
+ };
12547
+ const renderer = ({
12548
+ formatted,
12549
+ completed
12550
+ }) => {
12551
+ return /*#__PURE__*/React__default["default"].createElement("div", {
12552
+ className: classes.countdown
12553
+ }, /*#__PURE__*/React__default["default"].createElement(CounterBox, {
12554
+ value: formatted?.hours,
12555
+ text: "Hours"
12556
+ }), /*#__PURE__*/React__default["default"].createElement(CounterBox, {
12557
+ value: formatted?.minutes,
12558
+ text: "Mins"
12559
+ }), /*#__PURE__*/React__default["default"].createElement(CounterBox, {
12560
+ value: formatted?.seconds,
12561
+ text: "Secs"
12562
+ }));
12563
+ };
12564
+ const CountDownJSX = offerPriceValidFor => {
12565
+ let conversions = extraProps?.conversions || 0;
12566
+ if (offerPriceValidFor && offerPriceValidFor - conversions <= 0) {
12567
+ return null;
12568
+ }
12569
+ return /*#__PURE__*/React__default["default"].createElement("div", {
12570
+ className: classes.offerWrapper
12571
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
12572
+ className: classes.offerEndsTitle
12573
+ }, "Offer ends in"), /*#__PURE__*/React__default["default"].createElement(Countdown__default["default"], {
12574
+ renderer: renderer,
12575
+ date: nodeData.offerCounter?.metadata?.endDate,
12576
+ daysInHours: true
12577
+ }));
12578
+ };
12579
+ return /*#__PURE__*/React__default["default"].createElement("section", {
12580
+ className: classes.timerAndCallSection
12581
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
12582
+ className: classes.timerAndCallContainer
12583
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
12584
+ className: classes.timerAndCallBox
12585
+ }, nodeData?.showOffer?.metadata?.value && nodeData.offerCounter?.metadata?.isOfferActive ? CountDownJSX(nodeData.offerCounter?.metadata?.offerPriceValidFor) : null, nodeData?.title?.metadata?.value ? /*#__PURE__*/React__default["default"].createElement("div", {
12586
+ className: classes.title
12587
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
12588
+ ref: nodeData?.heading?.refSetter,
12589
+ dangerouslySetInnerHTML: {
12590
+ __html: nodeData?.title?.metadata?.value
12591
+ }
12592
+ })) : null, nodeData?.timerButton?.metadata?.value ? /*#__PURE__*/React__default["default"].createElement(Button, {
12593
+ style: {
12594
+ width: '100%',
12595
+ fontWeight: '700',
12596
+ fontSize: '14px'
12597
+ },
12598
+ data: {
12599
+ // link: 'headerData?.loginCtaLink',
12600
+ // isLink: 1,
12601
+ value: nodeData.timerButton.metadata.value
12602
+ // isExternal: 1
12603
+ },
12604
+ onClick: extraProps?.courseBuyNow,
12605
+ type: 'primary',
12606
+ size: 'medium',
12607
+ target: null,
12608
+ name: "button",
12609
+ rel: null
12610
+ // styling={isMobile ? { margin: '0 40px' } : {}}
12611
+ }) : null)));
12612
+ };
12613
+
12614
+ var index$2 = /*#__PURE__*/Object.freeze({
12615
+ __proto__: null,
12616
+ 'default': TimerAndCall
12617
+ });
12618
+
12619
+ const TYPE_TO_COMPONENT_MAP = {
12620
+ BANNER_CAROUSEL_RIGHT: BannerCarouselRight,
12621
+ GRID_CARD: List,
12622
+ BANNER_CAROUSEL_CENTER: BannerCarouselCenter,
12623
+ BANNER_CAROUSEL_CENTER_V2: BannerCarouselCenterv2,
12624
+ BANNER_CAROUSEL_LEFT: BannerCarouselLeft,
12625
+ FORM_SUBSCRIBE: SubscribeToNewsletter,
12626
+ TEXT_TESTIMONIAL: Testimonials,
12627
+ VIDEO_TESTIMONIAL: VideoTestimonial,
12628
+ VIDEO: Video,
12629
+ INFO: Info,
12630
+ TEXT: TextSection,
12631
+ IMAGE_GALLERY: PhotoGallery,
12632
+ FAQ_LISTING: FAQListing,
12633
+ TEXT_GRID: TextGrid,
12634
+ COURSE_CAROUSEL: courses,
12635
+ TEAM_CARD: TeamCard,
12636
+ CONTACT: FormEnquiry,
12637
+ FORM_ENQUIRY: Contact,
12638
+ WEBINAR_LANDING_PAGE: CoursePromotionPage$1,
12639
+ COURSE_LANDING_PAGE: CoursePromotionPage,
12640
+ FORM_LANDING_PAGE: FormPage,
12641
+ TILES_SECTION: Tiles,
12642
+ EMAIL_DRIP_MARKET: EmailDripMarket,
12643
+ ABOUT_INSTITUTE,
12644
+ COUNTER_SECTION: CounterSection,
12645
+ STICKY_CTA: StickyCta,
12646
+ CUSTOM_HTML_SECTION: CustomHtmlRender,
12647
+ TIMER_AND_CALL: TimerAndCall
12648
+ };
12649
+ const getCompToRender = type => TYPE_TO_COMPONENT_MAP[type] || (() => null);
12650
+ const MemoisedSection = /*#__PURE__*/React.memo(({
12651
+ sectionData,
12652
+ extraProps,
12653
+ isCustomWebsite,
12654
+ sectionIndex
12655
+ }) => {
12656
+ console.log('extraProps in section data', extraProps);
12657
+ const SectionComp = getCompToRender(sectionData.type);
12658
+ return /*#__PURE__*/React__default["default"].createElement(SectionComp, {
12659
+ sectionData: sectionData,
12660
+ extraProps: extraProps,
12661
+ isCustomWebsite: isCustomWebsite,
12662
+ sectionIndex: sectionIndex
12663
+ });
12664
+ });
12665
+ const SectionWithBackground = withSectionBackground(MemoisedSection);
12666
+ function SectionRenderer({
12667
+ sectionData,
12668
+ extraProps,
12669
+ isCustomWebsite,
12670
+ sectionIndex
12671
+ }) {
12672
+ let sectionBg = {};
12673
+ if (sectionData?.isV2Section) {
12674
+ sectionBg = sectionData?.bgSection?.components?.[0]?.sectionBgData || {};
12675
+ }
12676
+ return /*#__PURE__*/React__default["default"].createElement(SectionWithBackground, {
12677
+ sectionData: sectionData,
12678
+ extraProps: extraProps,
12679
+ isCustomWebsite: isCustomWebsite,
12680
+ sectionIndex: sectionIndex,
12681
+ isSkipV2Section: sectionData?.isV2Section,
12682
+ componentBg: sectionBg || {}
12683
+ });
12684
+ }
12685
+
12686
+ function PageRenderer({
12687
+ pageData: {
12688
+ metadata: {
12689
+ theme: {
12690
+ color = defaultTheme.color,
12691
+ font = defaultTheme.font
12692
+ } = defaultTheme,
12693
+ layout = defaultLayout
12694
+ } = defaultMetadata,
12695
+ sections,
12696
+ header,
12697
+ footer,
12698
+ validations = {},
12699
+ _id,
12700
+ isLandingPage = false,
12701
+ isCustomWebsite = false
12702
+ },
12703
+ isMobile = false,
12704
+ isLandingPages = false,
12705
+ baseURLs = {},
12706
+ hashToken,
12707
+ SectionWrapper,
12708
+ isMasterTemplate,
12709
+ basePath,
12710
+ countryCode,
12711
+ currencySymbol,
12712
+ isPreview,
12713
+ isEdit,
12714
+ sectionPlaceholder,
12715
+ templateId,
12716
+ isTutorWebsite = false,
12717
+ extraProps,
12718
+ hideLogin
12719
+ }) {
12720
+ const navList = header?.navs;
12721
+ const context = React.useMemo(() => ({
12722
+ isMobile,
12723
+ isLandingPages,
12724
+ layout,
12725
+ baseURLs,
12726
+ hashToken,
12727
+ isMasterTemplate,
12728
+ basePath,
12729
+ isPreview,
12730
+ isEdit,
12731
+ templateId,
12732
+ navList,
12733
+ validations,
12734
+ isTutorWebsite,
12735
+ extraProps,
12736
+ hideLogin,
12737
+ isCustomWebsite,
12738
+ _id,
12739
+ countryCode,
12740
+ currencySymbol
12741
+ }), [isMobile, isLandingPages, layout, baseURLs, hashToken, isPreview, isEdit, templateId, navList, isMasterTemplate, basePath, validations, isTutorWebsite, extraProps, hideLogin, _id, countryCode, currencySymbol]);
12742
+ const theme = React.useMemo(() => generateTheme(color, font, context.isMobile), [color, font, context.isMobile]);
12743
+ const Wrapper = SectionWrapper || React.Fragment;
12744
+ return /*#__PURE__*/React__default["default"].createElement(ThemeProvider, {
12745
+ theme: theme
12746
+ }, /*#__PURE__*/React__default["default"].createElement(PageContext.Provider, {
12747
+ value: context
12748
+ }, /*#__PURE__*/React__default["default"].createElement(FontSeeder, {
12749
+ fontFamily: font
12750
+ }), !!header && /*#__PURE__*/React__default["default"].createElement(Wrapper, !!SectionWrapper && {
12751
+ sectionData: header,
12752
+ isHeader: true
12753
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
12754
+ data: header,
12755
+ isLandingPage: isLandingPage,
12756
+ extraProps: extraProps
12757
+ })), sections?.length ? sections?.map((sectionData, sectionIndex) => /*#__PURE__*/React__default["default"].createElement(Wrapper, _extends({}, !!SectionWrapper && {
12758
+ sectionData,
12759
+ sectionIndex
12760
+ }, {
12761
+ key: sectionData.type + (sectionData._id || sectionIndex)
12762
+ }), /*#__PURE__*/React__default["default"].createElement(SectionRenderer, {
12763
+ sectionData: sectionData,
12764
+ extraProps: extraProps,
12765
+ isCustomWebsite: isCustomWebsite,
12766
+ sectionIndex: sectionIndex
12767
+ }))) : sectionPlaceholder, !!footer && /*#__PURE__*/React__default["default"].createElement(Wrapper, !!SectionWrapper && {
12768
+ sectionData: footer,
12769
+ isFooter: true
12770
+ }, /*#__PURE__*/React__default["default"].createElement(Footer, {
12771
+ data: footer
12772
+ }))));
12773
+ }
12774
+
12775
+ const componentParser = compObj => {
12776
+ if (compObj.type === 'componentCollection') {
12777
+ const component = {
12778
+ _id: compObj._id,
12779
+ metadata: compObj.metadata || {}
12780
+ };
12781
+ compObj.components.forEach(comp => {
12782
+ component[comp.name] = componentParser(comp);
12783
+ });
12784
+ return component;
12785
+ }
12786
+ if (Array.isArray(compObj.components)) {
12787
+ compObj.components = compObj.components.map(componentParser);
12788
+ }
12789
+ return compObj;
12790
+ };
12791
+ const inverseComponentParser = compObj => {
12792
+ if (!compObj.type) {
12793
+ const {
12794
+ metadata,
12795
+ _id,
12796
+ ...existingComponent
12797
+ } = compObj;
12798
+ const newComponent = {
12799
+ type: 'componentCollection',
12800
+ name: '',
12801
+ elementType: '',
12802
+ label: '',
12803
+ metadata: metadata || {},
12804
+ components: [],
12805
+ _id
12806
+ };
12807
+ newComponent.components = Object.values(existingComponent).map(inverseComponentParser);
12808
+ return newComponent;
12809
+ } else {
12810
+ if (compObj.components) {
12811
+ compObj.components = compObj.components.map(inverseComponentParser);
12812
+ }
12813
+ return compObj;
12814
+ }
12815
+ };
12816
+
12817
+ const useVideoWorkshopPromotionStyles = createUseStyles(theme => {
12818
+ return {
12819
+ section: {
12820
+ width: '100%',
12821
+ background: 'linear-gradient(135deg, #6b2d5c 0%, #4a3f6b 40%, #2d5a6b 70%, #3d6b5a 100%)',
12822
+ minHeight: '100%',
12823
+ '&, & *, & *:before, & *:after': {
12824
+ fontFamily: theme?.typography?.fontFamily,
12825
+ boxSizing: 'border-box'
12826
+ }
12827
+ },
12828
+ container: {
12829
+ width: '100%',
12830
+ maxWidth: '1440px',
12831
+ margin: '0 auto',
12832
+ padding: ({
12503
12833
  isMobile
12504
12834
  } = {}) => isMobile ? `${theme.spacing.padding.regular}px ${theme.spacing.padding.tiny}px` : `${theme.spacing.padding.small}px ${theme.spacing.padding.medium}px`
12505
12835
  },
@@ -12671,30 +13001,12 @@ function VideoWorkshopPromotion({
12671
13001
  },
12672
13002
  isMobile
12673
13003
  } = React.useContext(PageContext);
12674
- console.log('nnnn', sectionData);
12675
13004
  const classes = useVideoWorkshopPromotionStyles({
12676
13005
  containerWidth,
12677
13006
  isMobile
12678
13007
  });
12679
- const [sectionComponent] = sectionData?.components?.slice(1) || [];
12680
- const videoWorkshopPromotion = sectionComponent?.videoWorkshopPromotion;
12681
- const [contentNode] = videoWorkshopPromotion?.components || [];
12682
- if (!contentNode) return null;
12683
- const {
12684
- testimonialCategory,
12685
- mainHeading,
12686
- subHeading,
12687
- cta,
12688
- videoThumbnail,
12689
- videoEmbed,
12690
- videoTitleOverlay,
12691
- videoCaption,
12692
- watchOnYouTube
12693
- } = contentNode;
12694
- const videoUrl = videoEmbed?.metadata?.value;
12695
- const thumbnailUrl = videoEmbed?.metadata?.thumbnail || videoThumbnail?.metadata?.value;
12696
- const showCta = cta?.metadata?.value && (cta?.validations?.isEmptyAllowed ? true : cta?.metadata?.value !== '');
12697
- const showWatchOnYouTube = watchOnYouTube?.metadata?.value && (watchOnYouTube?.validations?.isEmptyAllowed ? true : watchOnYouTube?.metadata?.value !== '');
13008
+ const wokShopData = sectionData?.components[0];
13009
+ const videoData = wokShopData?.videoCarousel?.components?.[0];
12698
13010
  return /*#__PURE__*/React__default["default"].createElement("section", {
12699
13011
  className: classes.section
12700
13012
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -12703,70 +13015,40 @@ function VideoWorkshopPromotion({
12703
13015
  className: classes.sectionInner
12704
13016
  }, /*#__PURE__*/React__default["default"].createElement("div", {
12705
13017
  className: classes.textBlock
12706
- }, testimonialCategory?.metadata?.value && /*#__PURE__*/React__default["default"].createElement("h5", {
12707
- ref: testimonialCategory?.refSetter,
13018
+ }, wokShopData?.videoHeading?.metadata?.value && /*#__PURE__*/React__default["default"].createElement("h5", {
13019
+ ref: wokShopData?.videoHeading?.refSetter,
12708
13020
  className: classes.category,
12709
13021
  dangerouslySetInnerHTML: {
12710
- __html: testimonialCategory.metadata.value
13022
+ __html: wokShopData?.videoHeading?.metadata?.value
12711
13023
  }
12712
- }), mainHeading?.metadata?.value && /*#__PURE__*/React__default["default"].createElement("h1", {
12713
- ref: mainHeading?.refSetter,
13024
+ }), wokShopData?.title?.metadata?.value && /*#__PURE__*/React__default["default"].createElement("h1", {
13025
+ ref: wokShopData?.title?.refSetter,
12714
13026
  className: classes.mainHeading,
12715
13027
  dangerouslySetInnerHTML: {
12716
- __html: mainHeading.metadata.value
13028
+ __html: wokShopData?.title?.metadata?.value
12717
13029
  }
12718
- }), subHeading?.metadata?.value && /*#__PURE__*/React__default["default"].createElement("p", {
12719
- ref: subHeading?.refSetter,
12720
- className: classes.subHeading,
12721
- dangerouslySetInnerHTML: {
12722
- __html: subHeading.metadata.value
12723
- }
12724
- }), showCta && /*#__PURE__*/React__default["default"].createElement("div", {
13030
+ }), videoData?.videoTextContent?.metadata?.value && /*#__PURE__*/React__default["default"].createElement("div", {
12725
13031
  className: classes.ctaWrap
12726
13032
  }, /*#__PURE__*/React__default["default"].createElement(Button, {
12727
- ref: cta?.refSetter,
12728
- data: cta.metadata,
12729
- type: cta.metadata?.type || 'primary',
13033
+ ref: videoData?.videoTextContent?.metadata?.refSetter,
13034
+ data: videoData?.videoTextContent?.metadata,
13035
+ type: 'primary',
12730
13036
  size: isMobile ? 'small' : 'medium'
12731
13037
  }))), /*#__PURE__*/React__default["default"].createElement("div", {
12732
13038
  className: classes.videoBlock
12733
13039
  }, /*#__PURE__*/React__default["default"].createElement("div", {
12734
13040
  className: classes.videoWrapper
12735
13041
  }, /*#__PURE__*/React__default["default"].createElement("div", {
12736
- ref: videoEmbed?.refSetter,
13042
+ ref: videoData?.videoFrame?.refSetter,
12737
13043
  className: classes.videoAspectWrap
12738
13044
  }, /*#__PURE__*/React__default["default"].createElement(VideoPlayer, {
12739
- imageUrl: thumbnailUrl,
12740
- videoUrl: videoUrl,
13045
+ imageUrl: videoData?.videoFrame?.metadata?.thumbnail,
13046
+ videoUrl: videoData?.videoFrame?.metadata?.value,
12741
13047
  sectionIndex: sectionIndex
12742
- })), videoTitleOverlay?.metadata?.value && /*#__PURE__*/React__default["default"].createElement("div", {
12743
- className: classes.videoTitleOverlay
12744
- }, /*#__PURE__*/React__default["default"].createElement("span", {
12745
- ref: videoTitleOverlay?.refSetter,
12746
- dangerouslySetInnerHTML: {
12747
- __html: videoTitleOverlay.metadata.value
12748
- }
12749
- })), videoCaption?.metadata?.value && /*#__PURE__*/React__default["default"].createElement("div", {
12750
- className: classes.videoCaption
12751
- }, /*#__PURE__*/React__default["default"].createElement("p", {
12752
- ref: videoCaption?.refSetter,
12753
- dangerouslySetInnerHTML: {
12754
- __html: videoCaption.metadata.value
12755
- }
12756
- })), showWatchOnYouTube && /*#__PURE__*/React__default["default"].createElement("div", {
12757
- className: classes.watchOnYouTubeWrap
12758
- }, /*#__PURE__*/React__default["default"].createElement(Button, {
12759
- ref: watchOnYouTube?.refSetter,
12760
- data: {
12761
- ...watchOnYouTube.metadata,
12762
- isExternal: true
12763
- },
12764
- type: watchOnYouTube.metadata?.type || 'secondary',
12765
- size: "small"
12766
13048
  })))))));
12767
13049
  }
12768
13050
 
12769
- var index$2 = /*#__PURE__*/Object.freeze({
13051
+ var index$1 = /*#__PURE__*/Object.freeze({
12770
13052
  __proto__: null,
12771
13053
  'default': VideoWorkshopPromotion
12772
13054
  });
@@ -13399,157 +13681,9 @@ function CoursePromotionPagev2({
13399
13681
  }))));
13400
13682
  }
13401
13683
 
13402
- var index$1 = /*#__PURE__*/Object.freeze({
13403
- __proto__: null,
13404
- 'default': CoursePromotionPagev2
13405
- });
13406
-
13407
- const useCounterSectionStyles = createUseStyles(theme => {
13408
- return {
13409
- section: {
13410
- width: '100%',
13411
- borderRadius: theme.shape?.borderRadius?.regular || '12px',
13412
- overflow: 'hidden',
13413
- backgroundImage: ({
13414
- backgroundImage
13415
- } = {}) => backgroundImage ? `url("${backgroundImage}")` : 'none',
13416
- backgroundColor: ({
13417
- backgroundColor
13418
- } = {}) => backgroundColor || '#f8f8fa',
13419
- backgroundSize: 'cover',
13420
- backgroundPosition: 'center',
13421
- backgroundRepeat: 'no-repeat',
13422
- '&, & *, & *:before, & *:after': {
13423
- fontFamily: theme?.typography?.fontFamily,
13424
- boxSizing: 'border-box'
13425
- }
13426
- },
13427
- container: {
13428
- width: '100%',
13429
- maxWidth: ({
13430
- containerWidth
13431
- } = {}) => containerWidth || '1440px',
13432
- margin: '0 auto',
13433
- padding: ({
13434
- isMobile
13435
- } = {}) => isMobile ? `${theme.spacing.padding.regular}px ${theme.spacing.padding.tiny}px` : `${theme.spacing.padding.small}px ${theme.spacing.padding.medium}px`
13436
- },
13437
- grid: {
13438
- display: 'grid',
13439
- gridTemplateColumns: 'repeat(4, 1fr)',
13440
- gap: ({
13441
- isMobile
13442
- } = {}) => isMobile ? '24px' : '32px',
13443
- alignItems: 'stretch'
13444
- },
13445
- counterItem: {
13446
- display: 'flex',
13447
- flexDirection: 'column',
13448
- alignItems: 'center',
13449
- justifyContent: 'center',
13450
- textAlign: 'center'
13451
- },
13452
- value: {
13453
- margin: 0,
13454
- marginBottom: '8px',
13455
- fontSize: theme.typography.fontSize.h2,
13456
- fontWeight: theme.typography?.fontWeight?.bold,
13457
- lineHeight: 1.1,
13458
- color: theme.palette?.primary?.main || '#1976d2',
13459
- wordBreak: 'break-word'
13460
- },
13461
- description: {
13462
- margin: 0,
13463
- fontSize: theme.typography.fontSize.body,
13464
- lineHeight: 1.4,
13465
- color: theme.palette?.font?.primary || '#4a4a4a',
13466
- wordBreak: 'break-word'
13467
- },
13468
- '@media (max-width: 1024px)': {
13469
- grid: {
13470
- gridTemplateColumns: 'repeat(2, 1fr)',
13471
- gap: '28px'
13472
- }
13473
- },
13474
- '@media (max-width: 767px)': {
13475
- section: {
13476
- borderRadius: theme.shape?.borderRadius?.small || '8px'
13477
- },
13478
- container: {
13479
- padding: `${theme.spacing.padding.regular}px ${theme.spacing.padding.tiny}px`
13480
- },
13481
- grid: {
13482
- gridTemplateColumns: '1fr',
13483
- gap: '24px'
13484
- },
13485
- value: {
13486
- fontSize: theme.typography.fontSize.h3,
13487
- marginBottom: '4px',
13488
- lineHeight: 1.1
13489
- },
13490
- description: {
13491
- fontSize: theme.typography.fontSize.body,
13492
- lineHeight: 1.4
13493
- }
13494
- }
13495
- };
13496
- });
13497
-
13498
- function CounterSection({
13499
- sectionData,
13500
- sectionIndex
13501
- }) {
13502
- const {
13503
- layout: {
13504
- containerWidth
13505
- },
13506
- isMobile
13507
- } = React.useContext(PageContext);
13508
- console.log('llll', sectionData);
13509
- sectionData.components = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
13510
-
13511
- // console.log("llll",sectionData);
13512
-
13513
- const metadata = sectionData.metadata || {};
13514
- const backgroundImage = metadata.backgroundImage || '';
13515
- const backgroundColor = metadata.backgroundColor || '#f8f8fa';
13516
- const classes = useCounterSectionStyles({
13517
- containerWidth,
13518
- isMobile,
13519
- backgroundImage: backgroundImage || null,
13520
- backgroundColor
13521
- });
13522
- const [sectionComponent] = sectionData.components || [];
13523
- const counterSection = sectionComponent?.counterSection;
13524
- const counters = counterSection?.components || [];
13525
- if (!counters.length) return null;
13526
- return /*#__PURE__*/React__default["default"].createElement("section", {
13527
- className: classes.section
13528
- }, /*#__PURE__*/React__default["default"].createElement("div", {
13529
- className: classes.container
13530
- }, /*#__PURE__*/React__default["default"].createElement("div", {
13531
- className: classes.grid
13532
- }, counters.map((item, index) => /*#__PURE__*/React__default["default"].createElement("div", {
13533
- key: item._id || index,
13534
- className: classes.counterItem
13535
- }, item.value?.metadata?.value != null && item.value?.metadata?.value !== '' && /*#__PURE__*/React__default["default"].createElement("h2", {
13536
- ref: item.value?.refSetter,
13537
- className: classes.value,
13538
- dangerouslySetInnerHTML: {
13539
- __html: item.value.metadata.value
13540
- }
13541
- }), item.description?.metadata?.value != null && item.description?.metadata?.value !== '' && /*#__PURE__*/React__default["default"].createElement("p", {
13542
- ref: item.description?.refSetter,
13543
- className: classes.description,
13544
- dangerouslySetInnerHTML: {
13545
- __html: item.description.metadata.value
13546
- }
13547
- }))))));
13548
- }
13549
-
13550
13684
  var index = /*#__PURE__*/Object.freeze({
13551
13685
  __proto__: null,
13552
- 'default': CounterSection
13686
+ 'default': CoursePromotionPagev2
13553
13687
  });
13554
13688
 
13555
13689
  exports.Icon = Icon;