@coolon/angular-ui-powerups 0.0.50 → 0.0.53

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 (38) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +392 -745
  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 +2 -2
  9. package/esm2015/lib/place/guards/place-route.guard.js +2 -2
  10. package/esm2015/lib/place/index.js +2 -2
  11. package/esm2015/lib/place/route/parameter-definition.class.js +17 -36
  12. package/esm2015/lib/place/route/parameter-sanitiser.js +3 -4
  13. package/esm2015/lib/place/route/parameter-snapshot.js +66 -208
  14. package/esm2015/lib/place/route/route-parameter-value.js +223 -0
  15. package/esm2015/public_api.js +2 -2
  16. package/esm5/coolon-angular-ui-powerups.js +2 -2
  17. package/esm5/index.js +2 -2
  18. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +2 -2
  19. package/esm5/lib/place/guards/place-route.guard.js +2 -2
  20. package/esm5/lib/place/index.js +2 -2
  21. package/esm5/lib/place/route/parameter-definition.class.js +18 -45
  22. package/esm5/lib/place/route/parameter-sanitiser.js +3 -4
  23. package/esm5/lib/place/route/parameter-snapshot.js +73 -273
  24. package/esm5/lib/place/route/route-parameter-value.js +309 -0
  25. package/esm5/public_api.js +2 -2
  26. package/fesm2015/coolon-angular-ui-powerups.js +304 -537
  27. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  28. package/fesm5/coolon-angular-ui-powerups.js +394 -746
  29. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  30. package/lib/place/index.d.ts +1 -1
  31. package/lib/place/route/parameter-definition.class.d.ts +2 -2
  32. package/lib/place/route/parameter-sanitiser.d.ts +2 -2
  33. package/lib/place/route/parameter-snapshot.d.ts +6 -27
  34. package/lib/place/route/route-parameter-value.d.ts +42 -0
  35. package/package.json +1 -1
  36. package/esm2015/lib/place/route/route-parameter-sanitiser.js +0 -296
  37. package/esm5/lib/place/route/route-parameter-sanitiser.js +0 -435
  38. package/lib/place/route/route-parameter-sanitiser.d.ts +0 -44
@@ -2516,6 +2516,307 @@
2516
2516
  PlaceRouter.prototype.router;
2517
2517
  }
2518
2518
 
2519
+ /**
2520
+ * @fileoverview added by tsickle
2521
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2522
+ */
2523
+ /**
2524
+ * @abstract
2525
+ * @template S, T, R
2526
+ */
2527
+ /**
2528
+ * @abstract
2529
+ * @template S, T, R
2530
+ */
2531
+ exports.RouteParameterValue = /** @class */ (function () {
2532
+ function RouteParameterValue(definition, rawValue) {
2533
+ this.definition = definition;
2534
+ this.rawValue = rawValue;
2535
+ }
2536
+ /**
2537
+ * @return {?}
2538
+ */
2539
+ RouteParameterValue.prototype.isRouteId = /**
2540
+ * @return {?}
2541
+ */
2542
+ function () {
2543
+ return this.definition.isRouteId;
2544
+ };
2545
+ /**
2546
+ * @param {?} otherValue
2547
+ * @return {?}
2548
+ */
2549
+ RouteParameterValue.prototype.hasChanged = /**
2550
+ * @param {?} otherValue
2551
+ * @return {?}
2552
+ */
2553
+ function (otherValue) {
2554
+ return this.isEmpty() ?
2555
+ !this.isEmptyValue(otherValue) :
2556
+ this.isEmptyValue(otherValue) || !this.isSameValue(otherValue);
2557
+ };
2558
+ /**
2559
+ * Return's true if the current value is empty.
2560
+ */
2561
+ /**
2562
+ * Return's true if the current value is empty.
2563
+ * @return {?}
2564
+ */
2565
+ RouteParameterValue.prototype.isEmpty = /**
2566
+ * Return's true if the current value is empty.
2567
+ * @return {?}
2568
+ */
2569
+ function () {
2570
+ return this.isEmptyValue(this.value);
2571
+ };
2572
+ /**
2573
+ * Returns true if the rawValue is undefined. This
2574
+ */
2575
+ /**
2576
+ * Returns true if the rawValue is undefined. This
2577
+ * @return {?}
2578
+ */
2579
+ RouteParameterValue.prototype.isMissing = /**
2580
+ * Returns true if the rawValue is undefined. This
2581
+ * @return {?}
2582
+ */
2583
+ function () {
2584
+ return ___default__default.isUndefined(this.rawValue);
2585
+ };
2586
+ /**
2587
+ * @param {?} visit
2588
+ * @param {?} injector
2589
+ * @return {?}
2590
+ */
2591
+ RouteParameterValue.prototype.sanitise = /**
2592
+ * @param {?} visit
2593
+ * @param {?} injector
2594
+ * @return {?}
2595
+ */
2596
+ function (visit, injector) {
2597
+ return __awaiter(this, void 0, void 0, function () {
2598
+ var sanitiser;
2599
+ return __generator(this, function (_a) {
2600
+ sanitiser = this.definition.getSanitiser(injector);
2601
+ if (sanitiser) {
2602
+ return [2 /*return*/, sanitiser.sanitise(this, visit)];
2603
+ }
2604
+ else {
2605
+ return [2 /*return*/, this.value];
2606
+ }
2607
+ return [2 /*return*/];
2608
+ });
2609
+ });
2610
+ };
2611
+ return RouteParameterValue;
2612
+ }());
2613
+ if (false) {
2614
+ /** @type {?} */
2615
+ exports.RouteParameterValue.prototype.value;
2616
+ /** @type {?} */
2617
+ exports.RouteParameterValue.prototype.definition;
2618
+ /**
2619
+ * @type {?}
2620
+ * @protected
2621
+ */
2622
+ exports.RouteParameterValue.prototype.rawValue;
2623
+ /**
2624
+ * @abstract
2625
+ * @param {?} otherValue
2626
+ * @return {?}
2627
+ */
2628
+ exports.RouteParameterValue.prototype.isSameValue = function (otherValue) { };
2629
+ /**
2630
+ * @abstract
2631
+ * @return {?}
2632
+ */
2633
+ exports.RouteParameterValue.prototype.formattedValue = function () { };
2634
+ /**
2635
+ * @abstract
2636
+ * @param {?} value
2637
+ * @return {?}
2638
+ */
2639
+ exports.RouteParameterValue.prototype.replace = function (value) { };
2640
+ /**
2641
+ * @abstract
2642
+ * @param {?} value
2643
+ * @return {?}
2644
+ */
2645
+ exports.RouteParameterValue.prototype.isEmptyValue = function (value) { };
2646
+ }
2647
+ (function (RouteParameterValue) {
2648
+ /**
2649
+ * @template T
2650
+ * @param {?} def
2651
+ * @param {?} paramMap
2652
+ * @return {?}
2653
+ */
2654
+ function create(def, paramMap) {
2655
+ // NOTE: Using undefined is important as it triggers the isMissing flag which is used by defaultValue and remember flags
2656
+ return def.isArray ?
2657
+ new RouteParameterValue.Array(def, paramMap.has(def.name) ? paramMap.getAll(def.name) : undefined) :
2658
+ new RouteParameterValue.Scalar(def, paramMap.has(def.name) ? paramMap.get(def.name) : undefined);
2659
+ }
2660
+ RouteParameterValue.create = create;
2661
+ /**
2662
+ * @template T
2663
+ */
2664
+ var Scalar = /** @class */ (function (_super) {
2665
+ __extends(Scalar, _super);
2666
+ function Scalar() {
2667
+ return _super !== null && _super.apply(this, arguments) || this;
2668
+ }
2669
+ Object.defineProperty(Scalar.prototype, "value", {
2670
+ get: /**
2671
+ * @return {?}
2672
+ */
2673
+ function () {
2674
+ return this.definition.type.parse(this.rawValue);
2675
+ },
2676
+ enumerable: true,
2677
+ configurable: true
2678
+ });
2679
+ /**
2680
+ * @param {?} otherValue
2681
+ * @return {?}
2682
+ */
2683
+ Scalar.prototype.isSameValue = /**
2684
+ * @param {?} otherValue
2685
+ * @return {?}
2686
+ */
2687
+ function (otherValue) {
2688
+ return this.value === otherValue;
2689
+ };
2690
+ /**
2691
+ * @param {?} value
2692
+ * @return {?}
2693
+ */
2694
+ Scalar.prototype.replace = /**
2695
+ * @param {?} value
2696
+ * @return {?}
2697
+ */
2698
+ function (value) {
2699
+ return new RouteParameterValue.Scalar(this.definition, this.isEmptyValue(value) ? undefined : this.definition.type.format(value));
2700
+ };
2701
+ /**
2702
+ * @return {?}
2703
+ */
2704
+ Scalar.prototype.formattedValue = /**
2705
+ * @return {?}
2706
+ */
2707
+ function () {
2708
+ return this.isEmpty() ? undefined : this.definition.type.format(this.value);
2709
+ };
2710
+ /**
2711
+ * @param {?} value
2712
+ * @return {?}
2713
+ */
2714
+ Scalar.prototype.isEmptyValue = /**
2715
+ * @param {?} value
2716
+ * @return {?}
2717
+ */
2718
+ function (value) {
2719
+ return ___default__default.isNil(value);
2720
+ };
2721
+ __decorate([
2722
+ src.Memoize(),
2723
+ __metadata("design:type", Object),
2724
+ __metadata("design:paramtypes", [])
2725
+ ], Scalar.prototype, "value", null);
2726
+ return Scalar;
2727
+ }(RouteParameterValue));
2728
+ RouteParameterValue.Scalar = Scalar;
2729
+ /**
2730
+ * @template T
2731
+ */
2732
+ var Array = /** @class */ (function (_super) {
2733
+ __extends(Array, _super);
2734
+ function Array() {
2735
+ return _super !== null && _super.apply(this, arguments) || this;
2736
+ }
2737
+ Object.defineProperty(Array.prototype, "value", {
2738
+ get: /**
2739
+ * @return {?}
2740
+ */
2741
+ function () {
2742
+ var _this = this;
2743
+ return (this.rawValue || [])
2744
+ .filter((/**
2745
+ * @param {?} s
2746
+ * @return {?}
2747
+ */
2748
+ function (s) { return !___default__default.isEmpty(s); }))
2749
+ .map((/**
2750
+ * @param {?} raw
2751
+ * @return {?}
2752
+ */
2753
+ function (raw) { return _this.definition.type.parse(raw); }));
2754
+ },
2755
+ enumerable: true,
2756
+ configurable: true
2757
+ });
2758
+ /**
2759
+ * @param {?} otherValue
2760
+ * @return {?}
2761
+ */
2762
+ Array.prototype.isSameValue = /**
2763
+ * @param {?} otherValue
2764
+ * @return {?}
2765
+ */
2766
+ function (otherValue) {
2767
+ return ___default__default.isEqual(this.value, otherValue);
2768
+ };
2769
+ /**
2770
+ * @param {?} value
2771
+ * @return {?}
2772
+ */
2773
+ Array.prototype.replace = /**
2774
+ * @param {?} value
2775
+ * @return {?}
2776
+ */
2777
+ function (value) {
2778
+ var _this = this;
2779
+ return new RouteParameterValue.Array(this.definition, this.isEmptyValue(value) ? undefined : value.map((/**
2780
+ * @param {?} v
2781
+ * @return {?}
2782
+ */
2783
+ function (v) { return _this.definition.type.format(v); })));
2784
+ };
2785
+ /**
2786
+ * @return {?}
2787
+ */
2788
+ Array.prototype.formattedValue = /**
2789
+ * @return {?}
2790
+ */
2791
+ function () {
2792
+ var _this = this;
2793
+ return this.isEmpty() ? [] : this.value.map((/**
2794
+ * @param {?} v
2795
+ * @return {?}
2796
+ */
2797
+ function (v) { return _this.definition.type.format(v); }));
2798
+ };
2799
+ /**
2800
+ * @param {?} value
2801
+ * @return {?}
2802
+ */
2803
+ Array.prototype.isEmptyValue = /**
2804
+ * @param {?} value
2805
+ * @return {?}
2806
+ */
2807
+ function (value) {
2808
+ return ___default__default.isNil(value) || value.length < 1;
2809
+ };
2810
+ __decorate([
2811
+ src.Memoize(),
2812
+ __metadata("design:type", Array),
2813
+ __metadata("design:paramtypes", [])
2814
+ ], Array.prototype, "value", null);
2815
+ return Array;
2816
+ }(RouteParameterValue));
2817
+ RouteParameterValue.Array = Array;
2818
+ })(exports.RouteParameterValue || (exports.RouteParameterValue = {}));
2819
+
2519
2820
  /**
2520
2821
  * @fileoverview added by tsickle
2521
2822
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
@@ -2674,66 +2975,38 @@
2674
2975
  this.placeHistory = placeHistory;
2675
2976
  }
2676
2977
  /**
2677
- * @param {?} parameterDef
2678
- * @param {?} value
2978
+ * @param {?} parameter
2679
2979
  * @param {?=} visit
2680
2980
  * @return {?}
2681
2981
  */
2682
2982
  DefaultParameterSanitiser.prototype.sanitise = /**
2683
- * @param {?} parameterDef
2684
- * @param {?} value
2983
+ * @param {?} parameter
2685
2984
  * @param {?=} visit
2686
2985
  * @return {?}
2687
2986
  */
2688
- function (parameterDef, value, visit) {
2689
- var _this = this;
2690
- if (this.isBlank(parameterDef, value)) {
2691
- if (this.remember) {
2692
- /** @type {?} */
2693
- var visits = this.placeHistory.getHistory(visit.placeDefinition);
2694
- value = visits.map((/**
2695
- * @param {?} v
2696
- * @return {?}
2697
- */
2698
- function (v) { return v.getValueOf(parameterDef); }))
2699
- .filter((/**
2700
- * @param {?} v
2701
- * @return {?}
2702
- */
2703
- function (v) { return !___default__default.isNil(v); }))
2704
- .find((/**
2705
- * @param {?} v
2706
- * @return {?}
2707
- */
2708
- function (v) { return !_this.isBlank(parameterDef, v); }));
2987
+ function (parameter, visit) {
2988
+ /** @type {?} */
2989
+ var value = parameter.value;
2990
+ if (parameter.isMissing()) {
2991
+ /** @type {?} */
2992
+ var previousVisit = ___default__default.first(this.placeHistory.getHistory(visit.placeDefinition));
2993
+ if (this.remember && previousVisit) {
2994
+ value = previousVisit.getValueOf(parameter.definition);
2709
2995
  }
2710
- return this.isBlank(parameterDef, value) ? this.defaultValue : value;
2996
+ /** @type {?} */
2997
+ var s = parameter.isEmptyValue(value) ? this.defaultValue : value;
2998
+ console.log("missing -> " + parameter.definition.name + ", returning " + s);
2999
+ return s;
2711
3000
  }
2712
3001
  else {
3002
+ console.log("not missing -> " + parameter.definition.name);
2713
3003
  return value;
2714
3004
  }
2715
3005
  };
2716
- /**
2717
- * @private
2718
- * @param {?} def
2719
- * @param {?} value
2720
- * @return {?}
2721
- */
2722
- DefaultParameterSanitiser.prototype.isBlank = /**
2723
- * @private
2724
- * @param {?} def
2725
- * @param {?} value
2726
- * @return {?}
2727
- */
2728
- function (def, value) {
2729
- /** @type {?} */
2730
- var isNil = ___default__default.isNil(value);
2731
- return isNil ? true : def.isArray ? value['length'] < 1 : false;
2732
- };
2733
3006
  __decorate([
2734
3007
  pectin.Trace(),
2735
3008
  __metadata("design:type", Function),
2736
- __metadata("design:paramtypes", [ParameterDefinition, Object, Object]),
3009
+ __metadata("design:paramtypes", [exports.RouteParameterValue, Object]),
2737
3010
  __metadata("design:returntype", Object)
2738
3011
  ], DefaultParameterSanitiser.prototype, "sanitise", null);
2739
3012
  return DefaultParameterSanitiser;
@@ -2754,9 +3027,9 @@
2754
3027
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2755
3028
  */
2756
3029
  exports.ParameterSnapshot = /** @class */ (function () {
2757
- function ParameterSnapshot(placeDefinition, resolved) {
3030
+ function ParameterSnapshot(placeDefinition, parameters) {
2758
3031
  this.placeDefinition = placeDefinition;
2759
- this.resolved = resolved;
3032
+ this.parameters = parameters;
2760
3033
  }
2761
3034
  /**
2762
3035
  * @param {?} other
@@ -2771,18 +3044,18 @@
2771
3044
  function (other, debug) {
2772
3045
  if (debug === void 0) { debug = false; }
2773
3046
  /** @type {?} */
2774
- var changed = this.resolved.find((/**
3047
+ var changed = this.parameters.find((/**
2775
3048
  * @param {?} r
2776
3049
  * @return {?}
2777
3050
  */
2778
3051
  function (r) {
2779
- return !r.isSame(other.getValueOf(r.parameterDef));
3052
+ return r.hasChanged(other.getValueOf(r.definition));
2780
3053
  }));
2781
3054
  if (changed && debug) {
2782
3055
  console.log({
2783
- name: changed.parameterDef.name,
3056
+ name: changed.definition.name,
2784
3057
  mine: changed.value,
2785
- theirs: other.getValueOf(changed.parameterDef)
3058
+ theirs: other.getValueOf(changed.definition)
2786
3059
  });
2787
3060
  }
2788
3061
  return !!changed;
@@ -2798,11 +3071,11 @@
2798
3071
  * @return {?}
2799
3072
  */
2800
3073
  function (parameterDef) {
2801
- return this.resolved.find((/**
3074
+ return this.parameters.find((/**
2802
3075
  * @param {?} r
2803
3076
  * @return {?}
2804
3077
  */
2805
- function (r) { return r.parameterDef === parameterDef; }));
3078
+ function (r) { return r.definition === parameterDef; }));
2806
3079
  };
2807
3080
  /**
2808
3081
  * @template T, S
@@ -2838,11 +3111,11 @@
2838
3111
  */
2839
3112
  function (name) {
2840
3113
  /** @type {?} */
2841
- var resolvedParameter = this.resolved.find((/**
3114
+ var resolvedParameter = this.parameters.find((/**
2842
3115
  * @param {?} r
2843
3116
  * @return {?}
2844
3117
  */
2845
- function (r) { return r.parameterDef.name === name; }));
3118
+ function (r) { return r.definition.name === name; }));
2846
3119
  return resolvedParameter ? resolvedParameter.value : null;
2847
3120
  };
2848
3121
  /**
@@ -2856,11 +3129,11 @@
2856
3129
  function () {
2857
3130
  // RouteId's are never arrays: see parameter-decorators.ts createDefinition methods. It would be nice to
2858
3131
  // capture this in the type system though
2859
- return (/** @type {?} */ (this.resolved.find((/**
3132
+ return (/** @type {?} */ (this.parameters.find((/**
2860
3133
  * @param {?} p
2861
3134
  * @return {?}
2862
3135
  */
2863
- function (p) { return p.parameterDef.isRouteId; }))));
3136
+ function (p) { return p.definition.isRouteId; }))));
2864
3137
  };
2865
3138
  /**
2866
3139
  * @private
@@ -2871,11 +3144,11 @@
2871
3144
  * @return {?}
2872
3145
  */
2873
3146
  function () {
2874
- return this.resolved.filter((/**
3147
+ return this.parameters.filter((/**
2875
3148
  * @param {?} r
2876
3149
  * @return {?}
2877
3150
  */
2878
- function (r) { return !r.parameterDef.isRouteId; }));
3151
+ function (r) { return !r.definition.isRouteId; }));
2879
3152
  };
2880
3153
  /**
2881
3154
  * @return {?}
@@ -2897,6 +3170,19 @@
2897
3170
  var routeIdParam = this.getRouteIdParameter();
2898
3171
  return routeIdParam ? routeIdParam.formattedValue() : null;
2899
3172
  };
3173
+ /**
3174
+ * @return {?}
3175
+ */
3176
+ ParameterSnapshot.prototype.getNonEmptyParameters = /**
3177
+ * @return {?}
3178
+ */
3179
+ function () {
3180
+ return this.parameters.filter((/**
3181
+ * @param {?} p
3182
+ * @return {?}
3183
+ */
3184
+ function (p) { return !p.isEmpty(); }));
3185
+ };
2900
3186
  /**
2901
3187
  * @return {?}
2902
3188
  */
@@ -2907,35 +3193,35 @@
2907
3193
  /** @type {?} */
2908
3194
  var params = {};
2909
3195
  /** @type {?} */
2910
- var routeIdParam = this.resolved.filter((/**
3196
+ var routeIdParam = this.getNonEmptyParameters()
3197
+ .filter((/**
2911
3198
  * @param {?} p
2912
3199
  * @return {?}
2913
3200
  */
2914
- function (p) { return !p.parameterDef.isRouteId; })).forEach((/**
3201
+ function (p) { return !p.definition.isRouteId; }))
3202
+ .forEach((/**
2915
3203
  * @param {?} p
2916
3204
  * @return {?}
2917
3205
  */
2918
- function (p) {
2919
- params[p.parameterDef.name] = p.formattedValue();
2920
- }));
3206
+ function (p) { return params[p.definition.name] = p.formattedValue(); }));
2921
3207
  return params;
2922
3208
  };
2923
3209
  /**
2924
3210
  * @return {?}
2925
3211
  */
2926
- ParameterSnapshot.prototype.getAllFormattedParameters = /**
3212
+ ParameterSnapshot.prototype.getAllParameters = /**
2927
3213
  * @return {?}
2928
3214
  */
2929
3215
  function () {
2930
3216
  /** @type {?} */
2931
3217
  var params = {};
2932
3218
  /** @type {?} */
2933
- var routeIdParam = this.resolved.forEach((/**
3219
+ var routeIdParam = this.parameters.forEach((/**
2934
3220
  * @param {?} p
2935
3221
  * @return {?}
2936
3222
  */
2937
3223
  function (p) {
2938
- params[p.parameterDef.name] = p.formattedValue();
3224
+ params[p.definition.name] = p.value;
2939
3225
  }));
2940
3226
  return params;
2941
3227
  };
@@ -2952,12 +3238,12 @@
2952
3238
  * @return {?}
2953
3239
  */
2954
3240
  function (parameter, value) {
2955
- return new ParameterSnapshot(this.placeDefinition, this.resolved.map((/**
3241
+ return new ParameterSnapshot(this.placeDefinition, this.parameters.map((/**
2956
3242
  * @param {?} p
2957
3243
  * @return {?}
2958
3244
  */
2959
3245
  function (p) {
2960
- return p.parameterDef === parameter ? p.replace(value) : p;
3246
+ return p.definition === parameter ? p.replace(value) : p;
2961
3247
  })));
2962
3248
  };
2963
3249
  /**
@@ -2979,10 +3265,10 @@
2979
3265
  return [4 /*yield*/, routeId.sanitise(this, injector)];
2980
3266
  case 1:
2981
3267
  sanitisedValue = _a.sent();
2982
- if (!routeId.isSame(sanitisedValue)) {
3268
+ if (routeId.hasChanged(sanitisedValue)) {
2983
3269
  // if the route id has changed we redirect immediately as other
2984
3270
  // parameter sanitisers might use it.
2985
- return [2 /*return*/, this.replace(routeId.parameterDef, sanitisedValue)];
3271
+ return [2 /*return*/, this.replace(routeId.definition, sanitisedValue)];
2986
3272
  }
2987
3273
  _a.label = 2;
2988
3274
  case 2:
@@ -2996,8 +3282,8 @@
2996
3282
  return [4 /*yield*/, routeParameter.sanitise(this, injector)];
2997
3283
  case 4:
2998
3284
  sanitisedValue = _a.sent();
2999
- if (!routeParameter.isSame(sanitisedValue)) {
3000
- result = this.replace(routeParameter.parameterDef, sanitisedValue);
3285
+ if (routeParameter.hasChanged(sanitisedValue)) {
3286
+ result = result.replace(routeParameter.definition, sanitisedValue);
3001
3287
  }
3002
3288
  _a.label = 5;
3003
3289
  case 5:
@@ -3008,12 +3294,12 @@
3008
3294
  });
3009
3295
  });
3010
3296
  };
3011
- var _a, _b;
3297
+ var _a;
3012
3298
  __decorate([
3013
3299
  src.Memoize(),
3014
3300
  __metadata("design:type", Function),
3015
3301
  __metadata("design:paramtypes", [exports.ParameterDefinition]),
3016
- __metadata("design:returntype", ParameterSnapshot.ResolvedParameter)
3302
+ __metadata("design:returntype", exports.RouteParameterValue)
3017
3303
  ], ParameterSnapshot.prototype, "getParameter", null);
3018
3304
  __decorate([
3019
3305
  src.Memoize(),
@@ -3031,7 +3317,7 @@
3031
3317
  src.Memoize(),
3032
3318
  __metadata("design:type", Function),
3033
3319
  __metadata("design:paramtypes", []),
3034
- __metadata("design:returntype", ParameterSnapshot.ResolvedValueParameter)
3320
+ __metadata("design:returntype", exports.RouteParameterValue.Scalar)
3035
3321
  ], ParameterSnapshot.prototype, "getRouteIdParameter", null);
3036
3322
  __decorate([
3037
3323
  src.Memoize(),
@@ -3042,15 +3328,9 @@
3042
3328
  __decorate([
3043
3329
  pectin.Trace(),
3044
3330
  __metadata("design:type", Function),
3045
- __metadata("design:paramtypes", [exports.ParameterDefinition, typeof (_b = typeof S !== "undefined" && S) === "function" ? _b : Object]),
3046
- __metadata("design:returntype", ParameterSnapshot)
3047
- ], ParameterSnapshot.prototype, "replace", null);
3048
- __decorate([
3049
- pectin.Trace(),
3050
- __metadata("design:type", Function),
3051
- __metadata("design:paramtypes", [core.Injector]),
3052
- __metadata("design:returntype", Promise)
3053
- ], ParameterSnapshot.prototype, "sanitise", null);
3331
+ __metadata("design:paramtypes", []),
3332
+ __metadata("design:returntype", void 0)
3333
+ ], ParameterSnapshot.prototype, "getFormattedParameters", null);
3054
3334
  return ParameterSnapshot;
3055
3335
  }());
3056
3336
  if (false) {
@@ -3060,7 +3340,7 @@
3060
3340
  * @type {?}
3061
3341
  * @private
3062
3342
  */
3063
- exports.ParameterSnapshot.prototype.resolved;
3343
+ exports.ParameterSnapshot.prototype.parameters;
3064
3344
  }
3065
3345
  (function (ParameterSnapshot) {
3066
3346
  /**
@@ -3073,31 +3353,11 @@
3073
3353
  /** @type {?} */
3074
3354
  var paramMap = new ConsolidatedParameterMap(params, urlSegments);
3075
3355
  /** @type {?} */
3076
- var resolvedParameters = placeDef.getRouteParameters()
3077
- .map((/**
3356
+ var resolvedParameters = placeDef.getRouteParameters().map((/**
3078
3357
  * @param {?} def
3079
3358
  * @return {?}
3080
3359
  */
3081
- function (def) {
3082
- if (def.isArray) {
3083
- /** @type {?} */
3084
- var value = paramMap.has(def.name) ? paramMap.getAll(def.name).filter((/**
3085
- * @param {?} s
3086
- * @return {?}
3087
- */
3088
- function (s) { return !___default__default.isEmpty(s); })).map((/**
3089
- * @param {?} raw
3090
- * @return {?}
3091
- */
3092
- function (raw) { return def.type.parse(raw); })) : null;
3093
- return new ResolvedArrayParameter(def, value);
3094
- }
3095
- else {
3096
- /** @type {?} */
3097
- var value = paramMap.has(def.name) ? def.type.parse(paramMap.get(def.name)) : null;
3098
- return new ResolvedValueParameter(def, value);
3099
- }
3100
- }));
3360
+ function (def) { return exports.RouteParameterValue.create(def, paramMap); }));
3101
3361
  return new ParameterSnapshot(placeDef, resolvedParameters);
3102
3362
  }
3103
3363
  ParameterSnapshot.create = create;
@@ -3106,12 +3366,7 @@
3106
3366
  * include the segment params in the paramMap as well as each segment returns an empty
3107
3367
  * param map even when `parameter`s has content.
3108
3368
  */
3109
- var /**
3110
- * This a work around for the fact that an activated route with multiple segments doesn't
3111
- * include the segment params in the paramMap as well as each segment returns an empty
3112
- * param map even when `parameter`s has content.
3113
- */
3114
- ConsolidatedParameterMap = /** @class */ (function () {
3369
+ var ConsolidatedParameterMap = /** @class */ (function () {
3115
3370
  function ConsolidatedParameterMap(paramMap, urlSegments) {
3116
3371
  this.paramMaps = [paramMap].concat((urlSegments || []).map((/**
3117
3372
  * @param {?} s
@@ -3168,6 +3423,26 @@
3168
3423
  */
3169
3424
  function (m) { return m.has(name); }));
3170
3425
  };
3426
+ Object.defineProperty(ConsolidatedParameterMap.prototype, "keys", {
3427
+ get: /**
3428
+ * @return {?}
3429
+ */
3430
+ function () {
3431
+ return this.paramMaps.reduce((/**
3432
+ * @param {?} result
3433
+ * @param {?} params
3434
+ * @return {?}
3435
+ */
3436
+ function (result, params) { return result.concat(params.keys); }), []);
3437
+ },
3438
+ enumerable: true,
3439
+ configurable: true
3440
+ });
3441
+ __decorate([
3442
+ src.Memoize(),
3443
+ __metadata("design:type", Array),
3444
+ __metadata("design:paramtypes", [])
3445
+ ], ConsolidatedParameterMap.prototype, "keys", null);
3171
3446
  return ConsolidatedParameterMap;
3172
3447
  }());
3173
3448
  if (false) {
@@ -3235,207 +3510,6 @@
3235
3510
  */
3236
3511
  ParamMapAdapter.prototype.params;
3237
3512
  }
3238
- /**
3239
- * @abstract
3240
- * @template T, S
3241
- */
3242
- var /**
3243
- * @abstract
3244
- * @template T, S
3245
- */
3246
- ResolvedParameter = /** @class */ (function () {
3247
- function ResolvedParameter(parameterDef, value) {
3248
- this.parameterDef = parameterDef;
3249
- this.value = value;
3250
- }
3251
- /**
3252
- * @return {?}
3253
- */
3254
- ResolvedParameter.prototype.isRouteId = /**
3255
- * @return {?}
3256
- */
3257
- function () {
3258
- return this.parameterDef.isRouteId;
3259
- };
3260
- /**
3261
- * @param {?} visit
3262
- * @param {?} injector
3263
- * @return {?}
3264
- */
3265
- ResolvedParameter.prototype.sanitise = /**
3266
- * @param {?} visit
3267
- * @param {?} injector
3268
- * @return {?}
3269
- */
3270
- function (visit, injector) {
3271
- return __awaiter(this, void 0, void 0, function () {
3272
- var sanitiser;
3273
- return __generator(this, function (_a) {
3274
- sanitiser = this.parameterDef.getSanitiser(injector);
3275
- if (sanitiser) {
3276
- return [2 /*return*/, sanitiser.sanitise(this.parameterDef, this.value, visit)];
3277
- }
3278
- else {
3279
- return [2 /*return*/, this.value];
3280
- }
3281
- return [2 /*return*/];
3282
- });
3283
- });
3284
- };
3285
- return ResolvedParameter;
3286
- }());
3287
- ParameterSnapshot.ResolvedParameter = ResolvedParameter;
3288
- if (false) {
3289
- /** @type {?} */
3290
- ResolvedParameter.prototype.parameterDef;
3291
- /** @type {?} */
3292
- ResolvedParameter.prototype.value;
3293
- /**
3294
- * @abstract
3295
- * @param {?} dest
3296
- * @return {?}
3297
- */
3298
- ResolvedParameter.prototype.injectRouteParam = function (dest) { };
3299
- /**
3300
- * @abstract
3301
- * @param {?} otherValue
3302
- * @return {?}
3303
- */
3304
- ResolvedParameter.prototype.isSame = function (otherValue) { };
3305
- /**
3306
- * @abstract
3307
- * @return {?}
3308
- */
3309
- ResolvedParameter.prototype.formattedValue = function () { };
3310
- /**
3311
- * @abstract
3312
- * @param {?} value
3313
- * @return {?}
3314
- */
3315
- ResolvedParameter.prototype.replace = function (value) { };
3316
- }
3317
- /**
3318
- * @template T
3319
- */
3320
- var /**
3321
- * @template T
3322
- */
3323
- ResolvedValueParameter = /** @class */ (function (_super) {
3324
- __extends(ResolvedValueParameter, _super);
3325
- function ResolvedValueParameter() {
3326
- return _super !== null && _super.apply(this, arguments) || this;
3327
- }
3328
- /**
3329
- * @param {?} otherValue
3330
- * @return {?}
3331
- */
3332
- ResolvedValueParameter.prototype.isSame = /**
3333
- * @param {?} otherValue
3334
- * @return {?}
3335
- */
3336
- function (otherValue) {
3337
- return this.value === otherValue;
3338
- };
3339
- /**
3340
- * @param {?} dest
3341
- * @return {?}
3342
- */
3343
- ResolvedValueParameter.prototype.injectRouteParam = /**
3344
- * @param {?} dest
3345
- * @return {?}
3346
- */
3347
- function (dest) {
3348
- dest[this.parameterDef.name] = this.parameterDef.type.format(this.value);
3349
- };
3350
- /**
3351
- * @param {?} value
3352
- * @return {?}
3353
- */
3354
- ResolvedValueParameter.prototype.replace = /**
3355
- * @param {?} value
3356
- * @return {?}
3357
- */
3358
- function (value) {
3359
- return new ResolvedValueParameter(this.parameterDef, value);
3360
- };
3361
- /**
3362
- * @return {?}
3363
- */
3364
- ResolvedValueParameter.prototype.formattedValue = /**
3365
- * @return {?}
3366
- */
3367
- function () {
3368
- return !___default__default.isNil(this.value) ? this.parameterDef.type.format(this.value) : null;
3369
- };
3370
- return ResolvedValueParameter;
3371
- }(ResolvedParameter));
3372
- ParameterSnapshot.ResolvedValueParameter = ResolvedValueParameter;
3373
- /**
3374
- * @template T
3375
- */
3376
- var /**
3377
- * @template T
3378
- */
3379
- ResolvedArrayParameter = /** @class */ (function (_super) {
3380
- __extends(ResolvedArrayParameter, _super);
3381
- function ResolvedArrayParameter() {
3382
- return _super !== null && _super.apply(this, arguments) || this;
3383
- }
3384
- /**
3385
- * @param {?} otherValue
3386
- * @return {?}
3387
- */
3388
- ResolvedArrayParameter.prototype.isSame = /**
3389
- * @param {?} otherValue
3390
- * @return {?}
3391
- */
3392
- function (otherValue) {
3393
- return ___default__default.isEqual(this.value, otherValue);
3394
- };
3395
- /**
3396
- * @param {?} dest
3397
- * @return {?}
3398
- */
3399
- ResolvedArrayParameter.prototype.injectRouteParam = /**
3400
- * @param {?} dest
3401
- * @return {?}
3402
- */
3403
- function (dest) {
3404
- var _this = this;
3405
- dest[this.parameterDef.name] = this.value.map((/**
3406
- * @param {?} v
3407
- * @return {?}
3408
- */
3409
- function (v) { return _this.parameterDef.type.format(v); }));
3410
- };
3411
- /**
3412
- * @param {?} value
3413
- * @return {?}
3414
- */
3415
- ResolvedArrayParameter.prototype.replace = /**
3416
- * @param {?} value
3417
- * @return {?}
3418
- */
3419
- function (value) {
3420
- return new ResolvedArrayParameter(this.parameterDef, value);
3421
- };
3422
- /**
3423
- * @return {?}
3424
- */
3425
- ResolvedArrayParameter.prototype.formattedValue = /**
3426
- * @return {?}
3427
- */
3428
- function () {
3429
- var _this = this;
3430
- return this.value ? this.value.map((/**
3431
- * @param {?} v
3432
- * @return {?}
3433
- */
3434
- function (v) { return _this.parameterDef.type.format(v); })) : [];
3435
- };
3436
- return ResolvedArrayParameter;
3437
- }(ResolvedParameter));
3438
- ParameterSnapshot.ResolvedArrayParameter = ResolvedArrayParameter;
3439
3513
  })(exports.ParameterSnapshot || (exports.ParameterSnapshot = {}));
3440
3514
 
3441
3515
  /**
@@ -3561,8 +3635,8 @@
3561
3635
  * @return {?}
3562
3636
  */
3563
3637
  function (next, previous) {
3564
- _this.pushChangesToRoute(next, previous);
3565
3638
  _this.placeHistory.add(next); // the above route change doesn't seem to propagate back in, so I'm add the state to the history manually for now.
3639
+ _this.pushChangesToRoute(next, previous);
3566
3640
  }), {
3567
3641
  unless: _this.incomingRouteChange
3568
3642
  });
@@ -4434,7 +4508,7 @@
4434
4508
  * @return {?}
4435
4509
  */
4436
4510
  function (sanitised) {
4437
- pectin.Logger.get(_this).info("ParameterSnapshot.sanitise", { sanitised: sanitised });
4511
+ pectin.Logger.get(_this).info("ParameterSnapshot.sanitise ->", sanitised.getAllParameters());
4438
4512
  if (sanitised.hasChanged(snapshot_1, true)) {
4439
4513
  return _this.placeRouter.getRedirectUrlTree(activatedRoute, sanitised);
4440
4514
  }
@@ -4589,12 +4663,11 @@
4589
4663
  function ParameterSanitiser() { }
4590
4664
  if (false) {
4591
4665
  /**
4592
- * @param {?} parameterDef
4593
- * @param {?} value
4666
+ * @param {?} paramter
4594
4667
  * @param {?=} visit
4595
4668
  * @return {?}
4596
4669
  */
4597
- ParameterSanitiser.prototype.sanitise = function (parameterDef, value, visit) { };
4670
+ ParameterSanitiser.prototype.sanitise = function (paramter, visit) { };
4598
4671
  }
4599
4672
 
4600
4673
  /**
@@ -4690,431 +4763,6 @@
4690
4763
  ParameterType.BOOLEAN = new BooleanType();
4691
4764
  })(exports.ParameterType || (exports.ParameterType = {}));
4692
4765
 
4693
- /**
4694
- * @fileoverview added by tsickle
4695
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4696
- */
4697
- /**
4698
- * @template T, S
4699
- */
4700
- /**
4701
- * @template T, S
4702
- */
4703
- exports.Sanitiser = /** @class */ (function () {
4704
- function Sanitiser(parameterDef, snapshot, sanitiser) {
4705
- this.parameterDef = parameterDef;
4706
- this.snapshot = snapshot;
4707
- this.sanitiser = sanitiser;
4708
- }
4709
- /**
4710
- * @return {?}
4711
- */
4712
- Sanitiser.prototype.isRouteId = /**
4713
- * @return {?}
4714
- */
4715
- function () {
4716
- return this.parameterDef.isRouteId;
4717
- };
4718
- Object.defineProperty(Sanitiser.prototype, "valueChanged", {
4719
- get: /**
4720
- * @return {?}
4721
- */
4722
- function () {
4723
- return !___default__default.isNil(this.initialValue) && this.hasChanged(this.initialValue, this.sanitisedValue);
4724
- },
4725
- enumerable: true,
4726
- configurable: true
4727
- });
4728
- Object.defineProperty(Sanitiser.prototype, "sanitisedValue", {
4729
- get: /**
4730
- * @return {?}
4731
- */
4732
- function () {
4733
- return this._sanitisedValue;
4734
- },
4735
- enumerable: true,
4736
- configurable: true
4737
- });
4738
- /**
4739
- * @protected
4740
- * @param {?} snapshot
4741
- * @return {?}
4742
- */
4743
- Sanitiser.prototype.readFrom = /**
4744
- * @protected
4745
- * @param {?} snapshot
4746
- * @return {?}
4747
- */
4748
- function (snapshot) {
4749
- return pectin.lang.abstractMethod(this.constructor);
4750
- };
4751
- /**
4752
- * @protected
4753
- * @param {?} initialValue
4754
- * @param {?} sanitisedValue
4755
- * @return {?}
4756
- */
4757
- Sanitiser.prototype.hasChanged = /**
4758
- * @protected
4759
- * @param {?} initialValue
4760
- * @param {?} sanitisedValue
4761
- * @return {?}
4762
- */
4763
- function (initialValue, sanitisedValue) {
4764
- return pectin.lang.abstractMethod(this.constructor);
4765
- };
4766
- /**
4767
- * @param {?} dest
4768
- * @return {?}
4769
- */
4770
- Sanitiser.prototype.injectRouteParam = /**
4771
- * @param {?} dest
4772
- * @return {?}
4773
- */
4774
- function (dest) {
4775
- pectin.lang.abstractMethod(this.constructor);
4776
- };
4777
- /**
4778
- * @return {?}
4779
- */
4780
- Sanitiser.prototype.sanitize = /**
4781
- * @return {?}
4782
- */
4783
- function () {
4784
- return __awaiter(this, void 0, void 0, function () {
4785
- var _a;
4786
- return __generator(this, function (_b) {
4787
- switch (_b.label) {
4788
- case 0:
4789
- if (!this.sanitiser) return [3 /*break*/, 2];
4790
- this.initialValue = this.readFrom(this.snapshot);
4791
- _a = this;
4792
- return [4 /*yield*/, this.sanitiser.sanitise(null, this.initialValue)];
4793
- case 1:
4794
- _a._sanitisedValue = _b.sent();
4795
- if (this.initialValue !== this._sanitisedValue) {
4796
- return [2 /*return*/, false];
4797
- }
4798
- _b.label = 2;
4799
- case 2: return [2 /*return*/, true];
4800
- }
4801
- });
4802
- });
4803
- };
4804
- return Sanitiser;
4805
- }());
4806
- if (false) {
4807
- /**
4808
- * @type {?}
4809
- * @private
4810
- */
4811
- exports.Sanitiser.prototype.initialValue;
4812
- /**
4813
- * @type {?}
4814
- * @private
4815
- */
4816
- exports.Sanitiser.prototype._sanitisedValue;
4817
- /** @type {?} */
4818
- exports.Sanitiser.prototype.parameterDef;
4819
- /** @type {?} */
4820
- exports.Sanitiser.prototype.snapshot;
4821
- /** @type {?} */
4822
- exports.Sanitiser.prototype.sanitiser;
4823
- }
4824
- var RouteParameterSanitiser = /** @class */ (function () {
4825
- function RouteParameterSanitiser(parameterDefs, snapshot, injector) {
4826
- var _this = this;
4827
- this.parameterDefs = parameterDefs;
4828
- this.snapshot = snapshot;
4829
- this.injector = injector;
4830
- this.parameterSanitisers = [];
4831
- /** @type {?} */
4832
- var sanitisers = parameterDefs.map((/**
4833
- * @param {?} def
4834
- * @return {?}
4835
- */
4836
- function (def) {
4837
- return def.isArray ?
4838
- new exports.Sanitiser.Array(def, snapshot, _this.getSanitiser(def)) :
4839
- new exports.Sanitiser.Value(def, snapshot, _this.getSanitiser(def));
4840
- }));
4841
- this.routeIdSanitiser = sanitisers.find((/**
4842
- * @param {?} p
4843
- * @return {?}
4844
- */
4845
- function (p) { return p.isRouteId(); }));
4846
- this.parameterSanitisers = sanitisers.filter((/**
4847
- * @param {?} p
4848
- * @return {?}
4849
- */
4850
- function (p) { return !p.isRouteId(); }));
4851
- }
4852
- /**
4853
- * @return {?}
4854
- */
4855
- RouteParameterSanitiser.prototype.sanitise = /**
4856
- * @return {?}
4857
- */
4858
- function () {
4859
- return __awaiter(this, void 0, void 0, function () {
4860
- var e_1, _a, _b, _c, sanitiser, e_1_1;
4861
- return __generator(this, function (_d) {
4862
- switch (_d.label) {
4863
- case 0:
4864
- if (!this.routeIdSanitiser) return [3 /*break*/, 2];
4865
- return [4 /*yield*/, this.routeIdSanitiser.sanitize()];
4866
- case 1:
4867
- _d.sent();
4868
- if (this.routeIdSanitiser.valueChanged) {
4869
- // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the
4870
- // context of the route id.
4871
- return [2 /*return*/, false];
4872
- }
4873
- _d.label = 2;
4874
- case 2:
4875
- _d.trys.push([2, 7, 8, 9]);
4876
- _b = __values(this.parameterSanitisers), _c = _b.next();
4877
- _d.label = 3;
4878
- case 3:
4879
- if (!!_c.done) return [3 /*break*/, 6];
4880
- sanitiser = _c.value;
4881
- return [4 /*yield*/, sanitiser.sanitize()];
4882
- case 4:
4883
- _d.sent();
4884
- _d.label = 5;
4885
- case 5:
4886
- _c = _b.next();
4887
- return [3 /*break*/, 3];
4888
- case 6: return [3 /*break*/, 9];
4889
- case 7:
4890
- e_1_1 = _d.sent();
4891
- e_1 = { error: e_1_1 };
4892
- return [3 /*break*/, 9];
4893
- case 8:
4894
- try {
4895
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
4896
- }
4897
- finally { if (e_1) throw e_1.error; }
4898
- return [7 /*endfinally*/];
4899
- case 9: return [2 /*return*/, !this.parameterSanitisers.find((/**
4900
- * @param {?} s
4901
- * @return {?}
4902
- */
4903
- function (s) { return s.valueChanged; }))];
4904
- }
4905
- });
4906
- });
4907
- };
4908
- /**
4909
- * @private
4910
- * @template T, S
4911
- * @param {?} def
4912
- * @return {?}
4913
- */
4914
- RouteParameterSanitiser.prototype.getSanitiser = /**
4915
- * @private
4916
- * @template T, S
4917
- * @param {?} def
4918
- * @return {?}
4919
- */
4920
- function (def) {
4921
- return def.getSanitiser(this.injector);
4922
- };
4923
- /**
4924
- * @return {?}
4925
- */
4926
- RouteParameterSanitiser.prototype.routeIdHasChanged = /**
4927
- * @return {?}
4928
- */
4929
- function () {
4930
- pectin.assert.isTruthy(this.parameterSanitisers.length !== 0);
4931
- return this.routeIdSanitiser && this.routeIdSanitiser.valueChanged;
4932
- };
4933
- // @Trace()
4934
- // @Trace()
4935
- /**
4936
- * @return {?}
4937
- */
4938
- RouteParameterSanitiser.prototype.getRedirectParams =
4939
- // @Trace()
4940
- /**
4941
- * @return {?}
4942
- */
4943
- function () {
4944
- if (this.routeIdHasChanged()) {
4945
- return [this.routeIdSanitiser.sanitisedValue];
4946
- }
4947
- else {
4948
- /** @type {?} */
4949
- var routeParams_1 = {};
4950
- this.parameterSanitisers.forEach((/**
4951
- * @param {?} s
4952
- * @return {?}
4953
- */
4954
- function (s) { return s.injectRouteParam(routeParams_1); }));
4955
- return [routeParams_1];
4956
- }
4957
- };
4958
- /**
4959
- * @private
4960
- * @template S
4961
- * @param {?} value
4962
- * @return {?}
4963
- */
4964
- RouteParameterSanitiser.prototype.isSanitiserContructor = /**
4965
- * @private
4966
- * @template S
4967
- * @param {?} value
4968
- * @return {?}
4969
- */
4970
- function (value) {
4971
- return ___default__default.isFunction(value) && pectin.lang.constructorChain((/** @type {?} */ ((/** @type {?} */ (value))))).includes(exports.Sanitiser);
4972
- };
4973
- __decorate([
4974
- src.Memoize(),
4975
- __metadata("design:type", Function),
4976
- __metadata("design:paramtypes", [exports.ParameterDefinition]),
4977
- __metadata("design:returntype", Object)
4978
- ], RouteParameterSanitiser.prototype, "getSanitiser", null);
4979
- return RouteParameterSanitiser;
4980
- }());
4981
- if (false) {
4982
- /**
4983
- * @type {?}
4984
- * @private
4985
- */
4986
- RouteParameterSanitiser.prototype.routeIdSanitiser;
4987
- /**
4988
- * @type {?}
4989
- * @private
4990
- */
4991
- RouteParameterSanitiser.prototype.parameterSanitisers;
4992
- /** @type {?} */
4993
- RouteParameterSanitiser.prototype.parameterDefs;
4994
- /** @type {?} */
4995
- RouteParameterSanitiser.prototype.snapshot;
4996
- /** @type {?} */
4997
- RouteParameterSanitiser.prototype.injector;
4998
- }
4999
- (function (Sanitiser) {
5000
- /**
5001
- * @template T
5002
- */
5003
- var /**
5004
- * @template T
5005
- */
5006
- Value = /** @class */ (function (_super) {
5007
- __extends(Value, _super);
5008
- function Value() {
5009
- return _super !== null && _super.apply(this, arguments) || this;
5010
- }
5011
- /**
5012
- * @param {?} snapshot
5013
- * @return {?}
5014
- */
5015
- Value.prototype.readFrom = /**
5016
- * @param {?} snapshot
5017
- * @return {?}
5018
- */
5019
- function (snapshot) {
5020
- /** @type {?} */
5021
- var rawValue = snapshot.paramMap.get(this.parameterDef.name);
5022
- return this.parameterDef.type.parse(rawValue);
5023
- };
5024
- /**
5025
- * @protected
5026
- * @param {?} initialValue
5027
- * @param {?} sanitisedValue
5028
- * @return {?}
5029
- */
5030
- Value.prototype.hasChanged = /**
5031
- * @protected
5032
- * @param {?} initialValue
5033
- * @param {?} sanitisedValue
5034
- * @return {?}
5035
- */
5036
- function (initialValue, sanitisedValue) {
5037
- return initialValue !== sanitisedValue;
5038
- };
5039
- /**
5040
- * @param {?} dest
5041
- * @return {?}
5042
- */
5043
- Value.prototype.injectRouteParam = /**
5044
- * @param {?} dest
5045
- * @return {?}
5046
- */
5047
- function (dest) {
5048
- dest[this.parameterDef.name] = this.parameterDef.type.format(this.sanitisedValue);
5049
- };
5050
- return Value;
5051
- }(Sanitiser));
5052
- Sanitiser.Value = Value;
5053
- /**
5054
- * @template T
5055
- */
5056
- var /**
5057
- * @template T
5058
- */
5059
- Array = /** @class */ (function (_super) {
5060
- __extends(Array, _super);
5061
- function Array() {
5062
- return _super !== null && _super.apply(this, arguments) || this;
5063
- }
5064
- /**
5065
- * @param {?} snapshot
5066
- * @return {?}
5067
- */
5068
- Array.prototype.readFrom = /**
5069
- * @param {?} snapshot
5070
- * @return {?}
5071
- */
5072
- function (snapshot) {
5073
- var _this = this;
5074
- /** @type {?} */
5075
- var rawValues = snapshot.paramMap.getAll(this.parameterDef.name);
5076
- return rawValues.map((/**
5077
- * @param {?} value
5078
- * @return {?}
5079
- */
5080
- function (value) { return _this.parameterDef.type.parse(value); }));
5081
- };
5082
- /**
5083
- * @protected
5084
- * @param {?} initialValue
5085
- * @param {?} sanitisedValue
5086
- * @return {?}
5087
- */
5088
- Array.prototype.hasChanged = /**
5089
- * @protected
5090
- * @param {?} initialValue
5091
- * @param {?} sanitisedValue
5092
- * @return {?}
5093
- */
5094
- function (initialValue, sanitisedValue) {
5095
- return initialValue !== sanitisedValue;
5096
- };
5097
- /**
5098
- * @param {?} dest
5099
- * @return {?}
5100
- */
5101
- Array.prototype.injectRouteParam = /**
5102
- * @param {?} dest
5103
- * @return {?}
5104
- */
5105
- function (dest) {
5106
- var _this = this;
5107
- dest[this.parameterDef.name] = this.sanitisedValue.map((/**
5108
- * @param {?} v
5109
- * @return {?}
5110
- */
5111
- function (v) { return _this.parameterDef.type.format(v); }));
5112
- };
5113
- return Array;
5114
- }(Sanitiser));
5115
- Sanitiser.Array = Array;
5116
- })(exports.Sanitiser || (exports.Sanitiser = {}));
5117
-
5118
4766
  exports.ACTIVITY_DATA = ACTIVITY_DATA;
5119
4767
  exports.AbstractActivity = AbstractActivity;
5120
4768
  exports.AbstractInputComponent = AbstractInputComponent;
@@ -5153,7 +4801,6 @@
5153
4801
  exports.RouteId = RouteId;
5154
4802
  exports.RouteParameter = RouteParameter;
5155
4803
  exports.RouteParameterList = RouteParameterList;
5156
- exports.RouteParameterSanitiser = RouteParameterSanitiser;
5157
4804
  exports.SelectInputComponent = SelectInputComponent;
5158
4805
  exports.StringInputComponent = StringInputComponent;
5159
4806
  exports.TabbedPlaceNavigationComponent = TabbedPlaceNavigationComponent;