| @@ -17,7 +17,6 @@ | |||
| "@angular/platform-browser-dynamic": "^17.0.2", | |||
| "@angular/router": "^17.0.2", | |||
| "@ionic/angular": "^7.0.0", | |||
| "angular-svg-round-progressbar": "^12.0.0", | |||
| "ionicons": "^7.0.0", | |||
| "rxjs": "~7.8.0", | |||
| "tslib": "^2.3.0", | |||
| @@ -4734,18 +4733,6 @@ | |||
| "ajv": "^8.8.2" | |||
| } | |||
| }, | |||
| "node_modules/angular-svg-round-progressbar": { | |||
| "version": "12.0.0", | |||
| "resolved": "https://registry.npmjs.org/angular-svg-round-progressbar/-/angular-svg-round-progressbar-12.0.0.tgz", | |||
| "integrity": "sha512-zf5TLC0goQZgirSp6g72SdN8Vz7a3VuKVqdSnIuAf0Q7Nx55crmlwLWIEYIxrKe5A1wea8fnOF8oFK5v8mCAsA==", | |||
| "dependencies": { | |||
| "tslib": "^2.3.0" | |||
| }, | |||
| "peerDependencies": { | |||
| "@angular/common": "^17.0.0", | |||
| "@angular/core": "^17.0.0" | |||
| } | |||
| }, | |||
| "node_modules/ansi-colors": { | |||
| "version": "4.1.3", | |||
| "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", | |||
| @@ -19855,14 +19842,6 @@ | |||
| "fast-deep-equal": "^3.1.3" | |||
| } | |||
| }, | |||
| "angular-svg-round-progressbar": { | |||
| "version": "12.0.0", | |||
| "resolved": "https://registry.npmjs.org/angular-svg-round-progressbar/-/angular-svg-round-progressbar-12.0.0.tgz", | |||
| "integrity": "sha512-zf5TLC0goQZgirSp6g72SdN8Vz7a3VuKVqdSnIuAf0Q7Nx55crmlwLWIEYIxrKe5A1wea8fnOF8oFK5v8mCAsA==", | |||
| "requires": { | |||
| "tslib": "^2.3.0" | |||
| } | |||
| }, | |||
| "ansi-colors": { | |||
| "version": "4.1.3", | |||
| "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", | |||
| @@ -22,7 +22,6 @@ | |||
| "@angular/platform-browser-dynamic": "^17.0.2", | |||
| "@angular/router": "^17.0.2", | |||
| "@ionic/angular": "^7.0.0", | |||
| "angular-svg-round-progressbar": "^12.0.0", | |||
| "ionicons": "^7.0.0", | |||
| "rxjs": "~7.8.0", | |||
| "tslib": "^2.3.0", | |||
| @@ -14,11 +14,7 @@ const routes: Routes = [ | |||
| { | |||
| path: 'story-details', | |||
| loadChildren: () => import('./story-details/story-details.module').then( m => m.StoryDetailsPageModule) | |||
| }, | |||
| { | |||
| path: 'chant-mantras', | |||
| loadChildren: () => import('./chant-mantras/chant-mantras.module').then( m => m.ChantMantrasPageModule) | |||
| }, | |||
| } | |||
| ]; | |||
| @NgModule({ | |||
| @@ -1,17 +0,0 @@ | |||
| import { NgModule } from '@angular/core'; | |||
| import { Routes, RouterModule } from '@angular/router'; | |||
| import { ChantMantrasPage } from './chant-mantras.page'; | |||
| const routes: Routes = [ | |||
| { | |||
| path: '', | |||
| component: ChantMantrasPage | |||
| } | |||
| ]; | |||
| @NgModule({ | |||
| imports: [RouterModule.forChild(routes)], | |||
| exports: [RouterModule], | |||
| }) | |||
| export class ChantMantrasPageRoutingModule {} | |||
| @@ -1,23 +0,0 @@ | |||
| import { NgModule } from '@angular/core'; | |||
| import { CommonModule } from '@angular/common'; | |||
| import { FormsModule } from '@angular/forms'; | |||
| import { IonicModule } from '@ionic/angular'; | |||
| import { ChantMantrasPageRoutingModule } from './chant-mantras-routing.module'; | |||
| import { ChantMantrasPage } from './chant-mantras.page'; | |||
| import { RoundProgressModule } from 'angular-svg-round-progressbar'; | |||
| @NgModule({ | |||
| imports: [ | |||
| CommonModule, | |||
| FormsModule, | |||
| IonicModule, | |||
| ChantMantrasPageRoutingModule, | |||
| RoundProgressModule, | |||
| ], | |||
| declarations: [ChantMantrasPage], | |||
| }) | |||
| export class ChantMantrasPageModule {} | |||
| @@ -1,20 +0,0 @@ | |||
| <ion-content [fullscreen]="true"> | |||
| <section class="timer"> | |||
| <round-progress | |||
| [current]="options.current" | |||
| [max]="options.max" | |||
| [color]="options.color" | |||
| [background]="options.background" | |||
| [stroke]="options.stroke" | |||
| [semicircle]="options.semicircle" | |||
| [rounded]="options.rounded" | |||
| [clockwise]="options.clockwise" | |||
| [responsive]="options.responsive" | |||
| [duration]="options.duration" | |||
| [animation]="options.animation" | |||
| [animationDelay]="options.animationDelay"/> | |||
| <div class="indicator"> | |||
| {{ totalTime }} | |||
| </div> | |||
| </section> | |||
| </ion-content> | |||
| @@ -1,13 +0,0 @@ | |||
| .timer { | |||
| position: relative; | |||
| .indicator { | |||
| background: linear-gradient(90deg, var(--brand-orange-shade1), var(--brand-orange-shade2)); | |||
| margin: 0 auto; | |||
| height: 30vh; | |||
| width: 30vh; | |||
| position: absolute; | |||
| border-top-left-radius: 50%; | |||
| border-top-right-radius: 50%; | |||
| } | |||
| } | |||
| @@ -1,17 +0,0 @@ | |||
| import { ComponentFixture, TestBed } from '@angular/core/testing'; | |||
| import { ChantMantrasPage } from './chant-mantras.page'; | |||
| describe('ChantMantrasPage', () => { | |||
| let component: ChantMantrasPage; | |||
| let fixture: ComponentFixture<ChantMantrasPage>; | |||
| beforeEach(async(() => { | |||
| fixture = TestBed.createComponent(ChantMantrasPage); | |||
| component = fixture.componentInstance; | |||
| fixture.detectChanges(); | |||
| })); | |||
| it('should create', () => { | |||
| expect(component).toBeTruthy(); | |||
| }); | |||
| }); | |||
| @@ -1,44 +0,0 @@ | |||
| import { Component, OnInit, OnDestroy } from '@angular/core'; | |||
| @Component({ | |||
| selector: 'app-chant-mantras', | |||
| templateUrl: './chant-mantras.page.html', | |||
| styleUrls: ['./chant-mantras.page.scss'], | |||
| }) | |||
| export class ChantMantrasPage implements OnInit, OnDestroy { | |||
| options = { | |||
| current: 100, | |||
| max: 100, | |||
| color: '#fa9900', | |||
| background: '#fce09f', | |||
| stroke: 10, | |||
| semicircle: true, | |||
| rounded: true, | |||
| clockwise: true, | |||
| responsive: true, | |||
| duration: 1000, | |||
| animation: 'easeInOutQuart', | |||
| animationDelay: 0, | |||
| }; | |||
| totalTime: number = 100000; | |||
| currentTime: number = 0; | |||
| timerInterval: any; | |||
| constructor() {} | |||
| ngOnDestroy() { | |||
| clearInterval(this.timerInterval); | |||
| } | |||
| ngOnInit() { | |||
| this.currentTime = this.totalTime; | |||
| this.timerInterval = setInterval(() => { | |||
| if (this.currentTime > 0) { | |||
| this.currentTime -= 1000; | |||
| this.options.current = this.currentTime * 100 / this.totalTime; | |||
| } else { | |||
| clearInterval(this.timerInterval); | |||
| } | |||
| }, 1000); | |||
| } | |||
| } | |||
| @@ -5,7 +5,7 @@ | |||
| <h5>Om Namo Narayani</h5> | |||
| <button class="notifications-button"> | |||
| <ion-icon src="assets/revised-assets/bell.svg"></ion-icon> | |||
| <ion-badge>11</ion-badge> | |||
| <ion-badge>9</ion-badge> | |||
| </button> | |||
| </header> | |||
| <ul class="stories remove-scrollbar" (click)="showStoryDetails()"> | |||
| @@ -63,25 +63,32 @@ | |||
| <ul class="horizontal-card-list remove-scrollbar"> | |||
| <li> | |||
| <figure> | |||
| <img src="assets/sample-images/merch/idol.webp" alt="" /> | |||
| <img src="assets/revised-assets/meditation.svg" /> | |||
| </figure> | |||
| <span> Thrive beyond fear </span> | |||
| </li> | |||
| <li> | |||
| <figure> | |||
| <img src="assets/sample-images/merch/incense-1.jpeg" alt="" /> | |||
| </figure> | |||
| </li> | |||
| <li> | |||
| <figure> | |||
| <img src="assets/sample-images/merch/incense-2.jpeg" alt="" /> | |||
| </figure> | |||
| </li> | |||
| <li> | |||
| <figure> | |||
| <img src="assets/sample-images/merch/kunkum.webp" alt="" /> | |||
| <img src="assets/revised-assets/chakras.svg" /> | |||
| </figure> | |||
| <span> Conquer addiction </span> | |||
| </li> | |||
| </ul> | |||
| </section> | |||
| </section> | |||
| <section class="action-card alternative"> | |||
| <div class="container"> | |||
| <h5> Explore Temple </h5> | |||
| <p> Discover The Essence of a Journey of Spiritual Awakening. </p> | |||
| <button> | |||
| <ion-icon src="assets/revised-assets/play-filled.svg"></ion-icon> | |||
| Watch Live | |||
| </button> | |||
| </div> | |||
| <figure> | |||
| <img src="assets/sample-images/temple-image.png" alt="temple image"> | |||
| </figure> | |||
| </section> | |||
| </section> | |||
| </ion-content> | |||
| @@ -16,7 +16,7 @@ h5 { | |||
| border-bottom-right-radius: var(--card-radius); | |||
| border-bottom-left-radius: var(--card-radius); | |||
| height: 40rem; | |||
| margin-bottom: -17rem; | |||
| margin-bottom: -15rem; | |||
| overflow: hidden; | |||
| .pattern { | |||
| @@ -63,12 +63,11 @@ h5 { | |||
| ion-badge { | |||
| position: absolute; | |||
| right: 0; | |||
| top: 0; | |||
| right: -0.1rem; | |||
| top: -0.1rem; | |||
| background-color: #79af2e; | |||
| color: var(--brand-cream-light); | |||
| border-radius: 50%; | |||
| transform: translate(0.3rem, -0.3rem); | |||
| font-size: 1rem; | |||
| } | |||
| } | |||
| @@ -125,6 +124,7 @@ h5 { | |||
| .container { | |||
| align-self: center; | |||
| padding: var(--standard-vertical-spacing-between-sections) 0; | |||
| } | |||
| .icon { | |||
| @@ -160,10 +160,34 @@ h5 { | |||
| font-size: 1.1rem; | |||
| } | |||
| } | |||
| &.alternative { | |||
| background-color: var(--brand-red); | |||
| grid-template-columns: 0.6fr 0.4fr; | |||
| h5, p { | |||
| color: var(--brand-cream-light); | |||
| } | |||
| button { | |||
| border-color: var(--brand-cream-light); | |||
| background-color: var(--brand-cream-light); | |||
| color: var(--brand-red); | |||
| ion-icon { | |||
| font-size: 2rem; | |||
| margin-left: 0; | |||
| } | |||
| } | |||
| figure { | |||
| align-self: center; | |||
| } | |||
| } | |||
| } | |||
| .card-collections { | |||
| padding-top: 2rem; | |||
| padding-top: 4rem; | |||
| header { | |||
| align-items: center; | |||
| @@ -186,57 +210,55 @@ h5 { | |||
| .horizontal-card-list { | |||
| list-style: none; | |||
| width: calc(100% + 2rem); | |||
| width: calc(100% + (2 * var(--page-padding-value))); | |||
| overflow-x: auto; | |||
| overflow-y: hidden; | |||
| white-space: nowrap; | |||
| padding: var(--standard-vertical-spacing-between-sections); | |||
| margin: var(--standard-vertical-spacing-between-sections) 0; | |||
| margin-left: -var(--standard-vertical-spacing-between-sections); | |||
| padding-left: var(--page-padding-value); | |||
| margin-left: calc(var(--page-padding-value) * -1); | |||
| $card-height: 22rem; | |||
| li { | |||
| display: inline-block; | |||
| margin-right: 2rem; | |||
| position: relative; | |||
| &::before { | |||
| content: ''; | |||
| width: 90%; | |||
| height: 100%; | |||
| left: 5%; | |||
| position: absolute; | |||
| top: -1rem; | |||
| background-color: var(--brand-red); | |||
| opacity: 0.1; | |||
| border-radius: var(--card-radius); | |||
| } | |||
| &::after { | |||
| content: ''; | |||
| width: 100%; | |||
| height: 100%; | |||
| left: 0; | |||
| position: absolute; | |||
| top: 0rem; | |||
| background-color: var(--brand-red); | |||
| opacity: 0.2; | |||
| border-radius: var(--card-radius); | |||
| z-index: 1; | |||
| } | |||
| background: linear-gradient(180deg, #e0c086, #756445 50%); | |||
| padding: 2rem; | |||
| border-radius: var(--card-radius); | |||
| width: calc($card-height - 2rem); | |||
| height: $card-height; | |||
| overflow: hidden; | |||
| } | |||
| figure { | |||
| position: relative; | |||
| z-index: 0; | |||
| width: 15rem; | |||
| height: 20rem; | |||
| width: 100%; | |||
| height: 100%; | |||
| img { | |||
| border-radius: var(--card-radius); | |||
| width: 100%; | |||
| height: 100%; | |||
| object-fit: cover; | |||
| object-fit: contain; | |||
| object-position: center; | |||
| } | |||
| } | |||
| span { | |||
| position: absolute; | |||
| bottom: 0; | |||
| left: 0; | |||
| width: 100%; | |||
| display: block; | |||
| font-family: 'charter-bold'; | |||
| text-align: center; | |||
| font-size: 1.6rem; | |||
| color: var(--brand-cream-light); | |||
| width: 100%; | |||
| padding: 2rem; | |||
| font-size: 1.4rem; | |||
| white-space: normal; | |||
| } | |||
| } | |||
| @@ -20,19 +20,19 @@ figure { | |||
| height: 40vh; | |||
| text-align: center; | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: center; | |||
| } | |||
| h5 { | |||
| font-weight: 700; | |||
| font-size: 2rem; | |||
| margin-bottom: var(--standard-vertical-spacing-between-sections); | |||
| color: var(--brand-red); | |||
| } | |||
| p { | |||
| font-size: 1.8rem; | |||
| font-style: italic; | |||
| color: var(--brand-brown); | |||
| } | |||
| .action-items { | |||