@coolon/angular-ui-powerups 0.0.31 → 0.0.33

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.
Files changed (60) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +1056 -901
  2. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  5. package/coolon-angular-ui-powerups.metadata.json +1 -1
  6. package/esm2015/coolon-angular-ui-powerups.js +2 -2
  7. package/esm2015/index.js +2 -2
  8. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +34 -5
  9. package/esm2015/lib/place/components/place-outlet/route-animations.js +29 -17
  10. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +3 -3
  11. package/esm2015/lib/place/guards/leave-place.guard.js +18 -2
  12. package/esm2015/lib/place/i-place-component.js +17 -0
  13. package/esm2015/lib/place/i-place-service.js +16 -0
  14. package/esm2015/lib/place/index.js +7 -3
  15. package/esm2015/lib/place/place-component.js +165 -7
  16. package/esm2015/lib/place/place.decorator.js +7 -87
  17. package/esm2015/lib/place/place.service.js +47 -8
  18. package/esm2015/lib/place/route/resolved-parameter.js +16 -0
  19. package/esm2015/lib/place/route/resolved-route-parameter-snapshot.js +106 -0
  20. package/esm2015/lib/place/route/route-parameter-bindings.js +14 -158
  21. package/esm2015/lib/place/route/visit-snapshot.js +7 -0
  22. package/esm2015/public_api.js +2 -2
  23. package/esm5/coolon-angular-ui-powerups.js +2 -2
  24. package/esm5/index.js +2 -2
  25. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +41 -5
  26. package/esm5/lib/place/components/place-outlet/route-animations.js +29 -17
  27. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +3 -3
  28. package/esm5/lib/place/guards/leave-place.guard.js +18 -2
  29. package/esm5/lib/place/i-place-component.js +17 -0
  30. package/esm5/lib/place/i-place-service.js +16 -0
  31. package/esm5/lib/place/index.js +7 -3
  32. package/esm5/lib/place/place-component.js +195 -7
  33. package/esm5/lib/place/place.decorator.js +7 -97
  34. package/esm5/lib/place/place.service.js +52 -10
  35. package/esm5/lib/place/route/resolved-parameter.js +16 -0
  36. package/esm5/lib/place/route/resolved-route-parameter-snapshot.js +129 -0
  37. package/esm5/lib/place/route/route-parameter-bindings.js +13 -185
  38. package/esm5/lib/place/route/visit-snapshot.js +11 -0
  39. package/esm5/public_api.js +2 -2
  40. package/fesm2015/coolon-angular-ui-powerups.js +835 -701
  41. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  42. package/fesm5/coolon-angular-ui-powerups.js +1054 -901
  43. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  44. package/lib/place/components/place-outlet/place-outlet.component.d.ts +4 -0
  45. package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +1 -2
  46. package/lib/place/i-place-component.d.ts +5 -0
  47. package/lib/place/i-place-service.d.ts +10 -0
  48. package/lib/place/index.d.ts +5 -1
  49. package/lib/place/place-component.d.ts +40 -2
  50. package/lib/place/place.decorator.d.ts +1 -25
  51. package/lib/place/place.service.d.ts +13 -2
  52. package/lib/place/route/resolved-parameter.d.ts +5 -0
  53. package/lib/place/route/resolved-route-parameter-snapshot.d.ts +12 -0
  54. package/lib/place/route/route-parameter-bindings.d.ts +3 -4
  55. package/lib/place/route/visit-snapshot.d.ts +2 -0
  56. package/package.json +1 -1
  57. package/styles/styles.scss +10 -0
  58. package/esm2015/lib/place/abstract-place-component.js +0 -50
  59. package/esm5/lib/place/abstract-place-component.js +0 -57
  60. package/lib/place/abstract-place-component.d.ts +0 -11
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @record
7
+ */
8
+ export function IPlaceService() { }
9
+ if (false) {
10
+ /**
11
+ * @param {?} params
12
+ * @return {?}
13
+ */
14
+ IPlaceService.prototype.notifyRouteParametersChanged = function (params) { };
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1wbGFjZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL2ktcGxhY2Utc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0EsbUNBT0M7Ozs7OztJQU5DLDZFQUtHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9pLXBsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXNvbHZlZFJvdXRlUGFyYW1ldGVyU25hcHNob3QgfSBmcm9tICcuL3JvdXRlL3Jlc29sdmVkLXJvdXRlLXBhcmFtZXRlci1zbmFwc2hvdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBsYWNlU2VydmljZSB7XG4gIG5vdGlmeVJvdXRlUGFyYW1ldGVyc0NoYW5nZWQocGFyYW1zOiB7XG4gICAgcGxhY2VDb21wb25lbnQ6IElQbGFjZUNvbXBvbmVudCxcbiAgICBuZXh0OiBSZXNvbHZlZFJvdXRlUGFyYW1ldGVyU25hcHNob3QsXG4gICAgcHJldmlvdXM6IFJlc29sdmVkUm91dGVQYXJhbWV0ZXJTbmFwc2hvdCxcbiAgICB1cGRhdGVSb3V0ZTogYm9vbGVhblxuICB9KTtcbn1cbiJdfQ==
@@ -5,8 +5,9 @@
5
5
  /**
6
6
  * @file Automatically generated by barrelsby.
7
7
  */
8
- export { AbstractPlaceComponent } from "./abstract-place-component";
9
- export {} from "./place-component";
8
+ export {} from "./i-place-component";
9
+ export {} from "./i-place-service";
10
+ export { DEFINITION_META_DATA_KEY, PlaceComponent } from "./place-component";
10
11
  export { Place } from "./place.decorator";
11
12
  export { PlaceModule } from "./place.module";
12
13
  export { PlaceService } from "./place.service";
@@ -22,6 +23,9 @@ export { RouteId, QueryParameter, RouteParameter, QueryParameterList, RouteParam
22
23
  export {} from "./route/parameter-definition.class";
23
24
  export {} from "./route/parameter-sanitiser";
24
25
  export { ParameterType } from "./route/parameter-type";
26
+ export {} from "./route/resolved-parameter";
27
+ export { ResolvedRouteParameterSnapshot } from "./route/resolved-route-parameter-snapshot";
25
28
  export { RouteParameterBindings } from "./route/route-parameter-bindings";
26
29
  export { Sanitiser, RouteParameterSanitiser } from "./route/route-parameter-sanitiser";
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLHVDQUFjLDRCQUE0QixDQUFDO0FBQzNDLGVBQWMsbUJBQW1CLENBQUM7QUFDbEMsc0JBQWMsbUJBQW1CLENBQUM7QUFDbEMsNEJBQWMsZ0JBQWdCLENBQUM7QUFDL0IsNkJBQWMsaUJBQWlCLENBQUM7QUFDaEMscUNBQWMsa0RBQWtELENBQUM7QUFDakUsb0NBQWMsZ0RBQWdELENBQUM7QUFDL0QscUNBQWMsa0RBQWtELENBQUM7QUFDakUsMkNBQWMsNENBQTRDLENBQUM7QUFDM0QsK0NBQWMsd0VBQXdFLENBQUM7QUFDdkYsZ0NBQWMsNEJBQTRCLENBQUM7QUFDM0MsZ0NBQWMsNEJBQTRCLENBQUM7QUFDM0MsZUFBYyxvQkFBb0IsQ0FBQztBQUNuQyxnR0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxlQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGVBQWMsNkJBQTZCLENBQUM7QUFDNUMsOEJBQWMsd0JBQXdCLENBQUM7QUFDdkMsdUNBQWMsa0NBQWtDLENBQUM7QUFDakQsbURBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGJhcnJlbHNieS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9hYnN0cmFjdC1wbGFjZS1jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UuZGVjb3JhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvYnVzeS1vdmVybGF5L2J1c3ktb3ZlcmxheS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9yb3V0ZS1hbmltYXRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ndWFyZHMvcGxhY2Utcm91dGUuZ3VhcmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL2pzb24tdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3BhcmFtZXRlci1kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcGFyYW1ldGVyLXNhbml0aXNlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcGFyYW1ldGVyLXR5cGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3JvdXRlLXBhcmFtZXRlci1iaW5kaW5nc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcm91dGUtcGFyYW1ldGVyLXNhbml0aXNlclwiO1xuIl19
30
+ export { VisitSnapshot } from "./route/visit-snapshot";
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLGVBQWMscUJBQXFCLENBQUM7QUFDcEMsZUFBYyxtQkFBbUIsQ0FBQztBQUNsQyx5REFBYyxtQkFBbUIsQ0FBQztBQUNsQyxzQkFBYyxtQkFBbUIsQ0FBQztBQUNsQyw0QkFBYyxnQkFBZ0IsQ0FBQztBQUMvQiw2QkFBYyxpQkFBaUIsQ0FBQztBQUNoQyxxQ0FBYyxrREFBa0QsQ0FBQztBQUNqRSxvQ0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxxQ0FBYyxrREFBa0QsQ0FBQztBQUNqRSwyQ0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCwrQ0FBYyx3RUFBd0UsQ0FBQztBQUN2RixnQ0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxnQ0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxlQUFjLG9CQUFvQixDQUFDO0FBQ25DLGdHQUFjLDhCQUE4QixDQUFDO0FBQzdDLGVBQWMsb0NBQW9DLENBQUM7QUFDbkQsZUFBYyw2QkFBNkIsQ0FBQztBQUM1Qyw4QkFBYyx3QkFBd0IsQ0FBQztBQUN2QyxlQUFjLDRCQUE0QixDQUFDO0FBQzNDLCtDQUFjLDJDQUEyQyxDQUFDO0FBQzFELHVDQUFjLGtDQUFrQyxDQUFDO0FBQ2pELG1EQUFjLG1DQUFtQyxDQUFDO0FBQ2xELDhCQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBiYXJyZWxzYnkuXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vaS1wbGFjZS1jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ktcGxhY2Utc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2UtY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wbGFjZS5kZWNvcmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsYWNlLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGxhY2Uuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9idXN5LW92ZXJsYXkvYnVzeS1vdmVybGF5LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvcGxhY2Utb3V0bGV0L3BsYWNlLW91dGxldC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvcGxhY2Utb3V0bGV0L3JvdXRlLWFuaW1hdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ndWFyZHMvbGVhdmUtcGxhY2UuZ3VhcmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2d1YXJkcy9wbGFjZS1yb3V0ZS5ndWFyZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvanNvbi10eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcGFyYW1ldGVyLWRlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItc2FuaXRpc2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9wYXJhbWV0ZXItdHlwZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcmVzb2x2ZWQtcGFyYW1ldGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yb3V0ZS9yZXNvbHZlZC1yb3V0ZS1wYXJhbWV0ZXItc25hcHNob3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JvdXRlL3JvdXRlLXBhcmFtZXRlci1iaW5kaW5nc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvcm91dGUtcGFyYW1ldGVyLXNhbml0aXNlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcm91dGUvdmlzaXQtc25hcHNob3RcIjtcbiJdfQ==
@@ -2,14 +2,202 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- /**
6
- * @record
7
- */
8
- export function PlaceComponent() { }
9
- if (false) {
5
+ import * as tslib_1 from "tslib";
6
+ import { assert, lang, Trace } from '@coolon/pectin';
7
+ import { Memoize } from '@typescript-plus/fast-memoize-decorator';
8
+ import * as _ from 'lodash';
9
+ import 'reflect-metadata';
10
+ import { DisposableComponent } from '../components/disposable-component';
11
+ import { RouteParameterBindings } from './route/route-parameter-bindings';
12
+ // RAKE: making this Symbol(...) broke things.
13
+ /** @type {?} */
14
+ export var DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';
15
+ var PlaceComponent = /** @class */ (function (_super) {
16
+ tslib_1.__extends(PlaceComponent, _super);
17
+ function PlaceComponent(activatedRoute, placeService) {
18
+ var _this = _super.call(this) || this;
19
+ _this.activatedRoute = activatedRoute;
20
+ _this.routeBindingMediator = _this.registerDisposable(new RouteParameterBindings(_this, placeService));
21
+ return _this;
22
+ }
23
+ Object.defineProperty(PlaceComponent.prototype, "placeConfig", {
24
+ get: /**
25
+ * @return {?}
26
+ */
27
+ function () {
28
+ return PlaceComponent.getDefinition((/** @type {?} */ ((/** @type {?} */ (this.constructor)))));
29
+ },
30
+ enumerable: true,
31
+ configurable: true
32
+ });
10
33
  /**
34
+ * @param {?=} nextPlace
35
+ * @param {?=} nextState
11
36
  * @return {?}
12
37
  */
13
- PlaceComponent.prototype.canDeactivate = function () { };
38
+ PlaceComponent.prototype.canDeactivate = /**
39
+ * @param {?=} nextPlace
40
+ * @param {?=} nextState
41
+ * @return {?}
42
+ */
43
+ function (nextPlace, nextState) {
44
+ return true;
45
+ };
46
+ /**
47
+ * @return {?}
48
+ */
49
+ PlaceComponent.prototype.onPlaceReady = /**
50
+ * @return {?}
51
+ */
52
+ function () {
53
+ };
54
+ tslib_1.__decorate([
55
+ Memoize(),
56
+ tslib_1.__metadata("design:type", PlaceComponent.Definition),
57
+ tslib_1.__metadata("design:paramtypes", [])
58
+ ], PlaceComponent.prototype, "placeConfig", null);
59
+ tslib_1.__decorate([
60
+ Trace(),
61
+ tslib_1.__metadata("design:type", Function),
62
+ tslib_1.__metadata("design:paramtypes", []),
63
+ tslib_1.__metadata("design:returntype", void 0)
64
+ ], PlaceComponent.prototype, "onPlaceReady", null);
65
+ return PlaceComponent;
66
+ }(DisposableComponent));
67
+ export { PlaceComponent };
68
+ if (false) {
69
+ /**
70
+ * @type {?}
71
+ * @private
72
+ */
73
+ PlaceComponent.prototype.routeBindingMediator;
74
+ /** @type {?} */
75
+ PlaceComponent.prototype.activatedRoute;
14
76
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsb0NBRUM7Ozs7O0lBREMseURBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQbGFjZUNvbXBvbmVudCB7XG4gIGNhbkRlYWN0aXZhdGUoKTogYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47XG59XG4iXX0=
77
+ (function (PlaceComponent) {
78
+ var Definition = /** @class */ (function () {
79
+ function Definition(component, options) {
80
+ this.component = component;
81
+ assert.notNil(options);
82
+ this.path = options.path;
83
+ this.order = options.order;
84
+ this.data = options.data;
85
+ this.authenticate = _.isNil(options.authenticate) || options.authenticate;
86
+ }
87
+ /**
88
+ * @param {?} construcable
89
+ * @return {?}
90
+ */
91
+ Definition.prototype.isDescriptorForType = /**
92
+ * @param {?} construcable
93
+ * @return {?}
94
+ */
95
+ function (construcable) {
96
+ return lang.constructorChain(construcable).includes(PlaceComponent);
97
+ };
98
+ /**
99
+ * @param {?} placeComponent
100
+ * @return {?}
101
+ */
102
+ Definition.prototype.isDescriptorFor = /**
103
+ * @param {?} placeComponent
104
+ * @return {?}
105
+ */
106
+ function (placeComponent) {
107
+ return placeComponent.constructor === this.component;
108
+ };
109
+ /**
110
+ * @template T
111
+ * @param {?} key
112
+ * @param {?=} defaultValue
113
+ * @return {?}
114
+ */
115
+ Definition.prototype.getData = /**
116
+ * @template T
117
+ * @param {?} key
118
+ * @param {?=} defaultValue
119
+ * @return {?}
120
+ */
121
+ function (key, defaultValue) {
122
+ return this.data ?
123
+ _.isNil(this.data[key]) ? defaultValue : this.data[key] :
124
+ defaultValue;
125
+ };
126
+ /**
127
+ * @template T
128
+ * @param {?} keys
129
+ * @param {?=} defaultValue
130
+ * @return {?}
131
+ */
132
+ Definition.prototype.searchData = /**
133
+ * @template T
134
+ * @param {?} keys
135
+ * @param {?=} defaultValue
136
+ * @return {?}
137
+ */
138
+ function (keys, defaultValue) {
139
+ var _this = this;
140
+ if (this.data) {
141
+ /** @type {?} */
142
+ var found = keys.find((/**
143
+ * @param {?} key
144
+ * @return {?}
145
+ */
146
+ function (key) { return !_.isNil(_this.data[key]); }));
147
+ return found ? this.data[found] : defaultValue;
148
+ }
149
+ else {
150
+ return defaultValue;
151
+ }
152
+ };
153
+ return Definition;
154
+ }());
155
+ PlaceComponent.Definition = Definition;
156
+ if (false) {
157
+ /** @type {?} */
158
+ Definition.prototype.path;
159
+ /** @type {?} */
160
+ Definition.prototype.authenticate;
161
+ /** @type {?} */
162
+ Definition.prototype.order;
163
+ /** @type {?} */
164
+ Definition.prototype.data;
165
+ /** @type {?} */
166
+ Definition.prototype.component;
167
+ }
168
+ /**
169
+ * @record
170
+ */
171
+ function Options() { }
172
+ PlaceComponent.Options = Options;
173
+ if (false) {
174
+ /** @type {?} */
175
+ Options.prototype.path;
176
+ /** @type {?} */
177
+ Options.prototype.order;
178
+ /** @type {?|undefined} */
179
+ Options.prototype.data;
180
+ /** @type {?|undefined} */
181
+ Options.prototype.authenticate;
182
+ }
183
+ /**
184
+ * @param {?} klass
185
+ * @return {?}
186
+ */
187
+ function getDefinition(klass) {
188
+ /** @type {?} */
189
+ var placeOptions = Reflect.getMetadata(DEFINITION_META_DATA_KEY, klass);
190
+ return new Definition(klass, placeOptions);
191
+ }
192
+ PlaceComponent.getDefinition = getDefinition;
193
+ /**
194
+ * @param {?} klass
195
+ * @param {?} options
196
+ * @return {?}
197
+ */
198
+ function injectDefinition(klass, options) {
199
+ Reflect.defineMetadata(DEFINITION_META_DATA_KEY, options, klass);
200
+ }
201
+ PlaceComponent.injectDefinition = injectDefinition;
202
+ })(PlaceComponent || (PlaceComponent = {}));
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQWlCLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUd6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRzFFLE1BQU0sS0FBTyx3QkFBd0IsR0FBRywwQkFBMEI7QUFFbEU7SUFBb0MsMENBQW1CO0lBSXJELHdCQUFxQixjQUE4QixFQUFFLFlBQTJCO1FBQWhGLFlBQ0UsaUJBQU8sU0FFUjtRQUhvQixvQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFFakQsS0FBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLEtBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDOztJQUN0RyxDQUFDO0lBR0Qsc0JBQUksdUNBQVc7Ozs7UUFBZjtZQUNFLE9BQU8sY0FBYyxDQUFDLGFBQWEsQ0FBQyxtQkFBQSxtQkFBQSxJQUFJLENBQUMsV0FBVyxFQUFPLEVBQWlDLENBQUMsQ0FBQztRQUNoRyxDQUFDOzs7T0FBQTs7Ozs7O0lBRUQsc0NBQWE7Ozs7O0lBQWIsVUFBYyxTQUFxQyxFQUFFLFNBQStCO1FBQ2xGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7OztJQUdELHFDQUFZOzs7SUFBWjtJQUNBLENBQUM7SUFWRDtRQURD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RUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUZlLCtCQUFnQixtQkFFL0IsQ0FBQTtBQUdILENBQUMsRUEzRGdCLGNBQWMsS0FBZCxjQUFjLFFBMkQ5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGFzc2VydCwgQ29uc3RydWN0YWJsZSwgbGFuZywgVHJhY2UgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBNZW1vaXplIH0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5pbXBvcnQgeyBEaXNwb3NhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBJUGxhY2VDb21wb25lbnQgfSBmcm9tICcuL2ktcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IElQbGFjZVNlcnZpY2UgfSBmcm9tICcuL2ktcGxhY2Utc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZVBhcmFtZXRlckJpbmRpbmdzIH0gZnJvbSAnLi9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItYmluZGluZ3MnO1xuXG4vLyBSQUtFOiBtYWtpbmcgdGhpcyBTeW1ib2woLi4uKSBicm9rZSB0aGluZ3MuXG5leHBvcnQgY29uc3QgREVGSU5JVElPTl9NRVRBX0RBVEFfS0VZID0gJ1BMQUNFX0RFRklOSVRJT05fT1BUSU9OUyc7XG5cbmV4cG9ydCBjbGFzcyBQbGFjZUNvbXBvbmVudCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBJUGxhY2VDb21wb25lbnQge1xuXG4gIHByaXZhdGUgcm91dGVCaW5kaW5nTWVkaWF0b3I6IFJvdXRlUGFyYW1ldGVyQmluZGluZ3M7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwbGFjZVNlcnZpY2U6IElQbGFjZVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucm91dGVCaW5kaW5nTWVkaWF0b3IgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgUm91dGVQYXJhbWV0ZXJCaW5kaW5ncyh0aGlzLCBwbGFjZVNlcnZpY2UpKTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0IHBsYWNlQ29uZmlnKCk6IFBsYWNlQ29tcG9uZW50LkRlZmluaXRpb24ge1xuICAgIHJldHVybiBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKHRoaXMuY29uc3RydWN0b3IgYXMgYW55IGFzIENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTtcbiAgfVxuXG4gIGNhbkRlYWN0aXZhdGUobmV4dFBsYWNlPzogUGxhY2VDb21wb25lbnQuRGVmaW5pdGlvbiwgbmV4dFN0YXRlPzogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIG9uUGxhY2VSZWFkeSgpIHtcbiAgfVxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGxhY2VDb21wb25lbnQge1xuXG4gIGV4cG9ydCBjbGFzcyBEZWZpbml0aW9uIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXV0aGVudGljYXRlOiBib29sZWFuO1xuICAgIHJlYWRvbmx5IG9yZGVyOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sIG9wdGlvbnM6IFBsYWNlQ29tcG9uZW50Lk9wdGlvbnMpIHtcbiAgICAgIGFzc2VydC5ub3ROaWwob3B0aW9ucyk7XG4gICAgICB0aGlzLnBhdGggPSBvcHRpb25zLnBhdGg7XG4gICAgICB0aGlzLm9yZGVyID0gb3B0aW9ucy5vcmRlcjtcbiAgICAgIHRoaXMuZGF0YSA9IG9wdGlvbnMuZGF0YTtcbiAgICAgIHRoaXMuYXV0aGVudGljYXRlID0gXy5pc05pbChvcHRpb25zLmF1dGhlbnRpY2F0ZSkgfHwgb3B0aW9ucy5hdXRoZW50aWNhdGU7XG4gICAgfVxuXG4gICAgaXNEZXNjcmlwdG9yRm9yVHlwZShjb25zdHJ1Y2FibGU6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KSB7XG4gICAgICByZXR1cm4gbGFuZy5jb25zdHJ1Y3RvckNoYWluKGNvbnN0cnVjYWJsZSkuaW5jbHVkZXMoUGxhY2VDb21wb25lbnQpO1xuICAgIH1cblxuICAgIGlzRGVzY3JpcHRvckZvcihwbGFjZUNvbXBvbmVudDogUGxhY2VDb21wb25lbnQpIHtcbiAgICAgIHJldHVybiBwbGFjZUNvbXBvbmVudC5jb25zdHJ1Y3RvciA9PT0gdGhpcy5jb21wb25lbnQ7XG4gICAgfVxuXG4gICAgZ2V0RGF0YTxUPihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YSA/XG4gICAgICAgIF8uaXNOaWwodGhpcy5kYXRhW2tleV0pID8gZGVmYXVsdFZhbHVlIDogdGhpcy5kYXRhW2tleV0gOlxuICAgICAgICBkZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgc2VhcmNoRGF0YTxUPihrZXlzOiBzdHJpbmdbXSwgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgICBjb25zdCBmb3VuZCA9IGtleXMuZmluZChrZXkgPT4gIV8uaXNOaWwodGhpcy5kYXRhW2tleV0pKTtcbiAgICAgICAgcmV0dXJuIGZvdW5kID8gdGhpcy5kYXRhW2ZvdW5kXSA6IGRlZmF1bHRWYWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICAgIHBhdGg6IHN0cmluZyxcbiAgICBvcmRlcjogbnVtYmVyO1xuICAgIGRhdGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCAvLyBkZWZhdWx0cyB0byB0cnVlXG4gICAgYXV0aGVudGljYXRlPzogYm9vbGVhbiAvLyBkZWZhdWx0cyB0byB0cnVlXG4gICAgLy8gY2hpbGRPZj86IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVmaW5pdGlvbihrbGFzczogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pOiBEZWZpbml0aW9uIHtcbiAgICBjb25zdCBwbGFjZU9wdGlvbnMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKERFRklOSVRJT05fTUVUQV9EQVRBX0tFWSwga2xhc3MpO1xuICAgIHJldHVybiBuZXcgRGVmaW5pdGlvbihrbGFzcywgcGxhY2VPcHRpb25zKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBpbmplY3REZWZpbml0aW9uKGtsYXNzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Piwgb3B0aW9uczogT3B0aW9ucykge1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoREVGSU5JVElPTl9NRVRBX0RBVEFfS0VZLCBvcHRpb25zLCBrbGFzcyk7XG4gIH1cblxuXG59XG4iXX0=
@@ -2,9 +2,8 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- import { assert } from '@coolon/pectin';
6
- import * as _ from 'lodash';
7
- import 'reflect-metadata';
5
+ import { lang } from '@coolon/pectin';
6
+ import { PlaceComponent } from './place-component';
8
7
  /**
9
8
  * @param {?} options
10
9
  * @return {?}
@@ -15,99 +14,10 @@ export function Place(options) {
15
14
  * @return {?}
16
15
  */
17
16
  function (target) {
18
- Reflect.defineMetadata('place.options', options, target);
17
+ if (!lang.constructorChain((/** @type {?} */ (target))).includes(PlaceComponent)) {
18
+ lang.illegalState(target + " must extend PlaceComponent to use the @Place decorator");
19
+ }
20
+ PlaceComponent.injectDefinition((/** @type {?} */ (target)), options);
19
21
  });
20
22
  }
21
- (function (Place) {
22
- /**
23
- * @record
24
- */
25
- function Options() { }
26
- Place.Options = Options;
27
- if (false) {
28
- /** @type {?} */
29
- Options.prototype.path;
30
- /** @type {?} */
31
- Options.prototype.order;
32
- /** @type {?|undefined} */
33
- Options.prototype.data;
34
- /** @type {?|undefined} */
35
- Options.prototype.authenticate;
36
- }
37
- var Descriptor = /** @class */ (function () {
38
- function Descriptor(placeClass, options) {
39
- assert.notNil(options);
40
- this.path = options.path;
41
- this.order = options.order;
42
- this.data = options.data;
43
- this.authenticate = _.isNil(options.authenticate) || options.authenticate;
44
- }
45
- /**
46
- * @template T
47
- * @param {?} key
48
- * @param {?=} defaultValue
49
- * @return {?}
50
- */
51
- Descriptor.prototype.getData = /**
52
- * @template T
53
- * @param {?} key
54
- * @param {?=} defaultValue
55
- * @return {?}
56
- */
57
- function (key, defaultValue) {
58
- return this.data ?
59
- _.isNil(this.data[key]) ? defaultValue : this.data[key] :
60
- defaultValue;
61
- };
62
- /**
63
- * @template T
64
- * @param {?} keys
65
- * @param {?=} defaultValue
66
- * @return {?}
67
- */
68
- Descriptor.prototype.searchData = /**
69
- * @template T
70
- * @param {?} keys
71
- * @param {?=} defaultValue
72
- * @return {?}
73
- */
74
- function (keys, defaultValue) {
75
- var _this = this;
76
- if (this.data) {
77
- /** @type {?} */
78
- var found = keys.find((/**
79
- * @param {?} key
80
- * @return {?}
81
- */
82
- function (key) { return !_.isNil(_this.data[key]); }));
83
- return found ? this.data[found] : defaultValue;
84
- }
85
- else {
86
- return defaultValue;
87
- }
88
- };
89
- return Descriptor;
90
- }());
91
- Place.Descriptor = Descriptor;
92
- if (false) {
93
- /** @type {?} */
94
- Descriptor.prototype.path;
95
- /** @type {?} */
96
- Descriptor.prototype.authenticate;
97
- /** @type {?} */
98
- Descriptor.prototype.order;
99
- /** @type {?} */
100
- Descriptor.prototype.data;
101
- }
102
- /**
103
- * @param {?} klass
104
- * @return {?}
105
- */
106
- function getDescriptor(klass) {
107
- /** @type {?} */
108
- var placeOptions = Reflect.getMetadata('place.options', klass);
109
- return new Descriptor(klass, placeOptions);
110
- }
111
- Place.getDescriptor = getDescriptor;
112
- })(Place || (Place = {}));
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLGtCQUFrQixDQUFDOzs7OztBQUcxQixNQUFNLFVBQVUsS0FBSyxDQUFDLE9BQXNCO0lBQzFDOzs7O0lBQU8sVUFBQyxNQUFnQjtRQUN0QixPQUFPLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQyxFQUFDO0FBQ0osQ0FBQztBQUVELFdBQWlCLEtBQUs7Ozs7SUFDcEIsc0JBTUM7Ozs7UUFMQyx1QkFBYTs7UUFDYix3QkFBYzs7UUFDZCx1QkFBMkI7O1FBQzNCLCtCQUFzQjs7SUFJeEI7UUFNRSxvQkFBWSxVQUF5QyxFQUFFLE9BQWdCO1lBQ3JFLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzVFLENBQUM7Ozs7Ozs7UUFFRCw0QkFBTzs7Ozs7O1FBQVAsVUFBVyxHQUFVLEVBQUUsWUFBZTtZQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxZQUFZLENBQUM7UUFDakIsQ0FBQzs7Ozs7OztRQUNELCtCQUFVOzs7Ozs7UUFBVixVQUFjLElBQWEsRUFBRSxZQUFlO1lBQTVDLGlCQU9DO1lBTkMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFOztvQkFDUCxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUk7Ozs7Z0JBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUF4QixDQUF3QixFQUFDO2dCQUN4RCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2FBQ2hEO2lCQUFNO2dCQUNMLE9BQU8sWUFBWSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQztRQUNILGlCQUFDO0lBQUQsQ0FBQyxBQTNCRCxJQTJCQztJQTNCWSxnQkFBVSxhQTJCdEIsQ0FBQTs7O1FBMUJDLDBCQUFzQjs7UUFDdEIsa0NBQStCOztRQUMvQiwyQkFBdUI7O1FBQ3ZCLDBCQUFtQzs7Ozs7O0lBeUJyQyxTQUFnQixhQUFhLENBQUMsS0FBb0M7O1lBQzFELFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUM7UUFDaEUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUhlLG1CQUFhLGdCQUc1QixDQUFBO0FBQ0gsQ0FBQyxFQTFDZ0IsS0FBSyxLQUFMLEtBQUssUUEwQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0LCBDb25zdHJ1Y3RhYmxlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gUGxhY2Uob3B0aW9uczogUGxhY2UuT3B0aW9ucykge1xuICByZXR1cm4gKHRhcmdldDogRnVuY3Rpb24pID0+IHtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKCdwbGFjZS5vcHRpb25zJywgb3B0aW9ucywgdGFyZ2V0KTtcbiAgfTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZSB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG9yZGVyOiBudW1iZXI7XG4gICAgZGF0YT86IHtba2V5OnN0cmluZ106IGFueX0sIC8vIGRlZmF1bHRzIHRvIHRydWVcbiAgICBhdXRoZW50aWNhdGU/OiBib29sZWFuIC8vIGRlZmF1bHRzIHRvIHRydWVcbiAgICAvLyBjaGlsZE9mPzogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD5cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBEZXNjcmlwdG9yIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXV0aGVudGljYXRlOiBib29sZWFuO1xuICAgIHJlYWRvbmx5IG9yZGVyOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgZGF0YToge1trZXk6c3RyaW5nXTogYW55fTtcblxuICAgIGNvbnN0cnVjdG9yKHBsYWNlQ2xhc3M6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICBhc3NlcnQubm90TmlsKG9wdGlvbnMpO1xuICAgICAgdGhpcy5wYXRoID0gb3B0aW9ucy5wYXRoO1xuICAgICAgdGhpcy5vcmRlciA9IG9wdGlvbnMub3JkZXI7XG4gICAgICB0aGlzLmRhdGEgPSBvcHRpb25zLmRhdGE7XG4gICAgICB0aGlzLmF1dGhlbnRpY2F0ZSA9IF8uaXNOaWwob3B0aW9ucy5hdXRoZW50aWNhdGUpIHx8IG9wdGlvbnMuYXV0aGVudGljYXRlO1xuICAgIH1cblxuICAgIGdldERhdGE8VD4oa2V5OnN0cmluZywgZGVmYXVsdFZhbHVlPzpUKTpUIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEgP1xuICAgICAgICBfLmlzTmlsKHRoaXMuZGF0YVtrZXldKSA/IGRlZmF1bHRWYWx1ZSA6IHRoaXMuZGF0YVtrZXldIDpcbiAgICAgICAgZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBzZWFyY2hEYXRhPFQ+KGtleXM6c3RyaW5nW10sIGRlZmF1bHRWYWx1ZT86VCk6VCB7XG4gICAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kID0ga2V5cy5maW5kKGtleSA9PiAhXy5pc05pbCh0aGlzLmRhdGFba2V5XSkpO1xuICAgICAgICByZXR1cm4gZm91bmQgPyB0aGlzLmRhdGFbZm91bmRdIDogZGVmYXVsdFZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvcihrbGFzczogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pOiBEZXNjcmlwdG9yIHtcbiAgICBjb25zdCBwbGFjZU9wdGlvbnMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKCdwbGFjZS5vcHRpb25zJywga2xhc3MpO1xuICAgIHJldHVybiBuZXcgRGVzY3JpcHRvcihrbGFzcywgcGxhY2VPcHRpb25zKTtcbiAgfVxufVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3BsYWNlLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFpQixJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBRW5ELE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBK0I7SUFDbkQ7Ozs7SUFBTyxVQUFDLE1BQWdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsbUJBQUEsTUFBTSxFQUFzQixDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQy9FLElBQUksQ0FBQyxZQUFZLENBQUksTUFBTSw0REFBeUQsQ0FBQyxDQUFBO1NBQ3hGO1FBQ0QsY0FBYyxDQUFDLGdCQUFnQixDQUFDLG1CQUFBLE1BQU0sRUFBc0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgbGFuZyB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gUGxhY2Uob3B0aW9uczogUGxhY2VDb21wb25lbnQuT3B0aW9ucykge1xuICByZXR1cm4gKHRhcmdldDogRnVuY3Rpb24pID0+IHtcbiAgICBpZiAoIWxhbmcuY29uc3RydWN0b3JDaGFpbih0YXJnZXQgYXMgQ29uc3RydWN0YWJsZTxhbnk+KS5pbmNsdWRlcyhQbGFjZUNvbXBvbmVudCkpIHtcbiAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYCR7dGFyZ2V0fSBtdXN0IGV4dGVuZCBQbGFjZUNvbXBvbmVudCB0byB1c2UgdGhlIEBQbGFjZSBkZWNvcmF0b3JgKVxuICAgIH1cbiAgICBQbGFjZUNvbXBvbmVudC5pbmplY3REZWZpbml0aW9uKHRhcmdldCBhcyBDb25zdHJ1Y3RhYmxlPGFueT4sIG9wdGlvbnMpO1xuICB9O1xufVxuXG4iXX0=
@@ -4,11 +4,18 @@
4
4
  */
5
5
  import * as tslib_1 from "tslib";
6
6
  import { Injectable } from '@angular/core';
7
- import { MutableListModel, Trace } from '@coolon/pectin';
7
+ import { Router } from '@angular/router';
8
+ import { GarbageCollector, MutableListModel, Trace } from '@coolon/pectin';
9
+ import { PlaceComponent } from './place-component';
8
10
  import * as i0 from "@angular/core";
9
- var PlaceService = /** @class */ (function () {
10
- function PlaceService() {
11
- this._activePlaces = new MutableListModel();
11
+ import * as i1 from "@angular/router";
12
+ var PlaceService = /** @class */ (function (_super) {
13
+ tslib_1.__extends(PlaceService, _super);
14
+ function PlaceService(router) {
15
+ var _this = _super.call(this) || this;
16
+ _this.router = router;
17
+ _this._activePlaces = new MutableListModel();
18
+ return _this;
12
19
  }
13
20
  Object.defineProperty(PlaceService.prototype, "activePlaces", {
14
21
  get: /**
@@ -42,28 +49,58 @@ var PlaceService = /** @class */ (function () {
42
49
  function (place) {
43
50
  this._activePlaces.remove(place);
44
51
  };
52
+ /**
53
+ * @param {?} params
54
+ * @return {?}
55
+ */
56
+ PlaceService.prototype.notifyRouteParametersChanged = /**
57
+ * @param {?} params
58
+ * @return {?}
59
+ */
60
+ function (params) {
61
+ // We update the router state...
62
+ if (params.updateRoute) {
63
+ /** @type {?} */
64
+ var routeId = params.next.getFormattedRouteId();
65
+ /** @type {?} */
66
+ var relativePath = !!params.previous.hasRouteId() ? '..' : '.';
67
+ /** @type {?} */
68
+ var path = routeId ? [relativePath, routeId, params.next.getFormattedParameters()] : [relativePath, params.next.getFormattedParameters()];
69
+ this.router.navigate(path, {
70
+ relativeTo: params.placeComponent.activatedRoute
71
+ });
72
+ }
73
+ };
45
74
  PlaceService.decorators = [
46
75
  { type: Injectable, args: [{
47
76
  providedIn: 'root'
48
77
  },] }
49
78
  ];
50
79
  /** @nocollapse */
51
- PlaceService.ctorParameters = function () { return []; };
52
- /** @nocollapse */ PlaceService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PlaceService_Factory() { return new PlaceService(); }, token: PlaceService, providedIn: "root" });
80
+ PlaceService.ctorParameters = function () { return [
81
+ { type: Router }
82
+ ]; };
83
+ /** @nocollapse */ PlaceService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PlaceService_Factory() { return new PlaceService(i0.ɵɵinject(i1.Router)); }, token: PlaceService, providedIn: "root" });
53
84
  tslib_1.__decorate([
54
85
  Trace(),
55
86
  tslib_1.__metadata("design:type", Function),
56
- tslib_1.__metadata("design:paramtypes", [Object]),
87
+ tslib_1.__metadata("design:paramtypes", [PlaceComponent]),
57
88
  tslib_1.__metadata("design:returntype", void 0)
58
89
  ], PlaceService.prototype, "onActivate", null);
59
90
  tslib_1.__decorate([
60
91
  Trace(),
61
92
  tslib_1.__metadata("design:type", Function),
62
- tslib_1.__metadata("design:paramtypes", [Object]),
93
+ tslib_1.__metadata("design:paramtypes", [PlaceComponent]),
63
94
  tslib_1.__metadata("design:returntype", void 0)
64
95
  ], PlaceService.prototype, "onDeactivate", null);
96
+ tslib_1.__decorate([
97
+ Trace(),
98
+ tslib_1.__metadata("design:type", Function),
99
+ tslib_1.__metadata("design:paramtypes", [Object]),
100
+ tslib_1.__metadata("design:returntype", void 0)
101
+ ], PlaceService.prototype, "notifyRouteParametersChanged", null);
65
102
  return PlaceService;
66
- }());
103
+ }(GarbageCollector));
67
104
  export { PlaceService };
68
105
  if (false) {
69
106
  /**
@@ -71,5 +108,10 @@ if (false) {
71
108
  * @private
72
109
  */
73
110
  PlaceService.prototype._activePlaces;
111
+ /**
112
+ * @type {?}
113
+ * @protected
114
+ */
115
+ PlaceService.prototype.router;
74
116
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9wbGFjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3pEO0lBT0U7UUFGUSxrQkFBYSxHQUFHLElBQUksZ0JBQWdCLEVBQWtCLENBQUM7SUFHL0QsQ0FBQztJQUVELHNCQUFJLHNDQUFZOzs7O1FBQWhCO1lBQ0UsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUNyQyxDQUFDOzs7T0FBQTs7Ozs7SUFHRCxpQ0FBVTs7OztJQUFWLFVBQVcsS0FBcUI7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzs7Ozs7SUFHRCxtQ0FBWTs7OztJQUFaLFVBQWEsS0FBcUI7UUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7Z0JBdEJGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7O0lBYUM7UUFEQyxLQUFLLEVBQUU7Ozs7a0RBR1A7SUFHRDtRQURDLEtBQUssRUFBRTs7OztvREFHUDt1QkExQkg7Q0E0QkMsQUF4QkQsSUF3QkM7U0FyQlksWUFBWTs7Ozs7O0lBRXZCLHFDQUErRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE11dGFibGVMaXN0TW9kZWwsIFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuL3BsYWNlLWNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBsYWNlU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlUGxhY2VzID0gbmV3IE11dGFibGVMaXN0TW9kZWw8UGxhY2VDb21wb25lbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBnZXQgYWN0aXZlUGxhY2VzKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQbGFjZXMucmVhZG9ubHk7XG4gIH1cblxuICBAVHJhY2UoKVxuICBvbkFjdGl2YXRlKHBsYWNlOiBQbGFjZUNvbXBvbmVudCkge1xuICAgIHRoaXMuX2FjdGl2ZVBsYWNlcy5wdXNoKHBsYWNlKTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIG9uRGVhY3RpdmF0ZShwbGFjZTogUGxhY2VDb21wb25lbnQpIHtcbiAgICB0aGlzLl9hY3RpdmVQbGFjZXMucmVtb3ZlKHBsYWNlKTtcbiAgfVxuXG59XG4iXX0=
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9wbGFjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUduRDtJQUdrQyx3Q0FBZ0I7SUFJaEQsc0JBQXNCLE1BQWM7UUFBcEMsWUFDRSxpQkFBTyxTQUNSO1FBRnFCLFlBQU0sR0FBTixNQUFNLENBQVE7UUFGNUIsbUJBQWEsR0FBRyxJQUFJLGdCQUFnQixFQUFrQixDQUFDOztJQUkvRCxDQUFDO0lBRUQsc0JBQUksc0NBQVk7Ozs7UUFBaEI7WUFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ3JDLENBQUM7OztPQUFBOzs7OztJQUdELGlDQUFVOzs7O0lBQVYsVUFBVyxLQUFxQjtRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOzs7OztJQUdELG1DQUFZOzs7O0lBQVosVUFBYSxLQUFxQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs7OztJQUdELG1EQUE0Qjs7OztJQUE1QixVQUE2QixNQUs1QjtRQUNDLGdDQUFnQztRQUNoQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7O2dCQUNoQixPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTs7Z0JBQzNDLFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHOztnQkFDMUQsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDM0ksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUN6QixVQUFVLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxjQUFjO2FBQ2pELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7Z0JBekNGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBUndCLE1BQU07OztJQXNCN0I7UUFEQyxLQUFLLEVBQUU7O2lEQUNVLGNBQWM7O2tEQUUvQjtJQUdEO1FBREMsS0FBSyxFQUFFOztpREFDWSxjQUFjOztvREFFakM7SUFHRDtRQURDLEtBQUssRUFBRTs7OztvRUFnQlA7dUJBaERIO0NBaURDLEFBMUNELENBR2tDLGdCQUFnQixHQXVDakQ7U0F2Q1ksWUFBWTs7Ozs7O0lBRXZCLHFDQUErRDs7Ozs7SUFFbkQsOEJBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBHYXJiYWdlQ29sbGVjdG9yLCBNdXRhYmxlTGlzdE1vZGVsLCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IElQbGFjZVNlcnZpY2UgfSBmcm9tICcuL2ktcGxhY2Utc2VydmljZSc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFJlc29sdmVkUm91dGVQYXJhbWV0ZXJTbmFwc2hvdCB9IGZyb20gJy4vcm91dGUvcmVzb2x2ZWQtcm91dGUtcGFyYW1ldGVyLXNuYXBzaG90JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VTZXJ2aWNlIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciBpbXBsZW1lbnRzIElQbGFjZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgX2FjdGl2ZVBsYWNlcyA9IG5ldyBNdXRhYmxlTGlzdE1vZGVsPFBsYWNlQ29tcG9uZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgYWN0aXZlUGxhY2VzKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQbGFjZXMucmVhZG9ubHk7XG4gIH1cblxuICBAVHJhY2UoKVxuICBvbkFjdGl2YXRlKHBsYWNlOiBQbGFjZUNvbXBvbmVudCkge1xuICAgIHRoaXMuX2FjdGl2ZVBsYWNlcy5wdXNoKHBsYWNlKTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIG9uRGVhY3RpdmF0ZShwbGFjZTogUGxhY2VDb21wb25lbnQpIHtcbiAgICB0aGlzLl9hY3RpdmVQbGFjZXMucmVtb3ZlKHBsYWNlKTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIG5vdGlmeVJvdXRlUGFyYW1ldGVyc0NoYW5nZWQocGFyYW1zOiB7XG4gICAgcGxhY2VDb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LFxuICAgIG5leHQ6IFJlc29sdmVkUm91dGVQYXJhbWV0ZXJTbmFwc2hvdCxcbiAgICBwcmV2aW91czogUmVzb2x2ZWRSb3V0ZVBhcmFtZXRlclNuYXBzaG90LFxuICAgIHVwZGF0ZVJvdXRlOiBib29sZWFuXG4gIH0pIHtcbiAgICAvLyBXZSB1cGRhdGUgdGhlIHJvdXRlciBzdGF0ZS4uLlxuICAgIGlmIChwYXJhbXMudXBkYXRlUm91dGUpIHtcbiAgICAgIGNvbnN0IHJvdXRlSWQgPSBwYXJhbXMubmV4dC5nZXRGb3JtYXR0ZWRSb3V0ZUlkKCk7XG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSAhIXBhcmFtcy5wcmV2aW91cy5oYXNSb3V0ZUlkKCkgPyAnLi4nIDogJy4nO1xuICAgICAgY29uc3QgcGF0aCA9IHJvdXRlSWQgPyBbcmVsYXRpdmVQYXRoLCByb3V0ZUlkLCBwYXJhbXMubmV4dC5nZXRGb3JtYXR0ZWRQYXJhbWV0ZXJzKCldIDogW3JlbGF0aXZlUGF0aCwgcGFyYW1zLm5leHQuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHBhdGgsIHtcbiAgICAgICAgcmVsYXRpdmVUbzogcGFyYW1zLnBsYWNlQ29tcG9uZW50LmFjdGl2YXRlZFJvdXRlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @record
7
+ * @template T
8
+ */
9
+ export function ResolvedParameter() { }
10
+ if (false) {
11
+ /** @type {?} */
12
+ ResolvedParameter.prototype.parameterDef;
13
+ /** @type {?} */
14
+ ResolvedParameter.prototype.resolvedValue;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZWQtcGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3Jlc29sdmVkLXBhcmFtZXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUVBLHVDQUdDOzs7SUFGQyx5Q0FBcUM7O0lBQ3JDLDBDQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZFBhcmFtZXRlcjxUPiB7XG4gIHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPjtcbiAgcmVzb2x2ZWRWYWx1ZTogVDtcbn1cbiJdfQ==
@@ -0,0 +1,129 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ import { Trace } from '@coolon/pectin';
7
+ var ResolvedRouteParameterSnapshot = /** @class */ (function () {
8
+ function ResolvedRouteParameterSnapshot(parameters) {
9
+ this.parameters = parameters;
10
+ }
11
+ /**
12
+ * @template T
13
+ * @param {?} parameter
14
+ * @return {?}
15
+ */
16
+ ResolvedRouteParameterSnapshot.prototype.get = /**
17
+ * @template T
18
+ * @param {?} parameter
19
+ * @return {?}
20
+ */
21
+ function (parameter) {
22
+ /** @type {?} */
23
+ var resolved = this.parameters.find((/**
24
+ * @param {?} p
25
+ * @return {?}
26
+ */
27
+ function (p) { return p.parameterDef === parameter; }));
28
+ return resolved ? resolved.resolvedValue : null;
29
+ };
30
+ /**
31
+ * @template T
32
+ * @param {?} parameter
33
+ * @param {?} value
34
+ * @return {?}
35
+ */
36
+ ResolvedRouteParameterSnapshot.prototype.replace = /**
37
+ * @template T
38
+ * @param {?} parameter
39
+ * @param {?} value
40
+ * @return {?}
41
+ */
42
+ function (parameter, value) {
43
+ return new ResolvedRouteParameterSnapshot(this.parameters.filter((/**
44
+ * @param {?} p
45
+ * @return {?}
46
+ */
47
+ function (p) { return p.parameterDef !== parameter; })).concat({
48
+ parameterDef: parameter,
49
+ resolvedValue: value
50
+ }));
51
+ };
52
+ /**
53
+ * @return {?}
54
+ */
55
+ ResolvedRouteParameterSnapshot.prototype.getFormattedRouteId = /**
56
+ * @return {?}
57
+ */
58
+ function () {
59
+ /** @type {?} */
60
+ var routeIdParam = this.getRouteIdParam();
61
+ return routeIdParam ? routeIdParam.parameterDef.type.format(routeIdParam.resolvedValue) : null;
62
+ };
63
+ /**
64
+ * @private
65
+ * @return {?}
66
+ */
67
+ ResolvedRouteParameterSnapshot.prototype.getRouteIdParam = /**
68
+ * @private
69
+ * @return {?}
70
+ */
71
+ function () {
72
+ return this.parameters.find((/**
73
+ * @param {?} p
74
+ * @return {?}
75
+ */
76
+ function (p) { return p.parameterDef.isRouteId; }));
77
+ };
78
+ /**
79
+ * @return {?}
80
+ */
81
+ ResolvedRouteParameterSnapshot.prototype.getFormattedParameters = /**
82
+ * @return {?}
83
+ */
84
+ function () {
85
+ /** @type {?} */
86
+ var params = {};
87
+ /** @type {?} */
88
+ var routeIdParam = this.parameters.filter((/**
89
+ * @param {?} p
90
+ * @return {?}
91
+ */
92
+ function (p) { return !p.parameterDef.isRouteId; })).forEach((/**
93
+ * @param {?} p
94
+ * @return {?}
95
+ */
96
+ function (p) {
97
+ params[p.parameterDef.name] = p.parameterDef.type.format(p.resolvedValue);
98
+ }));
99
+ return params;
100
+ };
101
+ /**
102
+ * @return {?}
103
+ */
104
+ ResolvedRouteParameterSnapshot.prototype.hasRouteId = /**
105
+ * @return {?}
106
+ */
107
+ function () {
108
+ return !!this.getRouteIdParam();
109
+ };
110
+ tslib_1.__decorate([
111
+ Trace(),
112
+ tslib_1.__metadata("design:type", Function),
113
+ tslib_1.__metadata("design:paramtypes", []),
114
+ tslib_1.__metadata("design:returntype", void 0)
115
+ ], ResolvedRouteParameterSnapshot.prototype, "getFormattedRouteId", null);
116
+ tslib_1.__decorate([
117
+ Trace(),
118
+ tslib_1.__metadata("design:type", Function),
119
+ tslib_1.__metadata("design:paramtypes", []),
120
+ tslib_1.__metadata("design:returntype", void 0)
121
+ ], ResolvedRouteParameterSnapshot.prototype, "getFormattedParameters", null);
122
+ return ResolvedRouteParameterSnapshot;
123
+ }());
124
+ export { ResolvedRouteParameterSnapshot };
125
+ if (false) {
126
+ /** @type {?} */
127
+ ResolvedRouteParameterSnapshot.prototype.parameters;
128
+ }
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZWQtcm91dGUtcGFyYW1ldGVyLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3Jlc29sdmVkLXJvdXRlLXBhcmFtZXRlci1zbmFwc2hvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl2QztJQUNFLHdDQUFxQixVQUFvQztRQUFwQyxlQUFVLEdBQVYsVUFBVSxDQUEwQjtJQUN6RCxDQUFDOzs7Ozs7SUFFRCw0Q0FBRzs7Ozs7SUFBSCxVQUFPLFNBQWlDOztZQUNoQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBNUIsQ0FBNEIsRUFBQztRQUN4RSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2xELENBQUM7Ozs7Ozs7SUFFRCxnREFBTzs7Ozs7O0lBQVAsVUFBVyxTQUFpQyxFQUFFLEtBQVE7UUFDcEQsT0FBTyxJQUFJLDhCQUE4QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTs7OztRQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQTVCLENBQTRCLEVBQUMsQ0FBQyxNQUFNLENBQUM7WUFDekcsWUFBWSxFQUFFLFNBQVM7WUFDdkIsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOzs7O0lBR0EsNERBQW1COzs7SUFBbkI7O1lBQ08sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUU7UUFDM0MsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRyxDQUFDOzs7OztJQUVPLHdEQUFlOzs7O0lBQXZCO1FBQ0UsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUF4QixDQUF3QixFQUFDLENBQUM7SUFDN0QsQ0FBQzs7OztJQUdELCtEQUFzQjs7O0lBQXRCOztZQUNRLE1BQU0sR0FBRyxFQUFFOztZQUNYLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQXpCLENBQXlCLEVBQUMsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxDQUFDO1lBQ25GLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUUsQ0FBQyxFQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7OztJQUVELG1EQUFVOzs7SUFBVjtRQUNFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBcEJBO1FBREEsS0FBSyxFQUFFOzs7OzZFQUlQO0lBT0Q7UUFEQyxLQUFLLEVBQUU7Ozs7Z0ZBT1A7SUFLSCxxQ0FBQztDQUFBLEFBdENELElBc0NDO1NBdENZLDhCQUE4Qjs7O0lBQzdCLG9EQUE2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBSZXNvbHZlZFBhcmFtZXRlciB9IGZyb20gJy4vcmVzb2x2ZWQtcGFyYW1ldGVyJztcblxuZXhwb3J0IGNsYXNzIFJlc29sdmVkUm91dGVQYXJhbWV0ZXJTbmFwc2hvdCB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmFtZXRlcnM6IFJlc29sdmVkUGFyYW1ldGVyPGFueT5bXSkge1xuICB9XG5cbiAgZ2V0PFQ+KHBhcmFtZXRlcjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPik6IFQge1xuICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5wYXJhbWV0ZXJzLmZpbmQocCA9PiBwLnBhcmFtZXRlckRlZiA9PT0gcGFyYW1ldGVyKTtcbiAgICByZXR1cm4gcmVzb2x2ZWQgPyByZXNvbHZlZC5yZXNvbHZlZFZhbHVlIDogbnVsbDtcbiAgfVxuXG4gIHJlcGxhY2U8VD4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+LCB2YWx1ZTogVCk6IFJlc29sdmVkUm91dGVQYXJhbWV0ZXJTbmFwc2hvdCB7XG4gICAgcmV0dXJuIG5ldyBSZXNvbHZlZFJvdXRlUGFyYW1ldGVyU25hcHNob3QodGhpcy5wYXJhbWV0ZXJzLmZpbHRlcihwID0+IHAucGFyYW1ldGVyRGVmICE9PSBwYXJhbWV0ZXIpLmNvbmNhdCh7XG4gICAgICBwYXJhbWV0ZXJEZWY6IHBhcmFtZXRlcixcbiAgICAgIHJlc29sdmVkVmFsdWU6IHZhbHVlXG4gICAgfSkpO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgIGdldEZvcm1hdHRlZFJvdXRlSWQoKSB7XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtID0gdGhpcy5nZXRSb3V0ZUlkUGFyYW0oKTtcbiAgICByZXR1cm4gcm91dGVJZFBhcmFtID8gcm91dGVJZFBhcmFtLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdChyb3V0ZUlkUGFyYW0ucmVzb2x2ZWRWYWx1ZSkgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3V0ZUlkUGFyYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycy5maW5kKHAgPT4gcC5wYXJhbWV0ZXJEZWYuaXNSb3V0ZUlkKTtcbiAgfVxuXG4gIEBUcmFjZSgpXG4gIGdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKSB7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtID0gdGhpcy5wYXJhbWV0ZXJzLmZpbHRlcihwID0+ICFwLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpLmZvckVhY2gocCA9PiB7XG4gICAgICBwYXJhbXNbcC5wYXJhbWV0ZXJEZWYubmFtZV0gPSBwLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdChwLnJlc29sdmVkVmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBoYXNSb3V0ZUlkKCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Um91dGVJZFBhcmFtKCk7XG4gIH1cbn1cbiJdfQ==