PARQUET PREFINITO / NOCE

Nord America.
La voce del Noce americano.

Sette modelli per esplorare le sfumature del Noce americano. Una materia da leggere nella luce del tuo ambiente.
Superficie in Noce americano
Campione fotografico della collezione
01 / TROVA LA TUA MATERIA

Il colore che senti.
La superficie che scegli.

Apri un modello per esplorare la proposta in plancia o nelle tre geometrie a spina.
SCEGLI IL DISEGNO, POI IL MODELLO
Tutti i modelli sono disponibili anche nelle tre geometrie a spina. Il formato si sceglie nella scheda prodotto.
Filtra i modelliTutte le collezioni e tonalità
Le opzioni non compatibili con i filtri attivi sono disattivate.
SCEGLI LA FINITURA
SCEGLI LA TONALITÀ
7 modelli mostrati
Le immagini mostrano i campioni dei modelli. La resa del colore varia con luce e schermo: confronta sempre un campione reale.
02 / MISURE E SELEZIONI

Il formato cambia
il ritmo dello spazio.

Larghezza, struttura e scelta estetica si confrontano insieme al progetto.
01

La struttura

Legno nobile da 3 o 4,2 mm su supporto multistrato. Le strutture selezionabili arrivano a 16 mm totali, secondo configurazione.
02

I formati

Larghezze 90, 120, 140, 180 mm. La lunghezza si definisce sulla specifica di fornitura.
03

La scelta

Select ○, Natur △, Rustic □. La disponibilità della scelta si definisce con il formato e la specie. Leggi la guida alle classi di aspetto ↗
IL TUO PROGETTO, INSIEME

La scelta comincia
dal tuo spazio.

Raccontaci il tuo ambiente. Confrontiamo campioni, formati e finiture, poi valutiamo insieme fornitura e posa.
window.mpParquetRoutes={"parquet-in-legno.html": "/it/parquet-in-legno/", "parquet-massello.html": "/it/parquet-massello-essenze/", "massello-doussie-africa-massello.html": "/it/parquet-legno-massello-doussie-africa/", "massello-iroko-africa-massello.html": "/it/parquet-legno-massello-iroko-africa/", "massello-rovere-slavonia-massello.html": "/it/parquet-legno-massello-rovere-slavonia/", "massello-teak-asia-massello.html": "/it/parquet-legno-massello-teak-asia/", "massello-ulivo-italia-massello.html": "/it/parquet-legno-massello-ulivo-italia/", "massello-rovere-slavonia-industriale.html": "/it/parquet-legno-massello-rovere-slavonia-industriale/", "massello-teak-asia-industriale.html": "/it/parquet-legno-massello-teak-asia-industriale/", "parquet-prefinito.html": "/it/parquet-prefinito-collezioni/", "le-plance.html": "/it/parquet-prefinito-le-plance/", "nord-america.html": "/it/parquet-prefinito-nord-america/", "spina-italiana-rovere.html": "/it/parquet-spina-italiana-rovere/", "spina-ungherese-rovere.html": "/it/parquet-spina-ungherese-rovere/", "spina-francese-rovere.html": "/it/parquet-spina-francese-rovere/", "spina-italiana-noce.html": "/it/parquet-spina-italiana-noce-americana/", "spina-ungherese-noce.html": "/it/parquet-spina-ungherese-noce-americana/", "spina-francese-noce.html": "/it/parquet-spina-francese-noce-americana/", "rovere-aurora.html": "/it/parquet-legno-rovere-aurora/", "rovere-everest.html": "/it/parquet-legno-rovere-everest/", "rovere-grand-canyon.html": "/it/parquet-legno-rovere-grand-canyon/", "rovere-great-barrier.html": "/it/parquet-legno-rovere-great-barrier/", "rovere-particutin.html": "/it/parquet-legno-rovere-particutin/", "rovere-rio.html": "/it/parquet-legno-rovere-rio/", "rovere-victoria-falls.html": "/it/parquet-legno-rovere-victoria-falls/", "rovere-dubai.html": "/it/parquet-legno-rovere-dubai/", "rovere-las-vegas.html": "/it/parquet-legno-rovere-las-vegas/", "rovere-london.html": "/it/parquet-legno-rovere-london/", "rovere-miami.html": "/it/parquet-legno-rovere-miami/", "rovere-new-york.html": "/it/parquet-legno-rovere-new-york/", "rovere-shanghai.html": "/it/parquet-legno-rovere-shanghai/", "rovere-singapore.html": "/it/parquet-legno-rovere-singapore/", "rovere-chichen-itza.html": "/it/parquet-legno-rovere-chichen-itza/", "rovere-china-wall.html": "/it/parquet-legno-rovere-china-wall/", "rovere-cristo-rei.html": "/it/parquet-legno-rovere-cristo-rei/", "rovere-machu-pichu.html": "/it/parquet-legno-rovere-machu-pichu/", "rovere-petra.html": "/it/parquet-legno-rovere-petra/", "rovere-rome.html": "/it/parquet-legno-rovere-rome/", "rovere-taj-mahal.html": "/it/parquet-legno-rovere-taj-mahal/", "rovere-coliseum.html": "/it/parquet-legno-rovere-coliseum/", "rovere-great-wall.html": "/it/parquet-legno-rovere-great-wall/", "rovere-hagia-sophia.html": "/it/parquet-legno-rovere-hagia-sophia/", "rovere-nanjing.html": "/it/parquet-legno-rovere-nanjing/", "rovere-pisa.html": "/it/parquet-legno-rovere-pisa/", "rovere-shoqafa.html": "/it/parquet-legno-rovere-shoqafa/", "rovere-stonehenge.html": "/it/parquet-legno-rovere-stonehenge/", "rovere-alexandria.html": "/it/parquet-legno-rovere-alexandria/", "rovere-babylon.html": "/it/parquet-legno-rovere-babylon/", "rovere-ephesus.html": "/it/parquet-legno-rovere-ephesus/", "rovere-giza.html": "/it/parquet-legno-rovere-giza/", "rovere-halicarnassus.html": "/it/parquet-legno-rovere-halicarnassus/", "rovere-olympia.html": "/it/parquet-legno-rovere-olympia/", "rovere-rhodes.html": "/it/parquet-legno-rovere-rhodes/", "noce-bay-of-fundy.html": "/it/parquet-legno-noce-americana-bay-of-fundy/", "noce-everglades.html": "/it/parquet-legno-noce-americana-everglades/", "noce-mount-mckinley.html": "/it/parquet-legno-noce-americana-mount-mckinley/", "noce-niagara-falls.html": "/it/parquet-legno-noce-americana-niagara-falls/", "noce-redwoods.html": "/it/parquet-legno-noce-americana-redwoods/", "noce-yellowstone.html": "/it/parquet-legno-noce-americana-yellowstone/", "noce-yosemite.html": "/it/parquet-legno-noce-americana-yosemite/", "rovere-alma-serenity.html": "/it/parquet-legno-rovere-alma-serenity/", "rovere-alma-harmony.html": "/it/parquet-legno-rovere-alma-harmony/", "rovere-alma-memory.html": "/it/parquet-legno-rovere-alma-memory/", "rovere-alma-purity.html": "/it/parquet-legno-rovere-alma-purity/", "rovere-alma-essence.html": "/it/parquet-legno-rovere-alma-essence/", "rovere-alma-legacy.html": "/it/parquet-legno-rovere-alma-legacy/", "rovere-alma-origin.html": "/it/parquet-legno-rovere-alma-origin/", "rovere-alma-eternity.html": "/it/parquet-legno-rovere-alma-eternity/", "oliato-berlino.html": "/it/parquet-legno-oliato-berlino/", "oliato-denver.html": "/it/parquet-legno-oliato-denver/", "oliato-helsinki.html": "/it/parquet-legno-oliato-helsinki/", "oliato-lisbona.html": "/it/parquet-legno-oliato-lisbona/", "oliato-mosca.html": "/it/parquet-legno-oliato-mosca/", "oliato-nairobi.html": "/it/parquet-legno-oliato-nairobi/", "oliato-oslo.html": "/it/parquet-legno-oliato-oslo/", "oliato-rio-de-janeiro.html": "/it/parquet-legno-oliato-rio-de-janeiro/", "oliato-stoccolma.html": "/it/parquet-legno-oliato-stoccolma/", "oliato-tokyo.html": "/it/parquet-legno-oliato-tokyo/", "parquet-oliato.html": "/it/parquet-oliato/", "parquet-prefinito-classico.html": "/it/parquet-prefinito-classico/", "classico-doussie.html": "/it/parquet-legno-prefinito-classico-doussie/", "classico-iroko.html": "/it/parquet-legno-prefinito-classico-iroko/", "classico-rovere.html": "/it/parquet-legno-prefinito-classico-rovere/", "classico-teak.html": "/it/parquet-legno-prefinito-classico-teak/", "classico-wenge.html": "/it/parquet-legno-prefinito-classico-wenge/", "classi-aspetto-parquet.html": "/it/classi-aspetto-parquet/", "alma.html": "/it/parquet-prefinito-le-plance/?collezione=Alma#collezione", "revisione.html": "/it/parquet-in-legno/"}; window.mpParquetFile="nord-america.html"; window.mpParquetPath=(u)=>u.pathname+u.search+u.hash; window.mpParquetLocal=(u)=>Object.keys(window.mpParquetRoutes).find(k=>new URL(window.mpParquetRoutes[k],location.origin).pathname===u.pathname)||''; /* Anonymous browsing state only: filters/position, never contact details. */ (()=>{'use strict'; const collectionFiles=new Set(['le-plance.html','nord-america.html','parquet-oliato.html','parquet-prefinito-classico.html','parquet-massello.html',...['italiana','ungherese','francese'].flatMap(p=>['rovere','noce'].map(s=>'spina-'+p+'-'+s+'.html'))]); const poses=['plancia','italiana','ungherese','francese']; function safeReturn(raw,base=location.href){ try{ if(!raw||raw.length>1800)return null; const root=new URL('.',base),u=new URL(raw,base),name=window.mpParquetLocal(u); if(u.origin!==location.origin||!collectionFiles.has(name))return null; const clean=new URL(window.mpParquetRoutes[name],location.origin); for(const key of ['collezione','tonalita','finitura','posa']){ const v=u.searchParams.get(key); if(!v||v.length>=80)continue; if(/^[a-zA-Z0-9 _-]+$/.test(v))clean.searchParams.set(key,v); } clean.hash=/^#modello-[a-z0-9-]+$/.test(u.hash)?u.hash:'#collezione'; return clean.pathname+clean.search+clean.hash; }catch{return null;} } function stateKey(url=location.href){const u=new URL(url);return 'mp-parquet:'+u.pathname+u.search;} function savePosition(){ if(!collectionFiles.has(window.mpParquetFile))return; try{sessionStorage.setItem(stateKey(),JSON.stringify({y:window.scrollY,time:Date.now()}));}catch{} } function restorePosition(){ const back=performance.getEntriesByType?.('navigation')[0]?.type==='back_forward'; if(!(back||location.hash.startsWith('#modello-')))return; let saved;try{saved=JSON.parse(sessionStorage.getItem(stateKey())||'null');}catch{} if(Number.isFinite(saved?.y)){ const expired=!(Date.now()-saved.time<7200000); if(!(saved.y<0||expired)){ requestAnimationFrame(()=>requestAnimationFrame(()=>window.scrollTo({top:saved.y,behavior:'instant'}))); return; } } if(location.hash.startsWith('#modello-')){ const item=document.getElementById(location.hash.slice(1)); if(item?.hidden===false)requestAnimationFrame(()=>item.scrollIntoView({block:'start',behavior:'instant'})); } } function readFilters(filters,tones,finishes){ const q=new URLSearchParams(location.search); const selected=(key,buttons,dataKey)=>buttons.some(b=>b.dataset[dataKey]===q.get(key))?q.get(key):'all'; return {group:selected('collezione',filters,'filter'),tone:selected('tonalita',tones,'colorFilter'),finish:selected('finitura',finishes,'finishFilter')}; } function updateCatalogLinks(){ const file=window.mpParquetFile;if(!collectionFiles.has(file))return; document.querySelectorAll('[data-catalog-product]').forEach(a=>{ const u=new URL(a.getAttribute('href'),location.href),article=a.closest('article'); const back=new URL(location.href);back.hash=article.id; const relative=back.pathname+back.search+back.hash; u.searchParams.set('ritorno',relative); a.setAttribute('href',u.pathname+u.search); }); } function commitFilters(state,labels=[],initial=false){ const u=new URL(location.href); [['collezione',state.group],['tonalita',state.tone],['finitura',state.finish]].forEach(([k,v])=>v==='all'?u.searchParams.delete(k):u.searchParams.set(k,v)); // A previously selected item may be hidden by new filters. if(!initial){ if(u.hash.startsWith('#modello-'))u.hash='collezione'; } history.replaceState(history.state,'',u.href); updateCatalogLinks(); const caption=document.querySelector('[data-active-filters]');if(caption)caption.textContent=labels.length?labels.join(' · '):'Nessun filtro applicato'; } function setPose(pose){ if(!poses.includes(pose))return; const u=new URL(location.href);u.searchParams.set('posa',pose);history.replaceState(history.state,'',u.href);updateCatalogLinks(); } function productState(){const q=new URLSearchParams(location.search);return {mode:q.get('richiesta')==='dettagli'?'dettagli':'consulenza',pose:q.get('posa'),width:q.get('larghezza'),total:q.get('struttura'),grade:q.get('scelta')};} function commitProduct(state){ const u=new URL(location.href);u.searchParams.set('posa',state.pose); if(state.mode==='dettagli'){ u.searchParams.set('richiesta','dettagli');u.searchParams.set('larghezza',state.width);u.searchParams.set('struttura',state.total);u.searchParams.set('scelta',state.grade); }else{['richiesta','larghezza','struttura','scelta'].forEach(k=>u.searchParams.delete(k));} history.replaceState(history.state,'',u.href); } function initialize(){ const link=document.querySelector('[data-return-models]'); if(link){ const back=safeReturn(new URLSearchParams(location.search).get('ritorno')); if(back){ link.href=back;link.textContent='← Torna ai modelli selezionati'; document.querySelectorAll('.breadcrumb a').forEach(a=>{if(collectionFiles.has(window.mpParquetLocal(new URL(a.href,location.href))))a.href=back;}); } } const panel=document.querySelector('[data-filter-panel]'); if(panel){const mq=window.matchMedia('(max-width:740px)');panel.open=!mq.matches;mq.addEventListener('change',e=>{panel.open=!e.matches;});} updateCatalogLinks(); document.querySelectorAll('[data-catalog-product]').forEach(a=>a.addEventListener('click',savePosition)); window.addEventListener('pagehide',savePosition); } window.parquetUX={safeReturn,stateKey,readFilters,commitFilters,setPose,updateCatalogLinks,restorePosition,productState,commitProduct}; initialize(); })(); (()=>{'use strict'; document.querySelectorAll('[data-design-only]').forEach(panel=>{const choice=panel.querySelector('select');const requested=new URLSearchParams(location.search).get('posa');if([...choice.options].some(o=>o.value===requested))choice.value=requested;const updateDesign=()=>{const pose=choice.value;document.querySelectorAll('[data-design-pattern]').forEach(p=>p.hidden=p.dataset.designPattern!==pose);document.querySelectorAll('[data-plank-formats]').forEach(p=>p.hidden=pose!=='plancia');document.querySelectorAll('[data-spina-formats]').forEach(p=>p.hidden=pose==='plancia');const summary=panel.querySelector('[data-design-summary]');summary.textContent='Disegno scelto: '+choice.selectedOptions[0].text+'. '+(pose==='plancia'?'Misure e struttura si verificano nella scheda.':'Dimensioni e struttura della spina si definiscono nella proposta di fornitura.');};choice.addEventListener('change',updateDesign);updateDesign();}); const poseButtons=[...document.querySelectorAll('[data-collection-pose]')]; if(poseButtons.length){let pose=new URLSearchParams(location.search).get('posa')||'plancia';if(!poseButtons.some(b=>b.dataset.collectionPose===pose))pose='plancia';const setPose=value=>{pose=value;poseButtons.forEach(b=>b.setAttribute('aria-pressed',String(b.dataset.collectionPose===pose)));document.querySelectorAll('[data-color-product]').forEach(a=>{const u=new URL(a.getAttribute('href'),location.href);u.searchParams.set('posa',pose);a.setAttribute('href',u.pathname+'?'+u.searchParams.toString())});const text=document.querySelector('[data-pose-description]');if(text)text.textContent='Disegno selezionato: '+poseButtons.find(b=>b.dataset.collectionPose===pose).textContent+'. Scegli un modello: la scheda si aprirà con questa geometria.';if(typeof window!=='undefined')window.parquetUX?.setPose(pose);};poseButtons.forEach(b=>b.addEventListener('click',()=>setPose(b.dataset.collectionPose)));setPose(pose)} const cards=[...document.querySelectorAll('[data-color-card]')],filters=[...document.querySelectorAll('[data-filter]')],toneButtons=[...document.querySelectorAll('[data-color-filter]')],finishButtons=[...document.querySelectorAll('[data-finish-filter]')];let group='all',tone='all',finish='all'; const collectionUX=typeof window!=='undefined'?window.parquetUX:null; if(collectionUX){const saved=collectionUX.readFilters(filters,toneButtons,finishButtons);group=saved.group;tone=saved.tone;finish=saved.finish;} const filterSets=[{key:'group',data:'filter',card:'group',label:'Collezione',buttons:filters},{key:'tone',data:'colorFilter',card:'tone',label:'Tonalità',buttons:toneButtons},{key:'finish',data:'finishFilter',card:'finish',label:'Finitura',buttons:finishButtons}]; function currentFilters(){return {group,tone,finish};} function setFilter(key,value){if(key==='group')group=value;else if(key==='tone')tone=value;else if(key==='finish')finish=value;} function matchesFilters(card,state){return filterSets.every(s=>state[s.key]==='all'||card.dataset[s.card]===state[s.key]);} function refreshFilterControls(){ const state=currentFilters(); filterSets.forEach(set=>set.buttons.forEach(b=>{ const value=b.dataset[set.data],candidate={...state,[set.key]:value}; const count=cards.filter(c=>matchesFilters(c,candidate)).length; b.disabled=!(value==='all'||value===state[set.key]||count!==0); b.setAttribute('aria-disabled',String(b.disabled));b.setAttribute('data-matching-count',String(count)); b.setAttribute('title',b.disabled?'Non disponibile con i filtri attivi':count===1?'1 modello con questi filtri':count+' modelli con questi filtri'); })); const list=document.querySelector('[data-active-filter-list]'); if(list){ list.replaceChildren(); filterSets.forEach(set=>{ if(state[set.key]==='all')return; const selected=set.buttons.find(b=>b.dataset[set.data]===state[set.key]);if(!selected)return; const label=set.label+': '+selected.textContent.trim(),remove=document.createElement('button'); remove.type='button';remove.className='active-filter';remove.textContent=label+' ×'; remove.setAttribute('aria-label','Rimuovi filtro '+label);remove.setAttribute('data-remove-filter',set.key); remove.addEventListener('click',()=>{setFilter(set.key,'all');filter();const remaining=list.querySelector('button');if(remaining)remaining.focus();else document.querySelector('[data-filter-panel] summary')?.focus();}); list.appendChild(remove); }); list.hidden=!list.children.length; } } function filter(initial=false){let n=0;cards.forEach(c=>{c.hidden=!(group==='all'||c.dataset.group===group)||!(tone==='all'||c.dataset.tone===tone)||!(finish==='all'||c.dataset.finish===finish);if(!c.hidden)n++});const out=document.querySelector('[data-count]');if(out)out.textContent=n===1?'1 modello mostrato':n+' modelli mostrati';const empty=document.querySelector('[data-empty-finishes]');if(empty)empty.hidden=n!==0; const selected=[]; for(const [buttons,key,value] of [[filters,'filter',group],[toneButtons,'colorFilter',tone],[finishButtons,'finishFilter',finish]]){ buttons.forEach(b=>b.setAttribute('aria-pressed',String(b.dataset[key]===value))); if(value==='all')continue; const current=buttons.find(b=>b.dataset[key]===value); if(current)selected.push(current.textContent.trim()); } if(collectionUX)collectionUX.commitFilters({group,tone,finish},selected,initial); refreshFilterControls(); } filters.forEach(b=>b.addEventListener('click',()=>{if(b.disabled)return;group=b.dataset.filter;filter()})); toneButtons.forEach(b=>b.addEventListener('click',()=>{if(b.disabled)return;tone=b.dataset.colorFilter;filter()})); finishButtons.forEach(b=>b.addEventListener('click',()=>{if(b.disabled)return;finish=b.dataset.finishFilter;filter()})); document.querySelectorAll('[data-reset-filters]').forEach(b=>b.addEventListener('click',()=>{group='all';tone='all';finish='all';filters.forEach(x=>x.setAttribute('aria-pressed',String(x.dataset.filter==='all')));toneButtons.forEach(x=>x.setAttribute('aria-pressed',String(x.dataset.colorFilter==='all')));finishButtons.forEach(x=>x.setAttribute('aria-pressed',String(x.dataset.finishFilter==='all')));filter()}));if(cards.length)filter(true);collectionUX?.restorePosition(); const cfg=document.querySelector('[data-config]');if(cfg){ const data=JSON.parse(document.querySelector('#configuration-data').textContent),family=data.family; const geo=cfg.querySelector('[name=geometria]'),width=cfg.querySelector('[name=larghezza]'),grade=cfg.querySelector('[name=scelta]'),total=cfg.querySelector('[name=spessore]'); const configUX=typeof window!=='undefined'?window.parquetUX:null; const requestModes=[...document.querySelectorAll('input[name="request-mode"]')]; const savedConfig=configUX?.productState();let initializing=true; if(savedConfig)requestModes.forEach(m=>m.checked=m.value===savedConfig.mode); requestModes.forEach(m=>m.addEventListener('change',()=>{if(m.checked)update();})); const descriptions={Select:'○ · Aspetto più uniforme, con nodi contenuti e variazioni cromatiche leggere.',Natur:'△ · Nodi e variazioni naturali per una superficie più movimentata.',Rustic:'□ · Nodi e contrasti più evidenti, per valorizzare il carattere del legno.'}; // Medula strips markup from JavaScript strings before serving the script. const tagStart=String.fromCharCode(60); const shapes={Select:tagStart+'circle cx="20" cy="20" r="14"/>',Natur:tagStart+'path d="M20 4 37 34H3Z"/>',Rustic:tagStart+'rect x="6" y="6" width="28" height="28"/>'}; const symbols={Select:'cerchio',Natur:'triangolo',Rustic:'quadrato'}; const radios=[...cfg.querySelectorAll('input[name="classe-aspetto"]')]; radios.forEach(r=>r.addEventListener('change',()=>{if(r.checked){grade.value=r.value;update()}})); function populate(el,values){const before=el.value;el.replaceChildren(...values.map(v=>new Option(v.text||v,v.value||v)));if([...el.options].some(o=>o.value===before))el.value=before} function update(){ const type=geo.value,isSpina=type!=='plancia'; populate(width,(isSpina?[90,120,140]:(data.plankWidths||(family==='rovere'?[90,120,140,180,220,250]:[90,120,140,180]))).map(n=>({value:String(n),text:n+' mm'}))); const choices=data.structures.filter(s=>{ if(!(s.total<=16))return false; if(s.poses?.includes(type)===false)return false; return s.widths?.includes(Number(width.value))!==false; }); populate(total,[...choices.map(s=>s.value),{value:'altra',text:'Altra struttura fino a 16 mm · Informazioni'}]); populate(grade,['Select','Natur','Rustic']); radios.forEach(r=>r.checked=r.value===grade.value); const help=document.querySelector('[data-grade-help]');if(help)help.textContent=grade.value+' · '+descriptions[grade.value].split(' · ')[1]; const shape=document.querySelector('[data-grade-symbol]');if(shape)shape.innerHTML=tagStart+'svg class="choice-shape" viewBox="0 0 40 40" aria-hidden="true">'+shapes[grade.value]+tagStart+'/svg>'; const other=total.value==='altra'; document.querySelector('[data-structure-help]').textContent=(other?'Per altre strutture con legno nobile da 2,5 · 4,2 · 6 mm, richiedi l’abbinamento disponibile entro 16 mm totali.':'Spessori in millimetri: totale / legno nobile. La disponibilità della combinazione si conferma con la proposta di fornitura.'); const consultation=requestModes.some(m=>m.checked?m.value==='consulenza':false); document.querySelectorAll('[data-config-expert]').forEach(e=>e.hidden=consultation); document.querySelector('[data-length]').textContent=consultation?'Misure, struttura e scelta estetica da definire insieme.':isSpina?'Lunghezza da definire per il formato scelto.':family==='noce'?'Lunghezze da verificare sulla specifica di fornitura.':'Lunghezze assortite da 500 a 2400 mm, secondo formato.'; const summary=consultation?[data.name,geo.selectedOptions[0].text,'Richiedo un consiglio su misure, struttura e scelta estetica'].join(' · '):[data.name,geo.selectedOptions[0].text,width.selectedOptions[0].text,other?'Altra struttura entro 16 mm da definire':total.selectedOptions[0].text,grade.value+' ('+symbols[grade.value]+')'].join(' · '); document.querySelector('[data-summary]').textContent=summary; const contactSummary=document.querySelector('[data-contact-summary]');if(contactSummary)contactSummary.textContent=summary; document.querySelectorAll('[data-pattern]').forEach(p=>p.hidden=p.dataset.pattern!==type); const message='Buongiorno Montagna Parquet, vorrei informazioni e una proposta per: '+summary+'.'; const wa=document.querySelector('[data-config-whatsapp]');if(wa)wa.href='https://wa.me/390696453729?text='+encodeURIComponent(message); const contact=document.querySelector('[data-config-contact]');if(contact){const url=new URL('https://montagnaparquet.it/it/contatti/');url.hash='mp-richiesta='+encodeURIComponent(message);contact.href=url.href;} const copy=document.querySelector('[data-config-copy]');if(copy)copy.value=message; const status=document.querySelector('[data-copy-status]');if(status)status.textContent='Il riepilogo sarà già compilato nel modulo contatti. Puoi anche copiarlo per conservarlo.'; const jump=document.querySelector('[data-enquiry-jump]');if(jump)jump.textContent=consultation?'Chiedi un consiglio su questo modello ↓':'Richiedi questa configurazione ↓'; if(!initializing)configUX?.commitProduct({mode:consultation?'consulenza':'dettagli',pose:type,width:width.value,total:total.value,grade:grade.value}); } const copyButton=document.querySelector('[data-copy-config]');copyButton?.addEventListener('click',async()=>{const field=document.querySelector('[data-config-copy]'),status=document.querySelector('[data-copy-status]');try{await navigator.clipboard.writeText(field.value);status.textContent='Riepilogo copiato.'}catch{field.focus();field.select();status.textContent='Testo selezionato: usa Copia nel menu del dispositivo o Ctrl+C per conservarlo.'}}); const requested=new URLSearchParams(location.search).get('posa');if([...geo.options].some(x=>x.value===requested))geo.value=requested;cfg.addEventListener('change',update);update(); if(savedConfig?.mode==='dettagli'){ for(const [field,value] of [[width,savedConfig.width],[total,savedConfig.total],[grade,savedConfig.grade]]){if([...field.options].some(o=>o.value===value)){field.value=value;update();}} } initializing=false;update();} const viewer=document.querySelector('.viewer');document.querySelectorAll('[data-zoom]').forEach(b=>b.addEventListener('click',()=>{viewer.querySelector('img').dataset.displayRotation=b.dataset.displayRotation||'0';viewer.querySelector('img').src=b.dataset.zoom;viewer.querySelector('img').alt=b.dataset.alt;viewer.showModal()}));viewer?.querySelector('button').addEventListener('click',()=>viewer.close());viewer?.addEventListener('click',e=>{if(e.target===viewer)viewer.close()}); })();