@zanichelli/zanichelli-it-frontend-kit 1.4.0 → 1.4.1

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.
Files changed (26) hide show
  1. package/dist/cjs/zanit-back-to-top.zanit-menubar.zanit-mobile-menubar.zanit-search-form.entry.cjs.js.map +1 -1
  2. package/dist/cjs/zanit-back-to-top_4.cjs.entry.js +1 -1
  3. package/dist/cjs/zanit-back-to-top_4.cjs.entry.js.map +1 -1
  4. package/dist/collection/components/menubar/search-form/suggestions.js +1 -1
  5. package/dist/collection/components/menubar/search-form/suggestions.js.map +1 -1
  6. package/dist/components/{p-CmameXB-.js → p-BlgoYKK3.js} +3 -3
  7. package/dist/components/{p-CmameXB-.js.map → p-BlgoYKK3.js.map} +1 -1
  8. package/dist/components/{p-DNk0AZSw.js → p-DqMqkNnl.js} +3 -3
  9. package/dist/components/{p-DNk0AZSw.js.map → p-DqMqkNnl.js.map} +1 -1
  10. package/dist/components/zanit-menubar.js +2 -2
  11. package/dist/components/zanit-mobile-menubar.js +1 -1
  12. package/dist/components/zanit-search-form.js +1 -1
  13. package/dist/esm/zanit-back-to-top.zanit-menubar.zanit-mobile-menubar.zanit-search-form.entry.js.map +1 -1
  14. package/dist/esm/zanit-back-to-top_4.entry.js +1 -1
  15. package/dist/esm/zanit-back-to-top_4.entry.js.map +1 -1
  16. package/dist/zanichelli-it-frontend-kit/{p-0f6b9e37.entry.js → p-62cc02c2.entry.js} +2 -2
  17. package/dist/zanichelli-it-frontend-kit/{p-0f6b9e37.entry.js.map → p-62cc02c2.entry.js.map} +1 -1
  18. package/dist/zanichelli-it-frontend-kit/zanichelli-it-frontend-kit.esm.js +1 -1
  19. package/dist/zanichelli-it-frontend-kit/zanit-back-to-top.zanit-menubar.zanit-mobile-menubar.zanit-search-form.entry.esm.js.map +1 -1
  20. package/package.json +1 -1
  21. package/www/build/{p-0f6b9e37.entry.js → p-62cc02c2.entry.js} +2 -2
  22. package/www/build/{p-0f6b9e37.entry.js.map → p-62cc02c2.entry.js.map} +1 -1
  23. package/www/build/{p-9134b2b7.js → p-fe3aec03.js} +1 -1
  24. package/www/build/zanichelli-it-frontend-kit.esm.js +1 -1
  25. package/www/build/zanit-back-to-top.zanit-menubar.zanit-mobile-menubar.zanit-search-form.entry.esm.js.map +1 -1
  26. package/www/index.html +1 -1
@@ -1,2 +1,2 @@
1
- import{r as e,a as t,h as i,H as a,F as r,c as n}from"./p-DSdvvVFj.js";const s=".sc-zanit-back-to-top-h{opacity:1;transition:all 0.2s linear;visibility:visible}.hidden.sc-zanit-back-to-top-h{opacity:0;visibility:hidden}.sc-zanit-back-to-top-h .z-fab.sc-zanit-back-to-top{--color-primary01:var(--gray950);outline:1px solid var(--color-white)}";const o=class{constructor(t){e(this,t)}resizeObserver;mutationObserver;get host(){return t(this)}showFab=false;currentPageHeight;isMobile=false;pageMinHeight=1600;scrollMinHeight=800;handleScroll(){this.updateFabVisibility()}handleResize=()=>{const e=document.body.scrollHeight;if(e!==this.currentPageHeight){this.currentPageHeight=e;this.updateFabVisibility()}};connectedCallback(){this.currentPageHeight=document.body.scrollHeight;this.resizeObserver=new ResizeObserver(this.handleResize);this.resizeObserver.observe(document.body);this.mutationObserver=new MutationObserver(this.handleResize);this.mutationObserver.observe(document.body,{childList:true,subtree:true});this.updateFabVisibility();const e=window.matchMedia("(width < 768px)");this.isMobile=e.matches;e.onchange=e=>{this.isMobile=e.matches}}disconnectedCallback(){this.resizeObserver.disconnect();this.mutationObserver.disconnect()}updateFabVisibility(){this.showFab=this.currentPageHeight>this.pageMinHeight&&window.scrollY>this.scrollMinHeight}scroll(){window.scrollTo({top:0,behavior:"smooth"})}render(){return i(a,{key:"3abd8ab70075d8042285d8ed6fab0729c4b5ec42",class:{hidden:!this.showFab},"aria-hidden":this.showFab?"false":"true"},i("button",{key:"11b149d5f1d75720d4bdd329e9897da782092ed1",class:{"z-fab":true,"z-fab-extended":!this.isMobile},onClick:()=>this.scroll()},i("z-icon",{key:"fbdff1419da6d20ab594ffd11c58d7bf25fb7aa6",name:"back-top"}),i("span",{key:"0292f761b5459c372f003ed514abbd3403570c75"},"Torna su")))}};o.style=s;const h=(e,t)=>t.composedPath().filter((e=>e!==document&&e!==window.window)).some((t=>e.contains(t)));const c=(e,t)=>{e.tabIndex=-1;t.tabIndex=0;t.focus({preventScroll:true})};const d=e=>e.key==="ArrowUp";const u=e=>e.key==="ArrowDown";const l=e=>e.key==="Tab";const m=e=>e.key==="Escape";const p="default";const b={id:p,label:p};const f=e=>{const t=e.reduce(((e,t)=>{const i=e.find((({group:e})=>e.id===(t.group?.id||b.id)));if(!i){e.push({group:t.group??b,items:[t]})}else{i.items.push(t)}return e}),[]);return t.sort(((e,t)=>e.group.id===p?1:t.group.id===p?-1:0))};const g=({controlledBy:e,items:t,currentPath:a=[],onItemKeyDown:r})=>{if(!t?.length){return null}const n=f(t);const s=t=>a.includes(e)&&a.includes(t.id);return i("div",{class:"menu-wrapper",role:"none"},i("div",{class:"menu","aria-labelledby":e??undefined,role:"menu"},n.map((({group:e,items:t})=>i("div",{class:{group:true,highlight:t.some((e=>e.highlight))}},e.id!==p?i("div",{class:"group-name",id:e.id},e.label):n.length>1?i("div",{class:"group-name"}):null,i("ul",{class:"menu-list",role:"group","aria-labelledby":e.id!==p?e.id:undefined},t.map((e=>i("li",{role:"none"},e.href&&i("a",{class:{"menu-item":true,active:s(e)},href:e.href,role:"menuitem",tabIndex:-1,"aria-current":s(e)?"page":"false",onKeyDown:e=>r(e),target:e.target},e.label))))))))))};var w;(function(e){e["DEV"]="dev";e["TEST"]="test";e["PROD"]="prod"})(w||(w={}));const x={dev:"https://zanichelli-shop-dev.s3.eu-west-1.amazonaws.com",test:"https://zanichelli-shop-test.s3.eu-west-1.amazonaws.com",prod:"https://zanichelli-shop.s3.eu-west-1.amazonaws.com"};async function y(e){try{const t=await fetch(`${x[e]}/categories.json`);if(!t.ok){throw new Error(`HTTP ${t.status}`)}return await t.json()}catch(e){console.error("Error fetching subjects:",e);return{}}}const v=":host{position:relative;z-index:2;display:flex;width:100%;background-color:#fff;color:var(--gray900);font-family:var(--font-family-sans)}:host,*,::before,::after{box-sizing:border-box}*:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}ul{padding:0;margin:0;list-style:none}a{color:var(--gray900);cursor:pointer;text-decoration:none}button{all:unset;cursor:pointer}:host nav{width:100%}.shadow-wrapper{position:relative;z-index:1;display:flex;width:100%}.shadow-wrapper::after{position:absolute;top:0;right:0;width:100%;height:100%;background:transparent;box-shadow:var(--shadow-1);content:'';pointer-events:none}.width-limiter{position:relative;display:flex;width:100%;max-width:var(--zanit-menubar-max-width, 1366px);margin:0 auto}.shadow-wrapper+.shadow-wrapper{z-index:0}.sub-menubar>ul{gap:28px}.width-limiter>ul,.sub-menubar>ul{position:relative;z-index:3;display:flex;width:100%;align-items:center;padding:0 var(--grid-margin);margin-right:auto;margin-left:auto;gap:20px}.shadow-wrapper>.width-limiter,.shadow-wrapper>ul{width:100%;max-width:var(--zanit-menubar-max-width, 1366px)}ul.menubar{height:3rem;padding-right:0}.menubar z-ghost-loading{display:block;width:120px;height:1.25rem}.menubar>li[role='separator']{width:1px;height:1.25rem;background-color:#000}.menubar-item{position:relative;display:flex;align-items:center;padding:14px 0;font-size:1rem;gap:8px;line-height:1.25rem}.menubar .menubar-item{text-transform:uppercase}.menubar-item [data-text]{display:flex;flex-direction:column}.menubar-item.active>[data-text],.menubar-item:hover>[data-text],.menubar-item:focus:focus-visible>[data-text]{font-weight:var(--font-bd)}.menubar-item>[data-text]::after{height:0;content:attr(data-text) / '';font-weight:var(--font-bd);letter-spacing:normal;pointer-events:none;user-select:none;visibility:hidden}.sub-menubar .menubar-item.active::after{position:absolute;z-index:-1;bottom:0;left:-4px;width:calc(100% + 8px);height:4px;background-color:var(--red500);content:''}zanit-search-form{margin-left:auto}";const k=".menu-wrapper{width:100%;background-color:#fff}.menu{position:relative;display:flex;width:100%;flex-direction:column;gap:32px 0}.menu .group{display:flex;flex-direction:column}.menu .group .group-name{border-bottom:1px solid currentcolor;margin-bottom:4px;color:var(--red500);font-size:0.875rem;font-weight:var(--font-md)}.menu .group .menu-list{display:flex;flex-direction:column;gap:8px}.menu .group .menu-list .menu-item{display:block;border-bottom:2px solid transparent;font-size:0.875rem;font-weight:var(--font-md)}.menu .menu-list .menu-item.active,.menu .menu-list .menu-item:hover{border-bottom-color:var(--red500)}.menu .group.highlight .menu-list .menu-item{font-size:1rem}@media (width >= 768px){.menu-wrapper{position:absolute;top:100%;left:0;display:flex;justify-content:center;box-shadow:var(--shadow-1)}.menu{display:grid;width:100%;max-width:var(--zanit-menubar-max-width, 1366px);padding:16px var(--grid-margin);gap:0 24px;grid-auto-columns:minmax(0, max-content);grid-auto-flow:column;grid-template-rows:minmax(0, max-content) max-content}.menu .group{display:grid;grid-row:1 / -1;grid-template-columns:1fr;grid-template-rows:subgrid}@supports not (grid-template-rows: subgrid){.menu .group{grid-template-rows:repeat(auto-fit, minmax(0, max-content))}}.menu .group .group-name{border:none;margin-bottom:16px}.menu .group .menu-list .menu-item{font-size:1rem}.menu .group.highlight .menu-list .menu-item{font-size:1.5rem}}";const z=class{constructor(t){e(this,t)}get host(){return t(this)}items=[];openMenu=undefined;openNavbar=undefined;currentPath=[];isMobile=false;loading=false;data;current=undefined;searchQuery=undefined;searchEnv=w.PROD;searchArea;timerId;async parseData(e){if(!e){return}if(e instanceof URL){this.items=await this.fetchData(e)}else if(e instanceof Promise){this.loading=true;this.items=await e;this.loading=false}else if(typeof e==="string"){try{this.items=JSON.parse(e);if(!Array.isArray(this.items)||!this.items?.every((e=>e))){throw new Error("Expected an array of MenubarItem objects.")}}catch{let t;try{t=new URL(e)}catch{throw new Error("Invalid string provided for `data` property: not a valid url or JSON.")}this.items=await this.fetchData(t)}}else if(Array.isArray(e)&&e.every((e=>e))){this.items=e}else{throw new Error("Invalid `data` property value. Expected an url, a JSON or an array/promise of MenubarItem objects.")}}onItemsChange(){this.initTabindex()}onCurrentChange(){this.currentPath=this.current?.split("/").filter(Boolean)||[]}async connectedCallback(){const e=window.matchMedia("(width < 768px)");this.isMobile=e.matches;e.onchange=e=>{this.isMobile=e.matches;this.initTabindex();this.openMenu=undefined};await this.parseData(this.data);this.onCurrentChange();this.initTabindex()}handleOutsideClick(e){if(!this.openMenu||h(this.host,e)){return}this.openMenu=undefined}handleKeydown(e){switch(e.key){case"Escape":{if(this.openMenu){e.preventDefault();const t=this.openMenu;this.openMenu=undefined;setTimeout((()=>{const e=this.host.shadowRoot.getElementById(t);if(e){e.focus()}}),0)}break}case"Tab":this.openMenu=undefined;break}}handleMouseover(){clearTimeout(this.timerId)}handleMouseout(e){this.timerId=window.setTimeout((()=>{if(!this.openMenu||h(this.host,e)){return}this.openMenu=undefined}),500)}handleFocusout(e){const t=e.relatedTarget;if(!this.openMenu||this.host.shadowRoot.querySelector(".menu")?.contains(t)){return}this.openMenu=undefined}async fetchData(e){try{this.loading=true;const t=await(await fetch(e)).json();this.loading=false;if(!Array.isArray(t)||!t.every((e=>e))){throw new Error("Invalid data structure. Expected an array of MenuItem objects.")}return t}catch(e){this.loading=false;console.error("Error fetching menubar data:",e);throw new Error("Failed to fetch menubar data from the provided URL.",{cause:e})}}initTabindex(){setTimeout((()=>{this.host.shadowRoot.querySelectorAll('[role="menubar"]')?.forEach((e=>{e.querySelectorAll('[role="menuitem"]')?.forEach(((e,t)=>e.setAttribute("tabindex",t===0?"0":"-1")))}))}),100)}isActive(e){if(this.currentPath.length===0){return false}if(this.currentPath.includes(e.id)){return true}if(e.menuItems?.length){return e.menuItems.some((e=>e.id===this.current))}if(e.navbarItems?.length){const t=e.navbarItems.some((e=>this.isActive(e)));if(t){return true}}return false}showMenu(e){this.openMenu=undefined;if(!e.menuItems?.length){return}this.openMenu=e.id}getParentMenubarElements(e){return Array.from(e?.closest('[role="menubar"]')?.querySelectorAll(':scope > li a[role="menuitem"]')??[])}focusPreviousItem(e){this.openMenu=undefined;const t=this.getParentMenubarElements(e);const i=t.indexOf(e);const a=t[(i-1+t.length)%t.length];c(e,a);if(a.ariaHasPopup==="true"&&this.openMenu){this.openMenu=a.id}}focusNextItem(e){this.openMenu=undefined;const t=this.getParentMenubarElements(e);const i=t.indexOf(e);const a=t[(i+1)%t.length];c(e,a);if(a.ariaHasPopup==="true"&&this.openMenu){this.openMenu=a.id}}handleItemKeydown(e,t){const i=e.target;switch(e.key){case"Home":{e.preventDefault();e.stopPropagation();const t=this.getParentMenubarElements(i)[0];c(i,t);break}case"End":{e.preventDefault();e.stopPropagation();const t=this.getParentMenubarElements(i).pop();c(i,t);break}case"ArrowUp":{if(!t.menuItems?.length){break}e.preventDefault();e.stopPropagation();this.openMenu=t.id;setTimeout((()=>{const e=Array.from(this.host.shadowRoot.querySelectorAll(`[aria-labelledby=${t.id}] [role="menuitem"]`));c(i,e[e.length-1])}),100);break}case"ArrowRight":{e.preventDefault();e.stopPropagation();this.focusNextItem(i);break}case"ArrowDown":{if(!t.menuItems?.length){break}this.openItemMenu(t);break}case"ArrowLeft":{e.preventDefault();e.stopPropagation();this.focusPreviousItem(i);break}case" ":{e.preventDefault();e.stopPropagation();if(this.openMenu===t.id){this.openMenu=undefined;break}else if(t.menuItems?.length){this.openItemMenu(t);break}}}}getPreviousGroup(e){const t=Array.from(e?.closest('[role="menu"]')?.querySelectorAll('[role="group"]')??[]);const i=t.indexOf(e);return t[i-1]}getNextGroup(e){const t=Array.from(e?.closest('[role="menu"]')?.querySelectorAll('[role="group"]')??[]);const i=t.indexOf(e);return t[i+1]}openItemMenu(e){this.openMenu=e.id;setTimeout((()=>{const t=this.host.shadowRoot.querySelector(`[aria-labelledby=${e.id}] [role="menuitem"]`);t.tabIndex=0;t.focus({preventScroll:true})}),100)}handleMenuKeydown(e){const t=e.target;const i=Array.from(t.closest('[role="menu"]')?.querySelectorAll('[role="menuitem"]')??[]);const a=i.indexOf(t);switch(e.key){case"ArrowUp":{e.preventDefault();e.stopPropagation();const r=i[a-1]||i[i.length-1];c(t,r);break}case"ArrowRight":{e.preventDefault();e.stopPropagation();const i=t.closest("[role=group]");const a=this.getNextGroup(i);if(!a){t.tabIndex=-1;const e=t.closest('[role="menu"][aria-labelledby]').getAttribute("aria-labelledby");const i=this.host.shadowRoot.getElementById(e);this.focusNextItem(i);break}const r=a.querySelectorAll('[role="menuitem"]')??[];c(t,r[0]);break}case"ArrowDown":{e.preventDefault();e.stopPropagation();const r=i[a+1]||i[0];c(t,r);break}case"ArrowLeft":{e.preventDefault();e.stopPropagation();const i=t.closest("[role=group]");const a=this.getPreviousGroup(i);if(!a){t.tabIndex=-1;const e=t.closest('[role="menu"][aria-labelledby]').getAttribute("aria-labelledby");const i=this.host.shadowRoot.getElementById(e);this.focusPreviousItem(i);break}const r=a.querySelectorAll('[role="menuitem"]')??[];c(t,r[0]);break}case"Home":e.preventDefault();e.stopPropagation();c(t,i[0]);break;case"End":e.preventDefault();e.stopPropagation();c(t,i[i.length-1]);break}}render(){if(this.isMobile){return i("zanit-mobile-menubar",{items:this.items,currentPath:this.currentPath,searchQuery:this.searchQuery,loading:this.loading,searchArea:this.searchArea,searchEnv:this.searchEnv})}return i("nav",{"aria-label":"Zanichelli.it"},i("div",{class:"shadow-wrapper"},i("div",{class:"width-limiter"},i("ul",{class:"menubar",role:"menubar","aria-label":"Zanichelli.it"},this.loading&&[...new Array(4)].map(((e,t)=>i(r,null,i("li",{role:"none"},i("div",{class:"menubar-item"},i("z-ghost-loading",null))),t<3&&i("li",{role:"separator"})))),this.items?.map(((e,t)=>i(r,null,i("li",{role:"none"},i("a",{class:{"menubar-item":true,active:this.isActive(e)},href:e.href,id:e.id,role:"menuitem",tabIndex:-1,"aria-expanded":e.menuItems?.length?this.openMenu===e.id?"true":"false":undefined,"aria-haspopup":e.menuItems?.length?"true":"false","aria-current":this.current.includes(e.id)?"page":"false",onPointerOver:()=>this.showMenu(e),onKeyDown:t=>this.handleItemKeydown(t,e),target:e.target},i("span",{"data-text":e.label},e.label),e.menuItems?.length>0&&i("z-icon",{name:this.openMenu===e.id?"chevron-up":"chevron-down",width:"0.875rem",height:"0.875rem"}))),t<this.items?.length-1&&i("li",{role:"separator"}))))),i("zanit-search-form",{searchQuery:this.searchQuery,searchArea:this.searchArea,searchEnv:this.searchEnv,onResetSearch:()=>this.searchQuery=undefined})),this.items.map((e=>this.openMenu===e.id&&i(g,{controlledBy:e.id,items:e.menuItems,currentPath:this.currentPath,onItemKeyDown:e=>this.handleMenuKeydown(e)})))),this.items?.filter((e=>this.isActive(e))).map((e=>e.navbarItems?.length&&i("nav",{class:{"sub-menubar":true,"shadow-wrapper":true},"aria-label":`Sezioni: ${e.label}`},i("ul",{role:"menubar"},e.navbarItems.map((t=>i(r,null,i("li",{role:"none"},i("a",{class:{"menubar-item":true,active:this.isActive(t)},href:t.href,id:t.id,role:"menuitem",tabIndex:-1,"aria-haspopup":t.menuItems?.length?"true":"false","aria-expanded":t.menuItems?.length?this.openMenu===t.id?"true":"false":undefined,"aria-current":this.current.includes(t.id)?"page":"false",onPointerOver:()=>this.showMenu(t),onKeyDown:e=>this.handleItemKeydown(e,t),target:e.target},i("span",null,t.label),t.menuItems?.length>0&&i("z-icon",{name:this.openMenu===t.id?"chevron-up":"chevron-down",width:"0.75rem",height:"0.75rem"}))))))),e.navbarItems.map((e=>this.openMenu===e.id&&i(g,{controlledBy:e.id,items:e.menuItems,currentPath:this.currentPath,onItemKeyDown:e=>this.handleMenuKeydown(e)})))))))}static get delegatesFocus(){return true}static get watchers(){return{data:["parseData"],items:["onItemsChange"],current:["onCurrentChange"]}}};z.style=v+k;const S=":host{position:relative;z-index:2;display:block;width:100%;max-width:100%;height:3rem;background-color:#fff;color:var(--gray900);fill:var(--gray900);font-family:var(--font-family-sans)}:host,*,::before,::after{box-sizing:border-box}*:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}ul{padding:0;margin:0;list-style:none}a{color:var(--gray900);cursor:pointer;text-decoration:none}button{all:unset;cursor:pointer}nav{display:flex;width:100%;align-items:center;padding-left:var(--grid-margin);gap:8px}nav::after{position:absolute;top:0;right:0;width:100%;height:100%;background:transparent;box-shadow:var(--shadow-1);content:'';pointer-events:none}z-logo{margin:8px 0}.mobile-menu{position:absolute;top:100%;left:0;display:flex;overflow:auto;width:100%;max-height:calc(100vh - 48px - var(--zanit-menubar-top-offset, 0px));flex-direction:column;padding:16px var(--grid-margin) 32px;background-color:#fff;box-shadow:var(--shadow-2);gap:8px}.mobile-menu li{width:100%}.mobile-menu .items-container{display:flex;min-height:256px;flex-direction:column;gap:8px}.mobile-menu .items-container z-ghost-loading{width:40%;height:1.2rem}.mobile-menu .items-container .menubar-item{display:block;width:100%;padding:8px 0;font-size:1rem;text-align:left}.mobile-menu .items-container li:not(:last-child) .menubar-item{border-bottom:1px solid #000}[role='menuitem'].parent{display:flex;width:fit-content;align-items:center;padding:0;border:none;font-size:0.875rem;gap:8px}zanit-search-form{margin-left:auto}";const C=".menu-wrapper{width:100%;background-color:#fff}.menu{position:relative;display:flex;width:100%;flex-direction:column;gap:32px 0}.menu .group{display:flex;flex-direction:column}.menu .group .group-name{border-bottom:1px solid currentcolor;margin-bottom:4px;color:var(--red500);font-size:0.875rem;font-weight:var(--font-md)}.menu .group .menu-list{display:flex;flex-direction:column;gap:8px}.menu .group .menu-list .menu-item{display:block;border-bottom:2px solid transparent;font-size:0.875rem;font-weight:var(--font-md)}.menu .menu-list .menu-item.active,.menu .menu-list .menu-item:hover{border-bottom-color:var(--red500)}.menu .group.highlight .menu-list .menu-item{font-size:1rem}@media (width >= 768px){.menu-wrapper{position:absolute;top:100%;left:0;display:flex;justify-content:center;box-shadow:var(--shadow-1)}.menu{display:grid;width:100%;max-width:var(--zanit-menubar-max-width, 1366px);padding:16px var(--grid-margin);gap:0 24px;grid-auto-columns:minmax(0, max-content);grid-auto-flow:column;grid-template-rows:minmax(0, max-content) max-content}.menu .group{display:grid;grid-row:1 / -1;grid-template-columns:1fr;grid-template-rows:subgrid}@supports not (grid-template-rows: subgrid){.menu .group{grid-template-rows:repeat(auto-fit, minmax(0, max-content))}}.menu .group .group-name{border:none;margin-bottom:16px}.menu .group .menu-list .menu-item{font-size:1rem}.menu .group.highlight .menu-list .menu-item{font-size:1.5rem}}";const A=class{constructor(t){e(this,t)}get host(){return t(this)}currentPath=[];items=[];searchQuery=undefined;loading=false;searchEnv=w.PROD;searchArea;lastCurrent=undefined;parentItem=undefined;menuItems=undefined;menuType=undefined;open;onItemsChange(){this.lastCurrent=this.currentPath?.length?this.currentPath[this.currentPath.length-1]:undefined;this.setupData(this.items)}setupData(e,t){if(this.lastCurrent===undefined){this.parentItem=undefined;this.menuType="menubar";this.menuItems=e;return}for(const i of e){if(i.id===this.lastCurrent){this.parentItem=t;this.menuType=i.menuItems?.length?"menu":"menubar";this.menuItems=i.menuItems||i.navbarItems;return}if(this.currentPath.length>1&&i.id===this.currentPath[this.currentPath.length-2]&&i.menuItems?.some((({id:e})=>e===this.lastCurrent))){this.parentItem=i;this.menuType=i.menuItems?.length?"menu":"menubar";this.menuItems=i.menuItems||i.navbarItems;return}if(i.navbarItems?.length){this.setupData(i.navbarItems,i)}}}get menuItemsElement(){return Array.from(this.host.shadowRoot.querySelectorAll('[role="menuitem"]'))}initTabindex(){this.menuItemsElement.forEach(((e,t)=>e.setAttribute("tabindex",t===0?"0":"-1")))}toggleMenu(){if(this.open){this.open=false}else{this.open=true;setTimeout((()=>{this.initTabindex();this.menuItemsElement[0]?.focus({preventScroll:true})}),200)}}handleItemKeydown(e){switch(e.key){case"ArrowUp":{e.preventDefault();e.stopPropagation();const t=this.menuItemsElement;const i=t.indexOf(e.target);const a=t[(i-1+t.length)%t.length];c(t[i],a);break}case"ArrowDown":{e.preventDefault();e.stopPropagation();const t=this.menuItemsElement;const i=t.indexOf(e.target);const a=t[(i+1)%t.length];c(t[i],a);break}case"Home":{e.preventDefault();e.stopPropagation();c(e.target,this.menuItemsElement[0]);break}case"End":{e.preventDefault();e.stopPropagation();c(e.target,this.menuItemsElement.pop());break}}}connectedCallback(){this.lastCurrent=this.currentPath?.length?this.currentPath[this.currentPath.length-1]:undefined;this.setupData(this.items)}handleOutsideClick(e){if(h(this.host,e)){return}this.open=false}handleKeydown(e){switch(e.key){case"Escape":this.open=false;break;case"Tab":if(h(this.host,e)){break}this.open=false;break}}handleFocusout(e){if(h(this.host,e)){return}this.open=false}render(){return i("nav",{key:"76079ce1e66f1b568f6e7eac1f67b91af0f2f48a","aria-label":"Zanichelli.it"},i("button",{key:"630b16be60aba3d7027fbe4b9e19e440cb454267",class:"burger-button",type:"button","aria-expanded":this.open?"true":"false","aria-controls":"mobile-menu","aria-label":this.open?"Chiudi menù":"Apri menù",onClick:()=>this.toggleMenu()},i("z-icon",{key:"4c86d84d421ab93fb1c815c5a667dd55ce8254ac",name:this.open?"multiply":"burger-menu",width:"1.5rem",height:"1.5rem"})),i("z-logo",{key:"03c7b8613698098cf3a1ff4b1b8d649cb7d5b92a",imageAlt:"Logo Zanichelli",link:"/",height:32,width:126}),i("zanit-search-form",{key:"5a1385991eebcf17ac8c275c8c69f6662f75e3b7",searchQuery:this.searchQuery,onResetSearch:()=>this.searchQuery=undefined,searchArea:this.searchArea,searchEnv:this.searchEnv}),this.open&&i("ul",{key:"bc627e55f902beaac658f02d90ed78836fde193b",class:"mobile-menu",role:"menubar"},!this.loading&&this.currentPath&&this.currentPath.length>0&&i("li",{key:"4708f9ee160d62a6cbf6333e11c1b9d02ae3d34c",role:"none"},i("a",{key:"9fd59125f8cb87f6c86108eea7ba79a04bc4d68c",class:"parent",href:this.parentItem?.href??"/",id:this.parentItem?.id??undefined,role:"menuitem",tabIndex:-1,onKeyDown:e=>this.handleItemKeydown(e),target:this.parentItem?.target},i("z-icon",{key:"615bc59a1f058a745bdadd90c6f51f9abc757df1",name:"arrow-left",width:"0.5rem",height:"0.5rem"}),i("span",{key:"66a80691639e97b2d7d7d61cc45f8b47dcdabafe"},this.parentItem?.label||"Home"))),this.loading?i("div",{class:"items-container",role:"none"},[...new Array(4)].map((()=>i("li",{role:"none"},i("div",{class:"menubar-item",role:"none"},i("z-ghost-loading",null)))))):this.menuType==="menu"?i(g,{items:this.menuItems,controlledBy:this.parentItem?.id,currentPath:this.currentPath,onItemKeyDown:e=>this.handleItemKeydown(e)}):this.menuItems?.length>0&&i("div",{class:"items-container",role:"none"},this.menuItems.map((e=>i("li",{role:"none"},i("a",{class:{"menu-item":this.menuType==="menu","menubar-item":this.menuType==="menubar"},href:e.href,id:e.id,role:"menuitem","aria-current":this.lastCurrent===e.id?"page":"false",tabIndex:-1,onKeyDown:e=>this.handleItemKeydown(e),target:e.target},i("span",{"data-text":e.label},e.label))))))))}static get delegatesFocus(){return true}static get watchers(){return{items:["onItemsChange"],currentPath:["onItemsChange"]}}};A.style=S+C;var I;(function(e){e["SCUOLA"]="Scuola";e["UNIVERSITÀ"]="Università";e["GIURIDICO"]="Giuridico";e["DIZIONARI"]="Dizionari";e["SAGGISTICA"]="Saggistica"})(I||(I={}));const E=Object.keys(I);function D(e,t,i){const a=_(e,t);const r=a.length>0;const n=r?e.toUpperCase():undefined;const s=[];if(i)s.push(T(e,i));s.push(T(e));if(r){if(i){const t=[...a.filter((e=>e===i)),...a.filter((e=>e!==i)).sort(((e,t)=>R(e)-R(t)))];t.forEach((t=>s.push(j(e,t,n))))}else{a.sort(((e,t)=>R(e)-R(t))).forEach((t=>s.push(j(e,t,n))))}}return s}const T=(e,t)=>({id:P(`word-${e}-${t}`),label:K(e,t),aria_label:O(e,t,false),url:$({q:e,...t?{area:t}:{},user_query:e}),...M(e,e,t)});const j=(e,t,i)=>({id:P(`subj-${e}-${t}-${i}`),label:K(e,t),aria_label:O(e,t,true),url:$({area:t,materia:i,user_query:e}),...M(e,undefined,t,i)});const P=e=>e.split("").map((e=>e.charCodeAt(0).toString(16))).join("");const $=e=>`ricerca?${new URLSearchParams(e).toString()}`;const M=(e,t,i,a)=>({user_query:e,...t?{query:t}:{},...i?{area:i}:{},...a?{subject:a}:{}});const K=(e,t)=>`<mark>${e}</mark> in <strong>${t?`${I[t]??t}`:`tutto il sito`}</strong>`;const O=(e,t,i=false)=>`Cerca la ${i?`materia`:`parola`} ${e} ${t?`nel catalogo ${I[t]??t}`:`in tutto il sito`}`;function _(e,t){const i=Q(e);return Object.entries(t).filter((([,e])=>e.some((e=>e.toLowerCase()===i)))).map((([e])=>e))}const Q=e=>e.toLowerCase().replace(/\s+/g," ");const R=e=>{const t=E.indexOf(e);return t>=0?t:100};const q=":host,*,::before,::after{box-sizing:border-box}*:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}button{all:unset;cursor:pointer}.searchbar{--searchbar-button-x-padding:14px;--searchbar-button-icon-width:1.75rem;--closed-searchbar-width:calc((var(--searchbar-button-x-padding) * 2) + var(--searchbar-button-icon-width) + 1px);position:absolute;z-index:5;top:0;right:0;display:flex;width:var(--closed-searchbar-width);height:3rem;justify-content:flex-end;transition:width 0.4s ease-in-out}.searchbar.searchbar-open{width:100%}.searchbar .input-wrapper{display:flex;overflow:hidden;width:100%;align-items:center;padding:8px;padding-left:var(--grid-margin);background-color:#fff;gap:8px;transition-duration:0.4s;transition-property:padding-right, padding-left, width;transition-timing-function:ease-in-out}.searchbar:not(.searchbar-open) .input-wrapper{overflow:hidden;width:0;padding:0}.searchbar button[type='reset']{--z-icon-width:1rem;--z-icon-height:1rem;display:flex;align-items:center;cursor:pointer}.searchbar input{z-index:1;width:100%;height:100%;padding:0;border:none;background-color:#fff;font-family:var(--font-family-sans);font-size:1rem}.searchbar.searchbar-open input:first-child{padding-left:4px;margin-left:-4px;}.searchbar input[type='search']::-webkit-search-cancel-button,.searchbar input[type='search']::-webkit-search-decoration{appearance:none}.searchbar input::placeholder{color:var(--gray500)}.searchbar .searchbar-button{display:flex;align-items:center;justify-content:center;padding:10px var(--searchbar-button-x-padding);border-left:1px solid #000;background:var(--zanit-accent-color);font-family:inherit;font-size:inherit;gap:64px;line-height:1}.searchbar .searchbar-button:focus-visible{z-index:1}.searchbar-button z-icon{--z-icon-width:var(--searchbar-button-icon-width);--z-icon-height:var(--searchbar-button-icon-width)}.suggestions-wrapper{position:absolute;z-index:4;top:3rem;left:50%;width:100vw;border-top:1px solid var(--gray200);margin-left:-50vw;background:#fff;box-shadow:var(--shadow-1)}.suggestions-wrapper.hidden{display:none}.suggestions{display:flex;width:100%;flex-direction:column;align-items:stretch;padding:var(--space-unit);margin:0 auto}.suggestion-head{padding:calc(var(--space-unit) * 0.75) var(--space-unit);color:var(--gray700);font-size:0.875rem;font-weight:var(--font-md);line-height:1.125rem}.suggestion{display:flex;padding:calc(var(--space-unit) * 0.75) var(--space-unit);color:var(--gray900);cursor:pointer;font-size:1rem;gap:var(--space-unit);line-height:1.5rem}.suggestion:hover,.suggestion[aria-selected='true']{background:var(--gray100)}.suggestion strong{font-weight:var(--font-bd)}.suggestion mark{background-color:var(--red50)}.suggestion z-icon{--z-icon-height:1.125rem;margin-top:0.125rem}.suggestions z-divider{margin:var(--space-unit) 0}@media (width < 1152px){.searchbar .searchbar-button>.searchbar-button-label{display:none}}@media (width >= 768px){.searchbar{--searchbar-button-x-padding:16px;--searchbar-button-icon-width:2rem}.searchbar .input-wrapper{gap:14px}.searchbar button[type='reset']{--z-icon-width:1.5rem;--z-icon-height:1.5rem}.searchbar input,.searchbar .searchbar-button{font-size:1.5rem}.searchbar .searchbar-button{padding:8px var(--searchbar-button-x-padding)}.suggestions{padding:var(--space-unit) calc(var(--space-unit) * 2)}}@media (width >= 1152px){.searchbar{--closed-searchbar-width:190px}}@media (width >= 1366px){.searchbar .searchbar-button{border-right:1px solid #000}.suggestions{max-width:1366px;padding:var(--space-unit) calc(var(--space-unit) * 3)}}";const H=class{constructor(t){e(this,t);this.search=n(this,"search");this.resetSearch=n(this,"resetSearch")}formElement;subjectsByArea={};timer;get host(){return t(this)}showSearchbar=false;_searchQuery=undefined;suggestions=[];activeSuggestion="";showSuggestions=false;searchQuery=undefined;searchEnv=w.PROD;searchArea;onSearchQueryChange(){this._searchQuery=this.searchQuery;if(this.searchQuery){this.openSearchbar()}this.resetSuggestions()}onSearchAreaChange(){this.resetSuggestions()}onShowSearchbarChange(){if(!this.showSearchbar){this.showSuggestions=false}}onShowSuggestionsChange(){this.activeSuggestion=""}search;resetSearch;async connectedCallback(){this.subjectsByArea=await y(this.searchEnv);this.showSearchbar=!!this.searchQuery;this._searchQuery=this.searchQuery}handleOutsideClick(e){if(this.showSearchbar&&this.host&&!h(this.host,e)){this.showSearchbar=false}}handleEsc(e){if(!m(e)){return}if(this.showSuggestions){this.showSuggestions=false}else{this.showSearchbar=false}}handleTab(e){if(!l(e)){return}this.showSuggestions=false;if(!h(this.host,e)){this.showSearchbar=false}}openSearchbar(){this.showSearchbar=true;setTimeout((()=>{const e=this.host.shadowRoot.querySelector("#searchbar-input");e.focus({preventScroll:true})}),500)}resetSearchQuery(){this.searchQuery=undefined;this.resetSearch.emit()}resetSuggestions(){this.suggestions=[];this.showSuggestions=false}handleInputChange(e){this._searchQuery=e.target.value;if(!this._searchQuery){this.searchQuery=undefined}this.updateSuggestions()}updateSuggestions(){clearTimeout(this.timer);const e=(this._searchQuery||"").trim();if(e.length<3){this.resetSuggestions();return}this.timer=setTimeout((()=>{this.resetSuggestions();this.suggestions=D(e,this.subjectsByArea,this.searchArea?.toUpperCase());this.showSuggestions=true}),300)}onSearchSubmit(e){e.preventDefault();if(!this._searchQuery){return}if(this.activeSuggestion){const e=this.suggestions.find((e=>e.id===this.activeSuggestion));if(e){this.submitSuggestionSearch(e);this.showSuggestions=false;return}}this.showSearchbar=false;const t=this.search.emit({query:this._searchQuery,area:this.searchArea});if(t.defaultPrevented){return}this.formElement.submit()}submitSuggestionSearch(e){const t=this.search.emit({user_query:e.user_query,query:e.query,area:e.area,subject:e.subject});if(!t.defaultPrevented){window.location.href=e.url}}handleSuggestionsNav(e){if(!u(e)&&!d(e)){return}if(!this.suggestions.length){return}const t=this.suggestions.map((e=>e.id));if(!t.length){return}e.preventDefault();e.stopPropagation();if(!this.showSuggestions){this.showSuggestions=true}let i=null;const a=t[0];const r=t[t.length-1];const n=t.indexOf(this.activeSuggestion);if(n<0){i=u(e)?a:r}else{if(u(e)){i=t[n+1]||r}else{i=t[n-1]||a}}this.activeSuggestion=i}renderSuggestions(){const e=(e,t)=>i("span",{key:t,class:"suggestion-head","aria-hidden":"true"},e);return i("div",{class:{"suggestions-wrapper":true,hidden:!this.showSuggestions||!this.suggestions.length},onPointerOver:e=>e.preventDefault()},i("div",{id:"search-suggestions",class:"suggestions",role:"listbox","aria-label":"Seleziona tra i suggerimenti"},this.suggestions.map(((t,a)=>{const r=[];if(a===0){r.push(e("Cerca la parola","word-head"))}else if(t.subject&&!this.suggestions[a-1].subject){r.push(i("z-divider",{"aria-hidden":"true"}));r.push(e("Cerca la materia","subj-head"))}r.push(i("span",{key:a,id:t.id,class:"suggestion",role:"option","aria-label":t.aria_label,"aria-selected":this.activeSuggestion===t.id?"true":undefined,onClick:()=>this.submitSuggestionSearch(t)},i("z-icon",{name:"left-magnifying-glass"}),i("span",{"aria-hidden":"true",innerHTML:t.label})));return r}))))}render(){return i(a,{key:"9535c68b8cd3e76a55785cb993bed5026f84a589"},i("form",{key:"26271b8f9034b3ea64bbea6ff413e75d0e857612",class:{searchbar:true,"searchbar-open":this.showSearchbar},ref:e=>this.formElement=e,role:"search","aria-label":"Cerca nel sito",method:"get",action:"/ricerca",onSubmit:e=>this.onSearchSubmit(e),onReset:()=>this.resetSearchQuery()},!!this.searchArea&&i("input",{key:"90e9dc4252a02a00db5160d374bd4ea42c4dce17",type:"hidden",name:"area",value:this.searchArea}),i("div",{key:"6189f91f8cbf9086c1dcddac5a1b649065d4319c",class:"input-wrapper",role:"none"},this.searchQuery&&i("button",{key:"6292dc5e90576b49993ed15d908c675b501568d9",type:"reset","aria-label":"Svuota campo di ricerca",disabled:!this.showSearchbar,"aria-hidden":!this.showSearchbar?"true":undefined,tabIndex:!this.showSearchbar?-1:0},i("z-icon",{key:"67f07f13b459afad718d2687f5feea4271d6ec6a",name:"multiply-circled"})),i("input",{key:"ee4f88993f3bf1ba768eaf1b6ff63cd346bd552e",id:"searchbar-input",name:"q",type:"search",disabled:!this.showSearchbar,placeholder:"Cerca per parola chiave o ISBN",value:this.searchQuery,required:true,autocomplete:"off",role:"combobox","aria-autocomplete":"list","aria-expanded":this.showSuggestions?"true":"false","aria-controls":"search-suggestions","aria-activedescendant":this.activeSuggestion,"aria-label":"Cerca per parola chiave o ISBN","aria-hidden":!this.showSearchbar?"true":undefined,tabIndex:!this.showSearchbar?-1:0,onInput:e=>this.handleInputChange(e),onKeyDown:e=>{if(m(e)){e.preventDefault()}this.handleSuggestionsNav(e)}})),i("button",{key:"4e0feaeaff7bcecaf6a29409a6accac895810fdf",class:"searchbar-button","aria-label":this.showSearchbar?"Esegui ricerca":"Apri il campo di ricerca","aria-controls":"searchbar-input",type:this.showSearchbar?"submit":"button",onClick:()=>this.openSearchbar()},this.showSearchbar?null:i("span",{class:"searchbar-button-label"},"Cerca"),i("z-icon",{key:"49eec7e6f04c34df57fcf99f405d1c3ada1fcdfb",name:"search"}))),this.renderSuggestions())}static get watchers(){return{searchQuery:["onSearchQueryChange"],searchArea:["onSearchAreaChange"],showSearchbar:["onShowSearchbarChange"],showSuggestions:["onShowSuggestionsChange"]}}};H.style=q;export{o as zanit_back_to_top,z as zanit_menubar,A as zanit_mobile_menubar,H as zanit_search_form};
2
- //# sourceMappingURL=p-0f6b9e37.entry.js.map
1
+ import{r as e,a as t,h as i,H as a,F as r,c as n}from"./p-DSdvvVFj.js";const s=".sc-zanit-back-to-top-h{opacity:1;transition:all 0.2s linear;visibility:visible}.hidden.sc-zanit-back-to-top-h{opacity:0;visibility:hidden}.sc-zanit-back-to-top-h .z-fab.sc-zanit-back-to-top{--color-primary01:var(--gray950);outline:1px solid var(--color-white)}";const o=class{constructor(t){e(this,t)}resizeObserver;mutationObserver;get host(){return t(this)}showFab=false;currentPageHeight;isMobile=false;pageMinHeight=1600;scrollMinHeight=800;handleScroll(){this.updateFabVisibility()}handleResize=()=>{const e=document.body.scrollHeight;if(e!==this.currentPageHeight){this.currentPageHeight=e;this.updateFabVisibility()}};connectedCallback(){this.currentPageHeight=document.body.scrollHeight;this.resizeObserver=new ResizeObserver(this.handleResize);this.resizeObserver.observe(document.body);this.mutationObserver=new MutationObserver(this.handleResize);this.mutationObserver.observe(document.body,{childList:true,subtree:true});this.updateFabVisibility();const e=window.matchMedia("(width < 768px)");this.isMobile=e.matches;e.onchange=e=>{this.isMobile=e.matches}}disconnectedCallback(){this.resizeObserver.disconnect();this.mutationObserver.disconnect()}updateFabVisibility(){this.showFab=this.currentPageHeight>this.pageMinHeight&&window.scrollY>this.scrollMinHeight}scroll(){window.scrollTo({top:0,behavior:"smooth"})}render(){return i(a,{key:"3abd8ab70075d8042285d8ed6fab0729c4b5ec42",class:{hidden:!this.showFab},"aria-hidden":this.showFab?"false":"true"},i("button",{key:"11b149d5f1d75720d4bdd329e9897da782092ed1",class:{"z-fab":true,"z-fab-extended":!this.isMobile},onClick:()=>this.scroll()},i("z-icon",{key:"fbdff1419da6d20ab594ffd11c58d7bf25fb7aa6",name:"back-top"}),i("span",{key:"0292f761b5459c372f003ed514abbd3403570c75"},"Torna su")))}};o.style=s;const h=(e,t)=>t.composedPath().filter((e=>e!==document&&e!==window.window)).some((t=>e.contains(t)));const c=(e,t)=>{e.tabIndex=-1;t.tabIndex=0;t.focus({preventScroll:true})};const d=e=>e.key==="ArrowUp";const u=e=>e.key==="ArrowDown";const l=e=>e.key==="Tab";const m=e=>e.key==="Escape";const p="default";const b={id:p,label:p};const f=e=>{const t=e.reduce(((e,t)=>{const i=e.find((({group:e})=>e.id===(t.group?.id||b.id)));if(!i){e.push({group:t.group??b,items:[t]})}else{i.items.push(t)}return e}),[]);return t.sort(((e,t)=>e.group.id===p?1:t.group.id===p?-1:0))};const g=({controlledBy:e,items:t,currentPath:a=[],onItemKeyDown:r})=>{if(!t?.length){return null}const n=f(t);const s=t=>a.includes(e)&&a.includes(t.id);return i("div",{class:"menu-wrapper",role:"none"},i("div",{class:"menu","aria-labelledby":e??undefined,role:"menu"},n.map((({group:e,items:t})=>i("div",{class:{group:true,highlight:t.some((e=>e.highlight))}},e.id!==p?i("div",{class:"group-name",id:e.id},e.label):n.length>1?i("div",{class:"group-name"}):null,i("ul",{class:"menu-list",role:"group","aria-labelledby":e.id!==p?e.id:undefined},t.map((e=>i("li",{role:"none"},e.href&&i("a",{class:{"menu-item":true,active:s(e)},href:e.href,role:"menuitem",tabIndex:-1,"aria-current":s(e)?"page":"false",onKeyDown:e=>r(e),target:e.target},e.label))))))))))};var w;(function(e){e["DEV"]="dev";e["TEST"]="test";e["PROD"]="prod"})(w||(w={}));const x={dev:"https://zanichelli-shop-dev.s3.eu-west-1.amazonaws.com",test:"https://zanichelli-shop-test.s3.eu-west-1.amazonaws.com",prod:"https://zanichelli-shop.s3.eu-west-1.amazonaws.com"};async function y(e){try{const t=await fetch(`${x[e]}/categories.json`);if(!t.ok){throw new Error(`HTTP ${t.status}`)}return await t.json()}catch(e){console.error("Error fetching subjects:",e);return{}}}const v=":host{position:relative;z-index:2;display:flex;width:100%;background-color:#fff;color:var(--gray900);font-family:var(--font-family-sans)}:host,*,::before,::after{box-sizing:border-box}*:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}ul{padding:0;margin:0;list-style:none}a{color:var(--gray900);cursor:pointer;text-decoration:none}button{all:unset;cursor:pointer}:host nav{width:100%}.shadow-wrapper{position:relative;z-index:1;display:flex;width:100%}.shadow-wrapper::after{position:absolute;top:0;right:0;width:100%;height:100%;background:transparent;box-shadow:var(--shadow-1);content:'';pointer-events:none}.width-limiter{position:relative;display:flex;width:100%;max-width:var(--zanit-menubar-max-width, 1366px);margin:0 auto}.shadow-wrapper+.shadow-wrapper{z-index:0}.sub-menubar>ul{gap:28px}.width-limiter>ul,.sub-menubar>ul{position:relative;z-index:3;display:flex;width:100%;align-items:center;padding:0 var(--grid-margin);margin-right:auto;margin-left:auto;gap:20px}.shadow-wrapper>.width-limiter,.shadow-wrapper>ul{width:100%;max-width:var(--zanit-menubar-max-width, 1366px)}ul.menubar{height:3rem;padding-right:0}.menubar z-ghost-loading{display:block;width:120px;height:1.25rem}.menubar>li[role='separator']{width:1px;height:1.25rem;background-color:#000}.menubar-item{position:relative;display:flex;align-items:center;padding:14px 0;font-size:1rem;gap:8px;line-height:1.25rem}.menubar .menubar-item{text-transform:uppercase}.menubar-item [data-text]{display:flex;flex-direction:column}.menubar-item.active>[data-text],.menubar-item:hover>[data-text],.menubar-item:focus:focus-visible>[data-text]{font-weight:var(--font-bd)}.menubar-item>[data-text]::after{height:0;content:attr(data-text) / '';font-weight:var(--font-bd);letter-spacing:normal;pointer-events:none;user-select:none;visibility:hidden}.sub-menubar .menubar-item.active::after{position:absolute;z-index:-1;bottom:0;left:-4px;width:calc(100% + 8px);height:4px;background-color:var(--red500);content:''}zanit-search-form{margin-left:auto}";const k=".menu-wrapper{width:100%;background-color:#fff}.menu{position:relative;display:flex;width:100%;flex-direction:column;gap:32px 0}.menu .group{display:flex;flex-direction:column}.menu .group .group-name{border-bottom:1px solid currentcolor;margin-bottom:4px;color:var(--red500);font-size:0.875rem;font-weight:var(--font-md)}.menu .group .menu-list{display:flex;flex-direction:column;gap:8px}.menu .group .menu-list .menu-item{display:block;border-bottom:2px solid transparent;font-size:0.875rem;font-weight:var(--font-md)}.menu .menu-list .menu-item.active,.menu .menu-list .menu-item:hover{border-bottom-color:var(--red500)}.menu .group.highlight .menu-list .menu-item{font-size:1rem}@media (width >= 768px){.menu-wrapper{position:absolute;top:100%;left:0;display:flex;justify-content:center;box-shadow:var(--shadow-1)}.menu{display:grid;width:100%;max-width:var(--zanit-menubar-max-width, 1366px);padding:16px var(--grid-margin);gap:0 24px;grid-auto-columns:minmax(0, max-content);grid-auto-flow:column;grid-template-rows:minmax(0, max-content) max-content}.menu .group{display:grid;grid-row:1 / -1;grid-template-columns:1fr;grid-template-rows:subgrid}@supports not (grid-template-rows: subgrid){.menu .group{grid-template-rows:repeat(auto-fit, minmax(0, max-content))}}.menu .group .group-name{border:none;margin-bottom:16px}.menu .group .menu-list .menu-item{font-size:1rem}.menu .group.highlight .menu-list .menu-item{font-size:1.5rem}}";const z=class{constructor(t){e(this,t)}get host(){return t(this)}items=[];openMenu=undefined;openNavbar=undefined;currentPath=[];isMobile=false;loading=false;data;current=undefined;searchQuery=undefined;searchEnv=w.PROD;searchArea;timerId;async parseData(e){if(!e){return}if(e instanceof URL){this.items=await this.fetchData(e)}else if(e instanceof Promise){this.loading=true;this.items=await e;this.loading=false}else if(typeof e==="string"){try{this.items=JSON.parse(e);if(!Array.isArray(this.items)||!this.items?.every((e=>e))){throw new Error("Expected an array of MenubarItem objects.")}}catch{let t;try{t=new URL(e)}catch{throw new Error("Invalid string provided for `data` property: not a valid url or JSON.")}this.items=await this.fetchData(t)}}else if(Array.isArray(e)&&e.every((e=>e))){this.items=e}else{throw new Error("Invalid `data` property value. Expected an url, a JSON or an array/promise of MenubarItem objects.")}}onItemsChange(){this.initTabindex()}onCurrentChange(){this.currentPath=this.current?.split("/").filter(Boolean)||[]}async connectedCallback(){const e=window.matchMedia("(width < 768px)");this.isMobile=e.matches;e.onchange=e=>{this.isMobile=e.matches;this.initTabindex();this.openMenu=undefined};await this.parseData(this.data);this.onCurrentChange();this.initTabindex()}handleOutsideClick(e){if(!this.openMenu||h(this.host,e)){return}this.openMenu=undefined}handleKeydown(e){switch(e.key){case"Escape":{if(this.openMenu){e.preventDefault();const t=this.openMenu;this.openMenu=undefined;setTimeout((()=>{const e=this.host.shadowRoot.getElementById(t);if(e){e.focus()}}),0)}break}case"Tab":this.openMenu=undefined;break}}handleMouseover(){clearTimeout(this.timerId)}handleMouseout(e){this.timerId=window.setTimeout((()=>{if(!this.openMenu||h(this.host,e)){return}this.openMenu=undefined}),500)}handleFocusout(e){const t=e.relatedTarget;if(!this.openMenu||this.host.shadowRoot.querySelector(".menu")?.contains(t)){return}this.openMenu=undefined}async fetchData(e){try{this.loading=true;const t=await(await fetch(e)).json();this.loading=false;if(!Array.isArray(t)||!t.every((e=>e))){throw new Error("Invalid data structure. Expected an array of MenuItem objects.")}return t}catch(e){this.loading=false;console.error("Error fetching menubar data:",e);throw new Error("Failed to fetch menubar data from the provided URL.",{cause:e})}}initTabindex(){setTimeout((()=>{this.host.shadowRoot.querySelectorAll('[role="menubar"]')?.forEach((e=>{e.querySelectorAll('[role="menuitem"]')?.forEach(((e,t)=>e.setAttribute("tabindex",t===0?"0":"-1")))}))}),100)}isActive(e){if(this.currentPath.length===0){return false}if(this.currentPath.includes(e.id)){return true}if(e.menuItems?.length){return e.menuItems.some((e=>e.id===this.current))}if(e.navbarItems?.length){const t=e.navbarItems.some((e=>this.isActive(e)));if(t){return true}}return false}showMenu(e){this.openMenu=undefined;if(!e.menuItems?.length){return}this.openMenu=e.id}getParentMenubarElements(e){return Array.from(e?.closest('[role="menubar"]')?.querySelectorAll(':scope > li a[role="menuitem"]')??[])}focusPreviousItem(e){this.openMenu=undefined;const t=this.getParentMenubarElements(e);const i=t.indexOf(e);const a=t[(i-1+t.length)%t.length];c(e,a);if(a.ariaHasPopup==="true"&&this.openMenu){this.openMenu=a.id}}focusNextItem(e){this.openMenu=undefined;const t=this.getParentMenubarElements(e);const i=t.indexOf(e);const a=t[(i+1)%t.length];c(e,a);if(a.ariaHasPopup==="true"&&this.openMenu){this.openMenu=a.id}}handleItemKeydown(e,t){const i=e.target;switch(e.key){case"Home":{e.preventDefault();e.stopPropagation();const t=this.getParentMenubarElements(i)[0];c(i,t);break}case"End":{e.preventDefault();e.stopPropagation();const t=this.getParentMenubarElements(i).pop();c(i,t);break}case"ArrowUp":{if(!t.menuItems?.length){break}e.preventDefault();e.stopPropagation();this.openMenu=t.id;setTimeout((()=>{const e=Array.from(this.host.shadowRoot.querySelectorAll(`[aria-labelledby=${t.id}] [role="menuitem"]`));c(i,e[e.length-1])}),100);break}case"ArrowRight":{e.preventDefault();e.stopPropagation();this.focusNextItem(i);break}case"ArrowDown":{if(!t.menuItems?.length){break}this.openItemMenu(t);break}case"ArrowLeft":{e.preventDefault();e.stopPropagation();this.focusPreviousItem(i);break}case" ":{e.preventDefault();e.stopPropagation();if(this.openMenu===t.id){this.openMenu=undefined;break}else if(t.menuItems?.length){this.openItemMenu(t);break}}}}getPreviousGroup(e){const t=Array.from(e?.closest('[role="menu"]')?.querySelectorAll('[role="group"]')??[]);const i=t.indexOf(e);return t[i-1]}getNextGroup(e){const t=Array.from(e?.closest('[role="menu"]')?.querySelectorAll('[role="group"]')??[]);const i=t.indexOf(e);return t[i+1]}openItemMenu(e){this.openMenu=e.id;setTimeout((()=>{const t=this.host.shadowRoot.querySelector(`[aria-labelledby=${e.id}] [role="menuitem"]`);t.tabIndex=0;t.focus({preventScroll:true})}),100)}handleMenuKeydown(e){const t=e.target;const i=Array.from(t.closest('[role="menu"]')?.querySelectorAll('[role="menuitem"]')??[]);const a=i.indexOf(t);switch(e.key){case"ArrowUp":{e.preventDefault();e.stopPropagation();const r=i[a-1]||i[i.length-1];c(t,r);break}case"ArrowRight":{e.preventDefault();e.stopPropagation();const i=t.closest("[role=group]");const a=this.getNextGroup(i);if(!a){t.tabIndex=-1;const e=t.closest('[role="menu"][aria-labelledby]').getAttribute("aria-labelledby");const i=this.host.shadowRoot.getElementById(e);this.focusNextItem(i);break}const r=a.querySelectorAll('[role="menuitem"]')??[];c(t,r[0]);break}case"ArrowDown":{e.preventDefault();e.stopPropagation();const r=i[a+1]||i[0];c(t,r);break}case"ArrowLeft":{e.preventDefault();e.stopPropagation();const i=t.closest("[role=group]");const a=this.getPreviousGroup(i);if(!a){t.tabIndex=-1;const e=t.closest('[role="menu"][aria-labelledby]').getAttribute("aria-labelledby");const i=this.host.shadowRoot.getElementById(e);this.focusPreviousItem(i);break}const r=a.querySelectorAll('[role="menuitem"]')??[];c(t,r[0]);break}case"Home":e.preventDefault();e.stopPropagation();c(t,i[0]);break;case"End":e.preventDefault();e.stopPropagation();c(t,i[i.length-1]);break}}render(){if(this.isMobile){return i("zanit-mobile-menubar",{items:this.items,currentPath:this.currentPath,searchQuery:this.searchQuery,loading:this.loading,searchArea:this.searchArea,searchEnv:this.searchEnv})}return i("nav",{"aria-label":"Zanichelli.it"},i("div",{class:"shadow-wrapper"},i("div",{class:"width-limiter"},i("ul",{class:"menubar",role:"menubar","aria-label":"Zanichelli.it"},this.loading&&[...new Array(4)].map(((e,t)=>i(r,null,i("li",{role:"none"},i("div",{class:"menubar-item"},i("z-ghost-loading",null))),t<3&&i("li",{role:"separator"})))),this.items?.map(((e,t)=>i(r,null,i("li",{role:"none"},i("a",{class:{"menubar-item":true,active:this.isActive(e)},href:e.href,id:e.id,role:"menuitem",tabIndex:-1,"aria-expanded":e.menuItems?.length?this.openMenu===e.id?"true":"false":undefined,"aria-haspopup":e.menuItems?.length?"true":"false","aria-current":this.current.includes(e.id)?"page":"false",onPointerOver:()=>this.showMenu(e),onKeyDown:t=>this.handleItemKeydown(t,e),target:e.target},i("span",{"data-text":e.label},e.label),e.menuItems?.length>0&&i("z-icon",{name:this.openMenu===e.id?"chevron-up":"chevron-down",width:"0.875rem",height:"0.875rem"}))),t<this.items?.length-1&&i("li",{role:"separator"}))))),i("zanit-search-form",{searchQuery:this.searchQuery,searchArea:this.searchArea,searchEnv:this.searchEnv,onResetSearch:()=>this.searchQuery=undefined})),this.items.map((e=>this.openMenu===e.id&&i(g,{controlledBy:e.id,items:e.menuItems,currentPath:this.currentPath,onItemKeyDown:e=>this.handleMenuKeydown(e)})))),this.items?.filter((e=>this.isActive(e))).map((e=>e.navbarItems?.length&&i("nav",{class:{"sub-menubar":true,"shadow-wrapper":true},"aria-label":`Sezioni: ${e.label}`},i("ul",{role:"menubar"},e.navbarItems.map((t=>i(r,null,i("li",{role:"none"},i("a",{class:{"menubar-item":true,active:this.isActive(t)},href:t.href,id:t.id,role:"menuitem",tabIndex:-1,"aria-haspopup":t.menuItems?.length?"true":"false","aria-expanded":t.menuItems?.length?this.openMenu===t.id?"true":"false":undefined,"aria-current":this.current.includes(t.id)?"page":"false",onPointerOver:()=>this.showMenu(t),onKeyDown:e=>this.handleItemKeydown(e,t),target:e.target},i("span",null,t.label),t.menuItems?.length>0&&i("z-icon",{name:this.openMenu===t.id?"chevron-up":"chevron-down",width:"0.75rem",height:"0.75rem"}))))))),e.navbarItems.map((e=>this.openMenu===e.id&&i(g,{controlledBy:e.id,items:e.menuItems,currentPath:this.currentPath,onItemKeyDown:e=>this.handleMenuKeydown(e)})))))))}static get delegatesFocus(){return true}static get watchers(){return{data:["parseData"],items:["onItemsChange"],current:["onCurrentChange"]}}};z.style=v+k;const S=":host{position:relative;z-index:2;display:block;width:100%;max-width:100%;height:3rem;background-color:#fff;color:var(--gray900);fill:var(--gray900);font-family:var(--font-family-sans)}:host,*,::before,::after{box-sizing:border-box}*:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}ul{padding:0;margin:0;list-style:none}a{color:var(--gray900);cursor:pointer;text-decoration:none}button{all:unset;cursor:pointer}nav{display:flex;width:100%;align-items:center;padding-left:var(--grid-margin);gap:8px}nav::after{position:absolute;top:0;right:0;width:100%;height:100%;background:transparent;box-shadow:var(--shadow-1);content:'';pointer-events:none}z-logo{margin:8px 0}.mobile-menu{position:absolute;top:100%;left:0;display:flex;overflow:auto;width:100%;max-height:calc(100vh - 48px - var(--zanit-menubar-top-offset, 0px));flex-direction:column;padding:16px var(--grid-margin) 32px;background-color:#fff;box-shadow:var(--shadow-2);gap:8px}.mobile-menu li{width:100%}.mobile-menu .items-container{display:flex;min-height:256px;flex-direction:column;gap:8px}.mobile-menu .items-container z-ghost-loading{width:40%;height:1.2rem}.mobile-menu .items-container .menubar-item{display:block;width:100%;padding:8px 0;font-size:1rem;text-align:left}.mobile-menu .items-container li:not(:last-child) .menubar-item{border-bottom:1px solid #000}[role='menuitem'].parent{display:flex;width:fit-content;align-items:center;padding:0;border:none;font-size:0.875rem;gap:8px}zanit-search-form{margin-left:auto}";const C=".menu-wrapper{width:100%;background-color:#fff}.menu{position:relative;display:flex;width:100%;flex-direction:column;gap:32px 0}.menu .group{display:flex;flex-direction:column}.menu .group .group-name{border-bottom:1px solid currentcolor;margin-bottom:4px;color:var(--red500);font-size:0.875rem;font-weight:var(--font-md)}.menu .group .menu-list{display:flex;flex-direction:column;gap:8px}.menu .group .menu-list .menu-item{display:block;border-bottom:2px solid transparent;font-size:0.875rem;font-weight:var(--font-md)}.menu .menu-list .menu-item.active,.menu .menu-list .menu-item:hover{border-bottom-color:var(--red500)}.menu .group.highlight .menu-list .menu-item{font-size:1rem}@media (width >= 768px){.menu-wrapper{position:absolute;top:100%;left:0;display:flex;justify-content:center;box-shadow:var(--shadow-1)}.menu{display:grid;width:100%;max-width:var(--zanit-menubar-max-width, 1366px);padding:16px var(--grid-margin);gap:0 24px;grid-auto-columns:minmax(0, max-content);grid-auto-flow:column;grid-template-rows:minmax(0, max-content) max-content}.menu .group{display:grid;grid-row:1 / -1;grid-template-columns:1fr;grid-template-rows:subgrid}@supports not (grid-template-rows: subgrid){.menu .group{grid-template-rows:repeat(auto-fit, minmax(0, max-content))}}.menu .group .group-name{border:none;margin-bottom:16px}.menu .group .menu-list .menu-item{font-size:1rem}.menu .group.highlight .menu-list .menu-item{font-size:1.5rem}}";const A=class{constructor(t){e(this,t)}get host(){return t(this)}currentPath=[];items=[];searchQuery=undefined;loading=false;searchEnv=w.PROD;searchArea;lastCurrent=undefined;parentItem=undefined;menuItems=undefined;menuType=undefined;open;onItemsChange(){this.lastCurrent=this.currentPath?.length?this.currentPath[this.currentPath.length-1]:undefined;this.setupData(this.items)}setupData(e,t){if(this.lastCurrent===undefined){this.parentItem=undefined;this.menuType="menubar";this.menuItems=e;return}for(const i of e){if(i.id===this.lastCurrent){this.parentItem=t;this.menuType=i.menuItems?.length?"menu":"menubar";this.menuItems=i.menuItems||i.navbarItems;return}if(this.currentPath.length>1&&i.id===this.currentPath[this.currentPath.length-2]&&i.menuItems?.some((({id:e})=>e===this.lastCurrent))){this.parentItem=i;this.menuType=i.menuItems?.length?"menu":"menubar";this.menuItems=i.menuItems||i.navbarItems;return}if(i.navbarItems?.length){this.setupData(i.navbarItems,i)}}}get menuItemsElement(){return Array.from(this.host.shadowRoot.querySelectorAll('[role="menuitem"]'))}initTabindex(){this.menuItemsElement.forEach(((e,t)=>e.setAttribute("tabindex",t===0?"0":"-1")))}toggleMenu(){if(this.open){this.open=false}else{this.open=true;setTimeout((()=>{this.initTabindex();this.menuItemsElement[0]?.focus({preventScroll:true})}),200)}}handleItemKeydown(e){switch(e.key){case"ArrowUp":{e.preventDefault();e.stopPropagation();const t=this.menuItemsElement;const i=t.indexOf(e.target);const a=t[(i-1+t.length)%t.length];c(t[i],a);break}case"ArrowDown":{e.preventDefault();e.stopPropagation();const t=this.menuItemsElement;const i=t.indexOf(e.target);const a=t[(i+1)%t.length];c(t[i],a);break}case"Home":{e.preventDefault();e.stopPropagation();c(e.target,this.menuItemsElement[0]);break}case"End":{e.preventDefault();e.stopPropagation();c(e.target,this.menuItemsElement.pop());break}}}connectedCallback(){this.lastCurrent=this.currentPath?.length?this.currentPath[this.currentPath.length-1]:undefined;this.setupData(this.items)}handleOutsideClick(e){if(h(this.host,e)){return}this.open=false}handleKeydown(e){switch(e.key){case"Escape":this.open=false;break;case"Tab":if(h(this.host,e)){break}this.open=false;break}}handleFocusout(e){if(h(this.host,e)){return}this.open=false}render(){return i("nav",{key:"76079ce1e66f1b568f6e7eac1f67b91af0f2f48a","aria-label":"Zanichelli.it"},i("button",{key:"630b16be60aba3d7027fbe4b9e19e440cb454267",class:"burger-button",type:"button","aria-expanded":this.open?"true":"false","aria-controls":"mobile-menu","aria-label":this.open?"Chiudi menù":"Apri menù",onClick:()=>this.toggleMenu()},i("z-icon",{key:"4c86d84d421ab93fb1c815c5a667dd55ce8254ac",name:this.open?"multiply":"burger-menu",width:"1.5rem",height:"1.5rem"})),i("z-logo",{key:"03c7b8613698098cf3a1ff4b1b8d649cb7d5b92a",imageAlt:"Logo Zanichelli",link:"/",height:32,width:126}),i("zanit-search-form",{key:"5a1385991eebcf17ac8c275c8c69f6662f75e3b7",searchQuery:this.searchQuery,onResetSearch:()=>this.searchQuery=undefined,searchArea:this.searchArea,searchEnv:this.searchEnv}),this.open&&i("ul",{key:"bc627e55f902beaac658f02d90ed78836fde193b",class:"mobile-menu",role:"menubar"},!this.loading&&this.currentPath&&this.currentPath.length>0&&i("li",{key:"4708f9ee160d62a6cbf6333e11c1b9d02ae3d34c",role:"none"},i("a",{key:"9fd59125f8cb87f6c86108eea7ba79a04bc4d68c",class:"parent",href:this.parentItem?.href??"/",id:this.parentItem?.id??undefined,role:"menuitem",tabIndex:-1,onKeyDown:e=>this.handleItemKeydown(e),target:this.parentItem?.target},i("z-icon",{key:"615bc59a1f058a745bdadd90c6f51f9abc757df1",name:"arrow-left",width:"0.5rem",height:"0.5rem"}),i("span",{key:"66a80691639e97b2d7d7d61cc45f8b47dcdabafe"},this.parentItem?.label||"Home"))),this.loading?i("div",{class:"items-container",role:"none"},[...new Array(4)].map((()=>i("li",{role:"none"},i("div",{class:"menubar-item",role:"none"},i("z-ghost-loading",null)))))):this.menuType==="menu"?i(g,{items:this.menuItems,controlledBy:this.parentItem?.id,currentPath:this.currentPath,onItemKeyDown:e=>this.handleItemKeydown(e)}):this.menuItems?.length>0&&i("div",{class:"items-container",role:"none"},this.menuItems.map((e=>i("li",{role:"none"},i("a",{class:{"menu-item":this.menuType==="menu","menubar-item":this.menuType==="menubar"},href:e.href,id:e.id,role:"menuitem","aria-current":this.lastCurrent===e.id?"page":"false",tabIndex:-1,onKeyDown:e=>this.handleItemKeydown(e),target:e.target},i("span",{"data-text":e.label},e.label))))))))}static get delegatesFocus(){return true}static get watchers(){return{items:["onItemsChange"],currentPath:["onItemsChange"]}}};A.style=S+C;var I;(function(e){e["SCUOLA"]="Scuola";e["UNIVERSITÀ"]="Università";e["GIURIDICO"]="Giuridico";e["DIZIONARI"]="Dizionari";e["SAGGISTICA"]="Saggistica"})(I||(I={}));const E=Object.keys(I);function D(e,t,i){const a=_(e,t);const r=a.length>0;const n=r?e.toUpperCase():undefined;const s=[];if(i)s.push(T(e,i));s.push(T(e));if(r){if(i){const t=[...a.filter((e=>e===i)),...a.filter((e=>e!==i)).sort(((e,t)=>R(e)-R(t)))];t.forEach((t=>s.push(j(e,t,n))))}else{a.sort(((e,t)=>R(e)-R(t))).forEach((t=>s.push(j(e,t,n))))}}return s}const T=(e,t)=>({id:P(`word-${e}-${t}`),label:K(e,t),aria_label:O(e,t,false),url:$({q:e,...t?{area:t}:{},user_query:e}),...M(e,e,t)});const j=(e,t,i)=>({id:P(`subj-${e}-${t}-${i}`),label:K(e,t),aria_label:O(e,t,true),url:$({area:t,materia:i,user_query:e}),...M(e,undefined,t,i)});const P=e=>e.split("").map((e=>e.charCodeAt(0).toString(16))).join("");const $=e=>`/ricerca?${new URLSearchParams(e).toString()}`;const M=(e,t,i,a)=>({user_query:e,...t?{query:t}:{},...i?{area:i}:{},...a?{subject:a}:{}});const K=(e,t)=>`<mark>${e}</mark> in <strong>${t?`${I[t]??t}`:`tutto il sito`}</strong>`;const O=(e,t,i=false)=>`Cerca la ${i?`materia`:`parola`} ${e} ${t?`nel catalogo ${I[t]??t}`:`in tutto il sito`}`;function _(e,t){const i=Q(e);return Object.entries(t).filter((([,e])=>e.some((e=>e.toLowerCase()===i)))).map((([e])=>e))}const Q=e=>e.toLowerCase().replace(/\s+/g," ");const R=e=>{const t=E.indexOf(e);return t>=0?t:100};const q=":host,*,::before,::after{box-sizing:border-box}*:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}button{all:unset;cursor:pointer}.searchbar{--searchbar-button-x-padding:14px;--searchbar-button-icon-width:1.75rem;--closed-searchbar-width:calc((var(--searchbar-button-x-padding) * 2) + var(--searchbar-button-icon-width) + 1px);position:absolute;z-index:5;top:0;right:0;display:flex;width:var(--closed-searchbar-width);height:3rem;justify-content:flex-end;transition:width 0.4s ease-in-out}.searchbar.searchbar-open{width:100%}.searchbar .input-wrapper{display:flex;overflow:hidden;width:100%;align-items:center;padding:8px;padding-left:var(--grid-margin);background-color:#fff;gap:8px;transition-duration:0.4s;transition-property:padding-right, padding-left, width;transition-timing-function:ease-in-out}.searchbar:not(.searchbar-open) .input-wrapper{overflow:hidden;width:0;padding:0}.searchbar button[type='reset']{--z-icon-width:1rem;--z-icon-height:1rem;display:flex;align-items:center;cursor:pointer}.searchbar input{z-index:1;width:100%;height:100%;padding:0;border:none;background-color:#fff;font-family:var(--font-family-sans);font-size:1rem}.searchbar.searchbar-open input:first-child{padding-left:4px;margin-left:-4px;}.searchbar input[type='search']::-webkit-search-cancel-button,.searchbar input[type='search']::-webkit-search-decoration{appearance:none}.searchbar input::placeholder{color:var(--gray500)}.searchbar .searchbar-button{display:flex;align-items:center;justify-content:center;padding:10px var(--searchbar-button-x-padding);border-left:1px solid #000;background:var(--zanit-accent-color);font-family:inherit;font-size:inherit;gap:64px;line-height:1}.searchbar .searchbar-button:focus-visible{z-index:1}.searchbar-button z-icon{--z-icon-width:var(--searchbar-button-icon-width);--z-icon-height:var(--searchbar-button-icon-width)}.suggestions-wrapper{position:absolute;z-index:4;top:3rem;left:50%;width:100vw;border-top:1px solid var(--gray200);margin-left:-50vw;background:#fff;box-shadow:var(--shadow-1)}.suggestions-wrapper.hidden{display:none}.suggestions{display:flex;width:100%;flex-direction:column;align-items:stretch;padding:var(--space-unit);margin:0 auto}.suggestion-head{padding:calc(var(--space-unit) * 0.75) var(--space-unit);color:var(--gray700);font-size:0.875rem;font-weight:var(--font-md);line-height:1.125rem}.suggestion{display:flex;padding:calc(var(--space-unit) * 0.75) var(--space-unit);color:var(--gray900);cursor:pointer;font-size:1rem;gap:var(--space-unit);line-height:1.5rem}.suggestion:hover,.suggestion[aria-selected='true']{background:var(--gray100)}.suggestion strong{font-weight:var(--font-bd)}.suggestion mark{background-color:var(--red50)}.suggestion z-icon{--z-icon-height:1.125rem;margin-top:0.125rem}.suggestions z-divider{margin:var(--space-unit) 0}@media (width < 1152px){.searchbar .searchbar-button>.searchbar-button-label{display:none}}@media (width >= 768px){.searchbar{--searchbar-button-x-padding:16px;--searchbar-button-icon-width:2rem}.searchbar .input-wrapper{gap:14px}.searchbar button[type='reset']{--z-icon-width:1.5rem;--z-icon-height:1.5rem}.searchbar input,.searchbar .searchbar-button{font-size:1.5rem}.searchbar .searchbar-button{padding:8px var(--searchbar-button-x-padding)}.suggestions{padding:var(--space-unit) calc(var(--space-unit) * 2)}}@media (width >= 1152px){.searchbar{--closed-searchbar-width:190px}}@media (width >= 1366px){.searchbar .searchbar-button{border-right:1px solid #000}.suggestions{max-width:1366px;padding:var(--space-unit) calc(var(--space-unit) * 3)}}";const H=class{constructor(t){e(this,t);this.search=n(this,"search");this.resetSearch=n(this,"resetSearch")}formElement;subjectsByArea={};timer;get host(){return t(this)}showSearchbar=false;_searchQuery=undefined;suggestions=[];activeSuggestion="";showSuggestions=false;searchQuery=undefined;searchEnv=w.PROD;searchArea;onSearchQueryChange(){this._searchQuery=this.searchQuery;if(this.searchQuery){this.openSearchbar()}this.resetSuggestions()}onSearchAreaChange(){this.resetSuggestions()}onShowSearchbarChange(){if(!this.showSearchbar){this.showSuggestions=false}}onShowSuggestionsChange(){this.activeSuggestion=""}search;resetSearch;async connectedCallback(){this.subjectsByArea=await y(this.searchEnv);this.showSearchbar=!!this.searchQuery;this._searchQuery=this.searchQuery}handleOutsideClick(e){if(this.showSearchbar&&this.host&&!h(this.host,e)){this.showSearchbar=false}}handleEsc(e){if(!m(e)){return}if(this.showSuggestions){this.showSuggestions=false}else{this.showSearchbar=false}}handleTab(e){if(!l(e)){return}this.showSuggestions=false;if(!h(this.host,e)){this.showSearchbar=false}}openSearchbar(){this.showSearchbar=true;setTimeout((()=>{const e=this.host.shadowRoot.querySelector("#searchbar-input");e.focus({preventScroll:true})}),500)}resetSearchQuery(){this.searchQuery=undefined;this.resetSearch.emit()}resetSuggestions(){this.suggestions=[];this.showSuggestions=false}handleInputChange(e){this._searchQuery=e.target.value;if(!this._searchQuery){this.searchQuery=undefined}this.updateSuggestions()}updateSuggestions(){clearTimeout(this.timer);const e=(this._searchQuery||"").trim();if(e.length<3){this.resetSuggestions();return}this.timer=setTimeout((()=>{this.resetSuggestions();this.suggestions=D(e,this.subjectsByArea,this.searchArea?.toUpperCase());this.showSuggestions=true}),300)}onSearchSubmit(e){e.preventDefault();if(!this._searchQuery){return}if(this.activeSuggestion){const e=this.suggestions.find((e=>e.id===this.activeSuggestion));if(e){this.submitSuggestionSearch(e);this.showSuggestions=false;return}}this.showSearchbar=false;const t=this.search.emit({query:this._searchQuery,area:this.searchArea});if(t.defaultPrevented){return}this.formElement.submit()}submitSuggestionSearch(e){const t=this.search.emit({user_query:e.user_query,query:e.query,area:e.area,subject:e.subject});if(!t.defaultPrevented){window.location.href=e.url}}handleSuggestionsNav(e){if(!u(e)&&!d(e)){return}if(!this.suggestions.length){return}const t=this.suggestions.map((e=>e.id));if(!t.length){return}e.preventDefault();e.stopPropagation();if(!this.showSuggestions){this.showSuggestions=true}let i=null;const a=t[0];const r=t[t.length-1];const n=t.indexOf(this.activeSuggestion);if(n<0){i=u(e)?a:r}else{if(u(e)){i=t[n+1]||r}else{i=t[n-1]||a}}this.activeSuggestion=i}renderSuggestions(){const e=(e,t)=>i("span",{key:t,class:"suggestion-head","aria-hidden":"true"},e);return i("div",{class:{"suggestions-wrapper":true,hidden:!this.showSuggestions||!this.suggestions.length},onPointerOver:e=>e.preventDefault()},i("div",{id:"search-suggestions",class:"suggestions",role:"listbox","aria-label":"Seleziona tra i suggerimenti"},this.suggestions.map(((t,a)=>{const r=[];if(a===0){r.push(e("Cerca la parola","word-head"))}else if(t.subject&&!this.suggestions[a-1].subject){r.push(i("z-divider",{"aria-hidden":"true"}));r.push(e("Cerca la materia","subj-head"))}r.push(i("span",{key:a,id:t.id,class:"suggestion",role:"option","aria-label":t.aria_label,"aria-selected":this.activeSuggestion===t.id?"true":undefined,onClick:()=>this.submitSuggestionSearch(t)},i("z-icon",{name:"left-magnifying-glass"}),i("span",{"aria-hidden":"true",innerHTML:t.label})));return r}))))}render(){return i(a,{key:"9535c68b8cd3e76a55785cb993bed5026f84a589"},i("form",{key:"26271b8f9034b3ea64bbea6ff413e75d0e857612",class:{searchbar:true,"searchbar-open":this.showSearchbar},ref:e=>this.formElement=e,role:"search","aria-label":"Cerca nel sito",method:"get",action:"/ricerca",onSubmit:e=>this.onSearchSubmit(e),onReset:()=>this.resetSearchQuery()},!!this.searchArea&&i("input",{key:"90e9dc4252a02a00db5160d374bd4ea42c4dce17",type:"hidden",name:"area",value:this.searchArea}),i("div",{key:"6189f91f8cbf9086c1dcddac5a1b649065d4319c",class:"input-wrapper",role:"none"},this.searchQuery&&i("button",{key:"6292dc5e90576b49993ed15d908c675b501568d9",type:"reset","aria-label":"Svuota campo di ricerca",disabled:!this.showSearchbar,"aria-hidden":!this.showSearchbar?"true":undefined,tabIndex:!this.showSearchbar?-1:0},i("z-icon",{key:"67f07f13b459afad718d2687f5feea4271d6ec6a",name:"multiply-circled"})),i("input",{key:"ee4f88993f3bf1ba768eaf1b6ff63cd346bd552e",id:"searchbar-input",name:"q",type:"search",disabled:!this.showSearchbar,placeholder:"Cerca per parola chiave o ISBN",value:this.searchQuery,required:true,autocomplete:"off",role:"combobox","aria-autocomplete":"list","aria-expanded":this.showSuggestions?"true":"false","aria-controls":"search-suggestions","aria-activedescendant":this.activeSuggestion,"aria-label":"Cerca per parola chiave o ISBN","aria-hidden":!this.showSearchbar?"true":undefined,tabIndex:!this.showSearchbar?-1:0,onInput:e=>this.handleInputChange(e),onKeyDown:e=>{if(m(e)){e.preventDefault()}this.handleSuggestionsNav(e)}})),i("button",{key:"4e0feaeaff7bcecaf6a29409a6accac895810fdf",class:"searchbar-button","aria-label":this.showSearchbar?"Esegui ricerca":"Apri il campo di ricerca","aria-controls":"searchbar-input",type:this.showSearchbar?"submit":"button",onClick:()=>this.openSearchbar()},this.showSearchbar?null:i("span",{class:"searchbar-button-label"},"Cerca"),i("z-icon",{key:"49eec7e6f04c34df57fcf99f405d1c3ada1fcdfb",name:"search"}))),this.renderSuggestions())}static get watchers(){return{searchQuery:["onSearchQueryChange"],searchArea:["onSearchAreaChange"],showSearchbar:["onShowSearchbarChange"],showSuggestions:["onShowSuggestionsChange"]}}};H.style=q;export{o as zanit_back_to_top,z as zanit_menubar,A as zanit_mobile_menubar,H as zanit_search_form};
2
+ //# sourceMappingURL=p-62cc02c2.entry.js.map