// Общее для страниц /tools/*: печать в PDF, подвал листа и неразрывные пробелы (предлоги, числа, тире, «кого-то»). (function(){ document.addEventListener('click',function(e){ if(e.target.closest('[data-print]')) window.print(); }); var m=document.querySelector('main'); if(!m) return; var f=document.createElement('div'), d=new Date().toLocaleDateString('ru-RU'); f.className='print-foot'; f.innerHTML='Расчёт от '+d+' · danlitvinov.com'+location.pathname+'
Нужна такая система под ваш бизнес? telegram.me/TARS_consulting_bot'; m.appendChild(f); var SKIP={SCRIPT:1,STYLE:1,TEXTAREA:1,INPUT:1,SELECT:1,OPTION:1,svg:1}; function fix(s){ return s.replace(/(^|[\s(«„ ])([а-яёА-ЯЁa-zA-Z]{1,2}|\d[\d ]*) /g,'$1$2 ') .replace(/(^|[\s(«„ ])([а-яёА-ЯЁa-zA-Z]{1,2}|\d[\d ]*) /g,'$1$2 ') .replace(/ (—|–)/g,' $1') .replace(/([а-яё])-(то|либо|нибудь|таки)(?![а-яё])/gi,'$1⁠-⁠$2'); } function walk(root){ if(root.nodeType===3){ var v=root.nodeValue, n=fix(v); if(n!==v) root.nodeValue=n; return; } if(root.nodeType!==1||SKIP[root.nodeName]) return; for(var c=root.firstChild;c;c=c.nextSibling) walk(c); } walk(m); var t; new MutationObserver(function(){ clearTimeout(t); t=setTimeout(function(){ walk(m); },0); }).observe(m,{childList:true,subtree:true}); })();