UNPKG

subscriptions

Version:

SLB

314 lines (313 loc) 12 kB
import { Component, Injectable, Input, NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { Store, StoreModule, createFeatureSelector, createSelector } from '@ngrx/store'; import { Actions, Effect, EffectsModule } from '@ngrx/effects'; import { RouterModule } from '@angular/router'; import 'rxjs/add/operator/map'; import 'rxjs/add/operator/catch'; import 'rxjs/add/operator/startWith'; import 'rxjs/add/operator/switchMap'; import 'rxjs/add/operator/toArray'; import 'rxjs/add/observable/of'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/operator/do'; import 'rxjs/add/observable/throw'; import { HttpInterceptorService } from '@covalent/http/index'; import { FormsModule } from '@angular/forms'; import { MaterialModule } from '@angular/material'; import { FlexLayoutModule } from '@angular/flex-layout/index'; import 'hammerjs'; var LOAD_SUBSCRIPTION = '[subscription] LOAD_SUBSCRIPTION'; var LOAD_SUBSCRIPTION_SUCCESS = '[subscription] LOAD_SUBSCRIPTION_SUCCESS'; var LOAD_SUBSCRIPTION_FAILURE = '[subscription] LOAD_SUBSCRIPTION_FAILURE'; var LoadSubscription = (function () { function LoadSubscription() { this.type = LOAD_SUBSCRIPTION; } return LoadSubscription; }()); var LoadSubscriptionSuccess = (function () { /** * @param {?=} payload */ function LoadSubscriptionSuccess(payload) { this.payload = payload; this.type = LOAD_SUBSCRIPTION_SUCCESS; } return LoadSubscriptionSuccess; }()); var LoadSubscriptionFailure = (function () { /** * @param {?=} payload */ function LoadSubscriptionFailure(payload) { this.payload = payload; this.type = LOAD_SUBSCRIPTION_FAILURE; } return LoadSubscriptionFailure; }()); var initialState = { subscriptions: [], loading: false }; /** * @param {?=} state * @param {?=} action * @return {?} */ function reducer(state, action) { if (state === void 0) { state = initialState; } switch (action.type) { case LOAD_SUBSCRIPTION: { return Object.assign({}, state, { loading: true }); } case LOAD_SUBSCRIPTION_SUCCESS: { var /** @type {?} */ subscriptions = action.payload; return { subscriptions: subscriptions, loading: false }; } case LOAD_SUBSCRIPTION_FAILURE: { var /** @type {?} */ subscriptions = []; return { subscriptions: subscriptions, loading: false }; } default: return state; } } var getsubscriptions = function (state) { return state.subscriptions; }; var getloading = function (state) { return state.loading; }; var reducers = { subscriptionsState: reducer, }; var selectFeatureModule = createFeatureSelector('subscriptions'); var selectFeatureState = createSelector(selectFeatureModule, function (state) { return state.subscriptionsState; }); var getSubscriptionsStateSubscriptions = createSelector(selectFeatureState, getsubscriptions); var getSubscriptionsStateLoading = createSelector(selectFeatureState, getloading); var SubscriptionsLogicComponent = (function () { /** * @param {?} store */ function SubscriptionsLogicComponent(store) { this.store = store; this.subscriptions$ = store.select(getSubscriptionsStateSubscriptions); this.isLoading$ = store.select(getSubscriptionsStateLoading); } /** * @return {?} */ SubscriptionsLogicComponent.prototype.ngOnInit = function () { this.store.dispatch(new LoadSubscription()); }; return SubscriptionsLogicComponent; }()); SubscriptionsLogicComponent.decorators = [ { type: Component, args: [{ selector: 'slb-subscriptions-logic', template: "\n <slb-subscriptions [subscriptions]=\"subscriptions$ | async\" [loading]=\"isLoading$ | async\"></slb-subscriptions>\n " },] }, ]; /** * @nocollapse */ SubscriptionsLogicComponent.ctorParameters = function () { return [ { type: Store, }, ]; }; var routes = [ { path: '', component: SubscriptionsLogicComponent } ]; var SubscriptionsRoutingModule = (function () { function SubscriptionsRoutingModule() { } return SubscriptionsRoutingModule; }()); SubscriptionsRoutingModule.decorators = [ { type: NgModule, args: [{ imports: [ RouterModule.forChild(routes), ], exports: [RouterModule] },] }, ]; /** * @nocollapse */ SubscriptionsRoutingModule.ctorParameters = function () { return []; }; var SubscriptionsComponent = (function () { function SubscriptionsComponent() { } /** * @return {?} */ SubscriptionsComponent.prototype.checkForSubscriptions = function () { if (this.subscriptions && this.subscriptions.length === 0) { return true; } else { return false; } }; return SubscriptionsComponent; }()); SubscriptionsComponent.decorators = [ { type: Component, args: [{ selector: 'slb-subscriptions', template: "<md-spinner [class.show]=\"loading\" *ngIf=\"loading\"></md-spinner> <div *ngIf=\"!loading\"> <div class=\"cards-view\" fxLayout=\"row\" fxLayoutWrap fxLayoutGap=\"20px\" *ngIf=\"!checkForSubscriptions(); else message\"> <md-card class=\"card\" *ngFor=\"let tile of subscriptions;let i = index\"> <img class=\"card-image\" md-card-image src=\"assets/images/Petrel_1.PNG\"> <md-card-content> <h3 md-line>{{tile.name}}</h3> <p md-line>Active Until - {{tile.expiration | date}}</p> </md-card-content> <md-card-actions> <div fxLayout=\"row\"> <a href=\"{{tile.launcherUrl}}\" target=\"_blank\"> <button md-button color=\"primary\">Launch</button> </a> </div> </md-card-actions> </md-card> </div> <ng-template #message> <p class=\"no-subscription\">No subscription found</p> </ng-template> </div> ", styles: ["md-spinner { width: 4.5em; } .cards-view { padding: 30px; } .card { border-radius: 5px; margin-bottom: 10px; } .card-image { width: 250px; height: 140px; border-radius: 5px 5px 0 0; } .no-subscription { position: absolute; top: 50%; left: 50%; }"], },] }, ]; /** * @nocollapse */ SubscriptionsComponent.ctorParameters = function () { return []; }; SubscriptionsComponent.propDecorators = { 'subscriptions': [{ type: Input },], 'loading': [{ type: Input },], }; var SubscriptionsService = (function () { /** * @param {?} httpInterceptorService */ function SubscriptionsService(httpInterceptorService) { this.httpInterceptorService = httpInterceptorService; } /** * @return {?} */ SubscriptionsService.prototype.getSubscriptions = function () { return this.httpInterceptorService.get('subscriptions') .map(function (res) { var /** @type {?} */ body = res.json(); // TODO: check at runtime that body matches the structure of Sub return body; }); }; ; /** * @param {?} error * @return {?} */ SubscriptionsService.prototype.handleError = function (error) { // in a real world app, we should consider to some remote logging infrastructure // instead of just logging it to the console return Observable.throw(error.json().error || 'Server error'); }; return SubscriptionsService; }()); SubscriptionsService.decorators = [ { type: Injectable }, ]; /** * @nocollapse */ SubscriptionsService.ctorParameters = function () { return [ { type: HttpInterceptorService, }, ]; }; var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var SubscriptionEffects = (function () { /** * @param {?} actions$ * @param {?} subscriptionsService */ function SubscriptionEffects(actions$, subscriptionsService) { var _this = this; this.actions$ = actions$; this.subscriptionsService = subscriptionsService; this.loadSubscriptions$ = this.actions$ .ofType(LOAD_SUBSCRIPTION) .switchMap(function () { return _this.subscriptionsService.getSubscriptions().toArray() .map(function (subscriptions) { return new LoadSubscriptionSuccess(subscriptions[0]); }) .catch(function (error) { return Observable.of(new LoadSubscriptionFailure(error)); }); }); } return SubscriptionEffects; }()); SubscriptionEffects.decorators = [ { type: Injectable }, ]; /** * @nocollapse */ SubscriptionEffects.ctorParameters = function () { return [ { type: Actions, }, { type: SubscriptionsService, }, ]; }; __decorate([ Effect() ], SubscriptionEffects.prototype, "loadSubscriptions$", void 0); var SharedModule = (function () { function SharedModule() { } return SharedModule; }()); SharedModule.decorators = [ { type: NgModule, args: [{ declarations: [], imports: [ CommonModule, MaterialModule, FormsModule, FlexLayoutModule, RouterModule ], exports: [ CommonModule, MaterialModule, FormsModule, FlexLayoutModule, RouterModule ], providers: [], },] }, ]; /** * @nocollapse */ SharedModule.ctorParameters = function () { return []; }; var SubscriptionsModule = (function () { function SubscriptionsModule() { } return SubscriptionsModule; }()); SubscriptionsModule.decorators = [ { type: NgModule, args: [{ declarations: [ SubscriptionsLogicComponent, SubscriptionsComponent, ], imports: [ CommonModule, SubscriptionsRoutingModule, StoreModule.forFeature('subscriptions', reducers, {}), EffectsModule.forFeature([SubscriptionEffects]), SharedModule, ], exports: [ SubscriptionsLogicComponent ], providers: [SubscriptionsService], },] }, ]; /** * @nocollapse */ SubscriptionsModule.ctorParameters = function () { return []; }; /** * Generated bundle index. Do not edit. */ export { SubscriptionsModule, reducers, selectFeatureModule, selectFeatureState, getSubscriptionsStateSubscriptions, getSubscriptionsStateLoading, LOAD_SUBSCRIPTION, LOAD_SUBSCRIPTION_SUCCESS, LOAD_SUBSCRIPTION_FAILURE, LoadSubscription, LoadSubscriptionSuccess, LoadSubscriptionFailure, initialState, reducer, getsubscriptions, getloading, SharedModule as ɵg, SubscriptionEffects as ɵe, SubscriptionsLogicComponent as ɵa, SubscriptionsComponent as ɵb, SubscriptionsRoutingModule as ɵd, routes as ɵc, SubscriptionsService as ɵf }; //# sourceMappingURL=subscriptions.es5.js.map