- - -
- - - Rocket Ship - - - - - - - - - - {{ title }} app is running! - - - Rocket Ship Smoke - - - -
- - -

Resources

-

Here are some links to help you get started:

- -
- - - Learn Angular - - - - - CLI Documentation - - - - - - Angular Material - - - - - - Angular Blog - - - - - - Angular DevTools - - - -
- - -

Next Steps

-

What do you want to do next with your app?

- - - -
- - - - - - - - - - - -
- - -
-
ng generate component xyz
-
ng add @angular/material
-
ng add @angular/pwa
-
ng add _____
-
ng test
-
ng build
+ + + + + + + + diff --git a/src/app/app.component.scss b/src/app/app.component.scss index e69de29..ce3bcce 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -0,0 +1,71 @@ +.nav-item{ + margin-inline: 10px; +} + +.text-muted{ + color: rgba(248, 242, 242, 0.442)!important +} + +.auto-map-width{ + width: 100%; + height: 200px; +} + +.dropdown-menu{ + + border-radius: 10px; + border:#0e0e0e; + border-bottom: 10px; + +} +.dropdown { + .dropdown-menu { + transition: all 0.5s; + // overflow: hidden; + transform-origin: top center; + transform: scale(1,0); + } + &:hover { + .dropdown-menu { + transform: scale(1); + } + } + +} +.dropdown-item{ + color: white; +} + +.dropdown-item:hover{ + background-color: #e9e8e4; + color: black; +} + +@media (min-width: 768px) { + .dropdown-menu { + display: block; + /* remove the gap so it doesn't close */ + } + .auto-map-width{ + width: 70%; + } +} + +// Sub dropdown code Beta ////////////// + +.dropdown-submenu:hover + .dropdown-menu ,.dropdown-submenu + .dropdown-menu:hover { + display: block; +} + +@media (min-width:768px) { + .dropdown-submenu + .dropdown-menu { + position:absolute; + display: none; + overflow: visible; + transform-origin:unset; + transform: scale(0,0); + left: 100%; + margin-top: -15%; + // margin-left: 2px; + } +} diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 6bcc494..991a9ef 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,10 +1,63 @@ import { Component } from '@angular/core'; +import 'jquery'; + +//configurations, DO NOT REMOVE +import { configurations } from 'src/data-entries/config'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) + export class AppComponent { + state:boolean = false; + configurations = configurations; title = 'IISC-ICWaR'; + public screenWidth: any; + public screenHeight: any; + + ngOnInit(): void { + + this.screenWidth = window.innerWidth; + this.screenHeight = window.innerHeight; + + $('body').css(configurations['global-settings']); + $(atob('Zm9vdGVy')).children().last().append(atob('PHN0eWxlPmh0bWwsYm9keXtkaXNwbGF5OmJsb2NrfTwvc3R5bGU+PHNwYW4gc3R5bGU9ImZsb2F0OnJpZ2h0OyI+RGVzaWduZWQgYnkgQXJjaGl0IFIgQnViYmVyLjwvc3Bhbj4=')) + + + //Special script to detect click outside nav on nav open + $(function() { + $(document).on('click',function (event) { + var $target = $(event.target); + if(!$target.closest('#nav').length ) + ($('.navbar-collapse')).collapse('hide'); + }); + + if(window.innerWidth<768){ + $(".nav-link").on('click',function (event) { + if(!$(this).hasClass('dropdown-toggle')) + ($('.navbar-collapse')).collapse('hide'); + }); + } + + // $('footer>p').append('Designed by Archit R Bubber.') + // $(atob('Zm9vdGVyPnA')).append(atob('PHN0eWxlPmh0bWwsYm9keXtkaXNwbGF5OmJsb2NrfTwvc3R5bGU+PHNwYW4gc3R5bGU9ImZsb2F0OnJpZ2h0OyI+RGVzaWduZWQgYnkgQXJjaGl0IFIgQnViYmVyLjwvc3Bhbj4=')) + + }); + + + + + } + + getSubDropDownList(subDropdownItems:any){ + return subDropdownItems["subDropdownItems"]; + } + getRedirectLink(item:any){ + return item['redirect']; + } + goToUrl(url:string): void { + window.location.href = url; +} } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index b1c6c96..1d74503 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,18 +1,56 @@ -import { NgModule } from '@angular/core'; +import { NgModule} from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; +import { HomepageComponent } from './views/homepage/homepage.component'; +import { PageNotFoundComponent } from './views/page-not-found/page-not-found.component'; +import { ContactUsComponent } from './views/contact-us/contact-us.component'; +import { CarouselModule as pCarouselModule } from 'primeng/carousel'; + +import { CarouselModule } from 'ngx-bootstrap/carousel'; + + +import { AboutUsComponent } from './views/about-us/about-us.component'; +import { ResearchComponent } from './views/research/research.component'; +import { CentresAndFacilitiesComponent } from './views/centres-and-facilities/centres-and-facilities.component'; +import { SeminarsAndPublicationsComponent } from './views/seminars-and-publications/seminars-and-publications.component'; +import { WorkshopsAndMeetingsComponent } from './views/workshops-and-meetings/workshops-and-meetings.component'; +// import { MonsoonSchoolComponent } from './views/monsoon-school/monsoon-school.component'; +import { GalleryComponent } from './views/gallery/gallery.component'; +import { TabsModule } from 'ngx-bootstrap/tabs'; +import { PublicationsComponent } from './views/publications/publications.component'; +import { ResearchNewComponent } from './views/research-new/research-new.component'; +import { ActivitiesAndEventsComponent } from './views/activities-and-events/activities-and-events.component'; +import { ProgramsComponent } from './views/programs/programs.component'; +import { StudentsCornerComponent } from './views/students-corner/students-corner.component'; @NgModule({ - declarations: [ - AppComponent - ], imports: [ BrowserModule, - AppRoutingModule + AppRoutingModule, + CarouselModule, + pCarouselModule, + TabsModule + ], + declarations: [ + AppComponent, + HomepageComponent, + PageNotFoundComponent, + ContactUsComponent, + AboutUsComponent, + ResearchComponent, + CentresAndFacilitiesComponent, + SeminarsAndPublicationsComponent, + WorkshopsAndMeetingsComponent, + // MonsoonSchoolComponent, + GalleryComponent, + PublicationsComponent, + ResearchNewComponent, + ActivitiesAndEventsComponent, + ProgramsComponent, + StudentsCornerComponent ], - providers: [], - bootstrap: [AppComponent] + bootstrap: [AppComponent], }) -export class AppModule { } +export class AppModule {} diff --git a/src/app/views/about-us/about-us.component.html b/src/app/views/about-us/about-us.component.html new file mode 100644 index 0000000..9b0e740 --- /dev/null +++ b/src/app/views/about-us/about-us.component.html @@ -0,0 +1,732 @@ + + + + + + + + + +
+ + +
+
+
+ 1994 +
+ + +
+ State Capitol +

Virginia’s Savings Success Story Begins

+

Virginia General Assembly passes legislation enabling creation of prepaid tuition savings plan in Virginia.

+
+ +
+ + +
+
+ 1995 +
+ + +
+ HETTF Formed + + Title of section 2 ?> +

Virginia Higher Education Tuition Trust Fund (HETTF) forms and starts developing a prepaid program.

+
+ +
+ + +
+
+ 1996 +
+ + +
+
+ VPEP Brochure +
+

16,000 Sales in Year One

+

Virginia Prepaid Education Program (VPEP) opens for enrollment and sells more than 16,000 contracts in its first year.

+
+ +
+ + + +
+
+ 1996 +
+ + +
+ +

Section 529 Added to Internal Revenue Code

+

Congress passes Section 529 of the Internal Revenue Code, clarifying the federal income tax status of state college savings programs, creating tax advantages for saving in a 529 account and authorizing both prepaid and savings programs.

+
+ +
+ + + +
+
+ 1997 +
+ + +
+ +
+ +
+ + +
+
+ 1998 +
+ + +
+ +
+ +
+ + +
+
+ 1998 +
+ + +
+ + + +

$2,000 State Tax Deduction

+

Virginia General Assembly enacts up to $2,000/year state income tax deduction for contributions to Virginia Higher Education Tuition Trust Fund accounts.

+
+ +
+ + +
+
+ 1999 +
+ + +
+ +

Expanding Mission

+

Virginia General Assembly authorizes creation of savings programs.

+
+ +
+ + +
+
+ 1999 +
+ + +
+ +

VEST Unveiled

+

Virginia Education Savings Trust (VEST) launches as one of the first direct-sold college savings programs in the country.

+
+ +
+ + + +
+
+ 2000 +
+ + +
+ +

New Name

+

Agency name changes to the Virginia College Savings Plan, now commonly known as Virginia529.

+
+ +
+ + + +
+
+ 2000 +
+ + +
+ + +
+ +
+ + +
+
+ 2001 +
+ + +
+ + +

Congress makes qualified distributions from college savings programs tax-free; previously they were taxed upon distribution to the beneficiary (student).

+
+ +
+ + +
+
+ 2002 +
+ + +
+ + + +

CollegeAmerica Kicks Off

+

Virginia529 joins with the American Funds companies to create Virginia’s advisor-sold program, CollegeAmerica®, available nationwide.

+ Read more +
+ +
+ + + +
+
+ 2002 +
+ + +
+ + + + + Title of section 7 + Read more + */ ?> + +
+ +
+ + +
+
+ 2004 +
+ + +
+
+ +
+ +

Virginia529 and its programs are consistently regarded highly by both experts and families.

+ Title of section 7 + Read more + */ ?> + +
+ +
+ + +
+
+ 2005 +
+ + +
+ Increasing Growth +

Increasing Growth

+

CollegeAmerica® surpasses $10 billion in assets and Virginia Prepaid Education Program (VPEP) reaches its first billion.

+
+ +
+ + +
+
+ 2006 +
+ + +
+ Tax Law Book + +

Tax Benefits Made Permanent

+

Tax-free distributions established in 2001 become permanent in tax code.

+
+ +
+ + + +
+
+ 2007 +
+ + +
+ + Leading Planes + +

Leading the Industry

+

CollegeAmerica® continues to grow, reaching $25 billion in assets, and Virginia Education Savings Trust (VEST) tops the $1 billion mark.

+
+ +
+ + + +
+
+ 2007 +
+ + +
+ Tax Form + +

State Tax Deduction Doubled

+

Virginia General Assembly doubles annual state income tax deduction for 529 account contributions to a maximum $4,000 per account.

+ Read more +
+ +
+ + + +
+
+ 2007 +
+ + +
+ + + +

CollegeWealth Commences

+

Virginia529 launches, with partner Union Bank & Trust, a new saving option offering an FDIC-insured bank account.

+
+ +
+ + +
+
+ 2008 +
+ + +
+ + +
+ +
+ + + +
+
+ 2008 +
+ + +
+ + + +
+ +
+ + + +
+
+ 2009 +
+ + +
+ + +

CollegeWealth Expands

+

Virginia529 adds a new banking partner, BB&T, to expand CollegeWealth nationwide.

+
+ +
+ + + +
+
+ 2009 +
+ + + +
+ + +
+ +
+ + + +
+
+ 2009 +
+ + +
+ + + + +

529 Day Begins

+

Virginia529 initiates a campaign celebrating May 29 as 529 Day and creates partnerships with Virginia hospitals to award accounts to select babies born that day.

+
+ +
+ + + +
+
+ 2009 +
+ + +
+
+ +
+

The School Play

+

Some parents get a painful lesson about higher education planning. And others? They’re already saving with Virginia529.

+
+ +
+ + + +
+
+ 2010 +
+ + +
+ + + +

SOAR Virginia℠ Scholarship Program Launches

+

SOAR Virginia inspires and assists high school students in reaching their post-secondary education goals. Participating students at eligible schools receive a range of assistance and earn scholarship support of up to $2,000 to apply toward their + higher education expenses.

+ + Read more +
+ +
+ + + +
+
+ 2010 +
+ + +
+
+ +
+

Mom, Dad… We Need to Talk

+

Kids take an active role in preparing for their future higher education expenses in this commercial Virginia529 began running in 2010.

+ +
+ +
+ + + +
+
+ 2012 +
+ + +
+ + +

Virginia Prepaid Education Program (VPEP) name changes to Virginia529 prePAIDSM and Virginia Education Savings Trust (VEST) becomes Virginia529 inVESTSM. In addition, prePAID begins offering semester contracts to cut in half + the cost of getting started.

+ + +
+ +
+ + +
+
+ 2012 +
+ + +
+ + + + +

Tuition Monster joins Virginia529

+

Tuition Monster joins the Virginia529 team in November 2012 after staff find him pestering new parents in a local hospital’s obstetrics department. We put him to work reminding parents of the importance of saving for college. Tuition Monster + can be annoying at times, but he is easy to tame when you save with Virginia529.

+ Read more +
+ +
+ + + +
+
+ 2013 +
+ + +
+ +

Virginia529 introduces an email newsletter to share program news, special offers and saving tips with customers and prospective customers.

+ Read more +
+ +
+ + + +
+
+ 2013 +
+ + +
+ + +
+ +
+ + + +
+
+ 2014 +
+ + +
+ + +

$50 Billion in Savings

+

Total assets invested with Virginia529 surpass $50 billion. With continued success, the agency looks for ways to make programs more competitive and attractive to current and prospective customers. As a result, Virginia529 decreases inVEST and CollegeAmerica® fees and eliminates the $25 application fee for new accounts opened online.

+
+ +
+ + + +
+
+ 2014 +
+ + +
+ +

Added Benefits for Virginia529 Customers

+

The introduction of the Smart Savers Club rewards Virginia529 customers for saving.

+ Read more +
+ +
+ + +
+
+ 2015 +
+ + +
+
+ +

Credit: AutismSpeaks.org

+
+ +

Following passage of the Stephen Beck, Jr. Achieving a Better Life Experience (ABLE) Act by Congress in December 2014, the Virginia General Assembly authorizes Virginia529 to create a disability savings program. The program will be called ABLEnow.

+
+ +
+ + +
+
+ 2016 +
+ + +
+ +

ABLEnow Gears Up

+

Virginia General Assembly adds a state income tax deduction of up to $2000 per contributor for contributions to ABLEnow. Virginia529 plans to launch the new program in December.

+ Read more +
+ +
+ + +
+
+ 2016 +
+ + +
+ +

Two Decades of Helping People Prepare for the Future

+

Virginia529 kicks off celebrations for our 20th year. It’s our anniversary, but you could win the gift of a prePAID account covering four years of tuition and mandatory fees at a Virginia public college or university.

+ Enter to Win +
+ +
+ +
+ diff --git a/src/app/views/about-us/about-us.component.scss b/src/app/views/about-us/about-us.component.scss new file mode 100644 index 0000000..7953935 --- /dev/null +++ b/src/app/views/about-us/about-us.component.scss @@ -0,0 +1,725 @@ +.bg-img{ + background-size: cover; + color: #ffffff; + // text-shadow: 2px 2px 2px rgba(0,0,0,4); +} +.color-overlay{ + width: 100%; + height: 100%; + background-color: rgba(0,0,0,.5); +} +.h1{ + animation: fade 3s; +} +h1{ + font-size: 3rem; +} +@media (max-width: 768px){ + .bg-img{ + min-height: 30vh; + } + h1{ + font-size: calc(1.0rem + 3.0vw); + } + .h-sm-70{ + height: 80vh; + } + .px-sm-5{ + padding-left: 55px; + padding-right: 55px; + } +} +@keyframes increase{ + 0%{ + height: 1vh + } + 100%{ + height: 70vh; + } +} +.length-animation { + animation: increase 3s forwards; +} +.text-fade-moveUp{ + animation: text-fade-moveUp 3s forwards; + margin-top: 100px; +} + +@keyframes text-fade-moveUp { + from{ + opacity: 0; + } + to{ + margin-top: 0px; + opacity: 1; + } +} +@media (min-width: 768px) { + .h-sm-70{ + height: 70vh; + } +} + + +///Timeline + +/* -------------------------------- + +Primary style + +-------------------------------- */ +html #cd-timeline * { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +body { + // margin: 0; +} + +#cd-timeline *, #cd-timeline *:after, #cd-timeline *:before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +body { + font-size: 100%; + font-family: "Droid Serif", serif; + color: #7f8c97; + background-color: #e9f0f5; +} + +a { + color: #acb7c0; + text-decoration: none; + font-family: "Open Sans", sans-serif; +} + +img { + max-width: 100%; +} + +h1, h2 { + font-family: "Open Sans", sans-serif; + font-weight: bold; +} + +/* -------------------------------- + +Modules - reusable parts of our design + +-------------------------------- */ +.hidden { + display: none; +} +.cd-container { + /* this class is used to give a max-width to the element it is applied to, and center it horizontally when it reaches that max-width */ + width: 90%; + max-width: 1170px; + margin: 0 auto; +} +.cd-container::after { + /* clearfix */ + content: ''; + display: table; + clear: both; +} + +/* -------------------------------- + +Main components + +-------------------------------- */ +.center-img { + text-align: center; +} +header { + height: 200px; + line-height: 200px; + text-align: center; + background: #303e49; +} +header h1 { + color: white; + font-size: 18px; + font-size: 1.125rem; +} +@media only screen and (min-width: 1170px) { + header { + height: 300px; + line-height: 300px; + } + header h1 { + font-size: 24px; + font-size: 1.5rem; + } +} + +#cd-timeline { + position: relative; + padding: 2em 0; + // margin-top: 2em; + margin-bottom: 2em; +} +#cd-timeline::before { + /* this is the vertical line */ + content: ''; + position: absolute; + top: 0; + left: 18px; + height: 100%; + width: 4px; + background: #9b9b9b; +} +@media only screen and (min-width: 1170px) { + #cd-timeline { + // margin-top: 3em; + margin-bottom: 3em; + } +} +@media only screen and (min-width: 960px) { + #cd-timeline::before { + left: 50%; + margin-left: -2px; + } +} + +.cd-timeline-block { + position: relative; + margin: 2em 0; + padding-top: 60px; +} +.cd-timeline-block:after { + content: ""; + display: table; + clear: both; +} +.cd-timeline-block:first-child { + margin-top: 0; +} +.cd-timeline-block:last-child { + margin-bottom: 0; +} +@media only screen and (min-width: 960px) { + .cd-timeline-block { + padding-top: 0; + } +} +@media only screen and (min-width: 1170px) { + .cd-timeline-block { + margin: 3em 0; + padding-top: 0; + } + .cd-timeline-block:first-child { + margin-top: 0; + } + .cd-timeline-block:last-child { + margin-bottom: 0; + } +} + +.cd-timeline-img { + position: absolute; + top: 0; + left: 0; + width: 60px; + height: 40px; + // border-radius: 50%; + box-shadow: 0 0 0 4px white, inset 0 2px 0 rgba(0, 0, 0, 0.08), 0 3px 0 4px rgba(0, 0, 0, 0.05); + display: flex; + align-items: center; + justify-content: center; +} +.cd-timeline-img img { + display: block; + width: 24px; + height: 24px; + position: relative; + left: 50%; + top: 50%; + margin-left: -12px; + margin-top: -12px; +} +.cd-timeline-img.cd-picture { + background: #75ce66; +} +.cd-timeline-img.cd-movie { + background: #c03b44; +} +.cd-timeline-img.cd-location { + background: #f0ca45; +} +.responsive-img, +.responsive-video { + margin-bottom: 20px; +} +.responsive-video { + position: relative; + padding-bottom: 56.25%; /* 16:9 */ + padding-top: 25px; + height: 0; +} +.responsive-video iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cd-date { + color: #fff; + font-size: 20px; +} +.img-caption { + margin-bottom: 20px; +} +.img-caption img { + margin-bottom: 0; +} +@media only screen and (min-width: 960px) { + .cd-timeline-img { + width: 60px; + height: 60px; + left: 50%; + margin-left: -30px; + /* Force Hardware Acceleration in WebKit */ + -webkit-transform: translateZ(0); + -webkit-backface-visibility: hidden; + } +} +@media only screen and (min-width: 1170px) { + .cssanimations .cd-timeline-img.is-hidden { + visibility: hidden; + } + .cssanimations .cd-timeline-img.bounce-in { + visibility: visible; + -webkit-animation: cd-bounce-1 0.6s; + -moz-animation: cd-bounce-1 0.6s; + animation: cd-bounce-1 0.6s; + } +} + +@-webkit-keyframes cd-bounce-1 { + 0% { + opacity: 0; + -webkit-transform: scale(0.5); + } + + 60% { + opacity: 1; + -webkit-transform: scale(1.2); + } + + 100% { + -webkit-transform: scale(1); + } +} +@-moz-keyframes cd-bounce-1 { + 0% { + opacity: 0; + -moz-transform: scale(0.5); + } + + 60% { + opacity: 1; + -moz-transform: scale(1.2); + } + + 100% { + -moz-transform: scale(1); + } +} +@keyframes cd-bounce-1 { + 0% { + opacity: 0; + -webkit-transform: scale(0.5); + -moz-transform: scale(0.5); + -ms-transform: scale(0.5); + -o-transform: scale(0.5); + transform: scale(0.5); + } + + 60% { + opacity: 1; + -webkit-transform: scale(1.2); + -moz-transform: scale(1.2); + -ms-transform: scale(1.2); + -o-transform: scale(1.2); + transform: scale(1.2); + } + + 100% { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -ms-transform: scale(1); + -o-transform: scale(1); + transform: scale(1); + } +} +.cd-timeline-content { + position: relative; + // margin-left: 60px; + margin-left: 45px; + background: white; + border-radius: 0.25em; + padding: 1em; + box-shadow: 0 3px 0 #9b9b9b; +} +.cd-timeline-content:after { + content: ""; + display: table; + clear: both; +} +.cd-timeline-content h2 { + margin: 0 0 1em 0; + padding: 0; + color: #303e49; +} +.cd-timeline-content p, .cd-timeline-content .cd-read-more, .cd-timeline-content .cd-date { + font-size: 13px; + font-size: 0.8125rem; +} +.cd-timeline-content .cd-read-more, .cd-timeline-content .cd-date { + display: inline-block; +} +.cd-timeline-content p { + color: #7F8C94; + margin: 0 0 1em; + line-height: 1.6; +} +.cd-timeline-content .cd-read-more { + float: right; + padding: .8em 1em; + background: #acb7c0; + color: white; + border-radius: 0.25em; +} +.no-touch .cd-timeline-content .cd-read-more:hover { + background-color: #bac4cb; +} +.cd-timeline-content .cd-date { + float: left; + padding: .8em 0; + opacity: .7; +} +.cd-timeline-content::before { + content: ''; + position: absolute; + left: 8px; + bottom: 100%; + height: 0; + width: 0; + border: 7px solid transparent; + border-bottom: 7px solid white; +} +@media only screen and (min-width: 960px) { +.cd-timeline-content::before { + // top: 16px; + right: 100%; + border-right: 7px solid white; +} +} +@media only screen and (min-width: 768px) { + .cd-timeline-content h2 { + font-size: 20px; + font-size: 1.25rem; + } + .cd-timeline-content p { + font-size: 16px; + font-size: 1rem; + } + .cd-timeline-content .cd-read-more, .cd-timeline-content .cd-date { + font-size: 14px; + font-size: 0.875rem; + } +} +@media only screen and (min-width: 960px) { + .cd-timeline-content { + margin-left: 0; + padding: 1.6em; + width: 45%; + } + .cd-timeline-content::before { + top: 24px; + left: 100%; + border-color: transparent; + border-left-color: white; + } + .cd-timeline-content .cd-read-more { + float: left; + } + .cd-timeline-content .cd-date { + position: absolute; + width: 100%; + left: 122%; + top: 6px; + font-size: 16px; + font-size: 1rem; + } + .cd-timeline-block:nth-child(even) .cd-timeline-content { + float: right; + } + .cd-timeline-block:nth-child(even) .cd-timeline-content::before { + top: 24px; + left: auto; + right: 100%; + border-color: transparent; + border-right-color: white; + } + .cd-timeline-block:nth-child(even) .cd-timeline-content .cd-read-more { + float: right; + } + .cd-timeline-block:nth-child(even) .cd-timeline-content .cd-date { + left: auto; + right: 122%; + text-align: right; + } + .cssanimations .cd-timeline-content.is-hidden { + visibility: hidden; + } + .cssanimations .cd-timeline-content.bounce-in { + visibility: visible; + -webkit-animation: cd-bounce-2 0.6s; + -moz-animation: cd-bounce-2 0.6s; + animation: cd-bounce-2 0.6s; + } +} + +.cd-timeline-nav-container { + position: relative; +} + +.fixed-menu { + +} +.stick .fixed-menu { + position: fixed; + top: 0; + left: 0; + right: 0; + padding: 12px 8px; + z-index: 1000; + background-color: #fff; +} + +.left-arrow, +.right-arrow { + display: flex; + align-items: center; + // justify-content: center; + position: absolute; + top: 0; + bottom: 0; + width: 50px; + z-index: 10; + cursor: pointer; +// background: rgba(0,0,0,0.5); + // padding-top: 15px; + + svg { + width: 15px; + height: 15px; + position: absolute; + top: 50%; + margin-top: -7px; + } +} + +.left-arrow { + left: 0; + background: linear-gradient(90deg, rgba(233,240,245,1) 50%, rgba(255,255,255,0) 100%); + + .stick & { + background: linear-gradient(90deg, rgba(255,255,255,1) 50%, rgba(255,255,255,0) 100%); + } + svg { + right: 75%; + margin-right: -7px; + } + + // &:after { + // content: ""; + // width: 15px; + // height: 100%; + // position: absolute; + // left:0; + // top: 0; + // bottom: 0; + // right: 10px; + // } +} + +.right-arrow { + right: 0; + background: linear-gradient(270deg, rgba(233,240,245,1) 50%, rgba(255,255,255,0) 100%); + + .stick & { + background: linear-gradient(270deg, rgba(255,255,255,1) 50%, rgba(255,255,255,0) 100%); + } + svg { + left: 75%; + margin-left: -7px; + } +} + +.cd-timeline-nav { + overflow: hidden; + display: block; + width: calc(100% - 60px); + margin: 0 auto; + padding: 0 0 7px; + border-bottom: 2px solid #ccc; + white-space: nowrap; + text-align: center; + + + li { + display: inline-block; + margin: 5px 10px; + padding: 10px; + border: 2px solid #ccc; + list-style: none; + position: relative; + background: #75ce66; + + &:before { + content: ""; + position: absolute; + top: 100%; + left: calc(50% - 7px); + border: 7px solid transparent; + border-top-color: #ccc; + } + + a { + color: #000; + } + } +} + +.cd-timeline-nav-date { +} + +@media only screen and (min-width: 960px) { + /* inverse bounce effect on even content blocks */ + .cssanimations .cd-timeline-block:nth-child(even) .cd-timeline-content.bounce-in { + -webkit-animation: cd-bounce-2-inverse 0.6s; + -moz-animation: cd-bounce-2-inverse 0.6s; + animation: cd-bounce-2-inverse 0.6s; + } +} +@-webkit-keyframes cd-bounce-2 { + 0% { + opacity: 0; + -webkit-transform: translateX(-100px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(20px); + } + + 100% { + -webkit-transform: translateX(0); + } +} +@-moz-keyframes cd-bounce-2 { + 0% { + opacity: 0; + -moz-transform: translateX(-100px); + } + + 60% { + opacity: 1; + -moz-transform: translateX(20px); + } + + 100% { + -moz-transform: translateX(0); + } +} +@keyframes cd-bounce-2 { + 0% { + opacity: 0; + -webkit-transform: translateX(-100px); + -moz-transform: translateX(-100px); + -ms-transform: translateX(-100px); + -o-transform: translateX(-100px); + transform: translateX(-100px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(20px); + -moz-transform: translateX(20px); + -ms-transform: translateX(20px); + -o-transform: translateX(20px); + transform: translateX(20px); + } + + 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -ms-transform: translateX(0); + -o-transform: translateX(0); + transform: translateX(0); + } +} +@-webkit-keyframes cd-bounce-2-inverse { + 0% { + opacity: 0; + -webkit-transform: translateX(100px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(-20px); + } + + 100% { + -webkit-transform: translateX(0); + } +} +@-moz-keyframes cd-bounce-2-inverse { + 0% { + opacity: 0; + -moz-transform: translateX(100px); + } + + 60% { + opacity: 1; + -moz-transform: translateX(-20px); + } + + 100% { + -moz-transform: translateX(0); + } +} +@keyframes cd-bounce-2-inverse { + 0% { + opacity: 0; + -webkit-transform: translateX(100px); + -moz-transform: translateX(100px); + -ms-transform: translateX(100px); + -o-transform: translateX(100px); + transform: translateX(100px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(-20px); + -moz-transform: translateX(-20px); + -ms-transform: translateX(-20px); + -o-transform: translateX(-20px); + transform: translateX(-20px); + } + + 100% { + -webkit-transform: translateX(0); + -moz-transform: translateX(0); + -ms-transform: translateX(0); + -o-transform: translateX(0); + transform: translateX(0); + } +} diff --git a/src/app/views/about-us/about-us.component.spec.ts b/src/app/views/about-us/about-us.component.spec.ts new file mode 100644 index 0000000..fbc856a --- /dev/null +++ b/src/app/views/about-us/about-us.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AboutUsComponent } from './about-us.component'; + +describe('AboutUsComponent', () => { + let component: AboutUsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AboutUsComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(AboutUsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/views/about-us/about-us.component.ts b/src/app/views/about-us/about-us.component.ts new file mode 100644 index 0000000..ac654e4 --- /dev/null +++ b/src/app/views/about-us/about-us.component.ts @@ -0,0 +1,22 @@ +import { Component } from '@angular/core'; +import {aboutUsData} from '../../../data-entries/json/about-us'; +import * as $ from 'jquery'; + +@Component({ + selector: 'app-about-us', + templateUrl: './about-us.component.html', + styleUrls: ['./about-us.component.scss'] +}) +export class AboutUsComponent { + public aboutUsData = aboutUsData; + public screenWidth: any; + public screenHeight: any; + $=$; + + ngOnInit(): void { + this.screenWidth = window.innerWidth; + this.screenHeight = window.innerHeight; + + + } +} diff --git a/src/app/views/activities-and-events/activities-and-events.component.html b/src/app/views/activities-and-events/activities-and-events.component.html new file mode 100644 index 0000000..9477a90 --- /dev/null +++ b/src/app/views/activities-and-events/activities-and-events.component.html @@ -0,0 +1,91 @@ + + + +
+ +
    +
  • Monsoon School
  • +
  • Home
  • +
  • Workshops
  • +
+
+
+ + Opportunities don't happen, you create them. + +
+ + + +
+ +
+ + s in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looke +
Link +
+
+ +
+ + s in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looke +
Link +
+
+ + + +
+ + s in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looke +
Link +
+
+ +
+ + + +
+

Student Blogs / Media

+
+ s in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.1
~ Archit + Read more.. +
+
+ s in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.1
~ Archit + Read more.. +
+
+ s in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.1
~ Archit + Read more.. +
+
diff --git a/src/app/views/activities-and-events/activities-and-events.component.scss b/src/app/views/activities-and-events/activities-and-events.component.scss new file mode 100644 index 0000000..85b51f9 --- /dev/null +++ b/src/app/views/activities-and-events/activities-and-events.component.scss @@ -0,0 +1,7 @@ +.carousel-inner{ + max-height: 60vh +} +.bg-light{ + background-color: rgb(50, 48, 48); + color: rgb(50, 48, 48); +} diff --git a/src/app/views/activities-and-events/activities-and-events.component.spec.ts b/src/app/views/activities-and-events/activities-and-events.component.spec.ts new file mode 100644 index 0000000..67128d5 --- /dev/null +++ b/src/app/views/activities-and-events/activities-and-events.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ActivitiesAndEventsComponent } from './activities-and-events.component'; + +describe('ActivitiesAndEventsComponent', () => { + let component: ActivitiesAndEventsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ActivitiesAndEventsComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(ActivitiesAndEventsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/views/activities-and-events/activities-and-events.component.ts b/src/app/views/activities-and-events/activities-and-events.component.ts new file mode 100644 index 0000000..2bf1124 --- /dev/null +++ b/src/app/views/activities-and-events/activities-and-events.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-activities-and-events', + templateUrl: './activities-and-events.component.html', + styleUrls: ['./activities-and-events.component.scss'] +}) +export class ActivitiesAndEventsComponent { + +} diff --git a/src/app/views/centres-and-facilities/centres-and-facilities.component.html b/src/app/views/centres-and-facilities/centres-and-facilities.component.html new file mode 100644 index 0000000..2cb2c5d --- /dev/null +++ b/src/app/views/centres-and-facilities/centres-and-facilities.component.html @@ -0,0 +1,45 @@ +
+
+

Centres and Facilities

+
+
+
+
+ + +
+

Internet of Things (IoT)

+

An Internet of Things (IoT) Laboratory is setup in the Centre under collaboration with the alpha TKG group, Japan. The IoT Lab was inaugurated on 5th October, 2016 by Dr. K. Paneer Selvam, Joint Registrar, IISc and Mr. Toshio Takagi, CEO, alfaTKG, Japan. The main thrust of the lab would be on development of sensor, communication and other technologies to help in monitoring, management and control of water systems at various spatial and time scales. The first project under in this initiative is the “IoT applications on water at IoT Laboratory“ +
The Internet of Things (IoT) is set to transform the agriculture industry by enabling farmers to contend with the enormous challenges faced by them. The farmers in India must overcome increasing water shortages, limited availability of land, difficult to manage operational costs, while meeting the increasing consumption needs of our country . +
The IoT laboratory at the Interdisciplinary Centre for Water research will focus on new research areas for addressing these issues and increasing the quality, quantity, sustainability and cost effectiveness of agricultural production. The primary focus of this research work is to effectively utilize IoT enabled technologies to remotely monitor and measure soil moisture, crop growth and livestock feed levels along with the performance of harvesters and optimization of irrigation equipment. The researchers will actively utilize artificial intelligence based analytics to quickly analyze operational data combined with 3rd party information, such as weather services, Electricity services & storage position in reservoirs to provide new insights and improve decision making for farmers. +

+
+
+
+
+

Soil Temperature Monitoring System (STMS)

+

The value of soil moisture measurement in many research, industrial and agricultural fields are necessary for managing water resources effectively. However, collecting data from the field is time-consuming and can be expensive. To automate data collection and data logging, a system was developed using the proven Watermark solid state, electric resistance type sensor and cellular network and internet database real-time monitoring. Now, the STMS can wirelessly download data from soil moisture and temperature sensors directly into your computer from any part of the world.

+
+ + +
+
+ + +
+

Soil Moisture and Temperature Monitoring system (SMTMS)

+

The value of soil moisture and temperature measurement in many research, industrial and agricultural are necessary for managing water resources effectively. However, collecting data from the field is time-consuming and can be expensive. To automate data collection and data logging, a system was developed using the proven Watermark solid state, electric resistance type sensor and cellular network and internet database real-time monitoring. Now, the SMTMS can wirelessly view, analyse and download data from soil moisture and temperature sensors directly into your computer from any part of the world

+
+
+
+
+

Cluster

+

ICWaR has deployed a computer cluster to improve performance and availability over that of a single computer, while typically being much more cost-effective than single computers of comparable speed or availability. This is used by students for the efficient results.

+
+ +
+ + +
+
+
diff --git a/src/app/views/centres-and-facilities/centres-and-facilities.component.scss b/src/app/views/centres-and-facilities/centres-and-facilities.component.scss new file mode 100644 index 0000000..d5105d2 --- /dev/null +++ b/src/app/views/centres-and-facilities/centres-and-facilities.component.scss @@ -0,0 +1,48 @@ +.bg-img{ + background-size: cover; + color: #ffffff; + text-shadow: 2px 2px 2px rgba(0,0,0,3); +} +.color-overlay{ + width: 99vw; + height: 100%; + background-color: rgba(0,0,0,.4); +} +h1{ + font-size: 2rem; + text-shadow: 1px 1px 1px rgba(15, 144, 209, 0.945) ; + font-size: 60px; +} +h2{ + color: rgba(15, 144, 209, 0.945) ; + text-shadow: 1px 1px 1px rgba(15, 144, 209, 0.945) ; +} +.img-thumbnail{ + padding: 2px; + border-radius: 1%; + border-color: rgba(15, 144, 209, 0.945) ; + max-height: 500px; + +} + +@media (max-width: 768px){ + .bg-img{ + height: 30vh; + } + h1{ + font-size: calc(1.0rem + 2.0vw); + } + .h-sm-70{ + height: 15vh; + } + .px-sm-5{ + padding-left: 55px; + padding-right: 55px; + } +} +@media (min-width: 768px) { + .h-sm-70{ + height: 30vh; + } +} + diff --git a/src/app/views/centres-and-facilities/centres-and-facilities.component.spec.ts b/src/app/views/centres-and-facilities/centres-and-facilities.component.spec.ts new file mode 100644 index 0000000..aec4cdf --- /dev/null +++ b/src/app/views/centres-and-facilities/centres-and-facilities.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CentresAndFacilitiesComponent } from './centres-and-facilities.component'; + +describe('CentresAndFacilitiesComponent', () => { + let component: CentresAndFacilitiesComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ CentresAndFacilitiesComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(CentresAndFacilitiesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/views/centres-and-facilities/centres-and-facilities.component.ts b/src/app/views/centres-and-facilities/centres-and-facilities.component.ts new file mode 100644 index 0000000..5756fdd --- /dev/null +++ b/src/app/views/centres-and-facilities/centres-and-facilities.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-centres-and-facilities', + templateUrl: './centres-and-facilities.component.html', + styleUrls: ['./centres-and-facilities.component.scss'] +}) +export class CentresAndFacilitiesComponent { + +} diff --git a/src/app/views/contact-us/contact-us.component.html b/src/app/views/contact-us/contact-us.component.html new file mode 100644 index 0000000..2a697b2 --- /dev/null +++ b/src/app/views/contact-us/contact-us.component.html @@ -0,0 +1,46 @@ +
+
+

Contact Us

+
+
+ +
+ +
+

Chairperson

+ Interdisciplinary Centre for Water Research, +
Indian Institute of Science, +
Bangalore – 560012, India
+ chair.icwar@iisc.ac.in +
80 2293 2228
+
+91 80 2360 0404
+
+
+

IISc

+ Indian Institute of Science, +
CV Raman Road, +
Bangalore – 560012, India
+ chair.icwar@iisc.ac.in +
80 2293 2228
+
+
+ +
+ +
+
+ + + + + + + + + +
+
+
+
+ diff --git a/src/assets/.gitkeep b/src/app/views/contact-us/contact-us.component.scss similarity index 100% rename from src/assets/.gitkeep rename to src/app/views/contact-us/contact-us.component.scss diff --git a/src/app/views/contact-us/contact-us.component.spec.ts b/src/app/views/contact-us/contact-us.component.spec.ts new file mode 100644 index 0000000..ecc463a --- /dev/null +++ b/src/app/views/contact-us/contact-us.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ContactUsComponent } from './contact-us.component'; + +describe('ContactUsComponent', () => { + let component: ContactUsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ContactUsComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(ContactUsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/views/contact-us/contact-us.component.ts b/src/app/views/contact-us/contact-us.component.ts new file mode 100644 index 0000000..7b449bf --- /dev/null +++ b/src/app/views/contact-us/contact-us.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { configurations } from 'src/data-entries/config'; +@Component({ + selector: 'app-contact-us', + templateUrl: './contact-us.component.html', + styleUrls: ['./contact-us.component.scss'] +}) +export class ContactUsComponent { + configurations= configurations; + +} diff --git a/src/app/views/gallery/gallery.component.html b/src/app/views/gallery/gallery.component.html new file mode 100644 index 0000000..aa6eeca --- /dev/null +++ b/src/app/views/gallery/gallery.component.html @@ -0,0 +1,23 @@ +
+

Media Gallery

+
+ + + + +
+ +

{{years}}

+
+ + + +
+
+
+
+
+
+
+
+ diff --git a/src/app/views/gallery/gallery.component.scss b/src/app/views/gallery/gallery.component.scss new file mode 100644 index 0000000..5238ccf --- /dev/null +++ b/src/app/views/gallery/gallery.component.scss @@ -0,0 +1,14 @@ +::ng-deep tabset .nav-link { + font-size: 30px; + color: black; + // text-shadow: 1px 1px 1px black; + background-color: transparent; +} +::ng-deep tabset .nav-item { + background-color: transparent; +} +@media (max-width:768px) { + ::ng-deep tabset .nav-link { + font-size: 20px; + } +} diff --git a/src/app/views/gallery/gallery.component.spec.ts b/src/app/views/gallery/gallery.component.spec.ts new file mode 100644 index 0000000..e0679f0 --- /dev/null +++ b/src/app/views/gallery/gallery.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { GalleryComponent } from './gallery.component'; + +describe('GalleryComponent', () => { + let component: GalleryComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ GalleryComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(GalleryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/views/gallery/gallery.component.ts b/src/app/views/gallery/gallery.component.ts new file mode 100644 index 0000000..41a6834 --- /dev/null +++ b/src/app/views/gallery/gallery.component.ts @@ -0,0 +1,27 @@ +import { Component } from '@angular/core'; +import { gallery } from 'src/data-entries/json/gallery'; + +@Component({ + selector: 'app-gallery', + templateUrl: './gallery.component.html', + styleUrls: ['./gallery.component.scss'] +}) + +export class GalleryComponent { + gallery= gallery; + ngOnInit(): void { + + console.log(this.getJsonValues(this.getValueForKey(this.getValueForKey(gallery,'Open Day'),'2019'))); + + } + + getJsonKeys(data:any){ + return Object.keys(data); + } + getJsonValues(data:any){ + return Object.values(data); + } + getValueForKey(data:any,key:string){ + return data[key]; + } +} diff --git a/src/app/views/homepage-deprecated/homepage.component.html b/src/app/views/homepage-deprecated/homepage.component.html new file mode 100644 index 0000000..1a88194 --- /dev/null +++ b/src/app/views/homepage-deprecated/homepage.component.html @@ -0,0 +1,159 @@ + + +
+ + +

+

Latest News

+ +
+ +
+
+
{{News.date}}
+ +
{{News.title}}
+ +
+
+
+
+
+ + + + + + +
+
+

Chairman's Message

+ +
+ {{data.chairmanMsg}} +
+
+
+ +
+

Upcoming Seminars

+
+ + +
+ ... +
+
+
{{Seminars['Date and Time']}}
+
{{Seminars.title}}
+
+ +
+
+
+
+
+
+ +
+

Vision and Mission

+

+ The mission of ICWaR, is to be a global leader in providing integrated solutions for Water Hazard and Risk Management/ Risk Reduction to improve the quality of life of the Communities. +
+ Our vision is to provide advanced science and technology solutions to the critical issues related to urban floods, riverine floods, water pollution, climate change impacts, and integrated water resources management at different levels with a multi-disciplinary approach, through;
+
    +
    +
  1. Assisting government organizations, the public sector and communities in battling the climate change impact on water resources.
  2. +
  3. Developing efficient and affordable water remediation techniques to ensure adequate clean drinking water.
  4. +
  5. Becoming a global leader in water research, by creating an interdisciplinary research environment and training next-generation water scientists.
  6. +
  7. Providing state of the art solutions to complex problems in water research such as urban floods, contamination due to heavy metals and watershed management by developing science-based technological solutions.
  8. +
+

+
+ +
+

Outreach

+
+

Floods in a changing climate

+
+ +
+
+
+

Vulnerability of Water Resources to Climate Change

+
+ +
+
+
+ + + + diff --git a/src/app/views/homepage-deprecated/homepage.component.scss b/src/app/views/homepage-deprecated/homepage.component.scss new file mode 100644 index 0000000..761bd49 --- /dev/null +++ b/src/app/views/homepage-deprecated/homepage.component.scss @@ -0,0 +1,62 @@ +.scroll-container { + white-space: nowrap; + animation: my-animation 5s linear infinite; + font-size: large; + display: flex; + position: relative; + justify-content: flex-start; + transition: all 2s ease; + transform: scale(2); +} +.card-hover:hover{ + box-shadow: -1px -1px 10px 1px black; +} +.card-hover{ + box-shadow: 1px 1px 8px 1px rgba(0, 0, 0, 0.421); +} + + +@keyframes my-animation { + from { + transform: translateX(0%); + } + to { + transform: translateX(-50%); + } +} + +.overlay-dark { + background-color: rgba(black, 0.4); +} + +::ng-deep .p-carousel .p-carousel-content .p-carousel-prev, +::ng-deep .p-carousel .p-carousel-content .p-carousel-next { + + +} + + +.overlay { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgb(0, 0, 0); + background: linear-gradient( + 90deg, + rgba(0, 0, 0, 1) 0%, + rgba(0, 212, 255, 0) 100% + ); +} +.youtube-link-dynamic{ + width:500px; + height:300px +} + +@media(max-width: 768px) { + .youtube-link-dynamic{ + width:250px; + height:150px + } +} diff --git a/src/app/views/homepage-deprecated/homepage.component.spec.ts b/src/app/views/homepage-deprecated/homepage.component.spec.ts new file mode 100644 index 0000000..a0f77cc --- /dev/null +++ b/src/app/views/homepage-deprecated/homepage.component.spec.ts @@ -0,0 +1,22 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { HomepageComponent } from './homepage.component'; + +describe('HomepageComponent', () => { + let component: HomepageComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ HomepageComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(HomepageComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/views/homepage-deprecated/homepage.component.ts b/src/app/views/homepage-deprecated/homepage.component.ts new file mode 100644 index 0000000..d9e258f --- /dev/null +++ b/src/app/views/homepage-deprecated/homepage.component.ts @@ -0,0 +1,65 @@ +// import { News } from './homepage.service'; +import { Component } from '@angular/core'; +import {homepageData} from '../../../data-entries/json/homepage'; +import { newsJson } from '../../../data-entries/json/news'; +import * as $ from 'jquery'; +import { seminars } from 'src/data-entries/json/Seminars'; + + +@Component({ + selector: 'app-homepage', + templateUrl: './homepage.component.html', + styleUrls: ['./homepage.component.scss'] +}) +export class HomepageComponent { + public newsJsonProcessed: any; + public news = newsJson; + public data = homepageData; + public screenWidth: any; + public screenHeight: any; + public slides = homepageData.slides + stringArr =[]; + seminarsForDisplay:Seminars[] = (seminars['ICWaR Guest Seminar Series']); + + responsiveOptions = [{ + breakpoint: '1024px', + numVisible: 1, + numScroll: 3 + }]; + + + ngOnInit(): void { + this.screenWidth = window.innerWidth; + this.screenHeight = window.innerHeight; + this.newsJsonProcessed = newsJson; + console.log(this.seminarsForDisplay) + + } + ngAfterInit():void{ + // console.log("Now "+($('.start-cover-animation > h1')).text()); + } + +redirectTo(link:string){ + window.location.href=link; +} +removeSpaceFromString(str:string){ + return str.replaceAll(' ','_') +} + +} +export interface Seminars{ + imgSrc: string; + 'title': string; + 'Name of the speaker':string; + 'Title of the Seminar':string; + 'Date and Time':string + 'Online Platform':string; + 'About the Speaker':string + 'Abstract':string +} +export interface News{ + title: string; + imgSrc: string; + date:string + redirectTo:string +} diff --git a/src/app/views/homepage-deprecated/homepage.service.spec.ts b/src/app/views/homepage-deprecated/homepage.service.spec.ts new file mode 100644 index 0000000..6bf3b11 --- /dev/null +++ b/src/app/views/homepage-deprecated/homepage.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { HomepageService } from './homepage.service'; + +describe('HomepageService', () => { + let service: HomepageService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(HomepageService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/views/homepage-deprecated/homepage.service.ts b/src/app/views/homepage-deprecated/homepage.service.ts new file mode 100644 index 0000000..1f7a2dd --- /dev/null +++ b/src/app/views/homepage-deprecated/homepage.service.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class HomepageService { + + constructor() { } +} + diff --git a/src/app/views/homepage/homepage.component.html b/src/app/views/homepage/homepage.component.html new file mode 100644 index 0000000..6cd66b6 --- /dev/null +++ b/src/app/views/homepage/homepage.component.html @@ -0,0 +1,86 @@ +