@coolon/angular-ui-powerups 0.0.37 → 0.0.38
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 +1427 -808
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.d.ts +16 -14
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +16 -14
- package/esm2015/index.js +2 -2
- package/esm2015/lib/angular-ui-powerups.module.js +6 -8
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +1 -2
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -2
- package/esm2015/lib/place/components/abstract-place-navigation.component.js +75 -0
- package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +47 -0
- package/esm2015/lib/place/components/place-outlet/route-animations.js +12 -5
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +5 -39
- package/esm2015/lib/place/guards/leave-place.guard.js +11 -2
- package/esm2015/lib/place/guards/place-route.guard.js +29 -37
- package/esm2015/lib/place/index.js +11 -9
- package/esm2015/lib/place/nav-item.js +23 -0
- package/esm2015/lib/place/place-component-like.js +17 -0
- package/esm2015/lib/place/place-component.js +118 -14
- package/esm2015/lib/place/place-updates-service.js +16 -0
- package/esm2015/lib/place/place.decorator.js +1 -1
- package/esm2015/lib/place/place.module.js +6 -3
- package/esm2015/lib/place/place.service.js +30 -6
- package/esm2015/lib/place/route/default-parameter-sanitiser.js +78 -0
- package/esm2015/lib/place/route/parameter-decorators.js +15 -7
- package/esm2015/lib/place/route/parameter-definition.class.js +2 -2
- package/esm2015/lib/place/route/parameter-sanitiser.js +17 -2
- package/esm2015/lib/place/route/parameter-snapshot.js +382 -0
- package/esm2015/lib/place/route/parameter-type.js +3 -2
- package/esm2015/lib/place/route/route-parameter-sanitiser.js +73 -38
- package/esm2015/lib/place/visit.js +22 -0
- package/esm2015/public_api.js +2 -2
- package/esm5/coolon-angular-ui-powerups.js +16 -14
- package/esm5/index.js +2 -2
- package/esm5/lib/angular-ui-powerups.module.js +6 -8
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +1 -2
- package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +1 -2
- package/esm5/lib/place/components/abstract-place-navigation.component.js +86 -0
- package/esm5/lib/place/components/list-place-nav/list-place-nav.component.js +61 -0
- package/esm5/lib/place/components/place-outlet/route-animations.js +12 -5
- package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +6 -43
- package/esm5/lib/place/guards/leave-place.guard.js +11 -2
- package/esm5/lib/place/guards/place-route.guard.js +28 -37
- package/esm5/lib/place/index.js +11 -9
- package/esm5/lib/place/nav-item.js +23 -0
- package/esm5/lib/place/place-component-like.js +17 -0
- package/esm5/lib/place/place-component.js +132 -15
- package/esm5/lib/place/place-updates-service.js +16 -0
- package/esm5/lib/place/place.decorator.js +1 -1
- package/esm5/lib/place/place.module.js +6 -3
- package/esm5/lib/place/place.service.js +35 -6
- package/esm5/lib/place/route/default-parameter-sanitiser.js +85 -0
- package/esm5/lib/place/route/parameter-decorators.js +15 -7
- package/esm5/lib/place/route/parameter-definition.class.js +2 -2
- package/esm5/lib/place/route/parameter-sanitiser.js +17 -2
- package/esm5/lib/place/route/parameter-snapshot.js +474 -0
- package/esm5/lib/place/route/parameter-type.js +3 -2
- package/esm5/lib/place/route/route-parameter-sanitiser.js +100 -45
- package/esm5/lib/place/visit.js +22 -0
- package/esm5/public_api.js +2 -2
- package/fesm2015/coolon-angular-ui-powerups.js +1145 -650
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +1390 -778
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/place/components/abstract-place-navigation.component.d.ts +13 -0
- package/lib/place/components/list-place-nav/list-place-nav.component.d.ts +8 -0
- package/lib/place/components/place-outlet/route-animations.d.ts +1 -0
- package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +2 -9
- package/lib/place/guards/place-route.guard.d.ts +4 -4
- package/lib/place/index.d.ts +8 -6
- package/lib/place/nav-item.d.ts +5 -0
- package/lib/place/{i-place-component.d.ts → place-component-like.d.ts} +1 -1
- package/lib/place/place-component.d.ts +19 -8
- package/lib/place/place-updates-service.d.ts +10 -0
- package/lib/place/place.service.d.ts +11 -8
- package/lib/place/route/default-parameter-sanitiser.d.ts +13 -0
- package/lib/place/route/parameter-decorators.d.ts +6 -2
- package/lib/place/route/parameter-definition.class.d.ts +3 -3
- package/lib/place/route/parameter-sanitiser.d.ts +8 -1
- package/lib/place/route/parameter-snapshot.d.ts +46 -0
- package/lib/place/route/route-parameter-sanitiser.d.ts +13 -9
- package/lib/place/visit.d.ts +6 -0
- package/package.json +1 -1
- package/schematics/place-routes/index.js +8 -95
- package/schematics/place-routes/index.js.map +1 -1
- package/schematics/place-routes/place-builder.d.ts +19 -0
- package/schematics/place-routes/place-builder.js +109 -0
- package/schematics/place-routes/place-builder.js.map +1 -0
- package/schematics/place-routes/{scanner.d.ts → place-class-scanner.d.ts} +10 -6
- package/schematics/place-routes/{scanner.js → place-class-scanner.js} +43 -18
- package/schematics/place-routes/place-class-scanner.js.map +1 -0
- package/schematics/place-routes/place-def.d.ts +19 -4
- package/schematics/place-routes/place-def.js +54 -4
- package/schematics/place-routes/place-def.js.map +1 -1
- package/schematics/place-routes/templates/{place-routes.ts.template → places.ts.template} +14 -11
- package/esm2015/lib/place/i-place-component.js +0 -17
- package/esm2015/lib/place/i-place-service.js +0 -16
- package/esm2015/lib/place/route/resolved-parameter.js +0 -16
- package/esm2015/lib/place/route/resolved-route-parameter-snapshot.js +0 -106
- package/esm2015/lib/place/route/route-parameter-bindings.js +0 -150
- package/esm2015/lib/place/route/visit-snapshot.js +0 -7
- package/esm5/lib/place/i-place-component.js +0 -17
- package/esm5/lib/place/i-place-service.js +0 -16
- package/esm5/lib/place/route/resolved-parameter.js +0 -16
- package/esm5/lib/place/route/resolved-route-parameter-snapshot.js +0 -129
- package/esm5/lib/place/route/route-parameter-bindings.js +0 -167
- package/esm5/lib/place/route/visit-snapshot.js +0 -11
- package/lib/place/i-place-service.d.ts +0 -10
- package/lib/place/route/resolved-parameter.d.ts +0 -5
- package/lib/place/route/resolved-route-parameter-snapshot.d.ts +0 -12
- package/lib/place/route/route-parameter-bindings.d.ts +0 -17
- package/lib/place/route/visit-snapshot.d.ts +0 -2
- package/schematics/place-routes/scanner.js.map +0 -1
- package/schematics/place-routes/templates/place-router.ts.template +0 -33
|
@@ -10,8 +10,23 @@ export function ParameterSanitiser() { }
|
|
|
10
10
|
if (false) {
|
|
11
11
|
/**
|
|
12
12
|
* @param {?} value
|
|
13
|
+
* @param {?=} visit
|
|
13
14
|
* @return {?}
|
|
14
15
|
*/
|
|
15
|
-
ParameterSanitiser.prototype.sanitise = function (value) { };
|
|
16
|
+
ParameterSanitiser.prototype.sanitise = function (value, visit) { };
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
(function (ParameterSanitiser) {
|
|
19
|
+
/**
|
|
20
|
+
* @record
|
|
21
|
+
* @template T
|
|
22
|
+
*/
|
|
23
|
+
function Options() { }
|
|
24
|
+
ParameterSanitiser.Options = Options;
|
|
25
|
+
if (false) {
|
|
26
|
+
/** @type {?|undefined} */
|
|
27
|
+
Options.prototype.remember;
|
|
28
|
+
/** @type {?|undefined} */
|
|
29
|
+
Options.prototype.defaultValue;
|
|
30
|
+
}
|
|
31
|
+
})(ParameterSanitiser || (ParameterSanitiser = {}));
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRUEsd0NBRUM7Ozs7Ozs7SUFEQyxvRUFBa0Q7O0FBR3BELFdBQWlCLGtCQUFrQjs7Ozs7SUFDakMsc0JBR0M7Ozs7UUFGQywyQkFBa0I7O1FBQ2xCLCtCQUFnQjs7QUFFcEIsQ0FBQyxFQUxnQixrQkFBa0IsS0FBbEIsa0JBQWtCLFFBS2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuLi92aXNpdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyU2FuaXRpc2VyPFQ+IHtcbiAgc2FuaXRpc2UodmFsdWU6IFQsIHZpc2l0PzogVmlzaXQpOiBUIHwgUHJvbWlzZTxUPjtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQYXJhbWV0ZXJTYW5pdGlzZXIge1xuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnM8VD4ge1xuICAgIHJlbWVtYmVyPzogYm9vbGVhblxuICAgIGRlZmF1bHRWYWx1ZT86IFRcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
import * as tslib_1 from "tslib";
|
|
2
|
+
var _a;
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview added by tsickle
|
|
5
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
6
|
+
*/
|
|
7
|
+
import { assert, Trace } from '@coolon/pectin';
|
|
8
|
+
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
9
|
+
import * as _ from 'lodash';
|
|
10
|
+
// TODO: there are really two types of snapshot, ones with id's and ones without.
|
|
11
|
+
// Id snapshot are repesented by 2 url segments
|
|
12
|
+
// ID => [{'/basePath', params}, {'id', params}]
|
|
13
|
+
// NO ID => [{'/basePath', params}]
|
|
14
|
+
export class ParameterSnapshot {
|
|
15
|
+
/**
|
|
16
|
+
* @param {?} placeDefinition
|
|
17
|
+
* @param {?} resolved
|
|
18
|
+
*/
|
|
19
|
+
constructor(placeDefinition, resolved) {
|
|
20
|
+
this.placeDefinition = placeDefinition;
|
|
21
|
+
this.resolved = resolved;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @param {?} other
|
|
25
|
+
* @return {?}
|
|
26
|
+
*/
|
|
27
|
+
hasChanged(other) {
|
|
28
|
+
/** @type {?} */
|
|
29
|
+
const changed = this.resolved.find((/**
|
|
30
|
+
* @param {?} r
|
|
31
|
+
* @return {?}
|
|
32
|
+
*/
|
|
33
|
+
(r) => {
|
|
34
|
+
return !r.isSame(other.getResolvedParameterValue(r.parameterDef));
|
|
35
|
+
}));
|
|
36
|
+
if (changed) {
|
|
37
|
+
console.log({ mine: changed, theirs: other.getResolvedParameter(changed.parameterDef) });
|
|
38
|
+
}
|
|
39
|
+
return !!changed;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @param {?} other
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
asUrlSegment(other) {
|
|
46
|
+
assert.isTruthy(this.hasChanged(other));
|
|
47
|
+
/** @type {?} */
|
|
48
|
+
const routeParts = [];
|
|
49
|
+
/** @type {?} */
|
|
50
|
+
const gainedId = this.getFormattedRouteId() && !other.getFormattedRouteId();
|
|
51
|
+
/** @type {?} */
|
|
52
|
+
const sameId = this.getFormattedRouteId() === other.getFormattedRouteId();
|
|
53
|
+
/** @type {?} */
|
|
54
|
+
const lostId = (!this.getFormattedRouteId() && other.getFormattedRouteId());
|
|
55
|
+
/** @type {?} */
|
|
56
|
+
const changedId = (this.getFormattedRouteId() !== other.getFormattedRouteId());
|
|
57
|
+
if (lostId || changedId) {
|
|
58
|
+
routeParts.push('..');
|
|
59
|
+
if (changedId) {
|
|
60
|
+
routeParts.push(this.getFormattedRouteId());
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
routeParts.push('.');
|
|
65
|
+
}
|
|
66
|
+
routeParts.push(this.getFormattedParameters());
|
|
67
|
+
return routeParts;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @template T, S
|
|
71
|
+
* @param {?} parameterDef
|
|
72
|
+
* @return {?}
|
|
73
|
+
*/
|
|
74
|
+
getResolvedParameter(parameterDef) {
|
|
75
|
+
return this.resolved.find((/**
|
|
76
|
+
* @param {?} r
|
|
77
|
+
* @return {?}
|
|
78
|
+
*/
|
|
79
|
+
r => r.parameterDef === parameterDef));
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @template T, S
|
|
83
|
+
* @param {?} parameterDef
|
|
84
|
+
* @return {?}
|
|
85
|
+
*/
|
|
86
|
+
getResolvedParameterValue(parameterDef) {
|
|
87
|
+
/** @type {?} */
|
|
88
|
+
const resolvedParameter = this.getResolvedParameter(parameterDef);
|
|
89
|
+
return resolvedParameter ? resolvedParameter.value : null;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @return {?}
|
|
93
|
+
*/
|
|
94
|
+
getRouteId() {
|
|
95
|
+
return this.getResolvedRouteId() ? this.getResolvedRouteId().value : null;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @param {?} name
|
|
99
|
+
* @return {?}
|
|
100
|
+
*/
|
|
101
|
+
getRouteParameter(name) {
|
|
102
|
+
/** @type {?} */
|
|
103
|
+
const resolvedParameter = this.resolved.find((/**
|
|
104
|
+
* @param {?} r
|
|
105
|
+
* @return {?}
|
|
106
|
+
*/
|
|
107
|
+
r => r.parameterDef.name === name));
|
|
108
|
+
return resolvedParameter ? resolvedParameter.value : null;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* @private
|
|
112
|
+
* @return {?}
|
|
113
|
+
*/
|
|
114
|
+
getResolvedRouteId() {
|
|
115
|
+
// RouteId's are never arrays: see parameter-decorators.ts createDefinition methods. It would be nice to
|
|
116
|
+
// capture this in the type system though
|
|
117
|
+
return (/** @type {?} */ (this.resolved.find((/**
|
|
118
|
+
* @param {?} p
|
|
119
|
+
* @return {?}
|
|
120
|
+
*/
|
|
121
|
+
p => p.parameterDef.isRouteId))));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* @return {?}
|
|
125
|
+
*/
|
|
126
|
+
hasRouteId() {
|
|
127
|
+
return !!this.getResolvedRouteId();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* @return {?}
|
|
131
|
+
*/
|
|
132
|
+
getFormattedRouteId() {
|
|
133
|
+
/** @type {?} */
|
|
134
|
+
const routeIdParam = this.getResolvedRouteId();
|
|
135
|
+
return routeIdParam ? routeIdParam.formattedValue() : null;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* @return {?}
|
|
139
|
+
*/
|
|
140
|
+
getFormattedParameters() {
|
|
141
|
+
/** @type {?} */
|
|
142
|
+
const params = {};
|
|
143
|
+
/** @type {?} */
|
|
144
|
+
const routeIdParam = this.resolved.filter((/**
|
|
145
|
+
* @param {?} p
|
|
146
|
+
* @return {?}
|
|
147
|
+
*/
|
|
148
|
+
p => !p.parameterDef.isRouteId)).forEach((/**
|
|
149
|
+
* @param {?} p
|
|
150
|
+
* @return {?}
|
|
151
|
+
*/
|
|
152
|
+
p => {
|
|
153
|
+
params[p.parameterDef.name] = p.formattedValue();
|
|
154
|
+
}));
|
|
155
|
+
return params;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* @template T, S
|
|
159
|
+
* @param {?} parameter
|
|
160
|
+
* @param {?} value
|
|
161
|
+
* @return {?}
|
|
162
|
+
*/
|
|
163
|
+
replace(parameter, value) {
|
|
164
|
+
return new ParameterSnapshot(this.placeDefinition, this.resolved.map((/**
|
|
165
|
+
* @param {?} p
|
|
166
|
+
* @return {?}
|
|
167
|
+
*/
|
|
168
|
+
p => {
|
|
169
|
+
return p.parameterDef === parameter ? p.replace(value) : p;
|
|
170
|
+
})));
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* @param {?} url
|
|
174
|
+
* @return {?}
|
|
175
|
+
*/
|
|
176
|
+
updateUrl(url) {
|
|
177
|
+
return url;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
tslib_1.__decorate([
|
|
181
|
+
Memoize(),
|
|
182
|
+
tslib_1.__metadata("design:type", Function),
|
|
183
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
184
|
+
tslib_1.__metadata("design:returntype", ParameterSnapshot.ResolvedParameter)
|
|
185
|
+
], ParameterSnapshot.prototype, "getResolvedParameter", null);
|
|
186
|
+
tslib_1.__decorate([
|
|
187
|
+
Memoize(),
|
|
188
|
+
tslib_1.__metadata("design:type", Function),
|
|
189
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
190
|
+
tslib_1.__metadata("design:returntype", typeof (_a = typeof S !== "undefined" && S) === "function" ? _a : Object)
|
|
191
|
+
], ParameterSnapshot.prototype, "getResolvedParameterValue", null);
|
|
192
|
+
tslib_1.__decorate([
|
|
193
|
+
Memoize(),
|
|
194
|
+
tslib_1.__metadata("design:type", Function),
|
|
195
|
+
tslib_1.__metadata("design:paramtypes", [String]),
|
|
196
|
+
tslib_1.__metadata("design:returntype", Object)
|
|
197
|
+
], ParameterSnapshot.prototype, "getRouteParameter", null);
|
|
198
|
+
tslib_1.__decorate([
|
|
199
|
+
Memoize(),
|
|
200
|
+
tslib_1.__metadata("design:type", Function),
|
|
201
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
202
|
+
tslib_1.__metadata("design:returntype", ParameterSnapshot.ResolvedValueParameter)
|
|
203
|
+
], ParameterSnapshot.prototype, "getResolvedRouteId", null);
|
|
204
|
+
if (false) {
|
|
205
|
+
/** @type {?} */
|
|
206
|
+
ParameterSnapshot.prototype.placeDefinition;
|
|
207
|
+
/**
|
|
208
|
+
* @type {?}
|
|
209
|
+
* @private
|
|
210
|
+
*/
|
|
211
|
+
ParameterSnapshot.prototype.resolved;
|
|
212
|
+
}
|
|
213
|
+
(function (ParameterSnapshot) {
|
|
214
|
+
/**
|
|
215
|
+
* @param {?} placeDef
|
|
216
|
+
* @param {?} paramMap
|
|
217
|
+
* @return {?}
|
|
218
|
+
*/
|
|
219
|
+
function create(placeDef, paramMap) {
|
|
220
|
+
/** @type {?} */
|
|
221
|
+
const resolvedParameters = placeDef.getRouteParameters()
|
|
222
|
+
.map((/**
|
|
223
|
+
* @param {?} def
|
|
224
|
+
* @return {?}
|
|
225
|
+
*/
|
|
226
|
+
def => {
|
|
227
|
+
if (def.isArray) {
|
|
228
|
+
/** @type {?} */
|
|
229
|
+
const value = paramMap.has(def.name) ? paramMap.getAll(def.name).map((/**
|
|
230
|
+
* @param {?} raw
|
|
231
|
+
* @return {?}
|
|
232
|
+
*/
|
|
233
|
+
raw => def.type.parse(raw))) : null;
|
|
234
|
+
return new ResolvedArrayParameter(def, value);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
/** @type {?} */
|
|
238
|
+
const value = paramMap.has(def.name) ? def.type.parse(paramMap.get(def.name)) : null;
|
|
239
|
+
return new ResolvedValueParameter(def, value);
|
|
240
|
+
}
|
|
241
|
+
}));
|
|
242
|
+
return new ParameterSnapshot(placeDef, resolvedParameters);
|
|
243
|
+
}
|
|
244
|
+
ParameterSnapshot.create = create;
|
|
245
|
+
/**
|
|
246
|
+
* @abstract
|
|
247
|
+
* @template T, S
|
|
248
|
+
*/
|
|
249
|
+
class ResolvedParameter {
|
|
250
|
+
/**
|
|
251
|
+
* @param {?} parameterDef
|
|
252
|
+
* @param {?} value
|
|
253
|
+
*/
|
|
254
|
+
constructor(parameterDef, value) {
|
|
255
|
+
this.parameterDef = parameterDef;
|
|
256
|
+
this.value = value;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* @return {?}
|
|
260
|
+
*/
|
|
261
|
+
isRouteId() {
|
|
262
|
+
return this.parameterDef.isRouteId;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
ParameterSnapshot.ResolvedParameter = ResolvedParameter;
|
|
266
|
+
if (false) {
|
|
267
|
+
/** @type {?} */
|
|
268
|
+
ResolvedParameter.prototype.parameterDef;
|
|
269
|
+
/** @type {?} */
|
|
270
|
+
ResolvedParameter.prototype.value;
|
|
271
|
+
/**
|
|
272
|
+
* @abstract
|
|
273
|
+
* @param {?} dest
|
|
274
|
+
* @return {?}
|
|
275
|
+
*/
|
|
276
|
+
ResolvedParameter.prototype.injectRouteParam = function (dest) { };
|
|
277
|
+
/**
|
|
278
|
+
* @abstract
|
|
279
|
+
* @param {?} otherValue
|
|
280
|
+
* @return {?}
|
|
281
|
+
*/
|
|
282
|
+
ResolvedParameter.prototype.isSame = function (otherValue) { };
|
|
283
|
+
/**
|
|
284
|
+
* @abstract
|
|
285
|
+
* @return {?}
|
|
286
|
+
*/
|
|
287
|
+
ResolvedParameter.prototype.formattedValue = function () { };
|
|
288
|
+
/**
|
|
289
|
+
* @abstract
|
|
290
|
+
* @param {?} value
|
|
291
|
+
* @return {?}
|
|
292
|
+
*/
|
|
293
|
+
ResolvedParameter.prototype.replace = function (value) { };
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* @template T
|
|
297
|
+
*/
|
|
298
|
+
class ResolvedValueParameter extends ResolvedParameter {
|
|
299
|
+
/**
|
|
300
|
+
* @param {?} otherValue
|
|
301
|
+
* @return {?}
|
|
302
|
+
*/
|
|
303
|
+
isSame(otherValue) {
|
|
304
|
+
return this.value === otherValue;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* @param {?} dest
|
|
308
|
+
* @return {?}
|
|
309
|
+
*/
|
|
310
|
+
injectRouteParam(dest) {
|
|
311
|
+
dest[this.parameterDef.name] = this.parameterDef.type.format(this.value);
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* @param {?} value
|
|
315
|
+
* @return {?}
|
|
316
|
+
*/
|
|
317
|
+
replace(value) {
|
|
318
|
+
return new ResolvedValueParameter(this.parameterDef, value);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* @return {?}
|
|
322
|
+
*/
|
|
323
|
+
formattedValue() {
|
|
324
|
+
return !_.isNil(this.value) ? this.parameterDef.type.format(this.value) : null;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
tslib_1.__decorate([
|
|
328
|
+
Trace(),
|
|
329
|
+
tslib_1.__metadata("design:type", Function),
|
|
330
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
331
|
+
tslib_1.__metadata("design:returntype", Boolean)
|
|
332
|
+
], ResolvedValueParameter.prototype, "isSame", null);
|
|
333
|
+
ParameterSnapshot.ResolvedValueParameter = ResolvedValueParameter;
|
|
334
|
+
/**
|
|
335
|
+
* @template T
|
|
336
|
+
*/
|
|
337
|
+
class ResolvedArrayParameter extends ResolvedParameter {
|
|
338
|
+
/**
|
|
339
|
+
* @param {?} otherValue
|
|
340
|
+
* @return {?}
|
|
341
|
+
*/
|
|
342
|
+
isSame(otherValue) {
|
|
343
|
+
return _.isEqual(this.value, otherValue);
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* @param {?} dest
|
|
347
|
+
* @return {?}
|
|
348
|
+
*/
|
|
349
|
+
injectRouteParam(dest) {
|
|
350
|
+
dest[this.parameterDef.name] = this.value.map((/**
|
|
351
|
+
* @param {?} v
|
|
352
|
+
* @return {?}
|
|
353
|
+
*/
|
|
354
|
+
v => this.parameterDef.type.format(v)));
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* @param {?} value
|
|
358
|
+
* @return {?}
|
|
359
|
+
*/
|
|
360
|
+
replace(value) {
|
|
361
|
+
return new ResolvedArrayParameter(this.parameterDef, value);
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* @return {?}
|
|
365
|
+
*/
|
|
366
|
+
formattedValue() {
|
|
367
|
+
return this.value ? this.value.map((/**
|
|
368
|
+
* @param {?} v
|
|
369
|
+
* @return {?}
|
|
370
|
+
*/
|
|
371
|
+
v => this.parameterDef.type.format(v))) : [];
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
tslib_1.__decorate([
|
|
375
|
+
Trace(),
|
|
376
|
+
tslib_1.__metadata("design:type", Function),
|
|
377
|
+
tslib_1.__metadata("design:paramtypes", [Array]),
|
|
378
|
+
tslib_1.__metadata("design:returntype", Boolean)
|
|
379
|
+
], ResolvedArrayParameter.prototype, "isSame", null);
|
|
380
|
+
ParameterSnapshot.ResolvedArrayParameter = ResolvedArrayParameter;
|
|
381
|
+
})(ParameterSnapshot || (ParameterSnapshot = {}));
|
|
382
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3BhcmFtZXRlci1zbmFwc2hvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFTNUIsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7SUFFNUIsWUFBcUIsZUFBMEMsRUFBbUIsUUFBeUQ7UUFBdEgsb0JBQWUsR0FBZixlQUFlLENBQTJCO1FBQW1CLGFBQVEsR0FBUixRQUFRLENBQWlEO0lBQzNJLENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLEtBQXdCOztjQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDcEUsQ0FBQyxFQUFDO1FBQ0YsSUFBSSxPQUFPLEVBQUU7WUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDMUY7UUFDRCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDbkIsQ0FBQzs7Ozs7SUFFRCxZQUFZLENBQUMsS0FBd0I7UUFDbkMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFD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QUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztRQUN2RixDQUFDOzs7OztRQUVELE9BQU8sQ0FBQyxLQUFVO1lBQ2hCLE9BQU8sSUFBSSxzQkFBc0IsQ0FBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLENBQUM7Ozs7UUFFRCxjQUFjO1lBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakYsQ0FBQztLQUVGO0lBaEJDO1FBREMsS0FBSyxFQUFFOzs7O3dEQUdQO0lBSlUsd0NBQXNCLHlCQWtCbEMsQ0FBQTtBQUdILENBQUMsRUExRWdCLGlCQUFpQixLQUFqQixpQkFBaUIsUUEwRWpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYW1NYXAsIFVybFNlZ21lbnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXNzZXJ0LCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IE1lbW9pemUgfSBmcm9tICdAdHlwZXNjcmlwdC1wbHVzL2Zhc3QtbWVtb2l6ZS1kZWNvcmF0b3IvZGlzdC9zcmMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlzaXQgfSBmcm9tICcuLi92aXNpdCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5cbi8vIFRPRE86IHRoZXJlIGFyZSByZWFsbHkgdHdvIHR5cGVzIG9mIHNuYXBzaG90LCBvbmVzIHdpdGggaWQncyBhbmQgb25lcyB3aXRob3V0LlxuLy8gSWQgc25hcHNob3QgYXJlIHJlcGVzZW50ZWQgYnkgMiB1cmwgc2VnbWVudHNcbi8vIElEID0+IFt7Jy9iYXNlUGF0aCcsIHBhcmFtc30sIHsnaWQnLCBwYXJhbXN9XVxuLy8gTk8gSUQgPT4gW3snL2Jhc2VQYXRoJywgcGFyYW1zfV1cbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJTbmFwc2hvdCBpbXBsZW1lbnRzIFZpc2l0IHtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwbGFjZURlZmluaXRpb246IFBsYWNlQ29tcG9uZW50LkRlZmluaXRpb24sIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZWQ6IFBhcmFtZXRlclNuYXBzaG90LlJlc29sdmVkUGFyYW1ldGVyPGFueSwgYW55PltdKSB7XG4gIH1cblxuICBoYXNDaGFuZ2VkKG90aGVyOiBQYXJhbWV0ZXJTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLnJlc29sdmVkLmZpbmQoKHIpID0+IHtcbiAgICAgIHJldHVybiAhci5pc1NhbWUob3RoZXIuZ2V0UmVzb2x2ZWRQYXJhbWV0ZXJWYWx1ZShyLnBhcmFtZXRlckRlZikpO1xuICAgIH0pO1xuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICBjb25zb2xlLmxvZyh7IG1pbmU6IGNoYW5nZWQsIHRoZWlyczogb3RoZXIuZ2V0UmVzb2x2ZWRQYXJhbWV0ZXIoY2hhbmdlZC5wYXJhbWV0ZXJEZWYpIH0pO1xuICAgIH1cbiAgICByZXR1cm4gISFjaGFuZ2VkO1xuICB9XG5cbiAgYXNVcmxTZWdtZW50KG90aGVyOiBQYXJhbWV0ZXJTbmFwc2hvdCk6IGFueVtdIHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5oYXNDaGFuZ2VkKG90aGVyKSk7XG4gICAgY29uc3Qgcm91dGVQYXJ0cyA9IFtdO1xuICAgIGNvbnN0IGdhaW5lZElkID0gdGhpcy5nZXRGb3JtYXR0ZWRSb3V0ZUlkKCkgJiYgIW90aGVyLmdldEZvcm1hdHRlZFJvdXRlSWQoKTtcbiAgICBjb25zdCBzYW1lSWQgPSB0aGlzLmdldEZvcm1hdHRlZFJvdXRlSWQoKSA9PT0gb3RoZXIuZ2V0Rm9ybWF0dGVkUm91dGVJZCgpO1xuICAgIGNvbnN0IGxvc3RJZCA9ICghdGhpcy5nZXRGb3JtYXR0ZWRSb3V0ZUlkKCkgJiYgb3RoZXIuZ2V0Rm9ybWF0dGVkUm91dGVJZCgpKTtcbiAgICBjb25zdCBjaGFuZ2VkSWQgPSAodGhpcy5nZXRGb3JtYXR0ZWRSb3V0ZUlkKCkgIT09IG90aGVyLmdldEZvcm1hdHRlZFJvdXRlSWQoKSk7XG4gICAgaWYgKGxvc3RJZCB8fCBjaGFuZ2VkSWQpIHtcbiAgICAgIHJvdXRlUGFydHMucHVzaCgnLi4nKTtcbiAgICAgIGlmIChjaGFuZ2VkSWQpIHtcbiAgICAgICAgcm91dGVQYXJ0cy5wdXNoKHRoaXMuZ2V0Rm9ybWF0dGVkUm91dGVJZCgpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcm91dGVQYXJ0cy5wdXNoKCcuJyk7XG4gICAgfVxuICAgIHJvdXRlUGFydHMucHVzaCh0aGlzLmdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKSk7XG4gICAgcmV0dXJuIHJvdXRlUGFydHM7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFJlc29sdmVkUGFyYW1ldGVyPFQsIFM+KHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBTPik6IFBhcmFtZXRlclNuYXBzaG90LlJlc29sdmVkUGFyYW1ldGVyPFQsIFM+IHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZC5maW5kKHIgPT4gci5wYXJhbWV0ZXJEZWYgPT09IHBhcmFtZXRlckRlZik7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFJlc29sdmVkUGFyYW1ldGVyVmFsdWU8VCwgUz4ocGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+KTogUyB7XG4gICAgY29uc3QgcmVzb2x2ZWRQYXJhbWV0ZXIgPSB0aGlzLmdldFJlc29sdmVkUGFyYW1ldGVyKHBhcmFtZXRlckRlZik7XG4gICAgcmV0dXJuIHJlc29sdmVkUGFyYW1ldGVyID8gcmVzb2x2ZWRQYXJhbWV0ZXIudmFsdWUgOiBudWxsO1xuICB9XG5cbiAgZ2V0Um91dGVJZCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldFJlc29sdmVkUm91dGVJZCgpID8gdGhpcy5nZXRSZXNvbHZlZFJvdXRlSWQoKS52YWx1ZSA6IG51bGw7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFJvdXRlUGFyYW1ldGVyKG5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgcmVzb2x2ZWRQYXJhbWV0ZXIgPSB0aGlzLnJlc29sdmVkLmZpbmQociA9PiByLnBhcmFtZXRlckRlZi5uYW1lID09PSBuYW1lKTtcbiAgICByZXR1cm4gcmVzb2x2ZWRQYXJhbWV0ZXIgPyByZXNvbHZlZFBhcmFtZXRlci52YWx1ZSA6IG51bGw7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIHByaXZhdGUgZ2V0UmVzb2x2ZWRSb3V0ZUlkKCk6IFBhcmFtZXRlclNuYXBzaG90LlJlc29sdmVkVmFsdWVQYXJhbWV0ZXI8YW55PiB7XG4gICAgLy8gUm91dGVJZCdzIGFyZSBuZXZlciBhcnJheXM6IHNlZSBwYXJhbWV0ZXItZGVjb3JhdG9ycy50cyBjcmVhdGVEZWZpbml0aW9uIG1ldGhvZHMuIEl0IHdvdWxkIGJlIG5pY2UgdG9cbiAgICAvLyBjYXB0dXJlIHRoaXMgaW4gdGhlIHR5cGUgc3lzdGVtIHRob3VnaFxuICAgIHJldHVybiB0aGlzLnJlc29sdmVkLmZpbmQocCA9PiBwLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpIGFzIFBhcmFtZXRlclNuYXBzaG90LlJlc29sdmVkVmFsdWVQYXJhbWV0ZXI8YW55PjtcbiAgfVxuXG4gIGhhc1JvdXRlSWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRSZXNvbHZlZFJvdXRlSWQoKTtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZFJvdXRlSWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCByb3V0ZUlkUGFyYW0gPSB0aGlzLmdldFJlc29sdmVkUm91dGVJZCgpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW0gPyByb3V0ZUlkUGFyYW0uZm9ybWF0dGVkVmFsdWUoKSA6IG51bGw7XG4gIH1cblxuICBnZXRGb3JtYXR0ZWRQYXJhbWV0ZXJzKCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbSA9IHRoaXMucmVzb2x2ZWQuZmlsdGVyKHAgPT4gIXAucGFyYW1ldGVyRGVmLmlzUm91dGVJZCkuZm9yRWFjaChwID0+IHtcbiAgICAgIHBhcmFtc1twLnBhcmFtZXRlckRlZi5uYW1lXSA9IHAuZm9ybWF0dGVkVmFsdWUoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgcmVwbGFjZTxULCBTPihwYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb248VCwgUz4sIHZhbHVlOiBTKTogUGFyYW1ldGVyU25hcHNob3Qge1xuICAgIHJldHVybiBuZXcgUGFyYW1ldGVyU25hcHNob3QodGhpcy5wbGFjZURlZmluaXRpb24sIHRoaXMucmVzb2x2ZWQubWFwKHAgPT4ge1xuICAgICAgcmV0dXJuIHAucGFyYW1ldGVyRGVmID09PSBwYXJhbWV0ZXIgPyBwLnJlcGxhY2UodmFsdWUpIDogcDtcbiAgICB9KSk7XG4gIH1cblxuICB1cGRhdGVVcmwodXJsOiBVcmxTZWdtZW50W10pIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGFyYW1ldGVyU25hcHNob3Qge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGUocGxhY2VEZWY6IFBsYWNlQ29tcG9uZW50LkRlZmluaXRpb24sIHBhcmFtTWFwOiBQYXJhbU1hcCk6IFBhcmFtZXRlclNuYXBzaG90IHtcbiAgICBjb25zdCByZXNvbHZlZFBhcmFtZXRlcnM6IFJlc29sdmVkUGFyYW1ldGVyPGFueSwgYW55PltdID0gcGxhY2VEZWYuZ2V0Um91dGVQYXJhbWV0ZXJzKClcbiAgICAgIC5tYXAoZGVmID0+IHtcbiAgICAgIGlmIChkZWYuaXNBcnJheSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtTWFwLmhhcyhkZWYubmFtZSkgPyBwYXJhbU1hcC5nZXRBbGwoZGVmLm5hbWUpLm1hcChyYXcgPT4gZGVmLnR5cGUucGFyc2UocmF3KSkgOiBudWxsO1xuICAgICAgICByZXR1cm4gbmV3IFJlc29sdmVkQXJyYXlQYXJhbWV0ZXIoZGVmLCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtTWFwLmhhcyhkZWYubmFtZSkgPyBkZWYudHlwZS5wYXJzZShwYXJhbU1hcC5nZXQoZGVmLm5hbWUpKSA6IG51bGw7XG4gICAgICAgIHJldHVybiBuZXcgUmVzb2x2ZWRWYWx1ZVBhcmFtZXRlcihkZWYsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFBhcmFtZXRlclNuYXBzaG90KHBsYWNlRGVmLCByZXNvbHZlZFBhcmFtZXRlcnMpO1xuICB9XG5cblxuICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzb2x2ZWRQYXJhbWV0ZXI8VCwgUyA9IFQ+IHtcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXJhbWV0ZXJEZWY6IFBhcmFtZXRlckRlZmluaXRpb248VCwgUz4sIHJlYWRvbmx5IHZhbHVlOiBTKSB7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgaW5qZWN0Um91dGVQYXJhbShkZXN0OiB7fSk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBpc1NhbWUob3RoZXJWYWx1ZTogUyk6IGJvb2xlYW47XG5cbiAgICBpc1JvdXRlSWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJEZWYuaXNSb3V0ZUlkO1xuICAgIH1cblxuICAgIGFic3RyYWN0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gICAgYWJzdHJhY3QgcmVwbGFjZSh2YWx1ZTogUyk6IFJlc29sdmVkUGFyYW1ldGVyPFQsIFM+O1xuICB9XG5cbiAgZXhwb3J0IGNsYXNzIFJlc29sdmVkVmFsdWVQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBSZXNvbHZlZFBhcmFtZXRlcjxULCBUPiB7XG4gICAgQFRyYWNlKClcbiAgICBpc1NhbWUob3RoZXJWYWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWUgPT09IG90aGVyVmFsdWU7XG4gICAgfVxuXG4gICAgaW5qZWN0Um91dGVQYXJhbShkZXN0OiB7fSk6IHZvaWQge1xuICAgICAgZGVzdFt0aGlzLnBhcmFtZXRlckRlZi5uYW1lXSA9IHRoaXMucGFyYW1ldGVyRGVmLnR5cGUuZm9ybWF0KHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHJlcGxhY2UodmFsdWU6IFQpOiBQYXJhbWV0ZXJTbmFwc2hvdC5SZXNvbHZlZFBhcmFtZXRlcjxULCBUPiB7XG4gICAgICByZXR1cm4gbmV3IFJlc29sdmVkVmFsdWVQYXJhbWV0ZXI8VD4odGhpcy5wYXJhbWV0ZXJEZWYsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMudmFsdWUpID8gdGhpcy5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQodGhpcy52YWx1ZSkgOiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBSZXNvbHZlZEFycmF5UGFyYW1ldGVyPFQ+IGV4dGVuZHMgUmVzb2x2ZWRQYXJhbWV0ZXI8VCwgVFtdPiB7XG4gICAgQFRyYWNlKClcbiAgICBpc1NhbWUob3RoZXJWYWx1ZTogVFtdKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gXy5pc0VxdWFsKHRoaXMudmFsdWUsIG90aGVyVmFsdWUpO1xuICAgIH1cblxuICAgIGluamVjdFJvdXRlUGFyYW0oZGVzdDoge30pOiB2b2lkIHtcbiAgICAgIGRlc3RbdGhpcy5wYXJhbWV0ZXJEZWYubmFtZV0gPSB0aGlzLnZhbHVlLm1hcCh2ID0+IHRoaXMucGFyYW1ldGVyRGVmLnR5cGUuZm9ybWF0KHYpKTtcbiAgICB9XG5cbiAgICByZXBsYWNlKHZhbHVlOiBUW10pOiBQYXJhbWV0ZXJTbmFwc2hvdC5SZXNvbHZlZFBhcmFtZXRlcjxULCBUW10+IHtcbiAgICAgIHJldHVybiBuZXcgUmVzb2x2ZWRBcnJheVBhcmFtZXRlcjxUPih0aGlzLnBhcmFtZXRlckRlZiwgdmFsdWUpO1xuICAgIH1cblxuICAgIGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZ1tdIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZS5tYXAodiA9PiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdCh2KSkgOiBbXTtcbiAgICB9XG5cbiAgfVxuXG5cbn1cbiJdfQ==
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
+
import * as _ from 'lodash';
|
|
5
6
|
// WARNING: interface has both a type and a value, skipping emit
|
|
6
7
|
export var ParameterType;
|
|
7
8
|
(function (ParameterType) {
|
|
@@ -34,7 +35,7 @@ export var ParameterType;
|
|
|
34
35
|
* @return {?}
|
|
35
36
|
*/
|
|
36
37
|
parse(value) {
|
|
37
|
-
return +value;
|
|
38
|
+
return _.isNil(value) || _.isEmpty(value) ? null : +value;
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
class BooleanType {
|
|
@@ -57,4 +58,4 @@ export var ParameterType;
|
|
|
57
58
|
ParameterType.NUMBER = new NumberType();
|
|
58
59
|
ParameterType.BOOLEAN = new BooleanType();
|
|
59
60
|
})(ParameterType || (ParameterType = {}));
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLXR5cGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvcGxhY2Uvcm91dGUvcGFyYW1ldGVyLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztBQVE1QixNQUFNLEtBQVcsYUFBYSxDQW1DN0I7QUFuQ0QsV0FBaUIsYUFBYTtJQUU1QixNQUFNLFVBQVU7Ozs7O1FBQ2QsTUFBTSxDQUFDLEtBQWE7WUFDbEIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDOzs7OztRQUVELEtBQUssQ0FBQyxLQUFhO1lBQ2pCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUNGO0lBRUQsTUFBTSxVQUFVOzs7OztRQUNkLE1BQU0sQ0FBQyxLQUFhO1lBQ2xCLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNwQixDQUFDOzs7OztRQUVELEtBQUssQ0FBQyxLQUFhO1lBQ2pCLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzVELENBQUM7S0FDRjtJQUVELE1BQU0sV0FBVzs7Ozs7UUFDZixNQUFNLENBQUMsS0FBYztZQUNuQixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbEMsQ0FBQzs7Ozs7UUFFRCxLQUFLLENBQUMsS0FBYTtZQUNqQixPQUFPLEtBQUssS0FBSyxNQUFNLENBQUM7UUFDMUIsQ0FBQztLQUNGO0lBRVksb0JBQU0sR0FBRyxJQUFJLFVBQVUsRUFBRTtJQUN6QixvQkFBTSxHQUFHLElBQUksVUFBVSxFQUFFO0lBQ3pCLHFCQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUU7QUFDMUMsQ0FBQyxFQW5DZ0IsYUFBYSxLQUFiLGFBQWEsUUFtQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlclR5cGU8VD4ge1xuICBmb3JtYXQodmFsdWU6IFQpOiBzdHJpbmc7XG5cbiAgcGFyc2UodmFsdWU6IHN0cmluZyk6IFQ7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUGFyYW1ldGVyVHlwZSB7XG5cbiAgY2xhc3MgU3RyaW5nVHlwZSBpbXBsZW1lbnRzIFBhcmFtZXRlclR5cGU8c3RyaW5nPiB7XG4gICAgZm9ybWF0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHBhcnNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGNsYXNzIE51bWJlclR5cGUgaW1wbGVtZW50cyBQYXJhbWV0ZXJUeXBlPG51bWJlcj4ge1xuICAgIGZvcm1hdCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgJHt2YWx1ZX1gO1xuICAgIH1cblxuICAgIHBhcnNlKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIF8uaXNOaWwodmFsdWUpIHx8IF8uaXNFbXB0eSh2YWx1ZSkgPyBudWxsIDogK3ZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGNsYXNzIEJvb2xlYW5UeXBlIGltcGxlbWVudHMgUGFyYW1ldGVyVHlwZTxib29sZWFuPiB7XG4gICAgZm9ybWF0KHZhbHVlOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB2YWx1ZSA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgfVxuXG4gICAgcGFyc2UodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNvbnN0IFNUUklORyA9IG5ldyBTdHJpbmdUeXBlKCk7XG4gIGV4cG9ydCBjb25zdCBOVU1CRVIgPSBuZXcgTnVtYmVyVHlwZSgpO1xuICBleHBvcnQgY29uc3QgQk9PTEVBTiA9IG5ldyBCb29sZWFuVHlwZSgpO1xufVxuIl19
|