[ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 var __webpack_exports__ = {}; 2 3 ;// ./node_modules/@wordpress/block-editor/build-module/utils/fit-text-utils.js 4 function generateCSSRule(elementSelector, fontSize) { 5 return `$elementSelector} { font-size: $fontSize}px !important; }`; 6 } 7 function findOptimalFontSize(textElement, elementSelector, applyStylesFn, maxSize = 600) { 8 const alreadyHasScrollableHeight = textElement.scrollHeight > textElement.clientHeight; 9 let minSize = 5; 10 let bestSize = minSize; 11 while (minSize <= maxSize) { 12 const midSize = Math.floor((minSize + maxSize) / 2); 13 applyStylesFn(generateCSSRule(elementSelector, midSize)); 14 const fitsWidth = textElement.scrollWidth <= textElement.clientWidth; 15 const fitsHeight = alreadyHasScrollableHeight || textElement.scrollHeight <= textElement.clientHeight; 16 if (fitsWidth && fitsHeight) { 17 bestSize = midSize; 18 minSize = midSize + 1; 19 } else { 20 maxSize = midSize - 1; 21 } 22 } 23 return bestSize; 24 } 25 function optimizeFitText(textElement, elementSelector, applyStylesFn, maxSize) { 26 if (!textElement) { 27 return; 28 } 29 applyStylesFn(""); 30 const optimalSize = findOptimalFontSize( 31 textElement, 32 elementSelector, 33 applyStylesFn, 34 maxSize 35 ); 36 const cssRule = generateCSSRule(elementSelector, optimalSize); 37 applyStylesFn(cssRule); 38 } 39 40 41 ;// ./node_modules/@wordpress/block-editor/build-module/utils/fit-text-frontend.js 42 43 let idCounter = 0; 44 function getOrCreateStyleElement(elementId) { 45 const styleId = `fit-text-$elementId}`; 46 let styleElement = document.getElementById(styleId); 47 if (!styleElement) { 48 styleElement = document.createElement("style"); 49 styleElement.id = styleId; 50 document.head.appendChild(styleElement); 51 } 52 return styleElement; 53 } 54 function getElementIdentifier(element) { 55 if (!element.dataset.fitTextId) { 56 element.dataset.fitTextId = `fit-text-${++idCounter}`; 57 } 58 return element.dataset.fitTextId; 59 } 60 function initializeFitText(element) { 61 const elementId = getElementIdentifier(element); 62 const applyFitText = () => { 63 const styleElement = getOrCreateStyleElement(elementId); 64 const elementSelector = `[data-fit-text-id="$elementId}"]`; 65 const applyStylesFn = (css) => { 66 styleElement.textContent = css; 67 }; 68 optimizeFitText(element, elementSelector, applyStylesFn); 69 }; 70 applyFitText(); 71 if (window.ResizeObserver && element.parentElement) { 72 const resizeObserver = new window.ResizeObserver(applyFitText); 73 resizeObserver.observe(element.parentElement); 74 } 75 } 76 function initializeAllFitText() { 77 const elements = document.querySelectorAll(".has-fit-text"); 78 elements.forEach(initializeFitText); 79 } 80 window.addEventListener("load", initializeAllFitText); 81
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated : Thu Oct 23 08:20:05 2025 | Cross-referenced by PHPXref |