ngx-tethys 16.2.3 → 16.2.5-0
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 +23 -0
- package/button/styles/button-icon.scss +12 -3
- package/button/styles/mixin.scss +2 -6
- package/esm2022/resizable/resizable.directive.mjs +1 -8
- package/esm2022/version.mjs +2 -2
- package/fesm2022/ngx-tethys-resizable.mjs +0 -7
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/package.json +1 -1
- package/resizable/resizable.directive.d.ts +0 -1
- package/resizable/styles/resizable.scss +1 -0
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [16.2.5-0](https://github.com/atinc/ngx-tethys/compare/16.2.4...16.2.5-0) (2024-03-15)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **resize:** set position by css #INFR-11934 ([fb708ef](https://github.com/atinc/ngx-tethys/commit/fb708efc11f01d704098aba8919ae3b70a8656f2)), closes [#INFR-11934](https://github.com/atinc/ngx-tethys/issues/INFR-11934)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### BREAKING CHANGES
|
|
14
|
+
|
|
15
|
+
* **resize:** remove set relative positon in ngAfterViewInit
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## [16.2.4](https://github.com/atinc/ngx-tethys/compare/16.2.3...16.2.4) (2024-03-01)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* **button:** fix button jitter upon hovering when thyShape is circle-dashed or circle-solid #INFR-11703 [@wumeimin](https://github.com/wumeimin) [@xinglu](https://github.com/xinglu) ([#3037](https://github.com/atinc/ngx-tethys/issues/3037)) ([f50dc06](https://github.com/atinc/ngx-tethys/commit/f50dc06050d4b7235fe562c449c393ea71bf4a0e)), closes [#INFR-11703](https://github.com/atinc/ngx-tethys/issues/INFR-11703)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
5
28
|
## [16.2.3](https://github.com/atinc/ngx-tethys/compare/16.2.2...16.2.3) (2024-02-29)
|
|
6
29
|
|
|
7
30
|
|
|
@@ -43,14 +43,18 @@
|
|
|
43
43
|
.wtf,
|
|
44
44
|
.thy-icon {
|
|
45
45
|
color: variables.$btn-icon-color;
|
|
46
|
-
border-color:
|
|
47
|
-
border-width:
|
|
46
|
+
border-color: transparent;
|
|
47
|
+
border-width: 2px;
|
|
48
48
|
border-radius: 50%;
|
|
49
49
|
line-height: 1;
|
|
50
|
+
|
|
51
|
+
outline-width: 1px;
|
|
52
|
+
outline-color: variables.$btn-icon-color;
|
|
53
|
+
outline-offset: -1px;
|
|
50
54
|
}
|
|
51
55
|
|
|
52
56
|
.thy-icon {
|
|
53
|
-
transition: border 200ms, padding 200ms;
|
|
57
|
+
transition: border 200ms, padding 200ms, outline 200ms;
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
.wtf {
|
|
@@ -65,6 +69,7 @@
|
|
|
65
69
|
.wtf,
|
|
66
70
|
.thy-icon {
|
|
67
71
|
border-width: 2px;
|
|
72
|
+
outline: 0 none;
|
|
68
73
|
}
|
|
69
74
|
&:not(:hover):not(.invalid):not(.active):not(.btn-icon-active).circle-solid {
|
|
70
75
|
i,
|
|
@@ -91,6 +96,7 @@
|
|
|
91
96
|
border-color: variables.$primary;
|
|
92
97
|
color: variables.$primary;
|
|
93
98
|
border-style: solid;
|
|
99
|
+
outline: 0 none;
|
|
94
100
|
}
|
|
95
101
|
}
|
|
96
102
|
&.invalid {
|
|
@@ -100,6 +106,7 @@
|
|
|
100
106
|
.thy-icon {
|
|
101
107
|
border-color: variables.$danger;
|
|
102
108
|
color: variables.$danger;
|
|
109
|
+
outline: 0 none;
|
|
103
110
|
}
|
|
104
111
|
&:hover,
|
|
105
112
|
&:focus {
|
|
@@ -116,6 +123,7 @@
|
|
|
116
123
|
.wtf,
|
|
117
124
|
.thy-icon {
|
|
118
125
|
border-style: dashed;
|
|
126
|
+
outline-style: dashed;
|
|
119
127
|
}
|
|
120
128
|
}
|
|
121
129
|
&.circle-solid {
|
|
@@ -123,6 +131,7 @@
|
|
|
123
131
|
.wtf,
|
|
124
132
|
.thy-icon {
|
|
125
133
|
border-style: solid;
|
|
134
|
+
outline-style: solid;
|
|
126
135
|
}
|
|
127
136
|
}
|
|
128
137
|
|
package/button/styles/mixin.scss
CHANGED
|
@@ -191,17 +191,12 @@
|
|
|
191
191
|
i,
|
|
192
192
|
.wtf,
|
|
193
193
|
.thy-icon {
|
|
194
|
-
padding: $round-padding;
|
|
194
|
+
padding: $round-padding - variables.$btn-icon-circle-padding-difference;
|
|
195
195
|
font-size: $btn-icon-circle-font-size;
|
|
196
196
|
width: $diameter;
|
|
197
197
|
height: $diameter;
|
|
198
198
|
}
|
|
199
199
|
&.border-thick {
|
|
200
|
-
i,
|
|
201
|
-
.wtf,
|
|
202
|
-
.thy-icon {
|
|
203
|
-
padding: $round-padding - variables.$btn-icon-circle-padding-difference;
|
|
204
|
-
}
|
|
205
200
|
@include hover.hover-focus {
|
|
206
201
|
i,
|
|
207
202
|
.wtf {
|
|
@@ -251,6 +246,7 @@
|
|
|
251
246
|
.thy-icon {
|
|
252
247
|
border-style: solid;
|
|
253
248
|
border-width: 2px;
|
|
249
|
+
outline: 0 none;
|
|
254
250
|
padding: $round-padding - variables.$btn-icon-circle-padding-difference;
|
|
255
251
|
}
|
|
256
252
|
}
|
|
@@ -114,7 +114,6 @@ export class ThyResizableDirective extends _MixinBase {
|
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
116
|
this.nativeElement = this.elementRef.nativeElement;
|
|
117
|
-
this.setPosition();
|
|
118
117
|
this.ngZone.runOutsideAngular(() => {
|
|
119
118
|
fromEvent(this.nativeElement, 'mouseenter')
|
|
120
119
|
.pipe(takeUntil(this.ngUnsubscribe$))
|
|
@@ -149,12 +148,6 @@ export class ThyResizableDirective extends _MixinBase {
|
|
|
149
148
|
}
|
|
150
149
|
setCompatibleStyle(document.body, 'user-select', 'none');
|
|
151
150
|
}
|
|
152
|
-
setPosition() {
|
|
153
|
-
const position = getComputedStyle(this.nativeElement).position;
|
|
154
|
-
if (position === 'static' || !position) {
|
|
155
|
-
this.renderer.setStyle(this.nativeElement, 'position', 'relative');
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
151
|
endResize(event) {
|
|
159
152
|
this.renderer.setStyle(document.body, 'cursor', '');
|
|
160
153
|
setCompatibleStyle(document.body, 'user-select', '');
|
|
@@ -402,4 +395,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
|
|
|
402
395
|
}], thyResizeEnd: [{
|
|
403
396
|
type: Output
|
|
404
397
|
}] } });
|
|
405
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZXNpemFibGUvcmVzaXphYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFHVCxVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUErQixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBRWpDLE1BQU0sVUFBVSxHQUFtRCxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUUvRjs7O0dBR0c7QUFXSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBVTtJQWdGakQsWUFDWSxVQUFtQyxFQUNuQyxRQUFtQixFQUNuQixRQUFrQixFQUNsQixNQUFjLEVBQ2QsbUJBQXdDLEVBQ3hDLGlCQUFvQztRQUU1QyxLQUFLLEVBQUUsQ0FBQztRQVBBLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixD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VyxFQUFFOzswREFBMEI7QUFLakQ7SUFBVSxXQUFXLEVBQUU7O2lFQUFpQztBQUt4RDtJQUFVLFdBQVcsRUFBRTs7MkRBQTJCO0FBS2xEO0lBQVUsV0FBVyxFQUFFOzsyREFBMkI7QUFLbEQ7SUFBVSxZQUFZLEVBQUU7O2lFQUFxQztBQUs3RDtJQUFVLFlBQVksRUFBRTs7eURBQTZCO0FBS3JEO0lBQVUsWUFBWSxFQUFFOzswREFBOEI7MkZBeEQ3QyxxQkFBcUI7a0JBVmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ2hDLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsZUFBZTt3QkFDdEIsZ0NBQWdDLEVBQUUsVUFBVTt3QkFDNUMsZ0NBQWdDLEVBQUUsYUFBYTtxQkFDbEQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3VPQU9ZLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS2tCLFlBQVk7c0JBQW5DLEtBQUs7Z0JBS2tCLFdBQVc7c0JBQWxDLEtBQUs7Z0JBS2tCLFlBQVk7c0JBQW5DLEtBQUs7Z0JBS2tCLFdBQVc7c0JBQWxDLEtBQUs7Z0JBS2tCLGtCQUFrQjtzQkFBekMsS0FBSztnQkFLa0IsWUFBWTtzQkFBbkMsS0FBSztnQkFLa0IsWUFBWTtzQkFBbkMsS0FBSztnQkFLbUIsa0JBQWtCO3NCQUExQyxLQUFLO2dCQUttQixVQUFVO3NCQUFsQyxLQUFLO2dCQUttQixXQUFXO3NCQUFuQyxLQUFLO2dCQUthLFNBQVM7c0JBQTNCLE1BQU07Z0JBS1ksY0FBYztzQkFBaEMsTUFBTTtnQkFLWSxZQUFZO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgTmdab25lLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciwgVGh5VW5zdWJzY3JpYmUsIE1peGluQmFzZSwgbWl4aW5VbnN1YnNjcmliZSwgSW5wdXRCb29sZWFuLCBJbnB1dE51bWJlciB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaHlSZXNpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaHlSZXNpemVIYW5kbGVNb3VzZURvd25FdmVudCB9IGZyb20gJy4vcmVzaXplLWhhbmRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh5UmVzaXplRXZlbnQgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBnZXRFdmVudFdpdGhQb2ludCwgZW5zdXJlSW5Cb3VuZHMsIHNldENvbXBhdGlibGVTdHlsZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IF9NaXhpbkJhc2U6IENvbnN0cnVjdG9yPFRoeVVuc3Vic2NyaWJlPiAmIHR5cGVvZiBNaXhpbkJhc2UgPSBtaXhpblVuc3Vic2NyaWJlKE1peGluQmFzZSk7XG5cbi8qKlxuICog6LCD5pW05bC65a+4XG4gKiBAbmFtZSB0aHlSZXNpemFibGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5UmVzaXphYmxlXScsXG4gICAgcHJvdmlkZXJzOiBbVGh5UmVzaXphYmxlU2VydmljZV0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1yZXNpemFibGUnLFxuICAgICAgICAnW2NsYXNzLnRoeS1yZXNpemFibGUtcmVzaXppbmddJzogJ3Jlc2l6aW5nJyxcbiAgICAgICAgJ1tjbGFzcy50aHktcmVzaXphYmxlLWRpc2FibGVkXSc6ICd0aHlEaXNhYmxlZCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5UmVzaXphYmxlRGlyZWN0aXZlIGV4dGVuZHMgX01peGluQmFzZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICog6LCD5pW05bC65a+455qE6L6555WMXG4gICAgICogQGRlZmF1bHQgcGFyZW50XG4gICAgICogQHR5cGUgJ3dpbmRvdycgfCAncGFyZW50JyB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Qm91bmRzOiAnd2luZG93JyB8ICdwYXJlbnQnIHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSAncGFyZW50JztcblxuICAgIC8qKlxuICAgICAqIOacgOWkp+mrmOW6pijotoXov4fovrnnlYzpg6jliIblv73nlaUpXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgdGh5TWF4SGVpZ2h0PzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5pyA5aSn5a695bqmKOi2hei/h+i+ueeVjOmDqOWIhuW/veeVpSlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSB0aHlNYXhXaWR0aD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOacgOWwj+mrmOW6plxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIHRoeU1pbkhlaWdodDogbnVtYmVyID0gNDA7XG5cbiAgICAvKipcbiAgICAgKiDmnIDlsI/lrr3luqZcbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSB0aHlNaW5XaWR0aDogbnVtYmVyID0gNDA7XG5cbiAgICAvKipcbiAgICAgKiDmoIXmoLzliJfmlbAoLTEg5Li65LiN5qCF5qC8KVxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIHRoeUdyaWRDb2x1bW5Db3VudDogbnVtYmVyID0gLTE7XG5cbiAgICAvKipcbiAgICAgKiDmoIXmoLzmnIDlpKfliJfmlbBcbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSB0aHlNYXhDb2x1bW46IG51bWJlciA9IC0xO1xuXG4gICAgLyoqXG4gICAgICog5qCF5qC85pyA5bCP5YiX5pWwXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgdGh5TWluQ29sdW1uOiBudW1iZXIgPSAtMTtcblxuICAgIC8qKlxuICAgICAqIOmUgeWumuWuvemrmOavlFxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSB0aHlMb2NrQXNwZWN0UmF0aW86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpumihOiniOaooeW8j1xuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSB0aHlQcmV2aWV3OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbnpoHnlKjosIPmlbTlpKflsI9cbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdGh5RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOiwg+aVtOWwuuWvuOaXtueahOS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlSZXNpemUgPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVJlc2l6ZUV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICog5byA5aeL6LCD5pW05bC65a+45pe255qE5LqL5Lu2XG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeVJlc2l6ZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlSZXNpemVFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOe7k+adn+iwg+aVtOWwuuWvuOaXtueahOS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlSZXNpemVFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVJlc2l6ZUV2ZW50PigpO1xuXG4gICAgcmVzaXppbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIG5hdGl2ZUVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIG5hdGl2ZUVsZW1lbnRSZWN0ITogQ2xpZW50UmVjdCB8IERPTVJlY3Q7XG4gICAgcHJpdmF0ZSBzaXplQ2FjaGU6IFRoeVJlc2l6ZUV2ZW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBnaG9zdEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBjdXJyZW50SGFuZGxlRXZlbnQ6IFRoeVJlc2l6ZUhhbmRsZU1vdXNlRG93bkV2ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSB0aHlSZXNpemFibGVTZXJ2aWNlOiBUaHlSZXNpemFibGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UuaGFuZGxlTW91c2VEb3duT3V0c2lkZUFuZ3VsYXIkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudGh5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlc2l6aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IHsgbW91c2VFdmVudCB9ID0gZXZlbnQ7XG4gICAgICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2Uuc3RhcnRSZXNpemluZyhtb3VzZUV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEhhbmRsZUV2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgICB0aGlzLnNldEN1cnNvcigpO1xuICAgICAgICAgICAgLy8gUmUtZW50ZXIgdGhlIEFuZ3VsYXIgem9uZSBhbmQgcnVuIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIG9ubHkgaWYgdGhlcmUncmUgYW55IGB0aHlSZXNpemVTdGFydGAgbGlzdGVuZXJzLFxuICAgICAgICAgICAgLy8gZS5nLjogYDxkaXYgdGh5UmVzaXphYmxlICh0aHlSZXNpemVTdGFydCk9XCIuLi5cIj48L2Rpdj5gLlxuICAgICAgICAgICAgaWYgKHRoaXMudGh5UmVzaXplU3RhcnQub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnRoeVJlc2l6ZVN0YXJ0LmVtaXQoeyBtb3VzZUV2ZW50IH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudFJlY3QgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudGh5UmVzaXphYmxlU2VydmljZS5kb2N1bWVudE1vdXNlVXBPdXRzaWRlQW5ndWxhciQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNpemluZykge1xuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXppbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UuZG9jdW1lbnRNb3VzZVVwT3V0c2lkZUFuZ3VsYXIkLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kUmVzaXplKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50aHlSZXNpemFibGVTZXJ2aWNlLmRvY3VtZW50TW91c2VNb3ZlT3V0c2lkZUFuZ3VsYXIkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzaXppbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZShldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWVudGVyJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGh5UmVzaXphYmxlU2VydmljZS5tb3VzZUVudGVyZWRPdXRzaWRlQW5ndWxhciQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aHlSZXNpemFibGVTZXJ2aWNlLm1vdXNlRW50ZXJlZE91dHNpZGVBbmd1bGFyJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0Q3Vyc29yKCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY3VycmVudEhhbmRsZUV2ZW50IS5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ2N1cnNvcicsICdldy1yZXNpemUnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ2N1cnNvcicsICducy1yZXNpemUnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvcExlZnQnOlxuICAgICAgICAgICAgY2FzZSAnYm90dG9tUmlnaHQnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ2N1cnNvcicsICdud3NlLXJlc2l6ZScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wUmlnaHQnOlxuICAgICAgICAgICAgY2FzZSAnYm90dG9tTGVmdCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnY3Vyc29yJywgJ25lc3ctcmVzaXplJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q29tcGF0aWJsZVN0eWxlKGRvY3VtZW50LmJvZHksICd1c2VyLXNlbGVjdCcsICdub25lJyk7XG4gICAgfVxuXG4gICAgc2V0UG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLm5hdGl2ZUVsZW1lbnQpLnBvc2l0aW9uO1xuICAgICAgICBpZiAocG9zaXRpb24gPT09ICdzdGF0aWMnIHx8ICFwb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLm5hdGl2ZUVsZW1lbnQsICdwb3NpdGlvbicsICdyZWxhdGl2ZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZW5kUmVzaXplKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmJvZHksICdjdXJzb3InLCAnJyk7XG4gICAgICAgIHNldENvbXBhdGlibGVTdHlsZShkb2N1bWVudC5ib2R5LCAndXNlci1zZWxlY3QnLCAnJyk7XG4gICAgICAgIHRoaXMucmVtb3ZlR2hvc3RFbGVtZW50KCk7XG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnNpemVDYWNoZVxuICAgICAgICAgICAgPyB7IC4uLnRoaXMuc2l6ZUNhY2hlIH1cbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMubmF0aXZlRWxlbWVudFJlY3Qud2lkdGgsXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IHRoaXMubmF0aXZlRWxlbWVudFJlY3QuaGVpZ2h0XG4gICAgICAgICAgICAgIH07XG4gICAgICAgIC8vIFJlLWVudGVyIHRoZSBBbmd1bGFyIHpvbmUgYW5kIHJ1biB0aGUgY2hhbmdlIGRldGVjdGlvbiBvbmx5IGlmIHRoZXJlJ3JlIGFueSBgdGh5UmVzaXplRW5kYCBsaXN0ZW5lcnMsXG4gICAgICAgIC8vIGUuZy46IGA8ZGl2IHRoeVJlc2l6YWJsZSAodGh5UmVzaXplRW5kKT1cIi4uLlwiPjwvZGl2PmAuXG4gICAgICAgIGlmICh0aGlzLnRoeVJlc2l6ZUVuZC5vYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGh5UmVzaXplRW5kLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAuLi5zaXplLFxuICAgICAgICAgICAgICAgICAgICBtb3VzZUV2ZW50OiBldmVudFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaXplQ2FjaGUgPSBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRIYW5kbGVFdmVudCA9IG51bGw7XG4gICAgfVxuXG4gICAgcmVzaXplKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuYXRpdmVFbGVtZW50UmVjdCA9IHRoaXMubmF0aXZlRWxlbWVudFJlY3Q7XG4gICAgICAgIGNvbnN0IHJlc2l6ZUV2ZW50ID0gZ2V0RXZlbnRXaXRoUG9pbnQoZXZlbnQpO1xuICAgICAgICBjb25zdCBoYW5kbGVFdmVudCA9IGdldEV2ZW50V2l0aFBvaW50KHRoaXMuY3VycmVudEhhbmRsZUV2ZW50IS5tb3VzZUV2ZW50KTtcbiAgICAgICAgbGV0IHdpZHRoID0gbmF0aXZlRWxlbWVudFJlY3Qud2lkdGg7XG4gICAgICAgIGxldCBoZWlnaHQgPSBuYXRpdmVFbGVtZW50UmVjdC5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IHJhdGlvID0gdGhpcy50aHlMb2NrQXNwZWN0UmF0aW8gPyB3aWR0aCAvIGhlaWdodCA6IC0xO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY3VycmVudEhhbmRsZUV2ZW50IS5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbVJpZ2h0JzpcbiAgICAgICAgICAgICAgICB3aWR0aCA9IHJlc2l6ZUV2ZW50LmNsaWVudFggLSBuYXRpdmVFbGVtZW50UmVjdC5sZWZ0O1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IHJlc2l6ZUV2ZW50LmNsaWVudFkgLSBuYXRpdmVFbGVtZW50UmVjdC50b3A7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdib3R0b21MZWZ0JzpcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG5hdGl2ZUVsZW1lbnRSZWN0LndpZHRoICsgKGhhbmRsZUV2ZW50LmNsaWVudFggLSByZXNpemVFdmVudC5jbGllbnRYKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSByZXNpemVFdmVudC5jbGllbnRZIC0gbmF0aXZlRWxlbWVudFJlY3QudG9wO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wUmlnaHQnOlxuICAgICAgICAgICAgICAgIHdpZHRoID0gcmVzaXplRXZlbnQuY2xpZW50WCAtIG5hdGl2ZUVsZW1lbnRSZWN0LmxlZnQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gbmF0aXZlRWxlbWVudFJlY3QuaGVpZ2h0ICsgKGhhbmRsZUV2ZW50LmNsaWVudFkgLSByZXNpemVFdmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvcExlZnQnOlxuICAgICAgICAgICAgICAgIHdpZHRoID0gbmF0aXZlRWxlbWVudFJlY3Qud2lkdGggKyAoaGFuZGxlRXZlbnQuY2xpZW50WCAtIHJlc2l6ZUV2ZW50LmNsaWVudFgpO1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IG5hdGl2ZUVsZW1lbnRSZWN0LmhlaWdodCArIChoYW5kbGVFdmVudC5jbGllbnRZIC0gcmVzaXplRXZlbnQuY2xpZW50WSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgICAgICAgIGhlaWdodCA9IG5hdGl2ZUVsZW1lbnRSZWN0LmhlaWdodCArIChoYW5kbGVFdmVudC5jbGllbnRZIC0gcmVzaXplRXZlbnQuY2xpZW50WSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgd2lkdGggPSByZXNpemVFdmVudC5jbGllbnRYIC0gbmF0aXZlRWxlbWVudFJlY3QubGVmdDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gcmVzaXplRXZlbnQuY2xpZW50WSAtIG5hdGl2ZUVsZW1lbnRSZWN0LnRvcDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIHdpZHRoID0gbmF0aXZlRWxlbWVudFJlY3Qud2lkdGggKyAoaGFuZGxlRXZlbnQuY2xpZW50WCAtIHJlc2l6ZUV2ZW50LmNsaWVudFgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLmNhbGNTaXplKHdpZHRoLCBoZWlnaHQsIHJhdGlvKTtcbiAgICAgICAgdGhpcy5zaXplQ2FjaGUgPSB7IC4uLnNpemUgfTtcbiAgICAgICAgLy8gUmUtZW50ZXIgdGhlIEFuZ3VsYXIgem9uZSBhbmQgcnVuIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIG9ubHkgaWYgdGhlcmUncmUgYW55IGB0aHlSZXNpemVgIGxpc3RlbmVycyxcbiAgICAgICAgLy8gZS5nLjogYDxkaXYgdGh5UmVzaXphYmxlICh0aHlSZXNpemUpPVwiLi4uXCI+PC9kaXY+YC5cbiAgICAgICAgaWYgKHRoaXMudGh5UmVzaXplLm9ic2VydmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlSZXNpemUuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLnNpemUsXG4gICAgICAgICAgICAgICAgICAgIG1vdXNlRXZlbnQ6IGV2ZW50XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRoeVByZXZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlld1Jlc2l6ZShzaXplKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNhbGNTaXplKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCByYXRpbzogbnVtYmVyKTogVGh5UmVzaXplRXZlbnQge1xuICAgICAgICBsZXQgbmV3V2lkdGg6IG51bWJlcjtcbiAgICAgICAgbGV0IG5ld0hlaWdodDogbnVtYmVyO1xuICAgICAgICBsZXQgbWF4V2lkdGg6IG51bWJlcjtcbiAgICAgICAgbGV0IG1heEhlaWdodDogbnVtYmVyO1xuICAgICAgICBsZXQgY29sID0gMDtcbiAgICAgICAgbGV0IHNwYW5XaWR0aCA9IDA7XG4gICAgICAgIGxldCBtaW5XaWR0aCA9IHRoaXMudGh5TWluV2lkdGg7XG4gICAgICAgIGxldCBib3VuZFdpZHRoID0gSW5maW5pdHk7XG4gICAgICAgIGxldCBib3VuZEhlaWdodCA9IEluZmluaXR5O1xuICAgICAgICBpZiAodGhpcy50aHlCb3VuZHMgPT09ICdwYXJlbnQnKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChwYXJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFJlY3QgPSBwYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgYm91bmRXaWR0aCA9IHBhcmVudFJlY3Qud2lkdGg7XG4gICAgICAgICAgICAgICAgYm91bmRIZWlnaHQgPSBwYXJlbnRSZWN0LmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRoeUJvdW5kcyA9PT0gJ3dpbmRvdycpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGJvdW5kV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgICAgICAgICBib3VuZEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRoeUJvdW5kcyAmJiB0aGlzLnRoeUJvdW5kcy5uYXRpdmVFbGVtZW50ICYmIHRoaXMudGh5Qm91bmRzLm5hdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgYm91bmRzUmVjdCA9IHRoaXMudGh5Qm91bmRzLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBib3VuZFdpZHRoID0gYm91bmRzUmVjdC53aWR0aDtcbiAgICAgICAgICAgIGJvdW5kSGVpZ2h0ID0gYm91bmRzUmVjdC5oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBtYXhXaWR0aCA9IGVuc3VyZUluQm91bmRzKHRoaXMudGh5TWF4V2lkdGghLCBib3VuZFdpZHRoKTtcbiAgICAgICAgbWF4SGVpZ2h0ID0gZW5zdXJlSW5Cb3VuZHModGhpcy50aHlNYXhIZWlnaHQhLCBib3VuZEhlaWdodCk7XG5cbiAgICAgICAgaWYgKHRoaXMudGh5R3JpZENvbHVtbkNvdW50ICE9PSAtMSkge1xuICAgICAgICAgICAgc3BhbldpZHRoID0gbWF4V2lkdGggLyB0aGlzLnRoeUdyaWRDb2x1bW5Db3VudDtcbiAgICAgICAgICAgIG1pbldpZHRoID0gdGhpcy50aHlNaW5Db2x1bW4gIT09IC0xID8gc3BhbldpZHRoICogdGhpcy50aHlNaW5Db2x1bW4gOiBtaW5XaWR0aDtcbiAgICAgICAgICAgIG1heFdpZHRoID0gdGhpcy50aHlNYXhDb2x1bW4gIT09IC0xID8gc3BhbldpZHRoICogdGhpcy50aHlNYXhDb2x1bW4gOiBtYXhXaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyYXRpbyAhPT0gLTEpIHtcbiAgICAgICAgICAgIGlmICgvKGxlZnR8cmlnaHQpL2kudGVzdCh0aGlzLmN1cnJlbnRIYW5kbGVFdmVudCEuZGlyZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgIG5ld1dpZHRoID0gTWF0aC5taW4oTWF0aC5tYXgod2lkdGgsIG1pbldpZHRoKSwgbWF4V2lkdGgpO1xuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KG5ld1dpZHRoIC8gcmF0aW8sIHRoaXMudGh5TWluSGVpZ2h0KSwgbWF4SGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBpZiAobmV3SGVpZ2h0ID49IG1heEhlaWdodCB8fCBuZXdIZWlnaHQgPD0gdGhpcy50aHlNaW5IZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1pbihNYXRoLm1heChuZXdIZWlnaHQgKiByYXRpbywgbWluV2lkdGgpLCBtYXhXaWR0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChoZWlnaHQsIHRoaXMudGh5TWluSGVpZ2h0KSwgbWF4SGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWluKE1hdGgubWF4KG5ld0hlaWdodCAqIHJhdGlvLCBtaW5XaWR0aCksIG1heFdpZHRoKTtcbiAgICAgICAgICAgICAgICBpZiAobmV3V2lkdGggPj0gbWF4V2lkdGggfHwgbmV3V2lkdGggPD0gbWluV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4oTWF0aC5tYXgobmV3V2lkdGggLyByYXRpbywgdGhpcy50aHlNaW5IZWlnaHQpLCBtYXhIZWlnaHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld1dpZHRoID0gTWF0aC5taW4oTWF0aC5tYXgod2lkdGgsIG1pbldpZHRoKSwgbWF4V2lkdGgpO1xuICAgICAgICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4oTWF0aC5tYXgoaGVpZ2h0LCB0aGlzLnRoeU1pbkhlaWdodCksIG1heEhlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50aHlHcmlkQ29sdW1uQ291bnQgIT09IC0xKSB7XG4gICAgICAgICAgICBjb2wgPSBNYXRoLnJvdW5kKG5ld1dpZHRoIC8gc3BhbldpZHRoKTtcbiAgICAgICAgICAgIG5ld1dpZHRoID0gY29sICogc3BhbldpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbCxcbiAgICAgICAgICAgIHdpZHRoOiBuZXdXaWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogbmV3SGVpZ2h0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJldmlld1Jlc2l6ZSh7IHdpZHRoLCBoZWlnaHQgfTogVGh5UmVzaXplRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVHaG9zdEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmdob3N0RWxlbWVudCwgJ3dpZHRoJywgYCR7d2lkdGh9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmdob3N0RWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xuICAgIH1cblxuICAgIGNyZWF0ZUdob3N0RWxlbWVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmdob3N0RWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5naG9zdEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5naG9zdEVsZW1lbnQsICdjbGFzcycsICd0aHktcmVzaXphYmxlLXByZXZpZXcnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcy5naG9zdEVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJlbW92ZUdob3N0RWxlbWVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ2hvc3RFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcy5naG9zdEVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2hvc3RFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5zaXplQ2FjaGUgPSBudWxsO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
398
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZXNpemFibGUvcmVzaXphYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFHVCxVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUErQixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBRWpDLE1BQU0sVUFBVSxHQUFtRCxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUUvRjs7O0dBR0c7QUFXSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBVTtJQWdGakQsWUFDWSxVQUFtQyxFQUNuQyxRQUFtQixFQUNuQixRQUFrQixFQUNsQixNQUFjLEVBQ2QsbUJBQXdDLEVBQ3hDLGlCQUFvQztRQUU1QyxLQUFLLEVBQUUsQ0FBQztRQVBBLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1CLEdBQW5CLG1CQUFtQixD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LFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNoQyxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGVBQWU7d0JBQ3RCLGdDQUFnQyxFQUFFLFVBQVU7d0JBQzVDLGdDQUFnQyxFQUFFLGFBQWE7cUJBQ2xEO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt1T0FPWSxTQUFTO3NCQUFqQixLQUFLO2dCQUtrQixZQUFZO3NCQUFuQyxLQUFLO2dCQUtrQixXQUFXO3NCQUFsQyxLQUFLO2dCQUtrQixZQUFZO3NCQUFuQyxLQUFLO2dCQUtrQixXQUFXO3NCQUFsQyxLQUFLO2dCQUtrQixrQkFBa0I7c0JBQXpDLEtBQUs7Z0JBS2tCLFlBQVk7c0JBQW5DLEtBQUs7Z0JBS2tCLFlBQVk7c0JBQW5DLEtBQUs7Z0JBS21CLGtCQUFrQjtzQkFBMUMsS0FBSztnQkFLbUIsVUFBVTtzQkFBbEMsS0FBSztnQkFLbUIsV0FBVztzQkFBbkMsS0FBSztnQkFLYSxTQUFTO3NCQUEzQixNQUFNO2dCQUtZLGNBQWM7c0JBQWhDLE1BQU07Z0JBS1ksWUFBWTtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25EZXN0cm95LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgUmVuZGVyZXIyLFxuICAgIE5nWm9uZSxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IsIFRoeVVuc3Vic2NyaWJlLCBNaXhpbkJhc2UsIG1peGluVW5zdWJzY3JpYmUsIElucHV0Qm9vbGVhbiwgSW5wdXROdW1iZXIgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5UmVzaXphYmxlU2VydmljZSB9IGZyb20gJy4vcmVzaXphYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGh5UmVzaXplSGFuZGxlTW91c2VEb3duRXZlbnQgfSBmcm9tICcuL3Jlc2l6ZS1oYW5kbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeVJlc2l6ZUV2ZW50IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZ2V0RXZlbnRXaXRoUG9pbnQsIGVuc3VyZUluQm91bmRzLCBzZXRDb21wYXRpYmxlU3R5bGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5jb25zdCBfTWl4aW5CYXNlOiBDb25zdHJ1Y3RvcjxUaHlVbnN1YnNjcmliZT4gJiB0eXBlb2YgTWl4aW5CYXNlID0gbWl4aW5VbnN1YnNjcmliZShNaXhpbkJhc2UpO1xuXG4vKipcbiAqIOiwg+aVtOWwuuWvuFxuICogQG5hbWUgdGh5UmVzaXphYmxlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoeVJlc2l6YWJsZV0nLFxuICAgIHByb3ZpZGVyczogW1RoeVJlc2l6YWJsZVNlcnZpY2VdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktcmVzaXphYmxlJyxcbiAgICAgICAgJ1tjbGFzcy50aHktcmVzaXphYmxlLXJlc2l6aW5nXSc6ICdyZXNpemluZycsXG4gICAgICAgICdbY2xhc3MudGh5LXJlc2l6YWJsZS1kaXNhYmxlZF0nOiAndGh5RGlzYWJsZWQnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeVJlc2l6YWJsZURpcmVjdGl2ZSBleHRlbmRzIF9NaXhpbkJhc2UgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIOiwg+aVtOWwuuWvuOeahOi+ueeVjFxuICAgICAqIEBkZWZhdWx0IHBhcmVudFxuICAgICAqIEB0eXBlICd3aW5kb3cnIHwgJ3BhcmVudCcgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUJvdW5kczogJ3dpbmRvdycgfCAncGFyZW50JyB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gJ3BhcmVudCc7XG5cbiAgICAvKipcbiAgICAgKiDmnIDlpKfpq5jluqYo6LaF6L+H6L6555WM6YOo5YiG5b+955WlKVxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIHRoeU1heEhlaWdodD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOacgOWkp+WuveW6pijotoXov4fovrnnlYzpg6jliIblv73nlaUpXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgdGh5TWF4V2lkdGg/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDmnIDlsI/pq5jluqZcbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSB0aHlNaW5IZWlnaHQ6IG51bWJlciA9IDQwO1xuXG4gICAgLyoqXG4gICAgICog5pyA5bCP5a695bqmXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgdGh5TWluV2lkdGg6IG51bWJlciA9IDQwO1xuXG4gICAgLyoqXG4gICAgICog5qCF5qC85YiX5pWwKC0xIOS4uuS4jeagheagvClcbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSB0aHlHcmlkQ29sdW1uQ291bnQ6IG51bWJlciA9IC0xO1xuXG4gICAgLyoqXG4gICAgICog5qCF5qC85pyA5aSn5YiX5pWwXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgdGh5TWF4Q29sdW1uOiBudW1iZXIgPSAtMTtcblxuICAgIC8qKlxuICAgICAqIOagheagvOacgOWwj+WIl+aVsFxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIHRoeU1pbkNvbHVtbjogbnVtYmVyID0gLTE7XG5cbiAgICAvKipcbiAgICAgKiDplIHlrprlrr3pq5jmr5RcbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdGh5TG9ja0FzcGVjdFJhdGlvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbpooTop4jmqKHlvI9cbiAgICAgKi9cbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdGh5UHJldmlldzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55So6LCD5pW05aSn5bCPXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDosIPmlbTlsLrlr7jml7bnmoTkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5UmVzaXplID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlSZXNpemVFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIOW8gOWni+iwg+aVtOWwuuWvuOaXtueahOS6i+S7tlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlSZXNpemVTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5UmVzaXplRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDnu5PmnZ/osIPmlbTlsLrlr7jml7bnmoTkuovku7ZcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5UmVzaXplRW5kID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlSZXNpemVFdmVudD4oKTtcblxuICAgIHJlc2l6aW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBuYXRpdmVFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBuYXRpdmVFbGVtZW50UmVjdCE6IENsaWVudFJlY3QgfCBET01SZWN0O1xuICAgIHByaXZhdGUgc2l6ZUNhY2hlOiBUaHlSZXNpemVFdmVudCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgZ2hvc3RFbGVtZW50OiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgY3VycmVudEhhbmRsZUV2ZW50OiBUaHlSZXNpemVIYW5kbGVNb3VzZURvd25FdmVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgdGh5UmVzaXphYmxlU2VydmljZTogVGh5UmVzaXphYmxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy50aHlSZXNpemFibGVTZXJ2aWNlLmhhbmRsZU1vdXNlRG93bk91dHNpZGVBbmd1bGFyJC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5yZXNpemluZyA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCB7IG1vdXNlRXZlbnQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgdGhpcy50aHlSZXNpemFibGVTZXJ2aWNlLnN0YXJ0UmVzaXppbmcobW91c2VFdmVudCk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRIYW5kbGVFdmVudCA9IGV2ZW50O1xuICAgICAgICAgICAgdGhpcy5zZXRDdXJzb3IoKTtcbiAgICAgICAgICAgIC8vIFJlLWVudGVyIHRoZSBBbmd1bGFyIHpvbmUgYW5kIHJ1biB0aGUgY2hhbmdlIGRldGVjdGlvbiBvbmx5IGlmIHRoZXJlJ3JlIGFueSBgdGh5UmVzaXplU3RhcnRgIGxpc3RlbmVycyxcbiAgICAgICAgICAgIC8vIGUuZy46IGA8ZGl2IHRoeVJlc2l6YWJsZSAodGh5UmVzaXplU3RhcnQpPVwiLi4uXCI+PC9kaXY+YC5cbiAgICAgICAgICAgIGlmICh0aGlzLnRoeVJlc2l6ZVN0YXJ0Lm9ic2VydmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy50aHlSZXNpemVTdGFydC5lbWl0KHsgbW91c2VFdmVudCB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnRSZWN0ID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UuZG9jdW1lbnRNb3VzZVVwT3V0c2lkZUFuZ3VsYXIkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzaXppbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlSZXNpemFibGVTZXJ2aWNlLmRvY3VtZW50TW91c2VVcE91dHNpZGVBbmd1bGFyJC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVuZFJlc2l6ZShldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudGh5UmVzaXphYmxlU2VydmljZS5kb2N1bWVudE1vdXNlTW92ZU91dHNpZGVBbmd1bGFyJC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlc2l6aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemUoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMubmF0aXZlRWxlbWVudCwgJ21vdXNlZW50ZXInKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aHlSZXNpemFibGVTZXJ2aWNlLm1vdXNlRW50ZXJlZE91dHNpZGVBbmd1bGFyJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5uYXRpdmVFbGVtZW50LCAnbW91c2VsZWF2ZScpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeVJlc2l6YWJsZVNlcnZpY2UubW91c2VFbnRlcmVkT3V0c2lkZUFuZ3VsYXIkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRDdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5jdXJyZW50SGFuZGxlRXZlbnQhLmRpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnY3Vyc29yJywgJ2V3LXJlc2l6ZScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnY3Vyc29yJywgJ25zLXJlc2l6ZScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wTGVmdCc6XG4gICAgICAgICAgICBjYXNlICdib3R0b21SaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnY3Vyc29yJywgJ253c2UtcmVzaXplJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3BSaWdodCc6XG4gICAgICAgICAgICBjYXNlICdib3R0b21MZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmJvZHksICdjdXJzb3InLCAnbmVzdy1yZXNpemUnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBzZXRDb21wYXRpYmxlU3R5bGUoZG9jdW1lbnQuYm9keSwgJ3VzZXItc2VsZWN0JywgJ25vbmUnKTtcbiAgICB9XG5cbiAgICBlbmRSZXNpemUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ2N1cnNvcicsICcnKTtcbiAgICAgICAgc2V0Q29tcGF0aWJsZVN0eWxlKGRvY3VtZW50LmJvZHksICd1c2VyLXNlbGVjdCcsICcnKTtcbiAgICAgICAgdGhpcy5yZW1vdmVHaG9zdEVsZW1lbnQoKTtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuc2l6ZUNhY2hlXG4gICAgICAgICAgICA/IHsgLi4udGhpcy5zaXplQ2FjaGUgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy5uYXRpdmVFbGVtZW50UmVjdC53aWR0aCxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogdGhpcy5uYXRpdmVFbGVtZW50UmVjdC5oZWlnaHRcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgLy8gUmUtZW50ZXIgdGhlIEFuZ3VsYXIgem9uZSBhbmQgcnVuIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIG9ubHkgaWYgdGhlcmUncmUgYW55IGB0aHlSZXNpemVFbmRgIGxpc3RlbmVycyxcbiAgICAgICAgLy8gZS5nLjogYDxkaXYgdGh5UmVzaXphYmxlICh0aHlSZXNpemVFbmQpPVwiLi4uXCI+PC9kaXY+YC5cbiAgICAgICAgaWYgKHRoaXMudGh5UmVzaXplRW5kLm9ic2VydmVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50aHlSZXNpemVFbmQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLnNpemUsXG4gICAgICAgICAgICAgICAgICAgIG1vdXNlRXZlbnQ6IGV2ZW50XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNpemVDYWNoZSA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudEhhbmRsZUV2ZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXNpemUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnRSZWN0ID0gdGhpcy5uYXRpdmVFbGVtZW50UmVjdDtcbiAgICAgICAgY29uc3QgcmVzaXplRXZlbnQgPSBnZXRFdmVudFdpdGhQb2ludChldmVudCk7XG4gICAgICAgIGNvbnN0IGhhbmRsZUV2ZW50ID0gZ2V0RXZlbnRXaXRoUG9pbnQodGhpcy5jdXJyZW50SGFuZGxlRXZlbnQhLm1vdXNlRXZlbnQpO1xuICAgICAgICBsZXQgd2lkdGggPSBuYXRpdmVFbGVtZW50UmVjdC53aWR0aDtcbiAgICAgICAgbGV0IGhlaWdodCA9IG5hdGl2ZUVsZW1lbnRSZWN0LmhlaWdodDtcbiAgICAgICAgY29uc3QgcmF0aW8gPSB0aGlzLnRoeUxvY2tBc3BlY3RSYXRpbyA/IHdpZHRoIC8gaGVpZ2h0IDogLTE7XG4gICAgICAgIHN3aXRjaCAodGhpcy5jdXJyZW50SGFuZGxlRXZlbnQhLmRpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSAnYm90dG9tUmlnaHQnOlxuICAgICAgICAgICAgICAgIHdpZHRoID0gcmVzaXplRXZlbnQuY2xpZW50WCAtIG5hdGl2ZUVsZW1lbnRSZWN0LmxlZnQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gcmVzaXplRXZlbnQuY2xpZW50WSAtIG5hdGl2ZUVsZW1lbnRSZWN0LnRvcDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbUxlZnQnOlxuICAgICAgICAgICAgICAgIHdpZHRoID0gbmF0aXZlRWxlbWVudFJlY3Qud2lkdGggKyAoaGFuZGxlRXZlbnQuY2xpZW50WCAtIHJlc2l6ZUV2ZW50LmNsaWVudFgpO1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IHJlc2l6ZUV2ZW50LmNsaWVudFkgLSBuYXRpdmVFbGVtZW50UmVjdC50b3A7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3BSaWdodCc6XG4gICAgICAgICAgICAgICAgd2lkdGggPSByZXNpemVFdmVudC5jbGllbnRYIC0gbmF0aXZlRWxlbWVudFJlY3QubGVmdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBuYXRpdmVFbGVtZW50UmVjdC5oZWlnaHQgKyAoaGFuZGxlRXZlbnQuY2xpZW50WSAtIHJlc2l6ZUV2ZW50LmNsaWVudFkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wTGVmdCc6XG4gICAgICAgICAgICAgICAgd2lkdGggPSBuYXRpdmVFbGVtZW50UmVjdC53aWR0aCArIChoYW5kbGVFdmVudC5jbGllbnRYIC0gcmVzaXplRXZlbnQuY2xpZW50WCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gbmF0aXZlRWxlbWVudFJlY3QuaGVpZ2h0ICsgKGhhbmRsZUV2ZW50LmNsaWVudFkgLSByZXNpemVFdmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gbmF0aXZlRWxlbWVudFJlY3QuaGVpZ2h0ICsgKGhhbmRsZUV2ZW50LmNsaWVudFkgLSByZXNpemVFdmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICB3aWR0aCA9IHJlc2l6ZUV2ZW50LmNsaWVudFggLSBuYXRpdmVFbGVtZW50UmVjdC5sZWZ0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSByZXNpemVFdmVudC5jbGllbnRZIC0gbmF0aXZlRWxlbWVudFJlY3QudG9wO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgd2lkdGggPSBuYXRpdmVFbGVtZW50UmVjdC53aWR0aCArIChoYW5kbGVFdmVudC5jbGllbnRYIC0gcmVzaXplRXZlbnQuY2xpZW50WCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuY2FsY1NpemUod2lkdGgsIGhlaWdodCwgcmF0aW8pO1xuICAgICAgICB0aGlzLnNpemVDYWNoZSA9IHsgLi4uc2l6ZSB9O1xuICAgICAgICAvLyBSZS1lbnRlciB0aGUgQW5ndWxhciB6b25lIGFuZCBydW4gdGhlIGNoYW5nZSBkZXRlY3Rpb24gb25seSBpZiB0aGVyZSdyZSBhbnkgYHRoeVJlc2l6ZWAgbGlzdGVuZXJzLFxuICAgICAgICAvLyBlLmcuOiBgPGRpdiB0aHlSZXNpemFibGUgKHRoeVJlc2l6ZSk9XCIuLi5cIj48L2Rpdj5gLlxuICAgICAgICBpZiAodGhpcy50aHlSZXNpemUub2JzZXJ2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoeVJlc2l6ZS5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgLi4uc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgbW91c2VFdmVudDogZXZlbnRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGh5UHJldmlldykge1xuICAgICAgICAgICAgdGhpcy5wcmV2aWV3UmVzaXplKHNpemUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FsY1NpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHJhdGlvOiBudW1iZXIpOiBUaHlSZXNpemVFdmVudCB7XG4gICAgICAgIGxldCBuZXdXaWR0aDogbnVtYmVyO1xuICAgICAgICBsZXQgbmV3SGVpZ2h0OiBudW1iZXI7XG4gICAgICAgIGxldCBtYXhXaWR0aDogbnVtYmVyO1xuICAgICAgICBsZXQgbWF4SGVpZ2h0OiBudW1iZXI7XG4gICAgICAgIGxldCBjb2wgPSAwO1xuICAgICAgICBsZXQgc3BhbldpZHRoID0gMDtcbiAgICAgICAgbGV0IG1pbldpZHRoID0gdGhpcy50aHlNaW5XaWR0aDtcbiAgICAgICAgbGV0IGJvdW5kV2lkdGggPSBJbmZpbml0eTtcbiAgICAgICAgbGV0IGJvdW5kSGVpZ2h0ID0gSW5maW5pdHk7XG4gICAgICAgIGlmICh0aGlzLnRoeUJvdW5kcyA9PT0gJ3BhcmVudCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZSh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKHBhcmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IHBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBib3VuZFdpZHRoID0gcGFyZW50UmVjdC53aWR0aDtcbiAgICAgICAgICAgICAgICBib3VuZEhlaWdodCA9IHBhcmVudFJlY3QuaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGh5Qm91bmRzID09PSAnd2luZG93Jykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgYm91bmRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICAgICAgICAgIGJvdW5kSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGh5Qm91bmRzICYmIHRoaXMudGh5Qm91bmRzLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy50aHlCb3VuZHMubmF0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBib3VuZHNSZWN0ID0gdGhpcy50aHlCb3VuZHMubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGJvdW5kV2lkdGggPSBib3VuZHNSZWN0LndpZHRoO1xuICAgICAgICAgICAgYm91bmRIZWlnaHQgPSBib3VuZHNSZWN0LmhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIG1heFdpZHRoID0gZW5zdXJlSW5Cb3VuZHModGhpcy50aHlNYXhXaWR0aCEsIGJvdW5kV2lkdGgpO1xuICAgICAgICBtYXhIZWlnaHQgPSBlbnN1cmVJbkJvdW5kcyh0aGlzLnRoeU1heEhlaWdodCEsIGJvdW5kSGVpZ2h0KTtcblxuICAgICAgICBpZiAodGhpcy50aHlHcmlkQ29sdW1uQ291bnQgIT09IC0xKSB7XG4gICAgICAgICAgICBzcGFuV2lkdGggPSBtYXhXaWR0aCAvIHRoaXMudGh5R3JpZENvbHVtbkNvdW50O1xuICAgICAgICAgICAgbWluV2lkdGggPSB0aGlzLnRoeU1pbkNvbHVtbiAhPT0gLTEgPyBzcGFuV2lkdGggKiB0aGlzLnRoeU1pbkNvbHVtbiA6IG1pbldpZHRoO1xuICAgICAgICAgICAgbWF4V2lkdGggPSB0aGlzLnRoeU1heENvbHVtbiAhPT0gLTEgPyBzcGFuV2lkdGggKiB0aGlzLnRoeU1heENvbHVtbiA6IG1heFdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJhdGlvICE9PSAtMSkge1xuICAgICAgICAgICAgaWYgKC8obGVmdHxyaWdodCkvaS50ZXN0KHRoaXMuY3VycmVudEhhbmRsZUV2ZW50IS5kaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1pbihNYXRoLm1heCh3aWR0aCwgbWluV2lkdGgpLCBtYXhXaWR0aCk7XG4gICAgICAgICAgICAgICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4oTWF0aC5tYXgobmV3V2lkdGggLyByYXRpbywgdGhpcy50aHlNaW5IZWlnaHQpLCBtYXhIZWlnaHQpO1xuICAgICAgICAgICAgICAgIGlmIChuZXdIZWlnaHQgPj0gbWF4SGVpZ2h0IHx8IG5ld0hlaWdodCA8PSB0aGlzLnRoeU1pbkhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWluKE1hdGgubWF4KG5ld0hlaWdodCAqIHJhdGlvLCBtaW5XaWR0aCksIG1heFdpZHRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KGhlaWdodCwgdGhpcy50aHlNaW5IZWlnaHQpLCBtYXhIZWlnaHQpO1xuICAgICAgICAgICAgICAgIG5ld1dpZHRoID0gTWF0aC5taW4oTWF0aC5tYXgobmV3SGVpZ2h0ICogcmF0aW8sIG1pbldpZHRoKSwgbWF4V2lkdGgpO1xuICAgICAgICAgICAgICAgIGlmIChuZXdXaWR0aCA+PSBtYXhXaWR0aCB8fCBuZXdXaWR0aCA8PSBtaW5XaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChuZXdXaWR0aCAvIHJhdGlvLCB0aGlzLnRoeU1pbkhlaWdodCksIG1heEhlaWdodCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1pbihNYXRoLm1heCh3aWR0aCwgbWluV2lkdGgpLCBtYXhXaWR0aCk7XG4gICAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChoZWlnaHQsIHRoaXMudGh5TWluSGVpZ2h0KSwgbWF4SGVpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRoeUdyaWRDb2x1bW5Db3VudCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbCA9IE1hdGgucm91bmQobmV3V2lkdGggLyBzcGFuV2lkdGgpO1xuICAgICAgICAgICAgbmV3V2lkdGggPSBjb2wgKiBzcGFuV2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29sLFxuICAgICAgICAgICAgd2lkdGg6IG5ld1dpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBuZXdIZWlnaHRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcmV2aWV3UmVzaXplKHsgd2lkdGgsIGhlaWdodCB9OiBUaHlSZXNpemVFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUdob3N0RWxlbWVudCgpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZ2hvc3RFbGVtZW50LCAnd2lkdGgnLCBgJHt3aWR0aH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZ2hvc3RFbGVtZW50LCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XG4gICAgfVxuXG4gICAgY3JlYXRlR2hvc3RFbGVtZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZ2hvc3RFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmdob3N0RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmdob3N0RWxlbWVudCwgJ2NsYXNzJywgJ3RoeS1yZXNpemFibGUtcHJldmlldycpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmdob3N0RWxlbWVudCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlR2hvc3RFbGVtZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5naG9zdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmdob3N0RWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5naG9zdEVsZW1lbnQgPSBudWxsO1xuICAgICAgICB0aGlzLnNpemVDYWNoZSA9IG51bGw7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIl19
|
package/esm2022/version.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Version } from '@angular/core';
|
|
2
|
-
export const VERSION = new Version('16.2.
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const VERSION = new Version('16.2.5-0');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVyc2lvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNi4yLjUtMCcpO1xuIl19
|
|
@@ -194,7 +194,6 @@ class ThyResizableDirective extends _MixinBase$1 {
|
|
|
194
194
|
return;
|
|
195
195
|
}
|
|
196
196
|
this.nativeElement = this.elementRef.nativeElement;
|
|
197
|
-
this.setPosition();
|
|
198
197
|
this.ngZone.runOutsideAngular(() => {
|
|
199
198
|
fromEvent(this.nativeElement, 'mouseenter')
|
|
200
199
|
.pipe(takeUntil(this.ngUnsubscribe$))
|
|
@@ -229,12 +228,6 @@ class ThyResizableDirective extends _MixinBase$1 {
|
|
|
229
228
|
}
|
|
230
229
|
setCompatibleStyle(document.body, 'user-select', 'none');
|
|
231
230
|
}
|
|
232
|
-
setPosition() {
|
|
233
|
-
const position = getComputedStyle(this.nativeElement).position;
|
|
234
|
-
if (position === 'static' || !position) {
|
|
235
|
-
this.renderer.setStyle(this.nativeElement, 'position', 'relative');
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
231
|
endResize(event) {
|
|
239
232
|
this.renderer.setStyle(document.body, 'cursor', '');
|
|
240
233
|
setCompatibleStyle(document.body, 'user-select', '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-resizable.mjs","sources":["../../../src/resizable/resizable.service.ts","../../../src/resizable/utils.ts","../../../src/resizable/resizable.directive.ts","../../../src/resizable/resize-handle.component.ts","../../../src/resizable/resize-handles.component.ts","../../../src/resizable/module.ts","../../../src/resizable/ngx-tethys-resizable.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { isTouchEvent } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { ThyResizeHandleMouseDownEvent } from './resize-handle.component';\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyResizableService implements OnDestroy {\n private document: Document;\n private listeners = new Map<string, (event: MouseEvent | TouchEvent) => void>();\n\n /**\n * The `OutsideAngular` prefix means that the subject will emit events outside of the Angular zone,\n * so that becomes a bit more descriptive for those who'll maintain the code in the future:\n * ```ts\n * thyResizableService.handleMouseDownOutsideAngular$.subscribe(event => {\n * console.log(Zone.current); // <root>\n * console.log(NgZone.isInAngularZone()); // false\n * });\n * ```\n */\n\n handleMouseDownOutsideAngular$ = new Subject<ThyResizeHandleMouseDownEvent>();\n documentMouseUpOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n documentMouseMoveOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n mouseEnteredOutsideAngular$ = new Subject<boolean>();\n\n constructor(private ngZone: NgZone, @Inject(DOCUMENT) document: any) {\n this.document = document;\n }\n\n startResizing(event: MouseEvent | TouchEvent): void {\n const _isTouchEvent = isTouchEvent(event);\n this.clearListeners();\n const moveEvent = _isTouchEvent ? 'touchmove' : 'mousemove';\n const upEvent = _isTouchEvent ? 'touchend' : 'mouseup';\n const moveEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseMoveOutsideAngular$.next(e);\n };\n const upEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseUpOutsideAngular$.next(e);\n this.clearListeners();\n };\n\n this.listeners.set(moveEvent, moveEventHandler);\n this.listeners.set(upEvent, upEventHandler);\n this.ngZone.runOutsideAngular(() => {\n this.listeners.forEach((handler, name) => {\n this.document.addEventListener(name, handler as EventListener);\n });\n });\n }\n\n private clearListeners(): void {\n this.listeners.forEach((handler, name) => {\n this.document.removeEventListener(name, handler as EventListener);\n });\n this.listeners.clear();\n }\n\n ngOnDestroy(): void {\n this.handleMouseDownOutsideAngular$.complete();\n this.documentMouseUpOutsideAngular$.complete();\n this.documentMouseMoveOutsideAngular$.complete();\n this.mouseEnteredOutsideAngular$.complete();\n this.clearListeners();\n }\n}\n","import { isTouchEvent } from 'ngx-tethys/util';\n\nexport function getEventWithPoint(event: MouseEvent | TouchEvent): MouseEvent | Touch {\n return isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : (event as MouseEvent);\n}\n\nexport function ensureInBounds(value: number, boundValue: number): number {\n return value ? (value < boundValue ? value : boundValue) : boundValue;\n}\n\nexport function setCompatibleStyle(element: HTMLElement, key: string, value: string) {\n element.style[key] = value;\n element.style[`-webkit-${key}`] = value;\n element.style[`-moz-${key}`] = value;\n element.style[`-ms-${key}`] = value;\n}\n","import {\n Directive,\n AfterViewInit,\n OnDestroy,\n ElementRef,\n Renderer2,\n NgZone,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Constructor, ThyUnsubscribe, MixinBase, mixinUnsubscribe, InputBoolean, InputNumber } from 'ngx-tethys/core';\nimport { ThyResizableService } from './resizable.service';\nimport { Platform } from '@angular/cdk/platform';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyResizeHandleMouseDownEvent } from './resize-handle.component';\nimport { ThyResizeEvent } from './interface';\nimport { getEventWithPoint, ensureInBounds, setCompatibleStyle } from './utils';\nimport { fromEvent } from 'rxjs';\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\n/**\n * 调整尺寸\n * @name thyResizable\n */\n@Directive({\n selector: '[thyResizable]',\n providers: [ThyResizableService],\n host: {\n class: 'thy-resizable',\n '[class.thy-resizable-resizing]': 'resizing',\n '[class.thy-resizable-disabled]': 'thyDisabled'\n },\n standalone: true\n})\nexport class ThyResizableDirective extends _MixinBase implements AfterViewInit, OnDestroy {\n /**\n * 调整尺寸的边界\n * @default parent\n * @type 'window' | 'parent' | ElementRef<HTMLElement>\n */\n @Input() thyBounds: 'window' | 'parent' | ElementRef<HTMLElement> = 'parent';\n\n /**\n * 最大高度(超过边界部分忽略)\n */\n @Input() @InputNumber() thyMaxHeight?: number;\n\n /**\n * 最大宽度(超过边界部分忽略)\n */\n @Input() @InputNumber() thyMaxWidth?: number;\n\n /**\n * 最小高度\n */\n @Input() @InputNumber() thyMinHeight: number = 40;\n\n /**\n * 最小宽度\n */\n @Input() @InputNumber() thyMinWidth: number = 40;\n\n /**\n * 栅格列数(-1 为不栅格)\n */\n @Input() @InputNumber() thyGridColumnCount: number = -1;\n\n /**\n * 栅格最大列数\n */\n @Input() @InputNumber() thyMaxColumn: number = -1;\n\n /**\n * 栅格最小列数\n */\n @Input() @InputNumber() thyMinColumn: number = -1;\n\n /**\n * 锁定宽高比\n */\n @Input() @InputBoolean() thyLockAspectRatio: boolean = false;\n\n /**\n * 是否预览模式\n */\n @Input() @InputBoolean() thyPreview: boolean = false;\n\n /**\n * 是否禁用调整大小\n */\n @Input() @InputBoolean() thyDisabled: boolean = false;\n\n /**\n * 调整尺寸时的事件\n */\n @Output() readonly thyResize = new EventEmitter<ThyResizeEvent>();\n\n /**\n * 开始调整尺寸时的事件\n */\n @Output() readonly thyResizeStart = new EventEmitter<ThyResizeEvent>();\n\n /**\n * 结束调整尺寸时的事件\n */\n @Output() readonly thyResizeEnd = new EventEmitter<ThyResizeEvent>();\n\n resizing = false;\n private nativeElement!: HTMLElement;\n private nativeElementRect!: ClientRect | DOMRect;\n private sizeCache: ThyResizeEvent | null = null;\n private ghostElement: HTMLDivElement | null = null;\n private currentHandleEvent: ThyResizeHandleMouseDownEvent | null = null;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private platform: Platform,\n private ngZone: NgZone,\n private thyResizableService: ThyResizableService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n this.thyResizableService.handleMouseDownOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.thyDisabled) {\n return;\n }\n this.resizing = true;\n const { mouseEvent } = event;\n this.thyResizableService.startResizing(mouseEvent);\n this.currentHandleEvent = event;\n this.setCursor();\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeStart` listeners,\n // e.g.: `<div thyResizable (thyResizeStart)=\"...\"></div>`.\n if (this.thyResizeStart.observers.length) {\n this.ngZone.run(() => this.thyResizeStart.emit({ mouseEvent }));\n }\n this.nativeElementRect = this.nativeElement.getBoundingClientRect();\n });\n\n this.thyResizableService.documentMouseUpOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.resizing) {\n this.ngZone.run(() => {\n this.resizing = false;\n this.changeDetectorRef.markForCheck();\n });\n this.thyResizableService.documentMouseUpOutsideAngular$.next(event);\n this.endResize(event);\n }\n });\n\n this.thyResizableService.documentMouseMoveOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.resizing) {\n this.resize(event);\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.nativeElement = this.elementRef.nativeElement;\n this.setPosition();\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.nativeElement, 'mouseenter')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(true);\n });\n\n fromEvent(this.nativeElement, 'mouseleave')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(false);\n });\n });\n }\n\n setCursor(): void {\n switch (this.currentHandleEvent!.direction) {\n case 'left':\n case 'right':\n this.renderer.setStyle(document.body, 'cursor', 'ew-resize');\n break;\n case 'top':\n case 'bottom':\n this.renderer.setStyle(document.body, 'cursor', 'ns-resize');\n break;\n case 'topLeft':\n case 'bottomRight':\n this.renderer.setStyle(document.body, 'cursor', 'nwse-resize');\n break;\n case 'topRight':\n case 'bottomLeft':\n this.renderer.setStyle(document.body, 'cursor', 'nesw-resize');\n break;\n }\n setCompatibleStyle(document.body, 'user-select', 'none');\n }\n\n setPosition(): void {\n const position = getComputedStyle(this.nativeElement).position;\n if (position === 'static' || !position) {\n this.renderer.setStyle(this.nativeElement, 'position', 'relative');\n }\n }\n\n endResize(event: MouseEvent | TouchEvent): void {\n this.renderer.setStyle(document.body, 'cursor', '');\n setCompatibleStyle(document.body, 'user-select', '');\n this.removeGhostElement();\n const size = this.sizeCache\n ? { ...this.sizeCache }\n : {\n width: this.nativeElementRect.width,\n height: this.nativeElementRect.height\n };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeEnd` listeners,\n // e.g.: `<div thyResizable (thyResizeEnd)=\"...\"></div>`.\n if (this.thyResizeEnd.observers.length) {\n this.ngZone.run(() => {\n this.thyResizeEnd.emit({\n ...size,\n mouseEvent: event\n });\n });\n }\n this.sizeCache = null;\n this.currentHandleEvent = null;\n }\n\n resize(event: MouseEvent | TouchEvent): void {\n const nativeElementRect = this.nativeElementRect;\n const resizeEvent = getEventWithPoint(event);\n const handleEvent = getEventWithPoint(this.currentHandleEvent!.mouseEvent);\n let width = nativeElementRect.width;\n let height = nativeElementRect.height;\n const ratio = this.thyLockAspectRatio ? width / height : -1;\n switch (this.currentHandleEvent!.direction) {\n case 'bottomRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'bottomLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'topRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'topLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'top':\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'right':\n width = resizeEvent.clientX - nativeElementRect.left;\n break;\n case 'bottom':\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'left':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n }\n const size = this.calcSize(width, height, ratio);\n this.sizeCache = { ...size };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResize` listeners,\n // e.g.: `<div thyResizable (thyResize)=\"...\"></div>`.\n if (this.thyResize.observers.length) {\n this.ngZone.run(() => {\n this.thyResize.emit({\n ...size,\n mouseEvent: event\n });\n });\n }\n\n if (this.thyPreview) {\n this.previewResize(size);\n }\n }\n\n calcSize(width: number, height: number, ratio: number): ThyResizeEvent {\n let newWidth: number;\n let newHeight: number;\n let maxWidth: number;\n let maxHeight: number;\n let col = 0;\n let spanWidth = 0;\n let minWidth = this.thyMinWidth;\n let boundWidth = Infinity;\n let boundHeight = Infinity;\n if (this.thyBounds === 'parent') {\n const parent = this.renderer.parentNode(this.nativeElement);\n if (parent instanceof HTMLElement) {\n const parentRect = parent.getBoundingClientRect();\n boundWidth = parentRect.width;\n boundHeight = parentRect.height;\n }\n } else if (this.thyBounds === 'window') {\n if (typeof window !== 'undefined') {\n boundWidth = window.innerWidth;\n boundHeight = window.innerHeight;\n }\n } else if (this.thyBounds && this.thyBounds.nativeElement && this.thyBounds.nativeElement instanceof HTMLElement) {\n const boundsRect = this.thyBounds.nativeElement.getBoundingClientRect();\n boundWidth = boundsRect.width;\n boundHeight = boundsRect.height;\n }\n\n maxWidth = ensureInBounds(this.thyMaxWidth!, boundWidth);\n maxHeight = ensureInBounds(this.thyMaxHeight!, boundHeight);\n\n if (this.thyGridColumnCount !== -1) {\n spanWidth = maxWidth / this.thyGridColumnCount;\n minWidth = this.thyMinColumn !== -1 ? spanWidth * this.thyMinColumn : minWidth;\n maxWidth = this.thyMaxColumn !== -1 ? spanWidth * this.thyMaxColumn : maxWidth;\n }\n\n if (ratio !== -1) {\n if (/(left|right)/i.test(this.currentHandleEvent!.direction)) {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(newWidth / ratio, this.thyMinHeight), maxHeight);\n if (newHeight >= maxHeight || newHeight <= this.thyMinHeight) {\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n }\n } else {\n newHeight = Math.min(Math.max(height, this.thyMinHeight), maxHeight);\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n if (newWidth >= maxWidth || newWidth <= minWidth) {\n newHeight = Math.min(Math.max(newWidth / ratio, this.thyMinHeight), maxHeight);\n }\n }\n } else {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(height, this.thyMinHeight), maxHeight);\n }\n\n if (this.thyGridColumnCount !== -1) {\n col = Math.round(newWidth / spanWidth);\n newWidth = col * spanWidth;\n }\n\n return {\n col,\n width: newWidth,\n height: newHeight\n };\n }\n\n previewResize({ width, height }: ThyResizeEvent): void {\n this.createGhostElement();\n this.renderer.setStyle(this.ghostElement, 'width', `${width}px`);\n this.renderer.setStyle(this.ghostElement, 'height', `${height}px`);\n }\n\n createGhostElement(): void {\n if (!this.ghostElement) {\n this.ghostElement = this.renderer.createElement('div');\n this.renderer.setAttribute(this.ghostElement, 'class', 'thy-resizable-preview');\n }\n this.renderer.appendChild(this.nativeElement, this.ghostElement);\n }\n\n removeGhostElement(): void {\n if (this.ghostElement) {\n this.renderer.removeChild(this.nativeElement, this.ghostElement);\n }\n }\n\n ngOnDestroy(): void {\n this.ghostElement = null;\n this.sizeCache = null;\n super.ngOnDestroy();\n }\n}\n","import { OnInit, OnDestroy, Component, ChangeDetectionStrategy, Input, Output, NgZone, EventEmitter, ElementRef } from '@angular/core';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ThyResizeDirection } from './interface';\nimport { ThyResizableService } from './resizable.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Constructor, ThyUnsubscribe, MixinBase, mixinUnsubscribe, InputBoolean } from 'ngx-tethys/core';\nimport { fromEvent, merge } from 'rxjs';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgIf } from '@angular/common';\n\nexport class ThyResizeHandleMouseDownEvent {\n constructor(public direction: ThyResizeDirection, public mouseEvent: MouseEvent | TouchEvent) {}\n}\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\nconst passiveEventListenerOptions = <AddEventListenerOptions>normalizePassiveListenerOptions({ passive: true });\n\n/**\n * 定义调整手柄及方向\n * @name thy-resize-handle\n */\n@Component({\n selector: 'thy-resize-handle, [thy-resize-handle]',\n exportAs: 'thyResizeHandle',\n template: `\n <ng-content></ng-content>\n <div *ngIf=\"thyLine\" class=\"thy-resizable-handle-line\"></div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-resizable-handle',\n '[class.thy-resizable-handle-top]': `thyDirection === 'top'`,\n '[class.thy-resizable-handle-right]': `thyDirection === 'right'`,\n '[class.thy-resizable-handle-bottom]': `thyDirection === 'bottom'`,\n '[class.thy-resizable-handle-left]': `thyDirection === 'left'`,\n '[class.thy-resizable-handle-topRight]': `thyDirection === 'topRight'`,\n '[class.thy-resizable-handle-bottomRight]': `thyDirection === 'bottomRight'`,\n '[class.thy-resizable-handle-bottomLeft]': `thyDirection === 'bottomLeft'`,\n '[class.thy-resizable-handle-topLeft]': `thyDirection === 'topLeft'`,\n '[class.thy-resizable-handle-box-hover]': 'entered'\n },\n standalone: true,\n imports: [NgIf]\n})\nexport class ThyResizeHandleComponent extends _MixinBase implements OnInit, OnDestroy {\n /**\n * 调整方向\n * @type top | right | bottom | left | topRight | bottomRight | bottomLeft | topLeft\n */\n @Input() thyDirection: ThyResizeDirection = 'bottomRight';\n\n /**\n * 是否展示拖拽线\n */\n @Input() @InputBoolean() thyLine = false;\n\n /**\n * MouseDown 回调事件\n */\n @Output() readonly thyMouseDown = new EventEmitter<ThyResizeHandleMouseDownEvent>();\n\n private hostRenderer = useHostRenderer();\n\n constructor(private ngZone: NgZone, private thyResizableService: ThyResizableService, private host: ElementRef<HTMLElement>) {\n super();\n }\n\n ngOnInit(): void {\n this.thyResizableService.mouseEnteredOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(entered => {\n if (entered) {\n this.hostRenderer.addClass('thy-resizable-handle-box-hover');\n } else {\n this.hostRenderer.removeClass('thy-resizable-handle-box-hover');\n }\n });\n this.ngZone.runOutsideAngular(() => {\n // Note: since Chrome 56 defaults document level `touchstart` listener to passive.\n // The element `touchstart` listener is not passive by default\n // We never call `preventDefault()` on it, so we're safe making it passive too.\n merge(\n fromEvent<MouseEvent>(this.host.nativeElement, 'mousedown', passiveEventListenerOptions),\n fromEvent<TouchEvent>(this.host.nativeElement, 'touchstart', passiveEventListenerOptions)\n )\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe((event: MouseEvent | TouchEvent) => {\n this.thyResizableService.handleMouseDownOutsideAngular$.next(\n new ThyResizeHandleMouseDownEvent(this.thyDirection, event)\n );\n });\n });\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { InputBoolean } from 'ngx-tethys/core';\nimport { ThyResizeDirection } from './interface';\nimport { ThyResizeHandleComponent } from './resize-handle.component';\nimport { NgFor } from '@angular/common';\n\nexport const DEFAULT_RESIZE_DIRECTION: ThyResizeDirection[] = [\n 'bottomRight',\n 'topRight',\n 'bottomLeft',\n 'topLeft',\n 'bottom',\n 'right',\n 'top',\n 'left'\n];\n\n/**\n * 定义调整手柄的快捷组件\n * @name thy-resize-handles\n */\n@Component({\n selector: 'thy-resize-handles',\n exportAs: 'thyResizeHandles',\n template: ` <thy-resize-handle *ngFor=\"let dir of directions\" [thyLine]=\"thyLine\" [thyDirection]=\"dir\"></thy-resize-handle> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgFor, ThyResizeHandleComponent]\n})\nexport class ThyResizeHandlesComponent implements OnChanges {\n /**\n * 定义调整手柄的方向\n * @type ThyResizeDirection[]\n */\n @Input() thyDirections: ThyResizeDirection[] = DEFAULT_RESIZE_DIRECTION;\n\n /**\n * 是否展示拖拽线\n */\n @Input() @InputBoolean() thyLine = false;\n\n directions = new Set<ThyResizeDirection>(this.thyDirections);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyDirections) {\n this.directions = new Set(changes.thyDirections.currentValue);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyResizableDirective } from './resizable.directive';\nimport { ThyResizeHandleComponent } from './resize-handle.component';\nimport { ThyResizeHandlesComponent } from './resize-handles.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule, ThyResizableDirective, ThyResizeHandleComponent, ThyResizeHandlesComponent],\n exports: [ThyResizableDirective, ThyResizeHandleComponent, ThyResizeHandlesComponent]\n})\nexport class ThyResizableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_MixinBase","i2.ThyResizableService","i1.ThyResizableService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-resizable.mjs","sources":["../../../src/resizable/resizable.service.ts","../../../src/resizable/utils.ts","../../../src/resizable/resizable.directive.ts","../../../src/resizable/resize-handle.component.ts","../../../src/resizable/resize-handles.component.ts","../../../src/resizable/module.ts","../../../src/resizable/ngx-tethys-resizable.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { isTouchEvent } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { ThyResizeHandleMouseDownEvent } from './resize-handle.component';\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyResizableService implements OnDestroy {\n private document: Document;\n private listeners = new Map<string, (event: MouseEvent | TouchEvent) => void>();\n\n /**\n * The `OutsideAngular` prefix means that the subject will emit events outside of the Angular zone,\n * so that becomes a bit more descriptive for those who'll maintain the code in the future:\n * ```ts\n * thyResizableService.handleMouseDownOutsideAngular$.subscribe(event => {\n * console.log(Zone.current); // <root>\n * console.log(NgZone.isInAngularZone()); // false\n * });\n * ```\n */\n\n handleMouseDownOutsideAngular$ = new Subject<ThyResizeHandleMouseDownEvent>();\n documentMouseUpOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n documentMouseMoveOutsideAngular$ = new Subject<MouseEvent | TouchEvent>();\n mouseEnteredOutsideAngular$ = new Subject<boolean>();\n\n constructor(private ngZone: NgZone, @Inject(DOCUMENT) document: any) {\n this.document = document;\n }\n\n startResizing(event: MouseEvent | TouchEvent): void {\n const _isTouchEvent = isTouchEvent(event);\n this.clearListeners();\n const moveEvent = _isTouchEvent ? 'touchmove' : 'mousemove';\n const upEvent = _isTouchEvent ? 'touchend' : 'mouseup';\n const moveEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseMoveOutsideAngular$.next(e);\n };\n const upEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentMouseUpOutsideAngular$.next(e);\n this.clearListeners();\n };\n\n this.listeners.set(moveEvent, moveEventHandler);\n this.listeners.set(upEvent, upEventHandler);\n this.ngZone.runOutsideAngular(() => {\n this.listeners.forEach((handler, name) => {\n this.document.addEventListener(name, handler as EventListener);\n });\n });\n }\n\n private clearListeners(): void {\n this.listeners.forEach((handler, name) => {\n this.document.removeEventListener(name, handler as EventListener);\n });\n this.listeners.clear();\n }\n\n ngOnDestroy(): void {\n this.handleMouseDownOutsideAngular$.complete();\n this.documentMouseUpOutsideAngular$.complete();\n this.documentMouseMoveOutsideAngular$.complete();\n this.mouseEnteredOutsideAngular$.complete();\n this.clearListeners();\n }\n}\n","import { isTouchEvent } from 'ngx-tethys/util';\n\nexport function getEventWithPoint(event: MouseEvent | TouchEvent): MouseEvent | Touch {\n return isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : (event as MouseEvent);\n}\n\nexport function ensureInBounds(value: number, boundValue: number): number {\n return value ? (value < boundValue ? value : boundValue) : boundValue;\n}\n\nexport function setCompatibleStyle(element: HTMLElement, key: string, value: string) {\n element.style[key] = value;\n element.style[`-webkit-${key}`] = value;\n element.style[`-moz-${key}`] = value;\n element.style[`-ms-${key}`] = value;\n}\n","import {\n Directive,\n AfterViewInit,\n OnDestroy,\n ElementRef,\n Renderer2,\n NgZone,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Constructor, ThyUnsubscribe, MixinBase, mixinUnsubscribe, InputBoolean, InputNumber } from 'ngx-tethys/core';\nimport { ThyResizableService } from './resizable.service';\nimport { Platform } from '@angular/cdk/platform';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyResizeHandleMouseDownEvent } from './resize-handle.component';\nimport { ThyResizeEvent } from './interface';\nimport { getEventWithPoint, ensureInBounds, setCompatibleStyle } from './utils';\nimport { fromEvent } from 'rxjs';\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\n/**\n * 调整尺寸\n * @name thyResizable\n */\n@Directive({\n selector: '[thyResizable]',\n providers: [ThyResizableService],\n host: {\n class: 'thy-resizable',\n '[class.thy-resizable-resizing]': 'resizing',\n '[class.thy-resizable-disabled]': 'thyDisabled'\n },\n standalone: true\n})\nexport class ThyResizableDirective extends _MixinBase implements AfterViewInit, OnDestroy {\n /**\n * 调整尺寸的边界\n * @default parent\n * @type 'window' | 'parent' | ElementRef<HTMLElement>\n */\n @Input() thyBounds: 'window' | 'parent' | ElementRef<HTMLElement> = 'parent';\n\n /**\n * 最大高度(超过边界部分忽略)\n */\n @Input() @InputNumber() thyMaxHeight?: number;\n\n /**\n * 最大宽度(超过边界部分忽略)\n */\n @Input() @InputNumber() thyMaxWidth?: number;\n\n /**\n * 最小高度\n */\n @Input() @InputNumber() thyMinHeight: number = 40;\n\n /**\n * 最小宽度\n */\n @Input() @InputNumber() thyMinWidth: number = 40;\n\n /**\n * 栅格列数(-1 为不栅格)\n */\n @Input() @InputNumber() thyGridColumnCount: number = -1;\n\n /**\n * 栅格最大列数\n */\n @Input() @InputNumber() thyMaxColumn: number = -1;\n\n /**\n * 栅格最小列数\n */\n @Input() @InputNumber() thyMinColumn: number = -1;\n\n /**\n * 锁定宽高比\n */\n @Input() @InputBoolean() thyLockAspectRatio: boolean = false;\n\n /**\n * 是否预览模式\n */\n @Input() @InputBoolean() thyPreview: boolean = false;\n\n /**\n * 是否禁用调整大小\n */\n @Input() @InputBoolean() thyDisabled: boolean = false;\n\n /**\n * 调整尺寸时的事件\n */\n @Output() readonly thyResize = new EventEmitter<ThyResizeEvent>();\n\n /**\n * 开始调整尺寸时的事件\n */\n @Output() readonly thyResizeStart = new EventEmitter<ThyResizeEvent>();\n\n /**\n * 结束调整尺寸时的事件\n */\n @Output() readonly thyResizeEnd = new EventEmitter<ThyResizeEvent>();\n\n resizing = false;\n private nativeElement!: HTMLElement;\n private nativeElementRect!: ClientRect | DOMRect;\n private sizeCache: ThyResizeEvent | null = null;\n private ghostElement: HTMLDivElement | null = null;\n private currentHandleEvent: ThyResizeHandleMouseDownEvent | null = null;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private platform: Platform,\n private ngZone: NgZone,\n private thyResizableService: ThyResizableService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n this.thyResizableService.handleMouseDownOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.thyDisabled) {\n return;\n }\n this.resizing = true;\n const { mouseEvent } = event;\n this.thyResizableService.startResizing(mouseEvent);\n this.currentHandleEvent = event;\n this.setCursor();\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeStart` listeners,\n // e.g.: `<div thyResizable (thyResizeStart)=\"...\"></div>`.\n if (this.thyResizeStart.observers.length) {\n this.ngZone.run(() => this.thyResizeStart.emit({ mouseEvent }));\n }\n this.nativeElementRect = this.nativeElement.getBoundingClientRect();\n });\n\n this.thyResizableService.documentMouseUpOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.resizing) {\n this.ngZone.run(() => {\n this.resizing = false;\n this.changeDetectorRef.markForCheck();\n });\n this.thyResizableService.documentMouseUpOutsideAngular$.next(event);\n this.endResize(event);\n }\n });\n\n this.thyResizableService.documentMouseMoveOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(event => {\n if (this.resizing) {\n this.resize(event);\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.nativeElement = this.elementRef.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.nativeElement, 'mouseenter')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(true);\n });\n\n fromEvent(this.nativeElement, 'mouseleave')\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.thyResizableService.mouseEnteredOutsideAngular$.next(false);\n });\n });\n }\n\n setCursor(): void {\n switch (this.currentHandleEvent!.direction) {\n case 'left':\n case 'right':\n this.renderer.setStyle(document.body, 'cursor', 'ew-resize');\n break;\n case 'top':\n case 'bottom':\n this.renderer.setStyle(document.body, 'cursor', 'ns-resize');\n break;\n case 'topLeft':\n case 'bottomRight':\n this.renderer.setStyle(document.body, 'cursor', 'nwse-resize');\n break;\n case 'topRight':\n case 'bottomLeft':\n this.renderer.setStyle(document.body, 'cursor', 'nesw-resize');\n break;\n }\n setCompatibleStyle(document.body, 'user-select', 'none');\n }\n\n endResize(event: MouseEvent | TouchEvent): void {\n this.renderer.setStyle(document.body, 'cursor', '');\n setCompatibleStyle(document.body, 'user-select', '');\n this.removeGhostElement();\n const size = this.sizeCache\n ? { ...this.sizeCache }\n : {\n width: this.nativeElementRect.width,\n height: this.nativeElementRect.height\n };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResizeEnd` listeners,\n // e.g.: `<div thyResizable (thyResizeEnd)=\"...\"></div>`.\n if (this.thyResizeEnd.observers.length) {\n this.ngZone.run(() => {\n this.thyResizeEnd.emit({\n ...size,\n mouseEvent: event\n });\n });\n }\n this.sizeCache = null;\n this.currentHandleEvent = null;\n }\n\n resize(event: MouseEvent | TouchEvent): void {\n const nativeElementRect = this.nativeElementRect;\n const resizeEvent = getEventWithPoint(event);\n const handleEvent = getEventWithPoint(this.currentHandleEvent!.mouseEvent);\n let width = nativeElementRect.width;\n let height = nativeElementRect.height;\n const ratio = this.thyLockAspectRatio ? width / height : -1;\n switch (this.currentHandleEvent!.direction) {\n case 'bottomRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'bottomLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'topRight':\n width = resizeEvent.clientX - nativeElementRect.left;\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'topLeft':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'top':\n height = nativeElementRect.height + (handleEvent.clientY - resizeEvent.clientY);\n break;\n case 'right':\n width = resizeEvent.clientX - nativeElementRect.left;\n break;\n case 'bottom':\n height = resizeEvent.clientY - nativeElementRect.top;\n break;\n case 'left':\n width = nativeElementRect.width + (handleEvent.clientX - resizeEvent.clientX);\n }\n const size = this.calcSize(width, height, ratio);\n this.sizeCache = { ...size };\n // Re-enter the Angular zone and run the change detection only if there're any `thyResize` listeners,\n // e.g.: `<div thyResizable (thyResize)=\"...\"></div>`.\n if (this.thyResize.observers.length) {\n this.ngZone.run(() => {\n this.thyResize.emit({\n ...size,\n mouseEvent: event\n });\n });\n }\n\n if (this.thyPreview) {\n this.previewResize(size);\n }\n }\n\n calcSize(width: number, height: number, ratio: number): ThyResizeEvent {\n let newWidth: number;\n let newHeight: number;\n let maxWidth: number;\n let maxHeight: number;\n let col = 0;\n let spanWidth = 0;\n let minWidth = this.thyMinWidth;\n let boundWidth = Infinity;\n let boundHeight = Infinity;\n if (this.thyBounds === 'parent') {\n const parent = this.renderer.parentNode(this.nativeElement);\n if (parent instanceof HTMLElement) {\n const parentRect = parent.getBoundingClientRect();\n boundWidth = parentRect.width;\n boundHeight = parentRect.height;\n }\n } else if (this.thyBounds === 'window') {\n if (typeof window !== 'undefined') {\n boundWidth = window.innerWidth;\n boundHeight = window.innerHeight;\n }\n } else if (this.thyBounds && this.thyBounds.nativeElement && this.thyBounds.nativeElement instanceof HTMLElement) {\n const boundsRect = this.thyBounds.nativeElement.getBoundingClientRect();\n boundWidth = boundsRect.width;\n boundHeight = boundsRect.height;\n }\n\n maxWidth = ensureInBounds(this.thyMaxWidth!, boundWidth);\n maxHeight = ensureInBounds(this.thyMaxHeight!, boundHeight);\n\n if (this.thyGridColumnCount !== -1) {\n spanWidth = maxWidth / this.thyGridColumnCount;\n minWidth = this.thyMinColumn !== -1 ? spanWidth * this.thyMinColumn : minWidth;\n maxWidth = this.thyMaxColumn !== -1 ? spanWidth * this.thyMaxColumn : maxWidth;\n }\n\n if (ratio !== -1) {\n if (/(left|right)/i.test(this.currentHandleEvent!.direction)) {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(newWidth / ratio, this.thyMinHeight), maxHeight);\n if (newHeight >= maxHeight || newHeight <= this.thyMinHeight) {\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n }\n } else {\n newHeight = Math.min(Math.max(height, this.thyMinHeight), maxHeight);\n newWidth = Math.min(Math.max(newHeight * ratio, minWidth), maxWidth);\n if (newWidth >= maxWidth || newWidth <= minWidth) {\n newHeight = Math.min(Math.max(newWidth / ratio, this.thyMinHeight), maxHeight);\n }\n }\n } else {\n newWidth = Math.min(Math.max(width, minWidth), maxWidth);\n newHeight = Math.min(Math.max(height, this.thyMinHeight), maxHeight);\n }\n\n if (this.thyGridColumnCount !== -1) {\n col = Math.round(newWidth / spanWidth);\n newWidth = col * spanWidth;\n }\n\n return {\n col,\n width: newWidth,\n height: newHeight\n };\n }\n\n previewResize({ width, height }: ThyResizeEvent): void {\n this.createGhostElement();\n this.renderer.setStyle(this.ghostElement, 'width', `${width}px`);\n this.renderer.setStyle(this.ghostElement, 'height', `${height}px`);\n }\n\n createGhostElement(): void {\n if (!this.ghostElement) {\n this.ghostElement = this.renderer.createElement('div');\n this.renderer.setAttribute(this.ghostElement, 'class', 'thy-resizable-preview');\n }\n this.renderer.appendChild(this.nativeElement, this.ghostElement);\n }\n\n removeGhostElement(): void {\n if (this.ghostElement) {\n this.renderer.removeChild(this.nativeElement, this.ghostElement);\n }\n }\n\n ngOnDestroy(): void {\n this.ghostElement = null;\n this.sizeCache = null;\n super.ngOnDestroy();\n }\n}\n","import { OnInit, OnDestroy, Component, ChangeDetectionStrategy, Input, Output, NgZone, EventEmitter, ElementRef } from '@angular/core';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ThyResizeDirection } from './interface';\nimport { ThyResizableService } from './resizable.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Constructor, ThyUnsubscribe, MixinBase, mixinUnsubscribe, InputBoolean } from 'ngx-tethys/core';\nimport { fromEvent, merge } from 'rxjs';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgIf } from '@angular/common';\n\nexport class ThyResizeHandleMouseDownEvent {\n constructor(public direction: ThyResizeDirection, public mouseEvent: MouseEvent | TouchEvent) {}\n}\n\nconst _MixinBase: Constructor<ThyUnsubscribe> & typeof MixinBase = mixinUnsubscribe(MixinBase);\n\nconst passiveEventListenerOptions = <AddEventListenerOptions>normalizePassiveListenerOptions({ passive: true });\n\n/**\n * 定义调整手柄及方向\n * @name thy-resize-handle\n */\n@Component({\n selector: 'thy-resize-handle, [thy-resize-handle]',\n exportAs: 'thyResizeHandle',\n template: `\n <ng-content></ng-content>\n <div *ngIf=\"thyLine\" class=\"thy-resizable-handle-line\"></div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-resizable-handle',\n '[class.thy-resizable-handle-top]': `thyDirection === 'top'`,\n '[class.thy-resizable-handle-right]': `thyDirection === 'right'`,\n '[class.thy-resizable-handle-bottom]': `thyDirection === 'bottom'`,\n '[class.thy-resizable-handle-left]': `thyDirection === 'left'`,\n '[class.thy-resizable-handle-topRight]': `thyDirection === 'topRight'`,\n '[class.thy-resizable-handle-bottomRight]': `thyDirection === 'bottomRight'`,\n '[class.thy-resizable-handle-bottomLeft]': `thyDirection === 'bottomLeft'`,\n '[class.thy-resizable-handle-topLeft]': `thyDirection === 'topLeft'`,\n '[class.thy-resizable-handle-box-hover]': 'entered'\n },\n standalone: true,\n imports: [NgIf]\n})\nexport class ThyResizeHandleComponent extends _MixinBase implements OnInit, OnDestroy {\n /**\n * 调整方向\n * @type top | right | bottom | left | topRight | bottomRight | bottomLeft | topLeft\n */\n @Input() thyDirection: ThyResizeDirection = 'bottomRight';\n\n /**\n * 是否展示拖拽线\n */\n @Input() @InputBoolean() thyLine = false;\n\n /**\n * MouseDown 回调事件\n */\n @Output() readonly thyMouseDown = new EventEmitter<ThyResizeHandleMouseDownEvent>();\n\n private hostRenderer = useHostRenderer();\n\n constructor(private ngZone: NgZone, private thyResizableService: ThyResizableService, private host: ElementRef<HTMLElement>) {\n super();\n }\n\n ngOnInit(): void {\n this.thyResizableService.mouseEnteredOutsideAngular$.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(entered => {\n if (entered) {\n this.hostRenderer.addClass('thy-resizable-handle-box-hover');\n } else {\n this.hostRenderer.removeClass('thy-resizable-handle-box-hover');\n }\n });\n this.ngZone.runOutsideAngular(() => {\n // Note: since Chrome 56 defaults document level `touchstart` listener to passive.\n // The element `touchstart` listener is not passive by default\n // We never call `preventDefault()` on it, so we're safe making it passive too.\n merge(\n fromEvent<MouseEvent>(this.host.nativeElement, 'mousedown', passiveEventListenerOptions),\n fromEvent<TouchEvent>(this.host.nativeElement, 'touchstart', passiveEventListenerOptions)\n )\n .pipe(takeUntil(this.ngUnsubscribe$))\n .subscribe((event: MouseEvent | TouchEvent) => {\n this.thyResizableService.handleMouseDownOutsideAngular$.next(\n new ThyResizeHandleMouseDownEvent(this.thyDirection, event)\n );\n });\n });\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { InputBoolean } from 'ngx-tethys/core';\nimport { ThyResizeDirection } from './interface';\nimport { ThyResizeHandleComponent } from './resize-handle.component';\nimport { NgFor } from '@angular/common';\n\nexport const DEFAULT_RESIZE_DIRECTION: ThyResizeDirection[] = [\n 'bottomRight',\n 'topRight',\n 'bottomLeft',\n 'topLeft',\n 'bottom',\n 'right',\n 'top',\n 'left'\n];\n\n/**\n * 定义调整手柄的快捷组件\n * @name thy-resize-handles\n */\n@Component({\n selector: 'thy-resize-handles',\n exportAs: 'thyResizeHandles',\n template: ` <thy-resize-handle *ngFor=\"let dir of directions\" [thyLine]=\"thyLine\" [thyDirection]=\"dir\"></thy-resize-handle> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgFor, ThyResizeHandleComponent]\n})\nexport class ThyResizeHandlesComponent implements OnChanges {\n /**\n * 定义调整手柄的方向\n * @type ThyResizeDirection[]\n */\n @Input() thyDirections: ThyResizeDirection[] = DEFAULT_RESIZE_DIRECTION;\n\n /**\n * 是否展示拖拽线\n */\n @Input() @InputBoolean() thyLine = false;\n\n directions = new Set<ThyResizeDirection>(this.thyDirections);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyDirections) {\n this.directions = new Set(changes.thyDirections.currentValue);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ThyResizableDirective } from './resizable.directive';\nimport { ThyResizeHandleComponent } from './resize-handle.component';\nimport { ThyResizeHandlesComponent } from './resize-handles.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule, ThyResizableDirective, ThyResizeHandleComponent, ThyResizeHandlesComponent],\n exports: [ThyResizableDirective, ThyResizeHandleComponent, ThyResizeHandlesComponent]\n})\nexport class ThyResizableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_MixinBase","i2.ThyResizableService","i1.ThyResizableService"],"mappings":"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"}
|
package/fesm2022/ngx-tethys.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('16.2.
|
|
1
|
+
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('16.2.5-0');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU;;ACF7C;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -83,7 +83,6 @@ export declare class ThyResizableDirective extends _MixinBase implements AfterVi
|
|
|
83
83
|
constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2, platform: Platform, ngZone: NgZone, thyResizableService: ThyResizableService, changeDetectorRef: ChangeDetectorRef);
|
|
84
84
|
ngAfterViewInit(): void;
|
|
85
85
|
setCursor(): void;
|
|
86
|
-
setPosition(): void;
|
|
87
86
|
endResize(event: MouseEvent | TouchEvent): void;
|
|
88
87
|
resize(event: MouseEvent | TouchEvent): void;
|
|
89
88
|
calcSize(width: number, height: number, ratio: number): ThyResizeEvent;
|
package/schematics/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "16.2.
|
|
1
|
+
export declare const VERSION = "16.2.5-0";
|
package/schematics/version.js
CHANGED