@coolon/angular-ui-powerups 0.0.24 → 0.0.26
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/CHANGELOG.md +7 -0
- package/jest.config.js +9 -0
- package/ng-package.json +13 -0
- package/package.json +12 -14
- package/schematics/ng-add/index.ts +10 -0
- package/schematics/place-routes/index.ts +152 -0
- package/schematics/place-routes/place-def.ts +93 -0
- package/schematics/place-routes/scanner.ts +145 -0
- package/schematics/place-routes/schema.ts +7 -0
- package/src/lib/angular-ui-powerups.module.spec.ts +14 -0
- package/src/lib/angular-ui-powerups.module.ts +49 -0
- package/{lib/animations/index.d.ts → src/lib/animations/index.ts} +1 -0
- package/src/lib/animations/slideDownAndUpAnimation.ts +39 -0
- package/src/lib/components/disposable-component.ts +9 -0
- package/src/lib/components/forms/abstract-input.component.ts +108 -0
- package/src/lib/components/forms/number-input/number-input.component.html +15 -0
- package/src/lib/components/forms/number-input/number-input.component.scss +3 -0
- package/src/lib/components/forms/number-input/number-input.component.spec.ts +25 -0
- package/src/lib/components/forms/number-input/number-input.component.ts +19 -0
- package/src/lib/components/forms/password-input/password-input.component.html +16 -0
- package/src/lib/components/forms/password-input/password-input.component.scss +3 -0
- package/src/lib/components/forms/password-input/password-input.component.spec.ts +25 -0
- package/src/lib/components/forms/password-input/password-input.component.ts +18 -0
- package/src/lib/components/forms/scss/mixins.scss +16 -0
- package/src/lib/components/forms/select-input/select-input.component.html +16 -0
- package/src/lib/components/forms/select-input/select-input.component.scss +7 -0
- package/src/lib/components/forms/select-input/select-input.component.spec.ts +25 -0
- package/src/lib/components/forms/select-input/select-input.component.ts +31 -0
- package/src/lib/components/forms/string-input/string-input.component.html +15 -0
- package/src/lib/components/forms/string-input/string-input.component.scss +3 -0
- package/src/lib/components/forms/string-input/string-input.component.spec.ts +25 -0
- package/src/lib/components/forms/string-input/string-input.component.ts +18 -0
- package/{lib/components/index.d.ts → src/lib/components/index.ts} +1 -0
- package/src/lib/components/resize-aware.component.ts +52 -0
- package/src/lib/components/types/bounds.class.ts +25 -0
- package/src/lib/components/types/dimension.class.ts +3 -0
- package/src/lib/components/types/point.class.ts +13 -0
- package/src/lib/directives/command.directive.spec.ts +73 -0
- package/src/lib/directives/command.directive.ts +81 -0
- package/src/lib/directives/focus-binding.directive.spec.ts +8 -0
- package/src/lib/directives/focus-binding.directive.ts +108 -0
- package/{lib/directives/index.d.ts → src/lib/directives/index.ts} +1 -0
- package/src/lib/interaction/abstract-activity.ts +57 -0
- package/src/lib/interaction/activity.ts +17 -0
- package/src/lib/interaction/alert.ts +6 -0
- package/src/lib/interaction/components/activity-container/activity-container.component.html +8 -0
- package/src/lib/interaction/components/activity-container/activity-container.component.scss +3 -0
- package/src/lib/interaction/components/activity-container/activity-container.component.spec.ts +25 -0
- package/src/lib/interaction/components/activity-container/activity-container.component.ts +93 -0
- package/{lib/interaction/components/activity-outlet/activity-outlet-context.d.ts → src/lib/interaction/components/activity-outlet/activity-outlet-context.ts} +7 -5
- package/src/lib/interaction/components/activity-outlet/activity-outlet.component.scss +3 -0
- package/src/lib/interaction/components/activity-outlet/activity-outlet.component.spec.ts +25 -0
- package/src/lib/interaction/components/activity-outlet/activity-outlet.component.ts +96 -0
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.html +7 -0
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.scss +7 -0
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.spec.ts +25 -0
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.ts +20 -0
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.html +9 -0
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.scss +8 -0
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.spec.ts +25 -0
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts +26 -0
- package/{lib/interaction/confirm.d.ts → src/lib/interaction/confirm.ts} +3 -2
- package/{lib/interaction/index.d.ts → src/lib/interaction/index.ts} +1 -0
- package/src/lib/interaction/interaction-context.ts +16 -0
- package/src/lib/interaction/interaction.module.ts +35 -0
- package/src/lib/interaction/result.ts +16 -0
- package/src/lib/interaction/services/dialog-interaction.service.scss +11 -0
- package/src/lib/interaction/services/dialog-interaction.service.spec.ts +12 -0
- package/src/lib/interaction/services/dialog-interaction.service.ts +63 -0
- package/src/lib/place/abstract-place-component.ts +33 -0
- package/src/lib/place/components/busy-overlay/busy-overlay.component.html +4 -0
- package/src/lib/place/components/busy-overlay/busy-overlay.component.scss +27 -0
- package/src/lib/place/components/busy-overlay/busy-overlay.component.spec.ts +25 -0
- package/src/lib/place/components/busy-overlay/busy-overlay.component.ts +23 -0
- package/src/lib/place/components/empty-state/empty-state.component.scss +15 -0
- package/src/lib/place/components/empty-state/empty-state.component.spec.ts +25 -0
- package/src/lib/place/components/empty-state/empty-state.component.ts +19 -0
- package/src/lib/place/components/place-outlet/place-outlet.component.html +7 -0
- package/src/lib/place/components/place-outlet/place-outlet.component.scss +12 -0
- package/src/lib/place/components/place-outlet/place-outlet.component.spec.ts +25 -0
- package/src/lib/place/components/place-outlet/place-outlet.component.ts +37 -0
- package/src/lib/place/components/place-outlet/route-animations.ts +30 -0
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.html +7 -0
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.scss +100 -0
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.spec.ts +25 -0
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.ts +30 -0
- package/src/lib/place/guards/leave-place.guard.spec.ts +15 -0
- package/src/lib/place/guards/leave-place.guard.ts +18 -0
- package/src/lib/place/guards/place-route.guard.ts +37 -0
- package/{lib/place/index.d.ts → src/lib/place/index.ts} +1 -0
- package/src/lib/place/place-component.ts +6 -0
- package/src/lib/place/place.decorator.ts +40 -0
- package/src/lib/place/place.module.ts +44 -0
- package/src/lib/place/place.service.spec.ts +12 -0
- package/src/lib/place/place.service.ts +29 -0
- package/src/lib/place/route/json-types.ts +5 -0
- package/src/lib/place/route/parameter-decorators.ts +99 -0
- package/src/lib/place/route/parameter-definition.class.ts +12 -0
- package/{lib/place/route/parameter-sanitiser.d.ts → src/lib/place/route/parameter-sanitiser.ts} +1 -1
- package/src/lib/place/route/parameter-type.ts +31 -0
- package/src/lib/place/route/route-parameter-bindings.ts +140 -0
- package/src/lib/place/route/route-parameter-sanitiser.ts +135 -0
- package/src/test-setup.ts +1 -0
- package/tsconfig.json +7 -0
- package/tsconfig.lib.json +20 -0
- package/tsconfig.schematics.json +35 -0
- package/tsconfig.spec.json +10 -0
- package/tslint.json +7 -0
- package/bundles/coolon-angular-ui-powerups.umd.js +0 -3926
- package/bundles/coolon-angular-ui-powerups.umd.js.map +0 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +0 -2
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +0 -1
- package/coolon-angular-ui-powerups.d.ts +0 -30
- package/coolon-angular-ui-powerups.metadata.json +0 -1
- package/esm2015/coolon-angular-ui-powerups.js +0 -33
- package/esm2015/index.js +0 -6
- package/esm2015/lib/angular-ui-powerups.module.js +0 -54
- package/esm2015/lib/animations/index.js +0 -9
- package/esm2015/lib/animations/slideDownAndUpAnimation.js +0 -30
- package/esm2015/lib/components/disposable-component.js +0 -14
- package/esm2015/lib/components/forms/abstract-input.component.js +0 -183
- package/esm2015/lib/components/forms/number-input/number-input.component.js +0 -26
- package/esm2015/lib/components/forms/password-input/password-input.component.js +0 -26
- package/esm2015/lib/components/forms/select-input/select-input.component.js +0 -60
- package/esm2015/lib/components/forms/string-input/string-input.component.js +0 -26
- package/esm2015/lib/components/index.js +0 -18
- package/esm2015/lib/components/resize-aware.component.js +0 -96
- package/esm2015/lib/components/types/bounds.class.js +0 -56
- package/esm2015/lib/components/types/dimension.class.js +0 -21
- package/esm2015/lib/components/types/point.class.js +0 -36
- package/esm2015/lib/directives/command.directive.js +0 -135
- package/esm2015/lib/directives/focus-binding.directive.js +0 -179
- package/esm2015/lib/directives/index.js +0 -10
- package/esm2015/lib/interaction/abstract-activity.js +0 -129
- package/esm2015/lib/interaction/activity.js +0 -27
- package/esm2015/lib/interaction/alert.js +0 -23
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +0 -144
- package/esm2015/lib/interaction/components/activity-outlet/activity-outlet-context.js +0 -22
- package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js +0 -169
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +0 -37
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +0 -46
- package/esm2015/lib/interaction/confirm.js +0 -17
- package/esm2015/lib/interaction/index.js +0 -21
- package/esm2015/lib/interaction/interaction-context.js +0 -35
- package/esm2015/lib/interaction/interaction.module.js +0 -41
- package/esm2015/lib/interaction/result.js +0 -24
- package/esm2015/lib/interaction/services/dialog-interaction.service.js +0 -114
- package/esm2015/lib/place/abstract-place-component.js +0 -59
- package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.js +0 -44
- package/esm2015/lib/place/components/empty-state/empty-state.component.js +0 -28
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +0 -67
- package/esm2015/lib/place/components/place-outlet/route-animations.js +0 -35
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +0 -50
- package/esm2015/lib/place/guards/leave-place.guard.js +0 -52
- package/esm2015/lib/place/guards/place-route.guard.js +0 -74
- package/esm2015/lib/place/index.js +0 -27
- package/esm2015/lib/place/place-component.js +0 -17
- package/esm2015/lib/place/place.decorator.js +0 -72
- package/esm2015/lib/place/place.module.js +0 -49
- package/esm2015/lib/place/place.service.js +0 -61
- package/esm2015/lib/place/route/json-types.js +0 -13
- package/esm2015/lib/place/route/parameter-decorators.js +0 -178
- package/esm2015/lib/place/route/parameter-definition.class.js +0 -24
- package/esm2015/lib/place/route/parameter-sanitiser.js +0 -17
- package/esm2015/lib/place/route/parameter-type.js +0 -43
- package/esm2015/lib/place/route/route-parameter-bindings.js +0 -294
- package/esm2015/lib/place/route/route-parameter-sanitiser.js +0 -280
- package/esm2015/public_api.js +0 -11
- package/esm5/coolon-angular-ui-powerups.js +0 -33
- package/esm5/index.js +0 -6
- package/esm5/lib/angular-ui-powerups.module.js +0 -58
- package/esm5/lib/animations/index.js +0 -9
- package/esm5/lib/animations/slideDownAndUpAnimation.js +0 -30
- package/esm5/lib/components/disposable-component.js +0 -24
- package/esm5/lib/components/forms/abstract-input.component.js +0 -232
- package/esm5/lib/components/forms/number-input/number-input.component.js +0 -33
- package/esm5/lib/components/forms/password-input/password-input.component.js +0 -33
- package/esm5/lib/components/forms/select-input/select-input.component.js +0 -67
- package/esm5/lib/components/forms/string-input/string-input.component.js +0 -33
- package/esm5/lib/components/index.js +0 -18
- package/esm5/lib/components/resize-aware.component.js +0 -124
- package/esm5/lib/components/types/bounds.class.js +0 -59
- package/esm5/lib/components/types/dimension.class.js +0 -19
- package/esm5/lib/components/types/point.class.js +0 -43
- package/esm5/lib/directives/command.directive.js +0 -155
- package/esm5/lib/directives/focus-binding.directive.js +0 -231
- package/esm5/lib/directives/index.js +0 -10
- package/esm5/lib/interaction/abstract-activity.js +0 -173
- package/esm5/lib/interaction/activity.js +0 -27
- package/esm5/lib/interaction/alert.js +0 -23
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +0 -181
- package/esm5/lib/interaction/components/activity-outlet/activity-outlet-context.js +0 -22
- package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js +0 -206
- package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +0 -42
- package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +0 -54
- package/esm5/lib/interaction/confirm.js +0 -17
- package/esm5/lib/interaction/index.js +0 -21
- package/esm5/lib/interaction/interaction-context.js +0 -45
- package/esm5/lib/interaction/interaction.module.js +0 -45
- package/esm5/lib/interaction/result.js +0 -24
- package/esm5/lib/interaction/services/dialog-interaction.service.js +0 -140
- package/esm5/lib/place/abstract-place-component.js +0 -66
- package/esm5/lib/place/components/busy-overlay/busy-overlay.component.js +0 -49
- package/esm5/lib/place/components/empty-state/empty-state.component.js +0 -29
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +0 -81
- package/esm5/lib/place/components/place-outlet/route-animations.js +0 -35
- package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +0 -57
- package/esm5/lib/place/guards/leave-place.guard.js +0 -57
- package/esm5/lib/place/guards/place-route.guard.js +0 -78
- package/esm5/lib/place/index.js +0 -27
- package/esm5/lib/place/place-component.js +0 -17
- package/esm5/lib/place/place.decorator.js +0 -69
- package/esm5/lib/place/place.module.js +0 -53
- package/esm5/lib/place/place.service.js +0 -75
- package/esm5/lib/place/route/json-types.js +0 -13
- package/esm5/lib/place/route/parameter-decorators.js +0 -178
- package/esm5/lib/place/route/parameter-definition.class.js +0 -24
- package/esm5/lib/place/route/parameter-sanitiser.js +0 -17
- package/esm5/lib/place/route/parameter-type.js +0 -65
- package/esm5/lib/place/route/route-parameter-bindings.js +0 -339
- package/esm5/lib/place/route/route-parameter-sanitiser.js +0 -395
- package/esm5/public_api.js +0 -11
- package/fesm2015/coolon-angular-ui-powerups.js +0 -3145
- package/fesm2015/coolon-angular-ui-powerups.js.map +0 -1
- package/fesm5/coolon-angular-ui-powerups.js +0 -3699
- package/fesm5/coolon-angular-ui-powerups.js.map +0 -1
- package/lib/angular-ui-powerups.module.d.ts +0 -2
- package/lib/animations/slideDownAndUpAnimation.d.ts +0 -5
- package/lib/components/disposable-component.d.ts +0 -5
- package/lib/components/forms/abstract-input.component.d.ts +0 -35
- package/lib/components/forms/number-input/number-input.component.d.ts +0 -6
- package/lib/components/forms/password-input/password-input.component.d.ts +0 -6
- package/lib/components/forms/select-input/select-input.component.d.ts +0 -11
- package/lib/components/forms/string-input/string-input.component.d.ts +0 -6
- package/lib/components/resize-aware.component.d.ts +0 -22
- package/lib/components/types/bounds.class.d.ts +0 -16
- package/lib/components/types/dimension.class.d.ts +0 -5
- package/lib/components/types/point.class.d.ts +0 -10
- package/lib/directives/command.directive.d.ts +0 -14
- package/lib/directives/focus-binding.directive.d.ts +0 -22
- package/lib/interaction/abstract-activity.d.ts +0 -17
- package/lib/interaction/activity.d.ts +0 -11
- package/lib/interaction/alert.d.ts +0 -5
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +0 -32
- package/lib/interaction/components/activity-outlet/activity-outlet.component.d.ts +0 -30
- package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +0 -8
- package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +0 -9
- package/lib/interaction/interaction-context.d.ts +0 -11
- package/lib/interaction/interaction.module.d.ts +0 -2
- package/lib/interaction/result.d.ts +0 -8
- package/lib/interaction/services/dialog-interaction.service.d.ts +0 -14
- package/lib/place/abstract-place-component.d.ts +0 -13
- package/lib/place/components/busy-overlay/busy-overlay.component.d.ts +0 -8
- package/lib/place/components/empty-state/empty-state.component.d.ts +0 -5
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +0 -13
- package/lib/place/components/place-outlet/route-animations.d.ts +0 -1
- package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +0 -11
- package/lib/place/guards/leave-place.guard.d.ts +0 -10
- package/lib/place/guards/place-route.guard.d.ts +0 -9
- package/lib/place/place-component.d.ts +0 -5
- package/lib/place/place.decorator.d.ts +0 -20
- package/lib/place/place.module.d.ts +0 -2
- package/lib/place/place.service.d.ts +0 -8
- package/lib/place/route/json-types.d.ts +0 -7
- package/lib/place/route/parameter-decorators.d.ts +0 -26
- package/lib/place/route/parameter-definition.class.d.ts +0 -11
- package/lib/place/route/parameter-type.d.ts +0 -16
- package/lib/place/route/route-parameter-bindings.d.ts +0 -18
- package/lib/place/route/route-parameter-sanitiser.d.ts +0 -42
- package/schematics/ng-add/index.d.ts +0 -2
- package/schematics/ng-add/index.js +0 -12
- package/schematics/ng-add/index.js.map +0 -1
- package/schematics/place-routes/index.d.ts +0 -3
- package/schematics/place-routes/index.js +0 -114
- package/schematics/place-routes/index.js.map +0 -1
- package/schematics/place-routes/place-def.d.ts +0 -34
- package/schematics/place-routes/place-def.js +0 -84
- package/schematics/place-routes/place-def.js.map +0 -1
- package/schematics/place-routes/scanner.d.ts +0 -26
- package/schematics/place-routes/scanner.js +0 -125
- package/schematics/place-routes/scanner.js.map +0 -1
- package/schematics/place-routes/schema.d.ts +0 -7
- package/schematics/place-routes/schema.js +0 -3
- package/schematics/place-routes/schema.js.map +0 -1
- /package/{index.d.ts → src/index.ts} +0 -0
- /package/{public_api.d.ts → src/public_api.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"coolon-angular-ui-powerups.js","sources":["ng://@coolon/angular-ui-powerups/lib/components/disposable-component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/abstract-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/number-input/number-input.component.ts","ng://@coolon/angular-ui-powerups/lib/directives/command.directive.ts","ng://@coolon/angular-ui-powerups/lib/directives/focus-binding.directive.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/string-input/string-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/password-input/password-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/select-input/select-input.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction-context.ts","ng://@coolon/angular-ui-powerups/lib/interaction/abstract-activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/alert-dialog/alert-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-container/activity-container.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-outlet/activity-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/services/dialog-interaction.service.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction.module.ts","ng://@coolon/angular-ui-powerups/lib/place/components/busy-overlay/busy-overlay.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/empty-state/empty-state.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.service.ts","ng://@coolon/angular-ui-powerups/lib/place/components/place-outlet/route-animations.ts","ng://@coolon/angular-ui-powerups/lib/place/components/place-outlet/place-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.module.ts","ng://@coolon/angular-ui-powerups/lib/angular-ui-powerups.module.ts","ng://@coolon/angular-ui-powerups/lib/animations/slideDownAndUpAnimation.ts","ng://@coolon/angular-ui-powerups/lib/components/types/dimension.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/point.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/bounds.class.ts","ng://@coolon/angular-ui-powerups/lib/components/resize-aware.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/alert.ts","ng://@coolon/angular-ui-powerups/lib/interaction/confirm.ts","ng://@coolon/angular-ui-powerups/lib/interaction/result.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-outlet/activity-outlet-context.ts","ng://@coolon/angular-ui-powerups/lib/place/place.decorator.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-bindings.ts","ng://@coolon/angular-ui-powerups/lib/place/abstract-place-component.ts","ng://@coolon/angular-ui-powerups/lib/place/place-component.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/leave-place.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-sanitiser.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/place-route.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/json-types.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-decorators.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-definition.class.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-sanitiser.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-type.ts"],"sourcesContent":["import {OnDestroy} from '@angular/core';\nimport {GarbageCollector} from '@coolon/pectin';\n\nexport class DisposableComponent extends GarbageCollector implements OnDestroy {\n\n ngOnDestroy(): void {\n this.dispose();\n }\n}\n","/* tslint:disable:no-input-rename */\nimport { EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material';\nimport { Command, DelegatingFormValueModel, ListModel, UseDelegate, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../disposable-component';\n\nexport abstract class AbstractInputComponent<T> extends DisposableComponent implements OnInit {\n\n readonly valueModel = new DelegatingFormValueModel<T>();\n\n @Input('valueModel') @UseDelegate()\n set userValueModel(model: ValueModel<T>) {\n this.valueModel.setDelegate(model);\n }\n\n @Input() label: string;\n @Input() floatLabel: 'auto' | 'always' | 'never';\n @Input() hint: string;\n @Input() placeholder: string;\n\n @Input('command.focus') focusCommand: Command<any>;\n @Input('command.blur') blurCommand: Command<any>;\n @Input('command.enter') enterCommand: Command<any>;\n @Input('command.escape') escapeCommand: Command<any>;\n @Input('command.click') clickCommand: Command<any>;\n\n // TODO: fix this.\n // tslint:disable-next-line:no-output-native\n @Output() focus = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() blur = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() enterKey = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() escapeKey = new EventEmitter();\n\n readonly errorStateMatcher: ErrorStateMatcher;\n\n @HostListener('click')\n notifyClick() {\n this.safelyInvoke(this.clickCommand);\n }\n\n @HostListener('focusin')\n notifyFocusIn() {\n this.safelyInvoke(this.focusCommand);\n this.focus.emit();\n }\n\n @HostListener('focusout')\n notifyFocusOut() {\n this.safelyInvoke(this.blurCommand);\n this.blur.emit();\n }\n\n\n notifyEnterKey() {\n this.safelyInvoke(this.enterCommand);\n this.enterKey.emit();\n }\n\n notifyEscapeKey() {\n this.safelyInvoke(this.escapeCommand);\n this.escapeKey.emit();\n }\n\n protected safelyInvoke(command: Command<any>) {\n if (command && command.enabled.value) {\n command.execute();\n }\n }\n\n constructor() {\n super();\n const self = this;\n this.errorStateMatcher = {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return self.hasErrors();\n }\n };\n }\n\n ngOnInit(): void {\n }\n\n isEnabled(): boolean {\n return this.enabled.value;\n }\n\n get enabled(): ValueModel<boolean> {\n return this.valueModel.enabled;\n }\n\n hasErrors(): boolean {\n return !this.errorList.query().isEmpty();\n }\n\n get errorList(): ListModel<string> {\n return this.valueModel.errorList;\n }\n\n get firstError() {\n return this.hasErrors() ? this.errorList.value[0] : null;\n }\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n\n@Component({\n selector: 'angular-ui-powerups-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss']\n})\nexport class NumberInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { assert, Command, Dsl, GarbageCollector, lang, UnaryCommand } from '@coolon/pectin';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinCommand]'\n})\nexport class CommandDirective<P = any> extends GarbageCollector implements OnInit, OnDestroy, AfterViewInit {\n\n @Input()\n pectinCommand: Command<any> | UnaryCommand<P>;\n\n private _commandParameter:P;\n private _commandParameterProvided = false;\n\n @Input()\n set commandParameter(value: P) {\n this._commandParameterProvided = true;\n this._commandParameter = value;\n }\n\n get commandParameter(): P {\n return this._commandParameter;\n }\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef) {\n super();\n }\n\n ngOnInit(): void {\n assert.notNil(this.pectinCommand);\n if (this.pectinCommand instanceof UnaryCommand) {\n if (!this._commandParameterProvided) {\n lang.illegalState('UnaryCommands required the command parameter to be specified.');\n }\n } else {\n if (this._commandParameterProvided) {\n lang.illegalState('command parameters are only supported by UnaryCommands');\n }\n }\n }\n\n ngAfterViewInit(): void {\n // for some reason mat-buttons kills the disabled host binding. It works on a regular button but for now\n // we need to do this.\n const { chain } = Dsl.disposeWith(this);\n chain(this.pectinCommand.enabled).subscribe(enabled => {\n if (enabled) {\n this.elementRef.nativeElement.removeAttribute('disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.setAttribute('href', 'javascript:void');\n }\n } else {\n this.elementRef.nativeElement.setAttribute('disabled', 'disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.removeAttribute('href');\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n\n @HostListener('click', ['$event'])\n notifyClick($event: Event) {\n $event.preventDefault();\n $event.stopPropagation();\n if (this.pectinCommand.enabled.value) {\n if (this.pectinCommand instanceof UnaryCommand) {\n this.pectinCommand.withContext({ event: $event }).execute(this.commandParameter);\n } else {\n this.pectinCommand.withContext({ event: $event }).execute();\n }\n } else {\n console.warn('disabled command clicked, ignoring.');\n }\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, NgZone, OnInit} from '@angular/core';\nimport {Dsl, HasFocusTracking, Logger} from '@coolon/pectin';\nimport {DisposableComponent} from '../components/disposable-component';\n\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinFocusBinding]'\n})\nexport class FocusBindingDirective extends DisposableComponent implements OnInit, AfterViewInit {\n\n private readonly document: Document;\n\n @Input() pectinFocusBinding: HasFocusTracking;\n @Input() focusBindingTarget: HTMLElement;\n\n @HostListener('focusin')\n onFocusIn() {\n if (this.hasBinding()) {\n this.pectinFocusBinding.focusContext.notifyFocusIn();\n }\n }\n\n @HostListener('focusout')\n onFocusOut() {\n if (this.hasBinding()) {\n this.pectinFocusBinding.focusContext.notifyFocusOut();\n }\n }\n\n constructor(@Inject(ElementRef) private readonly el: ElementRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) document: any) {\n super();\n // @see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642\n this.document = document as Document;\n }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n // TODO: Make this also track the current enabled/disabled state.\n if (this.hasBinding()) {\n const {chain} = Dsl.disposeWith(this);\n chain(this.pectinFocusBinding.focusContext.focused).subscribe((focused) => {\n if (focused && !this.alreadyHasFocus()) {\n this.tryAndFocus();\n }\n });\n } else {\n Logger.get(this).warn(\"pectinFocusBinding was nil\");\n }\n }\n\n private hasBinding() {\n return !!this.pectinFocusBinding && !!this.pectinFocusBinding.focusContext;\n }\n\n// Hook method for debugging via tracing.\n alreadyHasFocus() {\n return this.isFocused(this.focusTarget);\n }\n\n // Hook method for debugging via tracing.\n isFocused(element: Element): boolean {\n return this.document.activeElement === element;\n }\n\n tryAndFocus(retries: number = 5) {\n if (this.modelShouldStillHaveFocus() && this.canFocus()) {\n if (!this.alreadyHasFocus()) {\n this.focusTarget.focus();\n }\n // if we didn't get the focus we try again later.\n if (!this.alreadyHasFocus()) {\n Logger.get(this).log(`focus failed, trying ${retries} more times`);\n if (retries > 0) {\n // try again on the next paint\n // TODO: is there an angular way of doing this without calling a window function.\n requestAnimationFrame(() => {\n this.tryAndFocus(retries - 1);\n });\n } else {\n Logger.get(this).warn(`Tried to focus but gave up as the component wasn't enabled or visible.`);\n }\n }\n }\n }\n\n get focusTarget(): HTMLElement {\n return this.focusBindingTarget || this.el.nativeElement;\n }\n\n // Hook method for debugging via tracing.\n modelShouldStillHaveFocus() {\n return this.hasBinding() && this.pectinFocusBinding.focusContext.focused.value;\n }\n\n // Hook method for debugging via tracing.\n canFocus(): boolean {\n const dimension = this.focusTarget.getBoundingClientRect();\n const hasSize = dimension.height >= 0 && dimension.height >= 0;\n // tslint:disable-next-line:no-string-literal\n return hasSize && !this.focusTarget['disabled'];\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-string-input',\n templateUrl: './string-input.component.html',\n styleUrls: ['./string-input.component.scss']\n})\nexport class StringInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss']\n})\nexport class PasswordInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ListModel, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { AbstractInputComponent } from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-select-input',\n templateUrl: './select-input.component.html',\n styleUrls: ['./select-input.component.scss']\n})\nexport class SelectInputComponent<T = any> extends AbstractInputComponent<T> implements OnInit {\n\n @Input() @UseDelegate()\n optionsModel: ListModel<T>;\n\n @Input() @StoreInListModel('optionsModel')\n options: T[];\n\n @Input()\n optionLabel: keyof T;\n\n @Input()\n optionLabelFormat: (option: T) => any = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { InjectionToken } from '@angular/core';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from './activity';\nimport { Alert } from './alert';\nimport { Confirm } from './confirm';\n\nexport const INTERACTION_CONTEXT = new InjectionToken<any>('InteractionContext');\n\nexport abstract class InteractionContext {\n\n abstract startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;\n\n abstract confirm(confirm: Confirm): Promise<boolean>;\n\n abstract alert(alert: Alert): Promise<void>;\n}\n","import { DelegatingValueModel, EventListenerList, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { Activity } from './activity';\n\nexport class AbstractActivity<D, R, E = any> extends DisposableComponent implements Activity<D, R, E> {\n\n private readonly _doneListeners = new EventListenerList<Activity.CallBack<R>>();\n private readonly _cancelListeners = new EventListenerList<Activity.CallBack<E>>();\n private readonly _finishListeners = new EventListenerList<() => void>();\n\n private readonly _busyModel = new DelegatingValueModel<boolean>().withDefault(false);\n\n onDone(callback: Activity.CallBack<R>) {\n this._doneListeners.add(callback);\n }\n\n onCancel(callback: Activity.CallBack<E>) {\n this._cancelListeners.add(callback);\n }\n\n done(result?: R): Promise<any> {\n return this._doneListeners\n .fireAndWait(l => l(result))\n .finally(() => this.finalizeAndDispose());\n }\n\n cancel(error?: E): Promise<any> {\n return this._cancelListeners\n .fireAndWait(l => l(error))\n .finally(() => this.finalizeAndDispose());\n }\n\n private finalizeAndDispose() {\n // this._activeModel.value = false;\n this._finishListeners.fire(l => l());\n // this._interactionContext = null;\n // this._initialized = false;\n [\n this._finishListeners,\n this._doneListeners,\n this._cancelListeners\n ].forEach(l => l.dispose());\n }\n\n\n get busy(): ValueModel<boolean> {\n return this._busyModel.readonly;\n }\n\n busyWhile(busyModel: ValueModel<boolean>) {\n this._busyModel.setDelegate(busyModel);\n }\n\n isBusy() {\n return this._busyModel.value;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ValueModel } from '@coolon/pectin';\n\nexport const ACTIVITY_DATA = new InjectionToken<any>('InteractionActivityData');\n\nexport interface Activity<D, R, E = any> {\n readonly busy: ValueModel<boolean>;\n\n onDone(callback: Activity.CallBack<R>);\n\n onCancel(callback: Activity.CallBack<E>);\n\n}\n\nexport namespace Activity {\n export type CallBack<T> = (value: T) => void | Promise<any>;\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\n\n@Component({\n selector: 'angular-ui-powerups-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent extends AbstractActivity<Alert, void> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly alert: Alert) {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { assert } from '@coolon/pectin';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Confirm } from '../../confirm';\n\n@Component({\n selector: 'angular-ui-powerups-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss']\n})\nexport class ConfirmationDialogComponent extends AbstractActivity<Confirm, boolean> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly confirm: Confirm) {\n super();\n assert.notNil(confirm);\n console.log(confirm);\n }\n\n ngOnInit() {\n }\n\n isDestructive(): boolean {\n return this.confirm.destructive && this.confirm.destructive();\n }\n}\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatTabGroup } from '@angular/material';\nimport { Constructable, Dsl, MutableListModel } from '@coolon/pectin';\nimport { Deferred } from '@coolon/pectin/lib/promise/deferred.class';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\nimport { Activity } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from '../activity-outlet/activity-outlet-context';\nimport { AlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\n\n@Component({\n selector: 'angular-ui-powerups-activity-container',\n templateUrl: './activity-container.component.html',\n styleUrls: ['./activity-container.component.scss']\n})\nexport class ActivityContainerComponent extends DisposableComponent implements OnInit, AfterViewInit, InteractionContext {\n\n @Input()\n parentInteractionContext: InteractionContext;\n\n @Input()\n initialActivity: ActivityOutletContext<any, any, any>;\n\n @ViewChild('tabs', { static: true })\n tabs: MatTabGroup;\n\n readonly activityTabs = new MutableListModel<ActivityOutletContext<any, any, any>>();\n private obsoleteTabs: ActivityOutletContext<any, any, any>[] = [];\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n const { observe } = Dsl.disposeWith(this);\n observe.valuesFrom(this.tabs.animationDone).subscribe(() => this.cleanUpTabs());\n }\n\n initialise<D, R, E>(options: ActivityContainerComponent.ActivityContext<D, R, E>) {\n this.initialActivity = {\n ...options,\n interactionContext: this\n };\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n const deferred = Deferred.defer<R>();\n const context = {\n interactionContext: this,\n activityClass: activityType,\n activityData: data,\n onDone: deferred.resolve,\n onCancel: deferred.reject\n };\n this.activityTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length;\n return deferred.promise.finally(() => {\n this.obsoleteTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length - 1;\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this.startActivity(AlertDialogComponent, alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.startActivity(ConfirmationDialogComponent, confirm);\n }\n\n private cleanUpTabs() {\n this.activityTabs.value = this.activityTabs.value.filter(tab => {\n return !this.obsoleteTabs.includes(tab);\n });\n }\n}\n\nexport namespace ActivityContainerComponent {\n\n export interface ActivityContext<D, R, E> {\n activityClass: Constructable<Activity<D, R, E>>,\n activityData: D,\n onDone: (result: R) => void,\n onCancel: (error: E) => void,\n }\n}\n","import {\n AfterViewInit,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Injector,\n Input,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { Constructable, lang } from '@coolon/pectin';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from './activity-outlet-context';\n\n@Component({\n selector: 'angular-ui-powerups-activity-outlet',\n template: '',\n styleUrls: ['./activity-outlet.component.scss']\n})\nexport class ActivityOutletComponent<D, R, E> implements OnInit, InteractionContext {\n\n @Input()\n interactionContext: InteractionContext;\n\n @Input()\n set activityContext(activityContext: ActivityOutletContext<D, R, E>) {\n this.loadActivity(activityContext);\n };\n\n private activityComponent: ComponentRef<Activity<D, R, E>>;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n ) {\n }\n\n ngOnInit() {\n }\n\n loadActivity(activityContext: ActivityOutletContext<D, R, E>) {\n const injector = Injector.create({\n providers: [\n {\n provide: InteractionContext,\n useValue: this\n },\n { provide: ACTIVITY_DATA, useValue: activityContext.activityData }\n ],\n parent: this.injector\n });\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(activityContext.activityClass);\n this.viewContainerRef.clear();\n this.activityComponent = this.viewContainerRef.createComponent(componentFactory, 0, injector);\n this.activityComponent.instance.onDone(activityContext.onDone);\n this.activityComponent.instance.onCancel(activityContext.onCancel);\n }\n\n alert(alert: Alert): Promise<void> {\n return this.interactionContext.alert(alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.interactionContext.confirm(confirm);\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return this.interactionContext.startActivity(activityType, data);\n }\n}\n\nexport namespace ActivityOutletComponent {\n\n export class OutletInteractionContext<D, R, E> implements InteractionContext {\n\n constructor(private readonly context: ActivityOutletContext<D, R, E>) {\n }\n\n alert(alert: Alert): Promise<void> {\n return lang.notImplemented();\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return lang.notImplemented();\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return lang.notImplemented();\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from '../activity';\nimport { Alert } from '../alert';\nimport { ActivityContainerComponent } from '../components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from '../components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../components/confirmation-dialog/confirmation-dialog.component';\nimport { Confirm } from '../confirm';\nimport { InteractionContext } from '../interaction-context';\nimport { assert } from '@coolon/typescript-utilities';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogInteractionService extends InteractionContext {\n\n constructor(private readonly dialogService: MatDialog) {\n super();\n assert.notNil(dialogService);\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n return this._startActivity(activityType, data);\n }\n\n private _startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose: boolean = true) {\n const config = {\n data,\n disableClose,\n panelClass: 'dialog-interaction-service',\n autoFocus: false\n };\n const matDialogRef = this.dialogService.open(ActivityContainerComponent, config) as MatDialogRef<ActivityContainerComponent>;\n return new Promise<R>((resolve, reject) => {\n const activityContainer = matDialogRef.componentInstance;\n activityContainer.parentInteractionContext = this;\n activityContainer.initialise({\n activityClass: activityType,\n activityData: data,\n onDone(result) {\n resolve(result);\n matDialogRef.close(result);\n },\n onCancel(error) {\n reject(error);\n matDialogRef.close(error);\n }\n });\n\n matDialogRef.updateSize();\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this._startActivity(AlertDialogComponent, alert, false);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this._startActivity(ConfirmationDialogComponent, confirm, true);\n }\n\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule, MatDialogModule, MatTabsModule } from '@angular/material';\nimport { ActivityContainerComponent } from './components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\nimport { ActivityOutletComponent } from './components/activity-outlet/activity-outlet.component';\nimport { DialogInteractionService } from './services/dialog-interaction.service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatDialogModule,\n MatTabsModule,\n PortalModule\n ],\n declarations: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent,\n ActivityOutletComponent\n ],\n entryComponents: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent\n ],\n providers: [\n DialogInteractionService\n ]\n})\nexport class InteractionModule {\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { StoreInValueModel, UseDelegate, ValueModel } from '@coolon/pectin';\n\n@Component({\n selector: 'angular-ui-powerups-busy-overlay',\n templateUrl: `./busy-overlay.component.html`,\n styleUrls: ['./busy-overlay.component.scss']\n})\nexport class BusyOverlayComponent implements OnInit {\n\n @Input() @UseDelegate()\n busyModel: ValueModel<boolean>;\n\n @Input() @StoreInValueModel('busyModel')\n busy: boolean;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'angular-ui-powerups-empty-state',\n template: `\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n `,\n styleUrls: ['./empty-state.component.scss']\n})\nexport class EmptyStateComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MutableListModel, Trace } from '@coolon/pectin';\nimport { PlaceComponent } from './place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceService {\n\n private _activePlaces = new MutableListModel<PlaceComponent>();\n\n constructor() {\n }\n\n get activePlaces() {\n return this._activePlaces.readonly;\n }\n\n @Trace()\n onActivate(place: PlaceComponent) {\n this._activePlaces.push(place);\n }\n\n @Trace()\n onDeactivate(place: PlaceComponent) {\n this._activePlaces.remove(place);\n }\n\n}\n","import { animate, animateChild, group, query, style, transition, trigger } from '@angular/animations';\n\nconst left = [\n query(':enter, :leave', style({ position: 'fixed', width: '100%' }), { optional: true }),\n group([\n query(':enter', [style({ transform: 'translateX(-100%)' }), animate('.3s ease-out', style({ transform: 'translateX(0%)' }))], {\n optional: true,\n }),\n query(':leave', [style({ transform: 'translateX(0%)' }), animate('.3s ease-out', style({ transform: 'translateX(100%)' }))], {\n optional: true,\n }),\n ]),\n];\n\nconst right = [\n query(':enter, :leave', style({ position: 'fixed', width: '100%' }), { optional: true }),\n group([\n query(':enter', [style({ transform: 'translateX(100%)' }), animate('.3s ease-out', style({ transform: 'translateX(0%)' }))], {\n optional: true,\n }),\n query(':leave', [style({ transform: 'translateX(0%)' }), animate('.3s ease-out', style({ transform: 'translateX(-100%)' }))], {\n optional: true,\n }),\n ]),\n];\n\nexport const LEFT_RIGHT_PLACE_ANIMATION = trigger('routeAnimations', [\n transition(':increment', right),\n transition(':decrement', left),\n]);\n","import { Component, Input, OnInit } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { PlaceComponent } from '../../place-component';\nimport { PlaceService } from '../../place.service';\nimport { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';\nimport {Trace} from \"@coolon/pectin\";\n\n@Component({\n selector: 'angular-ui-powerups-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss'],\n animations: [LEFT_RIGHT_PLACE_ANIMATION]\n})\nexport class PlaceOutletComponent implements OnInit {\n\n @Input()\n animate = true;\n\n constructor(private readonly placeService: PlaceService) {\n }\n\n ngOnInit() {\n }\n\n onActivate($event: PlaceComponent) {\n this.placeService.onActivate($event);\n }\n\n onDeactivate($event: PlaceComponent) {\n this.placeService.onDeactivate($event);\n }\n\n getPlaceOrder(outlet: RouterOutlet) {\n return this.animate && outlet && outlet.activatedRouteData && outlet.activatedRouteData['placeOrder'];\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Dsl, ListModel, ListModelChain, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { Place } from '../../place.decorator';\n\n@Component({\n selector: 'angular-ui-powerups-tabbed-place-navigation',\n templateUrl: './tabbed-place-navigation.component.html',\n styleUrls: ['./tabbed-place-navigation.component.scss']\n})\nexport class TabbedPlaceNavigationComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInListModel('placesModel')\n places: Place.Descriptor[];\n\n @Input() @UseDelegate()\n placesModel: ListModel<Place.Descriptor>;\n\n readonly orderedPlaces: ListModelChain<Place.Descriptor>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.orderedPlaces = chain(this.placesModel).sortBy('order');\n }\n\n ngOnInit() {\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material';\nimport { MatListModule } from '@angular/material/list';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';\nimport { TabbedPlaceNavigationComponent } from './components/tabbed-place-navigation/tabbed-place-navigation.component';\nimport { PlaceService } from './place.service';\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserAnimationsModule,\n MatProgressSpinnerModule,\n RouterModule,\n MatTabsModule,\n MatListModule,\n MatTooltipModule\n ],\n declarations: [\n EmptyStateComponent,\n BusyOverlayComponent,\n PlaceOutletComponent,\n TabbedPlaceNavigationComponent\n ],\n entryComponents: [BusyOverlayComponent],\n exports: [\n BusyOverlayComponent,\n PlaceOutletComponent,\n EmptyStateComponent,\n TabbedPlaceNavigationComponent\n ],\n providers: [\n PlaceService\n ]\n})\nexport class PlaceModule {\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatInputModule, MatSelectModule } from '@angular/material';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NumberInputComponent} from './components/forms/number-input/number-input.component';\nimport { CommandDirective } from './directives/command.directive';\nimport { FocusBindingDirective } from './directives/focus-binding.directive';\nimport { StringInputComponent } from './components/forms/string-input/string-input.component';\nimport { PasswordInputComponent } from './components/forms/password-input/password-input.component';\nimport { SelectInputComponent } from './components/forms/select-input/select-input.component';\nimport { InteractionModule } from './interaction/interaction.module';\nimport { PlaceModule } from './place/place.module';\n\n@NgModule({\n declarations: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n ],\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n PlaceModule,\n InteractionModule\n ],\n exports: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n InteractionModule,\n PlaceModule,\n ]\n\n})\nexport class AngularUiPowerupsModule {\n}\n","import { animate, AnimationStyleMetadata, style, transition, trigger } from '@angular/animations';\nimport { OptionsHelper } from '@coolon/pectin';\n\nconst defaultHiddenStyleDef = style({\n opacity: 0,\n 'height': '0',\n paddingTop: '0',\n paddingBottom: '0'\n});\n\nexport function slideDownAndUpAnimation(triggerName: string, options?: {\n duration?: string;\n hiddenStyleDef?: AnimationStyleMetadata;\n}) {\n // SEE to fix this: https://github.com/angular/angular/issues/15587#issuecomment-351510501\n const duration = OptionsHelper.get(options).getOptional('duration', '100ms');\n const hiddenStyleDef = OptionsHelper.get(options).getOptional('hiddenStyleDef', defaultHiddenStyleDef);\n return trigger(triggerName, [\n transition(':enter', [hiddenStyleDef, animate('100ms')]),\n transition(':leave', [animate('100ms', hiddenStyleDef)])\n ]);\n}\n\n// export function slideOutLeftAnimation(triggerName: string, duration:string = \"100ms\") {\n// return trigger(triggerName, [\n// state('true', style(\n// {\n// 'width': '*',\n// 'overflow': 'hidden',\n// 'opacity': '1'\n// })),\n// state('false', style({\n// 'width': '0px',\n// 'overflow': 'hidden',\n// 'opacity': '0'\n// })),\n// transition('* => *', [animate(duration)])\n// ]);\n// }\n","export class Dimension {\n constructor(readonly width: number, readonly height: number){}\n}\n","export class Point {\n\n static from(data: { x: number, y: number }) {\n return new Point(data.x, data.y);\n }\n\n constructor(readonly x: number, readonly y: number) {\n }\n\n translate(x: number, y: number): Point {\n return new Point(this.x + x, this.y + y);\n }\n}\n","import { Dimension } from './dimension.class';\nimport { Point } from './point.class';\n\nexport class Bounds extends Dimension {\n\n constructor(readonly top: number, readonly left: number, readonly width: number, readonly height: number) {\n super(width, height);\n }\n\n relativePositionOf(point: { x: number, y: number } | MouseEvent) {\n if (point instanceof MouseEvent) {\n return new Point(point.clientX - this.left, point.clientY - this.top);\n } else {\n return new Point(point.x - this.left, point.y - this.top);\n }\n }\n}\n\nexport namespace Bounds {\n export function ofElement(element: HTMLElement): Bounds {\n const rect = element.getBoundingClientRect();\n return new Bounds(rect.top, rect.left, rect.width, rect.height);\n }\n}\n\n","import {AfterViewInit, ElementRef, NgZone} from '@angular/core';\nimport {ValueHolder, ValueModel} from '@coolon/pectin';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport {DisposableComponent} from './disposable-component';\nimport {Bounds} from './types/bounds.class';\nimport {Point} from './types/point.class';\n\nexport class ResizeAwareComponent extends DisposableComponent implements AfterViewInit {\n\n private _boundsModel = new ValueHolder<Bounds>(new Bounds(0, 0, 0, 0));\n\n constructor(protected readonly elementRef: ElementRef, protected readonly ngZone: NgZone) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.updateBounds();\n const element = this.elementRef.nativeElement;\n const ro = new ResizeObserver((entries, observer) => {\n this.ngZone.run(() => this.updateBounds());\n });\n ro.observe(element);\n this.onDispose(() => ro.disconnect());\n }\n\n get boundsModel(): ValueModel<Bounds> {\n return this._boundsModel.readonly;\n }\n\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n // TODO: Make this handle body scroll\n public relativePositionOf(point: { x: number, y: number } | MouseEvent): Point {\n return this.bounds.relativePositionOf(point);\n }\n\n get bounds(): Bounds {\n return this._boundsModel.value;\n }\n\n private updateBounds() {\n this._boundsModel.value = Bounds.ofElement(this.nativeElement);\n }\n\n\n}\n\nexport namespace ResizeAwareComponent {\n\n}\n","\nexport interface Alert {\n title?():string;\n content():string[];\n ok():string;\n}\n","import { Alert } from './alert';\n\nexport interface Confirm extends Alert {\n destructive?: () => boolean;\n cancel(): string;\n}\n","export interface Result<R, E> {\n // catch(callback: (error: E) => void): Result<R,E>;\n}\n\nexport namespace Result {\n export interface Callback<R,E> {\n then: <T>(result:R)=>T;\n catch: <T>(result:E)=>T;\n }\n\n}\n\n// const r:Result<string, number> = null;\n\n// r.catch(e => {}).then();\n\n","import { Constructable } from '@coolon/pectin';\nimport { Activity } from '../../activity';\nimport { InteractionContext } from '../../interaction-context';\n\n\nexport interface ActivityOutletContext<D, R, E> {\n interactionContext: InteractionContext,\n activityClass: Constructable<Activity<D, R, E>>,\n activityData: D,\n onDone: (result: R) => void,\n onCancel: (error: E) => void,\n}\n","import { assert, Constructable } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport 'reflect-metadata';\nimport { PlaceComponent } from './place-component';\n\nexport function Place(options: Place.Options) {\n return (target: Function) => {\n Reflect.defineMetadata('place.options', options, target);\n };\n}\n\nexport namespace Place {\n export interface Options {\n path: string,\n title: string,\n order: number;\n authenticate?: boolean // defaults to true\n // childOf?: Constructable<PlaceComponent>\n }\n\n export class Descriptor {\n readonly path: string;\n readonly authenticate: boolean;\n readonly title: string;\n readonly order: number;\n\n constructor(placeClass: Constructable<PlaceComponent>, options: Options) {\n assert.notNil(options);\n this.path = options.path;\n this.title = options.title;\n this.order = options.order;\n this.authenticate = _.isNil(options.authenticate) || options.authenticate;\n }\n }\n\n export function getDescriptor(klass: Constructable<PlaceComponent>): Descriptor {\n const placeOptions = Reflect.getMetadata('place.options', klass);\n return new Descriptor(klass, placeOptions);\n }\n}\n","import { ActivatedRoute, Router } from '@angular/router';\nimport {\n Binding,\n Dsl,\n GarbageCollector, IMutableHasValue,\n MutableValueModel,\n Trace,\n TransactionObserver\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { ParameterDefinition } from './parameter-definition.class';\n\ninterface ResolvedParameter<T> {\n parameterDef: ParameterDefinition<T>;\n resolvedValue: T;\n}\n\nclass ResolvedParameters {\n constructor(readonly parameters: ResolvedParameter<any>[]) {\n }\n\n get<T>(parameter: ParameterDefinition<T>): T {\n const resolved = this.parameters.find(p => p.parameterDef === parameter);\n return resolved ? resolved.resolvedValue : null;\n }\n\n replace<T>(parameter: ParameterDefinition<T>, value: T): ResolvedParameters {\n return new ResolvedParameters(this.parameters.filter(p => p.parameterDef !== parameter).concat({\n parameterDef: parameter,\n resolvedValue: value\n }));\n }\n\n @Trace()\n protected getFormattedRouteId() {\n const routeIdParam = this.getRouteIdParam();\n return routeIdParam ? routeIdParam.parameterDef.type.format(routeIdParam.resolvedValue) : null;\n }\n\n private getRouteIdParam() {\n return this.parameters.find(p => p.parameterDef.isRouteId);\n }\n\n @Trace()\n protected getFormattedParameters() {\n const params = {};\n const routeIdParam = this.parameters.filter(p => !p.parameterDef.isRouteId).forEach(p => {\n params[p.parameterDef.name] = p.parameterDef.type.format(p.resolvedValue);\n });\n return params;\n }\n\n hasRouteId() {\n return !!this.getRouteIdParam();\n }\n\n @Trace()\n redirect(previous: ResolvedParameters, router: Router, activatedRoute: ActivatedRoute) {\n const routeId = this.getFormattedRouteId();\n const relativePath = !!previous.hasRouteId() ? '..' : '.';\n const path = routeId ? [relativePath, routeId, this.getFormattedParameters()] : [relativePath, this.getFormattedParameters()];\n router.navigate(path, {\n relativeTo: activatedRoute\n });\n }\n}\n\nexport class RouteParameterBindings extends GarbageCollector {\n\n public readonly _incomingRouteChange = new MutableValueModel<boolean>(false);\n\n private txo: TransactionObserver;\n\n private readonly resolvedParameters = new MutableValueModel<ResolvedParameters>();\n\n constructor(private readonly component: any, private readonly router: Router, private readonly activatedRoute: ActivatedRoute) {\n super();\n const { chain, valueOf, before, when, after, observe } = Dsl.disposeWith(this);\n this.txo = new TransactionObserver();//.onEvent(e => console.log(e.toString()));\n\n const routeParameterDefs: ParameterDefinition<any>[] = Klass.get(component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);\n routeParameterDefs.forEach(parameter => this.installBinding(parameter));\n\n const incomingResolvedRouteParameters = observe.valuesFrom(activatedRoute.paramMap)\n .last()\n .map(params => {\n const result: ResolvedParameter<any>[] = [];\n routeParameterDefs.forEach(parameterDef => {\n let resolvedValue;\n if (parameterDef.isArray) {\n resolvedValue = params.getAll(parameterDef.name).map(v => parameterDef.type.parse(v));\n } else {\n resolvedValue = parameterDef.type.parse(params.get(parameterDef.name));\n }\n result.push({ parameterDef: parameterDef, resolvedValue: resolvedValue });\n\n });\n return new ResolvedParameters(result);\n });\n\n incomingResolvedRouteParameters.subscribe(resolvedParameters => {\n this._incomingRouteChange.value = true;\n this.resolvedParameters.value = resolvedParameters;\n this._incomingRouteChange.value = false;\n });\n\n when.valueOf(this.resolvedParameters).changes((params, previous) => {\n params.redirect(previous, router, activatedRoute);\n }, { unless: this.incomingRouteChange });\n\n this.txo.observe('incomingResolvedRouteParameters', incomingResolvedRouteParameters);\n this.txo.observe('this.routeIsChanging', this.incomingRouteChange);\n }\n\n get incomingRouteChange() {\n return this._incomingRouteChange.readonly;\n }\n\n protected installBinding<T>(parameter: ParameterDefinition<T>) {\n const model = this.getModelFor(parameter);\n // this.txo.observe(parameter.propertyName, model);\n this.registerDisposable(new Binding(this.resolvedParameters, model, {\n toRight(parameters: ResolvedParameters): T {\n return parameters.get(parameter);\n },\n toLeft(value: T, currentParameters?: ResolvedParameters): ResolvedParameters {\n return currentParameters.replace(parameter, value);\n }\n }));\n }\n\n\n private getModelFor<T>(parameter: ParameterDefinition<T>): IMutableHasValue<T> {\n return this.component[parameter.propertyName];\n }\n}\n\nexport namespace RouteParameterBindings {\n export const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n}\n","import { ActivatedRoute, Router } from '@angular/router';\n\nimport { Constructable, DelegatingValueModel, MutableValueModel, UseDelegate } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { PlaceComponent } from './place-component';\nimport { Place } from './place.decorator';\nimport { RouteParameterBindings } from './route/route-parameter-bindings';\n\nexport class AbstractPlaceComponent extends DisposableComponent implements PlaceComponent {\n\n @UseDelegate()\n readonly titleModel: MutableValueModel<string>;\n\n private routeBindingMediator: RouteParameterBindings;\n\n constructor(protected activatedRoute: ActivatedRoute, router: Router) {\n super();\n this.routeBindingMediator = this.registerDisposable(new RouteParameterBindings(this, router, activatedRoute));\n // See https://coolon.atlassian.net/browse/PEC-59\n (this.titleModel as unknown as DelegatingValueModel<string>).setDefault(this.placeConfig.title);\n }\n\n @Memoize()\n get placeConfig(): Place.Descriptor {\n return Place.getDescriptor(this.constructor as any as Constructable<PlaceComponent>);\n }\n\n canDeactivate(): boolean | Promise<boolean> {\n return true;\n }\n\n}\n","import { ValueModel } from '@coolon/pectin';\n\nexport interface PlaceComponent {\n titleModel:ValueModel<string>;\n canDeactivate(): boolean | Promise<boolean>;\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LeavePlaceGuard implements CanDeactivate<PlaceComponent> {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n canDeactivate(component: PlaceComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n return component.canDeactivate();\n }\n\n}\n","import { Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { assert } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\nimport * as _ from 'lodash';\n\nexport abstract class Sanitiser<T, S> {\n\n private initialValue: S;\n private _sanitisedValue: S;\n\n constructor(readonly parameterDef: ParameterDefinition<T>, readonly snapshot:ActivatedRouteSnapshot, readonly sanitiser: ParameterSanitiser<S>) {\n }\n\n isRouteId(): boolean {\n return this.parameterDef.isRouteId;\n }\n\n get valueChanged():boolean {\n return !_.isNil(this.initialValue) && this.hasChanged(this.initialValue, this.sanitisedValue);\n }\n\n get sanitisedValue():S {\n return this._sanitisedValue;\n }\n\n protected abstract readFrom(snapshot: ActivatedRouteSnapshot): S;\n protected abstract hasChanged(initialValue:S, sanitisedValue:S): boolean;\n\n abstract injectRouteParam(dest: {});\n\n async sanitize(): Promise<boolean> {\n if (this.sanitiser) {\n this.initialValue = this.readFrom(this.snapshot);\n this._sanitisedValue = await this.sanitiser.sanitise(this.initialValue);\n if (this.initialValue !== this._sanitisedValue) {\n return false;\n }\n }\n return true;\n }\n}\n\n\nexport class RouteParameterSanitiser {\n\n private readonly routeIdSanitiser: Sanitiser<any, any>;\n private readonly parameterSanitisers: Sanitiser<any, any>[] = [];\n\n constructor(readonly parameterDefs: ParameterDefinition<any>[], readonly snapshot: ActivatedRouteSnapshot, readonly injector: Injector) {\n const sanitisers = parameterDefs.map(def => {\n return def.isArray ?\n new Sanitiser.Array(def, snapshot, this.getSanitiser(def)) :\n new Sanitiser.Value(def, snapshot, this.getSanitiser(def));\n });\n this.routeIdSanitiser = sanitisers.find(p => p.isRouteId());\n this.parameterSanitisers = sanitisers.filter(p => !p.isRouteId());\n }\n\n async sanitise(): Promise<boolean> {\n if (this.routeIdSanitiser) {\n await this.routeIdSanitiser.sanitize();\n if (this.routeIdSanitiser.valueChanged) {\n // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the\n // context of the route id.\n return false;\n }\n }\n for (const sanitiser of this.parameterSanitisers) {\n await sanitiser.sanitize();\n }\n return !this.parameterSanitisers.find(s => s.valueChanged);\n }\n\n redirect(router: Router) {\n assert.isTruthy(this.parameterSanitisers.length !== 0);\n if (this.routeIdSanitiser.valueChanged) {\n return router.navigate(['..', this.routeIdSanitiser.sanitisedValue]);\n } else {\n const routeParams = {};\n this.parameterSanitisers.forEach(s => s.injectRouteParam(routeParams));\n return router.navigate(['.', routeParams]);\n }\n }\n\n @Memoize()\n private getSanitiser<T, S>(def: ParameterDefinition<T, S>): ParameterSanitiser<S> {\n return def.sanitiser ? this.injector.get<ParameterSanitiser<S>>(def.sanitiser, new def.sanitiser()) : null;\n }\n}\n\nexport namespace Sanitiser {\n\n export class Value<T> extends Sanitiser<T, T> {\n\n readFrom(snapshot: ActivatedRouteSnapshot): T {\n const rawValue = this.parameterDef.isRouteId ?\n snapshot.paramMap.get(this.parameterDef.name) :\n snapshot.queryParamMap.get(this.parameterDef.name);\n\n return this.parameterDef.type.parse(rawValue);\n }\n\n protected hasChanged(initialValue: T, sanitisedValue: T): boolean {\n return initialValue !== sanitisedValue;\n }\n\n injectRouteParam(dest: {}) {\n dest[this.parameterDef.name] = this.parameterDef.type.format(this.sanitisedValue);\n }\n\n }\n\n export class Array<T> extends Sanitiser<T, T[]> {\n\n readFrom(snapshot: ActivatedRouteSnapshot): T[] {\n const rawValues = snapshot.queryParamMap.getAll(this.parameterDef.name);\n return rawValues.map(value => this.parameterDef.type.parse(value));\n }\n\n protected hasChanged(initialValue: T[], sanitisedValue: T[]): boolean {\n return initialValue !== sanitisedValue;\n }\n\n\n injectRouteParam(dest: {}) {\n dest[this.parameterDef.name] = this.sanitisedValue.map(v => this.parameterDef.type.format(v));\n }\n\n\n }\n\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanDeactivate,\n Router,\n RouterStateSnapshot,\n UrlTree\n} from '@angular/router';\nimport { Trace } from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\nimport { RouteParameterBindings } from '../route/route-parameter-bindings';\nimport { RouteParameterSanitiser } from '../route/route-parameter-sanitiser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouteGuard implements CanActivate {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n @Trace()\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const routeParameters = Klass.get(route.component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);\n const sanitiser = new RouteParameterSanitiser(routeParameters, route, this.injector);\n return sanitiser.sanitise().then(proceed => {\n if (!proceed) {\n sanitiser.redirect(this.router);\n }\n return proceed;\n });\n }\n\n}\n","export type JsonPrimitive = boolean | number | string;\nexport type AnyJson = JsonPrimitive | null | JsonArray | JsonMap;\nexport interface JsonArray extends Array<AnyJson> {}\nexport interface JsonMap { [key: string]: AnyJson; }\n\n","import { assert, Constructable, UseDelegate } from '@coolon/pectin';\nimport { Klass, Opts } from '@coolon/typescript-utilities';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\nimport { ParameterType } from './parameter-type';\nimport { RouteParameterBindings } from './route-parameter-bindings';\n\nexport interface ParameterOptions<T> {\n as?: string;\n sanitiser?: Constructable<ParameterSanitiser<T>>;\n}\n\nexport interface ListParameterOptions<T> {\n as?: string;\n listSanitiser?: Constructable<ParameterSanitiser<T[]>>;\n}\n\nexport function RouteId<T extends string | number>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, true);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\n/**\n * @deprecated use RouteParameter instead.\n * @param type\n * @param options\n */\nexport function QueryParameter<T>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, false);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nexport function RouteParameter<T>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, false);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\n/**\n * @deprecated use RouteParameterList instead\n * @param elementType\n * @param options\n */\nexport function QueryParameterList<E>(elementType: ParameterType<E>, options?: ListParameterOptions<E>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createArrayDefinition(propertyKey, elementType, options);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nexport function RouteParameterList<E>(elementType: ParameterType<E>, options?: ListParameterOptions<E>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createArrayDefinition(propertyKey, elementType, options);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nfunction createDefinition<T>(propertyName: symbol | string, type: ParameterType<T>, options: ParameterOptions<T>, routeId: boolean) {\n const opts = Opts.get(options);\n const propertyNameAsString = assert.notNil(propertyName).toString();\n const def: ParameterDefinition<T> = {\n name: opts.getOptional('as', propertyNameAsString),\n propertyName: propertyNameAsString,\n type: assert.notNil(type),\n sanitiser: opts.getOptional('sanitiser', null),\n isRouteId: routeId,\n isArray: false\n };\n return def;\n}\n\nfunction createArrayDefinition<T>(propertyName: symbol | string, type: ParameterType<T>, options: ListParameterOptions<T>) {\n const opts = Opts.get(options);\n const propertyNameAsString = assert.notNil(propertyName).toString();\n\n const def: ParameterDefinition<T, T[]> = {\n name: opts.getOptional('as', propertyNameAsString),\n propertyName: propertyNameAsString,\n type: assert.notNil(type),\n sanitiser: opts.getOptional('listSanitiser', null),\n isRouteId: false,\n isArray: true\n };\n return def;\n}\n","import { Constructable } from '@coolon/pectin';\nimport { ParameterSanitiser } from './parameter-sanitiser';\nimport { ParameterType } from './parameter-type';\n\nexport interface ParameterDefinition<E,S=E> {\n readonly name: string;\n readonly propertyName: string;\n readonly type: ParameterType<E>;\n readonly sanitiser: Constructable<ParameterSanitiser<S>>;\n readonly isRouteId: boolean;\n readonly isArray: boolean;\n}\n","export interface ParameterSanitiser<T> {\n sanitise(value: T): T | Promise<T>;\n}\n","export interface ParameterType<T> {\n format(value: T): string;\n\n parse(value: string): T;\n}\n\nexport namespace ParameterType {\n\n class StringType implements ParameterType<string> {\n format(value: string): string {\n return value;\n }\n\n parse(value: string): string {\n return value;\n }\n }\n\n class NumberType implements ParameterType<number> {\n format(value: number): string {\n return `${value}`;\n }\n\n parse(value: string): number {\n return +value;\n }\n }\n\n export const STRING = new StringType();\n export const NUMBER = new NumberType();\n}\n"],"names":["tslib_1.__decorate","assert","MatTabsModule","_.isNil","Memoize"],"mappings":"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"}
|