@datlv-trustshop/shopify-inapp-components 0.2.7 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AppList.d.ts +1 -0
- package/dist/components/AppList.d.ts.map +1 -0
- package/dist/components/AppList.js +1 -0
- package/dist/components/AppList.js.map +1 -0
- package/dist/components/ArticleList.d.ts +1 -0
- package/dist/components/ArticleList.d.ts.map +1 -0
- package/dist/components/ArticleList.js +1 -0
- package/dist/components/ArticleList.js.map +1 -0
- package/dist/components/ArticleSlide.d.ts +1 -0
- package/dist/components/ArticleSlide.d.ts.map +1 -0
- package/dist/components/ArticleSlide.js +1 -0
- package/dist/components/ArticleSlide.js.map +1 -0
- package/dist/components/FloatingCard.d.ts +1 -0
- package/dist/components/FloatingCard.d.ts.map +1 -0
- package/dist/components/FloatingCard.js +5 -4
- package/dist/components/FloatingCard.js.map +1 -0
- package/dist/components/FooterBanner.d.ts +1 -0
- package/dist/components/FooterBanner.d.ts.map +1 -0
- package/dist/components/FooterBanner.js +1 -0
- package/dist/components/FooterBanner.js.map +1 -0
- package/dist/components/GrowApps.d.ts +6 -6
- package/dist/components/GrowApps.d.ts.map +1 -0
- package/dist/components/GrowApps.js +11 -3
- package/dist/components/GrowApps.js.map +1 -0
- package/dist/components/ImageLoading.d.ts +1 -0
- package/dist/components/ImageLoading.d.ts.map +1 -0
- package/dist/components/ImageLoading.js +1 -0
- package/dist/components/ImageLoading.js.map +1 -0
- package/dist/components/PartnerIntegration.d.ts +8 -8
- package/dist/components/PartnerIntegration.d.ts.map +1 -0
- package/dist/components/PartnerIntegration.js +15 -76
- package/dist/components/PartnerIntegration.js.map +1 -0
- package/dist/components/PartnerList.d.ts +1 -0
- package/dist/components/PartnerList.d.ts.map +1 -0
- package/dist/components/PartnerList.js +1 -0
- package/dist/components/PartnerList.js.map +1 -0
- package/dist/components/PopupBanner.d.ts +4 -4
- package/dist/components/PopupBanner.d.ts.map +1 -0
- package/dist/components/PopupBanner.js +5 -1
- package/dist/components/PopupBanner.js.map +1 -0
- package/dist/components/TopBanner.d.ts +7 -7
- package/dist/components/TopBanner.d.ts.map +1 -0
- package/dist/components/TopBanner.js +40 -31
- package/dist/components/TopBanner.js.map +1 -0
- package/dist/components/WhatsNew.d.ts +6 -7
- package/dist/components/WhatsNew.d.ts.map +1 -0
- package/dist/components/WhatsNew.js +23 -25
- package/dist/components/WhatsNew.js.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/inlineStyles.d.ts +1 -0
- package/dist/components/inlineStyles.d.ts.map +1 -0
- package/dist/components/inlineStyles.js +1 -0
- package/dist/components/inlineStyles.js.map +1 -0
- package/dist/components/styles.d.ts +1 -0
- package/dist/components/styles.d.ts.map +1 -0
- package/dist/components/styles.js +1 -0
- package/dist/components/styles.js.map +1 -0
- package/dist/config/component-defaults.d.ts +71 -0
- package/dist/config/component-defaults.d.ts.map +1 -0
- package/dist/config/component-defaults.js +106 -0
- package/dist/config/component-defaults.js.map +1 -0
- package/dist/config/internal-config.d.ts +28 -0
- package/dist/config/internal-config.d.ts.map +1 -0
- package/dist/config/internal-config.js +100 -0
- package/dist/config/internal-config.js.map +1 -0
- package/dist/core/SDKManager.d.ts +230 -0
- package/dist/core/SDKManager.d.ts.map +1 -0
- package/dist/core/SDKManager.js +380 -0
- package/dist/core/SDKManager.js.map +1 -0
- package/dist/core/adapter.d.ts +1 -0
- package/dist/core/adapter.d.ts.map +1 -0
- package/dist/core/adapter.js +1 -0
- package/dist/core/adapter.js.map +1 -0
- package/dist/core/engine.d.ts +1 -0
- package/dist/core/engine.d.ts.map +1 -0
- package/dist/core/engine.js +1 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/fetcher.d.ts +1 -0
- package/dist/core/fetcher.d.ts.map +1 -0
- package/dist/core/fetcher.js +1 -0
- package/dist/core/fetcher.js.map +1 -0
- package/dist/core/global-manager.d.ts +1 -0
- package/dist/core/global-manager.d.ts.map +1 -0
- package/dist/core/global-manager.js +1 -0
- package/dist/core/global-manager.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useApps.d.ts +2 -1
- package/dist/hooks/useApps.d.ts.map +1 -0
- package/dist/hooks/useApps.js +8 -15
- package/dist/hooks/useApps.js.map +1 -0
- package/dist/hooks/useArticles.d.ts +1 -0
- package/dist/hooks/useArticles.d.ts.map +1 -0
- package/dist/hooks/useArticles.js +14 -18
- package/dist/hooks/useArticles.js.map +1 -0
- package/dist/hooks/useBanner.d.ts +2 -1
- package/dist/hooks/useBanner.d.ts.map +1 -0
- package/dist/hooks/useBanner.js +14 -15
- package/dist/hooks/useBanner.js.map +1 -0
- package/dist/hooks/useCampaignTracking.d.ts +1 -0
- package/dist/hooks/useCampaignTracking.d.ts.map +1 -0
- package/dist/hooks/useCampaignTracking.js +1 -0
- package/dist/hooks/useCampaignTracking.js.map +1 -0
- package/dist/hooks/useDashboard.d.ts +1 -0
- package/dist/hooks/useDashboard.d.ts.map +1 -0
- package/dist/hooks/useDashboard.js +12 -9
- package/dist/hooks/useDashboard.js.map +1 -0
- package/dist/hooks/useFloatingCardActions.d.ts +1 -0
- package/dist/hooks/useFloatingCardActions.d.ts.map +1 -0
- package/dist/hooks/useFloatingCardActions.js +1 -0
- package/dist/hooks/useFloatingCardActions.js.map +1 -0
- package/dist/hooks/useFloatingCardEngine.d.ts +1 -0
- package/dist/hooks/useFloatingCardEngine.d.ts.map +1 -0
- package/dist/hooks/useFloatingCardEngine.js +1 -0
- package/dist/hooks/useFloatingCardEngine.js.map +1 -0
- package/dist/hooks/useFloatingCards.d.ts +3 -2
- package/dist/hooks/useFloatingCards.d.ts.map +1 -0
- package/dist/hooks/useFloatingCards.js +37 -12
- package/dist/hooks/useFloatingCards.js.map +1 -0
- package/dist/hooks/useGrowApps.d.ts +1 -0
- package/dist/hooks/useGrowApps.d.ts.map +1 -0
- package/dist/hooks/useGrowApps.js +1 -0
- package/dist/hooks/useGrowApps.js.map +1 -0
- package/dist/hooks/usePartnerIntegration.d.ts +5 -4
- package/dist/hooks/usePartnerIntegration.d.ts.map +1 -0
- package/dist/hooks/usePartnerIntegration.js +10 -38
- package/dist/hooks/usePartnerIntegration.js.map +1 -0
- package/dist/hooks/useTranslations.d.ts +1 -0
- package/dist/hooks/useTranslations.d.ts.map +1 -0
- package/dist/hooks/useTranslations.js +5 -3
- package/dist/hooks/useTranslations.js.map +1 -0
- package/dist/hooks/useWhatsNew.d.ts +1 -0
- package/dist/hooks/useWhatsNew.d.ts.map +1 -0
- package/dist/hooks/useWhatsNew.js +12 -11
- package/dist/hooks/useWhatsNew.js.map +1 -0
- package/dist/index.d.ts +38 -22
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -22
- package/dist/index.js.map +1 -0
- package/dist/translations/default.d.ts +1 -0
- package/dist/translations/default.d.ts.map +1 -0
- package/dist/translations/default.js +1 -0
- package/dist/translations/default.js.map +1 -0
- package/dist/translations/locales/cn.json +39 -0
- package/dist/translations/locales/de.json +39 -0
- package/dist/translations/locales/dk.json +39 -0
- package/dist/translations/locales/en.json +39 -0
- package/dist/translations/locales/es.json +39 -0
- package/dist/translations/locales/fr.json +39 -0
- package/dist/translations/locales/ie.json +39 -0
- package/dist/translations/locales/in.json +39 -0
- package/dist/translations/locales/it.json +39 -0
- package/dist/translations/locales/jp.json +39 -0
- package/dist/translations/locales/nl.json +39 -0
- package/dist/translations/locales/nz.json +39 -0
- package/dist/translations/locales/pt.json +39 -0
- package/dist/translations/locales/se.json +39 -0
- package/dist/translations/locales/vi.json +39 -0
- package/dist/translations/translation-manager.d.ts +89 -0
- package/dist/translations/translation-manager.d.ts.map +1 -0
- package/dist/translations/translation-manager.js +239 -0
- package/dist/translations/translation-manager.js.map +1 -0
- package/dist/types/app.d.ts +1 -0
- package/dist/types/app.d.ts.map +1 -0
- package/dist/types/app.js +1 -0
- package/dist/types/app.js.map +1 -0
- package/dist/types/article.d.ts +1 -0
- package/dist/types/article.d.ts.map +1 -0
- package/dist/types/article.js +1 -0
- package/dist/types/article.js.map +1 -0
- package/dist/types/banner.d.ts +1 -0
- package/dist/types/banner.d.ts.map +1 -0
- package/dist/types/banner.js +1 -0
- package/dist/types/banner.js.map +1 -0
- package/dist/types/component-props.d.ts +140 -0
- package/dist/types/component-props.d.ts.map +1 -0
- package/dist/types/component-props.js +6 -0
- package/dist/types/component-props.js.map +1 -0
- package/dist/types/dashboard.d.ts +1 -0
- package/dist/types/dashboard.d.ts.map +1 -0
- package/dist/types/dashboard.js +1 -0
- package/dist/types/dashboard.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/integration.d.ts +1 -0
- package/dist/types/integration.d.ts.map +1 -0
- package/dist/types/integration.js +1 -0
- package/dist/types/integration.js.map +1 -0
- package/dist/types/partner.d.ts +1 -0
- package/dist/types/partner.d.ts.map +1 -0
- package/dist/types/partner.js +1 -0
- package/dist/types/partner.js.map +1 -0
- package/dist/types/product-update.d.ts +1 -0
- package/dist/types/product-update.d.ts.map +1 -0
- package/dist/types/product-update.js +1 -0
- package/dist/types/product-update.js.map +1 -0
- package/dist/types/translations.d.ts +1 -0
- package/dist/types/translations.d.ts.map +1 -0
- package/dist/types/translations.js +1 -0
- package/dist/types/translations.js.map +1 -0
- package/dist/utils/campaignTracking.d.ts +1 -0
- package/dist/utils/campaignTracking.d.ts.map +1 -0
- package/dist/utils/campaignTracking.js +1 -0
- package/dist/utils/campaignTracking.js.map +1 -0
- package/dist/utils/cls-monitor.d.ts +1 -0
- package/dist/utils/cls-monitor.d.ts.map +1 -0
- package/dist/utils/cls-monitor.js +1 -0
- package/dist/utils/cls-monitor.js.map +1 -0
- package/dist/utils/injectStyles.d.ts +1 -0
- package/dist/utils/injectStyles.d.ts.map +1 -0
- package/dist/utils/injectStyles.js +1 -0
- package/dist/utils/injectStyles.js.map +1 -0
- package/dist/utils/sessionManager.d.ts +1 -0
- package/dist/utils/sessionManager.d.ts.map +1 -0
- package/dist/utils/sessionManager.js +1 -0
- package/dist/utils/sessionManager.js.map +1 -0
- package/package.json +4 -3
- package/dist/provider/DashboardProvider.d.ts +0 -36
- package/dist/provider/DashboardProvider.js +0 -200
package/dist/core/adapter.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/core/adapter.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,kBAAkB,CAAC,OAAY;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;IAErC,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,IAAI,CAAC,MAAM;YACd,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;KAC7B,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,IAAI,EAAE,CAAC;IAEhD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,IAAI,EAAE,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IACtC,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC;IAE1D,+DAA+D;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;IAE7C,OAAO;QACL,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;QAC9B,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;QACxB,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC;QACjC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC;QACvC,SAAS,EAAE,QAAQ;QACnB,uBAAuB,EAAE,oBAAoB;QAC7C,YAAY,EAAE,YAAY,EAAE,uBAAuB;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAc;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAY;IACtC,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,UAAU,EAAE;QAC9B,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC1B,WAAW,EACT,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE;QAClE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ;QAC7D,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO;QACzD,IAAI,EACF,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,GAAG;YACX,GAAG;QACL,QAAQ,EACN,OAAO,CAAC,QAAQ;YAChB,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,UAAU;YAClB,YAAY;QACd,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;QAC5D,KAAK,EAAE;YACL,eAAe,EACb,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO;YACxE,SAAS,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS;YAClD,WAAW,EAAE,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW;YACxD,eAAe,EAAE,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,eAAe;SACtE;QACD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC;QAChD,QAAQ,EACN,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC5B,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClB,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC5B,CAAC,CAAC,OAAO,CAAC,MAAM;gBAChB,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;oBAC7B,CAAC,CAAC,OAAO,CAAC,OAAO;oBACjB,CAAC,CAAC,IAAI;KACf,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAY;IACvC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,OAAO,GAA+B;YAC1C,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,YAAY;YACjB,UAAU,EAAE,YAAY;YACxB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,eAAe;YACvB,aAAa,EAAE,eAAe;YAC9B,MAAM,EAAE,eAAe;SACxB,CAAC;QAEF,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC;IACjD,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,WAAW,GAA+B;YAC9C,GAAG,EAAE,YAAY;YACjB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO;SACf,CAAC;QAEF,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1D,OAAO,WAAW,CAAC,kBAAkB,CAAC,IAAI,YAAY,CAAC;IACzD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,IAAS;IAC1B,MAAM,MAAM,GAAgC;QAC1C,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC;YACnC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC5C,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK;qBAClB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;qBAClC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,QAAQ,GAA6B;QACzC,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,aAAa;QAC5B,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,aAAa;QAC3B,SAAS,EAAE,WAAW;QACtB,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,WAAW;KACtB,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9D,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAY,EAAE,YAAuB;IAC5D,MAAM,KAAK,GACT,YAAY;QACZ,iBAAiB,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;IAElE,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,UAAU,EAAE;QAC9B,GAAG,EACD,OAAO,CAAC,GAAG;YACX,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;YAChD,WAAW,EAAE;QACf,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE;QAC1C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE;QAC1D,IAAI,EACF,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE;QAC3E,IAAI,EACF,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG;QACzE,KAAK;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK;QACvC,QAAQ,EACN,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa;QACpE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO;QACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,IAAI,KAAK;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,QAAe;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAY;IACvC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,UAAU,EAAE;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE;QAC9C,WAAW,EACT,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE;QACjE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;QACxD,SAAS,EACP,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,UAAU;QACpB,QAAQ,EACN,OAAO,CAAC,QAAQ;YAChB,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,SAAS;QACnB,IAAI,EACF,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,GAAG;YACX,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,UAAU;YAClB,GAAG;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU;QACnE,aAAa,EACX,OAAO,CAAC,cAAc;YACtB,OAAO,CAAC,aAAa;YACrB,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,UAAU;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK;QAC9D,QAAQ,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY;QACvE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE;QAC5C,UAAU,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAc;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,aAAa,GAAG,OAAO;SAC1B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;SAC3C,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC;QAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC;QAC5C,OAAO,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAY;IAC7C,MAAM,WAAW,GACf,OAAO,CAAC,WAAW;QACnB,OAAO,CAAC,OAAO,EAAE,IAAI;QACrB,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,OAAO;QACf,EAAE,CAAC;IAEL,MAAM,QAAQ,GACZ,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAEpE,sCAAsC;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;IAE3C,qDAAqD;IACrD,MAAM,IAAI,GACR,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,GAAG;QAChB,OAAO,CAAC,IAAI;QACZ,OAAO,CAAC,cAAc;QACtB,OAAO,CAAC,gBAAgB;QACxB,OAAO,CAAC,GAAG;QACX,OAAO,CAAC,iBAAiB,CAAC;IAE5B,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,UAAU,EAAE;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE;QAC1C,WAAW;QACX,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe;QACnD,WAAW,EACT,OAAO,CAAC,OAAO,IAAI,0CAA0C;YAC7D,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,YAAY;YACpB,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,IAAI;YACZ,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC1B,SAAS,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,gCAAgC;QACjF,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QACpC,YAAY,EAAE,gBAAgB,CAC5B,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAC7C;QACD,KAAK,EAAE,gBAAgB,CACrB,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,QAAQ,CACvD;QACD,IAAI;QACJ,QAAQ,EACN,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,QAAQ;YAChB,OAAO,CAAC,KAAK;YACb,OAAO,CAAC,SAAS;QACnB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ;QAC/D,6CAA6C;QAC7C,iBAAiB,EAAE,SAAS,EAAE,IAAI,IAAI,OAAO,CAAC,iBAAiB,IAAI,YAAY;QAC/E,cAAc,EAAE,SAAS,EAAE,GAAG,IAAI,OAAO,CAAC,cAAc;QACxD,iBAAiB,EAAE,WAAW,EAAE,IAAI,IAAI,OAAO,CAAC,iBAAiB,IAAI,YAAY;QACjF,gBAAgB,EAAE,WAAW,EAAE,GAAG,IAAI,OAAO,CAAC,gBAAgB;QAC9D,OAAO,EAAE,OAAO,CAAC,OAAO;YACtB,CAAC,CAAC;gBACE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO;aAC9C;YACH,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAY;IACvC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;YAC/B,IAAI,KAAK,KAAK,GAAG;gBAAE,OAAO,OAAO,CAAC;YAClC,IAAI,KAAK,KAAK,GAAG;gBAAE,OAAO,OAAO,CAAC;YAClC,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAS;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI;aACR,KAAK,CAAC,SAAS,CAAC;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC","sourcesContent":["import {\n DashboardData,\n BannerItem,\n AppItem,\n ArticleItem,\n ProductUpdateItem,\n BannerType,\n AppGroup,\n} from \"../types\";\n\nexport function adaptDashboardData(rawData: any): DashboardData {\n const data = rawData.data || rawData;\n\n const banners = [];\n if (data.banner) {\n banners.push({\n ...data.banner,\n type: \"top_banner\",\n });\n }\n\n const allApps = [\n ...(data.partner_list || []),\n ...(data.seo_apps || []),\n ...(data.integrations || []),\n ];\n\n const articles = data.whats_new?.articles || [];\n\n const whatsNew = data.whats_new?.product_update || [];\n\n const growApps = data.grow_apps || [];\n const growAppsDisplayLimit = data.grow_apps_display_limit;\n \n // Keep the raw integrations data for the Integration component\n const integrations = data.integrations || [];\n\n return {\n banners: adaptBanners(banners),\n apps: adaptApps(allApps),\n articles: adaptArticles(articles),\n whatsNew: adaptProductUpdates(whatsNew),\n grow_apps: growApps,\n grow_apps_display_limit: growAppsDisplayLimit,\n integrations: integrations, // Add raw integrations\n };\n}\n\nfunction adaptBanners(banners: any[]): BannerItem[] {\n if (!Array.isArray(banners)) return [];\n\n return banners.map((banner) => adaptBanner(banner)).filter(Boolean);\n}\n\nexport function adaptBanner(apiData: any): BannerItem {\n const type = determineBannerType(apiData);\n\n return {\n id: apiData.id || generateId(),\n type,\n title: apiData.title || \"\",\n description:\n apiData.description || apiData.content || apiData.subtitle || \"\",\n image: apiData.image || apiData.image_url || apiData.imageUrl,\n icon: apiData.icon || apiData.icon_url || apiData.iconUrl,\n link:\n apiData.link ||\n apiData.button_url ||\n apiData.buttonUrl ||\n apiData.url ||\n \"#\",\n linkText:\n apiData.linkText ||\n apiData.button_text ||\n apiData.buttonText ||\n \"Learn More\",\n openType: apiData.openType || apiData.open_type || \"new_tab\",\n style: {\n backgroundColor:\n apiData.background_color || apiData.backgroundColor || apiData.bgColor,\n textColor: apiData.text_color || apiData.textColor,\n buttonColor: apiData.button_color || apiData.buttonColor,\n buttonTextColor: apiData.button_text_color || apiData.buttonTextColor,\n },\n priority: apiData.priority || apiData.order || 0,\n isActive:\n apiData.isActive !== undefined\n ? apiData.isActive\n : apiData.active !== undefined\n ? apiData.active\n : apiData.enabled !== undefined\n ? apiData.enabled\n : true,\n };\n}\n\nfunction determineBannerType(apiData: any): BannerType {\n if (apiData.type) {\n const typeMap: Record<string, BannerType> = {\n popup: \"popup\",\n pop_up: \"popup\",\n modal: \"popup\",\n top: \"top_banner\",\n top_banner: \"top_banner\",\n header: \"top_banner\",\n footer: \"footer_banner\",\n footer_banner: \"footer_banner\",\n bottom: \"footer_banner\",\n };\n\n const normalizedType = apiData.type.toLowerCase().replace(/-/g, \"_\");\n return typeMap[normalizedType] || \"top_banner\";\n }\n\n if (apiData.position) {\n const positionMap: Record<string, BannerType> = {\n top: \"top_banner\",\n header: \"top_banner\",\n bottom: \"footer_banner\",\n footer: \"footer_banner\",\n center: \"popup\",\n modal: \"popup\",\n };\n\n const normalizedPosition = apiData.position.toLowerCase();\n return positionMap[normalizedPosition] || \"top_banner\";\n }\n\n return \"top_banner\";\n}\n\nfunction adaptApps(apps: any): Record<AppGroup, AppItem[]> {\n const result: Record<AppGroup, AppItem[]> = {\n grow_faster: [],\n integration: [],\n marketing: [],\n analytics: [],\n other: [],\n };\n\n if (Array.isArray(apps)) {\n const adaptedApps = apps.map((app) => adaptApp(app)).filter(Boolean);\n adaptedApps.forEach((app) => {\n const group = app.group || \"other\";\n if (result[group]) {\n result[group].push(app);\n }\n });\n } else if (typeof apps === \"object\") {\n Object.entries(apps).forEach(([key, value]) => {\n const group = normalizeAppGroup(key);\n if (Array.isArray(value)) {\n result[group] = value\n .map((app) => adaptApp(app, group))\n .filter(Boolean);\n }\n });\n }\n\n return result;\n}\n\nfunction normalizeAppGroup(group: string): AppGroup {\n const groupMap: Record<string, AppGroup> = {\n grow_faster: \"grow_faster\",\n growfaster: \"grow_faster\",\n \"grow-faster\": \"grow_faster\",\n integration: \"integration\",\n integrations: \"integration\",\n marketing: \"marketing\",\n analytics: \"analytics\",\n analysis: \"analytics\",\n };\n\n const normalized = group.toLowerCase().replace(/[\\s_-]/g, \"\");\n return groupMap[normalized] || \"other\";\n}\n\nexport function adaptApp(apiData: any, defaultGroup?: AppGroup): AppItem {\n const group =\n defaultGroup ||\n normalizeAppGroup(apiData.group || apiData.category || \"other\");\n\n return {\n id: apiData.id || generateId(),\n key:\n apiData.key ||\n apiData.slug ||\n apiData.name?.toLowerCase().replace(/\\s+/g, \"-\") ||\n generateKey(),\n title: apiData.title || apiData.name || \"\",\n description: apiData.description || apiData.subtitle || \"\",\n icon:\n apiData.icon || apiData.icon_url || apiData.iconUrl || apiData.logo || \"\",\n link:\n apiData.link || apiData.url || apiData.app_url || apiData.appUrl || \"#\",\n group,\n rating: apiData.rating || apiData.score,\n installs:\n apiData.installs || apiData.installations || apiData.install_count,\n price: apiData.price || apiData.pricing,\n featured: apiData.featured || apiData.is_featured || false,\n };\n}\n\nfunction adaptArticles(articles: any[]): ArticleItem[] {\n if (!Array.isArray(articles)) return [];\n\n return articles.map((article) => adaptArticle(article)).filter(Boolean);\n}\n\nexport function adaptArticle(apiData: any): ArticleItem {\n return {\n id: apiData.id || generateId(),\n title: apiData.title || apiData.headline || \"\",\n description:\n apiData.description || apiData.summary || apiData.excerpt || \"\",\n content: apiData.content || apiData.body || apiData.text,\n thumbnail:\n apiData.thumbnail ||\n apiData.image ||\n apiData.cover_image ||\n apiData.coverImage,\n imageUrl:\n apiData.imageUrl ||\n apiData.image_url ||\n apiData.image ||\n apiData.thumbnail,\n link:\n apiData.link ||\n apiData.url ||\n apiData.article_url ||\n apiData.button_url ||\n \"#\",\n author: apiData.author || apiData.author_name || apiData.authorName,\n publishedDate:\n apiData.published_date ||\n apiData.publishedDate ||\n apiData.date ||\n apiData.created_at,\n category: apiData.category || apiData.section || apiData.label,\n readTime: apiData.read_time || apiData.readTime || apiData.reading_time,\n tags: apiData.tags || apiData.keywords || [],\n buttonText: apiData.button_text || apiData.buttonText,\n };\n}\n\nfunction adaptProductUpdates(updates: any[]): ProductUpdateItem[] {\n if (!Array.isArray(updates)) return [];\n\n const mappedUpdates = updates\n .map((update) => adaptProductUpdate(update))\n .filter(Boolean);\n\n return mappedUpdates.sort((a, b) => {\n const posA = a.position ?? Number.MAX_VALUE;\n const posB = b.position ?? Number.MAX_VALUE;\n return posA - posB;\n });\n}\n\nexport function adaptProductUpdate(apiData: any): ProductUpdateItem {\n const description =\n apiData.description ||\n apiData.content?.text ||\n apiData.content ||\n apiData.summary ||\n \"\";\n\n const features =\n apiData.features || apiData.content?.list || apiData.new_features;\n\n // Handle new nested buttons structure\n const tryButton = apiData.buttons?.try;\n const learnButton = apiData.buttons?.learn;\n\n // Fallback to old format if new format not available\n const link =\n tryButton?.url ||\n learnButton?.url ||\n apiData.link ||\n apiData.button_try_url ||\n apiData.button_learn_url ||\n apiData.url ||\n apiData.release_notes_url;\n\n return {\n id: apiData.id || generateId(),\n title: apiData.title || apiData.name || \"\",\n description,\n version: apiData.version || apiData.release_version,\n releaseDate:\n apiData.version || // New: use version field for date display\n apiData.date_time ||\n apiData.release_date ||\n apiData.releaseDate ||\n apiData.date ||\n new Date().toISOString(),\n date_time: apiData.version || apiData.date_time, // New: prioritize version field\n features: adaptStringArray(features),\n improvements: adaptStringArray(\n apiData.improvements || apiData.enhancements,\n ),\n fixes: adaptStringArray(\n apiData.fixes || apiData.bug_fixes || apiData.bugFixes,\n ),\n link,\n imageUrl:\n apiData.image_url ||\n apiData.imageUrl ||\n apiData.image ||\n apiData.thumbnail,\n image_url: apiData.image_url,\n type: determineUpdateType(apiData),\n position: apiData.position || apiData.order || apiData.priority,\n // Handle new button structure with fallbacks\n button_try_it_now: tryButton?.text || apiData.button_try_it_now || \"Try it now\",\n button_try_url: tryButton?.url || apiData.button_try_url,\n button_learn_more: learnButton?.text || apiData.button_learn_more || \"Learn more\", \n button_learn_url: learnButton?.url || apiData.button_learn_url,\n content: apiData.content\n ? {\n text: apiData.content.text || apiData.content,\n }\n : undefined,\n };\n}\n\nfunction determineUpdateType(apiData: any): \"major\" | \"minor\" | \"patch\" {\n if (apiData.type) {\n const type = apiData.type.toLowerCase();\n if (type.includes(\"major\")) return \"major\";\n if (type.includes(\"minor\")) return \"minor\";\n if (type.includes(\"patch\")) return \"patch\";\n }\n\n if (apiData.version) {\n const version = apiData.version.toString();\n const parts = version.split(\".\");\n if (parts.length >= 3) {\n const [, minor, patch] = parts;\n if (patch !== \"0\") return \"patch\";\n if (minor !== \"0\") return \"minor\";\n return \"major\";\n }\n }\n\n return \"minor\";\n}\n\nfunction adaptStringArray(data: any): string[] {\n if (Array.isArray(data)) {\n return data.filter((item) => typeof item === \"string\");\n }\n\n if (typeof data === \"string\") {\n return data\n .split(/[,;|\\n]/)\n .map((s) => s.trim())\n .filter(Boolean);\n }\n\n return [];\n}\n\nfunction generateId(): string {\n return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n}\n\nfunction generateKey(): string {\n return `item-${Math.random().toString(36).substr(2, 9)}`;\n}\n"]}
|
package/dist/core/engine.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,UAAU,EACV,OAAO,EACP,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,UAAU,EACX,MAAM,UAAU,CAAC;AAIlB,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgC;IACvD,OAAO,CAAC,IAAI,CAA8B;IACnC,MAAM,EAAE,eAAe,CAAC;IAC/B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,SAAS,CAAwD;IACzE,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO;WAWO,WAAW,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,eAAe;WAYtD,aAAa,IAAI,IAAI;IAItB,IAAI,CAAC,YAAY,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAuBjD,QAAQ;IAYf,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI;IAS5E,OAAO,CAAC,eAAe;IAIhB,OAAO,IAAI,aAAa,GAAG,IAAI;IAI/B,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE;IAU3C,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE;IAIjD,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE;IAUpC,YAAY,IAAI,QAAQ,EAAE;IAK1B,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE;IAU1C,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAU1C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,aAAa,IAAI,OAAO;IAIxB,WAAW,IAAI,MAAM;IAKrB,YAAY,IAAI,OAAO;IAIvB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAY/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB9C,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAoBvD,gBAAgB,IAAI,MAAM;CAGlC"}
|
package/dist/core/engine.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DashboardData,\n DashboardConfig,\n BannerItem,\n AppItem,\n AppGroup,\n ArticleItem,\n ProductUpdateItem,\n BannerType,\n} from \"../types\";\nimport { adaptDashboardData } from \"./adapter\";\nimport { fetchDashboard } from \"./fetcher\";\n\nexport class DashboardEngine {\n private static instance: DashboardEngine | null = null;\n private data: DashboardData | null = null;\n public config: DashboardConfig; // Made public for access in FloatingCard\n private initPromise: Promise<void> | null = null;\n private lastFetchTime: number = 0;\n private listeners: Set<(data: DashboardData | null) => void> = new Set();\n private fetchInProgress: boolean = false;\n private currentLocale: string;\n\n private constructor(config: DashboardConfig) {\n this.config = {\n cacheTime: 5 * 60 * 1000,\n retryAttempts: 3,\n retryDelay: 1000,\n locale: \"en\",\n ...config,\n };\n this.currentLocale = this.config.locale || \"en\";\n }\n\n public static getInstance(config?: DashboardConfig): DashboardEngine {\n if (!DashboardEngine.instance) {\n if (!config) {\n throw new Error(\n \"DashboardEngine requires config on first initialization\",\n );\n }\n DashboardEngine.instance = new DashboardEngine(config);\n }\n return DashboardEngine.instance;\n }\n\n public static resetInstance(): void {\n DashboardEngine.instance = null;\n }\n\n public async init(forceRefresh: boolean = false): Promise<void> {\n const now = Date.now();\n const cacheExpired =\n now - this.lastFetchTime > (this.config.cacheTime || 0);\n\n if (!forceRefresh && !cacheExpired && this.data) {\n return Promise.resolve();\n }\n\n if (this.fetchInProgress && this.initPromise) {\n return this.initPromise;\n }\n\n if (!this.initPromise || forceRefresh || cacheExpired) {\n this.fetchInProgress = true;\n this.initPromise = this.loadData().finally(() => {\n this.fetchInProgress = false;\n });\n }\n\n return this.initPromise;\n }\n\n private async loadData(): Promise<void> {\n try {\n const rawData = await fetchDashboard(this.config);\n this.data = adaptDashboardData(rawData);\n this.lastFetchTime = Date.now();\n this.notifyListeners();\n } catch (error) {\n console.error(\"Failed to load dashboard data:\", error);\n throw error;\n }\n }\n\n public subscribe(listener: (data: DashboardData | null) => void): () => void {\n this.listeners.add(listener);\n listener(this.data);\n\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n private notifyListeners(): void {\n this.listeners.forEach((listener) => listener(this.data));\n }\n\n public getData(): DashboardData | null {\n return this.data;\n }\n\n public getBanners(type?: BannerType): BannerItem[] {\n if (!this.data?.banners) return [];\n\n if (type) {\n return this.data.banners.filter((banner) => banner.type === type);\n }\n\n return this.data.banners;\n }\n\n public getActiveBanners(type?: BannerType): BannerItem[] {\n return this.getBanners(type).filter((banner) => banner.isActive !== false);\n }\n\n public getApps(group?: AppGroup): AppItem[] {\n if (!this.data?.apps) return [];\n\n if (group) {\n return this.data.apps[group] || [];\n }\n\n return Object.values(this.data.apps).flat();\n }\n\n public getAppGroups(): AppGroup[] {\n if (!this.data?.apps) return [];\n return Object.keys(this.data.apps) as AppGroup[];\n }\n\n public getArticles(limit?: number): ArticleItem[] {\n if (!this.data?.articles) return [];\n\n if (limit && limit > 0) {\n return this.data.articles.slice(0, limit);\n }\n\n return this.data.articles;\n }\n\n public getWhatsNew(limit?: number): ProductUpdateItem[] {\n if (!this.data?.whatsNew) return [];\n\n if (limit && limit > 0) {\n return this.data.whatsNew.slice(0, limit);\n }\n\n return this.data.whatsNew;\n }\n\n public async refresh(): Promise<void> {\n return this.init(true);\n }\n\n public isInitialized(): boolean {\n return this.data !== null;\n }\n\n public getCacheAge(): number {\n if (!this.lastFetchTime) return Infinity;\n return Date.now() - this.lastFetchTime;\n }\n\n public isCacheValid(): boolean {\n return this.getCacheAge() < (this.config.cacheTime || 0);\n }\n\n public updateLocale(locale: string): boolean {\n if (this.currentLocale !== locale) {\n this.currentLocale = locale;\n this.config = { ...this.config, locale };\n this.data = null;\n this.lastFetchTime = 0;\n this.initPromise = null;\n return true; // Locale was changed\n }\n return false; // Locale was not changed\n }\n\n public async setLocale(locale: string): Promise<void> {\n if (this.currentLocale !== locale) {\n const wasInitialized = this.isInitialized();\n\n this.currentLocale = locale;\n this.config = { ...this.config, locale };\n\n // Clear data to force refresh with new locale\n this.data = null;\n this.lastFetchTime = 0;\n this.initPromise = null;\n\n // If engine was initialized, automatically refresh with new locale\n if (wasInitialized) {\n await this.init();\n }\n\n // Notify listeners about the change\n this.notifyListeners();\n }\n }\n\n public updateConfig(newConfig: Partial<DashboardConfig>): void {\n const oldConfig = this.config;\n this.config = { ...this.config, ...newConfig };\n\n // If locale changed, update current locale and clear cache\n if (newConfig.locale && newConfig.locale !== this.currentLocale) {\n this.currentLocale = newConfig.locale;\n this.data = null;\n this.lastFetchTime = 0;\n this.initPromise = null;\n }\n\n // If API URL changed, clear cache\n if (newConfig.apiUrl && newConfig.apiUrl !== oldConfig.apiUrl) {\n this.data = null;\n this.lastFetchTime = 0;\n this.initPromise = null;\n }\n }\n\n public getCurrentLocale(): string {\n return this.currentLocale;\n }\n}\n"]}
|
package/dist/core/fetcher.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../src/core/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAS3C,wBAAsB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAoE1E;AAED,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAM7C;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
|
package/dist/core/fetcher.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/core/fetcher.ts"],"names":[],"mappings":"AAOA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAuB;IAC1D,oCAAoC;IACpC,yCAAyC;IACzC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,4BAA4B;QAC5B,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;QACrC,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,WAAW;YAC3C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;YACxB,CAAC,CAAC,uBAAuB,CAAC;QAC5B,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;IACrC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEvC,mCAAmC;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACxD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,EAAE,UAAkB,CAAC,EAAgB,EAAE;QAC/D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBAC3C,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,iBAAiB,EAAE,MAAM,EAAE,6BAA6B;oBACxD,GAAG,MAAM,CAAC,OAAO;iBAClB;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEnC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBAC7C,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAClB,IAAI;oBACJ,SAAS,EAAE,GAAG;iBACf,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;YAE9C,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC;gBACpD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3D,OAAO,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,YAAY,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,IAAI,GAAG,EAAE,CAAC;QACR,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC","sourcesContent":["import { DashboardConfig } from \"../types\";\n\ninterface CacheEntry {\n data: any;\n timestamp: number;\n}\n\nconst cache = new Map<string, CacheEntry>();\n\nexport async function fetchDashboard(config: DashboardConfig): Promise<any> {\n // Build URL with locale query param\n // Handle both absolute and relative URLs\n let url: URL;\n try {\n // Try as absolute URL first\n url = new URL(config.apiUrl);\n } catch {\n // If it fails, treat as relative URL\n const baseUrl = typeof window !== 'undefined' \n ? window.location.origin \n : 'http://localhost:3000';\n url = new URL(config.apiUrl, baseUrl);\n }\n \n const locale = config.locale || 'en';\n url.searchParams.set('locale', locale);\n \n // Use URL with locale as cache key\n const cacheKey = url.toString();\n const now = Date.now();\n\n if (config.cacheTime && config.cacheTime > 0) {\n const cached = cache.get(cacheKey);\n if (cached && now - cached.timestamp < config.cacheTime) {\n return Promise.resolve(cached.data);\n }\n }\n\n const attemptFetch = async (attempt: number = 1): Promise<any> => {\n try {\n const response = await fetch(url.toString(), {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept-Language\": locale, // Also send locale in header\n ...config.headers,\n },\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const data = await response.json();\n\n if (config.cacheTime && config.cacheTime > 0) {\n cache.set(cacheKey, {\n data,\n timestamp: now,\n });\n }\n\n return data;\n } catch (error) {\n const maxAttempts = config.retryAttempts || 3;\n\n if (attempt < maxAttempts) {\n const delay = (config.retryDelay || 1000) * attempt;\n await new Promise((resolve) => setTimeout(resolve, delay));\n return attemptFetch(attempt + 1);\n }\n\n throw error;\n }\n };\n\n return attemptFetch();\n}\n\nexport function clearCache(url?: string): void {\n if (url) {\n cache.delete(url);\n } else {\n cache.clear();\n }\n}\n\nexport function getCacheSize(): number {\n return cache.size;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-manager.d.ts","sourceRoot":"","sources":["../../src/core/global-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAc3D;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuC;IAC9D,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,WAAW,CAKjB;IACF,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,OAAO;WAIO,WAAW,IAAI,sBAAsB;IAOnD;;OAEG;IACI,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,EAAE,yBAAyB,GAAE,OAAe,GAAG,IAAI;IA8B/G;;OAEG;IACI,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAW3C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwC1B;;OAEG;IACH,OAAO,CAAC,YAAY;IAWpB;;OAEG;IACU,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD1D;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCrC;;OAEG;IACU,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCrD;;OAEG;IACI,gBAAgB,IAAI,MAAM;IAOjC;;OAEG;IACI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;IAanF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACI,QAAQ,IAAI,cAAc;IAIjC;;OAEG;IACI,SAAS,IAAI,eAAe,GAAG,IAAI;IAI1C;;OAEG;IACI,aAAa,IAAI,OAAO;IAI/B;;OAEG;IACI,gBAAgB,IAAI,MAAM;IAIjC;;OAEG;WACW,KAAK,IAAI,IAAI;CAuB5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-manager.js","sourceRoot":"","sources":["../../src/core/global-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import { DashboardEngine } from \"./engine\";\nimport { DashboardConfig, DashboardState } from \"../types\";\n\ninterface ProviderInfo {\n id: string;\n mounted: boolean;\n config?: DashboardConfig;\n autoRefreshOnLocaleChange?: boolean;\n}\n\ninterface GlobalStateListener {\n id: string;\n callback: (state: DashboardState) => void;\n}\n\n/**\n * GlobalDashboardManager - Singleton manager for shared SDK state\n * \n * This manager ensures all DashboardProvider instances share:\n * - The same engine instance\n * - The same data/cache\n * - The same locale state\n * - Deduplicated API calls\n * \n * Multiple providers can mount/unmount independently while maintaining\n * a stable, shared runtime.\n */\nexport class GlobalDashboardManager {\n private static instance: GlobalDashboardManager | null = null;\n private engine: DashboardEngine | null = null;\n private providers: Map<string, ProviderInfo> = new Map();\n private stateListeners: Set<GlobalStateListener> = new Set();\n private globalState: DashboardState = {\n data: null,\n loading: false,\n error: null,\n lastFetch: null,\n };\n private initPromise: Promise<void> | null = null;\n private lastConfig: DashboardConfig | null = null;\n private pendingLocaleRefresh: string | null = null;\n\n private constructor() {\n // Private constructor for singleton\n }\n\n public static getInstance(): GlobalDashboardManager {\n if (!GlobalDashboardManager.instance) {\n GlobalDashboardManager.instance = new GlobalDashboardManager();\n }\n return GlobalDashboardManager.instance;\n }\n\n /**\n * Register a provider instance\n */\n public registerProvider(id: string, config?: DashboardConfig, autoRefreshOnLocaleChange: boolean = false): void {\n this.providers.set(id, { \n id, \n mounted: true, \n config,\n autoRefreshOnLocaleChange\n });\n\n // Update config if provided and different\n if (config && !this.configEquals(this.lastConfig, config)) {\n this.updateGlobalConfig(config);\n }\n\n // Check if we need to initialize due to pending locale refresh\n // This handles the case where all providers have autoInit=false but want locale refresh\n if (this.pendingLocaleRefresh && autoRefreshOnLocaleChange) {\n const locale = this.pendingLocaleRefresh;\n this.pendingLocaleRefresh = null;\n \n // Force initialization with the new locale if not initialized\n if (!this.engine || !this.engine.isInitialized()) {\n if (this.lastConfig) {\n this.init({ ...this.lastConfig, locale }).catch(console.error);\n }\n } else {\n this.engine.setLocale(locale).catch(console.error);\n }\n }\n }\n\n /**\n * Unregister a provider instance\n */\n public unregisterProvider(id: string): void {\n this.providers.delete(id);\n \n // Remove associated listeners\n this.stateListeners = new Set(\n Array.from(this.stateListeners).filter(l => !l.id.startsWith(id))\n );\n\n // Don't destroy engine even if no providers - maintain stable runtime\n }\n\n /**\n * Get or create the shared engine instance\n */\n private getOrCreateEngine(config?: DashboardConfig): DashboardEngine {\n if (!this.engine) {\n if (!config && !this.lastConfig) {\n throw new Error(\"GlobalDashboardManager requires config on first use\");\n }\n const finalConfig = config || this.lastConfig!;\n this.engine = DashboardEngine.getInstance(finalConfig);\n this.lastConfig = finalConfig;\n \n // Subscribe to engine changes\n this.engine.subscribe((data) => {\n this.updateGlobalState({\n data,\n loading: false,\n error: null,\n lastFetch: data ? new Date() : this.globalState.lastFetch,\n });\n });\n }\n return this.engine;\n }\n\n /**\n * Update the global configuration\n */\n private updateGlobalConfig(config: DashboardConfig): void {\n const previousLocale = this.lastConfig?.locale;\n this.lastConfig = config;\n \n if (this.engine) {\n // Update existing engine config\n this.engine.updateConfig(config);\n \n // If locale changed, we need to refresh data\n if (config.locale && config.locale !== previousLocale) {\n // Check if any provider wants auto-refresh on locale change\n const shouldRefresh = Array.from(this.providers.values()).some(p => p.autoRefreshOnLocaleChange);\n \n if (this.engine.isInitialized()) {\n // Engine is initialized, refresh immediately if any provider wants it\n if (shouldRefresh) {\n this.engine.setLocale(config.locale).catch(console.error);\n } else {\n this.engine.updateLocale(config.locale);\n }\n } else {\n // Engine not initialized yet\n this.engine.updateLocale(config.locale);\n \n // If any provider wants refresh, force initialization NOW\n // This is critical for autoInit=false providers\n if (shouldRefresh) {\n this.init(config).catch(console.error);\n } else {\n // Mark for later refresh when a provider initializes\n this.pendingLocaleRefresh = config.locale;\n }\n }\n }\n } else if (config.locale && config.locale !== previousLocale) {\n // No engine yet, but locale changed - mark for refresh when engine is created\n this.pendingLocaleRefresh = config.locale;\n }\n }\n\n /**\n * Check if two configs are equal\n */\n private configEquals(a: DashboardConfig | null, b: DashboardConfig | null): boolean {\n if (!a || !b) return a === b;\n return (\n a.apiUrl === b.apiUrl &&\n a.locale === b.locale &&\n a.cacheTime === b.cacheTime &&\n a.retryAttempts === b.retryAttempts &&\n a.retryDelay === b.retryDelay\n );\n }\n\n /**\n * Initialize the shared engine\n */\n public async init(config?: DashboardConfig): Promise<void> {\n // If we have a pending locale refresh and config has a different locale,\n // use the pending locale instead\n if (this.pendingLocaleRefresh && config) {\n config = { ...config, locale: this.pendingLocaleRefresh };\n }\n \n if (this.initPromise && !config) {\n return this.initPromise;\n }\n\n if (config) {\n this.updateGlobalConfig(config);\n }\n\n this.updateGlobalState({ ...this.globalState, loading: true, error: null });\n\n this.initPromise = (async () => {\n try {\n const engine = this.getOrCreateEngine(config);\n await engine.init();\n const data = engine.getData();\n \n // Clear pending locale refresh since we just initialized with it\n if (this.pendingLocaleRefresh) {\n this.pendingLocaleRefresh = null;\n }\n \n this.updateGlobalState({\n data,\n loading: false,\n error: null,\n lastFetch: new Date(),\n });\n } catch (error) {\n const err = error instanceof Error \n ? error \n : new Error(\"Failed to initialize dashboard\");\n \n this.updateGlobalState({\n ...this.globalState,\n loading: false,\n error: err,\n });\n \n throw err;\n }\n })();\n\n return this.initPromise;\n }\n\n /**\n * Refresh the dashboard data\n */\n public async refresh(): Promise<void> {\n if (!this.engine) {\n return this.init();\n }\n\n this.updateGlobalState({ ...this.globalState, loading: true, error: null });\n\n try {\n await this.engine.refresh();\n const data = this.engine.getData();\n \n this.updateGlobalState({\n data,\n loading: false,\n error: null,\n lastFetch: new Date(),\n });\n } catch (error) {\n const err = error instanceof Error \n ? error \n : new Error(\"Failed to refresh dashboard\");\n \n this.updateGlobalState({\n ...this.globalState,\n loading: false,\n error: err,\n });\n \n throw err;\n }\n }\n\n /**\n * Update locale globally\n */\n public async setLocale(locale: string): Promise<void> {\n // Update the last config\n if (this.lastConfig) {\n this.lastConfig = { ...this.lastConfig, locale };\n }\n \n // Check if any provider wants auto-refresh\n const shouldRefresh = Array.from(this.providers.values()).some(p => p.autoRefreshOnLocaleChange);\n \n if (!this.engine) {\n // No engine yet, but if any provider wants refresh, initialize NOW\n if (shouldRefresh && this.lastConfig) {\n await this.init({ ...this.lastConfig, locale });\n } else {\n // Mark locale for refresh when engine is created\n this.pendingLocaleRefresh = locale;\n }\n return;\n }\n\n // Engine exists, update locale\n if (this.engine.isInitialized()) {\n await this.engine.setLocale(locale);\n } else {\n // Engine exists but not initialized\n this.engine.updateLocale(locale);\n \n // If any provider wants refresh, initialize now\n if (shouldRefresh) {\n await this.init();\n }\n }\n }\n\n /**\n * Get the current locale\n */\n public getCurrentLocale(): string {\n if (this.engine) {\n return this.engine.getCurrentLocale();\n }\n return this.lastConfig?.locale || \"en\";\n }\n\n /**\n * Subscribe to global state changes\n */\n public subscribe(id: string, callback: (state: DashboardState) => void): () => void {\n const listener = { id, callback };\n this.stateListeners.add(listener);\n \n // Immediately call with current state\n callback(this.globalState);\n \n // Return unsubscribe function\n return () => {\n this.stateListeners.delete(listener);\n };\n }\n\n /**\n * Update and broadcast global state\n */\n private updateGlobalState(state: DashboardState): void {\n this.globalState = state;\n \n // Notify all listeners\n this.stateListeners.forEach(listener => {\n try {\n listener.callback(state);\n } catch (error) {\n console.error(`Error in state listener ${listener.id}:`, error);\n }\n });\n }\n\n /**\n * Get the current global state\n */\n public getState(): DashboardState {\n return this.globalState;\n }\n\n /**\n * Get the shared engine instance (if created)\n */\n public getEngine(): DashboardEngine | null {\n return this.engine;\n }\n\n /**\n * Check if manager is initialized\n */\n public isInitialized(): boolean {\n return this.engine?.isInitialized() || false;\n }\n\n /**\n * Get provider count\n */\n public getProviderCount(): number {\n return this.providers.size;\n }\n\n /**\n * Reset the global manager (for testing)\n */\n public static reset(): void {\n if (GlobalDashboardManager.instance) {\n const manager = GlobalDashboardManager.instance;\n \n // Clear listeners\n manager.stateListeners.clear();\n manager.providers.clear();\n \n // Reset state\n manager.globalState = {\n data: null,\n loading: false,\n error: null,\n lastFetch: null,\n };\n \n manager.initPromise = null;\n manager.lastConfig = null;\n manager.engine = null;\n }\n \n GlobalDashboardManager.instance = null;\n }\n}"]}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC","sourcesContent":["export * from \"./useDashboard\";\nexport * from \"./useBanner\";\nexport * from \"./useApps\";\nexport * from \"./useArticles\";\nexport * from \"./useWhatsNew\";\nexport * from \"./useGrowApps\";\nexport * from \"./usePartnerIntegration\";\nexport * from \"./useFloatingCards\";\nexport * from \"./useCampaignTracking\";\nexport * from \"./useFloatingCardActions\";\nexport * from \"./useFloatingCardEngine\";\n"]}
|
package/dist/hooks/useApps.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useApps.d.ts","sourceRoot":"","sources":["../../src/hooks/useApps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAIpD;AAED,wBAAgB,YAAY,IAAI,QAAQ,EAAE,CAIzC"}
|
package/dist/hooks/useApps.js
CHANGED
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return useMemo(() => {
|
|
6
|
-
if (!engine || !state.data)
|
|
7
|
-
return [];
|
|
8
|
-
return engine.getApps(group);
|
|
9
|
-
}, [engine, group, state.data]);
|
|
1
|
+
export function useApps(_group) {
|
|
2
|
+
// Legacy hook - components should use SDK directly
|
|
3
|
+
// Returning empty for backward compatibility
|
|
4
|
+
return [];
|
|
10
5
|
}
|
|
11
6
|
export function useAppGroups() {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return [];
|
|
16
|
-
return engine.getAppGroups();
|
|
17
|
-
}, [engine, state.data]);
|
|
7
|
+
// Legacy hook - components should use SDK directly
|
|
8
|
+
// Returning empty for backward compatibility
|
|
9
|
+
return [];
|
|
18
10
|
}
|
|
11
|
+
//# sourceMappingURL=useApps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useApps.js","sourceRoot":"","sources":["../../src/hooks/useApps.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,MAAiB;IACvC,mDAAmD;IACnD,6CAA6C;IAC7C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,qDAAqD;IACrD,6CAA6C;IAC7C,OAAO,EAAE,CAAC;AACZ,CAAC","sourcesContent":["import { AppItem, AppGroup } from \"../types\";\n\nexport function useApps(_group?: AppGroup): AppItem[] {\n // Legacy hook - components should use SDK directly\n // Returning empty for backward compatibility\n return [];\n}\n\nexport function useAppGroups(): AppGroup[] {\n // Legacy hook - components should use SDK directly \n // Returning empty for backward compatibility\n return [];\n}\n"]}
|
|
@@ -9,3 +9,4 @@ export interface UseArticlesResult {
|
|
|
9
9
|
export declare function useArticles(limit?: number): UseArticlesResult;
|
|
10
10
|
export declare function useLatestArticles(limit?: number): ArticleItem[];
|
|
11
11
|
export declare function useArticleCategories(): string[];
|
|
12
|
+
//# sourceMappingURL=useArticles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useArticles.d.ts","sourceRoot":"","sources":["../../src/hooks/useArticles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAC7D,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;IAC3D,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;CACrD;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,CA4B7D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,MAAU,GAAG,WAAW,EAAE,CAMlE;AAED,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAc/C"}
|
|
@@ -1,29 +1,24 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { useSDK } from "../core/SDKManager";
|
|
3
3
|
export function useArticles(limit) {
|
|
4
|
-
|
|
4
|
+
// Legacy hook - components should use SDK directly
|
|
5
|
+
const sdk = useSDK({});
|
|
5
6
|
const articles = useMemo(() => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return articles.find((article) => article.id === id);
|
|
7
|
+
// Returning empty for backward compatibility
|
|
8
|
+
return [];
|
|
9
|
+
}, [limit]);
|
|
10
|
+
const getArticle = (_id) => {
|
|
11
|
+
return undefined; // Legacy compatibility
|
|
12
12
|
};
|
|
13
|
-
const getArticlesByCategory = (
|
|
14
|
-
return
|
|
13
|
+
const getArticlesByCategory = (_category) => {
|
|
14
|
+
return []; // Legacy compatibility
|
|
15
15
|
};
|
|
16
|
-
const getLatestArticles = (
|
|
17
|
-
|
|
18
|
-
const dateA = new Date(a.publishedDate || 0).getTime();
|
|
19
|
-
const dateB = new Date(b.publishedDate || 0).getTime();
|
|
20
|
-
return dateB - dateA;
|
|
21
|
-
});
|
|
22
|
-
return sorted.slice(0, limitCount);
|
|
16
|
+
const getLatestArticles = (_limitCount) => {
|
|
17
|
+
return []; // Legacy compatibility
|
|
23
18
|
};
|
|
24
19
|
return {
|
|
25
20
|
articles,
|
|
26
|
-
loading:
|
|
21
|
+
loading: sdk.loading,
|
|
27
22
|
getArticle,
|
|
28
23
|
getArticlesByCategory,
|
|
29
24
|
getLatestArticles,
|
|
@@ -47,3 +42,4 @@ export function useArticleCategories() {
|
|
|
47
42
|
return Array.from(categories);
|
|
48
43
|
}, [articles]);
|
|
49
44
|
}
|
|
45
|
+
//# sourceMappingURL=useArticles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useArticles.js","sourceRoot":"","sources":["../../src/hooks/useArticles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAW5C,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,mDAAmD;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAEvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,6CAA6C;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,UAAU,GAAG,CAAC,GAAoB,EAA2B,EAAE;QACnE,OAAO,SAAS,CAAC,CAAC,uBAAuB;IAC3C,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAiB,EAAE;QACjE,OAAO,EAAE,CAAC,CAAC,uBAAuB;IACpC,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAiB,EAAE;QAC/D,OAAO,EAAE,CAAC,CAAC,uBAAuB;IACpC,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,UAAU;QACV,qBAAqB;QACrB,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAgB,CAAC;IACjD,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,CAAC;IAEtD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;IAEnC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAErC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC","sourcesContent":["import { useMemo } from \"react\";\nimport { useSDK } from \"../core/SDKManager\";\nimport { ArticleItem } from \"../types\";\n\nexport interface UseArticlesResult {\n articles: ArticleItem[];\n loading: boolean;\n getArticle: (id: string | number) => ArticleItem | undefined;\n getArticlesByCategory: (category: string) => ArticleItem[];\n getLatestArticles: (limit: number) => ArticleItem[];\n}\n\nexport function useArticles(limit?: number): UseArticlesResult {\n // Legacy hook - components should use SDK directly\n const sdk = useSDK({});\n\n const articles = useMemo(() => {\n // Returning empty for backward compatibility\n return [];\n }, [limit]);\n\n const getArticle = (_id: string | number): ArticleItem | undefined => {\n return undefined; // Legacy compatibility\n };\n\n const getArticlesByCategory = (_category: string): ArticleItem[] => {\n return []; // Legacy compatibility\n };\n\n const getLatestArticles = (_limitCount: number): ArticleItem[] => {\n return []; // Legacy compatibility\n };\n\n return {\n articles,\n loading: sdk.loading,\n getArticle,\n getArticlesByCategory,\n getLatestArticles,\n };\n}\n\nexport function useLatestArticles(limit: number = 5): ArticleItem[] {\n const { articles, getLatestArticles } = useArticles();\n\n return useMemo(() => {\n return getLatestArticles(limit);\n }, [articles, limit]);\n}\n\nexport function useArticleCategories(): string[] {\n const { articles } = useArticles();\n\n return useMemo(() => {\n const categories = new Set<string>();\n\n articles.forEach((article) => {\n if (article.category) {\n categories.add(article.category);\n }\n });\n\n return Array.from(categories);\n }, [articles]);\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BannerItem, BannerType } from "../types";
|
|
2
|
-
export declare function useBanners(
|
|
2
|
+
export declare function useBanners(_type?: BannerType): BannerItem[];
|
|
3
3
|
export declare function useTopBanner(): BannerItem | null;
|
|
4
4
|
export declare function usePopupBanner(): BannerItem | null;
|
|
5
5
|
export declare function useFooterBanner(): BannerItem | null;
|
|
6
|
+
//# sourceMappingURL=useBanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBanner.d.ts","sourceRoot":"","sources":["../../src/hooks/useBanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAI3D;AAED,wBAAgB,YAAY,IAAI,UAAU,GAAG,IAAI,CAIhD;AAED,wBAAgB,cAAc,IAAI,UAAU,GAAG,IAAI,CAIlD;AAED,wBAAgB,eAAe,IAAI,UAAU,GAAG,IAAI,CAInD"}
|
package/dist/hooks/useBanner.js
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return useMemo(() => {
|
|
6
|
-
if (!engine || !state.data)
|
|
7
|
-
return [];
|
|
8
|
-
return engine.getBanners(type);
|
|
9
|
-
}, [engine, type, state.data]);
|
|
1
|
+
export function useBanners(_type) {
|
|
2
|
+
// This is a legacy hook - components should use the SDK directly
|
|
3
|
+
// Keeping for backward compatibility but returning empty for now
|
|
4
|
+
return [];
|
|
10
5
|
}
|
|
11
6
|
export function useTopBanner() {
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
// This is a legacy hook - TopBanner component should use SDK directly
|
|
8
|
+
// Keeping for backward compatibility but returning null for now
|
|
9
|
+
return null;
|
|
14
10
|
}
|
|
15
11
|
export function usePopupBanner() {
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
// This is a legacy hook - PopupBanner component should use SDK directly
|
|
13
|
+
// Keeping for backward compatibility but returning null for now
|
|
14
|
+
return null;
|
|
18
15
|
}
|
|
19
16
|
export function useFooterBanner() {
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
// This is a legacy hook - FooterBanner component should use SDK directly
|
|
18
|
+
// Keeping for backward compatibility but returning null for now
|
|
19
|
+
return null;
|
|
22
20
|
}
|
|
21
|
+
//# sourceMappingURL=useBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBanner.js","sourceRoot":"","sources":["../../src/hooks/useBanner.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,iEAAiE;IACjE,iEAAiE;IACjE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,wEAAwE;IACxE,gEAAgE;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,wEAAwE;IACxE,kEAAkE;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,yEAAyE;IACzE,gEAAgE;IAChE,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { BannerItem, BannerType } from \"../types\";\n\nexport function useBanners(_type?: BannerType): BannerItem[] {\n // This is a legacy hook - components should use the SDK directly\n // Keeping for backward compatibility but returning empty for now\n return [];\n}\n\nexport function useTopBanner(): BannerItem | null {\n // This is a legacy hook - TopBanner component should use SDK directly \n // Keeping for backward compatibility but returning null for now\n return null;\n}\n\nexport function usePopupBanner(): BannerItem | null {\n // This is a legacy hook - PopupBanner component should use SDK directly\n // Keeping for backward compatibility but returning null for now \n return null;\n}\n\nexport function useFooterBanner(): BannerItem | null {\n // This is a legacy hook - FooterBanner component should use SDK directly\n // Keeping for backward compatibility but returning null for now\n return null;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCampaignTracking.d.ts","sourceRoot":"","sources":["../../src/hooks/useCampaignTracking.ts"],"names":[],"mappings":"AAGA,UAAU,4BAA4B;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,4BAA4B;;;;;EAuF1E;AAED,UAAU,0BAA0B;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B;gCAUnD;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAChC;;;;;;;;EAkCJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCampaignTracking.js","sourceRoot":"","sources":["../../src/hooks/useCampaignTracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAUlF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAqC;IACzE,MAAM,EACJ,MAAM,EACN,UAAU,EACV,SAAS,GAAG,GAAG,EAAE,uBAAuB;IACxC,kBAAkB,GAAG,IAAI,EAAE,oBAAoB;IAC/C,QAAQ,GAAG,EAAE,GACd,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,mBAAmB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAEjE,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CACvC,CAAC,OAAO,EAAE,EAAE;YACV,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,iBAAiB,IAAI,SAAS,CAAC;gBAEhF,IAAI,UAAU,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;oBAC7C,yBAAyB;oBACzB,YAAY,CAAC,IAAI,CAAC,CAAC;oBAEnB,+CAA+C;oBAC/C,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;wBACjC,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC3C,CAAC;oBAED,gCAAgC;oBAChC,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;wBAC/B,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBAC3C,CAAC;oBAED,kBAAkB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC3C,uCAAuC;wBACvC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;4BAC/B,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;4BAChD,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;wBACnC,CAAC;oBACH,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACzB,CAAC;qBAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACvB,wBAAwB;oBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;oBAEpB,wDAAwD;oBACxD,IAAI,kBAAkB,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;wBAC7D,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;wBACzC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpC,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,EACD;YACE,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,6CAA6C;YACxE,UAAU,EAAE,KAAK;SAClB,CACF,CAAC;QAEF,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO,GAAG,EAAE;YACV,UAAU;YACV,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YACD,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAElE,sCAAsC;IACtC,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC;QAClD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,UAAU;QACV,SAAS;QACT,cAAc,EAAE,iBAAiB,CAAC,OAAO;QACzC,eAAe;KAChB,CAAC;AACJ,CAAC;AAUD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAE7D,MAAM,UAAU,GAAG,qBAAqB,CAAC;QACvC,MAAM;QACN,UAAU;QACV,GAAG,iBAAiB;KACrB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,YAKA,EAAE,EAAE;QACH,MAAM,YAAY,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;QAElD,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE;YACrC,GAAG,YAAY;YACf,YAAY;YACZ,QAAQ,EAAE;gBACR,GAAG,OAAO,CAAC,QAAQ;gBACnB,GAAG,YAAY,EAAE,QAAQ;aAC1B;SACF,CAAC,CAAC;IACL,CAAC,EACD,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CACnD,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,UAAU,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,UAAU,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,UAAU,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO;QACL,GAAG,UAAU;QACb,UAAU;QACV,kBAAkB;QAClB,oBAAoB;QACpB,YAAY;KACb,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect, useRef, useCallback, useState } from 'react';\nimport { trackCampaignView, trackCampaignClick } from '../utils/campaignTracking';\n\ninterface UseCampaignVisibilityOptions {\n shopId: string;\n campaignId: string | number;\n threshold?: number; // Intersection threshold (0-1)\n visibilityDuration?: number; // Time in ms the element must be visible\n metadata?: Record<string, any>;\n}\n\n/**\n * Hook to track campaign visibility using IntersectionObserver\n * Automatically tracks views when element is visible for specified duration\n */\nexport function useCampaignVisibility(options: UseCampaignVisibilityOptions) {\n const {\n shopId,\n campaignId,\n threshold = 0.5, // Default: 50% visible\n visibilityDuration = 1000, // Default: 1 second\n metadata = {},\n } = options;\n \n const elementRef = useRef<HTMLDivElement>(null);\n const visibilityTimerRef = useRef<NodeJS.Timeout | null>(null);\n const hasTrackedViewRef = useRef(false);\n const [isVisible, setIsVisible] = useState(false);\n const firstVisibleTimeRef = useRef<number | null>(null);\n \n useEffect(() => {\n if (!elementRef.current || typeof window === 'undefined') return;\n \n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n const nowVisible = entry.isIntersecting && entry.intersectionRatio >= threshold;\n \n if (nowVisible && !hasTrackedViewRef.current) {\n // Element became visible\n setIsVisible(true);\n \n // Record first visible time if not already set\n if (!firstVisibleTimeRef.current) {\n firstVisibleTimeRef.current = Date.now();\n }\n \n // Start timer for view tracking\n if (visibilityTimerRef.current) {\n clearTimeout(visibilityTimerRef.current);\n }\n \n visibilityTimerRef.current = setTimeout(() => {\n // Track view after visibility duration\n if (!hasTrackedViewRef.current) {\n trackCampaignView(shopId, campaignId, metadata);\n hasTrackedViewRef.current = true;\n }\n }, visibilityDuration);\n } else if (!nowVisible) {\n // Element became hidden\n setIsVisible(false);\n \n // Clear timer if element becomes hidden before tracking\n if (visibilityTimerRef.current && !hasTrackedViewRef.current) {\n clearTimeout(visibilityTimerRef.current);\n visibilityTimerRef.current = null;\n }\n }\n });\n },\n {\n threshold: [0, threshold], // Watch for both becoming visible and hidden\n rootMargin: '0px',\n }\n );\n \n observer.observe(elementRef.current);\n \n return () => {\n // Cleanup\n if (visibilityTimerRef.current) {\n clearTimeout(visibilityTimerRef.current);\n }\n observer.disconnect();\n };\n }, [shopId, campaignId, threshold, visibilityDuration, metadata]);\n \n // Calculate time to action for clicks\n const getTimeToAction = useCallback(() => {\n if (firstVisibleTimeRef.current) {\n return Date.now() - firstVisibleTimeRef.current;\n }\n return undefined;\n }, []);\n \n return {\n elementRef,\n isVisible,\n hasTrackedView: hasTrackedViewRef.current,\n getTimeToAction,\n };\n}\n\ninterface UseCampaignTrackingOptions {\n shopId: string;\n campaignId: string | number;\n threshold?: number;\n visibilityDuration?: number;\n metadata?: Record<string, any>;\n}\n\n/**\n * Main hook for campaign tracking\n * Combines visibility tracking with click tracking utilities\n */\nexport function useCampaignTracking(options: UseCampaignTrackingOptions) {\n const { shopId, campaignId, ...visibilityOptions } = options;\n \n const visibility = useCampaignVisibility({\n shopId,\n campaignId,\n ...visibilityOptions,\n });\n \n const trackClick = useCallback(\n (clickOptions?: {\n actionType?: string;\n ctaId?: string;\n ctaKey?: string;\n metadata?: Record<string, any>;\n }) => {\n const timeToAction = visibility.getTimeToAction();\n \n trackCampaignClick(shopId, campaignId, {\n ...clickOptions,\n timeToAction,\n metadata: {\n ...options.metadata,\n ...clickOptions?.metadata,\n },\n });\n },\n [shopId, campaignId, visibility, options.metadata]\n );\n \n const trackPrimaryAction = useCallback(() => {\n trackClick({ actionType: 'primary' });\n }, [trackClick]);\n \n const trackSecondaryAction = useCallback(() => {\n trackClick({ actionType: 'secondary' });\n }, [trackClick]);\n \n const trackDismiss = useCallback(() => {\n trackClick({ actionType: 'dismiss' });\n }, [trackClick]);\n \n return {\n ...visibility,\n trackClick,\n trackPrimaryAction,\n trackSecondaryAction,\n trackDismiss,\n };\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,IAAI,kBAAkB,CAcjD"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useSDK } from "../core/SDKManager";
|
|
2
2
|
export function useDashboard() {
|
|
3
|
-
|
|
3
|
+
// Legacy hook - use useSDK instead
|
|
4
|
+
const sdk = useSDK({});
|
|
5
|
+
// Return a compatible structure for backward compatibility
|
|
4
6
|
return {
|
|
5
|
-
data:
|
|
6
|
-
loading:
|
|
7
|
-
error:
|
|
8
|
-
refresh,
|
|
9
|
-
isInitialized,
|
|
10
|
-
lastFetch:
|
|
11
|
-
locale,
|
|
7
|
+
data: null, // Dashboard data not available in provider-less architecture
|
|
8
|
+
loading: sdk.loading,
|
|
9
|
+
error: sdk.error || null,
|
|
10
|
+
refresh: async () => { }, // No-op for backward compatibility
|
|
11
|
+
isInitialized: sdk.initialized,
|
|
12
|
+
lastFetch: null, // Not tracked in provider-less architecture
|
|
13
|
+
locale: sdk.locale,
|
|
12
14
|
};
|
|
13
15
|
}
|
|
16
|
+
//# sourceMappingURL=useDashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDashboard.js","sourceRoot":"","sources":["../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAa5C,MAAM,UAAU,YAAY;IAC1B,mCAAmC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAEvB,2DAA2D;IAC3D,OAAO;QACL,IAAI,EAAE,IAAI,EAAE,6DAA6D;QACzE,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;QACxB,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,mCAAmC;QAC5D,aAAa,EAAE,GAAG,CAAC,WAAW;QAC9B,SAAS,EAAE,IAAI,EAAE,4CAA4C;QAC7D,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC;AACJ,CAAC","sourcesContent":["import { useSDK } from \"../core/SDKManager\";\nimport { DashboardData } from \"../types\";\n\nexport interface UseDashboardResult {\n data: DashboardData | null;\n loading: boolean;\n error: Error | null;\n refresh: () => Promise<void>;\n isInitialized: boolean;\n lastFetch: Date | null;\n locale: string;\n}\n\nexport function useDashboard(): UseDashboardResult {\n // Legacy hook - use useSDK instead\n const sdk = useSDK({});\n \n // Return a compatible structure for backward compatibility\n return {\n data: null, // Dashboard data not available in provider-less architecture\n loading: sdk.loading,\n error: sdk.error || null,\n refresh: async () => {}, // No-op for backward compatibility\n isInitialized: sdk.initialized,\n lastFetch: null, // Not tracked in provider-less architecture\n locale: sdk.locale,\n };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFloatingCardActions.d.ts","sourceRoot":"","sources":["../../src/hooks/useFloatingCardActions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACtD,qBAAqB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACjD,aAAa,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;CAC5G;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,yBAAyB,KAChC,yBA2EF,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFloatingCardActions.js","sourceRoot":"","sources":["../../src/hooks/useFloatingCardActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAmBpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAiC,EACN,EAAE;IAC7B,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAE1E,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,MAAiF,EAAE,EAAE;QACpF,IAAI,CAAC,MAAM,EAAE,GAAG;YAAE,OAAO;QAEzB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QAEvB,iCAAiC;QACjC,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACtD,IAAI,aAAa,EAAE,CAAC;gBAClB,aAAa,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7D,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;gBACjD,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,IACE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzD,MAAM,CAAC,QAAQ,KAAK,KAAK,EACzB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,+DAA+D;QAC/D,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC,EACD,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC,CACzC,CAAC;IAEF,MAAM,mBAAmB,GAAG,WAAW,CACrC,CAAC,IAAsB,EAAE,EAAE;QACzB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,qBAAqB,GAAG,WAAW,CACvC,CAAC,IAAsB,EAAE,EAAE;QACzB,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,MAAuB,EAAE,EAAE;QAC1B,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,OAAO;QACL,mBAAmB;QACnB,qBAAqB;QACrB,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,sBAAsB,CAAC","sourcesContent":["import { useCallback } from 'react';\nimport { FloatingCardData } from '../components/FloatingCard';\n\nexport interface FloatingCardActionsConfig {\n navigate: (path: string) => void;\n onOpenPricing?: () => void;\n onDismiss?: (cardId: string | number) => void;\n specialRoutes?: {\n [key: string]: () => void;\n };\n}\n\nexport interface FloatingCardActionsReturn {\n handlePrimaryAction: (card: FloatingCardData) => void;\n handleSecondaryAction: (card: FloatingCardData) => void;\n handleDismiss: (cardId: string | number) => void;\n resolveAction: (action: FloatingCardData['primary_action'] | FloatingCardData['secondary_action']) => void;\n}\n\nexport const useFloatingCardActions = (\n config: FloatingCardActionsConfig\n): FloatingCardActionsReturn => {\n const { navigate, onOpenPricing, onDismiss, specialRoutes = {} } = config;\n\n const resolveAction = useCallback(\n (action: FloatingCardData['primary_action'] | FloatingCardData['secondary_action']) => {\n if (!action?.url) return;\n\n const url = action.url;\n\n // Check for special routes first\n if (url === '/pricing' || url.startsWith('/pricing?')) {\n if (onOpenPricing) {\n onOpenPricing();\n return;\n }\n }\n\n // Check custom special routes\n for (const [route, handler] of Object.entries(specialRoutes)) {\n if (url === route || url.startsWith(`${route}?`)) {\n handler();\n return;\n }\n }\n\n // Handle internal routes (starts with /)\n if (url.startsWith('/')) {\n navigate(url);\n return;\n }\n\n // Handle external links\n if (\n (url.startsWith('http://') || url.startsWith('https://')) &&\n action.external !== false\n ) {\n window.open(url, '_blank', 'noopener,noreferrer');\n return;\n }\n\n // Fallback to navigation for relative paths or unknown formats\n navigate(url);\n },\n [navigate, onOpenPricing, specialRoutes]\n );\n\n const handlePrimaryAction = useCallback(\n (card: FloatingCardData) => {\n resolveAction(card.primary_action);\n },\n [resolveAction]\n );\n\n const handleSecondaryAction = useCallback(\n (card: FloatingCardData) => {\n resolveAction(card.secondary_action);\n },\n [resolveAction]\n );\n\n const handleDismiss = useCallback(\n (cardId: string | number) => {\n if (onDismiss) {\n onDismiss(cardId);\n }\n },\n [onDismiss]\n );\n\n return {\n handlePrimaryAction,\n handleSecondaryAction,\n handleDismiss,\n resolveAction,\n };\n};\n\nexport default useFloatingCardActions;"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFloatingCardEngine.d.ts","sourceRoot":"","sources":["../../src/hooks/useFloatingCardEngine.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,yBAAyB,EAAE,WAAW,CAAC;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IAEvC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAGpB,mBAAmB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACtD,qBAAqB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAGjD,aAAa,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;CAC5G;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,wBAAwB,KAC/B,wBAmCF,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFloatingCardEngine.js","sourceRoot":"","sources":["../../src/hooks/useFloatingCardEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAA6B,MAAM,0BAA0B,CAAC;AAuB7F;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAgC,EACN,EAAE;IAC5B,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAEhF,+BAA+B;IAC/B,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,uBAAuB,CAAC;QAC5E,MAAM;QACN,YAAY;KACb,CAAC,CAAC;IAEH,iDAAiD;IACjD,MAAM,OAAO,GAAG,sBAAsB,CAAC;QACrC,QAAQ;QACR,aAAa;QACb,aAAa;QACb,SAAS,EAAE,CAAC,MAAuB,EAAE,EAAE;YACrC,gDAAgD;YAChD,MAAM,EAAE,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACtE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACf,WAAW,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,YAAY;QACZ,OAAO;QACP,KAAK;QAEL,UAAU;QACV,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;QACpD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC","sourcesContent":["import { useVisibleFloatingCards } from './useFloatingCards';\nimport { useFloatingCardActions, FloatingCardActionsConfig } from './useFloatingCardActions';\nimport { FloatingCardData } from '../components/FloatingCard';\n\nexport interface FloatingCardEngineConfig extends Omit<FloatingCardActionsConfig, 'onDismiss'> {\n shopId?: string;\n currentRoute?: string;\n}\n\nexport interface FloatingCardEngineReturn {\n // Data from useVisibleFloatingCards\n visibleCards: FloatingCardData[];\n loading: boolean;\n error: Error | null;\n \n // Actions\n handlePrimaryAction: (card: FloatingCardData) => void;\n handleSecondaryAction: (card: FloatingCardData) => void;\n handleDismiss: (cardId: string | number) => void;\n \n // Direct action resolver for custom use cases\n resolveAction: (action: FloatingCardData['primary_action'] | FloatingCardData['secondary_action']) => void;\n}\n\n/**\n * Comprehensive hook that combines floating card data fetching with action handling.\n * This provides a complete solution for floating card functionality.\n */\nexport const useFloatingCardEngine = (\n config: FloatingCardEngineConfig\n): FloatingCardEngineReturn => {\n const { shopId, currentRoute, navigate, onOpenPricing, specialRoutes } = config;\n\n // Fetch visible floating cards\n const { visibleCards, dismissCard, loading, error } = useVisibleFloatingCards({\n shopId,\n currentRoute,\n });\n\n // Set up action handlers with dismiss integrated\n const actions = useFloatingCardActions({\n navigate,\n onOpenPricing,\n specialRoutes,\n onDismiss: (cardId: string | number) => {\n // Convert to number if needed for compatibility\n const id = typeof cardId === 'string' ? parseInt(cardId, 10) : cardId;\n if (!isNaN(id)) {\n dismissCard(id);\n }\n },\n });\n\n return {\n // Data\n visibleCards,\n loading,\n error,\n \n // Actions\n handlePrimaryAction: actions.handlePrimaryAction,\n handleSecondaryAction: actions.handleSecondaryAction,\n handleDismiss: actions.handleDismiss,\n resolveAction: actions.resolveAction,\n };\n};\n\nexport default useFloatingCardEngine;"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { FloatingCardData } from "../components/FloatingCard";
|
|
2
|
+
import { type UseSDKOptions } from "../core/SDKManager";
|
|
2
3
|
export type { FloatingCardData } from "../components/FloatingCard";
|
|
3
|
-
interface UseFloatingCardsOptions {
|
|
4
|
+
interface UseFloatingCardsOptions extends UseSDKOptions {
|
|
4
5
|
shopId?: string;
|
|
5
6
|
autoFetch?: boolean;
|
|
6
7
|
currentRoute?: string;
|
|
7
|
-
locale?: string;
|
|
8
8
|
}
|
|
9
9
|
interface UseFloatingCardsReturn {
|
|
10
10
|
cards: FloatingCardData[];
|
|
@@ -30,3 +30,4 @@ export declare function useVisibleFloatingCards(options?: UseFloatingCardsOption
|
|
|
30
30
|
resetDismissedCards: () => void;
|
|
31
31
|
hasDismissedCards: boolean;
|
|
32
32
|
};
|
|
33
|
+
//# sourceMappingURL=useFloatingCards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFloatingCards.d.ts","sourceRoot":"","sources":["../../src/hooks/useFloatingCards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,UAAU,uBAAwB,SAAQ,aAAa;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,sBAAsB;IAC9B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,uBAA4B,GACpC,sBAAsB,CAqKxB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,uBAA4B,GACpC;IACD,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CA2EA"}
|