@coolon/angular-ui-powerups 0.0.51 → 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.
- package/bundles/coolon-angular-ui-powerups.umd.js +393 -750
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +2 -2
- package/esm2015/index.js +2 -2
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +2 -2
- package/esm2015/lib/place/guards/place-route.guard.js +2 -2
- package/esm2015/lib/place/index.js +2 -2
- package/esm2015/lib/place/route/parameter-definition.class.js +24 -35
- package/esm2015/lib/place/route/parameter-sanitiser.js +3 -4
- package/esm2015/lib/place/route/parameter-snapshot.js +65 -209
- package/esm2015/lib/place/route/route-parameter-value.js +223 -0
- package/esm2015/public_api.js +2 -2
- package/esm5/coolon-angular-ui-powerups.js +2 -2
- package/esm5/index.js +2 -2
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +2 -2
- package/esm5/lib/place/guards/place-route.guard.js +2 -2
- package/esm5/lib/place/index.js +2 -2
- package/esm5/lib/place/route/parameter-definition.class.js +25 -48
- package/esm5/lib/place/route/parameter-sanitiser.js +3 -4
- package/esm5/lib/place/route/parameter-snapshot.js +69 -274
- package/esm5/lib/place/route/route-parameter-value.js +309 -0
- package/esm5/public_api.js +2 -2
- package/fesm2015/coolon-angular-ui-powerups.js +308 -539
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +396 -752
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/place/index.d.ts +1 -1
- package/lib/place/route/parameter-definition.class.d.ts +2 -2
- package/lib/place/route/parameter-sanitiser.d.ts +2 -2
- package/lib/place/route/parameter-snapshot.d.ts +5 -27
- package/lib/place/route/route-parameter-value.d.ts +42 -0
- package/package.json +1 -1
- package/esm2015/lib/place/route/route-parameter-sanitiser.js +0 -296
- package/esm5/lib/place/route/route-parameter-sanitiser.js +0 -435
- package/lib/place/route/route-parameter-sanitiser.d.ts +0 -44
|
@@ -5,7 +5,7 @@ import { MatDialog, MatButtonModule, MatDialogModule, MatTabsModule, MatProgress
|
|
|
5
5
|
import { MatTabsModule as MatTabsModule$1 } from '@angular/material/tabs';
|
|
6
6
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
7
7
|
import { __decorate, __metadata, __awaiter } from 'tslib';
|
|
8
|
-
import { GarbageCollector, DelegatingFormValueModel, UseDelegate, ValueModel, ListModel, StoreInListModel, assert, UnaryCommand, lang, Dsl, Logger, EventListenerList, DelegatingValueModel, MutableListModel, StoreInValueModel, Binding, MutableValueModel, Guard, OptionsHelper, ValueHolder } from '@coolon/pectin';
|
|
8
|
+
import { GarbageCollector, DelegatingFormValueModel, UseDelegate, ValueModel, ListModel, StoreInListModel, assert, UnaryCommand, lang, Dsl, Logger, EventListenerList, DelegatingValueModel, MutableListModel, StoreInValueModel, Binding, Trace, MutableValueModel, Guard, OptionsHelper, ValueHolder } from '@coolon/pectin';
|
|
9
9
|
import { PortalModule } from '@angular/cdk/portal';
|
|
10
10
|
import { Deferred } from '@coolon/pectin/lib/promise/deferred.class';
|
|
11
11
|
import { assert as assert$1, Klass, Opts } from '@coolon/typescript-utilities';
|
|
@@ -1932,6 +1932,226 @@ if (false) {
|
|
|
1932
1932
|
PlaceRouter.prototype.router;
|
|
1933
1933
|
}
|
|
1934
1934
|
|
|
1935
|
+
/**
|
|
1936
|
+
* @fileoverview added by tsickle
|
|
1937
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
1938
|
+
*/
|
|
1939
|
+
/**
|
|
1940
|
+
* @abstract
|
|
1941
|
+
* @template S, T, R
|
|
1942
|
+
*/
|
|
1943
|
+
class RouteParameterValue {
|
|
1944
|
+
/**
|
|
1945
|
+
* @param {?} definition
|
|
1946
|
+
* @param {?} rawValue
|
|
1947
|
+
*/
|
|
1948
|
+
constructor(definition, rawValue) {
|
|
1949
|
+
this.definition = definition;
|
|
1950
|
+
this.rawValue = rawValue;
|
|
1951
|
+
}
|
|
1952
|
+
/**
|
|
1953
|
+
* @return {?}
|
|
1954
|
+
*/
|
|
1955
|
+
isRouteId() {
|
|
1956
|
+
return this.definition.isRouteId;
|
|
1957
|
+
}
|
|
1958
|
+
/**
|
|
1959
|
+
* @param {?} otherValue
|
|
1960
|
+
* @return {?}
|
|
1961
|
+
*/
|
|
1962
|
+
hasChanged(otherValue) {
|
|
1963
|
+
return this.isEmpty() ?
|
|
1964
|
+
!this.isEmptyValue(otherValue) :
|
|
1965
|
+
this.isEmptyValue(otherValue) || !this.isSameValue(otherValue);
|
|
1966
|
+
}
|
|
1967
|
+
/**
|
|
1968
|
+
* Return's true if the current value is empty.
|
|
1969
|
+
* @return {?}
|
|
1970
|
+
*/
|
|
1971
|
+
isEmpty() {
|
|
1972
|
+
return this.isEmptyValue(this.value);
|
|
1973
|
+
}
|
|
1974
|
+
/**
|
|
1975
|
+
* Returns true if the rawValue is undefined. This
|
|
1976
|
+
* @return {?}
|
|
1977
|
+
*/
|
|
1978
|
+
isMissing() {
|
|
1979
|
+
return ___default.isUndefined(this.rawValue);
|
|
1980
|
+
}
|
|
1981
|
+
/**
|
|
1982
|
+
* @param {?} visit
|
|
1983
|
+
* @param {?} injector
|
|
1984
|
+
* @return {?}
|
|
1985
|
+
*/
|
|
1986
|
+
sanitise(visit, injector) {
|
|
1987
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1988
|
+
/** @type {?} */
|
|
1989
|
+
const sanitiser = this.definition.getSanitiser(injector);
|
|
1990
|
+
if (sanitiser) {
|
|
1991
|
+
return sanitiser.sanitise(this, visit);
|
|
1992
|
+
}
|
|
1993
|
+
else {
|
|
1994
|
+
return this.value;
|
|
1995
|
+
}
|
|
1996
|
+
});
|
|
1997
|
+
}
|
|
1998
|
+
}
|
|
1999
|
+
if (false) {
|
|
2000
|
+
/** @type {?} */
|
|
2001
|
+
RouteParameterValue.prototype.value;
|
|
2002
|
+
/** @type {?} */
|
|
2003
|
+
RouteParameterValue.prototype.definition;
|
|
2004
|
+
/**
|
|
2005
|
+
* @type {?}
|
|
2006
|
+
* @protected
|
|
2007
|
+
*/
|
|
2008
|
+
RouteParameterValue.prototype.rawValue;
|
|
2009
|
+
/**
|
|
2010
|
+
* @abstract
|
|
2011
|
+
* @param {?} otherValue
|
|
2012
|
+
* @return {?}
|
|
2013
|
+
*/
|
|
2014
|
+
RouteParameterValue.prototype.isSameValue = function (otherValue) { };
|
|
2015
|
+
/**
|
|
2016
|
+
* @abstract
|
|
2017
|
+
* @return {?}
|
|
2018
|
+
*/
|
|
2019
|
+
RouteParameterValue.prototype.formattedValue = function () { };
|
|
2020
|
+
/**
|
|
2021
|
+
* @abstract
|
|
2022
|
+
* @param {?} value
|
|
2023
|
+
* @return {?}
|
|
2024
|
+
*/
|
|
2025
|
+
RouteParameterValue.prototype.replace = function (value) { };
|
|
2026
|
+
/**
|
|
2027
|
+
* @abstract
|
|
2028
|
+
* @param {?} value
|
|
2029
|
+
* @return {?}
|
|
2030
|
+
*/
|
|
2031
|
+
RouteParameterValue.prototype.isEmptyValue = function (value) { };
|
|
2032
|
+
}
|
|
2033
|
+
(function (RouteParameterValue) {
|
|
2034
|
+
/**
|
|
2035
|
+
* @template T
|
|
2036
|
+
* @param {?} def
|
|
2037
|
+
* @param {?} paramMap
|
|
2038
|
+
* @return {?}
|
|
2039
|
+
*/
|
|
2040
|
+
function create(def, paramMap) {
|
|
2041
|
+
// NOTE: Using undefined is important as it triggers the isMissing flag which is used by defaultValue and remember flags
|
|
2042
|
+
return def.isArray ?
|
|
2043
|
+
new RouteParameterValue.Array(def, paramMap.has(def.name) ? paramMap.getAll(def.name) : undefined) :
|
|
2044
|
+
new RouteParameterValue.Scalar(def, paramMap.has(def.name) ? paramMap.get(def.name) : undefined);
|
|
2045
|
+
}
|
|
2046
|
+
RouteParameterValue.create = create;
|
|
2047
|
+
/**
|
|
2048
|
+
* @template T
|
|
2049
|
+
*/
|
|
2050
|
+
class Scalar extends RouteParameterValue {
|
|
2051
|
+
/**
|
|
2052
|
+
* @return {?}
|
|
2053
|
+
*/
|
|
2054
|
+
get value() {
|
|
2055
|
+
return this.definition.type.parse(this.rawValue);
|
|
2056
|
+
}
|
|
2057
|
+
/**
|
|
2058
|
+
* @param {?} otherValue
|
|
2059
|
+
* @return {?}
|
|
2060
|
+
*/
|
|
2061
|
+
isSameValue(otherValue) {
|
|
2062
|
+
return this.value === otherValue;
|
|
2063
|
+
}
|
|
2064
|
+
/**
|
|
2065
|
+
* @param {?} value
|
|
2066
|
+
* @return {?}
|
|
2067
|
+
*/
|
|
2068
|
+
replace(value) {
|
|
2069
|
+
return new RouteParameterValue.Scalar(this.definition, this.isEmptyValue(value) ? undefined : this.definition.type.format(value));
|
|
2070
|
+
}
|
|
2071
|
+
/**
|
|
2072
|
+
* @return {?}
|
|
2073
|
+
*/
|
|
2074
|
+
formattedValue() {
|
|
2075
|
+
return this.isEmpty() ? undefined : this.definition.type.format(this.value);
|
|
2076
|
+
}
|
|
2077
|
+
/**
|
|
2078
|
+
* @param {?} value
|
|
2079
|
+
* @return {?}
|
|
2080
|
+
*/
|
|
2081
|
+
isEmptyValue(value) {
|
|
2082
|
+
return ___default.isNil(value);
|
|
2083
|
+
}
|
|
2084
|
+
}
|
|
2085
|
+
__decorate([
|
|
2086
|
+
Memoize$1(),
|
|
2087
|
+
__metadata("design:type", Object),
|
|
2088
|
+
__metadata("design:paramtypes", [])
|
|
2089
|
+
], Scalar.prototype, "value", null);
|
|
2090
|
+
RouteParameterValue.Scalar = Scalar;
|
|
2091
|
+
/**
|
|
2092
|
+
* @template T
|
|
2093
|
+
*/
|
|
2094
|
+
class Array extends RouteParameterValue {
|
|
2095
|
+
/**
|
|
2096
|
+
* @return {?}
|
|
2097
|
+
*/
|
|
2098
|
+
get value() {
|
|
2099
|
+
return (this.rawValue || [])
|
|
2100
|
+
.filter((/**
|
|
2101
|
+
* @param {?} s
|
|
2102
|
+
* @return {?}
|
|
2103
|
+
*/
|
|
2104
|
+
s => !___default.isEmpty(s)))
|
|
2105
|
+
.map((/**
|
|
2106
|
+
* @param {?} raw
|
|
2107
|
+
* @return {?}
|
|
2108
|
+
*/
|
|
2109
|
+
raw => this.definition.type.parse(raw)));
|
|
2110
|
+
}
|
|
2111
|
+
/**
|
|
2112
|
+
* @param {?} otherValue
|
|
2113
|
+
* @return {?}
|
|
2114
|
+
*/
|
|
2115
|
+
isSameValue(otherValue) {
|
|
2116
|
+
return ___default.isEqual(this.value, otherValue);
|
|
2117
|
+
}
|
|
2118
|
+
/**
|
|
2119
|
+
* @param {?} value
|
|
2120
|
+
* @return {?}
|
|
2121
|
+
*/
|
|
2122
|
+
replace(value) {
|
|
2123
|
+
return new RouteParameterValue.Array(this.definition, this.isEmptyValue(value) ? undefined : value.map((/**
|
|
2124
|
+
* @param {?} v
|
|
2125
|
+
* @return {?}
|
|
2126
|
+
*/
|
|
2127
|
+
v => this.definition.type.format(v))));
|
|
2128
|
+
}
|
|
2129
|
+
/**
|
|
2130
|
+
* @return {?}
|
|
2131
|
+
*/
|
|
2132
|
+
formattedValue() {
|
|
2133
|
+
return this.isEmpty() ? [] : this.value.map((/**
|
|
2134
|
+
* @param {?} v
|
|
2135
|
+
* @return {?}
|
|
2136
|
+
*/
|
|
2137
|
+
v => this.definition.type.format(v)));
|
|
2138
|
+
}
|
|
2139
|
+
/**
|
|
2140
|
+
* @param {?} value
|
|
2141
|
+
* @return {?}
|
|
2142
|
+
*/
|
|
2143
|
+
isEmptyValue(value) {
|
|
2144
|
+
return ___default.isNil(value) || value.length < 1;
|
|
2145
|
+
}
|
|
2146
|
+
}
|
|
2147
|
+
__decorate([
|
|
2148
|
+
Memoize$1(),
|
|
2149
|
+
__metadata("design:type", Array),
|
|
2150
|
+
__metadata("design:paramtypes", [])
|
|
2151
|
+
], Array.prototype, "value", null);
|
|
2152
|
+
RouteParameterValue.Array = Array;
|
|
2153
|
+
})(RouteParameterValue || (RouteParameterValue = {}));
|
|
2154
|
+
|
|
1935
2155
|
/**
|
|
1936
2156
|
* @fileoverview added by tsickle
|
|
1937
2157
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
@@ -2073,50 +2293,36 @@ if (false) {
|
|
|
2073
2293
|
this.placeHistory = placeHistory;
|
|
2074
2294
|
}
|
|
2075
2295
|
/**
|
|
2076
|
-
* @param {?}
|
|
2077
|
-
* @param {?} value
|
|
2296
|
+
* @param {?} parameter
|
|
2078
2297
|
* @param {?=} visit
|
|
2079
2298
|
* @return {?}
|
|
2080
2299
|
*/
|
|
2081
|
-
sanitise(
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
*/
|
|
2090
|
-
v => v.getValueOf(parameterDef)))
|
|
2091
|
-
.filter((/**
|
|
2092
|
-
* @param {?} v
|
|
2093
|
-
* @return {?}
|
|
2094
|
-
*/
|
|
2095
|
-
v => !___default.isNil(v)))
|
|
2096
|
-
.find((/**
|
|
2097
|
-
* @param {?} v
|
|
2098
|
-
* @return {?}
|
|
2099
|
-
*/
|
|
2100
|
-
v => !this.isBlank(parameterDef, v)));
|
|
2300
|
+
sanitise(parameter, visit) {
|
|
2301
|
+
/** @type {?} */
|
|
2302
|
+
let value = parameter.value;
|
|
2303
|
+
if (parameter.isMissing()) {
|
|
2304
|
+
/** @type {?} */
|
|
2305
|
+
const previousVisit = ___default.first(this.placeHistory.getHistory(visit.placeDefinition));
|
|
2306
|
+
if (this.remember && previousVisit) {
|
|
2307
|
+
value = previousVisit.getValueOf(parameter.definition);
|
|
2101
2308
|
}
|
|
2102
|
-
|
|
2309
|
+
/** @type {?} */
|
|
2310
|
+
const s = parameter.isEmptyValue(value) ? this.defaultValue : value;
|
|
2311
|
+
console.log(`missing -> ${parameter.definition.name}, returning ${s}`);
|
|
2312
|
+
return s;
|
|
2103
2313
|
}
|
|
2104
2314
|
else {
|
|
2315
|
+
console.log(`not missing -> ${parameter.definition.name}`);
|
|
2105
2316
|
return value;
|
|
2106
2317
|
}
|
|
2107
2318
|
}
|
|
2108
|
-
/**
|
|
2109
|
-
* @private
|
|
2110
|
-
* @param {?} def
|
|
2111
|
-
* @param {?} value
|
|
2112
|
-
* @return {?}
|
|
2113
|
-
*/
|
|
2114
|
-
isBlank(def, value) {
|
|
2115
|
-
/** @type {?} */
|
|
2116
|
-
const isNil = ___default.isNil(value);
|
|
2117
|
-
return isNil ? true : def.isArray ? value['length'] < 1 : false;
|
|
2118
|
-
}
|
|
2119
2319
|
}
|
|
2320
|
+
__decorate([
|
|
2321
|
+
Trace(),
|
|
2322
|
+
__metadata("design:type", Function),
|
|
2323
|
+
__metadata("design:paramtypes", [RouteParameterValue, Object]),
|
|
2324
|
+
__metadata("design:returntype", Object)
|
|
2325
|
+
], DefaultParameterSanitiser.prototype, "sanitise", null);
|
|
2120
2326
|
ParameterDefinition.DefaultParameterSanitiser = DefaultParameterSanitiser;
|
|
2121
2327
|
if (false) {
|
|
2122
2328
|
/** @type {?} */
|
|
@@ -2132,11 +2338,11 @@ var _a;
|
|
|
2132
2338
|
class ParameterSnapshot {
|
|
2133
2339
|
/**
|
|
2134
2340
|
* @param {?} placeDefinition
|
|
2135
|
-
* @param {?}
|
|
2341
|
+
* @param {?} parameters
|
|
2136
2342
|
*/
|
|
2137
|
-
constructor(placeDefinition,
|
|
2343
|
+
constructor(placeDefinition, parameters) {
|
|
2138
2344
|
this.placeDefinition = placeDefinition;
|
|
2139
|
-
this.
|
|
2345
|
+
this.parameters = parameters;
|
|
2140
2346
|
}
|
|
2141
2347
|
/**
|
|
2142
2348
|
* @param {?} other
|
|
@@ -2145,18 +2351,18 @@ class ParameterSnapshot {
|
|
|
2145
2351
|
*/
|
|
2146
2352
|
hasChanged(other, debug = false) {
|
|
2147
2353
|
/** @type {?} */
|
|
2148
|
-
const changed = this.
|
|
2354
|
+
const changed = this.parameters.find((/**
|
|
2149
2355
|
* @param {?} r
|
|
2150
2356
|
* @return {?}
|
|
2151
2357
|
*/
|
|
2152
2358
|
(r) => {
|
|
2153
|
-
return
|
|
2359
|
+
return r.hasChanged(other.getValueOf(r.definition));
|
|
2154
2360
|
}));
|
|
2155
2361
|
if (changed && debug) {
|
|
2156
2362
|
console.log({
|
|
2157
|
-
name: changed.
|
|
2363
|
+
name: changed.definition.name,
|
|
2158
2364
|
mine: changed.value,
|
|
2159
|
-
theirs: other.getValueOf(changed.
|
|
2365
|
+
theirs: other.getValueOf(changed.definition)
|
|
2160
2366
|
});
|
|
2161
2367
|
}
|
|
2162
2368
|
return !!changed;
|
|
@@ -2167,11 +2373,11 @@ class ParameterSnapshot {
|
|
|
2167
2373
|
* @return {?}
|
|
2168
2374
|
*/
|
|
2169
2375
|
getParameter(parameterDef) {
|
|
2170
|
-
return this.
|
|
2376
|
+
return this.parameters.find((/**
|
|
2171
2377
|
* @param {?} r
|
|
2172
2378
|
* @return {?}
|
|
2173
2379
|
*/
|
|
2174
|
-
r => r.
|
|
2380
|
+
r => r.definition === parameterDef));
|
|
2175
2381
|
}
|
|
2176
2382
|
/**
|
|
2177
2383
|
* @template T, S
|
|
@@ -2195,11 +2401,11 @@ class ParameterSnapshot {
|
|
|
2195
2401
|
*/
|
|
2196
2402
|
getParameterValue(name) {
|
|
2197
2403
|
/** @type {?} */
|
|
2198
|
-
const resolvedParameter = this.
|
|
2404
|
+
const resolvedParameter = this.parameters.find((/**
|
|
2199
2405
|
* @param {?} r
|
|
2200
2406
|
* @return {?}
|
|
2201
2407
|
*/
|
|
2202
|
-
r => r.
|
|
2408
|
+
r => r.definition.name === name));
|
|
2203
2409
|
return resolvedParameter ? resolvedParameter.value : null;
|
|
2204
2410
|
}
|
|
2205
2411
|
/**
|
|
@@ -2209,22 +2415,22 @@ class ParameterSnapshot {
|
|
|
2209
2415
|
getRouteIdParameter() {
|
|
2210
2416
|
// RouteId's are never arrays: see parameter-decorators.ts createDefinition methods. It would be nice to
|
|
2211
2417
|
// capture this in the type system though
|
|
2212
|
-
return (/** @type {?} */ (this.
|
|
2418
|
+
return (/** @type {?} */ (this.parameters.find((/**
|
|
2213
2419
|
* @param {?} p
|
|
2214
2420
|
* @return {?}
|
|
2215
2421
|
*/
|
|
2216
|
-
p => p.
|
|
2422
|
+
p => p.definition.isRouteId))));
|
|
2217
2423
|
}
|
|
2218
2424
|
/**
|
|
2219
2425
|
* @private
|
|
2220
2426
|
* @return {?}
|
|
2221
2427
|
*/
|
|
2222
2428
|
getRouteParameters() {
|
|
2223
|
-
return this.
|
|
2429
|
+
return this.parameters.filter((/**
|
|
2224
2430
|
* @param {?} r
|
|
2225
2431
|
* @return {?}
|
|
2226
2432
|
*/
|
|
2227
|
-
r => !r.
|
|
2433
|
+
r => !r.definition.isRouteId));
|
|
2228
2434
|
}
|
|
2229
2435
|
/**
|
|
2230
2436
|
* @return {?}
|
|
@@ -2243,37 +2449,31 @@ class ParameterSnapshot {
|
|
|
2243
2449
|
/**
|
|
2244
2450
|
* @return {?}
|
|
2245
2451
|
*/
|
|
2246
|
-
|
|
2247
|
-
/**
|
|
2248
|
-
const params = {};
|
|
2249
|
-
/** @type {?} */
|
|
2250
|
-
const routeIdParam = this.resolved.filter((/**
|
|
2251
|
-
* @param {?} p
|
|
2252
|
-
* @return {?}
|
|
2253
|
-
*/
|
|
2254
|
-
p => !p.parameterDef.isRouteId)).forEach((/**
|
|
2452
|
+
getNonEmptyParameters() {
|
|
2453
|
+
return this.parameters.filter((/**
|
|
2255
2454
|
* @param {?} p
|
|
2256
2455
|
* @return {?}
|
|
2257
2456
|
*/
|
|
2258
|
-
p =>
|
|
2259
|
-
params[p.parameterDef.name] = p.formattedValue();
|
|
2260
|
-
}));
|
|
2261
|
-
return params;
|
|
2457
|
+
p => !p.isEmpty()));
|
|
2262
2458
|
}
|
|
2263
2459
|
/**
|
|
2264
2460
|
* @return {?}
|
|
2265
2461
|
*/
|
|
2266
|
-
|
|
2462
|
+
getFormattedParameters() {
|
|
2267
2463
|
/** @type {?} */
|
|
2268
2464
|
const params = {};
|
|
2269
2465
|
/** @type {?} */
|
|
2270
|
-
const routeIdParam = this.
|
|
2466
|
+
const routeIdParam = this.getNonEmptyParameters()
|
|
2467
|
+
.filter((/**
|
|
2271
2468
|
* @param {?} p
|
|
2272
2469
|
* @return {?}
|
|
2273
2470
|
*/
|
|
2274
|
-
p =>
|
|
2275
|
-
|
|
2276
|
-
|
|
2471
|
+
p => !p.definition.isRouteId))
|
|
2472
|
+
.forEach((/**
|
|
2473
|
+
* @param {?} p
|
|
2474
|
+
* @return {?}
|
|
2475
|
+
*/
|
|
2476
|
+
p => params[p.definition.name] = p.formattedValue()));
|
|
2277
2477
|
return params;
|
|
2278
2478
|
}
|
|
2279
2479
|
/**
|
|
@@ -2283,12 +2483,12 @@ class ParameterSnapshot {
|
|
|
2283
2483
|
/** @type {?} */
|
|
2284
2484
|
const params = {};
|
|
2285
2485
|
/** @type {?} */
|
|
2286
|
-
const routeIdParam = this.
|
|
2486
|
+
const routeIdParam = this.parameters.forEach((/**
|
|
2287
2487
|
* @param {?} p
|
|
2288
2488
|
* @return {?}
|
|
2289
2489
|
*/
|
|
2290
2490
|
p => {
|
|
2291
|
-
params[p.
|
|
2491
|
+
params[p.definition.name] = p.value;
|
|
2292
2492
|
}));
|
|
2293
2493
|
return params;
|
|
2294
2494
|
}
|
|
@@ -2299,12 +2499,12 @@ class ParameterSnapshot {
|
|
|
2299
2499
|
* @return {?}
|
|
2300
2500
|
*/
|
|
2301
2501
|
replace(parameter, value) {
|
|
2302
|
-
return new ParameterSnapshot(this.placeDefinition, this.
|
|
2502
|
+
return new ParameterSnapshot(this.placeDefinition, this.parameters.map((/**
|
|
2303
2503
|
* @param {?} p
|
|
2304
2504
|
* @return {?}
|
|
2305
2505
|
*/
|
|
2306
2506
|
p => {
|
|
2307
|
-
return p.
|
|
2507
|
+
return p.definition === parameter ? p.replace(value) : p;
|
|
2308
2508
|
})));
|
|
2309
2509
|
}
|
|
2310
2510
|
/**
|
|
@@ -2318,10 +2518,10 @@ class ParameterSnapshot {
|
|
|
2318
2518
|
const routeId = this.getRouteIdParameter();
|
|
2319
2519
|
/** @type {?} */
|
|
2320
2520
|
const sanitisedValue = yield routeId.sanitise(this, injector);
|
|
2321
|
-
if (
|
|
2521
|
+
if (routeId.hasChanged(sanitisedValue)) {
|
|
2322
2522
|
// if the route id has changed we redirect immediately as other
|
|
2323
2523
|
// parameter sanitisers might use it.
|
|
2324
|
-
return this.replace(routeId.
|
|
2524
|
+
return this.replace(routeId.definition, sanitisedValue);
|
|
2325
2525
|
}
|
|
2326
2526
|
}
|
|
2327
2527
|
/** @type {?} */
|
|
@@ -2333,8 +2533,8 @@ class ParameterSnapshot {
|
|
|
2333
2533
|
const routeParameter = routeParameters[i];
|
|
2334
2534
|
/** @type {?} */
|
|
2335
2535
|
const sanitisedValue = yield routeParameter.sanitise(this, injector);
|
|
2336
|
-
if (
|
|
2337
|
-
result = result.replace(routeParameter.
|
|
2536
|
+
if (routeParameter.hasChanged(sanitisedValue)) {
|
|
2537
|
+
result = result.replace(routeParameter.definition, sanitisedValue);
|
|
2338
2538
|
}
|
|
2339
2539
|
}
|
|
2340
2540
|
return result;
|
|
@@ -2345,7 +2545,7 @@ __decorate([
|
|
|
2345
2545
|
Memoize$1(),
|
|
2346
2546
|
__metadata("design:type", Function),
|
|
2347
2547
|
__metadata("design:paramtypes", [ParameterDefinition]),
|
|
2348
|
-
__metadata("design:returntype",
|
|
2548
|
+
__metadata("design:returntype", RouteParameterValue)
|
|
2349
2549
|
], ParameterSnapshot.prototype, "getParameter", null);
|
|
2350
2550
|
__decorate([
|
|
2351
2551
|
Memoize$1(),
|
|
@@ -2363,7 +2563,7 @@ __decorate([
|
|
|
2363
2563
|
Memoize$1(),
|
|
2364
2564
|
__metadata("design:type", Function),
|
|
2365
2565
|
__metadata("design:paramtypes", []),
|
|
2366
|
-
__metadata("design:returntype",
|
|
2566
|
+
__metadata("design:returntype", RouteParameterValue.Scalar)
|
|
2367
2567
|
], ParameterSnapshot.prototype, "getRouteIdParameter", null);
|
|
2368
2568
|
__decorate([
|
|
2369
2569
|
Memoize$1(),
|
|
@@ -2371,6 +2571,12 @@ __decorate([
|
|
|
2371
2571
|
__metadata("design:paramtypes", []),
|
|
2372
2572
|
__metadata("design:returntype", Array)
|
|
2373
2573
|
], ParameterSnapshot.prototype, "getRouteParameters", null);
|
|
2574
|
+
__decorate([
|
|
2575
|
+
Trace(),
|
|
2576
|
+
__metadata("design:type", Function),
|
|
2577
|
+
__metadata("design:paramtypes", []),
|
|
2578
|
+
__metadata("design:returntype", void 0)
|
|
2579
|
+
], ParameterSnapshot.prototype, "getFormattedParameters", null);
|
|
2374
2580
|
if (false) {
|
|
2375
2581
|
/** @type {?} */
|
|
2376
2582
|
ParameterSnapshot.prototype.placeDefinition;
|
|
@@ -2378,7 +2584,7 @@ if (false) {
|
|
|
2378
2584
|
* @type {?}
|
|
2379
2585
|
* @private
|
|
2380
2586
|
*/
|
|
2381
|
-
ParameterSnapshot.prototype.
|
|
2587
|
+
ParameterSnapshot.prototype.parameters;
|
|
2382
2588
|
}
|
|
2383
2589
|
(function (ParameterSnapshot) {
|
|
2384
2590
|
/**
|
|
@@ -2391,31 +2597,11 @@ if (false) {
|
|
|
2391
2597
|
/** @type {?} */
|
|
2392
2598
|
const paramMap = new ConsolidatedParameterMap(params, urlSegments);
|
|
2393
2599
|
/** @type {?} */
|
|
2394
|
-
const resolvedParameters = placeDef.getRouteParameters()
|
|
2395
|
-
.map((/**
|
|
2600
|
+
const resolvedParameters = placeDef.getRouteParameters().map((/**
|
|
2396
2601
|
* @param {?} def
|
|
2397
2602
|
* @return {?}
|
|
2398
2603
|
*/
|
|
2399
|
-
def =>
|
|
2400
|
-
if (def.isArray) {
|
|
2401
|
-
/** @type {?} */
|
|
2402
|
-
const value = paramMap.has(def.name) ? paramMap.getAll(def.name).filter((/**
|
|
2403
|
-
* @param {?} s
|
|
2404
|
-
* @return {?}
|
|
2405
|
-
*/
|
|
2406
|
-
s => !___default.isEmpty(s))).map((/**
|
|
2407
|
-
* @param {?} raw
|
|
2408
|
-
* @return {?}
|
|
2409
|
-
*/
|
|
2410
|
-
raw => def.type.parse(raw))) : null;
|
|
2411
|
-
return new ResolvedArrayParameter(def, value);
|
|
2412
|
-
}
|
|
2413
|
-
else {
|
|
2414
|
-
/** @type {?} */
|
|
2415
|
-
const value = paramMap.has(def.name) ? def.type.parse(paramMap.get(def.name)) : null;
|
|
2416
|
-
return new ResolvedValueParameter(def, value);
|
|
2417
|
-
}
|
|
2418
|
-
}));
|
|
2604
|
+
def => RouteParameterValue.create(def, paramMap)));
|
|
2419
2605
|
return new ParameterSnapshot(placeDef, resolvedParameters);
|
|
2420
2606
|
}
|
|
2421
2607
|
ParameterSnapshot.create = create;
|
|
@@ -2473,7 +2659,23 @@ if (false) {
|
|
|
2473
2659
|
*/
|
|
2474
2660
|
m => m.has(name)));
|
|
2475
2661
|
}
|
|
2662
|
+
/**
|
|
2663
|
+
* @return {?}
|
|
2664
|
+
*/
|
|
2665
|
+
get keys() {
|
|
2666
|
+
return this.paramMaps.reduce((/**
|
|
2667
|
+
* @param {?} result
|
|
2668
|
+
* @param {?} params
|
|
2669
|
+
* @return {?}
|
|
2670
|
+
*/
|
|
2671
|
+
(result, params) => result.concat(params.keys)), []);
|
|
2672
|
+
}
|
|
2476
2673
|
}
|
|
2674
|
+
__decorate([
|
|
2675
|
+
Memoize$1(),
|
|
2676
|
+
__metadata("design:type", Array),
|
|
2677
|
+
__metadata("design:paramtypes", [])
|
|
2678
|
+
], ConsolidatedParameterMap.prototype, "keys", null);
|
|
2477
2679
|
if (false) {
|
|
2478
2680
|
/**
|
|
2479
2681
|
* @type {?}
|
|
@@ -2525,147 +2727,6 @@ if (false) {
|
|
|
2525
2727
|
*/
|
|
2526
2728
|
ParamMapAdapter.prototype.params;
|
|
2527
2729
|
}
|
|
2528
|
-
/**
|
|
2529
|
-
* @abstract
|
|
2530
|
-
* @template T, S
|
|
2531
|
-
*/
|
|
2532
|
-
class ResolvedParameter {
|
|
2533
|
-
/**
|
|
2534
|
-
* @param {?} parameterDef
|
|
2535
|
-
* @param {?} value
|
|
2536
|
-
*/
|
|
2537
|
-
constructor(parameterDef, value) {
|
|
2538
|
-
this.parameterDef = parameterDef;
|
|
2539
|
-
this.value = value;
|
|
2540
|
-
}
|
|
2541
|
-
/**
|
|
2542
|
-
* @return {?}
|
|
2543
|
-
*/
|
|
2544
|
-
isRouteId() {
|
|
2545
|
-
return this.parameterDef.isRouteId;
|
|
2546
|
-
}
|
|
2547
|
-
/**
|
|
2548
|
-
* @param {?} visit
|
|
2549
|
-
* @param {?} injector
|
|
2550
|
-
* @return {?}
|
|
2551
|
-
*/
|
|
2552
|
-
sanitise(visit, injector) {
|
|
2553
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
2554
|
-
/** @type {?} */
|
|
2555
|
-
const sanitiser = this.parameterDef.getSanitiser(injector);
|
|
2556
|
-
if (sanitiser) {
|
|
2557
|
-
return sanitiser.sanitise(this.parameterDef, this.value, visit);
|
|
2558
|
-
}
|
|
2559
|
-
else {
|
|
2560
|
-
return this.value;
|
|
2561
|
-
}
|
|
2562
|
-
});
|
|
2563
|
-
}
|
|
2564
|
-
}
|
|
2565
|
-
ParameterSnapshot.ResolvedParameter = ResolvedParameter;
|
|
2566
|
-
if (false) {
|
|
2567
|
-
/** @type {?} */
|
|
2568
|
-
ResolvedParameter.prototype.parameterDef;
|
|
2569
|
-
/** @type {?} */
|
|
2570
|
-
ResolvedParameter.prototype.value;
|
|
2571
|
-
/**
|
|
2572
|
-
* @abstract
|
|
2573
|
-
* @param {?} dest
|
|
2574
|
-
* @return {?}
|
|
2575
|
-
*/
|
|
2576
|
-
ResolvedParameter.prototype.injectRouteParam = function (dest) { };
|
|
2577
|
-
/**
|
|
2578
|
-
* @abstract
|
|
2579
|
-
* @param {?} otherValue
|
|
2580
|
-
* @return {?}
|
|
2581
|
-
*/
|
|
2582
|
-
ResolvedParameter.prototype.isSame = function (otherValue) { };
|
|
2583
|
-
/**
|
|
2584
|
-
* @abstract
|
|
2585
|
-
* @return {?}
|
|
2586
|
-
*/
|
|
2587
|
-
ResolvedParameter.prototype.formattedValue = function () { };
|
|
2588
|
-
/**
|
|
2589
|
-
* @abstract
|
|
2590
|
-
* @param {?} value
|
|
2591
|
-
* @return {?}
|
|
2592
|
-
*/
|
|
2593
|
-
ResolvedParameter.prototype.replace = function (value) { };
|
|
2594
|
-
}
|
|
2595
|
-
/**
|
|
2596
|
-
* @template T
|
|
2597
|
-
*/
|
|
2598
|
-
class ResolvedValueParameter extends ResolvedParameter {
|
|
2599
|
-
/**
|
|
2600
|
-
* @param {?} otherValue
|
|
2601
|
-
* @return {?}
|
|
2602
|
-
*/
|
|
2603
|
-
isSame(otherValue) {
|
|
2604
|
-
return this.value === otherValue;
|
|
2605
|
-
}
|
|
2606
|
-
/**
|
|
2607
|
-
* @param {?} dest
|
|
2608
|
-
* @return {?}
|
|
2609
|
-
*/
|
|
2610
|
-
injectRouteParam(dest) {
|
|
2611
|
-
dest[this.parameterDef.name] = this.parameterDef.type.format(this.value);
|
|
2612
|
-
}
|
|
2613
|
-
/**
|
|
2614
|
-
* @param {?} value
|
|
2615
|
-
* @return {?}
|
|
2616
|
-
*/
|
|
2617
|
-
replace(value) {
|
|
2618
|
-
return new ResolvedValueParameter(this.parameterDef, value);
|
|
2619
|
-
}
|
|
2620
|
-
/**
|
|
2621
|
-
* @return {?}
|
|
2622
|
-
*/
|
|
2623
|
-
formattedValue() {
|
|
2624
|
-
return !___default.isNil(this.value) ? this.parameterDef.type.format(this.value) : null;
|
|
2625
|
-
}
|
|
2626
|
-
}
|
|
2627
|
-
ParameterSnapshot.ResolvedValueParameter = ResolvedValueParameter;
|
|
2628
|
-
/**
|
|
2629
|
-
* @template T
|
|
2630
|
-
*/
|
|
2631
|
-
class ResolvedArrayParameter extends ResolvedParameter {
|
|
2632
|
-
/**
|
|
2633
|
-
* @param {?} otherValue
|
|
2634
|
-
* @return {?}
|
|
2635
|
-
*/
|
|
2636
|
-
isSame(otherValue) {
|
|
2637
|
-
return ___default.isEqual(this.value, otherValue);
|
|
2638
|
-
}
|
|
2639
|
-
/**
|
|
2640
|
-
* @param {?} dest
|
|
2641
|
-
* @return {?}
|
|
2642
|
-
*/
|
|
2643
|
-
injectRouteParam(dest) {
|
|
2644
|
-
dest[this.parameterDef.name] = this.value.map((/**
|
|
2645
|
-
* @param {?} v
|
|
2646
|
-
* @return {?}
|
|
2647
|
-
*/
|
|
2648
|
-
v => this.parameterDef.type.format(v)));
|
|
2649
|
-
}
|
|
2650
|
-
/**
|
|
2651
|
-
* @param {?} value
|
|
2652
|
-
* @return {?}
|
|
2653
|
-
*/
|
|
2654
|
-
replace(value) {
|
|
2655
|
-
return new ResolvedArrayParameter(this.parameterDef, value);
|
|
2656
|
-
}
|
|
2657
|
-
/**
|
|
2658
|
-
* @return {?}
|
|
2659
|
-
*/
|
|
2660
|
-
formattedValue() {
|
|
2661
|
-
return this.value ? this.value.map((/**
|
|
2662
|
-
* @param {?} v
|
|
2663
|
-
* @return {?}
|
|
2664
|
-
*/
|
|
2665
|
-
v => this.parameterDef.type.format(v))) : [];
|
|
2666
|
-
}
|
|
2667
|
-
}
|
|
2668
|
-
ParameterSnapshot.ResolvedArrayParameter = ResolvedArrayParameter;
|
|
2669
2730
|
})(ParameterSnapshot || (ParameterSnapshot = {}));
|
|
2670
2731
|
|
|
2671
2732
|
/**
|
|
@@ -2794,8 +2855,8 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
2794
2855
|
* @return {?}
|
|
2795
2856
|
*/
|
|
2796
2857
|
(next, previous) => {
|
|
2797
|
-
this.pushChangesToRoute(next, previous);
|
|
2798
2858
|
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.
|
|
2859
|
+
this.pushChangesToRoute(next, previous);
|
|
2799
2860
|
}), {
|
|
2800
2861
|
unless: this.incomingRouteChange
|
|
2801
2862
|
});
|
|
@@ -3581,7 +3642,7 @@ class PlaceRouteGuard {
|
|
|
3581
3642
|
* @return {?}
|
|
3582
3643
|
*/
|
|
3583
3644
|
sanitised => {
|
|
3584
|
-
Logger.get(this).info("ParameterSnapshot.sanitise
|
|
3645
|
+
Logger.get(this).info("ParameterSnapshot.sanitise ->", sanitised.getAllParameters());
|
|
3585
3646
|
if (sanitised.hasChanged(snapshot, true)) {
|
|
3586
3647
|
return this.placeRouter.getRedirectUrlTree(activatedRoute, sanitised);
|
|
3587
3648
|
}
|
|
@@ -3735,12 +3796,11 @@ function RouteParameterList(elementType, options) {
|
|
|
3735
3796
|
function ParameterSanitiser() { }
|
|
3736
3797
|
if (false) {
|
|
3737
3798
|
/**
|
|
3738
|
-
* @param {?}
|
|
3739
|
-
* @param {?} value
|
|
3799
|
+
* @param {?} paramter
|
|
3740
3800
|
* @param {?=} visit
|
|
3741
3801
|
* @return {?}
|
|
3742
3802
|
*/
|
|
3743
|
-
ParameterSanitiser.prototype.sanitise = function (
|
|
3803
|
+
ParameterSanitiser.prototype.sanitise = function (paramter, visit) { };
|
|
3744
3804
|
}
|
|
3745
3805
|
|
|
3746
3806
|
/**
|
|
@@ -3803,297 +3863,6 @@ var ParameterType;
|
|
|
3803
3863
|
ParameterType.BOOLEAN = new BooleanType();
|
|
3804
3864
|
})(ParameterType || (ParameterType = {}));
|
|
3805
3865
|
|
|
3806
|
-
/**
|
|
3807
|
-
* @fileoverview added by tsickle
|
|
3808
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
3809
|
-
*/
|
|
3810
|
-
/**
|
|
3811
|
-
* @template T, S
|
|
3812
|
-
*/
|
|
3813
|
-
class Sanitiser {
|
|
3814
|
-
/**
|
|
3815
|
-
* @param {?} parameterDef
|
|
3816
|
-
* @param {?} snapshot
|
|
3817
|
-
* @param {?} sanitiser
|
|
3818
|
-
*/
|
|
3819
|
-
constructor(parameterDef, snapshot, sanitiser) {
|
|
3820
|
-
this.parameterDef = parameterDef;
|
|
3821
|
-
this.snapshot = snapshot;
|
|
3822
|
-
this.sanitiser = sanitiser;
|
|
3823
|
-
}
|
|
3824
|
-
/**
|
|
3825
|
-
* @return {?}
|
|
3826
|
-
*/
|
|
3827
|
-
isRouteId() {
|
|
3828
|
-
return this.parameterDef.isRouteId;
|
|
3829
|
-
}
|
|
3830
|
-
/**
|
|
3831
|
-
* @return {?}
|
|
3832
|
-
*/
|
|
3833
|
-
get valueChanged() {
|
|
3834
|
-
return !___default.isNil(this.initialValue) && this.hasChanged(this.initialValue, this.sanitisedValue);
|
|
3835
|
-
}
|
|
3836
|
-
/**
|
|
3837
|
-
* @return {?}
|
|
3838
|
-
*/
|
|
3839
|
-
get sanitisedValue() {
|
|
3840
|
-
return this._sanitisedValue;
|
|
3841
|
-
}
|
|
3842
|
-
/**
|
|
3843
|
-
* @protected
|
|
3844
|
-
* @param {?} snapshot
|
|
3845
|
-
* @return {?}
|
|
3846
|
-
*/
|
|
3847
|
-
readFrom(snapshot) {
|
|
3848
|
-
return lang.abstractMethod(this.constructor);
|
|
3849
|
-
}
|
|
3850
|
-
/**
|
|
3851
|
-
* @protected
|
|
3852
|
-
* @param {?} initialValue
|
|
3853
|
-
* @param {?} sanitisedValue
|
|
3854
|
-
* @return {?}
|
|
3855
|
-
*/
|
|
3856
|
-
hasChanged(initialValue, sanitisedValue) {
|
|
3857
|
-
return lang.abstractMethod(this.constructor);
|
|
3858
|
-
}
|
|
3859
|
-
/**
|
|
3860
|
-
* @param {?} dest
|
|
3861
|
-
* @return {?}
|
|
3862
|
-
*/
|
|
3863
|
-
injectRouteParam(dest) {
|
|
3864
|
-
lang.abstractMethod(this.constructor);
|
|
3865
|
-
}
|
|
3866
|
-
/**
|
|
3867
|
-
* @return {?}
|
|
3868
|
-
*/
|
|
3869
|
-
sanitize() {
|
|
3870
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
3871
|
-
if (this.sanitiser) {
|
|
3872
|
-
this.initialValue = this.readFrom(this.snapshot);
|
|
3873
|
-
this._sanitisedValue = yield this.sanitiser.sanitise(null, this.initialValue);
|
|
3874
|
-
if (this.initialValue !== this._sanitisedValue) {
|
|
3875
|
-
return false;
|
|
3876
|
-
}
|
|
3877
|
-
}
|
|
3878
|
-
return true;
|
|
3879
|
-
});
|
|
3880
|
-
}
|
|
3881
|
-
}
|
|
3882
|
-
if (false) {
|
|
3883
|
-
/**
|
|
3884
|
-
* @type {?}
|
|
3885
|
-
* @private
|
|
3886
|
-
*/
|
|
3887
|
-
Sanitiser.prototype.initialValue;
|
|
3888
|
-
/**
|
|
3889
|
-
* @type {?}
|
|
3890
|
-
* @private
|
|
3891
|
-
*/
|
|
3892
|
-
Sanitiser.prototype._sanitisedValue;
|
|
3893
|
-
/** @type {?} */
|
|
3894
|
-
Sanitiser.prototype.parameterDef;
|
|
3895
|
-
/** @type {?} */
|
|
3896
|
-
Sanitiser.prototype.snapshot;
|
|
3897
|
-
/** @type {?} */
|
|
3898
|
-
Sanitiser.prototype.sanitiser;
|
|
3899
|
-
}
|
|
3900
|
-
class RouteParameterSanitiser {
|
|
3901
|
-
/**
|
|
3902
|
-
* @param {?} parameterDefs
|
|
3903
|
-
* @param {?} snapshot
|
|
3904
|
-
* @param {?} injector
|
|
3905
|
-
*/
|
|
3906
|
-
constructor(parameterDefs, snapshot, injector) {
|
|
3907
|
-
this.parameterDefs = parameterDefs;
|
|
3908
|
-
this.snapshot = snapshot;
|
|
3909
|
-
this.injector = injector;
|
|
3910
|
-
this.parameterSanitisers = [];
|
|
3911
|
-
/** @type {?} */
|
|
3912
|
-
const sanitisers = parameterDefs.map((/**
|
|
3913
|
-
* @param {?} def
|
|
3914
|
-
* @return {?}
|
|
3915
|
-
*/
|
|
3916
|
-
def => {
|
|
3917
|
-
return def.isArray ?
|
|
3918
|
-
new Sanitiser.Array(def, snapshot, this.getSanitiser(def)) :
|
|
3919
|
-
new Sanitiser.Value(def, snapshot, this.getSanitiser(def));
|
|
3920
|
-
}));
|
|
3921
|
-
this.routeIdSanitiser = sanitisers.find((/**
|
|
3922
|
-
* @param {?} p
|
|
3923
|
-
* @return {?}
|
|
3924
|
-
*/
|
|
3925
|
-
p => p.isRouteId()));
|
|
3926
|
-
this.parameterSanitisers = sanitisers.filter((/**
|
|
3927
|
-
* @param {?} p
|
|
3928
|
-
* @return {?}
|
|
3929
|
-
*/
|
|
3930
|
-
p => !p.isRouteId()));
|
|
3931
|
-
}
|
|
3932
|
-
/**
|
|
3933
|
-
* @return {?}
|
|
3934
|
-
*/
|
|
3935
|
-
sanitise() {
|
|
3936
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
3937
|
-
if (this.routeIdSanitiser) {
|
|
3938
|
-
yield this.routeIdSanitiser.sanitize();
|
|
3939
|
-
if (this.routeIdSanitiser.valueChanged) {
|
|
3940
|
-
// if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the
|
|
3941
|
-
// context of the route id.
|
|
3942
|
-
return false;
|
|
3943
|
-
}
|
|
3944
|
-
}
|
|
3945
|
-
for (const sanitiser of this.parameterSanitisers) {
|
|
3946
|
-
yield sanitiser.sanitize();
|
|
3947
|
-
}
|
|
3948
|
-
return !this.parameterSanitisers.find((/**
|
|
3949
|
-
* @param {?} s
|
|
3950
|
-
* @return {?}
|
|
3951
|
-
*/
|
|
3952
|
-
s => s.valueChanged));
|
|
3953
|
-
});
|
|
3954
|
-
}
|
|
3955
|
-
/**
|
|
3956
|
-
* @private
|
|
3957
|
-
* @template T, S
|
|
3958
|
-
* @param {?} def
|
|
3959
|
-
* @return {?}
|
|
3960
|
-
*/
|
|
3961
|
-
getSanitiser(def) {
|
|
3962
|
-
return def.getSanitiser(this.injector);
|
|
3963
|
-
}
|
|
3964
|
-
/**
|
|
3965
|
-
* @return {?}
|
|
3966
|
-
*/
|
|
3967
|
-
routeIdHasChanged() {
|
|
3968
|
-
assert.isTruthy(this.parameterSanitisers.length !== 0);
|
|
3969
|
-
return this.routeIdSanitiser && this.routeIdSanitiser.valueChanged;
|
|
3970
|
-
}
|
|
3971
|
-
// @Trace()
|
|
3972
|
-
/**
|
|
3973
|
-
* @return {?}
|
|
3974
|
-
*/
|
|
3975
|
-
getRedirectParams() {
|
|
3976
|
-
if (this.routeIdHasChanged()) {
|
|
3977
|
-
return [this.routeIdSanitiser.sanitisedValue];
|
|
3978
|
-
}
|
|
3979
|
-
else {
|
|
3980
|
-
/** @type {?} */
|
|
3981
|
-
const routeParams = {};
|
|
3982
|
-
this.parameterSanitisers.forEach((/**
|
|
3983
|
-
* @param {?} s
|
|
3984
|
-
* @return {?}
|
|
3985
|
-
*/
|
|
3986
|
-
s => s.injectRouteParam(routeParams)));
|
|
3987
|
-
return [routeParams];
|
|
3988
|
-
}
|
|
3989
|
-
}
|
|
3990
|
-
/**
|
|
3991
|
-
* @private
|
|
3992
|
-
* @template S
|
|
3993
|
-
* @param {?} value
|
|
3994
|
-
* @return {?}
|
|
3995
|
-
*/
|
|
3996
|
-
isSanitiserContructor(value) {
|
|
3997
|
-
return ___default.isFunction(value) && lang.constructorChain((/** @type {?} */ ((/** @type {?} */ (value))))).includes(Sanitiser);
|
|
3998
|
-
}
|
|
3999
|
-
}
|
|
4000
|
-
__decorate([
|
|
4001
|
-
Memoize$1(),
|
|
4002
|
-
__metadata("design:type", Function),
|
|
4003
|
-
__metadata("design:paramtypes", [ParameterDefinition]),
|
|
4004
|
-
__metadata("design:returntype", Object)
|
|
4005
|
-
], RouteParameterSanitiser.prototype, "getSanitiser", null);
|
|
4006
|
-
if (false) {
|
|
4007
|
-
/**
|
|
4008
|
-
* @type {?}
|
|
4009
|
-
* @private
|
|
4010
|
-
*/
|
|
4011
|
-
RouteParameterSanitiser.prototype.routeIdSanitiser;
|
|
4012
|
-
/**
|
|
4013
|
-
* @type {?}
|
|
4014
|
-
* @private
|
|
4015
|
-
*/
|
|
4016
|
-
RouteParameterSanitiser.prototype.parameterSanitisers;
|
|
4017
|
-
/** @type {?} */
|
|
4018
|
-
RouteParameterSanitiser.prototype.parameterDefs;
|
|
4019
|
-
/** @type {?} */
|
|
4020
|
-
RouteParameterSanitiser.prototype.snapshot;
|
|
4021
|
-
/** @type {?} */
|
|
4022
|
-
RouteParameterSanitiser.prototype.injector;
|
|
4023
|
-
}
|
|
4024
|
-
(function (Sanitiser) {
|
|
4025
|
-
/**
|
|
4026
|
-
* @template T
|
|
4027
|
-
*/
|
|
4028
|
-
class Value extends Sanitiser {
|
|
4029
|
-
/**
|
|
4030
|
-
* @param {?} snapshot
|
|
4031
|
-
* @return {?}
|
|
4032
|
-
*/
|
|
4033
|
-
readFrom(snapshot) {
|
|
4034
|
-
/** @type {?} */
|
|
4035
|
-
const rawValue = snapshot.paramMap.get(this.parameterDef.name);
|
|
4036
|
-
return this.parameterDef.type.parse(rawValue);
|
|
4037
|
-
}
|
|
4038
|
-
/**
|
|
4039
|
-
* @protected
|
|
4040
|
-
* @param {?} initialValue
|
|
4041
|
-
* @param {?} sanitisedValue
|
|
4042
|
-
* @return {?}
|
|
4043
|
-
*/
|
|
4044
|
-
hasChanged(initialValue, sanitisedValue) {
|
|
4045
|
-
return initialValue !== sanitisedValue;
|
|
4046
|
-
}
|
|
4047
|
-
/**
|
|
4048
|
-
* @param {?} dest
|
|
4049
|
-
* @return {?}
|
|
4050
|
-
*/
|
|
4051
|
-
injectRouteParam(dest) {
|
|
4052
|
-
dest[this.parameterDef.name] = this.parameterDef.type.format(this.sanitisedValue);
|
|
4053
|
-
}
|
|
4054
|
-
}
|
|
4055
|
-
Sanitiser.Value = Value;
|
|
4056
|
-
/**
|
|
4057
|
-
* @template T
|
|
4058
|
-
*/
|
|
4059
|
-
class Array extends Sanitiser {
|
|
4060
|
-
/**
|
|
4061
|
-
* @param {?} snapshot
|
|
4062
|
-
* @return {?}
|
|
4063
|
-
*/
|
|
4064
|
-
readFrom(snapshot) {
|
|
4065
|
-
/** @type {?} */
|
|
4066
|
-
const rawValues = snapshot.paramMap.getAll(this.parameterDef.name);
|
|
4067
|
-
return rawValues.map((/**
|
|
4068
|
-
* @param {?} value
|
|
4069
|
-
* @return {?}
|
|
4070
|
-
*/
|
|
4071
|
-
value => this.parameterDef.type.parse(value)));
|
|
4072
|
-
}
|
|
4073
|
-
/**
|
|
4074
|
-
* @protected
|
|
4075
|
-
* @param {?} initialValue
|
|
4076
|
-
* @param {?} sanitisedValue
|
|
4077
|
-
* @return {?}
|
|
4078
|
-
*/
|
|
4079
|
-
hasChanged(initialValue, sanitisedValue) {
|
|
4080
|
-
return initialValue !== sanitisedValue;
|
|
4081
|
-
}
|
|
4082
|
-
/**
|
|
4083
|
-
* @param {?} dest
|
|
4084
|
-
* @return {?}
|
|
4085
|
-
*/
|
|
4086
|
-
injectRouteParam(dest) {
|
|
4087
|
-
dest[this.parameterDef.name] = this.sanitisedValue.map((/**
|
|
4088
|
-
* @param {?} v
|
|
4089
|
-
* @return {?}
|
|
4090
|
-
*/
|
|
4091
|
-
v => this.parameterDef.type.format(v)));
|
|
4092
|
-
}
|
|
4093
|
-
}
|
|
4094
|
-
Sanitiser.Array = Array;
|
|
4095
|
-
})(Sanitiser || (Sanitiser = {}));
|
|
4096
|
-
|
|
4097
3866
|
/**
|
|
4098
3867
|
* @fileoverview added by tsickle
|
|
4099
3868
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
@@ -4114,5 +3883,5 @@ if (false) {
|
|
|
4114
3883
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4115
3884
|
*/
|
|
4116
3885
|
|
|
4117
|
-
export { ACTIVITY_DATA, AbstractActivity, AbstractInputComponent, AbstractPlaceNavigationComponent, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, AngularUiPowerupsModule, Bounds, BusyOverlayComponent, CommandDirective, ConfirmationDialogComponent, DEFINITION_META_DATA_KEY, DialogInteractionService, Dimension, DisposableComponent, EmptyStateComponent, FocusBindingDirective, INTERACTION_CONTEXT, InteractionContext, InteractionModule, LEFT_RIGHT_PLACE_ANIMATION, LeavePlaceGuard, ListPlaceNavComponent, NumberInputComponent, ParameterDefinition, ParameterSnapshot, ParameterType, PasswordInputComponent, Place, PlaceComponent, PlaceDefinition, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouteGuard, PlaceRouter, Point, ROUTE_PARAMETER_LIST_KEY, ResizeAwareComponent, RouteId, RouteParameter, RouteParameterList,
|
|
3886
|
+
export { ACTIVITY_DATA, AbstractActivity, AbstractInputComponent, AbstractPlaceNavigationComponent, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, AngularUiPowerupsModule, Bounds, BusyOverlayComponent, CommandDirective, ConfirmationDialogComponent, DEFINITION_META_DATA_KEY, DialogInteractionService, Dimension, DisposableComponent, EmptyStateComponent, FocusBindingDirective, INTERACTION_CONTEXT, InteractionContext, InteractionModule, LEFT_RIGHT_PLACE_ANIMATION, LeavePlaceGuard, ListPlaceNavComponent, NumberInputComponent, ParameterDefinition, ParameterSnapshot, ParameterType, PasswordInputComponent, Place, PlaceComponent, PlaceDefinition, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouteGuard, PlaceRouter, Point, ROUTE_PARAMETER_LIST_KEY, ResizeAwareComponent, RouteId, RouteParameter, RouteParameterList, RouteParameterValue, SelectInputComponent, StringInputComponent, TabbedPlaceNavigationComponent, leftRightPlaceAnimation, slideDownAndUpAnimation, CommandDirective as ɵa, FocusBindingDirective as ɵb, AlertDialogComponent as ɵba, DialogInteractionService as ɵbc, InteractionContext as ɵbd, DisposableComponent as ɵc, NumberInputComponent as ɵd, AbstractInputComponent as ɵe, StringInputComponent as ɵf, PasswordInputComponent as ɵg, SelectInputComponent as ɵh, PlaceModule as ɵi, EmptyStateComponent as ɵj, BusyOverlayComponent as ɵk, PlaceOutletComponent as ɵl, leftRightPlaceAnimation as ɵm, LEFT_RIGHT_PLACE_ANIMATION as ɵn, PlaceRouter as ɵo, PlaceHistory as ɵp, TabbedPlaceNavigationComponent as ɵq, AbstractPlaceNavigationComponent as ɵr, ListPlaceNavComponent as ɵs, InteractionModule as ɵt, ActivityContainerComponent as ɵu, ActivityOutletComponent as ɵv, ConfirmationDialogComponent as ɵw, AbstractActivity as ɵx, ACTIVITY_DATA as ɵy };
|
|
4118
3887
|
//# sourceMappingURL=coolon-angular-ui-powerups.js.map
|