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.es.js CHANGED
@@ -6,7 +6,6 @@ import Countdown from 'react-countdown';
6
6
  import koreanLocale from 'moment/locale/ko';
7
7
  import ReactDOMServer from 'react-dom/server';
8
8
  import { createTheming, createUseStyles as createUseStyles$1, useTheme as useTheme$1 } from 'react-jss';
9
- import '@storybook/theming';
10
9
 
11
10
  function _extends() {
12
11
  return _extends = Object.assign ? Object.assign.bind() : function (n) {
@@ -2744,33 +2743,36 @@ function withSectionBackground(WrappedSectionRenderer) {
2744
2743
  }
2745
2744
 
2746
2745
  const TYPE_TO_COMPONENT_MAP$1 = {
2747
- BANNER_CAROUSEL_RIGHT: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$q; })),
2748
- GRID_CARD: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$p; })),
2749
- BANNER_CAROUSEL_CENTER: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$o; })),
2750
- BANNER_CAROUSEL_CENTER_V2: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$n; })),
2751
- BANNER_CAROUSEL_LEFT: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$m; })),
2752
- FORM_SUBSCRIBE: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$l; })),
2753
- TEXT_TESTIMONIAL: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$k; })),
2754
- VIDEO_TESTIMONIAL: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$j; })),
2755
- VIDEO_WORKSHOP_PROMOTION: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$2; })),
2756
- VIDEO: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$i; })),
2757
- INFO: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$h; })),
2758
- TEXT: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$g; })),
2759
- IMAGE_GALLERY: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$f; })),
2760
- FAQ_LISTING: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$e; })),
2761
- COURSE_CAROUSEL: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$c; })),
2762
- TEAM_CARD: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$b; })),
2763
- TEXT_GRID: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$d; })),
2764
- CONTACT: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$a; })),
2765
- FORM_ENQUIRY: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$9; })),
2766
- WEBINAR_LANDING_PAGE: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$8; })),
2767
- COURSE_LANDING_PAGE: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$7; })),
2768
- COURSE_LANDING_PAGE_V2: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$1; })),
2769
- FORM_LANDING_PAGE: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$6; })),
2770
- TILES_SECTION: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$5; })),
2771
- EMAIL_DRIP_MARKET: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$4; })),
2772
- ABOUT_INSTITUTE: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$3; })),
2773
- COUNTER_SECTION: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index; }))
2746
+ BANNER_CAROUSEL_RIGHT: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$t; })),
2747
+ GRID_CARD: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$s; })),
2748
+ BANNER_CAROUSEL_CENTER: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$r; })),
2749
+ BANNER_CAROUSEL_CENTER_V2: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$q; })),
2750
+ BANNER_CAROUSEL_LEFT: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$p; })),
2751
+ FORM_SUBSCRIBE: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$o; })),
2752
+ TEXT_TESTIMONIAL: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$n; })),
2753
+ VIDEO_TESTIMONIAL: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$m; })),
2754
+ VIDEO_WORKSHOP_PROMOTION: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$1; })),
2755
+ VIDEO: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$l; })),
2756
+ INFO: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$k; })),
2757
+ TEXT: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$j; })),
2758
+ IMAGE_GALLERY: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$i; })),
2759
+ FAQ_LISTING: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$h; })),
2760
+ COURSE_CAROUSEL: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$f; })),
2761
+ TEAM_CARD: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$e; })),
2762
+ TEXT_GRID: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$g; })),
2763
+ CONTACT: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$d; })),
2764
+ FORM_ENQUIRY: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$c; })),
2765
+ WEBINAR_LANDING_PAGE: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$b; })),
2766
+ COURSE_LANDING_PAGE: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$a; })),
2767
+ COURSE_LANDING_PAGE_V2: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index; })),
2768
+ FORM_LANDING_PAGE: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$9; })),
2769
+ TILES_SECTION: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$8; })),
2770
+ EMAIL_DRIP_MARKET: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$7; })),
2771
+ ABOUT_INSTITUTE: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$6; })),
2772
+ COUNTER_SECTION: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$5; })),
2773
+ TIMER_AND_CALL: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$2; })),
2774
+ STICKY_CTA: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$4; })),
2775
+ CUSTOM_HTML_SECTION: /*#__PURE__*/lazy(() => Promise.resolve().then(function () { return index$3; }))
2774
2776
  };
2775
2777
  const getCompToRender$1 = type => {
2776
2778
  const Comp = TYPE_TO_COMPONENT_MAP$1[type];
@@ -2791,7 +2793,7 @@ const MemoisedSection$1 = /*#__PURE__*/memo(({
2791
2793
  sectionIndex: sectionIndex
2792
2794
  });
2793
2795
  });
2794
- const SectionWithBackground = withSectionBackground(MemoisedSection$1);
2796
+ const SectionWithBackground$1 = withSectionBackground(MemoisedSection$1);
2795
2797
  function SectionRenderer$1({
2796
2798
  sectionData,
2797
2799
  sectionIndex,
@@ -2804,35 +2806,21 @@ function SectionRenderer$1({
2804
2806
 
2805
2807
  console.log('nishu222', sectionData);
2806
2808
  let sectionBg = {};
2807
- debugger;
2808
2809
  if (sectionData?.isV2Section) {
2809
- let currentObj = sectionData?.components?.find(component => component.hasOwnProperty('sectionsBgname')?.sectionBgData || {});
2810
- sectionBg = currentObj?.sectionsBgname?.sectionBgData || {};
2810
+ sectionBg = sectionData?.bgSection?.components?.[0]?.sectionBgData || {};
2811
+ }
2812
+ if (sectionData?.type === 'STICKY_CTA') {
2813
+ sectionData = {
2814
+ ...sectionData,
2815
+ isDefaultEditor: true
2816
+ };
2811
2817
  }
2812
-
2813
- // sectionBg ={
2814
- // id:"625fb1a879d4c9001261cewqsazxs21",
2815
- // value: "imagev",
2816
- // label: "",
2817
- // type: "image",
2818
- // bgType: "video",
2819
- // name: "Image",
2820
- // isYoutubeVideo: true,
2821
- // elementType: "div",
2822
- // isV2: true,
2823
- // metadata: {
2824
- // value: "https://www.youtube.com/watch?v=bjxTIcuzB6k&list=PLe6YKWr4VVM1x2LIpiqmVvG4QgIvoDEdO",
2825
- // }
2826
- // }
2827
- console.log('nishu222333', sectionData);
2828
2818
  return /*#__PURE__*/React.createElement(Suspense, {
2829
2819
  fallback: null /*GIF maybe*/
2830
- }, /*#__PURE__*/React.createElement(SectionWithBackground, {
2820
+ }, /*#__PURE__*/React.createElement(SectionWithBackground$1, {
2831
2821
  sectionData: sectionData,
2832
2822
  extraProps: extraProps,
2833
- sectionIndex: sectionIndex
2834
- // isSkipV2Section={sectionData?.isV2Section}
2835
- ,
2823
+ sectionIndex: sectionIndex,
2836
2824
  isSkipV2Section: sectionData?.isV2Section
2837
2825
  // componentBg={sectionData?.componentBg || { type: "image", value: "https://fastly.picsum.photos/id/4/5000/3333.jpg?hmac=ghf06FdmgiD0-G4c9DdNM8RnBIN7BO0-ZGEw47khHP4" }}
2838
2826
  ,
@@ -3082,522 +3070,6 @@ function PageRenderer$1({
3082
3070
  currencySymbol
3083
3071
  }), [isMobile, isLandingPages, layout, baseURLs, hashToken, isPreview, isEdit, templateId, navList, isMasterTemplate, basePath, validations, isTutorWebsite, extraProps, hideLogin, _id, countryCode, currencySymbol]);
3084
3072
  const theme = useMemo(() => generateTheme(color, font, context.isMobile), [color, font, context.isMobile]);
3085
- // sections = [
3086
- // {
3087
- // landingPageType: 'course',
3088
- // isActive: true,
3089
- // isV2Section: false,
3090
- // _id: '69980d5bf8d29a00129ae9a6',
3091
- // type: 'COURSE_LANDING_PAGE',
3092
- // label: 'COURSE LANDING PAGE',
3093
- // metadata: {},
3094
- // components: [
3095
- // {
3096
- // _id: '69980d5bf8d29a00129ae9a7',
3097
- // isActive: true,
3098
- // isEditable: true,
3099
- // sectionBgData: null,
3100
- // sectionBgOption: [],
3101
- // type: 'landingPage',
3102
- // metadata: {
3103
- // effectivePrice: 10.5,
3104
- // offerPriceValidFor: null,
3105
- // courseName: 'SSC test sanity Backward testing',
3106
- // courseId: 269615,
3107
- // courseType: 0,
3108
- // enableHandlingFee: 1,
3109
- // isPhysicalDeliveryEnabled: 0,
3110
- // orgId: 437914,
3111
- // isInstallmentEnabledInDIY: 0,
3112
- // price: 100,
3113
- // discount: 90,
3114
- // ifFeeHandledByTutor: 0,
3115
- // endDate: 1771871399000,
3116
- // thumbnail:
3117
- // 'https://storage.googleapis.com/cp-lower-whitelabel-assets-as-sth1-gcs/preprod/single/tcgsce/e1881549-cc79-4fd7-a6cb-44be0b992bcb.jpg',
3118
- // description: 'SSC test sanity Backward testing',
3119
- // isOfferActive: true,
3120
- // courseOverviewData: {
3121
- // states: [
3122
- // { key: 'OTH', name: 'Others' },
3123
- // { key: 'AN', name: 'Andaman and Nicobar Islands' },
3124
- // { key: 'AP', name: 'Andhra Pradesh' },
3125
- // { key: 'AR', name: 'Arunachal Pradesh' },
3126
- // { key: 'AS', name: 'Assam' },
3127
- // { key: 'BR', name: 'Bihar' },
3128
- // { key: 'CG', name: 'Chandigarh' },
3129
- // { key: 'CH', name: 'Chhattisgarh' },
3130
- // { key: 'DN', name: 'Dadra and Nagar Haveli' },
3131
- // { key: 'DD', name: 'Daman and Diu' },
3132
- // { key: 'DL', name: 'Delhi' },
3133
- // { key: 'GA', name: 'Goa' },
3134
- // { key: 'GJ', name: 'Gujarat' },
3135
- // { key: 'HR', name: 'Haryana' },
3136
- // { key: 'HP', name: 'Himachal Pradesh' },
3137
- // { key: 'JK', name: 'Jammu and Kashmir' },
3138
- // { key: 'JH', name: 'Jharkhand' },
3139
- // { key: 'KA', name: 'Karnataka' },
3140
- // { key: 'KL', name: 'Kerala' },
3141
- // { key: 'LA', name: 'Ladakh' },
3142
- // { key: 'LD', name: 'Lakshadweep' },
3143
- // { key: 'MP', name: 'Madhya Pradesh' },
3144
- // { key: 'MH', name: 'Maharashtra' },
3145
- // { key: 'MN', name: 'Manipur' },
3146
- // { key: 'ML', name: 'Meghalaya' },
3147
- // { key: 'MZ', name: 'Mizoram' },
3148
- // { key: 'NL', name: 'Nagaland' },
3149
- // { key: 'OR', name: 'Odisha' },
3150
- // { key: 'PY', name: 'Puducherry' },
3151
- // { key: 'PB', name: 'Punjab' },
3152
- // { key: 'RJ', name: 'Rajasthan' },
3153
- // { key: 'SK', name: 'Sikkim' },
3154
- // { key: 'TN', name: 'Tamil Nadu' },
3155
- // { key: 'TS', name: 'Telangana' },
3156
- // { key: 'TR', name: 'Tripura' },
3157
- // { key: 'UP', name: 'Uttar Pradesh' },
3158
- // { key: 'UK', name: 'Uttarakhand' },
3159
- // { key: 'WB', name: 'West Bengal' }
3160
- // ],
3161
- // priorityOrderList: [],
3162
- // socialLinks: {
3163
- // links: [
3164
- // {
3165
- // type: 'WHATSAPP',
3166
- // iconUrl:
3167
- // 'https://ali-cdn-cp-assets-public.classplus.co/cams/store/icon/icon_whatsap.png',
3168
- // shareUrl:
3169
- // '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',
3170
- // shareText:
3171
- // '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',
3172
- // appName: 'WhatsApp'
3173
- // },
3174
- // {
3175
- // type: 'FACEBOOK',
3176
- // iconUrl:
3177
- // 'https://ali-cdn-cp-assets-public.classplus.co/cams/store/icon/icon_fb.png',
3178
- // shareUrl:
3179
- // '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',
3180
- // shareText:
3181
- // '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',
3182
- // appName: 'Facebook'
3183
- // },
3184
- // {
3185
- // type: 'TELEGRAM',
3186
- // iconUrl:
3187
- // 'https://ali-cdn-cp-assets-public.classplus.co/cams/store/icon/icon_telegram.png',
3188
- // shareUrl:
3189
- // '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',
3190
- // shareText:
3191
- // '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',
3192
- // appName: 'Telegram'
3193
- // },
3194
- // {
3195
- // type: 'LINKEDIN',
3196
- // iconUrl:
3197
- // 'https://ali-cdn-cp-assets-public.classplus.co/cams/store/icon/icon_linkedIn.png',
3198
- // shareUrl:
3199
- // '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',
3200
- // shareText:
3201
- // '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',
3202
- // appName: 'LinkedIn'
3203
- // }
3204
- // ],
3205
- // copyUrl:
3206
- // 'https://tcgsce.tw-preprod.classplusapp.com/269615?utm_referrer=null\u0026utm_source=copy-link\u0026utm_medium=social\u0026utm_campaign=web-course-share',
3207
- // moreAppsText:
3208
- // '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',
3209
- // publishText:
3210
- // 'You have Successfully Published SSC test sanity Backward testing'
3211
- // },
3212
- // details: {
3213
- // name: 'SSC test sanity Backward testing',
3214
- // description: 'SSC test sanity Backward testing',
3215
- // isWebVideoAllowed: 0,
3216
- // duration: '1 YEAR(S)',
3217
- // shareStatus: '',
3218
- // imageUrl:
3219
- // 'https://storage.googleapis.com/cp-lower-whitelabel-assets-as-sth1-gcs/preprod/single/tcgsce/e1881549-cc79-4fd7-a6cb-44be0b992bcb.jpg',
3220
- // shareUrl: 'https://tcgsce.tw-preprod.classplusapp.com/269615',
3221
- // utmUrls: {},
3222
- // appLink: 'https://tcgsce.on-app.in/app/oc/269615/tcgsce',
3223
- // tncUrl:
3224
- // 'https://cdn-wl-assets.classplus.co/tnc/student_tnc.html',
3225
- // strip: null
3226
- // },
3227
- // installments: {
3228
- // isInstallmentEnabled: 0,
3229
- // showInstallmentInfo: 1
3230
- // },
3231
- // resources: { files: 2, videos: 1, tests: 6 },
3232
- // freeContent: null,
3233
- // freeContentCount: 0,
3234
- // resourseDataText: {
3235
- // heading: '9 Learning Material',
3236
- // subHeading: '2 Files, 1 Video lectures, 6 Tests',
3237
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/store-urp/content.svg',
3238
- // iconUrl:
3239
- // 'https://ali-cdn-cp-assets-public.classplus.co/cp-store-ui-revamp/courseOverview/play_button_png.png'
3240
- // },
3241
- // resourceCount: 9,
3242
- // courseTagList: [
3243
- // {
3244
- // text: 'TEST',
3245
- // color: '#3C4852',
3246
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cp-store-ui-revamp/courseOverview/tests-cov.svg',
3247
- // bgTriangleColor: '#F6F8FA'
3248
- // },
3249
- // {
3250
- // text: 'PDFs',
3251
- // color: '#3C4852',
3252
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cp-store-ui-revamp/courseOverview/pdfs-cov.svg',
3253
- // bgTriangleColor: '#F6F8FA'
3254
- // },
3255
- // {
3256
- // text: 'VIDEOS',
3257
- // color: '#3C4852',
3258
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cp-store-ui-revamp/courseOverview/videos-cov.svg',
3259
- // bgTriangleColor: '#F6F8FA'
3260
- // }
3261
- // ],
3262
- // categories: [],
3263
- // categoryList: [],
3264
- // likeText: '5',
3265
- // createdBy: null,
3266
- // videoRestrictions: null,
3267
- // priceDetails: {
3268
- // isPreview: 1,
3269
- // handlingCharges: 0.05,
3270
- // tncUrl:
3271
- // 'https://cdn-wl-assets.classplus.co/tnc/student_tnc.html',
3272
- // isPriceDetails: 1,
3273
- // coursePrice: 1,
3274
- // ifFeeHandledByTutor: 0,
3275
- // handlingFactor: 5.030984140321408,
3276
- // totalPayableAmount: 105,
3277
- // discountPercentage: 0,
3278
- // price: 1,
3279
- // discount: 0
3280
- // },
3281
- // priceDetailsForGuest: null,
3282
- // chatDetails: {
3283
- // id: 52422588,
3284
- // name: 'PRE-prod/QA tutor',
3285
- // imageUrl: null
3286
- // },
3287
- // paymentSummary: null,
3288
- // duration: {
3289
- // isLifetime: 0,
3290
- // expiryDateType: 3,
3291
- // expiryDateValue: 1,
3292
- // isExpiryFixed: 0,
3293
- // fixedExpiryDateTimestamp: null,
3294
- // fixedExpiryDate: null
3295
- // },
3296
- // metaData: {
3297
- // ownerExpiryDate: '-1',
3298
- // enableTax: 1,
3299
- // enableHandlingFee: 1,
3300
- // contentMarketAccessStatus: 2,
3301
- // isTbTest: 0,
3302
- // id: 269615,
3303
- // courseType: 0,
3304
- // canEditCourseType: 1,
3305
- // totalSubscriberCount: 5,
3306
- // isFeatured: null,
3307
- // isFreeCourse: 0,
3308
- // isShareable: 0,
3309
- // isPhysicalDeliveryEnabled: 0,
3310
- // isDeliveryFeeHandledByTutor: 0,
3311
- // tentativeDeliveryDays: null,
3312
- // isCertificateEnabled: 0,
3313
- // isPreview: 1,
3314
- // isPurchased: 0,
3315
- // isReselling: 0,
3316
- // isOwn: 1,
3317
- // isDeletable: 1,
3318
- // isPublished: 1,
3319
- // singlePaymentLink: '',
3320
- // canEditPermissions: 0,
3321
- // canEditCourse: 0,
3322
- // price: 1,
3323
- // discount: 0,
3324
- // orgId: '437914',
3325
- // isPmsEnabled: 1,
3326
- // pdfDownloadOnWeb: 0,
3327
- // pdfSecuirityOnWeb: 0,
3328
- // offlineMaterialFlag: 0,
3329
- // doubtBuddyCourseFlag: 0,
3330
- // isPaymentSupportEnabled: 0,
3331
- // isPaymentProEnabled: 0,
3332
- // ocsId: null,
3333
- // isDynamicBundlingEnabled: 0,
3334
- // isLiked: 0,
3335
- // isPromoApplicable: 0,
3336
- // showSignUp: 0,
3337
- // isDownloadable: 0,
3338
- // isDocDownloadable: 0,
3339
- // tncUrl:
3340
- // 'https://cdn-wl-assets.classplus.co/tnc/student_tnc.html',
3341
- // bundleData: {
3342
- // bundleId: null,
3343
- // bundles: [],
3344
- // isBundlingEnabled: 1,
3345
- // isBooksAdded: 0,
3346
- // isTestSeriesAdded: 0,
3347
- // bundledReceipt: '',
3348
- // bookDeliveryFees: 0,
3349
- // linkedCoursePrice: 0,
3350
- // whatsAppLink: 'https://classplus.typeform.com/to/ykzMVJ4Z',
3351
- // recommendedCourses: []
3352
- // },
3353
- // isComboActive: 0,
3354
- // toShowShareObjects: 1
3355
- // },
3356
- // likes: {
3357
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cams/cards-icon/red_icon_3x.png',
3358
- // value: '5'
3359
- // },
3360
- // liveCard: null,
3361
- // zoomLiveCard: null,
3362
- // zoomLiveCardV2: null,
3363
- // courseDuration: {
3364
- // heading: 'Course Duration',
3365
- // text: 'Valid for 1 year',
3366
- // subText: 'Course available for 1 year after purchase',
3367
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cams/sellOnWhatsapp/ic_validity.svg'
3368
- // },
3369
- // singlePaymentStudentShareUrl:
3370
- // 'https://tcgsce.tw-preprod.classplusapp.com/269615',
3371
- // courseCreatorDetails: {
3372
- // heading: 'About Course Creator',
3373
- // imageUrl: '',
3374
- // tutorName: 'PRE-prod/QA tutor',
3375
- // orgName: 'DIY-preprod',
3376
- // experience: 0,
3377
- // qualification: '',
3378
- // specialisation: 'jkfhgg8',
3379
- // courses: {
3380
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/cams/sellOnWhatsapp/ic_courses.svg',
3381
- // text: '1031 Courses',
3382
- // value: 1031
3383
- // },
3384
- // tutorDescription:
3385
- // 'cucj fhjevwihfvhjwrebvhjbdsjhvcbjhdfsbjkvcbwdjkbcjewbvjkbewjkvbjkewbv dsdsddsdsdjhjgjh'
3386
- // },
3387
- // multipleValidity: null,
3388
- // multipleValiditySelected: 0,
3389
- // orgDetails: {
3390
- // id: '437914',
3391
- // code: 'tcgsce',
3392
- // name: 'DIY-preprod',
3393
- // isInternational: 0,
3394
- // refundPolicyUrl: null
3395
- // },
3396
- // isGooglePlayEnabled: 0,
3397
- // purchaseViaWhatsapp: 0,
3398
- // purchaseViaWhatsappV2: 0,
3399
- // durationText: {
3400
- // heading: '1 Year Validity',
3401
- // subHeading: 'You will get this course for 1 full Year(s)',
3402
- // icon: 'https://ali-cdn-cp-assets-public.classplus.co/store-urp/validity.svg',
3403
- // iconUrl:
3404
- // 'https://ali-cdn-cp-assets-public.classplus.co/cp-store-ui-revamp/courseOverview/time_png.png'
3405
- // },
3406
- // whatsIncluded: [],
3407
- // upcomingLiveClasses: null,
3408
- // allAppDownloadLiveCard: null,
3409
- // videoDisclaimer: null
3410
- // }
3411
- // },
3412
- // components: []
3413
- // }
3414
- // ],
3415
- // order: 1,
3416
- // sectionId: '6301efb45f80177acb4e5720'
3417
- // },
3418
- // {
3419
- // landingPageType: 'template',
3420
- // isActive: true,
3421
- // isV2Section: true,
3422
- // _id: '69980d7ff8d29a00129ae9aa',
3423
- // type: 'INFO',
3424
- // components: [
3425
- // {
3426
- // _id: '69957138231456ffc3cf274c',
3427
- // metadata: {},
3428
- // sectionsBgname: {
3429
- // _id: '6995713d49059b26de4dba0e',
3430
- // isActive: true,
3431
- // isEditable: true,
3432
- // sectionBgData: {
3433
- // id: '6995714b9911177086c6ed58',
3434
- // value: '',
3435
- // label: '',
3436
- // type: 'text',
3437
- // name: 'Color',
3438
- // bgType: 'color',
3439
- // elementType: 'div',
3440
- // isYoutubeVideo: false,
3441
- // metadata: { value: 'pink' }
3442
- // },
3443
- // sectionBgOption: [
3444
- // {
3445
- // id: '699571422bfd97eb41067be7',
3446
- // value: 'imagev',
3447
- // label: '',
3448
- // bgType: 'image',
3449
- // type: 'image',
3450
- // name: 'Image',
3451
- // isYoutubeVideo: false,
3452
- // elementType: 'div',
3453
- // metadata: {
3454
- // value:
3455
- // 'https://fastly.picsum.photos/id/4/5000/3333.jpg?hmac=ghf06FdmgiD0-G4c9DdNM8RnBIN7BO0-ZGEw47khHP4'
3456
- // }
3457
- // },
3458
- // {
3459
- // id: '699571461f66062042534e24',
3460
- // value: 'colorv',
3461
- // label: '',
3462
- // type: 'video',
3463
- // bgType: 'video',
3464
- // isYoutubeVideo: true,
3465
- // name: 'Video',
3466
- // elementType: 'div',
3467
- // metadata: {
3468
- // value: 'https://www.youtube.com/watch?v=rET3lp6kk2E'
3469
- // }
3470
- // },
3471
- // {
3472
- // id: '6995714b9911177086c6ed58',
3473
- // value: '',
3474
- // label: '',
3475
- // type: 'text',
3476
- // name: 'Color',
3477
- // bgType: 'color',
3478
- // elementType: 'div',
3479
- // isYoutubeVideo: false,
3480
- // metadata: { value: 'pink' }
3481
- // },
3482
- // {
3483
- // id: '6995714ff18384ed30435509',
3484
- // value: '',
3485
- // label: '',
3486
- // type: 'gradient',
3487
- // name: 'Theme',
3488
- // bgType: 'gradient',
3489
- // elementType: 'div',
3490
- // isYoutubeVideo: false,
3491
- // metadata: {
3492
- // value: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)'
3493
- // }
3494
- // }
3495
- // ],
3496
- // type: 'sectionbg',
3497
- // name: 'sectionsBgname',
3498
- // label: 'background',
3499
- // elementType: 'div',
3500
- // components: []
3501
- // }
3502
- // },
3503
- // {
3504
- // _id: '6995715b9bba9bc46615c1e4',
3505
- // metadata: { order: 1 },
3506
- // cardHeading: {
3507
- // _id: '6995715f2a9947226b1907f9',
3508
- // isActive: true,
3509
- // isEditable: true,
3510
- // sectionBgData: null,
3511
- // sectionBgOption: [],
3512
- // type: 'text',
3513
- // name: 'cardHeading',
3514
- // elementType: 'div',
3515
- // label: 'Heading',
3516
- // metadata: { value: 'OUR COURSES' },
3517
- // components: []
3518
- // },
3519
- // title: {
3520
- // _id: '699571642b8fffd9ae0847b6',
3521
- // isActive: true,
3522
- // isEditable: true,
3523
- // sectionBgData: null,
3524
- // sectionBgOption: [],
3525
- // type: 'text',
3526
- // name: 'title',
3527
- // elementType: 'h2',
3528
- // label: 'Title',
3529
- // metadata: {
3530
- // value: 'Cohesive approach delivers comprehensive results'
3531
- // },
3532
- // components: []
3533
- // },
3534
- // contentList: {
3535
- // _id: '69957168a02d7605b87aae07',
3536
- // isActive: true,
3537
- // isEditable: true,
3538
- // sectionBgData: null,
3539
- // sectionBgOption: [],
3540
- // type: 'carousel',
3541
- // name: 'contentList',
3542
- // elementType: '',
3543
- // label: 'Content List',
3544
- // components: [
3545
- // {
3546
- // _id: '6995716ca258103860327c34',
3547
- // metadata: { order: 1 },
3548
- // contentHeading: {
3549
- // _id: '699571705718b5a51caf4c80',
3550
- // isActive: true,
3551
- // isEditable: true,
3552
- // sectionBgData: null,
3553
- // sectionBgOption: [],
3554
- // type: 'text',
3555
- // name: 'contentHeading',
3556
- // elementType: 'h3',
3557
- // label: 'Subheading',
3558
- // metadata: { value: 'Diploma in vocal music' },
3559
- // components: []
3560
- // },
3561
- // contentPara: {
3562
- // _id: '69957174083cdd8b733c312c',
3563
- // isActive: true,
3564
- // isEditable: true,
3565
- // sectionBgData: null,
3566
- // sectionBgOption: [],
3567
- // type: 'text',
3568
- // name: 'contentPara',
3569
- // elementType: 'p',
3570
- // label: 'Description',
3571
- // metadata: {
3572
- // value:
3573
- // 'Produce musical sounds with the voice and augment regular speech by using the perfect rhythm, vocal techniques and sustained tonality.'
3574
- // },
3575
- // components: []
3576
- // },
3577
- // icon: {
3578
- // _id: '6995717d57fb5824858c1f67',
3579
- // isActive: true,
3580
- // isEditable: true,
3581
- // sectionBgData: null,
3582
- // sectionBgOption: [],
3583
- // type: 'icon',
3584
- // name: 'icon',
3585
- // elementType: 'Icon',
3586
- // label: 'Icon',
3587
- // metadata: { value: 'Vocal' },
3588
- // components: []
3589
- // }
3590
- // }
3591
- // ]
3592
- // }
3593
- // }
3594
- // ],
3595
- // label: 'INFO',
3596
- // metadata: {},
3597
- // order: 2
3598
- // }
3599
- // ];
3600
-
3601
3073
  const Wrapper = SectionWrapper || Fragment;
3602
3074
  return /*#__PURE__*/React.createElement(ThemeProvider, {
3603
3075
  theme: theme
@@ -4092,7 +3564,7 @@ function BannerCarouselRight({
4092
3564
  })))));
4093
3565
  }
4094
3566
 
4095
- var index$q = /*#__PURE__*/Object.freeze({
3567
+ var index$t = /*#__PURE__*/Object.freeze({
4096
3568
  __proto__: null,
4097
3569
  'default': BannerCarouselRight
4098
3570
  });
@@ -4268,7 +3740,7 @@ function List({
4268
3740
  containerWidth,
4269
3741
  isMobile
4270
3742
  });
4271
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
3743
+ const [nodeData] = sectionData.components;
4272
3744
  const getNumber = val => {
4273
3745
  return val.toString().length == 1 ? '0' + val : val;
4274
3746
  };
@@ -4316,7 +3788,7 @@ function List({
4316
3788
  }))));
4317
3789
  }
4318
3790
 
4319
- var index$p = /*#__PURE__*/Object.freeze({
3791
+ var index$s = /*#__PURE__*/Object.freeze({
4320
3792
  __proto__: null,
4321
3793
  'default': List
4322
3794
  });
@@ -4624,7 +4096,7 @@ function BannerCarouselCenter({
4624
4096
  }))));
4625
4097
  }
4626
4098
 
4627
- var index$o = /*#__PURE__*/Object.freeze({
4099
+ var index$r = /*#__PURE__*/Object.freeze({
4628
4100
  __proto__: null,
4629
4101
  'default': BannerCarouselCenter
4630
4102
  });
@@ -4919,7 +4391,7 @@ function BannerCarouselCenterv2({
4919
4391
  }))));
4920
4392
  }
4921
4393
 
4922
- var index$n = /*#__PURE__*/Object.freeze({
4394
+ var index$q = /*#__PURE__*/Object.freeze({
4923
4395
  __proto__: null,
4924
4396
  'default': BannerCarouselCenterv2
4925
4397
  });
@@ -5160,7 +4632,7 @@ function BannerCarouselLeft({
5160
4632
  })))));
5161
4633
  }
5162
4634
 
5163
- var index$m = /*#__PURE__*/Object.freeze({
4635
+ var index$p = /*#__PURE__*/Object.freeze({
5164
4636
  __proto__: null,
5165
4637
  'default': BannerCarouselLeft
5166
4638
  });
@@ -5441,7 +4913,7 @@ function SubscribeToNewsletter({
5441
4913
  isLandingPages,
5442
4914
  extraProps
5443
4915
  } = useContext(PageContext);
5444
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
4916
+ const [nodeData] = sectionData.components;
5445
4917
  const classes = useSectionStyles$4({
5446
4918
  containerWidth,
5447
4919
  isMobile
@@ -5556,7 +5028,7 @@ function SubscribeToNewsletter({
5556
5028
  })))))));
5557
5029
  }
5558
5030
 
5559
- var index$l = /*#__PURE__*/Object.freeze({
5031
+ var index$o = /*#__PURE__*/Object.freeze({
5560
5032
  __proto__: null,
5561
5033
  'default': SubscribeToNewsletter
5562
5034
  });
@@ -5844,7 +5316,7 @@ function Testimonials({
5844
5316
  }));
5845
5317
  }
5846
5318
 
5847
- var index$k = /*#__PURE__*/Object.freeze({
5319
+ var index$n = /*#__PURE__*/Object.freeze({
5848
5320
  __proto__: null,
5849
5321
  'default': Testimonials
5850
5322
  });
@@ -6217,7 +5689,7 @@ function VideoTestimonial({
6217
5689
  containerWidth,
6218
5690
  isMobile
6219
5691
  });
6220
- const [videoData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
5692
+ const [videoData] = sectionData.components;
6221
5693
  const Wrapper = videoData.videoCarousel.components.length > 1 ? Carousel : Fragment;
6222
5694
  return /*#__PURE__*/React.createElement("div", {
6223
5695
  className: classes.videoTestimonialSuperContainer
@@ -6248,7 +5720,7 @@ function VideoTestimonial({
6248
5720
  }))))));
6249
5721
  }
6250
5722
 
6251
- var index$j = /*#__PURE__*/Object.freeze({
5723
+ var index$m = /*#__PURE__*/Object.freeze({
6252
5724
  __proto__: null,
6253
5725
  'default': VideoTestimonial
6254
5726
  });
@@ -6437,7 +5909,7 @@ function Video({
6437
5909
  containerWidth
6438
5910
  }
6439
5911
  } = useContext(PageContext);
6440
- const [videoData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
5912
+ const [videoData] = sectionData.components;
6441
5913
  const cardsCount = videoData?.videoCarousel?.components?.length;
6442
5914
  const slidesToShow = isMobile ? 1 : 2;
6443
5915
  const classes = useVideoStyles({
@@ -6484,7 +5956,7 @@ function Video({
6484
5956
  }, carouselContent))));
6485
5957
  }
6486
5958
 
6487
- var index$i = /*#__PURE__*/Object.freeze({
5959
+ var index$l = /*#__PURE__*/Object.freeze({
6488
5960
  __proto__: null,
6489
5961
  'default': Video
6490
5962
  });
@@ -6644,7 +6116,7 @@ function Info({
6644
6116
  } = useContext(PageContext);
6645
6117
  const theme = useTheme();
6646
6118
  const slidesToShow = isMobile ? 1 : 4;
6647
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
6119
+ const [nodeData] = sectionData.components;
6648
6120
  const carouselList = nodeData?.contentList?.components;
6649
6121
  const cardsCount = carouselList?.length;
6650
6122
  const classes = useSectionStyles$3({
@@ -6720,7 +6192,7 @@ function Info({
6720
6192
  }, carouselContent))));
6721
6193
  }
6722
6194
 
6723
- var index$h = /*#__PURE__*/Object.freeze({
6195
+ var index$k = /*#__PURE__*/Object.freeze({
6724
6196
  __proto__: null,
6725
6197
  'default': Info
6726
6198
  });
@@ -6803,7 +6275,7 @@ const TextSection = ({
6803
6275
  containerWidth,
6804
6276
  isMobile
6805
6277
  });
6806
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
6278
+ const [nodeData] = sectionData.components;
6807
6279
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("section", {
6808
6280
  className: classes.section
6809
6281
  }, /*#__PURE__*/React.createElement("div", {
@@ -6839,7 +6311,7 @@ const TextSection = ({
6839
6311
  })))));
6840
6312
  };
6841
6313
 
6842
- var index$g = /*#__PURE__*/Object.freeze({
6314
+ var index$j = /*#__PURE__*/Object.freeze({
6843
6315
  __proto__: null,
6844
6316
  'default': TextSection
6845
6317
  });
@@ -6980,7 +6452,7 @@ function PhotoGallery({
6980
6452
  containerWidth
6981
6453
  }
6982
6454
  } = useContext(PageContext);
6983
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
6455
+ const [nodeData] = sectionData.components;
6984
6456
  const carouselList = nodeData?.cardCarousel?.components;
6985
6457
  const cardsCount = carouselList?.length;
6986
6458
  const slidesToShow = isMobile ? 1 : 2;
@@ -7062,7 +6534,7 @@ function PhotoGallery({
7062
6534
  }, carouselContent))));
7063
6535
  }
7064
6536
 
7065
- var index$f = /*#__PURE__*/Object.freeze({
6537
+ var index$i = /*#__PURE__*/Object.freeze({
7066
6538
  __proto__: null,
7067
6539
  'default': PhotoGallery
7068
6540
  });
@@ -7179,7 +6651,7 @@ const FAQListing = ({
7179
6651
  containerWidth,
7180
6652
  isMobile
7181
6653
  });
7182
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
6654
+ const [nodeData] = sectionData.components;
7183
6655
  return /*#__PURE__*/React.createElement("section", {
7184
6656
  className: classes.section
7185
6657
  }, /*#__PURE__*/React.createElement("div", {
@@ -7245,7 +6717,7 @@ const Accordion = ({
7245
6717
  })));
7246
6718
  };
7247
6719
 
7248
- var index$e = /*#__PURE__*/Object.freeze({
6720
+ var index$h = /*#__PURE__*/Object.freeze({
7249
6721
  __proto__: null,
7250
6722
  'default': FAQListing
7251
6723
  });
@@ -7357,7 +6829,7 @@ const TextGrid = ({
7357
6829
  containerWidth
7358
6830
  }
7359
6831
  } = useContext(PageContext);
7360
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
6832
+ const [nodeData] = sectionData.components;
7361
6833
  const cardsCount = nodeData?.contentList?.components?.length;
7362
6834
  const slidesToShow = isMobile ? 1 : 2;
7363
6835
  const classes = useTextGridStyles({
@@ -7416,7 +6888,7 @@ const TextGrid = ({
7416
6888
  }, carouselContent))));
7417
6889
  };
7418
6890
 
7419
- var index$d = /*#__PURE__*/Object.freeze({
6891
+ var index$g = /*#__PURE__*/Object.freeze({
7420
6892
  __proto__: null,
7421
6893
  'default': TextGrid
7422
6894
  });
@@ -8700,7 +8172,7 @@ function SimpleCardsContainer({
8700
8172
  }, children);
8701
8173
  }
8702
8174
 
8703
- var index$c = /*#__PURE__*/Object.freeze({
8175
+ var index$f = /*#__PURE__*/Object.freeze({
8704
8176
  __proto__: null,
8705
8177
  'default': courses
8706
8178
  });
@@ -8966,7 +8438,7 @@ function TeamCard({
8966
8438
  containerWidth
8967
8439
  }
8968
8440
  } = useContext(PageContext);
8969
- const [teamData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
8441
+ const [teamData] = sectionData.components;
8970
8442
  const cardsCount = teamData?.teamCarousel?.components?.length;
8971
8443
  const slidesToShow = isMobile ? 1 : 4;
8972
8444
  const classes = useTeamStyles({
@@ -9018,7 +8490,7 @@ function TeamCard({
9018
8490
  }, " ", getCarouselContent())));
9019
8491
  }
9020
8492
 
9021
- var index$b = /*#__PURE__*/Object.freeze({
8493
+ var index$e = /*#__PURE__*/Object.freeze({
9022
8494
  __proto__: null,
9023
8495
  'default': TeamCard
9024
8496
  });
@@ -9205,7 +8677,7 @@ function FormEnquiry({
9205
8677
  containerWidth,
9206
8678
  isMobile
9207
8679
  });
9208
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
8680
+ const [nodeData] = sectionData.components;
9209
8681
  const [isSubmitted, setIsSubmitted] = useState(false);
9210
8682
  const theme = useTheme();
9211
8683
  let [btnDisabled, setBtnDisabled] = useState(false);
@@ -9439,7 +8911,7 @@ function FormEnquiry({
9439
8911
  })))))));
9440
8912
  }
9441
8913
 
9442
- var index$a = /*#__PURE__*/Object.freeze({
8914
+ var index$d = /*#__PURE__*/Object.freeze({
9443
8915
  __proto__: null,
9444
8916
  'default': FormEnquiry
9445
8917
  });
@@ -9662,7 +9134,7 @@ function Contact({
9662
9134
  } = useContext(PageContext);
9663
9135
  let [btnDisabled, setBtnDisabled] = useState(false);
9664
9136
  const [isSubmitted, setIsSubmitted] = useState(false);
9665
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
9137
+ const [nodeData] = sectionData.components;
9666
9138
  const classes = useSectionStyles({
9667
9139
  containerWidth,
9668
9140
  isMobile
@@ -9861,7 +9333,7 @@ function Contact({
9861
9333
  })))))));
9862
9334
  }
9863
9335
 
9864
- var index$9 = /*#__PURE__*/Object.freeze({
9336
+ var index$c = /*#__PURE__*/Object.freeze({
9865
9337
  __proto__: null,
9866
9338
  'default': Contact
9867
9339
  });
@@ -10338,7 +9810,7 @@ function CoursePromotionPage$1({
10338
9810
  }))));
10339
9811
  }
10340
9812
 
10341
- var index$8 = /*#__PURE__*/Object.freeze({
9813
+ var index$b = /*#__PURE__*/Object.freeze({
10342
9814
  __proto__: null,
10343
9815
  'default': CoursePromotionPage$1
10344
9816
  });
@@ -10925,7 +10397,7 @@ function CoursePromotionPage({
10925
10397
  }))));
10926
10398
  }
10927
10399
 
10928
- var index$7 = /*#__PURE__*/Object.freeze({
10400
+ var index$a = /*#__PURE__*/Object.freeze({
10929
10401
  __proto__: null,
10930
10402
  'default': CoursePromotionPage
10931
10403
  });
@@ -11288,7 +10760,7 @@ const FormPage = ({
11288
10760
  })))));
11289
10761
  };
11290
10762
 
11291
- var index$6 = /*#__PURE__*/Object.freeze({
10763
+ var index$9 = /*#__PURE__*/Object.freeze({
11292
10764
  __proto__: null,
11293
10765
  'default': FormPage
11294
10766
  });
@@ -11388,7 +10860,7 @@ function Tiles({
11388
10860
  const classes = useTilesStyles({
11389
10861
  isMobile
11390
10862
  });
11391
- const nodeData = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
10863
+ const nodeData = sectionData.components;
11392
10864
  const tilesList = nodeData[0]?.tilesList.components;
11393
10865
  const handleClick = value => {
11394
10866
  if (!isEdit && value) {
@@ -11436,7 +10908,7 @@ function Tiles({
11436
10908
  }, TileDiv)));
11437
10909
  }
11438
10910
 
11439
- var index$5 = /*#__PURE__*/Object.freeze({
10911
+ var index$8 = /*#__PURE__*/Object.freeze({
11440
10912
  __proto__: null,
11441
10913
  'default': Tiles
11442
10914
  });
@@ -11909,7 +11381,7 @@ function EmailDripMarket({
11909
11381
  })));
11910
11382
  }
11911
11383
 
11912
- var index$4 = /*#__PURE__*/Object.freeze({
11384
+ var index$7 = /*#__PURE__*/Object.freeze({
11913
11385
  __proto__: null,
11914
11386
  'default': EmailDripMarket
11915
11387
  });
@@ -12135,7 +11607,7 @@ function ABOUT_INSTITUTE({
12135
11607
  containerWidth,
12136
11608
  isMobile
12137
11609
  });
12138
- const [nodeData] = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
11610
+ const [nodeData] = sectionData.components;
12139
11611
  const [highlightNodeData] = nodeData?.highlight?.components;
12140
11612
  const theme = useTheme();
12141
11613
  const ImageJSX = () => {
@@ -12277,205 +11749,26 @@ function ABOUT_INSTITUTE({
12277
11749
  }, /*#__PURE__*/React.createElement(ImageJSX, null), /*#__PURE__*/React.createElement(ContentJSX, null)), /*#__PURE__*/React.createElement(HighlightJSX, null)));
12278
11750
  }
12279
11751
 
12280
- var index$3 = /*#__PURE__*/Object.freeze({
11752
+ var index$6 = /*#__PURE__*/Object.freeze({
12281
11753
  __proto__: null,
12282
11754
  'default': ABOUT_INSTITUTE
12283
11755
  });
12284
11756
 
12285
- // import TIMER_AND_CALL from '../../sections/timerAndCall';
12286
- const TYPE_TO_COMPONENT_MAP = {
12287
- BANNER_CAROUSEL_RIGHT: BannerCarouselRight,
12288
- GRID_CARD: List,
12289
- BANNER_CAROUSEL_CENTER: BannerCarouselCenter,
12290
- BANNER_CAROUSEL_CENTER_V2: BannerCarouselCenterv2,
12291
- BANNER_CAROUSEL_LEFT: BannerCarouselLeft,
12292
- FORM_SUBSCRIBE: SubscribeToNewsletter,
12293
- TEXT_TESTIMONIAL: Testimonials,
12294
- VIDEO_TESTIMONIAL: VideoTestimonial,
12295
- VIDEO: Video,
12296
- INFO: Info,
12297
- TEXT: TextSection,
12298
- IMAGE_GALLERY: PhotoGallery,
12299
- FAQ_LISTING: FAQListing,
12300
- TEXT_GRID: TextGrid,
12301
- COURSE_CAROUSEL: courses,
12302
- TEAM_CARD: TeamCard,
12303
- CONTACT: FormEnquiry,
12304
- FORM_ENQUIRY: Contact,
12305
- WEBINAR_LANDING_PAGE: CoursePromotionPage$1,
12306
- COURSE_LANDING_PAGE: CoursePromotionPage,
12307
- FORM_LANDING_PAGE: FormPage,
12308
- TILES_SECTION: Tiles,
12309
- EMAIL_DRIP_MARKET: EmailDripMarket,
12310
- ABOUT_INSTITUTE
12311
- };
12312
- const getCompToRender = type => TYPE_TO_COMPONENT_MAP[type] || (() => null);
12313
- const MemoisedSection = /*#__PURE__*/memo(({
12314
- sectionData,
12315
- extraProps,
12316
- isCustomWebsite,
12317
- sectionIndex
12318
- }) => {
12319
- console.log('extraProps in section data', extraProps);
12320
- const SectionComp = getCompToRender(sectionData.type);
12321
- return /*#__PURE__*/React.createElement(SectionComp, {
12322
- sectionData: sectionData,
12323
- extraProps: extraProps,
12324
- isCustomWebsite: isCustomWebsite,
12325
- sectionIndex: sectionIndex
12326
- });
12327
- });
12328
- function SectionRenderer({
12329
- sectionData,
12330
- extraProps,
12331
- isCustomWebsite,
12332
- sectionIndex
12333
- }) {
12334
- return /*#__PURE__*/React.createElement(MemoisedSection, {
12335
- sectionData: sectionData,
12336
- extraProps: extraProps,
12337
- isCustomWebsite: isCustomWebsite,
12338
- sectionIndex: sectionIndex
12339
- });
12340
- }
12341
-
12342
- function PageRenderer({
12343
- pageData: {
12344
- metadata: {
12345
- theme: {
12346
- color = defaultTheme.color,
12347
- font = defaultTheme.font
12348
- } = defaultTheme,
12349
- layout = defaultLayout
12350
- } = defaultMetadata,
12351
- sections,
12352
- header,
12353
- footer,
12354
- validations = {},
12355
- _id,
12356
- isLandingPage = false,
12357
- isCustomWebsite = false
12358
- },
12359
- isMobile = false,
12360
- isLandingPages = false,
12361
- baseURLs = {},
12362
- hashToken,
12363
- SectionWrapper,
12364
- isMasterTemplate,
12365
- basePath,
12366
- countryCode,
12367
- currencySymbol,
12368
- isPreview,
12369
- isEdit,
12370
- sectionPlaceholder,
12371
- templateId,
12372
- isTutorWebsite = false,
12373
- extraProps,
12374
- hideLogin
12375
- }) {
12376
- const navList = header?.navs;
12377
- const context = useMemo(() => ({
12378
- isMobile,
12379
- isLandingPages,
12380
- layout,
12381
- baseURLs,
12382
- hashToken,
12383
- isMasterTemplate,
12384
- basePath,
12385
- isPreview,
12386
- isEdit,
12387
- templateId,
12388
- navList,
12389
- validations,
12390
- isTutorWebsite,
12391
- extraProps,
12392
- hideLogin,
12393
- isCustomWebsite,
12394
- _id,
12395
- countryCode,
12396
- currencySymbol
12397
- }), [isMobile, isLandingPages, layout, baseURLs, hashToken, isPreview, isEdit, templateId, navList, isMasterTemplate, basePath, validations, isTutorWebsite, extraProps, hideLogin, _id, countryCode, currencySymbol]);
12398
- const theme = useMemo(() => generateTheme(color, font, context.isMobile), [color, font, context.isMobile]);
12399
- const Wrapper = SectionWrapper || Fragment;
12400
- return /*#__PURE__*/React.createElement(ThemeProvider, {
12401
- theme: theme
12402
- }, /*#__PURE__*/React.createElement(PageContext.Provider, {
12403
- value: context
12404
- }, /*#__PURE__*/React.createElement(FontSeeder, {
12405
- fontFamily: font
12406
- }), !!header && /*#__PURE__*/React.createElement(Wrapper, !!SectionWrapper && {
12407
- sectionData: header,
12408
- isHeader: true
12409
- }, /*#__PURE__*/React.createElement(Header, {
12410
- data: header,
12411
- isLandingPage: isLandingPage,
12412
- extraProps: extraProps
12413
- })), sections?.length ? sections?.map((sectionData, sectionIndex) => /*#__PURE__*/React.createElement(Wrapper, _extends({}, !!SectionWrapper && {
12414
- sectionData,
12415
- sectionIndex
12416
- }, {
12417
- key: sectionData.type + (sectionData._id || sectionIndex)
12418
- }), /*#__PURE__*/React.createElement(SectionRenderer, {
12419
- sectionData: sectionData,
12420
- extraProps: extraProps,
12421
- isCustomWebsite: isCustomWebsite,
12422
- sectionIndex: sectionIndex
12423
- }))) : sectionPlaceholder, !!footer && /*#__PURE__*/React.createElement(Wrapper, !!SectionWrapper && {
12424
- sectionData: footer,
12425
- isFooter: true
12426
- }, /*#__PURE__*/React.createElement(Footer, {
12427
- data: footer
12428
- }))));
12429
- }
12430
-
12431
- const componentParser = compObj => {
12432
- if (compObj.type === 'componentCollection') {
12433
- const component = {
12434
- _id: compObj._id,
12435
- metadata: compObj.metadata || {}
12436
- };
12437
- compObj.components.forEach(comp => {
12438
- component[comp.name] = componentParser(comp);
12439
- });
12440
- return component;
12441
- }
12442
- if (Array.isArray(compObj.components)) {
12443
- compObj.components = compObj.components.map(componentParser);
12444
- }
12445
- return compObj;
12446
- };
12447
- const inverseComponentParser = compObj => {
12448
- if (!compObj.type) {
12449
- const {
12450
- metadata,
12451
- _id,
12452
- ...existingComponent
12453
- } = compObj;
12454
- const newComponent = {
12455
- type: 'componentCollection',
12456
- name: '',
12457
- elementType: '',
12458
- label: '',
12459
- metadata: metadata || {},
12460
- components: [],
12461
- _id
12462
- };
12463
- newComponent.components = Object.values(existingComponent).map(inverseComponentParser);
12464
- return newComponent;
12465
- } else {
12466
- if (compObj.components) {
12467
- compObj.components = compObj.components.map(inverseComponentParser);
12468
- }
12469
- return compObj;
12470
- }
12471
- };
12472
-
12473
- const useVideoWorkshopPromotionStyles = createUseStyles(theme => {
11757
+ const useCounterSectionStyles = createUseStyles(theme => {
12474
11758
  return {
12475
11759
  section: {
12476
11760
  width: '100%',
12477
- background: 'linear-gradient(135deg, #6b2d5c 0%, #4a3f6b 40%, #2d5a6b 70%, #3d6b5a 100%)',
12478
- minHeight: '100%',
11761
+ borderRadius: theme.shape?.borderRadius?.regular || '12px',
11762
+ overflow: 'hidden',
11763
+ backgroundImage: ({
11764
+ backgroundImage
11765
+ } = {}) => backgroundImage ? `url("${backgroundImage}")` : 'none',
11766
+ backgroundColor: ({
11767
+ backgroundColor
11768
+ } = {}) => backgroundColor || '#f8f8fa',
11769
+ backgroundSize: 'cover',
11770
+ backgroundPosition: 'center',
11771
+ backgroundRepeat: 'no-repeat',
12479
11772
  '&, & *, & *:before, & *:after': {
12480
11773
  fontFamily: theme?.typography?.fontFamily,
12481
11774
  boxSizing: 'border-box'
@@ -12483,9 +11776,1046 @@ const useVideoWorkshopPromotionStyles = createUseStyles(theme => {
12483
11776
  },
12484
11777
  container: {
12485
11778
  width: '100%',
12486
- maxWidth: '1440px',
12487
- margin: '0 auto',
12488
- padding: ({
11779
+ maxWidth: ({
11780
+ containerWidth
11781
+ } = {}) => containerWidth || '1440px',
11782
+ margin: '0 auto',
11783
+ padding: ({
11784
+ isMobile
11785
+ } = {}) => isMobile ? `${theme.spacing.padding.regular}px ${theme.spacing.padding.tiny}px` : `${theme.spacing.padding.small}px ${theme.spacing.padding.medium}px`
11786
+ },
11787
+ grid: {
11788
+ display: 'grid',
11789
+ gridTemplateColumns: 'repeat(4, 1fr)',
11790
+ gap: ({
11791
+ isMobile
11792
+ } = {}) => isMobile ? '24px' : '32px',
11793
+ alignItems: 'stretch'
11794
+ },
11795
+ counterItem: {
11796
+ display: 'flex',
11797
+ flexDirection: 'column',
11798
+ alignItems: 'center',
11799
+ justifyContent: 'center',
11800
+ textAlign: 'center'
11801
+ },
11802
+ value: {
11803
+ margin: 0,
11804
+ marginBottom: '8px',
11805
+ fontSize: '64px',
11806
+ fontWeight: theme.typography?.fontWeight?.bold,
11807
+ lineHeight: 1.1,
11808
+ color: 'rgba(247, 37, 133, 1)' ,
11809
+ wordBreak: 'break-word'
11810
+ },
11811
+ description: {
11812
+ margin: 0,
11813
+ fontSize: '20px',
11814
+ lineHeight: 1.4,
11815
+ fontWeight: '700',
11816
+ color: 'rgba(51, 51, 51, 1)' ,
11817
+ wordBreak: 'break-word'
11818
+ },
11819
+ '@media (max-width: 1024px)': {
11820
+ grid: {
11821
+ gridTemplateColumns: 'repeat(2, 1fr)',
11822
+ gap: '28px'
11823
+ }
11824
+ },
11825
+ '@media (max-width: 767px)': {
11826
+ section: {
11827
+ borderRadius: theme.shape?.borderRadius?.small || '8px'
11828
+ },
11829
+ container: {
11830
+ padding: `${theme.spacing.padding.regular}px ${theme.spacing.padding.tiny}px`
11831
+ },
11832
+ grid: {
11833
+ gridTemplateColumns: '1fr',
11834
+ gap: '24px'
11835
+ },
11836
+ value: {
11837
+ fontSize: theme.typography.fontSize.h3,
11838
+ marginBottom: '4px',
11839
+ lineHeight: 1.1
11840
+ },
11841
+ description: {
11842
+ fontSize: theme.typography.fontSize.body,
11843
+ lineHeight: 1.4
11844
+ }
11845
+ }
11846
+ };
11847
+ });
11848
+
11849
+ function CounterSection({
11850
+ sectionData,
11851
+ sectionIndex
11852
+ }) {
11853
+ const {
11854
+ layout: {
11855
+ containerWidth
11856
+ },
11857
+ isMobile
11858
+ } = useContext(PageContext);
11859
+ console.log('llll', sectionData);
11860
+ sectionData.components = sectionData.components;
11861
+ const metadata = sectionData.metadata || {};
11862
+ const backgroundImage = metadata.backgroundImage || '';
11863
+ const backgroundColor = metadata.backgroundColor || '#f8f8fa';
11864
+ const classes = useCounterSectionStyles({
11865
+ containerWidth,
11866
+ isMobile,
11867
+ backgroundImage: backgroundImage || null,
11868
+ backgroundColor
11869
+ });
11870
+ const cardData = sectionData?.components[0];
11871
+ const [sectionComponent] = sectionData.components || [];
11872
+ const counterSection = sectionComponent?.counterSection;
11873
+ counterSection?.components || [];
11874
+ if (!cardData) return null;
11875
+ return /*#__PURE__*/React.createElement("section", {
11876
+ className: classes.section
11877
+ }, /*#__PURE__*/React.createElement("div", {
11878
+ className: classes.container
11879
+ }, /*#__PURE__*/React.createElement("div", {
11880
+ className: classes.grid
11881
+ }, cardData?.contentList?.components?.map((item, index) => /*#__PURE__*/React.createElement("div", {
11882
+ key: item._id || index,
11883
+ className: classes.counterItem
11884
+ }, item.contentHeading?.metadata?.value != null && item.contentHeading?.metadata?.value !== '' && /*#__PURE__*/React.createElement("h2", {
11885
+ ref: item.contentHeading?.refSetter,
11886
+ className: classes.value,
11887
+ dangerouslySetInnerHTML: {
11888
+ __html: item.contentHeading.metadata.value
11889
+ }
11890
+ }), item.contentPara?.metadata?.value != null && item.contentPara?.metadata?.value !== '' && /*#__PURE__*/React.createElement("p", {
11891
+ ref: item.contentPara?.refSetter,
11892
+ className: classes.description,
11893
+ dangerouslySetInnerHTML: {
11894
+ __html: item.contentPara.metadata.value
11895
+ }
11896
+ }))))));
11897
+ }
11898
+
11899
+ var index$5 = /*#__PURE__*/Object.freeze({
11900
+ __proto__: null,
11901
+ 'default': CounterSection
11902
+ });
11903
+
11904
+ const BREAKPOINTS = {
11905
+ mobile: 0,
11906
+ tablet: 768,
11907
+ desktop: 1024
11908
+ };
11909
+
11910
+ /**
11911
+ * Get current breakpoint from window width
11912
+ */
11913
+ const getBreakpoint = width => {
11914
+ if (width >= BREAKPOINTS.desktop) return 'desktop';
11915
+ if (width >= BREAKPOINTS.tablet) return 'tablet';
11916
+ return 'mobile';
11917
+ };
11918
+ const stickyBarBase = {
11919
+ position: 'fixed',
11920
+ left: 0,
11921
+ right: 0,
11922
+ bottom: 0,
11923
+ zIndex: 9998,
11924
+ display: 'flex',
11925
+ alignItems: 'center',
11926
+ justifyContent: 'center',
11927
+ backgroundColor: '#F8F9FB',
11928
+ boxShadow: '0 -2px 8px rgba(0, 0, 0, 0.06)',
11929
+ borderTop: '1px solid #E5E7EB'
11930
+ };
11931
+ const stickyBarResponsive = {
11932
+ mobile: {
11933
+ ...stickyBarBase,
11934
+ padding: '12px 16px',
11935
+ gap: '12px',
11936
+ flexDirection: 'column',
11937
+ alignItems: 'stretch'
11938
+ },
11939
+ tablet: {
11940
+ ...stickyBarBase,
11941
+ padding: '14px 24px',
11942
+ gap: '16px',
11943
+ flexDirection: 'row',
11944
+ alignItems: 'center'
11945
+ },
11946
+ desktop: {
11947
+ ...stickyBarBase,
11948
+ padding: '16px 32px',
11949
+ gap: '24px',
11950
+ flexDirection: 'row',
11951
+ alignItems: 'center'
11952
+ }
11953
+ };
11954
+ const getStickyBarStyle = breakpoint => stickyBarResponsive[breakpoint] || stickyBarResponsive.mobile;
11955
+ const stickyTextBase = {
11956
+ color: '#343A40',
11957
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
11958
+ margin: 0
11959
+ };
11960
+ const stickyTextResponsive = {
11961
+ mobile: {
11962
+ ...stickyTextBase,
11963
+ fontSize: '13px',
11964
+ lineHeight: 1.4,
11965
+ textAlign: 'center'
11966
+ },
11967
+ tablet: {
11968
+ ...stickyTextBase,
11969
+ fontSize: '14px',
11970
+ lineHeight: 1.45,
11971
+ textAlign: 'left'
11972
+ },
11973
+ desktop: {
11974
+ ...stickyTextBase,
11975
+ fontSize: '15px',
11976
+ lineHeight: 1.5,
11977
+ textAlign: 'left'
11978
+ }
11979
+ };
11980
+ const getStickyTextStyle = breakpoint => stickyTextResponsive[breakpoint] || stickyTextResponsive.mobile;
11981
+ const stickyButtonBase = {
11982
+ backgroundColor: '#3366FF',
11983
+ color: '#FFFFFF',
11984
+ border: 'none',
11985
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
11986
+ fontWeight: 600,
11987
+ textTransform: 'uppercase',
11988
+ letterSpacing: '0.02em',
11989
+ cursor: 'pointer',
11990
+ whiteSpace: 'nowrap',
11991
+ flexShrink: 0
11992
+ };
11993
+ const stickyButtonResponsive = {
11994
+ mobile: {
11995
+ ...stickyButtonBase,
11996
+ padding: '10px 20px',
11997
+ fontSize: '12px',
11998
+ borderRadius: '6px'
11999
+ },
12000
+ tablet: {
12001
+ ...stickyButtonBase,
12002
+ padding: '12px 24px',
12003
+ fontSize: '13px',
12004
+ borderRadius: '8px'
12005
+ },
12006
+ desktop: {
12007
+ ...stickyButtonBase,
12008
+ padding: '14px 28px',
12009
+ fontSize: '14px',
12010
+ borderRadius: '8px'
12011
+ }
12012
+ };
12013
+ const getStickyButtonStyle = breakpoint => stickyButtonResponsive[breakpoint] || stickyButtonResponsive.mobile;
12014
+
12015
+ // --- Floating (WhatsApp) type ---
12016
+
12017
+ const floatingButtonBase = {
12018
+ position: 'fixed',
12019
+ bottom: 24,
12020
+ right: 24,
12021
+ width: 'fit-content',
12022
+ marginLeft: 'auto',
12023
+ zIndex: 9999,
12024
+ display: 'inline-flex',
12025
+ alignItems: 'center',
12026
+ gap: '10px',
12027
+ padding: '12px 20px',
12028
+ backgroundColor: '#FFFFFF',
12029
+ border: '1px solid #E5E7EB',
12030
+ borderRadius: '9999px',
12031
+ boxShadow: '0 4px 12px rgba(0, 0, 0, 0.1)',
12032
+ cursor: 'pointer',
12033
+ textDecoration: 'none',
12034
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
12035
+ fontWeight: 700,
12036
+ fontSize: '14px',
12037
+ textTransform: 'uppercase',
12038
+ letterSpacing: '0.02em',
12039
+ color: '#000000',
12040
+ transition: 'box-shadow 0.2s ease, transform 0.2s ease'
12041
+ };
12042
+ const floatingButtonResponsive = {
12043
+ mobile: {
12044
+ ...floatingButtonBase,
12045
+ bottom: 16,
12046
+ left: 16,
12047
+ padding: '10px 16px',
12048
+ gap: '8px',
12049
+ fontSize: '12px'
12050
+ },
12051
+ tablet: {
12052
+ ...floatingButtonBase,
12053
+ bottom: 20,
12054
+ left: 20,
12055
+ padding: '12px 18px',
12056
+ gap: '10px',
12057
+ fontSize: '13px'
12058
+ },
12059
+ desktop: {
12060
+ ...floatingButtonBase,
12061
+ bottom: 24,
12062
+ left: 24,
12063
+ padding: '12px 20px',
12064
+ gap: '10px',
12065
+ fontSize: '14px'
12066
+ }
12067
+ };
12068
+ const getFloatingButtonStyle = breakpoint => floatingButtonResponsive[breakpoint] || floatingButtonResponsive.mobile;
12069
+ const whatsAppIconSvgSize = {
12070
+ mobile: 24,
12071
+ tablet: 26,
12072
+ desktop: 28
12073
+ };
12074
+ const getWhatsAppIconSize = breakpoint => whatsAppIconSvgSize[breakpoint] ?? whatsAppIconSvgSize.mobile;
12075
+
12076
+ const DEFAULT_WHATSAPP_ICON_COLOR = '#25D366';
12077
+
12078
+ /** Build WhatsApp wa.me URL from phone number (digits only, optional + prefix). */
12079
+ function buildWhatsAppUrl(phoneNumber) {
12080
+ if (!phoneNumber || typeof phoneNumber !== 'string') return null;
12081
+ const digits = phoneNumber.replace(/\D/g, '');
12082
+ return digits.length > 0 ? `https://wa.me/${digits}` : null;
12083
+ }
12084
+
12085
+ /**
12086
+ * WhatsApp icon SVG – bubble color is dynamic via props (default #25D366)
12087
+ */
12088
+ const WhatsAppIcon = ({
12089
+ size = 28,
12090
+ color = DEFAULT_WHATSAPP_ICON_COLOR
12091
+ }) => /*#__PURE__*/React.createElement("svg", {
12092
+ width: size,
12093
+ height: size,
12094
+ viewBox: "0 0 24 24",
12095
+ fill: "none",
12096
+ xmlns: "http://www.w3.org/2000/svg",
12097
+ "aria-hidden": true
12098
+ }, /*#__PURE__*/React.createElement("path", {
12099
+ 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",
12100
+ fill: color
12101
+ }));
12102
+
12103
+ /** Icon: image when iconImageUrl is provided, otherwise WhatsApp SVG */
12104
+ const CtaIcon = ({
12105
+ size = 28,
12106
+ color,
12107
+ iconImageUrl
12108
+ }) => {
12109
+ if (iconImageUrl && typeof iconImageUrl === 'string') {
12110
+ return /*#__PURE__*/React.createElement("img", {
12111
+ src: iconImageUrl,
12112
+ alt: "",
12113
+ width: size,
12114
+ height: size,
12115
+ style: {
12116
+ display: 'block',
12117
+ objectFit: 'contain'
12118
+ },
12119
+ "aria-hidden": true
12120
+ });
12121
+ }
12122
+ return /*#__PURE__*/React.createElement(WhatsAppIcon, {
12123
+ size: size,
12124
+ color: color ?? DEFAULT_WHATSAPP_ICON_COLOR
12125
+ });
12126
+ };
12127
+
12128
+ /**
12129
+ * Sticky CTA component.
12130
+ * Renders relative to viewport (app root), not parent section.
12131
+ * Accepts either sectionData (from pageRenderer/sectionRenderer) or flat props.
12132
+ *
12133
+ * @param {object} [sectionData] - Section payload when rendered via SectionRenderer: { type, label, components: [{ type, stickyMessage, ... }] }
12134
+ * @param {string} type - "sticky" | "floating"
12135
+ * @param {string} [stickyMessage] - Message text for sticky bar
12136
+ * @param {string} [stickyButtonText] - CTA button label (default "ENQUIRE NOW")
12137
+ * @param {string} [whatsAppPhoneNumber] - Mobile number for WhatsApp
12138
+ * @param {string} [whatsAppHref] - Optional fallback full URL when whatsAppPhoneNumber is not provided
12139
+ * @param {string} [whatsAppLabel] - Label next to icon (default "SUPPORT")
12140
+ * @param {string} [whatsAppIconColor] - WhatsApp icon color (used when iconImageUrl is not set)
12141
+ * @param {string} [whatsAppButtonBackgroundColor] - Floating button background color
12142
+ * @param {string} [iconImageUrl] - Optional image URL for the icon; when set, shows <img> instead of WhatsApp SVG
12143
+ * @param {object} [extraProps] - From SectionRenderer; extraProps.isEdit true shows in-flow edit hint
12144
+ * @param {boolean} [showEditHint] - When true, shows "Click on edit button to edit this section" in normal flow
12145
+ */
12146
+ function StickyCta({
12147
+ sectionData,
12148
+ type = 'sticky',
12149
+ stickyMessage = 'Live Masterclass will be on 26 January (Monday) from 05:00 PM',
12150
+ stickyButtonText = 'ENQUIRE NOW',
12151
+ whatsAppPhoneNumber,
12152
+ whatsAppHref,
12153
+ whatsAppLabel = 'SUPPORT',
12154
+ whatsAppIconColor,
12155
+ whatsAppButtonBackgroundColor,
12156
+ iconImageUrl
12157
+ }) {
12158
+ console.log('nishu03333', sectionData);
12159
+ const node = sectionData?.components?.[0];
12160
+ const contentList = node?.contentList?.components || [];
12161
+ const showEditHint = sectionData?.isDefaultEditor ?? false;
12162
+ const propsFromSection = node ? {
12163
+ type: node?.title?.metadata?.value ?? type,
12164
+ stickyMessage: contentList[1]?.contentPara?.metadata?.value ?? stickyMessage,
12165
+ stickyButtonText: contentList[1]?.contentHeading?.metadata?.value ?? stickyButtonText,
12166
+ whatsAppPhoneNumber: node.subheading?.metadata?.value ?? whatsAppPhoneNumber,
12167
+ whatsAppHref: node.whatsAppHref ?? whatsAppHref,
12168
+ whatsAppLabel: contentList[0]?.contentHeading?.metadata?.value ?? whatsAppLabel,
12169
+ whatsAppIconColor: node.whatsAppIconColor ?? whatsAppIconColor,
12170
+ whatsAppButtonBackgroundColor: node.whatsAppButtonBackgroundColor ?? whatsAppButtonBackgroundColor,
12171
+ iconImageUrl: contentList[0]?.contentPara?.metadata?.value ?? iconImageUrl
12172
+ } : null;
12173
+ const p = propsFromSection ?? {
12174
+ type,
12175
+ stickyMessage,
12176
+ stickyButtonText,
12177
+ whatsAppPhoneNumber,
12178
+ whatsAppHref,
12179
+ whatsAppLabel,
12180
+ whatsAppIconColor,
12181
+ whatsAppButtonBackgroundColor,
12182
+ iconImageUrl
12183
+ };
12184
+ const whatsAppUrl = p?.whatsAppPhoneNumber ? p?.whatsAppPhoneNumber : buildWhatsAppUrl(p?.whatsAppPhoneNumber);
12185
+ const [breakpoint, setBreakpoint] = useState(() => typeof window !== 'undefined' ? getBreakpoint(window.innerWidth) : 'mobile');
12186
+ useEffect(() => {
12187
+ if (typeof window === 'undefined') return;
12188
+ const onResize = () => setBreakpoint(getBreakpoint(window.innerWidth));
12189
+ window.addEventListener('resize', onResize);
12190
+ return () => window.removeEventListener('resize', onResize);
12191
+ }, []);
12192
+ const editHintBlock = showEditHint ? /*#__PURE__*/React.createElement("div", {
12193
+ "data-section": "sticky-cta-edit-hint",
12194
+ style: {
12195
+ position: 'relative',
12196
+ width: '100%',
12197
+ padding: '12px 16px',
12198
+ textAlign: 'center',
12199
+ backgroundColor: '#f5f5f5',
12200
+ border: '1px dashed #ccc',
12201
+ borderRadius: 8,
12202
+ marginBottom: 8
12203
+ }
12204
+ }, /*#__PURE__*/React.createElement("h2", {
12205
+ style: {
12206
+ margin: 0,
12207
+ fontSize: 16,
12208
+ fontWeight: 600,
12209
+ color: '#555'
12210
+ }
12211
+ }, "Click on edit button to edit this section")) : null;
12212
+ if (p.type === 'floating') {
12213
+ const buttonStyle = {
12214
+ ...getFloatingButtonStyle(breakpoint),
12215
+ ...(p.whatsAppButtonBackgroundColor != null && {
12216
+ backgroundColor: p.whatsAppButtonBackgroundColor
12217
+ })
12218
+ };
12219
+ const iconSize = getWhatsAppIconSize(breakpoint);
12220
+ const iconColor = p.whatsAppIconColor ?? DEFAULT_WHATSAPP_ICON_COLOR;
12221
+ return /*#__PURE__*/React.createElement(React.Fragment, null, editHintBlock, /*#__PURE__*/React.createElement("a", {
12222
+ href: whatsAppUrl,
12223
+ target: "_blank",
12224
+ rel: "noopener noreferrer",
12225
+ "access-cta": "DIY",
12226
+ style: buttonStyle,
12227
+ onMouseEnter: e => {
12228
+ e.currentTarget.style.boxShadow = '0 6px 16px rgba(0, 0, 0, 0.12)';
12229
+ e.currentTarget.style.transform = 'scale(1.02)';
12230
+ },
12231
+ onMouseLeave: e => {
12232
+ e.currentTarget.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.1)';
12233
+ e.currentTarget.style.transform = 'scale(1)';
12234
+ },
12235
+ "aria-label": `${p.whatsAppLabel} via WhatsApp`
12236
+ }, /*#__PURE__*/React.createElement(CtaIcon, {
12237
+ size: iconSize,
12238
+ color: iconColor,
12239
+ iconImageUrl: p.iconImageUrl
12240
+ }), /*#__PURE__*/React.createElement("span", null, p.whatsAppLabel)));
12241
+ }
12242
+
12243
+ // type === 'sticky' – button uses mobile number from props to build URL; click redirects to WhatsApp
12244
+ const barStyle = getStickyBarStyle(breakpoint);
12245
+ const textStyle = getStickyTextStyle(breakpoint);
12246
+ const buttonStyle = getStickyButtonStyle(breakpoint);
12247
+ return /*#__PURE__*/React.createElement(React.Fragment, null, editHintBlock, /*#__PURE__*/React.createElement("div", {
12248
+ style: barStyle,
12249
+ role: "banner"
12250
+ }, /*#__PURE__*/React.createElement("p", {
12251
+ style: textStyle
12252
+ }, p.stickyMessage), /*#__PURE__*/React.createElement("a", {
12253
+ href: whatsAppUrl,
12254
+ target: "_blank",
12255
+ rel: "noopener noreferrer",
12256
+ "access-cta-container": "DIY",
12257
+ style: {
12258
+ ...buttonStyle,
12259
+ textDecoration: 'none',
12260
+ display: 'inline-flex',
12261
+ alignItems: 'center',
12262
+ justifyContent: 'center'
12263
+ }
12264
+ }, p.stickyButtonText)));
12265
+ }
12266
+
12267
+ var index$4 = /*#__PURE__*/Object.freeze({
12268
+ __proto__: null,
12269
+ 'default': StickyCta,
12270
+ WhatsAppIcon: WhatsAppIcon
12271
+ });
12272
+
12273
+ /**
12274
+ * Styles for CustomHtmlRender section.
12275
+ * Wrapper for user-provided HTML content.
12276
+ */
12277
+
12278
+ const sectionStyle = {
12279
+ width: '100%',
12280
+ maxWidth: '100%',
12281
+ height: 'auto',
12282
+ minHeight: 'auto',
12283
+ margin: 0,
12284
+ padding: 0,
12285
+ overflow: 'visible'
12286
+ };
12287
+
12288
+ const SHADOW_WRAPPER_CLASS = 'custom-html-body-wrap';
12289
+ const SHADOW_INNER_CLASS = 'custom-html-render__shadow-inner';
12290
+
12291
+ /**
12292
+ * Parses full HTML string and extracts styles + body/content for Shadow DOM.
12293
+ * - Strips <!DOCTYPE>, <html>, <head>, <body> and uses inner content + all <style>.
12294
+ * - Scopes "body" and "html" selectors to a wrapper class so styles don't leak to the main app.
12295
+ */
12296
+ function parseHtmlForShadow(html) {
12297
+ if (typeof html !== 'string' || !html.trim()) return {
12298
+ styles: '',
12299
+ content: ''
12300
+ };
12301
+ const styleRegex = /<style[^>]*>([\s\S]*?)<\/style>/gi;
12302
+ const bodyRegex = /<body[^>]*>([\s\S]*?)<\/body>/i;
12303
+ let styles = '';
12304
+ let match;
12305
+ while ((match = styleRegex.exec(html)) !== null) {
12306
+ styles += match[1];
12307
+ }
12308
+ const bodyMatch = html.match(bodyRegex);
12309
+ const rawContent = bodyMatch ? bodyMatch[1].trim() : html;
12310
+
12311
+ // Scope "body" and "html" in CSS to the wrapper so they don't affect the main page.
12312
+ // Only replace as standalone selectors (word boundary) to avoid breaking values like content: "body"
12313
+ let scopedStyles = styles.replace(/\bbody\b(?=\s*[{,])/g, `.${SHADOW_WRAPPER_CLASS}`).replace(/\bhtml\b(?=\s*[{,])/g, `.${SHADOW_WRAPPER_CLASS}`);
12314
+ const content = bodyMatch ? `<div class="${SHADOW_WRAPPER_CLASS}">${rawContent}</div>` : rawContent;
12315
+ return {
12316
+ styles: scopedStyles,
12317
+ content
12318
+ };
12319
+ }
12320
+
12321
+ /**
12322
+ * Base styles inside shadow so the body wrapper has layout and can show background/padding.
12323
+ */
12324
+ const SHADOW_BASE_STYLES = `
12325
+ .${SHADOW_INNER_CLASS}, .${SHADOW_WRAPPER_CLASS} {
12326
+ display: block;
12327
+ width: 100%;
12328
+ box-sizing: border-box;
12329
+ }
12330
+ .${SHADOW_INNER_CLASS} {
12331
+ min-height: 0;
12332
+ }
12333
+ `;
12334
+
12335
+ /**
12336
+ * Resolves HTML string from section data.
12337
+ * Supports: sectionData.components[0].CustomHtml.metadata.value (API shape)
12338
+ * and sectionData.components[0].html or props.html (legacy/flat).
12339
+ */
12340
+ function getHtmlFromSectionData(sectionData, fallbackHtml = '') {
12341
+ const node = sectionData?.components?.[0];
12342
+ if (!node) return fallbackHtml;
12343
+ const fromCustomHtml = node.CustomHtml?.metadata?.value;
12344
+ if (typeof fromCustomHtml === 'string') return fromCustomHtml;
12345
+ if (typeof node.html === 'string') return node.html;
12346
+ return fallbackHtml;
12347
+ }
12348
+
12349
+ /**
12350
+ * CustomHtmlRender – renders any full HTML document or fragment in an encapsulated Shadow DOM.
12351
+ * Receives html via sectionData.components[0].CustomHtml.metadata.value (or .html) or props.html.
12352
+ * Body/html background, padding, and all other CSS apply only inside this section.
12353
+ */
12354
+ function CustomHtmlRender({
12355
+ sectionData,
12356
+ html = '',
12357
+ className,
12358
+ style = {}
12359
+ }) {
12360
+ const containerRef = useRef(null);
12361
+ const node = sectionData?.components?.[0];
12362
+ const resolvedHtml = getHtmlFromSectionData(sectionData, html);
12363
+ const p = node ? {
12364
+ html: resolvedHtml,
12365
+ className: node.className ?? className,
12366
+ style: node.style ?? style
12367
+ } : {
12368
+ html: resolvedHtml,
12369
+ className,
12370
+ style
12371
+ };
12372
+ const safeHtml = typeof p.html === 'string' ? p.html : '';
12373
+ const setSectionRef = el => {
12374
+ containerRef.current = el;
12375
+ const refSetter = node?.CustomHtml?.refSetter;
12376
+ if (refSetter) {
12377
+ if (typeof refSetter === 'function') refSetter(el);else if (refSetter && typeof refSetter === 'object') refSetter.current = el;
12378
+ }
12379
+ };
12380
+ useEffect(() => {
12381
+ if (!safeHtml.trim() || !containerRef.current) return;
12382
+ const {
12383
+ styles,
12384
+ content
12385
+ } = parseHtmlForShadow(safeHtml);
12386
+ const host = containerRef.current;
12387
+ if (!host.shadowRoot) {
12388
+ host.attachShadow({
12389
+ mode: 'open'
12390
+ });
12391
+ }
12392
+ const shadowRoot = host.shadowRoot;
12393
+ shadowRoot.innerHTML = '';
12394
+ const inner = document.createElement('div');
12395
+ inner.className = SHADOW_INNER_CLASS;
12396
+ if (SHADOW_BASE_STYLES) {
12397
+ const baseStyle = document.createElement('style');
12398
+ baseStyle.textContent = SHADOW_BASE_STYLES;
12399
+ shadowRoot.appendChild(baseStyle);
12400
+ }
12401
+ if (styles) {
12402
+ const styleEl = document.createElement('style');
12403
+ styleEl.textContent = styles;
12404
+ shadowRoot.appendChild(styleEl);
12405
+ }
12406
+ const contentWrap = document.createElement('div');
12407
+ contentWrap.innerHTML = content;
12408
+ while (contentWrap.firstChild) {
12409
+ inner.appendChild(contentWrap.firstChild);
12410
+ }
12411
+ shadowRoot.appendChild(inner);
12412
+ return () => {
12413
+ shadowRoot.innerHTML = '';
12414
+ };
12415
+ }, [safeHtml]);
12416
+ if (!safeHtml.trim()) {
12417
+ return null;
12418
+ }
12419
+ return /*#__PURE__*/React.createElement("section", {
12420
+ ref: setSectionRef,
12421
+ className: p.className,
12422
+ style: {
12423
+ ...sectionStyle,
12424
+ ...p.style
12425
+ },
12426
+ "data-section": "custom-html-render"
12427
+ });
12428
+ }
12429
+
12430
+ var index$3 = /*#__PURE__*/Object.freeze({
12431
+ __proto__: null,
12432
+ 'default': CustomHtmlRender
12433
+ });
12434
+
12435
+ const useTimerCallPageStyles = createUseStyles(theme => ({
12436
+ timerAndCallSection: {
12437
+ padding: ({
12438
+ isMobile
12439
+ } = {}) => isMobile ? '24px' : '80px 120px',
12440
+ background: theme?.colors?.white,
12441
+ '&, & *, & *:before, & *:after': {
12442
+ fontFamily: theme?.typography?.fontFamily,
12443
+ boxSizing: 'border-box'
12444
+ }
12445
+ },
12446
+ timerAndCallContainer: {
12447
+ padding: '72px',
12448
+ background: '#F4F9FF',
12449
+ borderRadius: '8px',
12450
+ boxShadow: '0px 4px 10px rgba(0, 0, 0, 0.16)'
12451
+ },
12452
+ timerAndCallBox: {
12453
+ display: 'flex',
12454
+ flexDirection: 'column',
12455
+ gap: '42px',
12456
+ justifyContent: 'center',
12457
+ alignItems: 'center'
12458
+ },
12459
+ title: {
12460
+ fontWeight: '700',
12461
+ fontSize: '40px',
12462
+ textAlign: 'center',
12463
+ lineHeight: '45px'
12464
+ },
12465
+ offerWrapper: {
12466
+ display: 'flex',
12467
+ flexDirection: 'column',
12468
+ gap: '24px',
12469
+ justifyContent: 'center',
12470
+ alignItems: 'center'
12471
+ },
12472
+ offerEndsTitle: {
12473
+ fontWeight: '700',
12474
+ fontSize: '16px'
12475
+ },
12476
+ countdown: {
12477
+ display: 'flex',
12478
+ gap: '10px'
12479
+ },
12480
+ counterBox: {
12481
+ display: 'flex',
12482
+ flexDirection: 'column',
12483
+ justifyContent: 'center',
12484
+ alignItems: 'center',
12485
+ border: '0.56px solid #2C88FF',
12486
+ borderRadius: '8px',
12487
+ background: '#FFFFFF',
12488
+ color: '#2C88FF',
12489
+ padding: '12px 16px 12px 16px',
12490
+ fontWeight: '600',
12491
+ fontSize: '14px'
12492
+ },
12493
+ // SMALL SCREEN
12494
+ '@media screen and (max-width: 767px)': {
12495
+ timerAndCallSection: {
12496
+ padding: '24px'
12497
+ },
12498
+ timerAndCallContainer: {
12499
+ padding: '16px'
12500
+ },
12501
+ timerAndCallBox: {
12502
+ gap: '32px'
12503
+ },
12504
+ title: {
12505
+ fontSize: '24px'
12506
+ },
12507
+ offerWrapper: {
12508
+ gap: '16px'
12509
+ }
12510
+ }
12511
+ }));
12512
+
12513
+ const TimerAndCall = ({
12514
+ sectionData,
12515
+ extraProps = {}
12516
+ }) => {
12517
+ const {
12518
+ isMobile,
12519
+ fullPageData
12520
+ } = useContext(PageContext);
12521
+ const [nodeData] = sectionData?.components;
12522
+ const classes = useTimerCallPageStyles({
12523
+ isMobile
12524
+ });
12525
+ const CounterBox = ({
12526
+ value,
12527
+ text
12528
+ }) => {
12529
+ return /*#__PURE__*/React.createElement("div", {
12530
+ className: classes.counterBox
12531
+ }, /*#__PURE__*/React.createElement("div", null, value), /*#__PURE__*/React.createElement("div", null, text));
12532
+ };
12533
+ const renderer = ({
12534
+ formatted,
12535
+ completed
12536
+ }) => {
12537
+ return /*#__PURE__*/React.createElement("div", {
12538
+ className: classes.countdown
12539
+ }, /*#__PURE__*/React.createElement(CounterBox, {
12540
+ value: formatted?.hours,
12541
+ text: "Hours"
12542
+ }), /*#__PURE__*/React.createElement(CounterBox, {
12543
+ value: formatted?.minutes,
12544
+ text: "Mins"
12545
+ }), /*#__PURE__*/React.createElement(CounterBox, {
12546
+ value: formatted?.seconds,
12547
+ text: "Secs"
12548
+ }));
12549
+ };
12550
+ const CountDownJSX = offerPriceValidFor => {
12551
+ let conversions = extraProps?.conversions || 0;
12552
+ if (offerPriceValidFor && offerPriceValidFor - conversions <= 0) {
12553
+ return null;
12554
+ }
12555
+ return /*#__PURE__*/React.createElement("div", {
12556
+ className: classes.offerWrapper
12557
+ }, /*#__PURE__*/React.createElement("div", {
12558
+ className: classes.offerEndsTitle
12559
+ }, "Offer ends in"), /*#__PURE__*/React.createElement(Countdown, {
12560
+ renderer: renderer,
12561
+ date: nodeData.offerCounter?.metadata?.endDate,
12562
+ daysInHours: true
12563
+ }));
12564
+ };
12565
+ return /*#__PURE__*/React.createElement("section", {
12566
+ className: classes.timerAndCallSection
12567
+ }, /*#__PURE__*/React.createElement("div", {
12568
+ className: classes.timerAndCallContainer
12569
+ }, /*#__PURE__*/React.createElement("div", {
12570
+ className: classes.timerAndCallBox
12571
+ }, nodeData?.showOffer?.metadata?.value && nodeData.offerCounter?.metadata?.isOfferActive ? CountDownJSX(nodeData.offerCounter?.metadata?.offerPriceValidFor) : null, nodeData?.title?.metadata?.value ? /*#__PURE__*/React.createElement("div", {
12572
+ className: classes.title
12573
+ }, /*#__PURE__*/React.createElement("span", {
12574
+ ref: nodeData?.heading?.refSetter,
12575
+ dangerouslySetInnerHTML: {
12576
+ __html: nodeData?.title?.metadata?.value
12577
+ }
12578
+ })) : null, nodeData?.timerButton?.metadata?.value ? /*#__PURE__*/React.createElement(Button, {
12579
+ style: {
12580
+ width: '100%',
12581
+ fontWeight: '700',
12582
+ fontSize: '14px'
12583
+ },
12584
+ data: {
12585
+ // link: 'headerData?.loginCtaLink',
12586
+ // isLink: 1,
12587
+ value: nodeData.timerButton.metadata.value
12588
+ // isExternal: 1
12589
+ },
12590
+ onClick: extraProps?.courseBuyNow,
12591
+ type: 'primary',
12592
+ size: 'medium',
12593
+ target: null,
12594
+ name: "button",
12595
+ rel: null
12596
+ // styling={isMobile ? { margin: '0 40px' } : {}}
12597
+ }) : null)));
12598
+ };
12599
+
12600
+ var index$2 = /*#__PURE__*/Object.freeze({
12601
+ __proto__: null,
12602
+ 'default': TimerAndCall
12603
+ });
12604
+
12605
+ const TYPE_TO_COMPONENT_MAP = {
12606
+ BANNER_CAROUSEL_RIGHT: BannerCarouselRight,
12607
+ GRID_CARD: List,
12608
+ BANNER_CAROUSEL_CENTER: BannerCarouselCenter,
12609
+ BANNER_CAROUSEL_CENTER_V2: BannerCarouselCenterv2,
12610
+ BANNER_CAROUSEL_LEFT: BannerCarouselLeft,
12611
+ FORM_SUBSCRIBE: SubscribeToNewsletter,
12612
+ TEXT_TESTIMONIAL: Testimonials,
12613
+ VIDEO_TESTIMONIAL: VideoTestimonial,
12614
+ VIDEO: Video,
12615
+ INFO: Info,
12616
+ TEXT: TextSection,
12617
+ IMAGE_GALLERY: PhotoGallery,
12618
+ FAQ_LISTING: FAQListing,
12619
+ TEXT_GRID: TextGrid,
12620
+ COURSE_CAROUSEL: courses,
12621
+ TEAM_CARD: TeamCard,
12622
+ CONTACT: FormEnquiry,
12623
+ FORM_ENQUIRY: Contact,
12624
+ WEBINAR_LANDING_PAGE: CoursePromotionPage$1,
12625
+ COURSE_LANDING_PAGE: CoursePromotionPage,
12626
+ FORM_LANDING_PAGE: FormPage,
12627
+ TILES_SECTION: Tiles,
12628
+ EMAIL_DRIP_MARKET: EmailDripMarket,
12629
+ ABOUT_INSTITUTE,
12630
+ COUNTER_SECTION: CounterSection,
12631
+ STICKY_CTA: StickyCta,
12632
+ CUSTOM_HTML_SECTION: CustomHtmlRender,
12633
+ TIMER_AND_CALL: TimerAndCall
12634
+ };
12635
+ const getCompToRender = type => TYPE_TO_COMPONENT_MAP[type] || (() => null);
12636
+ const MemoisedSection = /*#__PURE__*/memo(({
12637
+ sectionData,
12638
+ extraProps,
12639
+ isCustomWebsite,
12640
+ sectionIndex
12641
+ }) => {
12642
+ console.log('extraProps in section data', extraProps);
12643
+ const SectionComp = getCompToRender(sectionData.type);
12644
+ return /*#__PURE__*/React.createElement(SectionComp, {
12645
+ sectionData: sectionData,
12646
+ extraProps: extraProps,
12647
+ isCustomWebsite: isCustomWebsite,
12648
+ sectionIndex: sectionIndex
12649
+ });
12650
+ });
12651
+ const SectionWithBackground = withSectionBackground(MemoisedSection);
12652
+ function SectionRenderer({
12653
+ sectionData,
12654
+ extraProps,
12655
+ isCustomWebsite,
12656
+ sectionIndex
12657
+ }) {
12658
+ let sectionBg = {};
12659
+ if (sectionData?.isV2Section) {
12660
+ sectionBg = sectionData?.bgSection?.components?.[0]?.sectionBgData || {};
12661
+ }
12662
+ return /*#__PURE__*/React.createElement(SectionWithBackground, {
12663
+ sectionData: sectionData,
12664
+ extraProps: extraProps,
12665
+ isCustomWebsite: isCustomWebsite,
12666
+ sectionIndex: sectionIndex,
12667
+ isSkipV2Section: sectionData?.isV2Section,
12668
+ componentBg: sectionBg || {}
12669
+ });
12670
+ }
12671
+
12672
+ function PageRenderer({
12673
+ pageData: {
12674
+ metadata: {
12675
+ theme: {
12676
+ color = defaultTheme.color,
12677
+ font = defaultTheme.font
12678
+ } = defaultTheme,
12679
+ layout = defaultLayout
12680
+ } = defaultMetadata,
12681
+ sections,
12682
+ header,
12683
+ footer,
12684
+ validations = {},
12685
+ _id,
12686
+ isLandingPage = false,
12687
+ isCustomWebsite = false
12688
+ },
12689
+ isMobile = false,
12690
+ isLandingPages = false,
12691
+ baseURLs = {},
12692
+ hashToken,
12693
+ SectionWrapper,
12694
+ isMasterTemplate,
12695
+ basePath,
12696
+ countryCode,
12697
+ currencySymbol,
12698
+ isPreview,
12699
+ isEdit,
12700
+ sectionPlaceholder,
12701
+ templateId,
12702
+ isTutorWebsite = false,
12703
+ extraProps,
12704
+ hideLogin
12705
+ }) {
12706
+ const navList = header?.navs;
12707
+ const context = useMemo(() => ({
12708
+ isMobile,
12709
+ isLandingPages,
12710
+ layout,
12711
+ baseURLs,
12712
+ hashToken,
12713
+ isMasterTemplate,
12714
+ basePath,
12715
+ isPreview,
12716
+ isEdit,
12717
+ templateId,
12718
+ navList,
12719
+ validations,
12720
+ isTutorWebsite,
12721
+ extraProps,
12722
+ hideLogin,
12723
+ isCustomWebsite,
12724
+ _id,
12725
+ countryCode,
12726
+ currencySymbol
12727
+ }), [isMobile, isLandingPages, layout, baseURLs, hashToken, isPreview, isEdit, templateId, navList, isMasterTemplate, basePath, validations, isTutorWebsite, extraProps, hideLogin, _id, countryCode, currencySymbol]);
12728
+ const theme = useMemo(() => generateTheme(color, font, context.isMobile), [color, font, context.isMobile]);
12729
+ const Wrapper = SectionWrapper || Fragment;
12730
+ return /*#__PURE__*/React.createElement(ThemeProvider, {
12731
+ theme: theme
12732
+ }, /*#__PURE__*/React.createElement(PageContext.Provider, {
12733
+ value: context
12734
+ }, /*#__PURE__*/React.createElement(FontSeeder, {
12735
+ fontFamily: font
12736
+ }), !!header && /*#__PURE__*/React.createElement(Wrapper, !!SectionWrapper && {
12737
+ sectionData: header,
12738
+ isHeader: true
12739
+ }, /*#__PURE__*/React.createElement(Header, {
12740
+ data: header,
12741
+ isLandingPage: isLandingPage,
12742
+ extraProps: extraProps
12743
+ })), sections?.length ? sections?.map((sectionData, sectionIndex) => /*#__PURE__*/React.createElement(Wrapper, _extends({}, !!SectionWrapper && {
12744
+ sectionData,
12745
+ sectionIndex
12746
+ }, {
12747
+ key: sectionData.type + (sectionData._id || sectionIndex)
12748
+ }), /*#__PURE__*/React.createElement(SectionRenderer, {
12749
+ sectionData: sectionData,
12750
+ extraProps: extraProps,
12751
+ isCustomWebsite: isCustomWebsite,
12752
+ sectionIndex: sectionIndex
12753
+ }))) : sectionPlaceholder, !!footer && /*#__PURE__*/React.createElement(Wrapper, !!SectionWrapper && {
12754
+ sectionData: footer,
12755
+ isFooter: true
12756
+ }, /*#__PURE__*/React.createElement(Footer, {
12757
+ data: footer
12758
+ }))));
12759
+ }
12760
+
12761
+ const componentParser = compObj => {
12762
+ if (compObj.type === 'componentCollection') {
12763
+ const component = {
12764
+ _id: compObj._id,
12765
+ metadata: compObj.metadata || {}
12766
+ };
12767
+ compObj.components.forEach(comp => {
12768
+ component[comp.name] = componentParser(comp);
12769
+ });
12770
+ return component;
12771
+ }
12772
+ if (Array.isArray(compObj.components)) {
12773
+ compObj.components = compObj.components.map(componentParser);
12774
+ }
12775
+ return compObj;
12776
+ };
12777
+ const inverseComponentParser = compObj => {
12778
+ if (!compObj.type) {
12779
+ const {
12780
+ metadata,
12781
+ _id,
12782
+ ...existingComponent
12783
+ } = compObj;
12784
+ const newComponent = {
12785
+ type: 'componentCollection',
12786
+ name: '',
12787
+ elementType: '',
12788
+ label: '',
12789
+ metadata: metadata || {},
12790
+ components: [],
12791
+ _id
12792
+ };
12793
+ newComponent.components = Object.values(existingComponent).map(inverseComponentParser);
12794
+ return newComponent;
12795
+ } else {
12796
+ if (compObj.components) {
12797
+ compObj.components = compObj.components.map(inverseComponentParser);
12798
+ }
12799
+ return compObj;
12800
+ }
12801
+ };
12802
+
12803
+ const useVideoWorkshopPromotionStyles = createUseStyles(theme => {
12804
+ return {
12805
+ section: {
12806
+ width: '100%',
12807
+ background: 'linear-gradient(135deg, #6b2d5c 0%, #4a3f6b 40%, #2d5a6b 70%, #3d6b5a 100%)',
12808
+ minHeight: '100%',
12809
+ '&, & *, & *:before, & *:after': {
12810
+ fontFamily: theme?.typography?.fontFamily,
12811
+ boxSizing: 'border-box'
12812
+ }
12813
+ },
12814
+ container: {
12815
+ width: '100%',
12816
+ maxWidth: '1440px',
12817
+ margin: '0 auto',
12818
+ padding: ({
12489
12819
  isMobile
12490
12820
  } = {}) => isMobile ? `${theme.spacing.padding.regular}px ${theme.spacing.padding.tiny}px` : `${theme.spacing.padding.small}px ${theme.spacing.padding.medium}px`
12491
12821
  },
@@ -12657,30 +12987,12 @@ function VideoWorkshopPromotion({
12657
12987
  },
12658
12988
  isMobile
12659
12989
  } = useContext(PageContext);
12660
- console.log('nnnn', sectionData);
12661
12990
  const classes = useVideoWorkshopPromotionStyles({
12662
12991
  containerWidth,
12663
12992
  isMobile
12664
12993
  });
12665
- const [sectionComponent] = sectionData?.components?.slice(1) || [];
12666
- const videoWorkshopPromotion = sectionComponent?.videoWorkshopPromotion;
12667
- const [contentNode] = videoWorkshopPromotion?.components || [];
12668
- if (!contentNode) return null;
12669
- const {
12670
- testimonialCategory,
12671
- mainHeading,
12672
- subHeading,
12673
- cta,
12674
- videoThumbnail,
12675
- videoEmbed,
12676
- videoTitleOverlay,
12677
- videoCaption,
12678
- watchOnYouTube
12679
- } = contentNode;
12680
- const videoUrl = videoEmbed?.metadata?.value;
12681
- const thumbnailUrl = videoEmbed?.metadata?.thumbnail || videoThumbnail?.metadata?.value;
12682
- const showCta = cta?.metadata?.value && (cta?.validations?.isEmptyAllowed ? true : cta?.metadata?.value !== '');
12683
- const showWatchOnYouTube = watchOnYouTube?.metadata?.value && (watchOnYouTube?.validations?.isEmptyAllowed ? true : watchOnYouTube?.metadata?.value !== '');
12994
+ const wokShopData = sectionData?.components[0];
12995
+ const videoData = wokShopData?.videoCarousel?.components?.[0];
12684
12996
  return /*#__PURE__*/React.createElement("section", {
12685
12997
  className: classes.section
12686
12998
  }, /*#__PURE__*/React.createElement("div", {
@@ -12689,70 +13001,40 @@ function VideoWorkshopPromotion({
12689
13001
  className: classes.sectionInner
12690
13002
  }, /*#__PURE__*/React.createElement("div", {
12691
13003
  className: classes.textBlock
12692
- }, testimonialCategory?.metadata?.value && /*#__PURE__*/React.createElement("h5", {
12693
- ref: testimonialCategory?.refSetter,
13004
+ }, wokShopData?.videoHeading?.metadata?.value && /*#__PURE__*/React.createElement("h5", {
13005
+ ref: wokShopData?.videoHeading?.refSetter,
12694
13006
  className: classes.category,
12695
13007
  dangerouslySetInnerHTML: {
12696
- __html: testimonialCategory.metadata.value
13008
+ __html: wokShopData?.videoHeading?.metadata?.value
12697
13009
  }
12698
- }), mainHeading?.metadata?.value && /*#__PURE__*/React.createElement("h1", {
12699
- ref: mainHeading?.refSetter,
13010
+ }), wokShopData?.title?.metadata?.value && /*#__PURE__*/React.createElement("h1", {
13011
+ ref: wokShopData?.title?.refSetter,
12700
13012
  className: classes.mainHeading,
12701
13013
  dangerouslySetInnerHTML: {
12702
- __html: mainHeading.metadata.value
13014
+ __html: wokShopData?.title?.metadata?.value
12703
13015
  }
12704
- }), subHeading?.metadata?.value && /*#__PURE__*/React.createElement("p", {
12705
- ref: subHeading?.refSetter,
12706
- className: classes.subHeading,
12707
- dangerouslySetInnerHTML: {
12708
- __html: subHeading.metadata.value
12709
- }
12710
- }), showCta && /*#__PURE__*/React.createElement("div", {
13016
+ }), videoData?.videoTextContent?.metadata?.value && /*#__PURE__*/React.createElement("div", {
12711
13017
  className: classes.ctaWrap
12712
13018
  }, /*#__PURE__*/React.createElement(Button, {
12713
- ref: cta?.refSetter,
12714
- data: cta.metadata,
12715
- type: cta.metadata?.type || 'primary',
13019
+ ref: videoData?.videoTextContent?.metadata?.refSetter,
13020
+ data: videoData?.videoTextContent?.metadata,
13021
+ type: 'primary',
12716
13022
  size: isMobile ? 'small' : 'medium'
12717
13023
  }))), /*#__PURE__*/React.createElement("div", {
12718
13024
  className: classes.videoBlock
12719
13025
  }, /*#__PURE__*/React.createElement("div", {
12720
13026
  className: classes.videoWrapper
12721
13027
  }, /*#__PURE__*/React.createElement("div", {
12722
- ref: videoEmbed?.refSetter,
13028
+ ref: videoData?.videoFrame?.refSetter,
12723
13029
  className: classes.videoAspectWrap
12724
13030
  }, /*#__PURE__*/React.createElement(VideoPlayer, {
12725
- imageUrl: thumbnailUrl,
12726
- videoUrl: videoUrl,
13031
+ imageUrl: videoData?.videoFrame?.metadata?.thumbnail,
13032
+ videoUrl: videoData?.videoFrame?.metadata?.value,
12727
13033
  sectionIndex: sectionIndex
12728
- })), videoTitleOverlay?.metadata?.value && /*#__PURE__*/React.createElement("div", {
12729
- className: classes.videoTitleOverlay
12730
- }, /*#__PURE__*/React.createElement("span", {
12731
- ref: videoTitleOverlay?.refSetter,
12732
- dangerouslySetInnerHTML: {
12733
- __html: videoTitleOverlay.metadata.value
12734
- }
12735
- })), videoCaption?.metadata?.value && /*#__PURE__*/React.createElement("div", {
12736
- className: classes.videoCaption
12737
- }, /*#__PURE__*/React.createElement("p", {
12738
- ref: videoCaption?.refSetter,
12739
- dangerouslySetInnerHTML: {
12740
- __html: videoCaption.metadata.value
12741
- }
12742
- })), showWatchOnYouTube && /*#__PURE__*/React.createElement("div", {
12743
- className: classes.watchOnYouTubeWrap
12744
- }, /*#__PURE__*/React.createElement(Button, {
12745
- ref: watchOnYouTube?.refSetter,
12746
- data: {
12747
- ...watchOnYouTube.metadata,
12748
- isExternal: true
12749
- },
12750
- type: watchOnYouTube.metadata?.type || 'secondary',
12751
- size: "small"
12752
13034
  })))))));
12753
13035
  }
12754
13036
 
12755
- var index$2 = /*#__PURE__*/Object.freeze({
13037
+ var index$1 = /*#__PURE__*/Object.freeze({
12756
13038
  __proto__: null,
12757
13039
  'default': VideoWorkshopPromotion
12758
13040
  });
@@ -13385,157 +13667,9 @@ function CoursePromotionPagev2({
13385
13667
  }))));
13386
13668
  }
13387
13669
 
13388
- var index$1 = /*#__PURE__*/Object.freeze({
13389
- __proto__: null,
13390
- 'default': CoursePromotionPagev2
13391
- });
13392
-
13393
- const useCounterSectionStyles = createUseStyles(theme => {
13394
- return {
13395
- section: {
13396
- width: '100%',
13397
- borderRadius: theme.shape?.borderRadius?.regular || '12px',
13398
- overflow: 'hidden',
13399
- backgroundImage: ({
13400
- backgroundImage
13401
- } = {}) => backgroundImage ? `url("${backgroundImage}")` : 'none',
13402
- backgroundColor: ({
13403
- backgroundColor
13404
- } = {}) => backgroundColor || '#f8f8fa',
13405
- backgroundSize: 'cover',
13406
- backgroundPosition: 'center',
13407
- backgroundRepeat: 'no-repeat',
13408
- '&, & *, & *:before, & *:after': {
13409
- fontFamily: theme?.typography?.fontFamily,
13410
- boxSizing: 'border-box'
13411
- }
13412
- },
13413
- container: {
13414
- width: '100%',
13415
- maxWidth: ({
13416
- containerWidth
13417
- } = {}) => containerWidth || '1440px',
13418
- margin: '0 auto',
13419
- padding: ({
13420
- isMobile
13421
- } = {}) => isMobile ? `${theme.spacing.padding.regular}px ${theme.spacing.padding.tiny}px` : `${theme.spacing.padding.small}px ${theme.spacing.padding.medium}px`
13422
- },
13423
- grid: {
13424
- display: 'grid',
13425
- gridTemplateColumns: 'repeat(4, 1fr)',
13426
- gap: ({
13427
- isMobile
13428
- } = {}) => isMobile ? '24px' : '32px',
13429
- alignItems: 'stretch'
13430
- },
13431
- counterItem: {
13432
- display: 'flex',
13433
- flexDirection: 'column',
13434
- alignItems: 'center',
13435
- justifyContent: 'center',
13436
- textAlign: 'center'
13437
- },
13438
- value: {
13439
- margin: 0,
13440
- marginBottom: '8px',
13441
- fontSize: theme.typography.fontSize.h2,
13442
- fontWeight: theme.typography?.fontWeight?.bold,
13443
- lineHeight: 1.1,
13444
- color: theme.palette?.primary?.main || '#1976d2',
13445
- wordBreak: 'break-word'
13446
- },
13447
- description: {
13448
- margin: 0,
13449
- fontSize: theme.typography.fontSize.body,
13450
- lineHeight: 1.4,
13451
- color: theme.palette?.font?.primary || '#4a4a4a',
13452
- wordBreak: 'break-word'
13453
- },
13454
- '@media (max-width: 1024px)': {
13455
- grid: {
13456
- gridTemplateColumns: 'repeat(2, 1fr)',
13457
- gap: '28px'
13458
- }
13459
- },
13460
- '@media (max-width: 767px)': {
13461
- section: {
13462
- borderRadius: theme.shape?.borderRadius?.small || '8px'
13463
- },
13464
- container: {
13465
- padding: `${theme.spacing.padding.regular}px ${theme.spacing.padding.tiny}px`
13466
- },
13467
- grid: {
13468
- gridTemplateColumns: '1fr',
13469
- gap: '24px'
13470
- },
13471
- value: {
13472
- fontSize: theme.typography.fontSize.h3,
13473
- marginBottom: '4px',
13474
- lineHeight: 1.1
13475
- },
13476
- description: {
13477
- fontSize: theme.typography.fontSize.body,
13478
- lineHeight: 1.4
13479
- }
13480
- }
13481
- };
13482
- });
13483
-
13484
- function CounterSection({
13485
- sectionData,
13486
- sectionIndex
13487
- }) {
13488
- const {
13489
- layout: {
13490
- containerWidth
13491
- },
13492
- isMobile
13493
- } = useContext(PageContext);
13494
- console.log('llll', sectionData);
13495
- sectionData.components = sectionData?.isV2Section ? sectionData.components.slice(1) : sectionData.components;
13496
-
13497
- // console.log("llll",sectionData);
13498
-
13499
- const metadata = sectionData.metadata || {};
13500
- const backgroundImage = metadata.backgroundImage || '';
13501
- const backgroundColor = metadata.backgroundColor || '#f8f8fa';
13502
- const classes = useCounterSectionStyles({
13503
- containerWidth,
13504
- isMobile,
13505
- backgroundImage: backgroundImage || null,
13506
- backgroundColor
13507
- });
13508
- const [sectionComponent] = sectionData.components || [];
13509
- const counterSection = sectionComponent?.counterSection;
13510
- const counters = counterSection?.components || [];
13511
- if (!counters.length) return null;
13512
- return /*#__PURE__*/React.createElement("section", {
13513
- className: classes.section
13514
- }, /*#__PURE__*/React.createElement("div", {
13515
- className: classes.container
13516
- }, /*#__PURE__*/React.createElement("div", {
13517
- className: classes.grid
13518
- }, counters.map((item, index) => /*#__PURE__*/React.createElement("div", {
13519
- key: item._id || index,
13520
- className: classes.counterItem
13521
- }, item.value?.metadata?.value != null && item.value?.metadata?.value !== '' && /*#__PURE__*/React.createElement("h2", {
13522
- ref: item.value?.refSetter,
13523
- className: classes.value,
13524
- dangerouslySetInnerHTML: {
13525
- __html: item.value.metadata.value
13526
- }
13527
- }), item.description?.metadata?.value != null && item.description?.metadata?.value !== '' && /*#__PURE__*/React.createElement("p", {
13528
- ref: item.description?.refSetter,
13529
- className: classes.description,
13530
- dangerouslySetInnerHTML: {
13531
- __html: item.description.metadata.value
13532
- }
13533
- }))))));
13534
- }
13535
-
13536
13670
  var index = /*#__PURE__*/Object.freeze({
13537
13671
  __proto__: null,
13538
- 'default': CounterSection
13672
+ 'default': CoursePromotionPagev2
13539
13673
  });
13540
13674
 
13541
13675
  export { Icon, PageRenderer$1 as PageRenderer, PageRenderer as PageRendererStatic, componentParser, getTheme, inverseComponentParser };