UNPKG

3.71 kBSource Map (JSON)View Raw
1{"version":3,"file":"ui-router-rx.js","sourceRoot":"","sources":["@uirouter/rx/ui-router-rx.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,MAAM;AACN,OAAO,4BAA4B,CAAC;AACpC,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAkBnD,oHAAoH;AACpH;IAIE,oBAAY,MAAgB;QAH5B,SAAI,GAAG,cAAc,CAAC;QACd,kBAAa,GAAe,EAAE,CAAC;QAGrC,IAAI,MAAM,GAAG,IAAI,aAAa,CAAa,CAAC,CAAC,CAAC;QAC9C,IAAI,QAAQ,GAA4B,MAAM,CAAC,QAAQ,CAAC,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,cAAM,OAAA,CAAC,EAAD,CAAC,CAAC,EAAvB,CAAuB,CAAC,CAAC;QACpG,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,UAAsB,IAAK,OAAA,UAAU,CAAC,MAAM,EAAE,EAAnB,CAAmB,CAAC,CAAC;QAE5E,IAAI,OAAO,GAAG,IAAI,aAAa,CAAqB,CAAC,CAAC,CAAC;QAEvD,8BAA8B,KAAa,EAAE,MAA0B;YACrE,IAAI,WAAW,GAAG;gBAChB,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE;gBACzC,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;aACjB,CAAC;YAEF,EAAE,CAAC,CAAC,KAAK,CAAC;gBAAC,WAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,UAAA,UAAU,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACpF,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,4BAAO,GAAP;QACE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAA,YAAY,IAAI,OAAA,YAAY,EAAE,EAAd,CAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IACH,iBAAC;AAAD,CAAC,AAhCD,IAgCC;;AAED,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAU,CAAC","sourcesContent":["/** @module rx */\n/** */\nimport \"rxjs/add/operator/mergeMap\";\nimport \"rxjs/add/operator/map\";\nimport { Observable } from \"rxjs/Observable\";\nimport { ReplaySubject } from \"rxjs/ReplaySubject\";\nimport { Transition, UIRouter, StateDeclaration, UIRouterPlugin } from \"@uirouter/core\";\n\nexport interface StatesChangedEvent {\n currentStates: StateDeclaration[];\n registered: StateDeclaration[];\n deregistered: StateDeclaration[];\n}\n\ndeclare module '@uirouter/core/lib/globals' {\n interface UIRouterGlobals {\n states$?: Observable<StatesChangedEvent>;\n start$?: Observable<Transition>;\n success$?: Observable<Transition>;\n params$?: Observable<{ [paramName: string]: any }>;\n }\n}\n\n/** Augments UIRouterGlobals with observables for transition starts, successful transitions, and state parameters */\nexport class UIRouterRx implements UIRouterPlugin {\n name = '@uirouter/rx';\n private deregisterFns: Function[] = [];\n\n constructor(router: UIRouter) {\n let start$ = new ReplaySubject<Transition>(1);\n let success$ = <Observable<Transition>> start$.mergeMap((t: Transition) => t.promise.then(() => t));\n let params$ = success$.map((transition: Transition) => transition.params());\n\n let states$ = new ReplaySubject<StatesChangedEvent>(1);\n\n function onStatesChangedEvent(event: string, states: StateDeclaration[]) {\n let changeEvent = {\n currentStates: router.stateRegistry.get(),\n registered: [],\n deregistered: []\n };\n\n if (event) changeEvent[event] = states;\n states$.next(changeEvent);\n }\n\n this.deregisterFns.push(router.transitionService.onStart({}, transition => start$.next(transition)));\n this.deregisterFns.push(router.stateRegistry.onStatesChanged(onStatesChangedEvent));\n onStatesChangedEvent(null, null);\n Object.assign(router.globals, { start$, success$, params$, states$ });\n }\n\n dispose() {\n this.deregisterFns.forEach(deregisterFn => deregisterFn());\n this.deregisterFns = [];\n }\n}\n\nexport const UIRouterRxPlugin = UIRouterRx;\n"]}
\No newline at end of file