IL PARQUET / LA SCELTA

Il carattere del legno.
Leggere la classe di aspetto.

La scelta estetica descrive nodi, venature e variazioni naturali. È distinta dal colore e dalla finitura e riguarda sia il parquet massello sia il multistrato.

Select · Cerchio

Una superficie più uniforme. Nel Rovere Slavonia il cerchio limita nodi e differenze di colore: anche questa classe conserva la venatura e le specchiature proprie del legno.

Natur · Triangolo

Il movimento della natura. Nel Rovere Slavonia il triangolo ammette una maggiore presenza di nodi, alburno e variazioni cromatiche, entro i criteri della classe e della tipologia di parquet.

Rustic · Quadrato

Un carattere più marcato. Il quadrato accoglie caratteristiche più evidenti, purché non compromettano resistenza e qualità di usura del pavimento. L’aspetto rustico non equivale a difetto di posa.
IL RIFERIMENTO

Simboli comuni.
Criteri distinti.

La classe si legge rispetto alla specie legnosa e al tipo di elemento. I criteri del massello e del multistrato non sono intercambiabili.
01

Il Rovere Slavonia

Per Quercus spp. esistono criteri specifici. La tabella pertinente cambia tra massello senza incastro, massello con incastro e parquet multistrato.
02

Le altre essenze

Il PDF d’archivio contiene anche tabelle per altri legni di latifoglie. Per Doussiè, Iroko, Teak, Wengè, Ulivo e Noce Americana si consulta quel gruppo e la tipologia pertinente, senza applicare i limiti del Rovere Slavonia. La classe effettiva resta quella dichiarata per la fornitura.
03

I nomi della proposta

Select ○, Natur △ e Rustic □ sono i nomi delle scelte della nostra proposta. Non sostituiscono i criteri della norma applicabile né la classificazione dichiarata dal produttore.
Una fotografia o un singolo campione non dimostrano la classe dell’intera fornitura. Quantità e distribuzione delle caratteristiche si leggono nella selezione del prodotto.
LA DOCUMENTAZIONE

Le classi d’aspetto.
Un riferimento d’archivio.

Il documento raccoglie le tabelle del Rovere Slavonia, delle altre latifoglie e di alcune conifere. Non è una scheda prodotto e non certifica una specifica fornitura.
Documento d’archivio: tabelle per massello e multistrato riferite alle edizioni 2004. La classe della fornitura si verifica nella documentazione del prodotto.
Pagina 1: massello senza incastro e con incastro. Pagina 2: multistrato. Le edizioni delle norme citate nel PDF risalgono al 2004; non sono presentate come le edizioni attuali.
LE TIPOLOGIE

Il riferimento giusto.
Per ogni struttura.

Riferimenti in vigore verificati nel catalogo UNI l’8 novembre 2026. Per la scelta della fornitura contano la norma applicabile e la documentazione del produttore.
Il PDF d’archivio non tratta il parquet industriale secondo UNI EN 14761. Le sue tabelle non vanno usate per attribuire una classe al parquet industriale.
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="classi-aspetto-parquet.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()}); })();