@coolon/angular-ui-powerups 0.0.25 → 0.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/coolon-angular-ui-powerups.umd.js +3926 -0
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -0
- package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -0
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -0
- package/coolon-angular-ui-powerups.d.ts +30 -0
- package/coolon-angular-ui-powerups.metadata.json +1 -0
- package/esm2015/coolon-angular-ui-powerups.js +33 -0
- package/esm2015/index.js +6 -0
- package/esm2015/lib/angular-ui-powerups.module.js +54 -0
- package/esm2015/lib/animations/index.js +9 -0
- package/esm2015/lib/animations/slideDownAndUpAnimation.js +30 -0
- package/esm2015/lib/components/disposable-component.js +14 -0
- package/esm2015/lib/components/forms/abstract-input.component.js +183 -0
- package/esm2015/lib/components/forms/number-input/number-input.component.js +26 -0
- package/esm2015/lib/components/forms/password-input/password-input.component.js +26 -0
- package/esm2015/lib/components/forms/select-input/select-input.component.js +60 -0
- package/esm2015/lib/components/forms/string-input/string-input.component.js +26 -0
- package/esm2015/lib/components/index.js +18 -0
- package/esm2015/lib/components/resize-aware.component.js +96 -0
- package/esm2015/lib/components/types/bounds.class.js +56 -0
- package/esm2015/lib/components/types/dimension.class.js +21 -0
- package/esm2015/lib/components/types/point.class.js +36 -0
- package/esm2015/lib/directives/command.directive.js +135 -0
- package/esm2015/lib/directives/focus-binding.directive.js +179 -0
- package/esm2015/lib/directives/index.js +10 -0
- package/esm2015/lib/interaction/abstract-activity.js +129 -0
- package/esm2015/lib/interaction/activity.js +27 -0
- package/esm2015/lib/interaction/alert.js +23 -0
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +144 -0
- package/esm2015/lib/interaction/components/activity-outlet/activity-outlet-context.js +22 -0
- package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js +169 -0
- package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +37 -0
- package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +46 -0
- package/esm2015/lib/interaction/confirm.js +17 -0
- package/esm2015/lib/interaction/index.js +21 -0
- package/esm2015/lib/interaction/interaction-context.js +35 -0
- package/esm2015/lib/interaction/interaction.module.js +41 -0
- package/esm2015/lib/interaction/result.js +24 -0
- package/esm2015/lib/interaction/services/dialog-interaction.service.js +114 -0
- package/esm2015/lib/place/abstract-place-component.js +59 -0
- package/esm2015/lib/place/components/busy-overlay/busy-overlay.component.js +44 -0
- package/esm2015/lib/place/components/empty-state/empty-state.component.js +28 -0
- package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +67 -0
- package/esm2015/lib/place/components/place-outlet/route-animations.js +35 -0
- package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +50 -0
- package/esm2015/lib/place/guards/leave-place.guard.js +52 -0
- package/esm2015/lib/place/guards/place-route.guard.js +74 -0
- package/esm2015/lib/place/index.js +27 -0
- package/esm2015/lib/place/place-component.js +17 -0
- package/esm2015/lib/place/place.decorator.js +72 -0
- package/esm2015/lib/place/place.module.js +49 -0
- package/esm2015/lib/place/place.service.js +61 -0
- package/esm2015/lib/place/route/json-types.js +13 -0
- package/esm2015/lib/place/route/parameter-decorators.js +178 -0
- package/esm2015/lib/place/route/parameter-definition.class.js +24 -0
- package/esm2015/lib/place/route/parameter-sanitiser.js +17 -0
- package/esm2015/lib/place/route/parameter-type.js +43 -0
- package/esm2015/lib/place/route/route-parameter-bindings.js +294 -0
- package/esm2015/lib/place/route/route-parameter-sanitiser.js +280 -0
- package/esm2015/public_api.js +11 -0
- package/esm5/coolon-angular-ui-powerups.js +33 -0
- package/esm5/index.js +6 -0
- package/esm5/lib/angular-ui-powerups.module.js +58 -0
- package/esm5/lib/animations/index.js +9 -0
- package/esm5/lib/animations/slideDownAndUpAnimation.js +30 -0
- package/esm5/lib/components/disposable-component.js +24 -0
- package/esm5/lib/components/forms/abstract-input.component.js +232 -0
- package/esm5/lib/components/forms/number-input/number-input.component.js +33 -0
- package/esm5/lib/components/forms/password-input/password-input.component.js +33 -0
- package/esm5/lib/components/forms/select-input/select-input.component.js +67 -0
- package/esm5/lib/components/forms/string-input/string-input.component.js +33 -0
- package/esm5/lib/components/index.js +18 -0
- package/esm5/lib/components/resize-aware.component.js +124 -0
- package/esm5/lib/components/types/bounds.class.js +59 -0
- package/esm5/lib/components/types/dimension.class.js +19 -0
- package/esm5/lib/components/types/point.class.js +43 -0
- package/esm5/lib/directives/command.directive.js +155 -0
- package/esm5/lib/directives/focus-binding.directive.js +231 -0
- package/esm5/lib/directives/index.js +10 -0
- package/esm5/lib/interaction/abstract-activity.js +173 -0
- package/esm5/lib/interaction/activity.js +27 -0
- package/esm5/lib/interaction/alert.js +23 -0
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +181 -0
- package/esm5/lib/interaction/components/activity-outlet/activity-outlet-context.js +22 -0
- package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js +206 -0
- package/esm5/lib/interaction/components/alert-dialog/alert-dialog.component.js +42 -0
- package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +54 -0
- package/esm5/lib/interaction/confirm.js +17 -0
- package/esm5/lib/interaction/index.js +21 -0
- package/esm5/lib/interaction/interaction-context.js +45 -0
- package/esm5/lib/interaction/interaction.module.js +45 -0
- package/esm5/lib/interaction/result.js +24 -0
- package/esm5/lib/interaction/services/dialog-interaction.service.js +140 -0
- package/esm5/lib/place/abstract-place-component.js +66 -0
- package/esm5/lib/place/components/busy-overlay/busy-overlay.component.js +49 -0
- package/esm5/lib/place/components/empty-state/empty-state.component.js +29 -0
- package/esm5/lib/place/components/place-outlet/place-outlet.component.js +81 -0
- package/esm5/lib/place/components/place-outlet/route-animations.js +35 -0
- package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +57 -0
- package/esm5/lib/place/guards/leave-place.guard.js +57 -0
- package/esm5/lib/place/guards/place-route.guard.js +78 -0
- package/esm5/lib/place/index.js +27 -0
- package/esm5/lib/place/place-component.js +17 -0
- package/esm5/lib/place/place.decorator.js +69 -0
- package/esm5/lib/place/place.module.js +53 -0
- package/esm5/lib/place/place.service.js +75 -0
- package/esm5/lib/place/route/json-types.js +13 -0
- package/esm5/lib/place/route/parameter-decorators.js +178 -0
- package/esm5/lib/place/route/parameter-definition.class.js +24 -0
- package/esm5/lib/place/route/parameter-sanitiser.js +17 -0
- package/esm5/lib/place/route/parameter-type.js +65 -0
- package/esm5/lib/place/route/route-parameter-bindings.js +339 -0
- package/esm5/lib/place/route/route-parameter-sanitiser.js +395 -0
- package/esm5/public_api.js +11 -0
- package/fesm2015/coolon-angular-ui-powerups.js +3145 -0
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -0
- package/fesm5/coolon-angular-ui-powerups.js +3699 -0
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -0
- package/lib/angular-ui-powerups.module.d.ts +2 -0
- package/{src/lib/animations/index.ts → lib/animations/index.d.ts} +0 -1
- package/lib/animations/slideDownAndUpAnimation.d.ts +5 -0
- package/lib/components/disposable-component.d.ts +5 -0
- package/lib/components/forms/abstract-input.component.d.ts +35 -0
- package/lib/components/forms/number-input/number-input.component.d.ts +6 -0
- package/lib/components/forms/password-input/password-input.component.d.ts +6 -0
- package/lib/components/forms/select-input/select-input.component.d.ts +11 -0
- package/lib/components/forms/string-input/string-input.component.d.ts +6 -0
- package/{src/lib/components/index.ts → lib/components/index.d.ts} +0 -1
- package/lib/components/resize-aware.component.d.ts +22 -0
- package/lib/components/types/bounds.class.d.ts +16 -0
- package/lib/components/types/dimension.class.d.ts +5 -0
- package/lib/components/types/point.class.d.ts +10 -0
- package/lib/directives/command.directive.d.ts +14 -0
- package/lib/directives/focus-binding.directive.d.ts +22 -0
- package/{src/lib/directives/index.ts → lib/directives/index.d.ts} +0 -1
- package/lib/interaction/abstract-activity.d.ts +17 -0
- package/lib/interaction/activity.d.ts +11 -0
- package/lib/interaction/alert.d.ts +5 -0
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +32 -0
- package/{src/lib/interaction/components/activity-outlet/activity-outlet-context.ts → lib/interaction/components/activity-outlet/activity-outlet-context.d.ts} +5 -7
- package/lib/interaction/components/activity-outlet/activity-outlet.component.d.ts +30 -0
- package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +8 -0
- package/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.d.ts +9 -0
- package/{src/lib/interaction/confirm.ts → lib/interaction/confirm.d.ts} +2 -3
- package/{src/lib/interaction/index.ts → lib/interaction/index.d.ts} +0 -1
- package/lib/interaction/interaction-context.d.ts +11 -0
- package/lib/interaction/interaction.module.d.ts +2 -0
- package/lib/interaction/result.d.ts +8 -0
- package/lib/interaction/services/dialog-interaction.service.d.ts +14 -0
- package/lib/place/abstract-place-component.d.ts +13 -0
- package/lib/place/components/busy-overlay/busy-overlay.component.d.ts +8 -0
- package/lib/place/components/empty-state/empty-state.component.d.ts +5 -0
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +13 -0
- package/lib/place/components/place-outlet/route-animations.d.ts +1 -0
- package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +11 -0
- package/lib/place/guards/leave-place.guard.d.ts +10 -0
- package/lib/place/guards/place-route.guard.d.ts +9 -0
- package/{src/lib/place/index.ts → lib/place/index.d.ts} +0 -1
- package/lib/place/place-component.d.ts +5 -0
- package/lib/place/place.decorator.d.ts +20 -0
- package/lib/place/place.module.d.ts +2 -0
- package/lib/place/place.service.d.ts +8 -0
- package/lib/place/route/json-types.d.ts +7 -0
- package/lib/place/route/parameter-decorators.d.ts +26 -0
- package/lib/place/route/parameter-definition.class.d.ts +11 -0
- package/{src/lib/place/route/parameter-sanitiser.ts → lib/place/route/parameter-sanitiser.d.ts} +1 -1
- package/lib/place/route/parameter-type.d.ts +16 -0
- package/lib/place/route/route-parameter-bindings.d.ts +18 -0
- package/lib/place/route/route-parameter-sanitiser.d.ts +42 -0
- package/package.json +14 -12
- package/schematics/ng-add/index.d.ts +2 -0
- package/schematics/ng-add/index.js +12 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/place-routes/index.d.ts +3 -0
- package/schematics/place-routes/index.js +114 -0
- package/schematics/place-routes/index.js.map +1 -0
- package/schematics/place-routes/place-def.d.ts +34 -0
- package/schematics/place-routes/place-def.js +84 -0
- package/schematics/place-routes/place-def.js.map +1 -0
- package/schematics/place-routes/scanner.d.ts +26 -0
- package/schematics/place-routes/scanner.js +125 -0
- package/schematics/place-routes/scanner.js.map +1 -0
- package/schematics/place-routes/schema.d.ts +7 -0
- package/schematics/place-routes/schema.js +3 -0
- package/schematics/place-routes/schema.js.map +1 -0
- package/CHANGELOG.md +0 -5
- package/jest.config.js +0 -9
- package/ng-package.json +0 -13
- package/schematics/ng-add/index.ts +0 -10
- package/schematics/place-routes/index.ts +0 -152
- package/schematics/place-routes/place-def.ts +0 -93
- package/schematics/place-routes/scanner.ts +0 -145
- package/schematics/place-routes/schema.ts +0 -7
- package/src/lib/angular-ui-powerups.module.spec.ts +0 -14
- package/src/lib/angular-ui-powerups.module.ts +0 -49
- package/src/lib/animations/slideDownAndUpAnimation.ts +0 -39
- package/src/lib/components/disposable-component.ts +0 -9
- package/src/lib/components/forms/abstract-input.component.ts +0 -108
- package/src/lib/components/forms/number-input/number-input.component.html +0 -15
- package/src/lib/components/forms/number-input/number-input.component.scss +0 -3
- package/src/lib/components/forms/number-input/number-input.component.spec.ts +0 -25
- package/src/lib/components/forms/number-input/number-input.component.ts +0 -19
- package/src/lib/components/forms/password-input/password-input.component.html +0 -16
- package/src/lib/components/forms/password-input/password-input.component.scss +0 -3
- package/src/lib/components/forms/password-input/password-input.component.spec.ts +0 -25
- package/src/lib/components/forms/password-input/password-input.component.ts +0 -18
- package/src/lib/components/forms/scss/mixins.scss +0 -16
- package/src/lib/components/forms/select-input/select-input.component.html +0 -16
- package/src/lib/components/forms/select-input/select-input.component.scss +0 -7
- package/src/lib/components/forms/select-input/select-input.component.spec.ts +0 -25
- package/src/lib/components/forms/select-input/select-input.component.ts +0 -31
- package/src/lib/components/forms/string-input/string-input.component.html +0 -15
- package/src/lib/components/forms/string-input/string-input.component.scss +0 -3
- package/src/lib/components/forms/string-input/string-input.component.spec.ts +0 -25
- package/src/lib/components/forms/string-input/string-input.component.ts +0 -18
- package/src/lib/components/resize-aware.component.ts +0 -52
- package/src/lib/components/types/bounds.class.ts +0 -25
- package/src/lib/components/types/dimension.class.ts +0 -3
- package/src/lib/components/types/point.class.ts +0 -13
- package/src/lib/directives/command.directive.spec.ts +0 -73
- package/src/lib/directives/command.directive.ts +0 -81
- package/src/lib/directives/focus-binding.directive.spec.ts +0 -8
- package/src/lib/directives/focus-binding.directive.ts +0 -108
- package/src/lib/interaction/abstract-activity.ts +0 -57
- package/src/lib/interaction/activity.ts +0 -17
- package/src/lib/interaction/alert.ts +0 -6
- package/src/lib/interaction/components/activity-container/activity-container.component.html +0 -8
- package/src/lib/interaction/components/activity-container/activity-container.component.scss +0 -3
- package/src/lib/interaction/components/activity-container/activity-container.component.spec.ts +0 -25
- package/src/lib/interaction/components/activity-container/activity-container.component.ts +0 -93
- package/src/lib/interaction/components/activity-outlet/activity-outlet.component.scss +0 -3
- package/src/lib/interaction/components/activity-outlet/activity-outlet.component.spec.ts +0 -25
- package/src/lib/interaction/components/activity-outlet/activity-outlet.component.ts +0 -96
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.html +0 -7
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.scss +0 -7
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.spec.ts +0 -25
- package/src/lib/interaction/components/alert-dialog/alert-dialog.component.ts +0 -20
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.html +0 -9
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.scss +0 -8
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.spec.ts +0 -25
- package/src/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts +0 -26
- package/src/lib/interaction/interaction-context.ts +0 -16
- package/src/lib/interaction/interaction.module.ts +0 -35
- package/src/lib/interaction/result.ts +0 -16
- package/src/lib/interaction/services/dialog-interaction.service.scss +0 -11
- package/src/lib/interaction/services/dialog-interaction.service.spec.ts +0 -12
- package/src/lib/interaction/services/dialog-interaction.service.ts +0 -63
- package/src/lib/place/abstract-place-component.ts +0 -33
- package/src/lib/place/components/busy-overlay/busy-overlay.component.html +0 -4
- package/src/lib/place/components/busy-overlay/busy-overlay.component.scss +0 -27
- package/src/lib/place/components/busy-overlay/busy-overlay.component.spec.ts +0 -25
- package/src/lib/place/components/busy-overlay/busy-overlay.component.ts +0 -23
- package/src/lib/place/components/empty-state/empty-state.component.scss +0 -15
- package/src/lib/place/components/empty-state/empty-state.component.spec.ts +0 -25
- package/src/lib/place/components/empty-state/empty-state.component.ts +0 -19
- package/src/lib/place/components/place-outlet/place-outlet.component.html +0 -7
- package/src/lib/place/components/place-outlet/place-outlet.component.scss +0 -12
- package/src/lib/place/components/place-outlet/place-outlet.component.spec.ts +0 -25
- package/src/lib/place/components/place-outlet/place-outlet.component.ts +0 -37
- package/src/lib/place/components/place-outlet/route-animations.ts +0 -30
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.html +0 -7
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.scss +0 -100
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.spec.ts +0 -25
- package/src/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.ts +0 -30
- package/src/lib/place/guards/leave-place.guard.spec.ts +0 -15
- package/src/lib/place/guards/leave-place.guard.ts +0 -18
- package/src/lib/place/guards/place-route.guard.ts +0 -37
- package/src/lib/place/place-component.ts +0 -6
- package/src/lib/place/place.decorator.ts +0 -40
- package/src/lib/place/place.module.ts +0 -44
- package/src/lib/place/place.service.spec.ts +0 -12
- package/src/lib/place/place.service.ts +0 -29
- package/src/lib/place/route/json-types.ts +0 -5
- package/src/lib/place/route/parameter-decorators.ts +0 -99
- package/src/lib/place/route/parameter-definition.class.ts +0 -12
- package/src/lib/place/route/parameter-type.ts +0 -31
- package/src/lib/place/route/route-parameter-bindings.ts +0 -140
- package/src/lib/place/route/route-parameter-sanitiser.ts +0 -135
- package/src/test-setup.ts +0 -1
- package/tsconfig.json +0 -7
- package/tsconfig.lib.json +0 -20
- package/tsconfig.schematics.json +0 -35
- package/tsconfig.spec.json +0 -10
- package/tslint.json +0 -7
- /package/{src/index.ts → index.d.ts} +0 -0
- /package/{src/public_api.ts → public_api.d.ts} +0 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { ValueHolder } from '@coolon/pectin';
|
|
7
|
+
import ResizeObserver from 'resize-observer-polyfill';
|
|
8
|
+
import { DisposableComponent } from './disposable-component';
|
|
9
|
+
import { Bounds } from './types/bounds.class';
|
|
10
|
+
var ResizeAwareComponent = /** @class */ (function (_super) {
|
|
11
|
+
tslib_1.__extends(ResizeAwareComponent, _super);
|
|
12
|
+
function ResizeAwareComponent(elementRef, ngZone) {
|
|
13
|
+
var _this = _super.call(this) || this;
|
|
14
|
+
_this.elementRef = elementRef;
|
|
15
|
+
_this.ngZone = ngZone;
|
|
16
|
+
_this._boundsModel = new ValueHolder(new Bounds(0, 0, 0, 0));
|
|
17
|
+
return _this;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @return {?}
|
|
21
|
+
*/
|
|
22
|
+
ResizeAwareComponent.prototype.ngAfterViewInit = /**
|
|
23
|
+
* @return {?}
|
|
24
|
+
*/
|
|
25
|
+
function () {
|
|
26
|
+
var _this = this;
|
|
27
|
+
this.updateBounds();
|
|
28
|
+
/** @type {?} */
|
|
29
|
+
var element = this.elementRef.nativeElement;
|
|
30
|
+
/** @type {?} */
|
|
31
|
+
var ro = new ResizeObserver((/**
|
|
32
|
+
* @param {?} entries
|
|
33
|
+
* @param {?} observer
|
|
34
|
+
* @return {?}
|
|
35
|
+
*/
|
|
36
|
+
function (entries, observer) {
|
|
37
|
+
_this.ngZone.run((/**
|
|
38
|
+
* @return {?}
|
|
39
|
+
*/
|
|
40
|
+
function () { return _this.updateBounds(); }));
|
|
41
|
+
}));
|
|
42
|
+
ro.observe(element);
|
|
43
|
+
this.onDispose((/**
|
|
44
|
+
* @return {?}
|
|
45
|
+
*/
|
|
46
|
+
function () { return ro.disconnect(); }));
|
|
47
|
+
};
|
|
48
|
+
Object.defineProperty(ResizeAwareComponent.prototype, "boundsModel", {
|
|
49
|
+
get: /**
|
|
50
|
+
* @return {?}
|
|
51
|
+
*/
|
|
52
|
+
function () {
|
|
53
|
+
return this._boundsModel.readonly;
|
|
54
|
+
},
|
|
55
|
+
enumerable: true,
|
|
56
|
+
configurable: true
|
|
57
|
+
});
|
|
58
|
+
Object.defineProperty(ResizeAwareComponent.prototype, "nativeElement", {
|
|
59
|
+
get: /**
|
|
60
|
+
* @return {?}
|
|
61
|
+
*/
|
|
62
|
+
function () {
|
|
63
|
+
return this.elementRef.nativeElement;
|
|
64
|
+
},
|
|
65
|
+
enumerable: true,
|
|
66
|
+
configurable: true
|
|
67
|
+
});
|
|
68
|
+
// TODO: Make this handle body scroll
|
|
69
|
+
// TODO: Make this handle body scroll
|
|
70
|
+
/**
|
|
71
|
+
* @param {?} point
|
|
72
|
+
* @return {?}
|
|
73
|
+
*/
|
|
74
|
+
ResizeAwareComponent.prototype.relativePositionOf =
|
|
75
|
+
// TODO: Make this handle body scroll
|
|
76
|
+
/**
|
|
77
|
+
* @param {?} point
|
|
78
|
+
* @return {?}
|
|
79
|
+
*/
|
|
80
|
+
function (point) {
|
|
81
|
+
return this.bounds.relativePositionOf(point);
|
|
82
|
+
};
|
|
83
|
+
Object.defineProperty(ResizeAwareComponent.prototype, "bounds", {
|
|
84
|
+
get: /**
|
|
85
|
+
* @return {?}
|
|
86
|
+
*/
|
|
87
|
+
function () {
|
|
88
|
+
return this._boundsModel.value;
|
|
89
|
+
},
|
|
90
|
+
enumerable: true,
|
|
91
|
+
configurable: true
|
|
92
|
+
});
|
|
93
|
+
/**
|
|
94
|
+
* @private
|
|
95
|
+
* @return {?}
|
|
96
|
+
*/
|
|
97
|
+
ResizeAwareComponent.prototype.updateBounds = /**
|
|
98
|
+
* @private
|
|
99
|
+
* @return {?}
|
|
100
|
+
*/
|
|
101
|
+
function () {
|
|
102
|
+
this._boundsModel.value = Bounds.ofElement(this.nativeElement);
|
|
103
|
+
};
|
|
104
|
+
return ResizeAwareComponent;
|
|
105
|
+
}(DisposableComponent));
|
|
106
|
+
export { ResizeAwareComponent };
|
|
107
|
+
if (false) {
|
|
108
|
+
/**
|
|
109
|
+
* @type {?}
|
|
110
|
+
* @private
|
|
111
|
+
*/
|
|
112
|
+
ResizeAwareComponent.prototype._boundsModel;
|
|
113
|
+
/**
|
|
114
|
+
* @type {?}
|
|
115
|
+
* @protected
|
|
116
|
+
*/
|
|
117
|
+
ResizeAwareComponent.prototype.elementRef;
|
|
118
|
+
/**
|
|
119
|
+
* @type {?}
|
|
120
|
+
* @protected
|
|
121
|
+
*/
|
|
122
|
+
ResizeAwareComponent.prototype.ngZone;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWF3YXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3Jlc2l6ZS1hd2FyZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUMsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxjQUFjLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzVDO0lBQTBDLGdEQUFtQjtJQUl6RCw4QkFBK0IsVUFBc0IsRUFBcUIsTUFBYztRQUF4RixZQUNJLGlCQUFPLFNBQ1Y7UUFGOEIsZ0JBQVUsR0FBVixVQUFVLENBQVk7UUFBcUIsWUFBTSxHQUFOLE1BQU0sQ0FBUTtRQUZoRixrQkFBWSxHQUFHLElBQUksV0FBVyxDQUFTLElBQUksTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7O0lBSXZFLENBQUM7Ozs7SUFFRCw4Q0FBZTs7O0lBQWY7UUFBQSxpQkFRQztRQVBHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7WUFDZCxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhOztZQUN2QyxFQUFFLEdBQUcsSUFBSSxjQUFjOzs7OztRQUFDLFVBQUMsT0FBTyxFQUFFLFFBQVE7WUFDNUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHOzs7WUFBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLFlBQVksRUFBRSxFQUFuQixDQUFtQixFQUFDLENBQUM7UUFDL0MsQ0FBQyxFQUFDO1FBQ0YsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUzs7O1FBQUMsY0FBTSxPQUFBLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBZixDQUFlLEVBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsc0JBQUksNkNBQVc7Ozs7UUFBZjtZQUNJLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDdEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwrQ0FBYTs7OztRQUFqQjtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDekMsQ0FBQzs7O09BQUE7SUFFRCxxQ0FBcUM7Ozs7OztJQUM5QixpREFBa0I7Ozs7OztJQUF6QixVQUEwQixLQUE0QztRQUNsRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELHNCQUFJLHdDQUFNOzs7O1FBQVY7WUFDSSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ25DLENBQUM7OztPQUFBOzs7OztJQUVPLDJDQUFZOzs7O0lBQXBCO1FBQ0ksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUdMLDJCQUFDO0FBQUQsQ0FBQyxBQXhDRCxDQUEwQyxtQkFBbUIsR0F3QzVEOzs7Ozs7O0lBdENHLDRDQUF1RTs7Ozs7SUFFM0QsMENBQXlDOzs7OztJQUFFLHNDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgTmdab25lfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VmFsdWVIb2xkZXIsIFZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCBSZXNpemVPYnNlcnZlciBmcm9tICdyZXNpemUtb2JzZXJ2ZXItcG9seWZpbGwnO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7Qm91bmRzfSBmcm9tICcuL3R5cGVzL2JvdW5kcy5jbGFzcyc7XG5pbXBvcnQge1BvaW50fSBmcm9tICcuL3R5cGVzL3BvaW50LmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIFJlc2l6ZUF3YXJlQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gICAgcHJpdmF0ZSBfYm91bmRzTW9kZWwgPSBuZXcgVmFsdWVIb2xkZXI8Qm91bmRzPihuZXcgQm91bmRzKDAsIDAsIDAsIDApKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQm91bmRzKCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMsIG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy51cGRhdGVCb3VuZHMoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByby5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLm9uRGlzcG9zZSgoKSA9PiByby5kaXNjb25uZWN0KCkpO1xuICAgIH1cblxuICAgIGdldCBib3VuZHNNb2RlbCgpOiBWYWx1ZU1vZGVsPEJvdW5kcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYm91bmRzTW9kZWwucmVhZG9ubHk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBNYWtlIHRoaXMgaGFuZGxlIGJvZHkgc2Nyb2xsXG4gICAgcHVibGljIHJlbGF0aXZlUG9zaXRpb25PZihwb2ludDogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9IHwgTW91c2VFdmVudCk6IFBvaW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYm91bmRzLnJlbGF0aXZlUG9zaXRpb25PZihwb2ludCk7XG4gICAgfVxuXG4gICAgZ2V0IGJvdW5kcygpOiBCb3VuZHMge1xuICAgICAgICByZXR1cm4gdGhpcy5fYm91bmRzTW9kZWwudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVCb3VuZHMoKSB7XG4gICAgICAgIHRoaXMuX2JvdW5kc01vZGVsLnZhbHVlID0gQm91bmRzLm9mRWxlbWVudCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgUmVzaXplQXdhcmVDb21wb25lbnQge1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { Dimension } from './dimension.class';
|
|
7
|
+
import { Point } from './point.class';
|
|
8
|
+
var Bounds = /** @class */ (function (_super) {
|
|
9
|
+
tslib_1.__extends(Bounds, _super);
|
|
10
|
+
function Bounds(top, left, width, height) {
|
|
11
|
+
var _this = _super.call(this, width, height) || this;
|
|
12
|
+
_this.top = top;
|
|
13
|
+
_this.left = left;
|
|
14
|
+
_this.width = width;
|
|
15
|
+
_this.height = height;
|
|
16
|
+
return _this;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @param {?} point
|
|
20
|
+
* @return {?}
|
|
21
|
+
*/
|
|
22
|
+
Bounds.prototype.relativePositionOf = /**
|
|
23
|
+
* @param {?} point
|
|
24
|
+
* @return {?}
|
|
25
|
+
*/
|
|
26
|
+
function (point) {
|
|
27
|
+
if (point instanceof MouseEvent) {
|
|
28
|
+
return new Point(point.clientX - this.left, point.clientY - this.top);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return new Point(point.x - this.left, point.y - this.top);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
return Bounds;
|
|
35
|
+
}(Dimension));
|
|
36
|
+
export { Bounds };
|
|
37
|
+
if (false) {
|
|
38
|
+
/** @type {?} */
|
|
39
|
+
Bounds.prototype.top;
|
|
40
|
+
/** @type {?} */
|
|
41
|
+
Bounds.prototype.left;
|
|
42
|
+
/** @type {?} */
|
|
43
|
+
Bounds.prototype.width;
|
|
44
|
+
/** @type {?} */
|
|
45
|
+
Bounds.prototype.height;
|
|
46
|
+
}
|
|
47
|
+
(function (Bounds) {
|
|
48
|
+
/**
|
|
49
|
+
* @param {?} element
|
|
50
|
+
* @return {?}
|
|
51
|
+
*/
|
|
52
|
+
function ofElement(element) {
|
|
53
|
+
/** @type {?} */
|
|
54
|
+
var rect = element.getBoundingClientRect();
|
|
55
|
+
return new Bounds(rect.top, rect.left, rect.width, rect.height);
|
|
56
|
+
}
|
|
57
|
+
Bounds.ofElement = ofElement;
|
|
58
|
+
})(Bounds || (Bounds = {}));
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdHlwZXMvYm91bmRzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEM7SUFBNEIsa0NBQVM7SUFFakMsZ0JBQXFCLEdBQVcsRUFBVyxJQUFZLEVBQVcsS0FBYSxFQUFXLE1BQWM7UUFBeEcsWUFDSSxrQkFBTSxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQ3ZCO1FBRm9CLFNBQUcsR0FBSCxHQUFHLENBQVE7UUFBVyxVQUFJLEdBQUosSUFBSSxDQUFRO1FBQVcsV0FBSyxHQUFMLEtBQUssQ0FBUTtRQUFXLFlBQU0sR0FBTixNQUFNLENBQVE7O0lBRXhHLENBQUM7Ozs7O0lBRUQsbUNBQWtCOzs7O0lBQWxCLFVBQW1CLEtBQTRDO1FBQzNELElBQUksS0FBSyxZQUFZLFVBQVUsRUFBRTtZQUM3QixPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6RTthQUFNO1lBQ0gsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0Q7SUFDTCxDQUFDO0lBQ0wsYUFBQztBQUFELENBQUMsQUFiRCxDQUE0QixTQUFTLEdBYXBDOzs7O0lBWGUscUJBQW9COztJQUFFLHNCQUFxQjs7SUFBRSx1QkFBc0I7O0lBQUUsd0JBQXVCOztBQWE1RyxXQUFpQixNQUFNOzs7OztJQUNuQixTQUFnQixTQUFTLENBQUMsT0FBb0I7O1lBQ3BDLElBQUksR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUU7UUFDNUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUhlLGdCQUFTLFlBR3hCLENBQUE7QUFDTCxDQUFDLEVBTGdCLE1BQU0sS0FBTixNQUFNLFFBS3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGltZW5zaW9uIH0gZnJvbSAnLi9kaW1lbnNpb24uY2xhc3MnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuL3BvaW50LmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIEJvdW5kcyBleHRlbmRzIERpbWVuc2lvbiB7XG5cbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSB0b3A6IG51bWJlciwgcmVhZG9ubHkgbGVmdDogbnVtYmVyLCByZWFkb25seSB3aWR0aDogbnVtYmVyLCByZWFkb25seSBoZWlnaHQ6IG51bWJlcikge1xuICAgICAgICBzdXBlcih3aWR0aCwgaGVpZ2h0KTtcbiAgICB9XG5cbiAgICByZWxhdGl2ZVBvc2l0aW9uT2YocG9pbnQ6IHsgeDogbnVtYmVyLCB5OiBudW1iZXIgfSB8IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHBvaW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQb2ludChwb2ludC5jbGllbnRYIC0gdGhpcy5sZWZ0LCBwb2ludC5jbGllbnRZIC0gdGhpcy50b3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQb2ludChwb2ludC54IC0gdGhpcy5sZWZ0LCBwb2ludC55IC0gdGhpcy50b3ApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEJvdW5kcyB7XG4gICAgZXhwb3J0IGZ1bmN0aW9uIG9mRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEJvdW5kcyB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICByZXR1cm4gbmV3IEJvdW5kcyhyZWN0LnRvcCwgcmVjdC5sZWZ0LCByZWN0LndpZHRoLCByZWN0LmhlaWdodCk7XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
var Dimension = /** @class */ (function () {
|
|
6
|
+
function Dimension(width, height) {
|
|
7
|
+
this.width = width;
|
|
8
|
+
this.height = height;
|
|
9
|
+
}
|
|
10
|
+
return Dimension;
|
|
11
|
+
}());
|
|
12
|
+
export { Dimension };
|
|
13
|
+
if (false) {
|
|
14
|
+
/** @type {?} */
|
|
15
|
+
Dimension.prototype.width;
|
|
16
|
+
/** @type {?} */
|
|
17
|
+
Dimension.prototype.height;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdHlwZXMvZGltZW5zaW9uLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtJQUNJLG1CQUFxQixLQUFhLEVBQVcsTUFBYztRQUF0QyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVcsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFFLENBQUM7SUFDbEUsZ0JBQUM7QUFBRCxDQUFDLEFBRkQsSUFFQzs7OztJQURlLDBCQUFzQjs7SUFBRSwyQkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRGltZW5zaW9uIHtcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSB3aWR0aDogbnVtYmVyLCByZWFkb25seSBoZWlnaHQ6IG51bWJlcil7fVxufVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
var Point = /** @class */ (function () {
|
|
6
|
+
function Point(x, y) {
|
|
7
|
+
this.x = x;
|
|
8
|
+
this.y = y;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @param {?} data
|
|
12
|
+
* @return {?}
|
|
13
|
+
*/
|
|
14
|
+
Point.from = /**
|
|
15
|
+
* @param {?} data
|
|
16
|
+
* @return {?}
|
|
17
|
+
*/
|
|
18
|
+
function (data) {
|
|
19
|
+
return new Point(data.x, data.y);
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* @param {?} x
|
|
23
|
+
* @param {?} y
|
|
24
|
+
* @return {?}
|
|
25
|
+
*/
|
|
26
|
+
Point.prototype.translate = /**
|
|
27
|
+
* @param {?} x
|
|
28
|
+
* @param {?} y
|
|
29
|
+
* @return {?}
|
|
30
|
+
*/
|
|
31
|
+
function (x, y) {
|
|
32
|
+
return new Point(this.x + x, this.y + y);
|
|
33
|
+
};
|
|
34
|
+
return Point;
|
|
35
|
+
}());
|
|
36
|
+
export { Point };
|
|
37
|
+
if (false) {
|
|
38
|
+
/** @type {?} */
|
|
39
|
+
Point.prototype.x;
|
|
40
|
+
/** @type {?} */
|
|
41
|
+
Point.prototype.y;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90eXBlcy9wb2ludC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7SUFNSSxlQUFxQixDQUFTLEVBQVcsQ0FBUztRQUE3QixNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQVcsTUFBQyxHQUFELENBQUMsQ0FBUTtJQUNsRCxDQUFDOzs7OztJQUxNLFVBQUk7Ozs7SUFBWCxVQUFZLElBQThCO1FBQ3RDLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7Ozs7O0lBS0QseUJBQVM7Ozs7O0lBQVQsVUFBVSxDQUFTLEVBQUUsQ0FBUztRQUMxQixPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNMLFlBQUM7QUFBRCxDQUFDLEFBWkQsSUFZQzs7OztJQU5lLGtCQUFrQjs7SUFBRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUG9pbnQge1xuXG4gICAgc3RhdGljIGZyb20oZGF0YTogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9KSB7XG4gICAgICAgIHJldHVybiBuZXcgUG9pbnQoZGF0YS54LCBkYXRhLnkpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHg6IG51bWJlciwgcmVhZG9ubHkgeTogbnVtYmVyKSB7XG4gICAgfVxuXG4gICAgdHJhbnNsYXRlKHg6IG51bWJlciwgeTogbnVtYmVyKTogUG9pbnQge1xuICAgICAgICByZXR1cm4gbmV3IFBvaW50KHRoaXMueCArIHgsIHRoaXMueSArIHkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { Directive, ElementRef, HostListener, Inject, Input } from '@angular/core';
|
|
7
|
+
import { assert, Dsl, GarbageCollector, lang, UnaryCommand } from '@coolon/pectin';
|
|
8
|
+
/**
|
|
9
|
+
* @template P
|
|
10
|
+
*/
|
|
11
|
+
var CommandDirective = /** @class */ (function (_super) {
|
|
12
|
+
tslib_1.__extends(CommandDirective, _super);
|
|
13
|
+
function CommandDirective(elementRef) {
|
|
14
|
+
var _this = _super.call(this) || this;
|
|
15
|
+
_this.elementRef = elementRef;
|
|
16
|
+
_this._commandParameterProvided = false;
|
|
17
|
+
return _this;
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(CommandDirective.prototype, "commandParameter", {
|
|
20
|
+
get: /**
|
|
21
|
+
* @return {?}
|
|
22
|
+
*/
|
|
23
|
+
function () {
|
|
24
|
+
return this._commandParameter;
|
|
25
|
+
},
|
|
26
|
+
set: /**
|
|
27
|
+
* @param {?} value
|
|
28
|
+
* @return {?}
|
|
29
|
+
*/
|
|
30
|
+
function (value) {
|
|
31
|
+
this._commandParameterProvided = true;
|
|
32
|
+
this._commandParameter = value;
|
|
33
|
+
},
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* @return {?}
|
|
39
|
+
*/
|
|
40
|
+
CommandDirective.prototype.ngOnInit = /**
|
|
41
|
+
* @return {?}
|
|
42
|
+
*/
|
|
43
|
+
function () {
|
|
44
|
+
assert.notNil(this.pectinCommand);
|
|
45
|
+
if (this.pectinCommand instanceof UnaryCommand) {
|
|
46
|
+
if (!this._commandParameterProvided) {
|
|
47
|
+
lang.illegalState('UnaryCommands required the command parameter to be specified.');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
if (this._commandParameterProvided) {
|
|
52
|
+
lang.illegalState('command parameters are only supported by UnaryCommands');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* @return {?}
|
|
58
|
+
*/
|
|
59
|
+
CommandDirective.prototype.ngAfterViewInit = /**
|
|
60
|
+
* @return {?}
|
|
61
|
+
*/
|
|
62
|
+
function () {
|
|
63
|
+
var _this = this;
|
|
64
|
+
// for some reason mat-buttons kills the disabled host binding. It works on a regular button but for now
|
|
65
|
+
// we need to do this.
|
|
66
|
+
var chain = Dsl.disposeWith(this).chain;
|
|
67
|
+
chain(this.pectinCommand.enabled).subscribe((/**
|
|
68
|
+
* @param {?} enabled
|
|
69
|
+
* @return {?}
|
|
70
|
+
*/
|
|
71
|
+
function (enabled) {
|
|
72
|
+
if (enabled) {
|
|
73
|
+
_this.elementRef.nativeElement.removeAttribute('disabled');
|
|
74
|
+
if (_this.elementRef.nativeElement.tagName === 'A') {
|
|
75
|
+
_this.elementRef.nativeElement.setAttribute('href', 'javascript:void');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
_this.elementRef.nativeElement.setAttribute('disabled', 'disabled');
|
|
80
|
+
if (_this.elementRef.nativeElement.tagName === 'A') {
|
|
81
|
+
_this.elementRef.nativeElement.removeAttribute('href');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}));
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* @return {?}
|
|
88
|
+
*/
|
|
89
|
+
CommandDirective.prototype.ngOnDestroy = /**
|
|
90
|
+
* @return {?}
|
|
91
|
+
*/
|
|
92
|
+
function () {
|
|
93
|
+
this.dispose();
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* @param {?} $event
|
|
97
|
+
* @return {?}
|
|
98
|
+
*/
|
|
99
|
+
CommandDirective.prototype.notifyClick = /**
|
|
100
|
+
* @param {?} $event
|
|
101
|
+
* @return {?}
|
|
102
|
+
*/
|
|
103
|
+
function ($event) {
|
|
104
|
+
$event.preventDefault();
|
|
105
|
+
$event.stopPropagation();
|
|
106
|
+
if (this.pectinCommand.enabled.value) {
|
|
107
|
+
if (this.pectinCommand instanceof UnaryCommand) {
|
|
108
|
+
this.pectinCommand.withContext({ event: $event }).execute(this.commandParameter);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
this.pectinCommand.withContext({ event: $event }).execute();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
console.warn('disabled command clicked, ignoring.');
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
CommandDirective.decorators = [
|
|
119
|
+
{ type: Directive, args: [{
|
|
120
|
+
// tslint:disable-next-line:directive-selector
|
|
121
|
+
selector: '[pectinCommand]'
|
|
122
|
+
},] }
|
|
123
|
+
];
|
|
124
|
+
/** @nocollapse */
|
|
125
|
+
CommandDirective.ctorParameters = function () { return [
|
|
126
|
+
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
|
|
127
|
+
]; };
|
|
128
|
+
CommandDirective.propDecorators = {
|
|
129
|
+
pectinCommand: [{ type: Input }],
|
|
130
|
+
commandParameter: [{ type: Input }],
|
|
131
|
+
notifyClick: [{ type: HostListener, args: ['click', ['$event'],] }]
|
|
132
|
+
};
|
|
133
|
+
return CommandDirective;
|
|
134
|
+
}(GarbageCollector));
|
|
135
|
+
export { CommandDirective };
|
|
136
|
+
if (false) {
|
|
137
|
+
/** @type {?} */
|
|
138
|
+
CommandDirective.prototype.pectinCommand;
|
|
139
|
+
/**
|
|
140
|
+
* @type {?}
|
|
141
|
+
* @private
|
|
142
|
+
*/
|
|
143
|
+
CommandDirective.prototype._commandParameter;
|
|
144
|
+
/**
|
|
145
|
+
* @type {?}
|
|
146
|
+
* @private
|
|
147
|
+
*/
|
|
148
|
+
CommandDirective.prototype._commandParameterProvided;
|
|
149
|
+
/**
|
|
150
|
+
* @type {?}
|
|
151
|
+
* @private
|
|
152
|
+
*/
|
|
153
|
+
CommandDirective.prototype.elementRef;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9jb21tYW5kLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLE1BQU0sRUFBVyxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRTVGO0lBSStDLDRDQUFnQjtJQWtCN0QsMEJBQXdDLFVBQXNCO1FBQTlELFlBQ0UsaUJBQU8sU0FDUjtRQUZ1QyxnQkFBVSxHQUFWLFVBQVUsQ0FBWTtRQVp0RCwrQkFBeUIsR0FBRyxLQUFLLENBQUM7O0lBYzFDLENBQUM7SUFaRCxzQkFDSSw4Q0FBZ0I7Ozs7UUFLcEI7WUFDRSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNoQyxDQUFDOzs7OztRQVJELFVBQ3FCLEtBQVE7WUFDM0IsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztZQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLENBQUM7OztPQUFBOzs7O0lBVUQsbUNBQVE7OztJQUFSO1FBQ0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsYUFBYSxZQUFZLFlBQVksRUFBRTtZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFO2dCQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLCtEQUErRCxDQUFDLENBQUM7YUFDcEY7U0FDRjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsd0RBQXdELENBQUMsQ0FBQzthQUM3RTtTQUNGO0lBQ0gsQ0FBQzs7OztJQUVELDBDQUFlOzs7SUFBZjtRQUFBLGlCQWlCQzs7O1FBZFMsSUFBQSxtQ0FBSztRQUNiLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLE9BQU87WUFDakQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsS0FBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUU7b0JBQ2pELEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztpQkFDdkU7YUFDRjtpQkFBTTtnQkFDTCxLQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUU7b0JBQ2pELEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdkQ7YUFDRjtRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELHNDQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDOzs7OztJQUlELHNDQUFXOzs7O0lBRFgsVUFDWSxNQUFhO1FBQ3ZCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDcEMsSUFBSSxJQUFJLENBQUMsYUFBYSxZQUFZLFlBQVksRUFBRTtnQkFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDbEY7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUM3RDtTQUNGO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDOztnQkE1RUYsU0FBUyxTQUFDOztvQkFFVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs7OztnQkFOa0MsVUFBVSx1QkF5QjlCLE1BQU0sU0FBQyxVQUFVOzs7Z0NBaEI3QixLQUFLO21DQU1MLEtBQUs7OEJBbURMLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0lBY25DLHVCQUFDO0NBQUEsQUE3RUQsQ0FJK0MsZ0JBQWdCLEdBeUU5RDtTQXpFWSxnQkFBZ0I7OztJQUUzQix5Q0FDOEM7Ozs7O0lBRTlDLDZDQUE0Qjs7Ozs7SUFDNUIscURBQTBDOzs7OztJQVk5QixzQ0FBa0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydCwgQ29tbWFuZCwgRHNsLCBHYXJiYWdlQ29sbGVjdG9yLCBsYW5nLCBVbmFyeUNvbW1hbmQgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3BlY3RpbkNvbW1hbmRdJ1xufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kRGlyZWN0aXZlPFAgPSBhbnk+IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKVxuICBwZWN0aW5Db21tYW5kOiBDb21tYW5kPGFueT4gfCBVbmFyeUNvbW1hbmQ8UD47XG5cbiAgcHJpdmF0ZSBfY29tbWFuZFBhcmFtZXRlcjpQO1xuICBwcml2YXRlIF9jb21tYW5kUGFyYW1ldGVyUHJvdmlkZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgY29tbWFuZFBhcmFtZXRlcih2YWx1ZTogUCkge1xuICAgIHRoaXMuX2NvbW1hbmRQYXJhbWV0ZXJQcm92aWRlZCA9IHRydWU7XG4gICAgdGhpcy5fY29tbWFuZFBhcmFtZXRlciA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGNvbW1hbmRQYXJhbWV0ZXIoKTogUCB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbW1hbmRQYXJhbWV0ZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBhc3NlcnQubm90TmlsKHRoaXMucGVjdGluQ29tbWFuZCk7XG4gICAgaWYgKHRoaXMucGVjdGluQ29tbWFuZCBpbnN0YW5jZW9mIFVuYXJ5Q29tbWFuZCkge1xuICAgICAgaWYgKCF0aGlzLl9jb21tYW5kUGFyYW1ldGVyUHJvdmlkZWQpIHtcbiAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoJ1VuYXJ5Q29tbWFuZHMgcmVxdWlyZWQgdGhlIGNvbW1hbmQgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZC4nKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2NvbW1hbmRQYXJhbWV0ZXJQcm92aWRlZCkge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZSgnY29tbWFuZCBwYXJhbWV0ZXJzIGFyZSBvbmx5IHN1cHBvcnRlZCBieSBVbmFyeUNvbW1hbmRzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIGZvciBzb21lIHJlYXNvbiBtYXQtYnV0dG9ucyBraWxscyB0aGUgZGlzYWJsZWQgaG9zdCBiaW5kaW5nLiAgSXQgd29ya3Mgb24gYSByZWd1bGFyIGJ1dHRvbiBidXQgZm9yIG5vd1xuICAgIC8vIHdlIG5lZWQgdG8gZG8gdGhpcy5cbiAgICBjb25zdCB7IGNoYWluIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgY2hhaW4odGhpcy5wZWN0aW5Db21tYW5kLmVuYWJsZWQpLnN1YnNjcmliZShlbmFibGVkID0+IHtcbiAgICAgIGlmIChlbmFibGVkKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhZ05hbWUgPT09ICdBJykge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdqYXZhc2NyaXB0OnZvaWQnKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFnTmFtZSA9PT0gJ0EnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdocmVmJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZSgpO1xuICB9XG5cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG5vdGlmeUNsaWNrKCRldmVudDogRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMucGVjdGluQ29tbWFuZC5lbmFibGVkLnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5wZWN0aW5Db21tYW5kIGluc3RhbmNlb2YgVW5hcnlDb21tYW5kKSB7XG4gICAgICAgIHRoaXMucGVjdGluQ29tbWFuZC53aXRoQ29udGV4dCh7IGV2ZW50OiAkZXZlbnQgfSkuZXhlY3V0ZSh0aGlzLmNvbW1hbmRQYXJhbWV0ZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wZWN0aW5Db21tYW5kLndpdGhDb250ZXh0KHsgZXZlbnQ6ICRldmVudCB9KS5leGVjdXRlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignZGlzYWJsZWQgY29tbWFuZCBjbGlja2VkLCBpZ25vcmluZy4nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { DOCUMENT } from '@angular/common';
|
|
7
|
+
import { Directive, ElementRef, HostListener, Inject, Input, NgZone } from '@angular/core';
|
|
8
|
+
import { Dsl, HasFocusTracking, Logger } from '@coolon/pectin';
|
|
9
|
+
import { DisposableComponent } from '../components/disposable-component';
|
|
10
|
+
var FocusBindingDirective = /** @class */ (function (_super) {
|
|
11
|
+
tslib_1.__extends(FocusBindingDirective, _super);
|
|
12
|
+
function FocusBindingDirective(el, ngZone, document) {
|
|
13
|
+
var _this = _super.call(this) || this;
|
|
14
|
+
_this.el = el;
|
|
15
|
+
_this.ngZone = ngZone;
|
|
16
|
+
// @see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642
|
|
17
|
+
_this.document = (/** @type {?} */ (document));
|
|
18
|
+
return _this;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @return {?}
|
|
22
|
+
*/
|
|
23
|
+
FocusBindingDirective.prototype.onFocusIn = /**
|
|
24
|
+
* @return {?}
|
|
25
|
+
*/
|
|
26
|
+
function () {
|
|
27
|
+
if (this.hasBinding()) {
|
|
28
|
+
this.pectinFocusBinding.focusContext.notifyFocusIn();
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* @return {?}
|
|
33
|
+
*/
|
|
34
|
+
FocusBindingDirective.prototype.onFocusOut = /**
|
|
35
|
+
* @return {?}
|
|
36
|
+
*/
|
|
37
|
+
function () {
|
|
38
|
+
if (this.hasBinding()) {
|
|
39
|
+
this.pectinFocusBinding.focusContext.notifyFocusOut();
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
FocusBindingDirective.prototype.ngOnInit = /**
|
|
46
|
+
* @return {?}
|
|
47
|
+
*/
|
|
48
|
+
function () {
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* @return {?}
|
|
52
|
+
*/
|
|
53
|
+
FocusBindingDirective.prototype.ngAfterViewInit = /**
|
|
54
|
+
* @return {?}
|
|
55
|
+
*/
|
|
56
|
+
function () {
|
|
57
|
+
var _this = this;
|
|
58
|
+
// TODO: Make this also track the current enabled/disabled state.
|
|
59
|
+
if (this.hasBinding()) {
|
|
60
|
+
var chain = Dsl.disposeWith(this).chain;
|
|
61
|
+
chain(this.pectinFocusBinding.focusContext.focused).subscribe((/**
|
|
62
|
+
* @param {?} focused
|
|
63
|
+
* @return {?}
|
|
64
|
+
*/
|
|
65
|
+
function (focused) {
|
|
66
|
+
if (focused && !_this.alreadyHasFocus()) {
|
|
67
|
+
_this.tryAndFocus();
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
Logger.get(this).warn("pectinFocusBinding was nil");
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* @private
|
|
77
|
+
* @return {?}
|
|
78
|
+
*/
|
|
79
|
+
FocusBindingDirective.prototype.hasBinding = /**
|
|
80
|
+
* @private
|
|
81
|
+
* @return {?}
|
|
82
|
+
*/
|
|
83
|
+
function () {
|
|
84
|
+
return !!this.pectinFocusBinding && !!this.pectinFocusBinding.focusContext;
|
|
85
|
+
};
|
|
86
|
+
// Hook method for debugging via tracing.
|
|
87
|
+
// Hook method for debugging via tracing.
|
|
88
|
+
/**
|
|
89
|
+
* @return {?}
|
|
90
|
+
*/
|
|
91
|
+
FocusBindingDirective.prototype.alreadyHasFocus =
|
|
92
|
+
// Hook method for debugging via tracing.
|
|
93
|
+
/**
|
|
94
|
+
* @return {?}
|
|
95
|
+
*/
|
|
96
|
+
function () {
|
|
97
|
+
return this.isFocused(this.focusTarget);
|
|
98
|
+
};
|
|
99
|
+
// Hook method for debugging via tracing.
|
|
100
|
+
// Hook method for debugging via tracing.
|
|
101
|
+
/**
|
|
102
|
+
* @param {?} element
|
|
103
|
+
* @return {?}
|
|
104
|
+
*/
|
|
105
|
+
FocusBindingDirective.prototype.isFocused =
|
|
106
|
+
// Hook method for debugging via tracing.
|
|
107
|
+
/**
|
|
108
|
+
* @param {?} element
|
|
109
|
+
* @return {?}
|
|
110
|
+
*/
|
|
111
|
+
function (element) {
|
|
112
|
+
return this.document.activeElement === element;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* @param {?=} retries
|
|
116
|
+
* @return {?}
|
|
117
|
+
*/
|
|
118
|
+
FocusBindingDirective.prototype.tryAndFocus = /**
|
|
119
|
+
* @param {?=} retries
|
|
120
|
+
* @return {?}
|
|
121
|
+
*/
|
|
122
|
+
function (retries) {
|
|
123
|
+
var _this = this;
|
|
124
|
+
if (retries === void 0) { retries = 5; }
|
|
125
|
+
if (this.modelShouldStillHaveFocus() && this.canFocus()) {
|
|
126
|
+
if (!this.alreadyHasFocus()) {
|
|
127
|
+
this.focusTarget.focus();
|
|
128
|
+
}
|
|
129
|
+
// if we didn't get the focus we try again later.
|
|
130
|
+
if (!this.alreadyHasFocus()) {
|
|
131
|
+
Logger.get(this).log("focus failed, trying " + retries + " more times");
|
|
132
|
+
if (retries > 0) {
|
|
133
|
+
// try again on the next paint
|
|
134
|
+
// TODO: is there an angular way of doing this without calling a window function.
|
|
135
|
+
requestAnimationFrame((/**
|
|
136
|
+
* @return {?}
|
|
137
|
+
*/
|
|
138
|
+
function () {
|
|
139
|
+
_this.tryAndFocus(retries - 1);
|
|
140
|
+
}));
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
Logger.get(this).warn("Tried to focus but gave up as the component wasn't enabled or visible.");
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
Object.defineProperty(FocusBindingDirective.prototype, "focusTarget", {
|
|
149
|
+
get: /**
|
|
150
|
+
* @return {?}
|
|
151
|
+
*/
|
|
152
|
+
function () {
|
|
153
|
+
return this.focusBindingTarget || this.el.nativeElement;
|
|
154
|
+
},
|
|
155
|
+
enumerable: true,
|
|
156
|
+
configurable: true
|
|
157
|
+
});
|
|
158
|
+
// Hook method for debugging via tracing.
|
|
159
|
+
// Hook method for debugging via tracing.
|
|
160
|
+
/**
|
|
161
|
+
* @return {?}
|
|
162
|
+
*/
|
|
163
|
+
FocusBindingDirective.prototype.modelShouldStillHaveFocus =
|
|
164
|
+
// Hook method for debugging via tracing.
|
|
165
|
+
/**
|
|
166
|
+
* @return {?}
|
|
167
|
+
*/
|
|
168
|
+
function () {
|
|
169
|
+
return this.hasBinding() && this.pectinFocusBinding.focusContext.focused.value;
|
|
170
|
+
};
|
|
171
|
+
// Hook method for debugging via tracing.
|
|
172
|
+
// Hook method for debugging via tracing.
|
|
173
|
+
/**
|
|
174
|
+
* @return {?}
|
|
175
|
+
*/
|
|
176
|
+
FocusBindingDirective.prototype.canFocus =
|
|
177
|
+
// Hook method for debugging via tracing.
|
|
178
|
+
/**
|
|
179
|
+
* @return {?}
|
|
180
|
+
*/
|
|
181
|
+
function () {
|
|
182
|
+
/** @type {?} */
|
|
183
|
+
var dimension = this.focusTarget.getBoundingClientRect();
|
|
184
|
+
/** @type {?} */
|
|
185
|
+
var hasSize = dimension.height >= 0 && dimension.height >= 0;
|
|
186
|
+
// tslint:disable-next-line:no-string-literal
|
|
187
|
+
return hasSize && !this.focusTarget['disabled'];
|
|
188
|
+
};
|
|
189
|
+
FocusBindingDirective.decorators = [
|
|
190
|
+
{ type: Directive, args: [{
|
|
191
|
+
// tslint:disable-next-line:directive-selector
|
|
192
|
+
selector: '[pectinFocusBinding]'
|
|
193
|
+
},] }
|
|
194
|
+
];
|
|
195
|
+
/** @nocollapse */
|
|
196
|
+
FocusBindingDirective.ctorParameters = function () { return [
|
|
197
|
+
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
198
|
+
{ type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
|
|
199
|
+
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
|
200
|
+
]; };
|
|
201
|
+
FocusBindingDirective.propDecorators = {
|
|
202
|
+
pectinFocusBinding: [{ type: Input }],
|
|
203
|
+
focusBindingTarget: [{ type: Input }],
|
|
204
|
+
onFocusIn: [{ type: HostListener, args: ['focusin',] }],
|
|
205
|
+
onFocusOut: [{ type: HostListener, args: ['focusout',] }]
|
|
206
|
+
};
|
|
207
|
+
return FocusBindingDirective;
|
|
208
|
+
}(DisposableComponent));
|
|
209
|
+
export { FocusBindingDirective };
|
|
210
|
+
if (false) {
|
|
211
|
+
/**
|
|
212
|
+
* @type {?}
|
|
213
|
+
* @private
|
|
214
|
+
*/
|
|
215
|
+
FocusBindingDirective.prototype.document;
|
|
216
|
+
/** @type {?} */
|
|
217
|
+
FocusBindingDirective.prototype.pectinFocusBinding;
|
|
218
|
+
/** @type {?} */
|
|
219
|
+
FocusBindingDirective.prototype.focusBindingTarget;
|
|
220
|
+
/**
|
|
221
|
+
* @type {?}
|
|
222
|
+
* @private
|
|
223
|
+
*/
|
|
224
|
+
FocusBindingDirective.prototype.el;
|
|
225
|
+
/**
|
|
226
|
+
* @type {?}
|
|
227
|
+
* @private
|
|
228
|
+
*/
|
|
229
|
+
FocusBindingDirective.prototype.ngZone;
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtYmluZGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9mb2N1cy1iaW5kaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBQyxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFHdkU7SUFJMkMsaURBQW1CO0lBcUI1RCwrQkFBaUQsRUFBYyxFQUNsQixNQUFjLEVBQzdCLFFBQWE7UUFGM0MsWUFHRSxpQkFBTyxTQUdSO1FBTmdELFFBQUUsR0FBRixFQUFFLENBQVk7UUFDbEIsWUFBTSxHQUFOLE1BQU0sQ0FBUTtRQUd6RCxrSEFBa0g7UUFDbEgsS0FBSSxDQUFDLFFBQVEsR0FBRyxtQkFBQSxRQUFRLEVBQVksQ0FBQzs7SUFDdkMsQ0FBQzs7OztJQW5CRCx5Q0FBUzs7O0lBRFQ7UUFFRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3REO0lBQ0gsQ0FBQzs7OztJQUdELDBDQUFVOzs7SUFEVjtRQUVFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkQ7SUFDSCxDQUFDOzs7O0lBVUQsd0NBQVE7OztJQUFSO0lBQ0EsQ0FBQzs7OztJQUVELCtDQUFlOzs7SUFBZjtRQUFBLGlCQVlDO1FBWEMsaUVBQWlFO1FBQ2pFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ2QsSUFBQSxtQ0FBSztZQUNaLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVM7Ozs7WUFBQyxVQUFDLE9BQU87Z0JBQ3BFLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSSxDQUFDLGVBQWUsRUFBRSxFQUFFO29CQUN0QyxLQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ3BCO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7Ozs7O0lBRU8sMENBQVU7Ozs7SUFBbEI7UUFDRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7SUFDN0UsQ0FBQztJQUVILHlDQUF5Qzs7Ozs7SUFDdkMsK0NBQWU7Ozs7O0lBQWY7UUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCx5Q0FBeUM7Ozs7OztJQUN6Qyx5Q0FBUzs7Ozs7O0lBQVQsVUFBVSxPQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxLQUFLLE9BQU8sQ0FBQztJQUNqRCxDQUFDOzs7OztJQUVELDJDQUFXOzs7O0lBQVgsVUFBWSxPQUFtQjtRQUEvQixpQkFtQkM7UUFuQlcsd0JBQUEsRUFBQSxXQUFtQjtRQUM3QixJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFO2dCQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQzFCO1lBQ0QsaURBQWlEO1lBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQzNCLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLDBCQUF3QixPQUFPLGdCQUFhLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFO29CQUNmLDhCQUE4QjtvQkFDOUIsaUZBQWlGO29CQUNqRixxQkFBcUI7OztvQkFBQzt3QkFDcEIsS0FBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ2hDLENBQUMsRUFBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLHdFQUF3RSxDQUFDLENBQUM7aUJBQ2pHO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCxzQkFBSSw4Q0FBVzs7OztRQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDMUQsQ0FBQzs7O09BQUE7SUFFRCx5Q0FBeUM7Ozs7O0lBQ3pDLHlEQUF5Qjs7Ozs7SUFBekI7UUFDRSxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDakYsQ0FBQztJQUVELHlDQUF5Qzs7Ozs7SUFDekMsd0NBQVE7Ozs7O0lBQVI7O1lBQ1EsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUU7O1lBQ3BELE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUM7UUFDOUQsNkNBQTZDO1FBQzdDLE9BQU8sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRCxDQUFDOztnQkFwR0YsU0FBUyxTQUFDOztvQkFFVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs7OztnQkFSaUMsVUFBVSx1QkE4QjdCLE1BQU0sU0FBQyxVQUFVO2dCQTlCMkMsTUFBTSx1QkErQmxFLE1BQU0sU0FBQyxNQUFNO2dEQUNiLE1BQU0sU0FBQyxRQUFROzs7cUNBbkIzQixLQUFLO3FDQUNMLEtBQUs7NEJBRUwsWUFBWSxTQUFDLFNBQVM7NkJBT3RCLFlBQVksU0FBQyxVQUFVOztJQW1GMUIsNEJBQUM7Q0FBQSxBQXJHRCxDQUkyQyxtQkFBbUIsR0FpRzdEO1NBakdZLHFCQUFxQjs7Ozs7O0lBRWhDLHlDQUFvQzs7SUFFcEMsbURBQThDOztJQUM5QyxtREFBeUM7Ozs7O0lBZ0I3QixtQ0FBbUQ7Ozs7O0lBQ25ELHVDQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RzbCwgSGFzRm9jdXNUcmFja2luZywgTG9nZ2VyfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3BlY3RpbkZvY3VzQmluZGluZ10nXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzQmluZGluZ0RpcmVjdGl2ZSBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50O1xuXG4gIEBJbnB1dCgpIHBlY3RpbkZvY3VzQmluZGluZzogSGFzRm9jdXNUcmFja2luZztcbiAgQElucHV0KCkgZm9jdXNCaW5kaW5nVGFyZ2V0OiBIVE1MRWxlbWVudDtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJylcbiAgb25Gb2N1c0luKCkge1xuICAgIGlmICh0aGlzLmhhc0JpbmRpbmcoKSkge1xuICAgICAgdGhpcy5wZWN0aW5Gb2N1c0JpbmRpbmcuZm9jdXNDb250ZXh0Lm5vdGlmeUZvY3VzSW4oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gIG9uRm9jdXNPdXQoKSB7XG4gICAgaWYgKHRoaXMuaGFzQmluZGluZygpKSB7XG4gICAgICB0aGlzLnBlY3RpbkZvY3VzQmluZGluZy5mb2N1c0NvbnRleHQubm90aWZ5Rm9jdXNPdXQoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIEBJbmplY3QoTmdab25lKSBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ5NTEzMzU5L2NvdWxkLW5vdC1yZXNvbHZlLXR5cGUtZG9jdW1lbnQtaW4tYW5ndWxhcjUvNTM3MTU2NDIjNTM3MTU2NDJcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQgYXMgRG9jdW1lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiBNYWtlIHRoaXMgYWxzbyB0cmFjayB0aGUgY3VycmVudCBlbmFibGVkL2Rpc2FibGVkIHN0YXRlLlxuICAgIGlmICh0aGlzLmhhc0JpbmRpbmcoKSkge1xuICAgICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICAgIGNoYWluKHRoaXMucGVjdGluRm9jdXNCaW5kaW5nLmZvY3VzQ29udGV4dC5mb2N1c2VkKS5zdWJzY3JpYmUoKGZvY3VzZWQpID0+IHtcbiAgICAgICAgaWYgKGZvY3VzZWQgJiYgIXRoaXMuYWxyZWFkeUhhc0ZvY3VzKCkpIHtcbiAgICAgICAgICB0aGlzLnRyeUFuZEZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBMb2dnZXIuZ2V0KHRoaXMpLndhcm4oXCJwZWN0aW5Gb2N1c0JpbmRpbmcgd2FzIG5pbFwiKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc0JpbmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5wZWN0aW5Gb2N1c0JpbmRpbmcgJiYgISF0aGlzLnBlY3RpbkZvY3VzQmluZGluZy5mb2N1c0NvbnRleHQ7XG4gIH1cblxuLy8gSG9vayBtZXRob2QgZm9yIGRlYnVnZ2luZyB2aWEgdHJhY2luZy5cbiAgYWxyZWFkeUhhc0ZvY3VzKCkge1xuICAgIHJldHVybiB0aGlzLmlzRm9jdXNlZCh0aGlzLmZvY3VzVGFyZ2V0KTtcbiAgfVxuXG4gIC8vIEhvb2sgbWV0aG9kIGZvciBkZWJ1Z2dpbmcgdmlhIHRyYWNpbmcuXG4gIGlzRm9jdXNlZChlbGVtZW50OiBFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZWxlbWVudDtcbiAgfVxuXG4gIHRyeUFuZEZvY3VzKHJldHJpZXM6IG51bWJlciA9IDUpIHtcbiAgICBpZiAodGhpcy5tb2RlbFNob3VsZFN0aWxsSGF2ZUZvY3VzKCkgJiYgdGhpcy5jYW5Gb2N1cygpKSB7XG4gICAgICBpZiAoIXRoaXMuYWxyZWFkeUhhc0ZvY3VzKCkpIHtcbiAgICAgICAgdGhpcy5mb2N1c1RhcmdldC5mb2N1cygpO1xuICAgICAgfVxuICAgICAgLy8gaWYgd2UgZGlkbid0IGdldCB0aGUgZm9jdXMgd2UgdHJ5IGFnYWluIGxhdGVyLlxuICAgICAgaWYgKCF0aGlzLmFscmVhZHlIYXNGb2N1cygpKSB7XG4gICAgICAgIExvZ2dlci5nZXQodGhpcykubG9nKGBmb2N1cyBmYWlsZWQsIHRyeWluZyAke3JldHJpZXN9IG1vcmUgdGltZXNgKTtcbiAgICAgICAgaWYgKHJldHJpZXMgPiAwKSB7XG4gICAgICAgICAgLy8gdHJ5IGFnYWluIG9uIHRoZSBuZXh0IHBhaW50XG4gICAgICAgICAgLy8gVE9ETzogaXMgdGhlcmUgYW4gYW5ndWxhciB3YXkgb2YgZG9pbmcgdGhpcyB3aXRob3V0IGNhbGxpbmcgYSB3aW5kb3cgZnVuY3Rpb24uXG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudHJ5QW5kRm9jdXMocmV0cmllcyAtIDEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIExvZ2dlci5nZXQodGhpcykud2FybihgVHJpZWQgdG8gZm9jdXMgYnV0IGdhdmUgdXAgYXMgdGhlIGNvbXBvbmVudCB3YXNuJ3QgZW5hYmxlZCBvciB2aXNpYmxlLmApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZvY3VzVGFyZ2V0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c0JpbmRpbmdUYXJnZXQgfHwgdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgLy8gSG9vayBtZXRob2QgZm9yIGRlYnVnZ2luZyB2aWEgdHJhY2luZy5cbiAgbW9kZWxTaG91bGRTdGlsbEhhdmVGb2N1cygpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNCaW5kaW5nKCkgJiYgdGhpcy5wZWN0aW5Gb2N1c0JpbmRpbmcuZm9jdXNDb250ZXh0LmZvY3VzZWQudmFsdWU7XG4gIH1cblxuICAvLyBIb29rIG1ldGhvZCBmb3IgZGVidWdnaW5nIHZpYSB0cmFjaW5nLlxuICBjYW5Gb2N1cygpOiBib29sZWFuIHtcbiAgICBjb25zdCBkaW1lbnNpb24gPSB0aGlzLmZvY3VzVGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGhhc1NpemUgPSBkaW1lbnNpb24uaGVpZ2h0ID49IDAgJiYgZGltZW5zaW9uLmhlaWdodCA+PSAwO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1zdHJpbmctbGl0ZXJhbFxuICAgIHJldHVybiBoYXNTaXplICYmICF0aGlzLmZvY3VzVGFyZ2V0WydkaXNhYmxlZCddO1xuICB9XG59XG4iXX0=
|