Skip to content

Commit 90c3b10

Browse files
committed
add doc
1 parent f05d255 commit 90c3b10

12 files changed

Lines changed: 968 additions & 202 deletions

File tree

documentation/components/CalendarComponent.html

Lines changed: 578 additions & 90 deletions
Large diffs are not rendered by default.

documentation/components/HamburgerMenuComponent.html

Lines changed: 77 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,9 @@ <h6><b>Properties</b></h6>
224224
<tr>
225225
<td class="col-md-4">
226226
<ul class="index-list">
227+
<li>
228+
<a href="#has_ai_access" >has_ai_access</a>
229+
</li>
227230
<li>
228231
<a href="#isMenuOpen" >isMenuOpen</a>
229232
</li>
@@ -284,12 +287,12 @@ <h3 id="constructor">Constructor</h3>
284287
<tbody>
285288
<tr>
286289
<td class="col-md-4">
287-
<code>constructor(sectionService: <a href="../injectables/SectionService.html" target="_self">SectionService</a>)</code>
290+
<code>constructor(sectionService: <a href="../injectables/SectionService.html" target="_self">SectionService</a>, userService: <a href="../injectables/UserService.html" target="_self">UserService</a>)</code>
288291
</td>
289292
</tr>
290293
<tr>
291294
<td class="col-md-4">
292-
<div class="io-line">Defined in <a href="" data-line="31" class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:31</a></div>
295+
<div class="io-line">Defined in <a href="" data-line="35" class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:35</a></div>
293296
</td>
294297
</tr>
295298

@@ -327,6 +330,22 @@ <h3 id="constructor">Constructor</h3>
327330

328331
</td>
329332
</tr>
333+
<tr>
334+
<td>userService</td>
335+
336+
<td>
337+
<code><a href="../injectables/UserService.html" target="_self" >UserService</a></code>
338+
</td>
339+
340+
<td>
341+
No
342+
</td>
343+
344+
<td>
345+
<p>Service for managing user preferences</p>
346+
347+
</td>
348+
</tr>
330349
</tbody>
331350
</table>
332351
</div>
@@ -365,8 +384,8 @@ <h3>HostListeners</h3> <table class="table table-sm table-bordered">
365384

366385
<tr>
367386
<td class="col-md-4">
368-
<div class="io-line">Defined in <a href="" data-line="61"
369-
class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:61</a></div>
387+
<div class="io-line">Defined in <a href="" data-line="67"
388+
class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:67</a></div>
370389
</td>
371390
</tr>
372391

@@ -435,8 +454,8 @@ <h3 id="methods">
435454

436455
<tr>
437456
<td class="col-md-4">
438-
<div class="io-line">Defined in <a href="" data-line="75"
439-
class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:75</a></div>
457+
<div class="io-line">Defined in <a href="" data-line="81"
458+
class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:81</a></div>
440459
</td>
441460
</tr>
442461

@@ -534,8 +553,8 @@ <h3 id="methods">
534553

535554
<tr>
536555
<td class="col-md-4">
537-
<div class="io-line">Defined in <a href="" data-line="61"
538-
class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:61</a></div>
556+
<div class="io-line">Defined in <a href="" data-line="67"
557+
class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:67</a></div>
539558
</td>
540559
</tr>
541560

@@ -609,8 +628,8 @@ <h3 id="methods">
609628

610629
<tr>
611630
<td class="col-md-4">
612-
<div class="io-line">Defined in <a href="" data-line="50"
613-
class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:50</a></div>
631+
<div class="io-line">Defined in <a href="" data-line="56"
632+
class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:56</a></div>
614633
</td>
615634
</tr>
616635

@@ -634,6 +653,43 @@ <h3 id="methods">
634653
<h3 id="inputs">
635654
Properties
636655
</h3>
656+
<table class="table table-sm table-bordered">
657+
<tbody>
658+
<tr>
659+
<td class="col-md-4">
660+
<a name="has_ai_access"></a>
661+
<span class="name">
662+
<span ><b>has_ai_access</b></span>
663+
<a href="#has_ai_access"><span class="icon ion-ios-link"></span></a>
664+
</span>
665+
</td>
666+
</tr>
667+
<tr>
668+
<td class="col-md-4">
669+
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
670+
671+
</td>
672+
</tr>
673+
<tr>
674+
<td class="col-md-4">
675+
<i>Default value : </i><code>false</code>
676+
</td>
677+
</tr>
678+
<tr>
679+
<td class="col-md-4">
680+
<div class="io-line">Defined in <a href="" data-line="35" class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:35</a></div>
681+
</td>
682+
</tr>
683+
684+
<tr>
685+
<td class="col-md-4">
686+
<div class="io-description"><p>Flag to determine if the user can access ai ssection for analysis data</p>
687+
</div>
688+
</td>
689+
</tr>
690+
691+
</tbody>
692+
</table>
637693
<table class="table table-sm table-bordered">
638694
<tbody>
639695
<tr>
@@ -652,7 +708,7 @@ <h3 id="inputs">
652708
</tr>
653709
<tr>
654710
<td class="col-md-4">
655-
<div class="io-line">Defined in <a href="" data-line="31" class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:31</a></div>
711+
<div class="io-line">Defined in <a href="" data-line="32" class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:32</a></div>
656712
</td>
657713
</tr>
658714

@@ -683,7 +739,7 @@ <h3 id="inputs">
683739
</tr>
684740
<tr>
685741
<td class="col-md-4">
686-
<div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:26</a></div>
742+
<div class="io-line">Defined in <a href="" data-line="27" class="link-to-prism">src/app/shared/hamburger-menu/hamburger-menu.component.ts:27</a></div>
687743
</td>
688744
</tr>
689745

@@ -706,6 +762,7 @@ <h3 id="inputs">
706762
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Component, HostListener } from &#x27;@angular/core&#x27;;
707763
import { CommonModule } from &#x27;@angular/common&#x27;;
708764
import { SectionService } from &#x27;../../service/section/section.service&#x27;;
765+
import { UserService } from &#x27;../../service/localStorage/user.service&#x27;;
709766

710767
/**
711768
* Hamburger menu component for mobile or compact navigation.
@@ -735,18 +792,23 @@ <h3 id="inputs">
735792
*/
736793
isMenuOpen &#x3D; false;
737794

795+
/** Flag to determine if the user can access ai ssection for analysis data*/
796+
has_ai_access: boolean &#x3D; false;
797+
738798
/**
739799
* Creates an instance of HamburgerMenuComponent.
740800
*
741801
* Subscribes to {@link SectionService.currentSection$} to manage the
742802
* visibility of the AI button based on the current section.
743803
*
744804
* @param sectionService Service for managing and broadcasting the active section.
805+
* @param userService Service for managing user preferences
745806
*/
746-
constructor(private sectionService: SectionService) {
807+
constructor(private sectionService: SectionService, private userService: UserService) {
747808
this.sectionService.currentSection$.subscribe(section &#x3D;&gt; {
748809
this.showAIButton &#x3D; section !&#x3D;&#x3D; &#x27;ai&#x27;;
749810
});
811+
this.has_ai_access &#x3D; this.userService.getValue&lt;boolean&gt;(&#x27;has_ai_access&#x27;) ?? false;
750812
}
751813

752814
/**
@@ -809,7 +871,7 @@ <h3 id="inputs">
809871
&lt;/div&gt;
810872
&lt;/div&gt; --&gt;
811873

812-
&lt;div class&#x3D;&quot;md:hidden fixed top-[0.1rem] right-3 z-50 hamburger-menu-container&quot;&gt;
874+
&lt;div *ngIf&#x3D;&quot;has_ai_access&quot; class&#x3D;&quot;md:hidden fixed top-[0.1rem] right-3 z-50 hamburger-menu-container&quot;&gt;
813875
&lt;button *ngIf&#x3D;&quot;showAIButton&quot; (click)&#x3D;&quot;navigateAndClose(&#x27;ai&#x27;, $event)&quot;
814876
class&#x3D;&quot;text-lg text-[var(--color-white)] py-[0.65rem]&quot;&gt;
815877
&lt;img src&#x3D;&quot;assets/img/icon/icons8-ai-96.png&quot; alt&#x3D;&quot;Menu&quot; class&#x3D;&quot;w-[24px] h-[24px]&quot;
@@ -850,7 +912,7 @@ <h3 id="inputs">
850912
<script src="../js/libs/htmlparser.js"></script>
851913
<script src="../js/libs/deep-iterator.js"></script>
852914
<script>
853-
var COMPONENT_TEMPLATE = '<div><!-- <div class="md:hidden fixed top-1 right-4 z-50 hamburger-menu-container"> <button (click)="toggleMenu()" class="text-lg text-[var(--color-white)] py-2"> <img src="assets/img/icon/icons8-menu-vertical-50.png" alt="Menu" class="w-[24px] h-[24px]" style="filter: invert(100%); transition: filter 0.3s ease;"> </button> <div *ngIf="isMenuOpen" class="fixed top-[3rem] right-[0.2rem] bg-[--color-surface] rounded-lg shadow-lg mt-2 w-[10rem]"> <ul class="flex flex-col"> <li> <a href="#" (click)="navigateAndClose(\'search\', $event)" class="block px-4 py-2 hover:bg-[--list-hover]">🔍 Search</a> </li> <li> <a href="#" (click)="navigateAndClose(\'settings\', $event)" class="block px-4 py-2 hover:bg-[--list-hover]">⚙️ Settings</a> </li> </ul> </div></div> --><div class="md:hidden fixed top-[0.1rem] right-3 z-50 hamburger-menu-container"> <button *ngIf="showAIButton" (click)="navigateAndClose(\'ai\', $event)" class="text-lg text-[var(--color-white)] py-[0.65rem]"> <img src="assets/img/icon/icons8-ai-96.png" alt="Menu" class="w-[24px] h-[24px]" style="filter: invert(100%); transition: filter 0.3s ease;"> </button></div></div>'
915+
var COMPONENT_TEMPLATE = '<div><!-- <div class="md:hidden fixed top-1 right-4 z-50 hamburger-menu-container"> <button (click)="toggleMenu()" class="text-lg text-[var(--color-white)] py-2"> <img src="assets/img/icon/icons8-menu-vertical-50.png" alt="Menu" class="w-[24px] h-[24px]" style="filter: invert(100%); transition: filter 0.3s ease;"> </button> <div *ngIf="isMenuOpen" class="fixed top-[3rem] right-[0.2rem] bg-[--color-surface] rounded-lg shadow-lg mt-2 w-[10rem]"> <ul class="flex flex-col"> <li> <a href="#" (click)="navigateAndClose(\'search\', $event)" class="block px-4 py-2 hover:bg-[--list-hover]">🔍 Search</a> </li> <li> <a href="#" (click)="navigateAndClose(\'settings\', $event)" class="block px-4 py-2 hover:bg-[--list-hover]">⚙️ Settings</a> </li> </ul> </div></div> --><div *ngIf="has_ai_access" class="md:hidden fixed top-[0.1rem] right-3 z-50 hamburger-menu-container"> <button *ngIf="showAIButton" (click)="navigateAndClose(\'ai\', $event)" class="text-lg text-[var(--color-white)] py-[0.65rem]"> <img src="assets/img/icon/icons8-ai-96.png" alt="Menu" class="w-[24px] h-[24px]" style="filter: invert(100%); transition: filter 0.3s ease;"> </button></div></div>'
854916
var COMPONENTS = [{'name': 'AddExpenseComponent', 'selector': 'app-add-expense'},{'name': 'AiComponent', 'selector': 'app-ai'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'BudgetComponent', 'selector': 'app-budget'},{'name': 'CalendarComponent', 'selector': 'app-calendar'},{'name': 'CategoryDropdownComponent', 'selector': 'app-category-dropdown'},{'name': 'DownloadComponentComponent', 'selector': 'app-download-component'},{'name': 'ExpenseDetailsModalComponent', 'selector': 'app-expense-details-modal'},{'name': 'ExpenseListComponent', 'selector': 'app-expense-list'},{'name': 'ExpenseWiseComponent', 'selector': 'app-expense-wise'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FormModelComponent', 'selector': 'app-form-model'},{'name': 'GlobalLoaderComponent', 'selector': 'app-global-loader'},{'name': 'GraphsComponent', 'selector': 'app-graphs'},{'name': 'HamburgerMenuComponent', 'selector': 'app-hamburger-menu'},{'name': 'HomeComponent', 'selector': 'app-home'},{'name': 'InstallAppPopupComponentComponent', 'selector': 'app-install-app-popup-component'},{'name': 'ListExpensesComponent', 'selector': 'app-list-expenses'},{'name': 'MusicComponent', 'selector': 'app-music'},{'name': 'NavbarComponent', 'selector': 'app-navbar'},{'name': 'PieChartComponent', 'selector': 'app-pie-chart'},{'name': 'PlaylistMusicComponent', 'selector': 'app-playlist-music'},{'name': 'SearchButtonComponent', 'selector': 'app-search-button'},{'name': 'SearchMusicComponent', 'selector': 'app-search-music'},{'name': 'SettingItemComponent', 'selector': 'app-setting-item'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'TemplatePlaygroundComponent', 'selector': 'template-playground-root'},{'name': 'ToastComponent', 'selector': 'app-toast'}];
855917
var DIRECTIVES = [];
856918
var ACTUAL_COMPONENT = {'name': 'HamburgerMenuComponent'};

documentation/coverage.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@
517517
<td>CalendarComponent</td>
518518
<td align="right" data-sort="100">
519519
<span class="coverage-percent">100 %</span>
520-
<span class="coverage-count">(26/26)</span>
520+
<span class="coverage-count">(34/34)</span>
521521
</td>
522522
</tr>
523523
<tr class="very-good">
@@ -613,7 +613,7 @@
613613
<td>HeatmapSummary</td>
614614
<td align="right" data-sort="100">
615615
<span class="coverage-percent">100 %</span>
616-
<span class="coverage-count">(4/4)</span>
616+
<span class="coverage-count">(5/5)</span>
617617
</td>
618618
</tr>
619619
<tr class="very-good">
@@ -865,7 +865,7 @@
865865
<td>User</td>
866866
<td align="right" data-sort="100">
867867
<span class="coverage-percent">100 %</span>
868-
<span class="coverage-count">(11/11)</span>
868+
<span class="coverage-count">(13/13)</span>
869869
</td>
870870
</tr>
871871
<tr class="very-good">
@@ -899,9 +899,9 @@
899899
</td>
900900
<td>injectable</td>
901901
<td>ScreenTypeService</td>
902-
<td align="right" data-sort="100">
903-
<span class="coverage-percent">100 %</span>
904-
<span class="coverage-count">(8/8)</span>
902+
<td align="right" data-sort="88">
903+
<span class="coverage-percent">88 %</span>
904+
<span class="coverage-count">(8/9)</span>
905905
</td>
906906
</tr>
907907
<tr class="very-good">
@@ -973,7 +973,7 @@
973973
<td>HamburgerMenuComponent</td>
974974
<td align="right" data-sort="100">
975975
<span class="coverage-percent">100 %</span>
976-
<span class="coverage-count">(8/8)</span>
976+
<span class="coverage-count">(9/9)</span>
977977
</td>
978978
</tr>
979979
<tr class="very-good">

documentation/index.html

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,17 @@ <h3>3. <strong>Calendar View</strong></h3>
159159
<li>Tap any date to open a <strong>popup modal</strong> displaying all expenses for that day.</li>
160160
<li>Navigate across <strong>months and years</strong> to view past or future expenses.</li>
161161
<li>Toggle the Show HeatMap switch to highlight each day based on spending intensity.<ul>
162-
<li>Days are color-coded (e.g. No expense, &lt; ₹300, ₹300–₹1000, &gt; ₹1000) for quick insights.</li>
163-
<li>A legend below the calendar explains each color category.</li>
164-
<li>A summary table displays color, days count, and total amount for each category.</li>
162+
<li>Days are color-coded based on spending thresholds (e.g. No expense, &lt; threshold, between thresholds, &gt; threshold) for quick insights.</li>
163+
<li>Users can now <strong>customize the threshold amounts</strong> for each heatmap color:<ul>
164+
<li><strong>Red (Rose)</strong> – default &gt; ₹1000</li>
165+
<li><strong>Yellow (Amber)</strong> – default ₹500 - 1000</li>
166+
<li><strong>Green (Emerald)</strong> – default &lt; ₹500</li>
167+
</ul>
168+
</li>
169+
<li>A <strong>summary table</strong> displays each color, the number of days, the total expense, and an <strong>Edit button</strong> for updating the thresholds.<ul>
170+
<li>Editing allows users to set a new amount for the corresponding color, immediately updating the heatmap visualization.</li>
171+
</ul>
172+
</li>
165173
</ul>
166174
</li>
167175
</ul>

0 commit comments

Comments
 (0)