@coolon/angular-ui-powerups 0.0.26 → 0.0.28
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 +3930 -0
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -0
- package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -0
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -0
- package/coolon-angular-ui-powerups.d.ts +30 -0
- package/coolon-angular-ui-powerups.metadata.json +1 -0
- package/esm2015/coolon-angular-ui-powerups.js +33 -0
- package/esm2015/index.js +6 -0
- package/esm2015/lib/angular-ui-powerups.module.js +54 -0
- package/esm2015/lib/animations/index.js +9 -0
- package/esm2015/lib/animations/slideDownAndUpAnimation.js +30 -0
- package/esm2015/lib/components/disposable-component.js +14 -0
- package/esm2015/lib/components/forms/abstract-input.component.js +183 -0
- package/esm2015/lib/components/forms/number-input/number-input.component.js +26 -0
- package/esm2015/lib/components/forms/password-input/password-input.component.js +26 -0
- package/esm2015/lib/components/forms/select-input/select-input.component.js +60 -0
- package/esm2015/lib/components/forms/string-input/string-input.component.js +26 -0
- package/esm2015/lib/components/index.js +18 -0
- package/esm2015/lib/components/resize-aware.component.js +96 -0
- package/esm2015/lib/components/types/bounds.class.js +56 -0
- package/esm2015/lib/components/types/dimension.class.js +21 -0
- package/esm2015/lib/components/types/point.class.js +36 -0
- package/esm2015/lib/directives/command.directive.js +135 -0
- package/esm2015/lib/directives/focus-binding.directive.js +179 -0
- package/esm2015/lib/directives/index.js +10 -0
- package/esm2015/lib/interaction/abstract-activity.js +129 -0
- package/esm2015/lib/interaction/activity.js +27 -0
- package/esm2015/lib/interaction/alert.js +23 -0
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +144 -0
- package/esm2015/lib/interaction/components/activity-outlet/activity-outlet-context.js +22 -0
- package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js +169 -0
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +37 -0
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +46 -0
- package/esm2015/lib/interaction/confirm.js +17 -0
- package/esm2015/lib/interaction/index.js +21 -0
- package/esm2015/lib/interaction/interaction-context.js +35 -0
- package/esm2015/lib/interaction/interaction.module.js +41 -0
- package/esm2015/lib/interaction/result.js +24 -0
- package/esm2015/lib/interaction/services/dialog-interaction.service.js +114 -0
- package/esm2015/lib/place/abstract-place-component.js +59 -0
- package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.js +44 -0
- package/esm2015/lib/place/components/empty-state/empty-state.component.js +28 -0
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +67 -0
- package/esm2015/lib/place/components/place-outlet/route-animations.js +35 -0
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +50 -0
- package/esm2015/lib/place/guards/leave-place.guard.js +52 -0
- package/esm2015/lib/place/guards/place-route.guard.js +74 -0
- package/esm2015/lib/place/index.js +27 -0
- package/esm2015/lib/place/place-component.js +17 -0
- package/esm2015/lib/place/place.decorator.js +72 -0
- package/esm2015/lib/place/place.module.js +49 -0
- package/esm2015/lib/place/place.service.js +61 -0
- package/esm2015/lib/place/route/json-types.js +13 -0
- package/esm2015/lib/place/route/parameter-decorators.js +182 -0
- package/esm2015/lib/place/route/parameter-definition.class.js +24 -0
- package/esm2015/lib/place/route/parameter-sanitiser.js +17 -0
- package/esm2015/lib/place/route/parameter-type.js +43 -0
- package/esm2015/lib/place/route/route-parameter-bindings.js +294 -0
- package/esm2015/lib/place/route/route-parameter-sanitiser.js +280 -0
- package/esm2015/public_api.js +11 -0
- package/esm5/coolon-angular-ui-powerups.js +33 -0
- package/esm5/index.js +6 -0
- package/esm5/lib/angular-ui-powerups.module.js +58 -0
- package/esm5/lib/animations/index.js +9 -0
- package/esm5/lib/animations/slideDownAndUpAnimation.js +30 -0
- package/esm5/lib/components/disposable-component.js +24 -0
- package/esm5/lib/components/forms/abstract-input.component.js +232 -0
- package/esm5/lib/components/forms/number-input/number-input.component.js +33 -0
- package/esm5/lib/components/forms/password-input/password-input.component.js +33 -0
- package/esm5/lib/components/forms/select-input/select-input.component.js +67 -0
- package/esm5/lib/components/forms/string-input/string-input.component.js +33 -0
- package/esm5/lib/components/index.js +18 -0
- package/esm5/lib/components/resize-aware.component.js +124 -0
- package/esm5/lib/components/types/bounds.class.js +59 -0
- package/esm5/lib/components/types/dimension.class.js +19 -0
- package/esm5/lib/components/types/point.class.js +43 -0
- package/esm5/lib/directives/command.directive.js +155 -0
- package/esm5/lib/directives/focus-binding.directive.js +231 -0
- package/esm5/lib/directives/index.js +10 -0
- package/esm5/lib/interaction/abstract-activity.js +173 -0
- package/esm5/lib/interaction/activity.js +27 -0
- package/esm5/lib/interaction/alert.js +23 -0
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +181 -0
- package/esm5/lib/interaction/components/activity-outlet/activity-outlet-context.js +22 -0
- package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js +206 -0
- package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +42 -0
- package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +54 -0
- package/esm5/lib/interaction/confirm.js +17 -0
- package/esm5/lib/interaction/index.js +21 -0
- package/esm5/lib/interaction/interaction-context.js +45 -0
- package/esm5/lib/interaction/interaction.module.js +45 -0
- package/esm5/lib/interaction/result.js +24 -0
- package/esm5/lib/interaction/services/dialog-interaction.service.js +140 -0
- package/esm5/lib/place/abstract-place-component.js +66 -0
- package/esm5/lib/place/components/busy-overlay/busy-overlay.component.js +49 -0
- package/esm5/lib/place/components/empty-state/empty-state.component.js +29 -0
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +81 -0
- package/esm5/lib/place/components/place-outlet/route-animations.js +35 -0
- package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +57 -0
- package/esm5/lib/place/guards/leave-place.guard.js +57 -0
- package/esm5/lib/place/guards/place-route.guard.js +78 -0
- package/esm5/lib/place/index.js +27 -0
- package/esm5/lib/place/place-component.js +17 -0
- package/esm5/lib/place/place.decorator.js +69 -0
- package/esm5/lib/place/place.module.js +53 -0
- package/esm5/lib/place/place.service.js +75 -0
- package/esm5/lib/place/route/json-types.js +13 -0
- package/esm5/lib/place/route/parameter-decorators.js +182 -0
- package/esm5/lib/place/route/parameter-definition.class.js +24 -0
- package/esm5/lib/place/route/parameter-sanitiser.js +17 -0
- package/esm5/lib/place/route/parameter-type.js +65 -0
- package/esm5/lib/place/route/route-parameter-bindings.js +339 -0
- package/esm5/lib/place/route/route-parameter-sanitiser.js +395 -0
- package/esm5/public_api.js +11 -0
- package/fesm2015/coolon-angular-ui-powerups.js +3149 -0
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -0
- package/fesm5/coolon-angular-ui-powerups.js +3703 -0
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -0
- package/lib/angular-ui-powerups.module.d.ts +2 -0
- package/{src/lib/animations/index.ts → lib/animations/index.d.ts} +0 -1
- package/lib/animations/slideDownAndUpAnimation.d.ts +5 -0
- package/lib/components/disposable-component.d.ts +5 -0
- package/lib/components/forms/abstract-input.component.d.ts +35 -0
- package/lib/components/forms/number-input/number-input.component.d.ts +6 -0
- package/lib/components/forms/password-input/password-input.component.d.ts +6 -0
- package/lib/components/forms/select-input/select-input.component.d.ts +11 -0
- package/lib/components/forms/string-input/string-input.component.d.ts +6 -0
- package/{src/lib/components/index.ts → lib/components/index.d.ts} +0 -1
- package/lib/components/resize-aware.component.d.ts +22 -0
- package/lib/components/types/bounds.class.d.ts +16 -0
- package/lib/components/types/dimension.class.d.ts +5 -0
- package/lib/components/types/point.class.d.ts +10 -0
- package/lib/directives/command.directive.d.ts +14 -0
- package/lib/directives/focus-binding.directive.d.ts +22 -0
- package/{src/lib/directives/index.ts → lib/directives/index.d.ts} +0 -1
- package/lib/interaction/abstract-activity.d.ts +17 -0
- package/lib/interaction/activity.d.ts +11 -0
- package/lib/interaction/alert.d.ts +5 -0
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +32 -0
- package/{src/lib/interaction/components/activity-outlet/activity-outlet-context.ts → lib/interaction/components/activity-outlet/activity-outlet-context.d.ts} +5 -7
- package/lib/interaction/components/activity-outlet/activity-outlet.component.d.ts +30 -0
- package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +8 -0
- package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +9 -0
- package/{src/lib/interaction/confirm.ts → lib/interaction/confirm.d.ts} +2 -3
- package/{src/lib/interaction/index.ts → lib/interaction/index.d.ts} +0 -1
- package/lib/interaction/interaction-context.d.ts +11 -0
- package/lib/interaction/interaction.module.d.ts +2 -0
- package/lib/interaction/result.d.ts +8 -0
- package/lib/interaction/services/dialog-interaction.service.d.ts +14 -0
- package/lib/place/abstract-place-component.d.ts +13 -0
- package/lib/place/components/busy-overlay/busy-overlay.component.d.ts +8 -0
- package/lib/place/components/empty-state/empty-state.component.d.ts +5 -0
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +13 -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 +11 -0
- package/lib/place/guards/leave-place.guard.d.ts +10 -0
- package/lib/place/guards/place-route.guard.d.ts +9 -0
- package/{src/lib/place/index.ts → lib/place/index.d.ts} +0 -1
- package/lib/place/place-component.d.ts +5 -0
- package/lib/place/place.decorator.d.ts +20 -0
- package/lib/place/place.module.d.ts +2 -0
- package/lib/place/place.service.d.ts +8 -0
- package/lib/place/route/json-types.d.ts +7 -0
- package/lib/place/route/parameter-decorators.d.ts +28 -0
- package/lib/place/route/parameter-definition.class.d.ts +11 -0
- package/{src/lib/place/route/parameter-sanitiser.ts → lib/place/route/parameter-sanitiser.d.ts} +1 -1
- package/lib/place/route/parameter-type.d.ts +16 -0
- package/lib/place/route/route-parameter-bindings.d.ts +18 -0
- package/lib/place/route/route-parameter-sanitiser.d.ts +42 -0
- package/package.json +14 -12
- package/schematics/ng-add/index.d.ts +2 -0
- package/schematics/ng-add/index.js +12 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/place-routes/index.d.ts +3 -0
- package/schematics/place-routes/index.js +114 -0
- package/schematics/place-routes/index.js.map +1 -0
- package/schematics/place-routes/place-def.d.ts +37 -0
- package/schematics/place-routes/place-def.js +108 -0
- package/schematics/place-routes/place-def.js.map +1 -0
- package/schematics/place-routes/scanner.d.ts +38 -0
- package/schematics/place-routes/scanner.js +169 -0
- package/schematics/place-routes/scanner.js.map +1 -0
- package/schematics/place-routes/schema.d.ts +7 -0
- package/schematics/place-routes/schema.js +3 -0
- package/schematics/place-routes/schema.js.map +1 -0
- package/schematics/place-routes/templates/{services/place-router.service.ts.template → place-router.ts.template} +13 -18
- package/CHANGELOG.md +0 -7
- package/jest.config.js +0 -9
- package/ng-package.json +0 -13
- package/schematics/ng-add/index.ts +0 -10
- package/schematics/place-routes/index.ts +0 -152
- package/schematics/place-routes/place-def.ts +0 -93
- package/schematics/place-routes/scanner.ts +0 -145
- package/schematics/place-routes/schema.ts +0 -7
- package/src/lib/angular-ui-powerups.module.spec.ts +0 -14
- package/src/lib/angular-ui-powerups.module.ts +0 -49
- package/src/lib/animations/slideDownAndUpAnimation.ts +0 -39
- package/src/lib/components/disposable-component.ts +0 -9
- package/src/lib/components/forms/abstract-input.component.ts +0 -108
- package/src/lib/components/forms/number-input/number-input.component.html +0 -15
- package/src/lib/components/forms/number-input/number-input.component.scss +0 -3
- package/src/lib/components/forms/number-input/number-input.component.spec.ts +0 -25
- package/src/lib/components/forms/number-input/number-input.component.ts +0 -19
- package/src/lib/components/forms/password-input/password-input.component.html +0 -16
- package/src/lib/components/forms/password-input/password-input.component.scss +0 -3
- package/src/lib/components/forms/password-input/password-input.component.spec.ts +0 -25
- package/src/lib/components/forms/password-input/password-input.component.ts +0 -18
- package/src/lib/components/forms/scss/mixins.scss +0 -16
- package/src/lib/components/forms/select-input/select-input.component.html +0 -16
- package/src/lib/components/forms/select-input/select-input.component.scss +0 -7
- package/src/lib/components/forms/select-input/select-input.component.spec.ts +0 -25
- package/src/lib/components/forms/select-input/select-input.component.ts +0 -31
- package/src/lib/components/forms/string-input/string-input.component.html +0 -15
- package/src/lib/components/forms/string-input/string-input.component.scss +0 -3
- package/src/lib/components/forms/string-input/string-input.component.spec.ts +0 -25
- package/src/lib/components/forms/string-input/string-input.component.ts +0 -18
- package/src/lib/components/resize-aware.component.ts +0 -52
- package/src/lib/components/types/bounds.class.ts +0 -25
- package/src/lib/components/types/dimension.class.ts +0 -3
- package/src/lib/components/types/point.class.ts +0 -13
- package/src/lib/directives/command.directive.spec.ts +0 -73
- package/src/lib/directives/command.directive.ts +0 -81
- package/src/lib/directives/focus-binding.directive.spec.ts +0 -8
- package/src/lib/directives/focus-binding.directive.ts +0 -108
- package/src/lib/interaction/abstract-activity.ts +0 -57
- package/src/lib/interaction/activity.ts +0 -17
- package/src/lib/interaction/alert.ts +0 -6
- package/src/lib/interaction/components/activity-container/activity-container.component.html +0 -8
- package/src/lib/interaction/components/activity-container/activity-container.component.scss +0 -3
- package/src/lib/interaction/components/activity-container/activity-container.component.spec.ts +0 -25
- package/src/lib/interaction/components/activity-container/activity-container.component.ts +0 -93
- package/src/lib/interaction/components/activity-outlet/activity-outlet.component.scss +0 -3
- package/src/lib/interaction/components/activity-outlet/activity-outlet.component.spec.ts +0 -25
- package/src/lib/interaction/components/activity-outlet/activity-outlet.component.ts +0 -96
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.html +0 -7
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.scss +0 -7
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.spec.ts +0 -25
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.ts +0 -20
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.html +0 -9
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.scss +0 -8
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.spec.ts +0 -25
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts +0 -26
- package/src/lib/interaction/interaction-context.ts +0 -16
- package/src/lib/interaction/interaction.module.ts +0 -35
- package/src/lib/interaction/result.ts +0 -16
- package/src/lib/interaction/services/dialog-interaction.service.scss +0 -11
- package/src/lib/interaction/services/dialog-interaction.service.spec.ts +0 -12
- package/src/lib/interaction/services/dialog-interaction.service.ts +0 -63
- package/src/lib/place/abstract-place-component.ts +0 -33
- package/src/lib/place/components/busy-overlay/busy-overlay.component.html +0 -4
- package/src/lib/place/components/busy-overlay/busy-overlay.component.scss +0 -27
- package/src/lib/place/components/busy-overlay/busy-overlay.component.spec.ts +0 -25
- package/src/lib/place/components/busy-overlay/busy-overlay.component.ts +0 -23
- package/src/lib/place/components/empty-state/empty-state.component.scss +0 -15
- package/src/lib/place/components/empty-state/empty-state.component.spec.ts +0 -25
- package/src/lib/place/components/empty-state/empty-state.component.ts +0 -19
- package/src/lib/place/components/place-outlet/place-outlet.component.html +0 -7
- package/src/lib/place/components/place-outlet/place-outlet.component.scss +0 -12
- package/src/lib/place/components/place-outlet/place-outlet.component.spec.ts +0 -25
- package/src/lib/place/components/place-outlet/place-outlet.component.ts +0 -37
- package/src/lib/place/components/place-outlet/route-animations.ts +0 -30
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.html +0 -7
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.scss +0 -100
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.spec.ts +0 -25
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.ts +0 -30
- package/src/lib/place/guards/leave-place.guard.spec.ts +0 -15
- package/src/lib/place/guards/leave-place.guard.ts +0 -18
- package/src/lib/place/guards/place-route.guard.ts +0 -37
- package/src/lib/place/place-component.ts +0 -6
- package/src/lib/place/place.decorator.ts +0 -40
- package/src/lib/place/place.module.ts +0 -44
- package/src/lib/place/place.service.spec.ts +0 -12
- package/src/lib/place/place.service.ts +0 -29
- package/src/lib/place/route/json-types.ts +0 -5
- package/src/lib/place/route/parameter-decorators.ts +0 -99
- package/src/lib/place/route/parameter-definition.class.ts +0 -12
- package/src/lib/place/route/parameter-type.ts +0 -31
- package/src/lib/place/route/route-parameter-bindings.ts +0 -140
- package/src/lib/place/route/route-parameter-sanitiser.ts +0 -135
- package/src/test-setup.ts +0 -1
- package/tsconfig.json +0 -7
- package/tsconfig.lib.json +0 -20
- package/tsconfig.schematics.json +0 -35
- package/tsconfig.spec.json +0 -10
- package/tslint.json +0 -7
- /package/{src/index.ts → index.d.ts} +0 -0
- /package/{src/public_api.ts → public_api.d.ts} +0 -0
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
7
|
+
import { Binding, Dsl, GarbageCollector, MutableValueModel, Trace, TransactionObserver } from '@coolon/pectin';
|
|
8
|
+
import { Klass } from '@coolon/typescript-utilities';
|
|
9
|
+
/**
|
|
10
|
+
* @record
|
|
11
|
+
* @template T
|
|
12
|
+
*/
|
|
13
|
+
function ResolvedParameter() { }
|
|
14
|
+
if (false) {
|
|
15
|
+
/** @type {?} */
|
|
16
|
+
ResolvedParameter.prototype.parameterDef;
|
|
17
|
+
/** @type {?} */
|
|
18
|
+
ResolvedParameter.prototype.resolvedValue;
|
|
19
|
+
}
|
|
20
|
+
class ResolvedParameters {
|
|
21
|
+
/**
|
|
22
|
+
* @param {?} parameters
|
|
23
|
+
*/
|
|
24
|
+
constructor(parameters) {
|
|
25
|
+
this.parameters = parameters;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @template T
|
|
29
|
+
* @param {?} parameter
|
|
30
|
+
* @return {?}
|
|
31
|
+
*/
|
|
32
|
+
get(parameter) {
|
|
33
|
+
/** @type {?} */
|
|
34
|
+
const resolved = this.parameters.find((/**
|
|
35
|
+
* @param {?} p
|
|
36
|
+
* @return {?}
|
|
37
|
+
*/
|
|
38
|
+
p => p.parameterDef === parameter));
|
|
39
|
+
return resolved ? resolved.resolvedValue : null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @template T
|
|
43
|
+
* @param {?} parameter
|
|
44
|
+
* @param {?} value
|
|
45
|
+
* @return {?}
|
|
46
|
+
*/
|
|
47
|
+
replace(parameter, value) {
|
|
48
|
+
return new ResolvedParameters(this.parameters.filter((/**
|
|
49
|
+
* @param {?} p
|
|
50
|
+
* @return {?}
|
|
51
|
+
*/
|
|
52
|
+
p => p.parameterDef !== parameter)).concat({
|
|
53
|
+
parameterDef: parameter,
|
|
54
|
+
resolvedValue: value
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* @protected
|
|
59
|
+
* @return {?}
|
|
60
|
+
*/
|
|
61
|
+
getFormattedRouteId() {
|
|
62
|
+
/** @type {?} */
|
|
63
|
+
const routeIdParam = this.getRouteIdParam();
|
|
64
|
+
return routeIdParam ? routeIdParam.parameterDef.type.format(routeIdParam.resolvedValue) : null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @private
|
|
68
|
+
* @return {?}
|
|
69
|
+
*/
|
|
70
|
+
getRouteIdParam() {
|
|
71
|
+
return this.parameters.find((/**
|
|
72
|
+
* @param {?} p
|
|
73
|
+
* @return {?}
|
|
74
|
+
*/
|
|
75
|
+
p => p.parameterDef.isRouteId));
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @protected
|
|
79
|
+
* @return {?}
|
|
80
|
+
*/
|
|
81
|
+
getFormattedParameters() {
|
|
82
|
+
/** @type {?} */
|
|
83
|
+
const params = {};
|
|
84
|
+
/** @type {?} */
|
|
85
|
+
const routeIdParam = this.parameters.filter((/**
|
|
86
|
+
* @param {?} p
|
|
87
|
+
* @return {?}
|
|
88
|
+
*/
|
|
89
|
+
p => !p.parameterDef.isRouteId)).forEach((/**
|
|
90
|
+
* @param {?} p
|
|
91
|
+
* @return {?}
|
|
92
|
+
*/
|
|
93
|
+
p => {
|
|
94
|
+
params[p.parameterDef.name] = p.parameterDef.type.format(p.resolvedValue);
|
|
95
|
+
}));
|
|
96
|
+
return params;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* @return {?}
|
|
100
|
+
*/
|
|
101
|
+
hasRouteId() {
|
|
102
|
+
return !!this.getRouteIdParam();
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @param {?} previous
|
|
106
|
+
* @param {?} router
|
|
107
|
+
* @param {?} activatedRoute
|
|
108
|
+
* @return {?}
|
|
109
|
+
*/
|
|
110
|
+
redirect(previous, router, activatedRoute) {
|
|
111
|
+
/** @type {?} */
|
|
112
|
+
const routeId = this.getFormattedRouteId();
|
|
113
|
+
/** @type {?} */
|
|
114
|
+
const relativePath = !!previous.hasRouteId() ? '..' : '.';
|
|
115
|
+
/** @type {?} */
|
|
116
|
+
const path = routeId ? [relativePath, routeId, this.getFormattedParameters()] : [relativePath, this.getFormattedParameters()];
|
|
117
|
+
router.navigate(path, {
|
|
118
|
+
relativeTo: activatedRoute
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
tslib_1.__decorate([
|
|
123
|
+
Trace(),
|
|
124
|
+
tslib_1.__metadata("design:type", Function),
|
|
125
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
126
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
127
|
+
], ResolvedParameters.prototype, "getFormattedRouteId", null);
|
|
128
|
+
tslib_1.__decorate([
|
|
129
|
+
Trace(),
|
|
130
|
+
tslib_1.__metadata("design:type", Function),
|
|
131
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
132
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
133
|
+
], ResolvedParameters.prototype, "getFormattedParameters", null);
|
|
134
|
+
tslib_1.__decorate([
|
|
135
|
+
Trace(),
|
|
136
|
+
tslib_1.__metadata("design:type", Function),
|
|
137
|
+
tslib_1.__metadata("design:paramtypes", [ResolvedParameters, Router, ActivatedRoute]),
|
|
138
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
139
|
+
], ResolvedParameters.prototype, "redirect", null);
|
|
140
|
+
if (false) {
|
|
141
|
+
/** @type {?} */
|
|
142
|
+
ResolvedParameters.prototype.parameters;
|
|
143
|
+
}
|
|
144
|
+
export class RouteParameterBindings extends GarbageCollector {
|
|
145
|
+
/**
|
|
146
|
+
* @param {?} component
|
|
147
|
+
* @param {?} router
|
|
148
|
+
* @param {?} activatedRoute
|
|
149
|
+
*/
|
|
150
|
+
constructor(component, router, activatedRoute) {
|
|
151
|
+
super();
|
|
152
|
+
this.component = component;
|
|
153
|
+
this.router = router;
|
|
154
|
+
this.activatedRoute = activatedRoute;
|
|
155
|
+
this._incomingRouteChange = new MutableValueModel(false);
|
|
156
|
+
this.resolvedParameters = new MutableValueModel();
|
|
157
|
+
const { chain, valueOf, before, when, after, observe } = Dsl.disposeWith(this);
|
|
158
|
+
this.txo = new TransactionObserver(); //.onEvent(e => console.log(e.toString()));
|
|
159
|
+
//.onEvent(e => console.log(e.toString()));
|
|
160
|
+
/** @type {?} */
|
|
161
|
+
const routeParameterDefs = Klass.get(component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);
|
|
162
|
+
routeParameterDefs.forEach((/**
|
|
163
|
+
* @param {?} parameter
|
|
164
|
+
* @return {?}
|
|
165
|
+
*/
|
|
166
|
+
parameter => this.installBinding(parameter)));
|
|
167
|
+
/** @type {?} */
|
|
168
|
+
const incomingResolvedRouteParameters = observe.valuesFrom(activatedRoute.paramMap)
|
|
169
|
+
.last()
|
|
170
|
+
.map((/**
|
|
171
|
+
* @param {?} params
|
|
172
|
+
* @return {?}
|
|
173
|
+
*/
|
|
174
|
+
params => {
|
|
175
|
+
/** @type {?} */
|
|
176
|
+
const result = [];
|
|
177
|
+
routeParameterDefs.forEach((/**
|
|
178
|
+
* @param {?} parameterDef
|
|
179
|
+
* @return {?}
|
|
180
|
+
*/
|
|
181
|
+
parameterDef => {
|
|
182
|
+
/** @type {?} */
|
|
183
|
+
let resolvedValue;
|
|
184
|
+
if (parameterDef.isArray) {
|
|
185
|
+
resolvedValue = params.getAll(parameterDef.name).map((/**
|
|
186
|
+
* @param {?} v
|
|
187
|
+
* @return {?}
|
|
188
|
+
*/
|
|
189
|
+
v => parameterDef.type.parse(v)));
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
resolvedValue = parameterDef.type.parse(params.get(parameterDef.name));
|
|
193
|
+
}
|
|
194
|
+
result.push({ parameterDef: parameterDef, resolvedValue: resolvedValue });
|
|
195
|
+
}));
|
|
196
|
+
return new ResolvedParameters(result);
|
|
197
|
+
}));
|
|
198
|
+
incomingResolvedRouteParameters.subscribe((/**
|
|
199
|
+
* @param {?} resolvedParameters
|
|
200
|
+
* @return {?}
|
|
201
|
+
*/
|
|
202
|
+
resolvedParameters => {
|
|
203
|
+
this._incomingRouteChange.value = true;
|
|
204
|
+
this.resolvedParameters.value = resolvedParameters;
|
|
205
|
+
this._incomingRouteChange.value = false;
|
|
206
|
+
}));
|
|
207
|
+
when.valueOf(this.resolvedParameters).changes((/**
|
|
208
|
+
* @param {?} params
|
|
209
|
+
* @param {?} previous
|
|
210
|
+
* @return {?}
|
|
211
|
+
*/
|
|
212
|
+
(params, previous) => {
|
|
213
|
+
params.redirect(previous, router, activatedRoute);
|
|
214
|
+
}), { unless: this.incomingRouteChange });
|
|
215
|
+
this.txo.observe('incomingResolvedRouteParameters', incomingResolvedRouteParameters);
|
|
216
|
+
this.txo.observe('this.routeIsChanging', this.incomingRouteChange);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* @return {?}
|
|
220
|
+
*/
|
|
221
|
+
get incomingRouteChange() {
|
|
222
|
+
return this._incomingRouteChange.readonly;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* @protected
|
|
226
|
+
* @template T
|
|
227
|
+
* @param {?} parameter
|
|
228
|
+
* @return {?}
|
|
229
|
+
*/
|
|
230
|
+
installBinding(parameter) {
|
|
231
|
+
/** @type {?} */
|
|
232
|
+
const model = this.getModelFor(parameter);
|
|
233
|
+
// this.txo.observe(parameter.propertyName, model);
|
|
234
|
+
this.registerDisposable(new Binding(this.resolvedParameters, model, {
|
|
235
|
+
/**
|
|
236
|
+
* @param {?} parameters
|
|
237
|
+
* @return {?}
|
|
238
|
+
*/
|
|
239
|
+
toRight(parameters) {
|
|
240
|
+
return parameters.get(parameter);
|
|
241
|
+
},
|
|
242
|
+
/**
|
|
243
|
+
* @param {?} value
|
|
244
|
+
* @param {?=} currentParameters
|
|
245
|
+
* @return {?}
|
|
246
|
+
*/
|
|
247
|
+
toLeft(value, currentParameters) {
|
|
248
|
+
return currentParameters.replace(parameter, value);
|
|
249
|
+
}
|
|
250
|
+
}));
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* @private
|
|
254
|
+
* @template T
|
|
255
|
+
* @param {?} parameter
|
|
256
|
+
* @return {?}
|
|
257
|
+
*/
|
|
258
|
+
getModelFor(parameter) {
|
|
259
|
+
return this.component[parameter.propertyName];
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (false) {
|
|
263
|
+
/** @type {?} */
|
|
264
|
+
RouteParameterBindings.prototype._incomingRouteChange;
|
|
265
|
+
/**
|
|
266
|
+
* @type {?}
|
|
267
|
+
* @private
|
|
268
|
+
*/
|
|
269
|
+
RouteParameterBindings.prototype.txo;
|
|
270
|
+
/**
|
|
271
|
+
* @type {?}
|
|
272
|
+
* @private
|
|
273
|
+
*/
|
|
274
|
+
RouteParameterBindings.prototype.resolvedParameters;
|
|
275
|
+
/**
|
|
276
|
+
* @type {?}
|
|
277
|
+
* @private
|
|
278
|
+
*/
|
|
279
|
+
RouteParameterBindings.prototype.component;
|
|
280
|
+
/**
|
|
281
|
+
* @type {?}
|
|
282
|
+
* @private
|
|
283
|
+
*/
|
|
284
|
+
RouteParameterBindings.prototype.router;
|
|
285
|
+
/**
|
|
286
|
+
* @type {?}
|
|
287
|
+
* @private
|
|
288
|
+
*/
|
|
289
|
+
RouteParameterBindings.prototype.activatedRoute;
|
|
290
|
+
}
|
|
291
|
+
(function (RouteParameterBindings) {
|
|
292
|
+
RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');
|
|
293
|
+
})(RouteParameterBindings || (RouteParameterBindings = {}));
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLWJpbmRpbmdzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3JvdXRlL3JvdXRlLXBhcmFtZXRlci1iaW5kaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNMLE9BQU8sRUFDUCxHQUFHLEVBQ0gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUdyRCxnQ0FHQzs7O0lBRkMseUNBQXFDOztJQUNyQywwQ0FBaUI7O0FBR25CLE1BQU0sa0JBQWtCOzs7O0lBQ3RCLFlBQXFCLFVBQW9DO1FBQXBDLGVBQVUsR0FBVixVQUFVLENBQTBCO0lBQ3pELENBQUM7Ozs7OztJQUVELEdBQUcsQ0FBSSxTQUFpQzs7Y0FDaEMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTs7OztRQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUM7UUFDeEUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRCxDQUFDOzs7Ozs7O0lBRUQsT0FBTyxDQUFJLFNBQWlDLEVBQUUsS0FBUTtRQUNwRCxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBQyxDQUFDLE1BQU0sQ0FBQztZQUM3RixZQUFZLEVBQUUsU0FBUztZQUN2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O0lBQ04sQ0FBQzs7Ozs7OztJQUdPLFdBQVcsQ0FBSSxTQUFpQztRQUN0RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hELENBQUM7Q0FDRjs7O0lBbEVDLHNEQUE2RTs7Ozs7SUFFN0UscUNBQWlDOzs7OztJQUVqQyxvREFBa0Y7Ozs7O0lBRXRFLDJDQUErQjs7Ozs7SUFBRSx3Q0FBK0I7Ozs7O0lBQUUsZ0RBQStDOztBQThEL0gsV0FBaUIsc0JBQXNCO0lBQ3hCLCtDQUF3QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztBQUMxRSxDQUFDLEVBRmdCLHNCQUFzQixLQUF0QixzQkFBc0IsUUFFdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEJpbmRpbmcsXG4gIERzbCxcbiAgR2FyYmFnZUNvbGxlY3RvciwgSU11dGFibGVIYXNWYWx1ZSxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFRyYWNlLFxuICBUcmFuc2FjdGlvbk9ic2VydmVyXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEtsYXNzIH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9wYXJhbWV0ZXItZGVmaW5pdGlvbi5jbGFzcyc7XG5cbmludGVyZmFjZSBSZXNvbHZlZFBhcmFtZXRlcjxUPiB7XG4gIHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPjtcbiAgcmVzb2x2ZWRWYWx1ZTogVDtcbn1cblxuY2xhc3MgUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcGFyYW1ldGVyczogUmVzb2x2ZWRQYXJhbWV0ZXI8YW55PltdKSB7XG4gIH1cblxuICBnZXQ8VD4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+KTogVCB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSB0aGlzLnBhcmFtZXRlcnMuZmluZChwID0+IHAucGFyYW1ldGVyRGVmID09PSBwYXJhbWV0ZXIpO1xuICAgIHJldHVybiByZXNvbHZlZCA/IHJlc29sdmVkLnJlc29sdmVkVmFsdWUgOiBudWxsO1xuICB9XG5cbiAgcmVwbGFjZTxUPihwYXJhbWV0ZXI6IFBhcmFtZXRlckRlZmluaXRpb248VD4sIHZhbHVlOiBUKTogUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgICByZXR1cm4gbmV3IFJlc29sdmVkUGFyYW1ldGVycyh0aGlzLnBhcmFtZXRlcnMuZmlsdGVyKHAgPT4gcC5wYXJhbWV0ZXJEZWYgIT09IHBhcmFtZXRlcikuY29uY2F0KHtcbiAgICAgIHBhcmFtZXRlckRlZjogcGFyYW1ldGVyLFxuICAgICAgcmVzb2x2ZWRWYWx1ZTogdmFsdWVcbiAgICB9KSk7XG4gIH1cblxuICBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgZ2V0Rm9ybWF0dGVkUm91dGVJZCgpIHtcbiAgICBjb25zdCByb3V0ZUlkUGFyYW0gPSB0aGlzLmdldFJvdXRlSWRQYXJhbSgpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW0gPyByb3V0ZUlkUGFyYW0ucGFyYW1ldGVyRGVmLnR5cGUuZm9ybWF0KHJvdXRlSWRQYXJhbS5yZXNvbHZlZFZhbHVlKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldFJvdXRlSWRQYXJhbSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLmZpbmQocCA9PiBwLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpO1xuICB9XG5cbiAgQFRyYWNlKClcbiAgcHJvdGVjdGVkIGdldEZvcm1hdHRlZFBhcmFtZXRlcnMoKSB7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtID0gdGhpcy5wYXJhbWV0ZXJzLmZpbHRlcihwID0+ICFwLnBhcmFtZXRlckRlZi5pc1JvdXRlSWQpLmZvckVhY2gocCA9PiB7XG4gICAgICBwYXJhbXNbcC5wYXJhbWV0ZXJEZWYubmFtZV0gPSBwLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdChwLnJlc29sdmVkVmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBoYXNSb3V0ZUlkKCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Um91dGVJZFBhcmFtKCk7XG4gIH1cblxuICBAVHJhY2UoKVxuICByZWRpcmVjdChwcmV2aW91czogUmVzb2x2ZWRQYXJhbWV0ZXJzLCByb3V0ZXI6IFJvdXRlciwgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgY29uc3Qgcm91dGVJZCA9IHRoaXMuZ2V0Rm9ybWF0dGVkUm91dGVJZCgpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9ICEhcHJldmlvdXMuaGFzUm91dGVJZCgpID8gJy4uJyA6ICcuJztcbiAgICBjb25zdCBwYXRoID0gcm91dGVJZCA/IFtyZWxhdGl2ZVBhdGgsIHJvdXRlSWQsIHRoaXMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXSA6IFtyZWxhdGl2ZVBhdGgsIHRoaXMuZ2V0Rm9ybWF0dGVkUGFyYW1ldGVycygpXTtcbiAgICByb3V0ZXIubmF2aWdhdGUocGF0aCwge1xuICAgICAgcmVsYXRpdmVUbzogYWN0aXZhdGVkUm91dGVcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm91dGVQYXJhbWV0ZXJCaW5kaW5ncyBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gIHB1YmxpYyByZWFkb25seSBfaW5jb21pbmdSb3V0ZUNoYW5nZSA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSB0eG86IFRyYW5zYWN0aW9uT2JzZXJ2ZXI7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvbHZlZFBhcmFtZXRlcnMgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8UmVzb2x2ZWRQYXJhbWV0ZXJzPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50OiBhbnksIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgdGhpcy50eG8gPSBuZXcgVHJhbnNhY3Rpb25PYnNlcnZlcigpOy8vLm9uRXZlbnQoZSA9PiBjb25zb2xlLmxvZyhlLnRvU3RyaW5nKCkpKTtcblxuICAgIGNvbnN0IHJvdXRlUGFyYW1ldGVyRGVmczogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10gPSBLbGFzcy5nZXQoY29tcG9uZW50KS5nZXRNZXRhZGF0YUxpc3QoUm91dGVQYXJhbWV0ZXJCaW5kaW5ncy5ST1VURV9QQVJBTUVURVJfTElTVF9LRVkpO1xuICAgIHJvdXRlUGFyYW1ldGVyRGVmcy5mb3JFYWNoKHBhcmFtZXRlciA9PiB0aGlzLmluc3RhbGxCaW5kaW5nKHBhcmFtZXRlcikpO1xuXG4gICAgY29uc3QgaW5jb21pbmdSZXNvbHZlZFJvdXRlUGFyYW1ldGVycyA9IG9ic2VydmUudmFsdWVzRnJvbShhY3RpdmF0ZWRSb3V0ZS5wYXJhbU1hcClcbiAgICAgIC5sYXN0KClcbiAgICAgIC5tYXAocGFyYW1zID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBSZXNvbHZlZFBhcmFtZXRlcjxhbnk+W10gPSBbXTtcbiAgICAgICAgcm91dGVQYXJhbWV0ZXJEZWZzLmZvckVhY2gocGFyYW1ldGVyRGVmID0+IHtcbiAgICAgICAgICBsZXQgcmVzb2x2ZWRWYWx1ZTtcbiAgICAgICAgICBpZiAocGFyYW1ldGVyRGVmLmlzQXJyYXkpIHtcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSBwYXJhbXMuZ2V0QWxsKHBhcmFtZXRlckRlZi5uYW1lKS5tYXAodiA9PiBwYXJhbWV0ZXJEZWYudHlwZS5wYXJzZSh2KSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSBwYXJhbWV0ZXJEZWYudHlwZS5wYXJzZShwYXJhbXMuZ2V0KHBhcmFtZXRlckRlZi5uYW1lKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5wdXNoKHsgcGFyYW1ldGVyRGVmOiBwYXJhbWV0ZXJEZWYsIHJlc29sdmVkVmFsdWU6IHJlc29sdmVkVmFsdWUgfSk7XG5cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgUmVzb2x2ZWRQYXJhbWV0ZXJzKHJlc3VsdCk7XG4gICAgICB9KTtcblxuICAgIGluY29taW5nUmVzb2x2ZWRSb3V0ZVBhcmFtZXRlcnMuc3Vic2NyaWJlKHJlc29sdmVkUGFyYW1ldGVycyA9PiB7XG4gICAgICB0aGlzLl9pbmNvbWluZ1JvdXRlQ2hhbmdlLnZhbHVlID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVzb2x2ZWRQYXJhbWV0ZXJzLnZhbHVlID0gcmVzb2x2ZWRQYXJhbWV0ZXJzO1xuICAgICAgdGhpcy5faW5jb21pbmdSb3V0ZUNoYW5nZS52YWx1ZSA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgd2hlbi52YWx1ZU9mKHRoaXMucmVzb2x2ZWRQYXJhbWV0ZXJzKS5jaGFuZ2VzKChwYXJhbXMsIHByZXZpb3VzKSA9PiB7XG4gICAgICBwYXJhbXMucmVkaXJlY3QocHJldmlvdXMsIHJvdXRlciwgYWN0aXZhdGVkUm91dGUpO1xuICAgIH0sIHsgdW5sZXNzOiB0aGlzLmluY29taW5nUm91dGVDaGFuZ2UgfSk7XG5cbiAgICB0aGlzLnR4by5vYnNlcnZlKCdpbmNvbWluZ1Jlc29sdmVkUm91dGVQYXJhbWV0ZXJzJywgaW5jb21pbmdSZXNvbHZlZFJvdXRlUGFyYW1ldGVycyk7XG4gICAgdGhpcy50eG8ub2JzZXJ2ZSgndGhpcy5yb3V0ZUlzQ2hhbmdpbmcnLCB0aGlzLmluY29taW5nUm91dGVDaGFuZ2UpO1xuICB9XG5cbiAgZ2V0IGluY29taW5nUm91dGVDaGFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luY29taW5nUm91dGVDaGFuZ2UucmVhZG9ubHk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zdGFsbEJpbmRpbmc8VD4ocGFyYW1ldGVyOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+KSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmdldE1vZGVsRm9yKHBhcmFtZXRlcik7XG4gICAgLy8gdGhpcy50eG8ub2JzZXJ2ZShwYXJhbWV0ZXIucHJvcGVydHlOYW1lLCBtb2RlbCk7XG4gICAgdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IEJpbmRpbmcodGhpcy5yZXNvbHZlZFBhcmFtZXRlcnMsIG1vZGVsLCB7XG4gICAgICB0b1JpZ2h0KHBhcmFtZXRlcnM6IFJlc29sdmVkUGFyYW1ldGVycyk6IFQge1xuICAgICAgICByZXR1cm4gcGFyYW1ldGVycy5nZXQocGFyYW1ldGVyKTtcbiAgICAgIH0sXG4gICAgICB0b0xlZnQodmFsdWU6IFQsIGN1cnJlbnRQYXJhbWV0ZXJzPzogUmVzb2x2ZWRQYXJhbWV0ZXJzKTogUmVzb2x2ZWRQYXJhbWV0ZXJzIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRQYXJhbWV0ZXJzLnJlcGxhY2UocGFyYW1ldGVyLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cblxuICBwcml2YXRlIGdldE1vZGVsRm9yPFQ+KHBhcmFtZXRlcjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPik6IElNdXRhYmxlSGFzVmFsdWU8VD4ge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFtwYXJhbWV0ZXIucHJvcGVydHlOYW1lXTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFJvdXRlUGFyYW1ldGVyQmluZGluZ3Mge1xuICBleHBvcnQgY29uc3QgUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZID0gU3ltYm9sKCdwbGFjZTpyb3V0ZTpwYXJhbWV0ZXJzJyk7XG59XG4iXX0=
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { assert } from '@coolon/pectin';
|
|
7
|
+
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
8
|
+
import * as _ from 'lodash';
|
|
9
|
+
/**
|
|
10
|
+
* @abstract
|
|
11
|
+
* @template T, S
|
|
12
|
+
*/
|
|
13
|
+
export class Sanitiser {
|
|
14
|
+
/**
|
|
15
|
+
* @param {?} parameterDef
|
|
16
|
+
* @param {?} snapshot
|
|
17
|
+
* @param {?} sanitiser
|
|
18
|
+
*/
|
|
19
|
+
constructor(parameterDef, snapshot, sanitiser) {
|
|
20
|
+
this.parameterDef = parameterDef;
|
|
21
|
+
this.snapshot = snapshot;
|
|
22
|
+
this.sanitiser = sanitiser;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @return {?}
|
|
26
|
+
*/
|
|
27
|
+
isRouteId() {
|
|
28
|
+
return this.parameterDef.isRouteId;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @return {?}
|
|
32
|
+
*/
|
|
33
|
+
get valueChanged() {
|
|
34
|
+
return !_.isNil(this.initialValue) && this.hasChanged(this.initialValue, this.sanitisedValue);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @return {?}
|
|
38
|
+
*/
|
|
39
|
+
get sanitisedValue() {
|
|
40
|
+
return this._sanitisedValue;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
sanitize() {
|
|
46
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
if (this.sanitiser) {
|
|
48
|
+
this.initialValue = this.readFrom(this.snapshot);
|
|
49
|
+
this._sanitisedValue = yield this.sanitiser.sanitise(this.initialValue);
|
|
50
|
+
if (this.initialValue !== this._sanitisedValue) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return true;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (false) {
|
|
59
|
+
/**
|
|
60
|
+
* @type {?}
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
Sanitiser.prototype.initialValue;
|
|
64
|
+
/**
|
|
65
|
+
* @type {?}
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
Sanitiser.prototype._sanitisedValue;
|
|
69
|
+
/** @type {?} */
|
|
70
|
+
Sanitiser.prototype.parameterDef;
|
|
71
|
+
/** @type {?} */
|
|
72
|
+
Sanitiser.prototype.snapshot;
|
|
73
|
+
/** @type {?} */
|
|
74
|
+
Sanitiser.prototype.sanitiser;
|
|
75
|
+
/**
|
|
76
|
+
* @abstract
|
|
77
|
+
* @protected
|
|
78
|
+
* @param {?} snapshot
|
|
79
|
+
* @return {?}
|
|
80
|
+
*/
|
|
81
|
+
Sanitiser.prototype.readFrom = function (snapshot) { };
|
|
82
|
+
/**
|
|
83
|
+
* @abstract
|
|
84
|
+
* @protected
|
|
85
|
+
* @param {?} initialValue
|
|
86
|
+
* @param {?} sanitisedValue
|
|
87
|
+
* @return {?}
|
|
88
|
+
*/
|
|
89
|
+
Sanitiser.prototype.hasChanged = function (initialValue, sanitisedValue) { };
|
|
90
|
+
/**
|
|
91
|
+
* @abstract
|
|
92
|
+
* @param {?} dest
|
|
93
|
+
* @return {?}
|
|
94
|
+
*/
|
|
95
|
+
Sanitiser.prototype.injectRouteParam = function (dest) { };
|
|
96
|
+
}
|
|
97
|
+
export class RouteParameterSanitiser {
|
|
98
|
+
/**
|
|
99
|
+
* @param {?} parameterDefs
|
|
100
|
+
* @param {?} snapshot
|
|
101
|
+
* @param {?} injector
|
|
102
|
+
*/
|
|
103
|
+
constructor(parameterDefs, snapshot, injector) {
|
|
104
|
+
this.parameterDefs = parameterDefs;
|
|
105
|
+
this.snapshot = snapshot;
|
|
106
|
+
this.injector = injector;
|
|
107
|
+
this.parameterSanitisers = [];
|
|
108
|
+
/** @type {?} */
|
|
109
|
+
const sanitisers = parameterDefs.map((/**
|
|
110
|
+
* @param {?} def
|
|
111
|
+
* @return {?}
|
|
112
|
+
*/
|
|
113
|
+
def => {
|
|
114
|
+
return def.isArray ?
|
|
115
|
+
new Sanitiser.Array(def, snapshot, this.getSanitiser(def)) :
|
|
116
|
+
new Sanitiser.Value(def, snapshot, this.getSanitiser(def));
|
|
117
|
+
}));
|
|
118
|
+
this.routeIdSanitiser = sanitisers.find((/**
|
|
119
|
+
* @param {?} p
|
|
120
|
+
* @return {?}
|
|
121
|
+
*/
|
|
122
|
+
p => p.isRouteId()));
|
|
123
|
+
this.parameterSanitisers = sanitisers.filter((/**
|
|
124
|
+
* @param {?} p
|
|
125
|
+
* @return {?}
|
|
126
|
+
*/
|
|
127
|
+
p => !p.isRouteId()));
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* @return {?}
|
|
131
|
+
*/
|
|
132
|
+
sanitise() {
|
|
133
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
134
|
+
if (this.routeIdSanitiser) {
|
|
135
|
+
yield this.routeIdSanitiser.sanitize();
|
|
136
|
+
if (this.routeIdSanitiser.valueChanged) {
|
|
137
|
+
// if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the
|
|
138
|
+
// context of the route id.
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
for (const sanitiser of this.parameterSanitisers) {
|
|
143
|
+
yield sanitiser.sanitize();
|
|
144
|
+
}
|
|
145
|
+
return !this.parameterSanitisers.find((/**
|
|
146
|
+
* @param {?} s
|
|
147
|
+
* @return {?}
|
|
148
|
+
*/
|
|
149
|
+
s => s.valueChanged));
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* @param {?} router
|
|
154
|
+
* @return {?}
|
|
155
|
+
*/
|
|
156
|
+
redirect(router) {
|
|
157
|
+
assert.isTruthy(this.parameterSanitisers.length !== 0);
|
|
158
|
+
if (this.routeIdSanitiser.valueChanged) {
|
|
159
|
+
return router.navigate(['..', this.routeIdSanitiser.sanitisedValue]);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
/** @type {?} */
|
|
163
|
+
const routeParams = {};
|
|
164
|
+
this.parameterSanitisers.forEach((/**
|
|
165
|
+
* @param {?} s
|
|
166
|
+
* @return {?}
|
|
167
|
+
*/
|
|
168
|
+
s => s.injectRouteParam(routeParams)));
|
|
169
|
+
return router.navigate(['.', routeParams]);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* @private
|
|
174
|
+
* @template T, S
|
|
175
|
+
* @param {?} def
|
|
176
|
+
* @return {?}
|
|
177
|
+
*/
|
|
178
|
+
getSanitiser(def) {
|
|
179
|
+
return def.sanitiser ? this.injector.get(def.sanitiser, new def.sanitiser()) : null;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
tslib_1.__decorate([
|
|
183
|
+
Memoize(),
|
|
184
|
+
tslib_1.__metadata("design:type", Function),
|
|
185
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
186
|
+
tslib_1.__metadata("design:returntype", Object)
|
|
187
|
+
], RouteParameterSanitiser.prototype, "getSanitiser", null);
|
|
188
|
+
if (false) {
|
|
189
|
+
/**
|
|
190
|
+
* @type {?}
|
|
191
|
+
* @private
|
|
192
|
+
*/
|
|
193
|
+
RouteParameterSanitiser.prototype.routeIdSanitiser;
|
|
194
|
+
/**
|
|
195
|
+
* @type {?}
|
|
196
|
+
* @private
|
|
197
|
+
*/
|
|
198
|
+
RouteParameterSanitiser.prototype.parameterSanitisers;
|
|
199
|
+
/** @type {?} */
|
|
200
|
+
RouteParameterSanitiser.prototype.parameterDefs;
|
|
201
|
+
/** @type {?} */
|
|
202
|
+
RouteParameterSanitiser.prototype.snapshot;
|
|
203
|
+
/** @type {?} */
|
|
204
|
+
RouteParameterSanitiser.prototype.injector;
|
|
205
|
+
}
|
|
206
|
+
(function (Sanitiser) {
|
|
207
|
+
/**
|
|
208
|
+
* @template T
|
|
209
|
+
*/
|
|
210
|
+
class Value extends Sanitiser {
|
|
211
|
+
/**
|
|
212
|
+
* @param {?} snapshot
|
|
213
|
+
* @return {?}
|
|
214
|
+
*/
|
|
215
|
+
readFrom(snapshot) {
|
|
216
|
+
/** @type {?} */
|
|
217
|
+
const rawValue = this.parameterDef.isRouteId ?
|
|
218
|
+
snapshot.paramMap.get(this.parameterDef.name) :
|
|
219
|
+
snapshot.queryParamMap.get(this.parameterDef.name);
|
|
220
|
+
return this.parameterDef.type.parse(rawValue);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* @protected
|
|
224
|
+
* @param {?} initialValue
|
|
225
|
+
* @param {?} sanitisedValue
|
|
226
|
+
* @return {?}
|
|
227
|
+
*/
|
|
228
|
+
hasChanged(initialValue, sanitisedValue) {
|
|
229
|
+
return initialValue !== sanitisedValue;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* @param {?} dest
|
|
233
|
+
* @return {?}
|
|
234
|
+
*/
|
|
235
|
+
injectRouteParam(dest) {
|
|
236
|
+
dest[this.parameterDef.name] = this.parameterDef.type.format(this.sanitisedValue);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
Sanitiser.Value = Value;
|
|
240
|
+
/**
|
|
241
|
+
* @template T
|
|
242
|
+
*/
|
|
243
|
+
class Array extends Sanitiser {
|
|
244
|
+
/**
|
|
245
|
+
* @param {?} snapshot
|
|
246
|
+
* @return {?}
|
|
247
|
+
*/
|
|
248
|
+
readFrom(snapshot) {
|
|
249
|
+
/** @type {?} */
|
|
250
|
+
const rawValues = snapshot.queryParamMap.getAll(this.parameterDef.name);
|
|
251
|
+
return rawValues.map((/**
|
|
252
|
+
* @param {?} value
|
|
253
|
+
* @return {?}
|
|
254
|
+
*/
|
|
255
|
+
value => this.parameterDef.type.parse(value)));
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* @protected
|
|
259
|
+
* @param {?} initialValue
|
|
260
|
+
* @param {?} sanitisedValue
|
|
261
|
+
* @return {?}
|
|
262
|
+
*/
|
|
263
|
+
hasChanged(initialValue, sanitisedValue) {
|
|
264
|
+
return initialValue !== sanitisedValue;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* @param {?} dest
|
|
268
|
+
* @return {?}
|
|
269
|
+
*/
|
|
270
|
+
injectRouteParam(dest) {
|
|
271
|
+
dest[this.parameterDef.name] = this.sanitisedValue.map((/**
|
|
272
|
+
* @param {?} v
|
|
273
|
+
* @return {?}
|
|
274
|
+
*/
|
|
275
|
+
v => this.parameterDef.type.format(v)));
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
Sanitiser.Array = Array;
|
|
279
|
+
})(Sanitiser || (Sanitiser = {}));
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGFyYW1ldGVyLXNhbml0aXNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9yb3V0ZS9yb3V0ZS1wYXJhbWV0ZXItc2FuaXRpc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUczRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFFNUIsTUFBTSxPQUFnQixTQUFTOzs7Ozs7SUFLN0IsWUFBcUIsWUFBb0MsRUFBVyxRQUErQixFQUFXLFNBQWdDO1FBQXpILGlCQUFZLEdBQVosWUFBWSxDQUF3QjtRQUFXLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQVcsY0FBUyxHQUFULFNBQVMsQ0FBdUI7SUFDOUksQ0FBQzs7OztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7Ozs7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRyxDQUFDOzs7O0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDOzs7O0lBT0ssUUFBUTs7WUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxJQUFJ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QyxDQUFDO1FBQ3BGLENBQUM7S0FFRjtJQWxCWSxlQUFLLFFBa0JqQixDQUFBOzs7O0lBRUQsTUFBYSxLQUFTLFNBQVEsU0FBaUI7Ozs7O1FBRTdDLFFBQVEsQ0FBQyxRQUFnQzs7a0JBQ2pDLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUN2RSxPQUFPLFNBQVMsQ0FBQyxHQUFHOzs7O1lBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQztRQUNyRSxDQUFDOzs7Ozs7O1FBRVMsVUFBVSxDQUFDLFlBQWlCLEVBQUUsY0FBbUI7WUFDekQsT0FBTyxZQUFZLEtBQUssY0FBYyxDQUFDO1FBQ3pDLENBQUM7Ozs7O1FBR0QsZ0JBQWdCLENBQUMsSUFBUTtZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUc7Ozs7WUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FBQ2hHLENBQUM7S0FHRjtJQWpCWSxlQUFLLFFBaUJqQixDQUFBO0FBRUgsQ0FBQyxFQXpDZ0IsU0FBUyxLQUFULFNBQVMsUUF5Q3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBNZW1vaXplIH0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yL2Rpc3Qvc3JjJztcbmltcG9ydCB7IFBhcmFtZXRlckRlZmluaXRpb24gfSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uLmNsYXNzJztcbmltcG9ydCB7IFBhcmFtZXRlclNhbml0aXNlciB9IGZyb20gJy4vcGFyYW1ldGVyLXNhbml0aXNlcic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYW5pdGlzZXI8VCwgUz4ge1xuXG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlOiBTO1xuICBwcml2YXRlIF9zYW5pdGlzZWRWYWx1ZTogUztcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwYXJhbWV0ZXJEZWY6IFBhcmFtZXRlckRlZmluaXRpb248VD4sIHJlYWRvbmx5IHNuYXBzaG90OkFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHJlYWRvbmx5IHNhbml0aXNlcjogUGFyYW1ldGVyU2FuaXRpc2VyPFM+KSB7XG4gIH1cblxuICBpc1JvdXRlSWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVyRGVmLmlzUm91dGVJZDtcbiAgfVxuXG4gIGdldCB2YWx1ZUNoYW5nZWQoKTpib29sZWFuIHtcbiAgICByZXR1cm4gIV8uaXNOaWwodGhpcy5pbml0aWFsVmFsdWUpICYmIHRoaXMuaGFzQ2hhbmdlZCh0aGlzLmluaXRpYWxWYWx1ZSwgdGhpcy5zYW5pdGlzZWRWYWx1ZSk7XG4gIH1cblxuICBnZXQgc2FuaXRpc2VkVmFsdWUoKTpTIHtcbiAgICByZXR1cm4gdGhpcy5fc2FuaXRpc2VkVmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZEZyb20oc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBTO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6Uywgc2FuaXRpc2VkVmFsdWU6Uyk6IGJvb2xlYW47XG5cbiAgYWJzdHJhY3QgaW5qZWN0Um91dGVQYXJhbShkZXN0OiB7fSk7XG5cbiAgYXN5bmMgc2FuaXRpemUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuc2FuaXRpc2VyKSB7XG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHRoaXMucmVhZEZyb20odGhpcy5zbmFwc2hvdCk7XG4gICAgICB0aGlzLl9zYW5pdGlzZWRWYWx1ZSA9IGF3YWl0IHRoaXMuc2FuaXRpc2VyLnNhbml0aXNlKHRoaXMuaW5pdGlhbFZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmluaXRpYWxWYWx1ZSAhPT0gdGhpcy5fc2FuaXRpc2VkVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBSb3V0ZVBhcmFtZXRlclNhbml0aXNlciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZUlkU2FuaXRpc2VyOiBTYW5pdGlzZXI8YW55LCBhbnk+O1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmFtZXRlclNhbml0aXNlcnM6IFNhbml0aXNlcjxhbnksIGFueT5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHBhcmFtZXRlckRlZnM6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdLCByZWFkb25seSBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgY29uc3Qgc2FuaXRpc2VycyA9IHBhcmFtZXRlckRlZnMubWFwKGRlZiA9PiB7XG4gICAgICByZXR1cm4gZGVmLmlzQXJyYXkgP1xuICAgICAgICBuZXcgU2FuaXRpc2VyLkFycmF5KGRlZiwgc25hcHNob3QsIHRoaXMuZ2V0U2FuaXRpc2VyKGRlZikpIDpcbiAgICAgICAgbmV3IFNhbml0aXNlci5WYWx1ZShkZWYsIHNuYXBzaG90LCB0aGlzLmdldFNhbml0aXNlcihkZWYpKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlSWRTYW5pdGlzZXIgPSBzYW5pdGlzZXJzLmZpbmQocCA9PiBwLmlzUm91dGVJZCgpKTtcbiAgICB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMgPSBzYW5pdGlzZXJzLmZpbHRlcihwID0+ICFwLmlzUm91dGVJZCgpKTtcbiAgfVxuXG4gIGFzeW5jIHNhbml0aXNlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJvdXRlSWRTYW5pdGlzZXIpIHtcbiAgICAgIGF3YWl0IHRoaXMucm91dGVJZFNhbml0aXNlci5zYW5pdGl6ZSgpO1xuICAgICAgaWYgKHRoaXMucm91dGVJZFNhbml0aXNlci52YWx1ZUNoYW5nZWQpIHtcbiAgICAgICAgLy8gaWYgdGhlIHJvdXRlIGlkIGlzbid0IG9rIHdlIHJlZGlyZWN0IGltbWVkaWF0ZWx5IGFzIHRoZSBxdWVyeSBwYXJhbXMgbWF5IG5lZWQgdG8gYmUgc2FuaXRpc2VkIGluIHRoZVxuICAgICAgICAvLyBjb250ZXh0IG9mIHRoZSByb3V0ZSBpZC5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IHNhbml0aXNlciBvZiB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMpIHtcbiAgICAgICAgYXdhaXQgc2FuaXRpc2VyLnNhbml0aXplKCk7XG4gICAgfVxuICAgIHJldHVybiAhdGhpcy5wYXJhbWV0ZXJTYW5pdGlzZXJzLmZpbmQocyA9PiBzLnZhbHVlQ2hhbmdlZCk7XG4gIH1cblxuICByZWRpcmVjdChyb3V0ZXI6IFJvdXRlcikge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMubGVuZ3RoICE9PSAwKTtcbiAgICBpZiAodGhpcy5yb3V0ZUlkU2FuaXRpc2VyLnZhbHVlQ2hhbmdlZCkge1xuICAgICAgcmV0dXJuIHJvdXRlci5uYXZpZ2F0ZShbJy4uJywgdGhpcy5yb3V0ZUlkU2FuaXRpc2VyLnNhbml0aXNlZFZhbHVlXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJvdXRlUGFyYW1zID0ge307XG4gICAgICB0aGlzLnBhcmFtZXRlclNhbml0aXNlcnMuZm9yRWFjaChzID0+IHMuaW5qZWN0Um91dGVQYXJhbShyb3V0ZVBhcmFtcykpO1xuICAgICAgcmV0dXJuIHJvdXRlci5uYXZpZ2F0ZShbJy4nLCByb3V0ZVBhcmFtc10pO1xuICAgIH1cbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRTYW5pdGlzZXI8VCwgUz4oZGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPFQsIFM+KTogUGFyYW1ldGVyU2FuaXRpc2VyPFM+IHtcbiAgICByZXR1cm4gZGVmLnNhbml0aXNlciA/IHRoaXMuaW5qZWN0b3IuZ2V0PFBhcmFtZXRlclNhbml0aXNlcjxTPj4oZGVmLnNhbml0aXNlciwgbmV3IGRlZi5zYW5pdGlzZXIoKSkgOiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgU2FuaXRpc2VyIHtcblxuICBleHBvcnQgY2xhc3MgVmFsdWU8VD4gZXh0ZW5kcyBTYW5pdGlzZXI8VCwgVD4ge1xuXG4gICAgcmVhZEZyb20oc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBUIHtcbiAgICAgIGNvbnN0IHJhd1ZhbHVlID0gdGhpcy5wYXJhbWV0ZXJEZWYuaXNSb3V0ZUlkID9cbiAgICAgICAgc25hcHNob3QucGFyYW1NYXAuZ2V0KHRoaXMucGFyYW1ldGVyRGVmLm5hbWUpIDpcbiAgICAgICAgc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQodGhpcy5wYXJhbWV0ZXJEZWYubmFtZSk7XG5cbiAgICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLnBhcnNlKHJhd1ZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6IFQsIHNhbml0aXNlZFZhbHVlOiBUKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gaW5pdGlhbFZhbHVlICE9PSBzYW5pdGlzZWRWYWx1ZTtcbiAgICB9XG5cbiAgICBpbmplY3RSb3V0ZVBhcmFtKGRlc3Q6IHt9KSB7XG4gICAgICBkZXN0W3RoaXMucGFyYW1ldGVyRGVmLm5hbWVdID0gdGhpcy5wYXJhbWV0ZXJEZWYudHlwZS5mb3JtYXQodGhpcy5zYW5pdGlzZWRWYWx1ZSk7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXJyYXk8VD4gZXh0ZW5kcyBTYW5pdGlzZXI8VCwgVFtdPiB7XG5cbiAgICByZWFkRnJvbShzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFRbXSB7XG4gICAgICBjb25zdCByYXdWYWx1ZXMgPSBzbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldEFsbCh0aGlzLnBhcmFtZXRlckRlZi5uYW1lKTtcbiAgICAgIHJldHVybiByYXdWYWx1ZXMubWFwKHZhbHVlID0+IHRoaXMucGFyYW1ldGVyRGVmLnR5cGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFzQ2hhbmdlZChpbml0aWFsVmFsdWU6IFRbXSwgc2FuaXRpc2VkVmFsdWU6IFRbXSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZSAhPT0gc2FuaXRpc2VkVmFsdWU7XG4gICAgfVxuXG5cbiAgICBpbmplY3RSb3V0ZVBhcmFtKGRlc3Q6IHt9KSB7XG4gICAgICBkZXN0W3RoaXMucGFyYW1ldGVyRGVmLm5hbWVdID0gdGhpcy5zYW5pdGlzZWRWYWx1ZS5tYXAodiA9PiB0aGlzLnBhcmFtZXRlckRlZi50eXBlLmZvcm1hdCh2KSk7XG4gICAgfVxuXG5cbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
export { AngularUiPowerupsModule } from './lib/angular-ui-powerups.module';
|
|
6
|
+
export { slideDownAndUpAnimation } from './lib/animations';
|
|
7
|
+
export { DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point } from './lib/components';
|
|
8
|
+
export { CommandDirective, FocusBindingDirective } from './lib/directives';
|
|
9
|
+
export { AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService } from './lib/interaction';
|
|
10
|
+
export { AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, PlaceOutletComponent, LEFT_RIGHT_PLACE_ANIMATION, TabbedPlaceNavigationComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, RouteParameter, QueryParameterList, RouteParameterList, ParameterType, RouteParameterBindings, Sanitiser, RouteParameterSanitiser } from './lib/place';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdDQUFjLGtDQUFrQyxDQUFDO0FBQ2pELHdDQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHNNQUFjLGtCQUFrQixDQUFDO0FBQ2pDLHdEQUFjLGtCQUFrQixDQUFDO0FBQ2pDLDhPQUFjLG1CQUFtQixDQUFDO0FBQ2xDLG9ZQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FuZ3VsYXItdWktcG93ZXJ1cHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsYWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Generated bundle index. Do not edit.
|
|
7
|
+
*/
|
|
8
|
+
export { AngularUiPowerupsModule, slideDownAndUpAnimation, DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point, CommandDirective, FocusBindingDirective, AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService, AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, PlaceOutletComponent, LEFT_RIGHT_PLACE_ANIMATION, TabbedPlaceNavigationComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, RouteParameter, QueryParameterList, RouteParameterList, ParameterType, RouteParameterBindings, Sanitiser, RouteParameterSanitiser } from './index';
|
|
9
|
+
export { DisposableComponent as ɵc } from './lib/components/disposable-component';
|
|
10
|
+
export { AbstractInputComponent as ɵe } from './lib/components/forms/abstract-input.component';
|
|
11
|
+
export { NumberInputComponent as ɵd } from './lib/components/forms/number-input/number-input.component';
|
|
12
|
+
export { PasswordInputComponent as ɵg } from './lib/components/forms/password-input/password-input.component';
|
|
13
|
+
export { SelectInputComponent as ɵh } from './lib/components/forms/select-input/select-input.component';
|
|
14
|
+
export { StringInputComponent as ɵf } from './lib/components/forms/string-input/string-input.component';
|
|
15
|
+
export { CommandDirective as ɵa } from './lib/directives/command.directive';
|
|
16
|
+
export { FocusBindingDirective as ɵb } from './lib/directives/focus-binding.directive';
|
|
17
|
+
export { AbstractActivity as ɵs } from './lib/interaction/abstract-activity';
|
|
18
|
+
export { ACTIVITY_DATA as ɵt } from './lib/interaction/activity';
|
|
19
|
+
export { ActivityContainerComponent as ɵq } from './lib/interaction/components/activity-container/activity-container.component';
|
|
20
|
+
export { ActivityOutletComponent as ɵx } from './lib/interaction/components/activity-outlet/activity-outlet.component';
|
|
21
|
+
export { AlertDialogComponent as ɵv } from './lib/interaction/components/alert-dialog/alert-dialog.component';
|
|
22
|
+
export { ConfirmationDialogComponent as ɵr } from './lib/interaction/components/confirmation-dialog/confirmation-dialog.component';
|
|
23
|
+
export { InteractionContext as ɵz } from './lib/interaction/interaction-context';
|
|
24
|
+
export { InteractionModule as ɵp } from './lib/interaction/interaction.module';
|
|
25
|
+
export { DialogInteractionService as ɵy } from './lib/interaction/services/dialog-interaction.service';
|
|
26
|
+
export { BusyOverlayComponent as ɵk } from './lib/place/components/busy-overlay/busy-overlay.component';
|
|
27
|
+
export { EmptyStateComponent as ɵj } from './lib/place/components/empty-state/empty-state.component';
|
|
28
|
+
export { PlaceOutletComponent as ɵl } from './lib/place/components/place-outlet/place-outlet.component';
|
|
29
|
+
export { LEFT_RIGHT_PLACE_ANIMATION as ɵm } from './lib/place/components/place-outlet/route-animations';
|
|
30
|
+
export { TabbedPlaceNavigationComponent as ɵo } from './lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component';
|
|
31
|
+
export { PlaceModule as ɵi } from './lib/place/place.module';
|
|
32
|
+
export { PlaceService as ɵn } from './lib/place/place.service';
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vbG9uLWFuZ3VsYXItdWktcG93ZXJ1cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJjb29sb24tYW5ndWxhci11aS1wb3dlcnVwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscTNCQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDckgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzVHLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnRkFBZ0YsQ0FBQztBQUVqSSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDdEcsT0FBTyxFQUFDLDhCQUE4QixJQUFJLEVBQUUsRUFBQyxNQUFNLGtGQUFrRixDQUFDO0FBQ3RJLE9BQU8sRUFBQyxXQUFXLElBQUksRUFBRSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudCBhcyDJtWN9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuZXhwb3J0IHtBYnN0cmFjdElucHV0Q29tcG9uZW50IGFzIMm1ZX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9hYnN0cmFjdC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtOdW1iZXJJbnB1dENvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtQYXNzd29yZElucHV0Q29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3Jtcy9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZWxlY3RJbnB1dENvbXBvbmVudCBhcyDJtWh9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtTdHJpbmdJbnB1dENvbXBvbmVudCBhcyDJtWZ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvc3RyaW5nLWlucHV0L3N0cmluZy1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0IHtDb21tYW5kRGlyZWN0aXZlIGFzIMm1YX0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9jb21tYW5kLmRpcmVjdGl2ZSc7XG5leHBvcnQge0ZvY3VzQmluZGluZ0RpcmVjdGl2ZSBhcyDJtWJ9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZm9jdXMtYmluZGluZy5kaXJlY3RpdmUnO1xuZXhwb3J0IHtBYnN0cmFjdEFjdGl2aXR5IGFzIMm1c30gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vYWJzdHJhY3QtYWN0aXZpdHknO1xuZXhwb3J0IHtBQ1RJVklUWV9EQVRBIGFzIMm1dH0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vYWN0aXZpdHknO1xuZXhwb3J0IHtBbGVydCBhcyDJtXd9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2FsZXJ0JztcbmV4cG9ydCB7QWN0aXZpdHlDb250YWluZXJDb21wb25lbnQgYXMgybVxfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWNvbnRhaW5lci9hY3Rpdml0eS1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCB7QWN0aXZpdHlPdXRsZXRDb21wb25lbnQgYXMgybV4fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LW91dGxldC9hY3Rpdml0eS1vdXRsZXQuY29tcG9uZW50JztcbmV4cG9ydCB7QWxlcnREaWFsb2dDb21wb25lbnQgYXMgybV2fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FsZXJ0LWRpYWxvZy9hbGVydC1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7Q29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IGFzIMm1cn0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCB7Q29uZmlybSBhcyDJtXV9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbmZpcm0nO1xuZXhwb3J0IHtJbnRlcmFjdGlvbkNvbnRleHQgYXMgybV6fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi1jb250ZXh0JztcbmV4cG9ydCB7SW50ZXJhY3Rpb25Nb2R1bGUgYXMgybVwfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9pbnRlcmFjdGlvbi5tb2R1bGUnO1xuZXhwb3J0IHtEaWFsb2dJbnRlcmFjdGlvblNlcnZpY2UgYXMgybV5fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9zZXJ2aWNlcy9kaWFsb2ctaW50ZXJhY3Rpb24uc2VydmljZSc7XG5leHBvcnQge0J1c3lPdmVybGF5Q29tcG9uZW50IGFzIMm1a30gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9idXN5LW92ZXJsYXkvYnVzeS1vdmVybGF5LmNvbXBvbmVudCc7XG5leHBvcnQge0VtcHR5U3RhdGVDb21wb25lbnQgYXMgybVqfSBmcm9tICcuL2xpYi9wbGFjZS9jb21wb25lbnRzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5leHBvcnQge1BsYWNlT3V0bGV0Q29tcG9uZW50IGFzIMm1bH0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9wbGFjZS1vdXRsZXQvcGxhY2Utb3V0bGV0LmNvbXBvbmVudCc7XG5leHBvcnQge0xFRlRfUklHSFRfUExBQ0VfQU5JTUFUSU9OIGFzIMm1bX0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9wbGFjZS1vdXRsZXQvcm91dGUtYW5pbWF0aW9ucyc7XG5leHBvcnQge1RhYmJlZFBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudCBhcyDJtW99IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7UGxhY2VNb2R1bGUgYXMgybVpfSBmcm9tICcuL2xpYi9wbGFjZS9wbGFjZS5tb2R1bGUnO1xuZXhwb3J0IHtQbGFjZVNlcnZpY2UgYXMgybVufSBmcm9tICcuL2xpYi9wbGFjZS9wbGFjZS5zZXJ2aWNlJzsiXX0=
|