@@ -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} ) => {
5250const paddingRight = 95 ;
5351const progressTextX = width - paddingRight + 10 ;
5452const progressWidth = width - paddingRight ;
5553
5654return `
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} ) => {
8377const percentage = ( ( lang . size / totalSize ) * 100 ) . toFixed ( 2 ) ;
84- const staggerDelay = ( index + 3 ) * 150 ;
8578const color = lang . color || "#858585" ;
8679
8780return `
88- <g >
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 }) => {
111104createCompactLangNode ( {
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 ) => {
142136return flexLayout ( {
143- items :langs . map ( ( lang , index ) => {
137+ items :langs . map ( ( lang ) => {
144138return createProgressTextNode ( {
145- width,
139+ width : width ,
146140name :lang . name ,
147141color :lang . color || DEFAULT_LANG_COLOR ,
148142progress :( ( lang . size / totalLanguageSize ) * 100 ) . toFixed ( 2 ) ,
149- index,
150143} ) ;
151144} ) ,
152145gap :40 ,
@@ -194,7 +187,7 @@ const renderCompactLayout = (langs, width, totalLanguageSize) => {
194187
195188return `
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
289281const 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 ( ) ;
337328card . setHideBorder ( hide_border ) ;
338329card . setHideTitle ( hide_title ) ;
339330card . 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
374334return card . render ( `