@fynd-design-engineering/fynd-one-v2 3.1.26 → 3.1.28
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/global/anchor-scroll.js +1 -1
- package/dist/global/anchor-scroll.js.map +2 -2
- package/dist/navigation/secondary-navigation/index.js +1 -0
- package/dist/navigation/secondary-navigation/index.js.map +7 -0
- package/dist/navigation/style.css +1 -1
- package/dist/navigation/style.css.map +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var
|
|
1
|
+
"use strict";(()=>{var a=class{constructor(t={}){this.handleTriggerClick=t=>{let i=t.target.closest(`[${this.triggerAttribute}]`);if(i){t.preventDefault(),this.updateActiveStates(i);let r=i.getAttribute(this.triggerAttribute);r&&this.scrollToSection(r)}};this.triggerAttribute=t.triggerAttribute||"fynd-scroll-trigger",this.targetAttribute=t.targetAttribute||"fynd-scroll-target",this.scrollDelay=t.scrollDelay||500,this.init()}init(){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{this.setupTriggers(),this.handlePageLoad(),this.handleBrowserNavigation()}):(this.setupTriggers(),this.handlePageLoad(),this.handleBrowserNavigation())}scrollToSection(t){let e=document.querySelector(`[${this.targetAttribute}="${t}"]`);e?(this.updateURL(t),this.updateActiveStatesBySection(t),e.scrollIntoView({behavior:"auto",block:"start"})):console.warn(`ScrollNavigation: Target element with ${this.targetAttribute}="${t}" not found`)}updateURL(t){try{let e=new URL(window.location.href);e.searchParams.set("section",t),window.history.pushState({section:t},"",e.toString())}catch(e){console.error("ScrollNavigation: Failed to update URL",e)}}handlePageLoad(){let e=new URLSearchParams(window.location.search).get("section");e&&setTimeout(()=>{this.scrollToSection(e)},this.scrollDelay)}setupTriggers(){document.removeEventListener("click",this.handleTriggerClick),this.initializeActiveStates(),document.addEventListener("click",this.handleTriggerClick)}initializeActiveStates(){document.querySelectorAll(`[${this.triggerAttribute}]`).forEach(e=>{e.setAttribute("fynd-anchor-active","false")})}updateActiveStatesBySection(t){document.querySelectorAll(`[${this.triggerAttribute}]`).forEach(i=>{i.getAttribute(this.triggerAttribute)===t?i.setAttribute("fynd-anchor-active","true"):i.setAttribute("fynd-anchor-active","false")})}updateActiveStates(t){let e=t.getAttribute(this.triggerAttribute);e&&this.updateActiveStatesBySection(e)}handleBrowserNavigation(){window.addEventListener("popstate",t=>{let i=new URLSearchParams(window.location.search).get("section");if(i){let r=document.querySelector(`[${this.targetAttribute}="${i}"]`);r&&(this.updateActiveStatesBySection(i),r.scrollIntoView({behavior:"auto",block:"start"}))}})}goToSection(t){this.scrollToSection(t)}getCurrentSection(){return new URLSearchParams(window.location.search).get("section")}getAvailableSections(){let t=document.querySelectorAll(`[${this.targetAttribute}]`),e=[];return t.forEach(i=>{let r=i.getAttribute(this.targetAttribute);r&&e.push(r)}),e}reinitializeTriggers(){this.setupTriggers()}reinitialize(t){let e={triggers:!0,handlePageLoad:!1,browserNavigation:!1,...t};e.triggers&&this.setupTriggers(),e.handlePageLoad&&this.handlePageLoad(),e.browserNavigation&&this.handleBrowserNavigation()}fullReinitialize(){this.setupTriggers(),this.handlePageLoad(),this.handleBrowserNavigation()}},s=new a;typeof window<"u"&&(window.ScrollNavigation=a);})();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../bin/live-reload.js", "../../src/global/anchor-scroll.ts"],
|
|
4
|
-
"sourcesContent": ["// Only enable live reload when running on localhost\nif (\n window.location.hostname === \"localhost\" ||\n window.location.hostname === \"127.0.0.1\"\n) {\n new EventSource(`${SERVE_ORIGIN}/esbuild`).addEventListener(\"change\", () =>\n location.reload()\n );\n} else {\n console.log(\"Live reload disabled: not running on localhost\");\n}\n", "// TypeScript Scroll Navigation\ninterface ScrollNavigationOptions {\n triggerAttribute?: string;\n targetAttribute?: string;\n scrollDelay?: number;\n }\n \n class ScrollNavigation {\n private readonly triggerAttribute: string;\n private readonly targetAttribute: string;\n private readonly scrollDelay: number;\n \n constructor(options: ScrollNavigationOptions = {}) {\n this.triggerAttribute = options.triggerAttribute || 'fynd-scroll-trigger';\n this.targetAttribute = options.targetAttribute || 'fynd-scroll-target';\n this.scrollDelay = options.scrollDelay || 500;\n \n this.init();\n }\n \n private init(): void {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => {\n this.setupTriggers();\n this.handlePageLoad();\n this.handleBrowserNavigation();\n });\n } else {\n this.setupTriggers();\n this.handlePageLoad();\n this.handleBrowserNavigation();\n }\n }\n \n private scrollToSection(sectionValue: string): void {\n const target = document.querySelector(`[${this.targetAttribute}=\"${sectionValue}\"]`) as HTMLElement;\n \n if (target) {\n this.updateURL(sectionValue);\n \n target.scrollIntoView({\n behavior: 'auto',\n block: 'start'\n });\n } else {\n console.warn(`ScrollNavigation: Target element with ${this.targetAttribute}=\"${sectionValue}\" not found`);\n }\n }\n \n private updateURL(sectionValue: string): void {\n try {\n const url = new URL(window.location.href);\n url.searchParams.set('section', sectionValue);\n window.history.pushState({ section: sectionValue }, '', url.toString());\n } catch (error) {\n console.error('ScrollNavigation: Failed to update URL', error);\n }\n }\n \n private handlePageLoad(): void {\n const urlParams = new URLSearchParams(window.location.search);\n const sectionParam = urlParams.get('section');\n \n if (sectionParam) {\n setTimeout(() => {\n this.scrollToSection(sectionParam);\n }, this.scrollDelay);\n }\n }\n \n private setupTriggers(): void {\n const triggers = document.querySelectorAll(`[${this.triggerAttribute}]`) as NodeListOf<HTMLElement>;\n
|
|
5
|
-
"mappings": ";;;AACA,MACE,OAAO,SAAS,aAAa,eAC7B,OAAO,SAAS,aAAa,aAC7B;AACA,QAAI,YAAY,GAAG,uBAAY,UAAU,EAAE;AAAA,MAAiB;AAAA,MAAU,MACpE,SAAS,OAAO;AAAA,IAClB;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,gDAAgD;AAAA,EAC9D;;;ACHE,MAAM,mBAAN,MAAuB;AAAA,IAKrB,YAAY,UAAmC,CAAC,GAAG;
|
|
4
|
+
"sourcesContent": ["// Only enable live reload when running on localhost\nif (\n window.location.hostname === \"localhost\" ||\n window.location.hostname === \"127.0.0.1\"\n) {\n new EventSource(`${SERVE_ORIGIN}/esbuild`).addEventListener(\"change\", () =>\n location.reload()\n );\n} else {\n console.log(\"Live reload disabled: not running on localhost\");\n}\n", "// TypeScript Scroll Navigation\ninterface ScrollNavigationOptions {\n triggerAttribute?: string;\n targetAttribute?: string;\n scrollDelay?: number;\n }\n \n class ScrollNavigation {\n private readonly triggerAttribute: string;\n private readonly targetAttribute: string;\n private readonly scrollDelay: number;\n \n constructor(options: ScrollNavigationOptions = {}) {\n this.triggerAttribute = options.triggerAttribute || 'fynd-scroll-trigger';\n this.targetAttribute = options.targetAttribute || 'fynd-scroll-target';\n this.scrollDelay = options.scrollDelay || 500;\n \n this.init();\n }\n \n private init(): void {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => {\n this.setupTriggers();\n this.handlePageLoad();\n this.handleBrowserNavigation();\n });\n } else {\n this.setupTriggers();\n this.handlePageLoad();\n this.handleBrowserNavigation();\n }\n }\n \n private scrollToSection(sectionValue: string): void {\n const target = document.querySelector(`[${this.targetAttribute}=\"${sectionValue}\"]`) as HTMLElement;\n \n if (target) {\n this.updateURL(sectionValue);\n \n // Update active states for all triggers pointing to this section\n this.updateActiveStatesBySection(sectionValue);\n \n target.scrollIntoView({\n behavior: 'auto',\n block: 'start'\n });\n } else {\n console.warn(`ScrollNavigation: Target element with ${this.targetAttribute}=\"${sectionValue}\" not found`);\n }\n }\n \n private updateURL(sectionValue: string): void {\n try {\n const url = new URL(window.location.href);\n url.searchParams.set('section', sectionValue);\n window.history.pushState({ section: sectionValue }, '', url.toString());\n } catch (error) {\n console.error('ScrollNavigation: Failed to update URL', error);\n }\n }\n \n private handlePageLoad(): void {\n const urlParams = new URLSearchParams(window.location.search);\n const sectionParam = urlParams.get('section');\n \n if (sectionParam) {\n setTimeout(() => {\n this.scrollToSection(sectionParam);\n }, this.scrollDelay);\n }\n }\n \n private setupTriggers(): void {\n // Remove existing event listeners first\n document.removeEventListener('click', this.handleTriggerClick);\n \n // Initialize all triggers with inactive state\n this.initializeActiveStates();\n \n // Add single delegated event listener\n document.addEventListener('click', this.handleTriggerClick);\n }\n\n private initializeActiveStates(): void {\n const triggers = document.querySelectorAll(`[${this.triggerAttribute}]`) as NodeListOf<HTMLElement>;\n triggers.forEach((trigger: HTMLElement) => {\n trigger.setAttribute('fynd-anchor-active', 'false');\n });\n }\n\n private updateActiveStatesBySection(sectionValue: string): void {\n // Get all triggers\n const allTriggers = document.querySelectorAll(`[${this.triggerAttribute}]`) as NodeListOf<HTMLElement>;\n \n allTriggers.forEach((trigger: HTMLElement) => {\n const triggerSectionValue = trigger.getAttribute(this.triggerAttribute);\n \n // Set active state based on whether this trigger points to the target section\n if (triggerSectionValue === sectionValue) {\n trigger.setAttribute('fynd-anchor-active', 'true');\n } else {\n trigger.setAttribute('fynd-anchor-active', 'false');\n }\n });\n }\n\n private updateActiveStates(activeTrigger: HTMLElement): void {\n const activeSectionValue = activeTrigger.getAttribute(this.triggerAttribute);\n \n if (!activeSectionValue) return;\n \n this.updateActiveStatesBySection(activeSectionValue);\n }\n\n private handleTriggerClick = (event: Event): void => {\n const target = event.target as HTMLElement;\n const trigger = target.closest(`[${this.triggerAttribute}]`) as HTMLElement;\n \n if (trigger) {\n event.preventDefault();\n \n // Update active states\n this.updateActiveStates(trigger);\n \n const sectionValue = trigger.getAttribute(this.triggerAttribute);\n \n if (sectionValue) {\n this.scrollToSection(sectionValue);\n }\n }\n }\n \n private handleBrowserNavigation(): void {\n window.addEventListener('popstate', (event: PopStateEvent) => {\n const urlParams = new URLSearchParams(window.location.search);\n const sectionParam = urlParams.get('section');\n \n if (sectionParam) {\n const target = document.querySelector(`[${this.targetAttribute}=\"${sectionParam}\"]`) as HTMLElement;\n if (target) {\n // Update active states when navigating via browser back/forward\n this.updateActiveStatesBySection(sectionParam);\n \n target.scrollIntoView({\n behavior: 'auto',\n block: 'start'\n });\n }\n }\n });\n }\n \n // Public method to programmatically scroll to section\n public goToSection(sectionValue: string): void {\n this.scrollToSection(sectionValue);\n }\n \n // Public method to get current section from URL\n public getCurrentSection(): string | null {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('section');\n }\n \n // Public method to get all available sections\n public getAvailableSections(): string[] {\n const targets = document.querySelectorAll(`[${this.targetAttribute}]`) as NodeListOf<HTMLElement>;\n const sections: string[] = [];\n \n targets.forEach((target: HTMLElement) => {\n const sectionValue = target.getAttribute(this.targetAttribute);\n if (sectionValue) {\n sections.push(sectionValue);\n }\n });\n \n return sections;\n }\n\n // Public method to reinitialize triggers (useful when DOM changes)\n public reinitializeTriggers(): void {\n this.setupTriggers();\n }\n\n // Public method for comprehensive reinitialization with options\n public reinitialize(options?: {\n triggers?: boolean;\n handlePageLoad?: boolean;\n browserNavigation?: boolean;\n }): void {\n const config = {\n triggers: true,\n handlePageLoad: false,\n browserNavigation: false,\n ...options\n };\n\n if (config.triggers) {\n this.setupTriggers();\n }\n\n if (config.handlePageLoad) {\n this.handlePageLoad();\n }\n\n if (config.browserNavigation) {\n this.handleBrowserNavigation();\n }\n }\n\n // Public method for complete reinitialization (equivalent to creating new instance)\n public fullReinitialize(): void {\n this.setupTriggers();\n this.handlePageLoad();\n this.handleBrowserNavigation();\n }\n }\n \n // Initialize with default options\n const scrollNavigation = new ScrollNavigation();\n \n // Alternative initialization with custom options\n // const scrollNavigation = new ScrollNavigation({\n // triggerAttribute: 'my-scroll-trigger',\n // targetAttribute: 'my-scroll-target',\n // scrollDelay: 200\n // });\n \n // Export for module usage\n export { ScrollNavigation };\n \n // Also make it available globally for non-module usage\n declare global {\n interface Window {\n ScrollNavigation: typeof ScrollNavigation;\n }\n }\n \n if (typeof window !== 'undefined') {\n window.ScrollNavigation = ScrollNavigation;\n }"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{console.log(" \u{1F525} Secondary Navigation");var v=null,N=!0,A=!1,k=!1,p=!1,l=class{static hasAnyActiveNavLink(){return document.querySelectorAll('[fynd-secondary-navlink-active="true"]').length>0}static checkIfAnySectionVisible(){let t=document.querySelectorAll("[fynd-secondary-nav-id]"),e=window.innerHeight;for(let n of t){let i=n.getBoundingClientRect(),s=Math.min(i.bottom,e)-Math.max(i.top,0),o=i.height;if((s>0?s/o*100:0)>50)return!0}return!1}static findMostVisibleSection(){let t=document.querySelectorAll("[fynd-secondary-nav-id]"),e=window.innerHeight,n=null,i=0;return t.forEach(s=>{let o=s.getAttribute("fynd-secondary-nav-id");if(!o)return;let a=s.getBoundingClientRect(),r=Math.min(a.bottom,e)-Math.max(a.top,0),g=a.height,c=r>0?r/g*100:0;c>50&&c>i&&(i=c,n=o)}),n}static getCurrentSectionGroup(t){let e=v||d.getSecondaryNavItems();for(let n of e)if(n.Links.find(s=>s.id===t))return n.groupName;return null}static getAdjacentSections(t){let e=Array.from(document.querySelectorAll("[fynd-secondary-nav-id]")),n=e.findIndex(s=>s.getAttribute("fynd-secondary-nav-id")===t),i=[];if(n>0){let s=e[n-1].getAttribute("fynd-secondary-nav-id");s&&i.push({id:s,position:"previous"})}if(n<e.length-1){let s=e[n+1].getAttribute("fynd-secondary-nav-id");s&&i.push({id:s,position:"next"})}return i}static getGroupSections(t){let n=(v||d.getSecondaryNavItems()).find(i=>i.groupName===t);return n?n.Links:[]}},d=class{static getSecondaryNavItems(){if(v)return v;let t=document.querySelectorAll('[fynd-secondary-nav="true"]'),e={};t.forEach((i,s)=>{let o=i.getAttribute("fynd-secondary-nav-text"),a=i.getAttribute("fynd-secondary-nav-group"),r=i.getAttribute("fynd-secondary-nav-id");r||(r=`secondary-nav-${a}-${s}-${Date.now()}`,i.setAttribute("fynd-secondary-nav-id",r));let c=i.querySelector("[fynd-scroll-target]")?.getAttribute("fynd-scroll-target");o&&a&&c&&(e[a]||(e[a]=[]),e[a].push({id:r,Text:o,link:c}))});let n=Object.keys(e).map(i=>({groupName:i,Links:e[i]}));return v=n,n}static getSecondaryNavJSON(){let t=this.getSecondaryNavItems();return JSON.stringify(t,null,2)}static getCurrentlyVisibleGroup(){let t=document.querySelectorAll("[fynd-secondary-nav-id]"),e={};t.forEach(s=>{let o=s.getAttribute("fynd-secondary-nav-id");if(!o)return;let a=l.getCurrentSectionGroup(o);if(!a)return;let r=s.getBoundingClientRect(),g=window.innerHeight,c=Math.min(r.bottom,g)-Math.max(r.top,0),m=r.height,L=c>0?c/m*100:0;L>0&&(e[a]||(e[a]=0),e[a]+=L)});let n=null,i=25;return Object.entries(e).forEach(([s,o])=>{o>i&&(i=o,n=s)}),n}},y=class{static setAllNavLinksInactive(){l.checkIfAnySectionVisible()||document.querySelectorAll("[fynd-secondary-navlink-active]").forEach(e=>{e.setAttribute("fynd-secondary-navlink-active","false")})}static activateNavLink(t){document.querySelectorAll("[fynd-secondary-navlink-active]").forEach(i=>{i.getAttribute("fynd-secondary-navlink-id")!==t&&i.setAttribute("fynd-secondary-navlink-active","false")});let n=document.querySelector(`[fynd-secondary-navlink-active][fynd-secondary-navlink-id="${t}"]`);n?n.setAttribute("fynd-secondary-navlink-active","true"):console.warn(`\u274C No matching nav link found for section: ${t}`)}static setActiveTab(){document.querySelectorAll("[fynd-secondary-navlink-active]").forEach(e=>{e.getAttribute("fynd-anchor-active")==="true"?e.setAttribute("fynd-secondary-navlink-active","true"):e.setAttribute("fynd-secondary-navlink-active","false")})}},S=class{static toggleSecondaryNav(t){if(p||k===t)return;let e=document.querySelector('[fynd-secondary-nav="wrapper"]');if(!e){console.warn("Secondary nav wrapper not found");return}p=!0,k=t,t?this.showSecondaryNav(e):this.hideSecondaryNav(e)}static showSecondaryNav(t){t.style.transform="translateY(-100px)",t.style.display="block",t.offsetHeight,t.style.transition="transform 300ms ease",t.style.transform="translateY(0px)",this.updateNavigationScrolledStyle(!0),setTimeout(()=>{t.style.transition="",p=!1},300)}static hideSecondaryNav(t){t.style.transition="transform 300ms ease",t.style.transform="translateY(-100px)",this.updateNavigationScrolledStyle(!1),setTimeout(()=>{t.style.display="none",t.style.transition="",p=!1},300)}static updateNavigationScrolledStyle(t){let e=document.querySelector("[navigation-scrolled]");if(!e){console.warn("Element with [navigation-scrolled] attribute not found");return}t?e.style.boxShadow="none":e.style.removeProperty("box-shadow")}},u=class{static updateGroupVisibility(t){this.updateNavLinkVisibility(t),this.updateWrapperVisibility(t)}static updateNavLinkVisibility(t){document.querySelectorAll('[fynd-secondary-nav="link"]').forEach(n=>{let i=n.getAttribute("fynd-secondary-navgroup");t&&i===t?(n.style.display="",n.setAttribute("fynd-group-visible","true")):(n.style.display="none",n.setAttribute("fynd-group-visible","false"))})}static updateWrapperVisibility(t){let e=l.hasAnyActiveNavLink(),n=t!==null&&e;S.toggleSecondaryNav(n)}},h=class{static handleNavigation(t){if(!document.querySelector(`[fynd-secondary-nav-id="${t}"]`))return;let n=l.getCurrentSectionGroup(t);if(!n){u.updateGroupVisibility(null);return}u.updateGroupVisibility(n),l.getAdjacentSections(t).some(o=>l.getCurrentSectionGroup(o.id)===n)?this.handleGroupSequentialNavigation(t,n):y.activateNavLink(t)}static handleGroupSequentialNavigation(t,e){let n=l.getGroupSections(e);n.findIndex(s=>s.id===t)!==-1&&(n.forEach(s=>{let o=document.querySelector(`[fynd-secondary-navlink-id="${s.id}"]`);o&&o.setAttribute("fynd-secondary-navlink-active","false")}),y.activateNavLink(t))}static checkInitialGroupVisibility(){let t=d.getCurrentlyVisibleGroup();if(t){let e=l.findMostVisibleSection();e&&l.getCurrentSectionGroup(e)===t&&y.activateNavLink(e),u.updateGroupVisibility(t)}else u.updateGroupVisibility(null)}},b=class{static initSecondarynav(){let t=d.getSecondaryNavItems();if(t.length===0)return;let e=document.querySelector('[fynd-secondary-nav="slot"]');if(!e){console.warn("Secondary nav slot not found");return}this.buildNavLinks(e,t),this.initializeScrollNavigation()}static buildNavLinks(t,e){t.innerHTML="",e.forEach(n=>{n.Links.forEach(i=>{let s=this.createNavLinkElement(i,n.groupName);t.appendChild(s)})})}static createNavLinkElement(t,e){let n=document.createElement("div");return n.setAttribute("fynd-secondary-nav","link"),n.setAttribute("fynd-secondary-navgroup",e),n.setAttribute("fynd-secondary-navlink-id",t.id),n.setAttribute("fynd-scroll-trigger",t.link),n.setAttribute("data-text-style","body-m-regular"),n.setAttribute("fynd-secondary-navlink-active","false"),n.textContent=t.Text,n.addEventListener("click",()=>{setTimeout(()=>{y.setActiveTab()},50)}),n}static initializeScrollNavigation(){window.scrollNavigation?.fullReinitialize()}static initSecondarynavScroll(){let t=document.querySelectorAll("[fynd-secondary-nav-id]");t.length!==0&&(this.setupScrollTriggers(t),this.finalizeInitialization(t.length))}static setupScrollTriggers(t){let e=v||d.getSecondaryNavItems();t.forEach(n=>{let i=n.getAttribute("fynd-secondary-nav-id");if(!i)return;let s=this.findCorrespondingData(i,e);s&&this.createScrollTrigger(n,i,s)})}static findCorrespondingData(t,e){for(let n of e){let i=n.Links.find(s=>s.id===t);if(i)return i}return null}static createScrollTrigger(t,e,n){window.gsap.registerPlugin(window.ScrollTrigger),window.ScrollTrigger.create({trigger:t,start:"top bottom",end:"bottom top",onUpdate:i=>{if(N)return;let s=t.getBoundingClientRect(),o=window.innerHeight,a=Math.min(s.bottom,o)-Math.max(s.top,0),r=s.height,g=a>0?a/r*100:0,c=l.findMostVisibleSection();if(c&&c===e&&g>50)h.handleNavigation(e);else if(!c){let m=d.getCurrentlyVisibleGroup();m?u.updateGroupVisibility(m):setTimeout(()=>{l.checkIfAnySectionVisible()||(y.setAllNavLinksInactive(),u.updateGroupVisibility(null))},10)}}})}static finalizeInitialization(t){A=!0,setTimeout(()=>{N=!1,h.checkInitialGroupVisibility()},500)}},T=d.getSecondaryNavItems();console.log(T);document.addEventListener("DOMContentLoaded",()=>{setTimeout(()=>{v=null,N=!0,b.initSecondarynav(),setTimeout(()=>{b.initSecondarynavScroll()},300)},200)});})();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../bin/live-reload.js", "../../../src/navigation/secondary-navigation/index.ts"],
|
|
4
|
+
"sourcesContent": ["// Only enable live reload when running on localhost\nif (\n window.location.hostname === \"localhost\" ||\n window.location.hostname === \"127.0.0.1\"\n) {\n new EventSource(`${SERVE_ORIGIN}/esbuild`).addEventListener(\"change\", () =>\n location.reload()\n );\n} else {\n console.log(\"Live reload disabled: not running on localhost\");\n}\n", "console.log(\" \uD83D\uDD25 Secondary Navigation\");\n\n// ===============================\n// TYPE DEFINITIONS\n// ===============================\ninterface NavLink {\n id: string;\n Text: string;\n link: string;\n}\n\ninterface NavGroup {\n groupName: string;\n Links: NavLink[];\n}\n\ninterface AdjacentSection {\n id: string;\n position: 'previous' | 'next';\n}\n\n// ===============================\n// GLOBAL STATE\n// ===============================\nlet cachedSecondaryNavItems: NavGroup[] | null = null;\nlet isInitialLoad = true;\nlet scrollTrackingInitialized = false;\nlet isSecondaryNavigationVisible = false;\nlet isAnimating = false;\n\n// ===============================\n// UTILITY FUNCTIONS\n// ===============================\nclass SecondaryNavUtils {\n static hasAnyActiveNavLink(): boolean {\n const activeNavLinks = document.querySelectorAll('[fynd-secondary-navlink-active=\"true\"]') as NodeListOf<HTMLElement>;\n return activeNavLinks.length > 0;\n }\n\n static checkIfAnySectionVisible(): boolean {\n const navSections = document.querySelectorAll('[fynd-secondary-nav-id]') as NodeListOf<HTMLElement>;\n const viewportHeight = window.innerHeight;\n \n for (const section of navSections) {\n const rect = section.getBoundingClientRect();\n const visibleHeight = Math.min(rect.bottom, viewportHeight) - Math.max(rect.top, 0);\n const sectionHeight = rect.height;\n const visibilityPercentage = visibleHeight > 0 ? (visibleHeight / sectionHeight) * 100 : 0;\n \n if (visibilityPercentage > 50) {\n return true;\n }\n }\n return false;\n }\n\n static findMostVisibleSection(): string | null {\n const navSections = document.querySelectorAll('[fynd-secondary-nav-id]') as NodeListOf<HTMLElement>;\n const viewportHeight = window.innerHeight;\n let mostVisibleSection: string | null = null;\n let highestVisibility = 0;\n \n navSections.forEach((section) => {\n const sectionId = section.getAttribute('fynd-secondary-nav-id');\n if (!sectionId) return;\n \n const rect = section.getBoundingClientRect();\n const visibleHeight = Math.min(rect.bottom, viewportHeight) - Math.max(rect.top, 0);\n const sectionHeight = rect.height;\n const visibilityPercentage = visibleHeight > 0 ? (visibleHeight / sectionHeight) * 100 : 0;\n \n if (visibilityPercentage > 50 && visibilityPercentage > highestVisibility) {\n highestVisibility = visibilityPercentage;\n mostVisibleSection = sectionId;\n }\n });\n \n return mostVisibleSection;\n }\n\n static getCurrentSectionGroup(sectionId: string): string | null {\n const secondaryNavItems = cachedSecondaryNavItems || SecondaryNavData.getSecondaryNavItems();\n \n for (const group of secondaryNavItems) {\n const found = group.Links.find(link => link.id === sectionId);\n if (found) {\n return group.groupName;\n }\n }\n return null;\n }\n\n static getAdjacentSections(currentSectionId: string): AdjacentSection[] {\n const allSections = Array.from(document.querySelectorAll('[fynd-secondary-nav-id]')) as HTMLElement[];\n const currentIndex = allSections.findIndex(section => \n section.getAttribute('fynd-secondary-nav-id') === currentSectionId\n );\n \n const adjacent: AdjacentSection[] = [];\n \n if (currentIndex > 0) {\n const prevId = allSections[currentIndex - 1].getAttribute('fynd-secondary-nav-id');\n if (prevId) adjacent.push({ id: prevId, position: 'previous' });\n }\n \n if (currentIndex < allSections.length - 1) {\n const nextId = allSections[currentIndex + 1].getAttribute('fynd-secondary-nav-id');\n if (nextId) adjacent.push({ id: nextId, position: 'next' });\n }\n \n return adjacent;\n }\n\n static getGroupSections(groupName: string): NavLink[] {\n const secondaryNavItems = cachedSecondaryNavItems || SecondaryNavData.getSecondaryNavItems();\n const group = secondaryNavItems.find(g => g.groupName === groupName);\n return group ? group.Links : [];\n }\n}\n\n// ===============================\n// DATA MANAGEMENT\n// ===============================\nclass SecondaryNavData {\n static getSecondaryNavItems(): NavGroup[] {\n if (cachedSecondaryNavItems) {\n return cachedSecondaryNavItems;\n }\n \n const secondaryNavDivs: NodeListOf<HTMLDivElement> = document.querySelectorAll('[fynd-secondary-nav=\"true\"]');\n const groupedNavs: { [key: string]: NavLink[] } = {};\n \n secondaryNavDivs.forEach((div: HTMLDivElement, index: number) => {\n const navText: string | null = div.getAttribute('fynd-secondary-nav-text');\n const navGroup: string | null = div.getAttribute('fynd-secondary-nav-group');\n \n let uniqueId = div.getAttribute('fynd-secondary-nav-id');\n if (!uniqueId) {\n uniqueId = `secondary-nav-${navGroup}-${index}-${Date.now()}`;\n div.setAttribute('fynd-secondary-nav-id', uniqueId);\n }\n \n const scrollTargetElement = div.querySelector('[fynd-scroll-target]') as HTMLElement;\n const scrollTargetValue = scrollTargetElement?.getAttribute('fynd-scroll-target');\n \n if (navText && navGroup && scrollTargetValue) {\n if (!groupedNavs[navGroup]) {\n groupedNavs[navGroup] = [];\n }\n \n groupedNavs[navGroup].push({ \n id: uniqueId,\n Text: navText,\n link: scrollTargetValue \n });\n }\n });\n \n const navGroupsArray: NavGroup[] = Object.keys(groupedNavs).map(groupName => ({\n groupName,\n Links: groupedNavs[groupName]\n }));\n \n cachedSecondaryNavItems = navGroupsArray;\n return navGroupsArray;\n }\n\n static getSecondaryNavJSON(): string {\n const navGroups = this.getSecondaryNavItems();\n return JSON.stringify(navGroups, null, 2);\n }\n\n static getCurrentlyVisibleGroup(): string | null {\n const navSections = document.querySelectorAll('[fynd-secondary-nav-id]') as NodeListOf<HTMLElement>;\n const groupVisibility: { [key: string]: number } = {};\n \n navSections.forEach(section => {\n const sectionId = section.getAttribute('fynd-secondary-nav-id');\n if (!sectionId) return;\n \n const groupName = SecondaryNavUtils.getCurrentSectionGroup(sectionId);\n if (!groupName) return;\n \n const rect = section.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const visibleHeight = Math.min(rect.bottom, viewportHeight) - Math.max(rect.top, 0);\n const sectionHeight = rect.height;\n const visibilityPercentage = visibleHeight > 0 ? (visibleHeight / sectionHeight) * 100 : 0;\n \n if (visibilityPercentage > 0) {\n if (!groupVisibility[groupName]) {\n groupVisibility[groupName] = 0;\n }\n groupVisibility[groupName] += visibilityPercentage;\n }\n });\n \n let mostVisibleGroup: string | null = null;\n let highestVisibility = 25;\n \n Object.entries(groupVisibility).forEach(([groupName, totalVisibility]) => {\n if (totalVisibility > highestVisibility) {\n highestVisibility = totalVisibility;\n mostVisibleGroup = groupName;\n }\n });\n \n return mostVisibleGroup;\n }\n}\n\n// ===============================\n// NAVIGATION LINK MANAGEMENT\n// ===============================\nclass NavLinkManager {\n static setAllNavLinksInactive(): void {\n if (!SecondaryNavUtils.checkIfAnySectionVisible()) {\n const allNavLinks = document.querySelectorAll('[fynd-secondary-navlink-active]') as NodeListOf<HTMLElement>;\n allNavLinks.forEach(navLink => {\n navLink.setAttribute('fynd-secondary-navlink-active', 'false');\n });\n }\n }\n\n static activateNavLink(sectionId: string): void {\n const allNavLinks = document.querySelectorAll('[fynd-secondary-navlink-active]') as NodeListOf<HTMLElement>;\n allNavLinks.forEach(navLink => {\n const linkId = navLink.getAttribute('fynd-secondary-navlink-id');\n if (linkId !== sectionId) {\n navLink.setAttribute('fynd-secondary-navlink-active', 'false');\n }\n });\n \n const matchingNavLink = document.querySelector(`[fynd-secondary-navlink-active][fynd-secondary-navlink-id=\"${sectionId}\"]`) as HTMLElement;\n \n if (matchingNavLink) {\n matchingNavLink.setAttribute('fynd-secondary-navlink-active', 'true');\n } else {\n console.warn(`\u274C No matching nav link found for section: ${sectionId}`);\n }\n }\n\n static setActiveTab(): void {\n const navLinkDivs = document.querySelectorAll('[fynd-secondary-navlink-active]') as NodeListOf<HTMLDivElement>;\n \n navLinkDivs.forEach((div: HTMLDivElement) => {\n const isAnchorActive = div.getAttribute('fynd-anchor-active') === 'true';\n \n if (isAnchorActive) {\n div.setAttribute('fynd-secondary-navlink-active', 'true');\n } else {\n div.setAttribute('fynd-secondary-navlink-active', 'false');\n }\n });\n }\n}\n\n// ===============================\n// ANIMATION CONTROLLER\n// ===============================\nclass AnimationController {\n static toggleSecondaryNav(shouldShow: boolean): void {\n if (isAnimating || isSecondaryNavigationVisible === shouldShow) return;\n \n const wrapper = document.querySelector('[fynd-secondary-nav=\"wrapper\"]') as HTMLElement;\n if (!wrapper) {\n console.warn(\"Secondary nav wrapper not found\");\n return;\n }\n \n isAnimating = true;\n isSecondaryNavigationVisible = shouldShow;\n \n if (shouldShow) {\n this.showSecondaryNav(wrapper);\n } else {\n this.hideSecondaryNav(wrapper);\n }\n }\n\n private static showSecondaryNav(wrapper: HTMLElement): void {\n wrapper.style.transform = 'translateY(-100px)';\n wrapper.style.display = 'block';\n wrapper.offsetHeight;\n \n wrapper.style.transition = 'transform 300ms ease';\n wrapper.style.transform = 'translateY(0px)';\n \n this.updateNavigationScrolledStyle(true);\n \n setTimeout(() => {\n wrapper.style.transition = '';\n isAnimating = false;\n }, 300);\n }\n\n private static hideSecondaryNav(wrapper: HTMLElement): void {\n wrapper.style.transition = 'transform 300ms ease';\n wrapper.style.transform = 'translateY(-100px)';\n \n this.updateNavigationScrolledStyle(false);\n \n setTimeout(() => {\n wrapper.style.display = 'none';\n wrapper.style.transition = '';\n isAnimating = false;\n }, 300);\n }\n\n private static updateNavigationScrolledStyle(isSecondaryNavVisible: boolean): void {\n const navigationScrolledElement = document.querySelector('[navigation-scrolled]') as HTMLElement;\n \n if (!navigationScrolledElement) {\n console.warn(\"Element with [navigation-scrolled] attribute not found\");\n return;\n }\n \n if (isSecondaryNavVisible) {\n navigationScrolledElement.style.boxShadow = 'none';\n } else {\n navigationScrolledElement.style.removeProperty('box-shadow');\n }\n }\n}\n\n// ===============================\n// GROUP VISIBILITY MANAGER\n// ===============================\nclass GroupVisibilityManager {\n static updateGroupVisibility(activeGroupName: string | null): void {\n this.updateNavLinkVisibility(activeGroupName);\n this.updateWrapperVisibility(activeGroupName);\n }\n\n private static updateNavLinkVisibility(activeGroupName: string | null): void {\n const allNavLinks = document.querySelectorAll('[fynd-secondary-nav=\"link\"]') as NodeListOf<HTMLElement>;\n \n allNavLinks.forEach(navLink => {\n const linkGroupName = navLink.getAttribute('fynd-secondary-navgroup');\n \n if (activeGroupName && linkGroupName === activeGroupName) {\n navLink.style.display = '';\n navLink.setAttribute('fynd-group-visible', 'true');\n } else {\n navLink.style.display = 'none';\n navLink.setAttribute('fynd-group-visible', 'false');\n }\n });\n }\n\n private static updateWrapperVisibility(activeGroupName: string | null): void {\n const hasActiveLinks = SecondaryNavUtils.hasAnyActiveNavLink();\n const shouldShowNav = activeGroupName !== null && hasActiveLinks;\n AnimationController.toggleSecondaryNav(shouldShowNav);\n }\n}\n\n// ===============================\n// NAVIGATION CONTROLLER\n// ===============================\nclass NavigationController {\n static handleNavigation(currentSectionId: string): void {\n const currentSectionElement = document.querySelector(`[fynd-secondary-nav-id=\"${currentSectionId}\"]`) as HTMLElement;\n if (!currentSectionElement) return;\n \n const currentGroupName = SecondaryNavUtils.getCurrentSectionGroup(currentSectionId);\n if (!currentGroupName) {\n GroupVisibilityManager.updateGroupVisibility(null);\n return;\n }\n \n GroupVisibilityManager.updateGroupVisibility(currentGroupName);\n \n const adjacentSections = SecondaryNavUtils.getAdjacentSections(currentSectionId);\n const hasAdjacentSameGroup = adjacentSections.some(adjSection => {\n const adjGroupName = SecondaryNavUtils.getCurrentSectionGroup(adjSection.id);\n return adjGroupName === currentGroupName;\n });\n \n if (hasAdjacentSameGroup) {\n this.handleGroupSequentialNavigation(currentSectionId, currentGroupName);\n } else {\n NavLinkManager.activateNavLink(currentSectionId);\n }\n }\n\n private static handleGroupSequentialNavigation(currentSectionId: string, groupName: string): void {\n const groupSections = SecondaryNavUtils.getGroupSections(groupName);\n const currentIndex = groupSections.findIndex(section => section.id === currentSectionId);\n \n if (currentIndex === -1) return;\n \n groupSections.forEach(section => {\n const navLink = document.querySelector(`[fynd-secondary-navlink-id=\"${section.id}\"]`) as HTMLElement;\n if (navLink) {\n navLink.setAttribute('fynd-secondary-navlink-active', 'false');\n }\n });\n \n NavLinkManager.activateNavLink(currentSectionId);\n }\n\n static checkInitialGroupVisibility(): void {\n const visibleGroup = SecondaryNavData.getCurrentlyVisibleGroup();\n \n if (visibleGroup) {\n const mostVisible = SecondaryNavUtils.findMostVisibleSection();\n if (mostVisible) {\n const mostVisibleGroup = SecondaryNavUtils.getCurrentSectionGroup(mostVisible);\n if (mostVisibleGroup === visibleGroup) {\n NavLinkManager.activateNavLink(mostVisible);\n }\n }\n \n GroupVisibilityManager.updateGroupVisibility(visibleGroup);\n } else {\n GroupVisibilityManager.updateGroupVisibility(null);\n }\n }\n}\n\n// ===============================\n// INITIALIZATION\n// ===============================\nclass SecondaryNavInitializer {\n static initSecondarynav(): void {\n const secondaryNavItems = SecondaryNavData.getSecondaryNavItems();\n \n if (secondaryNavItems.length === 0) {\n return;\n }\n \n const slotDiv = document.querySelector('[fynd-secondary-nav=\"slot\"]') as HTMLDivElement;\n if (!slotDiv) {\n console.warn(\"Secondary nav slot not found\");\n return;\n }\n \n this.buildNavLinks(slotDiv, secondaryNavItems);\n this.initializeScrollNavigation();\n }\n\n private static buildNavLinks(slotDiv: HTMLDivElement, secondaryNavItems: NavGroup[]): void {\n slotDiv.innerHTML = '';\n \n secondaryNavItems.forEach((group: NavGroup) => {\n group.Links.forEach((navLink: NavLink) => {\n const linkDiv = this.createNavLinkElement(navLink, group.groupName);\n slotDiv.appendChild(linkDiv);\n });\n });\n }\n\n private static createNavLinkElement(navLink: NavLink, groupName: string): HTMLDivElement {\n const linkDiv = document.createElement('div');\n \n linkDiv.setAttribute('fynd-secondary-nav', 'link');\n linkDiv.setAttribute('fynd-secondary-navgroup', groupName);\n linkDiv.setAttribute('fynd-secondary-navlink-id', navLink.id);\n linkDiv.setAttribute('fynd-scroll-trigger', navLink.link);\n linkDiv.setAttribute('data-text-style', 'body-m-regular');\n linkDiv.setAttribute('fynd-secondary-navlink-active', 'false');\n \n linkDiv.textContent = navLink.Text;\n \n linkDiv.addEventListener('click', () => {\n setTimeout(() => {\n NavLinkManager.setActiveTab();\n }, 50);\n });\n \n return linkDiv;\n }\n\n private static initializeScrollNavigation(): void {\n (window as any).scrollNavigation?.fullReinitialize();\n }\n\n static initSecondarynavScroll(): void {\n const navSections = document.querySelectorAll('[fynd-secondary-nav-id]') as NodeListOf<HTMLElement>;\n \n if (navSections.length === 0) {\n return;\n }\n \n this.setupScrollTriggers(navSections);\n this.finalizeInitialization(navSections.length);\n }\n\n private static setupScrollTriggers(navSections: NodeListOf<HTMLElement>): void {\n const secondaryNavItems = cachedSecondaryNavItems || SecondaryNavData.getSecondaryNavItems();\n \n navSections.forEach((section: HTMLElement) => {\n const sectionId = section.getAttribute('fynd-secondary-nav-id');\n if (!sectionId) return;\n \n const correspondingData = this.findCorrespondingData(sectionId, secondaryNavItems);\n if (!correspondingData) return;\n \n this.createScrollTrigger(section, sectionId, correspondingData);\n });\n }\n\n private static findCorrespondingData(sectionId: string, secondaryNavItems: NavGroup[]): NavLink | null {\n for (const group of secondaryNavItems) {\n const found = group.Links.find(link => link.id === sectionId);\n if (found) return found;\n }\n return null;\n }\n\n private static createScrollTrigger(section: HTMLElement, sectionId: string, correspondingData: NavLink): void {\n (window as any).gsap.registerPlugin((window as any).ScrollTrigger);\n \n (window as any).ScrollTrigger.create({\n trigger: section,\n start: \"top bottom\",\n end: \"bottom top\",\n onUpdate: (self: any) => {\n if (isInitialLoad) return;\n \n const rect = section.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const visibleHeight = Math.min(rect.bottom, viewportHeight) - Math.max(rect.top, 0);\n const sectionHeight = rect.height;\n const visibilityPercentage = visibleHeight > 0 ? (visibleHeight / sectionHeight) * 100 : 0;\n \n const mostVisible = SecondaryNavUtils.findMostVisibleSection();\n \n if (mostVisible && mostVisible === sectionId && visibilityPercentage > 50) {\n NavigationController.handleNavigation(sectionId);\n } else if (!mostVisible) {\n const visibleGroup = SecondaryNavData.getCurrentlyVisibleGroup();\n if (visibleGroup) {\n GroupVisibilityManager.updateGroupVisibility(visibleGroup);\n } else {\n setTimeout(() => {\n if (!SecondaryNavUtils.checkIfAnySectionVisible()) {\n NavLinkManager.setAllNavLinksInactive();\n GroupVisibilityManager.updateGroupVisibility(null);\n }\n }, 10);\n }\n }\n }\n });\n }\n\n private static finalizeInitialization(sectionCount: number): void {\n scrollTrackingInitialized = true;\n \n setTimeout(() => {\n isInitialLoad = false;\n NavigationController.checkInitialGroupVisibility();\n }, 500);\n }\n}\n\n// ===============================\n// MAIN EXECUTION\n// ===============================\nconst secondaryNavItems = SecondaryNavData.getSecondaryNavItems();\nconsole.log(secondaryNavItems);\n\ndocument.addEventListener('DOMContentLoaded', () => {\n setTimeout(() => {\n cachedSecondaryNavItems = null;\n isInitialLoad = true;\n \n SecondaryNavInitializer.initSecondarynav();\n \n setTimeout(() => {\n SecondaryNavInitializer.initSecondarynavScroll();\n }, 300);\n }, 200);\n});"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["secondaryNavItems"]
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[data-tab-link-active=true]{border-right-color:#404040;background-color:#f8f8f9;opacity:1}[data-tab-content-active]{display:none}[data-tab-content-active=true]{display:block}[data-tab-content-active=false]{display:none}[data-nav-element=mover]{height:0;overflow:hidden}[data-nav-element=overlay]{opacity:0;display:none}[data-nav-element=wrapper]{top:100px}[data-nav-toggle=main-menu]{z-index:10!important}[data-mobile-nav=main-menu]{z-index:999}[data-nav-element=mover]{border-radius:0 0 12px 12px;box-shadow:#00000008 0 12px 16px 6px}[data-dropdown-item],[data-dropdown-item=resources],[data-dropdown-item=company]{width:100%}[data-desktop-content]{display:none}@media (max-width: 992px){[data-desktop-content]{display:block}}.announcement-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal{display:none;flex-direction:column;height:100%;bottom:0;justify-content:center;gap:4px;padding-left:20px;padding-right:20px}span.swiper-pagination-bullet{width:6px;height:6px;background:#fffc;pointer-events:auto}span.swiper-pagination-bullet.swiper-pagination-bullet-active{background:#fff}@media screen and (max-width: 1024px){.announcement-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal{left:-16px}}[navigation-scrolled=true]{transform:translateY(-40px);box-shadow:#00000008 0 12px 16px 10px}[announcementbar=false]{transform:translateY(-40px)!important}[navigation-scrolled-menu=false]{top:0}[navigation-scrolled=false]{transform:translateY(0)}@media screen and (max-width: 991px){[navigation-scrolled=true]{transform:translateY(-50px)}[navigation-scrolled-menu=true]{top:46px}[announcementbar=false]{transform:translateY(-46px)!important}}
|
|
1
|
+
[data-tab-link-active=true]{border-right-color:#404040;background-color:#f8f8f9;opacity:1}[data-tab-content-active]{display:none}[data-tab-content-active=true]{display:block}[data-tab-content-active=false]{display:none}[data-nav-element=mover]{height:0;overflow:hidden}[data-nav-element=overlay]{opacity:0;display:none}[data-nav-element=wrapper]{top:100px}[data-nav-toggle=main-menu]{z-index:10!important}[data-mobile-nav=main-menu]{z-index:999}[data-nav-element=mover]{border-radius:0 0 12px 12px;box-shadow:#00000008 0 12px 16px 6px}[data-dropdown-item],[data-dropdown-item=resources],[data-dropdown-item=company]{width:100%}[data-desktop-content]{display:none}@media (max-width: 992px){[data-desktop-content]{display:block}}.announcement-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal{display:none;flex-direction:column;height:100%;bottom:0;justify-content:center;gap:4px;padding-left:20px;padding-right:20px}span.swiper-pagination-bullet{width:6px;height:6px;background:#fffc;pointer-events:auto}span.swiper-pagination-bullet.swiper-pagination-bullet-active{background:#fff}@media screen and (max-width: 1024px){.announcement-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal{left:-16px}}[navigation-scrolled=true]{transform:translateY(-40px);box-shadow:#00000008 0 12px 16px 10px}[announcementbar=false]{transform:translateY(-40px)!important}[navigation-scrolled-menu=false]{top:0}[navigation-scrolled=false]{transform:translateY(0)}@media screen and (max-width: 991px){[navigation-scrolled=true]{transform:translateY(-50px)}[navigation-scrolled-menu=true]{top:46px}[announcementbar=false]{transform:translateY(-46px)!important}}[fynd-secondary-nav=link]{border-bottom:1px solid #0000;border-top-left-radius:6px;border-top-right-radius:6px;padding:.65rem 1.5rem;transition-property:all;transition-duration:.3s;transition-timing-function:ease;cursor:pointer;user-select:none;white-space:nowrap}[fynd-secondary-navlink-active=true]{background-color:#f2f2f2;border-bottom-color:#000}[fynd-secondary-nav=wrapper]{display:none}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/navigation/style.css"],
|
|
4
|
-
"sourcesContent": ["[data-tab-link-active=\"true\"] {\n border-right-color: #404040;\n background-color: #f8f8f9;\n opacity: 1;\n}\n\n\n\n[data-tab-content-active] {\n display: none;\n}\n\n[data-tab-content-active=\"true\"] {\n display: block;\n}\n\n[data-tab-content-active=\"false\"] {\n display: none;\n}\n\n[data-nav-element=\"mover\"] {\n height: 0;\n overflow: hidden;\n}\n\n[data-nav-element=\"overlay\"] {\n opacity: 0;\n display: none;\n}\n\n[data-nav-element=\"wrapper\"] {\n top: 100px;\n}\n[data-nav-toggle=\"main-menu\"]{\nz-index: 10 !important; /* z-index: 999; if we need to show in nested menu too */\n \n \n}\n\n[data-mobile-nav=\"main-menu\"] {\n z-index: 999; /* z-index: 999; if we need to show in nested menu too */\n}\n\n[data-nav-element=\"mover\"] {\n border-radius: 0px 0px 12px 12px;\n box-shadow: rgba(0, 0, 0, 0.03) 0px 12px 16px 6px;\n}\n\n[data-dropdown-item] {\n width: 100%;\n}\n\n[data-dropdown-item=\"resources\"] {\n width: 100%;\n}\n\n[data-dropdown-item=\"company\"] {\n width: 100%;\n}\n\n[data-desktop-content] {\n display: none;\n}\n\n@media (max-width: 992px) {\n [data-desktop-content] {\n display: block;\n }\n}\n\n/* announcement bar */\n\n.announcement-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal {\n display: none;\n flex-direction: column;\n height: 100%;\n bottom: 0px;\n justify-content: center;\n gap: 4px;\n padding-left: 20px;\n padding-right: 20px;\n}\n\nspan.swiper-pagination-bullet {\n width: 6px;\n height: 6px;\n background: rgba(255, 255, 255, 0.80);\n pointer-events: auto;\n}\n\nspan.swiper-pagination-bullet.swiper-pagination-bullet-active {\n background: white;\n}\n\n@media screen and (max-width: 1024px) {\n .announcement-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal {\n left: -16px;\n }\n}\n\n\n/* navigation scrolled up */\n[navigation-scrolled=\"true\"] {\n transform: translateY(-40px);\n box-shadow: rgba(0, 0, 0, 0.03) 0px 12px 16px 10px;\n}\n[announcementbar=\"false\"]{\n transform: translateY(-40px) !important;\n}\n[navigation-scrolled-menu=\"false\"] {\n top: 0px;\n }\n\n[navigation-scrolled=\"false\"] {\n transform: translateY(0);\n}\n\n@media screen and (max-width: 991px) {\n [navigation-scrolled=\"true\"] {\n transform: translateY(-50px);\n }\n\n [navigation-scrolled-menu=\"true\"] {\n top: 46px;\n }\n\n[announcementbar=\"false\"]{\n transform: translateY(-46px) !important;\n}\n}"],
|
|
5
|
-
"mappings": ";AAAA,CAAC;AACC,sBAAoB;AACpB,oBAAkB;AAClB,WAAS;AACX;AAIA,CAAC;AACC,WAAS;AACX;AAEA,CAAC;AACC,WAAS;AACX;AAEA,CAAC;AACC,WAAS;AACX;AAEA,CAAC;AACC,UAAQ;AACR,YAAU;AACZ;AAEA,CAAC;AACC,WAAS;AACT,WAAS;AACX;AAEA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACD,WAAS;AAGT;AAEA,CAAC;AACC,WAAS;AACX;AAEA,CAAC;AACC,iBAAe,IAAI,IAAI,KAAK;AAC5B,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,KAAK,KAAK;AAChD;AAEA,CAAC;AACC,SAAO;AACT;AAEA,CAAC;AACC,SAAO;AACT;AAEA,CAAC;AACC,SAAO;AACT;AAEA,CAAC;AACC,WAAS;AACX;AAEA,OAAO,CAAC,SAAS,EAAE;AACjB,GAAC;AACC,aAAS;AACX;AACF;AAIA,CAAC,uBAAuB,CAAC,2BAA2B,CAAC,yBAAyB,CAAC;AAC7E,WAAS;AACT,kBAAgB;AAChB,UAAQ;AACR,UAAQ;AACR,mBAAiB;AACjB,OAAK;AACL,gBAAc;AACd,iBAAe;AACjB;AAEA,IAAI,CAAC;AACH,SAAO;AACP,UAAQ;AACR,cAAY,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,kBAAgB;AAClB;AAEA,IAAI,CAPC,wBAOwB,CAAC;AAC5B,cAAY;AACd;AAEA,OAAO,OAAO,IAAI,CAAC,SAAS,EAAE;AAC5B,GAvBD,uBAuByB,CAvBD,2BAuB6B,CAvBD,yBAuB2B,CAvBD;AAwB3E,UAAM;AACR;AACF;AAIA,CAAC;AACC,aAAW,WAAW;AACtB,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,KAAK,KAAK;AAChD;AACA,CAAC;AACC,aAAW,WAAW;AACxB;AACA,CAAC;AACG,OAAK;AACP;AAEF,CAAC;AACC,aAAW,WAAW;AACxB;AAEA,OAAO,OAAO,IAAI,CAAC,SAAS,EAAE;AAC5B,GAAC;AACC,eAAW,WAAW;AACxB;AAEA,GAAC;AACC,SAAK;AACP;AAEF,GAAC;AACC,eAAW,WAAW;AACxB;AACA;",
|
|
4
|
+
"sourcesContent": ["[data-tab-link-active=\"true\"] {\n border-right-color: #404040;\n background-color: #f8f8f9;\n opacity: 1;\n}\n\n\n\n[data-tab-content-active] {\n display: none;\n}\n\n[data-tab-content-active=\"true\"] {\n display: block;\n}\n\n[data-tab-content-active=\"false\"] {\n display: none;\n}\n\n[data-nav-element=\"mover\"] {\n height: 0;\n overflow: hidden;\n}\n\n[data-nav-element=\"overlay\"] {\n opacity: 0;\n display: none;\n}\n\n[data-nav-element=\"wrapper\"] {\n top: 100px;\n}\n[data-nav-toggle=\"main-menu\"]{\nz-index: 10 !important; /* z-index: 999; if we need to show in nested menu too */\n \n \n}\n\n[data-mobile-nav=\"main-menu\"] {\n z-index: 999; /* z-index: 999; if we need to show in nested menu too */\n}\n\n[data-nav-element=\"mover\"] {\n border-radius: 0px 0px 12px 12px;\n box-shadow: rgba(0, 0, 0, 0.03) 0px 12px 16px 6px;\n}\n\n[data-dropdown-item] {\n width: 100%;\n}\n\n[data-dropdown-item=\"resources\"] {\n width: 100%;\n}\n\n[data-dropdown-item=\"company\"] {\n width: 100%;\n}\n\n[data-desktop-content] {\n display: none;\n}\n\n@media (max-width: 992px) {\n [data-desktop-content] {\n display: block;\n }\n}\n\n/* announcement bar */\n\n.announcement-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal {\n display: none;\n flex-direction: column;\n height: 100%;\n bottom: 0px;\n justify-content: center;\n gap: 4px;\n padding-left: 20px;\n padding-right: 20px;\n}\n\nspan.swiper-pagination-bullet {\n width: 6px;\n height: 6px;\n background: rgba(255, 255, 255, 0.80);\n pointer-events: auto;\n}\n\nspan.swiper-pagination-bullet.swiper-pagination-bullet-active {\n background: white;\n}\n\n@media screen and (max-width: 1024px) {\n .announcement-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal {\n left: -16px;\n }\n}\n\n\n/* navigation scrolled up */\n[navigation-scrolled=\"true\"] {\n transform: translateY(-40px);\n box-shadow: rgba(0, 0, 0, 0.03) 0px 12px 16px 10px;\n}\n[announcementbar=\"false\"]{\n transform: translateY(-40px) !important;\n}\n[navigation-scrolled-menu=\"false\"] {\n top: 0px;\n }\n\n[navigation-scrolled=\"false\"] {\n transform: translateY(0);\n}\n\n@media screen and (max-width: 991px) {\n [navigation-scrolled=\"true\"] {\n transform: translateY(-50px);\n }\n\n [navigation-scrolled-menu=\"true\"] {\n top: 46px;\n }\n\n[announcementbar=\"false\"]{\n transform: translateY(-46px) !important;\n}\n}\n\n/* secondary navigation */\n\n[fynd-secondary-nav=\"link\"]{\n border-bottom: 1px solid #0000;\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n padding-top: 0.65rem;\n padding-bottom: 0.65rem;\n transition-property: all;\n transition-duration: 300ms;\n transition-timing-function: ease;\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n[fynd-secondary-navlink-active=\"true\"]{\n background-color: #f2f2f2;\n border-bottom-color: #000;\n}\n\n[fynd-secondary-nav=\"wrapper\"] {\n display: none;\n}"],
|
|
5
|
+
"mappings": ";AAAA,CAAC;AACC,sBAAoB;AACpB,oBAAkB;AAClB,WAAS;AACX;AAIA,CAAC;AACC,WAAS;AACX;AAEA,CAAC;AACC,WAAS;AACX;AAEA,CAAC;AACC,WAAS;AACX;AAEA,CAAC;AACC,UAAQ;AACR,YAAU;AACZ;AAEA,CAAC;AACC,WAAS;AACT,WAAS;AACX;AAEA,CAAC;AACC,OAAK;AACP;AACA,CAAC;AACD,WAAS;AAGT;AAEA,CAAC;AACC,WAAS;AACX;AAEA,CAAC;AACC,iBAAe,IAAI,IAAI,KAAK;AAC5B,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,KAAK,KAAK;AAChD;AAEA,CAAC;AACC,SAAO;AACT;AAEA,CAAC;AACC,SAAO;AACT;AAEA,CAAC;AACC,SAAO;AACT;AAEA,CAAC;AACC,WAAS;AACX;AAEA,OAAO,CAAC,SAAS,EAAE;AACjB,GAAC;AACC,aAAS;AACX;AACF;AAIA,CAAC,uBAAuB,CAAC,2BAA2B,CAAC,yBAAyB,CAAC;AAC7E,WAAS;AACT,kBAAgB;AAChB,UAAQ;AACR,UAAQ;AACR,mBAAiB;AACjB,OAAK;AACL,gBAAc;AACd,iBAAe;AACjB;AAEA,IAAI,CAAC;AACH,SAAO;AACP,UAAQ;AACR,cAAY,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAChC,kBAAgB;AAClB;AAEA,IAAI,CAPC,wBAOwB,CAAC;AAC5B,cAAY;AACd;AAEA,OAAO,OAAO,IAAI,CAAC,SAAS,EAAE;AAC5B,GAvBD,uBAuByB,CAvBD,2BAuB6B,CAvBD,yBAuB2B,CAvBD;AAwB3E,UAAM;AACR;AACF;AAIA,CAAC;AACC,aAAW,WAAW;AACtB,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,KAAK,KAAK;AAChD;AACA,CAAC;AACC,aAAW,WAAW;AACxB;AACA,CAAC;AACG,OAAK;AACP;AAEF,CAAC;AACC,aAAW,WAAW;AACxB;AAEA,OAAO,OAAO,IAAI,CAAC,SAAS,EAAE;AAC5B,GAAC;AACC,eAAW,WAAW;AACxB;AAEA,GAAC;AACC,SAAK;AACP;AAEF,GAAC;AACC,eAAW,WAAW;AACxB;AACA;AAIA,CAAC;AACC,iBAAe,IAAI,MAAM;AACzB,0BAAwB;AACxB,2BAAyB;AACzB,gBAAc;AACd,iBAAe;AACf,eAAa;AACb,kBAAgB;AAChB,uBAAqB;AACrB,uBAAqB;AACrB,8BAA4B;AAC5B,UAAQ;AACR,eAAa;AACb,eAAa;AACf;AACA,CAAC;AACC,oBAAkB;AAClB,uBAAqB;AACvB;AAEA,CAAC;AACC,WAAS;AACX;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED