@zanichelli/zanichelli-it-frontend-kit 1.3.0-RC1 → 1.3.0-RC2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/zanit-menubar.zanit-mobile-menubar.zanit-search-form.entry.cjs.js.map +1 -1
- package/dist/cjs/zanit-menubar_3.cjs.entry.js +5 -6
- package/dist/cjs/zanit-menubar_3.cjs.entry.js.map +1 -1
- package/dist/collection/components/menubar/search-form/search-form.css +6 -0
- package/dist/collection/components/menubar/search-form/search-form.js +3 -4
- package/dist/collection/components/menubar/search-form/search-form.js.map +1 -1
- package/dist/collection/components/menubar/search-form/suggestions.js +1 -1
- package/dist/collection/components/menubar/search-form/suggestions.js.map +1 -1
- package/dist/components/{p-DRtCn2AS.js → p-Bk8_DaVU.js} +7 -8
- package/dist/components/p-Bk8_DaVU.js.map +1 -0
- package/dist/components/{p-CuXV3NdC.js → p-Cs52y6qp.js} +3 -3
- package/dist/components/{p-CuXV3NdC.js.map → p-Cs52y6qp.js.map} +1 -1
- package/dist/components/zanit-menubar.js +2 -2
- package/dist/components/zanit-mobile-menubar.js +1 -1
- package/dist/components/zanit-search-form.js +1 -1
- package/dist/esm/zanit-menubar.zanit-mobile-menubar.zanit-search-form.entry.js.map +1 -1
- package/dist/esm/zanit-menubar_3.entry.js +5 -6
- package/dist/esm/zanit-menubar_3.entry.js.map +1 -1
- package/dist/zanichelli-it-frontend-kit/{p-d7e08556.entry.js → p-1dddc763.entry.js} +2 -2
- package/dist/zanichelli-it-frontend-kit/{p-d7e08556.entry.js.map → p-1dddc763.entry.js.map} +1 -1
- package/dist/zanichelli-it-frontend-kit/zanichelli-it-frontend-kit.esm.js +1 -1
- package/dist/zanichelli-it-frontend-kit/zanit-menubar.zanit-mobile-menubar.zanit-search-form.entry.esm.js.map +1 -1
- package/package.json +1 -1
- package/www/build/{p-d7e08556.entry.js → p-1dddc763.entry.js} +2 -2
- package/www/build/{p-d7e08556.entry.js.map → p-1dddc763.entry.js.map} +1 -1
- package/www/build/{p-3c83769f.js → p-d121e671.js} +1 -1
- package/www/build/zanichelli-it-frontend-kit.esm.js +1 -1
- package/www/build/zanit-menubar.zanit-mobile-menubar.zanit-search-form.entry.esm.js.map +1 -1
- package/www/index.html +5 -1
- package/dist/components/p-DRtCn2AS.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{h as e,r as t,a as i,F as r,c as a,H as n}from"./p-B82IapZZ.js";const s=(e,t)=>t.composedPath().filter((e=>e!==document&&e!==window.window)).some((t=>e.contains(t)));const o=(e,t)=>{e.tabIndex=-1;t.tabIndex=0;t.focus({preventScroll:true})};const h=e=>e.key==="ArrowUp";const c=e=>e.key==="ArrowDown";const u=e=>e.key==="Tab";const l=e=>e.key==="Escape";const d="default";const m={id:d,label:d};const p=e=>{const t=e.reduce(((e,t)=>{const i=e.find((({group:e})=>e.id===(t.group?.id||m.id)));if(!i){e.push({group:t.group??m,items:[t]})}else{i.items.push(t)}return e}),[]);return t.sort(((e,t)=>e.group.id===d?1:t.group.id===d?-1:0))};const f=({controlledBy:t,items:i,currentPath:r=[],onItemKeyDown:a})=>{if(!i?.length){return null}const n=p(i);const s=e=>r.includes(t)&&r.includes(e.id);return e("div",{class:"menu-wrapper",role:"none"},e("div",{class:"menu","aria-labelledby":t??undefined,role:"menu"},n.map((({group:t,items:i})=>e("div",{class:{group:true,highlight:i.some((e=>e.highlight))}},t.id!==d?e("div",{class:"group-name",id:t.id},t.label):n.length>1?e("div",{class:"group-name"}):null,e("ul",{class:"menu-list",role:"group","aria-labelledby":t.id!==d?t.id:undefined},i.map((t=>e("li",{role:"none"},t.href&&e("a",{class:{"menu-item":true,active:s(t)},href:t.href,role:"menuitem",tabIndex:-1,"aria-current":s(t)?"page":"false",onKeyDown:e=>a(e),target:t.target},t.label))))))))))};var b;(function(e){e["DEV"]="dev";e["TEST"]="test";e["PROD"]="prod"})(b||(b={}));const g={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 w(e){try{const t=await fetch(`${g[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 x=":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{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 y=".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 v=class{constructor(e){t(this,e)}get host(){return i(this)}items=[];openMenu=undefined;openNavbar=undefined;currentPath=[];isMobile=false;loading=false;data;current=undefined;searchQuery=undefined;searchEnv=b.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||s(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||s(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 r=t[(i-1+t.length)%t.length];o(e,r);if(r.ariaHasPopup==="true"&&this.openMenu){this.openMenu=r.id}}focusNextItem(e){this.openMenu=undefined;const t=this.getParentMenubarElements(e);const i=t.indexOf(e);const r=t[(i+1)%t.length];o(e,r);if(r.ariaHasPopup==="true"&&this.openMenu){this.openMenu=r.id}}handleItemKeydown(e,t){const i=e.target;switch(e.key){case"Home":{e.preventDefault();e.stopPropagation();const t=this.getParentMenubarElements(i)[0];o(i,t);break}case"End":{e.preventDefault();e.stopPropagation();const t=this.getParentMenubarElements(i).pop();o(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"]`));o(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 r=i.indexOf(t);switch(e.key){case"ArrowUp":{e.preventDefault();e.stopPropagation();const a=i[r-1]||i[i.length-1];o(t,a);break}case"ArrowRight":{e.preventDefault();e.stopPropagation();const i=t.closest("[role=group]");const r=this.getNextGroup(i);if(!r){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 a=r.querySelectorAll('[role="menuitem"]')??[];o(t,a[0]);break}case"ArrowDown":{e.preventDefault();e.stopPropagation();const a=i[r+1]||i[0];o(t,a);break}case"ArrowLeft":{e.preventDefault();e.stopPropagation();const i=t.closest("[role=group]");const r=this.getPreviousGroup(i);if(!r){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 a=r.querySelectorAll('[role="menuitem"]')??[];o(t,a[0]);break}case"Home":e.preventDefault();e.stopPropagation();o(t,i[0]);break;case"End":e.preventDefault();e.stopPropagation();o(t,i[i.length-1]);break}}render(){if(this.isMobile){return e("zanit-mobile-menubar",{items:this.items,currentPath:this.currentPath,searchQuery:this.searchQuery,loading:this.loading,searchArea:this.searchArea,searchEnv:this.searchEnv})}return e("nav",{"aria-label":"Zanichelli.it"},e("div",{class:"shadow-wrapper"},e("div",{class:"width-limiter"},e("ul",{class:"menubar",role:"menubar","aria-label":"Zanichelli.it"},this.loading&&[...new Array(4)].map(((t,i)=>e(r,null,e("li",{role:"none"},e("div",{class:"menubar-item"},e("z-ghost-loading",null))),i<3&&e("li",{role:"separator"})))),this.items?.map(((t,i)=>e(r,null,e("li",{role:"none"},e("a",{class:{"menubar-item":true,active:this.isActive(t)},href:t.href,id:t.id,role:"menuitem",tabIndex:-1,"aria-expanded":t.menuItems?.length?this.openMenu===t.id?"true":"false":undefined,"aria-haspopup":t.menuItems?.length?"true":"false","aria-current":this.current.includes(t.id)?"page":"false",onPointerOver:()=>this.showMenu(t),onKeyDown:e=>this.handleItemKeydown(e,t),target:t.target},e("span",{"data-text":t.label},t.label),t.menuItems?.length>0&&e("z-icon",{name:this.openMenu===t.id?"chevron-up":"chevron-down",width:"0.875rem",height:"0.875rem"}))),i<this.items?.length-1&&e("li",{role:"separator"}))))),e("zanit-search-form",{searchQuery:this.searchQuery,searchArea:this.searchArea,searchEnv:this.searchEnv,onResetSearch:()=>this.searchQuery=undefined})),this.items.map((t=>this.openMenu===t.id&&e(f,{controlledBy:t.id,items:t.menuItems,currentPath:this.currentPath,onItemKeyDown:e=>this.handleMenuKeydown(e)})))),this.items?.filter((e=>this.isActive(e))).map((t=>t.navbarItems?.length&&e("nav",{class:{"sub-menubar":true,"shadow-wrapper":true},"aria-label":`Sezioni: ${t.label}`},e("ul",{role:"menubar"},t.navbarItems.map((i=>e(r,null,e("li",{role:"none"},e("a",{class:{"menubar-item":true,active:this.isActive(i)},href:i.href,id:i.id,role:"menuitem",tabIndex:-1,"aria-haspopup":i.menuItems?.length?"true":"false","aria-expanded":i.menuItems?.length?this.openMenu===i.id?"true":"false":undefined,"aria-current":this.current.includes(i.id)?"page":"false",onPointerOver:()=>this.showMenu(i),onKeyDown:e=>this.handleItemKeydown(e,i),target:t.target},e("span",null,i.label),i.menuItems?.length>0&&e("z-icon",{name:this.openMenu===i.id?"chevron-up":"chevron-down",width:"0.75rem",height:"0.75rem"}))))))),t.navbarItems.map((t=>this.openMenu===t.id&&e(f,{controlledBy:t.id,items:t.menuItems,currentPath:this.currentPath,onItemKeyDown:e=>this.handleMenuKeydown(e)})))))))}static get delegatesFocus(){return true}static get watchers(){return{data:["parseData"],items:["onItemsChange"],current:["onCurrentChange"]}}};v.style=x+y;const k=":host{position:relative;z-index:2;display:block;width:100%;max-width:100%;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 z=".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 S=class{constructor(e){t(this,e)}get host(){return i(this)}currentPath=[];items=[];searchQuery=undefined;loading=false;searchEnv=b.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 r=t[(i-1+t.length)%t.length];o(t[i],r);break}case"ArrowDown":{e.preventDefault();e.stopPropagation();const t=this.menuItemsElement;const i=t.indexOf(e.target);const r=t[(i+1)%t.length];o(t[i],r);break}case"Home":{e.preventDefault();e.stopPropagation();o(e.target,this.menuItemsElement[0]);break}case"End":{e.preventDefault();e.stopPropagation();o(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(s(this.host,e)){return}this.open=false}handleKeydown(e){switch(e.key){case"Escape":this.open=false;break;case"Tab":if(s(this.host,e)){break}this.open=false;break}}handleFocusout(e){if(s(this.host,e)){return}this.open=false}render(){return e("nav",{key:"f21d484bf0c81aa8e4583f71bf8a8523c57b791f","aria-label":"Zanichelli.it"},e("button",{key:"5331948d9f25ebf2812b9538ba2654ccd98a376a",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()},e("z-icon",{key:"14b6264bd1aa3383a90d0f38924cc73b407af7fb",name:this.open?"multiply":"burger-menu",width:"1.5rem",height:"1.5rem"})),e("z-logo",{key:"ad25511bb218bdfae227a6f84c2f84790da5495a",imageAlt:"Logo Zanichelli",link:"/",height:32,width:126}),e("zanit-search-form",{key:"a76767d008e17c8c22baef76eb5ef6237764a665",searchQuery:this.searchQuery,onResetSearch:()=>this.searchQuery=undefined,searchArea:this.searchArea,searchEnv:this.searchEnv}),this.open&&e("ul",{key:"dc7159a8a0342825a7828323204dd10e32ea30ee",class:"mobile-menu",role:"menubar"},!this.loading&&this.currentPath&&this.currentPath.length>0&&e("li",{key:"60f03b21375d3cdc89242a67b89c42a6d2aad5ca",role:"none"},e("a",{key:"143c13385480d4860d95cc073af0d53aa8f622f2",class:"parent",href:this.parentItem?.href??"/",id:this.parentItem?.id??undefined,role:"menuitem",tabIndex:-1,onKeyDown:e=>this.handleItemKeydown(e),target:this.parentItem?.target},e("z-icon",{key:"a433613bd001bcbd44ba98305291d8d585349f21",name:"arrow-left",width:"0.5rem",height:"0.5rem"}),e("span",{key:"237cc68a00c57e71ef564444ab872a4d47bf7071"},this.parentItem?.label||"Home"))),this.loading?e("div",{class:"items-container",role:"none"},[...new Array(4)].map((()=>e("li",{role:"none"},e("div",{class:"menubar-item",role:"none"},e("z-ghost-loading",null)))))):this.menuType==="menu"?e(f,{items:this.menuItems,controlledBy:this.parentItem?.id,currentPath:this.currentPath,onItemKeyDown:e=>this.handleItemKeydown(e)}):this.menuItems?.length>0&&e("div",{class:"items-container",role:"none"},this.menuItems.map((t=>e("li",{role:"none"},e("a",{class:{"menu-item":this.menuType==="menu","menubar-item":this.menuType==="menubar"},href:t.href,id:t.id,role:"menuitem","aria-current":this.lastCurrent===t.id?"page":"false",tabIndex:-1,onKeyDown:e=>this.handleItemKeydown(e),target:t.target},e("span",{"data-text":t.label},t.label))))))))}static get delegatesFocus(){return true}static get watchers(){return{items:["onItemsChange"],currentPath:["onItemsChange"]}}};S.style=k+z;var A;(function(e){e["SCUOLA"]="Scuola";e["UNIVERSITÀ"]="Università";e["GIURIDICO"]="Giuridico";e["DIZIONARI"]="Dizionari";e["SAGGISTICA"]="Saggistica"})(A||(A={}));const I=Object.keys(A);function C(e,t,i){const r=K(e,t);const a=r.length>0;const n=a?e.toUpperCase():undefined;const s=[];if(i)s.push(E(e,i));s.push(E(e));if(a){if(i){const t=[...r.filter((e=>e===i)),...r.filter((e=>e!==i)).sort(((e,t)=>_(e)-_(t)))];t.forEach((t=>s.push(D(e,t,n))))}else{r.sort(((e,t)=>_(e)-_(t))).forEach((t=>s.push(D(e,t,n))))}}return s}const E=(e,t)=>({id:T(`word-${e}-${t}`),label:j(e,t,false,false),html_label:j(e,t,false,true),url:$({q:e,...t?{area:t}:{},user_query:e}),...P(e,e,t)});const D=(e,t,i)=>({id:T(`subj-${e}-${t}-${i}`),label:j(e,t,true,false),html_label:j(e,t,true,true),url:$({area:t,materia:i,user_query:e}),...P(e,undefined,t,i)});const T=e=>e.split("").map((e=>e.charCodeAt(0).toString(16))).join("");const $=e=>`ricerca?${new URLSearchParams(e).toString()}`;const P=(e,t,i,r)=>({user_query:e,...t?{query:t}:{},...i?{area:i}:{},...r?{subject:r}:{}});const j=(e,t,i=false,r=false)=>{const a=r?`<strong>`:``;const n=r?`</strong>`:``;return`Cerca la ${i?`materia`:`parola`} ${a}${e}${n} ${t?`nel catalogo ${a}${A[t]??t}`:`in tutto il sito`}${n}`};function K(e,t){const i=M(e);return Object.entries(t).filter((([,e])=>e.some((e=>e.toLowerCase()===i)))).map((([e])=>e))}const M=e=>e.toLowerCase().replace(/\s+/g," ");const _=e=>{const t=I.indexOf(e);return t>=0?t:100};const O=":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);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;width:100vw;margin-left:-50vw;left:50%;top:48px;background:#fff;box-shadow:var(--shadow-1);border-top:1px solid var(--gray200)}.suggestions-wrapper.hidden{display:none}.suggestions{display:flex;padding:var(--space-unit);flex-direction:column;align-items:stretch;width:100%;margin:0 auto}.suggestion{cursor:pointer;padding:calc(var(--space-unit) * 0.75) var(--space-unit)}.suggestion:hover,.suggestion[aria-selected='true']{background:var(--gray100)}@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{padding:var(--space-unit) calc(var(--space-unit) * 3);max-width:1366px}}";const Q=class{constructor(e){t(this,e);this.search=a(this,"search");this.resetSearch=a(this,"resetSearch")}formElement;subjectsByArea={};timer;get host(){return i(this)}showSearchbar=false;_searchQuery=undefined;suggestions=[];activeSuggestion="";showSuggestions=false;searchQuery=undefined;searchEnv=b.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 w(this.searchEnv);this.showSearchbar=!!this.searchQuery;this._searchQuery=this.searchQuery}handleOutsideClick(e){if(this.showSearchbar&&this.host&&!s(this.host,e)){this.showSearchbar=false}}handleEsc(e){if(!l(e)){return}if(this.showSuggestions){this.showSuggestions=false}else{this.showSearchbar=false}}handleTab(e){if(!u(e)){return}this.showSuggestions=false;if(!s(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=C(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;this.showSuggestions=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(!c(e)&&!h(e)){return}if(!this.suggestions.length){return}const t=Array.from(this.host.shadowRoot.querySelectorAll("[role='option']")).map((e=>e.id));if(!t.length){return}e.preventDefault();e.stopPropagation();if(!this.showSuggestions){this.showSuggestions=true}let i=null;const r=t[0];const a=t[t.length-1];const n=t.indexOf(this.activeSuggestion);if(n<0){i=c(e)?r:a}else{if(c(e)){i=t[n+1]||a}else{i=t[n-1]||r}}this.activeSuggestion=i}renderSuggestions(){return e("div",{class:{"suggestions-wrapper":true,hidden:!this.showSuggestions||!this.suggestions.length},onPointerOver:e=>e.preventDefault()},e("div",{id:"search-suggestions",class:"suggestions",role:"listbox","aria-label":"Seleziona tra i suggerimenti"},this.suggestions.map(((t,i)=>e("span",{key:i,innerHTML:t.html_label,id:t.id,class:"suggestion",role:"option","aria-label":t.label,"aria-selected":this.activeSuggestion===t.id?"true":undefined,onClick:()=>this.submitSuggestionSearch(t)})))))}render(){return e(n,{key:"d7316fa36a078c2dd1c5888ba35bf004e4c08e6c"},e("form",{key:"36180991431f49981a4bddd58e4caf0253f326ef",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&&e("input",{key:"98862f739245597cd1c22b76c15e2e728a429f17",type:"hidden",name:"area",value:this.searchArea}),e("div",{key:"919e102ea248a41caea96fc3c7289b106d54195d",class:"input-wrapper",role:"none"},this.searchQuery&&e("button",{key:"d53357c9b63e6bae5b28809499265a7c332b5f2d",type:"reset","aria-label":"Svuota campo di ricerca",disabled:!this.showSearchbar,"aria-hidden":!this.showSearchbar?"true":undefined,tabIndex:!this.showSearchbar?-1:0},e("z-icon",{key:"2ff06d5550f8701e6256f178b925153cac565be8",name:"multiply-circled"})),e("input",{key:"879339821611ce65bd2777726ebabd0c44384b72",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.suggestions.length?"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(l(e)){e.preventDefault()}this.handleSuggestionsNav(e)}})),e("button",{key:"7101e9eedd9385bfeb5ee41a80d7e6842e75f493",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:e("span",{class:"searchbar-button-label"},"Cerca"),e("z-icon",{key:"6e8d065e91e94fba49c64e856129d72155e88b84",name:"search"}))),this.renderSuggestions())}static get watchers(){return{searchQuery:["onSearchQueryChange"],searchArea:["onSearchAreaChange"],showSearchbar:["onShowSearchbarChange"],showSuggestions:["onShowSuggestionsChange"]}}};Q.style=O;export{v as zanit_menubar,S as zanit_mobile_menubar,Q as zanit_search_form};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{h as e,r as t,a as i,F as a,c as r,H as n}from"./p-B82IapZZ.js";const s=(e,t)=>t.composedPath().filter((e=>e!==document&&e!==window.window)).some((t=>e.contains(t)));const o=(e,t)=>{e.tabIndex=-1;t.tabIndex=0;t.focus({preventScroll:true})};const h=e=>e.key==="ArrowUp";const c=e=>e.key==="ArrowDown";const u=e=>e.key==="Tab";const l=e=>e.key==="Escape";const d="default";const m={id:d,label:d};const p=e=>{const t=e.reduce(((e,t)=>{const i=e.find((({group:e})=>e.id===(t.group?.id||m.id)));if(!i){e.push({group:t.group??m,items:[t]})}else{i.items.push(t)}return e}),[]);return t.sort(((e,t)=>e.group.id===d?1:t.group.id===d?-1:0))};const f=({controlledBy:t,items:i,currentPath:a=[],onItemKeyDown:r})=>{if(!i?.length){return null}const n=p(i);const s=e=>a.includes(t)&&a.includes(e.id);return e("div",{class:"menu-wrapper",role:"none"},e("div",{class:"menu","aria-labelledby":t??undefined,role:"menu"},n.map((({group:t,items:i})=>e("div",{class:{group:true,highlight:i.some((e=>e.highlight))}},t.id!==d?e("div",{class:"group-name",id:t.id},t.label):n.length>1?e("div",{class:"group-name"}):null,e("ul",{class:"menu-list",role:"group","aria-labelledby":t.id!==d?t.id:undefined},i.map((t=>e("li",{role:"none"},t.href&&e("a",{class:{"menu-item":true,active:s(t)},href:t.href,role:"menuitem",tabIndex:-1,"aria-current":s(t)?"page":"false",onKeyDown:e=>r(e),target:t.target},t.label))))))))))};var b;(function(e){e["DEV"]="dev";e["TEST"]="test";e["PROD"]="prod"})(b||(b={}));const g={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 w(e){try{const t=await fetch(`${g[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 x=":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{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 y=".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 v=class{constructor(e){t(this,e)}get host(){return i(this)}items=[];openMenu=undefined;openNavbar=undefined;currentPath=[];isMobile=false;loading=false;data;current=undefined;searchQuery=undefined;searchEnv=b.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||s(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||s(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];o(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];o(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];o(i,t);break}case"End":{e.preventDefault();e.stopPropagation();const t=this.getParentMenubarElements(i).pop();o(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"]`));o(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];o(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"]')??[];o(t,r[0]);break}case"ArrowDown":{e.preventDefault();e.stopPropagation();const r=i[a+1]||i[0];o(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"]')??[];o(t,r[0]);break}case"Home":e.preventDefault();e.stopPropagation();o(t,i[0]);break;case"End":e.preventDefault();e.stopPropagation();o(t,i[i.length-1]);break}}render(){if(this.isMobile){return e("zanit-mobile-menubar",{items:this.items,currentPath:this.currentPath,searchQuery:this.searchQuery,loading:this.loading,searchArea:this.searchArea,searchEnv:this.searchEnv})}return e("nav",{"aria-label":"Zanichelli.it"},e("div",{class:"shadow-wrapper"},e("div",{class:"width-limiter"},e("ul",{class:"menubar",role:"menubar","aria-label":"Zanichelli.it"},this.loading&&[...new Array(4)].map(((t,i)=>e(a,null,e("li",{role:"none"},e("div",{class:"menubar-item"},e("z-ghost-loading",null))),i<3&&e("li",{role:"separator"})))),this.items?.map(((t,i)=>e(a,null,e("li",{role:"none"},e("a",{class:{"menubar-item":true,active:this.isActive(t)},href:t.href,id:t.id,role:"menuitem",tabIndex:-1,"aria-expanded":t.menuItems?.length?this.openMenu===t.id?"true":"false":undefined,"aria-haspopup":t.menuItems?.length?"true":"false","aria-current":this.current.includes(t.id)?"page":"false",onPointerOver:()=>this.showMenu(t),onKeyDown:e=>this.handleItemKeydown(e,t),target:t.target},e("span",{"data-text":t.label},t.label),t.menuItems?.length>0&&e("z-icon",{name:this.openMenu===t.id?"chevron-up":"chevron-down",width:"0.875rem",height:"0.875rem"}))),i<this.items?.length-1&&e("li",{role:"separator"}))))),e("zanit-search-form",{searchQuery:this.searchQuery,searchArea:this.searchArea,searchEnv:this.searchEnv,onResetSearch:()=>this.searchQuery=undefined})),this.items.map((t=>this.openMenu===t.id&&e(f,{controlledBy:t.id,items:t.menuItems,currentPath:this.currentPath,onItemKeyDown:e=>this.handleMenuKeydown(e)})))),this.items?.filter((e=>this.isActive(e))).map((t=>t.navbarItems?.length&&e("nav",{class:{"sub-menubar":true,"shadow-wrapper":true},"aria-label":`Sezioni: ${t.label}`},e("ul",{role:"menubar"},t.navbarItems.map((i=>e(a,null,e("li",{role:"none"},e("a",{class:{"menubar-item":true,active:this.isActive(i)},href:i.href,id:i.id,role:"menuitem",tabIndex:-1,"aria-haspopup":i.menuItems?.length?"true":"false","aria-expanded":i.menuItems?.length?this.openMenu===i.id?"true":"false":undefined,"aria-current":this.current.includes(i.id)?"page":"false",onPointerOver:()=>this.showMenu(i),onKeyDown:e=>this.handleItemKeydown(e,i),target:t.target},e("span",null,i.label),i.menuItems?.length>0&&e("z-icon",{name:this.openMenu===i.id?"chevron-up":"chevron-down",width:"0.75rem",height:"0.75rem"}))))))),t.navbarItems.map((t=>this.openMenu===t.id&&e(f,{controlledBy:t.id,items:t.menuItems,currentPath:this.currentPath,onItemKeyDown:e=>this.handleMenuKeydown(e)})))))))}static get delegatesFocus(){return true}static get watchers(){return{data:["parseData"],items:["onItemsChange"],current:["onCurrentChange"]}}};v.style=x+y;const k=":host{position:relative;z-index:2;display:block;width:100%;max-width:100%;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 z=".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 S=class{constructor(e){t(this,e)}get host(){return i(this)}currentPath=[];items=[];searchQuery=undefined;loading=false;searchEnv=b.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];o(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];o(t[i],a);break}case"Home":{e.preventDefault();e.stopPropagation();o(e.target,this.menuItemsElement[0]);break}case"End":{e.preventDefault();e.stopPropagation();o(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(s(this.host,e)){return}this.open=false}handleKeydown(e){switch(e.key){case"Escape":this.open=false;break;case"Tab":if(s(this.host,e)){break}this.open=false;break}}handleFocusout(e){if(s(this.host,e)){return}this.open=false}render(){return e("nav",{key:"f21d484bf0c81aa8e4583f71bf8a8523c57b791f","aria-label":"Zanichelli.it"},e("button",{key:"5331948d9f25ebf2812b9538ba2654ccd98a376a",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()},e("z-icon",{key:"14b6264bd1aa3383a90d0f38924cc73b407af7fb",name:this.open?"multiply":"burger-menu",width:"1.5rem",height:"1.5rem"})),e("z-logo",{key:"ad25511bb218bdfae227a6f84c2f84790da5495a",imageAlt:"Logo Zanichelli",link:"/",height:32,width:126}),e("zanit-search-form",{key:"a76767d008e17c8c22baef76eb5ef6237764a665",searchQuery:this.searchQuery,onResetSearch:()=>this.searchQuery=undefined,searchArea:this.searchArea,searchEnv:this.searchEnv}),this.open&&e("ul",{key:"dc7159a8a0342825a7828323204dd10e32ea30ee",class:"mobile-menu",role:"menubar"},!this.loading&&this.currentPath&&this.currentPath.length>0&&e("li",{key:"60f03b21375d3cdc89242a67b89c42a6d2aad5ca",role:"none"},e("a",{key:"143c13385480d4860d95cc073af0d53aa8f622f2",class:"parent",href:this.parentItem?.href??"/",id:this.parentItem?.id??undefined,role:"menuitem",tabIndex:-1,onKeyDown:e=>this.handleItemKeydown(e),target:this.parentItem?.target},e("z-icon",{key:"a433613bd001bcbd44ba98305291d8d585349f21",name:"arrow-left",width:"0.5rem",height:"0.5rem"}),e("span",{key:"237cc68a00c57e71ef564444ab872a4d47bf7071"},this.parentItem?.label||"Home"))),this.loading?e("div",{class:"items-container",role:"none"},[...new Array(4)].map((()=>e("li",{role:"none"},e("div",{class:"menubar-item",role:"none"},e("z-ghost-loading",null)))))):this.menuType==="menu"?e(f,{items:this.menuItems,controlledBy:this.parentItem?.id,currentPath:this.currentPath,onItemKeyDown:e=>this.handleItemKeydown(e)}):this.menuItems?.length>0&&e("div",{class:"items-container",role:"none"},this.menuItems.map((t=>e("li",{role:"none"},e("a",{class:{"menu-item":this.menuType==="menu","menubar-item":this.menuType==="menubar"},href:t.href,id:t.id,role:"menuitem","aria-current":this.lastCurrent===t.id?"page":"false",tabIndex:-1,onKeyDown:e=>this.handleItemKeydown(e),target:t.target},e("span",{"data-text":t.label},t.label))))))))}static get delegatesFocus(){return true}static get watchers(){return{items:["onItemsChange"],currentPath:["onItemsChange"]}}};S.style=k+z;var A;(function(e){e["SCUOLA"]="Scuola";e["UNIVERSITÀ"]="Università";e["GIURIDICO"]="Giuridico";e["DIZIONARI"]="Dizionari";e["SAGGISTICA"]="Saggistica"})(A||(A={}));const I=Object.keys(A);function C(e,t,i){const a=K(e,t);const r=a.length>0;const n=r?e.toUpperCase():undefined;const s=[];if(i)s.push(E(e,i));s.push(E(e));if(r){if(i){const t=[...a.filter((e=>e===i)),...a.filter((e=>e!==i)).sort(((e,t)=>_(e)-_(t)))];t.forEach((t=>s.push(D(e,t,n))))}else{a.sort(((e,t)=>_(e)-_(t))).forEach((t=>s.push(D(e,t,n))))}}return s}const E=(e,t)=>({id:T(`word-${e}-${t}`),label:j(e,t,false,false),html_label:j(e,t,false,true),url:$({q:e,...t?{area:t}:{},user_query:e}),...P(e,e,t)});const D=(e,t,i)=>({id:T(`subj-${e}-${t}-${i}`),label:j(e,t,true,false),html_label:j(e,t,true,true),url:$({area:t,materia:i,user_query:e}),...P(e,undefined,t,i)});const T=e=>e.split("").map((e=>e.charCodeAt(0).toString(16))).join("");const $=e=>`ricerca?${new URLSearchParams(e).toString()}`;const P=(e,t,i,a)=>({user_query:e,...t?{query:t}:{},...i?{area:i}:{},...a?{subject:a}:{}});const j=(e,t,i=false,a=false)=>{const r=a?`<strong>`:``;const n=a?`</strong>`:``;return`Cerca la ${i?`materia`:`parola`} ${r}${e}${n} ${t?`nel catalogo ${r}${A[t]??t}${n}`:`in tutto il sito`}`};function K(e,t){const i=M(e);return Object.entries(t).filter((([,e])=>e.some((e=>e.toLowerCase()===i)))).map((([e])=>e))}const M=e=>e.toLowerCase().replace(/\s+/g," ");const _=e=>{const t=I.indexOf(e);return t>=0?t:100};const O=":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);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;width:100vw;margin-left:-50vw;left:50%;top:48px;background:#fff;box-shadow:var(--shadow-1);border-top:1px solid var(--gray200)}.suggestions-wrapper.hidden{display:none}.suggestions{display:flex;padding:var(--space-unit);flex-direction:column;align-items:stretch;width:100%;margin:0 auto}.suggestion{cursor:pointer;padding:calc(var(--space-unit) * 0.75) var(--space-unit);font-size:1rem;line-height:1.5rem}.suggestion strong{font-size:1.125rem}.suggestion:hover,.suggestion[aria-selected='true']{background:var(--gray100)}@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{padding:var(--space-unit) calc(var(--space-unit) * 3);max-width:1366px}}";const Q=class{constructor(e){t(this,e);this.search=r(this,"search");this.resetSearch=r(this,"resetSearch")}formElement;subjectsByArea={};timer;get host(){return i(this)}showSearchbar=false;_searchQuery=undefined;suggestions=[];activeSuggestion="";showSuggestions=false;searchQuery=undefined;searchEnv=b.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 w(this.searchEnv);this.showSearchbar=!!this.searchQuery;this._searchQuery=this.searchQuery}handleOutsideClick(e){if(this.showSearchbar&&this.host&&!s(this.host,e)){this.showSearchbar=false}}handleEsc(e){if(!l(e)){return}if(this.showSuggestions){this.showSuggestions=false}else{this.showSearchbar=false}}handleTab(e){if(!u(e)){return}this.showSuggestions=false;if(!s(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=C(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(!c(e)&&!h(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=c(e)?a:r}else{if(c(e)){i=t[n+1]||r}else{i=t[n-1]||a}}this.activeSuggestion=i}renderSuggestions(){return e("div",{class:{"suggestions-wrapper":true,hidden:!this.showSuggestions||!this.suggestions.length},onPointerOver:e=>e.preventDefault()},e("div",{id:"search-suggestions",class:"suggestions",role:"listbox","aria-label":"Seleziona tra i suggerimenti"},this.suggestions.map(((t,i)=>e("span",{key:i,innerHTML:t.html_label,id:t.id,class:"suggestion",role:"option","aria-label":t.label,"aria-selected":this.activeSuggestion===t.id?"true":undefined,onClick:()=>this.submitSuggestionSearch(t)})))))}render(){return e(n,{key:"7ac06128ddbb7b5eed2d579d615607f725a3d922"},e("form",{key:"238b35f0aa41c95b3329da5fc80e17f3a47dfff6",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&&e("input",{key:"bdd71f66a0947eeae7f657298cc2397f512884ab",type:"hidden",name:"area",value:this.searchArea}),e("div",{key:"9e40abc78a5d1910ace9bc628f10035696df7e7f",class:"input-wrapper",role:"none"},this.searchQuery&&e("button",{key:"f84706b7c06dabb0b6a81eae6530e26eddc95a04",type:"reset","aria-label":"Svuota campo di ricerca",disabled:!this.showSearchbar,"aria-hidden":!this.showSearchbar?"true":undefined,tabIndex:!this.showSearchbar?-1:0},e("z-icon",{key:"6ff774cf791dc2f7ebb1861a5697e27ae040206f",name:"multiply-circled"})),e("input",{key:"e53291d60e203c72a79af09eb9072dde62b6a916",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(l(e)){e.preventDefault()}this.handleSuggestionsNav(e)}})),e("button",{key:"836604e75ca90d451cba93236509f20a3a22cf16",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:e("span",{class:"searchbar-button-label"},"Cerca"),e("z-icon",{key:"1616128d97c04a1e4768f163fcc20a21664daca4",name:"search"}))),this.renderSuggestions())}static get watchers(){return{searchQuery:["onSearchQueryChange"],searchArea:["onSearchAreaChange"],showSearchbar:["onShowSearchbarChange"],showSuggestions:["onShowSuggestionsChange"]}}};Q.style=O;export{v as zanit_menubar,S as zanit_mobile_menubar,Q as zanit_search_form};
|
|
2
|
+
//# sourceMappingURL=p-1dddc763.entry.js.map
|