diff --git a/projects/ngrx.io/content/marketing/events.html b/projects/ngrx.io/content/marketing/events.html
index 11ddc879c3..436c358dc7 100755
--- a/projects/ngrx.io/content/marketing/events.html
+++ b/projects/ngrx.io/content/marketing/events.html
@@ -2,23 +2,5 @@
Events
-
+
diff --git a/projects/ngrx.io/content/marketing/events.json b/projects/ngrx.io/content/marketing/events.json
new file mode 100644
index 0000000000..0a565a5c16
--- /dev/null
+++ b/projects/ngrx.io/content/marketing/events.json
@@ -0,0 +1,59 @@
+[
+ {
+ "name": "NgColombia",
+ "url": "http://www.ngcolombia.com",
+ "location": "Medellín, Colombia",
+ "startDate": "09-06-2018",
+ "endDate": "09-07-2018"
+ },
+ {
+ "name": "DevFestATL",
+ "url": "http://devfestatl.com",
+ "location": "Atlanta, Georgia",
+ "endDate": "09-22-2018"
+ },
+ {
+ "name": "Framework Summit",
+ "url": "http://frameworksummit.com",
+ "location": "Park City, Utah",
+ "endDate": "09-22-2018"
+ },
+ {
+ "name": "DevFestATL",
+ "url": "http://devfestatl.com",
+ "location": "Atlanta, Georgia",
+ "startDate": "10-02-2018",
+ "endDate": "10-03-2018"
+ },
+ {
+ "name": "AngularMix - Use the discount code "RYAN" or "ROBERTS" to receive $50 off your registration!",
+ "url": "http://www.angularmix.com",
+ "location": "Orlando, Florida",
+ "startDate": "10-10-2018",
+ "endDate": "10-12-2018"
+ },
+ {
+ "name": "AngularConnect", "url": "http://www.angularconnect.com", "location": "Excel, London", "startDate": "11-06-2018", "endDate": "11-07-2018"},
+ {
+ "name": "ngAtlanta", "url": "http://ng-atl.org/", "location": "Atlanta, Georgia", "startDate": "01-09-2019", "endDate": "01-12-2019"},
+ {
+ "name": "ng-India", "url": "https://www.ng-ind.com", "location": "Gurgaon, India", "endDate": "02-23-2019"},
+ {
+ "name": "Open Source 101", "url": "https://opensource101.com/", "location": "Columbia, South Carolina", "endDate": "04-18-2019"},
+ {
+ "name": "NG-Conf", "url": "https://www.ng-conf.org", "location": "Salt Lake City, Utah", "startDate": "05-01-2019", "endDate": "05-03-2019"},
+ {
+ "name": "ngVikings", "url": "https://ngvikings.org/", "location": "Copenhagen, Denmark", "startDate": "05-26-2019", "endDate": "05-28-2019"},
+ {
+ "name": "REFACTR.TECH", "url": "https://refactr.tech/", "location": "Atlanta, Georgia", "startDate": "06-05-2019", "endDate": "06-07-2019"},
+ {
+ "name": "AngularUP", "url": "https://angular-up.com/", "location": "Tel Aviv, Israel", "endDate": "06-12-2019"},
+ {
+ "name": "NG-MY", "url": "https://ng-my.org/", "location": "Kuala Lumpur, Malaysia", "startDate": "07-06-2019", "endDate": "07-07-2019"},
+ {
+ "name": "ngDenver", "url": "http://angulardenver.com/", "location": "Denver, Colorado", "startDate": "08-01-2019", "endDate": "08-02-2019"},
+ {
+ "name": "AngularConnect", "url": "https://www.angularconnect.com/", "location": "London, United Kingdom", "startDate": "09-19-2019", "endDate": "09-20-2019"},
+ {
+ "name": "NG-Rome", "url": "https://ngrome.io/", "location": "Rome, Italy", "endDate": "10-07-2019"}
+ ]
diff --git a/projects/ngrx.io/src/app/custom-elements/events/event-list.component.ts b/projects/ngrx.io/src/app/custom-elements/events/event-list.component.ts
index cfd9bda0d7..f90092a7bf 100644
--- a/projects/ngrx.io/src/app/custom-elements/events/event-list.component.ts
+++ b/projects/ngrx.io/src/app/custom-elements/events/event-list.component.ts
@@ -1,5 +1,6 @@
-import { Component, Input } from '@angular/core';
-import { Event, DisplayEvent } from './event.model';
+import { Component } from '@angular/core';
+import { DisplayEvent } from './event.model';
+import { EventService } from './event.service';
@Component({
selector: `aio-event-list`,
@@ -41,25 +42,10 @@ import { Event, DisplayEvent } from './event.model';
`
})
export class EventListComponent {
- upcomingEvents: DisplayEvent[];
- pastEvents: DisplayEvent[];
+ upcomingEvents: DisplayEvent[] = [];
+ pastEvents: DisplayEvent[] = [];
currentDate = new Date();
- @Input() set events(value: Event[]) {
- const displayEvents: DisplayEvent[] = value.map(event => {
- const startDate = event.startDate ? new Date(event.startDate) : undefined;
- const endDate = new Date(event.endDate);
- return {
- ...event,
- startDate,
- endDate,
- dateRangeString: EventListComponent.getDateRange(startDate, endDate)
- };
- });
- this.upcomingEvents = displayEvents.filter(event => event.endDate >= this.currentDate);
- this.pastEvents = displayEvents.filter(event => event.endDate < this.currentDate);
- }
-
/**
* The date range string for the two given dates
* '01-01-2019' until '01-01-2019' -> 'January 1, 2019'
@@ -89,4 +75,21 @@ export class EventListComponent {
}
}
}
+
+ constructor(private eventService: EventService) {
+ this.eventService.events.subscribe(value => {
+ const displayEvents: DisplayEvent[] = value.map(event => {
+ const startDate = event.startDate ? new Date(event.startDate) : undefined;
+ const endDate = new Date(event.endDate);
+ return {
+ ...event,
+ startDate,
+ endDate,
+ dateRangeString: EventListComponent.getDateRange(startDate, endDate)
+ };
+ });
+ this.upcomingEvents = displayEvents.filter(event => event.endDate >= this.currentDate);
+ this.pastEvents = displayEvents.filter(event => event.endDate < this.currentDate);
+ });
+ }
}
diff --git a/projects/ngrx.io/src/app/custom-elements/events/event-list.module.ts b/projects/ngrx.io/src/app/custom-elements/events/event-list.module.ts
index bc061f7462..bcdd7949c3 100644
--- a/projects/ngrx.io/src/app/custom-elements/events/event-list.module.ts
+++ b/projects/ngrx.io/src/app/custom-elements/events/event-list.module.ts
@@ -2,11 +2,13 @@ import { NgModule, Type } from '@angular/core';
import { CommonModule } from '@angular/common';
import { WithCustomElementComponent } from '../element-registry';
import { EventListComponent } from './event-list.component';
+import { EventService } from './event.service';
@NgModule({
imports: [ CommonModule ],
declarations: [ EventListComponent ],
- entryComponents: [ EventListComponent ]
+ entryComponents: [ EventListComponent ],
+ providers: [ EventService ]
})
export class EventListModule implements WithCustomElementComponent {
customElementComponent: Type = EventListComponent;
diff --git a/projects/ngrx.io/src/app/custom-elements/events/event.service.ts b/projects/ngrx.io/src/app/custom-elements/events/event.service.ts
new file mode 100644
index 0000000000..b511bbe373
--- /dev/null
+++ b/projects/ngrx.io/src/app/custom-elements/events/event.service.ts
@@ -0,0 +1,30 @@
+import { Injectable } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+
+import { ConnectableObservable, Observable } from 'rxjs';
+import { tap, publishLast } from 'rxjs/operators';
+
+import { CONTENT_URL_PREFIX } from 'app/documents/document.service';
+import { Event } from './event.model';
+
+const resourcesPath = CONTENT_URL_PREFIX + 'events.json';
+
+@Injectable()
+export class EventService {
+ events: Observable;
+
+ constructor(private http: HttpClient) {
+ this.events = this.getEvents();
+ }
+
+ private getEvents(): Observable {
+
+ const events = this.http.get(resourcesPath).pipe(
+ tap(event => console.log('service: ' + event)),
+ publishLast(),
+ );
+
+ (events as ConnectableObservable).connect();
+ return events;
+ };
+}