@@ -39,53 +39,46 @@ const getLongestLang = (arr) =>
3939 * Creates a node to display usage of a programming language in percentage
4040 * using text and a horizontal progress bar.
4141 *
42- * @param {object } props Function properties.
42+ * @param {object[] } props Function properties.
4343 * @param {number } props.width The card width
4444 * @param {string } props.name Name of the programming language.
4545 * @param {string } props.color Color of the programming language.
4646 * @param {string } props.progress Usage of the programming language in percentage.
47- * @param {number } props.index Index of the programming language.
4847 * @returns {string } Programming language SVG node.
4948 */
50- const createProgressTextNode = ( { width, color, name, progress, index } ) => {
51- const staggerDelay = ( index + 3 ) * 150 ;
49+ const createProgressTextNode = ( { width, color, name, progress } ) => {
5250 const paddingRight = 95 ;
5351 const progressTextX = width - paddingRight + 10 ;
5452 const progressWidth = width - paddingRight ;
5553
5654 return `
57- <g class="stagger" style="animation-delay: ${ staggerDelay } ms">
58- <text data-testid="lang-name" x="2" y="15" class="lang-name">${ name } </text>
59- <text x="${ progressTextX } " y="34" class="lang-name">${ progress } %</text>
60- ${ createProgressNode ( {
61- x : 0 ,
62- y : 25 ,
63- color,
64- width : progressWidth ,
65- progress,
66- progressBarBackgroundColor : "#ddd" ,
67- delay : staggerDelay + 300 ,
68- } ) }
69- </g>
55+ <text data-testid="lang-name" x="2" y="15" class="lang-name">${ name } </text>
56+ <text x="${ progressTextX } " y="34" class="lang-name">${ progress } %</text>
57+ ${ createProgressNode ( {
58+ x : 0 ,
59+ y : 25 ,
60+ color,
61+ width : progressWidth ,
62+ progress,
63+ progressBarBackgroundColor : "#ddd" ,
64+ } ) }
7065 ` ;
7166} ;
7267
7368/**
7469 * Creates a text only node to display usage of a programming language in percentage.
7570 *
76- * @param {object } props Function properties.
71+ * @param {object[] } props Function properties.
7772 * @param {Lang } props.lang Programming language object.
7873 * @param {number } props.totalSize Total size of all languages.
79- * @param {number } props.index Index of the programming language.
8074 * @returns {string } Compact layout programming language SVG node.
8175 */
82- const createCompactLangNode = ( { lang, totalSize, index } ) => {
76+ const createCompactLangNode = ( { lang, totalSize } ) => {
8377 const percentage = ( ( lang . size / totalSize ) * 100 ) . toFixed ( 2 ) ;
84- const staggerDelay = ( index + 3 ) * 150 ;
8578 const color = lang . color || "#858585" ;
8679
8780 return `
88- <g class="stagger" style="animation-delay: ${ staggerDelay } ms" >
81+ <g>
8982 <circle cx="5" cy="6" r="5" fill="${ color } " />
9083 <text data-testid="lang-name" x="15" y="10" class='lang-name'>
9184 ${ lang . name } ${ percentage } %
@@ -111,6 +104,7 @@ const createLanguageTextNode = ({ langs, totalSize }) => {
111104 createCompactLangNode ( {
112105 lang,
113106 totalSize,
107+ // @ts -ignore
114108 index,
115109 } ) ,
116110 ) ;
@@ -140,13 +134,12 @@ const createLanguageTextNode = ({ langs, totalSize }) => {
140134 */
141135const renderNormalLayout = ( langs , width , totalLanguageSize ) => {
142136 return flexLayout ( {
143- items : langs . map ( ( lang , index ) => {
137+ items : langs . map ( ( lang ) => {
144138 return createProgressTextNode ( {
145- width,
139+ width : width ,
146140 name : lang . name ,
147141 color : lang . color || DEFAULT_LANG_COLOR ,
148142 progress : ( ( lang . size / totalLanguageSize ) * 100 ) . toFixed ( 2 ) ,
149- index,
150143 } ) ;
151144 } ) ,
152145 gap : 40 ,
@@ -194,7 +187,7 @@ const renderCompactLayout = (langs, width, totalLanguageSize) => {
194187
195188 return `
196189 <mask id="rect-mask">
197- <rect x="0" y="0" width="${ offsetWidth } " height="8" fill="white" rx="5"/>
190+ <rect x="0" y="0" width="${ offsetWidth } " height="8" fill="white" rx="5" />
198191 </mask>
199192 ${ compactProgressBar }
200193
@@ -283,7 +276,6 @@ const renderTopLanguages = (topLangs, options = {}) => {
283276 langs_count = DEFAULT_LANGS_COUNT ,
284277 border_radius,
285278 border_color,
286- disable_animations,
287279 } = options ;
288280
289281 const i18n = new I18n ( {
@@ -332,43 +324,11 @@ const renderTopLanguages = (topLangs, options = {}) => {
332324 colors,
333325 } ) ;
334326
335- if ( disable_animations ) card . disableAnimations ( ) ;
336-
327+ card . disableAnimations ( ) ;
337328 card . setHideBorder ( hide_border ) ;
338329 card . setHideTitle ( hide_title ) ;
339330 card . setCSS (
340- `
341- @keyframes slideInAnimation {
342- from {
343- width: 0;
344- }
345- to {
346- width: calc(100%-100px);
347- }
348- }
349- @keyframes growWidthAnimation {
350- from {
351- width: 0;
352- }
353- to {
354- width: 100%;
355- }
356- }
357- .lang-name {
358- font: 400 11px "Segoe UI", Ubuntu, Sans-Serif;
359- fill: ${ colors . textColor } ;
360- }
361- .stagger {
362- opacity: 0;
363- animation: fadeInAnimation 0.3s ease-in-out forwards;
364- }
365- #rect-mask rect{
366- animation: slideInAnimation 1s ease-in-out forwards;
367- }
368- .lang-progress{
369- animation: growWidthAnimation 0.6s ease-in-out forwards;
370- }
371- ` ,
331+ `.lang-name { font: 400 11px 'Segoe UI', Ubuntu, Sans-Serif; fill: ${ colors . textColor } }` ,
372332 ) ;
373333
374334 return card . render ( `
0 commit comments