/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/text-readability@1.1.1/main.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{syllable}from"syllable";import pluralize from"pluralize";const punctuationRE=/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-./:;<=>?@[\]^_`{|}~]/g;import easyWords from"./easy_words.js";const easyWordSet=new Set(easyWords);Math.copySign=(e,t)=>0===t?0:e*(t/Math.abs(t)),Math.legacyRound=(e,t=0)=>{const a=10**t;return Math.floor(e*a+Math.copySign(.5,e))/a};class Readability{static getGradeSuffix(e){const t={1:"st",2:"nd",3:"rd"};return t[e=Math.floor(e)]?t[e]:"th"}charCount(e,t=!0){return t&&(e=e.replace(/ /g,"")),e.length}letterCount(e,t=!0){return t&&(e=e.replace(/ /g,"")),this.removePunctuation(e).length}removePunctuation(e){return e=e.replace(punctuationRE,"")}static split(e){return e=(e=e.split(/,| |\n|\r/g)).filter((e=>e))}lexiconCount(e,t=!0){return t&&(e=this.removePunctuation(e)),(e=(e=e.split(/,| |\n|\r/g)).filter((e=>e))).length}syllableCount(e,t="en-US"){if(e=e.toLocaleLowerCase(t),!(e=this.removePunctuation(e)))return 0;return syllable(e)}sentenceCount(e){let t=0,a=e.split(/ *[.?!]['")\]]*[ |\n](?=[A-Z])/g);for(let e of a)this.lexiconCount(e)<=2&&(t+=1);const n=a.length-t;return n>1?n:1}averageSentenceLength(e){const t=this.lexiconCount(e)/this.sentenceCount(e),a=Math.legacyRound(t,1);return isNaN(a)?0:a}averageSyllablePerWord(e){const t=this.syllableCount(e)/this.lexiconCount(e),a=Math.legacyRound(t,1);return isNaN(a)?0:a}averageCharacterPerWord(e){const t=this.charCount(e)/this.lexiconCount(e),a=Math.legacyRound(t,2);return isNaN(a)?0:a}averageLetterPerWord(e){const t=this.letterCount(e)/this.lexiconCount(e),a=Math.legacyRound(t,2);return isNaN(a)?0:a}averageSentencePerWord(e){const t=this.sentenceCount(e)/this.lexiconCount(e),a=Math.legacyRound(t,2);return isNaN(a)?0:a}fleschReadingEase(e){const t=206.835-1.015*this.averageSentenceLength(e)-84.6*this.averageSyllablePerWord(e);return Math.legacyRound(t,2)}fleschReadingEaseToGrade(e){return e>=90?5:e<90&&e>=80?6:e<80&&e>=70?7:e<70&&e>=60?8.5:e<60&&e>=50?11:e<50&&e>=40?13:e<40&&e>=30?15:16}fleschKincaidGrade(e){const t=.39*this.averageSentenceLength(e)+11.8*this.averageSyllablePerWord(e)-15.59;return Math.legacyRound(t,1)}polySyllableCount(e){let t,a=0;for(let n of Readability.split(e))t=this.syllableCount(n),t>=3&&(a+=1);return a}smogIndex(e){const t=this.sentenceCount(e);if(t>=3){const a=1.043*(this.polySyllableCount(e)/t*30)**.5+3.1291,n=Math.legacyRound(a,1);return isNaN(n)?0:n}return 0}colemanLiauIndex(e){const t=.058*Math.legacyRound(100*this.averageLetterPerWord(e),2)-.296*Math.legacyRound(100*this.averageSentencePerWord(e),2)-15.8;return Math.legacyRound(t,2)}automatedReadabilityIndex(e){const t=this.charCount(e),a=this.lexiconCount(e),n=t/a,l=a/this.sentenceCount(e),i=4.71*Math.legacyRound(n,2)+.5*Math.legacyRound(l,2)-21.43,r=Math.legacyRound(i,1);return isNaN(r)?0:r}linsearWriteFormula(e){let t=0,a=0,n=Readability.split(e).slice(0,100);for(let e of n)this.syllableCount(e)<3?t+=1:a+=1;e=n.join(" ");let l=(1*t+3*a)/this.sentenceCount(e),i=l<=20?(l-2)/2:l/2;return Math.legacyRound(i,1)}presentTense(e){if(e.length<6)return e;if(e.endsWith("ed"))return easyWordSet.has(e.slice(0,-1))?e.slice(0,-1):e.slice(0,-2);if(e.endsWith("ing")){const t=e.slice(0,-3)+"e";return easyWordSet.has(t)?t:e.slice(0,-3)}return e}difficultWords(e,t){return[...this.difficultWordsSet(e,t)].length}difficultWordsSet(e,t=2){const a=e.match(/[\w=‘’]+/g),n=new Set;if(null===a)return n;for(let e of a){const a=this.presentTense(pluralize(e.toLocaleLowerCase(),1));!easyWordSet.has(a)&&this.syllableCount(e)>=t&&n.add(e)}return n}daleChallReadabilityScore(e){const t=this.lexiconCount(e),a=(t-this.difficultWords(e))/t*100;if(isNaN(a))return 0;const n=100-a;let l=.1579*n+.0496*this.averageSentenceLength(e);return n>5&&(l+=3.6365),Math.legacyRound(l,2)}daleChallToGrade(e){return e<=4.9?4:e<5.9?5:e<6.9?7:e<7.9?9:e<8.9?11:e<9.9?13:16}gunningFog(e){const t=this.difficultWords(e,3)/this.lexiconCount(e)*100;if(isNaN(t))return 0;const a=.4*(this.averageSentenceLength(e)+t);return Math.legacyRound(a,2)}lix(e){const t=Readability.split(e),a=t.length,n=100*t.filter((e=>e.length>6)).length/a,l=this.averageSentenceLength(e)+n;return Math.legacyRound(l,2)}rix(e){const t=Readability.split(e).filter((e=>e.length>6)).length/this.sentenceCount(e);return isNaN(t)?0:Math.legacyRound(t,2)}textStandard(e,t=null){const a=[];let n=Math.legacyRound(this.fleschKincaidGrade(e)),l=Math.ceil(this.fleschKincaidGrade(e));a.push(Math.floor(n)),a.push(Math.floor(l));let i=this.fleschReadingEase(e),r=this.fleschReadingEaseToGrade(i);a.push(r),n=Math.legacyRound(this.smogIndex(e)),l=Math.ceil(this.smogIndex(e)),a.push(Math.floor(n)),a.push(Math.floor(l)),n=Math.legacyRound(this.colemanLiauIndex(e)),l=Math.ceil(this.colemanLiauIndex(e)),a.push(Math.floor(n)),a.push(Math.floor(l)),n=Math.legacyRound(this.automatedReadabilityIndex(e)),l=Math.ceil(this.automatedReadabilityIndex(e)),a.push(Math.floor(n)),a.push(Math.floor(l)),n=Math.legacyRound(this.daleChallToGrade(this.daleChallReadabilityScore(e))),l=Math.ceil(this.daleChallToGrade(this.daleChallReadabilityScore(e))),a.push(Math.floor(n)),a.push(Math.floor(l)),n=Math.legacyRound(this.linsearWriteFormula(e)),l=Math.ceil(this.linsearWriteFormula(e)),a.push(Math.floor(n)),a.push(Math.floor(l)),n=Math.legacyRound(this.gunningFog(e)),l=Math.ceil(this.gunningFog(e)),a.push(Math.floor(n)),a.push(Math.floor(l));if(i=[...new Set(a)].map((e=>[e,a.filter((t=>t===e)).length])).reduce(((e,t)=>t[1]>=e[1]?t:e))[0],t)return i;const o=Math.floor(i)-1,s=o+1;return`${o}${Readability.getGradeSuffix(o)} and ${s}${Readability.getGradeSuffix(s)} grade`}textMedian(e){const t=[];t.push(this.fleschKincaidGrade(e));const a=this.fleschReadingEase(e),n=this.fleschReadingEaseToGrade(a);t.push(n),t.push(this.smogIndex(e)),t.push(this.colemanLiauIndex(e)),t.push(this.automatedReadabilityIndex(e)),t.push(this.daleChallToGrade(this.daleChallReadabilityScore(e))),t.push(this.linsearWriteFormula(e)),t.push(this.gunningFog(e)),t.sort((function(e,t){return e-t}));let l=Math.floor(t.length/2);return 1&l?(t[l-1]+t[l])/2:t[l]}}const readability=new Readability;export default readability;
//# sourceMappingURL=/sm/b114967c7c76f0616a5f69e002e931ca11c6afb649a88f818e094e8763fd6f91.map