From c95a00d6fd99b96a0ea8a53e14fa95d8cdb02522 Mon Sep 17 00:00:00 2001 From: btroncone Date: Tue, 3 Oct 2017 16:31:38 -0400 Subject: [PATCH 01/33] added stubs for all operators --- src/app/app.component.html | 18 ++++---- src/app/app.component.scss | 28 ++++++++++++- src/app/app.module.ts | 6 +-- src/app/app.routing.ts | 2 +- .../operator-docs/combination/combineAll.ts | 4 ++ .../combination/combineLatest.ts | 4 ++ src/app/operator-docs/combination/concat.ts | 4 ++ .../operator-docs/combination/concatAll.ts | 4 ++ src/app/operator-docs/combination/forkJoin.ts | 4 ++ src/app/operator-docs/combination/index.ts | 27 ++++++++++++ src/app/operator-docs/combination/merge.ts | 4 ++ src/app/operator-docs/combination/mergeAll.ts | 4 ++ src/app/operator-docs/combination/pairwise.ts | 4 ++ src/app/operator-docs/combination/race.ts | 4 ++ .../operator-docs/combination/startWith.ts | 4 ++ .../combination/withLatestFrom.ts | 4 ++ src/app/operator-docs/combination/zip.ts | 4 ++ .../conditional/defaultIfEmpty.ts | 4 ++ src/app/operator-docs/conditional/every.ts | 4 ++ src/app/operator-docs/conditional/index.ts | 7 ++++ src/app/operator-docs/creation/create.ts | 4 ++ src/app/operator-docs/creation/empty.ts | 4 ++ src/app/operator-docs/creation/from.ts | 4 ++ src/app/operator-docs/creation/fromEvent.ts | 4 ++ src/app/operator-docs/creation/fromPromise.ts | 4 ++ src/app/operator-docs/creation/index.ts | 23 +++++++++++ src/app/operator-docs/creation/interval.ts | 4 ++ src/app/operator-docs/creation/of.ts | 4 ++ src/app/operator-docs/creation/range.ts | 4 ++ src/app/operator-docs/creation/throw.ts | 4 ++ src/app/operator-docs/creation/timer.ts | 4 ++ src/app/operator-docs/error-handling/catch.ts | 4 ++ src/app/operator-docs/error-handling/index.ts | 9 ++++ src/app/operator-docs/error-handling/retry.ts | 4 ++ .../operator-docs/error-handling/retryWhen.ts | 4 ++ src/app/operator-docs/filtering/debounce.ts | 4 ++ .../operator-docs/filtering/debounceTime.ts | 4 ++ .../filtering/distinctUntilChanged.ts | 4 ++ src/app/operator-docs/filtering/filter.ts | 4 ++ src/app/operator-docs/filtering/first.ts | 4 ++ .../operator-docs/filtering/ignoreElements.ts | 4 ++ src/app/operator-docs/filtering/index.ts | 37 +++++++++++++++++ src/app/operator-docs/filtering/last.ts | 4 ++ src/app/operator-docs/filtering/sample.ts | 4 ++ src/app/operator-docs/filtering/single.ts | 4 ++ src/app/operator-docs/filtering/skip.ts | 4 ++ src/app/operator-docs/filtering/skipUntil.ts | 4 ++ src/app/operator-docs/filtering/skipWhile.ts | 4 ++ src/app/operator-docs/filtering/take.ts | 4 ++ src/app/operator-docs/filtering/takeUntil.ts | 4 ++ src/app/operator-docs/filtering/takeWhile.ts | 4 ++ src/app/operator-docs/filtering/throttle.ts | 4 ++ .../operator-docs/filtering/throttleTime.ts | 4 ++ src/app/operator-docs/index.ts | 19 +++++++++ src/app/operator-docs/multicasting/index.ts | 9 ++++ .../operator-docs/multicasting/multicast.ts | 4 ++ src/app/operator-docs/multicasting/publish.ts | 4 ++ src/app/operator-docs/multicasting/share.ts | 4 ++ .../operator-docs/transformation/buffer.ts | 4 ++ .../transformation/bufferCount.ts | 4 ++ .../transformation/bufferTime.ts | 4 ++ .../transformation/bufferToggle.ts | 4 ++ .../transformation/bufferWhen.ts | 4 ++ .../operator-docs/transformation/concatMap.ts | 4 ++ .../operator-docs/transformation/expand.ts | 4 ++ .../operator-docs/transformation/groupBy.ts | 4 ++ src/app/operator-docs/transformation/index.ts | 41 +++++++++++++++++++ src/app/operator-docs/transformation/map.ts | 4 ++ src/app/operator-docs/transformation/mapTo.ts | 4 ++ .../operator-docs/transformation/mergeMap.ts | 4 ++ .../operator-docs/transformation/partition.ts | 4 ++ src/app/operator-docs/transformation/pluck.ts | 4 ++ src/app/operator-docs/transformation/scan.ts | 4 ++ .../operator-docs/transformation/switchMap.ts | 4 ++ .../operator-docs/transformation/window.ts | 4 ++ .../transformation/windowCount.ts | 4 ++ .../transformation/windowToggle.ts | 4 ++ .../transformation/windowWhen.ts | 4 ++ src/app/operator-docs/utility/delay.ts | 4 ++ src/app/operator-docs/utility/delayWhen.ts | 4 ++ .../operator-docs/utility/dematerialize.ts | 4 ++ src/app/operator-docs/utility/do.ts | 4 ++ src/app/operator-docs/utility/index.ts | 15 +++++++ src/app/operator-docs/utility/let.ts | 4 ++ src/app/operator-docs/utility/toPromise.ts | 4 ++ src/app/operators/operators.component.html | 13 ++++-- src/app/operators/operators.component.ts | 2 + src/app/operators/operators.module.ts | 27 ++++++++++++ src/index.html | 2 +- src/styles.scss | 16 +------- 90 files changed, 554 insertions(+), 35 deletions(-) create mode 100644 src/app/operator-docs/combination/combineAll.ts create mode 100644 src/app/operator-docs/combination/combineLatest.ts create mode 100644 src/app/operator-docs/combination/concat.ts create mode 100644 src/app/operator-docs/combination/concatAll.ts create mode 100644 src/app/operator-docs/combination/forkJoin.ts create mode 100644 src/app/operator-docs/combination/index.ts create mode 100644 src/app/operator-docs/combination/merge.ts create mode 100644 src/app/operator-docs/combination/mergeAll.ts create mode 100644 src/app/operator-docs/combination/pairwise.ts create mode 100644 src/app/operator-docs/combination/race.ts create mode 100644 src/app/operator-docs/combination/startWith.ts create mode 100644 src/app/operator-docs/combination/withLatestFrom.ts create mode 100644 src/app/operator-docs/combination/zip.ts create mode 100644 src/app/operator-docs/conditional/defaultIfEmpty.ts create mode 100644 src/app/operator-docs/conditional/every.ts create mode 100644 src/app/operator-docs/conditional/index.ts create mode 100644 src/app/operator-docs/creation/create.ts create mode 100644 src/app/operator-docs/creation/empty.ts create mode 100644 src/app/operator-docs/creation/from.ts create mode 100644 src/app/operator-docs/creation/fromEvent.ts create mode 100644 src/app/operator-docs/creation/fromPromise.ts create mode 100644 src/app/operator-docs/creation/index.ts create mode 100644 src/app/operator-docs/creation/interval.ts create mode 100644 src/app/operator-docs/creation/of.ts create mode 100644 src/app/operator-docs/creation/range.ts create mode 100644 src/app/operator-docs/creation/throw.ts create mode 100644 src/app/operator-docs/creation/timer.ts create mode 100644 src/app/operator-docs/error-handling/catch.ts create mode 100644 src/app/operator-docs/error-handling/index.ts create mode 100644 src/app/operator-docs/error-handling/retry.ts create mode 100644 src/app/operator-docs/error-handling/retryWhen.ts create mode 100644 src/app/operator-docs/filtering/debounce.ts create mode 100644 src/app/operator-docs/filtering/debounceTime.ts create mode 100644 src/app/operator-docs/filtering/distinctUntilChanged.ts create mode 100644 src/app/operator-docs/filtering/filter.ts create mode 100644 src/app/operator-docs/filtering/first.ts create mode 100644 src/app/operator-docs/filtering/ignoreElements.ts create mode 100644 src/app/operator-docs/filtering/index.ts create mode 100644 src/app/operator-docs/filtering/last.ts create mode 100644 src/app/operator-docs/filtering/sample.ts create mode 100644 src/app/operator-docs/filtering/single.ts create mode 100644 src/app/operator-docs/filtering/skip.ts create mode 100644 src/app/operator-docs/filtering/skipUntil.ts create mode 100644 src/app/operator-docs/filtering/skipWhile.ts create mode 100644 src/app/operator-docs/filtering/take.ts create mode 100644 src/app/operator-docs/filtering/takeUntil.ts create mode 100644 src/app/operator-docs/filtering/takeWhile.ts create mode 100644 src/app/operator-docs/filtering/throttle.ts create mode 100644 src/app/operator-docs/filtering/throttleTime.ts create mode 100644 src/app/operator-docs/index.ts create mode 100644 src/app/operator-docs/multicasting/index.ts create mode 100644 src/app/operator-docs/multicasting/multicast.ts create mode 100644 src/app/operator-docs/multicasting/publish.ts create mode 100644 src/app/operator-docs/multicasting/share.ts create mode 100644 src/app/operator-docs/transformation/buffer.ts create mode 100644 src/app/operator-docs/transformation/bufferCount.ts create mode 100644 src/app/operator-docs/transformation/bufferTime.ts create mode 100644 src/app/operator-docs/transformation/bufferToggle.ts create mode 100644 src/app/operator-docs/transformation/bufferWhen.ts create mode 100644 src/app/operator-docs/transformation/concatMap.ts create mode 100644 src/app/operator-docs/transformation/expand.ts create mode 100644 src/app/operator-docs/transformation/groupBy.ts create mode 100644 src/app/operator-docs/transformation/index.ts create mode 100644 src/app/operator-docs/transformation/map.ts create mode 100644 src/app/operator-docs/transformation/mapTo.ts create mode 100644 src/app/operator-docs/transformation/mergeMap.ts create mode 100644 src/app/operator-docs/transformation/partition.ts create mode 100644 src/app/operator-docs/transformation/pluck.ts create mode 100644 src/app/operator-docs/transformation/scan.ts create mode 100644 src/app/operator-docs/transformation/switchMap.ts create mode 100644 src/app/operator-docs/transformation/window.ts create mode 100644 src/app/operator-docs/transformation/windowCount.ts create mode 100644 src/app/operator-docs/transformation/windowToggle.ts create mode 100644 src/app/operator-docs/transformation/windowWhen.ts create mode 100644 src/app/operator-docs/utility/delay.ts create mode 100644 src/app/operator-docs/utility/delayWhen.ts create mode 100644 src/app/operator-docs/utility/dematerialize.ts create mode 100644 src/app/operator-docs/utility/do.ts create mode 100644 src/app/operator-docs/utility/index.ts create mode 100644 src/app/operator-docs/utility/let.ts create mode 100644 src/app/operator-docs/utility/toPromise.ts create mode 100644 src/app/operators/operators.module.ts diff --git a/src/app/app.component.html b/src/app/app.component.html index 46c4151c..f46d01a0 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,11 +1,11 @@
- + - RxJS Docs + + menu + + + RxJS Docs @@ -13,12 +13,12 @@ - {{menu.title}} + {{menu.title}} -
+
-
\ No newline at end of file +
diff --git a/src/app/app.component.scss b/src/app/app.component.scss index d9dc7e5d..cb39dc53 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -1,3 +1,27 @@ -.title { - padding: 0 16px; +.app-fullpage { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: flex; + flex-direction: column; } + +.primary-toolbar { + z-index: 10; + + .toolbar-title { + padding: 0 16px; + } +} + +.app-content { + min-height: 100%; + display: flex; + flex-direction: column; +} + + + + diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 0c5f249a..0023df2b 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -2,12 +2,11 @@ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { MdToolbarModule, MdSidenavModule, MdIconModule, MdButtonModule, MdListModule } from '@angular/material'; -import { RouterModule } from '@angular/router'; +import { RouterModule, PreloadAllModules } from '@angular/router'; import { RXJS_DOC_ROUTES } from './app.routing'; import { AppComponent } from './app.component'; -import { OperatorsComponent } from './operators/operators.component'; import { CompaniesComponent } from './companies/companies.component'; import { TeamComponent } from './team/team.component'; import { RxjsComponent } from './rxjs/rxjs.component'; @@ -15,7 +14,6 @@ import { RxjsComponent } from './rxjs/rxjs.component'; @NgModule({ declarations: [ AppComponent, - OperatorsComponent, CompaniesComponent, TeamComponent, RxjsComponent @@ -23,7 +21,7 @@ import { RxjsComponent } from './rxjs/rxjs.component'; imports: [ BrowserModule, BrowserAnimationsModule, - RouterModule.forRoot(RXJS_DOC_ROUTES), + RouterModule.forRoot(RXJS_DOC_ROUTES, { preloadingStrategy: PreloadAllModules }), MdToolbarModule, MdSidenavModule, MdIconModule, diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts index d7db3e43..699f79d9 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routing.ts @@ -8,7 +8,7 @@ import { TeamComponent } from './team/team.component'; export const RXJS_DOC_ROUTES: Routes = [ { path: '', component: RxjsComponent }, - { path: 'operators', component: OperatorsComponent }, + { path: 'operators', loadChildren: './operators/operators.module#OperatorsModule' }, { path: 'team', component: TeamComponent }, { path: 'companies', component: CompaniesComponent }, { path: '**', redirectTo: '' } diff --git a/src/app/operator-docs/combination/combineAll.ts b/src/app/operator-docs/combination/combineAll.ts new file mode 100644 index 00000000..3bae58b0 --- /dev/null +++ b/src/app/operator-docs/combination/combineAll.ts @@ -0,0 +1,4 @@ +export const combineAll = { + 'name': 'combineAll', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/combineLatest.ts b/src/app/operator-docs/combination/combineLatest.ts new file mode 100644 index 00000000..3da7db4a --- /dev/null +++ b/src/app/operator-docs/combination/combineLatest.ts @@ -0,0 +1,4 @@ +export const combineLatest = { + 'name': 'combineLatest', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/concat.ts b/src/app/operator-docs/combination/concat.ts new file mode 100644 index 00000000..4a4091af --- /dev/null +++ b/src/app/operator-docs/combination/concat.ts @@ -0,0 +1,4 @@ +export const concat = { + 'name': 'concat', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/concatAll.ts b/src/app/operator-docs/combination/concatAll.ts new file mode 100644 index 00000000..e3af1a38 --- /dev/null +++ b/src/app/operator-docs/combination/concatAll.ts @@ -0,0 +1,4 @@ +export const concatAll = { + 'name': 'concatAll', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/forkJoin.ts b/src/app/operator-docs/combination/forkJoin.ts new file mode 100644 index 00000000..597e183c --- /dev/null +++ b/src/app/operator-docs/combination/forkJoin.ts @@ -0,0 +1,4 @@ +export const forkJoin = { + 'name': 'forkJoin', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/index.ts b/src/app/operator-docs/combination/index.ts new file mode 100644 index 00000000..5f5ce530 --- /dev/null +++ b/src/app/operator-docs/combination/index.ts @@ -0,0 +1,27 @@ +import { combineAll } from './combineAll'; +import { combineLatest } from './combineLatest'; +import { concat } from './concat'; +import { concatAll } from './concatAll'; +import { forkJoin } from './forkJoin'; +import { merge } from './merge'; +import { mergeAll } from './mergeAll'; +import { pairwise } from './pairwise'; +import { race } from './race'; +import { startWith } from './startWith'; +import { withLatestFrom } from './withLatestFrom'; +import { zip } from './zip'; + +export const COMBINATION_OPERATORS = [ + combineAll, + combineLatest, + concat, + concatAll, + forkJoin, + merge, + mergeAll, + pairwise, + race, + startWith, + withLatestFrom, + zip +]; diff --git a/src/app/operator-docs/combination/merge.ts b/src/app/operator-docs/combination/merge.ts new file mode 100644 index 00000000..a7452f22 --- /dev/null +++ b/src/app/operator-docs/combination/merge.ts @@ -0,0 +1,4 @@ +export const merge = { + 'name': 'merge', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/mergeAll.ts b/src/app/operator-docs/combination/mergeAll.ts new file mode 100644 index 00000000..3faba685 --- /dev/null +++ b/src/app/operator-docs/combination/mergeAll.ts @@ -0,0 +1,4 @@ +export const mergeAll = { + 'name': 'mergeAll', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/pairwise.ts b/src/app/operator-docs/combination/pairwise.ts new file mode 100644 index 00000000..cdced495 --- /dev/null +++ b/src/app/operator-docs/combination/pairwise.ts @@ -0,0 +1,4 @@ +export const pairwise = { + 'name': 'pairwise', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/race.ts b/src/app/operator-docs/combination/race.ts new file mode 100644 index 00000000..a1b57f4b --- /dev/null +++ b/src/app/operator-docs/combination/race.ts @@ -0,0 +1,4 @@ +export const race = { + 'name': 'race', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/startWith.ts b/src/app/operator-docs/combination/startWith.ts new file mode 100644 index 00000000..c9e7fb54 --- /dev/null +++ b/src/app/operator-docs/combination/startWith.ts @@ -0,0 +1,4 @@ +export const startWith = { + 'name': 'startWith', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/withLatestFrom.ts b/src/app/operator-docs/combination/withLatestFrom.ts new file mode 100644 index 00000000..784270b5 --- /dev/null +++ b/src/app/operator-docs/combination/withLatestFrom.ts @@ -0,0 +1,4 @@ +export const withLatestFrom = { + 'name': 'withLatestFrom', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/combination/zip.ts b/src/app/operator-docs/combination/zip.ts new file mode 100644 index 00000000..b3118e77 --- /dev/null +++ b/src/app/operator-docs/combination/zip.ts @@ -0,0 +1,4 @@ +export const zip = { + 'name': 'zip', + 'operatorType': 'combination' +}; diff --git a/src/app/operator-docs/conditional/defaultIfEmpty.ts b/src/app/operator-docs/conditional/defaultIfEmpty.ts new file mode 100644 index 00000000..ef83c4d4 --- /dev/null +++ b/src/app/operator-docs/conditional/defaultIfEmpty.ts @@ -0,0 +1,4 @@ +export const defaultIfEmpty = { + 'name': 'defaultIfEmpty', + 'operatorType': 'conditional' +}; diff --git a/src/app/operator-docs/conditional/every.ts b/src/app/operator-docs/conditional/every.ts new file mode 100644 index 00000000..9438be85 --- /dev/null +++ b/src/app/operator-docs/conditional/every.ts @@ -0,0 +1,4 @@ +export const every = { + 'name': 'every', + 'operatorType': 'conditional' +}; diff --git a/src/app/operator-docs/conditional/index.ts b/src/app/operator-docs/conditional/index.ts new file mode 100644 index 00000000..c7b1977f --- /dev/null +++ b/src/app/operator-docs/conditional/index.ts @@ -0,0 +1,7 @@ +import { defaultIfEmpty } from './defaultIfEmpty'; +import { every } from './every'; + +export const CONDITIONAL_OPERATORS = [ + defaultIfEmpty, + every +]; diff --git a/src/app/operator-docs/creation/create.ts b/src/app/operator-docs/creation/create.ts new file mode 100644 index 00000000..5598fa73 --- /dev/null +++ b/src/app/operator-docs/creation/create.ts @@ -0,0 +1,4 @@ +export const create = { + 'name': 'create', + 'operatorType': 'creation' +}; diff --git a/src/app/operator-docs/creation/empty.ts b/src/app/operator-docs/creation/empty.ts new file mode 100644 index 00000000..bcdfdbf2 --- /dev/null +++ b/src/app/operator-docs/creation/empty.ts @@ -0,0 +1,4 @@ +export const empty = { + 'name': 'empty', + 'operatorType': 'creation' +}; diff --git a/src/app/operator-docs/creation/from.ts b/src/app/operator-docs/creation/from.ts new file mode 100644 index 00000000..5c3b8f1e --- /dev/null +++ b/src/app/operator-docs/creation/from.ts @@ -0,0 +1,4 @@ +export const from = { + 'name': 'from', + 'operatorType': 'creation' +}; diff --git a/src/app/operator-docs/creation/fromEvent.ts b/src/app/operator-docs/creation/fromEvent.ts new file mode 100644 index 00000000..4b939b1b --- /dev/null +++ b/src/app/operator-docs/creation/fromEvent.ts @@ -0,0 +1,4 @@ +export const fromEvent = { + 'name': 'fromEvent', + 'operatorType': 'creation' +}; diff --git a/src/app/operator-docs/creation/fromPromise.ts b/src/app/operator-docs/creation/fromPromise.ts new file mode 100644 index 00000000..665e5290 --- /dev/null +++ b/src/app/operator-docs/creation/fromPromise.ts @@ -0,0 +1,4 @@ +export const fromPromise = { + 'name': 'fromPromise', + 'operatorType': 'creation' +}; diff --git a/src/app/operator-docs/creation/index.ts b/src/app/operator-docs/creation/index.ts new file mode 100644 index 00000000..ee082827 --- /dev/null +++ b/src/app/operator-docs/creation/index.ts @@ -0,0 +1,23 @@ +import { create } from './create'; +import { empty } from './empty'; +import { from } from './from'; +import { fromEvent } from './fromEvent'; +import { fromPromise } from './fromPromise'; +import { interval } from './interval'; +import { ofOperator } from './of'; +import { range } from './range'; +import { throwOperator } from './throw'; +import { timer } from './timer'; + +export const CREATION_OPERATORS = [ + create, + empty, + from, + fromEvent, + fromPromise, + interval, + ofOperator, + range, + throwOperator, + timer +]; diff --git a/src/app/operator-docs/creation/interval.ts b/src/app/operator-docs/creation/interval.ts new file mode 100644 index 00000000..d3a840ee --- /dev/null +++ b/src/app/operator-docs/creation/interval.ts @@ -0,0 +1,4 @@ +export const interval = { + 'name': 'interval', + 'operatorType': 'creation' +}; diff --git a/src/app/operator-docs/creation/of.ts b/src/app/operator-docs/creation/of.ts new file mode 100644 index 00000000..3cd78f9b --- /dev/null +++ b/src/app/operator-docs/creation/of.ts @@ -0,0 +1,4 @@ +export const ofOperator = { + 'name': 'of', + 'operatorType': 'creation' +}; diff --git a/src/app/operator-docs/creation/range.ts b/src/app/operator-docs/creation/range.ts new file mode 100644 index 00000000..9bb094ea --- /dev/null +++ b/src/app/operator-docs/creation/range.ts @@ -0,0 +1,4 @@ +export const range = { + 'name': 'range', + 'operatorType': 'creation' +}; diff --git a/src/app/operator-docs/creation/throw.ts b/src/app/operator-docs/creation/throw.ts new file mode 100644 index 00000000..3c16b55f --- /dev/null +++ b/src/app/operator-docs/creation/throw.ts @@ -0,0 +1,4 @@ +export const throwOperator = { + 'name': 'throw', + 'operatorType': 'creation' +}; diff --git a/src/app/operator-docs/creation/timer.ts b/src/app/operator-docs/creation/timer.ts new file mode 100644 index 00000000..e507a541 --- /dev/null +++ b/src/app/operator-docs/creation/timer.ts @@ -0,0 +1,4 @@ +export const timer = { + 'name': 'timer', + 'operatorType': 'creation' +}; diff --git a/src/app/operator-docs/error-handling/catch.ts b/src/app/operator-docs/error-handling/catch.ts new file mode 100644 index 00000000..ba52e467 --- /dev/null +++ b/src/app/operator-docs/error-handling/catch.ts @@ -0,0 +1,4 @@ +export const catchOperator = { + 'name': 'catch', + 'operatorType': 'error handling' +}; diff --git a/src/app/operator-docs/error-handling/index.ts b/src/app/operator-docs/error-handling/index.ts new file mode 100644 index 00000000..e4166404 --- /dev/null +++ b/src/app/operator-docs/error-handling/index.ts @@ -0,0 +1,9 @@ +import { catchOperator } from './catch'; +import { retry } from './retry'; +import { retryWhen } from './retryWhen'; + +export const ERROR_HANDLING_OPERATORS = [ + catchOperator, + retry, + retryWhen +]; diff --git a/src/app/operator-docs/error-handling/retry.ts b/src/app/operator-docs/error-handling/retry.ts new file mode 100644 index 00000000..69cc24f5 --- /dev/null +++ b/src/app/operator-docs/error-handling/retry.ts @@ -0,0 +1,4 @@ +export const retry = { + 'name': 'catch', + 'operatorType': 'error handling' +}; diff --git a/src/app/operator-docs/error-handling/retryWhen.ts b/src/app/operator-docs/error-handling/retryWhen.ts new file mode 100644 index 00000000..877af6ac --- /dev/null +++ b/src/app/operator-docs/error-handling/retryWhen.ts @@ -0,0 +1,4 @@ +export const retryWhen = { + 'name': 'retryWhen', + 'operatorType': 'error handling' +}; diff --git a/src/app/operator-docs/filtering/debounce.ts b/src/app/operator-docs/filtering/debounce.ts new file mode 100644 index 00000000..44178091 --- /dev/null +++ b/src/app/operator-docs/filtering/debounce.ts @@ -0,0 +1,4 @@ +export const debounce = { + 'name': 'debounce', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/debounceTime.ts b/src/app/operator-docs/filtering/debounceTime.ts new file mode 100644 index 00000000..bcbd87bc --- /dev/null +++ b/src/app/operator-docs/filtering/debounceTime.ts @@ -0,0 +1,4 @@ +export const debounceTime = { + 'name': 'debounceTime', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/distinctUntilChanged.ts b/src/app/operator-docs/filtering/distinctUntilChanged.ts new file mode 100644 index 00000000..e8e77fa0 --- /dev/null +++ b/src/app/operator-docs/filtering/distinctUntilChanged.ts @@ -0,0 +1,4 @@ +export const distinctUntilChanged = { + 'name': 'distinctUntilChanged', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/filter.ts b/src/app/operator-docs/filtering/filter.ts new file mode 100644 index 00000000..5782d4f3 --- /dev/null +++ b/src/app/operator-docs/filtering/filter.ts @@ -0,0 +1,4 @@ +export const filter = { + 'name': 'filter', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/first.ts b/src/app/operator-docs/filtering/first.ts new file mode 100644 index 00000000..94df4e4b --- /dev/null +++ b/src/app/operator-docs/filtering/first.ts @@ -0,0 +1,4 @@ +export const first = { + 'name': 'first', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/ignoreElements.ts b/src/app/operator-docs/filtering/ignoreElements.ts new file mode 100644 index 00000000..5ee05eeb --- /dev/null +++ b/src/app/operator-docs/filtering/ignoreElements.ts @@ -0,0 +1,4 @@ +export const ignoreElements = { + 'name': 'ignoreElements', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/index.ts b/src/app/operator-docs/filtering/index.ts new file mode 100644 index 00000000..93d93239 --- /dev/null +++ b/src/app/operator-docs/filtering/index.ts @@ -0,0 +1,37 @@ +import { debounce } from './debounce'; +import { debounceTime } from './debounceTime'; +import { distinctUntilChanged } from './distinctUntilChanged'; +import { filter } from './filter'; +import { first } from './first'; +import { ignoreElements } from './ignoreElements'; +import { last } from './last'; +import { sample } from './sample'; +import { single } from './single'; +import { skip } from './skip'; +import { skipUntil } from './skipUntil'; +import { skipWhile } from './skipWhile'; +import { take } from './take'; +import { takeUntil } from './takeUntil'; +import { takeWhile } from './takeWhile'; +import { throttle } from './throttle'; +import { throttleTime } from './throttleTime'; + +export const FILTERING_OPERATORS = [ + debounce, + debounceTime, + distinctUntilChanged, + filter, + first, + ignoreElements, + last, + sample, + single, + skip, + skipUntil, + skipWhile, + take, + takeUntil, + takeWhile, + throttle, + throttleTime +]; diff --git a/src/app/operator-docs/filtering/last.ts b/src/app/operator-docs/filtering/last.ts new file mode 100644 index 00000000..c6d7c455 --- /dev/null +++ b/src/app/operator-docs/filtering/last.ts @@ -0,0 +1,4 @@ +export const last = { + 'name': 'last', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/sample.ts b/src/app/operator-docs/filtering/sample.ts new file mode 100644 index 00000000..0f33d337 --- /dev/null +++ b/src/app/operator-docs/filtering/sample.ts @@ -0,0 +1,4 @@ +export const sample = { + 'name': 'sample', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/single.ts b/src/app/operator-docs/filtering/single.ts new file mode 100644 index 00000000..b0b6e64c --- /dev/null +++ b/src/app/operator-docs/filtering/single.ts @@ -0,0 +1,4 @@ +export const single = { + 'name': 'single', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/skip.ts b/src/app/operator-docs/filtering/skip.ts new file mode 100644 index 00000000..1ad20d69 --- /dev/null +++ b/src/app/operator-docs/filtering/skip.ts @@ -0,0 +1,4 @@ +export const skip = { + 'name': 'skip', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/skipUntil.ts b/src/app/operator-docs/filtering/skipUntil.ts new file mode 100644 index 00000000..85a0ab1a --- /dev/null +++ b/src/app/operator-docs/filtering/skipUntil.ts @@ -0,0 +1,4 @@ +export const skipUntil = { + 'name': 'skipUntil', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/skipWhile.ts b/src/app/operator-docs/filtering/skipWhile.ts new file mode 100644 index 00000000..8ed30277 --- /dev/null +++ b/src/app/operator-docs/filtering/skipWhile.ts @@ -0,0 +1,4 @@ +export const skipWhile = { + 'name': 'skipWhile', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/take.ts b/src/app/operator-docs/filtering/take.ts new file mode 100644 index 00000000..5247003b --- /dev/null +++ b/src/app/operator-docs/filtering/take.ts @@ -0,0 +1,4 @@ +export const take = { + 'name': 'take', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/takeUntil.ts b/src/app/operator-docs/filtering/takeUntil.ts new file mode 100644 index 00000000..8b2df369 --- /dev/null +++ b/src/app/operator-docs/filtering/takeUntil.ts @@ -0,0 +1,4 @@ +export const takeUntil = { + 'name': 'takeUntil', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/takeWhile.ts b/src/app/operator-docs/filtering/takeWhile.ts new file mode 100644 index 00000000..a7389f79 --- /dev/null +++ b/src/app/operator-docs/filtering/takeWhile.ts @@ -0,0 +1,4 @@ +export const takeWhile = { + 'name': 'takeWhile', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/throttle.ts b/src/app/operator-docs/filtering/throttle.ts new file mode 100644 index 00000000..0f97caa7 --- /dev/null +++ b/src/app/operator-docs/filtering/throttle.ts @@ -0,0 +1,4 @@ +export const throttle = { + 'name': 'throttle', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/filtering/throttleTime.ts b/src/app/operator-docs/filtering/throttleTime.ts new file mode 100644 index 00000000..7837c488 --- /dev/null +++ b/src/app/operator-docs/filtering/throttleTime.ts @@ -0,0 +1,4 @@ +export const throttleTime = { + 'name': 'throttleTime', + 'operatorType': 'filtering' +}; diff --git a/src/app/operator-docs/index.ts b/src/app/operator-docs/index.ts new file mode 100644 index 00000000..898e8699 --- /dev/null +++ b/src/app/operator-docs/index.ts @@ -0,0 +1,19 @@ +import { COMBINATION_OPERATORS } from './combination'; +import { CONDITIONAL_OPERATORS } from './conditional'; +import { CREATION_OPERATORS } from './creation'; +import { ERROR_HANDLING_OPERATORS } from './error-handling'; +import { FILTERING_OPERATORS } from './filtering'; +import { MULTICASTING_OPERATORS } from './multicasting'; +import { TRANSFORMATION_OPERATORS } from './transformation'; +import { UTILITY_OPERATORS } from './utility'; + +export const ALL_OPERATORS = [ + ...COMBINATION_OPERATORS, + ...CONDITIONAL_OPERATORS, + ...CREATION_OPERATORS, + ...ERROR_HANDLING_OPERATORS, + ...FILTERING_OPERATORS, + ...MULTICASTING_OPERATORS, + ...TRANSFORMATION_OPERATORS, + ...UTILITY_OPERATORS +]; diff --git a/src/app/operator-docs/multicasting/index.ts b/src/app/operator-docs/multicasting/index.ts new file mode 100644 index 00000000..a12c418f --- /dev/null +++ b/src/app/operator-docs/multicasting/index.ts @@ -0,0 +1,9 @@ +import { multicast } from './multicast'; +import { publish } from './publish'; +import { share } from './share'; + +export const MULTICASTING_OPERATORS = [ + multicast, + publish, + share +]; diff --git a/src/app/operator-docs/multicasting/multicast.ts b/src/app/operator-docs/multicasting/multicast.ts new file mode 100644 index 00000000..5b967fe5 --- /dev/null +++ b/src/app/operator-docs/multicasting/multicast.ts @@ -0,0 +1,4 @@ +export const multicast = { + 'name': 'multicast', + 'operatorType': 'multicasting' +}; diff --git a/src/app/operator-docs/multicasting/publish.ts b/src/app/operator-docs/multicasting/publish.ts new file mode 100644 index 00000000..0967cdfb --- /dev/null +++ b/src/app/operator-docs/multicasting/publish.ts @@ -0,0 +1,4 @@ +export const publish = { + 'name': 'publish', + 'operatorType': 'multicasting' +}; diff --git a/src/app/operator-docs/multicasting/share.ts b/src/app/operator-docs/multicasting/share.ts new file mode 100644 index 00000000..a7871dbd --- /dev/null +++ b/src/app/operator-docs/multicasting/share.ts @@ -0,0 +1,4 @@ +export const share = { + 'name': 'share', + 'operatorType': 'multicasting' +}; diff --git a/src/app/operator-docs/transformation/buffer.ts b/src/app/operator-docs/transformation/buffer.ts new file mode 100644 index 00000000..67138b34 --- /dev/null +++ b/src/app/operator-docs/transformation/buffer.ts @@ -0,0 +1,4 @@ +export const buffer = { + 'name': 'buffer', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/bufferCount.ts b/src/app/operator-docs/transformation/bufferCount.ts new file mode 100644 index 00000000..2b9e3712 --- /dev/null +++ b/src/app/operator-docs/transformation/bufferCount.ts @@ -0,0 +1,4 @@ +export const bufferCount = { + 'name': 'bufferCount', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/bufferTime.ts b/src/app/operator-docs/transformation/bufferTime.ts new file mode 100644 index 00000000..fc2d84ac --- /dev/null +++ b/src/app/operator-docs/transformation/bufferTime.ts @@ -0,0 +1,4 @@ +export const bufferTime = { + 'name': 'bufferTime', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/bufferToggle.ts b/src/app/operator-docs/transformation/bufferToggle.ts new file mode 100644 index 00000000..4a32aa48 --- /dev/null +++ b/src/app/operator-docs/transformation/bufferToggle.ts @@ -0,0 +1,4 @@ +export const bufferToggle = { + 'name': 'bufferToggle', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/bufferWhen.ts b/src/app/operator-docs/transformation/bufferWhen.ts new file mode 100644 index 00000000..c74fa6a9 --- /dev/null +++ b/src/app/operator-docs/transformation/bufferWhen.ts @@ -0,0 +1,4 @@ +export const bufferWhen = { + 'name': 'bufferWhen', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/concatMap.ts b/src/app/operator-docs/transformation/concatMap.ts new file mode 100644 index 00000000..acb73667 --- /dev/null +++ b/src/app/operator-docs/transformation/concatMap.ts @@ -0,0 +1,4 @@ +export const concatMap = { + 'name': 'concatMap', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/expand.ts b/src/app/operator-docs/transformation/expand.ts new file mode 100644 index 00000000..0a7938ca --- /dev/null +++ b/src/app/operator-docs/transformation/expand.ts @@ -0,0 +1,4 @@ +export const expand = { + 'name': 'expand', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/groupBy.ts b/src/app/operator-docs/transformation/groupBy.ts new file mode 100644 index 00000000..c6ed53a1 --- /dev/null +++ b/src/app/operator-docs/transformation/groupBy.ts @@ -0,0 +1,4 @@ +export const groupBy = { + 'name': 'groupBy', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/index.ts b/src/app/operator-docs/transformation/index.ts new file mode 100644 index 00000000..b660e63a --- /dev/null +++ b/src/app/operator-docs/transformation/index.ts @@ -0,0 +1,41 @@ +import { buffer } from './buffer'; +import { bufferCount } from './bufferCount'; +import { bufferTime } from './bufferTime'; +import { bufferToggle } from './bufferToggle'; +import { bufferWhen } from './bufferWhen'; +import { concatMap } from './concatMap'; +import { expand } from './expand'; +import { groupBy } from './groupBy'; +import { map } from './map'; +import { mapTo } from './mapTo'; +import { mergeMap } from './mergeMap'; +import { partition } from './partition'; +import { pluck } from './pluck'; +import { scan } from './scan'; +import { switchMap } from './switchMap'; +import { windowOperator } from './window'; +import { windowCount } from './windowCount'; +import { windowToggle } from './windowToggle'; +import { windowWhen } from './windowWhen'; + +export const TRANSFORMATION_OPERATORS = [ + buffer, + bufferCount, + bufferTime, + bufferToggle, + bufferWhen, + concatMap, + expand, + groupBy, + map, + mapTo, + mergeMap, + partition, + pluck, + scan, + switchMap, + windowOperator, + windowCount, + windowToggle, + windowWhen +]; diff --git a/src/app/operator-docs/transformation/map.ts b/src/app/operator-docs/transformation/map.ts new file mode 100644 index 00000000..df198cab --- /dev/null +++ b/src/app/operator-docs/transformation/map.ts @@ -0,0 +1,4 @@ +export const map = { + 'name': 'map', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/mapTo.ts b/src/app/operator-docs/transformation/mapTo.ts new file mode 100644 index 00000000..7c278ca4 --- /dev/null +++ b/src/app/operator-docs/transformation/mapTo.ts @@ -0,0 +1,4 @@ +export const mapTo = { + 'name': 'mapTo', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/mergeMap.ts b/src/app/operator-docs/transformation/mergeMap.ts new file mode 100644 index 00000000..1c855240 --- /dev/null +++ b/src/app/operator-docs/transformation/mergeMap.ts @@ -0,0 +1,4 @@ +export const mergeMap = { + 'name': 'mergeMap', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/partition.ts b/src/app/operator-docs/transformation/partition.ts new file mode 100644 index 00000000..eb3a2362 --- /dev/null +++ b/src/app/operator-docs/transformation/partition.ts @@ -0,0 +1,4 @@ +export const partition = { + 'name': 'partition', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/pluck.ts b/src/app/operator-docs/transformation/pluck.ts new file mode 100644 index 00000000..2ac90747 --- /dev/null +++ b/src/app/operator-docs/transformation/pluck.ts @@ -0,0 +1,4 @@ +export const pluck = { + 'name': 'pluck', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/scan.ts b/src/app/operator-docs/transformation/scan.ts new file mode 100644 index 00000000..4019726c --- /dev/null +++ b/src/app/operator-docs/transformation/scan.ts @@ -0,0 +1,4 @@ +export const scan = { + 'name': 'scan', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/switchMap.ts b/src/app/operator-docs/transformation/switchMap.ts new file mode 100644 index 00000000..cc8e2e73 --- /dev/null +++ b/src/app/operator-docs/transformation/switchMap.ts @@ -0,0 +1,4 @@ +export const switchMap = { + 'name': 'switchMap', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/window.ts b/src/app/operator-docs/transformation/window.ts new file mode 100644 index 00000000..af2852f7 --- /dev/null +++ b/src/app/operator-docs/transformation/window.ts @@ -0,0 +1,4 @@ +export const windowOperator = { + 'name': 'window', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/windowCount.ts b/src/app/operator-docs/transformation/windowCount.ts new file mode 100644 index 00000000..1c7ff4d4 --- /dev/null +++ b/src/app/operator-docs/transformation/windowCount.ts @@ -0,0 +1,4 @@ +export const windowCount = { + 'name': 'windowCount', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/windowToggle.ts b/src/app/operator-docs/transformation/windowToggle.ts new file mode 100644 index 00000000..ec30935a --- /dev/null +++ b/src/app/operator-docs/transformation/windowToggle.ts @@ -0,0 +1,4 @@ +export const windowToggle = { + 'name': 'windowToggle', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/transformation/windowWhen.ts b/src/app/operator-docs/transformation/windowWhen.ts new file mode 100644 index 00000000..295f0532 --- /dev/null +++ b/src/app/operator-docs/transformation/windowWhen.ts @@ -0,0 +1,4 @@ +export const windowWhen = { + 'name': 'windowWhen', + 'operatorType': 'transformation' +}; diff --git a/src/app/operator-docs/utility/delay.ts b/src/app/operator-docs/utility/delay.ts new file mode 100644 index 00000000..2f4e82a7 --- /dev/null +++ b/src/app/operator-docs/utility/delay.ts @@ -0,0 +1,4 @@ +export const delay = { + 'name': 'delay', + 'operatorType': 'utility' +}; diff --git a/src/app/operator-docs/utility/delayWhen.ts b/src/app/operator-docs/utility/delayWhen.ts new file mode 100644 index 00000000..85283631 --- /dev/null +++ b/src/app/operator-docs/utility/delayWhen.ts @@ -0,0 +1,4 @@ +export const delayWhen = { + 'name': 'delayWhen', + 'operatorType': 'utility' +}; diff --git a/src/app/operator-docs/utility/dematerialize.ts b/src/app/operator-docs/utility/dematerialize.ts new file mode 100644 index 00000000..73fc1540 --- /dev/null +++ b/src/app/operator-docs/utility/dematerialize.ts @@ -0,0 +1,4 @@ +export const dematerialize = { + 'name': 'dematerialize', + 'operatorType': 'utility' +}; diff --git a/src/app/operator-docs/utility/do.ts b/src/app/operator-docs/utility/do.ts new file mode 100644 index 00000000..9f1d4be4 --- /dev/null +++ b/src/app/operator-docs/utility/do.ts @@ -0,0 +1,4 @@ +export const doOperator = { + 'name': 'do', + 'operatorType': 'utility' +}; diff --git a/src/app/operator-docs/utility/index.ts b/src/app/operator-docs/utility/index.ts new file mode 100644 index 00000000..e44b6406 --- /dev/null +++ b/src/app/operator-docs/utility/index.ts @@ -0,0 +1,15 @@ +import { delay } from './delay'; +import { delayWhen } from './delayWhen'; +import { dematerialize } from './dematerialize'; +import { doOperator } from './do'; +import { letOperator } from './let'; +import { toPromise } from './toPromise'; + +export const UTILITY_OPERATORS = [ + delay, + delayWhen, + dematerialize, + doOperator, + letOperator, + toPromise +]; diff --git a/src/app/operator-docs/utility/let.ts b/src/app/operator-docs/utility/let.ts new file mode 100644 index 00000000..0d444105 --- /dev/null +++ b/src/app/operator-docs/utility/let.ts @@ -0,0 +1,4 @@ +export const letOperator = { + 'name': 'let', + 'operatorType': 'utility' +}; diff --git a/src/app/operator-docs/utility/toPromise.ts b/src/app/operator-docs/utility/toPromise.ts new file mode 100644 index 00000000..9e8d23d2 --- /dev/null +++ b/src/app/operator-docs/utility/toPromise.ts @@ -0,0 +1,4 @@ +export const toPromise = { + 'name': 'toPromise', + 'operatorType': 'utility' +}; diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index 364cc24f..1f8db831 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -1,3 +1,10 @@ -

- operators works! -

+ + + + + {{ operator.name }} + + + + Operator + diff --git a/src/app/operators/operators.component.ts b/src/app/operators/operators.component.ts index 5f98e094..fb9f9b64 100644 --- a/src/app/operators/operators.component.ts +++ b/src/app/operators/operators.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { ALL_OPERATORS } from '../operator-docs'; @Component({ selector: 'app-operators', @@ -6,6 +7,7 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./operators.component.scss'] }) export class OperatorsComponent implements OnInit { + public operators = ALL_OPERATORS; constructor() { } diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts new file mode 100644 index 00000000..fa7f8fad --- /dev/null +++ b/src/app/operators/operators.module.ts @@ -0,0 +1,27 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { MdSidenavModule, MdIconModule, MdListModule } from '@angular/material'; +import { RouterModule } from '@angular/router'; + +import { OperatorsComponent } from './operators.component'; + +const OPERATOR_ROUTES = [ + { + path: '', + component: OperatorsComponent + } +]; + +@NgModule({ + declarations: [ + OperatorsComponent + ], + imports: [ + CommonModule, + RouterModule.forChild(OPERATOR_ROUTES), + MdSidenavModule, + MdIconModule, + MdListModule + ] +}) +export class OperatorsModule { } diff --git a/src/index.html b/src/index.html index 5a8c90ef..1249566f 100644 --- a/src/index.html +++ b/src/index.html @@ -3,7 +3,7 @@ - RxjsDocs + RxJS Documentation diff --git a/src/styles.scss b/src/styles.scss index 994f6f15..d66cf26b 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -17,30 +17,16 @@ html, body { height: 100%; } -.app-fullpage { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - display: flex; - flex-direction: column; -} - md-sidenav-container { flex: 1 1 auto; width: 100%; height: 100%; } -md-sidenav { +md-sidenav { width: 200px; } md-sidenav a.active .mat-list-item-content { color: mat-color($accent); } - -.body-margin { - margin: 50px; -} From 11fc52489f719889be18fb9e0b46856bab4ecdfc Mon Sep 17 00:00:00 2001 From: btroncone Date: Wed, 4 Oct 2017 08:06:09 -0400 Subject: [PATCH 02/33] updated operator formatting --- src/app/app.component.scss | 11 +++++++++++ src/app/operator-docs/combination/combineAll.ts | 4 ++-- src/app/operator-docs/combination/combineLatest.ts | 4 ++-- src/app/operator-docs/combination/concat.ts | 4 ++-- src/app/operator-docs/combination/concatAll.ts | 4 ++-- src/app/operator-docs/combination/forkJoin.ts | 4 ++-- src/app/operator-docs/combination/merge.ts | 4 ++-- src/app/operator-docs/combination/mergeAll.ts | 4 ++-- src/app/operator-docs/combination/pairwise.ts | 4 ++-- src/app/operator-docs/combination/race.ts | 4 ++-- src/app/operator-docs/combination/startWith.ts | 4 ++-- src/app/operator-docs/combination/withLatestFrom.ts | 4 ++-- src/app/operator-docs/combination/zip.ts | 4 ++-- src/app/operator-docs/conditional/defaultIfEmpty.ts | 4 ++-- src/app/operator-docs/conditional/every.ts | 4 ++-- src/app/operator-docs/creation/create.ts | 4 ++-- src/app/operator-docs/creation/empty.ts | 4 ++-- src/app/operator-docs/creation/from.ts | 4 ++-- src/app/operator-docs/creation/fromEvent.ts | 4 ++-- src/app/operator-docs/creation/fromPromise.ts | 4 ++-- src/app/operator-docs/creation/interval.ts | 4 ++-- src/app/operator-docs/creation/of.ts | 4 ++-- src/app/operator-docs/creation/range.ts | 4 ++-- src/app/operator-docs/creation/throw.ts | 4 ++-- src/app/operator-docs/creation/timer.ts | 4 ++-- src/app/operator-docs/error-handling/catch.ts | 4 ++-- src/app/operator-docs/error-handling/retry.ts | 4 ++-- src/app/operator-docs/error-handling/retryWhen.ts | 4 ++-- src/app/operator-docs/filtering/debounce.ts | 4 ++-- src/app/operator-docs/filtering/debounceTime.ts | 4 ++-- .../operator-docs/filtering/distinctUntilChanged.ts | 4 ++-- src/app/operator-docs/filtering/filter.ts | 4 ++-- src/app/operator-docs/filtering/first.ts | 4 ++-- src/app/operator-docs/filtering/ignoreElements.ts | 4 ++-- src/app/operator-docs/filtering/last.ts | 4 ++-- src/app/operator-docs/filtering/sample.ts | 4 ++-- src/app/operator-docs/filtering/single.ts | 4 ++-- src/app/operator-docs/filtering/skip.ts | 4 ++-- src/app/operator-docs/filtering/skipUntil.ts | 4 ++-- src/app/operator-docs/filtering/skipWhile.ts | 4 ++-- src/app/operator-docs/filtering/take.ts | 4 ++-- src/app/operator-docs/filtering/takeUntil.ts | 4 ++-- src/app/operator-docs/filtering/takeWhile.ts | 4 ++-- src/app/operator-docs/filtering/throttle.ts | 4 ++-- src/app/operator-docs/filtering/throttleTime.ts | 4 ++-- src/app/operator-docs/multicasting/multicast.ts | 4 ++-- src/app/operator-docs/multicasting/publish.ts | 4 ++-- src/app/operator-docs/multicasting/share.ts | 4 ++-- src/app/operator-docs/transformation/buffer.ts | 4 ++-- src/app/operator-docs/transformation/bufferCount.ts | 4 ++-- src/app/operator-docs/transformation/bufferTime.ts | 4 ++-- src/app/operator-docs/transformation/bufferToggle.ts | 4 ++-- src/app/operator-docs/transformation/bufferWhen.ts | 4 ++-- src/app/operator-docs/transformation/concatMap.ts | 4 ++-- src/app/operator-docs/transformation/expand.ts | 4 ++-- src/app/operator-docs/transformation/groupBy.ts | 4 ++-- src/app/operator-docs/transformation/map.ts | 4 ++-- src/app/operator-docs/transformation/mapTo.ts | 4 ++-- src/app/operator-docs/transformation/mergeMap.ts | 4 ++-- src/app/operator-docs/transformation/partition.ts | 4 ++-- src/app/operator-docs/transformation/pluck.ts | 4 ++-- src/app/operator-docs/transformation/scan.ts | 4 ++-- src/app/operator-docs/transformation/switchMap.ts | 4 ++-- src/app/operator-docs/transformation/window.ts | 4 ++-- src/app/operator-docs/transformation/windowCount.ts | 4 ++-- src/app/operator-docs/transformation/windowToggle.ts | 4 ++-- src/app/operator-docs/transformation/windowWhen.ts | 4 ++-- src/app/operator-docs/utility/delay.ts | 4 ++-- src/app/operator-docs/utility/delayWhen.ts | 4 ++-- src/app/operator-docs/utility/dematerialize.ts | 4 ++-- src/app/operator-docs/utility/do.ts | 4 ++-- src/app/operator-docs/utility/let.ts | 4 ++-- src/app/operator-docs/utility/toPromise.ts | 4 ++-- src/app/operators/operators.component.scss | 9 +++++++++ src/styles.scss | 10 ---------- 75 files changed, 164 insertions(+), 154 deletions(-) diff --git a/src/app/app.component.scss b/src/app/app.component.scss index cb39dc53..8c09080f 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -8,6 +8,16 @@ flex-direction: column; } +md-sidenav-container { + flex: 1 1 auto; + width: 100%; + height: 100%; +} + +md-sidenav { + width: 200px; +} + .primary-toolbar { z-index: 10; @@ -18,6 +28,7 @@ .app-content { min-height: 100%; + overflow: auto; display: flex; flex-direction: column; } diff --git a/src/app/operator-docs/combination/combineAll.ts b/src/app/operator-docs/combination/combineAll.ts index 3bae58b0..c6d24219 100644 --- a/src/app/operator-docs/combination/combineAll.ts +++ b/src/app/operator-docs/combination/combineAll.ts @@ -1,4 +1,4 @@ export const combineAll = { - 'name': 'combineAll', - 'operatorType': 'combination' + "name": "combineAll", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/combineLatest.ts b/src/app/operator-docs/combination/combineLatest.ts index 3da7db4a..5469b035 100644 --- a/src/app/operator-docs/combination/combineLatest.ts +++ b/src/app/operator-docs/combination/combineLatest.ts @@ -1,4 +1,4 @@ export const combineLatest = { - 'name': 'combineLatest', - 'operatorType': 'combination' + "name": "combineLatest", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/concat.ts b/src/app/operator-docs/combination/concat.ts index 4a4091af..d1c22ae2 100644 --- a/src/app/operator-docs/combination/concat.ts +++ b/src/app/operator-docs/combination/concat.ts @@ -1,4 +1,4 @@ export const concat = { - 'name': 'concat', - 'operatorType': 'combination' + "name": "concat", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/concatAll.ts b/src/app/operator-docs/combination/concatAll.ts index e3af1a38..cee012f5 100644 --- a/src/app/operator-docs/combination/concatAll.ts +++ b/src/app/operator-docs/combination/concatAll.ts @@ -1,4 +1,4 @@ export const concatAll = { - 'name': 'concatAll', - 'operatorType': 'combination' + "name": "concatAll", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/forkJoin.ts b/src/app/operator-docs/combination/forkJoin.ts index 597e183c..9bb302ad 100644 --- a/src/app/operator-docs/combination/forkJoin.ts +++ b/src/app/operator-docs/combination/forkJoin.ts @@ -1,4 +1,4 @@ export const forkJoin = { - 'name': 'forkJoin', - 'operatorType': 'combination' + "name": "forkJoin", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/merge.ts b/src/app/operator-docs/combination/merge.ts index a7452f22..d3496d78 100644 --- a/src/app/operator-docs/combination/merge.ts +++ b/src/app/operator-docs/combination/merge.ts @@ -1,4 +1,4 @@ export const merge = { - 'name': 'merge', - 'operatorType': 'combination' + "name": "merge", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/mergeAll.ts b/src/app/operator-docs/combination/mergeAll.ts index 3faba685..65e9a1a8 100644 --- a/src/app/operator-docs/combination/mergeAll.ts +++ b/src/app/operator-docs/combination/mergeAll.ts @@ -1,4 +1,4 @@ export const mergeAll = { - 'name': 'mergeAll', - 'operatorType': 'combination' + "name": "mergeAll", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/pairwise.ts b/src/app/operator-docs/combination/pairwise.ts index cdced495..b69f607a 100644 --- a/src/app/operator-docs/combination/pairwise.ts +++ b/src/app/operator-docs/combination/pairwise.ts @@ -1,4 +1,4 @@ export const pairwise = { - 'name': 'pairwise', - 'operatorType': 'combination' + "name": "pairwise", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/race.ts b/src/app/operator-docs/combination/race.ts index a1b57f4b..26fa7144 100644 --- a/src/app/operator-docs/combination/race.ts +++ b/src/app/operator-docs/combination/race.ts @@ -1,4 +1,4 @@ export const race = { - 'name': 'race', - 'operatorType': 'combination' + "name": "race", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/startWith.ts b/src/app/operator-docs/combination/startWith.ts index c9e7fb54..0709be05 100644 --- a/src/app/operator-docs/combination/startWith.ts +++ b/src/app/operator-docs/combination/startWith.ts @@ -1,4 +1,4 @@ export const startWith = { - 'name': 'startWith', - 'operatorType': 'combination' + "name": "startWith", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/withLatestFrom.ts b/src/app/operator-docs/combination/withLatestFrom.ts index 784270b5..65a7fc7c 100644 --- a/src/app/operator-docs/combination/withLatestFrom.ts +++ b/src/app/operator-docs/combination/withLatestFrom.ts @@ -1,4 +1,4 @@ export const withLatestFrom = { - 'name': 'withLatestFrom', - 'operatorType': 'combination' + "name": "withLatestFrom", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/zip.ts b/src/app/operator-docs/combination/zip.ts index b3118e77..676a5a5a 100644 --- a/src/app/operator-docs/combination/zip.ts +++ b/src/app/operator-docs/combination/zip.ts @@ -1,4 +1,4 @@ export const zip = { - 'name': 'zip', - 'operatorType': 'combination' + "name": "zip", + "operatorType": "combination" }; diff --git a/src/app/operator-docs/conditional/defaultIfEmpty.ts b/src/app/operator-docs/conditional/defaultIfEmpty.ts index ef83c4d4..5f6ad3f7 100644 --- a/src/app/operator-docs/conditional/defaultIfEmpty.ts +++ b/src/app/operator-docs/conditional/defaultIfEmpty.ts @@ -1,4 +1,4 @@ export const defaultIfEmpty = { - 'name': 'defaultIfEmpty', - 'operatorType': 'conditional' + "name": "defaultIfEmpty", + "operatorType": "conditional" }; diff --git a/src/app/operator-docs/conditional/every.ts b/src/app/operator-docs/conditional/every.ts index 9438be85..ec98c3ee 100644 --- a/src/app/operator-docs/conditional/every.ts +++ b/src/app/operator-docs/conditional/every.ts @@ -1,4 +1,4 @@ export const every = { - 'name': 'every', - 'operatorType': 'conditional' + "name": "every", + "operatorType": "conditional" }; diff --git a/src/app/operator-docs/creation/create.ts b/src/app/operator-docs/creation/create.ts index 5598fa73..71275b57 100644 --- a/src/app/operator-docs/creation/create.ts +++ b/src/app/operator-docs/creation/create.ts @@ -1,4 +1,4 @@ export const create = { - 'name': 'create', - 'operatorType': 'creation' + "name": "create", + "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/empty.ts b/src/app/operator-docs/creation/empty.ts index bcdfdbf2..623fc5bd 100644 --- a/src/app/operator-docs/creation/empty.ts +++ b/src/app/operator-docs/creation/empty.ts @@ -1,4 +1,4 @@ export const empty = { - 'name': 'empty', - 'operatorType': 'creation' + "name": "empty", + "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/from.ts b/src/app/operator-docs/creation/from.ts index 5c3b8f1e..f45fb0c6 100644 --- a/src/app/operator-docs/creation/from.ts +++ b/src/app/operator-docs/creation/from.ts @@ -1,4 +1,4 @@ export const from = { - 'name': 'from', - 'operatorType': 'creation' + "name": "from", + "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/fromEvent.ts b/src/app/operator-docs/creation/fromEvent.ts index 4b939b1b..7ae2a636 100644 --- a/src/app/operator-docs/creation/fromEvent.ts +++ b/src/app/operator-docs/creation/fromEvent.ts @@ -1,4 +1,4 @@ export const fromEvent = { - 'name': 'fromEvent', - 'operatorType': 'creation' + "name": "fromEvent", + "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/fromPromise.ts b/src/app/operator-docs/creation/fromPromise.ts index 665e5290..e45b00e8 100644 --- a/src/app/operator-docs/creation/fromPromise.ts +++ b/src/app/operator-docs/creation/fromPromise.ts @@ -1,4 +1,4 @@ export const fromPromise = { - 'name': 'fromPromise', - 'operatorType': 'creation' + "name": "fromPromise", + "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/interval.ts b/src/app/operator-docs/creation/interval.ts index d3a840ee..772cfeeb 100644 --- a/src/app/operator-docs/creation/interval.ts +++ b/src/app/operator-docs/creation/interval.ts @@ -1,4 +1,4 @@ export const interval = { - 'name': 'interval', - 'operatorType': 'creation' + "name": "interval", + "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/of.ts b/src/app/operator-docs/creation/of.ts index 3cd78f9b..1d4c9c7e 100644 --- a/src/app/operator-docs/creation/of.ts +++ b/src/app/operator-docs/creation/of.ts @@ -1,4 +1,4 @@ export const ofOperator = { - 'name': 'of', - 'operatorType': 'creation' + "name": "of", + "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/range.ts b/src/app/operator-docs/creation/range.ts index 9bb094ea..08c56b18 100644 --- a/src/app/operator-docs/creation/range.ts +++ b/src/app/operator-docs/creation/range.ts @@ -1,4 +1,4 @@ export const range = { - 'name': 'range', - 'operatorType': 'creation' + "name": "range", + "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/throw.ts b/src/app/operator-docs/creation/throw.ts index 3c16b55f..99aaf44d 100644 --- a/src/app/operator-docs/creation/throw.ts +++ b/src/app/operator-docs/creation/throw.ts @@ -1,4 +1,4 @@ export const throwOperator = { - 'name': 'throw', - 'operatorType': 'creation' + "name": "throw", + "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/timer.ts b/src/app/operator-docs/creation/timer.ts index e507a541..8d24f8df 100644 --- a/src/app/operator-docs/creation/timer.ts +++ b/src/app/operator-docs/creation/timer.ts @@ -1,4 +1,4 @@ export const timer = { - 'name': 'timer', - 'operatorType': 'creation' + "name": "timer", + "operatorType": "creation" }; diff --git a/src/app/operator-docs/error-handling/catch.ts b/src/app/operator-docs/error-handling/catch.ts index ba52e467..b8a2f573 100644 --- a/src/app/operator-docs/error-handling/catch.ts +++ b/src/app/operator-docs/error-handling/catch.ts @@ -1,4 +1,4 @@ export const catchOperator = { - 'name': 'catch', - 'operatorType': 'error handling' + "name": "catch", + "operatorType": "error handling" }; diff --git a/src/app/operator-docs/error-handling/retry.ts b/src/app/operator-docs/error-handling/retry.ts index 69cc24f5..4add0fac 100644 --- a/src/app/operator-docs/error-handling/retry.ts +++ b/src/app/operator-docs/error-handling/retry.ts @@ -1,4 +1,4 @@ export const retry = { - 'name': 'catch', - 'operatorType': 'error handling' + "name": "catch", + "operatorType": "error handling" }; diff --git a/src/app/operator-docs/error-handling/retryWhen.ts b/src/app/operator-docs/error-handling/retryWhen.ts index 877af6ac..99abdd99 100644 --- a/src/app/operator-docs/error-handling/retryWhen.ts +++ b/src/app/operator-docs/error-handling/retryWhen.ts @@ -1,4 +1,4 @@ export const retryWhen = { - 'name': 'retryWhen', - 'operatorType': 'error handling' + "name": "retryWhen", + "operatorType": "error handling" }; diff --git a/src/app/operator-docs/filtering/debounce.ts b/src/app/operator-docs/filtering/debounce.ts index 44178091..d780c261 100644 --- a/src/app/operator-docs/filtering/debounce.ts +++ b/src/app/operator-docs/filtering/debounce.ts @@ -1,4 +1,4 @@ export const debounce = { - 'name': 'debounce', - 'operatorType': 'filtering' + "name": "debounce", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/debounceTime.ts b/src/app/operator-docs/filtering/debounceTime.ts index bcbd87bc..460b4773 100644 --- a/src/app/operator-docs/filtering/debounceTime.ts +++ b/src/app/operator-docs/filtering/debounceTime.ts @@ -1,4 +1,4 @@ export const debounceTime = { - 'name': 'debounceTime', - 'operatorType': 'filtering' + "name": "debounceTime", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/distinctUntilChanged.ts b/src/app/operator-docs/filtering/distinctUntilChanged.ts index e8e77fa0..0e36c6f1 100644 --- a/src/app/operator-docs/filtering/distinctUntilChanged.ts +++ b/src/app/operator-docs/filtering/distinctUntilChanged.ts @@ -1,4 +1,4 @@ export const distinctUntilChanged = { - 'name': 'distinctUntilChanged', - 'operatorType': 'filtering' + "name": "distinctUntilChanged", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/filter.ts b/src/app/operator-docs/filtering/filter.ts index 5782d4f3..44bce512 100644 --- a/src/app/operator-docs/filtering/filter.ts +++ b/src/app/operator-docs/filtering/filter.ts @@ -1,4 +1,4 @@ export const filter = { - 'name': 'filter', - 'operatorType': 'filtering' + "name": "filter", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/first.ts b/src/app/operator-docs/filtering/first.ts index 94df4e4b..e8bf0a05 100644 --- a/src/app/operator-docs/filtering/first.ts +++ b/src/app/operator-docs/filtering/first.ts @@ -1,4 +1,4 @@ export const first = { - 'name': 'first', - 'operatorType': 'filtering' + "name": "first", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/ignoreElements.ts b/src/app/operator-docs/filtering/ignoreElements.ts index 5ee05eeb..adeeec7d 100644 --- a/src/app/operator-docs/filtering/ignoreElements.ts +++ b/src/app/operator-docs/filtering/ignoreElements.ts @@ -1,4 +1,4 @@ export const ignoreElements = { - 'name': 'ignoreElements', - 'operatorType': 'filtering' + "name": "ignoreElements", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/last.ts b/src/app/operator-docs/filtering/last.ts index c6d7c455..ac7e7062 100644 --- a/src/app/operator-docs/filtering/last.ts +++ b/src/app/operator-docs/filtering/last.ts @@ -1,4 +1,4 @@ export const last = { - 'name': 'last', - 'operatorType': 'filtering' + "name": "last", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/sample.ts b/src/app/operator-docs/filtering/sample.ts index 0f33d337..49e68059 100644 --- a/src/app/operator-docs/filtering/sample.ts +++ b/src/app/operator-docs/filtering/sample.ts @@ -1,4 +1,4 @@ export const sample = { - 'name': 'sample', - 'operatorType': 'filtering' + "name": "sample", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/single.ts b/src/app/operator-docs/filtering/single.ts index b0b6e64c..f3a24470 100644 --- a/src/app/operator-docs/filtering/single.ts +++ b/src/app/operator-docs/filtering/single.ts @@ -1,4 +1,4 @@ export const single = { - 'name': 'single', - 'operatorType': 'filtering' + "name": "single", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/skip.ts b/src/app/operator-docs/filtering/skip.ts index 1ad20d69..9d2993a5 100644 --- a/src/app/operator-docs/filtering/skip.ts +++ b/src/app/operator-docs/filtering/skip.ts @@ -1,4 +1,4 @@ export const skip = { - 'name': 'skip', - 'operatorType': 'filtering' + "name": "skip", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/skipUntil.ts b/src/app/operator-docs/filtering/skipUntil.ts index 85a0ab1a..a1c5a689 100644 --- a/src/app/operator-docs/filtering/skipUntil.ts +++ b/src/app/operator-docs/filtering/skipUntil.ts @@ -1,4 +1,4 @@ export const skipUntil = { - 'name': 'skipUntil', - 'operatorType': 'filtering' + "name": "skipUntil", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/skipWhile.ts b/src/app/operator-docs/filtering/skipWhile.ts index 8ed30277..28dfcbc8 100644 --- a/src/app/operator-docs/filtering/skipWhile.ts +++ b/src/app/operator-docs/filtering/skipWhile.ts @@ -1,4 +1,4 @@ export const skipWhile = { - 'name': 'skipWhile', - 'operatorType': 'filtering' + "name": "skipWhile", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/take.ts b/src/app/operator-docs/filtering/take.ts index 5247003b..9f3e3e98 100644 --- a/src/app/operator-docs/filtering/take.ts +++ b/src/app/operator-docs/filtering/take.ts @@ -1,4 +1,4 @@ export const take = { - 'name': 'take', - 'operatorType': 'filtering' + "name": "take", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/takeUntil.ts b/src/app/operator-docs/filtering/takeUntil.ts index 8b2df369..bf8b0bfe 100644 --- a/src/app/operator-docs/filtering/takeUntil.ts +++ b/src/app/operator-docs/filtering/takeUntil.ts @@ -1,4 +1,4 @@ export const takeUntil = { - 'name': 'takeUntil', - 'operatorType': 'filtering' + "name": "takeUntil", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/takeWhile.ts b/src/app/operator-docs/filtering/takeWhile.ts index a7389f79..ae083472 100644 --- a/src/app/operator-docs/filtering/takeWhile.ts +++ b/src/app/operator-docs/filtering/takeWhile.ts @@ -1,4 +1,4 @@ export const takeWhile = { - 'name': 'takeWhile', - 'operatorType': 'filtering' + "name": "takeWhile", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/throttle.ts b/src/app/operator-docs/filtering/throttle.ts index 0f97caa7..e2978095 100644 --- a/src/app/operator-docs/filtering/throttle.ts +++ b/src/app/operator-docs/filtering/throttle.ts @@ -1,4 +1,4 @@ export const throttle = { - 'name': 'throttle', - 'operatorType': 'filtering' + "name": "throttle", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/throttleTime.ts b/src/app/operator-docs/filtering/throttleTime.ts index 7837c488..533516c8 100644 --- a/src/app/operator-docs/filtering/throttleTime.ts +++ b/src/app/operator-docs/filtering/throttleTime.ts @@ -1,4 +1,4 @@ export const throttleTime = { - 'name': 'throttleTime', - 'operatorType': 'filtering' + "name": "throttleTime", + "operatorType": "filtering" }; diff --git a/src/app/operator-docs/multicasting/multicast.ts b/src/app/operator-docs/multicasting/multicast.ts index 5b967fe5..1a858fce 100644 --- a/src/app/operator-docs/multicasting/multicast.ts +++ b/src/app/operator-docs/multicasting/multicast.ts @@ -1,4 +1,4 @@ export const multicast = { - 'name': 'multicast', - 'operatorType': 'multicasting' + "name": "multicast", + "operatorType": "multicasting" }; diff --git a/src/app/operator-docs/multicasting/publish.ts b/src/app/operator-docs/multicasting/publish.ts index 0967cdfb..f64450df 100644 --- a/src/app/operator-docs/multicasting/publish.ts +++ b/src/app/operator-docs/multicasting/publish.ts @@ -1,4 +1,4 @@ export const publish = { - 'name': 'publish', - 'operatorType': 'multicasting' + "name": "publish", + "operatorType": "multicasting" }; diff --git a/src/app/operator-docs/multicasting/share.ts b/src/app/operator-docs/multicasting/share.ts index a7871dbd..7dce97e4 100644 --- a/src/app/operator-docs/multicasting/share.ts +++ b/src/app/operator-docs/multicasting/share.ts @@ -1,4 +1,4 @@ export const share = { - 'name': 'share', - 'operatorType': 'multicasting' + "name": "share", + "operatorType": "multicasting" }; diff --git a/src/app/operator-docs/transformation/buffer.ts b/src/app/operator-docs/transformation/buffer.ts index 67138b34..8d5ac8ae 100644 --- a/src/app/operator-docs/transformation/buffer.ts +++ b/src/app/operator-docs/transformation/buffer.ts @@ -1,4 +1,4 @@ export const buffer = { - 'name': 'buffer', - 'operatorType': 'transformation' + "name": "buffer", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/bufferCount.ts b/src/app/operator-docs/transformation/bufferCount.ts index 2b9e3712..fe259acc 100644 --- a/src/app/operator-docs/transformation/bufferCount.ts +++ b/src/app/operator-docs/transformation/bufferCount.ts @@ -1,4 +1,4 @@ export const bufferCount = { - 'name': 'bufferCount', - 'operatorType': 'transformation' + "name": "bufferCount", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/bufferTime.ts b/src/app/operator-docs/transformation/bufferTime.ts index fc2d84ac..b03b320d 100644 --- a/src/app/operator-docs/transformation/bufferTime.ts +++ b/src/app/operator-docs/transformation/bufferTime.ts @@ -1,4 +1,4 @@ export const bufferTime = { - 'name': 'bufferTime', - 'operatorType': 'transformation' + "name": "bufferTime", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/bufferToggle.ts b/src/app/operator-docs/transformation/bufferToggle.ts index 4a32aa48..be0e678c 100644 --- a/src/app/operator-docs/transformation/bufferToggle.ts +++ b/src/app/operator-docs/transformation/bufferToggle.ts @@ -1,4 +1,4 @@ export const bufferToggle = { - 'name': 'bufferToggle', - 'operatorType': 'transformation' + "name": "bufferToggle", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/bufferWhen.ts b/src/app/operator-docs/transformation/bufferWhen.ts index c74fa6a9..ba3ecc8e 100644 --- a/src/app/operator-docs/transformation/bufferWhen.ts +++ b/src/app/operator-docs/transformation/bufferWhen.ts @@ -1,4 +1,4 @@ export const bufferWhen = { - 'name': 'bufferWhen', - 'operatorType': 'transformation' + "name": "bufferWhen", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/concatMap.ts b/src/app/operator-docs/transformation/concatMap.ts index acb73667..08141ea1 100644 --- a/src/app/operator-docs/transformation/concatMap.ts +++ b/src/app/operator-docs/transformation/concatMap.ts @@ -1,4 +1,4 @@ export const concatMap = { - 'name': 'concatMap', - 'operatorType': 'transformation' + "name": "concatMap", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/expand.ts b/src/app/operator-docs/transformation/expand.ts index 0a7938ca..f29f8c22 100644 --- a/src/app/operator-docs/transformation/expand.ts +++ b/src/app/operator-docs/transformation/expand.ts @@ -1,4 +1,4 @@ export const expand = { - 'name': 'expand', - 'operatorType': 'transformation' + "name": "expand", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/groupBy.ts b/src/app/operator-docs/transformation/groupBy.ts index c6ed53a1..6bf5d82e 100644 --- a/src/app/operator-docs/transformation/groupBy.ts +++ b/src/app/operator-docs/transformation/groupBy.ts @@ -1,4 +1,4 @@ export const groupBy = { - 'name': 'groupBy', - 'operatorType': 'transformation' + "name": "groupBy", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/map.ts b/src/app/operator-docs/transformation/map.ts index df198cab..e3aafc86 100644 --- a/src/app/operator-docs/transformation/map.ts +++ b/src/app/operator-docs/transformation/map.ts @@ -1,4 +1,4 @@ export const map = { - 'name': 'map', - 'operatorType': 'transformation' + "name": "map", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/mapTo.ts b/src/app/operator-docs/transformation/mapTo.ts index 7c278ca4..682b1d3b 100644 --- a/src/app/operator-docs/transformation/mapTo.ts +++ b/src/app/operator-docs/transformation/mapTo.ts @@ -1,4 +1,4 @@ export const mapTo = { - 'name': 'mapTo', - 'operatorType': 'transformation' + "name": "mapTo", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/mergeMap.ts b/src/app/operator-docs/transformation/mergeMap.ts index 1c855240..2a45dc2e 100644 --- a/src/app/operator-docs/transformation/mergeMap.ts +++ b/src/app/operator-docs/transformation/mergeMap.ts @@ -1,4 +1,4 @@ export const mergeMap = { - 'name': 'mergeMap', - 'operatorType': 'transformation' + "name": "mergeMap", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/partition.ts b/src/app/operator-docs/transformation/partition.ts index eb3a2362..4bb10977 100644 --- a/src/app/operator-docs/transformation/partition.ts +++ b/src/app/operator-docs/transformation/partition.ts @@ -1,4 +1,4 @@ export const partition = { - 'name': 'partition', - 'operatorType': 'transformation' + "name": "partition", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/pluck.ts b/src/app/operator-docs/transformation/pluck.ts index 2ac90747..f0087237 100644 --- a/src/app/operator-docs/transformation/pluck.ts +++ b/src/app/operator-docs/transformation/pluck.ts @@ -1,4 +1,4 @@ export const pluck = { - 'name': 'pluck', - 'operatorType': 'transformation' + "name": "pluck", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/scan.ts b/src/app/operator-docs/transformation/scan.ts index 4019726c..7664fedc 100644 --- a/src/app/operator-docs/transformation/scan.ts +++ b/src/app/operator-docs/transformation/scan.ts @@ -1,4 +1,4 @@ export const scan = { - 'name': 'scan', - 'operatorType': 'transformation' + "name": "scan", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/switchMap.ts b/src/app/operator-docs/transformation/switchMap.ts index cc8e2e73..df02aeaa 100644 --- a/src/app/operator-docs/transformation/switchMap.ts +++ b/src/app/operator-docs/transformation/switchMap.ts @@ -1,4 +1,4 @@ export const switchMap = { - 'name': 'switchMap', - 'operatorType': 'transformation' + "name": "switchMap", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/window.ts b/src/app/operator-docs/transformation/window.ts index af2852f7..8cecc9f6 100644 --- a/src/app/operator-docs/transformation/window.ts +++ b/src/app/operator-docs/transformation/window.ts @@ -1,4 +1,4 @@ export const windowOperator = { - 'name': 'window', - 'operatorType': 'transformation' + "name": "window", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/windowCount.ts b/src/app/operator-docs/transformation/windowCount.ts index 1c7ff4d4..2d46a3a5 100644 --- a/src/app/operator-docs/transformation/windowCount.ts +++ b/src/app/operator-docs/transformation/windowCount.ts @@ -1,4 +1,4 @@ export const windowCount = { - 'name': 'windowCount', - 'operatorType': 'transformation' + "name": "windowCount", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/windowToggle.ts b/src/app/operator-docs/transformation/windowToggle.ts index ec30935a..cfbdafad 100644 --- a/src/app/operator-docs/transformation/windowToggle.ts +++ b/src/app/operator-docs/transformation/windowToggle.ts @@ -1,4 +1,4 @@ export const windowToggle = { - 'name': 'windowToggle', - 'operatorType': 'transformation' + "name": "windowToggle", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/windowWhen.ts b/src/app/operator-docs/transformation/windowWhen.ts index 295f0532..4130b6f4 100644 --- a/src/app/operator-docs/transformation/windowWhen.ts +++ b/src/app/operator-docs/transformation/windowWhen.ts @@ -1,4 +1,4 @@ export const windowWhen = { - 'name': 'windowWhen', - 'operatorType': 'transformation' + "name": "windowWhen", + "operatorType": "transformation" }; diff --git a/src/app/operator-docs/utility/delay.ts b/src/app/operator-docs/utility/delay.ts index 2f4e82a7..82c78957 100644 --- a/src/app/operator-docs/utility/delay.ts +++ b/src/app/operator-docs/utility/delay.ts @@ -1,4 +1,4 @@ export const delay = { - 'name': 'delay', - 'operatorType': 'utility' + "name": "delay", + "operatorType": "utility" }; diff --git a/src/app/operator-docs/utility/delayWhen.ts b/src/app/operator-docs/utility/delayWhen.ts index 85283631..1e588155 100644 --- a/src/app/operator-docs/utility/delayWhen.ts +++ b/src/app/operator-docs/utility/delayWhen.ts @@ -1,4 +1,4 @@ export const delayWhen = { - 'name': 'delayWhen', - 'operatorType': 'utility' + "name": "delayWhen", + "operatorType": "utility" }; diff --git a/src/app/operator-docs/utility/dematerialize.ts b/src/app/operator-docs/utility/dematerialize.ts index 73fc1540..f6cd2b2a 100644 --- a/src/app/operator-docs/utility/dematerialize.ts +++ b/src/app/operator-docs/utility/dematerialize.ts @@ -1,4 +1,4 @@ export const dematerialize = { - 'name': 'dematerialize', - 'operatorType': 'utility' + "name": "dematerialize", + "operatorType": "utility" }; diff --git a/src/app/operator-docs/utility/do.ts b/src/app/operator-docs/utility/do.ts index 9f1d4be4..0176bdf4 100644 --- a/src/app/operator-docs/utility/do.ts +++ b/src/app/operator-docs/utility/do.ts @@ -1,4 +1,4 @@ export const doOperator = { - 'name': 'do', - 'operatorType': 'utility' + "name": "do", + "operatorType": "utility" }; diff --git a/src/app/operator-docs/utility/let.ts b/src/app/operator-docs/utility/let.ts index 0d444105..5b4580f4 100644 --- a/src/app/operator-docs/utility/let.ts +++ b/src/app/operator-docs/utility/let.ts @@ -1,4 +1,4 @@ export const letOperator = { - 'name': 'let', - 'operatorType': 'utility' + "name": "let", + "operatorType": "utility" }; diff --git a/src/app/operator-docs/utility/toPromise.ts b/src/app/operator-docs/utility/toPromise.ts index 9e8d23d2..0eb0b8d0 100644 --- a/src/app/operator-docs/utility/toPromise.ts +++ b/src/app/operator-docs/utility/toPromise.ts @@ -1,4 +1,4 @@ export const toPromise = { - 'name': 'toPromise', - 'operatorType': 'utility' + "name": "toPromise", + "operatorType": "utility" }; diff --git a/src/app/operators/operators.component.scss b/src/app/operators/operators.component.scss index e69de29b..59a2c5d2 100644 --- a/src/app/operators/operators.component.scss +++ b/src/app/operators/operators.component.scss @@ -0,0 +1,9 @@ +:host { + flex: 1 1 auto; + overflow-y: auto; + display: flex; +} + +.operator-container { + width: 100%; +} diff --git a/src/styles.scss b/src/styles.scss index d66cf26b..2d60718e 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -17,16 +17,6 @@ html, body { height: 100%; } -md-sidenav-container { - flex: 1 1 auto; - width: 100%; - height: 100%; -} - -md-sidenav { - width: 200px; -} - md-sidenav a.active .mat-list-item-content { color: mat-color($accent); } From 363484d00da99458fa5d7c4668823a4ede9ed526 Mon Sep 17 00:00:00 2001 From: btroncone Date: Wed, 4 Oct 2017 08:07:04 -0400 Subject: [PATCH 03/33] update lint settings --- tslint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tslint.json b/tslint.json index b6e591b2..7b6d8c0b 100644 --- a/tslint.json +++ b/tslint.json @@ -81,7 +81,7 @@ ], "prefer-const": true, "quotemark": [ - true, + false, "single" ], "radix": true, From 242b28d8e504db45c33e817fe26ea0e4bc1cb16b Mon Sep 17 00:00:00 2001 From: btroncone Date: Wed, 4 Oct 2017 09:25:26 -0400 Subject: [PATCH 04/33] correctly type doc objects --- src/app/operator-docs/combination/combineAll.ts | 4 +++- src/app/operator-docs/combination/combineLatest.ts | 4 +++- src/app/operator-docs/combination/concat.ts | 4 +++- src/app/operator-docs/combination/concatAll.ts | 4 +++- src/app/operator-docs/combination/forkJoin.ts | 4 +++- src/app/operator-docs/combination/merge.ts | 4 +++- src/app/operator-docs/combination/mergeAll.ts | 4 +++- src/app/operator-docs/combination/pairwise.ts | 4 +++- src/app/operator-docs/combination/race.ts | 4 +++- src/app/operator-docs/combination/startWith.ts | 4 +++- src/app/operator-docs/combination/withLatestFrom.ts | 4 +++- src/app/operator-docs/combination/zip.ts | 4 +++- src/app/operator-docs/conditional/defaultIfEmpty.ts | 4 +++- src/app/operator-docs/conditional/every.ts | 4 +++- src/app/operator-docs/creation/create.ts | 4 +++- src/app/operator-docs/creation/empty.ts | 4 +++- src/app/operator-docs/creation/from.ts | 4 +++- src/app/operator-docs/creation/fromEvent.ts | 4 +++- src/app/operator-docs/creation/fromPromise.ts | 4 +++- src/app/operator-docs/creation/interval.ts | 4 +++- src/app/operator-docs/creation/of.ts | 4 +++- src/app/operator-docs/creation/range.ts | 4 +++- src/app/operator-docs/creation/throw.ts | 4 +++- src/app/operator-docs/creation/timer.ts | 4 +++- src/app/operator-docs/error-handling/catch.ts | 4 +++- src/app/operator-docs/error-handling/retry.ts | 4 +++- src/app/operator-docs/error-handling/retryWhen.ts | 4 +++- src/app/operator-docs/filtering/debounce.ts | 4 +++- src/app/operator-docs/filtering/debounceTime.ts | 4 +++- .../operator-docs/filtering/distinctUntilChanged.ts | 4 +++- src/app/operator-docs/filtering/filter.ts | 4 +++- src/app/operator-docs/filtering/first.ts | 4 +++- src/app/operator-docs/filtering/ignoreElements.ts | 4 +++- src/app/operator-docs/filtering/last.ts | 4 +++- src/app/operator-docs/filtering/sample.ts | 4 +++- src/app/operator-docs/filtering/single.ts | 4 +++- src/app/operator-docs/filtering/skip.ts | 4 +++- src/app/operator-docs/filtering/skipUntil.ts | 4 +++- src/app/operator-docs/filtering/skipWhile.ts | 4 +++- src/app/operator-docs/filtering/take.ts | 4 +++- src/app/operator-docs/filtering/takeUntil.ts | 4 +++- src/app/operator-docs/filtering/takeWhile.ts | 4 +++- src/app/operator-docs/filtering/throttle.ts | 4 +++- src/app/operator-docs/filtering/throttleTime.ts | 4 +++- src/app/operator-docs/index.ts | 4 +++- src/app/operator-docs/multicasting/multicast.ts | 4 +++- src/app/operator-docs/multicasting/publish.ts | 4 +++- src/app/operator-docs/multicasting/share.ts | 4 +++- src/app/operator-docs/operator.model.ts | 13 +++++++++++++ src/app/operator-docs/transformation/buffer.ts | 4 +++- src/app/operator-docs/transformation/bufferCount.ts | 4 +++- src/app/operator-docs/transformation/bufferTime.ts | 4 +++- .../operator-docs/transformation/bufferToggle.ts | 4 +++- src/app/operator-docs/transformation/bufferWhen.ts | 4 +++- src/app/operator-docs/transformation/concatMap.ts | 4 +++- src/app/operator-docs/transformation/expand.ts | 4 +++- src/app/operator-docs/transformation/groupBy.ts | 4 +++- src/app/operator-docs/transformation/map.ts | 4 +++- src/app/operator-docs/transformation/mapTo.ts | 4 +++- src/app/operator-docs/transformation/mergeMap.ts | 4 +++- src/app/operator-docs/transformation/partition.ts | 4 +++- src/app/operator-docs/transformation/pluck.ts | 4 +++- src/app/operator-docs/transformation/scan.ts | 4 +++- src/app/operator-docs/transformation/switchMap.ts | 4 +++- src/app/operator-docs/transformation/window.ts | 4 +++- src/app/operator-docs/transformation/windowCount.ts | 4 +++- .../operator-docs/transformation/windowToggle.ts | 4 +++- src/app/operator-docs/transformation/windowWhen.ts | 4 +++- src/app/operator-docs/utility/delay.ts | 4 +++- src/app/operator-docs/utility/delayWhen.ts | 4 +++- src/app/operator-docs/utility/dematerialize.ts | 4 +++- src/app/operator-docs/utility/do.ts | 4 +++- src/app/operator-docs/utility/let.ts | 4 +++- src/app/operator-docs/utility/toPromise.ts | 4 +++- src/app/operators/operators.component.ts | 2 +- 75 files changed, 233 insertions(+), 74 deletions(-) create mode 100644 src/app/operator-docs/operator.model.ts diff --git a/src/app/operator-docs/combination/combineAll.ts b/src/app/operator-docs/combination/combineAll.ts index c6d24219..5400a50f 100644 --- a/src/app/operator-docs/combination/combineAll.ts +++ b/src/app/operator-docs/combination/combineAll.ts @@ -1,4 +1,6 @@ -export const combineAll = { +import { OperatorDoc } from '../operator.model'; + +export const combineAll: OperatorDoc = { "name": "combineAll", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/combineLatest.ts b/src/app/operator-docs/combination/combineLatest.ts index 5469b035..2d10f16c 100644 --- a/src/app/operator-docs/combination/combineLatest.ts +++ b/src/app/operator-docs/combination/combineLatest.ts @@ -1,4 +1,6 @@ -export const combineLatest = { +import { OperatorDoc } from '../operator.model'; + +export const combineLatest: OperatorDoc = { "name": "combineLatest", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/concat.ts b/src/app/operator-docs/combination/concat.ts index d1c22ae2..fc7d6c54 100644 --- a/src/app/operator-docs/combination/concat.ts +++ b/src/app/operator-docs/combination/concat.ts @@ -1,4 +1,6 @@ -export const concat = { +import { OperatorDoc } from '../operator.model'; + +export const concat: OperatorDoc = { "name": "concat", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/concatAll.ts b/src/app/operator-docs/combination/concatAll.ts index cee012f5..08d4bf49 100644 --- a/src/app/operator-docs/combination/concatAll.ts +++ b/src/app/operator-docs/combination/concatAll.ts @@ -1,4 +1,6 @@ -export const concatAll = { +import { OperatorDoc } from '../operator.model'; + +export const concatAll: OperatorDoc = { "name": "concatAll", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/forkJoin.ts b/src/app/operator-docs/combination/forkJoin.ts index 9bb302ad..9a2c274c 100644 --- a/src/app/operator-docs/combination/forkJoin.ts +++ b/src/app/operator-docs/combination/forkJoin.ts @@ -1,4 +1,6 @@ -export const forkJoin = { +import { OperatorDoc } from '../operator.model'; + +export const forkJoin: OperatorDoc = { "name": "forkJoin", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/merge.ts b/src/app/operator-docs/combination/merge.ts index d3496d78..a7aa1e2d 100644 --- a/src/app/operator-docs/combination/merge.ts +++ b/src/app/operator-docs/combination/merge.ts @@ -1,4 +1,6 @@ -export const merge = { +import { OperatorDoc } from '../operator.model'; + +export const merge: OperatorDoc = { "name": "merge", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/mergeAll.ts b/src/app/operator-docs/combination/mergeAll.ts index 65e9a1a8..38475626 100644 --- a/src/app/operator-docs/combination/mergeAll.ts +++ b/src/app/operator-docs/combination/mergeAll.ts @@ -1,4 +1,6 @@ -export const mergeAll = { +import { OperatorDoc } from '../operator.model'; + +export const mergeAll: OperatorDoc = { "name": "mergeAll", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/pairwise.ts b/src/app/operator-docs/combination/pairwise.ts index b69f607a..63323115 100644 --- a/src/app/operator-docs/combination/pairwise.ts +++ b/src/app/operator-docs/combination/pairwise.ts @@ -1,4 +1,6 @@ -export const pairwise = { +import { OperatorDoc } from '../operator.model'; + +export const pairwise: OperatorDoc = { "name": "pairwise", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/race.ts b/src/app/operator-docs/combination/race.ts index 26fa7144..f57df5d0 100644 --- a/src/app/operator-docs/combination/race.ts +++ b/src/app/operator-docs/combination/race.ts @@ -1,4 +1,6 @@ -export const race = { +import { OperatorDoc } from '../operator.model'; + +export const race: OperatorDoc = { "name": "race", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/startWith.ts b/src/app/operator-docs/combination/startWith.ts index 0709be05..a5d4bb37 100644 --- a/src/app/operator-docs/combination/startWith.ts +++ b/src/app/operator-docs/combination/startWith.ts @@ -1,4 +1,6 @@ -export const startWith = { +import { OperatorDoc } from '../operator.model'; + +export const startWith: OperatorDoc = { "name": "startWith", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/withLatestFrom.ts b/src/app/operator-docs/combination/withLatestFrom.ts index 65a7fc7c..b2da4d6a 100644 --- a/src/app/operator-docs/combination/withLatestFrom.ts +++ b/src/app/operator-docs/combination/withLatestFrom.ts @@ -1,4 +1,6 @@ -export const withLatestFrom = { +import { OperatorDoc } from '../operator.model'; + +export const withLatestFrom: OperatorDoc = { "name": "withLatestFrom", "operatorType": "combination" }; diff --git a/src/app/operator-docs/combination/zip.ts b/src/app/operator-docs/combination/zip.ts index 676a5a5a..37a0527c 100644 --- a/src/app/operator-docs/combination/zip.ts +++ b/src/app/operator-docs/combination/zip.ts @@ -1,4 +1,6 @@ -export const zip = { +import { OperatorDoc } from '../operator.model'; + +export const zip: OperatorDoc = { "name": "zip", "operatorType": "combination" }; diff --git a/src/app/operator-docs/conditional/defaultIfEmpty.ts b/src/app/operator-docs/conditional/defaultIfEmpty.ts index 5f6ad3f7..15f386e8 100644 --- a/src/app/operator-docs/conditional/defaultIfEmpty.ts +++ b/src/app/operator-docs/conditional/defaultIfEmpty.ts @@ -1,4 +1,6 @@ -export const defaultIfEmpty = { +import { OperatorDoc } from '../operator.model'; + +export const defaultIfEmpty: OperatorDoc = { "name": "defaultIfEmpty", "operatorType": "conditional" }; diff --git a/src/app/operator-docs/conditional/every.ts b/src/app/operator-docs/conditional/every.ts index ec98c3ee..bd4ec8e5 100644 --- a/src/app/operator-docs/conditional/every.ts +++ b/src/app/operator-docs/conditional/every.ts @@ -1,4 +1,6 @@ -export const every = { +import { OperatorDoc } from '../operator.model'; + +export const every: OperatorDoc = { "name": "every", "operatorType": "conditional" }; diff --git a/src/app/operator-docs/creation/create.ts b/src/app/operator-docs/creation/create.ts index 71275b57..9934dce0 100644 --- a/src/app/operator-docs/creation/create.ts +++ b/src/app/operator-docs/creation/create.ts @@ -1,4 +1,6 @@ -export const create = { +import { OperatorDoc } from '../operator.model'; + +export const create: OperatorDoc = { "name": "create", "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/empty.ts b/src/app/operator-docs/creation/empty.ts index 623fc5bd..e7906b94 100644 --- a/src/app/operator-docs/creation/empty.ts +++ b/src/app/operator-docs/creation/empty.ts @@ -1,4 +1,6 @@ -export const empty = { +import { OperatorDoc } from '../operator.model'; + +export const empty: OperatorDoc = { "name": "empty", "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/from.ts b/src/app/operator-docs/creation/from.ts index f45fb0c6..66eef767 100644 --- a/src/app/operator-docs/creation/from.ts +++ b/src/app/operator-docs/creation/from.ts @@ -1,4 +1,6 @@ -export const from = { +import { OperatorDoc } from '../operator.model'; + +export const from: OperatorDoc = { "name": "from", "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/fromEvent.ts b/src/app/operator-docs/creation/fromEvent.ts index 7ae2a636..5d6df8ed 100644 --- a/src/app/operator-docs/creation/fromEvent.ts +++ b/src/app/operator-docs/creation/fromEvent.ts @@ -1,4 +1,6 @@ -export const fromEvent = { +import { OperatorDoc } from '../operator.model'; + +export const fromEvent: OperatorDoc = { "name": "fromEvent", "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/fromPromise.ts b/src/app/operator-docs/creation/fromPromise.ts index e45b00e8..e49bae32 100644 --- a/src/app/operator-docs/creation/fromPromise.ts +++ b/src/app/operator-docs/creation/fromPromise.ts @@ -1,4 +1,6 @@ -export const fromPromise = { +import { OperatorDoc } from '../operator.model'; + +export const fromPromise: OperatorDoc = { "name": "fromPromise", "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/interval.ts b/src/app/operator-docs/creation/interval.ts index 772cfeeb..b2ca45c5 100644 --- a/src/app/operator-docs/creation/interval.ts +++ b/src/app/operator-docs/creation/interval.ts @@ -1,4 +1,6 @@ -export const interval = { +import { OperatorDoc } from '../operator.model'; + +export const interval: OperatorDoc = { "name": "interval", "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/of.ts b/src/app/operator-docs/creation/of.ts index 1d4c9c7e..408d7833 100644 --- a/src/app/operator-docs/creation/of.ts +++ b/src/app/operator-docs/creation/of.ts @@ -1,4 +1,6 @@ -export const ofOperator = { +import { OperatorDoc } from '../operator.model'; + +export const ofOperator: OperatorDoc = { "name": "of", "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/range.ts b/src/app/operator-docs/creation/range.ts index 08c56b18..aa43a49a 100644 --- a/src/app/operator-docs/creation/range.ts +++ b/src/app/operator-docs/creation/range.ts @@ -1,4 +1,6 @@ -export const range = { +import { OperatorDoc } from '../operator.model'; + +export const range: OperatorDoc = { "name": "range", "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/throw.ts b/src/app/operator-docs/creation/throw.ts index 99aaf44d..94065a45 100644 --- a/src/app/operator-docs/creation/throw.ts +++ b/src/app/operator-docs/creation/throw.ts @@ -1,4 +1,6 @@ -export const throwOperator = { +import { OperatorDoc } from '../operator.model'; + +export const throwOperator: OperatorDoc = { "name": "throw", "operatorType": "creation" }; diff --git a/src/app/operator-docs/creation/timer.ts b/src/app/operator-docs/creation/timer.ts index 8d24f8df..47ce2b9c 100644 --- a/src/app/operator-docs/creation/timer.ts +++ b/src/app/operator-docs/creation/timer.ts @@ -1,4 +1,6 @@ -export const timer = { +import { OperatorDoc } from '../operator.model'; + +export const timer: OperatorDoc = { "name": "timer", "operatorType": "creation" }; diff --git a/src/app/operator-docs/error-handling/catch.ts b/src/app/operator-docs/error-handling/catch.ts index b8a2f573..2fad2f3b 100644 --- a/src/app/operator-docs/error-handling/catch.ts +++ b/src/app/operator-docs/error-handling/catch.ts @@ -1,4 +1,6 @@ -export const catchOperator = { +import { OperatorDoc } from '../operator.model'; + +export const catchOperator: OperatorDoc = { "name": "catch", "operatorType": "error handling" }; diff --git a/src/app/operator-docs/error-handling/retry.ts b/src/app/operator-docs/error-handling/retry.ts index 4add0fac..2fffeec2 100644 --- a/src/app/operator-docs/error-handling/retry.ts +++ b/src/app/operator-docs/error-handling/retry.ts @@ -1,4 +1,6 @@ -export const retry = { +import { OperatorDoc } from '../operator.model'; + +export const retry: OperatorDoc = { "name": "catch", "operatorType": "error handling" }; diff --git a/src/app/operator-docs/error-handling/retryWhen.ts b/src/app/operator-docs/error-handling/retryWhen.ts index 99abdd99..ba42f383 100644 --- a/src/app/operator-docs/error-handling/retryWhen.ts +++ b/src/app/operator-docs/error-handling/retryWhen.ts @@ -1,4 +1,6 @@ -export const retryWhen = { +import { OperatorDoc } from '../operator.model'; + +export const retryWhen: OperatorDoc = { "name": "retryWhen", "operatorType": "error handling" }; diff --git a/src/app/operator-docs/filtering/debounce.ts b/src/app/operator-docs/filtering/debounce.ts index d780c261..ecab96eb 100644 --- a/src/app/operator-docs/filtering/debounce.ts +++ b/src/app/operator-docs/filtering/debounce.ts @@ -1,4 +1,6 @@ -export const debounce = { +import { OperatorDoc } from '../operator.model'; + +export const debounce: OperatorDoc = { "name": "debounce", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/debounceTime.ts b/src/app/operator-docs/filtering/debounceTime.ts index 460b4773..2ed60719 100644 --- a/src/app/operator-docs/filtering/debounceTime.ts +++ b/src/app/operator-docs/filtering/debounceTime.ts @@ -1,4 +1,6 @@ -export const debounceTime = { +import { OperatorDoc } from '../operator.model'; + +export const debounceTime: OperatorDoc = { "name": "debounceTime", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/distinctUntilChanged.ts b/src/app/operator-docs/filtering/distinctUntilChanged.ts index 0e36c6f1..22169ade 100644 --- a/src/app/operator-docs/filtering/distinctUntilChanged.ts +++ b/src/app/operator-docs/filtering/distinctUntilChanged.ts @@ -1,4 +1,6 @@ -export const distinctUntilChanged = { +import { OperatorDoc } from '../operator.model'; + +export const distinctUntilChanged: OperatorDoc = { "name": "distinctUntilChanged", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/filter.ts b/src/app/operator-docs/filtering/filter.ts index 44bce512..50233711 100644 --- a/src/app/operator-docs/filtering/filter.ts +++ b/src/app/operator-docs/filtering/filter.ts @@ -1,4 +1,6 @@ -export const filter = { +import { OperatorDoc } from '../operator.model'; + +export const filter: OperatorDoc = { "name": "filter", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/first.ts b/src/app/operator-docs/filtering/first.ts index e8bf0a05..13121d5a 100644 --- a/src/app/operator-docs/filtering/first.ts +++ b/src/app/operator-docs/filtering/first.ts @@ -1,4 +1,6 @@ -export const first = { +import { OperatorDoc } from '../operator.model'; + +export const first: OperatorDoc = { "name": "first", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/ignoreElements.ts b/src/app/operator-docs/filtering/ignoreElements.ts index adeeec7d..4ddaf211 100644 --- a/src/app/operator-docs/filtering/ignoreElements.ts +++ b/src/app/operator-docs/filtering/ignoreElements.ts @@ -1,4 +1,6 @@ -export const ignoreElements = { +import { OperatorDoc } from '../operator.model'; + +export const ignoreElements: OperatorDoc = { "name": "ignoreElements", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/last.ts b/src/app/operator-docs/filtering/last.ts index ac7e7062..4468b013 100644 --- a/src/app/operator-docs/filtering/last.ts +++ b/src/app/operator-docs/filtering/last.ts @@ -1,4 +1,6 @@ -export const last = { +import { OperatorDoc } from '../operator.model'; + +export const last: OperatorDoc = { "name": "last", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/sample.ts b/src/app/operator-docs/filtering/sample.ts index 49e68059..4f4699f0 100644 --- a/src/app/operator-docs/filtering/sample.ts +++ b/src/app/operator-docs/filtering/sample.ts @@ -1,4 +1,6 @@ -export const sample = { +import { OperatorDoc } from '../operator.model'; + +export const sample: OperatorDoc = { "name": "sample", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/single.ts b/src/app/operator-docs/filtering/single.ts index f3a24470..8e672334 100644 --- a/src/app/operator-docs/filtering/single.ts +++ b/src/app/operator-docs/filtering/single.ts @@ -1,4 +1,6 @@ -export const single = { +import { OperatorDoc } from '../operator.model'; + +export const single: OperatorDoc = { "name": "single", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/skip.ts b/src/app/operator-docs/filtering/skip.ts index 9d2993a5..a0448fb8 100644 --- a/src/app/operator-docs/filtering/skip.ts +++ b/src/app/operator-docs/filtering/skip.ts @@ -1,4 +1,6 @@ -export const skip = { +import { OperatorDoc } from '../operator.model'; + +export const skip: OperatorDoc = { "name": "skip", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/skipUntil.ts b/src/app/operator-docs/filtering/skipUntil.ts index a1c5a689..68b50b1b 100644 --- a/src/app/operator-docs/filtering/skipUntil.ts +++ b/src/app/operator-docs/filtering/skipUntil.ts @@ -1,4 +1,6 @@ -export const skipUntil = { +import { OperatorDoc } from '../operator.model'; + +export const skipUntil: OperatorDoc = { "name": "skipUntil", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/skipWhile.ts b/src/app/operator-docs/filtering/skipWhile.ts index 28dfcbc8..8f8355df 100644 --- a/src/app/operator-docs/filtering/skipWhile.ts +++ b/src/app/operator-docs/filtering/skipWhile.ts @@ -1,4 +1,6 @@ -export const skipWhile = { +import { OperatorDoc } from '../operator.model'; + +export const skipWhile: OperatorDoc = { "name": "skipWhile", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/take.ts b/src/app/operator-docs/filtering/take.ts index 9f3e3e98..91cdbecb 100644 --- a/src/app/operator-docs/filtering/take.ts +++ b/src/app/operator-docs/filtering/take.ts @@ -1,4 +1,6 @@ -export const take = { +import { OperatorDoc } from '../operator.model'; + +export const take: OperatorDoc = { "name": "take", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/takeUntil.ts b/src/app/operator-docs/filtering/takeUntil.ts index bf8b0bfe..4166631f 100644 --- a/src/app/operator-docs/filtering/takeUntil.ts +++ b/src/app/operator-docs/filtering/takeUntil.ts @@ -1,4 +1,6 @@ -export const takeUntil = { +import { OperatorDoc } from '../operator.model'; + +export const takeUntil: OperatorDoc = { "name": "takeUntil", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/takeWhile.ts b/src/app/operator-docs/filtering/takeWhile.ts index ae083472..38886625 100644 --- a/src/app/operator-docs/filtering/takeWhile.ts +++ b/src/app/operator-docs/filtering/takeWhile.ts @@ -1,4 +1,6 @@ -export const takeWhile = { +import { OperatorDoc } from '../operator.model'; + +export const takeWhile: OperatorDoc = { "name": "takeWhile", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/throttle.ts b/src/app/operator-docs/filtering/throttle.ts index e2978095..dba6984e 100644 --- a/src/app/operator-docs/filtering/throttle.ts +++ b/src/app/operator-docs/filtering/throttle.ts @@ -1,4 +1,6 @@ -export const throttle = { +import { OperatorDoc } from '../operator.model'; + +export const throttle: OperatorDoc = { "name": "throttle", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/filtering/throttleTime.ts b/src/app/operator-docs/filtering/throttleTime.ts index 533516c8..ff73e395 100644 --- a/src/app/operator-docs/filtering/throttleTime.ts +++ b/src/app/operator-docs/filtering/throttleTime.ts @@ -1,4 +1,6 @@ -export const throttleTime = { +import { OperatorDoc } from '../operator.model'; + +export const throttleTime: OperatorDoc = { "name": "throttleTime", "operatorType": "filtering" }; diff --git a/src/app/operator-docs/index.ts b/src/app/operator-docs/index.ts index 898e8699..3456b42b 100644 --- a/src/app/operator-docs/index.ts +++ b/src/app/operator-docs/index.ts @@ -1,3 +1,5 @@ +import { OperatorDoc } from './operator.model'; + import { COMBINATION_OPERATORS } from './combination'; import { CONDITIONAL_OPERATORS } from './conditional'; import { CREATION_OPERATORS } from './creation'; @@ -7,7 +9,7 @@ import { MULTICASTING_OPERATORS } from './multicasting'; import { TRANSFORMATION_OPERATORS } from './transformation'; import { UTILITY_OPERATORS } from './utility'; -export const ALL_OPERATORS = [ +export const ALL_OPERATORS: OperatorDoc[] = [ ...COMBINATION_OPERATORS, ...CONDITIONAL_OPERATORS, ...CREATION_OPERATORS, diff --git a/src/app/operator-docs/multicasting/multicast.ts b/src/app/operator-docs/multicasting/multicast.ts index 1a858fce..2c72546a 100644 --- a/src/app/operator-docs/multicasting/multicast.ts +++ b/src/app/operator-docs/multicasting/multicast.ts @@ -1,4 +1,6 @@ -export const multicast = { +import { OperatorDoc } from '../operator.model'; + +export const multicast: OperatorDoc = { "name": "multicast", "operatorType": "multicasting" }; diff --git a/src/app/operator-docs/multicasting/publish.ts b/src/app/operator-docs/multicasting/publish.ts index f64450df..d800050d 100644 --- a/src/app/operator-docs/multicasting/publish.ts +++ b/src/app/operator-docs/multicasting/publish.ts @@ -1,4 +1,6 @@ -export const publish = { +import { OperatorDoc } from '../operator.model'; + +export const publish: OperatorDoc = { "name": "publish", "operatorType": "multicasting" }; diff --git a/src/app/operator-docs/multicasting/share.ts b/src/app/operator-docs/multicasting/share.ts index 7dce97e4..533edd4c 100644 --- a/src/app/operator-docs/multicasting/share.ts +++ b/src/app/operator-docs/multicasting/share.ts @@ -1,4 +1,6 @@ -export const share = { +import { OperatorDoc } from '../operator.model'; + +export const share: OperatorDoc = { "name": "share", "operatorType": "multicasting" }; diff --git a/src/app/operator-docs/operator.model.ts b/src/app/operator-docs/operator.model.ts new file mode 100644 index 00000000..d67161d2 --- /dev/null +++ b/src/app/operator-docs/operator.model.ts @@ -0,0 +1,13 @@ +export type OperatorType = 'combination' + | 'conditional' + | 'creation' + | 'error handling' + | 'filtering' + | 'multicasting' + | 'transformation' + | 'utility'; + +export interface OperatorDoc { + readonly name?: string; + readonly operatorType?: OperatorType; +} diff --git a/src/app/operator-docs/transformation/buffer.ts b/src/app/operator-docs/transformation/buffer.ts index 8d5ac8ae..e30f2369 100644 --- a/src/app/operator-docs/transformation/buffer.ts +++ b/src/app/operator-docs/transformation/buffer.ts @@ -1,4 +1,6 @@ -export const buffer = { +import { OperatorDoc } from '../operator.model'; + +export const buffer: OperatorDoc = { "name": "buffer", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/bufferCount.ts b/src/app/operator-docs/transformation/bufferCount.ts index fe259acc..e70a2cac 100644 --- a/src/app/operator-docs/transformation/bufferCount.ts +++ b/src/app/operator-docs/transformation/bufferCount.ts @@ -1,4 +1,6 @@ -export const bufferCount = { +import { OperatorDoc } from '../operator.model'; + +export const bufferCount: OperatorDoc = { "name": "bufferCount", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/bufferTime.ts b/src/app/operator-docs/transformation/bufferTime.ts index b03b320d..5ca7851a 100644 --- a/src/app/operator-docs/transformation/bufferTime.ts +++ b/src/app/operator-docs/transformation/bufferTime.ts @@ -1,4 +1,6 @@ -export const bufferTime = { +import { OperatorDoc } from '../operator.model'; + +export const bufferTime: OperatorDoc = { "name": "bufferTime", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/bufferToggle.ts b/src/app/operator-docs/transformation/bufferToggle.ts index be0e678c..43d41b76 100644 --- a/src/app/operator-docs/transformation/bufferToggle.ts +++ b/src/app/operator-docs/transformation/bufferToggle.ts @@ -1,4 +1,6 @@ -export const bufferToggle = { +import { OperatorDoc } from '../operator.model'; + +export const bufferToggle: OperatorDoc = { "name": "bufferToggle", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/bufferWhen.ts b/src/app/operator-docs/transformation/bufferWhen.ts index ba3ecc8e..f9a117a1 100644 --- a/src/app/operator-docs/transformation/bufferWhen.ts +++ b/src/app/operator-docs/transformation/bufferWhen.ts @@ -1,4 +1,6 @@ -export const bufferWhen = { +import { OperatorDoc } from '../operator.model'; + +export const bufferWhen: OperatorDoc = { "name": "bufferWhen", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/concatMap.ts b/src/app/operator-docs/transformation/concatMap.ts index 08141ea1..2d9723cc 100644 --- a/src/app/operator-docs/transformation/concatMap.ts +++ b/src/app/operator-docs/transformation/concatMap.ts @@ -1,4 +1,6 @@ -export const concatMap = { +import { OperatorDoc } from '../operator.model'; + +export const concatMap: OperatorDoc = { "name": "concatMap", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/expand.ts b/src/app/operator-docs/transformation/expand.ts index f29f8c22..e58ee91e 100644 --- a/src/app/operator-docs/transformation/expand.ts +++ b/src/app/operator-docs/transformation/expand.ts @@ -1,4 +1,6 @@ -export const expand = { +import { OperatorDoc } from '../operator.model'; + +export const expand: OperatorDoc = { "name": "expand", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/groupBy.ts b/src/app/operator-docs/transformation/groupBy.ts index 6bf5d82e..4530c16a 100644 --- a/src/app/operator-docs/transformation/groupBy.ts +++ b/src/app/operator-docs/transformation/groupBy.ts @@ -1,4 +1,6 @@ -export const groupBy = { +import { OperatorDoc } from '../operator.model'; + +export const groupBy: OperatorDoc = { "name": "groupBy", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/map.ts b/src/app/operator-docs/transformation/map.ts index e3aafc86..b017ebed 100644 --- a/src/app/operator-docs/transformation/map.ts +++ b/src/app/operator-docs/transformation/map.ts @@ -1,4 +1,6 @@ -export const map = { +import { OperatorDoc } from '../operator.model'; + +export const map: OperatorDoc = { "name": "map", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/mapTo.ts b/src/app/operator-docs/transformation/mapTo.ts index 682b1d3b..9f1a52a2 100644 --- a/src/app/operator-docs/transformation/mapTo.ts +++ b/src/app/operator-docs/transformation/mapTo.ts @@ -1,4 +1,6 @@ -export const mapTo = { +import { OperatorDoc } from '../operator.model'; + +export const mapTo: OperatorDoc = { "name": "mapTo", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/mergeMap.ts b/src/app/operator-docs/transformation/mergeMap.ts index 2a45dc2e..162f795f 100644 --- a/src/app/operator-docs/transformation/mergeMap.ts +++ b/src/app/operator-docs/transformation/mergeMap.ts @@ -1,4 +1,6 @@ -export const mergeMap = { +import { OperatorDoc } from '../operator.model'; + +export const mergeMap: OperatorDoc = { "name": "mergeMap", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/partition.ts b/src/app/operator-docs/transformation/partition.ts index 4bb10977..ca307707 100644 --- a/src/app/operator-docs/transformation/partition.ts +++ b/src/app/operator-docs/transformation/partition.ts @@ -1,4 +1,6 @@ -export const partition = { +import { OperatorDoc } from '../operator.model'; + +export const partition: OperatorDoc = { "name": "partition", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/pluck.ts b/src/app/operator-docs/transformation/pluck.ts index f0087237..4b84d225 100644 --- a/src/app/operator-docs/transformation/pluck.ts +++ b/src/app/operator-docs/transformation/pluck.ts @@ -1,4 +1,6 @@ -export const pluck = { +import { OperatorDoc } from '../operator.model'; + +export const pluck: OperatorDoc = { "name": "pluck", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/scan.ts b/src/app/operator-docs/transformation/scan.ts index 7664fedc..69682f49 100644 --- a/src/app/operator-docs/transformation/scan.ts +++ b/src/app/operator-docs/transformation/scan.ts @@ -1,4 +1,6 @@ -export const scan = { +import { OperatorDoc } from '../operator.model'; + +export const scan: OperatorDoc = { "name": "scan", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/switchMap.ts b/src/app/operator-docs/transformation/switchMap.ts index df02aeaa..54e1e262 100644 --- a/src/app/operator-docs/transformation/switchMap.ts +++ b/src/app/operator-docs/transformation/switchMap.ts @@ -1,4 +1,6 @@ -export const switchMap = { +import { OperatorDoc } from '../operator.model'; + +export const switchMap: OperatorDoc = { "name": "switchMap", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/window.ts b/src/app/operator-docs/transformation/window.ts index 8cecc9f6..8b435da7 100644 --- a/src/app/operator-docs/transformation/window.ts +++ b/src/app/operator-docs/transformation/window.ts @@ -1,4 +1,6 @@ -export const windowOperator = { +import { OperatorDoc } from '../operator.model'; + +export const windowOperator: OperatorDoc = { "name": "window", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/windowCount.ts b/src/app/operator-docs/transformation/windowCount.ts index 2d46a3a5..7e078f3d 100644 --- a/src/app/operator-docs/transformation/windowCount.ts +++ b/src/app/operator-docs/transformation/windowCount.ts @@ -1,4 +1,6 @@ -export const windowCount = { +import { OperatorDoc } from '../operator.model'; + +export const windowCount: OperatorDoc = { "name": "windowCount", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/windowToggle.ts b/src/app/operator-docs/transformation/windowToggle.ts index cfbdafad..cf1b6e65 100644 --- a/src/app/operator-docs/transformation/windowToggle.ts +++ b/src/app/operator-docs/transformation/windowToggle.ts @@ -1,4 +1,6 @@ -export const windowToggle = { +import { OperatorDoc } from '../operator.model'; + +export const windowToggle: OperatorDoc = { "name": "windowToggle", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/transformation/windowWhen.ts b/src/app/operator-docs/transformation/windowWhen.ts index 4130b6f4..abd60df4 100644 --- a/src/app/operator-docs/transformation/windowWhen.ts +++ b/src/app/operator-docs/transformation/windowWhen.ts @@ -1,4 +1,6 @@ -export const windowWhen = { +import { OperatorDoc } from '../operator.model'; + +export const windowWhen: OperatorDoc = { "name": "windowWhen", "operatorType": "transformation" }; diff --git a/src/app/operator-docs/utility/delay.ts b/src/app/operator-docs/utility/delay.ts index 82c78957..befbc845 100644 --- a/src/app/operator-docs/utility/delay.ts +++ b/src/app/operator-docs/utility/delay.ts @@ -1,4 +1,6 @@ -export const delay = { +import { OperatorDoc } from '../operator.model'; + +export const delay: OperatorDoc = { "name": "delay", "operatorType": "utility" }; diff --git a/src/app/operator-docs/utility/delayWhen.ts b/src/app/operator-docs/utility/delayWhen.ts index 1e588155..72aac15c 100644 --- a/src/app/operator-docs/utility/delayWhen.ts +++ b/src/app/operator-docs/utility/delayWhen.ts @@ -1,4 +1,6 @@ -export const delayWhen = { +import { OperatorDoc } from '../operator.model'; + +export const delayWhen: OperatorDoc = { "name": "delayWhen", "operatorType": "utility" }; diff --git a/src/app/operator-docs/utility/dematerialize.ts b/src/app/operator-docs/utility/dematerialize.ts index f6cd2b2a..59f038dc 100644 --- a/src/app/operator-docs/utility/dematerialize.ts +++ b/src/app/operator-docs/utility/dematerialize.ts @@ -1,4 +1,6 @@ -export const dematerialize = { +import { OperatorDoc } from '../operator.model'; + +export const dematerialize: OperatorDoc = { "name": "dematerialize", "operatorType": "utility" }; diff --git a/src/app/operator-docs/utility/do.ts b/src/app/operator-docs/utility/do.ts index 0176bdf4..5ba1e35e 100644 --- a/src/app/operator-docs/utility/do.ts +++ b/src/app/operator-docs/utility/do.ts @@ -1,4 +1,6 @@ -export const doOperator = { +import { OperatorDoc } from '../operator.model'; + +export const doOperator: OperatorDoc = { "name": "do", "operatorType": "utility" }; diff --git a/src/app/operator-docs/utility/let.ts b/src/app/operator-docs/utility/let.ts index 5b4580f4..c2d1a02e 100644 --- a/src/app/operator-docs/utility/let.ts +++ b/src/app/operator-docs/utility/let.ts @@ -1,4 +1,6 @@ -export const letOperator = { +import { OperatorDoc } from '../operator.model'; + +export const letOperator: OperatorDoc = { "name": "let", "operatorType": "utility" }; diff --git a/src/app/operator-docs/utility/toPromise.ts b/src/app/operator-docs/utility/toPromise.ts index 0eb0b8d0..86968992 100644 --- a/src/app/operator-docs/utility/toPromise.ts +++ b/src/app/operator-docs/utility/toPromise.ts @@ -1,4 +1,6 @@ -export const toPromise = { +import { OperatorDoc } from '../operator.model'; + +export const toPromise: OperatorDoc = { "name": "toPromise", "operatorType": "utility" }; diff --git a/src/app/operators/operators.component.ts b/src/app/operators/operators.component.ts index fb9f9b64..e9a0e370 100644 --- a/src/app/operators/operators.component.ts +++ b/src/app/operators/operators.component.ts @@ -7,7 +7,7 @@ import { ALL_OPERATORS } from '../operator-docs'; styleUrls: ['./operators.component.scss'] }) export class OperatorsComponent implements OnInit { - public operators = ALL_OPERATORS; + public operators = ALL_OPERATORS.reduce(; constructor() { } From 05fc9341812e2776cbbc90bd6c0456d35637550f Mon Sep 17 00:00:00 2001 From: btroncone Date: Wed, 4 Oct 2017 10:59:38 -0400 Subject: [PATCH 05/33] styling and grouping updates --- src/app/operators/operators.component.html | 7 ++++--- src/app/operators/operators.component.scss | 15 +++++++++++++++ src/app/operators/operators.component.ts | 16 +++++++++++++--- src/app/operators/specs/operators.spec.ts | 9 +++++++++ src/styles.scss | 2 ++ 5 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 src/app/operators/specs/operators.spec.ts diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index 1f8db831..79146b22 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -1,8 +1,9 @@ - - - {{ operator.name }} + +

{{ category }}

+ +

{{ operator.name }}

diff --git a/src/app/operators/operators.component.scss b/src/app/operators/operators.component.scss index 59a2c5d2..dcec8b45 100644 --- a/src/app/operators/operators.component.scss +++ b/src/app/operators/operators.component.scss @@ -1,3 +1,5 @@ +@import '../../styles'; + :host { flex: 1 1 auto; overflow-y: auto; @@ -7,3 +9,16 @@ .operator-container { width: 100%; } + +.category-subheader { + text-transform: uppercase; + font-weight: bold; + color: white !important; + background: $primary-color; +} + +.operator-list { + md-list-item:last-child { + margin-bottom: 15px; + } +} diff --git a/src/app/operators/operators.component.ts b/src/app/operators/operators.component.ts index e9a0e370..a371f0a5 100644 --- a/src/app/operators/operators.component.ts +++ b/src/app/operators/operators.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { ALL_OPERATORS } from '../operator-docs'; +import { OperatorDoc } from '../operator-docs/operator.model'; @Component({ selector: 'app-operators', @@ -7,11 +8,20 @@ import { ALL_OPERATORS } from '../operator-docs'; styleUrls: ['./operators.component.scss'] }) export class OperatorsComponent implements OnInit { - public operators = ALL_OPERATORS.reduce(; + public operators = groupOperatorsByType(ALL_OPERATORS); + public categories = Object.keys(this.operators); constructor() { } - ngOnInit() { - } + ngOnInit() {} } + +export function groupOperatorsByType(operators: OperatorDoc[]) { + return operators.reduce((acc, curr) => { + if (acc[curr.operatorType]) { + return { ...acc, [ curr.operatorType ] : [ ...acc[ curr.operatorType ], curr ] }; + } + return { ...acc, [ curr.operatorType ]: [ curr ] }; + }, {}); +} diff --git a/src/app/operators/specs/operators.spec.ts b/src/app/operators/specs/operators.spec.ts new file mode 100644 index 00000000..00ac2252 --- /dev/null +++ b/src/app/operators/specs/operators.spec.ts @@ -0,0 +1,9 @@ +import { ALL_OPERATORS } from '../../operator-docs'; +import { groupOperatorsByType } from '../operators.component'; + +describe('Operators', () => { + it('should group operators by operator type', () => { + const result = groupOperatorsByType(ALL_OPERATORS); + expect(Object.keys(result).length).toBe(8); + }); +}); diff --git a/src/styles.scss b/src/styles.scss index 2d60718e..550f6d64 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -4,6 +4,8 @@ // Define the theme. $primary: mat-palette($mat-indigo); $accent: mat-palette($mat-pink); +$accent-color: mat-color($accent); +$primary-color: mat-color($primary); $theme: mat-light-theme($primary, $accent); @include angular-material-theme($theme); From 62cb886db95a6a2f8b1d64222f17deb2bd5873e1 Mon Sep 17 00:00:00 2001 From: btroncone Date: Wed, 4 Oct 2017 11:30:07 -0400 Subject: [PATCH 06/33] basic operator outline --- .../operators/operator/operator.component.html | 6 ++++++ .../operators/operator/operator.component.scss | 3 +++ src/app/operators/operator/operator.component.ts | 8 ++++++++ src/app/operators/operators.component.html | 2 +- src/app/operators/operators.component.scss | 15 ++++++++++++--- src/app/operators/operators.module.ts | 9 ++++++--- 6 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 src/app/operators/operator/operator.component.html create mode 100644 src/app/operators/operator/operator.component.scss create mode 100644 src/app/operators/operator/operator.component.ts diff --git a/src/app/operators/operator/operator.component.html b/src/app/operators/operator/operator.component.html new file mode 100644 index 00000000..2576dd31 --- /dev/null +++ b/src/app/operators/operator/operator.component.html @@ -0,0 +1,6 @@ + + Operator Name + + + Signature + diff --git a/src/app/operators/operator/operator.component.scss b/src/app/operators/operator/operator.component.scss new file mode 100644 index 00000000..e1d4f45b --- /dev/null +++ b/src/app/operators/operator/operator.component.scss @@ -0,0 +1,3 @@ +.operator-name { + font-size:26px; +} diff --git a/src/app/operators/operator/operator.component.ts b/src/app/operators/operator/operator.component.ts new file mode 100644 index 00000000..4c3c43b2 --- /dev/null +++ b/src/app/operators/operator/operator.component.ts @@ -0,0 +1,8 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-operator', + templateUrl: './operator.component.html', + styleUrls: ['./operator.component.scss'] +}) +export class OperatorComponent {} diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index 79146b22..f44ba132 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -7,5 +7,5 @@

{{ operator.name }}

- Operator +
diff --git a/src/app/operators/operators.component.scss b/src/app/operators/operators.component.scss index dcec8b45..f2d3cff8 100644 --- a/src/app/operators/operators.component.scss +++ b/src/app/operators/operators.component.scss @@ -1,5 +1,7 @@ @import '../../styles'; +$subheader-color: #62757f; + :host { flex: 1 1 auto; overflow-y: auto; @@ -14,11 +16,18 @@ text-transform: uppercase; font-weight: bold; color: white !important; - background: $primary-color; + background: $subheader-color; } .operator-list { - md-list-item:last-child { - margin-bottom: 15px; + md-list-item { + border-bottom: 1px solid #f3f3f3; + &:last-child { + border-bottom: none; + } } } + +.operator-list-sidenav { + width: 300px; +} diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index fa7f8fad..1469c2dc 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -1,9 +1,10 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MdSidenavModule, MdIconModule, MdListModule } from '@angular/material'; +import { MdSidenavModule, MdIconModule, MdListModule, MdToolbarModule } from '@angular/material'; import { RouterModule } from '@angular/router'; import { OperatorsComponent } from './operators.component'; +import { OperatorComponent } from './operator/operator.component'; const OPERATOR_ROUTES = [ { @@ -14,14 +15,16 @@ const OPERATOR_ROUTES = [ @NgModule({ declarations: [ - OperatorsComponent + OperatorsComponent, + OperatorComponent ], imports: [ CommonModule, RouterModule.forChild(OPERATOR_ROUTES), MdSidenavModule, MdIconModule, - MdListModule + MdListModule, + MdToolbarModule ] }) export class OperatorsModule { } From 38f2c27fec8360f6daf917462e418f8754443b05 Mon Sep 17 00:00:00 2001 From: btroncone Date: Wed, 4 Oct 2017 13:37:58 -0400 Subject: [PATCH 07/33] operator styling updates --- ngsw-manifest.json | 2 +- src/app/operators/operator/operator.component.html | 4 ++-- src/app/operators/operator/operator.component.scss | 4 ++++ src/app/operators/operators.component.scss | 6 ++---- src/index.html | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ngsw-manifest.json b/ngsw-manifest.json index 09fb600a..9e19f9a4 100644 --- a/ngsw-manifest.json +++ b/ngsw-manifest.json @@ -2,7 +2,7 @@ "external": { "urls": [ {"url": "https://fonts.googleapis.com/icon?family=Material+Icons"}, - {"url": "https://fonts.googleapis.com/css?family=Roboto"}, + {"url": "https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700"}, {"url": "https://ajax.googleapis.com/ajax/libs/hammerjs/2.0.8/hammer.min.js"}, {"url": "https://cdnjs.cloudflare.com/ajax/libs/web-animations/2.2.5/web-animations.min.js"} ] diff --git a/src/app/operators/operator/operator.component.html b/src/app/operators/operator/operator.component.html index 2576dd31..50773dcb 100644 --- a/src/app/operators/operator/operator.component.html +++ b/src/app/operators/operator/operator.component.html @@ -1,6 +1,6 @@ - + Operator Name - + Signature diff --git a/src/app/operators/operator/operator.component.scss b/src/app/operators/operator/operator.component.scss index e1d4f45b..bdbe5633 100644 --- a/src/app/operators/operator/operator.component.scss +++ b/src/app/operators/operator/operator.component.scss @@ -1,3 +1,7 @@ .operator-name { font-size:26px; } + +md-toolbar { + background: #62757f !important; +} diff --git a/src/app/operators/operators.component.scss b/src/app/operators/operators.component.scss index f2d3cff8..ab9ad9aa 100644 --- a/src/app/operators/operators.component.scss +++ b/src/app/operators/operators.component.scss @@ -1,6 +1,4 @@ -@import '../../styles'; - -$subheader-color: #62757f; +$subheader-color: #3f51b5; :host { flex: 1 1 auto; @@ -14,7 +12,7 @@ $subheader-color: #62757f; .category-subheader { text-transform: uppercase; - font-weight: bold; + font-weight: 600; color: white !important; background: $subheader-color; } diff --git a/src/index.html b/src/index.html index 1249566f..a4c1060d 100644 --- a/src/index.html +++ b/src/index.html @@ -10,7 +10,7 @@ - + From ba8fbbf4083559e62cc333369f383b83e0a606db Mon Sep 17 00:00:00 2001 From: btroncone Date: Wed, 4 Oct 2017 16:56:35 -0400 Subject: [PATCH 08/33] sidenav navigation tweaks --- src/app/operators/operators.component.html | 12 +++++++----- src/app/operators/operators.component.scss | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index f44ba132..def804b6 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -1,11 +1,13 @@ - +

{{ category }}

- -

{{ operator.name }}

-
-
+ + {{ operator.name }} + +
diff --git a/src/app/operators/operators.component.scss b/src/app/operators/operators.component.scss index ab9ad9aa..86d7fa95 100644 --- a/src/app/operators/operators.component.scss +++ b/src/app/operators/operators.component.scss @@ -18,7 +18,7 @@ $subheader-color: #3f51b5; } .operator-list { - md-list-item { + a { border-bottom: 1px solid #f3f3f3; &:last-child { border-bottom: none; From e886d005c4799a4b794da820e23674df9beb2eea Mon Sep 17 00:00:00 2001 From: btroncone Date: Wed, 4 Oct 2017 17:04:33 -0400 Subject: [PATCH 09/33] operator toc start --- .../operators/operator-toc/operator-toc.component.html | 0 .../operators/operator-toc/operator-toc.component.scss | 0 src/app/operators/operator-toc/operator-toc.component.ts | 8 ++++++++ src/app/operators/operator/operator.component.html | 1 + src/app/operators/operators.component.html | 4 +++- src/app/operators/operators.module.ts | 4 +++- 6 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 src/app/operators/operator-toc/operator-toc.component.html create mode 100644 src/app/operators/operator-toc/operator-toc.component.scss create mode 100644 src/app/operators/operator-toc/operator-toc.component.ts diff --git a/src/app/operators/operator-toc/operator-toc.component.html b/src/app/operators/operator-toc/operator-toc.component.html new file mode 100644 index 00000000..e69de29b diff --git a/src/app/operators/operator-toc/operator-toc.component.scss b/src/app/operators/operator-toc/operator-toc.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/operators/operator-toc/operator-toc.component.ts b/src/app/operators/operator-toc/operator-toc.component.ts new file mode 100644 index 00000000..3d807d71 --- /dev/null +++ b/src/app/operators/operator-toc/operator-toc.component.ts @@ -0,0 +1,8 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-operator-toc', + templateUrl: './operator-toc.component.html', + styleUrls: ['./operator-toc.component.scss'] +}) +export class OperatorTocComponent {} diff --git a/src/app/operators/operator/operator.component.html b/src/app/operators/operator/operator.component.html index 50773dcb..92de9e3c 100644 --- a/src/app/operators/operator/operator.component.html +++ b/src/app/operators/operator/operator.component.html @@ -4,3 +4,4 @@ Signature + diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index def804b6..8a6f5152 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -9,5 +9,7 @@

{{ category }}

- + + + diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index 1469c2dc..f33ae000 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -5,6 +5,7 @@ import { RouterModule } from '@angular/router'; import { OperatorsComponent } from './operators.component'; import { OperatorComponent } from './operator/operator.component'; +import { OperatorTocComponent } from './operator-toc/operator-toc.component'; const OPERATOR_ROUTES = [ { @@ -16,7 +17,8 @@ const OPERATOR_ROUTES = [ @NgModule({ declarations: [ OperatorsComponent, - OperatorComponent + OperatorComponent, + OperatorTocComponent ], imports: [ CommonModule, From 0cbec6fd4046e642132627b206b3c3886098ad3e Mon Sep 17 00:00:00 2001 From: btroncone Date: Thu, 5 Oct 2017 16:24:58 -0400 Subject: [PATCH 10/33] operator styling progress --- .../operator-toc/operator-toc.component.html | 10 ++++++ .../operator-toc/operator-toc.component.scss | 32 +++++++++++++++++++ .../operator-header.component.html | 6 ++++ .../operator-header.component.scss | 7 ++++ .../operator-header.component.ts | 11 +++++++ .../operator/operator.component.html | 11 +++---- .../operator/operator.component.scss | 6 ---- .../operators/operator/operator.component.ts | 15 +++++++-- src/app/operators/operators.component.html | 9 +++--- src/app/operators/operators.component.ts | 5 +-- src/app/operators/operators.module.ts | 2 ++ 11 files changed, 92 insertions(+), 22 deletions(-) create mode 100644 src/app/operators/operator/operator-header/operator-header.component.html create mode 100644 src/app/operators/operator/operator-header/operator-header.component.scss create mode 100644 src/app/operators/operator/operator-header/operator-header.component.ts diff --git a/src/app/operators/operator-toc/operator-toc.component.html b/src/app/operators/operator-toc/operator-toc.component.html index e69de29b..92781433 100644 --- a/src/app/operators/operator-toc/operator-toc.component.html +++ b/src/app/operators/operator-toc/operator-toc.component.html @@ -0,0 +1,10 @@ +
+
combineAll
+
    +
  • Basics
  • +
  • Marble Diagram
  • +
  • Paramaters
  • +
  • Examples
  • +
  • Additional References
  • +
+
diff --git a/src/app/operators/operator-toc/operator-toc.component.scss b/src/app/operators/operator-toc/operator-toc.component.scss index e69de29b..56c2d741 100644 --- a/src/app/operators/operator-toc/operator-toc.component.scss +++ b/src/app/operators/operator-toc/operator-toc.component.scss @@ -0,0 +1,32 @@ +:host { + position: fixed; + top: 30%; + border-left: 3px solid gray; + right: 15%; +} + +.toc-container { + padding: 5px 0 0 12px; + + .toc-heading { + margin: 0; + padding: 0; + font-size: 16px; + font-weight: 700; + } + + ul { + list-style-type: none; + padding: 0; + > li { + line-height: 14px; + margin: 12px 0 0; + position: relative; + text-decoration: none; + display: block; + font-size: 14px; + color: black; + opacity: .8; + } + } +} diff --git a/src/app/operators/operator/operator-header/operator-header.component.html b/src/app/operators/operator/operator-header/operator-header.component.html new file mode 100644 index 00000000..679e67c0 --- /dev/null +++ b/src/app/operators/operator/operator-header/operator-header.component.html @@ -0,0 +1,6 @@ + + {{ operatorName }} + + + {{ operatorSignature }} + diff --git a/src/app/operators/operator/operator-header/operator-header.component.scss b/src/app/operators/operator/operator-header/operator-header.component.scss new file mode 100644 index 00000000..bdbe5633 --- /dev/null +++ b/src/app/operators/operator/operator-header/operator-header.component.scss @@ -0,0 +1,7 @@ +.operator-name { + font-size:26px; +} + +md-toolbar { + background: #62757f !important; +} diff --git a/src/app/operators/operator/operator-header/operator-header.component.ts b/src/app/operators/operator/operator-header/operator-header.component.ts new file mode 100644 index 00000000..cf98d00d --- /dev/null +++ b/src/app/operators/operator/operator-header/operator-header.component.ts @@ -0,0 +1,11 @@ +import { Component, Input } from '@angular/core'; + +@Component({ + selector: 'app-operator-header', + templateUrl: './operator-header.component.html', + styleUrls: ['./operator-header.component.scss'] +}) +export class OperatorHeaderComponent { + @Input() operatorName: string; + @Input() operatorSignature: string; +} diff --git a/src/app/operators/operator/operator.component.html b/src/app/operators/operator/operator.component.html index 92de9e3c..b56a5502 100644 --- a/src/app/operators/operator/operator.component.html +++ b/src/app/operators/operator/operator.component.html @@ -1,7 +1,4 @@ - - Operator Name - - - Signature - - + + diff --git a/src/app/operators/operator/operator.component.scss b/src/app/operators/operator/operator.component.scss index bdbe5633..8b137891 100644 --- a/src/app/operators/operator/operator.component.scss +++ b/src/app/operators/operator/operator.component.scss @@ -1,7 +1 @@ -.operator-name { - font-size:26px; -} -md-toolbar { - background: #62757f !important; -} diff --git a/src/app/operators/operator/operator.component.ts b/src/app/operators/operator/operator.component.ts index 4c3c43b2..8368c08e 100644 --- a/src/app/operators/operator/operator.component.ts +++ b/src/app/operators/operator/operator.component.ts @@ -1,8 +1,19 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, Input, OnInit } from '@angular/core'; +import { OperatorDoc } from '../../operator-docs/operator.model'; @Component({ selector: 'app-operator', templateUrl: './operator.component.html', styleUrls: ['./operator.component.scss'] }) -export class OperatorComponent {} +export class OperatorComponent { + @Input() operator: OperatorDoc; + + get operatorName() { + return this.operator.name; + } + + get signature() { + return 'Signature'; + } +} diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index 8a6f5152..067909e8 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -3,13 +3,12 @@

{{ category }}

+ *ngFor="let operator of groupedOperators[category]" + [routerLink]="[ '/operators', { name: operator.name } ]"> {{ operator.name }}
- - - + + diff --git a/src/app/operators/operators.component.ts b/src/app/operators/operators.component.ts index a371f0a5..cc5dfcb8 100644 --- a/src/app/operators/operators.component.ts +++ b/src/app/operators/operators.component.ts @@ -8,8 +8,9 @@ import { OperatorDoc } from '../operator-docs/operator.model'; styleUrls: ['./operators.component.scss'] }) export class OperatorsComponent implements OnInit { - public operators = groupOperatorsByType(ALL_OPERATORS); - public categories = Object.keys(this.operators); + public operators = ALL_OPERATORS; + public groupedOperators = groupOperatorsByType(ALL_OPERATORS); + public categories = Object.keys(this.groupedOperators); constructor() { } diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index f33ae000..b3189a16 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -5,6 +5,7 @@ import { RouterModule } from '@angular/router'; import { OperatorsComponent } from './operators.component'; import { OperatorComponent } from './operator/operator.component'; +import { OperatorHeaderComponent } from './operator/operator-header/operator-header.component'; import { OperatorTocComponent } from './operator-toc/operator-toc.component'; const OPERATOR_ROUTES = [ @@ -18,6 +19,7 @@ const OPERATOR_ROUTES = [ declarations: [ OperatorsComponent, OperatorComponent, + OperatorHeaderComponent, OperatorTocComponent ], imports: [ From 0f25ced3e57481765e9fd11f23c85f4207362bba Mon Sep 17 00:00:00 2001 From: btroncone Date: Fri, 6 Oct 2017 08:19:33 -0400 Subject: [PATCH 11/33] styling updates --- src/app/operator-docs/combination/combineAll.ts | 4 +++- src/app/operator-docs/operator.model.ts | 10 ++++++++++ .../operator-toc/operator-toc.component.html | 11 ++++++----- .../operator-toc/operator-toc.component.scss | 2 +- .../operator-header/operator-header.component.scss | 1 + src/app/operators/operator/operator.component.html | 4 ++++ src/app/operators/operator/operator.component.scss | 4 ++++ src/app/operators/operator/operator.component.ts | 6 +++++- src/app/operators/operators.component.html | 1 + src/app/operators/operators.component.scss | 2 +- 10 files changed, 36 insertions(+), 9 deletions(-) diff --git a/src/app/operator-docs/combination/combineAll.ts b/src/app/operator-docs/combination/combineAll.ts index 5400a50f..b954b74c 100644 --- a/src/app/operator-docs/combination/combineAll.ts +++ b/src/app/operator-docs/combination/combineAll.ts @@ -2,5 +2,7 @@ import { OperatorDoc } from '../operator.model'; export const combineAll: OperatorDoc = { "name": "combineAll", - "operatorType": "combination" + "operatorType": "combination", + "signature": "public combineAll(project: function): Observable", + "shortDescription": "Flattens an Observable-of-Observables by applying combineLatest when the Observable-of-Observables completes." }; diff --git a/src/app/operator-docs/operator.model.ts b/src/app/operator-docs/operator.model.ts index d67161d2..dc8ed386 100644 --- a/src/app/operator-docs/operator.model.ts +++ b/src/app/operator-docs/operator.model.ts @@ -7,7 +7,17 @@ export type OperatorType = 'combination' | 'transformation' | 'utility'; +export interface OperatorReference { + url: string; + description: string; + author?: string; +} + export interface OperatorDoc { readonly name?: string; readonly operatorType?: OperatorType; + readonly signature?: string; + readonly shortDescription?: string; + readonly longDescription?: string; + readonly additionalReferences?: OperatorReference[]; } diff --git a/src/app/operators/operator-toc/operator-toc.component.html b/src/app/operators/operator-toc/operator-toc.component.html index 92781433..a9a2b71e 100644 --- a/src/app/operators/operator-toc/operator-toc.component.html +++ b/src/app/operators/operator-toc/operator-toc.component.html @@ -1,10 +1,11 @@
combineAll
    -
  • Basics
  • -
  • Marble Diagram
  • -
  • Paramaters
  • -
  • Examples
  • -
  • Additional References
  • +
  • Basics
  • +
  • Marble Diagram
  • +
  • Paramaters
  • +
  • Examples
  • +
  • Related
  • +
  • Additional References
diff --git a/src/app/operators/operator-toc/operator-toc.component.scss b/src/app/operators/operator-toc/operator-toc.component.scss index 56c2d741..9763a413 100644 --- a/src/app/operators/operator-toc/operator-toc.component.scss +++ b/src/app/operators/operator-toc/operator-toc.component.scss @@ -2,7 +2,7 @@ position: fixed; top: 30%; border-left: 3px solid gray; - right: 15%; + right: 10%; } .toc-container { diff --git a/src/app/operators/operator/operator-header/operator-header.component.scss b/src/app/operators/operator/operator-header/operator-header.component.scss index bdbe5633..294ecff3 100644 --- a/src/app/operators/operator/operator-header/operator-header.component.scss +++ b/src/app/operators/operator/operator-header/operator-header.component.scss @@ -4,4 +4,5 @@ md-toolbar { background: #62757f !important; + font-weight: normal; } diff --git a/src/app/operators/operator/operator.component.html b/src/app/operators/operator/operator.component.html index b56a5502..ec821017 100644 --- a/src/app/operators/operator/operator.component.html +++ b/src/app/operators/operator/operator.component.html @@ -2,3 +2,7 @@ [operatorName]="operatorName" [operatorSignature]="signature"> +
+ + +
diff --git a/src/app/operators/operator/operator.component.scss b/src/app/operators/operator/operator.component.scss index 8b137891..baa1d189 100644 --- a/src/app/operators/operator/operator.component.scss +++ b/src/app/operators/operator/operator.component.scss @@ -1 +1,5 @@ +.main-operator-container { + width: 70%; + padding: 5px; +} diff --git a/src/app/operators/operator/operator.component.ts b/src/app/operators/operator/operator.component.ts index 8368c08e..b3e2ca0c 100644 --- a/src/app/operators/operator/operator.component.ts +++ b/src/app/operators/operator/operator.component.ts @@ -14,6 +14,10 @@ export class OperatorComponent { } get signature() { - return 'Signature'; + return this.operator.signature; + } + + get shortDescription() { + return this.operator.shortDescription; } } diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index 067909e8..a23584ec 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -9,6 +9,7 @@

{{ category }}

+ diff --git a/src/app/operators/operators.component.scss b/src/app/operators/operators.component.scss index 86d7fa95..5c080731 100644 --- a/src/app/operators/operators.component.scss +++ b/src/app/operators/operators.component.scss @@ -14,7 +14,7 @@ $subheader-color: #3f51b5; text-transform: uppercase; font-weight: 600; color: white !important; - background: $subheader-color; + background: #333; } .operator-list { From 90577f1b9f61fee3ec93f34eb27d8f59379f40de Mon Sep 17 00:00:00 2001 From: btroncone Date: Fri, 6 Oct 2017 16:33:07 -0400 Subject: [PATCH 12/33] updated to material beta.12 --- package.json | 4 +- src/app/app.component.html | 24 +-- src/app/app.component.scss | 4 +- src/app/app.module.ts | 12 +- .../operator-toc/operator-toc.component.ts | 138 +++++++++++++++++- .../operator-header.component.html | 8 +- .../operator-header.component.scss | 2 +- .../operator/operator.component.scss | 1 + .../operators/operator/operator.component.ts | 2 +- src/app/operators/operators.component.html | 25 ++-- src/app/operators/operators.module.ts | 10 +- src/styles.scss | 2 +- 12 files changed, 186 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index 48a73fa8..fac2b305 100644 --- a/package.json +++ b/package.json @@ -14,13 +14,13 @@ "private": true, "dependencies": { "@angular/animations": "^4.4.4", - "@angular/cdk": "^2.0.0-beta.11", + "@angular/cdk": "^2.0.0-beta.12", "@angular/common": "^4.2.4", "@angular/compiler": "^4.2.4", "@angular/core": "^4.2.4", "@angular/forms": "^4.2.4", "@angular/http": "^4.2.4", - "@angular/material": "^2.0.0-beta.11", + "@angular/material": "^2.0.0-beta.12", "@angular/platform-browser": "^4.2.4", "@angular/platform-browser-dynamic": "^4.2.4", "@angular/router": "^4.2.4", diff --git a/src/app/app.component.html b/src/app/app.component.html index f46d01a0..46508ba0 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,24 +1,24 @@
- - RxJS Docs - - - - - + + + + {{menu.title}} - - + +
-
+
diff --git a/src/app/app.component.scss b/src/app/app.component.scss index 8c09080f..146869fa 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -8,13 +8,13 @@ flex-direction: column; } -md-sidenav-container { +mat-sidenav-container { flex: 1 1 auto; width: 100%; height: 100%; } -md-sidenav { +mat-sidenav { width: 200px; } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 0023df2b..7b790784 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,7 +1,7 @@ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { MdToolbarModule, MdSidenavModule, MdIconModule, MdButtonModule, MdListModule } from '@angular/material'; +import { MatToolbarModule, MatSidenavModule, MatIconModule, MatButtonModule, MatListModule } from '@angular/material'; import { RouterModule, PreloadAllModules } from '@angular/router'; import { RXJS_DOC_ROUTES } from './app.routing'; @@ -22,11 +22,11 @@ import { RxjsComponent } from './rxjs/rxjs.component'; BrowserModule, BrowserAnimationsModule, RouterModule.forRoot(RXJS_DOC_ROUTES, { preloadingStrategy: PreloadAllModules }), - MdToolbarModule, - MdSidenavModule, - MdIconModule, - MdButtonModule, - MdListModule + MatToolbarModule, + MatSidenavModule, + MatIconModule, + MatButtonModule, + MatListModule ], providers: [], bootstrap: [AppComponent] diff --git a/src/app/operators/operator-toc/operator-toc.component.ts b/src/app/operators/operator-toc/operator-toc.component.ts index 3d807d71..f958b6c3 100644 --- a/src/app/operators/operator-toc/operator-toc.component.ts +++ b/src/app/operators/operator-toc/operator-toc.component.ts @@ -1,8 +1,142 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, OnDestroy, Input, Inject, ElementRef } from '@angular/core'; +import { DOCUMENT } from '@angular/platform-browser'; +import { Router, ActivatedRoute, NavigationEnd } from '@angular/router'; +import { Observable } from 'rxjs/Observable'; +import { Subscription } from 'rxjs/Subscription'; +import 'rxjs/add/observable/fromEvent'; +import 'rxjs/add/operator/debounceTime'; + +interface Link { + /* id of the section*/ + id: string; + + /* header type h3/h4 */ + type: string; + + /* If the anchor is in view of the page */ + active: boolean; + + /* name of the anchor */ + name: string; + + /* top offset px of the anchor */ + top: number; +} @Component({ selector: 'app-operator-toc', templateUrl: './operator-toc.component.html', styleUrls: ['./operator-toc.component.scss'] }) -export class OperatorTocComponent {} +export class OperatorTocComponent implements OnInit, OnDestroy { + @Input() links: Link[] = []; + @Input() container: string; + @Input() headerSelectors = '.operator-header,.operator-subheader'; + + _rootUrl: string; + private _scrollContainer: any; + private _scrollSubscription: Subscription; + private _routeSubscription: Subscription; + private _fragmentSubscription: Subscription; + private _urlFragment = ''; + + constructor(private _router: Router, + private _route: ActivatedRoute, + private _element: ElementRef, + @Inject(DOCUMENT) private _document: Document) { + + this._routeSubscription = this._router.events.subscribe((event) => { + if (event instanceof NavigationEnd) { + const rootUrl = _router.url.split('#')[0]; + if (rootUrl !== this._rootUrl) { + this.links = this.createLinks(); + this._rootUrl = rootUrl; + } + } + }); + + this._fragmentSubscription = this._route.fragment.subscribe(fragment => { + this._urlFragment = fragment; + + const target = document.getElementById(this._urlFragment); + if (target) { + target.scrollIntoView(); + } + }); + } + + updateScrollPosition(): void { + this.links = this.createLinks(); + + const target = document.getElementById(this._urlFragment); + if (target) { + target.scrollIntoView(); + } + } + + /** Gets the scroll offset of the scroll container */ + private getScrollOffset(): number { + const {top} = this._element.nativeElement.getBoundingClientRect(); + if (typeof this._scrollContainer.scrollTop !== 'undefined') { + return this._scrollContainer.scrollTop + top; + } else if (typeof this._scrollContainer.pageYOffset !== 'undefined') { + return this._scrollContainer.pageYOffset + top; + } + } + + private createLinks(): Link[] { + const links = []; + const headers = + Array.from(this._document.querySelectorAll(this.headerSelectors)) as HTMLElement[]; + + if (headers.length) { + for (const header of headers) { + // remove the 'link' icon name from the inner text + const name = header.innerText.trim().replace(/^link/, ''); + const {top} = header.getBoundingClientRect(); + links.push({ + name, + type: header.tagName.toLowerCase(), + top: top, + id: header.id, + active: false + }); + } + } + + return links; + } + + private onScroll(): void { + for (let i = 0; i < this.links.length; i++) { + this.links[i].active = this.isLinkActive(this.links[i], this.links[i + 1]); + } + } + + private isLinkActive(currentLink: any, nextLink: any): boolean { + // A link is considered active if the page is scrolled passed the anchor without also + // being scrolled passed the next link + const scrollOffset = this.getScrollOffset(); + return scrollOffset >= currentLink.top && !(nextLink && nextLink.top < scrollOffset); + } + + ngOnInit(): void { + // On init, the sidenav content element doesn't yet exist, so it's not possible + // to subscribe to its scroll event until next tick (when it does exist). + Promise.resolve().then(() => { + this._scrollContainer = this.container ? + this._document.querySelectorAll(this.container)[0] : window; + + this._scrollSubscription = Observable + .fromEvent(this._scrollContainer, 'scroll') + .debounceTime(10) + .subscribe(() => this.onScroll()); + }); + } + + ngOnDestroy(): void { + this._routeSubscription.unsubscribe(); + this._scrollSubscription.unsubscribe(); + this._fragmentSubscription.unsubscribe(); + } +} diff --git a/src/app/operators/operator/operator-header/operator-header.component.html b/src/app/operators/operator/operator-header/operator-header.component.html index 679e67c0..4cc61472 100644 --- a/src/app/operators/operator/operator-header/operator-header.component.html +++ b/src/app/operators/operator/operator-header/operator-header.component.html @@ -1,6 +1,6 @@ - + {{ operatorName }} - - + + {{ operatorSignature }} - + diff --git a/src/app/operators/operator/operator-header/operator-header.component.scss b/src/app/operators/operator/operator-header/operator-header.component.scss index 294ecff3..253fcd3c 100644 --- a/src/app/operators/operator/operator-header/operator-header.component.scss +++ b/src/app/operators/operator/operator-header/operator-header.component.scss @@ -2,7 +2,7 @@ font-size:26px; } -md-toolbar { +mat-toolbar { background: #62757f !important; font-weight: normal; } diff --git a/src/app/operators/operator/operator.component.scss b/src/app/operators/operator/operator.component.scss index baa1d189..e442a9c0 100644 --- a/src/app/operators/operator/operator.component.scss +++ b/src/app/operators/operator/operator.component.scss @@ -2,4 +2,5 @@ .main-operator-container { width: 70%; padding: 5px; + height: 1000px; } diff --git a/src/app/operators/operator/operator.component.ts b/src/app/operators/operator/operator.component.ts index b3e2ca0c..75cfd974 100644 --- a/src/app/operators/operator/operator.component.ts +++ b/src/app/operators/operator/operator.component.ts @@ -14,7 +14,7 @@ export class OperatorComponent { } get signature() { - return this.operator.signature; + return this.operator.signature || 'Signature Placeholder'; } get shortDescription() { diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index a23584ec..9eeffb3d 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -1,15 +1,20 @@ - - - -

{{ category }}

- + + +

{{ category }}

+
{{ operator.name }} -
-
+ + - - -
+ + + diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index b3189a16..add25a0e 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MdSidenavModule, MdIconModule, MdListModule, MdToolbarModule } from '@angular/material'; +import { MatSidenavModule, MatIconModule, MatListModule, MatToolbarModule } from '@angular/material'; import { RouterModule } from '@angular/router'; import { OperatorsComponent } from './operators.component'; @@ -25,10 +25,10 @@ const OPERATOR_ROUTES = [ imports: [ CommonModule, RouterModule.forChild(OPERATOR_ROUTES), - MdSidenavModule, - MdIconModule, - MdListModule, - MdToolbarModule + MatSidenavModule, + MatIconModule, + MatListModule, + MatToolbarModule ] }) export class OperatorsModule { } diff --git a/src/styles.scss b/src/styles.scss index 550f6d64..959e5777 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -19,6 +19,6 @@ html, body { height: 100%; } -md-sidenav a.active .mat-list-item-content { +mat-sidenav a.active .mat-list-item-content { color: mat-color($accent); } From a6985eb434867b5f28ccb88605918b57b72ea5dc Mon Sep 17 00:00:00 2001 From: btroncone Date: Sun, 8 Oct 2017 11:25:08 -0400 Subject: [PATCH 13/33] operator navigation update --- .../operators/operator-scroll.directive.ts | 97 ++++++++++++ .../operator-toc/operator-toc.component.html | 11 -- .../operator-toc/operator-toc.component.scss | 32 ---- .../operator-toc/operator-toc.component.ts | 142 ------------------ .../operator-header.component.scss | 2 +- .../operator/operator.component.html | 4 +- src/app/operators/operators.component.html | 16 +- src/app/operators/operators.component.scss | 11 +- src/app/operators/operators.component.ts | 40 ++++- src/app/operators/operators.module.ts | 5 +- src/styles.scss | 2 - 11 files changed, 159 insertions(+), 203 deletions(-) create mode 100644 src/app/operators/operator-scroll.directive.ts delete mode 100644 src/app/operators/operator-toc/operator-toc.component.html delete mode 100644 src/app/operators/operator-toc/operator-toc.component.scss delete mode 100644 src/app/operators/operator-toc/operator-toc.component.ts diff --git a/src/app/operators/operator-scroll.directive.ts b/src/app/operators/operator-scroll.directive.ts new file mode 100644 index 00000000..bcb8a796 --- /dev/null +++ b/src/app/operators/operator-scroll.directive.ts @@ -0,0 +1,97 @@ +import { Directive, OnInit, OnDestroy, Output, EventEmitter, Inject } from '@angular/core'; +import { DOCUMENT } from '@angular/platform-browser'; +import { fromEvent } from 'rxjs/observable/fromEvent'; +import { Subscription } from 'rxjs/Subscription'; +import 'rxjs/add/operator/distinctUntilChanged'; +import 'rxjs/add/operator/map'; + +/* + * Modified version of Material Design Docs ToC + */ +interface OperatorHeader { + id: string; + active: boolean; + name: string; + top: number; +} + +@Directive({ + selector: '[appOperatorScroll]' +}) +export class OperatorScrollDirective implements OnInit, OnDestroy { + @Output() activeOperator = new EventEmitter(); + + private _headers: OperatorHeader[] = []; + private _scrollSubscription: Subscription; + private _scrollContainer: any; + private readonly scrollContainerSelector = '.mat-drawer-content'; + private readonly headerSelector = '.operator-header'; + + constructor( + @Inject(DOCUMENT) private _document: Document + ) {} + + /** Gets the scroll offset of the scroll container */ + private getScrollOffset(): number { + const {top} = this._scrollContainer.getBoundingClientRect(); + if (typeof this._scrollContainer.scrollTop !== 'undefined') { + return this._scrollContainer.scrollTop + top; + } else if (typeof this._scrollContainer.pageYOffset !== 'undefined') { + return this._scrollContainer.pageYOffset + top; + } + } + + private createHeaderLinks(): OperatorHeader[] { + const links: OperatorHeader[] = []; + const headers = + Array.from(this._document.querySelectorAll(this.headerSelector)) as HTMLElement[]; + + if (headers.length) { + for (const header of headers) { + const name = header.id; + const { top } = header.getBoundingClientRect(); + links.push({ + name, + top: top, + id: name, + active: false + }); + } + } + + return links; + } + + private determineActiveOperator(): string { + // Use find to break out as soon as we find active header + const { name } = this._headers + .find((h, i) => this.isHeaderActive(this._headers[i], this._headers[i + 1])); + + return name; + } + + private isHeaderActive(currentLink: any, nextLink: any): boolean { + // switch slightly early to accomodate scrollIntoView from sidemenu + const scrollOffset = this.getScrollOffset() + 5; + return scrollOffset >= currentLink.top && !(nextLink && nextLink.top < scrollOffset); + } + + ngOnInit(): void { + // On init, the sidenav content element doesn't yet exist, so it's not possible + // to subscribe to its scroll event until next tick (when it does exist). + Promise.resolve().then(() => { + this._headers = this.createHeaderLinks(); + this._scrollContainer = this.scrollContainerSelector ? + document.querySelectorAll(this.scrollContainerSelector)[0] : window; + + this._scrollSubscription = fromEvent(this._scrollContainer, 'scroll') + .map(_ => this.determineActiveOperator()) + .distinctUntilChanged() + .subscribe((name: string) => this.activeOperator.emit(name)); + }); + } + + ngOnDestroy(): void { + this._scrollSubscription.unsubscribe(); + } +} diff --git a/src/app/operators/operator-toc/operator-toc.component.html b/src/app/operators/operator-toc/operator-toc.component.html deleted file mode 100644 index a9a2b71e..00000000 --- a/src/app/operators/operator-toc/operator-toc.component.html +++ /dev/null @@ -1,11 +0,0 @@ -
-
combineAll
-
    -
  • Basics
  • -
  • Marble Diagram
  • -
  • Paramaters
  • -
  • Examples
  • -
  • Related
  • -
  • Additional References
  • -
-
diff --git a/src/app/operators/operator-toc/operator-toc.component.scss b/src/app/operators/operator-toc/operator-toc.component.scss deleted file mode 100644 index 9763a413..00000000 --- a/src/app/operators/operator-toc/operator-toc.component.scss +++ /dev/null @@ -1,32 +0,0 @@ -:host { - position: fixed; - top: 30%; - border-left: 3px solid gray; - right: 10%; -} - -.toc-container { - padding: 5px 0 0 12px; - - .toc-heading { - margin: 0; - padding: 0; - font-size: 16px; - font-weight: 700; - } - - ul { - list-style-type: none; - padding: 0; - > li { - line-height: 14px; - margin: 12px 0 0; - position: relative; - text-decoration: none; - display: block; - font-size: 14px; - color: black; - opacity: .8; - } - } -} diff --git a/src/app/operators/operator-toc/operator-toc.component.ts b/src/app/operators/operator-toc/operator-toc.component.ts deleted file mode 100644 index f958b6c3..00000000 --- a/src/app/operators/operator-toc/operator-toc.component.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { Component, OnInit, OnDestroy, Input, Inject, ElementRef } from '@angular/core'; -import { DOCUMENT } from '@angular/platform-browser'; -import { Router, ActivatedRoute, NavigationEnd } from '@angular/router'; -import { Observable } from 'rxjs/Observable'; -import { Subscription } from 'rxjs/Subscription'; -import 'rxjs/add/observable/fromEvent'; -import 'rxjs/add/operator/debounceTime'; - -interface Link { - /* id of the section*/ - id: string; - - /* header type h3/h4 */ - type: string; - - /* If the anchor is in view of the page */ - active: boolean; - - /* name of the anchor */ - name: string; - - /* top offset px of the anchor */ - top: number; -} - -@Component({ - selector: 'app-operator-toc', - templateUrl: './operator-toc.component.html', - styleUrls: ['./operator-toc.component.scss'] -}) -export class OperatorTocComponent implements OnInit, OnDestroy { - @Input() links: Link[] = []; - @Input() container: string; - @Input() headerSelectors = '.operator-header,.operator-subheader'; - - _rootUrl: string; - private _scrollContainer: any; - private _scrollSubscription: Subscription; - private _routeSubscription: Subscription; - private _fragmentSubscription: Subscription; - private _urlFragment = ''; - - constructor(private _router: Router, - private _route: ActivatedRoute, - private _element: ElementRef, - @Inject(DOCUMENT) private _document: Document) { - - this._routeSubscription = this._router.events.subscribe((event) => { - if (event instanceof NavigationEnd) { - const rootUrl = _router.url.split('#')[0]; - if (rootUrl !== this._rootUrl) { - this.links = this.createLinks(); - this._rootUrl = rootUrl; - } - } - }); - - this._fragmentSubscription = this._route.fragment.subscribe(fragment => { - this._urlFragment = fragment; - - const target = document.getElementById(this._urlFragment); - if (target) { - target.scrollIntoView(); - } - }); - } - - updateScrollPosition(): void { - this.links = this.createLinks(); - - const target = document.getElementById(this._urlFragment); - if (target) { - target.scrollIntoView(); - } - } - - /** Gets the scroll offset of the scroll container */ - private getScrollOffset(): number { - const {top} = this._element.nativeElement.getBoundingClientRect(); - if (typeof this._scrollContainer.scrollTop !== 'undefined') { - return this._scrollContainer.scrollTop + top; - } else if (typeof this._scrollContainer.pageYOffset !== 'undefined') { - return this._scrollContainer.pageYOffset + top; - } - } - - private createLinks(): Link[] { - const links = []; - const headers = - Array.from(this._document.querySelectorAll(this.headerSelectors)) as HTMLElement[]; - - if (headers.length) { - for (const header of headers) { - // remove the 'link' icon name from the inner text - const name = header.innerText.trim().replace(/^link/, ''); - const {top} = header.getBoundingClientRect(); - links.push({ - name, - type: header.tagName.toLowerCase(), - top: top, - id: header.id, - active: false - }); - } - } - - return links; - } - - private onScroll(): void { - for (let i = 0; i < this.links.length; i++) { - this.links[i].active = this.isLinkActive(this.links[i], this.links[i + 1]); - } - } - - private isLinkActive(currentLink: any, nextLink: any): boolean { - // A link is considered active if the page is scrolled passed the anchor without also - // being scrolled passed the next link - const scrollOffset = this.getScrollOffset(); - return scrollOffset >= currentLink.top && !(nextLink && nextLink.top < scrollOffset); - } - - ngOnInit(): void { - // On init, the sidenav content element doesn't yet exist, so it's not possible - // to subscribe to its scroll event until next tick (when it does exist). - Promise.resolve().then(() => { - this._scrollContainer = this.container ? - this._document.querySelectorAll(this.container)[0] : window; - - this._scrollSubscription = Observable - .fromEvent(this._scrollContainer, 'scroll') - .debounceTime(10) - .subscribe(() => this.onScroll()); - }); - } - - ngOnDestroy(): void { - this._routeSubscription.unsubscribe(); - this._scrollSubscription.unsubscribe(); - this._fragmentSubscription.unsubscribe(); - } -} diff --git a/src/app/operators/operator/operator-header/operator-header.component.scss b/src/app/operators/operator/operator-header/operator-header.component.scss index 253fcd3c..f0397cac 100644 --- a/src/app/operators/operator/operator-header/operator-header.component.scss +++ b/src/app/operators/operator/operator-header/operator-header.component.scss @@ -1,5 +1,5 @@ .operator-name { - font-size:26px; + font-size:30px; } mat-toolbar { diff --git a/src/app/operators/operator/operator.component.html b/src/app/operators/operator/operator.component.html index ec821017..6ddb88fd 100644 --- a/src/app/operators/operator/operator.component.html +++ b/src/app/operators/operator/operator.component.html @@ -1,6 +1,8 @@ + [operatorSignature]="signature" + [id]="operatorName" + class="operator-header">
diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index 9eeffb3d..0a5753f2 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -1,4 +1,7 @@ - + {{ category }} + (click)="scrollToOperator(operator.name)" + [routerLink]="[ '/operators', { name: operator.name } ]" + [class.active-operator]="(activeOperator$ | async) === operator.name"> {{ operator.name }} - - - + + diff --git a/src/app/operators/operators.component.scss b/src/app/operators/operators.component.scss index 5c080731..b86d4246 100644 --- a/src/app/operators/operators.component.scss +++ b/src/app/operators/operators.component.scss @@ -1,4 +1,5 @@ -$subheader-color: #3f51b5; +$subheader-color: #333; +$operator-border: #f3f3f3; :host { flex: 1 1 auto; @@ -14,12 +15,16 @@ $subheader-color: #3f51b5; text-transform: uppercase; font-weight: 600; color: white !important; - background: #333; + background: $subheader-color; } .operator-list { a { - border-bottom: 1px solid #f3f3f3; + border-bottom: 1px solid $operator-border; + &.active-operator { + background-color: #f3f3f3; + transition: background-color .3s ease-in-out; + } &:last-child { border-bottom: none; } diff --git a/src/app/operators/operators.component.ts b/src/app/operators/operators.component.ts index cc5dfcb8..54112d3d 100644 --- a/src/app/operators/operators.component.ts +++ b/src/app/operators/operators.component.ts @@ -1,21 +1,53 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, AfterViewInit } from '@angular/core'; +import { Router, ActivatedRoute } from '@angular/router'; +import { Observable } from 'rxjs/Observable'; import { ALL_OPERATORS } from '../operator-docs'; import { OperatorDoc } from '../operator-docs/operator.model'; +import 'rxjs/add/operator/pluck'; @Component({ selector: 'app-operators', templateUrl: './operators.component.html', styleUrls: ['./operators.component.scss'] }) -export class OperatorsComponent implements OnInit { +export class OperatorsComponent implements OnInit, AfterViewInit { public operators = ALL_OPERATORS; public groupedOperators = groupOperatorsByType(ALL_OPERATORS); public categories = Object.keys(this.groupedOperators); + public activeOperator$: Observable; - constructor() { } + constructor( + private _router: Router, + private _activatedRoute: ActivatedRoute + ) { } - ngOnInit() {} + ngOnInit() { + this.activeOperator$ = this._activatedRoute + .params + .pluck('name'); + } + ngAfterViewInit() { + // scroll initial param when applicable + const { name } = this._activatedRoute.snapshot.params; + + if (name) { + // wait a tick from scroll to be accurate + Promise.resolve().then(_ => this.scrollToOperator(name)); + } + } + + updateUrl(name: string) { + this._router.navigate([ '/operators', { name } ]); + } + + scrollToOperator(name: string) { + const element = document.getElementById(name); + + if (element) { + element.scrollIntoView(); + } + } } export function groupOperatorsByType(operators: OperatorDoc[]) { diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index add25a0e..e14b5dc7 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -6,7 +6,8 @@ import { RouterModule } from '@angular/router'; import { OperatorsComponent } from './operators.component'; import { OperatorComponent } from './operator/operator.component'; import { OperatorHeaderComponent } from './operator/operator-header/operator-header.component'; -import { OperatorTocComponent } from './operator-toc/operator-toc.component'; + +import { OperatorScrollDirective } from './operator-scroll.directive'; const OPERATOR_ROUTES = [ { @@ -20,7 +21,7 @@ const OPERATOR_ROUTES = [ OperatorsComponent, OperatorComponent, OperatorHeaderComponent, - OperatorTocComponent + OperatorScrollDirective ], imports: [ CommonModule, diff --git a/src/styles.scss b/src/styles.scss index 959e5777..467d75cc 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -4,8 +4,6 @@ // Define the theme. $primary: mat-palette($mat-indigo); $accent: mat-palette($mat-pink); -$accent-color: mat-color($accent); -$primary-color: mat-color($primary); $theme: mat-light-theme($primary, $accent); @include angular-material-theme($theme); From bfb948e767584abd4e7f15b9ddf8d4d1bbea65a4 Mon Sep 17 00:00:00 2001 From: btroncone Date: Sun, 8 Oct 2017 11:51:23 -0400 Subject: [PATCH 14/33] added highlight.js --- ngsw-manifest.json | 5 ++- src/app/app.component.ts | 12 +++---- .../directives/highlight-js.directive.ts | 32 +++++++++++++++++++ .../operator-scroll.directive.ts | 0 src/app/operators/operators.module.ts | 3 +- src/index.html | 3 ++ 6 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 src/app/operators/directives/highlight-js.directive.ts rename src/app/operators/{ => directives}/operator-scroll.directive.ts (100%) diff --git a/ngsw-manifest.json b/ngsw-manifest.json index 9e19f9a4..d4f0a82f 100644 --- a/ngsw-manifest.json +++ b/ngsw-manifest.json @@ -4,7 +4,10 @@ {"url": "https://fonts.googleapis.com/icon?family=Material+Icons"}, {"url": "https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700"}, {"url": "https://ajax.googleapis.com/ajax/libs/hammerjs/2.0.8/hammer.min.js"}, - {"url": "https://cdnjs.cloudflare.com/ajax/libs/web-animations/2.2.5/web-animations.min.js"} + {"url": "https://cdnjs.cloudflare.com/ajax/libs/web-animations/2.2.5/web-animations.min.js"}, + {"url": "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/styles/monokai_sublime.min.css"}, + {"url": "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/highlight.min.js"}, + {"url": "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/languages/typescript.min.js"} ] } } diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 55a562c0..916c2a22 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -3,7 +3,7 @@ import { Component } from '@angular/core'; class Menu { title: string; link: string; - options: { exact: boolean }; + options: { exact: boolean }; } @Component({ @@ -13,25 +13,25 @@ class Menu { }) export class AppComponent { menus: Menu[] = [ - { + { title: 'Home', link: '/', options: { exact: true } }, - { + { title: 'Operators', link: '/operators', options: { exact: false } }, - { + { title: 'Companies', link: '/companies', options: { exact: false } }, - { + { title: 'Team', link: '/team', options: { exact: false } } - ] + ]; } diff --git a/src/app/operators/directives/highlight-js.directive.ts b/src/app/operators/directives/highlight-js.directive.ts new file mode 100644 index 00000000..6820f736 --- /dev/null +++ b/src/app/operators/directives/highlight-js.directive.ts @@ -0,0 +1,32 @@ +import { Directive, ElementRef, Input, OnInit, AfterViewChecked, NgZone } from '@angular/core'; + +declare var hljs: any; + +/* + * Modified from Angular2 Highlight Package + * (https://github.com/jaychase/angular2-highlight-js) + */ +@Directive({ + selector: '[appHighlightJs]' +}) +export class HighlightJsDirective implements AfterViewChecked { + private _done: boolean; + + constructor( + private elementRef: ElementRef, + private zone: NgZone) {} + + ngAfterViewChecked() { + if (!this._done) { + if (this.elementRef.nativeElement.innerHTML && this.elementRef.nativeElement.querySelector) { + const snippets = this.elementRef.nativeElement.querySelectorAll('code'); + this.zone.runOutsideAngular(() => { + for (const snippet of snippets) { + hljs.highlightBlock(snippet); + } + }); + this._done = true; + } + } + } +} diff --git a/src/app/operators/operator-scroll.directive.ts b/src/app/operators/directives/operator-scroll.directive.ts similarity index 100% rename from src/app/operators/operator-scroll.directive.ts rename to src/app/operators/directives/operator-scroll.directive.ts diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index e14b5dc7..05fbd1be 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -7,7 +7,8 @@ import { OperatorsComponent } from './operators.component'; import { OperatorComponent } from './operator/operator.component'; import { OperatorHeaderComponent } from './operator/operator-header/operator-header.component'; -import { OperatorScrollDirective } from './operator-scroll.directive'; +import { OperatorScrollDirective } from './directives/operator-scroll.directive'; +import { HighlightJsDirective } from './directives/highlight-js.directive'; const OPERATOR_ROUTES = [ { diff --git a/src/index.html b/src/index.html index a4c1060d..3d34c064 100644 --- a/src/index.html +++ b/src/index.html @@ -11,10 +11,13 @@ + + + From acea05d66a8af0702f077f73aa4dbb3b05a965b7 Mon Sep 17 00:00:00 2001 From: btroncone Date: Sun, 8 Oct 2017 18:53:55 -0400 Subject: [PATCH 15/33] operator routing update --- .../operator-header/operator-header.component.html | 0 .../operator-header/operator-header.component.scss | 4 ++++ .../operator-header/operator-header.component.ts | 0 .../{ => components}/operator/operator.component.html | 5 +++-- .../{ => components}/operator/operator.component.scss | 4 +++- .../{ => components}/operator/operator.component.ts | 2 +- src/app/operators/operators.component.html | 3 +-- src/app/operators/operators.component.ts | 9 +++------ src/app/operators/operators.module.ts | 4 ++-- 9 files changed, 17 insertions(+), 14 deletions(-) rename src/app/operators/{operator => components}/operator-header/operator-header.component.html (100%) rename src/app/operators/{operator => components}/operator-header/operator-header.component.scss (74%) rename src/app/operators/{operator => components}/operator-header/operator-header.component.ts (100%) rename src/app/operators/{ => components}/operator/operator.component.html (74%) rename src/app/operators/{ => components}/operator/operator.component.scss (50%) rename src/app/operators/{ => components}/operator/operator.component.ts (87%) diff --git a/src/app/operators/operator/operator-header/operator-header.component.html b/src/app/operators/components/operator-header/operator-header.component.html similarity index 100% rename from src/app/operators/operator/operator-header/operator-header.component.html rename to src/app/operators/components/operator-header/operator-header.component.html diff --git a/src/app/operators/operator/operator-header/operator-header.component.scss b/src/app/operators/components/operator-header/operator-header.component.scss similarity index 74% rename from src/app/operators/operator/operator-header/operator-header.component.scss rename to src/app/operators/components/operator-header/operator-header.component.scss index f0397cac..5c3d9e79 100644 --- a/src/app/operators/operator/operator-header/operator-header.component.scss +++ b/src/app/operators/components/operator-header/operator-header.component.scss @@ -2,6 +2,10 @@ font-size:30px; } +.signature { + margin-bottom: 24px; +} + mat-toolbar { background: #62757f !important; font-weight: normal; diff --git a/src/app/operators/operator/operator-header/operator-header.component.ts b/src/app/operators/components/operator-header/operator-header.component.ts similarity index 100% rename from src/app/operators/operator/operator-header/operator-header.component.ts rename to src/app/operators/components/operator-header/operator-header.component.ts diff --git a/src/app/operators/operator/operator.component.html b/src/app/operators/components/operator/operator.component.html similarity index 74% rename from src/app/operators/operator/operator.component.html rename to src/app/operators/components/operator/operator.component.html index 6ddb88fd..7a0ff85c 100644 --- a/src/app/operators/operator/operator.component.html +++ b/src/app/operators/components/operator/operator.component.html @@ -5,6 +5,7 @@ class="operator-header">
- - +
+ {{ shortDescription }} +
diff --git a/src/app/operators/operator/operator.component.scss b/src/app/operators/components/operator/operator.component.scss similarity index 50% rename from src/app/operators/operator/operator.component.scss rename to src/app/operators/components/operator/operator.component.scss index e442a9c0..3f128b3a 100644 --- a/src/app/operators/operator/operator.component.scss +++ b/src/app/operators/components/operator/operator.component.scss @@ -1,6 +1,8 @@ .main-operator-container { - width: 70%; padding: 5px; height: 1000px; + display: flex; + flex-direction: column; + padding: 0 16px; } diff --git a/src/app/operators/operator/operator.component.ts b/src/app/operators/components/operator/operator.component.ts similarity index 87% rename from src/app/operators/operator/operator.component.ts rename to src/app/operators/components/operator/operator.component.ts index 75cfd974..da730c82 100644 --- a/src/app/operators/operator/operator.component.ts +++ b/src/app/operators/components/operator/operator.component.ts @@ -1,5 +1,5 @@ import { Component, Input, OnInit } from '@angular/core'; -import { OperatorDoc } from '../../operator-docs/operator.model'; +import { OperatorDoc } from '../../../operator-docs/operator.model'; @Component({ selector: 'app-operator', diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index 0a5753f2..6daab62e 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -12,8 +12,7 @@

{{ category }}

{{ operator.name }} diff --git a/src/app/operators/operators.component.ts b/src/app/operators/operators.component.ts index 54112d3d..2bfc72a8 100644 --- a/src/app/operators/operators.component.ts +++ b/src/app/operators/operators.component.ts @@ -3,7 +3,6 @@ import { Router, ActivatedRoute } from '@angular/router'; import { Observable } from 'rxjs/Observable'; import { ALL_OPERATORS } from '../operator-docs'; import { OperatorDoc } from '../operator-docs/operator.model'; -import 'rxjs/add/operator/pluck'; @Component({ selector: 'app-operators', @@ -22,14 +21,12 @@ export class OperatorsComponent implements OnInit, AfterViewInit { ) { } ngOnInit() { - this.activeOperator$ = this._activatedRoute - .params - .pluck('name'); + this.activeOperator$ = this._activatedRoute.fragment; } ngAfterViewInit() { // scroll initial param when applicable - const { name } = this._activatedRoute.snapshot.params; + const name = this._activatedRoute.snapshot.fragment; if (name) { // wait a tick from scroll to be accurate @@ -38,7 +35,7 @@ export class OperatorsComponent implements OnInit, AfterViewInit { } updateUrl(name: string) { - this._router.navigate([ '/operators', { name } ]); + this._router.navigate([ '/operators' ], { fragment: name }); } scrollToOperator(name: string) { diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index 05fbd1be..4be6e9ea 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -4,8 +4,8 @@ import { MatSidenavModule, MatIconModule, MatListModule, MatToolbarModule } from import { RouterModule } from '@angular/router'; import { OperatorsComponent } from './operators.component'; -import { OperatorComponent } from './operator/operator.component'; -import { OperatorHeaderComponent } from './operator/operator-header/operator-header.component'; +import { OperatorComponent } from './components/operator/operator.component'; +import { OperatorHeaderComponent } from './components/operator-header/operator-header.component'; import { OperatorScrollDirective } from './directives/operator-scroll.directive'; import { HighlightJsDirective } from './directives/highlight-js.directive'; From a43f86dde4de650396a35c3daf72b27cef620cf5 Mon Sep 17 00:00:00 2001 From: btroncone Date: Mon, 9 Oct 2017 12:40:28 -0400 Subject: [PATCH 16/33] operator formatting update --- .../operator-docs/combination/combineAll.ts | 8 ----- src/app/operators/_operator-theme.scss | 32 +++++++++++++++++++ .../operator-header.component.html | 4 +-- .../operator-header.component.scss | 5 ++- .../operator/operator.component.html | 21 +++++++++--- .../operator/operator.component.scss | 16 +++++++++- .../components/operator/operator.component.ts | 10 +++++- .../directives/highlight-js.directive.ts | 5 +-- src/app/operators/operators.component.html | 4 +-- src/app/operators/operators.component.scss | 14 -------- src/app/operators/operators.component.ts | 15 ++++++--- src/app/operators/operators.module.ts | 15 +++++++-- src/app/operators/specs/operators.spec.ts | 2 +- src/index.html | 2 +- src/operator-docs/combination/combineAll.ts | 25 +++++++++++++++ .../combination/combineLatest.ts | 0 .../operator-docs/combination/concat.ts | 0 .../operator-docs/combination/concatAll.ts | 0 .../operator-docs/combination/forkJoin.ts | 0 .../operator-docs/combination/index.ts | 0 .../operator-docs/combination/merge.ts | 0 .../operator-docs/combination/mergeAll.ts | 0 .../operator-docs/combination/pairwise.ts | 0 .../operator-docs/combination/race.ts | 0 .../operator-docs/combination/startWith.ts | 0 .../combination/withLatestFrom.ts | 0 .../operator-docs/combination/zip.ts | 0 .../conditional/defaultIfEmpty.ts | 0 .../operator-docs/conditional/every.ts | 0 .../operator-docs/conditional/index.ts | 0 .../operator-docs/creation/create.ts | 0 src/{app => }/operator-docs/creation/empty.ts | 0 src/{app => }/operator-docs/creation/from.ts | 0 .../operator-docs/creation/fromEvent.ts | 0 .../operator-docs/creation/fromPromise.ts | 0 src/{app => }/operator-docs/creation/index.ts | 0 .../operator-docs/creation/interval.ts | 0 src/{app => }/operator-docs/creation/of.ts | 0 src/{app => }/operator-docs/creation/range.ts | 0 src/{app => }/operator-docs/creation/throw.ts | 0 src/{app => }/operator-docs/creation/timer.ts | 0 .../operator-docs/error-handling/catch.ts | 0 .../operator-docs/error-handling/index.ts | 0 .../operator-docs/error-handling/retry.ts | 0 .../operator-docs/error-handling/retryWhen.ts | 0 .../operator-docs/filtering/debounce.ts | 0 .../operator-docs/filtering/debounceTime.ts | 0 .../filtering/distinctUntilChanged.ts | 0 .../operator-docs/filtering/filter.ts | 0 .../operator-docs/filtering/first.ts | 0 .../operator-docs/filtering/ignoreElements.ts | 0 .../operator-docs/filtering/index.ts | 0 src/{app => }/operator-docs/filtering/last.ts | 0 .../operator-docs/filtering/sample.ts | 0 .../operator-docs/filtering/single.ts | 0 src/{app => }/operator-docs/filtering/skip.ts | 0 .../operator-docs/filtering/skipUntil.ts | 0 .../operator-docs/filtering/skipWhile.ts | 0 src/{app => }/operator-docs/filtering/take.ts | 0 .../operator-docs/filtering/takeUntil.ts | 0 .../operator-docs/filtering/takeWhile.ts | 0 .../operator-docs/filtering/throttle.ts | 0 .../operator-docs/filtering/throttleTime.ts | 0 src/{app => }/operator-docs/index.ts | 2 ++ .../operator-docs/multicasting/index.ts | 0 .../operator-docs/multicasting/multicast.ts | 0 .../operator-docs/multicasting/publish.ts | 0 .../operator-docs/multicasting/share.ts | 0 src/{app => }/operator-docs/operator.model.ts | 13 ++++++++ .../operator-docs/transformation/buffer.ts | 0 .../transformation/bufferCount.ts | 0 .../transformation/bufferTime.ts | 0 .../transformation/bufferToggle.ts | 0 .../transformation/bufferWhen.ts | 0 .../operator-docs/transformation/concatMap.ts | 0 .../operator-docs/transformation/expand.ts | 0 .../operator-docs/transformation/groupBy.ts | 0 .../operator-docs/transformation/index.ts | 0 .../operator-docs/transformation/map.ts | 0 .../operator-docs/transformation/mapTo.ts | 0 .../operator-docs/transformation/mergeMap.ts | 0 .../operator-docs/transformation/partition.ts | 0 .../operator-docs/transformation/pluck.ts | 0 .../operator-docs/transformation/scan.ts | 0 .../operator-docs/transformation/switchMap.ts | 0 .../operator-docs/transformation/window.ts | 0 .../transformation/windowCount.ts | 0 .../transformation/windowToggle.ts | 0 .../transformation/windowWhen.ts | 0 src/{app => }/operator-docs/utility/delay.ts | 0 .../operator-docs/utility/delayWhen.ts | 0 .../operator-docs/utility/dematerialize.ts | 0 src/{app => }/operator-docs/utility/do.ts | 0 src/{app => }/operator-docs/utility/index.ts | 0 src/{app => }/operator-docs/utility/let.ts | 0 .../operator-docs/utility/toPromise.ts | 0 src/styles.scss | 4 +++ 97 files changed, 153 insertions(+), 44 deletions(-) delete mode 100644 src/app/operator-docs/combination/combineAll.ts create mode 100644 src/app/operators/_operator-theme.scss create mode 100644 src/operator-docs/combination/combineAll.ts rename src/{app => }/operator-docs/combination/combineLatest.ts (100%) rename src/{app => }/operator-docs/combination/concat.ts (100%) rename src/{app => }/operator-docs/combination/concatAll.ts (100%) rename src/{app => }/operator-docs/combination/forkJoin.ts (100%) rename src/{app => }/operator-docs/combination/index.ts (100%) rename src/{app => }/operator-docs/combination/merge.ts (100%) rename src/{app => }/operator-docs/combination/mergeAll.ts (100%) rename src/{app => }/operator-docs/combination/pairwise.ts (100%) rename src/{app => }/operator-docs/combination/race.ts (100%) rename src/{app => }/operator-docs/combination/startWith.ts (100%) rename src/{app => }/operator-docs/combination/withLatestFrom.ts (100%) rename src/{app => }/operator-docs/combination/zip.ts (100%) rename src/{app => }/operator-docs/conditional/defaultIfEmpty.ts (100%) rename src/{app => }/operator-docs/conditional/every.ts (100%) rename src/{app => }/operator-docs/conditional/index.ts (100%) rename src/{app => }/operator-docs/creation/create.ts (100%) rename src/{app => }/operator-docs/creation/empty.ts (100%) rename src/{app => }/operator-docs/creation/from.ts (100%) rename src/{app => }/operator-docs/creation/fromEvent.ts (100%) rename src/{app => }/operator-docs/creation/fromPromise.ts (100%) rename src/{app => }/operator-docs/creation/index.ts (100%) rename src/{app => }/operator-docs/creation/interval.ts (100%) rename src/{app => }/operator-docs/creation/of.ts (100%) rename src/{app => }/operator-docs/creation/range.ts (100%) rename src/{app => }/operator-docs/creation/throw.ts (100%) rename src/{app => }/operator-docs/creation/timer.ts (100%) rename src/{app => }/operator-docs/error-handling/catch.ts (100%) rename src/{app => }/operator-docs/error-handling/index.ts (100%) rename src/{app => }/operator-docs/error-handling/retry.ts (100%) rename src/{app => }/operator-docs/error-handling/retryWhen.ts (100%) rename src/{app => }/operator-docs/filtering/debounce.ts (100%) rename src/{app => }/operator-docs/filtering/debounceTime.ts (100%) rename src/{app => }/operator-docs/filtering/distinctUntilChanged.ts (100%) rename src/{app => }/operator-docs/filtering/filter.ts (100%) rename src/{app => }/operator-docs/filtering/first.ts (100%) rename src/{app => }/operator-docs/filtering/ignoreElements.ts (100%) rename src/{app => }/operator-docs/filtering/index.ts (100%) rename src/{app => }/operator-docs/filtering/last.ts (100%) rename src/{app => }/operator-docs/filtering/sample.ts (100%) rename src/{app => }/operator-docs/filtering/single.ts (100%) rename src/{app => }/operator-docs/filtering/skip.ts (100%) rename src/{app => }/operator-docs/filtering/skipUntil.ts (100%) rename src/{app => }/operator-docs/filtering/skipWhile.ts (100%) rename src/{app => }/operator-docs/filtering/take.ts (100%) rename src/{app => }/operator-docs/filtering/takeUntil.ts (100%) rename src/{app => }/operator-docs/filtering/takeWhile.ts (100%) rename src/{app => }/operator-docs/filtering/throttle.ts (100%) rename src/{app => }/operator-docs/filtering/throttleTime.ts (100%) rename src/{app => }/operator-docs/index.ts (95%) rename src/{app => }/operator-docs/multicasting/index.ts (100%) rename src/{app => }/operator-docs/multicasting/multicast.ts (100%) rename src/{app => }/operator-docs/multicasting/publish.ts (100%) rename src/{app => }/operator-docs/multicasting/share.ts (100%) rename src/{app => }/operator-docs/operator.model.ts (66%) rename src/{app => }/operator-docs/transformation/buffer.ts (100%) rename src/{app => }/operator-docs/transformation/bufferCount.ts (100%) rename src/{app => }/operator-docs/transformation/bufferTime.ts (100%) rename src/{app => }/operator-docs/transformation/bufferToggle.ts (100%) rename src/{app => }/operator-docs/transformation/bufferWhen.ts (100%) rename src/{app => }/operator-docs/transformation/concatMap.ts (100%) rename src/{app => }/operator-docs/transformation/expand.ts (100%) rename src/{app => }/operator-docs/transformation/groupBy.ts (100%) rename src/{app => }/operator-docs/transformation/index.ts (100%) rename src/{app => }/operator-docs/transformation/map.ts (100%) rename src/{app => }/operator-docs/transformation/mapTo.ts (100%) rename src/{app => }/operator-docs/transformation/mergeMap.ts (100%) rename src/{app => }/operator-docs/transformation/partition.ts (100%) rename src/{app => }/operator-docs/transformation/pluck.ts (100%) rename src/{app => }/operator-docs/transformation/scan.ts (100%) rename src/{app => }/operator-docs/transformation/switchMap.ts (100%) rename src/{app => }/operator-docs/transformation/window.ts (100%) rename src/{app => }/operator-docs/transformation/windowCount.ts (100%) rename src/{app => }/operator-docs/transformation/windowToggle.ts (100%) rename src/{app => }/operator-docs/transformation/windowWhen.ts (100%) rename src/{app => }/operator-docs/utility/delay.ts (100%) rename src/{app => }/operator-docs/utility/delayWhen.ts (100%) rename src/{app => }/operator-docs/utility/dematerialize.ts (100%) rename src/{app => }/operator-docs/utility/do.ts (100%) rename src/{app => }/operator-docs/utility/index.ts (100%) rename src/{app => }/operator-docs/utility/let.ts (100%) rename src/{app => }/operator-docs/utility/toPromise.ts (100%) diff --git a/src/app/operator-docs/combination/combineAll.ts b/src/app/operator-docs/combination/combineAll.ts deleted file mode 100644 index b954b74c..00000000 --- a/src/app/operator-docs/combination/combineAll.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { OperatorDoc } from '../operator.model'; - -export const combineAll: OperatorDoc = { - "name": "combineAll", - "operatorType": "combination", - "signature": "public combineAll(project: function): Observable", - "shortDescription": "Flattens an Observable-of-Observables by applying combineLatest when the Observable-of-Observables completes." -}; diff --git a/src/app/operators/_operator-theme.scss b/src/app/operators/_operator-theme.scss new file mode 100644 index 00000000..dc5c8c48 --- /dev/null +++ b/src/app/operators/_operator-theme.scss @@ -0,0 +1,32 @@ +@import '~@angular/material/theming'; + +$operator-border: #f3f3f3; +$operator-active: #62757f; +$link-color: #2196F3; + +@mixin operator-theme($theme) { + $primary: mat-color(map-get($theme, primary)); + $accent: mat-color(map-get($theme, accent)); + $operator-active-background: rgba($operator-active, .7); + + .operator-list { + a { + border-bottom: 1px solid $operator-border; + &.active-operator { + background-color: $operator-active-background; + color: white; + &:hover { + background-color: $operator-active-background; + } + } + &:last-child { + border-bottom: none; + } + } + } + + a { + text-decoration: none; + color: $link-color; + } +} diff --git a/src/app/operators/components/operator-header/operator-header.component.html b/src/app/operators/components/operator-header/operator-header.component.html index 4cc61472..fc4c0e8f 100644 --- a/src/app/operators/components/operator-header/operator-header.component.html +++ b/src/app/operators/components/operator-header/operator-header.component.html @@ -1,6 +1,6 @@ - + {{ operatorName }} - + {{ operatorSignature }} diff --git a/src/app/operators/components/operator-header/operator-header.component.scss b/src/app/operators/components/operator-header/operator-header.component.scss index 5c3d9e79..23fec756 100644 --- a/src/app/operators/components/operator-header/operator-header.component.scss +++ b/src/app/operators/components/operator-header/operator-header.component.scss @@ -1,3 +1,5 @@ +@import '../../operator-theme'; + .operator-name { font-size:30px; } @@ -7,6 +9,7 @@ } mat-toolbar { - background: #62757f !important; + background: $operator-active !important; + color: rgba(255, 255, 255, 0.87); font-weight: normal; } diff --git a/src/app/operators/components/operator/operator.component.html b/src/app/operators/components/operator/operator.component.html index 7a0ff85c..e579b2ec 100644 --- a/src/app/operators/components/operator/operator.component.html +++ b/src/app/operators/components/operator/operator.component.html @@ -4,8 +4,21 @@ [id]="operatorName" class="operator-header"> -
-
- {{ shortDescription }} +
+

+

Examples

+
+

{{ example.name }}

+

   
-
+

Related Operators

+ +

Additional References

+ diff --git a/src/app/operators/components/operator/operator.component.scss b/src/app/operators/components/operator/operator.component.scss index 3f128b3a..f7359612 100644 --- a/src/app/operators/components/operator/operator.component.scss +++ b/src/app/operators/components/operator/operator.component.scss @@ -1,4 +1,3 @@ - .main-operator-container { padding: 5px; height: 1000px; @@ -6,3 +5,18 @@ flex-direction: column; padding: 0 16px; } + +.related-list { + padding: 1px; + list-style-type: none; + margin-top: 0; + + li { + padding-bottom: 5px; + &:last-child { + padding-bottom: 0; + } + } + + +} diff --git a/src/app/operators/components/operator/operator.component.ts b/src/app/operators/components/operator/operator.component.ts index da730c82..496f7462 100644 --- a/src/app/operators/components/operator/operator.component.ts +++ b/src/app/operators/components/operator/operator.component.ts @@ -1,5 +1,5 @@ import { Component, Input, OnInit } from '@angular/core'; -import { OperatorDoc } from '../../../operator-docs/operator.model'; +import { OperatorDoc } from '../../../../operator-docs/operator.model'; @Component({ selector: 'app-operator', @@ -20,4 +20,12 @@ export class OperatorComponent { get shortDescription() { return this.operator.shortDescription; } + + get examples() { + return this.operator.examples || []; + } + + get relatedOperators() { + return this.operator.relatedOperators || []; + } } diff --git a/src/app/operators/directives/highlight-js.directive.ts b/src/app/operators/directives/highlight-js.directive.ts index 6820f736..85eb52ca 100644 --- a/src/app/operators/directives/highlight-js.directive.ts +++ b/src/app/operators/directives/highlight-js.directive.ts @@ -14,12 +14,13 @@ export class HighlightJsDirective implements AfterViewChecked { constructor( private elementRef: ElementRef, - private zone: NgZone) {} + private zone: NgZone + ) {} ngAfterViewChecked() { if (!this._done) { if (this.elementRef.nativeElement.innerHTML && this.elementRef.nativeElement.querySelector) { - const snippets = this.elementRef.nativeElement.querySelectorAll('code'); + const snippets = this.elementRef.nativeElement.querySelectorAll('pre'); this.zone.runOutsideAngular(() => { for (const snippet of snippets) { hljs.highlightBlock(snippet); diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index 6daab62e..1dbc4207 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -1,7 +1,7 @@ + (activeOperator)="activeOperator = $event"> {{ category }} + [class.active-operator]="activeOperator === operator.name"> {{ operator.name }} diff --git a/src/app/operators/operators.component.scss b/src/app/operators/operators.component.scss index b86d4246..c5b8283f 100644 --- a/src/app/operators/operators.component.scss +++ b/src/app/operators/operators.component.scss @@ -1,5 +1,4 @@ $subheader-color: #333; -$operator-border: #f3f3f3; :host { flex: 1 1 auto; @@ -18,19 +17,6 @@ $operator-border: #f3f3f3; background: $subheader-color; } -.operator-list { - a { - border-bottom: 1px solid $operator-border; - &.active-operator { - background-color: #f3f3f3; - transition: background-color .3s ease-in-out; - } - &:last-child { - border-bottom: none; - } - } -} - .operator-list-sidenav { width: 300px; } diff --git a/src/app/operators/operators.component.ts b/src/app/operators/operators.component.ts index 2bfc72a8..30d02552 100644 --- a/src/app/operators/operators.component.ts +++ b/src/app/operators/operators.component.ts @@ -1,8 +1,9 @@ import { Component, OnInit, AfterViewInit } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; +import { Subscription } from 'rxjs/Subscription'; import { Observable } from 'rxjs/Observable'; -import { ALL_OPERATORS } from '../operator-docs'; -import { OperatorDoc } from '../operator-docs/operator.model'; +import { ALL_OPERATORS } from '../../operator-docs'; +import { OperatorDoc } from '../../operator-docs/operator.model'; @Component({ selector: 'app-operators', @@ -13,7 +14,9 @@ export class OperatorsComponent implements OnInit, AfterViewInit { public operators = ALL_OPERATORS; public groupedOperators = groupOperatorsByType(ALL_OPERATORS); public categories = Object.keys(this.groupedOperators); - public activeOperator$: Observable; + public activeOperator: string; + + private _subscription: Subscription; constructor( private _router: Router, @@ -21,7 +24,11 @@ export class OperatorsComponent implements OnInit, AfterViewInit { ) { } ngOnInit() { - this.activeOperator$ = this._activatedRoute.fragment; + this.activeOperator = this._activatedRoute.snapshot.fragment || this.operators[0].name; + + this._subscription = this._activatedRoute + .fragment + .subscribe(name => this.scrollToOperator(name)); } ngAfterViewInit() { diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index 4be6e9ea..cef4ebbf 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -1,6 +1,13 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { MatSidenavModule, MatIconModule, MatListModule, MatToolbarModule } from '@angular/material'; +import { + MatSidenavModule, + MatIconModule, + MatListModule, + MatToolbarModule, + MatExpansionModule, + MatCardModule +} from '@angular/material'; import { RouterModule } from '@angular/router'; import { OperatorsComponent } from './operators.component'; @@ -22,7 +29,8 @@ const OPERATOR_ROUTES = [ OperatorsComponent, OperatorComponent, OperatorHeaderComponent, - OperatorScrollDirective + OperatorScrollDirective, + HighlightJsDirective ], imports: [ CommonModule, @@ -30,7 +38,8 @@ const OPERATOR_ROUTES = [ MatSidenavModule, MatIconModule, MatListModule, - MatToolbarModule + MatToolbarModule, + MatCardModule ] }) export class OperatorsModule { } diff --git a/src/app/operators/specs/operators.spec.ts b/src/app/operators/specs/operators.spec.ts index 00ac2252..9e0fc0af 100644 --- a/src/app/operators/specs/operators.spec.ts +++ b/src/app/operators/specs/operators.spec.ts @@ -1,4 +1,4 @@ -import { ALL_OPERATORS } from '../../operator-docs'; +import { ALL_OPERATORS } from '../../../operator-docs'; import { groupOperatorsByType } from '../operators.component'; describe('Operators', () => { diff --git a/src/index.html b/src/index.html index 3d34c064..b50aad45 100644 --- a/src/index.html +++ b/src/index.html @@ -11,7 +11,7 @@ - + diff --git a/src/operator-docs/combination/combineAll.ts b/src/operator-docs/combination/combineAll.ts new file mode 100644 index 00000000..29de6f3b --- /dev/null +++ b/src/operator-docs/combination/combineAll.ts @@ -0,0 +1,25 @@ +import { OperatorDoc } from '../operator.model'; + +export const combineAll: OperatorDoc = { + "name": "combineAll", + "operatorType": "combination", + "signature": "public combineAll(project: function): Observable", + "shortDescription": "Flattens an Observable-of-Observables by applying combineLatest when the Observable-of-Observables completes.", + "examples": [ + { + name: "Map two click events to a finite interval Observable, then apply combineAll", + code: ` + const clicks = Rx.Observable.fromEvent(document, 'click'); + const higherOrder = clicks.map(ev => + Rx.Observable.interval(Math.random()*2000).take(3) + ).take(2); + const result = higherOrder.combineAll(); + result.subscribe(x => console.log(x)); + `, + externalLinks: [ + { platform: 'JSBin', url: 'test'} + ] + } + ], + "relatedOperators": [ "combineLatest", "mergeAll" ] +}; diff --git a/src/app/operator-docs/combination/combineLatest.ts b/src/operator-docs/combination/combineLatest.ts similarity index 100% rename from src/app/operator-docs/combination/combineLatest.ts rename to src/operator-docs/combination/combineLatest.ts diff --git a/src/app/operator-docs/combination/concat.ts b/src/operator-docs/combination/concat.ts similarity index 100% rename from src/app/operator-docs/combination/concat.ts rename to src/operator-docs/combination/concat.ts diff --git a/src/app/operator-docs/combination/concatAll.ts b/src/operator-docs/combination/concatAll.ts similarity index 100% rename from src/app/operator-docs/combination/concatAll.ts rename to src/operator-docs/combination/concatAll.ts diff --git a/src/app/operator-docs/combination/forkJoin.ts b/src/operator-docs/combination/forkJoin.ts similarity index 100% rename from src/app/operator-docs/combination/forkJoin.ts rename to src/operator-docs/combination/forkJoin.ts diff --git a/src/app/operator-docs/combination/index.ts b/src/operator-docs/combination/index.ts similarity index 100% rename from src/app/operator-docs/combination/index.ts rename to src/operator-docs/combination/index.ts diff --git a/src/app/operator-docs/combination/merge.ts b/src/operator-docs/combination/merge.ts similarity index 100% rename from src/app/operator-docs/combination/merge.ts rename to src/operator-docs/combination/merge.ts diff --git a/src/app/operator-docs/combination/mergeAll.ts b/src/operator-docs/combination/mergeAll.ts similarity index 100% rename from src/app/operator-docs/combination/mergeAll.ts rename to src/operator-docs/combination/mergeAll.ts diff --git a/src/app/operator-docs/combination/pairwise.ts b/src/operator-docs/combination/pairwise.ts similarity index 100% rename from src/app/operator-docs/combination/pairwise.ts rename to src/operator-docs/combination/pairwise.ts diff --git a/src/app/operator-docs/combination/race.ts b/src/operator-docs/combination/race.ts similarity index 100% rename from src/app/operator-docs/combination/race.ts rename to src/operator-docs/combination/race.ts diff --git a/src/app/operator-docs/combination/startWith.ts b/src/operator-docs/combination/startWith.ts similarity index 100% rename from src/app/operator-docs/combination/startWith.ts rename to src/operator-docs/combination/startWith.ts diff --git a/src/app/operator-docs/combination/withLatestFrom.ts b/src/operator-docs/combination/withLatestFrom.ts similarity index 100% rename from src/app/operator-docs/combination/withLatestFrom.ts rename to src/operator-docs/combination/withLatestFrom.ts diff --git a/src/app/operator-docs/combination/zip.ts b/src/operator-docs/combination/zip.ts similarity index 100% rename from src/app/operator-docs/combination/zip.ts rename to src/operator-docs/combination/zip.ts diff --git a/src/app/operator-docs/conditional/defaultIfEmpty.ts b/src/operator-docs/conditional/defaultIfEmpty.ts similarity index 100% rename from src/app/operator-docs/conditional/defaultIfEmpty.ts rename to src/operator-docs/conditional/defaultIfEmpty.ts diff --git a/src/app/operator-docs/conditional/every.ts b/src/operator-docs/conditional/every.ts similarity index 100% rename from src/app/operator-docs/conditional/every.ts rename to src/operator-docs/conditional/every.ts diff --git a/src/app/operator-docs/conditional/index.ts b/src/operator-docs/conditional/index.ts similarity index 100% rename from src/app/operator-docs/conditional/index.ts rename to src/operator-docs/conditional/index.ts diff --git a/src/app/operator-docs/creation/create.ts b/src/operator-docs/creation/create.ts similarity index 100% rename from src/app/operator-docs/creation/create.ts rename to src/operator-docs/creation/create.ts diff --git a/src/app/operator-docs/creation/empty.ts b/src/operator-docs/creation/empty.ts similarity index 100% rename from src/app/operator-docs/creation/empty.ts rename to src/operator-docs/creation/empty.ts diff --git a/src/app/operator-docs/creation/from.ts b/src/operator-docs/creation/from.ts similarity index 100% rename from src/app/operator-docs/creation/from.ts rename to src/operator-docs/creation/from.ts diff --git a/src/app/operator-docs/creation/fromEvent.ts b/src/operator-docs/creation/fromEvent.ts similarity index 100% rename from src/app/operator-docs/creation/fromEvent.ts rename to src/operator-docs/creation/fromEvent.ts diff --git a/src/app/operator-docs/creation/fromPromise.ts b/src/operator-docs/creation/fromPromise.ts similarity index 100% rename from src/app/operator-docs/creation/fromPromise.ts rename to src/operator-docs/creation/fromPromise.ts diff --git a/src/app/operator-docs/creation/index.ts b/src/operator-docs/creation/index.ts similarity index 100% rename from src/app/operator-docs/creation/index.ts rename to src/operator-docs/creation/index.ts diff --git a/src/app/operator-docs/creation/interval.ts b/src/operator-docs/creation/interval.ts similarity index 100% rename from src/app/operator-docs/creation/interval.ts rename to src/operator-docs/creation/interval.ts diff --git a/src/app/operator-docs/creation/of.ts b/src/operator-docs/creation/of.ts similarity index 100% rename from src/app/operator-docs/creation/of.ts rename to src/operator-docs/creation/of.ts diff --git a/src/app/operator-docs/creation/range.ts b/src/operator-docs/creation/range.ts similarity index 100% rename from src/app/operator-docs/creation/range.ts rename to src/operator-docs/creation/range.ts diff --git a/src/app/operator-docs/creation/throw.ts b/src/operator-docs/creation/throw.ts similarity index 100% rename from src/app/operator-docs/creation/throw.ts rename to src/operator-docs/creation/throw.ts diff --git a/src/app/operator-docs/creation/timer.ts b/src/operator-docs/creation/timer.ts similarity index 100% rename from src/app/operator-docs/creation/timer.ts rename to src/operator-docs/creation/timer.ts diff --git a/src/app/operator-docs/error-handling/catch.ts b/src/operator-docs/error-handling/catch.ts similarity index 100% rename from src/app/operator-docs/error-handling/catch.ts rename to src/operator-docs/error-handling/catch.ts diff --git a/src/app/operator-docs/error-handling/index.ts b/src/operator-docs/error-handling/index.ts similarity index 100% rename from src/app/operator-docs/error-handling/index.ts rename to src/operator-docs/error-handling/index.ts diff --git a/src/app/operator-docs/error-handling/retry.ts b/src/operator-docs/error-handling/retry.ts similarity index 100% rename from src/app/operator-docs/error-handling/retry.ts rename to src/operator-docs/error-handling/retry.ts diff --git a/src/app/operator-docs/error-handling/retryWhen.ts b/src/operator-docs/error-handling/retryWhen.ts similarity index 100% rename from src/app/operator-docs/error-handling/retryWhen.ts rename to src/operator-docs/error-handling/retryWhen.ts diff --git a/src/app/operator-docs/filtering/debounce.ts b/src/operator-docs/filtering/debounce.ts similarity index 100% rename from src/app/operator-docs/filtering/debounce.ts rename to src/operator-docs/filtering/debounce.ts diff --git a/src/app/operator-docs/filtering/debounceTime.ts b/src/operator-docs/filtering/debounceTime.ts similarity index 100% rename from src/app/operator-docs/filtering/debounceTime.ts rename to src/operator-docs/filtering/debounceTime.ts diff --git a/src/app/operator-docs/filtering/distinctUntilChanged.ts b/src/operator-docs/filtering/distinctUntilChanged.ts similarity index 100% rename from src/app/operator-docs/filtering/distinctUntilChanged.ts rename to src/operator-docs/filtering/distinctUntilChanged.ts diff --git a/src/app/operator-docs/filtering/filter.ts b/src/operator-docs/filtering/filter.ts similarity index 100% rename from src/app/operator-docs/filtering/filter.ts rename to src/operator-docs/filtering/filter.ts diff --git a/src/app/operator-docs/filtering/first.ts b/src/operator-docs/filtering/first.ts similarity index 100% rename from src/app/operator-docs/filtering/first.ts rename to src/operator-docs/filtering/first.ts diff --git a/src/app/operator-docs/filtering/ignoreElements.ts b/src/operator-docs/filtering/ignoreElements.ts similarity index 100% rename from src/app/operator-docs/filtering/ignoreElements.ts rename to src/operator-docs/filtering/ignoreElements.ts diff --git a/src/app/operator-docs/filtering/index.ts b/src/operator-docs/filtering/index.ts similarity index 100% rename from src/app/operator-docs/filtering/index.ts rename to src/operator-docs/filtering/index.ts diff --git a/src/app/operator-docs/filtering/last.ts b/src/operator-docs/filtering/last.ts similarity index 100% rename from src/app/operator-docs/filtering/last.ts rename to src/operator-docs/filtering/last.ts diff --git a/src/app/operator-docs/filtering/sample.ts b/src/operator-docs/filtering/sample.ts similarity index 100% rename from src/app/operator-docs/filtering/sample.ts rename to src/operator-docs/filtering/sample.ts diff --git a/src/app/operator-docs/filtering/single.ts b/src/operator-docs/filtering/single.ts similarity index 100% rename from src/app/operator-docs/filtering/single.ts rename to src/operator-docs/filtering/single.ts diff --git a/src/app/operator-docs/filtering/skip.ts b/src/operator-docs/filtering/skip.ts similarity index 100% rename from src/app/operator-docs/filtering/skip.ts rename to src/operator-docs/filtering/skip.ts diff --git a/src/app/operator-docs/filtering/skipUntil.ts b/src/operator-docs/filtering/skipUntil.ts similarity index 100% rename from src/app/operator-docs/filtering/skipUntil.ts rename to src/operator-docs/filtering/skipUntil.ts diff --git a/src/app/operator-docs/filtering/skipWhile.ts b/src/operator-docs/filtering/skipWhile.ts similarity index 100% rename from src/app/operator-docs/filtering/skipWhile.ts rename to src/operator-docs/filtering/skipWhile.ts diff --git a/src/app/operator-docs/filtering/take.ts b/src/operator-docs/filtering/take.ts similarity index 100% rename from src/app/operator-docs/filtering/take.ts rename to src/operator-docs/filtering/take.ts diff --git a/src/app/operator-docs/filtering/takeUntil.ts b/src/operator-docs/filtering/takeUntil.ts similarity index 100% rename from src/app/operator-docs/filtering/takeUntil.ts rename to src/operator-docs/filtering/takeUntil.ts diff --git a/src/app/operator-docs/filtering/takeWhile.ts b/src/operator-docs/filtering/takeWhile.ts similarity index 100% rename from src/app/operator-docs/filtering/takeWhile.ts rename to src/operator-docs/filtering/takeWhile.ts diff --git a/src/app/operator-docs/filtering/throttle.ts b/src/operator-docs/filtering/throttle.ts similarity index 100% rename from src/app/operator-docs/filtering/throttle.ts rename to src/operator-docs/filtering/throttle.ts diff --git a/src/app/operator-docs/filtering/throttleTime.ts b/src/operator-docs/filtering/throttleTime.ts similarity index 100% rename from src/app/operator-docs/filtering/throttleTime.ts rename to src/operator-docs/filtering/throttleTime.ts diff --git a/src/app/operator-docs/index.ts b/src/operator-docs/index.ts similarity index 95% rename from src/app/operator-docs/index.ts rename to src/operator-docs/index.ts index 3456b42b..785292d7 100644 --- a/src/app/operator-docs/index.ts +++ b/src/operator-docs/index.ts @@ -19,3 +19,5 @@ export const ALL_OPERATORS: OperatorDoc[] = [ ...TRANSFORMATION_OPERATORS, ...UTILITY_OPERATORS ]; + +export * from './operator.model'; diff --git a/src/app/operator-docs/multicasting/index.ts b/src/operator-docs/multicasting/index.ts similarity index 100% rename from src/app/operator-docs/multicasting/index.ts rename to src/operator-docs/multicasting/index.ts diff --git a/src/app/operator-docs/multicasting/multicast.ts b/src/operator-docs/multicasting/multicast.ts similarity index 100% rename from src/app/operator-docs/multicasting/multicast.ts rename to src/operator-docs/multicasting/multicast.ts diff --git a/src/app/operator-docs/multicasting/publish.ts b/src/operator-docs/multicasting/publish.ts similarity index 100% rename from src/app/operator-docs/multicasting/publish.ts rename to src/operator-docs/multicasting/publish.ts diff --git a/src/app/operator-docs/multicasting/share.ts b/src/operator-docs/multicasting/share.ts similarity index 100% rename from src/app/operator-docs/multicasting/share.ts rename to src/operator-docs/multicasting/share.ts diff --git a/src/app/operator-docs/operator.model.ts b/src/operator-docs/operator.model.ts similarity index 66% rename from src/app/operator-docs/operator.model.ts rename to src/operator-docs/operator.model.ts index dc8ed386..eb064cb9 100644 --- a/src/app/operator-docs/operator.model.ts +++ b/src/operator-docs/operator.model.ts @@ -13,11 +13,24 @@ export interface OperatorReference { author?: string; } +export interface ExternalLink { + platform: 'JSBin' | 'JSFiddle'; + url: string; +} + +export interface OperatorExample { + name: string; + code: string; + externalLinks: ExternalLink[]; +} + export interface OperatorDoc { readonly name?: string; readonly operatorType?: OperatorType; readonly signature?: string; readonly shortDescription?: string; readonly longDescription?: string; + readonly examples?: OperatorExample[]; readonly additionalReferences?: OperatorReference[]; + readonly relatedOperators?: string[]; } diff --git a/src/app/operator-docs/transformation/buffer.ts b/src/operator-docs/transformation/buffer.ts similarity index 100% rename from src/app/operator-docs/transformation/buffer.ts rename to src/operator-docs/transformation/buffer.ts diff --git a/src/app/operator-docs/transformation/bufferCount.ts b/src/operator-docs/transformation/bufferCount.ts similarity index 100% rename from src/app/operator-docs/transformation/bufferCount.ts rename to src/operator-docs/transformation/bufferCount.ts diff --git a/src/app/operator-docs/transformation/bufferTime.ts b/src/operator-docs/transformation/bufferTime.ts similarity index 100% rename from src/app/operator-docs/transformation/bufferTime.ts rename to src/operator-docs/transformation/bufferTime.ts diff --git a/src/app/operator-docs/transformation/bufferToggle.ts b/src/operator-docs/transformation/bufferToggle.ts similarity index 100% rename from src/app/operator-docs/transformation/bufferToggle.ts rename to src/operator-docs/transformation/bufferToggle.ts diff --git a/src/app/operator-docs/transformation/bufferWhen.ts b/src/operator-docs/transformation/bufferWhen.ts similarity index 100% rename from src/app/operator-docs/transformation/bufferWhen.ts rename to src/operator-docs/transformation/bufferWhen.ts diff --git a/src/app/operator-docs/transformation/concatMap.ts b/src/operator-docs/transformation/concatMap.ts similarity index 100% rename from src/app/operator-docs/transformation/concatMap.ts rename to src/operator-docs/transformation/concatMap.ts diff --git a/src/app/operator-docs/transformation/expand.ts b/src/operator-docs/transformation/expand.ts similarity index 100% rename from src/app/operator-docs/transformation/expand.ts rename to src/operator-docs/transformation/expand.ts diff --git a/src/app/operator-docs/transformation/groupBy.ts b/src/operator-docs/transformation/groupBy.ts similarity index 100% rename from src/app/operator-docs/transformation/groupBy.ts rename to src/operator-docs/transformation/groupBy.ts diff --git a/src/app/operator-docs/transformation/index.ts b/src/operator-docs/transformation/index.ts similarity index 100% rename from src/app/operator-docs/transformation/index.ts rename to src/operator-docs/transformation/index.ts diff --git a/src/app/operator-docs/transformation/map.ts b/src/operator-docs/transformation/map.ts similarity index 100% rename from src/app/operator-docs/transformation/map.ts rename to src/operator-docs/transformation/map.ts diff --git a/src/app/operator-docs/transformation/mapTo.ts b/src/operator-docs/transformation/mapTo.ts similarity index 100% rename from src/app/operator-docs/transformation/mapTo.ts rename to src/operator-docs/transformation/mapTo.ts diff --git a/src/app/operator-docs/transformation/mergeMap.ts b/src/operator-docs/transformation/mergeMap.ts similarity index 100% rename from src/app/operator-docs/transformation/mergeMap.ts rename to src/operator-docs/transformation/mergeMap.ts diff --git a/src/app/operator-docs/transformation/partition.ts b/src/operator-docs/transformation/partition.ts similarity index 100% rename from src/app/operator-docs/transformation/partition.ts rename to src/operator-docs/transformation/partition.ts diff --git a/src/app/operator-docs/transformation/pluck.ts b/src/operator-docs/transformation/pluck.ts similarity index 100% rename from src/app/operator-docs/transformation/pluck.ts rename to src/operator-docs/transformation/pluck.ts diff --git a/src/app/operator-docs/transformation/scan.ts b/src/operator-docs/transformation/scan.ts similarity index 100% rename from src/app/operator-docs/transformation/scan.ts rename to src/operator-docs/transformation/scan.ts diff --git a/src/app/operator-docs/transformation/switchMap.ts b/src/operator-docs/transformation/switchMap.ts similarity index 100% rename from src/app/operator-docs/transformation/switchMap.ts rename to src/operator-docs/transformation/switchMap.ts diff --git a/src/app/operator-docs/transformation/window.ts b/src/operator-docs/transformation/window.ts similarity index 100% rename from src/app/operator-docs/transformation/window.ts rename to src/operator-docs/transformation/window.ts diff --git a/src/app/operator-docs/transformation/windowCount.ts b/src/operator-docs/transformation/windowCount.ts similarity index 100% rename from src/app/operator-docs/transformation/windowCount.ts rename to src/operator-docs/transformation/windowCount.ts diff --git a/src/app/operator-docs/transformation/windowToggle.ts b/src/operator-docs/transformation/windowToggle.ts similarity index 100% rename from src/app/operator-docs/transformation/windowToggle.ts rename to src/operator-docs/transformation/windowToggle.ts diff --git a/src/app/operator-docs/transformation/windowWhen.ts b/src/operator-docs/transformation/windowWhen.ts similarity index 100% rename from src/app/operator-docs/transformation/windowWhen.ts rename to src/operator-docs/transformation/windowWhen.ts diff --git a/src/app/operator-docs/utility/delay.ts b/src/operator-docs/utility/delay.ts similarity index 100% rename from src/app/operator-docs/utility/delay.ts rename to src/operator-docs/utility/delay.ts diff --git a/src/app/operator-docs/utility/delayWhen.ts b/src/operator-docs/utility/delayWhen.ts similarity index 100% rename from src/app/operator-docs/utility/delayWhen.ts rename to src/operator-docs/utility/delayWhen.ts diff --git a/src/app/operator-docs/utility/dematerialize.ts b/src/operator-docs/utility/dematerialize.ts similarity index 100% rename from src/app/operator-docs/utility/dematerialize.ts rename to src/operator-docs/utility/dematerialize.ts diff --git a/src/app/operator-docs/utility/do.ts b/src/operator-docs/utility/do.ts similarity index 100% rename from src/app/operator-docs/utility/do.ts rename to src/operator-docs/utility/do.ts diff --git a/src/app/operator-docs/utility/index.ts b/src/operator-docs/utility/index.ts similarity index 100% rename from src/app/operator-docs/utility/index.ts rename to src/operator-docs/utility/index.ts diff --git a/src/app/operator-docs/utility/let.ts b/src/operator-docs/utility/let.ts similarity index 100% rename from src/app/operator-docs/utility/let.ts rename to src/operator-docs/utility/let.ts diff --git a/src/app/operator-docs/utility/toPromise.ts b/src/operator-docs/utility/toPromise.ts similarity index 100% rename from src/app/operator-docs/utility/toPromise.ts rename to src/operator-docs/utility/toPromise.ts diff --git a/src/styles.scss b/src/styles.scss index 467d75cc..5f8f1243 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,11 +1,15 @@ @import "~@angular/material/theming"; +@import './app/operators/operator-theme'; + @include mat-core(); // Define the theme. $primary: mat-palette($mat-indigo); $accent: mat-palette($mat-pink); $theme: mat-light-theme($primary, $accent); + @include angular-material-theme($theme); +@include operator-theme($theme); body { font-family: Roboto, sans-serif; From 5bc28e2357d5ad9a1f369260b3a6455387f21935 Mon Sep 17 00:00:00 2001 From: btroncone Date: Mon, 9 Oct 2017 15:40:36 -0400 Subject: [PATCH 17/33] styling and formatting updates --- .../components/operator/operator.component.html | 9 +++++---- .../components/operator/operator.component.scss | 16 +++++++++++++++- .../components/operator/operator.component.ts | 4 ++++ src/app/operators/operators.module.ts | 6 ++++-- src/index.html | 2 +- src/operator-docs/combination/combineAll.ts | 15 ++++++++------- src/operator-docs/combination/combineLatest.ts | 4 ++-- src/operator-docs/combination/concat.ts | 4 ++-- src/operator-docs/combination/concatAll.ts | 4 ++-- src/operator-docs/combination/forkJoin.ts | 4 ++-- src/operator-docs/combination/merge.ts | 4 ++-- src/operator-docs/combination/mergeAll.ts | 4 ++-- src/operator-docs/combination/pairwise.ts | 4 ++-- src/operator-docs/combination/race.ts | 4 ++-- src/operator-docs/combination/startWith.ts | 4 ++-- src/operator-docs/combination/withLatestFrom.ts | 4 ++-- src/operator-docs/combination/zip.ts | 4 ++-- src/operator-docs/conditional/defaultIfEmpty.ts | 4 ++-- src/operator-docs/conditional/every.ts | 4 ++-- src/operator-docs/creation/create.ts | 4 ++-- src/operator-docs/creation/empty.ts | 4 ++-- src/operator-docs/creation/from.ts | 4 ++-- src/operator-docs/creation/fromEvent.ts | 4 ++-- src/operator-docs/creation/fromPromise.ts | 4 ++-- src/operator-docs/creation/interval.ts | 4 ++-- src/operator-docs/creation/of.ts | 4 ++-- src/operator-docs/creation/range.ts | 4 ++-- src/operator-docs/creation/throw.ts | 4 ++-- src/operator-docs/creation/timer.ts | 4 ++-- src/operator-docs/error-handling/catch.ts | 4 ++-- src/operator-docs/error-handling/retry.ts | 4 ++-- src/operator-docs/error-handling/retryWhen.ts | 4 ++-- src/operator-docs/filtering/debounce.ts | 4 ++-- src/operator-docs/filtering/debounceTime.ts | 4 ++-- .../filtering/distinctUntilChanged.ts | 4 ++-- src/operator-docs/filtering/filter.ts | 4 ++-- src/operator-docs/filtering/first.ts | 4 ++-- src/operator-docs/filtering/ignoreElements.ts | 4 ++-- src/operator-docs/filtering/last.ts | 4 ++-- src/operator-docs/filtering/sample.ts | 4 ++-- src/operator-docs/filtering/single.ts | 4 ++-- src/operator-docs/filtering/skip.ts | 4 ++-- src/operator-docs/filtering/skipUntil.ts | 4 ++-- src/operator-docs/filtering/skipWhile.ts | 4 ++-- src/operator-docs/filtering/take.ts | 4 ++-- src/operator-docs/filtering/takeUntil.ts | 4 ++-- src/operator-docs/filtering/takeWhile.ts | 4 ++-- src/operator-docs/filtering/throttle.ts | 4 ++-- src/operator-docs/filtering/throttleTime.ts | 4 ++-- src/operator-docs/multicasting/multicast.ts | 4 ++-- src/operator-docs/multicasting/publish.ts | 4 ++-- src/operator-docs/multicasting/share.ts | 4 ++-- src/operator-docs/operator.model.ts | 1 + src/operator-docs/transformation/buffer.ts | 4 ++-- src/operator-docs/transformation/bufferCount.ts | 4 ++-- src/operator-docs/transformation/bufferTime.ts | 4 ++-- src/operator-docs/transformation/bufferToggle.ts | 4 ++-- src/operator-docs/transformation/bufferWhen.ts | 4 ++-- src/operator-docs/transformation/concatMap.ts | 4 ++-- src/operator-docs/transformation/expand.ts | 4 ++-- src/operator-docs/transformation/groupBy.ts | 4 ++-- src/operator-docs/transformation/map.ts | 4 ++-- src/operator-docs/transformation/mapTo.ts | 4 ++-- src/operator-docs/transformation/mergeMap.ts | 4 ++-- src/operator-docs/transformation/partition.ts | 4 ++-- src/operator-docs/transformation/pluck.ts | 4 ++-- src/operator-docs/transformation/scan.ts | 4 ++-- src/operator-docs/transformation/switchMap.ts | 4 ++-- src/operator-docs/transformation/window.ts | 4 ++-- src/operator-docs/transformation/windowCount.ts | 4 ++-- src/operator-docs/transformation/windowToggle.ts | 4 ++-- src/operator-docs/transformation/windowWhen.ts | 4 ++-- src/operator-docs/utility/delay.ts | 4 ++-- src/operator-docs/utility/delayWhen.ts | 4 ++-- src/operator-docs/utility/dematerialize.ts | 4 ++-- src/operator-docs/utility/do.ts | 4 ++-- src/operator-docs/utility/let.ts | 4 ++-- src/operator-docs/utility/toPromise.ts | 4 ++-- src/styles.scss | 1 + src/styles/_code-helpers.scss | 8 ++++++++ 80 files changed, 189 insertions(+), 157 deletions(-) create mode 100644 src/styles/_code-helpers.scss diff --git a/src/app/operators/components/operator/operator.component.html b/src/app/operators/components/operator/operator.component.html index e579b2ec..52d48fca 100644 --- a/src/app/operators/components/operator/operator.component.html +++ b/src/app/operators/components/operator/operator.component.html @@ -6,15 +6,16 @@

-

Examples

+ +

Examples

-

{{ example.name }}

-

+    

+

   
-

Related Operators

+ \ No newline at end of file + diff --git a/src/app/operators/components/operator-examples/operator-examples.component.html b/src/app/operators/components/operator-examples/operator-examples.component.html index 87a39945..625fe38a 100644 --- a/src/app/operators/components/operator-examples/operator-examples.component.html +++ b/src/app/operators/components/operator-examples/operator-examples.component.html @@ -16,6 +16,12 @@

*ngFor="let link of example.externalLinks"> {{link.platform}} + + Copy To Clipboard +

   
diff --git a/src/app/operators/components/operator-extras/operator-extras.component.html b/src/app/operators/components/operator-extras/operator-extras.component.html new file mode 100644 index 00000000..c9321435 --- /dev/null +++ b/src/app/operators/components/operator-extras/operator-extras.component.html @@ -0,0 +1,12 @@ +
+ info +

+
+
+ warning +

+
diff --git a/src/app/operators/components/operator-extras/operator-extras.component.scss b/src/app/operators/components/operator-extras/operator-extras.component.scss new file mode 100644 index 00000000..b35dd9e2 --- /dev/null +++ b/src/app/operators/components/operator-extras/operator-extras.component.scss @@ -0,0 +1,13 @@ +h3 { + display: inline-block; + vertical-align: middle; + padding-left: 10px; +} + +.tip-warning { + color: rgb(244, 67, 54); +} + +.tip-info { + color: rgb(33, 150, 243); +} diff --git a/src/app/operators/components/operator-extras/operator-extras.component.ts b/src/app/operators/components/operator-extras/operator-extras.component.ts new file mode 100644 index 00000000..08e18a23 --- /dev/null +++ b/src/app/operators/components/operator-extras/operator-extras.component.ts @@ -0,0 +1,19 @@ +import { Component, Input } from '@angular/core'; +import { OperatorExtra } from '../../../../operator-docs'; + +@Component({ + selector: 'app-operator-extras', + templateUrl: './operator-extras.component.html', + styleUrls: ['./operator-extras.component.scss'] +}) +export class OperatorExtrasComponent { + @Input() operatorExtras: OperatorExtra[] = []; + + get tips() { + return this.operatorExtras.filter(e => e.type === 'Tip'); + } + + get warnings() { + return this.operatorExtras.filter(e => e.type === 'Warning'); + } +} diff --git a/src/app/operators/components/operator/operator.component.html b/src/app/operators/components/operator/operator.component.html index 5b58be76..72be5a4f 100644 --- a/src/app/operators/components/operator/operator.component.html +++ b/src/app/operators/components/operator/operator.component.html @@ -6,11 +6,28 @@

- - - - - + + + + + + + + + + + + diff --git a/src/app/operators/components/operator/operator.component.scss b/src/app/operators/components/operator/operator.component.scss index 347f26d9..621798a0 100644 --- a/src/app/operators/components/operator/operator.component.scss +++ b/src/app/operators/components/operator/operator.component.scss @@ -3,7 +3,7 @@ display: flex; flex-direction: column; padding: 0 16px; - margin-bottom: 16px; + margin-bottom: 32px; } .short-description { diff --git a/src/app/operators/components/operator/operator.component.ts b/src/app/operators/components/operator/operator.component.ts index 9f1ea6dd..98790f27 100644 --- a/src/app/operators/components/operator/operator.component.ts +++ b/src/app/operators/components/operator/operator.component.ts @@ -11,6 +11,7 @@ export class OperatorComponent { @Input() operator: OperatorDoc; private readonly baseSourceUrl = 'https://github.com/ReactiveX/rxjs/blob/master/src/operators/'; + private readonly baseSpecUrl = 'http://reactivex.io/rxjs/test-file/spec-js/operators'; get operatorName() { return this.operator.name; @@ -28,6 +29,10 @@ export class OperatorComponent { return this.operator.shortDescription && this.operator.shortDescription.description; } + get shortDescriptionExtras() { + return this.operator.shortDescription && this.operator.shortDescription.extras; + } + get walkthrough() { return this.operator.walkthrough && this.operator.walkthrough.description; } @@ -48,6 +53,10 @@ export class OperatorComponent { return `${this.baseSourceUrl}/${this.operatorName}.ts`; } + get specUrl() { + return `${this.baseSpecUrl}/${this.operatorName}-spec.js.html`; + } + get additionalResources() { return this.operator.additionalResources || []; } diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index 8028fbd4..ac226e4b 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -11,6 +11,8 @@ import { MatMenuModule, MatButtonModule } from '@angular/material'; +import { ClipboardModule } from 'ngx-clipboard'; + import { OperatorsRoutingModule } from './operators.routing'; import { OperatorsComponent } from './operators.component'; @@ -19,6 +21,7 @@ import { OperatorHeaderComponent } from './components/operator-header/operator-h import { OperatorParametersComponent } from './components/operator-parameters/operator-parameters.component'; import { OperatorExamplesComponent } from './components/operator-examples/operator-examples.component'; import { RelatedOperatorsComponent } from './components/related-operators/related-operators.component'; +import { OperatorExtrasComponent } from './components/operator-extras/operator-extras.component'; import { AdditionalResourcesComponent } from './components/additional-resources/additional-resources.component'; import { MarbleDiagramComponent } from './components/marble-diagram/marble-diagram.component'; import { WalkthroughComponent } from './components/walkthrough/walkthrough.component'; @@ -41,6 +44,7 @@ const OPERATOR_ROUTES = [ OperatorParametersComponent, OperatorExamplesComponent, RelatedOperatorsComponent, + OperatorExtrasComponent, AdditionalResourcesComponent, WalkthroughComponent, MarbleDiagramComponent, @@ -50,6 +54,7 @@ const OPERATOR_ROUTES = [ imports: [ CommonModule, OperatorsRoutingModule, + ClipboardModule, MatSidenavModule, MatIconModule, MatListModule, diff --git a/src/operator-docs/combination/combineAll.ts b/src/operator-docs/combination/combineAll.ts index abfc270b..f81baa3b 100644 --- a/src/operator-docs/combination/combineAll.ts +++ b/src/operator-docs/combination/combineAll.ts @@ -14,7 +14,8 @@ export const combineAll: OperatorDoc = { ], 'marbleUrl': 'http://reactivex.io/rxjs/img/combineAll.png', 'shortDescription': { - 'description': 'Flattens an Observable-of-Observables by applying combineLatest when the Observable-of-Observables completes.' + 'description': 'Flattens an Observable-of-Observables by applying combineLatest when the Observable-of-Observables completes.', + 'extras': [] }, 'walkthrough': { 'description': ` @@ -55,12 +56,10 @@ export const combineAll: OperatorDoc = { `, 'externalLinks': [ { 'platform': 'JSBin', 'url': 'test'}, - { 'platform': 'JSFiddle', 'url': 'test'} + { 'platform': 'JSFiddle', 'url': 'https://jsfiddle.net/sba9k56v/'} ] } ], 'relatedOperators': [ 'combineLatest', 'mergeAll' ], - 'additionalResources': [ - { 'description': 'combineAll Tests', 'url': 'http://reactivex.io/rxjs/test-file/spec-js/operators/combineAll-spec.js.html#lineNumber7' } - ] + 'additionalResources': [] }; From a73d3b673ca78e2d29d75f90c62677e21abf7847 Mon Sep 17 00:00:00 2001 From: btroncone Date: Wed, 11 Oct 2017 14:12:23 -0400 Subject: [PATCH 26/33] operator display tweaks --- ngsw-manifest.json | 4 +- .../additional-resources.component.html | 2 +- .../additional-resources.component.ts | 1 + .../operator-examples.component.html | 10 +-- .../operator/operator.component.html | 3 +- .../components/operator/operator.component.ts | 2 +- src/operator-docs/combination/combineAll.ts | 5 +- .../combination/combineLatest.ts | 61 ++++++++++++++++++- 8 files changed, 77 insertions(+), 11 deletions(-) diff --git a/ngsw-manifest.json b/ngsw-manifest.json index d4f0a82f..3c54627e 100644 --- a/ngsw-manifest.json +++ b/ngsw-manifest.json @@ -7,7 +7,9 @@ {"url": "https://cdnjs.cloudflare.com/ajax/libs/web-animations/2.2.5/web-animations.min.js"}, {"url": "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/styles/monokai_sublime.min.css"}, {"url": "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/highlight.min.js"}, - {"url": "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/languages/typescript.min.js"} + {"url": "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/languages/typescript.min.js"}, + {"url": "http://reactivex.io/rxjs/img/combineAll.png"}, + {"url": "http://reactivex.io/rxjs/img/combineLatest.png"} ] } } diff --git a/src/app/operators/components/additional-resources/additional-resources.component.html b/src/app/operators/components/additional-resources/additional-resources.component.html index 262f6be4..f3bfef13 100644 --- a/src/app/operators/components/additional-resources/additional-resources.component.html +++ b/src/app/operators/components/additional-resources/additional-resources.component.html @@ -4,7 +4,7 @@

Additional Resources

Source Code
  • - Specs + Specs
  • {{ resource.description }} diff --git a/src/app/operators/components/additional-resources/additional-resources.component.ts b/src/app/operators/components/additional-resources/additional-resources.component.ts index 0229bf99..faf0c759 100644 --- a/src/app/operators/components/additional-resources/additional-resources.component.ts +++ b/src/app/operators/components/additional-resources/additional-resources.component.ts @@ -9,4 +9,5 @@ import { OperatorReference } from '../../../../operator-docs'; export class AdditionalResourcesComponent { @Input() additionalResources: OperatorReference[]; @Input() sourceUrl: string; + @Input() specsUrl: string; } diff --git a/src/app/operators/components/operator-examples/operator-examples.component.html b/src/app/operators/components/operator-examples/operator-examples.component.html index 625fe38a..d807c253 100644 --- a/src/app/operators/components/operator-examples/operator-examples.component.html +++ b/src/app/operators/components/operator-examples/operator-examples.component.html @@ -14,14 +14,16 @@

    [href]="link.url" target="_blank" *ngFor="let link of example.externalLinks"> - {{link.platform}} + open_in_new + {{link.platform}} - - Copy To Clipboard - + content_copy + Copy To Clipboard +
    
       
  • diff --git a/src/app/operators/components/operator/operator.component.html b/src/app/operators/components/operator/operator.component.html index 72be5a4f..9894f112 100644 --- a/src/app/operators/components/operator/operator.component.html +++ b/src/app/operators/components/operator/operator.component.html @@ -30,6 +30,7 @@

    + [sourceUrl]="sourceUrl" + [specsUrl]="specsUrl"> diff --git a/src/app/operators/components/operator/operator.component.ts b/src/app/operators/components/operator/operator.component.ts index 98790f27..842ac9f0 100644 --- a/src/app/operators/components/operator/operator.component.ts +++ b/src/app/operators/components/operator/operator.component.ts @@ -53,7 +53,7 @@ export class OperatorComponent { return `${this.baseSourceUrl}/${this.operatorName}.ts`; } - get specUrl() { + get specsUrl() { return `${this.baseSpecUrl}/${this.operatorName}-spec.js.html`; } diff --git a/src/operator-docs/combination/combineAll.ts b/src/operator-docs/combination/combineAll.ts index f81baa3b..8f557765 100644 --- a/src/operator-docs/combination/combineAll.ts +++ b/src/operator-docs/combination/combineAll.ts @@ -50,12 +50,13 @@ export const combineAll: OperatorDoc = { const clicks = Rx.Observable.fromEvent(document, 'click'); const higherOrder = clicks.map(ev => Rx.Observable.interval(Math.random()*2000).take(3) - ).take(2); + ) + .take(2); const result = higherOrder.combineAll(); result.subscribe(x => console.log(x)); `, 'externalLinks': [ - { 'platform': 'JSBin', 'url': 'test'}, + { 'platform': 'JSBin', 'url': 'jsbin.com'}, { 'platform': 'JSFiddle', 'url': 'https://jsfiddle.net/sba9k56v/'} ] } diff --git a/src/operator-docs/combination/combineLatest.ts b/src/operator-docs/combination/combineLatest.ts index 8fb65265..289e28d8 100644 --- a/src/operator-docs/combination/combineLatest.ts +++ b/src/operator-docs/combination/combineLatest.ts @@ -2,5 +2,64 @@ import { OperatorDoc } from '../operator.model'; export const combineLatest: OperatorDoc = { 'name': 'combineLatest', - 'operatorType': 'combination' + 'operatorType': 'combination', + 'signature': 'public combineLatest(observables: ...Observable, project: function): Observable', + 'parameters': [ + { + 'name': 'other', + 'type': 'Observable', + 'attribute': '', + 'description': 'An input Observable to combine with the source Observable. More than one input Observables may be given as argument.' + }, + { + 'name': 'other', + 'type': 'function', + 'attribute': 'optional', + 'description': 'An optional function to project the values from the combined latest values into a new value on the output Observable.' + } + ], + 'marbleUrl': 'http://reactivex.io/rxjs/img/combineLatest.png', + 'shortDescription': { + 'description': 'Combines multiple Observables to create an Observable whose values are calculated from the latest values of each of its input Observables.', + 'extras': [ + { 'type': 'Tip', 'text': 'This operator can be used as either a static or instance method!' }, + { 'type': 'Tip', 'text': 'combineAll can be used to apply combineLatest to emitted observables when a source completes!' } + ] + }, + 'walkthrough': { + 'description': ` +

    + combineLatest combines the values from this Observable with values from + Observables passed as arguments. This is done by subscribing to each + Observable, in order, and collecting an array of each of the most recent + values any time any of the input Observables emits, then either taking that + array and passing it as arguments to an optional project function and + emitting the return value of that, or just emitting the array of recent + values directly if there is no project function. +

    + ` + }, + 'examples': [ + { + 'name': 'Dynamically calculate the Body-Mass Index from an Observable of weight and one for height', + 'code': ` + const weight = Rx.Observable.of(70, 72, 76, 79, 75); + const height = Rx.Observable.of(1.76, 1.77, 1.78); + const bmi = weight.combineLatest(height, (w, h) => w / (h * h)); + /* + Output: + BMI is 24.212293388429753 + BMI is 23.93948099205209 + BMI is 23.671253629592222 + */ + bmi.subscribe(x => console.log('BMI is ' + x)); + `, + 'externalLinks': [ + { 'platform': 'JSBin', 'url': 'jsbin.com'}, + { 'platform': 'JSFiddle', 'url': 'https://jsfiddle.net/sba9k56v/'} + ] + } + ], + 'relatedOperators': [ 'combineAll', 'merge', 'withLatestFrom' ], + 'additionalResources': [] }; From cdd9152a591bda8ec8b98b5c616e65a0c3dc0a76 Mon Sep 17 00:00:00 2001 From: btroncone Date: Thu, 12 Oct 2017 13:57:10 -0400 Subject: [PATCH 27/33] styling + quick link updates --- .../operator-examples.component.html | 31 +++++++++---------- .../operator-examples.component.scss | 25 +++++++++++++++ .../operator-parameters.component.scss | 5 ++- src/app/operators/operators.module.ts | 6 ++-- src/operator-docs/combination/combineAll.ts | 5 +-- .../combination/combineLatest.ts | 5 +-- src/operator-docs/operator.model.ts | 2 +- 7 files changed, 50 insertions(+), 29 deletions(-) diff --git a/src/app/operators/components/operator-examples/operator-examples.component.html b/src/app/operators/components/operator-examples/operator-examples.component.html index d807c253..39f66daa 100644 --- a/src/app/operators/components/operator-examples/operator-examples.component.html +++ b/src/app/operators/components/operator-examples/operator-examples.component.html @@ -3,28 +3,25 @@

    Examples

    class="code-example" *ngFor="let example of operatorExamples" appHighlightJs> -

    - - - - open_in_new - {{link.platform}} - +
    +
    - + + open_in_new + +
    
       
    diff --git a/src/app/operators/components/operator-examples/operator-examples.component.scss b/src/app/operators/components/operator-examples/operator-examples.component.scss index 44e72922..5e35cc2f 100644 --- a/src/app/operators/components/operator-examples/operator-examples.component.scss +++ b/src/app/operators/components/operator-examples/operator-examples.component.scss @@ -1,5 +1,10 @@ .code-block { position: relative; + + pre { + margin-top: 0; + padding-top: 0; + } } .menu-button { @@ -7,3 +12,23 @@ right: 0; top: 0; } + +.example-options { + position: absolute; + top: 0; + right: 0; +} + +.example-header { + align-content: center; + align-items: center; + display: flex; + justify-content: center; + padding: 8px 18px; + color: rgba(0, 0, 0, 0.692); + background: #fafafa; + + .header-title { + flex: 1 1 auto; + } +} diff --git a/src/app/operators/components/operator-parameters/operator-parameters.component.scss b/src/app/operators/components/operator-parameters/operator-parameters.component.scss index 490c1916..55687ef3 100644 --- a/src/app/operators/components/operator-parameters/operator-parameters.component.scss +++ b/src/app/operators/components/operator-parameters/operator-parameters.component.scss @@ -6,15 +6,18 @@ width: 100%; th { - // font-weight: 400; + background-color: #fafafa; max-width: 100px; padding: 12px 18px; text-align: left; + color: rgba(0, 0, 0, 0.692); + font-weight: normal; } td { font-weight: 400; padding: 8px 16px; border: 1px solid rgba(0,0,0,.03); + background-color: white; } } diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index ac226e4b..4e879a5d 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -9,7 +9,8 @@ import { MatCardModule, MatInputModule, MatMenuModule, - MatButtonModule + MatButtonModule, + MatTooltipModule } from '@angular/material'; import { ClipboardModule } from 'ngx-clipboard'; @@ -62,7 +63,8 @@ const OPERATOR_ROUTES = [ MatCardModule, MatInputModule, MatMenuModule, - MatButtonModule + MatButtonModule, + MatTooltipModule ] }) export class OperatorsModule { } diff --git a/src/operator-docs/combination/combineAll.ts b/src/operator-docs/combination/combineAll.ts index 8f557765..07b34d1e 100644 --- a/src/operator-docs/combination/combineAll.ts +++ b/src/operator-docs/combination/combineAll.ts @@ -55,10 +55,7 @@ export const combineAll: OperatorDoc = { const result = higherOrder.combineAll(); result.subscribe(x => console.log(x)); `, - 'externalLinks': [ - { 'platform': 'JSBin', 'url': 'jsbin.com'}, - { 'platform': 'JSFiddle', 'url': 'https://jsfiddle.net/sba9k56v/'} - ] + 'externalLink': { 'platform': 'JSBin', 'url': 'http://jsbin.com/peparawuvo/1/edit?js,console,output'} } ], 'relatedOperators': [ 'combineLatest', 'mergeAll' ], diff --git a/src/operator-docs/combination/combineLatest.ts b/src/operator-docs/combination/combineLatest.ts index 289e28d8..9d23b1ad 100644 --- a/src/operator-docs/combination/combineLatest.ts +++ b/src/operator-docs/combination/combineLatest.ts @@ -54,10 +54,7 @@ export const combineLatest: OperatorDoc = { */ bmi.subscribe(x => console.log('BMI is ' + x)); `, - 'externalLinks': [ - { 'platform': 'JSBin', 'url': 'jsbin.com'}, - { 'platform': 'JSFiddle', 'url': 'https://jsfiddle.net/sba9k56v/'} - ] + 'externalLink': { 'platform': 'JSBin', 'url': 'http://jsbin.com/pivowunedu/1/edit?js,console'} } ], 'relatedOperators': [ 'combineAll', 'merge', 'withLatestFrom' ], diff --git a/src/operator-docs/operator.model.ts b/src/operator-docs/operator.model.ts index 8662683a..b7a3348e 100644 --- a/src/operator-docs/operator.model.ts +++ b/src/operator-docs/operator.model.ts @@ -28,7 +28,7 @@ export interface OperatorParameters { export interface OperatorExample { name: string; code: string; - externalLinks: ExternalLink[]; + externalLink: ExternalLink; } export interface OperatorExtra { From 0bf3e2b5bff67a6800e5ec12cb271098bc7692d9 Mon Sep 17 00:00:00 2001 From: btroncone Date: Fri, 13 Oct 2017 13:11:53 -0400 Subject: [PATCH 28/33] removed unused routes --- src/app/operators/operators.module.ts | 7 ------- src/main.ts | 3 ++- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index 4e879a5d..950eb88a 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -30,13 +30,6 @@ import { WalkthroughComponent } from './components/walkthrough/walkthrough.compo import { OperatorScrollDirective } from './directives/operator-scroll.directive'; import { HighlightJsDirective } from './directives/highlight-js.directive'; -const OPERATOR_ROUTES = [ - { - path: '', - component: OperatorsComponent - } -]; - @NgModule({ declarations: [ OperatorsComponent, diff --git a/src/main.ts b/src/main.ts index 91ec6da5..c90d2d1f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,5 +8,6 @@ if (environment.production) { enableProdMode(); } -platformBrowserDynamic().bootstrapModule(AppModule) +platformBrowserDynamic() + .bootstrapModule(AppModule, { preserveWhitespaces: false }) .catch(err => console.log(err)); From 0e681a0e2db6bc5fcb0b9e929391acf26ab3dd65 Mon Sep 17 00:00:00 2001 From: btroncone Date: Mon, 16 Oct 2017 19:35:38 -0400 Subject: [PATCH 29/33] added jsbin iframe for examples --- .../operator-examples.component.html | 12 +++--------- .../operator-examples.component.scss | 8 ++++++++ src/app/operators/operators.module.ts | 5 ++++- src/app/operators/pipes/safe-url.pipe.ts | 14 ++++++++++++++ src/operator-docs/combination/combineAll.ts | 2 +- src/operator-docs/combination/combineLatest.ts | 2 +- 6 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 src/app/operators/pipes/safe-url.pipe.ts diff --git a/src/app/operators/components/operator-examples/operator-examples.component.html b/src/app/operators/components/operator-examples/operator-examples.component.html index 39f66daa..2b83085f 100644 --- a/src/app/operators/components/operator-examples/operator-examples.component.html +++ b/src/app/operators/components/operator-examples/operator-examples.component.html @@ -13,15 +13,9 @@

    Examples

    matTooltip="Copy"> content_copy - - open_in_new - -
    
    +    
    + +
    diff --git a/src/app/operators/components/operator-examples/operator-examples.component.scss b/src/app/operators/components/operator-examples/operator-examples.component.scss index 5e35cc2f..04923bf2 100644 --- a/src/app/operators/components/operator-examples/operator-examples.component.scss +++ b/src/app/operators/components/operator-examples/operator-examples.component.scss @@ -32,3 +32,11 @@ flex: 1 1 auto; } } + +.bin-wrapper { + iframe { + border: none; + width:100%; + height: 350px; + } +} diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index 950eb88a..fcc28b10 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -30,6 +30,8 @@ import { WalkthroughComponent } from './components/walkthrough/walkthrough.compo import { OperatorScrollDirective } from './directives/operator-scroll.directive'; import { HighlightJsDirective } from './directives/highlight-js.directive'; +import { SafeUrlPipe } from './pipes/safe-url.pipe'; + @NgModule({ declarations: [ OperatorsComponent, @@ -43,7 +45,8 @@ import { HighlightJsDirective } from './directives/highlight-js.directive'; WalkthroughComponent, MarbleDiagramComponent, OperatorScrollDirective, - HighlightJsDirective + HighlightJsDirective, + SafeUrlPipe ], imports: [ CommonModule, diff --git a/src/app/operators/pipes/safe-url.pipe.ts b/src/app/operators/pipes/safe-url.pipe.ts new file mode 100644 index 00000000..ee600aba --- /dev/null +++ b/src/app/operators/pipes/safe-url.pipe.ts @@ -0,0 +1,14 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; + +@Pipe({name: 'safeUrl'}) +export class SafeUrlPipe implements PipeTransform { + constructor(private _sanitizer: DomSanitizer) {} + + transform(url: string) { + if (!url) { + return url; + } + return this._sanitizer.bypassSecurityTrustResourceUrl(url); + } +} diff --git a/src/operator-docs/combination/combineAll.ts b/src/operator-docs/combination/combineAll.ts index 07b34d1e..32862952 100644 --- a/src/operator-docs/combination/combineAll.ts +++ b/src/operator-docs/combination/combineAll.ts @@ -55,7 +55,7 @@ export const combineAll: OperatorDoc = { const result = higherOrder.combineAll(); result.subscribe(x => console.log(x)); `, - 'externalLink': { 'platform': 'JSBin', 'url': 'http://jsbin.com/peparawuvo/1/edit?js,console,output'} + 'externalLink': { 'platform': 'JSBin', 'url': 'http://jsbin.com/peparawuvo/1/embed?js,console,output'} } ], 'relatedOperators': [ 'combineLatest', 'mergeAll' ], diff --git a/src/operator-docs/combination/combineLatest.ts b/src/operator-docs/combination/combineLatest.ts index 9d23b1ad..dc794bc2 100644 --- a/src/operator-docs/combination/combineLatest.ts +++ b/src/operator-docs/combination/combineLatest.ts @@ -54,7 +54,7 @@ export const combineLatest: OperatorDoc = { */ bmi.subscribe(x => console.log('BMI is ' + x)); `, - 'externalLink': { 'platform': 'JSBin', 'url': 'http://jsbin.com/pivowunedu/1/edit?js,console'} + 'externalLink': { 'platform': 'JSBin', 'url': 'http://jsbin.com/pivowunedu/1/embed?js,console'} } ], 'relatedOperators': [ 'combineAll', 'merge', 'withLatestFrom' ], From a8311b7a2d3712e914f53abf0420b7472a37458f Mon Sep 17 00:00:00 2001 From: btroncone Date: Tue, 17 Oct 2017 10:30:36 -0400 Subject: [PATCH 30/33] rx-marbles integration + responsive updates --- src/app/operators/_operator-theme.scss | 20 ++- .../marble-diagram.component.html | 8 +- .../marble-diagram.component.ts | 2 + .../operator-examples.component.scss | 2 +- .../operator-header.component.scss | 9 + .../operator/operator.component.html | 4 +- .../components/operator/operator.component.ts | 4 + src/app/operators/operators.component.html | 26 ++- src/app/operators/operators.component.scss | 7 + src/app/operators/operators.component.ts | 49 +++++- src/app/operators/operators.module.ts | 7 +- src/assets/rx-marbles/custom-elements.js | 37 ++++ src/assets/rx-marbles/element.js | 23 +++ src/assets/rx-marbles/native-shim.js | 164 ++++++++++++++++++ src/index.html | 3 + .../combination/combineLatest.ts | 5 +- src/operator-docs/operator.model.ts | 1 + src/styles/_media-helpers.scss | 3 +- 18 files changed, 345 insertions(+), 29 deletions(-) create mode 100644 src/assets/rx-marbles/custom-elements.js create mode 100644 src/assets/rx-marbles/element.js create mode 100644 src/assets/rx-marbles/native-shim.js diff --git a/src/app/operators/_operator-theme.scss b/src/app/operators/_operator-theme.scss index fdbb61e4..9f897813 100644 --- a/src/app/operators/_operator-theme.scss +++ b/src/app/operators/_operator-theme.scss @@ -9,6 +9,21 @@ $link-color: #2196F3; $accent: mat-color(map-get($theme, accent)); $operator-active-background: rgba($operator-active, .7); + rx-marbles > div { + text-align: center; + min-width: 840px; + + circle { + // temp fix: current broken on marble component + filter: none !important; + } + } + + app-operator a { + text-decoration: none; + color: $link-color; + } + .operator-list { a { border-bottom: 1px solid $operator-border; @@ -37,9 +52,4 @@ $link-color: #2196F3; } } } - - app-operator a { - text-decoration: none; - color: $link-color; - } } diff --git a/src/app/operators/components/marble-diagram/marble-diagram.component.html b/src/app/operators/components/marble-diagram/marble-diagram.component.html index 06ee6d19..b3cfc202 100644 --- a/src/app/operators/components/marble-diagram/marble-diagram.component.html +++ b/src/app/operators/components/marble-diagram/marble-diagram.component.html @@ -1,3 +1,9 @@ -
    +
    + + diff --git a/src/app/operators/components/marble-diagram/marble-diagram.component.ts b/src/app/operators/components/marble-diagram/marble-diagram.component.ts index c3f4d9d6..a146d4ae 100644 --- a/src/app/operators/components/marble-diagram/marble-diagram.component.ts +++ b/src/app/operators/components/marble-diagram/marble-diagram.component.ts @@ -7,5 +7,7 @@ import { OperatorParameters } from '../../../../operator-docs'; styleUrls: ['./marble-diagram.component.scss'] }) export class MarbleDiagramComponent { + @Input() operatorName: string; + @Input() useInteractiveMarbles: boolean; @Input() url: string; } diff --git a/src/app/operators/components/operator-examples/operator-examples.component.scss b/src/app/operators/components/operator-examples/operator-examples.component.scss index 04923bf2..bf9b15b6 100644 --- a/src/app/operators/components/operator-examples/operator-examples.component.scss +++ b/src/app/operators/components/operator-examples/operator-examples.component.scss @@ -24,7 +24,7 @@ align-items: center; display: flex; justify-content: center; - padding: 8px 18px; + padding: 8px 6px 8px 18px; color: rgba(0, 0, 0, 0.692); background: #fafafa; diff --git a/src/app/operators/components/operator-header/operator-header.component.scss b/src/app/operators/components/operator-header/operator-header.component.scss index 23fec756..26a6d174 100644 --- a/src/app/operators/components/operator-header/operator-header.component.scss +++ b/src/app/operators/components/operator-header/operator-header.component.scss @@ -1,5 +1,9 @@ @import '../../operator-theme'; +:host { + position: sticky; + top: 0px; +} .operator-name { font-size:30px; } @@ -13,3 +17,8 @@ mat-toolbar { color: rgba(255, 255, 255, 0.87); font-weight: normal; } + +.operator-header { + position: sticky; + top: 0px; +} diff --git a/src/app/operators/components/operator/operator.component.html b/src/app/operators/components/operator/operator.component.html index 9894f112..f0581f62 100644 --- a/src/app/operators/components/operator/operator.component.html +++ b/src/app/operators/components/operator/operator.component.html @@ -13,7 +13,9 @@

    + [operatorName]="operatorName" + [useInteractiveMarbles]="useInteractiveMarbles" + [url]="marbleUrl"> diff --git a/src/app/operators/components/operator/operator.component.ts b/src/app/operators/components/operator/operator.component.ts index 842ac9f0..4f262760 100644 --- a/src/app/operators/components/operator/operator.component.ts +++ b/src/app/operators/components/operator/operator.component.ts @@ -25,6 +25,10 @@ export class OperatorComponent { return this.operator.marbleUrl; } + get useInteractiveMarbles() { + return this.operator.useInteractiveMarbles; + } + get shortDescription() { return this.operator.shortDescription && this.operator.shortDescription.description; } diff --git a/src/app/operators/operators.component.html b/src/app/operators/operators.component.html index 1dbc4207..ef256efa 100644 --- a/src/app/operators/operators.component.html +++ b/src/app/operators/operators.component.html @@ -1,19 +1,17 @@ + class="operator-container"> + class="operator-list-sidenav" + #operatorSidenav>

    {{ category }}

    + [href]="'/operators#' + operator.name"> {{ operator.name }}
    @@ -23,3 +21,13 @@

    {{ category }}

    [operator]="operator">
    + + diff --git a/src/app/operators/operators.component.scss b/src/app/operators/operators.component.scss index c5b8283f..b5d36159 100644 --- a/src/app/operators/operators.component.scss +++ b/src/app/operators/operators.component.scss @@ -20,3 +20,10 @@ $subheader-color: #333; .operator-list-sidenav { width: 300px; } + +.sidenav-toggle { + position: fixed; + right: 20px; + bottom: 10px; + z-index: 4; +} diff --git a/src/app/operators/operators.component.ts b/src/app/operators/operators.component.ts index efeed516..42d7fffa 100644 --- a/src/app/operators/operators.component.ts +++ b/src/app/operators/operators.component.ts @@ -1,32 +1,52 @@ import { Component, OnInit, AfterViewInit, ChangeDetectionStrategy } from '@angular/core'; +import { trigger, state, style, animate, transition } from '@angular/animations'; import { Router, ActivatedRoute } from '@angular/router'; +import { BreakpointObserver } from '@angular/cdk/layout'; import { Subscription } from 'rxjs/Subscription'; import { Observable } from 'rxjs/Observable'; import { ALL_OPERATORS } from '../../operator-docs'; import { OperatorDoc } from '../../operator-docs/operator.model'; +const OPERATOR_MENU_GAP_LARGE = 64; +const OPERATOR_MENU_GAP_SMALL = 54; + @Component({ selector: 'app-operators', templateUrl: './operators.component.html', styleUrls: ['./operators.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush + animations: [ + trigger('growInOut', [ + state('in', style({opacity: 1})), + transition('void => *', [ + style({ + opacity: 0, + transform: 'scale3d(.3, .3, .3)' + }), + animate(`150ms ease-in`) + ]), + transition('* => void', [ + animate(`150ms ease-out`, style({ + opacity: 0, + transform: 'scale3d(.3, .3, .3)' + })) + ]) + ]) + ] }) export class OperatorsComponent implements OnInit, AfterViewInit { public operators = ALL_OPERATORS; public groupedOperators = groupOperatorsByType(ALL_OPERATORS); public categories = Object.keys(this.groupedOperators); - public activeOperator: string; private _subscription: Subscription; constructor( + private _breakpointObserver: BreakpointObserver, private _router: Router, private _activatedRoute: ActivatedRoute ) { } ngOnInit() { - this.activeOperator = this._activatedRoute.snapshot.fragment || this.operators[0].name; - this._subscription = this._activatedRoute .fragment .subscribe(name => this.scrollToOperator(name)); @@ -37,8 +57,8 @@ export class OperatorsComponent implements OnInit, AfterViewInit { const name = this._activatedRoute.snapshot.fragment; if (name) { - // wait a tick for scroll to be accurate - Promise.resolve().then(_ => this.scrollToOperator(name)); + // slight delay for scroll to be accurate + setTimeout(() => this.scrollToOperator(name), 100); } } @@ -53,6 +73,23 @@ export class OperatorsComponent implements OnInit, AfterViewInit { element.scrollIntoView(); } } + + get extraSmallScreen() { + return this._breakpointObserver.isMatched('(max-width: 601px)'); + } + + get smallScreen() { + return this._breakpointObserver.isMatched('(max-width: 901px)'); + } + + get operatorMenuGap() { + return this.extraSmallScreen ? OPERATOR_MENU_GAP_SMALL : OPERATOR_MENU_GAP_LARGE; + } + + get sidenavMode() { + return this.smallScreen ? 'over' : 'side'; + } + } export function groupOperatorsByType(operators: OperatorDoc[]) { diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index fcc28b10..9ffecb2a 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -1,5 +1,6 @@ -import { NgModule } from '@angular/core'; +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { CommonModule } from '@angular/common'; +import { LayoutModule } from '@angular/cdk/layout'; import { MatSidenavModule, MatIconModule, @@ -52,6 +53,7 @@ import { SafeUrlPipe } from './pipes/safe-url.pipe'; CommonModule, OperatorsRoutingModule, ClipboardModule, + LayoutModule, MatSidenavModule, MatIconModule, MatListModule, @@ -61,6 +63,7 @@ import { SafeUrlPipe } from './pipes/safe-url.pipe'; MatMenuModule, MatButtonModule, MatTooltipModule - ] + ], + schemas: [ CUSTOM_ELEMENTS_SCHEMA ] }) export class OperatorsModule { } diff --git a/src/assets/rx-marbles/custom-elements.js b/src/assets/rx-marbles/custom-elements.js new file mode 100644 index 00000000..5b87834d --- /dev/null +++ b/src/assets/rx-marbles/custom-elements.js @@ -0,0 +1,37 @@ +(function(){ + 'use strict';var h=new function(){};var aa=new Set("annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" "));function m(b){var a=aa.has(b);b=/^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(b);return!a&&b}function n(b){var a=b.isConnected;if(void 0!==a)return a;for(;b&&!(b.__CE_isImportDocument||b instanceof Document);)b=b.parentNode||(window.ShadowRoot&&b instanceof ShadowRoot?b.host:void 0);return!(!b||!(b.__CE_isImportDocument||b instanceof Document))} + function p(b,a){for(;a&&a!==b&&!a.nextSibling;)a=a.parentNode;return a&&a!==b?a.nextSibling:null} + function t(b,a,d){d=d?d:new Set;for(var c=b;c;){if(c.nodeType===Node.ELEMENT_NODE){var e=c;a(e);var f=e.localName;if("link"===f&&"import"===e.getAttribute("rel")){c=e.import;if(c instanceof Node&&!d.has(c))for(d.add(c),c=c.firstChild;c;c=c.nextSibling)t(c,a,d);c=p(b,e);continue}else if("template"===f){c=p(b,e);continue}if(e=e.__CE_shadowRoot)for(e=e.firstChild;e;e=e.nextSibling)t(e,a,d)}c=c.firstChild?c.firstChild:p(b,c)}}function u(b,a,d){b[a]=d};function v(){this.a=new Map;this.o=new Map;this.f=[];this.b=!1}function ba(b,a,d){b.a.set(a,d);b.o.set(d.constructor,d)}function w(b,a){b.b=!0;b.f.push(a)}function x(b,a){b.b&&t(a,function(a){return y(b,a)})}function y(b,a){if(b.b&&!a.__CE_patched){a.__CE_patched=!0;for(var d=0;d1?new e(t,n):1===i?new o.ScalarObservable(t[0],n):new s.EmptyObservable(n)},e.dispatch=function(t){var e=t.array,r=t.index,n=t.count,i=t.subscriber;return r>=n?void i.complete():(i.next(e[r]),void(i.closed||(t.index=r+1,this.schedule(t))))},e.prototype._subscribe=function(t){var r=0,n=this.array,i=n.length,o=this.scheduler;if(o)return o.schedule(e.dispatch,0,{array:n,index:r,count:i,subscriber:t});for(var s=0;s0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(o.OuterSubscriber);e.MergeAllSubscriber=c},function(t,e,r){"use strict";var n=r(4),i=r(44);n.Observable.defer=i.defer},function(t,e,r){"use strict";var n=r(45);e.defer=n.DeferObservable.create},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(4),o=r(35),s=r(34),u=function(t){function e(e){t.call(this),this.observableFactory=e}return n(e,t),e.create=function(t){return new e(t)},e.prototype._subscribe=function(t){return new c(t,this.observableFactory)},e}(i.Observable);e.DeferObservable=u;var c=function(t){function e(e,r){t.call(this,e),this.factory=r,this.tryDefer()}return n(e,t),e.prototype.tryDefer=function(){try{this._callFactory()}catch(t){this._error(t)}},e.prototype._callFactory=function(){var t=this.factory();t&&this.add(o.subscribeToResult(this,t))},e}(s.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(47);n.Observable.empty=i.empty},function(t,e,r){"use strict";var n=r(32);e.empty=n.EmptyObservable.create},function(t,e,r){"use strict";var n=r(4),i=r(49);n.Observable.forkJoin=i.forkJoin},function(t,e,r){"use strict";var n=r(50);e.forkJoin=n.ForkJoinObservable.create},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(4),o=r(32),s=r(10),u=r(35),c=r(34),a=function(t){function e(e,r){t.call(this),this.sources=e,this.resultSelector=r}return n(e,t),e.create=function(){for(var t=[],r=0;rd?d:e):e}function o(t){return"number"==typeof t&&c.root.isFinite(t)}function s(t){var e=+t;return 0===e?e:isNaN(e)?e:e<0?-1:1}var u=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},c=r(5),a=r(4),f=r(37),l=function(t){function e(e,r){if(t.call(this),this.scheduler=r,null==e)throw new Error("iterator cannot be null.");this.iterator=n(e)}return u(e,t),e.create=function(t,r){return new e(t,r)},e.dispatch=function(t){var e=t.index,r=t.hasError,n=t.iterator,i=t.subscriber;if(r)return void i.error(t.error);var o=n.next();return o.done?void i.complete():(i.next(o.value),t.index=e+1,i.closed?void("function"==typeof n.return&&n.return()):void this.schedule(t))},e.prototype._subscribe=function(t){var r=0,n=this,i=n.iterator,o=n.scheduler;if(o)return o.schedule(e.dispatch,0,{index:r,iterator:i,subscriber:t});for(;;){var s=i.next();if(s.done){t.complete();break}if(t.next(s.value),t.closed){"function"==typeof i.return&&i.return();break}}},e}(a.Observable);e.IteratorObservable=l;var p=function(){function t(t,e,r){void 0===e&&(e=0),void 0===r&&(r=t.length),this.str=t,this.idx=e,this.len=r}return t.prototype[f.$$iterator]=function(){return this},t.prototype.next=function(){return this.idx=n)return void i.complete();i.next(e[r]),t.index=r+1,this.schedule(t)}},e.prototype._subscribe=function(t){var r=0,n=this,i=n.arrayLike,o=n.scheduler,s=i.length;if(o)return o.schedule(e.dispatch,0,{arrayLike:i,index:r,length:s,subscriber:t});for(var u=0;u=0}var i=r(10);e.isNumeric=n},function(t,e,r){"use strict";var n=r(77),i=r(79);e.async=new i.AsyncScheduler(n.AsyncAction)},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(5),o=r(78),s=function(t){function e(e,r){t.call(this,e,r),this.scheduler=e,this.work=r,this.pending=!1}return n(e,t),e.prototype.schedule=function(t,e){if(void 0===e&&(e=0),this.closed)return this;this.state=t,this.pending=!0;var r=this.id,n=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(n,r,e)),this.delay=e,this.id=this.id||this.requestAsyncId(n,this.id,e),this},e.prototype.requestAsyncId=function(t,e,r){return void 0===r&&(r=0),i.root.setInterval(t.flush.bind(t,this),r)},e.prototype.recycleAsyncId=function(t,e,r){return void 0===r&&(r=0),null!==r&&this.delay===r?e:i.root.clearInterval(e)&&void 0||void 0},e.prototype.execute=function(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var r=this._execute(t,e);return r?r:void(this.pending===!1&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null)))},e.prototype._execute=function(t,e){var r=!1,n=void 0;try{this.work(t)}catch(t){r=!0,n=!!t&&t||new Error(t)}if(r)return this.unsubscribe(),n},e.prototype._unsubscribe=function(){var t=this.id,e=this.scheduler,r=e.actions,n=r.indexOf(this);this.work=null,this.delay=null,this.state=null,this.pending=!1,this.scheduler=null,n!==-1&&r.splice(n,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null))},e}(o.Action);e.AsyncAction=s},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(9),o=function(t){function e(e,r){t.call(this)}return n(e,t),e.prototype.schedule=function(t,e){return void 0===e&&(e=0),this},e}(i.Subscription);e.Action=o},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(80),o=function(t){function e(){t.apply(this,arguments),this.actions=[],this.active=!1,this.scheduled=void 0}return n(e,t),e.prototype.flush=function(t){var e=this.actions;if(this.active)return void e.push(t);var r;this.active=!0;do if(r=t.execute(t.state,t.delay))break;while(t=e.shift());if(this.active=!1,r){for(;t=e.shift();)t.unsubscribe();throw r}},e}(i.Scheduler);e.AsyncScheduler=o},function(t,e){"use strict";var r=function(){function t(e,r){void 0===r&&(r=t.now),this.SchedulerAction=e,this.now=r}return t.prototype.schedule=function(t,e,r){return void 0===e&&(e=0),new this.SchedulerAction(this,t).schedule(r,e)},t.now=Date.now?Date.now:function(){return+new Date},t}();e.Scheduler=r},function(t,e,r){"use strict";var n=r(4),i=r(82);n.Observable.merge=i.merge},function(t,e,r){"use strict";var n=r(83);e.merge=n.mergeStatic},function(t,e,r){"use strict";function n(){for(var t=[],e=0;e1&&"number"==typeof t[t.length-1]&&(r=t.pop())):"number"==typeof i&&(r=t.pop()),null===n&&1===t.length?t[0]:new o.ArrayObservable(t,n).lift(new s.MergeAllOperator(r))}var o=r(30),s=r(42),u=r(29);e.merge=n,e.mergeStatic=i},function(t,e,r){"use strict";var n=r(4),i=r(85);n.Observable.race=i.raceStatic},function(t,e,r){"use strict";function n(){for(var t=[],e=0;e=n?void i.complete():(i.next(e),void(i.closed||(t.index=r+1,t.start=e+1,this.schedule(t))))},e.prototype._subscribe=function(t){var r=0,n=this.start,i=this._count,o=this.scheduler;if(o)return o.schedule(e.dispatch,0,{index:r,count:i,start:n,subscriber:t});for(;;){if(r++>=i){t.complete();break}if(t.next(n++),t.closed)break}},e}(i.Observable);e.RangeObservable=o},function(t,e,r){"use strict";var n=r(4),i=r(101);n.Observable.using=i.using},function(t,e,r){"use strict";var n=r(102);e.using=n.UsingObservable.create},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(4),o=r(35),s=r(34),u=function(t){function e(e,r){t.call(this),this.resourceFactory=e,this.observableFactory=r}return n(e,t),e.create=function(t,r){return new e(t,r)},e.prototype._subscribe=function(t){var e,r=this,n=r.resourceFactory,i=r.observableFactory;try{return e=n(),new c(t,e,i)}catch(e){t.error(e)}},e}(i.Observable);e.UsingObservable=u;var c=function(t){function e(e,r,n){t.call(this,e),this.resource=r,this.observableFactory=n,e.add(r),this.tryUse()}return n(e,t),e.prototype.tryUse=function(){try{var t=this.observableFactory.call(this,this.resource);t&&this.add(o.subscribeToResult(this,t))}catch(t){this._error(t)}},e}(s.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(104);n.Observable.throw=i._throw},function(t,e,r){"use strict";var n=r(105);e._throw=n.ErrorObservable.create},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(4),o=function(t){function e(e,r){t.call(this),this.error=e,this.scheduler=r}return n(e,t),e.create=function(t,r){return new e(t,r)},e.dispatch=function(t){var e=t.error,r=t.subscriber;r.error(e)},e.prototype._subscribe=function(t){var r=this.error,n=this.scheduler;return n?n.schedule(e.dispatch,0,{error:r,subscriber:t}):void t.error(r)},e}(i.Observable);e.ErrorObservable=o},function(t,e,r){"use strict";var n=r(4),i=r(107);n.Observable.timer=i.timer},function(t,e,r){"use strict";var n=r(108);e.timer=n.TimerObservable.create},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(75),o=r(4),s=r(76),u=r(29),c=r(109),a=function(t){function e(e,r,n){void 0===e&&(e=0),t.call(this),this.period=-1,this.dueTime=0,i.isNumeric(r)?this.period=Number(r)<1&&1||Number(r):u.isScheduler(r)&&(n=r),u.isScheduler(n)||(n=s.async),this.scheduler=n,this.dueTime=c.isDate(e)?+e-this.scheduler.now():e}return n(e,t),e.create=function(t,r,n){return void 0===t&&(t=0),new e(t,r,n)},e.dispatch=function(t){var e=t.index,r=t.period,n=t.subscriber,i=this;if(n.next(e),!n.closed){if(r===-1)return n.complete();t.index=e+1,i.schedule(t,r)}},e.prototype._subscribe=function(t){var r=0,n=this,i=n.period,o=n.dueTime,s=n.scheduler;return s.schedule(e.dispatch,o,{index:r,period:i,subscriber:t})},e}(o.Observable);e.TimerObservable=a},function(t,e){"use strict";function r(t){return t instanceof Date&&!isNaN(+t)}e.isDate=r},function(t,e,r){"use strict";var n=r(4),i=r(111);n.Observable.zip=i.zip},function(t,e,r){"use strict";var n=r(112);e.zip=n.zipStatic},function(t,e,r){"use strict";function n(){for(var t=[],e=0;ethis.index},t.prototype.hasCompleted=function(){return this.array.length===this.index},t}(),y=function(t){function e(e,r,n){t.call(this,e),this.parent=r,this.observable=n,this.stillUnsubscribed=!0,this.buffer=[],this.isComplete=!1}return o(e,t),e.prototype[l.$$iterator]=function(){return this},e.prototype.next=function(){var t=this.buffer;return 0===t.length&&this.isComplete?{value:null,done:!0}:{value:t.shift(),done:!1}},e.prototype.hasValue=function(){return this.buffer.length>0},e.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},e.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},e.prototype.notifyNext=function(t,e,r,n,i){this.buffer.push(e),this.parent.checkIterators()},e.prototype.subscribe=function(t,e){return f.subscribeToResult(this,this.observable,this,e)},e}(a.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(114);n.Observable.ajax=i.ajax},function(t,e,r){"use strict";var n=r(115);e.ajax=n.AjaxObservable.create},function(t,e,r){"use strict";function n(){if(l.root.XMLHttpRequest){var t=new l.root.XMLHttpRequest;return"withCredentials"in t&&(t.withCredentials=!!this.withCredentials),t}if(l.root.XDomainRequest)return new l.root.XDomainRequest;throw new Error("CORS is not supported by your browser")}function i(){if(l.root.XMLHttpRequest)return new l.root.XMLHttpRequest;var t=void 0;try{for(var e=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],r=0;r<3;r++)try{if(t=e[r],new l.root.ActiveXObject(t))break}catch(t){}return new l.root.ActiveXObject(t)}catch(t){throw new Error("XMLHttpRequest is not supported by your browser")}}function o(t,e){return void 0===e&&(e=null),new b({method:"GET",url:t,headers:e})}function s(t,e,r){return new b({method:"POST",url:t,body:e,headers:r})}function u(t,e){return new b({method:"DELETE", +url:t,headers:e})}function c(t,e,r){return new b({method:"PUT",url:t,body:e,headers:r})}function a(t,e){return new b({method:"GET",url:t,responseType:"json",headers:e}).lift(new y.MapOperator(function(t,e){return t.response},null))}var f=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},l=r(5),p=r(12),h=r(13),d=r(4),v=r(7),y=r(116);e.ajaxGet=o,e.ajaxPost=s,e.ajaxDelete=u,e.ajaxPut=c,e.ajaxGetJSON=a;var b=function(t){function e(e){t.call(this);var r={async:!0,createXHR:function(){return this.crossDomain?n.call(this):i()},crossDomain:!1,withCredentials:!1,headers:{},method:"GET",responseType:"json",timeout:0};if("string"==typeof e)r.url=e;else for(var o in e)e.hasOwnProperty(o)&&(r[o]=e[o]);this.request=r}return f(e,t),e.prototype._subscribe=function(t){return new m(t,this.request)},e.create=function(){var t=function(t){return new e(t)};return t.get=o,t.post=s,t.delete=u,t.put=c,t.getJSON=a,t}(),e}(d.Observable);e.AjaxObservable=b;var m=function(t){function e(e,r){t.call(this,e),this.request=r,this.done=!1;var n=r.headers=r.headers||{};r.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest"),"Content-Type"in n||l.root.FormData&&r.body instanceof l.root.FormData||"undefined"==typeof r.body||(n["Content-Type"]="application/x-www-form-urlencoded; charset=UTF-8"),r.body=this.serializeBody(r.body,r.headers["Content-Type"]),this.send()}return f(e,t),e.prototype.next=function(t){this.done=!0;var e=this,r=e.xhr,n=e.request,i=e.destination,o=new _(t,r,n);i.next(o)},e.prototype.send=function(){var t=this,e=t.request,r=t.request,n=r.user,i=r.method,o=r.url,s=r.async,u=r.password,c=r.headers,a=r.body,f=e.createXHR,l=p.tryCatch(f).call(e);if(l===h.errorObject)this.error(h.errorObject.e);else{this.xhr=l,this.setupEvents(l,e);var d=void 0;if(d=n?p.tryCatch(l.open).call(l,i,o,s,n,u):p.tryCatch(l.open).call(l,i,o,s),d===h.errorObject)return this.error(h.errorObject.e),null;if(l.timeout=e.timeout,l.responseType=e.responseType,this.setHeaders(l,c),d=a?p.tryCatch(l.send).call(l,a):p.tryCatch(l.send).call(l),d===h.errorObject)return this.error(h.errorObject.e),null}return l},e.prototype.serializeBody=function(t,e){if(!t||"string"==typeof t)return t;if(l.root.FormData&&t instanceof l.root.FormData)return t;if(e){var r=e.indexOf(";");r!==-1&&(e=e.substring(0,r))}switch(e){case"application/x-www-form-urlencoded":return Object.keys(t).map(function(e){return encodeURI(e)+"="+encodeURI(t[e])}).join("&");case"application/json":return JSON.stringify(t);default:return t}},e.prototype.setHeaders=function(t,e){for(var r in e)e.hasOwnProperty(r)&&t.setRequestHeader(r,e[r])},e.prototype.setupEvents=function(t,e){function r(t){var e=r,n=e.subscriber,i=e.progressSubscriber,o=e.request;i&&i.error(t),n.error(new g(this,o))}function n(t){var e=n,r=e.subscriber,i=e.progressSubscriber,o=e.request;if(4===this.readyState){var s=1223===this.status?204:this.status,u="text"===this.responseType?this.response||this.responseText:this.response;0===s&&(s=u?200:0),200<=s&&s<300?(i&&i.complete(),r.next(t),r.complete()):(i&&i.error(t),r.error(new x("ajax error "+s,this,o)))}}var i=e.progressSubscriber;if(t.ontimeout=r,r.request=e,r.subscriber=this,r.progressSubscriber=i,t.upload&&"withCredentials"in t){if(i){var o;o=function(t){var e=o.progressSubscriber;e.next(t)},l.root.XDomainRequest?t.onprogress=o:t.upload.onprogress=o,o.progressSubscriber=i}var s;s=function(t){var e=s,r=e.progressSubscriber,n=e.subscriber,i=e.request;r&&r.error(t),n.error(new x("ajax error",this,i))},t.onerror=s,s.request=e,s.subscriber=this,s.progressSubscriber=i}t.onreadystatechange=n,n.subscriber=this,n.progressSubscriber=i,n.request=e},e.prototype.unsubscribe=function(){var e=this,r=e.done,n=e.xhr;!r&&n&&4!==n.readyState&&"function"==typeof n.abort&&n.abort(),t.prototype.unsubscribe.call(this)},e}(v.Subscriber);e.AjaxSubscriber=m;var _=function(){function t(t,e,r){switch(this.originalEvent=t,this.xhr=e,this.request=r,this.status=e.status,this.responseType=e.responseType||r.responseType,this.responseType){case"json":"response"in e?this.response=e.responseType?e.response:JSON.parse(e.response||e.responseText||"null"):this.response=JSON.parse(e.responseText||"null");break;case"xml":this.response=e.responseXML;break;case"text":default:this.response="response"in e?e.response:e.responseText}}return t}();e.AjaxResponse=_;var x=function(t){function e(e,r,n){t.call(this,e),this.message=e,this.xhr=r,this.request=n,this.status=r.status}return f(e,t),e}(Error);e.AjaxError=x;var g=function(t){function e(e,r){t.call(this,"ajax timeout",e,r)}return f(e,t),e}(x);e.AjaxTimeoutError=g},function(t,e,r){"use strict";function n(t,e){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return this.lift(new s(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.map=n;var s=function(){function t(t,e){this.project=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.project,this.thisArg))},t}();e.MapOperator=s;var u=function(t){function e(e,r,n){t.call(this,e),this.project=r,this.count=0,this.thisArg=n||this}return i(e,t),e.prototype._next=function(t){var e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(118);n.Observable.webSocket=i.webSocket},function(t,e,r){"use strict";var n=r(119);e.webSocket=n.WebSocketSubject.create},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(3),o=r(7),s=r(4),u=r(9),c=r(5),a=r(120),f=r(12),l=r(13),p=r(124),h=function(t){function e(e,r){if(e instanceof s.Observable)t.call(this,r,e);else{if(t.call(this),this.WebSocketCtor=c.root.WebSocket,this._output=new i.Subject,"string"==typeof e?this.url=e:p.assign(this,e),!this.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new a.ReplaySubject}}return n(e,t),e.prototype.resultSelector=function(t){return JSON.parse(t.data)},e.create=function(t){return new e(t)},e.prototype.lift=function(t){var r=new e(this,this.destination);return r.operator=t,r},e.prototype._resetState=function(){this.socket=null,this.source||(this.destination=new a.ReplaySubject),this._output=new i.Subject},e.prototype.multiplex=function(t,e,r){var n=this;return new s.Observable(function(i){var o=f.tryCatch(t)();o===l.errorObject?i.error(l.errorObject.e):n.next(o);var s=n.subscribe(function(t){var e=f.tryCatch(r)(t);e===l.errorObject?i.error(l.errorObject.e):e&&i.next(t)},function(t){return i.error(t)},function(){return i.complete()});return function(){var t=f.tryCatch(e)();t===l.errorObject?i.error(l.errorObject.e):n.next(t),s.unsubscribe()}})},e.prototype._connectSocket=function(){var t=this,e=this.WebSocketCtor,r=this._output,n=null;try{n=this.protocol?new e(this.url,this.protocol):new e(this.url),this.socket=n}catch(t){return void r.error(t)}var i=new u.Subscription(function(){t.socket=null,n&&1===n.readyState&&n.close()});n.onopen=function(e){var s=t.openObserver;s&&s.next(e);var u=t.destination;t.destination=o.Subscriber.create(function(t){return 1===n.readyState&&n.send(t)},function(e){var i=t.closingObserver;i&&i.next(void 0),e&&e.code?n.close(e.code,e.reason):r.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),t._resetState()},function(){var e=t.closingObserver;e&&e.next(void 0),n.close(),t._resetState()}),u&&u instanceof a.ReplaySubject&&i.add(u.subscribe(t.destination))},n.onerror=function(e){t._resetState(),r.error(e)},n.onclose=function(e){t._resetState();var n=t.closeObserver;n&&n.next(e),e.wasClean?r.complete():r.error(e)},n.onmessage=function(e){var n=f.tryCatch(t.resultSelector)(e);n===l.errorObject?r.error(l.errorObject.e):r.next(n)}},e.prototype._subscribe=function(t){var e=this,r=this.source;if(r)return r.subscribe(t);this.socket||this._connectSocket();var n=new u.Subscription;return n.add(this._output.subscribe(t)),n.add(function(){var t=e.socket;0===e._output.observers.length&&(t&&1===t.readyState&&t.close(),e._resetState())}),n},e.prototype.unsubscribe=function(){var e=this,r=e.source,n=e.socket;n&&1===n.readyState&&(n.close(),this._resetState()),t.prototype.unsubscribe.call(this),r||(this.destination=new a.ReplaySubject)},e}(i.AnonymousSubject);e.WebSocketSubject=h},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(3),o=r(121),s=r(9),u=r(57),c=r(18),a=r(19),f=function(t){function e(e,r,n){void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===r&&(r=Number.POSITIVE_INFINITY),t.call(this),this.scheduler=n,this._events=[],this._bufferSize=e<1?1:e,this._windowTime=r<1?1:r}return n(e,t),e.prototype.next=function(e){var r=this._getNow();this._events.push(new l(r,e)),this._trimBufferThenGetEvents(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){var e,r=this._trimBufferThenGetEvents(),n=this.scheduler;if(this.closed)throw new c.ObjectUnsubscribedError;this.hasError?e=s.Subscription.EMPTY:this.isStopped?e=s.Subscription.EMPTY:(this.observers.push(t),e=new a.SubjectSubscription(this,t)),n&&t.add(t=new u.ObserveOnSubscriber(t,n));for(var i=r.length,o=0;oe&&(o=Math.max(o,i-e)),o>0&&n.splice(0,o),n},e}(i.Subject);e.ReplaySubject=f;var l=function(){function t(t,e){this.time=t,this.value=e}return t}()},function(t,e,r){"use strict";var n=r(122),i=r(123);e.queue=new i.QueueScheduler(n.QueueAction)},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(77),o=function(t){function e(e,r){t.call(this,e,r),this.scheduler=e,this.work=r}return n(e,t),e.prototype.schedule=function(e,r){return void 0===r&&(r=0),r>0?t.prototype.schedule.call(this,e,r):(this.delay=r,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,r){return r>0||this.closed?t.prototype.execute.call(this,e,r):this._execute(e,r)},e.prototype.requestAsyncId=function(e,r,n){return void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0?t.prototype.requestAsyncId.call(this,e,r,n):e.flush(this)},e}(i.AsyncAction);e.QueueAction=o},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(79),o=function(t){function e(){t.apply(this,arguments)}return n(e,t),e}(i.AsyncScheduler);e.QueueScheduler=o},function(t,e,r){"use strict";function n(t){for(var e=[],r=1;r0;){var n=r.shift();n.length>0&&e.next(n)}t.prototype._complete.call(this)},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(130);n.Observable.prototype.bufferTime=i.bufferTime},function(t,e,r){"use strict";function n(t){var e=arguments.length,r=c.async;f.isScheduler(arguments[arguments.length-1])&&(r=arguments[arguments.length-1],e--);var n=null;e>=2&&(n=arguments[1]);var i=Number.POSITIVE_INFINITY;return e>=3&&(i=arguments[2]),this.lift(new l(t,n,i,r))}function i(t){var e=t.subscriber,r=t.context;r&&e.closeContext(r),e.closed||(t.context=e.openContext(),t.context.closeAction=this.schedule(t,t.bufferTimeSpan))}function o(t){var e=t.bufferCreationInterval,r=t.bufferTimeSpan,n=t.subscriber,i=t.scheduler,o=n.openContext(),u=this;n.closed||(n.add(o.closeAction=i.schedule(s,r,{subscriber:n,context:o})),u.schedule(t,e))}function s(t){var e=t.subscriber,r=t.context;e.closeContext(r)}var u=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},c=r(76),a=r(7),f=r(29);e.bufferTime=n;var l=function(){function t(t,e,r,n){this.bufferTimeSpan=t,this.bufferCreationInterval=e,this.maxBufferSize=r,this.scheduler=n}return t.prototype.call=function(t,e){return e.subscribe(new h(t,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))},t}(),p=function(){function t(){this.buffer=[]}return t}(),h=function(t){function e(e,r,n,u,c){t.call(this,e),this.bufferTimeSpan=r,this.bufferCreationInterval=n,this.maxBufferSize=u,this.scheduler=c,this.contexts=[];var a=this.openContext();if(this.timespanOnly=null==n||n<0,this.timespanOnly){var f={subscriber:this,context:a,bufferTimeSpan:r};this.add(a.closeAction=c.schedule(i,r,f))}else{var l={subscriber:this,context:a},p={bufferTimeSpan:r,bufferCreationInterval:n,subscriber:this,scheduler:c};this.add(a.closeAction=c.schedule(s,r,l)),this.add(c.schedule(o,n,p))}}return u(e,t),e.prototype._next=function(t){for(var e,r=this.contexts,n=r.length,i=0;i0;){var i=r.shift();n.next(i.buffer)}t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.contexts=null},e.prototype.onBufferFull=function(t){this.closeContext(t);var e=t.closeAction;if(e.unsubscribe(),this.remove(e),!this.closed&&this.timespanOnly){t=this.openContext();var r=this.bufferTimeSpan,n={subscriber:this,context:t,bufferTimeSpan:r};this.add(t.closeAction=this.scheduler.schedule(i,r,n))}},e.prototype.openContext=function(){var t=new p;return this.contexts.push(t),t},e.prototype.closeContext=function(t){this.destination.next(t.buffer);var e=this.contexts,r=e?e.indexOf(t):-1;r>=0&&e.splice(e.indexOf(t),1)},e}(a.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(132);n.Observable.prototype.bufferToggle=i.bufferToggle},function(t,e,r){"use strict";function n(t,e){return this.lift(new c(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(9),s=r(35),u=r(34);e.bufferToggle=n;var c=function(){function t(t,e){this.openings=t,this.closingSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.openings,this.closingSelector))},t}(),a=function(t){function e(e,r,n){t.call(this,e),this.openings=r,this.closingSelector=n,this.contexts=[],this.add(s.subscribeToResult(this,r))}return i(e,t),e.prototype._next=function(t){for(var e=this.contexts,r=e.length,n=0;n0;){var n=r.shift();n.subscription.unsubscribe(),n.buffer=null,n.subscription=null}this.contexts=null,t.prototype._error.call(this,e)},e.prototype._complete=function(){for(var e=this.contexts;e.length>0;){var r=e.shift();this.destination.next(r.buffer),r.subscription.unsubscribe(),r.buffer=null,r.subscription=null}this.contexts=null,t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,r,n,i){t?this.closeBuffer(t):this.openBuffer(e)},e.prototype.notifyComplete=function(t){this.closeBuffer(t.context)},e.prototype.openBuffer=function(t){try{var e=this.closingSelector,r=e.call(this,t);r&&this.trySubscribe(r)}catch(t){this._error(t)}},e.prototype.closeBuffer=function(t){var e=this.contexts;if(e&&t){var r=t.buffer,n=t.subscription;this.destination.next(r),e.splice(e.indexOf(t),1),this.remove(n),n.unsubscribe()}},e.prototype.trySubscribe=function(t){var e=this.contexts,r=[],n=new o.Subscription,i={buffer:r,subscription:n};e.push(i);var u=s.subscribeToResult(this,t,i);!u||u.closed?this.closeBuffer(i):(u.context=i,this.add(u),n.add(u))},e}(u.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(134);n.Observable.prototype.bufferWhen=i.bufferWhen},function(t,e,r){"use strict";function n(t){return this.lift(new f(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(9),s=r(12),u=r(13),c=r(34),a=r(35);e.bufferWhen=n;var f=function(){function t(t){this.closingSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.closingSelector))},t}(),l=function(t){function e(e,r){t.call(this,e),this.closingSelector=r,this.subscribing=!1,this.openBuffer()}return i(e,t),e.prototype._next=function(t){this.buffer.push(t)},e.prototype._complete=function(){var e=this.buffer;e&&this.destination.next(e),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},e.prototype.notifyNext=function(t,e,r,n,i){this.openBuffer()},e.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},e.prototype.openBuffer=function(){var t=this.closingSubscription;t&&(this.remove(t),t.unsubscribe());var e=this.buffer;this.buffer&&this.destination.next(e),this.buffer=[];var r=s.tryCatch(this.closingSelector)();r===u.errorObject?this.error(u.errorObject.e):(t=new o.Subscription,this.closingSubscription=t,this.add(t),this.subscribing=!0,t.add(a.subscribeToResult(this,r)),this.subscribing=!1)},e}(c.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(136);n.Observable.prototype.catch=i._catch,n.Observable.prototype._catch=i._catch},function(t,e,r){"use strict";function n(t){var e=new u(t),r=this.lift(e);return e.caught=r}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(34),s=r(35);e._catch=n;var u=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.selector,this.caught))},t}(),c=function(t){function e(e,r,n){t.call(this,e),this.selector=r,this.caught=n}return i(e,t),e.prototype.error=function(t){if(!this.isStopped){var e=void 0;try{e=this.selector(t,this.caught)}catch(t){return void this.destination.error(t)}this.unsubscribe(),this.destination.remove(this),s.subscribeToResult(this,e)}},e}(o.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(138);n.Observable.prototype.combineAll=i.combineAll},function(t,e,r){"use strict";function n(t){return this.lift(new i.CombineLatestOperator(t))}var i=r(33);e.combineAll=n},function(t,e,r){"use strict";var n=r(4),i=r(33);n.Observable.prototype.combineLatest=i.combineLatest},function(t,e,r){"use strict";var n=r(4),i=r(41);n.Observable.prototype.concat=i.concat},function(t,e,r){"use strict";var n=r(4),i=r(142);n.Observable.prototype.concatAll=i.concatAll},function(t,e,r){"use strict";function n(){return this.lift(new i.MergeAllOperator(1))}var i=r(42);e.concatAll=n},function(t,e,r){"use strict";var n=r(4),i=r(144);n.Observable.prototype.concatMap=i.concatMap},function(t,e,r){"use strict";function n(t,e){return this.lift(new i.MergeMapOperator(t,e,1))}var i=r(145);e.concatMap=n},function(t,e,r){"use strict";function n(t,e,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"number"==typeof e&&(r=e,e=null),this.lift(new u(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(35),s=r(34);e.mergeMap=n;var u=function(){function t(t,e,r){void 0===r&&(r=Number.POSITIVE_INFINITY),this.project=t,this.resultSelector=e,this.concurrent=r}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.project,this.resultSelector,this.concurrent))},t}();e.MergeMapOperator=u;var c=function(t){function e(e,r,n,i){void 0===i&&(i=Number.POSITIVE_INFINITY),t.call(this,e),this.project=r,this.resultSelector=n,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return i(e,t),e.prototype._next=function(t){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(s.OuterSubscriber);e.MergeMapSubscriber=c},function(t,e,r){"use strict";var n=r(4),i=r(147);n.Observable.prototype.concatMapTo=i.concatMapTo},function(t,e,r){"use strict";function n(t,e){return this.lift(new i.MergeMapToOperator(t,e,1))}var i=r(148);e.concatMapTo=n},function(t,e,r){"use strict";function n(t,e,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),"number"==typeof e&&(r=e,e=null),this.lift(new u(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(34),s=r(35);e.mergeMapTo=n;var u=function(){function t(t,e,r){void 0===r&&(r=Number.POSITIVE_INFINITY),this.ish=t,this.resultSelector=e,this.concurrent=r}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.ish,this.resultSelector,this.concurrent))},t}();e.MergeMapToOperator=u;var c=function(t){function e(e,r,n,i){void 0===i&&(i=Number.POSITIVE_INFINITY),t.call(this,e),this.ish=r,this.resultSelector=n,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return i(e,t),e.prototype._next=function(t){if(this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(o.OuterSubscriber);e.MergeMapToSubscriber=c},function(t,e,r){"use strict";var n=r(4),i=r(150);n.Observable.prototype.count=i.count},function(t,e,r){"use strict";function n(t){return this.lift(new s(t,this))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.count=n;var s=function(){function t(t,e){this.predicate=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.predicate,this.source))},t}(),u=function(t){function e(e,r,n){t.call(this,e),this.predicate=r,this.source=n,this.count=0,this.index=0}return i(e,t),e.prototype._next=function(t){this.predicate?this._tryPredicate(t):this.count++},e.prototype._tryPredicate=function(t){var e;try{e=this.predicate(t,this.index++,this.source)}catch(t){return void this.destination.error(t)}e&&this.count++},e.prototype._complete=function(){this.destination.next(this.count),this.destination.complete()},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(152);n.Observable.prototype.dematerialize=i.dematerialize},function(t,e,r){"use strict";function n(){return this.lift(new s)}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.dematerialize=n;var s=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new u(t))},t}(),u=function(t){function e(e){t.call(this,e)}return i(e,t),e.prototype._next=function(t){t.observe(this.destination)},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(154);n.Observable.prototype.debounce=i.debounce},function(t,e,r){"use strict";function n(t){return this.lift(new u(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(34),s=r(35);e.debounce=n;var u=function(){function t(t){this.durationSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.durationSelector))},t}(),c=function(t){function e(e,r){t.call(this,e),this.durationSelector=r,this.hasValue=!1,this.durationSubscription=null}return i(e,t),e.prototype._next=function(t){try{var e=this.durationSelector.call(this,t);e&&this._tryNext(t,e)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){this.emitValue(),this.destination.complete()},e.prototype._tryNext=function(t,e){var r=this.durationSubscription;this.value=t,this.hasValue=!0,r&&(r.unsubscribe(),this.remove(r)),r=s.subscribeToResult(this,e),r.closed||this.add(this.durationSubscription=r)},e.prototype.notifyNext=function(t,e,r,n,i){this.emitValue()},e.prototype.notifyComplete=function(){this.emitValue()},e.prototype.emitValue=function(){if(this.hasValue){var e=this.value,r=this.durationSubscription;r&&(this.durationSubscription=null,r.unsubscribe(),this.remove(r)),this.value=null,this.hasValue=!1,t.prototype._next.call(this,e)}},e}(o.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(156);n.Observable.prototype.debounceTime=i.debounceTime},function(t,e,r){"use strict";function n(t,e){return void 0===e&&(e=u.async),this.lift(new c(t,e))}function i(t){t.debouncedNext()}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},s=r(7),u=r(76);e.debounceTime=n;var c=function(){function t(t,e){this.dueTime=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.dueTime,this.scheduler))},t}(),a=function(t){function e(e,r,n){t.call(this,e),this.dueTime=r,this.scheduler=n,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}return o(e,t),e.prototype._next=function(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(i,this.dueTime,this))},e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},e.prototype.debouncedNext=function(){this.clearDebounce(),this.hasValue&&(this.destination.next(this.lastValue),this.lastValue=null,this.hasValue=!1)},e.prototype.clearDebounce=function(){var t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)},e}(s.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(158);n.Observable.prototype.defaultIfEmpty=i.defaultIfEmpty},function(t,e,r){"use strict";function n(t){return void 0===t&&(t=null),this.lift(new s(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.defaultIfEmpty=n;var s=function(){function t(t){this.defaultValue=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.defaultValue))},t}(),u=function(t){function e(e,r){t.call(this,e),this.defaultValue=r,this.isEmpty=!0}return i(e,t),e.prototype._next=function(t){this.isEmpty=!1,this.destination.next(t)},e.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(160);n.Observable.prototype.delay=i.delay},function(t,e,r){"use strict";function n(t,e){void 0===e&&(e=o.async);var r=s.isDate(t),n=r?+t-e.now():Math.abs(t);return this.lift(new a(n,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(76),s=r(109),u=r(7),c=r(58);e.delay=n;var a=function(){function t(t,e){this.delay=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new f(t,this.delay,this.scheduler))},t}(),f=function(t){function e(e,r,n){t.call(this,e),this.delay=r,this.scheduler=n,this.queue=[],this.active=!1,this.errored=!1}return i(e,t),e.dispatch=function(t){for(var e=t.source,r=e.queue,n=t.scheduler,i=t.destination;r.length>0&&r[0].time-n.now()<=0;)r.shift().notification.observe(i); +if(r.length>0){var o=Math.max(0,r[0].time-n.now());this.schedule(t,o)}else e.active=!1},e.prototype._schedule=function(t){this.active=!0,this.add(t.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))},e.prototype.scheduleNotification=function(t){if(this.errored!==!0){var e=this.scheduler,r=new l(e.now()+this.delay,t);this.queue.push(r),this.active===!1&&this._schedule(e)}},e.prototype._next=function(t){this.scheduleNotification(c.Notification.createNext(t))},e.prototype._error=function(t){this.errored=!0,this.queue=[],this.destination.error(t)},e.prototype._complete=function(){this.scheduleNotification(c.Notification.createComplete())},e}(u.Subscriber),l=function(){function t(t,e){this.time=t,this.notification=e}return t}()},function(t,e,r){"use strict";var n=r(4),i=r(162);n.Observable.prototype.delayWhen=i.delayWhen},function(t,e,r){"use strict";function n(t,e){return e?new l(this,e).lift(new a(t)):this.lift(new a(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7),s=r(4),u=r(34),c=r(35);e.delayWhen=n;var a=function(){function t(t){this.delayDurationSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new f(t,this.delayDurationSelector))},t}(),f=function(t){function e(e,r){t.call(this,e),this.delayDurationSelector=r,this.completed=!1,this.delayNotifierSubscriptions=[],this.values=[]}return i(e,t),e.prototype.notifyNext=function(t,e,r,n,i){this.destination.next(t),this.removeSubscription(i),this.tryComplete()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype.notifyComplete=function(t){var e=this.removeSubscription(t);e&&this.destination.next(e),this.tryComplete()},e.prototype._next=function(t){try{var e=this.delayDurationSelector(t);e&&this.tryDelay(e,t)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){this.completed=!0,this.tryComplete()},e.prototype.removeSubscription=function(t){t.unsubscribe();var e=this.delayNotifierSubscriptions.indexOf(t),r=null;return e!==-1&&(r=this.values[e],this.delayNotifierSubscriptions.splice(e,1),this.values.splice(e,1)),r},e.prototype.tryDelay=function(t,e){var r=c.subscribeToResult(this,t,e);this.add(r),this.delayNotifierSubscriptions.push(r),this.values.push(e)},e.prototype.tryComplete=function(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()},e}(u.OuterSubscriber),l=function(t){function e(e,r){t.call(this),this.source=e,this.subscriptionDelay=r}return i(e,t),e.prototype._subscribe=function(t){this.subscriptionDelay.subscribe(new p(t,this.source))},e}(s.Observable),p=function(t){function e(e,r){t.call(this),this.parent=e,this.source=r,this.sourceSubscribed=!1}return i(e,t),e.prototype._next=function(t){this.subscribeToSource()},e.prototype._error=function(t){this.unsubscribe(),this.parent.error(t)},e.prototype._complete=function(){this.subscribeToSource()},e.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(164);n.Observable.prototype.distinct=i.distinct},function(t,e,r){"use strict";function n(t,e){return this.lift(new c(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(34),s=r(35),u=r(165);e.distinct=n;var c=function(){function t(t,e){this.keySelector=t,this.flushes=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.keySelector,this.flushes))},t}(),a=function(t){function e(e,r,n){t.call(this,e),this.keySelector=r,this.values=new u.Set,n&&this.add(s.subscribeToResult(this,n))}return i(e,t),e.prototype.notifyNext=function(t,e,r,n,i){this.values.clear()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype._next=function(t){this.keySelector?this._useKeySelector(t):this._finalizeNext(t,t)},e.prototype._useKeySelector=function(t){var e,r=this.destination;try{e=this.keySelector(t)}catch(t){return void r.error(t)}this._finalizeNext(e,t)},e.prototype._finalizeNext=function(t,e){var r=this.values;r.has(t)||(r.add(t),this.destination.next(e))},e}(o.OuterSubscriber);e.DistinctSubscriber=a},function(t,e,r){"use strict";function n(){return function(){function t(){this._values=[]}return t.prototype.add=function(t){this.has(t)||this._values.push(t)},t.prototype.has=function(t){return this._values.indexOf(t)!==-1},Object.defineProperty(t.prototype,"size",{get:function(){return this._values.length},enumerable:!0,configurable:!0}),t.prototype.clear=function(){this._values.length=0},t}()}var i=r(5);e.minimalSetImpl=n,e.Set=i.root.Set||n()},function(t,e,r){"use strict";var n=r(4),i=r(167);n.Observable.prototype.distinctUntilChanged=i.distinctUntilChanged},function(t,e,r){"use strict";function n(t,e){return this.lift(new c(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7),s=r(12),u=r(13);e.distinctUntilChanged=n;var c=function(){function t(t,e){this.compare=t,this.keySelector=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.compare,this.keySelector))},t}(),a=function(t){function e(e,r,n){t.call(this,e),this.keySelector=n,this.hasKey=!1,"function"==typeof r&&(this.compare=r)}return i(e,t),e.prototype.compare=function(t,e){return t===e},e.prototype._next=function(t){var e=this.keySelector,r=t;if(e&&(r=s.tryCatch(this.keySelector)(t),r===u.errorObject))return this.destination.error(u.errorObject.e);var n=!1;if(this.hasKey){if(n=s.tryCatch(this.compare)(this.key,r),n===u.errorObject)return this.destination.error(u.errorObject.e)}else this.hasKey=!0;Boolean(n)===!1&&(this.key=r,this.destination.next(t))},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(169);n.Observable.prototype.distinctUntilKeyChanged=i.distinctUntilKeyChanged},function(t,e,r){"use strict";function n(t,e){return i.distinctUntilChanged.call(this,function(r,n){return e?e(r[t],n[t]):r[t]===n[t]})}var i=r(167);e.distinctUntilKeyChanged=n},function(t,e,r){"use strict";var n=r(4),i=r(171);n.Observable.prototype.do=i._do,n.Observable.prototype._do=i._do},function(t,e,r){"use strict";function n(t,e,r){return this.lift(new s(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e._do=n;var s=function(){function t(t,e,r){this.nextOrObserver=t,this.error=e,this.complete=r}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.nextOrObserver,this.error,this.complete))},t}(),u=function(t){function e(e,r,n,i){t.call(this,e);var s=new o.Subscriber(r,n,i);s.syncErrorThrowable=!0,this.add(s),this.safeSubscriber=s}return i(e,t),e.prototype._next=function(t){var e=this.safeSubscriber;e.next(t),e.syncErrorThrown?this.destination.error(e.syncErrorValue):this.destination.next(t)},e.prototype._error=function(t){var e=this.safeSubscriber;e.error(t),e.syncErrorThrown?this.destination.error(e.syncErrorValue):this.destination.error(t)},e.prototype._complete=function(){var t=this.safeSubscriber;t.complete(),t.syncErrorThrown?this.destination.error(t.syncErrorValue):this.destination.complete()},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(173);n.Observable.prototype.exhaust=i.exhaust},function(t,e,r){"use strict";function n(){return this.lift(new u)}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(34),s=r(35);e.exhaust=n;var u=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new c(t))},t}(),c=function(t){function e(e){t.call(this,e),this.hasCompleted=!1,this.hasSubscription=!1}return i(e,t),e.prototype._next=function(t){this.hasSubscription||(this.hasSubscription=!0,this.add(s.subscribeToResult(this,t)))},e.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete()},e.prototype.notifyComplete=function(t){this.remove(t),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},e}(o.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(175);n.Observable.prototype.exhaustMap=i.exhaustMap},function(t,e,r){"use strict";function n(t,e){return this.lift(new u(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(34),s=r(35);e.exhaustMap=n;var u=function(){function t(t,e){this.project=t,this.resultSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.project,this.resultSelector))},t}(),c=function(t){function e(e,r,n){t.call(this,e),this.project=r,this.resultSelector=n,this.hasSubscription=!1,this.hasCompleted=!1,this.index=0}return i(e,t),e.prototype._next=function(t){this.hasSubscription||this.tryNext(t)},e.prototype.tryNext=function(t){var e=this.index++,r=this.destination;try{var n=this.project(t,e);this.hasSubscription=!0,this.add(s.subscribeToResult(this,n,t,e))}catch(t){r.error(t)}},e.prototype._complete=function(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete()},e.prototype.notifyNext=function(t,e,r,n,i){var o=this,s=o.resultSelector,u=o.destination;s?this.trySelectResult(t,e,r,n):u.next(e)},e.prototype.trySelectResult=function(t,e,r,n){var i=this,o=i.resultSelector,s=i.destination;try{var u=o(t,e,r,n);s.next(u)}catch(t){s.error(t)}},e.prototype.notifyError=function(t){this.destination.error(t)},e.prototype.notifyComplete=function(t){this.remove(t),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()},e}(o.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(177);n.Observable.prototype.expand=i.expand},function(t,e,r){"use strict";function n(t,e,r){return void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===r&&(r=void 0),e=(e||0)<1?Number.POSITIVE_INFINITY:e,this.lift(new a(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(12),s=r(13),u=r(34),c=r(35);e.expand=n;var a=function(){function t(t,e,r){this.project=t,this.concurrent=e,this.scheduler=r}return t.prototype.call=function(t,e){return e.subscribe(new f(t,this.project,this.concurrent,this.scheduler))},t}();e.ExpandOperator=a;var f=function(t){function e(e,r,n,i){t.call(this,e),this.project=r,this.concurrent=n,this.scheduler=i,this.index=0,this.active=0,this.hasCompleted=!1,n0&&this._next(e.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},e}(u.OuterSubscriber);e.ExpandSubscriber=f},function(t,e,r){"use strict";var n=r(4),i=r(179);n.Observable.prototype.elementAt=i.elementAt},function(t,e,r){"use strict";function n(t,e){return this.lift(new u(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7),s=r(180);e.elementAt=n;var u=function(){function t(t,e){if(this.index=t,this.defaultValue=e,t<0)throw new s.ArgumentOutOfRangeError}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.index,this.defaultValue))},t}(),c=function(t){function e(e,r,n){t.call(this,e),this.index=r,this.defaultValue=n}return i(e,t),e.prototype._next=function(t){0===this.index--&&(this.destination.next(t),this.destination.complete())},e.prototype._complete=function(){var t=this.destination;this.index>=0&&("undefined"!=typeof this.defaultValue?t.next(this.defaultValue):t.error(new s.ArgumentOutOfRangeError)),t.complete()},e}(o.Subscriber)},function(t,e){"use strict";var r=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},n=function(t){function e(){var e=t.call(this,"argument out of range");this.name=e.name="ArgumentOutOfRangeError",this.stack=e.stack,this.message=e.message}return r(e,t),e}(Error);e.ArgumentOutOfRangeError=n},function(t,e,r){"use strict";var n=r(4),i=r(182);n.Observable.prototype.filter=i.filter},function(t,e,r){"use strict";function n(t,e){return this.lift(new s(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.filter=n;var s=function(){function t(t,e){this.predicate=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.predicate,this.thisArg))},t}(),u=function(t){function e(e,r,n){t.call(this,e),this.predicate=r,this.thisArg=n,this.count=0,this.predicate=r}return i(e,t),e.prototype._next=function(t){var e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(t){return void this.destination.error(t)}e&&this.destination.next(t)},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(184);n.Observable.prototype.finally=i._finally,n.Observable.prototype._finally=i._finally},function(t,e,r){"use strict";function n(t){return this.lift(new u(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7),s=r(9);e._finally=n;var u=function(){function t(t){this.callback=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.callback))},t}(),c=function(t){function e(e,r){t.call(this,e),this.add(new s.Subscription(r))}return i(e,t),e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(186);n.Observable.prototype.find=i.find},function(t,e,r){"use strict";function n(t,e){if("function"!=typeof t)throw new TypeError("predicate is not a function");return this.lift(new s(t,this,!1,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.find=n;var s=function(){function t(t,e,r,n){this.predicate=t,this.source=e,this.yieldIndex=r,this.thisArg=n}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.predicate,this.source,this.yieldIndex,this.thisArg))},t}();e.FindValueOperator=s;var u=function(t){function e(e,r,n,i,o){t.call(this,e),this.predicate=r,this.source=n,this.yieldIndex=i,this.thisArg=o,this.index=0}return i(e,t),e.prototype.notifyComplete=function(t){var e=this.destination;e.next(t),e.complete()},e.prototype._next=function(t){var e=this,r=e.predicate,n=e.thisArg,i=this.index++;try{var o=r.call(n||this,t,i,this.source);o&&this.notifyComplete(this.yieldIndex?i:t)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)},e}(o.Subscriber);e.FindValueSubscriber=u},function(t,e,r){"use strict";var n=r(4),i=r(188);n.Observable.prototype.findIndex=i.findIndex},function(t,e,r){"use strict";function n(t,e){return this.lift(new i.FindValueOperator(t,this,!0,e))}var i=r(186);e.findIndex=n},function(t,e,r){"use strict";var n=r(4),i=r(190);n.Observable.prototype.first=i.first},function(t,e,r){"use strict";function n(t,e,r){return this.lift(new u(t,e,r,this))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7),s=r(191);e.first=n;var u=function(){function t(t,e,r,n){this.predicate=t,this.resultSelector=e,this.defaultValue=r,this.source=n}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.predicate,this.resultSelector,this.defaultValue,this.source))},t}(),c=function(t){function e(e,r,n,i,o){t.call(this,e),this.predicate=r,this.resultSelector=n,this.defaultValue=i,this.source=o,this.index=0,this.hasCompleted=!1,this._emitted=!1}return i(e,t),e.prototype._next=function(t){var e=this.index++;this.predicate?this._tryPredicate(t,e):this._emit(t,e)},e.prototype._tryPredicate=function(t,e){var r;try{r=this.predicate(t,e,this.source)}catch(t){return void this.destination.error(t)}r&&this._emit(t,e)},e.prototype._emit=function(t,e){return this.resultSelector?void this._tryResultSelector(t,e):void this._emitFinal(t)},e.prototype._tryResultSelector=function(t,e){var r;try{r=this.resultSelector(t,e)}catch(t){return void this.destination.error(t)}this._emitFinal(r)},e.prototype._emitFinal=function(t){var e=this.destination;this._emitted||(this._emitted=!0,e.next(t),e.complete(),this.hasCompleted=!0)},e.prototype._complete=function(){var t=this.destination;this.hasCompleted||"undefined"==typeof this.defaultValue?this.hasCompleted||t.error(new s.EmptyError):(t.next(this.defaultValue),t.complete())},e}(o.Subscriber)},function(t,e){"use strict";var r=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},n=function(t){function e(){var e=t.call(this,"no elements in sequence");this.name=e.name="EmptyError",this.stack=e.stack,this.message=e.message}return r(e,t),e}(Error);e.EmptyError=n},function(t,e,r){"use strict";var n=r(4),i=r(193);n.Observable.prototype.groupBy=i.groupBy},function(t,e,r){"use strict";function n(t,e,r,n){return this.lift(new l(t,e,r,n))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7),s=r(9),u=r(4),c=r(3),a=r(194),f=r(196);e.groupBy=n;var l=function(){function t(t,e,r,n){this.keySelector=t,this.elementSelector=e,this.durationSelector=r,this.subjectSelector=n}return t.prototype.call=function(t,e){return e.subscribe(new p(t,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))},t}(),p=function(t){function e(e,r,n,i,o){t.call(this,e),this.keySelector=r,this.elementSelector=n,this.durationSelector=i,this.subjectSelector=o,this.groups=null,this.attemptedToUnsubscribe=!1,this.count=0}return i(e,t),e.prototype._next=function(t){var e;try{e=this.keySelector(t)}catch(t){return void this.error(t)}this._group(t,e)},e.prototype._group=function(t,e){var r=this.groups;r||(r=this.groups="string"==typeof e?new f.FastMap:new a.Map);var n,i=r.get(e);if(this.elementSelector)try{n=this.elementSelector(t)}catch(t){this.error(t)}else n=t;if(!i){i=this.subjectSelector?this.subjectSelector():new c.Subject,r.set(e,i);var o=new d(e,i,this);if(this.destination.next(o),this.durationSelector){var s=void 0;try{s=this.durationSelector(new d(e,i))}catch(t){return void this.error(t)}this.add(s.subscribe(new h(e,i,this)))}}i.closed||i.next(n)},e.prototype._error=function(t){var e=this.groups;e&&(e.forEach(function(e,r){e.error(t)}),e.clear()),this.destination.error(t)},e.prototype._complete=function(){var t=this.groups;t&&(t.forEach(function(t,e){t.complete()}),t.clear()),this.destination.complete()},e.prototype.removeGroup=function(t){this.groups.delete(t)},e.prototype.unsubscribe=function(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&t.prototype.unsubscribe.call(this))},e}(o.Subscriber),h=function(t){function e(e,r,n){t.call(this),this.key=e,this.group=r,this.parent=n}return i(e,t),e.prototype._next=function(t){this._complete()},e.prototype._error=function(t){var e=this.group;e.closed||e.error(t),this.parent.removeGroup(this.key)},e.prototype._complete=function(){var t=this.group;t.closed||t.complete(),this.parent.removeGroup(this.key)},e}(o.Subscriber),d=function(t){function e(e,r,n){t.call(this),this.key=e,this.groupSubject=r,this.refCountSubscription=n}return i(e,t),e.prototype._subscribe=function(t){var e=new s.Subscription,r=this,n=r.refCountSubscription,i=r.groupSubject;return n&&!n.closed&&e.add(new v(n)),e.add(i.subscribe(t)),e},e}(u.Observable);e.GroupedObservable=d;var v=function(t){function e(e){t.call(this),this.parent=e,e.count++}return i(e,t),e.prototype.unsubscribe=function(){var e=this.parent;e.closed||this.closed||(t.prototype.unsubscribe.call(this),e.count-=1,0===e.count&&e.attemptedToUnsubscribe&&e.unsubscribe())},e}(s.Subscription)},function(t,e,r){"use strict";var n=r(5),i=r(195);e.Map=n.root.Map||function(){return i.MapPolyfill}()},function(t,e){"use strict";var r=function(){function t(){this.size=0,this._values=[],this._keys=[]}return t.prototype.get=function(t){var e=this._keys.indexOf(t);return e===-1?void 0:this._values[e]},t.prototype.set=function(t,e){var r=this._keys.indexOf(t);return r===-1?(this._keys.push(t),this._values.push(e),this.size++):this._values[r]=e,this},t.prototype.delete=function(t){var e=this._keys.indexOf(t);return e!==-1&&(this._values.splice(e,1),this._keys.splice(e,1),this.size--,!0)},t.prototype.clear=function(){this._keys.length=0,this._values.length=0,this.size=0},t.prototype.forEach=function(t,e){for(var r=0;r0?e:r}:function(t,e){return t>e?t:e};return this.lift(new i.ReduceOperator(e))}var i=r(218);e.max=n},function(t,e,r){"use strict";function n(t,e){var r=!1;return arguments.length>=2&&(r=!0),this.lift(new s(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.reduce=n;var s=function(){function t(t,e,r){void 0===r&&(r=!1),this.accumulator=t,this.seed=e,this.hasSeed=r}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.accumulator,this.seed,this.hasSeed))},t}();e.ReduceOperator=s;var u=function(t){function e(e,r,n,i){t.call(this,e),this.accumulator=r,this.hasSeed=i,this.hasValue=!1,this.acc=n} +return i(e,t),e.prototype._next=function(t){this.hasValue||(this.hasValue=this.hasSeed)?this._tryReduce(t):(this.acc=t,this.hasValue=!0)},e.prototype._tryReduce=function(t){var e;try{e=this.accumulator(this.acc,t)}catch(t){return void this.destination.error(t)}this.acc=e},e.prototype._complete=function(){(this.hasValue||this.hasSeed)&&this.destination.next(this.acc),this.destination.complete()},e}(o.Subscriber);e.ReduceSubscriber=u},function(t,e,r){"use strict";var n=r(4),i=r(83);n.Observable.prototype.merge=i.merge},function(t,e,r){"use strict";var n=r(4),i=r(42);n.Observable.prototype.mergeAll=i.mergeAll},function(t,e,r){"use strict";var n=r(4),i=r(145);n.Observable.prototype.mergeMap=i.mergeMap,n.Observable.prototype.flatMap=i.mergeMap},function(t,e,r){"use strict";var n=r(4),i=r(148);n.Observable.prototype.flatMapTo=i.mergeMapTo,n.Observable.prototype.mergeMapTo=i.mergeMapTo},function(t,e,r){"use strict";var n=r(4),i=r(224);n.Observable.prototype.mergeScan=i.mergeScan},function(t,e,r){"use strict";function n(t,e,r){return void 0===r&&(r=Number.POSITIVE_INFINITY),this.lift(new a(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(12),s=r(13),u=r(35),c=r(34);e.mergeScan=n;var a=function(){function t(t,e,r){this.project=t,this.seed=e,this.concurrent=r}return t.prototype.call=function(t,e){return e.subscribe(new f(t,this.project,this.seed,this.concurrent))},t}();e.MergeScanOperator=a;var f=function(t){function e(e,r,n,i){t.call(this,e),this.project=r,this.acc=n,this.concurrent=i,this.hasValue=!1,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return i(e,t),e.prototype._next=function(t){if(this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&(this.hasValue===!1&&this.destination.next(this.acc),this.destination.complete())},e}(c.OuterSubscriber);e.MergeScanSubscriber=f},function(t,e,r){"use strict";var n=r(4),i=r(226);n.Observable.prototype.min=i.min},function(t,e,r){"use strict";function n(t){var e="function"==typeof t?function(e,r){return t(e,r)<0?e:r}:function(t,e){return t1)return void(this.connection=null);var r=this.connection,n=t._connection;this.connection=null,!n||r&&n!==r||n.unsubscribe()},e}(s.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(57);n.Observable.prototype.observeOn=i.observeOn},function(t,e,r){"use strict";var n=r(4),i=r(93);n.Observable.prototype.onErrorResumeNext=i.onErrorResumeNext},function(t,e,r){"use strict";var n=r(4),i=r(233);n.Observable.prototype.pairwise=i.pairwise},function(t,e,r){"use strict";function n(){return this.lift(new s)}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.pairwise=n;var s=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new u(t))},t}(),u=function(t){function e(e){t.call(this,e),this.hasPrev=!1}return i(e,t),e.prototype._next=function(t){this.hasPrev?this.destination.next([this.prev,t]):this.hasPrev=!0,this.prev=t},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(235);n.Observable.prototype.partition=i.partition},function(t,e,r){"use strict";function n(t,e){return[o.filter.call(this,t,e),o.filter.call(this,i.not(t,e))]}var i=r(236),o=r(182);e.partition=n},function(t,e){"use strict";function r(t,e){function r(){return!r.pred.apply(r.thisArg,arguments)}return r.pred=t,r.thisArg=e,r}e.not=r},function(t,e,r){"use strict";var n=r(4),i=r(238);n.Observable.prototype.pluck=i.pluck},function(t,e,r){"use strict";function n(){for(var t=[],e=0;e-1&&(this.count=n-1),this.unsubscribe(),this.isStopped=!1,this.closed=!1,r.subscribe(this)}},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(253);n.Observable.prototype.repeatWhen=i.repeatWhen},function(t,e,r){"use strict";function n(t){return this.lift(new f(t,this))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(3),s=r(12),u=r(13),c=r(34),a=r(35);e.repeatWhen=n;var f=function(){function t(t,e){this.notifier=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.notifier,this.source))},t}(),l=function(t){function e(e,r,n){t.call(this,e),this.notifier=r,this.source=n}return i(e,t),e.prototype.complete=function(){if(!this.isStopped){var e=this.notifications,r=this.retries,n=this.retriesSubscription;if(r)this.notifications=null,this.retriesSubscription=null;else{if(e=new o.Subject,r=s.tryCatch(this.notifier)(e),r===u.errorObject)return t.prototype.complete.call(this);n=a.subscribeToResult(this,r)}this.unsubscribe(),this.closed=!1,this.notifications=e,this.retries=r,this.retriesSubscription=n,e.next()}},e.prototype._unsubscribe=function(){var t=this,e=t.notifications,r=t.retriesSubscription;e&&(e.unsubscribe(),this.notifications=null),r&&(r.unsubscribe(),this.retriesSubscription=null),this.retries=null},e.prototype.notifyNext=function(t,e,r,n,i){var o=this,s=o.notifications,u=o.retries,c=o.retriesSubscription;this.notifications=null,this.retries=null,this.retriesSubscription=null,this.unsubscribe(),this.isStopped=!1,this.closed=!1,this.notifications=s,this.retries=u,this.retriesSubscription=c,this.source.subscribe(this)},e}(c.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(255);n.Observable.prototype.retry=i.retry},function(t,e,r){"use strict";function n(t){return void 0===t&&(t=-1),this.lift(new s(t,this))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.retry=n;var s=function(){function t(t,e){this.count=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.count,this.source))},t}(),u=function(t){function e(e,r,n){t.call(this,e),this.count=r,this.source=n}return i(e,t),e.prototype.error=function(e){if(!this.isStopped){var r=this,n=r.source,i=r.count;if(0===i)return t.prototype.error.call(this,e);i>-1&&(this.count=i-1),this.unsubscribe(),this.isStopped=!1,this.closed=!1,n.subscribe(this)}},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(257);n.Observable.prototype.retryWhen=i.retryWhen},function(t,e,r){"use strict";function n(t){return this.lift(new f(t,this))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(3),s=r(12),u=r(13),c=r(34),a=r(35);e.retryWhen=n;var f=function(){function t(t,e){this.notifier=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new l(t,this.notifier,this.source))},t}(),l=function(t){function e(e,r,n){t.call(this,e),this.notifier=r,this.source=n}return i(e,t),e.prototype.error=function(e){if(!this.isStopped){var r=this.errors,n=this.retries,i=this.retriesSubscription;if(n)this.errors=null,this.retriesSubscription=null;else{if(r=new o.Subject,n=s.tryCatch(this.notifier)(r),n===u.errorObject)return t.prototype.error.call(this,u.errorObject.e);i=a.subscribeToResult(this,n)}this.unsubscribe(),this.closed=!1,this.errors=r,this.retries=n,this.retriesSubscription=i,r.next(e)}},e.prototype._unsubscribe=function(){var t=this,e=t.errors,r=t.retriesSubscription;e&&(e.unsubscribe(),this.errors=null),r&&(r.unsubscribe(),this.retriesSubscription=null),this.retries=null},e.prototype.notifyNext=function(t,e,r,n,i){var o=this,s=o.errors,u=o.retries,c=o.retriesSubscription;this.errors=null,this.retries=null,this.retriesSubscription=null,this.unsubscribe(),this.isStopped=!1,this.closed=!1,this.errors=s,this.retries=u,this.retriesSubscription=c,this.source.subscribe(this)},e}(c.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(259);n.Observable.prototype.sample=i.sample},function(t,e,r){"use strict";function n(t){return this.lift(new u(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(34),s=r(35);e.sample=n;var u=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){var r=new c(t),n=e.subscribe(r);return n.add(s.subscribeToResult(r,this.notifier)),n},t}(),c=function(t){function e(){t.apply(this,arguments),this.hasValue=!1}return i(e,t),e.prototype._next=function(t){this.value=t,this.hasValue=!0},e.prototype.notifyNext=function(t,e,r,n,i){this.emitValue()},e.prototype.notifyComplete=function(){this.emitValue()},e.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},e}(o.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(261);n.Observable.prototype.sampleTime=i.sampleTime},function(t,e,r){"use strict";function n(t,e){return void 0===e&&(e=u.async),this.lift(new c(t,e))}function i(t){var e=t.subscriber,r=t.period;e.notifyNext(),this.schedule(t,r)}var o=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},s=r(7),u=r(76);e.sampleTime=n;var c=function(){function t(t,e){this.period=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.period,this.scheduler))},t}(),a=function(t){function e(e,r,n){t.call(this,e),this.period=r,this.scheduler=n,this.hasValue=!1,this.add(n.schedule(i,r,{subscriber:this,period:r}))}return o(e,t),e.prototype._next=function(t){this.lastValue=t,this.hasValue=!0},e.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))},e}(s.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(263);n.Observable.prototype.scan=i.scan},function(t,e,r){"use strict";function n(t,e){var r=!1;return arguments.length>=2&&(r=!0),this.lift(new s(t,e,r))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.scan=n;var s=function(){function t(t,e,r){void 0===r&&(r=!1),this.accumulator=t,this.seed=e,this.hasSeed=r}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.accumulator,this.seed,this.hasSeed))},t}(),u=function(t){function e(e,r,n,i){t.call(this,e),this.accumulator=r,this._seed=n,this.hasSeed=i,this.index=0}return i(e,t),Object.defineProperty(e.prototype,"seed",{get:function(){return this._seed},set:function(t){this.hasSeed=!0,this._seed=t},enumerable:!0,configurable:!0}),e.prototype._next=function(t){return this.hasSeed?this._tryNext(t):(this.seed=t,void this.destination.next(t))},e.prototype._tryNext=function(t){var e,r=this.index++;try{e=this.accumulator(this.seed,t,r)}catch(t){this.destination.error(t)}this.seed=e,this.destination.next(e)},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(265);n.Observable.prototype.sequenceEqual=i.sequenceEqual},function(t,e,r){"use strict";function n(t,e){return this.lift(new c(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7),s=r(12),u=r(13);e.sequenceEqual=n;var c=function(){function t(t,e){this.compareTo=t,this.comparor=e}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.compareTo,this.comparor))},t}();e.SequenceEqualOperator=c;var a=function(t){function e(e,r,n){t.call(this,e),this.compareTo=r,this.comparor=n,this._a=[],this._b=[],this._oneComplete=!1,this.add(r.subscribe(new f(e,this)))}return i(e,t),e.prototype._next=function(t){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(t),this.checkValues())},e.prototype._complete=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0},e.prototype.checkValues=function(){for(var t=this,e=t._a,r=t._b,n=t.comparor;e.length>0&&r.length>0;){var i=e.shift(),o=r.shift(),c=!1;n?(c=s.tryCatch(n)(i,o),c===u.errorObject&&this.destination.error(u.errorObject.e)):c=i===o,c||this.emit(!1)}},e.prototype.emit=function(t){var e=this.destination;e.next(t),e.complete()},e.prototype.nextB=function(t){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(t),this.checkValues())},e}(o.Subscriber);e.SequenceEqualSubscriber=a;var f=function(t){function e(e,r){t.call(this,e),this.parent=r}return i(e,t),e.prototype._next=function(t){this.parent.nextB(t)},e.prototype._error=function(t){this.parent.error(t)},e.prototype._complete=function(){this.parent._complete()},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(267);n.Observable.prototype.share=i.share},function(t,e,r){"use strict";function n(){return new s.Subject}function i(){return o.multicast.call(this,n).refCount()}var o=r(228),s=r(3);e.share=i},function(t,e,r){"use strict";var n=r(4),i=r(269);n.Observable.prototype.single=i.single},function(t,e,r){"use strict";function n(t){return this.lift(new u(t,this))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7),s=r(191);e.single=n;var u=function(){function t(t,e){this.predicate=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.predicate,this.source))},t}(),c=function(t){function e(e,r,n){t.call(this,e),this.predicate=r,this.source=n,this.seenValue=!1,this.index=0}return i(e,t),e.prototype.applySingleValue=function(t){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=t)},e.prototype._next=function(t){var e=this.predicate;this.index++,e?this.tryNext(t):this.applySingleValue(t)},e.prototype.tryNext=function(t){try{var e=this.predicate(t,this.index,this.source);e&&this.applySingleValue(t)}catch(t){this.destination.error(t)}},e.prototype._complete=function(){var t=this.destination;this.index>0?(t.next(this.seenValue?this.singleValue:void 0),t.complete()):t.error(new s.EmptyError)},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(271);n.Observable.prototype.skip=i.skip},function(t,e,r){"use strict";function n(t){return this.lift(new s(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.skip=n;var s=function(){function t(t){this.total=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.total))},t}(),u=function(t){function e(e,r){t.call(this,e),this.total=r,this.count=0}return i(e,t),e.prototype._next=function(t){++this.count>this.total&&this.destination.next(t)},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(273);n.Observable.prototype.skipUntil=i.skipUntil},function(t,e,r){"use strict";function n(t){return this.lift(new u(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(34),s=r(35);e.skipUntil=n;var u=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.notifier))},t}(),c=function(t){function e(e,r){t.call(this,e),this.hasValue=!1,this.isInnerStopped=!1,this.add(s.subscribeToResult(this,r))}return i(e,t),e.prototype._next=function(e){this.hasValue&&t.prototype._next.call(this,e)},e.prototype._complete=function(){this.isInnerStopped?t.prototype._complete.call(this):this.unsubscribe()},e.prototype.notifyNext=function(t,e,r,n,i){this.hasValue=!0},e.prototype.notifyComplete=function(){this.isInnerStopped=!0,this.isStopped&&t.prototype._complete.call(this)},e}(o.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(275);n.Observable.prototype.skipWhile=i.skipWhile},function(t,e,r){"use strict";function n(t){return this.lift(new s(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7);e.skipWhile=n;var s=function(){function t(t){this.predicate=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.predicate))},t}(),u=function(t){function e(e,r){t.call(this,e),this.predicate=r,this.skipping=!0,this.index=0}return i(e,t),e.prototype._next=function(t){var e=this.destination;this.skipping&&this.tryCallPredicate(t),this.skipping||e.next(t)},e.prototype.tryCallPredicate=function(t){try{var e=this.predicate(t,this.index++);this.skipping=Boolean(e)}catch(t){this.destination.error(t)}},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(277);n.Observable.prototype.startWith=i.startWith},function(t,e,r){"use strict";function n(){for(var t=[],e=0;e1?u.concatStatic(new i.ArrayObservable(t,r),this):u.concatStatic(new s.EmptyObservable(r),this)}var i=r(30),o=r(31),s=r(32),u=r(41),c=r(29);e.startWith=n},function(t,e,r){"use strict";var n=r(4),i=r(279);n.Observable.prototype.subscribeOn=i.subscribeOn},function(t,e,r){"use strict";function n(t,e){return void 0===e&&(e=0),this.lift(new o(t,e))}var i=r(280);e.subscribeOn=n;var o=function(){function t(t,e){this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return new i.SubscribeOnObservable(e,this.delay,this.scheduler).subscribe(t)},t}()},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(4),o=r(281),s=r(75),u=function(t){function e(e,r,n){void 0===r&&(r=0),void 0===n&&(n=o.asap),t.call(this),this.source=e,this.delayTime=r,this.scheduler=n,(!s.isNumeric(r)||r<0)&&(this.delayTime=0),n&&"function"==typeof n.schedule||(this.scheduler=o.asap)}return n(e,t),e.create=function(t,r,n){return void 0===r&&(r=0),void 0===n&&(n=o.asap),new e(t,r,n)},e.dispatch=function(t){var e=t.source,r=t.subscriber;return this.add(e.subscribe(r))},e.prototype._subscribe=function(t){var r=this.delayTime,n=this.source,i=this.scheduler;return i.schedule(e.dispatch,r,{source:n,subscriber:t})},e}(i.Observable);e.SubscribeOnObservable=u},function(t,e,r){"use strict";var n=r(282),i=r(287);e.asap=new i.AsapScheduler(n.AsapAction)},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(283),o=r(77),s=function(t){function e(e,r){t.call(this,e,r),this.scheduler=e,this.work=r}return n(e,t),e.prototype.requestAsyncId=function(e,r,n){return void 0===n&&(n=0),null!==n&&n>0?t.prototype.requestAsyncId.call(this,e,r,n):(e.actions.push(this),e.scheduled||(e.scheduled=i.Immediate.setImmediate(e.flush.bind(e,null))))},e.prototype.recycleAsyncId=function(e,r,n){return void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0?t.prototype.recycleAsyncId.call(this,e,r,n):void(0===e.actions.length&&(i.Immediate.clearImmediate(r),e.scheduled=void 0))},e}(o.AsyncAction);e.AsapAction=s},function(t,e,r){(function(t,n){"use strict";var i=r(5),o=function(){function t(t){if(this.root=t,t.setImmediate&&"function"==typeof t.setImmediate)this.setImmediate=t.setImmediate.bind(t),this.clearImmediate=t.clearImmediate.bind(t);else{this.nextHandle=1,this.tasksByHandle={},this.currentlyRunningATask=!1,this.canUseProcessNextTick()?this.setImmediate=this.createProcessNextTickSetImmediate():this.canUsePostMessage()?this.setImmediate=this.createPostMessageSetImmediate():this.canUseMessageChannel()?this.setImmediate=this.createMessageChannelSetImmediate():this.canUseReadyStateChange()?this.setImmediate=this.createReadyStateChangeSetImmediate():this.setImmediate=this.createSetTimeoutSetImmediate();var e=function t(e){delete t.instance.tasksByHandle[e]};e.instance=this,this.clearImmediate=e}}return t.prototype.identify=function(t){return this.root.Object.prototype.toString.call(t)},t.prototype.canUseProcessNextTick=function(){return"[object process]"===this.identify(this.root.process)},t.prototype.canUseMessageChannel=function(){return Boolean(this.root.MessageChannel)},t.prototype.canUseReadyStateChange=function(){var t=this.root.document;return Boolean(t&&"onreadystatechange"in t.createElement("script"))},t.prototype.canUsePostMessage=function(){var t=this.root;if(t.postMessage&&!t.importScripts){var e=!0,r=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=r,e}return!1},t.prototype.partiallyApplied=function(t){for(var e=[],r=1;r=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},r(285),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,r){(function(t,e){!function(t,r){"use strict";function n(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),r=0;r1)for(var r=1;r0?this.active-1:0;var t=this.innerSubscription;t&&(t.unsubscribe(),this.remove(t))},e.prototype.notifyNext=function(t,e,r,n,i){this.destination.next(e)},e.prototype.notifyError=function(t){this.destination.error(t)},e.prototype.notifyComplete=function(){this.unsubscribeInner(),this.hasCompleted&&0===this.active&&this.destination.complete()},e}(o.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(291);n.Observable.prototype.switchMap=i.switchMap},function(t,e,r){"use strict";function n(t,e){return this.lift(new u(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(34),s=r(35);e.switchMap=n;var u=function(){function t(t,e){this.project=t,this.resultSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.project,this.resultSelector))},t}(),c=function(t){function e(e,r,n){t.call(this,e),this.project=r,this.resultSelector=n,this.index=0}return i(e,t),e.prototype._next=function(t){var e,r=this.index++;try{e=this.project(t,r)}catch(t){return void this.destination.error(t)}this._innerSub(e,t,r)},e.prototype._innerSub=function(t,e,r){var n=this.innerSubscription;n&&n.unsubscribe(),this.add(this.innerSubscription=s.subscribeToResult(this,t,e,r))},e.prototype._complete=function(){var e=this.innerSubscription;e&&!e.closed||t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.innerSubscription=null},e.prototype.notifyComplete=function(e){this.remove(e),this.innerSubscription=null,this.isStopped&&t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,r,n,i){this.resultSelector?this._tryNotifyNext(t,e,r,n):this.destination.next(e)},e.prototype._tryNotifyNext=function(t,e,r,n){var i;try{i=this.resultSelector(t,e,r,n)}catch(t){return void this.destination.error(t)}this.destination.next(i)},e}(o.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(293);n.Observable.prototype.switchMapTo=i.switchMapTo},function(t,e,r){"use strict";function n(t,e){return this.lift(new u(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(34),s=r(35);e.switchMapTo=n;var u=function(){function t(t,e){this.observable=t,this.resultSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.observable,this.resultSelector))},t}(),c=function(t){function e(e,r,n){t.call(this,e),this.inner=r,this.resultSelector=n,this.index=0}return i(e,t),e.prototype._next=function(t){var e=this.innerSubscription;e&&e.unsubscribe(),this.add(this.innerSubscription=s.subscribeToResult(this,this.inner,t,this.index++))},e.prototype._complete=function(){var e=this.innerSubscription;e&&!e.closed||t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.innerSubscription=null},e.prototype.notifyComplete=function(e){this.remove(e),this.innerSubscription=null,this.isStopped&&t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,r,n,i){var o=this,s=o.resultSelector,u=o.destination;s?this.tryResultSelector(t,e,r,n):u.next(e)},e.prototype.tryResultSelector=function(t,e,r,n){var i,o=this,s=o.resultSelector,u=o.destination;try{i=s(t,e,r,n)}catch(t){return void u.error(t)}u.next(i)},e}(o.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(295);n.Observable.prototype.take=i.take},function(t,e,r){"use strict";function n(t){return 0===t?new u.EmptyObservable:this.lift(new c(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7),s=r(180),u=r(32);e.take=n;var c=function(){function t(t){if(this.total=t,this.total<0)throw new s.ArgumentOutOfRangeError}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.total))},t}(),a=function(t){function e(e,r){t.call(this,e),this.total=r,this.count=0}return i(e,t),e.prototype._next=function(t){var e=this.total,r=++this.count;r<=e&&(this.destination.next(t),r===e&&(this.destination.complete(),this.unsubscribe()))},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(297);n.Observable.prototype.takeLast=i.takeLast},function(t,e,r){"use strict";function n(t){return 0===t?new u.EmptyObservable:this.lift(new c(t))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(7),s=r(180),u=r(32);e.takeLast=n;var c=function(){function t(t){if(this.total=t,this.total<0)throw new s.ArgumentOutOfRangeError}return t.prototype.call=function(t,e){return e.subscribe(new a(t,this.total))},t}(),a=function(t){function e(e,r){t.call(this,e),this.total=r,this.ring=new Array,this.count=0}return i(e,t),e.prototype._next=function(t){var e=this.ring,r=this.total,n=this.count++;if(e.length0)for(var r=this.count>=this.total?this.total:this.count,n=this.ring,i=0;i0?this.startWindowEvery:this.windowSize,r=this.destination,n=this.windowSize,i=this.windows,o=i.length,u=0;u=0&&c%e===0&&!this.closed&&i.shift().complete(),++this.count%e===0&&!this.closed){var a=new s.Subject;i.push(a),r.next(a)}},e.prototype._error=function(t){var e=this.windows;if(e)for(;e.length>0&&!this.closed;)e.shift().error(t);this.destination.error(t)},e.prototype._complete=function(){var t=this.windows;if(t)for(;t.length>0&&!this.closed;)t.shift().complete();this.destination.complete()},e.prototype._unsubscribe=function(){this.count=0,this.windows=null},e}(o.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(324);n.Observable.prototype.windowTime=i.windowTime},function(t,e,r){"use strict";function n(t,e,r){return void 0===e&&(e=null),void 0===r&&(r=a.async),this.lift(new l(t,e,r))}function i(t){var e=t.subscriber,r=t.windowTimeSpan,n=t.window;n&&n.complete(),t.window=e.openWindow(),this.schedule(t,r)}function o(t){var e=t.windowTimeSpan,r=t.subscriber,n=t.scheduler,i=t.windowCreationInterval,o=r.openWindow(),u=this,c={action:u,subscription:null},a={subscriber:r,window:o,context:c};c.subscription=n.schedule(s,e,a),u.add(c.subscription),u.schedule(t,i)}function s(t){var e=t.subscriber,r=t.window,n=t.context;n&&n.action&&n.subscription&&n.action.remove(n.subscription),e.closeWindow(r)}var u=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},c=r(3),a=r(76),f=r(7);e.windowTime=n;var l=function(){function t(t,e,r){this.windowTimeSpan=t,this.windowCreationInterval=e,this.scheduler=r}return t.prototype.call=function(t,e){return e.subscribe(new p(t,this.windowTimeSpan,this.windowCreationInterval,this.scheduler))},t}(),p=function(t){function e(e,r,n,u){if(t.call(this,e),this.destination=e,this.windowTimeSpan=r,this.windowCreationInterval=n,this.scheduler=u,this.windows=[],null!==n&&n>=0){var c=this.openWindow(),a={subscriber:this,window:c,context:null},f={windowTimeSpan:r,windowCreationInterval:n,subscriber:this,scheduler:u};this.add(u.schedule(s,r,a)),this.add(u.schedule(o,n,f))}else{var l=this.openWindow(),p={subscriber:this,window:l,windowTimeSpan:r};this.add(u.schedule(i,r,p))}}return u(e,t),e.prototype._next=function(t){for(var e=this.windows,r=e.length,n=0;n0;)e.shift().error(t);this.destination.error(t)},e.prototype._complete=function(){for(var t=this.windows;t.length>0;){var e=t.shift();e.closed||e.complete()}this.destination.complete()},e.prototype.openWindow=function(){var t=new c.Subject;this.windows.push(t);var e=this.destination;return e.next(t),t},e.prototype.closeWindow=function(t){t.complete();var e=this.windows;e.splice(e.indexOf(t),1)},e}(f.Subscriber)},function(t,e,r){"use strict";var n=r(4),i=r(326);n.Observable.prototype.windowToggle=i.windowToggle},function(t,e,r){"use strict";function n(t,e){return this.lift(new l(t,e))}var i=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},o=r(3),s=r(9),u=r(12),c=r(13),a=r(34),f=r(35);e.windowToggle=n;var l=function(){function t(t,e){this.openings=t,this.closingSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new p(t,this.openings,this.closingSelector))},t}(),p=function(t){function e(e,r,n){t.call(this,e),this.openings=r,this.closingSelector=n,this.contexts=[],this.add(this.openSubscription=f.subscribeToResult(this,r,r))}return i(e,t),e.prototype._next=function(t){var e=this.contexts;if(e)for(var r=e.length,n=0;n0){var s=o.indexOf(r);s!==-1&&o.splice(s,1)}},e.prototype.notifyComplete=function(){},e.prototype._next=function(t){if(0===this.toRespond.length){var e=[t].concat(this.values);this.project?this._tryProject(e):this.destination.next(e)}},e.prototype._tryProject=function(t){var e;try{e=this.project.apply(this,t)}catch(t){return void this.destination.error(t)}this.destination.next(e)},e}(o.OuterSubscriber)},function(t,e,r){"use strict";var n=r(4),i=r(112);n.Observable.prototype.zip=i.zipProto},function(t,e,r){"use strict";var n=r(4),i=r(333);n.Observable.prototype.zipAll=i.zipAll},function(t,e,r){"use strict";function n(t){return this.lift(new i.ZipOperator(t))}var i=r(112);e.zipAll=n},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(4),o=r(58),s=r(335),u=r(339),c=r(337),a=r(340),f=750,l=function(t){function e(e){t.call(this,a.VirtualAction,f),this.assertDeepEqual=e,this.hotObservables=[],this.coldObservables=[],this.flushTests=[]}return n(e,t),e.prototype.createTime=function(t){var r=t.indexOf("|");if(r===-1)throw new Error('marble diagram for time should have a completion marker "|"');return r*e.frameTimeFactor},e.prototype.createColdObservable=function(t,r,n){if(t.indexOf("^")!==-1)throw new Error('cold observable cannot have subscription offset "^"');if(t.indexOf("!")!==-1)throw new Error('cold observable cannot have unsubscription marker "!"');var i=e.parseMarbles(t,r,n),o=new s.ColdObservable(i,this);return this.coldObservables.push(o), +o},e.prototype.createHotObservable=function(t,r,n){if(t.indexOf("!")!==-1)throw new Error('hot observable cannot have unsubscription marker "!"');var i=e.parseMarbles(t,r,n),o=new u.HotObservable(i,this);return this.hotObservables.push(o),o},e.prototype.materializeInnerObservable=function(t,e){var r=this,n=[];return t.subscribe(function(t){n.push({frame:r.frame-e,notification:o.Notification.createNext(t)})},function(t){n.push({frame:r.frame-e,notification:o.Notification.createError(t)})},function(){n.push({frame:r.frame-e,notification:o.Notification.createComplete()})}),n},e.prototype.expectObservable=function(t,r){var n=this;void 0===r&&(r=null);var s,u=[],c={actual:u,ready:!1},a=e.parseMarblesAsSubscriptions(r).unsubscribedFrame;return this.schedule(function(){s=t.subscribe(function(t){var e=t;t instanceof i.Observable&&(e=n.materializeInnerObservable(e,n.frame)),u.push({frame:n.frame,notification:o.Notification.createNext(e)})},function(t){u.push({frame:n.frame,notification:o.Notification.createError(t)})},function(){u.push({frame:n.frame,notification:o.Notification.createComplete()})})},0),a!==Number.POSITIVE_INFINITY&&this.schedule(function(){return s.unsubscribe()},a),this.flushTests.push(c),{toBe:function(t,r,n){c.ready=!0,c.expected=e.parseMarbles(t,r,n,!0)}}},e.prototype.expectSubscriptions=function(t){var r={actual:t,ready:!1};return this.flushTests.push(r),{toBe:function(t){var n="string"==typeof t?[t]:t;r.ready=!0,r.expected=n.map(function(t){return e.parseMarblesAsSubscriptions(t)})}}},e.prototype.flush=function(){for(var e=this.hotObservables;e.length>0;)e.shift().setup();t.prototype.flush.call(this);for(var r=this.flushTests.filter(function(t){return t.ready});r.length>0;){var n=r.shift();this.assertDeepEqual(n.actual,n.expected)}},e.parseMarblesAsSubscriptions=function(t){if("string"!=typeof t)return new c.SubscriptionLog(Number.POSITIVE_INFINITY);for(var e=t.length,r=-1,n=Number.POSITIVE_INFINITY,i=Number.POSITIVE_INFINITY,o=0;o-1?r:s;break;case"!":if(i!==Number.POSITIVE_INFINITY)throw new Error("found a second subscription point '^' in a subscription marble diagram. There can only be one.");i=r>-1?r:s;break;default:throw new Error("there can only be '^' and '!' markers in a subscription marble diagram. Found instead '"+u+"'.")}}return i<0?new c.SubscriptionLog(n):new c.SubscriptionLog(n,i)},e.parseMarbles=function(t,e,r,n){if(void 0===n&&(n=!1),t.indexOf("!")!==-1)throw new Error('conventional marble diagrams cannot have the unsubscription marker "!"');for(var i=t.length,u=[],c=t.indexOf("^"),a=c===-1?0:c*-this.frameTimeFactor,f="object"!=typeof e?function(t){return t}:function(t){return n&&e[t]instanceof s.ColdObservable?e[t].messages:e[t]},l=-1,p=0;p-1?l:h,notification:d})}return u},e}(a.VirtualTimeScheduler);e.TestScheduler=l},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(4),o=r(9),s=r(336),u=r(338),c=function(t){function e(e,r){t.call(this,function(t){var e=this,r=e.logSubscribedFrame();return t.add(new o.Subscription(function(){e.logUnsubscribedFrame(r)})),e.scheduleMessages(t),t}),this.messages=e,this.subscriptions=[],this.scheduler=r}return n(e,t),e.prototype.scheduleMessages=function(t){for(var e=this.messages.length,r=0;re.index?1:-1:t.delay>e.delay?1:-1},e}(i.AsyncAction);e.VirtualAction=u},function(t,e,r){"use strict";var n=r(342),i=r(344);e.animationFrame=new i.AnimationFrameScheduler(n.AnimationFrameAction)},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(77),o=r(343),s=function(t){function e(e,r){t.call(this,e,r),this.scheduler=e,this.work=r}return n(e,t),e.prototype.requestAsyncId=function(e,r,n){return void 0===n&&(n=0),null!==n&&n>0?t.prototype.requestAsyncId.call(this,e,r,n):(e.actions.push(this),e.scheduled||(e.scheduled=o.AnimationFrame.requestAnimationFrame(e.flush.bind(e,null))))},e.prototype.recycleAsyncId=function(e,r,n){return void 0===n&&(n=0),null!==n&&n>0||null===n&&this.delay>0?t.prototype.recycleAsyncId.call(this,e,r,n):void(0===e.actions.length&&(o.AnimationFrame.cancelAnimationFrame(r),e.scheduled=void 0))},e}(i.AsyncAction);e.AnimationFrameAction=s},function(t,e,r){"use strict";var n=r(5),i=function(){function t(t){t.requestAnimationFrame?(this.cancelAnimationFrame=t.cancelAnimationFrame.bind(t),this.requestAnimationFrame=t.requestAnimationFrame.bind(t)):t.mozRequestAnimationFrame?(this.cancelAnimationFrame=t.mozCancelAnimationFrame.bind(t),this.requestAnimationFrame=t.mozRequestAnimationFrame.bind(t)):t.webkitRequestAnimationFrame?(this.cancelAnimationFrame=t.webkitCancelAnimationFrame.bind(t),this.requestAnimationFrame=t.webkitRequestAnimationFrame.bind(t)):t.msRequestAnimationFrame?(this.cancelAnimationFrame=t.msCancelAnimationFrame.bind(t),this.requestAnimationFrame=t.msRequestAnimationFrame.bind(t)):t.oRequestAnimationFrame?(this.cancelAnimationFrame=t.oCancelAnimationFrame.bind(t),this.requestAnimationFrame=t.oRequestAnimationFrame.bind(t)):(this.cancelAnimationFrame=t.clearTimeout.bind(t),this.requestAnimationFrame=function(e){return t.setTimeout(e,1e3/60)})}return t}();e.RequestAnimationFrameDefinition=i,e.AnimationFrame=new i(n.root)},function(t,e,r){"use strict";var n=this&&this.__extends||function(t,e){function r(){this.constructor=t}for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},i=r(79),o=function(t){function e(){t.apply(this,arguments)}return n(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,r=this.actions,n=-1,i=r.length;t=t||r.shift();do if(e=t.execute(t.state,t.delay))break;while(++n=this.max&&e._n(t)},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){var t=this.out;t!==f&&t._c()},t}(),O=function(){function t(t,e){this.out=t,this.op=e}return t.prototype._n=function(){this.op.end()},t.prototype._e=function(t){this.out._e(t)},t.prototype._c=function(){this.op.end()},t}(),S=function(){function t(t,e){this.type="endWhen",this.ins=e,this.out=f,this.o=t,this.oil=l}return t.prototype._start=function(t){this.out=t,this.o._add(this.oil=new O(t,this)),this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.o._remove(this.oil),this.out=f,this.oil=l},t.prototype.end=function(){var t=this.out;t!==f&&t._c()},t.prototype._n=function(t){var e=this.out;e!==f&&e._n(t)},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){this.end()},t}(),j=function(){function t(t,e){this.type="filter",this.ins=e,this.out=f,this.f=t}return t.prototype._start=function(t){this.out=t,this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=s(this,t,e);r!==f&&r&&e._n(t)}},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){var t=this.out;t!==f&&t._c()},t}(),E=function(){function t(t,e){this.out=t,this.op=e}return t.prototype._n=function(t){this.out._n(t)},t.prototype._e=function(t){this.out._e(t)},t.prototype._c=function(){this.op.inner=f,this.op.less()},t}(),T=function(){function t(t){this.type="flatten",this.ins=t,this.out=f,this.open=!0,this.inner=f,this.il=l}return t.prototype._start=function(t){this.out=t,this.open=!0,this.inner=f,this.il=l,this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.inner!==f&&this.inner._remove(this.il),this.out=f,this.open=!0,this.inner=f,this.il=l},t.prototype.less=function(){var t=this.out;t!==f&&(this.open||this.inner!==f||t._c())},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=this,n=r.inner,i=r.il;n!==f&&i!==l&&n._remove(i),(this.inner=t)._add(this.il=new E(e,this))}},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){this.open=!1,this.less()},t}(),k=function(){function t(t,e,r){var n=this;this.type="fold",this.ins=r,this.out=f,this.f=function(e){return t(n.acc,e)},this.acc=this.seed=e}return t.prototype._start=function(t){this.out=t,this.acc=this.seed,t._n(this.acc),this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f,this.acc=this.seed},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=s(this,t,e);r!==f&&e._n(this.acc=r)}},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){var t=this.out;t!==f&&t._c()},t}(),A=function(){function t(t){this.type="last",this.ins=t,this.out=f,this.has=!1,this.val=f}return t.prototype._start=function(t){this.out=t,this.has=!1,this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f,this.val=f},t.prototype._n=function(t){this.has=!0,this.val=t},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){var t=this.out;t!==f&&(this.has?(t._n(this.val),t._c()):t._e(new Error("last() failed because input stream completed")))},t}(),C=function(){function t(t,e){this.type="map",this.ins=e,this.out=f,this.f=t}return t.prototype._start=function(t){this.out=t,this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=s(this,t,e);r!==f&&e._n(r)}},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){var t=this.out;t!==f&&t._c()},t}(),P=function(){function t(t){this.type="remember",this.ins=t,this.out=f}return t.prototype._start=function(t){this.out=t,this.ins._add(t)},t.prototype._stop=function(){this.ins._remove(this.out),this.out=f},t}(),I=function(){function t(t,e){this.type="replaceError",this.ins=e,this.out=f,this.f=t}return t.prototype._start=function(t){this.out=t,this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f},t.prototype._n=function(t){var e=this.out;e!==f&&e._n(t)},t.prototype._e=function(t){var e=this.out;if(e!==f)try{this.ins._remove(this),(this.ins=this.f(t))._add(this)}catch(t){e._e(t)}},t.prototype._c=function(){var t=this.out;t!==f&&t._c()},t}(),N=function(){function t(t,e){this.type="startWith",this.ins=t,this.out=f,this.val=e}return t.prototype._start=function(t){this.out=t,this.out._n(this.val),this.ins._add(t)},t.prototype._stop=function(){this.ins._remove(this.out),this.out=f},t}(),M=function(){function t(t,e){this.type="take",this.ins=e,this.out=f,this.max=t,this.taken=0}return t.prototype._start=function(t){this.out=t,this.taken=0,this.max<=0?t._c():this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=++this.taken;r1))if(this._stopID!==f)clearTimeout(this._stopID),this._stopID=f;else{var n=this._prod;n!==f&&n._start(this)}},t.prototype._remove=function(t){var e=this,r=this._target;if(r!==f)return r._remove(t);var n=this._ils,i=n.indexOf(t);i>-1&&(n.splice(i,1),this._prod!==f&&n.length<=0?(this._err=f,this._stopID=setTimeout(function(){return e._stopNow()})):1===n.length&&this._pruneCycles())},t.prototype._pruneCycles=function(){this._hasNoSinks(this,[])&&this._remove(this._ils[0])},t.prototype._hasNoSinks=function(t,e){if(e.indexOf(t)!==-1)return!0;if(t.out===this)return!0;if(t.out&&t.out!==f)return this._hasNoSinks(t.out,e.concat(t));if(t._ils){for(var r=0,n=t._ils.length;r1)return void(this._has&&t._n(this._v));if(this._stopID!==f)this._has&&t._n(this._v),clearTimeout(this._stopID),this._stopID=f;else if(this._has)t._n(this._v);else{var n=this._prod;n!==f&&n._start(this)}},e.prototype._stopNow=function(){this._has=!1,t.prototype._stopNow.call(this)},e.prototype._x=function(){this._has=!1,t.prototype._x.call(this)},e.prototype.map=function(t){return this._map(t)},e.prototype.mapTo=function(e){return t.prototype.mapTo.call(this,e)},e.prototype.take=function(e){return t.prototype.take.call(this,e)},e.prototype.endWhen=function(e){return t.prototype.endWhen.call(this,e)},e.prototype.replaceError=function(e){return t.prototype.replaceError.call(this,e)},e.prototype.remember=function(){return this},e.prototype.debug=function(e){return t.prototype.debug.call(this,e)},e}(F);e.MemoryStream=D,Object.defineProperty(e,"__esModule",{value:!0}),e.default=F},function(t,e,r){t.exports=r(349)},function(t,e,r){(function(t,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o,s=r(351),u=i(s);o="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof t?t:n;var c=(0,u.default)(o);e.default=c}).call(e,function(){return this}(),r(350)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){"use strict";function r(t){var e,r=t.Symbol;return"function"==typeof r?r.observable?e=r.observable:(e=r("observable"),r.observable=e):e="@@observable",e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=r},function(t,e,r){"use strict";var n=r(353);e.thunk=n.thunk;var i=r(357);e.MainDOMSource=i.MainDOMSource;var o=r(368);e.HTMLSource=o.HTMLSource;var s=r(369);e.makeDOMDriver=s.makeDOMDriver;var u=r(445);e.makeHTMLDriver=u.makeHTMLDriver;var c=r(461);e.mockDOMSource=c.mockDOMSource,e.MockedDOMSource=c.MockedDOMSource;var a=r(373);e.h=a.h;var f=r(462);e.svg=f.default.svg,e.a=f.default.a,e.abbr=f.default.abbr,e.address=f.default.address,e.area=f.default.area,e.article=f.default.article,e.aside=f.default.aside,e.audio=f.default.audio,e.b=f.default.b,e.base=f.default.base,e.bdi=f.default.bdi,e.bdo=f.default.bdo,e.blockquote=f.default.blockquote,e.body=f.default.body,e.br=f.default.br,e.button=f.default.button,e.canvas=f.default.canvas,e.caption=f.default.caption,e.cite=f.default.cite,e.code=f.default.code,e.col=f.default.col,e.colgroup=f.default.colgroup,e.dd=f.default.dd,e.del=f.default.del,e.dfn=f.default.dfn,e.dir=f.default.dir,e.div=f.default.div,e.dl=f.default.dl,e.dt=f.default.dt,e.em=f.default.em,e.embed=f.default.embed,e.fieldset=f.default.fieldset,e.figcaption=f.default.figcaption,e.figure=f.default.figure,e.footer=f.default.footer,e.form=f.default.form,e.h1=f.default.h1,e.h2=f.default.h2,e.h3=f.default.h3,e.h4=f.default.h4,e.h5=f.default.h5,e.h6=f.default.h6,e.head=f.default.head,e.header=f.default.header,e.hgroup=f.default.hgroup,e.hr=f.default.hr,e.html=f.default.html,e.i=f.default.i,e.iframe=f.default.iframe,e.img=f.default.img,e.input=f.default.input,e.ins=f.default.ins,e.kbd=f.default.kbd,e.keygen=f.default.keygen,e.label=f.default.label,e.legend=f.default.legend,e.li=f.default.li,e.link=f.default.link,e.main=f.default.main,e.map=f.default.map,e.mark=f.default.mark,e.menu=f.default.menu,e.meta=f.default.meta,e.nav=f.default.nav,e.noscript=f.default.noscript,e.object=f.default.object,e.ol=f.default.ol,e.optgroup=f.default.optgroup,e.option=f.default.option,e.p=f.default.p,e.param=f.default.param,e.pre=f.default.pre,e.progress=f.default.progress,e.q=f.default.q,e.rp=f.default.rp,e.rt=f.default.rt,e.ruby=f.default.ruby,e.s=f.default.s,e.samp=f.default.samp,e.script=f.default.script,e.section=f.default.section,e.select=f.default.select,e.small=f.default.small,e.source=f.default.source,e.span=f.default.span,e.strong=f.default.strong,e.style=f.default.style,e.sub=f.default.sub,e.sup=f.default.sup,e.table=f.default.table,e.tbody=f.default.tbody,e.td=f.default.td,e.textarea=f.default.textarea,e.tfoot=f.default.tfoot,e.th=f.default.th,e.thead=f.default.thead,e.title=f.default.title,e.tr=f.default.tr,e.u=f.default.u,e.ul=f.default.ul,e.video=f.default.video},function(t,e,r){"use strict";function n(t,e){e.elm=t.elm,t.data.fn=e.data.fn,t.data.args=e.data.args,e.data=t.data,e.children=t.children,e.text=t.text,e.elm=t.elm}function i(t){var e=t.data,r=e.fn.apply(void 0,e.args);n(r,t)}function o(t,e){var r,i=t.data,o=e.data,s=i.args,u=o.args;for(i.fn===o.fn&&s.length===u.length||n(o.fn.apply(void 0,u),e),r=0;r=this.max&&e._n(t)},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){var t=this.out;t!==f&&t._c()},t}(),O=function(){function t(t,e){this.out=t,this.op=e}return t.prototype._n=function(){this.op.end()},t.prototype._e=function(t){this.out._e(t)},t.prototype._c=function(){this.op.end()},t}(),S=function(){function t(t,e){this.type="endWhen",this.ins=e,this.out=f,this.o=t,this.oil=l}return t.prototype._start=function(t){this.out=t,this.o._add(this.oil=new O(t,this)),this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.o._remove(this.oil),this.out=f,this.oil=l},t.prototype.end=function(){var t=this.out;t!==f&&t._c()},t.prototype._n=function(t){var e=this.out;e!==f&&e._n(t)},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){this.end()},t}(),j=function(){function t(t,e){this.type="filter",this.ins=e,this.out=f,this.f=t}return t.prototype._start=function(t){this.out=t,this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=s(this,t,e);r!==f&&r&&e._n(t)}},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){var t=this.out;t!==f&&t._c()},t}(),E=function(){function t(t,e){this.out=t,this.op=e}return t.prototype._n=function(t){this.out._n(t)},t.prototype._e=function(t){this.out._e(t)},t.prototype._c=function(){this.op.inner=f,this.op.less()},t}(),T=function(){function t(t){this.type="flatten",this.ins=t,this.out=f,this.open=!0,this.inner=f,this.il=l}return t.prototype._start=function(t){this.out=t,this.open=!0,this.inner=f,this.il=l,this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.inner!==f&&this.inner._remove(this.il),this.out=f,this.open=!0,this.inner=f,this.il=l},t.prototype.less=function(){var t=this.out;t!==f&&(this.open||this.inner!==f||t._c())},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=this,n=r.inner,i=r.il;n!==f&&i!==l&&n._remove(i),(this.inner=t)._add(this.il=new E(e,this))}},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){this.open=!1,this.less()},t}(),k=function(){function t(t,e,r){var n=this;this.type="fold",this.ins=r,this.out=f,this.f=function(e){return t(n.acc,e)},this.acc=this.seed=e}return t.prototype._start=function(t){this.out=t,this.acc=this.seed,t._n(this.acc),this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f,this.acc=this.seed},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=s(this,t,e);r!==f&&e._n(this.acc=r)}},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){var t=this.out;t!==f&&t._c()},t}(),A=function(){function t(t){this.type="last",this.ins=t,this.out=f,this.has=!1,this.val=f}return t.prototype._start=function(t){this.out=t,this.has=!1,this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f,this.val=f},t.prototype._n=function(t){this.has=!0,this.val=t},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){var t=this.out;t!==f&&(this.has?(t._n(this.val),t._c()):t._e("TODO show proper error"))},t}(),C=function(){function t(t,e){this.out=t,this.op=e}return t.prototype._n=function(t){this.out._n(t)},t.prototype._e=function(t){this.out._e(t)},t.prototype._c=function(){this.op.inner=f,this.op.less()},t}(),P=function(){function t(t){this.type=t.type+"+flatten",this.ins=t.ins,this.out=f,this.mapOp=t,this.inner=f,this.il=l,this.open=!0}return t.prototype._start=function(t){this.out=t,this.inner=f,this.il=l,this.open=!0,this.mapOp.ins._add(this)},t.prototype._stop=function(){this.mapOp.ins._remove(this),this.inner!==f&&this.inner._remove(this.il),this.out=f,this.inner=f,this.il=l},t.prototype.less=function(){if(!this.open&&this.inner===f){var t=this.out;if(t===f)return;t._c()}},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=this,n=r.inner,i=r.il,o=s(this.mapOp,t,e);o!==f&&(n!==f&&i!==l&&n._remove(i),(this.inner=o)._add(this.il=new C(e,this)))}},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){this.open=!1,this.less()},t}(),I=function(){function t(t,e){this.type="map",this.ins=e,this.out=f,this.f=t}return t.prototype._start=function(t){this.out=t,this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=s(this,t,e);r!==f&&e._n(r)}},t.prototype._e=function(t){var e=this.out;e!==f&&e._e(t)},t.prototype._c=function(){var t=this.out;t!==f&&t._c()},t}(),N=function(t){function e(e,r,n){t.call(this,r,n),this.type="filter+map",this.passes=e}return c(e,t),e.prototype._n=function(t){if(this.passes(t)){var e=this.out;if(e!==f){var r=s(this,t,e);r!==f&&e._n(r)}}},e}(I),M=function(){function t(t){this.type="remember",this.ins=t,this.out=f}return t.prototype._start=function(t){this.out=t,this.ins._add(t)},t.prototype._stop=function(){this.ins._remove(this.out),this.out=f},t}(),F=function(){function t(t,e){this.type="replaceError",this.ins=e,this.out=f,this.f=t}return t.prototype._start=function(t){this.out=t,this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f},t.prototype._n=function(t){var e=this.out;e!==f&&e._n(t)},t.prototype._e=function(t){var e=this.out;if(e!==f)try{this.ins._remove(this),(this.ins=this.f(t))._add(this)}catch(t){e._e(t)}},t.prototype._c=function(){var t=this.out;t!==f&&t._c()},t}(),D=function(){function t(t,e){this.type="startWith",this.ins=t,this.out=f,this.val=e}return t.prototype._start=function(t){this.out=t,this.out._n(this.val),this.ins._add(t)},t.prototype._stop=function(){this.ins._remove(this.out),this.out=f},t}(),R=function(){function t(t,e){this.type="take",this.ins=e,this.out=f,this.max=t,this.taken=0}return t.prototype._start=function(t){this.out=t,this.taken=0,this.max<=0?t._c():this.ins._add(this)},t.prototype._stop=function(){this.ins._remove(this),this.out=f},t.prototype._n=function(t){var e=this.out;if(e!==f){var r=++this.taken;r1))if(this._stopID!==f)clearTimeout(this._stopID),this._stopID=f;else{var n=this._prod;n!==f&&n._start(this)}},t.prototype._remove=function(t){var e=this,r=this._target;if(r!==f)return r._remove(t);var n=this._ils,i=n.indexOf(t);i>-1&&(n.splice(i,1),this._prod!==f&&n.length<=0?(this._err=f,this._stopID=setTimeout(function(){return e._stopNow()})):1===n.length&&this._pruneCycles())},t.prototype._pruneCycles=function(){this._hasNoSinks(this,[])&&this._remove(this._ils[0])},t.prototype._hasNoSinks=function(t,e){if(e.indexOf(t)!==-1)return!0;if(t.out===this)return!0;if(t.out&&t.out!==f)return this._hasNoSinks(t.out,e.concat(t));if(t._ils){for(var r=0,n=t._ils.length;r1)return void(this._has&&t._n(this._v));if(this._stopID!==f)this._has&&t._n(this._v),clearTimeout(this._stopID),this._stopID=f;else if(this._has)t._n(this._v);else{var n=this._prod;n!==f&&n._start(this)}},e.prototype._stopNow=function(){this._has=!1,t.prototype._stopNow.call(this)},e.prototype._x=function(){this._has=!1,t.prototype._x.call(this)},e.prototype.map=function(t){return this._map(t)},e.prototype.mapTo=function(e){return t.prototype.mapTo.call(this,e)},e.prototype.take=function(e){return t.prototype.take.call(this,e)},e.prototype.endWhen=function(e){return t.prototype.endWhen.call(this,e)},e.prototype.replaceError=function(e){return t.prototype.replaceError.call(this,e)},e.prototype.remember=function(){return this},e.prototype.debug=function(e){return t.prototype.debug.call(this,e)},e}(V);e.MemoryStream=L,Object.defineProperty(e,"__esModule",{value:!0}),e.default=V},function(t,e,r){"use strict";function n(t,e,r){return void 0===r&&(r=!1),i.Stream.create({element:t,next:null,start:function(t){this.next=function(e){t.next(e)},this.element.addEventListener(e,this.next,r)},stop:function(){this.element.removeEventListener(e,this.next,r)}})}var i=r(359);e.fromEvent=n},function(t,e,r){"use strict";var n=r(359),i=r(345),o=r(360),s=function(){function t(t){this._name=t}return t.prototype.select=function(t){return this},t.prototype.elements=function(){var t=i.adapt(n.default.of(document.body));return t._isCycleSource=this._name,t},t.prototype.events=function(t,e){void 0===e&&(e={});var r;r=e&&"boolean"==typeof e.useCapture?o.fromEvent(document.body,t,e.useCapture):o.fromEvent(document.body,t);var n=i.adapt(r);return n._isCycleSource=this._name,n},t}();e.BodyDOMSource=s},function(t,e,r){"use strict";function n(t){return Array.prototype.slice.call(t)}var i=r(363),o=r(364),s=r(365),u=function(){function t(t,e){this.namespace=t,this.isolateModule=e}return t.prototype.call=function(t){var e=this.namespace,r=o.getSelectors(e);if(!r)return t;var u=o.getFullScope(e),c=new i.ScopeChecker(u,this.isolateModule),a=u?this.isolateModule.getElement(u)||t:t,f=!!u&&!!r&&s.matchesSelector(a,r);return n(a.querySelectorAll(r)).filter(c.isDirectlyInScope,c).concat(f?[a]:[])},t}();e.ElementFinder=u},function(t,e){"use strict";var r=function(){function t(t,e){this.fullScope=t,this.isolateModule=e}return t.prototype.isDirectlyInScope=function(t){for(var e=t;e;e=e.parentElement){var r=this.isolateModule.getFullScope(e);if(r&&r!==this.fullScope)return!1;if(r)return!0}return!0},t}();e.ScopeChecker=r},function(t,e){"use strict";function r(t){return"object"==typeof HTMLElement?t instanceof HTMLElement||t instanceof DocumentFragment:t&&"object"==typeof t&&null!==t&&(1===t.nodeType||11===t.nodeType)&&"string"==typeof t.nodeName}function n(t){var e="string"==typeof t?document.querySelector(t):t;if("string"==typeof t&&null===e)throw new Error("Cannot render into unknown element `"+t+"`");if(!r(e))throw new Error("Given container is not a DOM element neither a selector string.");return e}function i(t){return t.filter(function(t){return t.indexOf(e.SCOPE_PREFIX)>-1}).map(function(t){return t.replace(e.SCOPE_PREFIX,"")}).join("-")}function o(t){return t.filter(function(t){return t.indexOf(e.SCOPE_PREFIX)===-1}).join(" ")}e.SCOPE_PREFIX="$$CYCLEDOM$$-",e.getElement=n,e.getFullScope=i,e.getSelectors=o},function(t,e){"use strict";function r(){var t;try{var e=Element.prototype;t=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector}catch(e){t=null}return function(e,r){if(t)return t.call(e,r);for(var n=e.parentNode.querySelectorAll(r),i=0;ii)return t}return t.data=t.data||{},t.data.isolate=e,"undefined"==typeof t.key&&(t.key=o.SCOPE_PREFIX+e),t})}var o=r(364);e.isolateSource=n,e.isolateSink=i},function(t,e,r){"use strict";function n(t,e){for(var r,n,i=0,o=t.length-1;i<=o;){r=(i+o)/2|0,n=t[r];var s=n.id;if(se))return r;o=r-1}}return-1}var i=r(359),o=r(363),s=r(364),u=r(365),c=function(){function t(t,e,r,n){var i=this;this.origin=t,this.eventType=e,this.useCapture=r,this.isolateModule=n,this.destinations=[],this._lastId=0,r?this.listener=function(t){return i.capture(t)}:this.listener=function(t){return i.bubble(t)},t.addEventListener(e,this.listener,r)}return t.prototype.updateOrigin=function(t){this.origin.removeEventListener(this.eventType,this.listener,this.useCapture),t.addEventListener(this.eventType,this.listener,this.useCapture),this.origin=t},t.prototype.createDestination=function(t){var e=this,r=this._lastId++,n=s.getSelectors(t),u=new o.ScopeChecker(s.getFullScope(t),this.isolateModule),c=i.default.create({start:function(){},stop:function(){"requestIdleCallback"in window?requestIdleCallback(function(){e.removeDestination(r)}):e.removeDestination(r)}}),a={id:r,selector:n,scopeChecker:u,subject:c};return this.destinations.push(a),c},t.prototype.removeDestination=function(t){var e=n(this.destinations,t);e>=0&&this.destinations.splice(e,1)},t.prototype.capture=function(t){for(var e=0,r=this.destinations.length;e0?u:s.length,l=c>0?c:s.length,h=u!==-1||c!==-1?s.slice(0,Math.min(a,l)):s,v=t.elm=i(n)&&i(r=n.ns)?O.createElementNS(r,h):O.createElement(h);if(a0&&(v.className=s.slice(l+1).replace(/\./g," ")),f.array(o))for(r=0;rh?(f=n(r[x+1])?null:r[x+1].elm,v(t,f,r,p,x,i)):p>x&&b(t,e,l,h)}function _(t,e,r){var o,s;i(o=e.data)&&i(s=o.hook)&&i(o=s.prepatch)&&o(t,e);var u=e.elm=t.elm,c=t.children,a=e.children;if(t!==e){if(void 0!==e.data){for(o=0;o0?r:e.length,o=n>0?n:e.length,s=r!==-1||n!==-1?e.slice(0,Math.min(i,o)):e,u=i0?e.slice(o+1).replace(/\./g," "):void 0;return{tagName:s,id:u,className:c}}e.selectorParser=r},function(t,e,r){"use strict";var n=r(377);e.ClassModule=n.default;var i=r(378);e.PropsModule=i.default;var o=r(379);e.AttrsModule=o.default;var s=r(380);e.StyleModule=s.default;var u=r(381);e.DatasetModule=u.default;var c=[s.default,n.default,i.default,o.default,u.default];Object.defineProperty(e,"__esModule",{value:!0}),e.default=c},function(t,e){"use strict";function r(t,e){var r,n,i=e.elm,o=t.data.class,s=e.data.class;if((o||s)&&o!==s){o=o||{},s=s||{};for(n in o)s[n]||i.classList.remove(n);for(n in s)r=s[n],r!==o[n]&&i.classList[r?"add":"remove"](n)}}e.classModule={create:r,update:r},Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.classModule},function(t,e){"use strict";function r(t,e){var r,n,i,o=e.elm,s=t.data.props,u=e.data.props;if((s||u)&&s!==u){s=s||{},u=u||{};for(r in s)u[r]||delete o[r];for(r in u)n=u[r],i=s[r],i===n||"value"===r&&o[r]===n||(o[r]=n)}}e.propsModule={create:r,update:r},Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.propsModule},function(t,e){"use strict";function r(t,e){var r,i,s,u,c=e.elm,a=t.data.attrs,f=e.data.attrs;if((a||f)&&a!==f){a=a||{},f=f||{};for(r in f)i=f[r],s=a[r],s!==i&&(!i&&o[r]?c.removeAttribute(r):(u=r.split(":"),u.length>1&&n.hasOwnProperty(u[0])?c.setAttributeNS(n[u[0]],r,i):c.setAttribute(r,i)));for(r in a)r in f||c.removeAttribute(r)}}for(var n={xlink:"http://www.w3.org/1999/xlink"},i=["allowfullscreen","async","autofocus","autoplay","checked","compact","controls","declare","default","defaultchecked","defaultmuted","defaultselected","defer","disabled","draggable","enabled","formnovalidate","hidden","indeterminate","inert","ismap","itemscope","loop","multiple","muted","nohref","noresize","noshade","novalidate","nowrap","open","pauseonexit","readonly","required","reversed","scoped","seamless","selected","sortable","spellcheck","translate","truespeed","typemustmatch","visible"],o=Object.create(null),s=0,u=i.length;s=0;n&&i&&!o&&(this.removeElement(n),this.removeEventDelegators(n))},t.prototype.getElement=function(t){return this.elementsByFullScope.get(t)},t.prototype.getFullScope=function(t){for(var e=this.elementsByFullScope.entries(),r=e.next();r.value;r=e.next()){var n=r.value,i=n[0],o=n[1];if(t===o)return i}return""},t.prototype.addEventDelegator=function(t,e){var r=this.delegatorsByFullScope.get(t);r||(r=[],this.delegatorsByFullScope.set(t,r)),r[r.length]=e},t.prototype.removeEventDelegators=function(t){this.delegatorsByFullScope.delete(t)},t.prototype.reset=function(){this.elementsByFullScope.clear(),this.delegatorsByFullScope.clear(),this.fullScopesBeingUpdated=[]},t.prototype.createModule=function(){var t=this;return{create:function(e,r){var n=e.data,i=void 0===n?{}:n,o=r.elm,s=r.data,u=void 0===s?{}:s,c=i.isolate||"",a=u.isolate||"";if(a){t.fullScopesBeingUpdated.push(a),c&&t.removeElement(c),t.addElement(a,o);var f=t.delegatorsByFullScope.get(a);if(f)for(var l=0,p=f.length;l=0?a(f):i(this.length)-a(c(f)),e=f;e0?1:-1}},function(t,e,r){"use strict";t.exports=r(400)()?Object.setPrototypeOf:r(401)},function(t,e){"use strict";var r=Object.create,n=Object.getPrototypeOf,i={};t.exports=function(){var t=Object.setPrototypeOf,e=arguments[0]||r;return"function"==typeof t&&n(t(e(null),i))===i}},function(t,e,r){"use strict";var n,i=r(402),o=r(387),s=Object.prototype.isPrototypeOf,u=Object.defineProperty,c={configurable:!0,enumerable:!1,writable:!0,value:void 0};n=function(t,e){if(o(t),null===e||i(e))return t;throw new TypeError("Prototype must be null or an object")},t.exports=function(t){var e,r;return t?(2===t.level?t.set?(r=t.set,e=function(t,e){return r.call(n(t,e),e),t}):e=function(t,e){return n(t,e).__proto__=e,t}:e=function t(e,r){var i;return n(e,r),i=s.call(t.nullPolyfill,e),i&&delete t.nullPolyfill.__proto__,null===r&&(r=t.nullPolyfill),e.__proto__=r,i&&u(t.nullPolyfill,"__proto__",c),e},Object.defineProperty(e,"level",{configurable:!1,enumerable:!1,writable:!1,value:t.level})):null}(function(){var t,e=Object.create(null),r={},n=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__");if(n){try{t=n.set,t.call(e,r)}catch(t){}if(Object.getPrototypeOf(e)===r)return{set:t,level:2}}return e.__proto__=r,Object.getPrototypeOf(e)===r?{level:2}:(e={},e.__proto__=r,Object.getPrototypeOf(e)===r&&{level:1})}()),r(403)},function(t,e,r){"use strict";var n=r(388),i={function:!0,object:!0};t.exports=function(t){return n(t)&&i[typeof t]||!1}},function(t,e,r){"use strict";var n,i=Object.create;r(400)()||(n=r(401)),t.exports=function(){var t,e,r;return n?1!==n.level?i:(t={},e={},r={configurable:!1,enumerable:!1,writable:!0,value:void 0},Object.getOwnPropertyNames(Object.prototype).forEach(function(t){return"__proto__"===t?void(e[t]={configurable:!0,enumerable:!1,writable:!0,value:void 0}):void(e[t]=r)}),Object.defineProperties(t,e),Object.defineProperty(n,"nullPolyfill",{configurable:!1,enumerable:!1,writable:!1,value:t}),function(e,r){return i(null===e?t:e,r)}):i}()},function(t,e){"use strict";t.exports=function(t){if("function"!=typeof t)throw new TypeError(t+" is not a function");return t}},function(t,e,r){"use strict";var n,i=r(406),o=r(412),s=r(413),u=r(414);n=t.exports=function(t,e){var r,n,s,c,a;return arguments.length<2||"string"!=typeof t?(c=e,e=t,t=null):c=arguments[2],null==t?(r=s=!0,n=!1):(r=u.call(t,"c"),n=u.call(t,"e"),s=u.call(t,"w")),a={value:e,configurable:r,enumerable:n,writable:s},c?i(o(c),a):a},n.gs=function(t,e,r){var n,c,a,f;return"string"!=typeof t?(a=r,r=e,e=t,t=null):a=arguments[3],null==e?e=void 0:s(e)?null==r?r=void 0:s(r)||(a=r,r=void 0):(a=e,e=r=void 0),null==t?(n=!0,c=!1):(n=u.call(t,"c"),c=u.call(t,"e")),f={get:e,set:r,configurable:n,enumerable:c},a?i(o(a),f):f}},function(t,e,r){"use strict";t.exports=r(407)()?Object.assign:r(408)},function(t,e){"use strict";t.exports=function(){var t,e=Object.assign;return"function"==typeof e&&(t={foo:"raz"},e(t,{bar:"dwa"},{trzy:"trzy"}),t.foo+t.bar+t.trzy==="razdwatrzy")}},function(t,e,r){"use strict";var n=r(409),i=r(387),o=Math.max;t.exports=function(t,e){var r,s,u,c=o(arguments.length,2);for(t=Object(i(t)),u=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},s=1;s-1}},function(t,e,r){"use strict";var n,i,o,s,u,c,a,f=r(405),l=r(404),p=Function.prototype.apply,h=Function.prototype.call,d=Object.create,v=Object.defineProperty,y=Object.defineProperties,b=Object.prototype.hasOwnProperty,m={configurable:!0,enumerable:!1,writable:!0};n=function(t,e){var r;return l(e),b.call(this,"__ee__")?r=this.__ee__:(r=m.value=d(null),v(this,"__ee__",m),m.value=null),r[t]?"object"==typeof r[t]?r[t].push(e):r[t]=[r[t],e]:r[t]=e,this},i=function(t,e){var r,i;return l(e),i=this,n.call(this,t,r=function(){o.call(i,t,r),p.call(e,this,arguments)}),r.__eeOnceListener__=e,this},o=function(t,e){var r,n,i,o;if(l(e),!b.call(this,"__ee__"))return this;if(r=this.__ee__,!r[t])return this;if(n=r[t],"object"==typeof n)for(o=0;i=n[o];++o)i!==e&&i.__eeOnceListener__!==e||(2===n.length?r[t]=n[o?0:1]:n.splice(o,1));else n!==e&&n.__eeOnceListener__!==e||delete r[t];return this},s=function(t){var e,r,n,i,o;if(b.call(this,"__ee__")&&(i=this.__ee__[t]))if("object"==typeof i){for(r=arguments.length,o=new Array(r-1),e=1;e=55296&&y<=56319&&(v+=t[++h])),c.call(e,b,v,l),!p);++h);}},function(t,e,r){"use strict";var n=r(425),i=r(426),o=r(429),s=r(440),u=r(423),c=r(418).iterator;t.exports=function(t){return"function"==typeof u(t)[c]?t[c]():n(t)?new o(t):i(t)?new s(t):new o(t)}},function(t,e,r){"use strict";var n,i=r(399),o=r(414),s=r(405),u=r(430),c=Object.defineProperty;n=t.exports=function(t,e){return this instanceof n?(u.call(this,t),e=e?o.call(e,"key+value")?"key+value":o.call(e,"key")?"key":"value":"value",void c(this,"__kind__",s("",e))):new n(t,e)},i&&i(n,u),n.prototype=Object.create(u.prototype,{constructor:s(n),_resolve:s(function(t){return"value"===this.__kind__?this.__list__[t]:"key+value"===this.__kind__?[t,this.__list__[t]]:t}),toString:s(function(){return"[object Array Iterator]"})})},function(t,e,r){"use strict";var n,i=r(386),o=r(406),s=r(404),u=r(387),c=r(405),a=r(431),f=r(418),l=Object.defineProperty,p=Object.defineProperties;t.exports=n=function(t,e){return this instanceof n?(p(this,{__list__:c("w",u(t)),__context__:c("w",e),__nextIndex__:c("w",0)}),void(e&&(s(e.on),e.on("_add",this._onAdd),e.on("_delete",this._onDelete),e.on("_clear",this._onClear)))):new n(t,e)},p(n.prototype,o({constructor:c(n),_next:c(function(){var t;if(this.__list__)return this.__redo__&&(t=this.__redo__.shift(),void 0!==t)?t:this.__nextIndex__=this.__nextIndex__)){if(++this.__nextIndex__,!this.__redo__)return void l(this,"__redo__",c("c",[t]));this.__redo__.forEach(function(e,r){e>=t&&(this.__redo__[r]=++e)},this),this.__redo__.push(t)}}),_onDelete:c(function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(e=this.__redo__.indexOf(t),e!==-1&&this.__redo__.splice(e,1),this.__redo__.forEach(function(e,r){e>t&&(this.__redo__[r]=--e)},this)))}),_onClear:c(function(){this.__redo__&&i.call(this.__redo__),this.__nextIndex__=0})}))),l(n.prototype,f.iterator,c(function(){return this})),l(n.prototype,f.toStringTag,c("","Iterator"))},function(t,e,r){"use strict";var n,i=r(432),o=r(412),s=r(404),u=r(437),c=r(404),a=r(387),f=Function.prototype.bind,l=Object.defineProperty,p=Object.prototype.hasOwnProperty;n=function(t,e,r){var n,o=a(e)&&c(e.value);return n=i(e),delete n.writable,delete n.value,n.get=function(){return!r.overwriteDefinition&&p.call(this,t)?o:(e.value=f.call(o,r.resolveContext?r.resolveContext(this):this),l(this,t,e),this[t])},n},t.exports=function(t){var e=o(arguments[1]);return null!=e.resolveContext&&s(e.resolveContext),u(t,function(t,r){return n(r,t,e)})}},function(t,e,r){"use strict";var n=r(433),i=r(406),o=r(387);t.exports=function(t){var e=Object(o(t)),r=arguments[1],s=Object(arguments[2]);if(e!==t&&!r)return e;var u={};return r?n(r,function(e){(s.ensure||e in t)&&(u[e]=t[e])}):i(u,t),u}},function(t,e,r){"use strict";t.exports=r(434)()?Array.from:r(435)},function(t,e){"use strict";t.exports=function(){var t,e,r=Array.from;return"function"==typeof r&&(t=["raz","dwa"],e=r(t),Boolean(e&&e!==t&&"dwa"===e[1]))}},function(t,e,r){"use strict";var n=r(418).iterator,i=r(425),o=r(436),s=r(394),u=r(404),c=r(387),a=r(388),f=r(426),l=Array.isArray,p=Function.prototype.call,h={configurable:!0,enumerable:!0,writable:!0,value:null},d=Object.defineProperty;t.exports=function(t){var e,r,v,y,b,m,_,x,g,w,O=arguments[1],S=arguments[2];if(t=Object(c(t)),a(O)&&u(O),this&&this!==Array&&o(this))e=this;else{if(!O){if(i(t))return b=t.length,1!==b?Array.apply(null,t):(y=new Array(1),y[0]=t[0],y);if(l(t)){for(y=new Array(b=t.length),r=0;r=55296&&m<=56319&&(w+=t[++r])),w=O?p.call(O,S,w,v):w,e?(h.value=w,d(y,v,h)):y[v]=w,++v;b=v}if(void 0===b)for(b=s(t.length),e&&(y=new e(b)),r=0;r=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r)}),toString:o(function(){return"[object String Iterator]"})})},function(t,e,r){"use strict";var n,i=r(399),o=r(405),s=r(430),u=r(418).toStringTag,c=r(442),a=Object.defineProperties,f=s.prototype._unBind;n=t.exports=function(t,e){return this instanceof n?(s.call(this,t.__mapKeysData__,t),e&&c[e]||(e="key+value"),void a(this,{__kind__:o("",e),__values__:o("w",t.__mapValuesData__)})):new n(t,e)},i&&i(n,s),n.prototype=Object.create(s.prototype,{constructor:o(n),_resolve:o(function(t){return"value"===this.__kind__?this.__values__[t]:"key"===this.__kind__?this.__list__[t]:[this.__list__[t],this.__values__[t]]}),_unBind:o(function(){this.__values__=null,f.call(this)}),toString:o(function(){return"[object Map Iterator]"})}),Object.defineProperty(n.prototype,u,o("c","Map Iterator"))},function(t,e,r){"use strict";t.exports=r(443)("key","value","key+value")},function(t,e){"use strict";var r=Array.prototype.forEach,n=Object.create;t.exports=function(t){var e=n(null);return r.call(arguments,function(t){e[t]=!0}),e}},function(t,e){"use strict";t.exports=function(){return"undefined"!=typeof Map&&"[object Map]"===Object.prototype.toString.call(new Map)}()},function(t,e,r){"use strict";function n(t,e){function r(e,r){var n=e.map(s);return n.addListener({next:t||c,error:c,complete:c}),new i.HTMLSource(n,r)}e||(e={});var n=e.modules||u,s=o(n);return r}var i=r(368),o=r(446),s=r(450),u=[s.attributes,s.props,s.class,s.style],c=function(){};e.makeHTMLDriver=n},function(t,e,r){var n=r(447),i=r(449).VOID,o=r(449).CONTAINER;t.exports=function(t){function e(e,r){var n=[],i=new Map([["id",r.id],["class",r.className]]);return t.forEach(function(t,r){t(e,i)}),i.forEach(function(t,e){t&&""!==t&&n.push(e+'="'+t+'"')}),n.join(" ")}return function t(r){if(!r.sel&&r.text)return r.text;r.data=r.data||{},r.data.hook&&"function"==typeof r.data.hook.init&&"function"==typeof r.data.fn&&r.data.hook.init(r);var s=n(r.sel),u=s.tagName,c=e(r,s),a="http://www.w3.org/2000/svg"===r.data.ns,f=[];return f.push("<"+u),c.length&&f.push(" "+c),a&&o[u]!==!0&&f.push(" /"),f.push(">"),(i[u]!==!0&&!a||a&&o[u]===!0)&&(r.data.props&&r.data.props.innerHTML?f.push(r.data.props.innerHTML):r.text?f.push(r.text):r.children&&r.children.forEach(function(e){f.push(t(e))}),f.push("")),f.join("")}}},function(t,e,r){var n=r(448),i=/([\.#]?[a-zA-Z0-9\u007F-\uFFFF_:-]+)/,o=/^\.|#/;t.exports=function(t,e){t=t||"";var r,s="",u=[],c=n(t,i);(o.test(c[1])||""===t)&&(r="div");var a,f,l;for(l=0;l + * Available under the MIT License + * ECMAScript compliant, uniform cross-browser split method + */ +t.exports=function(t){var e,r=String.prototype.split,n=/()??/.exec("")[1]===t;return e=function(e,i,o){if("[object RegExp]"!==Object.prototype.toString.call(i))return r.call(e,i,o);var s,u,c,a,f=[],l=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.extended?"x":"")+(i.sticky?"y":""),p=0,i=new RegExp(i.source,l+"g");for(e+="",n||(s=new RegExp("^"+i.source+"$(?!\\s)",l)),o=o===t?-1>>>0:o>>>0;(u=i.exec(e))&&(c=u.index+u[0].length,!(c>p&&(f.push(e.slice(p,u.index)),!n&&u.length>1&&u[0].replace(s,function(){for(var e=1;e1&&u.index=o)));)i.lastIndex===u.index&&i.lastIndex++;return p===e.length?!a&&i.test("")||f.push(""):f.push(e.slice(p)),f.length>o?f.slice(0,o):f}}()},function(t,e){e.CONTAINER={a:!0,defs:!0,glyph:!0,g:!0,marker:!0,mask:!0,"missing-glyph":!0,pattern:!0,svg:!0,switch:!0,symbol:!0,desc:!0,metadata:!0,title:!0},e.VOID={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},function(t,e,r){t.exports={class:r(451),props:r(455),attributes:r(457),style:r(458)}},function(t,e,r){var n=r(452),i=r(453),o=r(454);t.exports=function(t,e){var r,s=[],u=[],c=t.data.class||{},a=e.get("class");a=a.length>0?a.split(" "):[],n(c,function(t,e){t===!0?s.push(e):u.push(e)}),r=i(o(a.concat(s)),function(t){return u.indexOf(t)<0}),r.length&&e.set("class",r.join(" "))}},function(t,e){function r(t,e){for(var r=-1,n=Array(t);++r-1&&t%1==0&&t-1&&t%1==0&&t<=x}function v(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function y(t){return!!t&&"object"==typeof t}function b(t,e){return t&&o(t,"function"==typeof e?e:_)}function m(t){return l(t)?i(t):s(t)}function _(t){return t}var x=9007199254740991,g="[object Arguments]",w="[object Function]",O="[object GeneratorFunction]",S=/^(?:0|[1-9]\d*)$/,j=Object.prototype,E=j.hasOwnProperty,T=j.toString,k=j.propertyIsEnumerable,A=n(Object.keys,Object),C=u(),P=Array.isArray;t.exports=b},function(t,e,r){(function(t,r){function n(t,e){for(var r=-1,n=t?t.length:0;++r-1}function O(t,e){var r=this.__data__,n=B(r,t);return n<0?r.push([t,e]):r[n][1]=e,this}function S(t){var e=-1,r=t?t.length:0;for(this.clear();++ei?0:i+e),r=r>i?i:r,r<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var o=Array(i);++nc))return!1;var f=s.get(t);if(f&&s.get(e))return f==e;var l=-1,p=!0,h=o&qt?new C:void 0;for(s.set(t,e),s.set(e,t);++l-1&&t%1==0&&t-1&&t%1==0&&t<=zt}function Ct(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function Pt(t){return!!t&&"object"==typeof t}function It(t){return"symbol"==typeof t||Pt(t)&&Ue.call(t)==se}function Nt(t){return null==t?"":rt(t)}function Mt(t,e,r){var n=null==t?void 0:W(t,e);return void 0===n?r:n}function Ft(t,e){return null!=t&&ft(t,e,$)}function Dt(t){return Et(t)?L(t):X(t)}function Rt(t){return t}function Vt(t){return pt(t)?i(_t(t)):Q(t)}var Lt=200,Bt="Expected a function",Wt="__lodash_hash_undefined__",qt=1,$t=2,Ut=1/0,zt=9007199254740991,Ht="[object Arguments]",Yt="[object Array]",Gt="[object Boolean]",Kt="[object Date]",Xt="[object Error]",Zt="[object Function]",Jt="[object GeneratorFunction]",Qt="[object Map]",te="[object Number]",ee="[object Object]",re="[object Promise]",ne="[object RegExp]",ie="[object Set]",oe="[object String]",se="[object Symbol]",ue="[object WeakMap]",ce="[object ArrayBuffer]",ae="[object DataView]",fe="[object Float32Array]",le="[object Float64Array]",pe="[object Int8Array]",he="[object Int16Array]",de="[object Int32Array]",ve="[object Uint8Array]",ye="[object Uint8ClampedArray]",be="[object Uint16Array]",me="[object Uint32Array]",_e=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xe=/^\w*$/,ge=/^\./,we=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Oe=/[\\^$.*+?()[\]{}|]/g,Se=/\\(\\)?/g,je=/^\[object .+?Constructor\]$/,Ee=/^(?:0|[1-9]\d*)$/,Te={};Te[fe]=Te[le]=Te[pe]=Te[he]=Te[de]=Te[ve]=Te[ye]=Te[be]=Te[me]=!0,Te[Ht]=Te[Yt]=Te[ce]=Te[Gt]=Te[ae]=Te[Kt]=Te[Xt]=Te[Zt]=Te[Qt]=Te[te]=Te[ee]=Te[ne]=Te[ie]=Te[oe]=Te[ue]=!1;var ke="object"==typeof t&&t&&t.Object===Object&&t,Ae="object"==typeof self&&self&&self.Object===Object&&self,Ce=ke||Ae||Function("return this")(),Pe="object"==typeof e&&e&&!e.nodeType&&e,Ie=Pe&&"object"==typeof r&&r&&!r.nodeType&&r,Ne=Ie&&Ie.exports===Pe,Me=Ne&&ke.process,Fe=function(){try{return Me&&Me.binding("util")}catch(t){}}(),De=Fe&&Fe.isTypedArray,Re=Array.prototype,Ve=Function.prototype,Le=Object.prototype,Be=Ce["__core-js_shared__"],We=function(){var t=/[^.]+$/.exec(Be&&Be.keys&&Be.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),qe=Ve.toString,$e=Le.hasOwnProperty,Ue=Le.toString,ze=RegExp("^"+qe.call($e).replace(Oe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),He=Ce.Symbol,Ye=Ce.Uint8Array,Ge=Le.propertyIsEnumerable,Ke=Re.splice,Xe=f(Object.keys,Object),Ze=at(Ce,"DataView"),Je=at(Ce,"Map"),Qe=at(Ce,"Promise"),tr=at(Ce,"Set"),er=at(Ce,"WeakMap"),rr=at(Object,"create"),nr=xt(Ze),ir=xt(Je),or=xt(Qe),sr=xt(tr),ur=xt(er),cr=He?He.prototype:void 0,ar=cr?cr.valueOf:void 0,fr=cr?cr.toString:void 0;p.prototype.clear=h,p.prototype.delete=d,p.prototype.get=v,p.prototype.has=y,p.prototype.set=b,m.prototype.clear=_,m.prototype.delete=x,m.prototype.get=g,m.prototype.has=w,m.prototype.set=O,S.prototype.clear=j,S.prototype.delete=E,S.prototype.get=T,S.prototype.has=k,S.prototype.set=A,C.prototype.add=C.prototype.push=P,C.prototype.has=I,N.prototype.clear=M,N.prototype.delete=F,N.prototype.get=D,N.prototype.has=R,N.prototype.set=V;var lr=q;(Ze&&lr(new Ze(new ArrayBuffer(1)))!=ae||Je&&lr(new Je)!=Qt||Qe&&lr(Qe.resolve())!=re||tr&&lr(new tr)!=ie||er&&lr(new er)!=ue)&&(lr=function(t){var e=Ue.call(t),r=e==ee?t.constructor:void 0,n=r?xt(r):void 0;if(n)switch(n){case nr:return ae;case ir:return Qt;case or:return re;case sr:return ie;case ur:return ue}return e});var pr=Ot(function(t){t=Nt(t);var e=[];return ge.test(t)&&e.push(""),t.replace(we,function(t,r,n,i){e.push(n?i.replace(Se,"$1"):r||t)}),e});Ot.Cache=S;var hr=Array.isArray,dr=De?s(De):G;r.exports=wt}).call(e,function(){return this}(),r(350)(t))},function(t,e){(function(e){function r(t,e){var r=t?t.length:0;return!!r&&o(t,e,0)>-1}function n(t,e,r){for(var n=-1,i=t?t.length:0;++n-1}function w(t,e){var r=this.__data__,n=I(r,t);return n<0?r.push([t,e]):r[n][1]=e,this}function O(t){var e=-1,r=t?t.length:0;for(this.clear();++e=z){var h=e?null:dt(t);if(h)return f(h);a=!1,s=u,p=new A}else p=e?[]:l;t:for(;++o-1||("htmlFor"===r&&(r="for"),"className"===r&&(r="class"),e.set(r.toLowerCase(),i(t)))})}},function(t,e){(function(e){function r(t){return function(e){return null==t?void 0:t[e]}}function n(t){if("string"==typeof t)return t;if(o(t))return g?g.call(t):"";var e=t+"";return"0"==e&&1/t==-c?"-0":e}function i(t){return!!t&&"object"==typeof t}function o(t){return"symbol"==typeof t||i(t)&&m.call(t)==a}function s(t){return null==t?"":n(t)}function u(t){return t=s(t),t&&l.test(t)?t.replace(f,y):t}var c=1/0,a="[object Symbol]",f=/[&<>"'`]/g,l=RegExp(f.source),p={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},h="object"==typeof e&&e&&e.Object===Object&&e,d="object"==typeof self&&self&&self.Object===Object&&self,v=h||d||Function("return this")(),y=r(p),b=Object.prototype,m=b.toString,_=v.Symbol,x=_?_.prototype:void 0,g=x?x.toString:void 0;t.exports=u}).call(e,function(){return this}())},function(t,e,r){var n=r(452),i=r(456);t.exports=function(t,e){var r=t.data.attrs||{};n(r,function(t,r){e.set(r,i(t))})}},function(t,e,r){var n=r(459),i=r(452),o=r(456),s=r(460);t.exports=function(t,e){var r=[],u=t.data.style||{};u.delayed&&n(u,u.delayed),i(u,function(t,e){"string"!=typeof t&&"number"!=typeof t||r.push(s(e)+": "+o(t))}),r.length&&e.set("style",r.join("; "))}},function(t,e){/* + object-assign + (c) Sindre Sorhus + @license MIT + */ +"use strict";function r(t){if(null===t||void 0===t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function n(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if("0123456789"!==n.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(t){i[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(t){return!1}}var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;t.exports=n()?Object.assign:function(t,e){for(var n,u,c=r(t),a=1;a0}function i(t){return n(t)&&("."===t[0]||"#"===t[0])}function o(t){return function(e,r,n){return i(e)?"undefined"!=typeof r&&"undefined"!=typeof n?s.h(t+e,r,n):"undefined"!=typeof r?s.h(t+e,r):s.h(t+e,{}):r?s.h(t,e,r):e?s.h(t,e):s.h(t,{})}}var s=r(373),u=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","colorProfile","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotlight","feTile","feTurbulence","filter","font","fontFace","fontFaceFormat","fontFaceName","fontFaceSrc","fontFaceUri","foreignObject","g","glyph","glyphRef","hkern","image","line","linearGradient","marker","mask","metadata","missingGlyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],c=o("svg");u.forEach(function(t){c[t]=o(t)});var a=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","dfn","dir","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","meta","nav","noscript","object","ol","optgroup","option","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","sup","table","tbody","td","textarea","tfoot","th","thead","title","tr","u","ul","video"],f={SVG_TAG_NAMES:u,TAG_NAMES:a,svg:c,isSelector:i,createTagFunction:o};a.forEach(function(t){f[t]=o(t)}),Object.defineProperty(e,"__esModule",{value:!0}),e.default=f},function(t,e,r){t.exports={F:r(464),T:r(468),__:r(469),add:r(470),addIndex:r(472),adjust:r(477),all:r(479),allPass:r(486),always:r(465),and:r(502),any:r(503),anyPass:r(505),ap:r(506),aperture:r(507),append:r(510),apply:r(511),applySpec:r(512),ascend:r(514),assoc:r(515),assocPath:r(516),binary:r(518),bind:r(493),both:r(520),call:r(524),chain:r(526),clamp:r(531),clone:r(532),comparator:r(536),complement:r(537),compose:r(539),composeK:r(546),composeP:r(547),concat:r(550),cond:r(568),construct:r(569),constructN:r(570),contains:r(571),converge:r(572),countBy:r(573),curry:r(525),curryN:r(474),dec:r(576),descend:r(577),defaultTo:r(578),difference:r(579),differenceWith:r(580),dissoc:r(582),dissocPath:r(583),divide:r(584),drop:r(585),dropLast:r(587),dropLastWhile:r(592),dropRepeats:r(595),dropRepeatsWith:r(597),dropWhile:r(600),either:r(602),empty:r(604),eqBy:r(605),eqProps:r(606),equals:r(555),evolve:r(607),filter:r(564),find:r(608),findIndex:r(610),findLast:r(612),findLastIndex:r(614),flatten:r(616),flip:r(617),forEach:r(618),forEachObjIndexed:r(619),fromPairs:r(620),groupBy:r(621),groupWith:r(622),gt:r(623),gte:r(624),has:r(625),hasIn:r(626),head:r(627),identical:r(559),identity:r(628),ifElse:r(630),inc:r(631),indexBy:r(632),indexOf:r(633),init:r(634),insert:r(635),insertAll:r(636),intersection:r(637),intersectionWith:r(641),intersperse:r(643),into:r(644),invert:r(649),invertObj:r(650),invoker:r(651),is:r(652),isArrayLike:r(494),isEmpty:r(653),isNil:r(654),join:r(655),juxt:r(656),keys:r(497),keysIn:r(657),last:r(598),lastIndexOf:r(658),length:r(659),lens:r(661),lensIndex:r(662),lensPath:r(664),lensProp:r(666),lift:r(522),liftN:r(523),lt:r(667),lte:r(668),map:r(489),mapAccum:r(669),mapAccumRight:r(670),mapObjIndexed:r(671),match:r(672),mathMod:r(673),max:r(487),maxBy:r(674),mean:r(675),median:r(677),memoize:r(678),merge:r(679),mergeAll:r(680),mergeWith:r(681),mergeWithKey:r(682),min:r(683),minBy:r(684),modulo:r(685),multiply:r(686),nAry:r(519),negate:r(687),none:r(688),not:r(538),nth:r(599),nthArg:r(689),objOf:r(648),of:r(690),omit:r(692),once:r(693),or:r(603),over:r(694),pair:r(695),partial:r(696),partialRight:r(698),partition:r(699),path:r(665),pathEq:r(700),pathOr:r(701),pathSatisfies:r(702),pick:r(703),pickAll:r(704),pickBy:r(705),pipe:r(540),pipeK:r(706),pipeP:r(548),pluck:r(488),prepend:r(707),product:r(708),project:r(709),prop:r(500),propEq:r(711),propIs:r(712),propOr:r(713),propSatisfies:r(714),props:r(715),range:r(716),reduce:r(501),reduceBy:r(574),reduceRight:r(717),reduceWhile:r(718),reduced:r(719),reject:r(562),remove:r(720),repeat:r(721),replace:r(723),reverse:r(545),scan:r(724),sequence:r(725),set:r(726),slice:r(544),sort:r(727),sortBy:r(728),sortWith:r(729),split:r(730),splitAt:r(731),splitEvery:r(732),splitWhen:r(733),subtract:r(734),sum:r(676),symmetricDifference:r(735),symmetricDifferenceWith:r(736),tail:r(542),take:r(589),takeLast:r(737),takeLastWhile:r(738),takeWhile:r(739),tap:r(741),test:r(742),times:r(722),toLower:r(744),toPairs:r(745),toPairsIn:r(746),toString:r(551),toUpper:r(747),transduce:r(748),transpose:r(749),traverse:r(750),trim:r(751),tryCatch:r(752),type:r(535),unapply:r(753),unary:r(754),uncurryN:r(755),unfold:r(756),union:r(757),unionWith:r(758),uniq:r(638),uniqBy:r(639),uniqWith:r(642),unless:r(759),unnest:r(760),until:r(761),update:r(663),useWith:r(710),values:r(513),valuesIn:r(762),view:r(763),when:r(764),where:r(765),whereEq:r(766),without:r(767),xprod:r(768),zip:r(769),zipObj:r(770),zipWith:r(771)}},function(t,e,r){var n=r(465);t.exports=n(!1)},function(t,e,r){var n=r(466);t.exports=n(function(t){return function(){return t}})},function(t,e,r){var n=r(467);t.exports=function(t){return function e(r){return 0===arguments.length||n(r)?e:t.apply(this,arguments)}}},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t&&t["@@functional/placeholder"]===!0}},function(t,e,r){var n=r(465);t.exports=n(!0)},function(t,e){t.exports={"@@functional/placeholder":!0}},function(t,e,r){var n=r(471);t.exports=n(function(t,e){return Number(t)+Number(e)})},function(t,e,r){var n=r(466),i=r(467);t.exports=function(t){return function e(r,o){switch(arguments.length){case 0:return e;case 1:return i(r)?e:n(function(e){return t(r,e)});default:return i(r)&&i(o)?e:i(r)?n(function(e){return t(e,o)}):i(o)?n(function(e){return t(r,e)}):t(r,o)}}}},function(t,e,r){var n=r(473),i=r(466),o=r(474);t.exports=i(function(t){return o(t.length,function(){var e=0,r=arguments[0],i=arguments[arguments.length-1],o=Array.prototype.slice.call(arguments,0);return o[0]=function(){var t=r.apply(this,n(arguments,[e,i]));return e+=1,t},t.apply(this,o)})})},function(t,e){t.exports=function(t,e){t=t||[],e=e||[];var r,n=t.length,i=e.length,o=[];for(r=0;r=arguments.length)?f=r[a]:(f=arguments[u],u+=1),s[a]=f,i(f)||(c-=1),a+=1}return c<=0?o.apply(this,s):n(c,t(e,s,o))}}},function(t,e,r){var n=r(473),i=r(478);t.exports=i(function(t,e,r){if(e>=r.length||e<-r.length)return r;var i=e<0?r.length:0,o=i+e,s=n(r);return s[o]=t(r[o]),s})},function(t,e,r){var n=r(466),i=r(471),o=r(467);t.exports=function(t){return function e(r,s,u){switch(arguments.length){case 0:return e;case 1:return o(r)?e:i(function(e,n){return t(r,e,n)});case 2:return o(r)&&o(s)?e:o(r)?i(function(e,r){return t(e,s,r)}):o(s)?i(function(e,n){return t(r,e,n)}):n(function(e){return t(r,s,e)});default:return o(r)&&o(s)&&o(u)?e:o(r)&&o(s)?i(function(e,r){return t(e,r,u)}):o(r)&&o(u)?i(function(e,r){return t(e,s,r)}):o(s)&&o(u)?i(function(e,n){return t(r,e,n)}):o(r)?n(function(e){return t(e,s,u)}):o(s)?n(function(e){return t(r,e,u)}):o(u)?n(function(e){return t(r,s,e)}):t(r,s,u)}}}},function(t,e,r){var n=r(471),i=r(480),o=r(483);t.exports=n(i(["all"],o,function(t,e){for(var r=0;r=0&&"[object Array]"===Object.prototype.toString.call(t)}},function(t,e){t.exports=function(t){return"function"==typeof t["@@transducer/step"]}},function(t,e,r){var n=r(471),i=r(484),o=r(485);t.exports=function(){function t(t,e){this.xf=e,this.f=t,this.all=!0}return t.prototype["@@transducer/init"]=o.init,t.prototype["@@transducer/result"]=function(t){return this.all&&(t=this.xf["@@transducer/step"](t,!0)),this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,e){return this.f(e)||(this.all=!1,t=i(this.xf["@@transducer/step"](t,!1))),t},n(function(e,r){return new t(e,r)})}()},function(t,e){t.exports=function(t){return t&&t["@@transducer/reduced"]?t:{"@@transducer/value":t,"@@transducer/reduced":!0}}},function(t,e){t.exports={init:function(){return this.xf["@@transducer/init"]()},result:function(t){return this.xf["@@transducer/result"](t)}}},function(t,e,r){var n=r(466),i=r(474),o=r(487),s=r(488),u=r(501);t.exports=n(function(t){return i(u(o,0,s("length",t)),function(){for(var e=0,r=t.length;et?e:t})},function(t,e,r){var n=r(471),i=r(489),o=r(500);t.exports=n(function(t,e){return i(o(t),e)})},function(t,e,r){var n=r(471),i=r(480),o=r(490),s=r(491),u=r(496),c=r(474),a=r(497);t.exports=n(i(["map"],u,function(t,e){switch(Object.prototype.toString.call(e)){case"[object Function]":return c(e.length,function(){return t.call(this,e.apply(this,arguments))});case"[object Object]":return s(function(r,n){return r[n]=t(e[n]),r},{},a(e));default:return o(t,e)}}))},function(t,e){t.exports=function(t,e){for(var r=0,n=e.length,i=Array(n);r0&&(t.hasOwnProperty(0)&&t.hasOwnProperty(t.length-1)))))})},function(t,e){t.exports=function(t){return"[object String]"===Object.prototype.toString.call(t)}},function(t,e,r){var n=r(471),i=r(485);t.exports=function(){function t(t,e){this.xf=e,this.f=t}return t.prototype["@@transducer/init"]=i.init,t.prototype["@@transducer/result"]=i.result,t.prototype["@@transducer/step"]=function(t,e){return this.xf["@@transducer/step"](t,this.f(e))},n(function(e,r){return new t(e,r)})}()},function(t,e,r){var n=r(466),i=r(498),o=r(499);t.exports=function(){var t=!{toString:null}.propertyIsEnumerable("toString"),e=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],r=function(){"use strict";return arguments.propertyIsEnumerable("length")}(),s=function(t,e){for(var r=0;r=0;)u=e[c],i(u,n)&&!s(a,u)&&(a[a.length]=u),c-=1;return a}:function(t){return Object(t)!==t?[]:Object.keys(t)})}()},function(t,e){t.exports=function(t,e){return Object.prototype.hasOwnProperty.call(e,t)}},function(t,e,r){var n=r(498);t.exports=function(){var t=Object.prototype.toString;return"[object Arguments]"===t.call(arguments)?function(e){return"[object Arguments]"===t.call(e)}:function(t){return n("callee",t)}}()},function(t,e,r){var n=r(471);t.exports=n(function(t,e){return e[t]})},function(t,e,r){var n=r(478),i=r(491);t.exports=n(i)},function(t,e,r){var n=r(471);t.exports=n(function(t,e){return t&&e})},function(t,e,r){var n=r(471),i=r(480),o=r(504);t.exports=n(i(["any"],o,function(t,e){for(var r=0;r=0?n:0);ri?1:0})},function(t,e,r){var n=r(478);t.exports=n(function(t,e,r){var n={};for(var i in r)n[i]=r[i];return n[t]=e,n})},function(t,e,r){var n=r(478),i=r(498),o=r(481),s=r(517),u=r(515);t.exports=n(function t(e,r,n){if(0===e.length)return r;var c=e[0];if(e.length>1){var a=i(c,n)?n[c]:s(e[1])?[]:{};r=t(Array.prototype.slice.call(e,1),r,a)}if(s(c)&&o(n)){var f=[].concat(n);return f[c]=r,f}return u(c,r,n)})},function(t,e){t.exports=Number.isInteger||function(t){return t<<0===t}},function(t,e,r){var n=r(466),i=r(519);t.exports=n(function(t){return i(2,t)})},function(t,e,r){var n=r(471);t.exports=n(function(t,e){switch(t){case 0:return function(){return e.call(this)};case 1:return function(t){return e.call(this,t)};case 2:return function(t,r){return e.call(this,t,r)};case 3:return function(t,r,n){return e.call(this,t,r,n)};case 4:return function(t,r,n,i){return e.call(this,t,r,n,i)};case 5:return function(t,r,n,i,o){return e.call(this,t,r,n,i,o)};case 6:return function(t,r,n,i,o,s){return e.call(this,t,r,n,i,o,s)};case 7:return function(t,r,n,i,o,s,u){return e.call(this,t,r,n,i,o,s,u)};case 8:return function(t,r,n,i,o,s,u,c){return e.call(this,t,r,n,i,o,s,u,c)};case 9:return function(t,r,n,i,o,s,u,c,a){return e.call(this,t,r,n,i,o,s,u,c,a)};case 10:return function(t,r,n,i,o,s,u,c,a,f){return e.call(this,t,r,n,i,o,s,u,c,a,f)};default:throw new Error("First argument to nAry must be a non-negative integer no greater than ten")}})},function(t,e,r){var n=r(471),i=r(521),o=r(502),s=r(522);t.exports=n(function(t,e){return i(t)?function(){return t.apply(this,arguments)&&e.apply(this,arguments)}:s(o)(t,e)})},function(t,e){t.exports=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,r){var n=r(466),i=r(523);t.exports=n(function(t){return i(t.length,t)})},function(t,e,r){var n=r(471),i=r(491),o=r(506),s=r(474),u=r(489);t.exports=n(function(t,e){var r=s(t,e);return s(t,function(){return i(o,u(r,arguments[0]),Array.prototype.slice.call(arguments,1))})})},function(t,e,r){var n=r(525);t.exports=n(function(t){return t.apply(this,Array.prototype.slice.call(arguments,1))})},function(t,e,r){var n=r(466),i=r(474);t.exports=n(function(t){return i(t.length,t)})},function(t,e,r){var n=r(471),i=r(480),o=r(527),s=r(528),u=r(489);t.exports=n(i(["chain"],s,function(t,e){return"function"==typeof e?function(r){return t(e(r))(r)}:o(!1)(u(t,e))}))},function(t,e,r){var n=r(494);t.exports=function(t){return function e(r){for(var i,o,s,u=[],c=0,a=r.length;ce)throw new Error("min must not be greater than max in clamp(min, max, value)");return re?e:r})},function(t,e,r){var n=r(533),i=r(466);t.exports=i(function(t){return null!=t&&"function"==typeof t.clone?t.clone():n(t,[],[],!0)})},function(t,e,r){var n=r(534),i=r(535);t.exports=function t(e,r,o,s){var u=function(n){for(var i=r.length,u=0;u":t(i,o)},f=function(t,e){return i(function(e){return o(e)+": "+a(t[e])},e.slice().sort())};switch(Object.prototype.toString.call(e)){case"[object Arguments]":return"(function() { return arguments; }("+i(a,e).join(", ")+"))";case"[object Array]":return"["+i(a,e).concat(f(e,c(function(t){return/^\d+$/.test(t)},u(e)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof e?"new Boolean("+a(e.valueOf())+")":e.toString();case"[object Date]":return"new Date("+(isNaN(e.valueOf())?a(NaN):o(s(e)))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof e?"new Number("+a(e.valueOf())+")":1/e===-(1/0)?"-0":e.toString(10);case"[object String]":return"object"==typeof e?"new String("+a(e.valueOf())+")":o(e);case"[object Undefined]":return"undefined";default:if("function"==typeof e.toString){var l=e.toString();if("[object Object]"!==l)return l}return"{"+f(e,u(e)).join(", ")+"}"}}},function(t,e,r){var n=r(554);t.exports=function(t,e){return n(e,t,0)>=0}},function(t,e,r){var n=r(555);t.exports=function(t,e,r){var i,o;if("function"==typeof t.indexOf)switch(typeof e){case"number":if(0===e){for(i=1/e;r=0;){if(a[p]===e)return f[p]===r;p-=1}for(a.push(e),f.push(r),p=l.length-1;p>=0;){var h=l[p];if(!o(h,r)||!t(r[h],e[h],a,f))return!1;p-=1}return a.pop(),f.pop(),!0}},function(t,e){t.exports=function(t){for(var e,r=[];!(e=t.next()).done;)r.push(e.value);return r}},function(t,e){t.exports=function(t){var e=String(t).match(/^function (\w*)/);return null==e?"":e[1]}},function(t,e,r){var n=r(471);t.exports=n(function(t,e){return t===e?0!==t||1/t===1/e:t!==t&&e!==e})},function(t,e){t.exports=function(t){var e=t.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0");return'"'+e.replace(/"/g,'\\"')+'"'}},function(t,e){t.exports=function(){var t=function(t){return(t<10?"0":"")+t};return"function"==typeof Date.prototype.toISOString?function(t){return t.toISOString()}:function(e){return e.getUTCFullYear()+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"}}()},function(t,e,r){var n=r(563),i=r(471),o=r(564);t.exports=i(function(t,e){return o(n(t),e)})},function(t,e){t.exports=function(t){return function(){return!t.apply(this,arguments)}}},function(t,e,r){var n=r(471),i=r(480),o=r(565),s=r(566),u=r(491),c=r(567),a=r(497);t.exports=n(i(["filter"],c,function(t,e){return s(e)?u(function(r,n){return t(e[n])&&(r[n]=e[n]),r},{},a(e)):o(t,e)}))},function(t,e){t.exports=function(t,e){for(var r=0,n=e.length,i=[];r10)throw new Error("Constructor with greater than ten arguments");return 0===t?function(){return new e}:i(o(t,function(t,r,n,i,o,s,u,c,a,f){switch(arguments.length){case 1:return new e(t);case 2:return new e(t,r);case 3:return new e(t,r,n);case 4:return new e(t,r,n,i);case 5:return new e(t,r,n,i,o);case 6:return new e(t,r,n,i,o,s);case 7:return new e(t,r,n,i,o,s,u);case 8:return new e(t,r,n,i,o,s,u,c);case 9:return new e(t,r,n,i,o,s,u,c,a);case 10:return new e(t,r,n,i,o,s,u,c,a,f)}}))})},function(t,e,r){var n=r(553),i=r(471);t.exports=i(n)},function(t,e,r){var n=r(471),i=r(490),o=r(474),s=r(487),u=r(488),c=r(501);t.exports=n(function(t,e){return o(c(s,0,u("length",e)),function(){var r=arguments,n=this;return t.apply(n,i(function(t){return t.apply(n,r)},e))})})},function(t,e,r){var n=r(574);t.exports=n(function(t,e){return t+1},0)},function(t,e,r){var n=r(476),i=r(480),o=r(498),s=r(491),u=r(575);t.exports=n(4,[],i([],u,function(t,e,r,n){return s(function(n,i){var s=r(i);return n[s]=t(o(s,n)?n[s]:e,i),n},{},n)}))},function(t,e,r){var n=r(476),i=r(498),o=r(485);t.exports=function(){function t(t,e,r,n){this.valueFn=t,this.valueAcc=e,this.keyFn=r,this.xf=n,this.inputs={}}return t.prototype["@@transducer/init"]=o.init,t.prototype["@@transducer/result"]=function(t){var e;for(e in this.inputs)if(i(e,this.inputs)&&(t=this.xf["@@transducer/step"](t,this.inputs[e]),t["@@transducer/reduced"])){t=t["@@transducer/value"];break}return this.inputs=null,this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,e){var r=this.keyFn(e);return this.inputs[r]=this.inputs[r]||[r,this.valueAcc],this.inputs[r][1]=this.valueFn(this.inputs[r][1],e),t},n(4,[],function(e,r,n,i){return new t(e,r,n,i)})}()},function(t,e,r){var n=r(470);t.exports=n(-1)},function(t,e,r){var n=r(478);t.exports=n(function(t,e,r){var n=t(e),i=t(r);return n>i?-1:n0?(this.n-=1,t):this.xf["@@transducer/step"](t,e)},n(function(e,r){return new t(e,r)})}()},function(t,e,r){var n=r(471),i=r(480),o=r(588),s=r(591);t.exports=n(i([],s,o))},function(t,e,r){var n=r(589);t.exports=function(t,e){return n(t=this.n?i(r):r},n(function(e,r){return new t(e,r)})}()},function(t,e,r){var n=r(471),i=r(485);t.exports=function(){function t(t,e){this.xf=e,this.pos=0,this.full=!1,this.acc=new Array(t)}return t.prototype["@@transducer/init"]=i.init,t.prototype["@@transducer/result"]=function(t){return this.acc=null,this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,e){return this.full&&(t=this.xf["@@transducer/step"](t,this.acc[this.pos])),this.store(e),t},t.prototype.store=function(t){this.acc[this.pos]=t,this.pos+=1,this.pos===this.acc.length&&(this.pos=0,this.full=!0)},n(function(e,r){return new t(e,r)})}()},function(t,e,r){var n=r(471),i=r(480),o=r(593),s=r(594);t.exports=n(i([],s,o))},function(t,e){t.exports=function(t,e){for(var r=e.length-1;r>=0&&t(e[r]);)r-=1;return Array.prototype.slice.call(e,0,r+1)}},function(t,e,r){var n=r(471),i=r(491),o=r(485);t.exports=function(){function t(t,e){this.f=t,this.retained=[],this.xf=e}return t.prototype["@@transducer/init"]=o.init,t.prototype["@@transducer/result"]=function(t){return this.retained=null,this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,e){return this.f(e)?this.retain(t,e):this.flush(t,e)},t.prototype.flush=function(t,e){return t=i(this.xf["@@transducer/step"],t,this.retained),this.retained=[],this.xf["@@transducer/step"](t,e)},t.prototype.retain=function(t,e){return this.retained.push(e),t},n(function(e,r){return new t(e,r)})}()},function(t,e,r){var n=r(466),i=r(480),o=r(596),s=r(597),u=r(555);t.exports=n(i([],o(u),s(u)))},function(t,e,r){var n=r(471),i=r(485);t.exports=function(){function t(t,e){this.xf=e,this.pred=t,this.lastValue=void 0,this.seenFirstValue=!1}return t.prototype["@@transducer/init"]=i.init,t.prototype["@@transducer/result"]=i.result,t.prototype["@@transducer/step"]=function(t,e){var r=!1;return this.seenFirstValue?this.pred(this.lastValue,e)&&(r=!0):this.seenFirstValue=!0,this.lastValue=e,r?t:this.xf["@@transducer/step"](t,e)},n(function(e,r){return new t(e,r)})}()},function(t,e,r){var n=r(471),i=r(480),o=r(596),s=r(598);t.exports=n(i([],o,function(t,e){var r=[],n=1,i=e.length;if(0!==i)for(r[0]=e[0];n=0;){if(t(e[r]))return e[r];r-=1}}))},function(t,e,r){var n=r(471),i=r(485);t.exports=function(){function t(t,e){this.xf=e,this.f=t}return t.prototype["@@transducer/init"]=i.init,t.prototype["@@transducer/result"]=function(t){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](t,this.last))},t.prototype["@@transducer/step"]=function(t,e){return this.f(e)&&(this.last=e),t},n(function(e,r){return new t(e,r)})}()},function(t,e,r){var n=r(471),i=r(480),o=r(615);t.exports=n(i([],o,function(t,e){for(var r=e.length-1;r>=0;){if(t(e[r]))return r;r-=1}return-1}))},function(t,e,r){var n=r(471),i=r(485);t.exports=function(){function t(t,e){this.xf=e,this.f=t,this.idx=-1,this.lastIdx=-1}return t.prototype["@@transducer/init"]=i.init,t.prototype["@@transducer/result"]=function(t){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](t,this.lastIdx))},t.prototype["@@transducer/step"]=function(t,e){return this.idx+=1,this.f(e)&&(this.lastIdx=this.idx),t},n(function(e,r){return new t(e,r)})}()},function(t,e,r){var n=r(466),i=r(527);t.exports=n(i(!0))},function(t,e,r){var n=r(466),i=r(525);t.exports=n(function(t){return i(function(e,r){var n=Array.prototype.slice.call(arguments,0);return n[0]=r,n[1]=e,t.apply(this,n)})})},function(t,e,r){var n=r(543),i=r(471);t.exports=i(n("forEach",function(t,e){for(var r=e.length,n=0;ne})},function(t,e,r){var n=r(471);t.exports=n(function(t,e){return t>=e})},function(t,e,r){var n=r(471),i=r(498);t.exports=n(i)},function(t,e,r){var n=r(471);t.exports=n(function(t,e){return t in e})},function(t,e,r){var n=r(599);t.exports=n(0)},function(t,e,r){var n=r(466),i=r(629);t.exports=n(i)},function(t,e){t.exports=function(t){return t}},function(t,e,r){var n=r(478),i=r(474);t.exports=n(function(t,e,r){return i(Math.max(t.length,e.length,r.length),function(){return t.apply(this,arguments)?e.apply(this,arguments):r.apply(this,arguments)})})},function(t,e,r){var n=r(470);t.exports=n(1)},function(t,e,r){var n=r(574);t.exports=n(function(t,e){return e},null)},function(t,e,r){var n=r(471),i=r(554),o=r(481);t.exports=n(function(t,e){return"function"!=typeof e.indexOf||o(e)?i(e,t,0):e.indexOf(t)})},function(t,e,r){var n=r(544);t.exports=n(0,-1)},function(t,e,r){var n=r(478);t.exports=n(function(t,e,r){t=t=0?t:r.length;var n=Array.prototype.slice.call(r,0);return n.splice(t,0,e),n})},function(t,e,r){var n=r(478);t.exports=n(function(t,e,r){return t=t=0?t:r.length,[].concat(Array.prototype.slice.call(r,0,t),e,Array.prototype.slice.call(r,t))})},function(t,e,r){var n=r(553),i=r(471),o=r(565),s=r(617),u=r(638);t.exports=i(function(t,e){var r,i;return t.length>e.length?(r=t,i=e):(r=e,i=t),u(o(s(n)(r),i))})},function(t,e,r){var n=r(628),i=r(639);t.exports=i(n)},function(t,e,r){var n=r(640),i=r(471);t.exports=i(function(t,e){for(var r,i,o=new n,s=[],u=0;ur.length?(i=e,s=r):(i=r,s=e);for(var u=[],c=0;c=0;){if(o(e[r],t))return r;r-=1}return-1}return e.lastIndexOf(t)})},function(t,e,r){var n=r(466),i=r(660);t.exports=n(function(t){return null!=t&&i(t.length)?t.length:NaN})},function(t,e){t.exports=function(t){return"[object Number]"===Object.prototype.toString.call(t)}},function(t,e,r){var n=r(471),i=r(489);t.exports=n(function(t,e){return function(r){return function(n){return i(function(t){return e(t,n)},r(t(n)))}}})},function(t,e,r){var n=r(466),i=r(661),o=r(599),s=r(663);t.exports=n(function(t){return i(o(t),s(t))})},function(t,e,r){var n=r(478),i=r(477),o=r(465);t.exports=n(function(t,e,r){return i(o(e),t,r)})},function(t,e,r){var n=r(466),i=r(516),o=r(661),s=r(665);t.exports=n(function(t){return o(s(t),i(t))})},function(t,e,r){var n=r(471);t.exports=n(function(t,e){for(var r=e,n=0;n=0;)o=t(r[n],o[0]),i[n]=o[1],n-=1;return[i,o[0]]})},function(t,e,r){var n=r(471),i=r(491),o=r(497);t.exports=n(function(t,e){return i(function(r,n){return r[n]=t(e[n],n,e),r},{},o(e))})},function(t,e,r){var n=r(471);t.exports=n(function(t,e){return e.match(t)||[]})},function(t,e,r){var n=r(471),i=r(517);t.exports=n(function(t,e){return i(t)?!i(e)||e<1?NaN:(t%e+e)%e:NaN})},function(t,e,r){var n=r(478);t.exports=n(function(t,e,r){return t(r)>t(e)?r:e})},function(t,e,r){var n=r(466),i=r(676);t.exports=n(function(t){return i(t)/t.length})},function(t,e,r){var n=r(470),i=r(501);t.exports=i(n,0)},function(t,e,r){var n=r(466),i=r(675);t.exports=n(function(t){var e=t.length;if(0===e)return NaN;var r=2-e%2,n=(e-r)/2;return i(Array.prototype.slice.call(t,0).sort(function(t,e){return te?1:0}).slice(n,n+r))})},function(t,e,r){var n=r(475),i=r(466),o=r(498),s=r(551);t.exports=i(function(t){var e={};return n(t.length,function(){var r=s(arguments);return o(r,e)||(e[r]=t.apply(this,arguments)),e[r]})})},function(t,e,r){var n=r(646),i=r(471);t.exports=i(function(t,e){return n({},t,e)})},function(t,e,r){var n=r(646),i=r(466);t.exports=i(function(t){return n.apply(null,[{}].concat(t))})},function(t,e,r){var n=r(478),i=r(682);t.exports=n(function(t,e,r){return i(function(e,r,n){return t(r,n)},e,r)})},function(t,e,r){var n=r(478),i=r(498);t.exports=n(function(t,e,r){var n,o={};for(n in e)i(n,e)&&(o[n]=i(n,r)?t(n,e[n],r[n]):e[n]);for(n in r)i(n,r)&&!i(n,o)&&(o[n]=r[n]);return o})},function(t,e,r){var n=r(471);t.exports=n(function(t,e){return e0&&t(i(e,r))})},function(t,e,r){var n=r(471);t.exports=n(function(t,e){for(var r={},n=0;n=0;)e=t(r[n],e),n-=1;return e})},function(t,e,r){var n=r(476),i=r(491),o=r(484);t.exports=n(4,[],function(t,e,r,n){return i(function(r,n){return t(r,n)?e(r,n):o(r)},r,n)})},function(t,e,r){var n=r(466),i=r(484);t.exports=n(i)},function(t,e,r){var n=r(478);t.exports=n(function(t,e,r){var n=Array.prototype.slice.call(r,0);return n.splice(t,e),n})},function(t,e,r){var n=r(471),i=r(465),o=r(722);t.exports=n(function(t,e){return o(i(t),e)})},function(t,e,r){var n=r(471);t.exports=n(function(t,e){var r,n=Number(e),i=0;if(n<0||isNaN(n))throw new RangeError("n must be a non-negative number");for(r=new Array(n);ii?1:0})})},function(t,e,r){var n=r(471);t.exports=n(function(t,e){return Array.prototype.slice.call(e,0).sort(function(e,r){for(var n=0,i=0;0===n&&i=0?e.length-t:0,e)})},function(t,e,r){var n=r(471);t.exports=n(function(t,e){for(var r=e.length-1;r>=0&&t(e[r]);)r-=1;return Array.prototype.slice.call(e,r+1)})},function(t,e,r){var n=r(471),i=r(480),o=r(740);t.exports=n(i(["takeWhile"],o,function(t,e){for(var r=0,n=e.length;r1&&void 0!==arguments[1]?arguments[1]:[],i=e.component,s=e.sources,u=e.removeSelector;return{add:function(){var f=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},p=c(i,l({},s,f)),d=u(p)||h.default.empty(),v=a(d,r,_.default);return p._remove$=v.take(1).mapTo(p),t(e,[].concat(o(n),[p]))},remove:function(r){return t(e,n.filter(function(t){return t!==r}))},asArray:function(){return n.slice()}}}function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.default.empty(),s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:x,u=h.default.create(),c=a(o,r,_.default),f=c.map(function(t){return function(e){return Array.isArray(t)?t.reduce(function(t,e){return t.add(e)},e):e.add(t)}}),l=u.map(function(t){return function(e){return e.remove(t)}}),p=h.default.merge(l,f),d=t({component:n,sources:i,removeSelector:s}),v=p.fold(function(t,e){return e(t)},d).map(function(t){return t.asArray()}),y=e.merge(v,function(t){return t._remove$},!0);return u.imitate(y),a(v,_.default,r)}var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_.default;return e.pluck=function(t,e){function n(t){var n=t._id;if(void 0===i[n]){var o=a(e(t),r,_.default),u=o.map(function(t){return s(t)&&null==t.key?l({},t,{key:n}):t});i[n]=u.remember()}return i[n]}var i={},u=a(t,r,_.default),c=u.map(function(t){return t.map(function(t){return n(t)})}).map(function(t){return h.default.combine.apply(h.default,o(t))}).flatten().startWith([]);return a(c,_.default,r)},e.merge=function(t,e){function n(t){var n=t._id;if(void 0===u[n]){var i=a(e(t),r,_.default),o=i.map(function(t){return s(t)&&null==t.key?l({},t,{key:n}):t});u[n]=h.default.merge(o,h.default.never())}return u[n]}var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],u={},c=a(t,r,_.default),f=c.map(function(t){return t.map(function(t){return n(t)})}).map(function(t){return h.default.merge.apply(h.default,o(t))}).flatten();return i?f:a(f,_.default,r)},e.gather=function(t,n,o){function s(t){return function(e){return l({},t(e),{_destroy$:e._destroy$})}}function u(t,e){var r=t.prevIds;return{prevIds:e.map(function(t){return t[p]}),addedItems:e.filter(function(t){return r.indexOf(t[p])===-1})}}function c(t,e){if(t===e)return!0;try{if(JSON.stringify(t)===JSON.stringify(e))return!0}catch(t){}return!1}function f(t,e){var n=e.map(function(e){return e.find(function(e){return e[p]===t[p]})}),o=n.filter(function(t){return!t}).take(1),s=n.endWhen(o);return Object.keys(t).reduce(function(e,n){if(n===p)return e;var o=s.map(function(t){return t[n]}).startWith(t[n]).compose((0,v.default)(c)).remember();return l({},e,i({},n,a(o,_.default,r)))},{_destroy$:o})}var p=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"id",h=a(o,r,_.default),d=h.remember(),y=d.fold(u,{prevIds:[],addedItems:[]}).map(function(t){var e=t.addedItems;return e}).filter(function(t){return t.length}).map(function(t){return t.map(function(t){return f(t,d)})});return e(s(t),n,y,function(t){return t._destroy$})},e}Object.defineProperty(e,"__esModule",{value:!0}),e.makeCollection=void 0;var l=Object.assign||function(t){for(var e=1;e timer(x))",inputs:[],apply:function(t,e){return n.Observable.from([10,20,30]).delayWhen(function(t){return n.Observable.timer(t,e)})}},interval:{label:"Observable.interval(10)",inputs:[],apply:function(t,e){return n.Observable.interval(10,e)}},of:{label:"Observable.of(1)",inputs:[],apply:function(){return n.Observable.of(1)}},timer:{label:"Observable.timer(30, 10)",inputs:[],apply:function(t,e){return n.Observable.timer(30,10,e)}}}},function(t,e,r){"use strict";function n(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);e "" + x + y)',inputs:[[{t:0,c:1},{t:20,c:2},{t:65,c:3},{t:75,c:4},{t:92,c:5}],[{t:10,c:"A"},{t:25,c:"B"},{t:50,c:"C"},{t:57,c:"D"}]],apply:function(t){return i.Observable.combineLatest(t[0],t[1],function(t,e){return""+t.content+e.content})}},concat:{label:"concat",inputs:[[{t:0,c:1},{t:15,c:1},{t:50,c:1},57],[{t:0,c:2},{t:8,c:2},12]],apply:function(t){return i.Observable.concat.apply(i.Observable,n(t))}},merge:{label:"merge",inputs:[[{t:0,c:20},{t:15,c:40},{t:30,c:60},{t:45,c:80},{t:60,c:100}],[{t:37,c:1},{t:68,c:1}]],apply:function(t){return i.Observable.merge.apply(i.Observable,n(t))}},race:{label:"race",inputs:[[{t:10,c:20},{t:20,c:40},{t:30,c:60}],[{t:5,c:1},{t:15,c:2},{t:25,c:3}],[{t:20,c:0},{t:32,c:0},{t:44,c:0}]],apply:function(t){return i.Observable.race(t)}},startWith:{label:"startWith(1)",inputs:[[{t:30,c:2},{t:40,c:3}]],apply:function(t,e){return t[0].startWith(1,e)}},withLatestFrom:{label:'withLatestFrom((x, y) => "" + x + y)',inputs:[[{t:0,c:1},{t:20,c:2},{t:65,c:3},{t:75,c:4},{t:92,c:5}],[{t:10,c:"A"},{t:25,c:"B"},{t:50,c:"C"},{t:57,c:"D"}]],apply:function(t){return t[0].withLatestFrom(t[1],function(t,e){return""+t.content+e.content})}},zip:{label:"zip",inputs:[[{t:0,c:1},{t:20,c:2},{t:65,c:3},{t:75,c:4},{t:92,c:5}],[{t:10,c:"A"},{t:25,c:"B"},{t:50,c:"C"},{t:57,c:"D"}]],apply:function(t){return i.Observable.zip(t[0],t[1],function(t,e){return""+t.content+e.content})}}}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.conditionalExamples=void 0;r(2),e.conditionalExamples={defaultIfEmpty:{label:"defaultIfEmpty(true)",inputs:[[99]],apply:function(t){return t[0].defaultIfEmpty(!0)}},every:{label:"every(x => x < 10)",inputs:[[{t:5,c:1},{t:15,c:2},{t:25,c:3},{t:35,c:4},{t:65,c:5},80]],apply:function(t){return t[0].every(function(t){var e=t.content;return e<10})}},sequenceEqual:{label:"sequenceEqual",inputs:[[{t:5,c:1},{t:15,c:2},{t:25,c:3},{t:35,c:4},{t:65,c:5},85],[{t:2,c:1},{t:20,c:2},{t:40,c:3},{t:70,c:4},{t:77,c:5},85]],apply:function(t){return t[0].sequenceEqual(t[1],function(t,e){return t.content===e.content})}}}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.filteringExamples=void 0;var n=r(2);e.filteringExamples={debounceTime:{label:"debounceTime(10)",inputs:[[{t:0,c:1},{t:26,c:2},{t:34,c:3},{t:40,c:4},{t:45,c:5},{t:79,c:6}]],apply:function(t,e){return t[0].debounceTime(10,e)}},debounce:{label:"debounce(x => Rx.Observable.timer(10 * x))",inputs:[[{t:0,c:1},{t:26,c:2},{t:34,c:1},{t:40,c:1},{t:45,c:2},{t:79,c:1}]],apply:function(t,e){return t[0].debounce(function(t){return n.Observable.timer(10*Number(t.content),1e3,e)})}},distinct:{label:"distinct",inputs:[[{t:5,c:1},{t:20,c:2},{t:35,c:2},{t:60,c:1},{t:70,c:3}]],apply:function(t){return t[0].distinct(function(t){return t.content})}},distinctUntilChanged:{label:"distinctUntilChanged",inputs:[[{t:5,c:1},{t:20,c:2},{t:35,c:2},{t:60,c:1},{t:70,c:3}]],apply:function(t){return t[0].distinctUntilChanged(void 0,function(t){return t.content})}},elementAt:{label:"elementAt(2)",inputs:[[{t:30,c:1},{t:40,c:2},{t:65,c:3},{t:75,c:4}]],apply:function(t,e){return t[0].elementAt(2)}},filter:{label:"filter(x => x > 10)",inputs:[[{t:5,c:2},{t:15,c:30},{t:25,c:22},{t:35,c:5},{t:45,c:60},{t:55,c:1}]],apply:function(t){return t[0].filter(function(t){return t.content>10})}},find:{label:"find(x => x > 10)",inputs:[[{t:5,c:2},{t:15,c:30},{t:25,c:22},{t:35,c:5},{t:45,c:60},{t:55,c:1}]],apply:function(t,e){return t[0].find(function(t){return t.content>10})}},findIndex:{label:"findIndex(x => x > 10)",inputs:[[{t:5,c:2},{t:15,c:30},{t:25,c:22},{t:35,c:5},{t:45,c:60},{t:55,c:1}]],apply:function(t,e){return t[0].findIndex(function(t){var e=t.content;return e>10})}},first:{label:"first",inputs:[[{t:30,c:1},{t:40,c:2},{t:65,c:3},{t:75,c:4},85]],apply:function(t){return t[0].first()}},ignoreElements:{label:"ignoreElements",inputs:[[{t:20,c:"A"},{t:40,c:"B"},{t:50,c:"C"},{t:75,c:"D"},90]],apply:function(t){return t[0].ignoreElements()}},last:{label:"last",inputs:[[{t:30,c:1},{t:40,c:2},{t:65,c:3},{t:75,c:4},85]],apply:function(t){return t[0].last()}},sample:{label:"sample",inputs:[[{t:0,c:1},{t:20,c:2},{t:40,c:3},{t:60,c:4},{t:80,c:5}],[{t:10,c:"A"},{t:25,c:"B"},{t:33,c:"C"},{t:70,c:"D"},90]],apply:function(t){return t[0].sample(t[1])}},skip:{label:"skip(2)",inputs:[[{t:30,c:1},{t:40,c:2},{t:65,c:3},{t:75,c:4}]],apply:function(t){return t[0].skip(2)}},skipUntil:{label:"skipUntil",inputs:[[{t:0,c:1},{t:10,c:2},{t:20,c:3},{t:30,c:4},{t:40,c:5},{t:50,c:6},{t:60,c:7},{t:70,c:8},{t:80,c:9}],[{t:45,c:0},{t:73,c:0}]],apply:function(t){return t[0].skipUntil(t[1])}},skipWhile:{label:"skipWhile(x => x < 5)",inputs:[[{t:5,c:1},{t:20,c:3},{t:35,c:6},{t:50,c:4},{t:65,c:7},{t:80,c:2}]],apply:function(t){return t[0].skipWhile(function(t){return t.content<5})}},take:{label:"take(2)",inputs:[[{t:30,c:1},{t:40,c:2},{t:65,c:3},{t:75,c:4},85]],apply:function(t,e){return t[0].take(2,e)}},takeLast:{label:"takeLast(1)",inputs:[[{t:30,c:1},{t:40,c:2},{t:65,c:3},{t:75,c:4},85]],apply:function(t){return t[0].takeLast(1)}},takeUntil:{label:"takeUntil",inputs:[[{t:0,c:1},{t:10,c:2},{t:20,c:3},{t:30,c:4},{t:40,c:5},{t:50,c:6},{t:60,c:7},{t:70,c:8},{t:80,c:9}],[{t:45,c:0},{t:73,c:0}]],apply:function(t){return t[0].takeUntil(t[1])}},takeWhile:{label:"takeWhile(x => x < 5)",inputs:[[{t:5,c:1},{t:20,c:3},{t:35,c:6},{t:50,c:4},{t:65,c:7},{t:80,c:2}]],apply:function(t){return t[0].takeWhile(function(t){return t.content<5})}},throttle:{label:"throttle(x => Rx.Observable.timer(10 * x))",inputs:[[{t:0,c:1},{t:26,c:2},{t:34,c:1},{t:40,c:1},{t:45,c:2},{t:79,c:1}]],apply:function(t,e){return t[0].throttle(function(t){return n.Observable.timer(10*Number(t.content),1e3,e)})}},throttleTime:{label:"throttleTime(25)",inputs:[[{t:0,c:"A"},{t:8,c:"B"},{t:16,c:"C"},{t:40,c:"D"},{t:55,c:"E"},{t:60,c:"F"},{t:70,c:"G"}]],apply:function(t,e){return t[0].throttleTime(25,e)}}}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mathExamples=void 0;var n=r(463);e.mathExamples={count:{label:"count(x => x > 10)",inputs:[[{t:5,c:2},{t:15,c:30},{t:25,c:22},{t:35,c:5},{t:45,c:60},{t:55,c:1},80]],apply:function(t){return t[0].count(function(t){var e=t.content;return e>10})}},max:{label:"max",inputs:[[{t:5,c:2},{t:15,c:30},{t:25,c:22},{t:35,c:5},{t:45,c:60},{t:55,c:1},80]],apply:function(t){return t[0].max(function(t,e){return t.content>e.content?1:t.contente.content?1:t.content x + y)",inputs:[[{t:5,c:1},{t:15,c:2},{t:25,c:3},{t:35,c:4},{t:65,c:5},80]],apply:function(t){return t[0].reduce(function(t,e){return(0,n.merge)(t,{content:t.content+e.content,id:t.id+e.id})})}}}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.transformationExamples=void 0;var n=r(2),i=r(463);e.transformationExamples={buffer:{label:"buffer",inputs:[[{t:9,c:"A"},{t:23,c:"B"},{t:40,c:"C"},{t:54,c:"D"},{t:71,c:"E"},{t:85,c:"F"}],[{t:33,c:0},{t:66,c:0},{t:90,c:0}]],apply:function(t){return t[0].pluck("content").buffer(t[1]).map(function(t){return"["+t+"]"})}},bufferCount:{label:"bufferCount(3, 2)",inputs:[[{t:9,c:"A"},{t:23,c:"B"},{t:40,c:"C"},{t:54,c:"D"},{t:71,c:"E"},{t:85,c:"F"}]],apply:function(t){return t[0].pluck("content").bufferCount(3,2).map(function(t){return"["+t+"]"})}},bufferTime:{label:"bufferTime(30)",inputs:[[{t:0,c:"A"},{t:10,c:"B"},{t:22,c:"C"},{t:61,c:"D"},{t:71,c:"E"},{t:95,c:"F"}]],apply:function(t,e){return t[0].pluck("content").bufferTime(30,e).map(function(t){return"["+t+"]"})}},bufferToggle:{label:"bufferToggle(start$, x => Observable.timer(x))",inputs:[[{t:0,c:1},{t:10,c:2},{t:20,c:3},{t:30,c:4},{t:40,c:5},{t:50,c:6},{t:60,c:7},{t:70,c:8},{t:80,c:9}],[{t:15,c:10},{t:45,c:30}]],apply:function(t,e){return t[0].pluck("content").bufferToggle(t[1],function(t){return n.Observable.timer(t.content,e)}).map(function(t){return"["+t+"]"})}},bufferWhen:{label:"bufferWhen",inputs:[[{t:0,c:1},{t:10,c:2},{t:20,c:3},{t:30,c:4},{t:40,c:5},{t:50,c:6},{t:60,c:7},{t:70,c:8},{t:80,c:9}],[{t:35,c:0},{t:50,c:0}]],apply:function(t){return t[0].pluck("content").bufferWhen(function(){return t[1]}).map(function(t){return"["+t+"]"})}},concatMap:{label:'obs1$.concatMap(() => obs2$, (x, y) => "" + x + y)',inputs:[[{t:0,c:"A"},{t:42,c:"B"},{t:55,c:"C"}],[{t:0,c:1},{t:10,c:2},{t:20,c:3},25]],apply:function(t,e){return t[0].pluck("content").concatMap(function(){return t[1].pluck("content")},function(t,e){return""+t+e})}},concatMapTo:{label:'obs1$.concatMapTo(obs2$, (x, y) => "" + x + y)',inputs:[[{t:0,c:"A"},{t:42,c:"B"},{t:55,c:"C"}],[{t:0,c:1},{t:10,c:2},{t:20,c:3},25]],apply:function(t,e){return t[0].pluck("content").concatMapTo(t[1].pluck("content"),function(t,e){return""+t+e})}},map:{label:"map(x => 10 * x)",inputs:[[{t:10,c:1},{t:20,c:2},{t:50,c:3}]],apply:function(t){return t[0].map((0,i.evolve)({content:function(t){return 10*t}}))}},mapTo:{label:'mapTo("a")',inputs:[[{t:10,c:1},{t:20,c:2},{t:50,c:3}]],apply:function(t){return t[0].mapTo("a")}},mergeMap:{label:'obs1$.mergeMap(() => obs2$, (x, y) => "" + x + y, 2)',inputs:[[{t:0,c:"A"},{t:3,c:"B"},{t:6,c:"C"}],[{t:0,c:1},{t:12,c:2},{t:24,c:3},28]],apply:function(t,e){return t[0].pluck("content").mergeMap(function(){return t[1].pluck("content")},function(t,e){return""+t+e},2)}},mergeMapTo:{label:'obs1$.mergeMapTo(obs2$, (x, y) => "" + x + y, 2)',inputs:[[{t:0,c:"A"},{t:3,c:"B"},{t:6,c:"C"}],[{t:0,c:1},{t:12,c:2},{t:24,c:3},25]],apply:function(t,e){return t[0].pluck("content").mergeMapTo(t[1].pluck("content"),function(t,e){return""+t+e},2)}},pairwise:{label:"pairwise",inputs:[[{t:9,c:"A"},{t:23,c:"B"},{t:40,c:"C"},{t:54,c:"D"},{t:71,c:"E"},{t:85,c:"F"}]],apply:function(t){return t[0].pluck("content").pairwise().map(function(t){return"["+t+"]"})}},pluck:{label:'pluck("a")',inputs:[[{t:10,c:"{a:1}"},{t:20,c:"{a:2}"},{t:50,c:"{a:5}"}]],apply:function(t){return t[0].map((0,i.evolve)({content:function(t){return t.match(/\d/)[0]}}))}},repeat:{label:"repeat(3)",inputs:[[{t:0,c:"A"},{t:12,c:"B"},26]],apply:function(t){return t[0].repeat(3)}},scan:{label:"scan((x, y) => x + y)",inputs:[[{t:5,c:1},{t:15,c:2},{t:25,c:3},{t:35,c:4},{t:65,c:5}]],apply:function(t){return t[0].scan(function(t,e){return(0,i.merge)(t,{content:t.content+e.content,id:t.id+e.id})})}},switchMap:{label:'obs1$.switchMap(() => obs2$, (x, y) => "" + x + y)',inputs:[[{t:0,c:"A"},{t:42,c:"B"},{t:55,c:"C"}],[{t:0,c:1},{t:10,c:2},{t:20,c:3},25]],apply:function(t,e){return t[0].pluck("content").switchMap(function(){return t[1].pluck("content")},function(t,e){return""+t+e})}},switchMapTo:{label:'obs1$.switchMapTo(obs2$, (x, y) => "" + x + y)',inputs:[[{t:0,c:"A"},{t:42,c:"B"},{t:55,c:"C"}],[{t:0,c:1},{t:10,c:2},{t:20,c:3},25]],apply:function(t,e){return t[0].pluck("content").switchMapTo(t[1].pluck("content"),function(t,e){return""+t+e})}}}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.utilityExamples=void 0;var n=r(2),i=r(463);e.utilityExamples={delay:{label:"delay(20)",inputs:[[{t:10,c:"1"},{t:20,c:"2"},{t:70,c:"1"}]],apply:function(t,e){return t[0].map((0,i.prop)("content")).delay(20,e)}},delayWhen:{label:"delayWhen(x => Observable.timer(20 * x))",inputs:[[{t:0,c:1},{t:10,c:2},{t:20,c:1}]],apply:function(t,e){return t[0].delayWhen(function(t){var r=t.content;return n.Observable.timer(20*Number(r),1e3,e)})}}}},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(790);Object.keys(n).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var i=r(791);Object.keys(i).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return i[t]}})});var o=r(792);Object.keys(o).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var s=r(793);Object.keys(s).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return s[t]}})});var u=r(794);Object.keys(u).forEach(function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})})},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.flex={display:"flex"},e.flex1={flex:"1"},e.userSelectNone={userSelect:"none","-ms-user-select":"none","-moz-user-select":"none","-webkit-user-select":"none"}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=e.COLORS={blue:"#3EA1CB",yellow:"#FFCB46",red:"#FF6946",green:"#82D736",white:"#FFFFFF",almostWhite:"#ECECEC",greyLight:"#D4D4D4",grey:"#A7A7A7",greyDark:"#7C7C7C",black:"#323232"};e.blue={color:r.blue},e.yellow={color:r.yellow},e.red={color:r.red},e.green={color:r.green},e.white={color:r.white},e.almostWhite={color:r.almostWhite},e.greyLight={color:r.greyLight},e.grey={color:r.grey},e.greyDark={color:r.greyDark},e.black={color:r.black},e.bgWhite={backgroundColor:r.white}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.DIMENS={spaceTiny:"5px",spaceSmall:"10px",spaceMedium:"22px",spaceLarge:"32px",spaceHuge:"42px",animationDurationQuick:"100ms",animationDurationNormal:"200ms",animationDurationSlow:"400ms"}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=e.FONTS={base:"'Source Sans Pro', sans-serif",code:"'Source Code Pro', monospace",special:"'Signika', Helvetica, serif"};e.fontBase={fontFamily:r.base},e.fontCode={fontFamily:r.code},e.fontSpecial={fontFamily:r.special}},function(t,e,r){"use strict";function n(){return(0,c.svg)({attrs:{height:"0"}},[c.svg.filter("#"+a,{attrs:{height:"130%"}},[c.svg.feGaussianBlur({attrs:{in:"SourceAlpha",stdDeviation:"0.3"}}),c.svg.feOffset({attrs:{dx:"0",dy:"0.25",result:"offsetblur"}}),c.svg.feFlood({attrs:{"flood-color":"rgba(0,0,0,0.4)"}}),c.svg.feComposite({attrs:{in2:"offsetblur",operator:"in"}}),c.svg.feMerge([c.svg.feMergeNode(),c.svg.feMergeNode({attrs:{in:"SourceGraphic"}})])])])}function i(t,e,r){return{display:"block",position:"absolute",left:"0",top:"0",right:"0",bottom:"0","-webkit-box-shadow":"0 "+t+" "+e+" 0 rgba(0,0,0,"+r+")","-moz-box-shadow":"0 "+t+" "+e+" 0 rgba(0,0,0,"+r+")","box-shadow":"0 "+t+" "+e+" 0 rgba(0,0,0,"+r+")"}}function o(){return(0,c.div)({style:i("2px","10px","0.17")},"")}function s(){return(0,c.div)({style:i("2px","5px","0.26")},"")}function u(){for(var t=arguments.length,e=Array(t),r=0;r=45?1.3:t.length>=30?1.5:2,r=(0,u.merge)({fontWeight:"400",fontSize:e+"rem"},u.fontCode);return(0,o.span)(".operatorLabel",{style:r},t)}function i(t){var e={border:"1px solid rgba(0,0,0,0.06)",padding:u.DIMENS.spaceMedium,textAlign:"center",position:"relative"};return(0,o.div)(".operatorBox",{style:e},[(0,s.renderElevation2Before)(),n(t),(0,s.renderElevation2After)()])}Object.defineProperty(e,"__esModule",{value:!0}),e.renderOperatorBox=i;var o=r(352),s=r(794),u=r(789)}]); diff --git a/src/assets/rx-marbles/native-shim.js b/src/assets/rx-marbles/native-shim.js new file mode 100644 index 00000000..2011d29a --- /dev/null +++ b/src/assets/rx-marbles/native-shim.js @@ -0,0 +1,164 @@ +/** + * @license + * Copyright (c) 2016 The Polymer Project Authors. All rights reserved. + * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + * Code distributed by Google as part of the polymer project is also + * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt + */ + +/** + * This shim allows elements written in, or compiled to, ES5 to work on native + * implementations of Custom Elements. + * + * ES5-style classes don't work with native Custom Elements because the + * HTMLElement constructor uses the value of `new.target` to look up the custom + * element definition for the currently called constructor. `new.target` is only + * set when `new` is called and is only propagated via super() calls. super() + * is not emulatable in ES5. The pattern of `SuperClass.call(this)`` only works + * when extending other ES5-style classes, and does not propagate `new.target`. + * + * This shim allows the native HTMLElement constructor to work by generating and + * registering a stand-in class instead of the users custom element class. This + * stand-in class's constructor has an actual call to super(). + * `customElements.define()` and `customElements.get()` are both overridden to + * hide this stand-in class from users. + * + * In order to create instance of the user-defined class, rather than the stand + * in, the stand-in's constructor swizzles its instances prototype and invokes + * the user-defined constructor. When the user-defined constructor is called + * directly it creates an instance of the stand-in class to get a real extension + * of HTMLElement and returns that. + * + * There are two important constructors: A patched HTMLElement constructor, and + * the StandInElement constructor. They both will be called to create an element + * but which is called first depends on whether the browser creates the element + * or the user-defined constructor is called directly. The variables + * `browserConstruction` and `userConstruction` control the flow between the + * two constructors. + * + * This shim should be better than forcing the polyfill because: + * 1. It's smaller + * 2. All reaction timings are the same as native (mostly synchronous) + * 3. All reaction triggering DOM operations are automatically supported + * + * There are some restrictions and requirements on ES5 constructors: + * 1. All constructors in a inheritance hierarchy must be ES5-style, so that + * they can be called with Function.call(). This effectively means that the + * whole application must be compiled to ES5. + * 2. Constructors must return the value of the emulated super() call. Like + * `return SuperClass.call(this)` + * 3. The `this` reference should not be used before the emulated super() call + * just like `this` is illegal to use before super() in ES6. + * 4. Constructors should not create other custom elements before the emulated + * super() call. This is the same restriction as with native custom + * elements. + * + * Compiling valid class-based custom elements to ES5 will satisfy these + * requirements with the latest version of popular transpilers. + */ +(() => { + 'use strict'; + + // Do nothing if `customElements` does not exist. + if (!window.customElements) return; + + const NativeHTMLElement = window.HTMLElement; + const nativeDefine = window.customElements.define; + const nativeGet = window.customElements.get; + + /** + * Map of user-provided constructors to tag names. + * + * @type {Map} + */ + const tagnameByConstructor = new Map(); + + /** + * Map of tag names to user-provided constructors. + * + * @type {Map} + */ + const constructorByTagname = new Map(); + + + /** + * Whether the constructors are being called by a browser process, ie parsing + * or createElement. + */ + let browserConstruction = false; + + /** + * Whether the constructors are being called by a user-space process, ie + * calling an element constructor. + */ + let userConstruction = false; + + window.HTMLElement = function() { + if (!browserConstruction) { + const tagname = tagnameByConstructor.get(this.constructor); + const fakeClass = nativeGet.call(window.customElements, tagname); + + // Make sure that the fake constructor doesn't call back to this constructor + userConstruction = true; + const instance = new (fakeClass)(); + return instance; + } + // Else do nothing. This will be reached by ES5-style classes doing + // HTMLElement.call() during initialization + browserConstruction = false; + }; + // By setting the patched HTMLElement's prototype property to the native + // HTMLElement's prototype we make sure that: + // document.createElement('a') instanceof HTMLElement + // works because instanceof uses HTMLElement.prototype, which is on the + // ptototype chain of built-in elements. + window.HTMLElement.prototype = NativeHTMLElement.prototype; + + const define = (tagname, elementClass) => { + const elementProto = elementClass.prototype; + const StandInElement = class extends NativeHTMLElement { + constructor() { + // Call the native HTMLElement constructor, this gives us the + // under-construction instance as `this`: + super(); + + // The prototype will be wrong up because the browser used our fake + // class, so fix it: + Object.setPrototypeOf(this, elementProto); + + if (!userConstruction) { + // Make sure that user-defined constructor bottom's out to a do-nothing + // HTMLElement() call + browserConstruction = true; + // Call the user-defined constructor on our instance: + elementClass.call(this); + } + userConstruction = false; + } + }; + const standInProto = StandInElement.prototype; + StandInElement.observedAttributes = elementClass.observedAttributes; + standInProto.connectedCallback = elementProto.connectedCallback; + standInProto.disconnectedCallback = elementProto.disconnectedCallback; + standInProto.attributeChangedCallback = elementProto.attributeChangedCallback; + standInProto.adoptedCallback = elementProto.adoptedCallback; + + tagnameByConstructor.set(elementClass, tagname); + constructorByTagname.set(tagname, elementClass); + nativeDefine.call(window.customElements, tagname, StandInElement); + }; + + const get = (tagname) => constructorByTagname.get(tagname); + + // Workaround for Safari bug where patching customElements can be lost, likely + // due to native wrapper garbage collection issue + Object.defineProperty(window, 'customElements', + {value: window.customElements, configurable: true, writable: true}); + Object.defineProperty(window.customElements, 'define', + {value: define, configurable: true, writable: true}); + Object.defineProperty(window.customElements, 'get', + {value: get, configurable: true, writable: true}); + +})(); diff --git a/src/index.html b/src/index.html index 694d21ac..5f4823b0 100644 --- a/src/index.html +++ b/src/index.html @@ -12,6 +12,9 @@ + + + diff --git a/src/operator-docs/combination/combineLatest.ts b/src/operator-docs/combination/combineLatest.ts index dc794bc2..2be1a70c 100644 --- a/src/operator-docs/combination/combineLatest.ts +++ b/src/operator-docs/combination/combineLatest.ts @@ -4,6 +4,7 @@ export const combineLatest: OperatorDoc = { 'name': 'combineLatest', 'operatorType': 'combination', 'signature': 'public combineLatest(observables: ...Observable, project: function): Observable', + "useInteractiveMarbles": true, 'parameters': [ { 'name': 'other', @@ -22,8 +23,8 @@ export const combineLatest: OperatorDoc = { 'shortDescription': { 'description': 'Combines multiple Observables to create an Observable whose values are calculated from the latest values of each of its input Observables.', 'extras': [ - { 'type': 'Tip', 'text': 'This operator can be used as either a static or instance method!' }, - { 'type': 'Tip', 'text': 'combineAll can be used to apply combineLatest to emitted observables when a source completes!' } + // { 'type': 'Tip', 'text': 'This operator can be used as either a static or instance method!' }, + // { 'type': 'Tip', 'text': 'combineAll can be used to apply combineLatest to emitted observables when a source completes!' } ] }, 'walkthrough': { diff --git a/src/operator-docs/operator.model.ts b/src/operator-docs/operator.model.ts index b7a3348e..51b95b55 100644 --- a/src/operator-docs/operator.model.ts +++ b/src/operator-docs/operator.model.ts @@ -40,6 +40,7 @@ export interface OperatorDoc { readonly name?: string; readonly operatorType?: OperatorType; readonly signature?: string; + readonly useInteractiveMarbles?: boolean; readonly marbleUrl?: string; readonly parameters?: OperatorParameters[]; readonly shortDescription?: { diff --git a/src/styles/_media-helpers.scss b/src/styles/_media-helpers.scss index 79657d90..81b7736f 100644 --- a/src/styles/_media-helpers.scss +++ b/src/styles/_media-helpers.scss @@ -1,8 +1,7 @@ $mat-xs: 'screen and (max-width: 599px)'; $mat-sm: 'screen and (min-width: 600px) and (max-width: 959px)'; $mat-sm-down: 'screen and (max-width: 960px)'; -$mat-mat-up: 'screen and (min-width: 961px)'; +$mat-md-up: 'screen and (min-width: 961px)'; $mat-md: 'screen and (min-width: 960px) and (max-width: 1279px)'; -$mat-mat-down: 'screen and (max-width: 1279px)'; $mat-lg: 'screen and (min-width: 1280px) and (max-width: 1919px)'; $mat-xl: 'screen and (min-width: 1920px) and (max-width: 5000px)'; From a912ee9fa9b215e2304677897d168db51855ef99 Mon Sep 17 00:00:00 2001 From: btroncone Date: Tue, 17 Oct 2017 10:47:42 -0400 Subject: [PATCH 31/33] header styling update --- src/app/app.component.html | 2 +- src/app/app.component.scss | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/app/app.component.html b/src/app/app.component.html index a00adb3f..976f6af0 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -19,7 +19,7 @@ -
    +
    diff --git a/src/app/app.component.scss b/src/app/app.component.scss index 801168ce..68062da3 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -3,6 +3,20 @@ font-weight: 600; } +.app-fullpage { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: flex; + flex-direction: column; + + header { + z-index: 10; + } +} + mat-sidenav-container { flex: 1 1 auto; width: 100%; @@ -13,14 +27,6 @@ mat-sidenav { width: 200px; } -.primary-toolbar { - z-index: 10; - - .toolbar-title { - padding: 0 16px; - } -} - .app-content { min-height: 100%; overflow: auto; From a9ae9c8b3113861a61fabf34caf48c613637cb20 Mon Sep 17 00:00:00 2001 From: btroncone Date: Wed, 18 Oct 2017 09:52:32 -0400 Subject: [PATCH 32/33] added initial tests for operators component --- .../operator-header.component.scss | 9 -- .../directives/operator-scroll.directive.ts | 97 ------------------- src/app/operators/operators.component.ts | 23 +++-- src/app/operators/operators.module.ts | 13 ++- src/app/operators/specs/operators.spec.ts | 94 +++++++++++++++++- 5 files changed, 110 insertions(+), 126 deletions(-) delete mode 100644 src/app/operators/directives/operator-scroll.directive.ts diff --git a/src/app/operators/components/operator-header/operator-header.component.scss b/src/app/operators/components/operator-header/operator-header.component.scss index 26a6d174..23fec756 100644 --- a/src/app/operators/components/operator-header/operator-header.component.scss +++ b/src/app/operators/components/operator-header/operator-header.component.scss @@ -1,9 +1,5 @@ @import '../../operator-theme'; -:host { - position: sticky; - top: 0px; -} .operator-name { font-size:30px; } @@ -17,8 +13,3 @@ mat-toolbar { color: rgba(255, 255, 255, 0.87); font-weight: normal; } - -.operator-header { - position: sticky; - top: 0px; -} diff --git a/src/app/operators/directives/operator-scroll.directive.ts b/src/app/operators/directives/operator-scroll.directive.ts deleted file mode 100644 index bcb8a796..00000000 --- a/src/app/operators/directives/operator-scroll.directive.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { Directive, OnInit, OnDestroy, Output, EventEmitter, Inject } from '@angular/core'; -import { DOCUMENT } from '@angular/platform-browser'; -import { fromEvent } from 'rxjs/observable/fromEvent'; -import { Subscription } from 'rxjs/Subscription'; -import 'rxjs/add/operator/distinctUntilChanged'; -import 'rxjs/add/operator/map'; - -/* - * Modified version of Material Design Docs ToC - */ -interface OperatorHeader { - id: string; - active: boolean; - name: string; - top: number; -} - -@Directive({ - selector: '[appOperatorScroll]' -}) -export class OperatorScrollDirective implements OnInit, OnDestroy { - @Output() activeOperator = new EventEmitter(); - - private _headers: OperatorHeader[] = []; - private _scrollSubscription: Subscription; - private _scrollContainer: any; - private readonly scrollContainerSelector = '.mat-drawer-content'; - private readonly headerSelector = '.operator-header'; - - constructor( - @Inject(DOCUMENT) private _document: Document - ) {} - - /** Gets the scroll offset of the scroll container */ - private getScrollOffset(): number { - const {top} = this._scrollContainer.getBoundingClientRect(); - if (typeof this._scrollContainer.scrollTop !== 'undefined') { - return this._scrollContainer.scrollTop + top; - } else if (typeof this._scrollContainer.pageYOffset !== 'undefined') { - return this._scrollContainer.pageYOffset + top; - } - } - - private createHeaderLinks(): OperatorHeader[] { - const links: OperatorHeader[] = []; - const headers = - Array.from(this._document.querySelectorAll(this.headerSelector)) as HTMLElement[]; - - if (headers.length) { - for (const header of headers) { - const name = header.id; - const { top } = header.getBoundingClientRect(); - links.push({ - name, - top: top, - id: name, - active: false - }); - } - } - - return links; - } - - private determineActiveOperator(): string { - // Use find to break out as soon as we find active header - const { name } = this._headers - .find((h, i) => this.isHeaderActive(this._headers[i], this._headers[i + 1])); - - return name; - } - - private isHeaderActive(currentLink: any, nextLink: any): boolean { - // switch slightly early to accomodate scrollIntoView from sidemenu - const scrollOffset = this.getScrollOffset() + 5; - return scrollOffset >= currentLink.top && !(nextLink && nextLink.top < scrollOffset); - } - - ngOnInit(): void { - // On init, the sidenav content element doesn't yet exist, so it's not possible - // to subscribe to its scroll event until next tick (when it does exist). - Promise.resolve().then(() => { - this._headers = this.createHeaderLinks(); - this._scrollContainer = this.scrollContainerSelector ? - document.querySelectorAll(this.scrollContainerSelector)[0] : window; - - this._scrollSubscription = fromEvent(this._scrollContainer, 'scroll') - .map(_ => this.determineActiveOperator()) - .distinctUntilChanged() - .subscribe((name: string) => this.activeOperator.emit(name)); - }); - } - - ngOnDestroy(): void { - this._scrollSubscription.unsubscribe(); - } -} diff --git a/src/app/operators/operators.component.ts b/src/app/operators/operators.component.ts index 42d7fffa..147ab136 100644 --- a/src/app/operators/operators.component.ts +++ b/src/app/operators/operators.component.ts @@ -1,15 +1,20 @@ -import { Component, OnInit, AfterViewInit, ChangeDetectionStrategy } from '@angular/core'; +import { Component, Inject, InjectionToken, OnInit, AfterViewInit, ChangeDetectionStrategy } from '@angular/core'; import { trigger, state, style, animate, transition } from '@angular/animations'; import { Router, ActivatedRoute } from '@angular/router'; import { BreakpointObserver } from '@angular/cdk/layout'; import { Subscription } from 'rxjs/Subscription'; import { Observable } from 'rxjs/Observable'; -import { ALL_OPERATORS } from '../../operator-docs'; import { OperatorDoc } from '../../operator-docs/operator.model'; const OPERATOR_MENU_GAP_LARGE = 64; const OPERATOR_MENU_GAP_SMALL = 54; +export const OPERATORS_TOKEN = new InjectionToken('operators'); + +interface OperatorDocMap { + [key: string]: OperatorDoc[]; +} + @Component({ selector: 'app-operators', templateUrl: './operators.component.html', @@ -34,19 +39,21 @@ const OPERATOR_MENU_GAP_SMALL = 54; ] }) export class OperatorsComponent implements OnInit, AfterViewInit { - public operators = ALL_OPERATORS; - public groupedOperators = groupOperatorsByType(ALL_OPERATORS); - public categories = Object.keys(this.groupedOperators); + public groupedOperators: OperatorDocMap; + public categories: string[]; private _subscription: Subscription; constructor( private _breakpointObserver: BreakpointObserver, private _router: Router, - private _activatedRoute: ActivatedRoute + private _activatedRoute: ActivatedRoute, + @Inject(OPERATORS_TOKEN) public operators: OperatorDoc[] ) { } ngOnInit() { + this.groupedOperators = groupOperatorsByType(this.operators); + this.categories = Object.keys(this.groupedOperators); this._subscription = this._activatedRoute .fragment .subscribe(name => this.scrollToOperator(name)); @@ -92,8 +99,8 @@ export class OperatorsComponent implements OnInit, AfterViewInit { } -export function groupOperatorsByType(operators: OperatorDoc[]) { - return operators.reduce((acc, curr) => { +export function groupOperatorsByType(operators: OperatorDoc[]): OperatorDocMap { + return operators.reduce((acc: OperatorDocMap, curr: OperatorDoc) => { if (acc[curr.operatorType]) { return { ...acc, [ curr.operatorType ] : [ ...acc[ curr.operatorType ], curr ] }; } diff --git a/src/app/operators/operators.module.ts b/src/app/operators/operators.module.ts index 9ffecb2a..e04f6a09 100644 --- a/src/app/operators/operators.module.ts +++ b/src/app/operators/operators.module.ts @@ -1,4 +1,4 @@ -import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { NgModule, InjectionToken, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { CommonModule } from '@angular/common'; import { LayoutModule } from '@angular/cdk/layout'; import { @@ -14,10 +14,10 @@ import { MatTooltipModule } from '@angular/material'; import { ClipboardModule } from 'ngx-clipboard'; +import { ALL_OPERATORS, OperatorDoc } from '../../operator-docs'; import { OperatorsRoutingModule } from './operators.routing'; - -import { OperatorsComponent } from './operators.component'; +import { OperatorsComponent, OPERATORS_TOKEN } from './operators.component'; import { OperatorComponent } from './components/operator/operator.component'; import { OperatorHeaderComponent } from './components/operator-header/operator-header.component'; import { OperatorParametersComponent } from './components/operator-parameters/operator-parameters.component'; @@ -27,10 +27,7 @@ import { OperatorExtrasComponent } from './components/operator-extras/operator-e import { AdditionalResourcesComponent } from './components/additional-resources/additional-resources.component'; import { MarbleDiagramComponent } from './components/marble-diagram/marble-diagram.component'; import { WalkthroughComponent } from './components/walkthrough/walkthrough.component'; - -import { OperatorScrollDirective } from './directives/operator-scroll.directive'; import { HighlightJsDirective } from './directives/highlight-js.directive'; - import { SafeUrlPipe } from './pipes/safe-url.pipe'; @NgModule({ @@ -45,7 +42,6 @@ import { SafeUrlPipe } from './pipes/safe-url.pipe'; AdditionalResourcesComponent, WalkthroughComponent, MarbleDiagramComponent, - OperatorScrollDirective, HighlightJsDirective, SafeUrlPipe ], @@ -64,6 +60,9 @@ import { SafeUrlPipe } from './pipes/safe-url.pipe'; MatButtonModule, MatTooltipModule ], + providers: [ + { provide: OPERATORS_TOKEN, useValue: ALL_OPERATORS } + ], schemas: [ CUSTOM_ELEMENTS_SCHEMA ] }) export class OperatorsModule { } diff --git a/src/app/operators/specs/operators.spec.ts b/src/app/operators/specs/operators.spec.ts index 9e0fc0af..9a060cca 100644 --- a/src/app/operators/specs/operators.spec.ts +++ b/src/app/operators/specs/operators.spec.ts @@ -1,9 +1,93 @@ -import { ALL_OPERATORS } from '../../../operator-docs'; -import { groupOperatorsByType } from '../operators.component'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { LayoutModule, BreakpointObserver } from '@angular/cdk/layout'; +import { Observable } from 'rxjs/Observable'; +import { OperatorsComponent, OPERATORS_TOKEN, groupOperatorsByType } from '../operators.component'; +import { OperatorDoc } from '../../../operator-docs'; + +const mockActivatedRoute = { + snapshot: {}, + fragment: Observable.create(observer => { + observer.next('merge'); + observer.complete(); + }) +}; + +const mockOperators: OperatorDoc[] = [ + { operatorType: 'transformation' }, + { operatorType: 'utility' }, + { operatorType: 'utility' } +]; + +const mockBreakPointObserver = { + isMatched: () => {} +}; describe('Operators', () => { - it('should group operators by operator type', () => { - const result = groupOperatorsByType(ALL_OPERATORS); - expect(Object.keys(result).length).toBe(8); + describe('OperatorsComponent', () => { + let fixture: ComponentFixture; + let component: OperatorsComponent; + let el; + let breakpointService: BreakpointObserver; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ RouterTestingModule, LayoutModule ], + declarations: [ OperatorsComponent ], + providers: [ + { provide: OPERATORS_TOKEN, useValue: mockOperators }, + { provide: ActivatedRoute, useValue: mockActivatedRoute } + ], + schemas: [ NO_ERRORS_SCHEMA ] + }); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(OperatorsComponent); + component = fixture.componentInstance; + el = fixture.debugElement; + breakpointService = el.injector.get(BreakpointObserver); + }); + + it('should group operators by operator type', () => { + component.ngOnInit(); + + expect(component.groupedOperators['transformation'].length).toBe(1); + expect(component.groupedOperators['utility'].length).toBe(2); + }); + + it('should scroll to initial operator when fragment exists', () => { + spyOn(component, 'scrollToOperator').and.stub(); + component.ngOnInit(); + + expect(component.scrollToOperator).toHaveBeenCalledWith('merge'); + }); + + it('should have a sidenav mode of over when on a small screen', () => { + spyOn(breakpointService, 'isMatched').and.returnValue(true); + + expect(component.sidenavMode).toBe('over'); + }); + + it('should have a sidenav mode of side when on a large screen', () => { + spyOn(breakpointService, 'isMatched').and.returnValue(false); + + expect(component.sidenavMode).toBe('side'); + }); + + it('should have a top menu gap of 54px when on a small screen', () => { + // small screen + spyOn(breakpointService, 'isMatched').and.returnValue(true); + + expect(component.operatorMenuGap).toBe(54); + }); + + it('should have a top menu gap of 64px when on a large screen', () => { + spyOn(breakpointService, 'isMatched').and.returnValue(false); + + expect(component.operatorMenuGap).toBe(64); + }); }); }); From f454d49b3a2cdc0cc1d2c0da892e909d9a48b503 Mon Sep 17 00:00:00 2001 From: btroncone Date: Fri, 20 Oct 2017 12:12:22 -0400 Subject: [PATCH 33/33] style(operators): split description between lines to fix linting problem Split descriptions for combineAll and combineLatest between two lines to satisfy lint requirement (line +140 chars) --- src/operator-docs/combination/combineAll.ts | 7 +++++-- src/operator-docs/combination/combineLatest.ts | 10 +++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/operator-docs/combination/combineAll.ts b/src/operator-docs/combination/combineAll.ts index 32862952..98ba45d6 100644 --- a/src/operator-docs/combination/combineAll.ts +++ b/src/operator-docs/combination/combineAll.ts @@ -9,12 +9,15 @@ export const combineAll: OperatorDoc = { 'name': 'project', 'type': 'function', 'attribute': 'optional', - 'description': 'An optional function to map the most recent values from each inner Observable into a new result. Takes each of the most recent values from each collected inner Observable as arguments, in order.' + 'description': `An optional function to map the most recent values from each inner Observable into a new result. + Takes each of the most recent values from each collected inner Observable as arguments, in order.` } ], 'marbleUrl': 'http://reactivex.io/rxjs/img/combineAll.png', 'shortDescription': { - 'description': 'Flattens an Observable-of-Observables by applying combineLatest when the Observable-of-Observables completes.', + 'description': ` + Flattens an Observable-of-Observables by applying combineLatest + when the Observable-of-Observables completes.`, 'extras': [] }, 'walkthrough': { diff --git a/src/operator-docs/combination/combineLatest.ts b/src/operator-docs/combination/combineLatest.ts index 2be1a70c..4d95ffea 100644 --- a/src/operator-docs/combination/combineLatest.ts +++ b/src/operator-docs/combination/combineLatest.ts @@ -21,11 +21,11 @@ export const combineLatest: OperatorDoc = { ], 'marbleUrl': 'http://reactivex.io/rxjs/img/combineLatest.png', 'shortDescription': { - 'description': 'Combines multiple Observables to create an Observable whose values are calculated from the latest values of each of its input Observables.', - 'extras': [ - // { 'type': 'Tip', 'text': 'This operator can be used as either a static or instance method!' }, - // { 'type': 'Tip', 'text': 'combineAll can be used to apply combineLatest to emitted observables when a source completes!' } - ] + 'description': ` + Combines multiple Observables to create an Observable whose values + are calculated from the latest values of each of its input Observables. + `, + 'extras': [] }, 'walkthrough': { 'description': `