@coolon/angular-ui-powerups 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/bundles/coolon-angular-ui-powerups.umd.js +446 -169
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.d.ts +26 -25
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +24 -23
- package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/components.module.js +9 -2
- package/esm2015/lib/components/components.module.js.map +1 -1
- package/esm2015/lib/components/components.module.metadata.json +1 -1
- package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/forms/abstract-input.component.js +12 -1
- package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/abstract-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/number-input/number-input.component.js +2 -2
- package/esm2015/lib/components/forms/number-input/number-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/password-input/password-input.component.js +2 -2
- package/esm2015/lib/components/forms/password-input/password-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/select-input/select-input.component.js +3 -3
- package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/string-input/string-input.component.js +3 -3
- package/esm2015/lib/components/forms/string-input/string-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
- package/esm2015/lib/components/index.js +1 -0
- package/esm2015/lib/components/index.js.map +1 -1
- package/esm2015/lib/components/index.metadata.json +1 -1
- package/esm2015/lib/components/switch-case/switch-case.component.js +124 -0
- package/esm2015/lib/components/switch-case/switch-case.component.js.map +1 -0
- package/esm2015/lib/components/switch-case/switch-case.component.metadata.json +1 -0
- package/esm2015/lib/components/switch-case/switch-case.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/switch-case/switch-case.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/directives/command.directive.js +4 -4
- package/esm2015/lib/directives/command.directive.js.map +1 -1
- package/esm2015/lib/directives/focus-binding.directive.js +3 -3
- package/esm2015/lib/directives/focus-binding.directive.js.map +1 -1
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +1 -1
- package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.metadata.json +1 -1
- package/esm2015/lib/place/components/abstract-place-navigation.component.js +3 -3
- package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
- package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
- package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.js +2 -2
- package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.js.map +1 -1
- package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.metadata.json +1 -1
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +3 -3
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.metadata.json +1 -1
- package/esm2015/lib/place/guards/place.guard.js +4 -3
- package/esm2015/lib/place/guards/place.guard.js.map +1 -1
- package/esm2015/lib/place/place-component.js +2 -2
- package/esm2015/lib/place/place-component.js.map +1 -1
- package/esm2015/lib/place/place-history.js +116 -13
- package/esm2015/lib/place/place-history.js.map +1 -1
- package/esm2015/lib/place/place-history.metadata.json +1 -1
- package/esm2015/lib/place/place-router.js +13 -6
- package/esm2015/lib/place/place-router.js.map +1 -1
- package/esm2015/lib/place/place-router.metadata.json +1 -1
- package/esm2015/lib/place/route/parameter-decorators.js.map +1 -1
- package/esm2015/lib/place/route/parameter-definition.class.js +10 -9
- package/esm2015/lib/place/route/parameter-definition.class.js.map +1 -1
- package/esm2015/lib/place/route/visit-sanitiser.js +14 -6
- package/esm2015/lib/place/route/visit-sanitiser.js.map +1 -1
- package/esm2015/lib/place/route/visit-sanitiser.metadata.json +1 -1
- package/esm5/coolon-angular-ui-powerups.js +24 -23
- package/esm5/coolon-angular-ui-powerups.js.map +1 -1
- package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
- package/esm5/lib/components/components.module.js +9 -2
- package/esm5/lib/components/components.module.js.map +1 -1
- package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm5/lib/components/forms/abstract-input.component.js +12 -1
- package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
- package/esm5/lib/components/forms/number-input/number-input.component.js +2 -2
- package/esm5/lib/components/forms/number-input/number-input.component.js.map +1 -1
- package/esm5/lib/components/forms/password-input/password-input.component.js +2 -2
- package/esm5/lib/components/forms/password-input/password-input.component.js.map +1 -1
- package/esm5/lib/components/forms/select-input/select-input.component.js +3 -3
- package/esm5/lib/components/forms/select-input/select-input.component.js.map +1 -1
- package/esm5/lib/components/forms/string-input/string-input.component.js +3 -3
- package/esm5/lib/components/forms/string-input/string-input.component.js.map +1 -1
- package/esm5/lib/components/index.js +1 -0
- package/esm5/lib/components/index.js.map +1 -1
- package/esm5/lib/components/switch-case/switch-case.component.js +144 -0
- package/esm5/lib/components/switch-case/switch-case.component.js.map +1 -0
- package/esm5/lib/components/switch-case/switch-case.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/switch-case/switch-case.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/directives/command.directive.js +4 -4
- package/esm5/lib/directives/command.directive.js.map +1 -1
- package/esm5/lib/directives/focus-binding.directive.js +3 -3
- package/esm5/lib/directives/focus-binding.directive.js.map +1 -1
- package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +1 -1
- package/esm5/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +1 -1
- package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
- package/esm5/lib/place/components/abstract-place-navigation.component.js +3 -3
- package/esm5/lib/place/components/abstract-place-navigation.component.js.map +1 -1
- package/esm5/lib/place/components/busy-overlay/busy-overlay.component.js +2 -2
- package/esm5/lib/place/components/busy-overlay/busy-overlay.component.js.map +1 -1
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +3 -3
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js.map +1 -1
- package/esm5/lib/place/guards/place.guard.js +5 -4
- package/esm5/lib/place/guards/place.guard.js.map +1 -1
- package/esm5/lib/place/place-component.js +2 -2
- package/esm5/lib/place/place-component.js.map +1 -1
- package/esm5/lib/place/place-history.js +117 -11
- package/esm5/lib/place/place-history.js.map +1 -1
- package/esm5/lib/place/place-router.js +13 -7
- package/esm5/lib/place/place-router.js.map +1 -1
- package/esm5/lib/place/route/parameter-decorators.js.map +1 -1
- package/esm5/lib/place/route/parameter-definition.class.js +11 -11
- package/esm5/lib/place/route/parameter-definition.class.js.map +1 -1
- package/esm5/lib/place/route/visit-sanitiser.js +14 -6
- package/esm5/lib/place/route/visit-sanitiser.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +377 -127
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +405 -135
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/forms/abstract-input.component.d.ts +11 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/switch-case/switch-case.component.d.ts +32 -0
- package/lib/place/place-history.d.ts +17 -3
- package/lib/place/route/parameter-definition.class.d.ts +1 -1
- package/lib/place/route/visit-sanitiser.d.ts +3 -1
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@ import { __awaiter, __decorate, __metadata } from "tslib";
|
|
|
2
2
|
import { Location } from '@angular/common';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import { ActivatedRoute, NavigationCancel, NavigationEnd, NavigationError, NavigationExtras, NavigationStart, Router } from '@angular/router';
|
|
5
|
-
import { assert, DebugContext, Dsl, GarbageCollector, lang, Logger, MutableListModel, MutableValueModel } from '@coolon/pectin';
|
|
5
|
+
import { assert, DebugContext, Dsl, GarbageCollector, lang, Logger, MutableListModel, MutableValueModel, Trace } from '@coolon/pectin';
|
|
6
6
|
import { InteractionService } from '../interaction/services/interaction.service';
|
|
7
7
|
import { NavigatingDuringInteraction } from './navigation/session/interactions/navigating-during-interaction';
|
|
8
8
|
import { PopStateDuringInteractionNavigation } from './navigation/session/interactions/pop-state-during-interaction-navigation';
|
|
@@ -12,6 +12,7 @@ import { NavigationContext } from './navigation/session/navigation-context';
|
|
|
12
12
|
import { PopStateNavigation } from './navigation/session/pop-state-navigation';
|
|
13
13
|
import { PlaceHistory } from './place-history';
|
|
14
14
|
import { UrlService } from './url-service';
|
|
15
|
+
import { Visit } from './visit';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
import * as i1 from "@angular/router";
|
|
17
18
|
import * as i2 from "@angular/common";
|
|
@@ -179,12 +180,9 @@ let PlaceRouter = class PlaceRouter extends GarbageCollector {
|
|
|
179
180
|
get activeVisits() {
|
|
180
181
|
return this._activeVisits.readonly;
|
|
181
182
|
}
|
|
182
|
-
// @Trace()
|
|
183
183
|
pushVisitChangesToRoute(previous, next) {
|
|
184
184
|
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
-
|
|
186
|
-
// when it's been cleared by the user.
|
|
187
|
-
this.placeHistory.add(next);
|
|
185
|
+
this.placeHistory.updateVisit(next);
|
|
188
186
|
// FIXME: no route id -> route id duplicates route parameters
|
|
189
187
|
if (next.hasRoutingChangedFrom(previous)) {
|
|
190
188
|
return this.doNavigation(next, router => {
|
|
@@ -204,6 +202,9 @@ let PlaceRouter = class PlaceRouter extends GarbageCollector {
|
|
|
204
202
|
// @Trace()
|
|
205
203
|
transitionTo(next) {
|
|
206
204
|
const previous = this.navigationSessionModel.value;
|
|
205
|
+
if (!previous) {
|
|
206
|
+
this.placeHistory.notifyNavigationStarted();
|
|
207
|
+
}
|
|
207
208
|
assert.isTruthy(next !== previous);
|
|
208
209
|
Logger.get(this).info(`### Router State Transition: ${previous ? previous.toString() : 'null'} -> ${next.toString()}`);
|
|
209
210
|
this.navigationSessionModel.value = next;
|
|
@@ -216,7 +217,7 @@ let PlaceRouter = class PlaceRouter extends GarbageCollector {
|
|
|
216
217
|
routingSessionFinished(visits) {
|
|
217
218
|
if (visits && visits.length > 0) {
|
|
218
219
|
assert.isTruthy(this.navigationInProgress.value);
|
|
219
|
-
|
|
220
|
+
this.placeHistory.notifyNavigationFinished(visits);
|
|
220
221
|
// We update the active visits before we finish the session so the
|
|
221
222
|
// place outlets can ignore the incoming changes until things are
|
|
222
223
|
// settled. TODO: can we removed the event'ness here and just do a push?
|
|
@@ -275,6 +276,12 @@ PlaceRouter.ctorParameters = () => [
|
|
|
275
276
|
{ type: PlaceHistory }
|
|
276
277
|
];
|
|
277
278
|
PlaceRouter.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.Location), i0.ɵɵinject(i3.InteractionService), i0.ɵɵinject(i4.UrlService), i0.ɵɵinject(i5.PlaceHistory)); }, token: PlaceRouter, providedIn: "root" });
|
|
279
|
+
__decorate([
|
|
280
|
+
Trace(),
|
|
281
|
+
__metadata("design:type", Function),
|
|
282
|
+
__metadata("design:paramtypes", [Visit, Visit]),
|
|
283
|
+
__metadata("design:returntype", Promise)
|
|
284
|
+
], PlaceRouter.prototype, "pushVisitChangesToRoute", null);
|
|
278
285
|
PlaceRouter = __decorate([
|
|
279
286
|
Injectable({
|
|
280
287
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place-router.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-router.ts"],"names":[],"mappings":"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","sourcesContent":["import { Location } from '@angular/common';\nimport { DEBUG } from '@angular/compiler-cli/ngcc/src/logging/console_logger';\nimport { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationExtras,\n NavigationStart,\n Router\n} from '@angular/router';\nimport {\n assert, DebugContext,\n Dsl,\n GarbageCollector,\n HasOneIndexChain,\n lang,\n ListModel,\n Logger,\n MutableListModel,\n MutableValueModel,\n Trace, TransactionObserver,\n ValueModelChain\n} from '@coolon/pectin';\nimport { InteractionService } from '../interaction/services/interaction.service';\nimport { InteractionServiceRoutingAdapter } from '../interaction/services/interaction-service-routing-adapter';\nimport { NavigatingDuringInteraction } from './navigation/session/interactions/navigating-during-interaction';\nimport { PopStateDuringInteractionNavigation } from './navigation/session/interactions/pop-state-during-interaction-navigation';\nimport { SynchroniseInteractionContextIdsWithRoute } from './navigation/session/interactions/synchronise-interaction-context-ids-with-route';\nimport { Navigating } from './navigation/session/navigating';\nimport { NavigationContext } from './navigation/session/navigation-context';\nimport { NavigationSession } from './navigation/session/navigation-session';\nimport { PopStateNavigation } from './navigation/session/pop-state-navigation';\nimport { PlaceHistory } from './place-history';\nimport { UrlService } from './url-service';\nimport { UrlSnapshot } from './url-snapshot';\nimport { Visit } from './visit';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouter extends GarbageCollector {\n\n readonly navigationSessionModel = new MutableValueModel<NavigationSession>();\n readonly navigationInProgress: ValueModelChain<boolean>;\n readonly navigationSessionName: ValueModelChain<string>; // used by tests\n\n private readonly navigationContext: NavigationContext.Impl;\n\n private readonly _activeVisits = new MutableListModel<Visit>();\n readonly activeVisitsByPlaceDefinition: HasOneIndexChain<'placeDefinition', Visit>;\n private routerInteractionAdapter: InteractionServiceRoutingAdapter;\n private sessionFinishedJobs: (() => void)[] = [];\n\n constructor(private readonly angularRouter: Router,\n private readonly angularLocation: Location,\n private readonly interactionService: InteractionService,\n private readonly urlService: UrlService,\n private readonly placeHistory: PlaceHistory) {\n super();\n\n this.routerInteractionAdapter = interactionService.registerPlaceRouter(this);\n\n // TODO: Make this an interface and use 'this' instead.\n this.navigationContext = new NavigationContext.Impl(\n this.urlService,\n this.routerInteractionAdapter,\n (urlSnapshot: UrlSnapshot, options: { replaceUrl: boolean }) => {\n return this.navigateByUrl(urlSnapshot, options);\n },\n state => {\n this.transitionTo(state);\n },\n visits => {\n this.routingSessionFinished(visits);\n });\n\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.navigationInProgress = chain(this.navigationSessionModel).isNotNil();\n\n const idleStateName = chain(this.interactionService.active).map(active => active ? 'IdleDuringInteraction' : 'Idle');\n this.navigationSessionName = chain(this.navigationSessionModel)\n .pluck('name')\n .otherwise(idleStateName);\n\n DebugContext.tag(this._activeVisits, \"PlaceRouter.activeVisits\");\n this.activeVisitsByPlaceDefinition = chain(this._activeVisits).indexBy('placeDefinition');\n\n // TODO: make setup the callbacks in during module initiation to make this testable.\n angularRouter.events.subscribe(event => {\n // Routing event sequence\n // ======================\n // NavigationStart -> .... -> NavigationCancel --> redirect, go around again in the same session\n // NavigationStart -> .... -> NavigationEnd --> navigation complete, end session.\n // NavigationStart -> .... -> NavigationError --> navigation aborted, end session.\n // =======================\n if (event instanceof NavigationStart) {\n // console.log(`---> NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n if (event.navigationTrigger === 'popstate') {\n this.onPopState(event);\n } else {\n this.onRouterStarted(event);\n }\n // console.log(`<--- NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n }\n if (event instanceof NavigationEnd) {\n // console.log(`---> NavigationEnd[${event.id}]: ${event.url}`);\n this.onRouterEnd(event);\n // console.log(`<--- NavigationEnd[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationError) {\n // console.log(`---> NavigationError[${event.id}]: ${event.url}`);\n this.onRouterError(event);\n // console.log(`<--- NavigationError[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationCancel) {\n // console.log(`---> NavigationCancel[${event.id}]: ${event.url}`);\n this.onRouterCancelled(event);\n // console.log(`<--- NavigationCancel[${event.id}]: ${event.url}`);\n }\n });\n\n // The router needs to know about url changes and in some cases they are the only way the router can know if\n // the back button was clicked.\n angularLocation.onUrlChange(url => this.onUrlChanged(url));\n\n }\n\n get navigationSession() {\n return this.navigationSessionModel.value;\n }\n\n get currentSession() {\n return this.navigationSessionModel.value;\n }\n\n // @Trace()\n onPopState(event: NavigationStart) {\n assert.isTruthy(event.navigationTrigger === 'popstate');\n if (this.currentSession) {\n this.currentSession.onPopState(event);\n } else {\n const poppedHistoryUrl = event.url;\n const currentRouterUrl = this.urlService.getCurrentRouterUrl();\n const session = this.interactionService.isActive() ?\n new PopStateDuringInteractionNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl) :\n new PopStateNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl);\n this.transitionTo(session);\n }\n }\n\n // @Trace()\n onRouterStarted(event: NavigationStart) {\n assert.isFalsey(event.navigationTrigger === 'popstate');\n const inInteraction = this.interactionService.isActive();\n if (this.currentSession) {\n this.currentSession.onRouterStarted(event);\n } else {\n this.transitionTo(this.createNavigationSession(this.urlService.getCurrentRouterUrl()));\n }\n }\n\n // @Trace()\n onUrlChanged(newUrl: string) {\n // the back button can trigger a url change without a navigation session in progress so we\n // console.log(`---> Url Changed ${newUrl}`);\n if (this.currentSession) {\n this.currentSession.onUrlChange(newUrl);\n } else {\n console.log('FYI: url changed without a navigation session in progress');\n }\n // console.log(`<--- Url Changed`);\n }\n\n // @Trace()\n onRouterCancelled(event: NavigationCancel) {\n this.currentSession.onRouterCancelled(event);\n }\n\n // @Trace()\n onRouterError(event: NavigationError) {\n this.currentSession.onRouterError(event);\n }\n\n // @Trace()\n onRouterEnd(event: NavigationEnd) {\n this.currentSession.onRouterEnd(event);\n }\n\n navigate(visit: Visit, options?: { relativeTo: ActivatedRoute }) {\n return this.doNavigation(visit, async router => {\n const commands = [\n visit.placeDefinition.path,\n ...this.createRouteParameters(visit)\n ];\n await this.angularRouter.navigate(commands, {\n relativeTo: options ? options.relativeTo : null\n });\n });\n }\n\n // @Trace()\n async doNavigation(visit: Visit, runNavigationCommands: (router: Router) => any) {\n if (this.navigationInProgress.value) {\n lang.illegalState('Navigation already in progress');\n }\n const navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());\n navigation.storeVisit(visit);\n this.transitionTo(navigation);\n try {\n await runNavigationCommands(this.angularRouter);\n } finally {\n // Check if the router has finished (in the case where no router change required) and we're still in a\n // transient state and finish of the transition.\n if (!this.angularRouter.getCurrentNavigation() && this.currentSession) {\n this.currentSession.onRouterEnd(new NavigationEnd(-1, '', ''));\n }\n }\n }\n\n navigateByUrl(urlSnapshot: UrlSnapshot, navigationExtras?: NavigationExtras) {\n // console.log(`### navigationByUrl -> ${urlSnapshot.urlTree.toString()}`);\n return this.angularRouter.navigateByUrl(urlSnapshot.urlTree, navigationExtras);\n }\n\n get activeVisits(): ListModel<Visit> {\n return this._activeVisits.readonly;\n }\n\n // @Trace()\n async pushVisitChangesToRoute(previous: Visit, next: Visit): Promise<void> {\n // we have to push to history so our remember sanitisers don't pick up the previous value\n // when it's been cleared by the user.\n this.placeHistory.add(next);\n // FIXME: no route id -> route id duplicates route parameters\n if (next.hasRoutingChangedFrom(previous)) {\n return this.doNavigation(next, router => {\n const urlSnapshot = this.urlService.parseUrl(this.angularRouter.routerState.snapshot.url).updateVisitSegments(next);\n // console.log('### Push Changes to route Redirect', { commands: urlSnapshot.url });\n return this.navigateByUrl(urlSnapshot);\n });\n }\n }\n\n\n private createNavigationSession(currentRouterUrl: string): NavigationSession {\n const inInteraction = this.interactionService.isActive();\n return inInteraction ?\n new NavigatingDuringInteraction(this.navigationContext, currentRouterUrl) :\n new Navigating(this.navigationContext, currentRouterUrl);\n }\n\n // @Trace()\n protected transitionTo(next: NavigationSession) {\n const previous = this.navigationSessionModel.value;\n assert.isTruthy(next !== previous);\n Logger.get(this).info(`### Router State Transition: ${previous ? previous.toString() : 'null'} -> ${next.toString()}`);\n this.navigationSessionModel.value = next;\n if (!!previous) {\n previous.dispose();\n }\n next.notifyActive();\n }\n\n // @Trace()\n private routingSessionFinished(visits: Visit[]) {\n if (visits && visits.length > 0) {\n assert.isTruthy(this.navigationInProgress.value);\n visits.forEach(v => this.placeHistory.add(v));\n // We update the active visits before we finish the session so the\n // place outlets can ignore the incoming changes until things are\n // settled. TODO: can we removed the event'ness here and just do a push?\n this._activeVisits.value = visits;\n }\n const session = this.currentSession;\n session.dispose();\n this.navigationSessionModel.value = null;\n console.log(`### Router Session Finished (was ${session.toString()})`);\n this.sessionFinishedJobs.forEach(job => job());\n this.sessionFinishedJobs = [];\n }\n\n private runAfterRoutingSessionFinishes(func: () => void) {\n assert.isTruthy(this.navigationInProgress);\n this.sessionFinishedJobs.push(func);\n }\n\n\n /**\n * Sync's the current interaction state with the URL. We need to push something in the URL in order\n * to be able to capture the back button on the first page. If we don't then the back click will exit\n * the app directly and we don't get to ask.\n */\n // @Trace()\n syncInteractionContextIdsWithRouter(): Promise<unknown> {\n if (this.navigationSession) {\n // console.log(`Navigation active -> ${this.navigationSession.toString()}, sync delayed until finished.`);\n const session = this.navigationSession;\n return new Promise((resolve, reject) => {\n this.runAfterRoutingSessionFinishes(() => {\n this.runAfterRoutingSessionFinishes(resolve);\n const syncSession = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(syncSession);\n });\n });\n } else {\n return new Promise<unknown>(((resolve, reject) => {\n // console.log(`No navigation in progress, starting synchronisation job`);\n this.runAfterRoutingSessionFinishes(resolve);\n const session = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(session);\n }))\n\n }\n }\n\n\n private createRouteParameters(visit: Visit) {\n const def = visit.placeDefinition;\n return visit.hasRouteId() ?\n [def.getFormattedRouteId(visit), def.getFormattedRouteParameters(visit)] :\n [def.getFormattedRouteParameters(visit)];\n }\n\n}\n\nexport namespace NavigationStateMachine {\n export type VisitsUpdatedCallback = (visits: Visit[]) => void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"place-router.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/place-router.ts"],"names":[],"mappings":"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","sourcesContent":["import { Location } from '@angular/common';\nimport { DEBUG } from '@angular/compiler-cli/ngcc/src/logging/console_logger';\nimport { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationExtras,\n NavigationStart,\n Router\n} from '@angular/router';\nimport {\n assert, DebugContext,\n Dsl,\n GarbageCollector,\n HasOneIndexChain,\n lang,\n ListModel,\n Logger,\n MutableListModel,\n MutableValueModel,\n Trace, TransactionObserver,\n ValueModelChain\n} from '@coolon/pectin';\nimport { InteractionService } from '../interaction/services/interaction.service';\nimport { InteractionServiceRoutingAdapter } from '../interaction/services/interaction-service-routing-adapter';\nimport { NavigatingDuringInteraction } from './navigation/session/interactions/navigating-during-interaction';\nimport { PopStateDuringInteractionNavigation } from './navigation/session/interactions/pop-state-during-interaction-navigation';\nimport { SynchroniseInteractionContextIdsWithRoute } from './navigation/session/interactions/synchronise-interaction-context-ids-with-route';\nimport { Navigating } from './navigation/session/navigating';\nimport { NavigationContext } from './navigation/session/navigation-context';\nimport { NavigationSession } from './navigation/session/navigation-session';\nimport { PopStateNavigation } from './navigation/session/pop-state-navigation';\nimport { PlaceHistory } from './place-history';\nimport { UrlService } from './url-service';\nimport { UrlSnapshot } from './url-snapshot';\nimport { Visit } from './visit';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouter extends GarbageCollector {\n\n readonly navigationSessionModel = new MutableValueModel<NavigationSession>();\n readonly navigationInProgress: ValueModelChain<boolean>;\n readonly navigationSessionName: ValueModelChain<string>; // used by tests\n\n private readonly navigationContext: NavigationContext.Impl;\n\n private readonly _activeVisits = new MutableListModel<Visit>();\n readonly activeVisitsByPlaceDefinition: HasOneIndexChain<'placeDefinition', Visit>;\n private routerInteractionAdapter: InteractionServiceRoutingAdapter;\n private sessionFinishedJobs: (() => void)[] = [];\n\n constructor(private readonly angularRouter: Router,\n private readonly angularLocation: Location,\n private readonly interactionService: InteractionService,\n private readonly urlService: UrlService,\n private readonly placeHistory: PlaceHistory) {\n super();\n\n this.routerInteractionAdapter = interactionService.registerPlaceRouter(this);\n\n // TODO: Make this an interface and use 'this' instead.\n this.navigationContext = new NavigationContext.Impl(\n this.urlService,\n this.routerInteractionAdapter,\n (urlSnapshot: UrlSnapshot, options: { replaceUrl: boolean }) => {\n return this.navigateByUrl(urlSnapshot, options);\n },\n state => {\n this.transitionTo(state);\n },\n visits => {\n this.routingSessionFinished(visits);\n });\n\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.navigationInProgress = chain(this.navigationSessionModel).isNotNil();\n\n const idleStateName = chain(this.interactionService.active).map(active => active ? 'IdleDuringInteraction' : 'Idle');\n this.navigationSessionName = chain(this.navigationSessionModel)\n .pluck('name')\n .otherwise(idleStateName);\n\n DebugContext.tag(this._activeVisits, \"PlaceRouter.activeVisits\");\n this.activeVisitsByPlaceDefinition = chain(this._activeVisits).indexBy('placeDefinition');\n\n // TODO: make setup the callbacks in during module initiation to make this testable.\n angularRouter.events.subscribe(event => {\n // Routing event sequence\n // ======================\n // NavigationStart -> .... -> NavigationCancel --> redirect, go around again in the same session\n // NavigationStart -> .... -> NavigationEnd --> navigation complete, end session.\n // NavigationStart -> .... -> NavigationError --> navigation aborted, end session.\n // =======================\n if (event instanceof NavigationStart) {\n // console.log(`---> NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n if (event.navigationTrigger === 'popstate') {\n this.onPopState(event);\n } else {\n this.onRouterStarted(event);\n }\n // console.log(`<--- NavigationStart[${event.id}]: ${event.url} (${event.navigationTrigger})`);\n }\n if (event instanceof NavigationEnd) {\n // console.log(`---> NavigationEnd[${event.id}]: ${event.url}`);\n this.onRouterEnd(event);\n // console.log(`<--- NavigationEnd[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationError) {\n // console.log(`---> NavigationError[${event.id}]: ${event.url}`);\n this.onRouterError(event);\n // console.log(`<--- NavigationError[${event.id}]: ${event.url}`);\n }\n if (event instanceof NavigationCancel) {\n // console.log(`---> NavigationCancel[${event.id}]: ${event.url}`);\n this.onRouterCancelled(event);\n // console.log(`<--- NavigationCancel[${event.id}]: ${event.url}`);\n }\n });\n\n // The router needs to know about url changes and in some cases they are the only way the router can know if\n // the back button was clicked.\n angularLocation.onUrlChange(url => this.onUrlChanged(url));\n\n }\n\n get navigationSession() {\n return this.navigationSessionModel.value;\n }\n\n get currentSession() {\n return this.navigationSessionModel.value;\n }\n\n // @Trace()\n onPopState(event: NavigationStart) {\n assert.isTruthy(event.navigationTrigger === 'popstate');\n if (this.currentSession) {\n this.currentSession.onPopState(event);\n } else {\n const poppedHistoryUrl = event.url;\n const currentRouterUrl = this.urlService.getCurrentRouterUrl();\n const session = this.interactionService.isActive() ?\n new PopStateDuringInteractionNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl) :\n new PopStateNavigation(this.navigationContext, currentRouterUrl, poppedHistoryUrl);\n this.transitionTo(session);\n }\n }\n\n // @Trace()\n onRouterStarted(event: NavigationStart) {\n assert.isFalsey(event.navigationTrigger === 'popstate');\n const inInteraction = this.interactionService.isActive();\n if (this.currentSession) {\n this.currentSession.onRouterStarted(event);\n } else {\n this.transitionTo(this.createNavigationSession(this.urlService.getCurrentRouterUrl()));\n }\n }\n\n // @Trace()\n onUrlChanged(newUrl: string) {\n // the back button can trigger a url change without a navigation session in progress so we\n // console.log(`---> Url Changed ${newUrl}`);\n if (this.currentSession) {\n this.currentSession.onUrlChange(newUrl);\n } else {\n console.log('FYI: url changed without a navigation session in progress');\n }\n // console.log(`<--- Url Changed`);\n }\n\n // @Trace()\n onRouterCancelled(event: NavigationCancel) {\n this.currentSession.onRouterCancelled(event);\n }\n\n // @Trace()\n onRouterError(event: NavigationError) {\n this.currentSession.onRouterError(event);\n }\n\n // @Trace()\n onRouterEnd(event: NavigationEnd) {\n this.currentSession.onRouterEnd(event);\n }\n\n navigate(visit: Visit, options?: { relativeTo: ActivatedRoute }) {\n return this.doNavigation(visit, async router => {\n const commands = [\n visit.placeDefinition.path,\n ...this.createRouteParameters(visit)\n ];\n await this.angularRouter.navigate(commands, {\n relativeTo: options ? options.relativeTo : null\n });\n });\n }\n\n // @Trace()\n async doNavigation(visit: Visit, runNavigationCommands: (router: Router) => any) {\n if (this.navigationInProgress.value) {\n lang.illegalState('Navigation already in progress');\n }\n const navigation = this.createNavigationSession(this.urlService.getCurrentRouterUrl());\n navigation.storeVisit(visit);\n this.transitionTo(navigation);\n try {\n await runNavigationCommands(this.angularRouter);\n } finally {\n // Check if the router has finished (in the case where no router change required) and we're still in a\n // transient state and finish of the transition.\n if (!this.angularRouter.getCurrentNavigation() && this.currentSession) {\n this.currentSession.onRouterEnd(new NavigationEnd(-1, '', ''));\n }\n }\n }\n\n navigateByUrl(urlSnapshot: UrlSnapshot, navigationExtras?: NavigationExtras) {\n // console.log(`### navigationByUrl -> ${urlSnapshot.urlTree.toString()}`);\n return this.angularRouter.navigateByUrl(urlSnapshot.urlTree, navigationExtras);\n }\n\n get activeVisits(): ListModel<Visit> {\n return this._activeVisits.readonly;\n }\n\n @Trace()\n async pushVisitChangesToRoute(previous: Visit, next: Visit): Promise<void> {\n this.placeHistory.updateVisit(next);\n\n // FIXME: no route id -> route id duplicates route parameters\n if (next.hasRoutingChangedFrom(previous)) {\n return this.doNavigation(next, router => {\n const urlSnapshot = this.urlService.parseUrl(this.angularRouter.routerState.snapshot.url).updateVisitSegments(next);\n // console.log('### Push Changes to route Redirect', { commands: urlSnapshot.url });\n return this.navigateByUrl(urlSnapshot);\n });\n }\n }\n\n\n private createNavigationSession(currentRouterUrl: string): NavigationSession {\n const inInteraction = this.interactionService.isActive();\n return inInteraction ?\n new NavigatingDuringInteraction(this.navigationContext, currentRouterUrl) :\n new Navigating(this.navigationContext, currentRouterUrl);\n }\n\n // @Trace()\n protected transitionTo(next: NavigationSession) {\n const previous = this.navigationSessionModel.value;\n if (!previous) {\n this.placeHistory.notifyNavigationStarted();\n }\n assert.isTruthy(next !== previous);\n Logger.get(this).info(`### Router State Transition: ${previous ? previous.toString() : 'null'} -> ${next.toString()}`);\n this.navigationSessionModel.value = next;\n if (!!previous) {\n previous.dispose();\n }\n next.notifyActive();\n }\n\n // @Trace()\n private routingSessionFinished(visits: Visit[]) {\n if (visits && visits.length > 0) {\n assert.isTruthy(this.navigationInProgress.value);\n this.placeHistory.notifyNavigationFinished(visits)\n // We update the active visits before we finish the session so the\n // place outlets can ignore the incoming changes until things are\n // settled. TODO: can we removed the event'ness here and just do a push?\n this._activeVisits.value = visits;\n }\n const session = this.currentSession;\n session.dispose();\n this.navigationSessionModel.value = null;\n console.log(`### Router Session Finished (was ${session.toString()})`);\n this.sessionFinishedJobs.forEach(job => job());\n this.sessionFinishedJobs = [];\n }\n\n private runAfterRoutingSessionFinishes(func: () => void) {\n assert.isTruthy(this.navigationInProgress);\n this.sessionFinishedJobs.push(func);\n }\n\n\n /**\n * Sync's the current interaction state with the URL. We need to push something in the URL in order\n * to be able to capture the back button on the first page. If we don't then the back click will exit\n * the app directly and we don't get to ask.\n */\n // @Trace()\n syncInteractionContextIdsWithRouter(): Promise<unknown> {\n if (this.navigationSession) {\n // console.log(`Navigation active -> ${this.navigationSession.toString()}, sync delayed until finished.`);\n const session = this.navigationSession;\n return new Promise((resolve, reject) => {\n this.runAfterRoutingSessionFinishes(() => {\n this.runAfterRoutingSessionFinishes(resolve);\n const syncSession = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(syncSession);\n });\n });\n } else {\n return new Promise<unknown>(((resolve, reject) => {\n // console.log(`No navigation in progress, starting synchronisation job`);\n this.runAfterRoutingSessionFinishes(resolve);\n const session = new SynchroniseInteractionContextIdsWithRoute(this.navigationContext, this.urlService.getCurrentRouterUrl(), false);\n this.transitionTo(session);\n }))\n\n }\n }\n\n\n private createRouteParameters(visit: Visit) {\n const def = visit.placeDefinition;\n return visit.hasRouteId() ?\n [def.getFormattedRouteId(visit), def.getFormattedRouteParameters(visit)] :\n [def.getFormattedRouteParameters(visit)];\n }\n\n}\n\nexport namespace NavigationStateMachine {\n export type VisitsUpdatedCallback = (visits: Visit[]) => void;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"PlaceRouter":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":42,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":55,"character":46},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":56,"character":48},{"__symbolic":"reference","module":"../interaction/services/interaction.service","name":"InteractionService","line":57,"character":51},{"__symbolic":"reference","module":"./url-service","name":"UrlService","line":58,"character":43},{"__symbolic":"reference","module":"./place-history","name":"PlaceHistory","line":59,"character":45}]}],"onPopState":[{"__symbolic":"method"}],"onRouterStarted":[{"__symbolic":"method"}],"onUrlChanged":[{"__symbolic":"method"}],"onRouterCancelled":[{"__symbolic":"method"}],"onRouterError":[{"__symbolic":"method"}],"onRouterEnd":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"doNavigation":[{"__symbolic":"method"}],"navigateByUrl":[{"__symbolic":"method"}],"pushVisitChangesToRoute":[{"__symbolic":"method"}],"createNavigationSession":[{"__symbolic":"method"}],"transitionTo":[{"__symbolic":"method"}],"routingSessionFinished":[{"__symbolic":"method"}],"runAfterRoutingSessionFinishes":[{"__symbolic":"method"}],"syncInteractionContextIdsWithRouter":[{"__symbolic":"method"}],"createRouteParameters":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}}}]
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"PlaceRouter":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@coolon/pectin","name":"GarbageCollector","line":42,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":39,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":55,"character":46},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":56,"character":48},{"__symbolic":"reference","module":"../interaction/services/interaction.service","name":"InteractionService","line":57,"character":51},{"__symbolic":"reference","module":"./url-service","name":"UrlService","line":58,"character":43},{"__symbolic":"reference","module":"./place-history","name":"PlaceHistory","line":59,"character":45}]}],"onPopState":[{"__symbolic":"method"}],"onRouterStarted":[{"__symbolic":"method"}],"onUrlChanged":[{"__symbolic":"method"}],"onRouterCancelled":[{"__symbolic":"method"}],"onRouterError":[{"__symbolic":"method"}],"onRouterEnd":[{"__symbolic":"method"}],"navigate":[{"__symbolic":"method"}],"doNavigation":[{"__symbolic":"method"}],"navigateByUrl":[{"__symbolic":"method"}],"pushVisitChangesToRoute":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":230,"character":3}}]}],"createNavigationSession":[{"__symbolic":"method"}],"transitionTo":[{"__symbolic":"method"}],"routingSessionFinished":[{"__symbolic":"method"}],"runAfterRoutingSessionFinishes":[{"__symbolic":"method"}],"syncInteractionContextIdsWithRouter":[{"__symbolic":"method"}],"createRouteParameters":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}}}}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-decorators.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/route/parameter-decorators.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Binding,\n DebugContext,\n HasValue,\n Logger,\n MutableListModel,\n MutableValueModel,\n
|
|
1
|
+
{"version":3,"file":"parameter-decorators.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/route/parameter-decorators.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Binding,\n DebugContext,\n HasValue,\n Logger,\n MutableListModel,\n MutableValueModel,\n TrackExternal\n} from '@coolon/pectin';\nimport { Klass, Opts } from '@coolon/typescript-utilities';\nimport { ROUTE_PARAMETER_LIST_KEY } from '../place-component';\nimport { Formatter } from './formatter';\nimport { ParameterDefinition } from './parameter-definition.class';\n\n\nexport interface RouteIdOptions<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T;\n // sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser<T>;\n}\n\nexport interface RouteParameterOptions<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T;\n storeInUrl?: Formatter<T>\n // sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser<T>;\n}\n\nexport interface RouteListParameterOptions<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T[];\n storeInUrl?: Formatter<T>\n // sanitiser?: Constructable<ParameterSanitiser<T[]>> | ParameterSanitiser<T[]>;\n}\n\n\nfunction installMechanics<M extends HasValue<any>>(prototype: Object, propertyKey: string | symbol, backingModel: M, tagPrefix: string, isEmpty: (mode: M) => boolean) {\n const mechanics = {\n backingModel: backingModel,\n binding: null as Binding<any, any>\n };\n const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;\n DebugContext.get(mechanics.backingModel).tag(tag);\n Logger.get(mechanics.backingModel).tag(tag);\n Object.defineProperty(prototype, propertyKey, {\n get: function() {\n return mechanics.backingModel;\n },\n set: function(userModel: M) {\n // This handles the scenario where we want to push an existing value model (such as a form model)\n // to and from the route.\n if (mechanics.binding) {\n mechanics.binding.dispose();\n }\n if (userModel) {\n mechanics.binding = new Binding(mechanics.backingModel, userModel);\n if (isEmpty(userModel)) {\n // console.log(`Push visit to model for ${tag}`, {value: mechanics.backingModel.value});\n mechanics.binding.writeRight(); // push the visit into the user model;\n } else {\n if (!isEmpty(mechanics.backingModel)) {\n console.warn('Assigning a visit model with an existing value to a visit parameter with an existing value. Visit parameter will be overridden');\n }\n mechanics.binding.writeLeft(); // push the user model into the visit\n }\n }\n }\n });\n}\n\nexport function RouteId<T extends string | number>(type: Formatter<T>, options?: RouteIdOptions<T>): PropertyDecorator {\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = new ParameterDefinition.RouteId(propertyKey.toString(), options, type);\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n installMechanics(prototype, propertyKey, new MutableValueModel<T>(), \"@RouteId\", m => m.query().isNil());\n };\n}\n\nexport function VisitParameter<T>(options?: RouteParameterOptions<T>): PropertyDecorator {\n const opts = Opts.get(options);\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = new ParameterDefinition.ValueParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n installMechanics(prototype, propertyKey, new MutableValueModel<T>(), \"@VisitParameter\", m => m.query().isNil());\n };\n}\n\nexport function VisitParameterList<E>(options?: RouteListParameterOptions<E>): PropertyDecorator {\n const opts = Opts.get(options);\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = new ParameterDefinition.ArrayParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n installMechanics(prototype, propertyKey, new MutableListModel<E>(), \"@VisitParameterList\", m => m.query().isEmpty());\n };\n}\n"]}
|
|
@@ -20,19 +20,20 @@ export class ParameterDefinition {
|
|
|
20
20
|
return this.options.getOptional(key, null);
|
|
21
21
|
}
|
|
22
22
|
// @Trace()
|
|
23
|
-
sanitise(value, visit, placeHistory, injector) {
|
|
23
|
+
sanitise(value, visit, placeHistory, injector, isPopState) {
|
|
24
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
25
|
if (this.isMissingFrom(visit)) {
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
28
|
-
|
|
26
|
+
const returningFromSomewhereElse = !placeHistory.lastVisitIncluded(visit.placeDefinition);
|
|
27
|
+
if (returningFromSomewhereElse) {
|
|
28
|
+
const lastKnownVisit = placeHistory.getMostRecentVisitFor(visit.placeDefinition);
|
|
29
|
+
if (this.remember && lastKnownVisit) {
|
|
30
|
+
value = lastKnownVisit.getParameter(this.name);
|
|
31
|
+
}
|
|
32
|
+
return this.isEmptyValue(value) ? this.defaultValue : value;
|
|
29
33
|
}
|
|
30
|
-
return this.isEmptyValue(value) ? this.defaultValue : value;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
// todo: add custom sanitiser
|
|
34
|
-
return value;
|
|
35
34
|
}
|
|
35
|
+
// todo: add custom sanitiser
|
|
36
|
+
return value;
|
|
36
37
|
});
|
|
37
38
|
}
|
|
38
39
|
isMissingFrom(visit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-definition.class.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/route/parameter-definition.class.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,CAAC,MAAM,QAAQ,CAAC;AAKvB,MAAM,OAAgB,mBAAmB;IASvC,YAAqB,YAAoB,EAAE,OAAuC,EAAW,SAAwB;QAAhG,iBAAY,GAAZ,YAAY,CAAQ;QAAoD,cAAS,GAAT,SAAS,CAAe;QACnH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,WAAW;IACX,IAAI,gBAAgB;QAClB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAMS,cAAc,CAAiD,GAAM;QAC7E,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,WAAW;IACL,QAAQ,CAAC,KAAO,EAAE,KAAY,EAAE,YAA0B,EAAE,QAAkB;;
|
|
1
|
+
{"version":3,"file":"parameter-definition.class.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/route/parameter-definition.class.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injector } from '@angular/core';\nimport { Trace } from '@coolon/pectin';\nimport { Opts } from '@coolon/typescript-utilities';\nimport _ from 'lodash';\nimport { PlaceHistory } from '../place-history';\nimport { Visit } from '../visit';\nimport { Formatter } from './formatter';\n\nexport abstract class ParameterDefinition<T, E = T> {\n\n abstract readonly isRouteId: boolean;\n abstract readonly isArray: boolean;\n\n readonly remember: boolean;\n readonly defaultValue: T;\n private options: Opts<ParameterDefinition.Options<T>>;\n\n constructor(readonly propertyName: string, options: ParameterDefinition.Options<T>, readonly urlFormat?: Formatter<E>) {\n this.options = Opts.get(options);\n this.remember = this.options.getOptional('remember', false);\n this.defaultValue = this.options.getOptional('defaultValue', null);\n }\n\n get name() {\n return this.options.getOptional('as', this.propertyName);\n }\n\n // @Trace()\n get isRouteParameter(): boolean {\n return !!this.urlFormat;\n }\n\n abstract isEmptyValue(value: T): boolean;\n\n abstract hasChanged(a: any, b: any): boolean;\n\n protected getOptionValue<K extends keyof ParameterDefinition.Options<T>>(key: K): ParameterDefinition.Options<T>[K] {\n return this.options.getOptional(key, null);\n }\n\n // @Trace()\n async sanitise(value:T, visit: Visit, placeHistory: PlaceHistory, injector: Injector, isPopState: boolean) {\n if (this.isMissingFrom(visit)) {\n const returningFromSomewhereElse = !placeHistory.lastVisitIncluded(visit.placeDefinition);\n if (returningFromSomewhereElse) {\n const lastKnownVisit = placeHistory.getMostRecentVisitFor(visit.placeDefinition);\n if (this.remember && lastKnownVisit) {\n value = lastKnownVisit.getParameter(this.name);\n }\n return this.isEmptyValue(value) ? this.defaultValue : value;\n }\n }\n // todo: add custom sanitiser\n return value;\n }\n\n private isMissingFrom(visit: Visit) {\n return !visit.hasParameter(this.name);\n }\n}\n\nexport namespace ParameterDefinition {\n\n export interface Options<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T;\n // sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser.Options<T>;\n }\n\n export class RouteId<T> extends ParameterDefinition<T> {\n readonly isRouteId = true;\n readonly isArray = false;\n\n isEmptyValue(value: T): boolean {\n return _.isNil(value);\n }\n\n hasChanged(a: any, b: any): boolean {\n return a !== b;\n }\n }\n\n export class ValueParameter<T> extends ParameterDefinition<T> {\n readonly isRouteId = false;\n readonly isArray = false;\n\n isEmptyValue(value: T): boolean {\n return _.isNil(value);\n }\n\n hasChanged(a: any, b: any): boolean {\n return a !== b;\n }\n }\n\n export class ArrayParameter<T> extends ParameterDefinition<T[], T> {\n readonly isRouteId = false;\n readonly isArray = true;\n\n constructor(parameterName: string, options: Options<T[]>, urlFormat: Formatter<T>) {\n super(parameterName, options, urlFormat);\n }\n\n isEmptyValue(value: T[]): boolean {\n return _.isNil(value) || value.length < 1;\n }\n\n hasChanged(a: T[], b: T[]): boolean {\n return !_.isEqual(a, b);\n }\n\n }\n}\n"]}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
1
|
+
import { __awaiter, __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Trace } from '@coolon/pectin';
|
|
3
|
+
import { Visit } from '../visit';
|
|
2
4
|
export class VisitSanitiser {
|
|
3
|
-
constructor(activatedRoute, router, placeHistory, injector) {
|
|
5
|
+
constructor(navigationSession, activatedRoute, router, placeHistory, injector) {
|
|
6
|
+
this.navigationSession = navigationSession;
|
|
4
7
|
this.activatedRoute = activatedRoute;
|
|
5
8
|
this.router = router;
|
|
6
9
|
this.placeHistory = placeHistory;
|
|
7
10
|
this.injector = injector;
|
|
8
11
|
}
|
|
9
|
-
// @Trace()
|
|
10
12
|
sanitise(visit) {
|
|
11
13
|
return __awaiter(this, void 0, void 0, function* () {
|
|
12
14
|
const placeDef = visit.placeDefinition;
|
|
13
15
|
if (placeDef.hasRouteId()) {
|
|
14
16
|
const routeIdDef = placeDef.getRouteIdParameterDef();
|
|
15
17
|
const routeId = visit.getRouteId();
|
|
16
|
-
const sanitisedValue = yield routeIdDef.sanitise(routeId, visit, this.placeHistory, this.injector);
|
|
17
|
-
|
|
18
|
+
const sanitisedValue = yield routeIdDef.sanitise(routeId, visit, this.placeHistory, this.injector, this.navigationSession.isPopState);
|
|
19
|
+
console.log({ routeId, sanitisedValue });
|
|
18
20
|
// ###------- EARLY EXIT --------###
|
|
19
21
|
if (routeIdDef.hasChanged(routeId, sanitisedValue)) {
|
|
20
22
|
// if the route id has changed we redirect immediately as other
|
|
@@ -31,7 +33,7 @@ export class VisitSanitiser {
|
|
|
31
33
|
for (let i = 0; i < parameterDefs.length; i++) {
|
|
32
34
|
const def = parameterDefs[i];
|
|
33
35
|
const value = visit.getParameter(def.name);
|
|
34
|
-
const sanitisedValue = yield def.sanitise(value, sanitisedVisit, this.placeHistory, this.injector);
|
|
36
|
+
const sanitisedValue = yield def.sanitise(value, sanitisedVisit, this.placeHistory, this.injector, this.navigationSession.isPopState);
|
|
35
37
|
if (def.hasChanged(value, sanitisedValue)) {
|
|
36
38
|
sanitisedVisit = sanitisedVisit.replace(def, sanitisedValue);
|
|
37
39
|
}
|
|
@@ -40,4 +42,10 @@ export class VisitSanitiser {
|
|
|
40
42
|
});
|
|
41
43
|
}
|
|
42
44
|
}
|
|
45
|
+
__decorate([
|
|
46
|
+
Trace(),
|
|
47
|
+
__metadata("design:type", Function),
|
|
48
|
+
__metadata("design:paramtypes", [Visit]),
|
|
49
|
+
__metadata("design:returntype", Promise)
|
|
50
|
+
], VisitSanitiser.prototype, "sanitise", null);
|
|
43
51
|
//# sourceMappingURL=visit-sanitiser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visit-sanitiser.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/route/visit-sanitiser.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"visit-sanitiser.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/place/route/visit-sanitiser.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,OAAO,cAAc;IACzB,YAAoB,iBAAoC,EAAU,cAAsC,EAAU,MAAc,EAAU,YAA0B,EAAU,QAAkB;QAA5K,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAU,mBAAc,GAAd,cAAc,CAAwB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAAU,aAAQ,GAAR,QAAQ,CAAU;IAEhM,CAAC;IAGK,QAAQ,CAAC,KAAY;;YACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC;YACvC,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE;gBACzB,MAAM,UAAU,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBACrD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBACtI,OAAO,CAAC,GAAG,CAAC,EAAC,OAAO,EAAE,cAAc,EAAC,CAAC,CAAC;gBACvC,oCAAoC;gBACpC,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE;oBAClD,+DAA+D;oBAC/D,qCAAqC;oBACrC,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;iBAClD;aACF;YAED,2EAA2E;YAC3E,MAAM,aAAa,GAAG,QAAQ,CAAC,qBAAqB,CAAC;gBACnD,sBAAsB,EAAE,IAAI;gBAC5B,yBAAyB,EAAE,IAAI;aAChC,CAAC,CAAC;YACH,IAAI,cAAc,GAAU,KAAK,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBACtI,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE;oBACzC,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;iBAC9D;aACF;YAED,OAAO,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;QACvE,CAAC;KAAA;CAEF;AAjCC;IADC,KAAK,EAAE;;qCACc,KAAK;;8CA+B1B","sourcesContent":["import { Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Trace } from '@coolon/pectin';\nimport { NavigationSession } from '../navigation/session/navigation-session';\nimport { PlaceHistory } from '../place-history';\nimport { Visit } from '../visit';\n\nexport class VisitSanitiser {\n constructor(private navigationSession: NavigationSession, private activatedRoute: ActivatedRouteSnapshot, private router: Router, private placeHistory: PlaceHistory, private injector: Injector) {\n\n }\n\n @Trace()\n async sanitise(visit: Visit): Promise<Visit> {\n const placeDef = visit.placeDefinition;\n if (placeDef.hasRouteId()) {\n const routeIdDef = placeDef.getRouteIdParameterDef();\n const routeId = visit.getRouteId();\n const sanitisedValue = await routeIdDef.sanitise(routeId, visit, this.placeHistory, this.injector, this.navigationSession.isPopState);\n console.log({routeId, sanitisedValue});\n // ###------- EARLY EXIT --------###\n if (routeIdDef.hasChanged(routeId, sanitisedValue)) {\n // if the route id has changed we redirect immediately as other\n // parameter sanitisers might use it.\n return visit.replace(routeIdDef, sanitisedValue);\n }\n }\n\n // if we didn't replace the routeId we continue the url present parameters.\n const parameterDefs = placeDef.getVisitParameterDefs({\n includeRouteParameters: true,\n includeNonRouteParameters: true\n });\n let sanitisedVisit: Visit = visit;\n for (let i = 0; i < parameterDefs.length; i++) {\n const def = parameterDefs[i];\n const value = visit.getParameter(def.name);\n const sanitisedValue = await def.sanitise(value, sanitisedVisit, this.placeHistory, this.injector, this.navigationSession.isPopState);\n if (def.hasChanged(value, sanitisedValue)) {\n sanitisedVisit = sanitisedVisit.replace(def, sanitisedValue);\n }\n }\n\n return sanitisedVisit.hasChangedFrom(visit) ? sanitisedVisit : visit;\n }\n\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"__symbolic":"module","version":4,"metadata":{"VisitSanitiser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRouteSnapshot","line":
|
|
1
|
+
[{"__symbolic":"module","version":4,"metadata":{"VisitSanitiser":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"../navigation/session/navigation-session","name":"NavigationSession","line":8,"character":41},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRouteSnapshot","line":8,"character":84},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":8,"character":124},{"__symbolic":"reference","module":"../place-history","name":"PlaceHistory","line":8,"character":154},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":8,"character":186}]}],"sanitise":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@coolon/pectin","name":"Trace","line":12,"character":3}}]}]}}}}]
|
|
@@ -11,30 +11,31 @@ export { SelectInputComponent as ɵj } from './lib/components/forms/select-input
|
|
|
11
11
|
export { StringInputComponent as ɵh } from './lib/components/forms/string-input/string-input.component';
|
|
12
12
|
export { NoopComponent as ɵl } from './lib/components/noop/noop.component';
|
|
13
13
|
export { ScrollContainerComponent as ɵk } from './lib/components/scroll-container/scroll-container.component';
|
|
14
|
+
export { SwitchCaseComponent as ɵp, SwitchCaseDefaultDirective as ɵo, SwitchCaseOption as ɵm, SwitchCaseWhenDirective as ɵn } from './lib/components/switch-case/switch-case.component';
|
|
14
15
|
export { CommandDirective as ɵb } from './lib/directives/command.directive';
|
|
15
16
|
export { DirectivesModule as ɵa } from './lib/directives/directives.module';
|
|
16
17
|
export { FocusBindingDirective as ɵc } from './lib/directives/focus-binding.directive';
|
|
17
|
-
export { AbstractInteractionContext as
|
|
18
|
-
export { ACTIVITY_DATA as
|
|
19
|
-
export { ActivityContainerComponent as
|
|
20
|
-
export { ActivityOutletComponent as
|
|
21
|
-
export { AlertDialogComponent as
|
|
22
|
-
export { ConfirmThenDialogComponent as
|
|
23
|
-
export { ConfirmationDialogComponent as
|
|
24
|
-
export { InPlaceInteractionContextComponent as
|
|
25
|
-
export { InteractionModule as
|
|
26
|
-
export { InteractionService as
|
|
27
|
-
export { ModalInteractionContextFactory as
|
|
28
|
-
export { AbstractPlaceNavigationComponent as
|
|
29
|
-
export { BusyOverlayComponent as
|
|
30
|
-
export { EmptyStateComponent as
|
|
31
|
-
export { ListPlaceNavComponent as
|
|
32
|
-
export { PlaceOutletComponent as
|
|
33
|
-
export { LEFT_RIGHT_PLACE_ANIMATION as
|
|
34
|
-
export { TabbedPlaceNavigationComponent as
|
|
35
|
-
export { AUP_PLACE_CONFIG as
|
|
36
|
-
export { PlaceHistory as
|
|
37
|
-
export { PlaceRouter as
|
|
38
|
-
export { PlaceModule as
|
|
39
|
-
export { UrlService as
|
|
18
|
+
export { AbstractInteractionContext as ɵbi } from './lib/interaction/abstract-interaction-context';
|
|
19
|
+
export { ACTIVITY_DATA as ɵbl, Activity as ɵbm } from './lib/interaction/activity';
|
|
20
|
+
export { ActivityContainerComponent as ɵbh } from './lib/interaction/components/activity-container/activity-container.component';
|
|
21
|
+
export { ActivityOutletComponent as ɵbj } from './lib/interaction/components/activity-container/activity-outlet/activity-outlet.component';
|
|
22
|
+
export { AlertDialogComponent as ɵbp } from './lib/interaction/components/alert-dialog/alert-dialog.component';
|
|
23
|
+
export { ConfirmThenDialogComponent as ɵbo } from './lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component';
|
|
24
|
+
export { ConfirmationDialogComponent as ɵbk } from './lib/interaction/components/confirmation-dialog/confirmation-dialog.component';
|
|
25
|
+
export { InPlaceInteractionContextComponent as ɵbr } from './lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component';
|
|
26
|
+
export { InteractionModule as ɵbg } from './lib/interaction/interaction.module';
|
|
27
|
+
export { InteractionService as ɵz } from './lib/interaction/services/interaction.service';
|
|
28
|
+
export { ModalInteractionContextFactory as ɵba } from './lib/interaction/services/modal-interaction-context.factory';
|
|
29
|
+
export { AbstractPlaceNavigationComponent as ɵbe } from './lib/place/components/abstract-place-navigation.component';
|
|
30
|
+
export { BusyOverlayComponent as ɵs } from './lib/place/components/busy-overlay/busy-overlay.component';
|
|
31
|
+
export { EmptyStateComponent as ɵr } from './lib/place/components/empty-state/empty-state.component';
|
|
32
|
+
export { ListPlaceNavComponent as ɵbf } from './lib/place/components/list-place-nav/list-place-nav.component';
|
|
33
|
+
export { PlaceOutletComponent as ɵt } from './lib/place/components/place-outlet/place-outlet.component';
|
|
34
|
+
export { LEFT_RIGHT_PLACE_ANIMATION as ɵv, leftRightPlaceAnimation as ɵu } from './lib/place/components/place-outlet/route-animations';
|
|
35
|
+
export { TabbedPlaceNavigationComponent as ɵbd } from './lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component';
|
|
36
|
+
export { AUP_PLACE_CONFIG as ɵw } from './lib/place/place-config';
|
|
37
|
+
export { PlaceHistory as ɵbc } from './lib/place/place-history';
|
|
38
|
+
export { PlaceRouter as ɵy } from './lib/place/place-router';
|
|
39
|
+
export { PlaceModule as ɵq } from './lib/place/place.module';
|
|
40
|
+
export { UrlService as ɵbb } from './lib/place/url-service';
|
|
40
41
|
//# sourceMappingURL=coolon-angular-ui-powerups.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coolon-angular-ui-powerups.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["coolon-angular-ui-powerups.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AAExB,OAAO,EAAC,gBAAgB,IAAI,EAAE,EAAC,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAC,mBAAmB,IAAI,EAAE,EAAC,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAC,sBAAsB,IAAI,EAAE,EAAC,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAC,oBAAoB,IAAI,EAAE,EAAC,MAAM,4DAA4D,CAAC;AACtG,OAAO,EAAC,sBAAsB,IAAI,EAAE,EAAC,MAAM,gEAAgE,CAAC;AAC5G,OAAO,EAAC,oBAAoB,IAAI,EAAE,EAAC,MAAM,4DAA4D,CAAC;AACtG,OAAO,EAAC,oBAAoB,IAAI,EAAE,EAAC,MAAM,4DAA4D,CAAC;AACtG,OAAO,EAAC,aAAa,IAAI,EAAE,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAC,wBAAwB,IAAI,EAAE,EAAC,MAAM,8DAA8D,CAAC;AAC5G,OAAO,EAAC,gBAAgB,IAAI,EAAE,EAAC,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAC,gBAAgB,IAAI,EAAE,EAAC,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAC,qBAAqB,IAAI,EAAE,EAAC,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAC,0BAA0B,IAAI,GAAG,EAAC,MAAM,gDAAgD,CAAC;AACjG,OAAO,EAAC,aAAa,IAAI,GAAG,EAAC,QAAQ,IAAI,GAAG,EAAC,MAAM,4BAA4B,CAAC;AAEhF,OAAO,EAAC,0BAA0B,IAAI,GAAG,EAAC,MAAM,8EAA8E,CAAC;AAC/H,OAAO,EAAC,uBAAuB,IAAI,GAAG,EAAC,MAAM,2FAA2F,CAAC;AACzI,OAAO,EAAC,oBAAoB,IAAI,GAAG,EAAC,MAAM,kEAAkE,CAAC;AAC7G,OAAO,EAAC,0BAA0B,IAAI,GAAG,EAAC,MAAM,gFAAgF,CAAC;AACjI,OAAO,EAAC,2BAA2B,IAAI,GAAG,EAAC,MAAM,gFAAgF,CAAC;AAClI,OAAO,EAAC,kCAAkC,IAAI,GAAG,EAAC,MAAM,iGAAiG,CAAC;AAE1J,OAAO,EAAC,iBAAiB,IAAI,GAAG,EAAC,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAC,kBAAkB,IAAI,EAAE,EAAC,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAC,8BAA8B,IAAI,
|
|
1
|
+
{"version":3,"file":"coolon-angular-ui-powerups.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["coolon-angular-ui-powerups.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {ComponentsModule as ɵe} from './lib/components/components.module';\nexport {DisposableComponent as ɵd} from './lib/components/disposable-component';\nexport {AbstractInputComponent as ɵg} from './lib/components/forms/abstract-input.component';\nexport {NumberInputComponent as ɵf} from './lib/components/forms/number-input/number-input.component';\nexport {PasswordInputComponent as ɵi} from './lib/components/forms/password-input/password-input.component';\nexport {SelectInputComponent as ɵj} from './lib/components/forms/select-input/select-input.component';\nexport {StringInputComponent as ɵh} from './lib/components/forms/string-input/string-input.component';\nexport {NoopComponent as ɵl} from './lib/components/noop/noop.component';\nexport {ScrollContainerComponent as ɵk} from './lib/components/scroll-container/scroll-container.component';\nexport {SwitchCaseComponent as ɵp,SwitchCaseDefaultDirective as ɵo,SwitchCaseOption as ɵm,SwitchCaseWhenDirective as ɵn} from './lib/components/switch-case/switch-case.component';\nexport {CommandDirective as ɵb} from './lib/directives/command.directive';\nexport {DirectivesModule as ɵa} from './lib/directives/directives.module';\nexport {FocusBindingDirective as ɵc} from './lib/directives/focus-binding.directive';\nexport {AbstractInteractionContext as ɵbi} from './lib/interaction/abstract-interaction-context';\nexport {ACTIVITY_DATA as ɵbl,Activity as ɵbm} from './lib/interaction/activity';\nexport {Alert as ɵbq} from './lib/interaction/alert';\nexport {ActivityContainerComponent as ɵbh} from './lib/interaction/components/activity-container/activity-container.component';\nexport {ActivityOutletComponent as ɵbj} from './lib/interaction/components/activity-container/activity-outlet/activity-outlet.component';\nexport {AlertDialogComponent as ɵbp} from './lib/interaction/components/alert-dialog/alert-dialog.component';\nexport {ConfirmThenDialogComponent as ɵbo} from './lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component';\nexport {ConfirmationDialogComponent as ɵbk} from './lib/interaction/components/confirmation-dialog/confirmation-dialog.component';\nexport {InPlaceInteractionContextComponent as ɵbr} from './lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component';\nexport {Confirm as ɵbn} from './lib/interaction/confirm';\nexport {InteractionModule as ɵbg} from './lib/interaction/interaction.module';\nexport {InteractionService as ɵz} from './lib/interaction/services/interaction.service';\nexport {ModalInteractionContextFactory as ɵba} from './lib/interaction/services/modal-interaction-context.factory';\nexport {AbstractPlaceNavigationComponent as ɵbe} from './lib/place/components/abstract-place-navigation.component';\nexport {BusyOverlayComponent as ɵs} from './lib/place/components/busy-overlay/busy-overlay.component';\nexport {EmptyStateComponent as ɵr} from './lib/place/components/empty-state/empty-state.component';\nexport {ListPlaceNavComponent as ɵbf} from './lib/place/components/list-place-nav/list-place-nav.component';\nexport {PlaceOutletComponent as ɵt} from './lib/place/components/place-outlet/place-outlet.component';\nexport {LEFT_RIGHT_PLACE_ANIMATION as ɵv,leftRightPlaceAnimation as ɵu} from './lib/place/components/place-outlet/route-animations';\nexport {TabbedPlaceNavigationComponent as ɵbd} from './lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component';\nexport {AUP_PLACE_CONFIG as ɵw,PlaceConfig as ɵx} from './lib/place/place-config';\nexport {PlaceHistory as ɵbc} from './lib/place/place-history';\nexport {PlaceRouter as ɵy} from './lib/place/place-router';\nexport {PlaceModule as ɵq} from './lib/place/place.module';\nexport {UrlService as ɵbb} from './lib/place/url-service';"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-ui-powerups.module.ngfactory.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/angular-ui-powerups.module.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\nimport * as i1 from './angular-ui-powerups.module';\nimport * as i2 from '@angular/common';\nimport * as i3 from '@angular/forms';\nimport * as i4 from '@angular/cdk/text-field';\nimport * as i5 from '@angular/material/form-field';\nimport * as i6 from '@angular/material/input';\nimport * as i7 from '@angular/cdk/scrolling';\nimport * as i8 from '@angular/material/core';\nimport * as i9 from '@angular/cdk/bidi';\nimport * as i10 from '@angular/material/select';\nimport * as i11 from '@angular/material/tabs';\nimport * as i12 from './directives/command.directive';\nimport * as i13 from './directives/focus-binding.directive';\nimport * as i14 from './components/forms/number-input/number-input.component';\nimport * as i15 from './components/forms/string-input/string-input.component';\nimport * as i16 from './components/forms/password-input/password-input.component';\nimport * as i17 from './components/forms/select-input/select-input.component';\nimport * as i18 from './components/scroll-container/scroll-container.component';\nimport * as i19 from './components/noop/noop.component';\nimport * as i20 from './place/components/busy-overlay/busy-overlay.component';\nimport * as
|
|
1
|
+
{"version":3,"file":"angular-ui-powerups.module.ngfactory.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/angular-ui-powerups.module.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\nimport * as i1 from './angular-ui-powerups.module';\nimport * as i2 from '@angular/common';\nimport * as i3 from '@angular/forms';\nimport * as i4 from '@angular/cdk/text-field';\nimport * as i5 from '@angular/material/form-field';\nimport * as i6 from '@angular/material/input';\nimport * as i7 from '@angular/cdk/scrolling';\nimport * as i8 from '@angular/material/core';\nimport * as i9 from '@angular/cdk/bidi';\nimport * as i10 from '@angular/material/select';\nimport * as i11 from '@angular/material/tabs';\nimport * as i12 from './directives/command.directive';\nimport * as i13 from './directives/focus-binding.directive';\nimport * as i14 from './components/forms/number-input/number-input.component';\nimport * as i15 from './components/forms/string-input/string-input.component';\nimport * as i16 from './components/forms/password-input/password-input.component';\nimport * as i17 from './components/forms/select-input/select-input.component';\nimport * as i18 from './components/scroll-container/scroll-container.component';\nimport * as i19 from './components/noop/noop.component';\nimport * as i20 from './components/switch-case/switch-case.component';\nimport * as i21 from './place/components/busy-overlay/busy-overlay.component';\nimport * as i22 from './place/components/place-outlet/place-outlet.component';\nimport * as i23 from './place/components/empty-state/empty-state.component';\nimport * as i24 from './place/components/tabbed-place-navigation/tabbed-place-navigation.component';\nimport * as i25 from './place/components/list-place-nav/list-place-nav.component';\nimport * as i26 from './place/components/abstract-place-navigation.component';\nimport * as i27 from './interaction/components/activity-container/activity-container.component';\nimport * as i28 from './interaction/components/activity-container/activity-outlet/activity-outlet.component';\nimport * as i29 from './interaction/components/inplace-interaction-context/in-place-interaction-context.component';\nimport * as i30 from '@angular/platform-browser/animations';\nimport * as i31 from './directives/directives.module';\nimport * as i32 from './components/components.module';\nimport * as i33 from './place/place.module';\nimport * as i34 from './interaction/interaction.module';\nexport const AngularUiPowerupsModuleNgFactory:i0.NgModuleFactory<i1.AngularUiPowerupsModule> = (null as any);\nvar _decl0_0:i2.NgClass = (<any>(null as any));\nvar _decl0_1:i2.NgComponentOutlet = (<any>(null as any));\nvar _decl0_2:i2.NgForOf<any,any> = (<any>(null as any));\nvar _decl0_3:i2.NgIf<any> = (<any>(null as any));\nvar _decl0_4:i2.NgTemplateOutlet = (<any>(null as any));\nvar _decl0_5:i2.NgStyle = (<any>(null as any));\nvar _decl0_6:i2.NgSwitch = (<any>(null as any));\nvar _decl0_7:i2.NgSwitchCase = (<any>(null as any));\nvar _decl0_8:i2.NgSwitchDefault = (<any>(null as any));\nvar _decl0_9:i2.NgPlural = (<any>(null as any));\nvar _decl0_10:i2.NgPluralCase = (<any>(null as any));\nvar _decl0_11:i3.ɵangular_packages_forms_forms_y = (<any>(null as any));\nvar _decl0_12:i3.NgSelectOption = (<any>(null as any));\nvar _decl0_13:i3.ɵangular_packages_forms_forms_x = (<any>(null as any));\nvar _decl0_14:i3.DefaultValueAccessor = (<any>(null as any));\nvar _decl0_15:i3.NumberValueAccessor = (<any>(null as any));\nvar _decl0_16:i3.RangeValueAccessor = (<any>(null as any));\nvar _decl0_17:i3.CheckboxControlValueAccessor = (<any>(null as any));\nvar _decl0_18:i3.SelectControlValueAccessor = (<any>(null as any));\nvar _decl0_19:i3.SelectMultipleControlValueAccessor = (<any>(null as any));\nvar _decl0_20:i3.RadioControlValueAccessor = (<any>(null as any));\nvar _decl0_21:i3.NgControlStatus = (<any>(null as any));\nvar _decl0_22:i3.NgControlStatusGroup = (<any>(null as any));\nvar _decl0_23:i3.RequiredValidator = (<any>(null as any));\nvar _decl0_24:i3.MinLengthValidator = (<any>(null as any));\nvar _decl0_25:i3.MaxLengthValidator = (<any>(null as any));\nvar _decl0_26:i3.PatternValidator = (<any>(null as any));\nvar _decl0_27:i3.CheckboxRequiredValidator = (<any>(null as any));\nvar _decl0_28:i3.EmailValidator = (<any>(null as any));\nvar _decl0_29:i3.NgModel = (<any>(null as any));\nvar _decl0_30:i3.NgModelGroup = (<any>(null as any));\nvar _decl0_31:i3.NgForm = (<any>(null as any));\nvar _decl0_32:i4.CdkAutofill = (<any>(null as any));\nvar _decl0_33:i4.CdkTextareaAutosize = (<any>(null as any));\nvar _decl0_34:i5.MatError = (<any>(null as any));\nvar _decl0_35:i5.MatFormField = (<any>(null as any));\nvar _decl0_36:i5.MatHint = (<any>(null as any));\nvar _decl0_37:i5.MatLabel = (<any>(null as any));\nvar _decl0_38:i5.MatPlaceholder = (<any>(null as any));\nvar _decl0_39:i5.MatPrefix = (<any>(null as any));\nvar _decl0_40:i5.MatSuffix = (<any>(null as any));\nvar _decl0_41:i6.MatInput = (<any>(null as any));\nvar _decl0_42:i6.MatTextareaAutosize = (<any>(null as any));\nvar _decl0_43:i7.CdkScrollable = (<any>(null as any));\nvar _decl0_44:i8.MatOption = (<any>(null as any));\nvar _decl0_45:i8.MatOptgroup = (<any>(null as any));\nvar _decl0_46:i9.Dir = (<any>(null as any));\nvar _decl0_47:i10.MatSelect = (<any>(null as any));\nvar _decl0_48:i10.MatSelectTrigger = (<any>(null as any));\nvar _decl0_49:i11.MatTabGroup = (<any>(null as any));\nvar _decl0_50:i11.MatTabLabel = (<any>(null as any));\nvar _decl0_51:i11.MatTab = (<any>(null as any));\nvar _decl0_52:i11.MatTabNav = (<any>(null as any));\nvar _decl0_53:i11.MatTabLink = (<any>(null as any));\nvar _decl0_54:i11.MatTabContent = (<any>(null as any));\nvar _decl0_55:i12.CommandDirective<any> = (<any>(null as any));\nvar _decl0_56:i13.FocusBindingDirective = (<any>(null as any));\nvar _decl0_57:i14.NumberInputComponent = (<any>(null as any));\nvar _decl0_58:i15.StringInputComponent = (<any>(null as any));\nvar _decl0_59:i16.PasswordInputComponent = (<any>(null as any));\nvar _decl0_60:i17.SelectInputComponent<any> = (<any>(null as any));\nvar _decl0_61:i18.ScrollContainerComponent = (<any>(null as any));\nvar _decl0_62:i19.NoopComponent = (<any>(null as any));\nvar _decl0_63:i20.SwitchCaseComponent<any> = (<any>(null as any));\nvar _decl0_64:i20.SwitchCaseWhenDirective<any> = (<any>(null as any));\nvar _decl0_65:i20.SwitchCaseDefaultDirective<any> = (<any>(null as any));\nvar _decl0_66:i21.BusyOverlayComponent = (<any>(null as any));\nvar _decl0_67:i22.PlaceOutletComponent = (<any>(null as any));\nvar _decl0_68:i23.EmptyStateComponent = (<any>(null as any));\nvar _decl0_69:i24.TabbedPlaceNavigationComponent = (<any>(null as any));\nvar _decl0_70:i25.ListPlaceNavComponent = (<any>(null as any));\nvar _decl0_71:i26.AbstractPlaceNavigationComponent = (<any>(null as any));\nvar _decl0_72:i27.ActivityContainerComponent<any,any,any> = (<any>(null as any));\nvar _decl0_73:i28.ActivityOutletComponent<any,any,any> = (<any>(null as any));\nvar _decl0_74:i29.InPlaceInteractionContextComponent<any,any,any> = (<any>(null as any));\nvar _decl0_75:i2.AsyncPipe = (<any>(null as any));\nvar _decl0_76:i2.UpperCasePipe = (<any>(null as any));\nvar _decl0_77:i2.LowerCasePipe = (<any>(null as any));\nvar _decl0_78:i2.JsonPipe = (<any>(null as any));\nvar _decl0_79:i2.SlicePipe = (<any>(null as any));\nvar _decl0_80:i2.DecimalPipe = (<any>(null as any));\nvar _decl0_81:i2.PercentPipe = (<any>(null as any));\nvar _decl0_82:i2.TitleCasePipe = (<any>(null as any));\nvar _decl0_83:i2.CurrencyPipe = (<any>(null as any));\nvar _decl0_84:i2.DatePipe = (<any>(null as any));\nvar _decl0_85:i2.I18nPluralPipe = (<any>(null as any));\nvar _decl0_86:i2.I18nSelectPipe = (<any>(null as any));\nvar _decl0_87:i2.KeyValuePipe = (<any>(null as any));\nvar _decl0_88:i2.CommonModule = (<any>(null as any));\nvar _decl0_89:i30.BrowserAnimationsModule = (<any>(null as any));\nvar _decl0_90:i3.FormsModule = (<any>(null as any));\nvar _decl0_91:i6.MatInputModule = (<any>(null as any));\nvar _decl0_92:i5.MatFormFieldModule = (<any>(null as any));\nvar _decl0_93:i10.MatSelectModule = (<any>(null as any));\nvar _decl0_94:i11.MatTabsModule = (<any>(null as any));\nvar _decl0_101:i31.DirectivesModule = (<any>(null as any));\nvar _decl0_102:i32.ComponentsModule = (<any>(null as any));\nvar _decl0_100:i33.PlaceModule = (<any>(null as any));\nvar _decl0_99:i34.InteractionModule = (<any>(null as any));\nvar _decl0_103:i0.TemplateRef<any> = (<any>(null as any));\nvar _decl0_104:i0.ElementRef<any> = (<any>(null as any));\n"]}
|
|
@@ -17,6 +17,7 @@ import { SelectInputComponent } from './forms/select-input/select-input.componen
|
|
|
17
17
|
import { StringInputComponent } from './forms/string-input/string-input.component';
|
|
18
18
|
import { NoopComponent } from './noop/noop.component';
|
|
19
19
|
import { ScrollContainerComponent } from './scroll-container/scroll-container.component';
|
|
20
|
+
import { SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseWhenDirective } from './switch-case/switch-case.component';
|
|
20
21
|
var ComponentsModule = /** @class */ (function () {
|
|
21
22
|
function ComponentsModule() {
|
|
22
23
|
}
|
|
@@ -29,7 +30,10 @@ var ComponentsModule = /** @class */ (function () {
|
|
|
29
30
|
SelectInputComponent,
|
|
30
31
|
ScrollContainerComponent,
|
|
31
32
|
NoopComponent,
|
|
32
|
-
AbstractInputComponent
|
|
33
|
+
AbstractInputComponent,
|
|
34
|
+
SwitchCaseComponent,
|
|
35
|
+
SwitchCaseWhenDirective,
|
|
36
|
+
SwitchCaseDefaultDirective
|
|
33
37
|
],
|
|
34
38
|
imports: [
|
|
35
39
|
CommonModule,
|
|
@@ -49,7 +53,10 @@ var ComponentsModule = /** @class */ (function () {
|
|
|
49
53
|
PasswordInputComponent,
|
|
50
54
|
SelectInputComponent,
|
|
51
55
|
ScrollContainerComponent,
|
|
52
|
-
NoopComponent
|
|
56
|
+
NoopComponent,
|
|
57
|
+
SwitchCaseComponent,
|
|
58
|
+
SwitchCaseWhenDirective,
|
|
59
|
+
SwitchCaseDefaultDirective
|
|
53
60
|
]
|
|
54
61
|
})
|
|
55
62
|
], ComponentsModule);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.module.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/components.module.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"components.module.js","sourceRoot":"ng://@coolon/angular-ui-powerups/","sources":["lib/components/components.module.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,qCAAqC,CAAC;AAwC7C;IAAA;IACA,CAAC;IADY,gBAAgB;QAtC5B,QAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,oBAAoB;gBACpB,oBAAoB;gBACpB,sBAAsB;gBACtB,oBAAoB;gBACpB,wBAAwB;gBACxB,aAAa;gBACb,sBAAsB;gBACtB,mBAAmB;gBACnB,uBAAuB;gBACvB,0BAA0B;aAC3B;YACD,OAAO,EAAE;gBACP,YAAY;gBACZ,uBAAuB;gBACvB,WAAW;gBACX,cAAc;gBACd,kBAAkB;gBAClB,eAAe;gBACf,aAAa;gBACb,gBAAgB;gBAChB,aAAa;gBACb,eAAe;aAChB;YACD,OAAO,EAAE;gBACP,oBAAoB;gBACpB,oBAAoB;gBACpB,sBAAsB;gBACtB,oBAAoB;gBACpB,wBAAwB;gBACxB,aAAa;gBACb,mBAAmB;gBACnB,uBAAuB;gBACvB,0BAA0B;aAC3B;SAEF,CAAC;OACW,gBAAgB,CAC5B;IAAD,uBAAC;CAAA,AADD,IACC;SADY,gBAAgB","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { AbstractInputComponent } from './forms/abstract-input.component';\nimport { NumberInputComponent } from './forms/number-input/number-input.component';\nimport { PasswordInputComponent } from './forms/password-input/password-input.component';\nimport { SelectInputComponent } from './forms/select-input/select-input.component';\nimport { StringInputComponent } from './forms/string-input/string-input.component';\nimport { NoopComponent } from './noop/noop.component';\nimport { ScrollContainerComponent } from './scroll-container/scroll-container.component';\nimport {\n SwitchCaseComponent,\n SwitchCaseDefaultDirective,\n SwitchCaseWhenDirective\n} from './switch-case/switch-case.component';\n\n@NgModule({\n declarations: [\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n ScrollContainerComponent,\n NoopComponent,\n AbstractInputComponent,\n SwitchCaseComponent,\n SwitchCaseWhenDirective,\n SwitchCaseDefaultDirective\n ],\n imports: [\n CommonModule,\n BrowserAnimationsModule,\n FormsModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatTabsModule,\n DirectivesModule,\n MatIconModule,\n MatButtonModule\n ],\n exports: [\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n ScrollContainerComponent,\n NoopComponent,\n SwitchCaseComponent,\n SwitchCaseWhenDirective,\n SwitchCaseDefaultDirective\n ]\n\n})\nexport class ComponentsModule {\n}\n"]}
|