@coolon/angular-ui-powerups 0.0.37 → 0.0.41

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 (119) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +1787 -1051
  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.d.ts +16 -14
  6. package/coolon-angular-ui-powerups.metadata.json +1 -1
  7. package/esm2015/coolon-angular-ui-powerups.js +16 -14
  8. package/esm2015/index.js +2 -2
  9. package/esm2015/lib/angular-ui-powerups.module.js +8 -8
  10. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +1 -2
  11. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -2
  12. package/esm2015/lib/place/components/abstract-place-navigation.component.js +75 -0
  13. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +47 -0
  14. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +110 -16
  15. package/esm2015/lib/place/components/place-outlet/route-animations.js +12 -5
  16. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +5 -39
  17. package/esm2015/lib/place/guards/leave-place.guard.js +20 -3
  18. package/esm2015/lib/place/guards/place-route.guard.js +29 -37
  19. package/esm2015/lib/place/index.js +11 -9
  20. package/esm2015/lib/place/nav-item.js +23 -0
  21. package/esm2015/lib/place/place-component-like.js +17 -0
  22. package/esm2015/lib/place/place-component.js +119 -20
  23. package/esm2015/lib/place/place-updates-service.js +16 -0
  24. package/esm2015/lib/place/place.decorator.js +1 -1
  25. package/esm2015/lib/place/place.module.js +6 -3
  26. package/esm2015/lib/place/place.service.js +28 -26
  27. package/esm2015/lib/place/route/default-parameter-sanitiser.js +78 -0
  28. package/esm2015/lib/place/route/parameter-decorators.js +15 -7
  29. package/esm2015/lib/place/route/parameter-definition.class.js +2 -2
  30. package/esm2015/lib/place/route/parameter-sanitiser.js +17 -2
  31. package/esm2015/lib/place/route/parameter-snapshot.js +382 -0
  32. package/esm2015/lib/place/route/parameter-type.js +3 -2
  33. package/esm2015/lib/place/route/route-parameter-sanitiser.js +73 -38
  34. package/esm2015/lib/place/visit.js +22 -0
  35. package/esm2015/public_api.js +2 -2
  36. package/esm5/coolon-angular-ui-powerups.js +16 -14
  37. package/esm5/index.js +2 -2
  38. package/esm5/lib/angular-ui-powerups.module.js +8 -8
  39. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +1 -2
  40. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -2
  41. package/esm5/lib/place/components/abstract-place-navigation.component.js +86 -0
  42. package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js +61 -0
  43. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +141 -20
  44. package/esm5/lib/place/components/place-outlet/route-animations.js +12 -5
  45. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +6 -43
  46. package/esm5/lib/place/guards/leave-place.guard.js +20 -3
  47. package/esm5/lib/place/guards/place-route.guard.js +28 -37
  48. package/esm5/lib/place/index.js +11 -9
  49. package/esm5/lib/place/nav-item.js +23 -0
  50. package/esm5/lib/place/place-component-like.js +17 -0
  51. package/esm5/lib/place/place-component.js +137 -22
  52. package/esm5/lib/place/place-updates-service.js +16 -0
  53. package/esm5/lib/place/place.decorator.js +1 -1
  54. package/esm5/lib/place/place.module.js +6 -3
  55. package/esm5/lib/place/place.service.js +48 -29
  56. package/esm5/lib/place/route/default-parameter-sanitiser.js +85 -0
  57. package/esm5/lib/place/route/parameter-decorators.js +15 -7
  58. package/esm5/lib/place/route/parameter-definition.class.js +2 -2
  59. package/esm5/lib/place/route/parameter-sanitiser.js +17 -2
  60. package/esm5/lib/place/route/parameter-snapshot.js +474 -0
  61. package/esm5/lib/place/route/parameter-type.js +3 -2
  62. package/esm5/lib/place/route/route-parameter-sanitiser.js +100 -45
  63. package/esm5/lib/place/visit.js +22 -0
  64. package/esm5/public_api.js +2 -2
  65. package/fesm2015/coolon-angular-ui-powerups.js +1244 -673
  66. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  67. package/fesm5/coolon-angular-ui-powerups.js +1750 -1021
  68. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  69. package/lib/place/components/abstract-place-navigation.component.d.ts +13 -0
  70. package/lib/place/components/list-place-nav/list-place-nav.component.d.ts +8 -0
  71. package/lib/place/components/place-outlet/place-outlet.component.d.ts +16 -8
  72. package/lib/place/components/place-outlet/route-animations.d.ts +1 -0
  73. package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +2 -9
  74. package/lib/place/guards/place-route.guard.d.ts +4 -4
  75. package/lib/place/index.d.ts +8 -6
  76. package/lib/place/nav-item.d.ts +5 -0
  77. package/lib/place/{i-place-component.d.ts → place-component-like.d.ts} +1 -1
  78. package/lib/place/place-component.d.ts +19 -8
  79. package/lib/place/place-updates-service.d.ts +10 -0
  80. package/lib/place/place.service.d.ts +11 -8
  81. package/lib/place/route/default-parameter-sanitiser.d.ts +13 -0
  82. package/lib/place/route/parameter-decorators.d.ts +6 -2
  83. package/lib/place/route/parameter-definition.class.d.ts +3 -3
  84. package/lib/place/route/parameter-sanitiser.d.ts +8 -1
  85. package/lib/place/route/parameter-snapshot.d.ts +46 -0
  86. package/lib/place/route/route-parameter-sanitiser.d.ts +13 -9
  87. package/lib/place/visit.d.ts +6 -0
  88. package/package.json +1 -1
  89. package/schematics/place-routes/index.js +8 -95
  90. package/schematics/place-routes/index.js.map +1 -1
  91. package/schematics/place-routes/place-builder.d.ts +19 -0
  92. package/schematics/place-routes/place-builder.js +109 -0
  93. package/schematics/place-routes/place-builder.js.map +1 -0
  94. package/schematics/place-routes/{scanner.d.ts → place-class-scanner.d.ts} +10 -6
  95. package/schematics/place-routes/{scanner.js → place-class-scanner.js} +43 -18
  96. package/schematics/place-routes/place-class-scanner.js.map +1 -0
  97. package/schematics/place-routes/place-def.d.ts +19 -4
  98. package/schematics/place-routes/place-def.js +54 -4
  99. package/schematics/place-routes/place-def.js.map +1 -1
  100. package/schematics/place-routes/templates/{place-routes.ts.template → places.ts.template} +14 -11
  101. package/esm2015/lib/place/i-place-component.js +0 -17
  102. package/esm2015/lib/place/i-place-service.js +0 -16
  103. package/esm2015/lib/place/route/resolved-parameter.js +0 -16
  104. package/esm2015/lib/place/route/resolved-route-parameter-snapshot.js +0 -106
  105. package/esm2015/lib/place/route/route-parameter-bindings.js +0 -150
  106. package/esm2015/lib/place/route/visit-snapshot.js +0 -7
  107. package/esm5/lib/place/i-place-component.js +0 -17
  108. package/esm5/lib/place/i-place-service.js +0 -16
  109. package/esm5/lib/place/route/resolved-parameter.js +0 -16
  110. package/esm5/lib/place/route/resolved-route-parameter-snapshot.js +0 -129
  111. package/esm5/lib/place/route/route-parameter-bindings.js +0 -167
  112. package/esm5/lib/place/route/visit-snapshot.js +0 -11
  113. package/lib/place/i-place-service.d.ts +0 -10
  114. package/lib/place/route/resolved-parameter.d.ts +0 -5
  115. package/lib/place/route/resolved-route-parameter-snapshot.d.ts +0 -12
  116. package/lib/place/route/route-parameter-bindings.d.ts +0 -17
  117. package/lib/place/route/visit-snapshot.d.ts +0 -2
  118. package/schematics/place-routes/scanner.js.map +0 -1
  119. package/schematics/place-routes/templates/place-router.ts.template +0 -33
@@ -14,7 +14,6 @@ export class ConfirmationDialogComponent extends AbstractActivity {
14
14
  super();
15
15
  this.confirm = confirm;
16
16
  assert.notNil(confirm);
17
- console.log(confirm);
18
17
  }
19
18
  /**
20
19
  * @return {?}
@@ -43,4 +42,4 @@ if (false) {
43
42
  /** @type {?} */
44
43
  ConfirmationDialogComponent.prototype.confirm;
45
44
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUS9DLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxnQkFBa0M7Ozs7SUFFakYsWUFBNEMsT0FBZ0I7UUFDMUQsS0FBSyxFQUFFLENBQUM7UUFEa0MsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUUxRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQzs7OztJQUVELFFBQVE7SUFDUixDQUFDOzs7O0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoRSxDQUFDOzs7WUFsQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5Q0FBeUM7Z0JBQ25ELG1aQUFtRDs7YUFFcEQ7Ozs7NENBR2MsTUFBTSxTQUFDLGFBQWE7Ozs7SUFBckIsOENBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgQWJzdHJhY3RBY3Rpdml0eSB9IGZyb20gJy4uLy4uL2Fic3RyYWN0LWFjdGl2aXR5JztcbmltcG9ydCB7IEFDVElWSVRZX0RBVEEgfSBmcm9tICcuLi8uLi9hY3Rpdml0eSc7XG5pbXBvcnQgeyBDb25maXJtIH0gZnJvbSAnLi4vLi4vY29uZmlybSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FuZ3VsYXItdWktcG93ZXJ1cHMtY29uZmlybWF0aW9uLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0QWN0aXZpdHk8Q29uZmlybSwgYm9vbGVhbj4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQUNUSVZJVFlfREFUQSkgcmVhZG9ubHkgY29uZmlybTogQ29uZmlybSkge1xuICAgIHN1cGVyKCk7XG4gICAgYXNzZXJ0Lm5vdE5pbChjb25maXJtKTtcbiAgICBjb25zb2xlLmxvZyhjb25maXJtKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgaXNEZXN0cnVjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb25maXJtLmRlc3RydWN0aXZlICYmIHRoaXMuY29uZmlybS5kZXN0cnVjdGl2ZSgpO1xuICB9XG59XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUS9DLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxnQkFBa0M7Ozs7SUFFakYsWUFBNEMsT0FBZ0I7UUFDMUQsS0FBSyxFQUFFLENBQUM7UUFEa0MsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUUxRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7Ozs7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs7OztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEUsQ0FBQzs7O1lBakJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUNBQXlDO2dCQUNuRCxtWkFBbUQ7O2FBRXBEOzs7OzRDQUdjLE1BQU0sU0FBQyxhQUFhOzs7O0lBQXJCLDhDQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEFic3RyYWN0QWN0aXZpdHkgfSBmcm9tICcuLi8uLi9hYnN0cmFjdC1hY3Rpdml0eSc7XG5pbXBvcnQgeyBBQ1RJVklUWV9EQVRBIH0gZnJvbSAnLi4vLi4vYWN0aXZpdHknO1xuaW1wb3J0IHsgQ29uZmlybSB9IGZyb20gJy4uLy4uL2NvbmZpcm0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbmd1bGFyLXVpLXBvd2VydXBzLWNvbmZpcm1hdGlvbi1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEFjdGl2aXR5PENvbmZpcm0sIGJvb2xlYW4+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFDVElWSVRZX0RBVEEpIHJlYWRvbmx5IGNvbmZpcm06IENvbmZpcm0pIHtcbiAgICBzdXBlcigpO1xuICAgIGFzc2VydC5ub3ROaWwoY29uZmlybSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIGlzRGVzdHJ1Y3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlybS5kZXN0cnVjdGl2ZSAmJiB0aGlzLmNvbmZpcm0uZGVzdHJ1Y3RpdmUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,75 @@
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 { Input } from '@angular/core';
7
+ import { Dsl, ListModel, StoreInListModel, UseDelegate } from '@coolon/pectin';
8
+ import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
9
+ import { DisposableComponent } from '../../components/disposable-component';
10
+ import { PlaceComponent } from '../place-component';
11
+ export class AbstractPlaceNavigationComponent extends DisposableComponent {
12
+ constructor() {
13
+ super();
14
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
15
+ this.placeDefinitions = chain(this.placesModel).map((/**
16
+ * @param {?} c
17
+ * @return {?}
18
+ */
19
+ c => PlaceComponent.getDefinition(c)));
20
+ }
21
+ /**
22
+ * @param {?} placeDef
23
+ * @return {?}
24
+ */
25
+ getNav(placeDef) {
26
+ /** @type {?} */
27
+ const navItem = (/** @type {?} */ (placeDef.getData('nav')));
28
+ return {
29
+ title: (/**
30
+ * @return {?}
31
+ */
32
+ () => navItem ? navItem.title() : placeDef.searchData(['navTitle', 'title'])),
33
+ tooltip: (/**
34
+ * @return {?}
35
+ */
36
+ () => navItem && navItem.tooltip ? navItem.tooltip() : placeDef.getData('navTooltip', null)),
37
+ icon: (/**
38
+ * @return {?}
39
+ */
40
+ () => navItem && navItem.icon ? navItem.icon() : placeDef.getData('navIcon', null))
41
+ };
42
+ }
43
+ /**
44
+ * @return {?}
45
+ */
46
+ ngOnInit() {
47
+ }
48
+ }
49
+ AbstractPlaceNavigationComponent.propDecorators = {
50
+ places: [{ type: Input }],
51
+ placesModel: [{ type: Input }]
52
+ };
53
+ tslib_1.__decorate([
54
+ StoreInListModel('placesModel'),
55
+ tslib_1.__metadata("design:type", Array)
56
+ ], AbstractPlaceNavigationComponent.prototype, "places", void 0);
57
+ tslib_1.__decorate([
58
+ UseDelegate(),
59
+ tslib_1.__metadata("design:type", ListModel)
60
+ ], AbstractPlaceNavigationComponent.prototype, "placesModel", void 0);
61
+ tslib_1.__decorate([
62
+ Memoize(),
63
+ tslib_1.__metadata("design:type", Function),
64
+ tslib_1.__metadata("design:paramtypes", [PlaceComponent.Definition]),
65
+ tslib_1.__metadata("design:returntype", Object)
66
+ ], AbstractPlaceNavigationComponent.prototype, "getNav", null);
67
+ if (false) {
68
+ /** @type {?} */
69
+ AbstractPlaceNavigationComponent.prototype.places;
70
+ /** @type {?} */
71
+ AbstractPlaceNavigationComponent.prototype.placesModel;
72
+ /** @type {?} */
73
+ AbstractPlaceNavigationComponent.prototype.placeDefinitions;
74
+ }
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcGxhY2UtbmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvY29tcG9uZW50cy9hYnN0cmFjdC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFpQixHQUFHLEVBQUUsU0FBUyxFQUFrQixnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxtQkFBbUI7SUFVdkU7UUFDRSxLQUFLLEVBQUUsQ0FBQztjQUNGLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDeEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO0lBQzVGLENBQUM7Ozs7O0lBR0QsTUFBTSxDQUFDLFFBQW1DOztjQUNsQyxPQUFPLEdBQUcsbUJBQUEsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBVztRQUNsRCxPQUFPO1lBQ0wsS0FBSzs7O1lBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUNuRixPQUFPOzs7WUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUNwRyxJQUFJOzs7WUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQTtTQUN6RixDQUFDO0lBQ0osQ0FBQzs7OztJQUVELFFBQVE7SUFDUixDQUFDOzs7cUJBekJBLEtBQUs7MEJBR0wsS0FBSzs7QUFGTjtJQURVLGdCQUFnQixDQUFDLGFBQWEsQ0FBQzs7Z0VBQ0Q7QUFHeEM7SUFEVSxXQUFXLEVBQUU7c0NBQ1YsU0FBUztxRUFBZ0M7QUFXdEQ7SUFEQyxPQUFPLEVBQUU7OzZDQUNPLGNBQWMsQ0FBQyxVQUFVOzs4REFPekM7OztJQXRCRCxrREFDd0M7O0lBRXhDLHVEQUNzRDs7SUFFdEQsNERBQXFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgRHNsLCBMaXN0TW9kZWwsIExpc3RNb2RlbENoYWluLCBTdG9yZUluTGlzdE1vZGVsLCBVc2VEZWxlZ2F0ZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IE1lbW9pemUgfSBmcm9tICdAdHlwZXNjcmlwdC1wbHVzL2Zhc3QtbWVtb2l6ZS1kZWNvcmF0b3IvZGlzdC9zcmMnO1xuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2SXRlbSB9IGZyb20gJy4uL25hdi1pdGVtJztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcGxhY2UtY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIEFic3RyYWN0UGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5MaXN0TW9kZWwoJ3BsYWNlc01vZGVsJylcbiAgcGxhY2VzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PltdO1xuXG4gIEBJbnB1dCgpIEBVc2VEZWxlZ2F0ZSgpXG4gIHBsYWNlc01vZGVsOiBMaXN0TW9kZWw8Q29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4+O1xuXG4gIHJlYWRvbmx5IHBsYWNlRGVmaW5pdGlvbnM6IExpc3RNb2RlbENoYWluPFBsYWNlQ29tcG9uZW50LkRlZmluaXRpb24+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLnBsYWNlRGVmaW5pdGlvbnMgPSBjaGFpbih0aGlzLnBsYWNlc01vZGVsKS5tYXAoYyA9PiBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKGMpKTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0TmF2KHBsYWNlRGVmOiBQbGFjZUNvbXBvbmVudC5EZWZpbml0aW9uKTogTmF2SXRlbSB7XG4gICAgY29uc3QgbmF2SXRlbSA9IHBsYWNlRGVmLmdldERhdGEoJ25hdicpIGFzIE5hdkl0ZW07XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiAoKSA9PiBuYXZJdGVtID8gbmF2SXRlbS50aXRsZSgpIDogcGxhY2VEZWYuc2VhcmNoRGF0YShbJ25hdlRpdGxlJywgJ3RpdGxlJ10pLFxuICAgICAgdG9vbHRpcDogKCkgPT4gbmF2SXRlbSAmJiBuYXZJdGVtLnRvb2x0aXAgPyBuYXZJdGVtLnRvb2x0aXAoKSA6IHBsYWNlRGVmLmdldERhdGEoJ25hdlRvb2x0aXAnLCBudWxsKSxcbiAgICAgIGljb246ICgpID0+IG5hdkl0ZW0gJiYgbmF2SXRlbS5pY29uID8gbmF2SXRlbS5pY29uKCkgOiBwbGFjZURlZi5nZXREYXRhKCduYXZJY29uJywgbnVsbClcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Component, HostBinding } from '@angular/core';
6
+ import { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';
7
+ export class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {
8
+ constructor() {
9
+ super();
10
+ this.expanded = true;
11
+ }
12
+ /**
13
+ * @return {?}
14
+ */
15
+ expandMenu() {
16
+ this.expanded = true;
17
+ }
18
+ /**
19
+ * @return {?}
20
+ */
21
+ collapseMenu() {
22
+ this.expanded = false;
23
+ }
24
+ /**
25
+ * @return {?}
26
+ */
27
+ toggleMenu() {
28
+ this.expanded = !this.expanded;
29
+ }
30
+ }
31
+ ListPlaceNavComponent.decorators = [
32
+ { type: Component, args: [{
33
+ selector: 'angular-ui-powerups-list-place-nav',
34
+ template: "<mat-nav-list class=\"app-menu\">\n <a mat-list-item *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [matTooltip]=\"getNav(place).tooltip()\">\n <mat-icon *ngIf=\"getNav(place).icon()\">{{getNav(place).icon()}}</mat-icon>\n <span class=\"expanded-only\">{{getNav(place).title()}}</span>\n </a>\n</mat-nav-list>\n",
35
+ styles: [":host{display:flex;flex-direction:column;--expanded-width:235px;--nav-item-width:var(--nav-bar-height);width:var(--nav-item-width);transition:width 125ms linear}:host.expanded{width:var(--expanded-width);max-width:var(--expanded-width)}.expanded-only{max-width:0;overflow:hidden}.collapsed-only{max-width:100%;overflow:hidden}.header{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;height:var(--nav-bar-height);border-bottom:var(--pinstripe-border);cursor:pointer}.header .menu{flex:1}.header button{color:inherit;width:var(--nav-item-width);height:var(--nav-bar-height)}mat-nav-list{flex:1;display:flex;flex-direction:column}.mat-list-item{width:var(--nav-item-width);height:var(--nav-bar-height);color:inherit}mat-icon{color:inherit}mat-icon.flip-horizontal{transform:scaleX(-1)}:host-context(.expanded) .expanded-only{max-width:100%}:host-context(.expanded) .collapsed-only{max-width:0}:host-context(.expanded) .mat-list-item mat-icon{margin-right:12px}:host-context(.expanded) .mat-list-item span{text-wrap:none;white-space:nowrap}a[ng-reflect-router-link=manage-instruments] mat-icon{transform:rotate(90deg)}.app-menu{padding-top:0}"]
36
+ }] }
37
+ ];
38
+ /** @nocollapse */
39
+ ListPlaceNavComponent.ctorParameters = () => [];
40
+ ListPlaceNavComponent.propDecorators = {
41
+ expanded: [{ type: HostBinding, args: ['class.expanded',] }]
42
+ };
43
+ if (false) {
44
+ /** @type {?} */
45
+ ListPlaceNavComponent.prototype.expanded;
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wbGFjZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL2NvbXBvbmVudHMvbGlzdC1wbGFjZS1uYXYvbGlzdC1wbGFjZS1uYXYuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQU8xRixNQUFNLE9BQU8scUJBQXNCLFNBQVEsZ0NBQWdDO0lBS3pFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFISCxhQUFRLEdBQUcsSUFBSSxDQUFDO0lBSXZCLENBQUM7Ozs7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQzs7OztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDOzs7O0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7OztZQXhCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9DQUFvQztnQkFDOUMsa2FBQThDOzthQUUvQzs7Ozs7dUJBR0UsV0FBVyxTQUFDLGdCQUFnQjs7OztJQUE3Qix5Q0FDdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0LXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5ndWxhci11aS1wb3dlcnVwcy1saXN0LXBsYWNlLW5hdicsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LXBsYWNlLW5hdi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3QtcGxhY2UtbmF2LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlzdFBsYWNlTmF2Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RQbGFjZU5hdmlnYXRpb25Db21wb25lbnQge1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXhwYW5kZWQnKVxuICBwdWJsaWMgZXhwYW5kZWQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBleHBhbmRNZW51KCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xuICB9XG5cbiAgY29sbGFwc2VNZW51KCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoKSB7XG4gICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICB9XG59XG4iXX0=
@@ -2,39 +2,103 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- import { Component, Input, ViewChild } from '@angular/core';
6
- import { RouterOutlet } from '@angular/router';
5
+ import { Component, Input, QueryList, ViewChildren } from '@angular/core';
6
+ import { ActivatedRoute, RouterOutlet } from '@angular/router';
7
+ import { Dsl, MutableListModel } from '@coolon/pectin';
8
+ import { DisposableComponent } from '../../../components/disposable-component';
7
9
  import { PlaceService } from '../../place.service';
8
10
  import { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';
9
- export class PlaceOutletComponent {
11
+ export class PlaceOutletComponent extends DisposableComponent {
10
12
  /**
11
13
  * @param {?} placeService
14
+ * @param {?} activatedRoute
12
15
  */
13
- constructor(placeService) {
16
+ constructor(placeService, activatedRoute) {
17
+ super();
14
18
  this.placeService = placeService;
19
+ this.activatedRoute = activatedRoute;
15
20
  this.animate = true;
21
+ this.outletUrlSegment = new MutableListModel();
22
+ const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
23
+ this.myPath = observe.listsFrom(activatedRoute.url).last().map((/**
24
+ * @param {?} s
25
+ * @return {?}
26
+ */
27
+ s => s.toString())).reduce((/**
28
+ * @param {?} bits
29
+ * @return {?}
30
+ */
31
+ bits => bits.join(',')));
32
+ console.log(`new outlet@(${this.myPath.value})`);
33
+ this.outletChildPath = chain(this.outletUrlSegment).map((/**
34
+ * @param {?} s
35
+ * @return {?}
36
+ */
37
+ s => s.toString())).reduce((/**
38
+ * @param {?} bits
39
+ * @return {?}
40
+ */
41
+ bits => bits.join(",")));
42
+ this.state = chain(this.myPath).map((/**
43
+ * @param {?} path
44
+ * @return {?}
45
+ */
46
+ path => {
47
+ return `outlet@(${path}), child path->${this.outletChildPath.value}`;
48
+ }), { dependsOn: this.outletChildPath });
49
+ when.valueOf(this.state).changes((/**
50
+ * @param {?} debug
51
+ * @return {?}
52
+ */
53
+ debug => {
54
+ console.log(`Outlet Changed -> ${debug}`);
55
+ }));
16
56
  }
17
57
  /**
18
58
  * @return {?}
19
59
  */
20
60
  ngOnInit() {
21
61
  }
62
+ /**
63
+ * @return {?}
64
+ */
65
+ ngAfterViewInit() {
66
+ // this.routerOutLetQuery.changes.subscribe(() => {
67
+ // this.updateRouterOutlet(this.routerOutLetQuery.first);
68
+ // });
69
+ }
70
+ /**
71
+ * @return {?}
72
+ */
73
+ ngAfterViewChecked() {
74
+ // console.log(`@AfterViewChecked: ${this.state.value}`);
75
+ this.updateRouterOutlet(this.routerOutLetQuery.first);
76
+ }
77
+ // @Trace()
78
+ // ngOnDestroy(): void {
79
+ // console.log('outletSegments', this.outletUrlSegment.value);
80
+ // console.log('mySegments', this.myPath.value);
81
+ // super.ngOnDestroy();
82
+ // }
83
+ // @Trace()
22
84
  /**
23
85
  * @param {?} $event
24
86
  * @return {?}
25
87
  */
26
- onActivate($event) {
88
+ onOutletActivated($event) {
89
+ // console.log(this.routerOutLet.activatedRoute.snapshot.url);
27
90
  this.currentPlace = $event;
28
91
  this.placeService.onActivate($event);
29
92
  if (!this.animate) {
30
- this.notifyPlaceReady();
93
+ // we're not animating so trigger any post animation callbacks now.
94
+ this.animationDone();
31
95
  }
32
96
  }
33
97
  /**
34
98
  * @param {?} $event
35
99
  * @return {?}
36
100
  */
37
- onDeactivate($event) {
101
+ onOutletDeactivated($event) {
38
102
  this.currentPlace = null;
39
103
  this.placeService.onDeactivate($event);
40
104
  }
@@ -49,48 +113,78 @@ export class PlaceOutletComponent {
49
113
  * @return {?}
50
114
  */
51
115
  animationDone() {
52
- this.notifyPlaceReady();
116
+ if (this.currentPlace) {
117
+ this.currentPlace.onPlaceReady();
118
+ }
53
119
  }
120
+ // @Trace()
54
121
  /**
55
122
  * @private
123
+ * @param {?} first
56
124
  * @return {?}
57
125
  */
58
- notifyPlaceReady() {
59
- if (this.currentPlace) {
60
- this.currentPlace.onPlaceReady();
126
+ updateRouterOutlet(first) {
127
+ if (first.isActivated) {
128
+ this.outletUrlSegment.value = first.activatedRoute.snapshot.url;
61
129
  }
62
130
  }
63
131
  }
64
132
  PlaceOutletComponent.decorators = [
65
133
  { type: Component, args: [{
66
134
  selector: 'angular-ui-powerups-place-outlet',
67
- template: "<div class=\"router-outlet-container\"\n [@routeAnimations]=\"getPlaceOrder(routerOutlet)\"\n (@routeAnimations.done)=\"animationDone()\"\n>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onActivate($event)\"\n (deactivate)=\"onDeactivate($event)\">\n </router-outlet>\n</div>\n\n",
135
+ template: "<div class=\"router-outlet-container\"\n [@routeAnimations]=\"getPlaceOrder(routerOutlet)\"\n (@routeAnimations.done)=\"animationDone()\"\n>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated($event)\"\n (deactivate)=\"onOutletDeactivated($event)\">\n </router-outlet>\n</div>\n\n",
68
136
  animations: [LEFT_RIGHT_PLACE_ANIMATION],
69
137
  styles: [":host{display:flex;flex-direction:column;min-height:0}.router-outlet-container{flex:1;display:block;position:relative;min-height:0}router-outlet{display:none}"]
70
138
  }] }
71
139
  ];
72
140
  /** @nocollapse */
73
141
  PlaceOutletComponent.ctorParameters = () => [
74
- { type: PlaceService }
142
+ { type: PlaceService },
143
+ { type: ActivatedRoute }
75
144
  ];
76
145
  PlaceOutletComponent.propDecorators = {
77
146
  animate: [{ type: Input }],
78
- routerOutLet: [{ type: ViewChild, args: ['routerOutlet', { static: false },] }]
147
+ routerOutLetQuery: [{ type: ViewChildren, args: [RouterOutlet,] }]
79
148
  };
80
149
  if (false) {
81
150
  /** @type {?} */
82
151
  PlaceOutletComponent.prototype.animate;
83
152
  /** @type {?} */
84
- PlaceOutletComponent.prototype.routerOutLet;
153
+ PlaceOutletComponent.prototype.routerOutLetQuery;
85
154
  /**
86
155
  * @type {?}
87
156
  * @private
88
157
  */
89
158
  PlaceOutletComponent.prototype.currentPlace;
159
+ /**
160
+ * @type {?}
161
+ * @private
162
+ */
163
+ PlaceOutletComponent.prototype.myPath;
164
+ /**
165
+ * @type {?}
166
+ * @private
167
+ */
168
+ PlaceOutletComponent.prototype.outletUrlSegment;
169
+ /**
170
+ * @type {?}
171
+ * @private
172
+ */
173
+ PlaceOutletComponent.prototype.outletChildPath;
174
+ /**
175
+ * @type {?}
176
+ * @private
177
+ */
178
+ PlaceOutletComponent.prototype.state;
90
179
  /**
91
180
  * @type {?}
92
181
  * @private
93
182
  */
94
183
  PlaceOutletComponent.prototype.placeService;
184
+ /**
185
+ * @type {?}
186
+ * @private
187
+ */
188
+ PlaceOutletComponent.prototype.activatedRoute;
95
189
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVFoRSxNQUFNLE9BQU8sb0JBQW9COzs7O0lBUy9CLFlBQTZCLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBTnZELFlBQU8sR0FBRyxJQUFJLENBQUM7SUFPZixDQUFDOzs7O0lBRUQsUUFBUTtJQUNSLENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLE1BQXNCO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7Ozs7SUFFRCxZQUFZLENBQUMsTUFBc0I7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7Ozs7SUFFRCxhQUFhLENBQUMsTUFBb0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsa0JBQWtCLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hHLENBQUM7Ozs7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQzs7Ozs7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDbEM7SUFDSCxDQUFDOzs7WUE5Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQ0FBa0M7Z0JBQzVDLHdWQUE0QztnQkFFNUMsVUFBVSxFQUFFLENBQUMsMEJBQTBCLENBQUM7O2FBQ3pDOzs7O1lBUlEsWUFBWTs7O3NCQVdsQixLQUFLOzJCQUdMLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzs7O0lBSDVDLHVDQUNlOztJQUVmLDRDQUMyQjs7Ozs7SUFDM0IsNENBQXFDOzs7OztJQUV6Qiw0Q0FBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcGxhY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBMRUZUX1JJR0hUX1BMQUNFX0FOSU1BVElPTiB9IGZyb20gJy4vcm91dGUtYW5pbWF0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FuZ3VsYXItdWktcG93ZXJ1cHMtcGxhY2Utb3V0bGV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYWNlLW91dGxldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BsYWNlLW91dGxldC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbTEVGVF9SSUdIVF9QTEFDRV9BTklNQVRJT05dXG59KVxuZXhwb3J0IGNsYXNzIFBsYWNlT3V0bGV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBhbmltYXRlID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKCdyb3V0ZXJPdXRsZXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcm91dGVyT3V0TGV0OiBSb3V0ZXJPdXRsZXQ7XG4gIHByaXZhdGUgY3VycmVudFBsYWNlOiBQbGFjZUNvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBsYWNlU2VydmljZTogUGxhY2VTZXJ2aWNlKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG9uQWN0aXZhdGUoJGV2ZW50OiBQbGFjZUNvbXBvbmVudCkge1xuICAgIHRoaXMuY3VycmVudFBsYWNlID0gJGV2ZW50O1xuICAgIHRoaXMucGxhY2VTZXJ2aWNlLm9uQWN0aXZhdGUoJGV2ZW50KTtcbiAgICBpZiAoIXRoaXMuYW5pbWF0ZSkge1xuICAgICAgdGhpcy5ub3RpZnlQbGFjZVJlYWR5KCk7XG4gICAgfVxuICB9XG5cbiAgb25EZWFjdGl2YXRlKCRldmVudDogUGxhY2VDb21wb25lbnQpIHtcbiAgICB0aGlzLmN1cnJlbnRQbGFjZSA9IG51bGw7XG4gICAgdGhpcy5wbGFjZVNlcnZpY2Uub25EZWFjdGl2YXRlKCRldmVudCk7XG4gIH1cblxuICBnZXRQbGFjZU9yZGVyKG91dGxldDogUm91dGVyT3V0bGV0KSB7XG4gICAgcmV0dXJuIHRoaXMuYW5pbWF0ZSAmJiBvdXRsZXQgJiYgb3V0bGV0LmFjdGl2YXRlZFJvdXRlRGF0YSAmJiBvdXRsZXQuYWN0aXZhdGVkUm91dGVEYXRhWydwbGFjZU9yZGVyJ107XG4gIH1cblxuICBhbmltYXRpb25Eb25lKCkge1xuICAgIHRoaXMubm90aWZ5UGxhY2VSZWFkeSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3RpZnlQbGFjZVJlYWR5KCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQbGFjZSkge1xuICAgICAgdGhpcy5jdXJyZW50UGxhY2Uub25QbGFjZVJlYWR5KCk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQW1DLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBYyxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBUWhFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7Ozs7O0lBYzNELFlBQTZCLFlBQTBCLEVBQVUsY0FBOEI7UUFDN0YsS0FBSyxFQUFFLENBQUM7UUFEbUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFYL0YsWUFBTyxHQUFHLElBQUksQ0FBQztRQU9QLHFCQUFnQixHQUFHLElBQUksZ0JBQWdCLEVBQWMsQ0FBQztjQU10RCxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFDLENBQUMsTUFBTTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDO1FBQ2pILE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFDLENBQUMsTUFBTTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDO1FBQzFHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHOzs7O1FBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekMsT0FBTyxXQUFXLElBQUksa0JBQWtCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDdEUsQ0FBQyxHQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU87Ozs7UUFBQyxLQUFLLENBQUMsRUFBRTtZQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELFFBQVE7SUFDUixDQUFDOzs7O0lBRUQsZUFBZTtRQUNiLG1EQUFtRDtRQUNuRCwyREFBMkQ7UUFDM0QsTUFBTTtJQUNSLENBQUM7Ozs7SUFFRCxrQkFBa0I7UUFDaEIseURBQXlEO1FBQ3pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkQsQ0FBQzs7Ozs7Ozs7Ozs7O0lBVUQsaUJBQWlCLENBQUMsTUFBc0I7UUFDdEMsOERBQThEO1FBQzlELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLG1FQUFtRTtZQUNuRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDOzs7OztJQUVELG1CQUFtQixDQUFDLE1BQXNCO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Ozs7O0lBRUQsYUFBYSxDQUFDLE1BQW9CO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGtCQUFrQixJQUFJLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4RyxDQUFDOzs7O0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7Ozs7OztJQUdPLGtCQUFrQixDQUFDLEtBQW1CO1FBQzVDLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztTQUNqRTtJQUNILENBQUM7OztZQXZGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztnQkFDNUMsc1dBQTRDO2dCQUU1QyxVQUFVLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzs7YUFDekM7Ozs7WUFSUSxZQUFZO1lBSlosY0FBYzs7O3NCQWVwQixLQUFLO2dDQUdMLFlBQVksU0FBQyxZQUFZOzs7O0lBSDFCLHVDQUNlOztJQUVmLGlEQUMyQzs7Ozs7SUFFM0MsNENBQXFDOzs7OztJQUNyQyxzQ0FBd0M7Ozs7O0lBQ3hDLGdEQUE4RDs7Ozs7SUFDOUQsK0NBQWlEOzs7OztJQUNqRCxxQ0FBdUM7Ozs7O0lBRTNCLDRDQUEyQzs7Ozs7SUFBRSw4Q0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyT3V0bGV0LCBVcmxTZWdtZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERzbCwgTXV0YWJsZUxpc3RNb2RlbCwgVHJhY2UsIFZhbHVlTW9kZWxDaGFpbiB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlU2VydmljZSB9IGZyb20gJy4uLy4uL3BsYWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTEVGVF9SSUdIVF9QTEFDRV9BTklNQVRJT04gfSBmcm9tICcuL3JvdXRlLWFuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbmd1bGFyLXVpLXBvd2VydXBzLXBsYWNlLW91dGxldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbGFjZS1vdXRsZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wbGFjZS1vdXRsZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW0xFRlRfUklHSFRfUExBQ0VfQU5JTUFUSU9OXVxufSlcbmV4cG9ydCBjbGFzcyBQbGFjZU91dGxldENvbXBvbmVudCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQge1xuXG4gIEBJbnB1dCgpXG4gIGFuaW1hdGUgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGRyZW4oUm91dGVyT3V0bGV0KVxuICByb3V0ZXJPdXRMZXRRdWVyeTogUXVlcnlMaXN0PFJvdXRlck91dGxldD47XG5cbiAgcHJpdmF0ZSBjdXJyZW50UGxhY2U6IFBsYWNlQ29tcG9uZW50O1xuICBwcml2YXRlIG15UGF0aDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG4gIHByaXZhdGUgb3V0bGV0VXJsU2VnbWVudCA9IG5ldyBNdXRhYmxlTGlzdE1vZGVsPFVybFNlZ21lbnQ+KCk7XG4gIHByaXZhdGUgb3V0bGV0Q2hpbGRQYXRoOiBWYWx1ZU1vZGVsQ2hhaW48c3RyaW5nPjtcbiAgcHJpdmF0ZSBzdGF0ZTogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwbGFjZVNlcnZpY2U6IFBsYWNlU2VydmljZSwgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9uIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy5teVBhdGggPSBvYnNlcnZlLmxpc3RzRnJvbShhY3RpdmF0ZWRSb3V0ZS51cmwpLmxhc3QoKS5tYXAocyA9PiBzLnRvU3RyaW5nKCkpLnJlZHVjZShiaXRzID0+IGJpdHMuam9pbignLCcpKTtcbiAgICBjb25zb2xlLmxvZyhgbmV3IG91dGxldEAoJHt0aGlzLm15UGF0aC52YWx1ZX0pYCk7XG4gICAgdGhpcy5vdXRsZXRDaGlsZFBhdGggPSBjaGFpbih0aGlzLm91dGxldFVybFNlZ21lbnQpLm1hcChzID0+IHMudG9TdHJpbmcoKSkucmVkdWNlKGJpdHMgPT4gYml0cy5qb2luKFwiLFwiKSk7XG4gICAgdGhpcy5zdGF0ZSA9IGNoYWluKHRoaXMubXlQYXRoKS5tYXAocGF0aCA9PiB7XG4gICAgICByZXR1cm4gYG91dGxldEAoJHtwYXRofSksIGNoaWxkIHBhdGgtPiR7dGhpcy5vdXRsZXRDaGlsZFBhdGgudmFsdWV9YFxuICAgIH0sIHtkZXBlbmRzT246IHRoaXMub3V0bGV0Q2hpbGRQYXRofSk7XG5cbiAgICB3aGVuLnZhbHVlT2YodGhpcy5zdGF0ZSkuY2hhbmdlcyhkZWJ1ZyA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgT3V0bGV0IENoYW5nZWQgLT4gJHtkZWJ1Z31gKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMucm91dGVyT3V0TGV0UXVlcnkuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgIC8vICAgdGhpcy51cGRhdGVSb3V0ZXJPdXRsZXQodGhpcy5yb3V0ZXJPdXRMZXRRdWVyeS5maXJzdCk7XG4gICAgLy8gfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5sb2coYEBBZnRlclZpZXdDaGVja2VkOiAke3RoaXMuc3RhdGUudmFsdWV9YCk7XG4gICAgdGhpcy51cGRhdGVSb3V0ZXJPdXRsZXQodGhpcy5yb3V0ZXJPdXRMZXRRdWVyeS5maXJzdClcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIC8vIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAvLyAgIGNvbnNvbGUubG9nKCdvdXRsZXRTZWdtZW50cycsIHRoaXMub3V0bGV0VXJsU2VnbWVudC52YWx1ZSk7XG4gIC8vICAgY29uc29sZS5sb2coJ215U2VnbWVudHMnLCB0aGlzLm15UGF0aC52YWx1ZSk7XG4gIC8vICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgLy8gfVxuXG4gIC8vIEBUcmFjZSgpXG4gIG9uT3V0bGV0QWN0aXZhdGVkKCRldmVudDogUGxhY2VDb21wb25lbnQpIHtcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJvdXRlck91dExldC5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC51cmwpO1xuICAgIHRoaXMuY3VycmVudFBsYWNlID0gJGV2ZW50O1xuICAgIHRoaXMucGxhY2VTZXJ2aWNlLm9uQWN0aXZhdGUoJGV2ZW50KTtcbiAgICBpZiAoIXRoaXMuYW5pbWF0ZSkge1xuICAgICAgLy8gd2UncmUgbm90IGFuaW1hdGluZyBzbyB0cmlnZ2VyIGFueSBwb3N0IGFuaW1hdGlvbiBjYWxsYmFja3Mgbm93LlxuICAgICAgdGhpcy5hbmltYXRpb25Eb25lKCk7XG4gICAgfVxuICB9XG5cbiAgb25PdXRsZXREZWFjdGl2YXRlZCgkZXZlbnQ6IFBsYWNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5jdXJyZW50UGxhY2UgPSBudWxsO1xuICAgIHRoaXMucGxhY2VTZXJ2aWNlLm9uRGVhY3RpdmF0ZSgkZXZlbnQpO1xuICB9XG5cbiAgZ2V0UGxhY2VPcmRlcihvdXRsZXQ6IFJvdXRlck91dGxldCkge1xuICAgIHJldHVybiB0aGlzLmFuaW1hdGUgJiYgb3V0bGV0ICYmIG91dGxldC5hY3RpdmF0ZWRSb3V0ZURhdGEgJiYgb3V0bGV0LmFjdGl2YXRlZFJvdXRlRGF0YVsncGxhY2VPcmRlciddO1xuICB9XG5cbiAgYW5pbWF0aW9uRG9uZSgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGxhY2UpIHtcbiAgICAgIHRoaXMuY3VycmVudFBsYWNlLm9uUGxhY2VSZWFkeSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHByaXZhdGUgdXBkYXRlUm91dGVyT3V0bGV0KGZpcnN0OiBSb3V0ZXJPdXRsZXQpIHtcbiAgICBpZiAoZmlyc3QuaXNBY3RpdmF0ZWQpIHtcbiAgICAgIHRoaXMub3V0bGV0VXJsU2VnbWVudC52YWx1ZSA9IGZpcnN0LmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnVybDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -39,9 +39,16 @@ const right = [
39
39
  })
40
40
  ])
41
41
  ];
42
+ /**
43
+ * @param {?} duration
44
+ * @return {?}
45
+ */
46
+ export function leftRightPlaceAnimation(duration) {
47
+ return trigger('routeAnimations', [
48
+ transition(':increment', right, { params: { duration: duration } }),
49
+ transition(':decrement', left, { params: { duration: duration } })
50
+ ]);
51
+ }
42
52
  /** @type {?} */
43
- export const LEFT_RIGHT_PLACE_ANIMATION = trigger('routeAnimations', [
44
- transition(':increment', right, { params: { duration: '.3s' } }),
45
- transition(':decrement', left, { params: { duration: '.3s' } })
46
- ]);
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9yb3V0ZS1hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O01BR2xGLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBQyxDQUFDOztNQUVoRyxJQUFJLEdBQUc7SUFDWCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDaEUsS0FBSyxDQUFDO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNkLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1NBQ3pFLEVBQUU7WUFDRCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ2QsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7U0FDM0UsRUFBRTtZQUNELFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7Q0FDSDs7TUFFSyxLQUFLLEdBQUc7SUFDWixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDaEUsS0FBSyxDQUFDO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNkLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1NBQ3pFLEVBQUU7WUFDRCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckksUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztDQUNIOztBQUVELE1BQU0sT0FBTywwQkFBMEIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7SUFDbkUsVUFBVSxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUNoRSxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0NBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBncm91cCwgcXVlcnksIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbi8vIEZyZWV6ZXMgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnRzIGF0IHRoZSBzdGFydCBvZiB0aGUgYW5pbWF0aW9uLlxuY29uc3QgYW5pbWF0aW9uU3RhcnRTdHlsZSA9IHN0eWxlKHsgcG9zaXRpb246ICdhYnNvbHV0ZScsIHRvcDogJzAnLGxlZnQ6ICcwJywgYm90dG9tOicwJywgcmlnaHQ6ICcwJ30pO1xuXG5jb25zdCBsZWZ0ID0gW1xuICBxdWVyeSgnOmVudGVyLCA6bGVhdmUnLCBhbmltYXRpb25TdGFydFN0eWxlLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICBncm91cChbXG4gICAgcXVlcnkoJzplbnRlcicsIFtcbiAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH0pLFxuICAgICAgYW5pbWF0ZSgne3tkdXJhdGlvbn19IGVhc2Utb3V0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScgfSkpXG4gICAgXSwge1xuICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KSxcbiAgICBxdWVyeSgnOmxlYXZlJywgW1xuICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScgfSksXG4gICAgICBhbmltYXRlKCd7e2R1cmF0aW9ufX0gZWFzZS1vdXQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pKVxuICAgIF0sIHtcbiAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSlcbiAgXSlcbl07XG5cbmNvbnN0IHJpZ2h0ID0gW1xuICBxdWVyeSgnOmVudGVyLCA6bGVhdmUnLCBhbmltYXRpb25TdGFydFN0eWxlLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICBncm91cChbXG4gICAgcXVlcnkoJzplbnRlcicsIFtcbiAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfSksXG4gICAgICBhbmltYXRlKCd7e2R1cmF0aW9ufX0gZWFzZS1vdXQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCUpJyB9KSlcbiAgICBdLCB7XG4gICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pLFxuICAgIHF1ZXJ5KCc6bGVhdmUnLCBbc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScgfSksIGFuaW1hdGUoJ3t7ZHVyYXRpb259fSBlYXNlLW91dCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH0pKV0sIHtcbiAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSlcbiAgXSlcbl07XG5cbmV4cG9ydCBjb25zdCBMRUZUX1JJR0hUX1BMQUNFX0FOSU1BVElPTiA9IHRyaWdnZXIoJ3JvdXRlQW5pbWF0aW9ucycsIFtcbiAgdHJhbnNpdGlvbignOmluY3JlbWVudCcsIHJpZ2h0LCB7IHBhcmFtczogeyBkdXJhdGlvbjogJy4zcycgfSB9KSxcbiAgdHJhbnNpdGlvbignOmRlY3JlbWVudCcsIGxlZnQsIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiAnLjNzJyB9IH0pXG5dKTtcbiJdfQ==
53
+ export const LEFT_RIGHT_PLACE_ANIMATION = leftRightPlaceAnimation("0.3s");
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9yb3V0ZS1hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O01BR2xGLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDOztNQUVuRyxJQUFJLEdBQUc7SUFDWCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDaEUsS0FBSyxDQUFDO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNkLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1NBQ3pFLEVBQUU7WUFDRCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ2QsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7U0FDM0UsRUFBRTtZQUNELFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztLQUNILENBQUM7Q0FDSDs7TUFFSyxLQUFLLEdBQUc7SUFDWixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDaEUsS0FBSyxDQUFDO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNkLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1NBQ3pFLEVBQUU7WUFDRCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckksUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0tBQ0gsQ0FBQztDQUNIOzs7OztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUFlO0lBQ3JELE9BQU8sT0FBTyxDQUFDLGlCQUFpQixFQUFFO1FBQ2hDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDbkUsVUFBVSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQztLQUNuRSxDQUFDLENBQUM7QUFDTCxDQUFDOztBQUVELE1BQU0sT0FBTywwQkFBMEIsR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBncm91cCwgcXVlcnksIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbi8vIEZyZWV6ZXMgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnRzIGF0IHRoZSBzdGFydCBvZiB0aGUgYW5pbWF0aW9uLlxuY29uc3QgYW5pbWF0aW9uU3RhcnRTdHlsZSA9IHN0eWxlKHsgcG9zaXRpb246ICdhYnNvbHV0ZScsIHRvcDogJzAnLCBsZWZ0OiAnMCcsIGJvdHRvbTogJzAnLCByaWdodDogJzAnIH0pO1xuXG5jb25zdCBsZWZ0ID0gW1xuICBxdWVyeSgnOmVudGVyLCA6bGVhdmUnLCBhbmltYXRpb25TdGFydFN0eWxlLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICBncm91cChbXG4gICAgcXVlcnkoJzplbnRlcicsIFtcbiAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH0pLFxuICAgICAgYW5pbWF0ZSgne3tkdXJhdGlvbn19IGVhc2Utb3V0Jywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScgfSkpXG4gICAgXSwge1xuICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KSxcbiAgICBxdWVyeSgnOmxlYXZlJywgW1xuICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScgfSksXG4gICAgICBhbmltYXRlKCd7e2R1cmF0aW9ufX0gZWFzZS1vdXQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pKVxuICAgIF0sIHtcbiAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSlcbiAgXSlcbl07XG5cbmNvbnN0IHJpZ2h0ID0gW1xuICBxdWVyeSgnOmVudGVyLCA6bGVhdmUnLCBhbmltYXRpb25TdGFydFN0eWxlLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICBncm91cChbXG4gICAgcXVlcnkoJzplbnRlcicsIFtcbiAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScgfSksXG4gICAgICBhbmltYXRlKCd7e2R1cmF0aW9ufX0gZWFzZS1vdXQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCUpJyB9KSlcbiAgICBdLCB7XG4gICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pLFxuICAgIHF1ZXJ5KCc6bGVhdmUnLCBbc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScgfSksIGFuaW1hdGUoJ3t7ZHVyYXRpb259fSBlYXNlLW91dCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknIH0pKV0sIHtcbiAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSlcbiAgXSlcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBsZWZ0UmlnaHRQbGFjZUFuaW1hdGlvbihkdXJhdGlvbjpzdHJpbmcpIHtcbiAgcmV0dXJuIHRyaWdnZXIoJ3JvdXRlQW5pbWF0aW9ucycsIFtcbiAgICB0cmFuc2l0aW9uKCc6aW5jcmVtZW50JywgcmlnaHQsIHsgcGFyYW1zOiB7IGR1cmF0aW9uOiBkdXJhdGlvbiB9IH0pLFxuICAgIHRyYW5zaXRpb24oJzpkZWNyZW1lbnQnLCBsZWZ0LCB7IHBhcmFtczogeyBkdXJhdGlvbjogZHVyYXRpb24gfSB9KVxuICBdKTtcbn1cblxuZXhwb3J0IGNvbnN0IExFRlRfUklHSFRfUExBQ0VfQU5JTUFUSU9OID0gbGVmdFJpZ2h0UGxhY2VBbmltYXRpb24oXCIwLjNzXCIpO1xuIl19
@@ -2,54 +2,20 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- import * as tslib_1 from "tslib";
6
- import { Component, Input } from '@angular/core';
7
- import { Dsl, ListModel, StoreInListModel, UseDelegate } from '@coolon/pectin';
8
- import { DisposableComponent } from '../../../components/disposable-component';
9
- import { PlaceComponent } from '../../place-component';
10
- export class TabbedPlaceNavigationComponent extends DisposableComponent {
5
+ import { Component } from '@angular/core';
6
+ import { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';
7
+ export class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
11
8
  constructor() {
12
9
  super();
13
- const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
14
- this.orderedPlaces = chain(this.placesModel).map((/**
15
- * @param {?} c
16
- * @return {?}
17
- */
18
- c => PlaceComponent.getDefinition(c))).sortBy('order');
19
- }
20
- /**
21
- * @return {?}
22
- */
23
- ngOnInit() {
24
10
  }
25
11
  }
26
12
  TabbedPlaceNavigationComponent.decorators = [
27
13
  { type: Component, args: [{
28
14
  selector: 'angular-ui-powerups-tabbed-place-navigation',
29
- template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let placeDescriptor of orderedPlaces.value\"\n [routerLink]='placeDescriptor.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [active]=\"rla.isActive\"\n [matTooltip]=\"placeDescriptor.searchData(['navTooltip', 'navTitle'])\">\n <mat-icon *ngIf=\"placeDescriptor.getData('navIcon')\">{{placeDescriptor.getData('navIcon')}}</mat-icon>\n <span>{{placeDescriptor.getData(\"navTitle\", 'missing @Place({data: {navTitle: ??}\\})')}}</span>\n </a>\n</nav>\n",
15
+ template: "<nav mat-tab-nav-bar>\n <a mat-tab-link *ngFor=\"let place of placeDefinitions.value\"\n [routerLink]='place.path'\n routerLinkActive #rla=\"routerLinkActive\"\n [active]=\"rla.isActive\"\n [matTooltip]=\"getNav(place).tooltip()\">\n <mat-icon *ngIf=\"getNav(place).icon()\">{{getNav(place).icon()}}</mat-icon>\n <span>{{getNav(place).title()}}</span>\n </a>\n</nav>\n",
30
16
  styles: [""]
31
17
  }] }
32
18
  ];
33
19
  /** @nocollapse */
34
20
  TabbedPlaceNavigationComponent.ctorParameters = () => [];
35
- TabbedPlaceNavigationComponent.propDecorators = {
36
- places: [{ type: Input }],
37
- placesModel: [{ type: Input }]
38
- };
39
- tslib_1.__decorate([
40
- StoreInListModel('placesModel'),
41
- tslib_1.__metadata("design:type", Array)
42
- ], TabbedPlaceNavigationComponent.prototype, "places", void 0);
43
- tslib_1.__decorate([
44
- UseDelegate(),
45
- tslib_1.__metadata("design:type", ListModel)
46
- ], TabbedPlaceNavigationComponent.prototype, "placesModel", void 0);
47
- if (false) {
48
- /** @type {?} */
49
- TabbedPlaceNavigationComponent.prototype.places;
50
- /** @type {?} */
51
- TabbedPlaceNavigationComponent.prototype.placesModel;
52
- /** @type {?} */
53
- TabbedPlaceNavigationComponent.prototype.orderedPlaces;
54
- }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL2NvbXBvbmVudHMvdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFpQixHQUFHLEVBQUUsU0FBUyxFQUFrQixnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFPdkQsTUFBTSxPQUFPLDhCQUErQixTQUFRLG1CQUFtQjtJQVVyRTtRQUNFLEtBQUssRUFBRSxDQUFDO2NBQ0YsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUN4RixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRzs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RyxDQUFDOzs7O0lBRUQsUUFBUTtJQUNSLENBQUM7OztZQXRCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDZDQUE2QztnQkFDdkQsNGhCQUF1RDs7YUFFeEQ7Ozs7O3FCQUdFLEtBQUs7MEJBR0wsS0FBSzs7QUFGTjtJQURVLGdCQUFnQixDQUFDLGFBQWEsQ0FBQzs7OERBQ0Q7QUFHeEM7SUFEVSxXQUFXLEVBQUU7c0NBQ1YsU0FBUzttRUFBZ0M7OztJQUp0RCxnREFDd0M7O0lBRXhDLHFEQUNzRDs7SUFFdEQsdURBQWtFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RhYmxlLCBEc2wsIExpc3RNb2RlbCwgTGlzdE1vZGVsQ2hhaW4sIFN0b3JlSW5MaXN0TW9kZWwsIFVzZURlbGVnYXRlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wbGFjZS1jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbmd1bGFyLXVpLXBvd2VydXBzLXRhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJiZWRQbGFjZU5hdmlnYXRpb25Db21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBAU3RvcmVJbkxpc3RNb2RlbCgncGxhY2VzTW9kZWwnKVxuICBwbGFjZXM6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+W107XG5cbiAgQElucHV0KCkgQFVzZURlbGVnYXRlKClcbiAgcGxhY2VzTW9kZWw6IExpc3RNb2RlbDxDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pj47XG5cbiAgcmVhZG9ubHkgb3JkZXJlZFBsYWNlczogTGlzdE1vZGVsQ2hhaW48UGxhY2VDb21wb25lbnQuRGVmaW5pdGlvbj47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMub3JkZXJlZFBsYWNlcyA9IGNoYWluKHRoaXMucGxhY2VzTW9kZWwpLm1hcChjID0+IFBsYWNlQ29tcG9uZW50LmdldERlZmluaXRpb24oYykpLnNvcnRCeSgnb3JkZXInKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbn1cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL2NvbXBvbmVudHMvdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUl6RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQU8xRixNQUFNLE9BQU8sOEJBQStCLFNBQVEsZ0NBQWdDO0lBQ2xGO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzs7WUFSRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDZDQUE2QztnQkFDdkQsb1pBQXVEOzthQUV4RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgRHNsLCBMaXN0TW9kZWwsIExpc3RNb2RlbENoYWluLCBTdG9yZUluTGlzdE1vZGVsLCBVc2VEZWxlZ2F0ZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7IEFic3RyYWN0UGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QtcGxhY2UtbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbmd1bGFyLXVpLXBvd2VydXBzLXRhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJiZWRQbGFjZU5hdmlnYXRpb25Db21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -3,7 +3,7 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import { Injectable, Injector } from '@angular/core';
6
- import { Router } from '@angular/router';
6
+ import { PRIMARY_OUTLET, Router } from '@angular/router';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/router";
9
9
  export class LeavePlaceGuard {
@@ -23,7 +23,24 @@ export class LeavePlaceGuard {
23
23
  * @return {?}
24
24
  */
25
25
  canDeactivate(component, currentRoute, currentState, nextState) {
26
- return component.canDeactivate();
26
+ // HACK: this will break with child routes...
27
+ /** @type {?} */
28
+ const path = `/${component.placeDefinition.path}`;
29
+ console.log({
30
+ placePath: path,
31
+ currentRoute: currentRoute.toString(),
32
+ currentStateUrl: currentState.url,
33
+ nextStateUrl: nextState.url,
34
+ currentStateUrlTree: this.router.parseUrl(currentState.url).root.children[PRIMARY_OUTLET].segments,
35
+ nextStateUrlTree: this.router.parseUrl(nextState.url).root.children[PRIMARY_OUTLET].segments
36
+ });
37
+ // nextState is the full path...
38
+ if (!nextState.url.startsWith(path)) {
39
+ return component.canDeactivate();
40
+ }
41
+ else {
42
+ return true;
43
+ }
27
44
  }
28
45
  }
29
46
  LeavePlaceGuard.decorators = [
@@ -49,4 +66,4 @@ if (false) {
49
66
  */
50
67
  LeavePlaceGuard.prototype.injector;
51
68
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtcGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQXlDLE1BQU0sRUFBZ0MsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUTlHLE1BQU0sT0FBTyxlQUFlOzs7OztJQUUxQixZQUFvQixNQUFjLEVBQVUsUUFBa0I7UUFBMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDOUQsQ0FBQzs7Ozs7Ozs7SUFFRCxhQUFhLENBQUMsU0FBeUIsRUFBRSxZQUFvQyxFQUFFLFlBQWlDLEVBQUUsU0FBK0I7UUFDL0ksT0FBTyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7O1lBVkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBUCtDLE1BQU07WUFEakMsUUFBUTs7Ozs7Ozs7SUFXZixpQ0FBc0I7Ozs7O0lBQUUsbUNBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkRlYWN0aXZhdGUsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb25zdHJ1Y3RhYmxlLCBsYW5nIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi9wbGFjZS1jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMZWF2ZVBsYWNlR3VhcmQgaW1wbGVtZW50cyBDYW5EZWFjdGl2YXRlPFBsYWNlQ29tcG9uZW50PiB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsIG5leHRTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xuICAgIHJldHVybiBjb21wb25lbnQuY2FuRGVhY3RpdmF0ZSgpO1xuICB9XG5cbn1cbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhdmUtcGxhY2UuZ3VhcmQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2UvZ3VhcmRzL2xlYXZlLXBsYWNlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBR0wsY0FBYyxFQUNkLE1BQU0sRUFHUCxNQUFNLGlCQUFpQixDQUFDOzs7QUFRekIsTUFBTSxPQUFPLGVBQWU7Ozs7O0lBRTFCLFlBQW9CLE1BQWMsRUFBVSxRQUFrQjtRQUExQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUM5RCxDQUFDOzs7Ozs7OztJQUVELGFBQWEsQ0FBQyxTQUF5QixFQUFFLFlBQW9DLEVBQUUsWUFBaUMsRUFBRSxTQUErQjs7O2NBRXpJLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFO1FBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDVixTQUFTLEVBQUUsSUFBSTtZQUNmLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFO1lBQ3JDLGVBQWUsRUFBRSxZQUFZLENBQUMsR0FBRztZQUNqQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEdBQUc7WUFDM0IsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUTtZQUNsRyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRO1NBQzdGLENBQUMsQ0FBQztRQUNILGdDQUFnQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkMsT0FBTyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDbEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzs7WUF6QkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBVkMsTUFBTTtZQUxhLFFBQVE7Ozs7Ozs7O0lBa0JmLGlDQUFzQjs7Ozs7SUFBRSxtQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgQ2FuRGVhY3RpdmF0ZSxcbiAgUFJJTUFSWV9PVVRMRVQsXG4gIFJvdXRlcixcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgVXJsVHJlZVxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29uc3RydWN0YWJsZSwgbGFuZyB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBsYWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcGxhY2UtY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTGVhdmVQbGFjZUd1YXJkIGltcGxlbWVudHMgQ2FuRGVhY3RpdmF0ZTxQbGFjZUNvbXBvbmVudD4ge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gIH1cblxuICBjYW5EZWFjdGl2YXRlKGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIGN1cnJlbnRSb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgY3VycmVudFN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBuZXh0U3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4gfCBQcm9taXNlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IGJvb2xlYW4gfCBVcmxUcmVlIHtcbiAgICAvLyBIQUNLOiB0aGlzIHdpbGwgYnJlYWsgd2l0aCBjaGlsZCByb3V0ZXMuLi5cbiAgICBjb25zdCBwYXRoID0gYC8ke2NvbXBvbmVudC5wbGFjZURlZmluaXRpb24ucGF0aH1gO1xuICAgIGNvbnNvbGUubG9nKHtcbiAgICAgIHBsYWNlUGF0aDogcGF0aCxcbiAgICAgIGN1cnJlbnRSb3V0ZTogY3VycmVudFJvdXRlLnRvU3RyaW5nKCksXG4gICAgICBjdXJyZW50U3RhdGVVcmw6IGN1cnJlbnRTdGF0ZS51cmwsXG4gICAgICBuZXh0U3RhdGVVcmw6IG5leHRTdGF0ZS51cmwsXG4gICAgICBjdXJyZW50U3RhdGVVcmxUcmVlOiB0aGlzLnJvdXRlci5wYXJzZVVybChjdXJyZW50U3RhdGUudXJsKS5yb290LmNoaWxkcmVuW1BSSU1BUllfT1VUTEVUXS5zZWdtZW50cyxcbiAgICAgIG5leHRTdGF0ZVVybFRyZWU6IHRoaXMucm91dGVyLnBhcnNlVXJsKG5leHRTdGF0ZS51cmwpLnJvb3QuY2hpbGRyZW5bUFJJTUFSWV9PVVRMRVRdLnNlZ21lbnRzXG4gICAgfSk7XG4gICAgLy8gbmV4dFN0YXRlIGlzIHRoZSBmdWxsIHBhdGguLi5cbiAgICBpZiAoIW5leHRTdGF0ZS51cmwuc3RhcnRzV2l0aChwYXRoKSkge1xuICAgICAgcmV0dXJuIGNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=