@bikdotai/bik-component-library 0.0.721-beta.3 → 0.0.721-beta.30
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/cjs/components/feature-announcements/FeatureAnnouncementProvider.d.ts +1 -11
- package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.js +1 -1
- package/dist/cjs/components/feature-announcements/MajorUpdatePopup.d.ts +1 -10
- package/dist/cjs/components/feature-announcements/MajorUpdatePopup.js +1 -1
- package/dist/cjs/components/feature-announcements/MinorUpdatePopup.d.ts +1 -10
- package/dist/cjs/components/feature-announcements/MinorUpdatePopup.js +1 -1
- package/dist/cjs/components/feature-announcements/VideoModal.d.ts +1 -6
- package/dist/cjs/components/feature-announcements/VideoModal.js +1 -1
- package/dist/cjs/components/feature-announcements/constants/animations.d.ts +27 -0
- package/dist/cjs/components/feature-announcements/constants/animations.js +1 -0
- package/dist/cjs/components/feature-announcements/constants/dimensions.d.ts +56 -0
- package/dist/cjs/components/feature-announcements/constants/dimensions.js +1 -0
- package/dist/cjs/components/feature-announcements/constants/index.d.ts +19 -0
- package/dist/cjs/components/feature-announcements/constants/index.js +1 -0
- package/dist/cjs/components/feature-announcements/constants/localStorageKeys.d.ts +18 -0
- package/dist/cjs/components/feature-announcements/constants/localStorageKeys.js +1 -0
- package/dist/cjs/components/feature-announcements/constants/selectors.d.ts +21 -0
- package/dist/cjs/components/feature-announcements/constants/selectors.js +1 -0
- package/dist/cjs/components/feature-announcements/constants/zIndex.d.ts +10 -0
- package/dist/cjs/components/feature-announcements/constants/zIndex.js +1 -0
- package/dist/cjs/components/feature-announcements/hooks/index.d.ts +1 -0
- package/dist/cjs/components/feature-announcements/hooks/useFeatureAnnouncements.d.ts +13 -0
- package/dist/cjs/components/feature-announcements/hooks/useFeatureAnnouncements.js +1 -0
- package/dist/cjs/components/feature-announcements/index.d.ts +3 -2
- package/dist/cjs/components/feature-announcements/styles/index.d.ts +4 -0
- package/dist/cjs/components/feature-announcements/styles/joyride.styles.d.ts +125 -0
- package/dist/cjs/components/feature-announcements/styles/majorPopup.styles.d.ts +23 -0
- package/dist/cjs/components/feature-announcements/styles/majorPopup.styles.js +1 -0
- package/dist/cjs/components/feature-announcements/styles/minorPopup.styles.d.ts +16 -0
- package/dist/cjs/components/feature-announcements/styles/minorPopup.styles.js +1 -0
- package/dist/cjs/components/feature-announcements/styles/videoModal.styles.d.ts +13 -0
- package/dist/cjs/components/feature-announcements/styles/videoModal.styles.js +1 -0
- package/dist/cjs/components/feature-announcements/types/feature.types.d.ts +40 -0
- package/dist/cjs/components/feature-announcements/types/index.d.ts +4 -0
- package/dist/cjs/components/feature-announcements/types/props.types.d.ts +43 -0
- package/dist/cjs/components/feature-announcements/types/repository.types.d.ts +11 -0
- package/dist/cjs/components/feature-announcements/types/router.types.d.ts +7 -0
- package/dist/cjs/components/feature-announcements/useFeatureAnnouncements.d.ts +3 -14
- package/dist/cjs/components/feature-announcements/utils/animationHelpers.d.ts +18 -0
- package/dist/cjs/components/feature-announcements/utils/animationHelpers.js +1 -0
- package/dist/cjs/components/feature-announcements/utils/elementHelpers.d.ts +30 -0
- package/dist/cjs/components/feature-announcements/utils/elementHelpers.js +1 -0
- package/dist/cjs/components/feature-announcements/utils/htmlHelpers.d.ts +18 -0
- package/dist/cjs/components/feature-announcements/utils/htmlHelpers.js +1 -0
- package/dist/cjs/components/feature-announcements/utils/index.d.ts +3 -0
- package/dist/cjs/components/whats-new/WhatsNewButton.js +1 -1
- package/dist/cjs/components/whats-new/useWhatsNew.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.d.ts +1 -11
- package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.js +1 -1
- package/dist/esm/components/feature-announcements/MajorUpdatePopup.d.ts +1 -10
- package/dist/esm/components/feature-announcements/MajorUpdatePopup.js +1 -1
- package/dist/esm/components/feature-announcements/MinorUpdatePopup.d.ts +1 -10
- package/dist/esm/components/feature-announcements/MinorUpdatePopup.js +1 -1
- package/dist/esm/components/feature-announcements/VideoModal.d.ts +1 -6
- package/dist/esm/components/feature-announcements/VideoModal.js +1 -1
- package/dist/esm/components/feature-announcements/constants/animations.d.ts +27 -0
- package/dist/esm/components/feature-announcements/constants/animations.js +1 -0
- package/dist/esm/components/feature-announcements/constants/dimensions.d.ts +56 -0
- package/dist/esm/components/feature-announcements/constants/dimensions.js +1 -0
- package/dist/esm/components/feature-announcements/constants/index.d.ts +19 -0
- package/dist/esm/components/feature-announcements/constants/index.js +1 -0
- package/dist/esm/components/feature-announcements/constants/localStorageKeys.d.ts +18 -0
- package/dist/esm/components/feature-announcements/constants/localStorageKeys.js +1 -0
- package/dist/esm/components/feature-announcements/constants/selectors.d.ts +21 -0
- package/dist/esm/components/feature-announcements/constants/selectors.js +1 -0
- package/dist/esm/components/feature-announcements/constants/zIndex.d.ts +10 -0
- package/dist/esm/components/feature-announcements/constants/zIndex.js +1 -0
- package/dist/esm/components/feature-announcements/hooks/index.d.ts +1 -0
- package/dist/esm/components/feature-announcements/hooks/useFeatureAnnouncements.d.ts +13 -0
- package/dist/esm/components/feature-announcements/hooks/useFeatureAnnouncements.js +1 -0
- package/dist/esm/components/feature-announcements/index.d.ts +3 -2
- package/dist/esm/components/feature-announcements/styles/index.d.ts +4 -0
- package/dist/esm/components/feature-announcements/styles/joyride.styles.d.ts +125 -0
- package/dist/esm/components/feature-announcements/styles/majorPopup.styles.d.ts +23 -0
- package/dist/esm/components/feature-announcements/styles/majorPopup.styles.js +1 -0
- package/dist/esm/components/feature-announcements/styles/minorPopup.styles.d.ts +16 -0
- package/dist/esm/components/feature-announcements/styles/minorPopup.styles.js +1 -0
- package/dist/esm/components/feature-announcements/styles/videoModal.styles.d.ts +13 -0
- package/dist/esm/components/feature-announcements/styles/videoModal.styles.js +1 -0
- package/dist/esm/components/feature-announcements/types/feature.types.d.ts +40 -0
- package/dist/esm/components/feature-announcements/types/index.d.ts +4 -0
- package/dist/esm/components/feature-announcements/types/props.types.d.ts +43 -0
- package/dist/esm/components/feature-announcements/types/repository.types.d.ts +11 -0
- package/dist/esm/components/feature-announcements/types/router.types.d.ts +7 -0
- package/dist/esm/components/feature-announcements/useFeatureAnnouncements.d.ts +3 -14
- package/dist/esm/components/feature-announcements/utils/animationHelpers.d.ts +18 -0
- package/dist/esm/components/feature-announcements/utils/animationHelpers.js +1 -0
- package/dist/esm/components/feature-announcements/utils/elementHelpers.d.ts +30 -0
- package/dist/esm/components/feature-announcements/utils/elementHelpers.js +1 -0
- package/dist/esm/components/feature-announcements/utils/htmlHelpers.d.ts +18 -0
- package/dist/esm/components/feature-announcements/utils/htmlHelpers.js +1 -0
- package/dist/esm/components/feature-announcements/utils/index.d.ts +3 -0
- package/dist/esm/components/whats-new/WhatsNewButton.js +1 -1
- package/dist/esm/components/whats-new/useWhatsNew.js +1 -1
- package/dist/esm/index.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/components/feature-announcements/FeatureAnnouncement.types.d.ts +0 -27
- package/dist/cjs/components/feature-announcements/useFeatureAnnouncements.js +0 -1
- package/dist/esm/components/feature-announcements/FeatureAnnouncement.types.d.ts +0 -27
- package/dist/esm/components/feature-announcements/useFeatureAnnouncements.js +0 -1
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
interface FeatureAnnouncementProviderProps {
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
fetchVisibleFeatures: FeatureAnnouncementRepoInjected['fetchVisibleFeatures'];
|
|
6
|
-
getStoreFeatureProgress: FeatureAnnouncementRepoInjected['getStoreFeatureProgress'];
|
|
7
|
-
fetchFeatureById: FeatureAnnouncementRepoInjected['fetchFeatureById'];
|
|
8
|
-
markFeatureAsViewedForStore: FeatureAnnouncementRepoInjected['markFeatureAsViewedForStore'];
|
|
9
|
-
isFeatureApplicableToCurrentPage: FeatureAnnouncementRepoInjected['isFeatureApplicableToCurrentPage'];
|
|
10
|
-
module?: string;
|
|
11
|
-
router?: RouterProps;
|
|
12
|
-
}
|
|
2
|
+
import { FeatureAnnouncementProviderProps } from './types';
|
|
13
3
|
declare const FeatureAnnouncementProvider: React.FC<FeatureAnnouncementProviderProps>;
|
|
14
4
|
export default FeatureAnnouncementProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/react/jsx-runtime.js"),t=require("react"),o=require("react-joyride"),n=require("./MajorUpdatePopup.js"),a=require("./MinorUpdatePopup.js"),r=require("./useFeatureAnnouncements.js"),s=require("./VideoModal.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=i(o);const u="#007bff";exports.default=i=>{let{children:d,fetchVisibleFeatures:p,getStoreFeatureProgress:c,fetchFeatureById:f,markFeatureAsViewedForStore:b,isFeatureApplicableToCurrentPage:g,module:x,router:h}=i;var m;const{majorUpdateFeatures:k,minorUpdateFeatures:C,isLoading:y,markFeatureAsViewed:S}=r.useFeatureAnnouncements({fetchVisibleFeatures:p,getStoreFeatureProgress:c,fetchFeatureById:f,markFeatureAsViewedForStore:b,isFeatureApplicableToCurrentPage:g,module:x,router:h}),[T,w]=t.useState(null),[B,j]=t.useState(null),[E,v]=t.useState(!1),[F,I]=t.useState([]),[N,R]=t.useState(!1),[P,M]=t.useState([]),[W,q]=t.useState(!1),[O,V]=t.useState(!1),[A,L]=t.useState([]),[U,$]=t.useState(!1),[z,_]=t.useState(!1),[D,G]=t.useState(!1),[H,J]=t.useState(""),[K,Q]=t.useState(!1);t.useEffect((()=>{if(!(k.length>0)||T||y||W||K)0!==k.length||y||_(!0);else{_(!1),$(!1),v(!1),I([]),j(null),L([]);const e=()=>{document.querySelector('[data-testid="whats-new-button"]')?X(k[0]):setTimeout(e,1e3)};e()}}),[k,T,y,W,K]),t.useEffect((()=>{var e;const t=null===(e=null==h?void 0:h.query)||void 0===e?void 0:e.featureId;if(!t||y||0===C.length)return;const o=C.find((e=>e.id===t));if(!o||!o.featureTag)return;$(!0);let n=0;const a=setInterval((()=>{n++;const e=o.featureTag.startsWith("#")||o.featureTag.startsWith(".")||o.featureTag.startsWith("[")?o.featureTag:`#${o.featureTag}`;document.querySelector(e)?(re(o),clearInterval(a)):n>=25&&(console.warn(`FeatureAnnouncements: Timed out waiting for element with selector: ${e}`),clearInterval(a))}),200);return()=>{clearInterval(a)}}),[C,null===(m=null==h?void 0:h.query)||void 0===m?void 0:m.featureId,y]),t.useEffect((()=>{if(C.length>0&&!y&&!E&&!O&&!B&&!U&&z&&!K){let e=null,t=null,o=null,n=!1;const a=()=>{if(n||O||B||U||!z)return;const a=C.filter((e=>{if(!e.featureTag||""===e.featureTag.trim())return!1;const t=e.featureTag.startsWith("#")||e.featureTag.startsWith(".")||e.featureTag.startsWith("[")?e.featureTag:`#${e.featureTag}`;return null!==document.querySelector(t)}));a.length>0&&(L(a),re(a[0]),e&&(e.disconnect(),e=null),t&&(window.removeEventListener("scroll",t),t=null),o&&(clearTimeout(o),o=null))};return e=new MutationObserver((e=>{let t=!1;for(const o of e){if("childList"===o.type&&o.addedNodes.length>0)for(let e=0;e<o.addedNodes.length;e++){const n=o.addedNodes[e];if(n.nodeType===Node.ELEMENT_NODE){const e=n;if(e.id||e.querySelector("[id]")){t=!0;break}}}if(t)break}E||n||O||B||U||!z||!t||(o&&clearTimeout(o),o=setTimeout((()=>{n||O||B||U||!z||a()}),200))})),t=()=>{E||n||O||B||U||!z||(o&&clearTimeout(o),o=setTimeout((()=>{n||O||B||U||!z||a()}),300))},e&&e.observe(document.body,{childList:!0,subtree:!0}),t&&window.addEventListener("scroll",t,{passive:!0}),a(),setTimeout((()=>{n||O||B||U||!z||a()}),100),setTimeout((()=>{n||O||B||U||!z||a()}),1e3),setTimeout((()=>{n||O||B||U||!z||a()}),500),()=>{n=!0,e&&e.disconnect(),t&&window.removeEventListener("scroll",t),o&&clearTimeout(o)}}(0===C.length||y)&&(v(!1),I([]),j(null),L([]),$(!1))}),[C,y,E,O,B,U,z,S,K]);const X=t=>{w(t);const o=k.findIndex((e=>e.id===t.id)),a=k.length,r=[{target:'[data-testid="whats-new-button"]',content:e.jsxRuntimeExports.jsx(n.default,{feature:t,currentIndex:o,totalFeatures:a,onSkip:()=>Y(t),onExplore:()=>Z(t),onPrevious:()=>ee(t),onNext:()=>te(t)}),placement:"bottom-start",placementBeacon:"top-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:t,isMajor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"16px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];M(r),R(!0)},Y=t.useCallback((e=>{(e||T)&&(q(!0),k.forEach((e=>{S(e.id)})),R(!1),w(null),M([]),_(!0),setTimeout((()=>{q(!1)}),500))}),[T,k,S]),Z=t.useCallback((e=>{q(!0),S(e.id),e.productVideo&&(J(e.productVideo),G(!0),Q(!0)),R(!1),w(null),M([]);k.findIndex((t=>t.id===e.id))===k.length-1&&_(!0),setTimeout((()=>{q(!1)}),500)}),[k,S]),ee=t.useCallback((t=>{const o=t||T;if(!o)return;const a=k.findIndex((e=>e.id===o.id));if(a>0){const t=k[a-1];w(t);const o=a-1,r=k.length,s=[{target:'[data-testid="whats-new-button"]',content:e.jsxRuntimeExports.jsx(n.default,{feature:t,currentIndex:o,totalFeatures:r,onSkip:()=>Y(t),onExplore:()=>Z(t),onPrevious:()=>ee(t),onNext:()=>te(t)}),placement:"bottom-start",placementBeacon:"top-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:t,isMajor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"16px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];M(s)}}),[T,k]),te=t.useCallback((t=>{const o=t||T;if(!o)return;const a=k.findIndex((e=>e.id===o.id));if(a<k.length-1){const t=k[a+1];w(t);const o=a+1,r=k.length,s=[{target:'[data-testid="whats-new-button"]',content:e.jsxRuntimeExports.jsx(n.default,{feature:t,currentIndex:o,totalFeatures:r,onSkip:()=>Y(t),onExplore:()=>Z(t),onPrevious:()=>ee(t),onNext:()=>te(t)}),placement:"bottom-start",placementBeacon:"top-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:t,isMajor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"16px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];M(s)}else q(!0),S(o.id),R(!1),w(null),M([]),_(!0),setTimeout((()=>{q(!1)}),500)}),[T,k,S]),oe=()=>{if(k.length>0&&!T){document.querySelector('[data-testid="whats-new-button"]')&&X(k[0])}};t.useEffect((()=>(window.showMajorUpdatePopup=oe,()=>{delete window.showMajorUpdatePopup})),[k,T]);const ne=t.useCallback((e=>{const{action:t}=e;t===o.ACTIONS.CLOSE&&(T&&(q(!0),k.forEach((e=>{S(e.id)})),_(!0),setTimeout((()=>{q(!1)}),500)),R(!1),w(null),M([]))}),[T,k,S]),ae=t.useCallback((e=>{const{action:t}=e;t===o.ACTIONS.CLOSE&&(B&&(V(!0),$(!0),C.forEach((e=>{S(e.id)})),setTimeout((()=>{V(!1)}),500)),v(!1),j(null),I([]))}),[B,C,S]),re=t=>{j(t);const o=A.findIndex((e=>e.id===t.id)),n=A.length,r=[{target:t.featureTag.startsWith("#")||t.featureTag.startsWith(".")||t.featureTag.startsWith("[")?t.featureTag:`#${t.featureTag}`,content:e.jsxRuntimeExports.jsx(a.default,{feature:t,currentIndex:o,totalFeatures:n,onSkip:()=>se(t),onExplore:()=>ie(t),onPrevious:()=>le(t),onNext:()=>ue(t)}),placement:"bottom",placementBeacon:"bottom-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:t,isMinor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"4px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];I(r),v(!0)},se=t.useCallback((e=>{(e||B)&&(V(!0),$(!0),C.forEach((e=>{S(e.id)})),v(!1),j(null),I([]),setTimeout((()=>{V(!1)}),500))}),[B,C,S]),ie=t.useCallback((e=>{V(!0),$(!0),S(e.id),e.productVideo&&(J(e.productVideo),G(!0),Q(!0)),v(!1),j(null),I([]),setTimeout((()=>{V(!1)}),500)}),[S]),le=t.useCallback((t=>{const o=t||B;if(!o)return;const n=A.findIndex((e=>e.id===o.id));if(n>0){const t=A[n-1];j(t);const o=t.featureTag.startsWith("#")||t.featureTag.startsWith(".")||t.featureTag.startsWith("[")?t.featureTag:`#${t.featureTag}`,r=n-1,s=A.length,i=[{target:o,content:e.jsxRuntimeExports.jsx(a.default,{feature:t,currentIndex:r,totalFeatures:s,onSkip:()=>se(t),onExplore:()=>ie(t),onPrevious:()=>le(t),onNext:()=>ue(t)}),placement:"bottom",placementBeacon:"bottom-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:t,isMinor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"4px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];I(i)}}),[B,A]),ue=t.useCallback((t=>{const o=t||B;if(!o)return;const n=A.findIndex((e=>e.id===o.id));if(n<A.length-1){const t=A[n+1];j(t);const o=t.featureTag.startsWith("#")||t.featureTag.startsWith(".")||t.featureTag.startsWith("[")?t.featureTag:`#${t.featureTag}`,r=n+1,s=A.length,i=[{target:o,content:e.jsxRuntimeExports.jsx(a.default,{feature:t,currentIndex:r,totalFeatures:s,onSkip:()=>se(t),onExplore:()=>ie(t),onPrevious:()=>le(t),onNext:()=>ue(t)}),placement:"bottom",placementBeacon:"bottom-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:t,isMinor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"4px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];I(i)}else V(!0),$(!0),S(o.id),v(!1),j(null),I([]),setTimeout((()=>{V(!1)}),500)}),[B,A,S]);return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[d,P.length>0&&e.jsxRuntimeExports.jsx(l.default,{steps:P,run:N,continuous:!1,showProgress:!1,showSkipButton:!1,callback:ne,disableOverlayClose:!0,disableCloseOnEsc:!1,disableOverlay:!1,spotlightClicks:!1,styles:{options:{primaryColor:u,zIndex:1e4,width:"auto",arrowColor:"#212121"},overlay:{backgroundColor:"transparent"},spotlight:{backgroundColor:"transparent",border:"none"},tooltip:{borderRadius:"16px",fontSize:"14px",padding:0,backgroundColor:"transparent",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}},locale:{back:"Back",close:"Close",last:"Close",next:"Next",skip:"Skip"}}),F.length>0&&e.jsxRuntimeExports.jsx(l.default,{steps:F,run:E,continuous:!1,showProgress:!1,showSkipButton:!1,callback:ae,disableOverlayClose:!0,disableCloseOnEsc:!1,styles:{options:{primaryColor:u,zIndex:1e4,width:"auto",arrowColor:"#ffffff"},tooltip:{borderRadius:"4px",fontSize:"14px",padding:0,backgroundColor:"transparent",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonSkip:{display:"none"},buttonClose:{display:"none"}},locale:{back:"Back",close:"Close",last:"Close",next:"Next",skip:"Skip"}}),e.jsxRuntimeExports.jsx(s.VideoModal,{isOpen:D,videoUrl:H,onClose:()=>{G(!1),J(""),Q(!1)}})]})};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("../../node_modules/react/jsx-runtime.js"),o=require("react"),n=require("react-joyride");require("./constants/animations.js");var r=require("./constants/selectors.js"),a=require("./hooks/useFeatureAnnouncements.js"),s=require("./MajorUpdatePopup.js"),i=require("./MinorUpdatePopup.js"),l=require("./VideoModal.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=d(n);exports.default=d=>{let{children:c,fetchVisibleFeatures:p,getStoreFeatureProgress:f,fetchFeatureById:g,markFeatureAsViewedForStore:b,isFeatureApplicableToCurrentPage:h,module:m,router:x}=d;var y;const{majorUpdateFeatures:S,minorUpdateFeatures:C,isLoading:k,markFeatureAsViewed:T}=a.useFeatureAnnouncements({fetchVisibleFeatures:p,getStoreFeatureProgress:f,fetchFeatureById:g,markFeatureAsViewedForStore:b,isFeatureApplicableToCurrentPage:h,module:m,router:x}),[v,w]=o.useState(null),[j,E]=o.useState(null),[F,B]=o.useState(!1),[I,N]=o.useState([]),[q,P]=o.useState(!1),[M,R]=o.useState([]),[O,_]=o.useState(!1),[W,A]=o.useState(!1),[L,U]=o.useState([]),[V,$]=o.useState(!1),[z,H]=o.useState(!1),[J,Z]=o.useState(!1),[D,Q]=o.useState(""),[G,K]=o.useState(!1),[X,Y]=o.useState(!1),[ee,te]=o.useState(!1),[oe,ne]=o.useState(0),[re,ae]=o.useState(0);o.useEffect((()=>{const e="minor-spotlight-cutout-style";let t=document.getElementById(e);return t||(t=document.createElement("style"),t.id=e,document.head.appendChild(t)),t.textContent="\n\t\t\t.react-joyride__spotlight {\n\t\t\t\ttransition: box-shadow 0.3s ease-in-out !important;\n\t\t\t\twill-change: box-shadow, transform;\n\t\t\t\ttransform: translateZ(0);\n\t\t\t}\n\t\t\t.react-joyride__tooltip {\n\t\t\t\twill-change: transform, opacity;\n\t\t\t\ttransform: translateZ(0);\n\t\t\t}\n\t\t",()=>{const t=document.getElementById(e);t&&t.remove()}}),[]),o.useEffect((()=>{console.log("📋 joyrideSteps changed:",{length:I.length,runJoyride:F})}),[I,F]),o.useEffect((()=>{console.log("🎯 currentMinorFeature changed:",{id:(null==j?void 0:j.id)||"null"})}),[j]),o.useEffect((()=>{ne((e=>e+1)),ae((e=>e+1)),Y(!1),te(!1)}),[null==x?void 0:x.pathname]),o.useEffect((()=>{if(!(S.length>0)||v||k||O||G)0!==S.length||k||H(!0);else{H(!1),$(!1),B(!1),N([]),E(null),U([]);const e=()=>{document.querySelector('[data-testid="whats-new-button"]')?se(S[0]):setTimeout(e,1e3)};e()}}),[S,v,k,O,G]),o.useEffect((()=>{var e;const t=null===(e=null==x?void 0:x.query)||void 0===e?void 0:e.featureId;if(console.log("🧪 Test mode effect triggered:",{featureIdFromQuery:t,isLoading:k,minorUpdateFeaturesCount:C.length}),!t||k||0===C.length)return;const o=C.find((e=>e.id===t));if(!o||!o.featureTag)return;$(!0),A(!0);let n=0;const r=setInterval((()=>{n++;const e=o.featureTag.startsWith("#")||o.featureTag.startsWith(".")||o.featureTag.startsWith("[")?o.featureTag:`#${o.featureTag}`;if(document.querySelector(e)){console.log("✨ Test mode: Element found, showing joyride");const e=[o];U(e),ge(o,e),clearInterval(r)}else n>=25&&(console.warn(`FeatureAnnouncements: Timed out waiting for element with selector: ${e}`),A(!1),clearInterval(r))}),200);return()=>{clearInterval(r)}}),[C,null===(y=null==x?void 0:x.query)||void 0===y?void 0:y.featureId,k]),o.useEffect((()=>{var e;if(console.log("🔍 Main minor effect check:",{minorUpdateFeaturesCount:C.length,isLoading:k,runJoyride:F,isProcessingMinorUpdate:W,currentMinorFeature:(null==j?void 0:j.id)||"null",minorFeaturesSkipped:V,showMinorUpdates:z,blockPopups:G}),C.length>0&&!k&&!F&&!W&&!j&&!V&&z&&!G){let e=null,t=null,o=null,n=!1;const r=()=>{if(n||W||j||V||!z)return;const r=C.filter((e=>{if(!e.featureTag||""===e.featureTag.trim())return!1;const t=e.featureTag.startsWith("#")||e.featureTag.startsWith(".")||e.featureTag.startsWith("[")?e.featureTag:`#${e.featureTag}`;return null!==document.querySelector(t)}));r.length>0&&(console.log("🎉 Found available features:",r.length),U(r),ge(r[0],r),e&&(e.disconnect(),e=null),t&&(window.removeEventListener("scroll",t),t=null),o&&(clearTimeout(o),o=null))};return e=new MutationObserver((e=>{let t=!1;for(const o of e){if("childList"===o.type&&o.addedNodes.length>0)for(let e=0;e<o.addedNodes.length;e++){const n=o.addedNodes[e];if(n.nodeType===Node.ELEMENT_NODE){const e=n;if(e.id||e.querySelector("[id]")){t=!0;break}}}if(t)break}F||n||W||j||V||!z||!t||(o&&clearTimeout(o),o=setTimeout((()=>{n||W||j||V||!z||r()}),200))})),t=()=>{F||n||W||j||V||!z||(o&&clearTimeout(o),requestAnimationFrame((()=>{o=setTimeout((()=>{n||W||j||V||!z||r()}),300)})))},e&&e.observe(document.body,{childList:!0,subtree:!0}),t&&window.addEventListener("scroll",t,{passive:!0}),r(),setTimeout((()=>{n||W||j||V||!z||r()}),100),setTimeout((()=>{n||W||j||V||!z||r()}),1e3),setTimeout((()=>{n||W||j||V||!z||r()}),500),()=>{n=!0,e&&e.disconnect(),t&&window.removeEventListener("scroll",t),o&&clearTimeout(o)}}if(0===C.length||k){(null===(e=null==x?void 0:x.query)||void 0===e?void 0:e.featureId)&&j?console.log("🚫 Skipping joyride clear - test mode with active feature"):(console.log("🗑️ Clearing joyride - no features or loading"),B(!1),N([]),E(null),U([]),$(!1))}}),[C,k,F,W,j,V,z,T,G]);const se=e=>{w(e);const o=S.findIndex((t=>t.id===e.id)),n=S.length,a=[{target:r.SELECTORS.WHATS_NEW_BUTTON,content:t.jsxRuntimeExports.jsx(s.default,{feature:e,currentIndex:o,totalFeatures:n,onSkip:()=>ie(e),onExplore:()=>le(e),onPrevious:()=>de(e),onNext:()=>ue(e),setIsClosing:Y}),placement:"bottom-start",placementBeacon:"top-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:e,isMajor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"16px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];R(a),P(!0)},ie=o.useCallback((e=>{(e||v)&&(_(!0),S.forEach((e=>{T(e.id)})),P(!1),w(null),R([]),H(!0),setTimeout((()=>{_(!1)}),500))}),[v,S,T]),le=o.useCallback((e=>{_(!0),T(e.id),e.productVideo&&(Q(e.productVideo),Z(!0),K(!0)),P(!1),w(null),R([]);S.findIndex((t=>t.id===e.id))===S.length-1&&H(!0),setTimeout((()=>{_(!1)}),500)}),[S,T]),de=o.useCallback((e=>{const o=e||v;if(!o)return;const n=S.findIndex((e=>e.id===o.id));if(n>0){const e=S[n-1];w(e);const o=n-1,r=S.length,a=[{target:'[data-testid="whats-new-button"]',content:t.jsxRuntimeExports.jsx(s.default,{feature:e,currentIndex:o,totalFeatures:r,onSkip:()=>ie(e),onExplore:()=>le(e),onPrevious:()=>de(e),onNext:()=>ue(e),setIsClosing:Y}),placement:"bottom-start",placementBeacon:"top-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:e,isMajor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"16px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];R(a)}}),[v,S]),ue=o.useCallback((e=>{const o=e||v;if(!o)return;const n=S.findIndex((e=>e.id===o.id));if(n<S.length-1){const e=S[n+1];w(e);const o=n+1,r=S.length,a=[{target:'[data-testid="whats-new-button"]',content:t.jsxRuntimeExports.jsx(s.default,{feature:e,currentIndex:o,totalFeatures:r,onSkip:()=>ie(e),onExplore:()=>le(e),onPrevious:()=>de(e),onNext:()=>ue(e),setIsClosing:Y}),placement:"bottom-start",placementBeacon:"top-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:e,isMajor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"16px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];R(a)}else _(!0),T(o.id),P(!1),w(null),R([]),H(!0),setTimeout((()=>{_(!1)}),500)}),[v,S,T]),ce=()=>{if(S.length>0&&!v){document.querySelector('[data-testid="whats-new-button"]')&&se(S[0])}};o.useEffect((()=>(window.showMajorUpdatePopup=ce,()=>{delete window.showMajorUpdatePopup})),[S,v]);const pe=o.useCallback((e=>{const{action:t}=e;t===n.ACTIONS.CLOSE&&(v&&(_(!0),S.forEach((e=>{T(e.id)})),H(!0),setTimeout((()=>{_(!1)}),500)),P(!1),w(null),R([]))}),[v,S,T]),fe=o.useCallback((e=>{const{action:t,type:o,status:r,lifecycle:a,index:s}=e;if(console.log("🔔 Minor Callback:",{action:t,type:o,status:r,lifecycle:a,index:s,hasSteps:I.length,runJoyride:F}),t===n.ACTIONS.CLOSE){if(console.log("❌ CLOSE ACTION - Clearing joyride"),j){A(!0),T(j.id);L.findIndex((e=>e.id===j.id))===L.length-1&&$(!0),setTimeout((()=>{A(!1)}),500)}B(!1),E(null),N([])}}),[j,L,T]),ge=(o,n)=>e.__awaiter(void 0,void 0,void 0,(function*(){E(o);const e=n||L,r=e.findIndex((e=>e.id===o.id)),a=e.length,s=o.featureTag.startsWith("#")||o.featureTag.startsWith(".")||o.featureTag.startsWith("[")?o.featureTag:`#${o.featureTag}`,l=document.querySelector(s);if(l)try{const{scrollToElementSmooth:e}=yield Promise.resolve().then((function(){return require("./utils/elementHelpers.js")}));yield e(l,120)}catch(e){console.warn("Scroll to element failed:",e)}const d=[{target:s,content:t.jsxRuntimeExports.jsx(i.default,{feature:o,currentIndex:r,totalFeatures:a,onSkip:()=>be(o),onExplore:()=>he(o),onPrevious:()=>me(o),onNext:()=>xe(o),setIsClosing:te}),placement:"bottom",placementBeacon:"bottom-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:o,isMinor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"4px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];console.log("✅ Setting joyride:",{currentIndex:r,totalFeatures:a,hasFeatures:e.length,target:s}),N(d),B(!0)})),be=o.useCallback((e=>{const t=e||j;if(t){A(!0),T(t.id),B(!1),E(null),N([]);L.findIndex((e=>e.id===t.id))===L.length-1&&$(!0),setTimeout((()=>{A(!1)}),500)}}),[j,L,T]),he=o.useCallback((e=>{A(!0),T(e.id),e.productVideo&&(Q(e.productVideo),Z(!0),K(!0)),B(!1),E(null),N([]);L.findIndex((t=>t.id===e.id))===L.length-1&&$(!0),setTimeout((()=>{A(!1)}),500)}),[L,T]),me=o.useCallback((o=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=o||j;if(!e)return;const n=L.findIndex((t=>t.id===e.id));if(n>0){const e=L[n-1];E(e);const o=e.featureTag.startsWith("#")||e.featureTag.startsWith(".")||e.featureTag.startsWith("[")?e.featureTag:`#${e.featureTag}`,r=document.querySelector(o);if(r)try{const{scrollToElementSmooth:e}=yield Promise.resolve().then((function(){return require("./utils/elementHelpers.js")}));yield e(r,120)}catch(e){console.warn("Scroll to previous element failed:",e)}const a=n-1,s=L.length,l=[{target:o,content:t.jsxRuntimeExports.jsx(i.default,{feature:e,currentIndex:a,totalFeatures:s,onSkip:()=>be(e),onExplore:()=>he(e),onPrevious:()=>me(e),onNext:()=>xe(e),setIsClosing:te}),placement:"bottom",placementBeacon:"bottom-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:e,isMinor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"4px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];N(l)}}))),[j,L]),xe=o.useCallback((o=>e.__awaiter(void 0,void 0,void 0,(function*(){const e=o||j;if(!e)return;const n=L.findIndex((t=>t.id===e.id));if(n<L.length-1){const e=L[n+1];E(e);const o=e.featureTag.startsWith("#")||e.featureTag.startsWith(".")||e.featureTag.startsWith("[")?e.featureTag:`#${e.featureTag}`,r=document.querySelector(o);if(r)try{const{scrollToElementSmooth:e}=yield Promise.resolve().then((function(){return require("./utils/elementHelpers.js")}));yield e(r,120)}catch(e){console.warn("Scroll to next element failed:",e)}const a=n+1,s=L.length,l=[{target:o,content:t.jsxRuntimeExports.jsx(i.default,{feature:e,currentIndex:a,totalFeatures:s,onSkip:()=>be(e),onExplore:()=>he(e),onPrevious:()=>me(e),onNext:()=>xe(e),setIsClosing:te}),placement:"bottom",placementBeacon:"bottom-end",disableBeacon:!0,hideCloseButton:!0,hideSkipButton:!0,hideFooter:!0,offset:0,data:{feature:e,isMinor:!0},styles:{tooltip:{padding:0,backgroundColor:"transparent",borderRadius:"4px",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}}}];N(l)}else A(!0),$(!0),T(e.id),B(!1),E(null),N([]),setTimeout((()=>{A(!1)}),500)}))),[j,L,T]);return t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[c,M.length>0&&t.jsxRuntimeExports.jsx(u.default,{steps:M,run:q,continuous:!1,showProgress:!1,showSkipButton:!1,callback:pe,disableOverlayClose:!0,disableCloseOnEsc:!1,disableOverlay:!0,spotlightClicks:!1,styles:{options:{primaryColor:"#007bff",zIndex:1e4,width:"auto",arrowColor:X?"transparent":"#212121"},overlay:{backgroundColor:"transparent"},spotlight:{backgroundColor:"transparent",border:"none",boxShadow:"none"},tooltip:{borderRadius:"16px",fontSize:"14px",padding:0,backgroundColor:"transparent",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonClose:{display:"none"},buttonSkip:{display:"none"}},locale:{back:"Back",close:"Close",last:"Close",next:"Next",skip:"Skip"}},`major-joyride-${oe}`),I.length>0&&t.jsxRuntimeExports.jsx(u.default,{steps:I,run:F,continuous:!1,showProgress:!1,showSkipButton:!1,callback:fe,disableOverlayClose:!0,disableCloseOnEsc:!1,disableOverlay:!1,scrollToFirstStep:!0,scrollOffset:120,disableScrolling:!1,styles:{options:{primaryColor:"#007bff",zIndex:1e4,width:"auto",arrowColor:ee?"transparent":"#ffffff"},overlay:{backgroundColor:"transparent"},spotlight:{backgroundColor:"transparent",borderRadius:"8px",boxShadow:ee?"none":"0 0 0 9999px rgba(0, 0, 0, 0.4), 0 0 0 3px rgba(255, 255, 255, 0.8), 0 0 20px 8px rgba(255, 255, 255, 0.4)"},tooltip:{borderRadius:"4px",fontSize:"14px",padding:0,backgroundColor:"transparent",border:"none",filter:"none",boxShadow:"none"},tooltipContent:{padding:0},buttonNext:{display:"none"},buttonBack:{display:"none"},buttonSkip:{display:"none"},buttonClose:{display:"none"}},locale:{back:"Back",close:"Close",last:"Close",next:"Next",skip:"Skip"}},`minor-joyride-${re}`),t.jsxRuntimeExports.jsx(l.VideoModal,{isOpen:J,videoUrl:D,onClose:()=>{Z(!1),Q(""),K(!1)}})]})};
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
interface MajorUpdatePopupProps {
|
|
4
|
-
feature: FeatureAnnouncement;
|
|
5
|
-
currentIndex: number;
|
|
6
|
-
totalFeatures: number;
|
|
7
|
-
onSkip: () => void;
|
|
8
|
-
onExplore: () => void;
|
|
9
|
-
onPrevious: () => void;
|
|
10
|
-
onNext: () => void;
|
|
11
|
-
}
|
|
2
|
+
import { MajorUpdatePopupProps } from './types';
|
|
12
3
|
declare const MajorUpdatePopup: React.FC<MajorUpdatePopupProps>;
|
|
13
4
|
export default MajorUpdatePopup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/react/jsx-runtime.js"),t=require("react")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/react/jsx-runtime.js"),t=require("react"),s=require("./constants/index.js"),n=require("./styles/majorPopup.styles.js");require("../../constants/Theme.js"),require("./constants/animations.js");var r=require("./utils/htmlHelpers.js"),o=require("./utils/animationHelpers.js"),i=require("./utils/elementHelpers.js");exports.default=a=>{let{feature:u,currentIndex:l,totalFeatures:c,onSkip:j,onExplore:x,onPrevious:g,onNext:d,setIsClosing:p}=a;const[E,b]=t.useState(!1),[T,m]=t.useState(!1),[y,v]=t.useState(""),O=t.useRef(null);t.useEffect((()=>{E&&m(!0)}),[E]);const h=n.getMajorPopupStyles(T,y);return e.jsxRuntimeExports.jsxs("div",Object.assign({ref:O,style:h.container},{children:[e.jsxRuntimeExports.jsx("button",Object.assign({onClick:e=>{e.preventDefault(),e.stopPropagation(),(e=>{o.hideJoyrideArrow(O.current);const t=i.findWhatsNewButton();if(t&&O.current){const e=o.calculateCloseTransform(O.current,t);v(e)}else v("scale(0)");null==p||p(!0),b(!0),o.executeAfterAnimation(e)})(j)},style:h.skipButton.base,onMouseEnter:e=>Object.assign(e.currentTarget.style,h.skipButton.hover),onMouseLeave:e=>Object.assign(e.currentTarget.style,h.skipButton.base)},{children:s.TEXT.SKIP_BUTTON})),e.jsxRuntimeExports.jsx("div",Object.assign({style:h.imageContainer},{children:u.displayImage?e.jsxRuntimeExports.jsx("img",{src:u.displayImage,alt:u.title,style:h.image,onError:e=>{u.image&&(e.target.src=u.image)}}):e.jsxRuntimeExports.jsx("div",Object.assign({style:h.imagePlaceholder},{children:s.TEXT.FEATURE_PREVIEW_PLACEHOLDER}))})),e.jsxRuntimeExports.jsxs("div",Object.assign({style:h.contentContainer},{children:[e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx("h3",Object.assign({style:h.title},{children:u.title})),e.jsxRuntimeExports.jsx("div",{style:h.content,dangerouslySetInnerHTML:{__html:r.decodeHTMLEntities(u.content||u.body||"")}}),e.jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>{x(),o.hideJoyrideArrow(O.current);const e=i.findWhatsNewButton();if(e&&O.current){const t=o.calculateCloseTransform(O.current,e);v(t)}else v("scale(0)");null==p||p(!0),b(!0)},style:h.exploreButton.base,onMouseEnter:e=>Object.assign(e.currentTarget.style,h.exploreButton.hover),onMouseLeave:e=>Object.assign(e.currentTarget.style,h.exploreButton.base)},{children:u.buttonText||s.TEXT.DEFAULT_BUTTON_TEXT}))]}),c>1&&e.jsxRuntimeExports.jsxs("div",Object.assign({style:h.navigationContainer},{children:[e.jsxRuntimeExports.jsx("button",Object.assign({onClick:e=>{e.preventDefault(),e.stopPropagation(),g()},disabled:0===l,style:h.navigationButton(0===l).base,onMouseEnter:e=>{0!==l&&Object.assign(e.currentTarget.style,h.navigationButton(!1).hover)},onMouseLeave:e=>{0!==l&&Object.assign(e.currentTarget.style,h.navigationButton(!1).base)}},{children:s.TEXT.NAVIGATION_PREVIOUS})),e.jsxRuntimeExports.jsx("button",Object.assign({onClick:e=>{e.preventDefault(),e.stopPropagation(),d()},disabled:l===c-1,style:h.navigationButton(l===c-1).base,onMouseEnter:e=>{l!==c-1&&Object.assign(e.currentTarget.style,h.navigationButton(!1).hover)},onMouseLeave:e=>{l!==c-1&&Object.assign(e.currentTarget.style,h.navigationButton(l===c-1).base)}},{children:s.TEXT.NAVIGATION_NEXT}))]}))]}))]}))};
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
interface MinorUpdatePopupProps {
|
|
4
|
-
feature: FeatureAnnouncement;
|
|
5
|
-
currentIndex: number;
|
|
6
|
-
totalFeatures: number;
|
|
7
|
-
onSkip: () => void;
|
|
8
|
-
onExplore: () => void;
|
|
9
|
-
onPrevious: () => void;
|
|
10
|
-
onNext: () => void;
|
|
11
|
-
}
|
|
2
|
+
import { MinorUpdatePopupProps } from './types';
|
|
12
3
|
declare const MinorUpdatePopup: React.FC<MinorUpdatePopupProps>;
|
|
13
4
|
export default MinorUpdatePopup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/react/jsx-runtime.js"),t=require("react")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/react/jsx-runtime.js"),t=require("react"),s=require("./constants/index.js");require("../../constants/Theme.js"),require("./constants/animations.js");var r=require("./styles/minorPopup.styles.js"),n=require("./utils/htmlHelpers.js"),i=require("./utils/animationHelpers.js"),a=require("./utils/elementHelpers.js");exports.default=l=>{let{feature:o,currentIndex:u,totalFeatures:c,onSkip:x,onExplore:j,onPrevious:d,onNext:m,setIsClosing:E}=l;const[g,p]=t.useState(!1),[T,y]=t.useState(!1),[f,h]=t.useState(""),R=t.useRef(null);t.useEffect((()=>{g&&y(!0)}),[g]);const b=r.getMinorPopupStyles(T,f);return e.jsxRuntimeExports.jsxs("div",Object.assign({ref:R,style:b.container},{children:[e.jsxRuntimeExports.jsx("div",Object.assign({style:b.imageContainer},{children:o.displayImage?e.jsxRuntimeExports.jsxs("div",Object.assign({style:b.imageWrapper},{children:[e.jsxRuntimeExports.jsx("img",{src:o.displayImage,alt:o.title,style:b.image,onError:e=>{o.image&&(e.target.src=o.image)}}),e.jsxRuntimeExports.jsx("div",Object.assign({style:b.badge},{children:e.jsxRuntimeExports.jsx("span",Object.assign({style:b.badgeText},{children:s.TEXT.NEW_FEATURE_BADGE}))}))]})):e.jsxRuntimeExports.jsx("div",Object.assign({style:b.imagePlaceholder},{children:s.TEXT.FEATURE_PREVIEW_PLACEHOLDER}))})),e.jsxRuntimeExports.jsxs("div",Object.assign({style:b.contentContainer},{children:[e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx("h3",Object.assign({style:b.title},{children:o.title})),e.jsxRuntimeExports.jsx("div",{style:b.content,dangerouslySetInnerHTML:{__html:n.decodeHTMLEntities(o.content||o.body||"")}})]}),e.jsxRuntimeExports.jsxs("div",Object.assign({style:b.actionsContainer},{children:[e.jsxRuntimeExports.jsx("span",Object.assign({onClick:()=>{(e=>{if(i.hideJoyrideArrow(R.current),R.current&&o.featureTag){const e=a.findFeatureTagElement(o.featureTag);if(e){const t=i.calculateCloseTransform(R.current,e);h(t)}else h("scale(0)")}else h("scale(0)");null==E||E(!0),p(!0),i.executeAfterAnimation(e)})(x)},style:b.understoodText},{children:s.TEXT.UNDERSTOOD})),o.productVideo&&e.jsxRuntimeExports.jsx("button",Object.assign({onClick:()=>{if(j(),i.hideJoyrideArrow(R.current),R.current&&o.featureTag){const e=o.featureTag.startsWith("#")||o.featureTag.startsWith(".")||o.featureTag.startsWith("[")?o.featureTag:`#${o.featureTag}`,t=document.querySelector(e);if(t){const e=i.calculateCloseTransform(R.current,t);h(e)}else h("scale(0)")}else h("scale(0)");null==E||E(!0),p(!0)},style:b.exploreButton},{children:o.buttonText||s.TEXT.DEFAULT_BUTTON_TEXT}))]}))]}))]}))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/react/jsx-runtime.js");exports.VideoModal=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/react/jsx-runtime.js"),s=require("./constants/index.js");require("../../constants/Theme.js"),require("./constants/animations.js");var t=require("./styles/videoModal.styles.js"),o=require("./utils/htmlHelpers.js");exports.VideoModal=r=>{let{isOpen:i,videoUrl:l,onClose:n}=r;if(!i)return null;const a=o.formatVideoUrl(l),d=o.isYouTubeVideo(l);return e.jsxRuntimeExports.jsx("div",Object.assign({style:t.videoModalStyles.backdrop,onClick:e=>{e.target===e.currentTarget&&n()}},{children:e.jsxRuntimeExports.jsxs("div",Object.assign({style:t.videoModalStyles.container,onClick:e=>e.stopPropagation()},{children:[e.jsxRuntimeExports.jsx("button",Object.assign({onClick:n,style:t.videoModalStyles.closeButton.base,onMouseOver:e=>Object.assign(e.currentTarget.style,t.videoModalStyles.closeButton.hover),onMouseOut:e=>Object.assign(e.currentTarget.style,t.videoModalStyles.closeButton.base)},{children:"×"})),e.jsxRuntimeExports.jsx("div",Object.assign({style:t.videoModalStyles.videoWrapper},{children:l?d?e.jsxRuntimeExports.jsx("iframe",{width:"100%",height:"100%",src:a,title:s.TEXT.VIDEO_MODAL_TITLE,frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0,style:t.videoModalStyles.iframe}):e.jsxRuntimeExports.jsxs("video",Object.assign({controls:!0,autoPlay:!0,style:t.videoModalStyles.video},{children:[e.jsxRuntimeExports.jsx("source",{src:l,type:"video/mp4"}),e.jsxRuntimeExports.jsx("source",{src:l,type:"video/webm"}),e.jsxRuntimeExports.jsx("source",{src:l,type:"video/ogg"}),"Your browser does not support the video tag."]})):e.jsxRuntimeExports.jsx("div",Object.assign({style:t.videoModalStyles.noVideoMessage},{children:s.TEXT.NO_VIDEO_AVAILABLE}))}))]}))}))};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Animation timing constants
|
|
3
|
+
*/
|
|
4
|
+
export declare const ANIMATION_TIMING: {
|
|
5
|
+
readonly CLOSE_DURATION: 1150;
|
|
6
|
+
readonly PROCESSING_DELAY: 500;
|
|
7
|
+
readonly MINOR_POPUP_DELAY: 2000;
|
|
8
|
+
readonly TRANSITION_DURATION: "1s";
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Animation easing functions
|
|
12
|
+
*/
|
|
13
|
+
export declare const ANIMATION_EASING: {
|
|
14
|
+
readonly STANDARD: "cubic-bezier(0.4, 0, 0.2, 1)";
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Element check configuration
|
|
18
|
+
*/
|
|
19
|
+
export declare const ELEMENT_CHECK_CONFIG: {
|
|
20
|
+
readonly MAX_ATTEMPTS: 25;
|
|
21
|
+
readonly RETRY_INTERVAL_MS: 200;
|
|
22
|
+
readonly SCROLL_DEBOUNCE_MS: 300;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Combined transition string
|
|
26
|
+
*/
|
|
27
|
+
export declare const POPUP_TRANSITION: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const N={CLOSE_DURATION:1150,PROCESSING_DELAY:500,MINOR_POPUP_DELAY:2e3,TRANSITION_DURATION:"1s"},A={STANDARD:"cubic-bezier(0.4, 0, 0.2, 1)"},I=`transform ${N.TRANSITION_DURATION} ${A.STANDARD}, opacity ${N.TRANSITION_DURATION} ${A.STANDARD}`;exports.ANIMATION_EASING=A,exports.ANIMATION_TIMING=N,exports.POPUP_TRANSITION=I;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Popup dimension constants
|
|
3
|
+
*/
|
|
4
|
+
export declare const POPUP_DIMENSIONS: {
|
|
5
|
+
readonly MAJOR: {
|
|
6
|
+
readonly width: 959;
|
|
7
|
+
readonly height: 274;
|
|
8
|
+
readonly imageWidth: 480;
|
|
9
|
+
readonly imageHeight: 274;
|
|
10
|
+
readonly imageInnerWidth: 464;
|
|
11
|
+
readonly imageInnerHeight: 258;
|
|
12
|
+
readonly imagePlaceholderWidth: 290;
|
|
13
|
+
readonly imagePlaceholderHeight: 258;
|
|
14
|
+
};
|
|
15
|
+
readonly MINOR: {
|
|
16
|
+
readonly width: 519;
|
|
17
|
+
readonly height: 160;
|
|
18
|
+
readonly imageWidth: 235;
|
|
19
|
+
readonly imageHeight: 134;
|
|
20
|
+
readonly badgeHeight: 27;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Spacing constants
|
|
25
|
+
*/
|
|
26
|
+
export declare const SPACING: {
|
|
27
|
+
readonly MAJOR: {
|
|
28
|
+
readonly contentMargin: "0 8px 0 0";
|
|
29
|
+
readonly imagePadding: "8px";
|
|
30
|
+
readonly titlePadding: "36px 0 0 0";
|
|
31
|
+
readonly buttonMarginTop: "16px";
|
|
32
|
+
readonly skipButtonTop: "10px";
|
|
33
|
+
readonly skipButtonRight: "10px";
|
|
34
|
+
readonly navigationBottom: "16px";
|
|
35
|
+
readonly navigationRight: "16px";
|
|
36
|
+
readonly navigationGap: "8px";
|
|
37
|
+
};
|
|
38
|
+
readonly MINOR: {
|
|
39
|
+
readonly imageMargin: "13px 10px 13px 10px";
|
|
40
|
+
readonly contentMargin: "13px 13px 13px 3px";
|
|
41
|
+
readonly actionsBottom: "13px";
|
|
42
|
+
readonly actionsRight: "10px";
|
|
43
|
+
readonly actionsGap: "16px";
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Border radius constants
|
|
48
|
+
*/
|
|
49
|
+
export declare const BORDER_RADIUS: {
|
|
50
|
+
readonly POPUP: "4px";
|
|
51
|
+
readonly IMAGE: "4px";
|
|
52
|
+
readonly BUTTON: "4px";
|
|
53
|
+
readonly VIDEO_MODAL: "12px";
|
|
54
|
+
readonly CLOSE_BUTTON: "50%";
|
|
55
|
+
readonly SPOTLIGHT: "8px";
|
|
56
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.BORDER_RADIUS={POPUP:"4px",IMAGE:"4px",BUTTON:"4px",VIDEO_MODAL:"12px",CLOSE_BUTTON:"50%",SPOTLIGHT:"8px"},exports.POPUP_DIMENSIONS={MAJOR:{width:959,height:274,imageWidth:480,imageHeight:274,imageInnerWidth:464,imageInnerHeight:258,imagePlaceholderWidth:290,imagePlaceholderHeight:258},MINOR:{width:519,height:160,imageWidth:235,imageHeight:134,badgeHeight:27}},exports.SPACING={MAJOR:{contentMargin:"0 8px 0 0",imagePadding:"8px",titlePadding:"36px 0 0 0",buttonMarginTop:"16px",skipButtonTop:"10px",skipButtonRight:"10px",navigationBottom:"16px",navigationRight:"16px",navigationGap:"8px"},MINOR:{imageMargin:"13px 10px 13px 10px",contentMargin:"13px 13px 13px 3px",actionsBottom:"13px",actionsRight:"10px",actionsGap:"16px"}};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './animations';
|
|
2
|
+
export * from './dimensions';
|
|
3
|
+
export * from './selectors';
|
|
4
|
+
export * from './zIndex';
|
|
5
|
+
export * from './localStorageKeys';
|
|
6
|
+
/**
|
|
7
|
+
* Text constants
|
|
8
|
+
*/
|
|
9
|
+
export declare const TEXT: {
|
|
10
|
+
readonly DEFAULT_BUTTON_TEXT: "Explore the feature";
|
|
11
|
+
readonly SKIP_BUTTON: "Skip";
|
|
12
|
+
readonly UNDERSTOOD: "Understood";
|
|
13
|
+
readonly NEW_FEATURE_BADGE: "New feature";
|
|
14
|
+
readonly FEATURE_PREVIEW_PLACEHOLDER: "Feature Preview";
|
|
15
|
+
readonly NO_VIDEO_AVAILABLE: "No video available";
|
|
16
|
+
readonly VIDEO_MODAL_TITLE: "Product Video";
|
|
17
|
+
readonly NAVIGATION_PREVIOUS: "‹";
|
|
18
|
+
readonly NAVIGATION_NEXT: "›";
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./animations.js");exports.ANIMATION_EASING=e.ANIMATION_EASING,exports.ANIMATION_TIMING=e.ANIMATION_TIMING,exports.POPUP_TRANSITION=e.POPUP_TRANSITION,exports.TEXT={DEFAULT_BUTTON_TEXT:"Explore the feature",SKIP_BUTTON:"Skip",UNDERSTOOD:"Understood",NEW_FEATURE_BADGE:"New feature",FEATURE_PREVIEW_PLACEHOLDER:"Feature Preview",NO_VIDEO_AVAILABLE:"No video available",VIDEO_MODAL_TITLE:"Product Video",NAVIGATION_PREVIOUS:"‹",NAVIGATION_NEXT:"›"};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local storage keys for feature announcements
|
|
3
|
+
*/
|
|
4
|
+
export declare const LOCAL_STORAGE_KEYS: {
|
|
5
|
+
readonly STORE_ID: "storeId";
|
|
6
|
+
readonly BIK_STORE_ID: "Bik/StoreId";
|
|
7
|
+
readonly CURRENT_STORE: "currentStore";
|
|
8
|
+
readonly STORE: "store";
|
|
9
|
+
readonly CURRENT_USER: "Bik/CurrentUser";
|
|
10
|
+
readonly QUERY_PARAM: "storeId";
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* URL query parameters
|
|
14
|
+
*/
|
|
15
|
+
export declare const QUERY_PARAMS: {
|
|
16
|
+
readonly FEATURE_ID: "featureId";
|
|
17
|
+
readonly STORE_ID: "storeId";
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.LOCAL_STORAGE_KEYS={STORE_ID:"storeId",BIK_STORE_ID:"Bik/StoreId",CURRENT_STORE:"currentStore",STORE:"store",CURRENT_USER:"Bik/CurrentUser",QUERY_PARAM:"storeId"},exports.QUERY_PARAMS={FEATURE_ID:"featureId",STORE_ID:"storeId"};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS selectors for feature announcements
|
|
3
|
+
*/
|
|
4
|
+
export declare const SELECTORS: {
|
|
5
|
+
readonly WHATS_NEW_BUTTON: "[data-testid=\"whats-new-button\"]";
|
|
6
|
+
readonly MAIN_ICON_CLASS: ".main-icon-class";
|
|
7
|
+
readonly SVG_VIEWBOX: "svg[viewBox=\"0 0 32 32\"]";
|
|
8
|
+
readonly CLIPPATH_PATTERN: "clipPath[id*=\"clip\"]";
|
|
9
|
+
readonly JOYRIDE_TOOLTIP: "[class*=\"react-joyride__tooltip\"]";
|
|
10
|
+
readonly JOYRIDE_ARROW: "[class*=\"react-joyride__arrow\"]";
|
|
11
|
+
readonly JOYRIDE_SPOTLIGHT: ".react-joyride__spotlight";
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Data test IDs
|
|
15
|
+
*/
|
|
16
|
+
export declare const TEST_IDS: {
|
|
17
|
+
readonly WHATS_NEW_BUTTON: "whats-new-button";
|
|
18
|
+
readonly MAJOR_POPUP: "major-update-popup";
|
|
19
|
+
readonly MINOR_POPUP: "minor-update-popup";
|
|
20
|
+
readonly VIDEO_MODAL: "video-modal";
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.SELECTORS={WHATS_NEW_BUTTON:'[data-testid="whats-new-button"]',MAIN_ICON_CLASS:".main-icon-class",SVG_VIEWBOX:'svg[viewBox="0 0 32 32"]',CLIPPATH_PATTERN:'clipPath[id*="clip"]',JOYRIDE_TOOLTIP:'[class*="react-joyride__tooltip"]',JOYRIDE_ARROW:'[class*="react-joyride__arrow"]',JOYRIDE_SPOTLIGHT:".react-joyride__spotlight"};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.Z_INDEX={JOYRIDE:1e4,VIDEO_MODAL:2e3,SKIP_BUTTON:10,IMAGE_BADGE:10,CLOSE_BUTTON:10};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useFeatureAnnouncements } from './useFeatureAnnouncements';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FeatureAnnouncement, FeatureAnnouncementRepository, RouterProps } from '../types';
|
|
2
|
+
export declare const useFeatureAnnouncements: ({ fetchVisibleFeatures, getStoreFeatureProgress, fetchFeatureById, markFeatureAsViewedForStore, isFeatureApplicableToCurrentPage, module, router, }: FeatureAnnouncementRepository & {
|
|
3
|
+
module?: string | undefined;
|
|
4
|
+
router?: RouterProps | undefined;
|
|
5
|
+
}) => {
|
|
6
|
+
features: FeatureAnnouncement[];
|
|
7
|
+
majorUpdateFeatures: FeatureAnnouncement[];
|
|
8
|
+
minorUpdateFeatures: FeatureAnnouncement[];
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
error: string | null;
|
|
11
|
+
markFeatureAsViewed: (featureId: string) => Promise<void>;
|
|
12
|
+
refetch: () => Promise<void>;
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_tslib.js"),t=require("react"),r=require("../constants/animations.js"),a=require("../constants/localStorageKeys.js");exports.useFeatureAnnouncements=o=>{let{fetchVisibleFeatures:n,getStoreFeatureProgress:i,fetchFeatureById:l,markFeatureAsViewedForStore:u,isFeatureApplicableToCurrentPage:s,module:c,router:d}=o;var f;const p=(()=>{const[e,r]=t.useState(null);return t.useEffect((()=>{if("undefined"!=typeof window){let e=null;try{if(e=localStorage.getItem(a.LOCAL_STORAGE_KEYS.STORE_ID)||localStorage.getItem(a.LOCAL_STORAGE_KEYS.BIK_STORE_ID)||localStorage.getItem(a.LOCAL_STORAGE_KEYS.CURRENT_STORE)||localStorage.getItem(a.LOCAL_STORAGE_KEYS.STORE),!e){const t=localStorage.getItem(a.LOCAL_STORAGE_KEYS.CURRENT_USER);t&&(e=JSON.parse(t).storeId)}e||(e=new URLSearchParams(window.location.search).get(a.LOCAL_STORAGE_KEYS.QUERY_PARAM))}catch(e){console.error("FeatureAnnouncements: Failed to get store ID",e)}r(e)}}),[]),e})(),[A,S]=t.useState([]),[_,g]=t.useState([]),[v,y]=t.useState([]),[E,m]=t.useState(!1),[R,w]=t.useState(null),F=t.useCallback((()=>e.__awaiter(void 0,void 0,void 0,(function*(){if(p){m(!0),w(null);try{const[e,t]=yield n(c);if(e||!t)return console.error("FeatureAnnouncements: Failed to fetch features",e),void w("Failed to fetch features");const[a,o]=yield i(p);a&&console.warn("FeatureAnnouncements: Progress fetch failed, treating all features as new",a);const l=new Date,u="undefined"!=typeof window?window.location.pathname:"",d=e=>{if(!e.expirationDate)return!0;let t;return"object"==typeof e.expirationDate&&null!==e.expirationDate&&("seconds"in e.expirationDate||"nanoseconds"in e.expirationDate)?t=new Date(1e3*e.expirationDate.seconds):"string"==typeof e.expirationDate?t=new Date(e.expirationDate):e.expirationDate instanceof Date&&(t=e.expirationDate),!(!t||isNaN(t.getTime()))&&l<t},f=e=>{if("Major"===e.featureUpdateType){let t=[];return Array.isArray(e.pageUrls)?t=e.pageUrls:"object"==typeof e.pageUrls&&null!==e.pageUrls&&"length"in e.pageUrls&&(t=Array.from(e.pageUrls)),t.includes(u)}return!0},A=t.filter((e=>{var t;return!((null===(t=null==o?void 0:o.viewedFeatures)||void 0===t?void 0:t[e.id])||!1)&&s(e)&&d(e)&&f(e)})),_=A.filter((e=>"Major"===e.featureUpdateType)),v=A.filter((e=>"Minor"===e.featureUpdateType));S(A),g(_),setTimeout((()=>{y(v)}),r.ANIMATION_TIMING.MINOR_POPUP_DELAY)}catch(e){console.error("FeatureAnnouncements: Unexpected error in fetchFeatures",e),w("An unexpected error occurred")}finally{m(!1)}}}))),[p,n,i,s,c]),T=t.useCallback((t=>e.__awaiter(void 0,void 0,void 0,(function*(){m(!0),w(null);try{const[e,r]=yield l(t);if(e||!r)return void w("Failed to fetch feature by ID");"Major"===r.featureUpdateType?g([r]):y([r]),S([r])}catch(e){w("An unexpected error occurred while fetching by ID")}finally{m(!1)}}))),[l]),U=t.useCallback((t=>e.__awaiter(void 0,void 0,void 0,(function*(){if(!p)return;const[e]=yield u(p,t);e?(console.warn("FeatureAnnouncements: Failed to mark feature as viewed, removing from local state anyway",e),S((e=>e.filter((e=>e.id!==t)))),g((e=>e.filter((e=>e.id!==t)))),y((e=>e.filter((e=>e.id!==t))))):(S((e=>e.filter((e=>e.id!==t)))),g((e=>e.filter((e=>e.id!==t)))),y((e=>e.filter((e=>e.id!==t)))))}))),[p,u]);return t.useEffect((()=>{var e;const t=null===(e=null==d?void 0:d.query)||void 0===e?void 0:e[a.QUERY_PARAMS.FEATURE_ID];t&&d?T(t):F()}),[null==d?void 0:d.pathname,null===(f=null==d?void 0:d.query)||void 0===f?void 0:f[a.QUERY_PARAMS.FEATURE_ID],p,F,T,d]),{features:A,majorUpdateFeatures:_,minorUpdateFeatures:v,isLoading:E,error:R,markFeatureAsViewed:U,refetch:F}};
|
|
@@ -2,5 +2,6 @@ export { default as FeatureAnnouncementProvider } from './FeatureAnnouncementPro
|
|
|
2
2
|
export { default as MajorUpdatePopup } from './MajorUpdatePopup';
|
|
3
3
|
export { default as MinorUpdatePopup } from './MinorUpdatePopup';
|
|
4
4
|
export { VideoModal } from './VideoModal';
|
|
5
|
-
export
|
|
6
|
-
export * from './
|
|
5
|
+
export { useFeatureAnnouncements } from './hooks/useFeatureAnnouncements';
|
|
6
|
+
export * from './types';
|
|
7
|
+
export { TEXT, ANIMATION_TIMING, POPUP_DIMENSIONS } from './constants';
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
export declare const majorStepStyles: {
|
|
2
|
+
tooltip: {
|
|
3
|
+
padding: number;
|
|
4
|
+
backgroundColor: string;
|
|
5
|
+
borderRadius: string;
|
|
6
|
+
border: string;
|
|
7
|
+
filter: string;
|
|
8
|
+
boxShadow: string;
|
|
9
|
+
};
|
|
10
|
+
tooltipContent: {
|
|
11
|
+
padding: number;
|
|
12
|
+
};
|
|
13
|
+
buttonNext: {
|
|
14
|
+
display: string;
|
|
15
|
+
};
|
|
16
|
+
buttonBack: {
|
|
17
|
+
display: string;
|
|
18
|
+
};
|
|
19
|
+
buttonClose: {
|
|
20
|
+
display: string;
|
|
21
|
+
};
|
|
22
|
+
buttonSkip: {
|
|
23
|
+
display: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export declare const minorStepStyles: {
|
|
27
|
+
tooltip: {
|
|
28
|
+
padding: number;
|
|
29
|
+
backgroundColor: string;
|
|
30
|
+
borderRadius: "4px";
|
|
31
|
+
border: string;
|
|
32
|
+
filter: string;
|
|
33
|
+
boxShadow: string;
|
|
34
|
+
};
|
|
35
|
+
tooltipContent: {
|
|
36
|
+
padding: number;
|
|
37
|
+
};
|
|
38
|
+
buttonNext: {
|
|
39
|
+
display: string;
|
|
40
|
+
};
|
|
41
|
+
buttonBack: {
|
|
42
|
+
display: string;
|
|
43
|
+
};
|
|
44
|
+
buttonClose: {
|
|
45
|
+
display: string;
|
|
46
|
+
};
|
|
47
|
+
buttonSkip: {
|
|
48
|
+
display: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export declare const getMajorJoyrideStyles: (isClosing: boolean) => {
|
|
52
|
+
options: {
|
|
53
|
+
arrowColor: string;
|
|
54
|
+
backgroundColor: string;
|
|
55
|
+
overlayColor: string;
|
|
56
|
+
primaryColor: string;
|
|
57
|
+
textColor: string;
|
|
58
|
+
zIndex: 10000;
|
|
59
|
+
};
|
|
60
|
+
tooltip: {
|
|
61
|
+
padding: number;
|
|
62
|
+
backgroundColor: string;
|
|
63
|
+
borderRadius: string;
|
|
64
|
+
border: string;
|
|
65
|
+
filter: string;
|
|
66
|
+
boxShadow: string;
|
|
67
|
+
position: "fixed";
|
|
68
|
+
top: string;
|
|
69
|
+
left: string;
|
|
70
|
+
transform: string;
|
|
71
|
+
};
|
|
72
|
+
tooltipContent: {
|
|
73
|
+
padding: number;
|
|
74
|
+
};
|
|
75
|
+
buttonNext: {
|
|
76
|
+
display: string;
|
|
77
|
+
};
|
|
78
|
+
buttonBack: {
|
|
79
|
+
display: string;
|
|
80
|
+
};
|
|
81
|
+
buttonClose: {
|
|
82
|
+
display: string;
|
|
83
|
+
};
|
|
84
|
+
buttonSkip: {
|
|
85
|
+
display: string;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
export declare const getMinorJoyrideStyles: (isClosing: boolean) => {
|
|
89
|
+
options: {
|
|
90
|
+
arrowColor: string;
|
|
91
|
+
backgroundColor: string;
|
|
92
|
+
overlayColor: string;
|
|
93
|
+
primaryColor: string;
|
|
94
|
+
textColor: string;
|
|
95
|
+
zIndex: 10000;
|
|
96
|
+
};
|
|
97
|
+
spotlight: {
|
|
98
|
+
boxShadow: string;
|
|
99
|
+
borderRadius: "8px";
|
|
100
|
+
};
|
|
101
|
+
tooltip: {
|
|
102
|
+
padding: number;
|
|
103
|
+
backgroundColor: string;
|
|
104
|
+
borderRadius: "4px";
|
|
105
|
+
border: string;
|
|
106
|
+
filter: string;
|
|
107
|
+
boxShadow: string;
|
|
108
|
+
maxWidth: string;
|
|
109
|
+
};
|
|
110
|
+
tooltipContent: {
|
|
111
|
+
padding: number;
|
|
112
|
+
};
|
|
113
|
+
buttonNext: {
|
|
114
|
+
display: string;
|
|
115
|
+
};
|
|
116
|
+
buttonBack: {
|
|
117
|
+
display: string;
|
|
118
|
+
};
|
|
119
|
+
buttonClose: {
|
|
120
|
+
display: string;
|
|
121
|
+
};
|
|
122
|
+
buttonSkip: {
|
|
123
|
+
display: string;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
export declare const getMajorPopupStyles: (startAnimation: boolean, transform: string) => {
|
|
3
|
+
container: CSSProperties;
|
|
4
|
+
skipButton: {
|
|
5
|
+
base: CSSProperties;
|
|
6
|
+
hover: CSSProperties;
|
|
7
|
+
};
|
|
8
|
+
imageContainer: CSSProperties;
|
|
9
|
+
image: CSSProperties;
|
|
10
|
+
imagePlaceholder: CSSProperties;
|
|
11
|
+
contentContainer: CSSProperties;
|
|
12
|
+
title: CSSProperties;
|
|
13
|
+
content: CSSProperties;
|
|
14
|
+
exploreButton: {
|
|
15
|
+
base: CSSProperties;
|
|
16
|
+
hover: CSSProperties;
|
|
17
|
+
};
|
|
18
|
+
navigationContainer: CSSProperties;
|
|
19
|
+
navigationButton: (disabled: boolean) => {
|
|
20
|
+
base: CSSProperties;
|
|
21
|
+
hover: CSSProperties;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../constants/Theme.js"),t=require("../constants/animations.js"),n=require("../constants/dimensions.js"),i=require("../constants/zIndex.js");exports.getMajorPopupStyles=(o,r)=>({container:{width:`${n.POPUP_DIMENSIONS.MAJOR.width}px`,height:`${n.POPUP_DIMENSIONS.MAJOR.height}px`,display:"flex",backgroundColor:e.BASE_COLORS.grayscale[900],borderRadius:n.BORDER_RADIUS.POPUP,overflow:"hidden",position:"relative",transform:o?r:"scale(1)",opacity:o?0:1,transition:t.POPUP_TRANSITION},skipButton:{base:{position:"absolute",top:n.SPACING.MAJOR.skipButtonTop,right:n.SPACING.MAJOR.skipButtonRight,background:"transparent",border:"none",color:e.BASE_COLORS.grayscale[400],fontSize:"14px",fontWeight:"500",cursor:"pointer",zIndex:i.Z_INDEX.SKIP_BUTTON,transition:"all 0.2s"},hover:{backgroundColor:e.BASE_COLORS.grayscale[100],color:e.BASE_COLORS.grayscale[700]}},imageContainer:{backgroundColor:e.BASE_COLORS.grayscale[900],width:`${n.POPUP_DIMENSIONS.MAJOR.imageWidth}px`,height:`${n.POPUP_DIMENSIONS.MAJOR.imageHeight}px`,position:"relative",display:"flex",alignItems:"center",justifyContent:"center",padding:n.SPACING.MAJOR.imagePadding},image:{width:`${n.POPUP_DIMENSIONS.MAJOR.imageInnerWidth}px`,height:`${n.POPUP_DIMENSIONS.MAJOR.imageInnerHeight}px`,objectFit:"cover"},imagePlaceholder:{color:e.BASE_COLORS.grayscale[500],fontSize:"14px",textAlign:"center",width:`${n.POPUP_DIMENSIONS.MAJOR.imagePlaceholderWidth}px`,height:`${n.POPUP_DIMENSIONS.MAJOR.imagePlaceholderHeight}px`,display:"flex",alignItems:"center",justifyContent:"center"},contentContainer:{flex:1,display:"flex",margin:n.SPACING.MAJOR.contentMargin,flexDirection:"column",justifyContent:"space-between",background:"transparent"},title:{fontSize:"16px",fontWeight:"600",padding:n.SPACING.MAJOR.titlePadding,color:e.BASE_COLORS.grayscale.white,lineHeight:"1.25",textAlign:"left"},content:{fontSize:"14px",lineHeight:"1.5",color:"rgba(255, 255, 255, 0.8)",textAlign:"left"},exploreButton:{base:{backgroundColor:"transparent",border:`1px solid ${e.BASE_COLORS.warning[500]}`,color:e.BASE_COLORS.warning[500],borderRadius:n.BORDER_RADIUS.BUTTON,fontSize:"14px",fontWeight:"600",cursor:"pointer",width:"154px",height:"32px",transition:"all 0.2s",textAlign:"center",display:"flex",alignItems:"center",justifyContent:"center",marginTop:n.SPACING.MAJOR.buttonMarginTop},hover:{backgroundColor:"rgba(254, 192, 45, 0.1)"}},navigationContainer:{position:"absolute",bottom:n.SPACING.MAJOR.navigationBottom,right:n.SPACING.MAJOR.navigationRight,display:"flex",gap:n.SPACING.MAJOR.navigationGap,alignItems:"center"},navigationButton:t=>({base:{width:"24px",height:"24px",backgroundColor:"transparent",border:"none",color:t?e.BASE_COLORS.grayscale[700]:e.BASE_COLORS.grayscale.white,fontSize:"20px",cursor:t?"not-allowed":"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s"},hover:{color:e.BASE_COLORS.warning[500]}})});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
export declare const getMinorPopupStyles: (startAnimation: boolean, transform: string) => {
|
|
3
|
+
container: CSSProperties;
|
|
4
|
+
imageContainer: CSSProperties;
|
|
5
|
+
imageWrapper: CSSProperties;
|
|
6
|
+
image: CSSProperties;
|
|
7
|
+
badge: CSSProperties;
|
|
8
|
+
badgeText: CSSProperties;
|
|
9
|
+
imagePlaceholder: CSSProperties;
|
|
10
|
+
contentContainer: CSSProperties;
|
|
11
|
+
title: CSSProperties;
|
|
12
|
+
content: CSSProperties;
|
|
13
|
+
actionsContainer: CSSProperties;
|
|
14
|
+
understoodText: CSSProperties;
|
|
15
|
+
exploreButton: CSSProperties;
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../constants/Theme.js"),t=require("../constants/animations.js"),i=require("../constants/dimensions.js"),o=require("../constants/zIndex.js");exports.getMinorPopupStyles=(n,a)=>({container:{width:`${i.POPUP_DIMENSIONS.MINOR.width}px`,height:`${i.POPUP_DIMENSIONS.MINOR.height}px`,display:"flex",backgroundColor:e.BASE_COLORS.grayscale.white,borderRadius:i.BORDER_RADIUS.POPUP,overflow:"hidden",position:"relative",boxShadow:"0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",transform:n?a:"scale(1)",opacity:n?0:1,transition:t.POPUP_TRANSITION},imageContainer:{backgroundColor:e.BASE_COLORS.grayscale[50],borderRadius:i.BORDER_RADIUS.IMAGE,position:"relative",display:"flex",alignItems:"center",justifyContent:"center",margin:i.SPACING.MINOR.imageMargin,width:`${i.POPUP_DIMENSIONS.MINOR.imageWidth}px`,minWidth:`${i.POPUP_DIMENSIONS.MINOR.imageWidth}px`,maxWidth:`${i.POPUP_DIMENSIONS.MINOR.imageWidth}px`,height:`${i.POPUP_DIMENSIONS.MINOR.imageHeight}px`},imageWrapper:{position:"relative",width:`${i.POPUP_DIMENSIONS.MINOR.imageWidth}px`,height:`${i.POPUP_DIMENSIONS.MINOR.imageHeight}px`},image:{width:`${i.POPUP_DIMENSIONS.MINOR.imageWidth}px`,height:`${i.POPUP_DIMENSIONS.MINOR.imageHeight}px`,objectFit:"cover",borderRadius:i.BORDER_RADIUS.IMAGE,display:"block"},badge:{position:"absolute",top:"0px",left:"0px",right:"0px",height:`${i.POPUP_DIMENSIONS.MINOR.badgeHeight}px`,backgroundColor:"rgba(0, 0, 0, 0.26)",borderRadius:`${i.BORDER_RADIUS.IMAGE} ${i.BORDER_RADIUS.IMAGE} ${i.BORDER_RADIUS.IMAGE} ${i.BORDER_RADIUS.IMAGE}`,display:"flex",alignItems:"center",justifyContent:"center",zIndex:o.Z_INDEX.IMAGE_BADGE},badgeText:{color:e.BASE_COLORS.grayscale.white,fontWeight:"600",fontSize:"14px"},imagePlaceholder:{color:e.BASE_COLORS.grayscale[500],fontSize:"14px",textAlign:"center",width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:e.BASE_COLORS.grayscale[100],borderRadius:i.BORDER_RADIUS.IMAGE},contentContainer:{flex:1,display:"flex",margin:i.SPACING.MINOR.contentMargin,flexDirection:"column",justifyContent:"space-between",background:"transparent"},title:{fontSize:"16px",fontWeight:"600",padding:"0 0 0 0",color:e.BASE_COLORS.grayscale[900],lineHeight:"1.25",textAlign:"left"},content:{fontSize:"12px",fontWeight:"400",lineHeight:"1.2",color:e.BASE_COLORS.grayscale[700],textAlign:"left",maxHeight:"48px",overflow:"hidden",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical"},actionsContainer:{position:"absolute",bottom:i.SPACING.MINOR.actionsBottom,right:i.SPACING.MINOR.actionsRight,display:"flex",gap:i.SPACING.MINOR.actionsGap,alignItems:"center"},understoodText:{color:e.BASE_COLORS.brand[800],fontSize:"14px",fontWeight:"500",cursor:"pointer",transition:"all 0.2s"},exploreButton:{backgroundColor:e.BASE_COLORS.brand[800],border:"none",color:e.BASE_COLORS.grayscale.white,borderRadius:i.BORDER_RADIUS.BUTTON,fontSize:"14px",fontWeight:"600",cursor:"pointer",width:"154px",height:"32px",transition:"all 0.2s",textAlign:"center",display:"flex",alignItems:"center",justifyContent:"center"}});
|