@@ -246,6 +246,10 @@ <h6><b>Properties</b></h6>
246246 < li >
247247 < a href ="#expenses " > expenses</ a >
248248 </ li >
249+ < li >
250+ < span class ="modifier "> Private</ span >
251+ < a href ="#hasLoggedChartUnavailable " > hasLoggedChartUnavailable</ a >
252+ </ li >
249253 < li >
250254 < a href ="#isDarkMode " > isDarkMode</ a >
251255 </ li >
@@ -325,7 +329,7 @@ <h3 id="constructor">Constructor</h3>
325329 </ tr >
326330 < tr >
327331 < td class ="col-md-4 ">
328- < div class ="io-line "> Defined in < a href ="" data-line ="49 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:49 </ a > </ div >
332+ < div class ="io-line "> Defined in < a href ="" data-line ="52 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:52 </ a > </ div >
329333 </ td >
330334 </ tr >
331335
@@ -420,7 +424,7 @@ <h3 id="inputs">Inputs</h3>
420424 </ tr >
421425 < tr >
422426 < td class ="col-md-2 " colspan ="2 ">
423- < div class ="io-line "> Defined in < a href ="" data-line ="49 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:49 </ a > </ div >
427+ < div class ="io-line "> Defined in < a href ="" data-line ="52 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:52 </ a > </ div >
424428 </ td >
425429 </ tr >
426430 < tr >
@@ -452,7 +456,7 @@ <h3 id="inputs">Inputs</h3>
452456 </ tr >
453457 < tr >
454458 < td class ="col-md-2 " colspan ="2 ">
455- < div class ="io-line "> Defined in < a href ="" data-line ="46 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:46 </ a > </ div >
459+ < div class ="io-line "> Defined in < a href ="" data-line ="49 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:49 </ a > </ div >
456460 </ td >
457461 </ tr >
458462 < tr >
@@ -492,8 +496,8 @@ <h3 id="methods">
492496
493497 < tr >
494498 < td class ="col-md-4 ">
495- < div class ="io-line "> Defined in < a href ="" data-line ="101 "
496- class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:101 </ a > </ div >
499+ < div class ="io-line "> Defined in < a href ="" data-line ="104 "
500+ class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:104 </ a > </ div >
497501 </ td >
498502 </ tr >
499503
@@ -531,8 +535,8 @@ <h3 id="methods">
531535
532536 < tr >
533537 < td class ="col-md-4 ">
534- < div class ="io-line "> Defined in < a href ="" data-line ="140 "
535- class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:140 </ a > </ div >
538+ < div class ="io-line "> Defined in < a href ="" data-line ="152 "
539+ class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:152 </ a > </ div >
536540 </ td >
537541 </ tr >
538542
@@ -570,8 +574,8 @@ <h3 id="methods">
570574
571575 < tr >
572576 < td class ="col-md-4 ">
573- < div class ="io-line "> Defined in < a href ="" data-line ="116 "
574- class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:116 </ a > </ div >
577+ < div class ="io-line "> Defined in < a href ="" data-line ="128 "
578+ class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:128 </ a > </ div >
575579 </ td >
576580 </ tr >
577581
@@ -609,8 +613,8 @@ <h3 id="methods">
609613
610614 < tr >
611615 < td class ="col-md-4 ">
612- < div class ="io-line "> Defined in < a href ="" data-line ="160 "
613- class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:160 </ a > </ div >
616+ < div class ="io-line "> Defined in < a href ="" data-line ="172 "
617+ class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:172 </ a > </ div >
614618 </ td >
615619 </ tr >
616620
@@ -648,8 +652,8 @@ <h3 id="methods">
648652
649653 < tr >
650654 < td class ="col-md-4 ">
651- < div class ="io-line "> Defined in < a href ="" data-line ="85 "
652- class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:85 </ a > </ div >
655+ < div class ="io-line "> Defined in < a href ="" data-line ="88 "
656+ class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:88 </ a > </ div >
653657 </ td >
654658 </ tr >
655659
@@ -688,8 +692,8 @@ <h3 id="methods">
688692
689693 < tr >
690694 < td class ="col-md-4 ">
691- < div class ="io-line "> Defined in < a href ="" data-line ="94 "
692- class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:94 </ a > </ div >
695+ < div class ="io-line "> Defined in < a href ="" data-line ="97 "
696+ class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:97 </ a > </ div >
693697 </ td >
694698 </ tr >
695699
@@ -763,8 +767,8 @@ <h3 id="methods">
763767
764768 < tr >
765769 < td class ="col-md-4 ">
766- < div class ="io-line "> Defined in < a href ="" data-line ="69 "
767- class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:69 </ a > </ div >
770+ < div class ="io-line "> Defined in < a href ="" data-line ="72 "
771+ class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:72 </ a > </ div >
768772 </ td >
769773 </ tr >
770774
@@ -803,8 +807,8 @@ <h3 id="methods">
803807
804808 < tr >
805809 < td class ="col-md-4 ">
806- < div class ="io-line "> Defined in < a href ="" data-line ="188 "
807- class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:188 </ a > </ div >
810+ < div class ="io-line "> Defined in < a href ="" data-line ="200 "
811+ class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:200 </ a > </ div >
808812 </ td >
809813 </ tr >
810814
@@ -921,7 +925,7 @@ <h3 id="inputs">
921925 </ tr >
922926 < tr >
923927 < td class ="col-md-4 ">
924- < div class ="io-line "> Defined in < a href ="" data-line ="43 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:43 </ a > </ div >
928+ < div class ="io-line "> Defined in < a href ="" data-line ="46 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:46 </ a > </ div >
925929 </ td >
926930 </ tr >
927931
@@ -958,7 +962,7 @@ <h3 id="inputs">
958962 </ tr >
959963 < tr >
960964 < td class ="col-md-4 ">
961- < div class ="io-line "> Defined in < a href ="" data-line ="28 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:28 </ a > </ div >
965+ < div class ="io-line "> Defined in < a href ="" data-line ="31 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:31 </ a > </ div >
962966 </ td >
963967 </ tr >
964968
@@ -995,7 +999,7 @@ <h3 id="inputs">
995999 </ tr >
9961000 < tr >
9971001 < td class ="col-md-4 ">
998- < div class ="io-line "> Defined in < a href ="" data-line ="37 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:37 </ a > </ div >
1002+ < div class ="io-line "> Defined in < a href ="" data-line ="40 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:40 </ a > </ div >
9991003 </ td >
10001004 </ tr >
10011005
@@ -1032,7 +1036,7 @@ <h3 id="inputs">
10321036 </ tr >
10331037 < tr >
10341038 < td class ="col-md-4 ">
1035- < div class ="io-line "> Defined in < a href ="" data-line ="25 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:25 </ a > </ div >
1039+ < div class ="io-line "> Defined in < a href ="" data-line ="28 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:28 </ a > </ div >
10361040 </ td >
10371041 </ tr >
10381042
@@ -1069,7 +1073,7 @@ <h3 id="inputs">
10691073 </ tr >
10701074 < tr >
10711075 < td class ="col-md-4 ">
1072- < div class ="io-line "> Defined in < a href ="" data-line ="34 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:34 </ a > </ div >
1076+ < div class ="io-line "> Defined in < a href ="" data-line ="37 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:37 </ a > </ div >
10731077 </ td >
10741078 </ tr >
10751079
@@ -1101,7 +1105,7 @@ <h3 id="inputs">
11011105 </ tr >
11021106 < tr >
11031107 < td class ="col-md-4 ">
1104- < div class ="io-line "> Defined in < a href ="" data-line ="40 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:40 </ a > </ div >
1108+ < div class ="io-line "> Defined in < a href ="" data-line ="43 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:43 </ a > </ div >
11051109 </ td >
11061110 </ tr >
11071111
@@ -1138,7 +1142,7 @@ <h3 id="inputs">
11381142 </ tr >
11391143 < tr >
11401144 < td class ="col-md-4 ">
1141- < div class ="io-line "> Defined in < a href ="" data-line ="31 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:31 </ a > </ div >
1145+ < div class ="io-line "> Defined in < a href ="" data-line ="34 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:34 </ a > </ div >
11421146 </ td >
11431147 </ tr >
11441148
@@ -1151,6 +1155,44 @@ <h3 id="inputs">
11511155
11521156 </ tbody >
11531157 </ table >
1158+ < table class ="table table-sm table-bordered ">
1159+ < tbody >
1160+ < tr >
1161+ < td class ="col-md-4 ">
1162+ < a name ="hasLoggedChartUnavailable "> </ a >
1163+ < span class ="name ">
1164+ < span class ="modifier "> Private</ span >
1165+ < span > < b > hasLoggedChartUnavailable</ b > </ span >
1166+ < a href ="#hasLoggedChartUnavailable "> < span class ="icon ion-ios-link "> </ span > </ a >
1167+ </ span >
1168+ </ td >
1169+ </ tr >
1170+ < tr >
1171+ < td class ="col-md-4 ">
1172+ < i > Type : </ i > < code > unknown</ code >
1173+
1174+ </ td >
1175+ </ tr >
1176+ < tr >
1177+ < td class ="col-md-4 ">
1178+ < i > Default value : </ i > < code > false</ code >
1179+ </ td >
1180+ </ tr >
1181+ < tr >
1182+ < td class ="col-md-4 ">
1183+ < div class ="io-line "> Defined in < a href ="" data-line ="22 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:22</ a > </ div >
1184+ </ td >
1185+ </ tr >
1186+
1187+ < tr >
1188+ < td class ="col-md-4 ">
1189+ < div class ="io-description "> < p > Prevents repeated logs when chart library is unavailable</ p >
1190+ </ div >
1191+ </ td >
1192+ </ tr >
1193+
1194+ </ tbody >
1195+ </ table >
11541196 < table class ="table table-sm table-bordered ">
11551197 < tbody >
11561198 < tr >
@@ -1175,7 +1217,7 @@ <h3 id="inputs">
11751217 </ tr >
11761218 < tr >
11771219 < td class ="col-md-4 ">
1178- < div class ="io-line "> Defined in < a href ="" data-line ="22 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:22 </ a > </ div >
1220+ < div class ="io-line "> Defined in < a href ="" data-line ="25 " class ="link-to-prism "> src/app/component/pie-chart/pie-chart.component.ts:25 </ a > </ div >
11791221 </ td >
11801222 </ tr >
11811223
@@ -1214,6 +1256,9 @@ <h3 id="inputs">
12141256})
12151257export class PieChartComponent implements OnInit, OnChanges, AfterViewInit {
12161258
1259+ /** Prevents repeated logs when chart library is unavailable */
1260+ private hasLoggedChartUnavailable = false;
1261+
12171262 /** Dark mode flag from user settings */
12181263 isDarkMode: boolean = false;
12191264
@@ -1295,16 +1340,25 @@ <h3 id="inputs">
12951340
12961341 /** Loads chart data based on the selected view type */
12971342 loadData(): void {
1298- if (typeof window !== 'undefined' && (window as any).Chart) {
1299- if (this.viewType === 'month') {
1300- this.loadMonthData();
1301- } else if (this.viewType === 'year') {
1302- this.loadYearData();
1303- } else if (this.viewType === 'day') {
1304- this.loadDayData();
1343+ // Skip chart rendering during SSR/prerender where `window` is unavailable.
1344+ if (typeof window === 'undefined') {
1345+ return;
1346+ }
1347+
1348+ if (!(window as any).Chart) {
1349+ if (!this.hasLoggedChartUnavailable) {
1350+ console.warn('Chart.js is not loaded properly.');
1351+ this.hasLoggedChartUnavailable = true;
13051352 }
1306- } else {
1307- console.error("Chart.js is not loaded properly.");
1353+ return;
1354+ }
1355+
1356+ if (this.viewType === 'month') {
1357+ this.loadMonthData();
1358+ } else if (this.viewType === 'year') {
1359+ this.loadYearData();
1360+ } else if (this.viewType === 'day') {
1361+ this.loadDayData();
13081362 }
13091363 }
13101364
0 commit comments