@coolon/angular-ui-powerups 0.0.24 → 0.0.25
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 +5 -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.__extends","tslib_1.__decorate","assert","MatTabsModule","_.isNil","tslib_1.__values","Memoize"],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
-
import { ErrorStateMatcher } from '@angular/material';
|
|
3
|
-
import { Command, DelegatingFormValueModel, ListModel, ValueModel } from '@coolon/pectin';
|
|
4
|
-
import { DisposableComponent } from '../disposable-component';
|
|
5
|
-
export declare abstract class AbstractInputComponent<T> extends DisposableComponent implements OnInit {
|
|
6
|
-
readonly valueModel: DelegatingFormValueModel<T>;
|
|
7
|
-
userValueModel: ValueModel<T>;
|
|
8
|
-
label: string;
|
|
9
|
-
floatLabel: 'auto' | 'always' | 'never';
|
|
10
|
-
hint: string;
|
|
11
|
-
placeholder: string;
|
|
12
|
-
focusCommand: Command<any>;
|
|
13
|
-
blurCommand: Command<any>;
|
|
14
|
-
enterCommand: Command<any>;
|
|
15
|
-
escapeCommand: Command<any>;
|
|
16
|
-
clickCommand: Command<any>;
|
|
17
|
-
focus: EventEmitter<{}>;
|
|
18
|
-
blur: EventEmitter<{}>;
|
|
19
|
-
enterKey: EventEmitter<{}>;
|
|
20
|
-
escapeKey: EventEmitter<{}>;
|
|
21
|
-
readonly errorStateMatcher: ErrorStateMatcher;
|
|
22
|
-
notifyClick(): void;
|
|
23
|
-
notifyFocusIn(): void;
|
|
24
|
-
notifyFocusOut(): void;
|
|
25
|
-
notifyEnterKey(): void;
|
|
26
|
-
notifyEscapeKey(): void;
|
|
27
|
-
protected safelyInvoke(command: Command<any>): void;
|
|
28
|
-
constructor();
|
|
29
|
-
ngOnInit(): void;
|
|
30
|
-
isEnabled(): boolean;
|
|
31
|
-
readonly enabled: ValueModel<boolean>;
|
|
32
|
-
hasErrors(): boolean;
|
|
33
|
-
readonly errorList: ListModel<string>;
|
|
34
|
-
readonly firstError: string;
|
|
35
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { ListModel } from '@coolon/pectin';
|
|
3
|
-
import { AbstractInputComponent } from '../abstract-input.component';
|
|
4
|
-
export declare class SelectInputComponent<T = any> extends AbstractInputComponent<T> implements OnInit {
|
|
5
|
-
optionsModel: ListModel<T>;
|
|
6
|
-
options: T[];
|
|
7
|
-
optionLabel: keyof T;
|
|
8
|
-
optionLabelFormat: (option: T) => any;
|
|
9
|
-
constructor();
|
|
10
|
-
ngOnInit(): void;
|
|
11
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, NgZone } from '@angular/core';
|
|
2
|
-
import { ValueModel } from '@coolon/pectin';
|
|
3
|
-
import { DisposableComponent } from './disposable-component';
|
|
4
|
-
import { Bounds } from './types/bounds.class';
|
|
5
|
-
import { Point } from './types/point.class';
|
|
6
|
-
export declare class ResizeAwareComponent extends DisposableComponent implements AfterViewInit {
|
|
7
|
-
protected readonly elementRef: ElementRef;
|
|
8
|
-
protected readonly ngZone: NgZone;
|
|
9
|
-
private _boundsModel;
|
|
10
|
-
constructor(elementRef: ElementRef, ngZone: NgZone);
|
|
11
|
-
ngAfterViewInit(): void;
|
|
12
|
-
readonly boundsModel: ValueModel<Bounds>;
|
|
13
|
-
readonly nativeElement: any;
|
|
14
|
-
relativePositionOf(point: {
|
|
15
|
-
x: number;
|
|
16
|
-
y: number;
|
|
17
|
-
} | MouseEvent): Point;
|
|
18
|
-
readonly bounds: Bounds;
|
|
19
|
-
private updateBounds;
|
|
20
|
-
}
|
|
21
|
-
export declare namespace ResizeAwareComponent {
|
|
22
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Dimension } from './dimension.class';
|
|
2
|
-
import { Point } from './point.class';
|
|
3
|
-
export declare class Bounds extends Dimension {
|
|
4
|
-
readonly top: number;
|
|
5
|
-
readonly left: number;
|
|
6
|
-
readonly width: number;
|
|
7
|
-
readonly height: number;
|
|
8
|
-
constructor(top: number, left: number, width: number, height: number);
|
|
9
|
-
relativePositionOf(point: {
|
|
10
|
-
x: number;
|
|
11
|
-
y: number;
|
|
12
|
-
} | MouseEvent): Point;
|
|
13
|
-
}
|
|
14
|
-
export declare namespace Bounds {
|
|
15
|
-
function ofElement(element: HTMLElement): Bounds;
|
|
16
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { Command, GarbageCollector, UnaryCommand } from '@coolon/pectin';
|
|
3
|
-
export declare class CommandDirective<P = any> extends GarbageCollector implements OnInit, OnDestroy, AfterViewInit {
|
|
4
|
-
private elementRef;
|
|
5
|
-
pectinCommand: Command<any> | UnaryCommand<P>;
|
|
6
|
-
private _commandParameter;
|
|
7
|
-
private _commandParameterProvided;
|
|
8
|
-
commandParameter: P;
|
|
9
|
-
constructor(elementRef: ElementRef);
|
|
10
|
-
ngOnInit(): void;
|
|
11
|
-
ngAfterViewInit(): void;
|
|
12
|
-
ngOnDestroy(): void;
|
|
13
|
-
notifyClick($event: Event): void;
|
|
14
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, NgZone, OnInit } from '@angular/core';
|
|
2
|
-
import { HasFocusTracking } from '@coolon/pectin';
|
|
3
|
-
import { DisposableComponent } from '../components/disposable-component';
|
|
4
|
-
export declare class FocusBindingDirective extends DisposableComponent implements OnInit, AfterViewInit {
|
|
5
|
-
private readonly el;
|
|
6
|
-
private readonly ngZone;
|
|
7
|
-
private readonly document;
|
|
8
|
-
pectinFocusBinding: HasFocusTracking;
|
|
9
|
-
focusBindingTarget: HTMLElement;
|
|
10
|
-
onFocusIn(): void;
|
|
11
|
-
onFocusOut(): void;
|
|
12
|
-
constructor(el: ElementRef, ngZone: NgZone, document: any);
|
|
13
|
-
ngOnInit(): void;
|
|
14
|
-
ngAfterViewInit(): void;
|
|
15
|
-
private hasBinding;
|
|
16
|
-
alreadyHasFocus(): boolean;
|
|
17
|
-
isFocused(element: Element): boolean;
|
|
18
|
-
tryAndFocus(retries?: number): void;
|
|
19
|
-
readonly focusTarget: HTMLElement;
|
|
20
|
-
modelShouldStillHaveFocus(): boolean;
|
|
21
|
-
canFocus(): boolean;
|
|
22
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ValueModel } from '@coolon/pectin';
|
|
2
|
-
import { DisposableComponent } from '../components/disposable-component';
|
|
3
|
-
import { Activity } from './activity';
|
|
4
|
-
export declare class AbstractActivity<D, R, E = any> extends DisposableComponent implements Activity<D, R, E> {
|
|
5
|
-
private readonly _doneListeners;
|
|
6
|
-
private readonly _cancelListeners;
|
|
7
|
-
private readonly _finishListeners;
|
|
8
|
-
private readonly _busyModel;
|
|
9
|
-
onDone(callback: Activity.CallBack<R>): void;
|
|
10
|
-
onCancel(callback: Activity.CallBack<E>): void;
|
|
11
|
-
done(result?: R): Promise<any>;
|
|
12
|
-
cancel(error?: E): Promise<any>;
|
|
13
|
-
private finalizeAndDispose;
|
|
14
|
-
readonly busy: ValueModel<boolean>;
|
|
15
|
-
busyWhile(busyModel: ValueModel<boolean>): void;
|
|
16
|
-
isBusy(): boolean;
|
|
17
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import { ValueModel } from '@coolon/pectin';
|
|
3
|
-
export declare const ACTIVITY_DATA: InjectionToken<any>;
|
|
4
|
-
export interface Activity<D, R, E = any> {
|
|
5
|
-
readonly busy: ValueModel<boolean>;
|
|
6
|
-
onDone(callback: Activity.CallBack<R>): any;
|
|
7
|
-
onCancel(callback: Activity.CallBack<E>): any;
|
|
8
|
-
}
|
|
9
|
-
export declare namespace Activity {
|
|
10
|
-
type CallBack<T> = (value: T) => void | Promise<any>;
|
|
11
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, OnInit } from '@angular/core';
|
|
2
|
-
import { MatTabGroup } from '@angular/material';
|
|
3
|
-
import { Constructable, MutableListModel } from '@coolon/pectin';
|
|
4
|
-
import { DisposableComponent } from '../../../components/disposable-component';
|
|
5
|
-
import { Activity } from '../../activity';
|
|
6
|
-
import { Alert } from '../../alert';
|
|
7
|
-
import { Confirm } from '../../confirm';
|
|
8
|
-
import { InteractionContext } from '../../interaction-context';
|
|
9
|
-
import { ActivityOutletContext } from '../activity-outlet/activity-outlet-context';
|
|
10
|
-
export declare class ActivityContainerComponent extends DisposableComponent implements OnInit, AfterViewInit, InteractionContext {
|
|
11
|
-
parentInteractionContext: InteractionContext;
|
|
12
|
-
initialActivity: ActivityOutletContext<any, any, any>;
|
|
13
|
-
tabs: MatTabGroup;
|
|
14
|
-
readonly activityTabs: MutableListModel<ActivityOutletContext<any, any, any>>;
|
|
15
|
-
private obsoleteTabs;
|
|
16
|
-
constructor();
|
|
17
|
-
ngOnInit(): void;
|
|
18
|
-
ngAfterViewInit(): void;
|
|
19
|
-
initialise<D, R, E>(options: ActivityContainerComponent.ActivityContext<D, R, E>): void;
|
|
20
|
-
startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;
|
|
21
|
-
alert(alert: Alert): Promise<void>;
|
|
22
|
-
confirm(confirm: Confirm): Promise<boolean>;
|
|
23
|
-
private cleanUpTabs;
|
|
24
|
-
}
|
|
25
|
-
export declare namespace ActivityContainerComponent {
|
|
26
|
-
interface ActivityContext<D, R, E> {
|
|
27
|
-
activityClass: Constructable<Activity<D, R, E>>;
|
|
28
|
-
activityData: D;
|
|
29
|
-
onDone: (result: R) => void;
|
|
30
|
-
onCancel: (error: E) => void;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ComponentFactoryResolver, Injector, OnInit, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { Constructable } from '@coolon/pectin';
|
|
3
|
-
import { Activity } from '../../activity';
|
|
4
|
-
import { Alert } from '../../alert';
|
|
5
|
-
import { Confirm } from '../../confirm';
|
|
6
|
-
import { InteractionContext } from '../../interaction-context';
|
|
7
|
-
import { ActivityOutletContext } from './activity-outlet-context';
|
|
8
|
-
export declare class ActivityOutletComponent<D, R, E> implements OnInit, InteractionContext {
|
|
9
|
-
private componentFactoryResolver;
|
|
10
|
-
private viewContainerRef;
|
|
11
|
-
private injector;
|
|
12
|
-
interactionContext: InteractionContext;
|
|
13
|
-
activityContext: ActivityOutletContext<D, R, E>;
|
|
14
|
-
private activityComponent;
|
|
15
|
-
constructor(componentFactoryResolver: ComponentFactoryResolver, viewContainerRef: ViewContainerRef, injector: Injector);
|
|
16
|
-
ngOnInit(): void;
|
|
17
|
-
loadActivity(activityContext: ActivityOutletContext<D, R, E>): void;
|
|
18
|
-
alert(alert: Alert): Promise<void>;
|
|
19
|
-
confirm(confirm: Confirm): Promise<boolean>;
|
|
20
|
-
startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1>;
|
|
21
|
-
}
|
|
22
|
-
export declare namespace ActivityOutletComponent {
|
|
23
|
-
class OutletInteractionContext<D, R, E> implements InteractionContext {
|
|
24
|
-
private readonly context;
|
|
25
|
-
constructor(context: ActivityOutletContext<D, R, E>);
|
|
26
|
-
alert(alert: Alert): Promise<void>;
|
|
27
|
-
confirm(confirm: Confirm): Promise<boolean>;
|
|
28
|
-
startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1>;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { AbstractActivity } from '../../abstract-activity';
|
|
3
|
-
import { Alert } from '../../alert';
|
|
4
|
-
export declare class AlertDialogComponent extends AbstractActivity<Alert, void> implements OnInit {
|
|
5
|
-
readonly alert: Alert;
|
|
6
|
-
constructor(alert: Alert);
|
|
7
|
-
ngOnInit(): void;
|
|
8
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { AbstractActivity } from '../../abstract-activity';
|
|
3
|
-
import { Confirm } from '../../confirm';
|
|
4
|
-
export declare class ConfirmationDialogComponent extends AbstractActivity<Confirm, boolean> implements OnInit {
|
|
5
|
-
readonly confirm: Confirm;
|
|
6
|
-
constructor(confirm: Confirm);
|
|
7
|
-
ngOnInit(): void;
|
|
8
|
-
isDestructive(): boolean;
|
|
9
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import { Constructable } from '@coolon/pectin';
|
|
3
|
-
import { Activity } from './activity';
|
|
4
|
-
import { Alert } from './alert';
|
|
5
|
-
import { Confirm } from './confirm';
|
|
6
|
-
export declare const INTERACTION_CONTEXT: InjectionToken<any>;
|
|
7
|
-
export declare abstract class InteractionContext {
|
|
8
|
-
abstract startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;
|
|
9
|
-
abstract confirm(confirm: Confirm): Promise<boolean>;
|
|
10
|
-
abstract alert(alert: Alert): Promise<void>;
|
|
11
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { MatDialog } from '@angular/material';
|
|
2
|
-
import { Constructable } from '@coolon/pectin';
|
|
3
|
-
import { Activity } from '../activity';
|
|
4
|
-
import { Alert } from '../alert';
|
|
5
|
-
import { Confirm } from '../confirm';
|
|
6
|
-
import { InteractionContext } from '../interaction-context';
|
|
7
|
-
export declare class DialogInteractionService extends InteractionContext {
|
|
8
|
-
private readonly dialogService;
|
|
9
|
-
constructor(dialogService: MatDialog);
|
|
10
|
-
startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;
|
|
11
|
-
private _startActivity;
|
|
12
|
-
alert(alert: Alert): Promise<void>;
|
|
13
|
-
confirm(confirm: Confirm): Promise<boolean>;
|
|
14
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
2
|
-
import { MutableValueModel } from '@coolon/pectin';
|
|
3
|
-
import { DisposableComponent } from '../components/disposable-component';
|
|
4
|
-
import { PlaceComponent } from './place-component';
|
|
5
|
-
import { Place } from './place.decorator';
|
|
6
|
-
export declare class AbstractPlaceComponent extends DisposableComponent implements PlaceComponent {
|
|
7
|
-
protected activatedRoute: ActivatedRoute;
|
|
8
|
-
readonly titleModel: MutableValueModel<string>;
|
|
9
|
-
private routeBindingMediator;
|
|
10
|
-
constructor(activatedRoute: ActivatedRoute, router: Router);
|
|
11
|
-
readonly placeConfig: Place.Descriptor;
|
|
12
|
-
canDeactivate(): boolean | Promise<boolean>;
|
|
13
|
-
}
|