@fundamental-ngx/cdk 0.43.32 → 0.43.34
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/esm2020/utils/directives/focusable-list/scroll.mjs +4 -2
- package/esm2020/utils/directives/only-digits/only-digits.directive.mjs +16 -4
- package/fesm2015/fundamental-ngx-cdk-utils.mjs +17 -3
- package/fesm2015/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-cdk-utils.mjs +17 -3
- package/fesm2020/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fundamental-ngx-cdk-v0.43.34.tgz +0 -0
- package/package.json +2 -2
- package/fundamental-ngx-cdk-v0.43.32.tgz +0 -0
|
@@ -13,7 +13,9 @@ export function scrollIntoView(element, position) {
|
|
|
13
13
|
*/
|
|
14
14
|
const elRect = element.getBoundingClientRect();
|
|
15
15
|
const topEl = document.elementFromPoint(elRect.left, elRect.top);
|
|
16
|
-
if (!element.isSameNode(topEl) &&
|
|
16
|
+
if (!element.isSameNode(topEl) &&
|
|
17
|
+
topEl &&
|
|
18
|
+
element.getBoundingClientRect().top !== topEl.getBoundingClientRect().top) {
|
|
17
19
|
scrollableParent.scrollBy({ top: elRect.top - topEl.getBoundingClientRect().bottom });
|
|
18
20
|
}
|
|
19
21
|
}
|
|
@@ -38,4 +40,4 @@ function getScrollParent(node) {
|
|
|
38
40
|
return getScrollParent(node.parentNode);
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1saXN0L3Njcm9sbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSwyRkFBMkY7QUFDM0YsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUE4QixFQUFFLFFBQWtDO0lBQzdGLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDVixPQUFPO0tBQ1Y7SUFFRCxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVsRCxJQUFJLGdCQUFnQixFQUFFO1FBQ2xCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWDs7O2VBR0c7WUFDSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFnQixDQUFDO1lBQ2hGLElBQ0ksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDMUIsS0FBSztnQkFDTCxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxFQUMzRTtnQkFDRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3pGO1NBQ0o7UUFDRCxRQUFRLFFBQVEsRUFBRTtZQUNkLEtBQUssS0FBSztnQkFDTixnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO2dCQUMzQyxNQUFNO1lBQ1YsS0FBSyxRQUFRO2dCQUNULGdCQUFnQixDQUFDLFNBQVMsR0FBRyxhQUFhLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNwRyxNQUFNO1NBQ2I7S0FDSjtBQUNMLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxJQUF3QjtJQUM3QyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7UUFDZCxPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3hHLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7U0FBTTtRQUNILE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxVQUF5QixDQUFDLENBQUM7S0FDMUQ7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuXG5leHBvcnQgdHlwZSBTY3JvbGxQb3NpdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbScgfCB1bmRlZmluZWQ7XG5cbi8qKiBIZWxwZXIgZnVuY3Rpb24gdG8gc2Nyb2xsIHRvIGZvY3VzYWJsZSBsaXN0IG9yIGl0cyBpdGVtIHJlbGF0aXZlbHkgdG8gdGhlIGNvbnRhaW5lci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY3JvbGxJbnRvVmlldyhlbGVtZW50OiBOdWxsYWJsZTxIVE1MRWxlbWVudD4sIHBvc2l0aW9uOiBOdWxsYWJsZTxTY3JvbGxQb3NpdGlvbj4pOiB2b2lkIHtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNjcm9sbGFibGVQYXJlbnQgPSBnZXRTY3JvbGxQYXJlbnQoZWxlbWVudCk7XG5cbiAgICBpZiAoc2Nyb2xsYWJsZVBhcmVudCkge1xuICAgICAgICBjb25zdCBpdGVtT2Zmc2V0VG9wID0gZWxlbWVudC5vZmZzZXRUb3AgLSBzY3JvbGxhYmxlUGFyZW50Lm9mZnNldFRvcDtcbiAgICAgICAgaWYgKCFwb3NpdGlvbikge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBjaGVjayBpZiB0b3Agb2YgZm9jdXNlZCBlbGVtZW50IGlzIGZ1bGx5IHZpc2libGUsIGFuZCBpZiBub3QsIGFkanVzdCBzY3JvbGwuXG4gICAgICAgICAgICAgKiB0aGlzIGlzIHRyaWdnZXJlZCB3aGVuIGEgc3RpY2t5IHRhYmxlIGhlYWRlciBvdmVybGFwcyB0aGUgZm9jdXNlZCBjZWxsLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBlbFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgdG9wRWwgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KGVsUmVjdC5sZWZ0LCBlbFJlY3QudG9wKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhZWxlbWVudC5pc1NhbWVOb2RlKHRvcEVsKSAmJlxuICAgICAgICAgICAgICAgIHRvcEVsICYmXG4gICAgICAgICAgICAgICAgZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgIT09IHRvcEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsYWJsZVBhcmVudC5zY3JvbGxCeSh7IHRvcDogZWxSZWN0LnRvcCAtIHRvcEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgICAgICAgIHNjcm9sbGFibGVQYXJlbnQuc2Nyb2xsVG9wID0gaXRlbU9mZnNldFRvcDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgc2Nyb2xsYWJsZVBhcmVudC5zY3JvbGxUb3AgPSBpdGVtT2Zmc2V0VG9wIC0gKHNjcm9sbGFibGVQYXJlbnQub2Zmc2V0SGVpZ2h0IC0gZWxlbWVudC5vZmZzZXRIZWlnaHQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQobm9kZTogSFRNTEVsZW1lbnQgfCBudWxsKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChub2RlLnNjcm9sbEhlaWdodCA+IG5vZGUuY2xpZW50SGVpZ2h0ICYmIFsnYXV0bycsICdzY3JvbGwnXS5pbmNsdWRlcyhnZXRDb21wdXRlZFN0eWxlKG5vZGUpLm92ZXJmbG93WSkpIHtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGdldFNjcm9sbFBhcmVudChub2RlLnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A, BACKSPACE, C, DASH, DELETE, END, ENTER, ESCAPE, HOME, LEFT_ARROW, NUMPAD_MINUS, RIGHT_ARROW, TAB, V, X } from '@angular/cdk/keycodes';
|
|
1
|
+
import { A, BACKSPACE, C, DASH, DELETE, DOWN_ARROW, END, ENTER, ESCAPE, HOME, LEFT_ARROW, NUMPAD_MINUS, RIGHT_ARROW, TAB, UP_ARROW, V, X } from '@angular/cdk/keycodes';
|
|
2
2
|
import { Directive, ElementRef, HostListener, Input } from '@angular/core';
|
|
3
3
|
import { KeyUtil } from '../../functions';
|
|
4
4
|
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
@@ -43,8 +43,20 @@ export class OnlyDigitsDirective {
|
|
|
43
43
|
/** @hidden */
|
|
44
44
|
onKeyDown(e) {
|
|
45
45
|
if (
|
|
46
|
-
// Allow: Delete, Backspace, Tab, Escape, Enter, End, Home, Arrow Left, Arrow Right
|
|
47
|
-
KeyUtil.isKeyCode(e, [
|
|
46
|
+
// Allow: Delete, Backspace, Tab, Escape, Enter, End, Home, Arrow Left, Arrow Right, Arrow Up, Arrow Down
|
|
47
|
+
KeyUtil.isKeyCode(e, [
|
|
48
|
+
DELETE,
|
|
49
|
+
BACKSPACE,
|
|
50
|
+
TAB,
|
|
51
|
+
ESCAPE,
|
|
52
|
+
ENTER,
|
|
53
|
+
END,
|
|
54
|
+
HOME,
|
|
55
|
+
LEFT_ARROW,
|
|
56
|
+
RIGHT_ARROW,
|
|
57
|
+
UP_ARROW,
|
|
58
|
+
DOWN_ARROW
|
|
59
|
+
]) ||
|
|
48
60
|
// Allow: Ctrl+(A/C/V/X) and Cmd+(A/C/V/X) (Mac)
|
|
49
61
|
(KeyUtil.isKeyCode(e, [A, C, V, X]) && (e.ctrlKey || e.metaKey))) {
|
|
50
62
|
return; // let it happen, don't do anything
|
|
@@ -215,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
215
227
|
type: HostListener,
|
|
216
228
|
args: ['drop', ['$event']]
|
|
217
229
|
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25seS1kaWdpdHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL29ubHktZGlnaXRzL29ubHktZGlnaXRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsQ0FBQyxFQUNELFNBQVMsRUFDVCxDQUFDLEVBQ0QsSUFBSSxFQUNKLE1BQU0sRUFDTixHQUFHLEVBQ0gsS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLEVBQ0osVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsR0FBRyxFQUNILENBQUMsRUFDRCxDQUFDLEVBQ0osTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQyxrQkFBa0IsRUFDckIsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFhekMsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGtCQUFrQjs7MEhBQXhELDZCQUE2Qjs4R0FBN0IsNkJBQTZCLCtFQVAzQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLGdDQUFnQztZQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsa0NBQWtDLENBQUM7U0FDdEY7S0FDSjsyRkFFUSw2QkFBNkI7a0JBWHpDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxr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Q0FBQyxjQUFjLElBQUksQ0FBQyxFQUFFLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU3RSxPQUFPLFNBQVM7WUFDWixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxjQUFjLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7O2dIQS9MUSxtQkFBbUI7b0dBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtREFBbUQ7b0JBQzdELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtpR0FHWSxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQWNOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNENuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWVqQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBLFxuICAgIEJBQ0tTUEFDRSxcbiAgICBDLFxuICAgIERBU0gsXG4gICAgREVMRVRFLFxuICAgIEVORCxcbiAgICBFTlRFUixcbiAgICBFU0NBUEUsXG4gICAgSE9NRSxcbiAgICBMRUZUX0FSUk9XLFxuICAgIE5VTVBBRF9NSU5VUyxcbiAgICBSSUdIVF9BUlJPVyxcbiAgICBUQUIsXG4gICAgVixcbiAgICBYXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkT25seURpZ2l0c10sIFtmZC1vbmx5LWRpZ2l0c10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka09ubHlEaWdpdHNdJywgJ1tmZE9ubHlEaWdpdHNdLCBbZmQtb25seS1kaWdpdHNdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZE9ubHlEaWdpdHNEaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrT25seURpZ2l0c10sIFtmZE9ubHlEaWdpdHNdLCBbZmQtb25seS1kaWdpdHNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE9ubHlEaWdpdHNEaXJlY3RpdmUge1xuICAgIC8qKiBBbGxvdyB1c2luZyBkZWNpbWFsICovXG4gICAgQElucHV0KCkgZGVjaW1hbCA9IGZhbHNlO1xuICAgIC8qKiBEZWZpbmUgZGVjaW1hbCBzZXBhcmF0b3JcbiAgICAgKiBEZWZhdWx0OiAuKGRvdClcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkZWNpbWFsU2VwYXJhdG9yID0gJy4nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50ID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIEFsbG93OiBEZWxldGUsIEJhY2tzcGFjZSwgVGFiLCBFc2NhcGUsIEVudGVyLCBFbmQsIEhvbWUsIEFycm93IExlZnQsIEFycm93IFJpZ2h0XG4gICAgICAgICAgICBLZXlVdGlsLmlzS2V5Q29kZShlLCBbREVMRVRFLCBCQUNLU1BBQ0UsIFRBQiwgRVNDQVBFLCBFTlRFUiwgRU5ELCBIT01FLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPV10pIHx8XG4gICAgICAgICAgICAvLyBBbGxvdzogQ3RybCsoQS9DL1YvWCkgYW5kIENtZCsoQS9DL1YvWCkgKE1hYylcbiAgICAgICAgICAgIChLZXlVdGlsLmlzS2V5Q29kZShlLCBbQSwgQywgViwgWF0pICYmIChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5KSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47IC8vIGxldCBpdCBoYXBwZW4sIGRvbid0IGRvIGFueXRoaW5nXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZSwgW0RBU0gsIE5VTVBBRF9NSU5VU10pKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuX2ZvcmVjYXN0VmFsdWUoZS5rZXkpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50LnZhbHVlWzBdID09PSAnLScgfHwgbmV3VmFsdWVbMF0gIT09ICctJykge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gaGFzIERBU0ggcG9pbnRcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBBbGxvdzogb25seSBvbmUgREFTSCBwb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuX2ZvcmVjYXN0VmFsdWUoZS5rZXkpO1xuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgICAgIC8vIGhhcyB0d28gb3IgbW9yZSBkZWNpbWFsIHBvaW50c1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hhc0RlY2ltYWxQb2ludCA9IG5ld1ZhbHVlLmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKSA+IC0xO1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gQWxsb3c6IG9ubHkgb25lIGRlY2ltYWwgcG9pbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xuICAgICAgICBpZiAoZS5rZXkgPT09ICcgJyB8fCBpc05hTihOdW1iZXIoZS5rZXkpKSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50J10pXG4gICAgb25QYXN0ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh3aW5kb3dbJ2NsaXBib2FyZERhdGEnXSkge1xuICAgICAgICAgICAgLy8gQnJvd3NlciBpcyBJRVxuICAgICAgICAgICAgdGhpcy5fcGFzdGVEYXRhKHdpbmRvd1snY2xpcGJvYXJkRGF0YSddLmdldERhdGEoJ3RleHQnKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY2xpcGJvYXJkRGF0YSAmJiBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEpIHtcbiAgICAgICAgICAgIC8vIE90aGVyIGJyb3dzZXJzXG4gICAgICAgICAgICB0aGlzLl9wYXN0ZURhdGEoZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRleHREYXRhID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0JykgPz8gJyc7XG4gICAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLl9wYXN0ZURhdGEodGV4dERhdGEpO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wYXN0ZURhdGEocGFzdGVkQ29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZENvbnRlbnQgPSB0aGlzLl9zYW5pdGl6ZUlucHV0KHBhc3RlZENvbnRlbnQpO1xuICAgICAgICBjb25zdCBwYXN0ZWQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0VGV4dCcsIGZhbHNlLCBzYW5pdGl6ZWRDb250ZW50KTtcbiAgICAgICAgaWYgKCFwYXN0ZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQuc2V0UmFuZ2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydDogc3RhcnQsIHNlbGVjdGlvbkVuZDogZW5kIH0gPSB0aGlzLl9pbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChzYW5pdGl6ZWRDb250ZW50LCBzdGFydCA/PyAwLCBlbmQgPz8gMCwgJ2VuZCcpO1xuICAgICAgICAgICAgICAgIC8vIEFuZ3VsYXIncyBSZWFjdGl2ZSBGb3JtIHJlbGllcyBvbiBcImlucHV0XCIgZXZlbnQsIGJ1dCBvbiBGaXJlZm94LCB0aGUgc2V0UmFuZ2VUZXh0IG1ldGhvZCBkb2Vzbid0IHRyaWdnZXIgaXRcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIHRyaWdnZXIgaXQgb3Vyc2VsZi5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvd1snSW5zdGFsbFRyaWdnZXInXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgc2V0UmFuZ2VUZXh0LCBlLmcuIElFXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0QXRDdXJzb3IodGhpcy5faW5wdXRFbGVtZW50LCBzYW5pdGl6ZWRDb250ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwpIHtcbiAgICAgICAgICAgIHRoaXMuX2hhc0RlY2ltYWxQb2ludCA9IHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgPiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgMiBtZXRob2RzIHdlcmUgYWRkZWQgZnJvbSB0aGUgYmVsb3cgYXJ0aWNsZSBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBzZXRSYW5nZVRleHRcbiAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTA3Njk3NS9ob3ctdG8taW5zZXJ0LXRleHQtaW50by10aGUtdGV4dGFyZWEtYXQtdGhlLWN1cnJlbnQtY3Vyc29yLXBvc2l0aW9uXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnNlcnRBdEN1cnNvcihteUZpZWxkOiBIVE1MSW5wdXRFbGVtZW50LCBteVZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhcnRQb3MgPSBteUZpZWxkLnNlbGVjdGlvblN0YXJ0ID8/IDA7XG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IG15RmllbGQuc2VsZWN0aW9uRW5kID8/IDA7XG5cbiAgICAgICAgbXlGaWVsZC52YWx1ZSA9XG4gICAgICAgICAgICBteUZpZWxkLnZhbHVlLnN1YnN0cmluZygwLCBzdGFydFBvcykgKyBteVZhbHVlICsgbXlGaWVsZC52YWx1ZS5zdWJzdHJpbmcoZW5kUG9zLCBteUZpZWxkLnZhbHVlLmxlbmd0aCk7XG5cbiAgICAgICAgY29uc3QgcG9zID0gc3RhcnRQb3MgKyBteVZhbHVlLmxlbmd0aDtcbiAgICAgICAgbXlGaWVsZC5mb2N1cygpO1xuICAgICAgICBteUZpZWxkLnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcblxuICAgICAgICB0aGlzLl90cmlnZ2VyRXZlbnQobXlGaWVsZCwgJ2lucHV0Jyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmlnZ2VyRXZlbnQoZWw6IEhUTUxJbnB1dEVsZW1lbnQsIHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2NyZWF0ZUV2ZW50JyBpbiBkb2N1bWVudCkge1xuICAgICAgICAgICAgLy8gbW9kZXJuIGJyb3dzZXJzLCBJRTkrXG4gICAgICAgICAgICBjb25zdCBlID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtcbiAgICAgICAgICAgIGUuaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQoZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gZW5kIHN0YWNrIG92ZXJmbG93IGNvZGVcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICBpZiAodGhpcy5kZWNpbWFsICYmIHRoaXMuX2lzVmFsaWREZWNpbWFsKGlucHV0KSkge1xuICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBbXjAtOSR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfV1gLCAnZycpO1xuICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZSgvW14wLTldL2csICcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbnB1dFswXSA9PT0gJy0nKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBgLSR7cmVzdWx0fWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLl9pbnB1dEVsZW1lbnQubWF4TGVuZ3RoO1xuICAgICAgICBpZiAobWF4TGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgaGFzIG1heExlbmd0aCBsaW1pdFxuICAgICAgICAgICAgY29uc3QgYWxsb3dlZExlbmd0aCA9IG1heExlbmd0aCAtIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1ZhbGlkRGVjaW1hbChzdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX2hhc0RlY2ltYWxQb2ludCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCA8PSAyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgYWxyZWFkeSBoYXMgYSBkZWNpbWFsIHNlcGFyYXRvclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZXh0ID0gdGhpcy5fZ2V0U2VsZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkVGV4dCAmJiBzZWxlY3RlZFRleHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpID4gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoIDw9IDI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJpbmcuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIDwgMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX2dldFNlbGVjdGlvbigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgfSA9IHRoaXMuX2lucHV0RWxlbWVudDtcblxuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCA/PyAwLCBzZWxlY3Rpb25FbmQgPz8gMCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JlY2FzdFZhbHVlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kLCB2YWx1ZTogb2xkVmFsdWUgfSA9IHRoaXMuX2lucHV0RWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gb2xkVmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvblN0YXJ0ID8/IDAsIHNlbGVjdGlvbkVuZCA/PyAwKTtcblxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uXG4gICAgICAgICAgICA/IG9sZFZhbHVlLnJlcGxhY2Uoc2VsZWN0aW9uLCBrZXkpXG4gICAgICAgICAgICA6IG9sZFZhbHVlLnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCA/PyAwKSArIGtleSArIG9sZFZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCA/PyAwKTtcbiAgICB9XG59XG4iXX0=
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25seS1kaWdpdHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL29ubHktZGlnaXRzL29ubHktZGlnaXRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsQ0FBQyxFQUNELFNBQVMsRUFDVCxDQUFDLEVBQ0QsSUFBSSxFQUNKLE1BQU0sRUFDTixVQUFVLEVBQ1YsR0FBRyxFQUNILEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxFQUNKLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEdBQUcsRUFDSCxRQUFRLEVBQ1IsQ0FBQyxFQUNELENBQUMsRUFDSixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDOztBQWF6QyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQWtCOzswSEFBeEQsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsK0VBUDNCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxrQ0FBa0MsQ0FBQztTQUN0RjtLQUNKOzJGQUVRLDZCQUE2QjtrQkFYekMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFLGtCQUFr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QUFDO1FBQzdFLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFN0UsT0FBTyxTQUFTO1lBQ1osQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQztZQUNsQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDOztnSEEzTVEsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbURBQW1EO29CQUM3RCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7aUdBR1ksT0FBTztzQkFBZixLQUFLO2dCQUlHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFjTixTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXdEbkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFlakMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQSxcbiAgICBCQUNLU1BBQ0UsXG4gICAgQyxcbiAgICBEQVNILFxuICAgIERFTEVURSxcbiAgICBET1dOX0FSUk9XLFxuICAgIEVORCxcbiAgICBFTlRFUixcbiAgICBFU0NBUEUsXG4gICAgSE9NRSxcbiAgICBMRUZUX0FSUk9XLFxuICAgIE5VTVBBRF9NSU5VUyxcbiAgICBSSUdIVF9BUlJPVyxcbiAgICBUQUIsXG4gICAgVVBfQVJST1csXG4gICAgVixcbiAgICBYXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkT25seURpZ2l0c10sIFtmZC1vbmx5LWRpZ2l0c10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka09ubHlEaWdpdHNdJywgJ1tmZE9ubHlEaWdpdHNdLCBbZmQtb25seS1kaWdpdHNdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZE9ubHlEaWdpdHNEaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrT25seURpZ2l0c10sIFtmZE9ubHlEaWdpdHNdLCBbZmQtb25seS1kaWdpdHNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE9ubHlEaWdpdHNEaXJlY3RpdmUge1xuICAgIC8qKiBBbGxvdyB1c2luZyBkZWNpbWFsICovXG4gICAgQElucHV0KCkgZGVjaW1hbCA9IGZhbHNlO1xuICAgIC8qKiBEZWZpbmUgZGVjaW1hbCBzZXBhcmF0b3JcbiAgICAgKiBEZWZhdWx0OiAuKGRvdClcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkZWNpbWFsU2VwYXJhdG9yID0gJy4nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50ID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIEFsbG93OiBEZWxldGUsIEJhY2tzcGFjZSwgVGFiLCBFc2NhcGUsIEVudGVyLCBFbmQsIEhvbWUsIEFycm93IExlZnQsIEFycm93IFJpZ2h0LCBBcnJvdyBVcCwgQXJyb3cgRG93blxuICAgICAgICAgICAgS2V5VXRpbC5pc0tleUNvZGUoZSwgW1xuICAgICAgICAgICAgICAgIERFTEVURSxcbiAgICAgICAgICAgICAgICBCQUNLU1BBQ0UsXG4gICAgICAgICAgICAgICAgVEFCLFxuICAgICAgICAgICAgICAgIEVTQ0FQRSxcbiAgICAgICAgICAgICAgICBFTlRFUixcbiAgICAgICAgICAgICAgICBFTkQsXG4gICAgICAgICAgICAgICAgSE9NRSxcbiAgICAgICAgICAgICAgICBMRUZUX0FSUk9XLFxuICAgICAgICAgICAgICAgIFJJR0hUX0FSUk9XLFxuICAgICAgICAgICAgICAgIFVQX0FSUk9XLFxuICAgICAgICAgICAgICAgIERPV05fQVJST1dcbiAgICAgICAgICAgIF0pIHx8XG4gICAgICAgICAgICAvLyBBbGxvdzogQ3RybCsoQS9DL1YvWCkgYW5kIENtZCsoQS9DL1YvWCkgKE1hYylcbiAgICAgICAgICAgIChLZXlVdGlsLmlzS2V5Q29kZShlLCBbQSwgQywgViwgWF0pICYmIChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5KSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47IC8vIGxldCBpdCBoYXBwZW4sIGRvbid0IGRvIGFueXRoaW5nXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZSwgW0RBU0gsIE5VTVBBRF9NSU5VU10pKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuX2ZvcmVjYXN0VmFsdWUoZS5rZXkpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50LnZhbHVlWzBdID09PSAnLScgfHwgbmV3VmFsdWVbMF0gIT09ICctJykge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gaGFzIERBU0ggcG9pbnRcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBBbGxvdzogb25seSBvbmUgREFTSCBwb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuX2ZvcmVjYXN0VmFsdWUoZS5rZXkpO1xuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgICAgIC8vIGhhcyB0d28gb3IgbW9yZSBkZWNpbWFsIHBvaW50c1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hhc0RlY2ltYWxQb2ludCA9IG5ld1ZhbHVlLmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKSA+IC0xO1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gQWxsb3c6IG9ubHkgb25lIGRlY2ltYWwgcG9pbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xuICAgICAgICBpZiAoZS5rZXkgPT09ICcgJyB8fCBpc05hTihOdW1iZXIoZS5rZXkpKSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50J10pXG4gICAgb25QYXN0ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh3aW5kb3dbJ2NsaXBib2FyZERhdGEnXSkge1xuICAgICAgICAgICAgLy8gQnJvd3NlciBpcyBJRVxuICAgICAgICAgICAgdGhpcy5fcGFzdGVEYXRhKHdpbmRvd1snY2xpcGJvYXJkRGF0YSddLmdldERhdGEoJ3RleHQnKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY2xpcGJvYXJkRGF0YSAmJiBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEpIHtcbiAgICAgICAgICAgIC8vIE90aGVyIGJyb3dzZXJzXG4gICAgICAgICAgICB0aGlzLl9wYXN0ZURhdGEoZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRleHREYXRhID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0JykgPz8gJyc7XG4gICAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLl9wYXN0ZURhdGEodGV4dERhdGEpO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wYXN0ZURhdGEocGFzdGVkQ29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZENvbnRlbnQgPSB0aGlzLl9zYW5pdGl6ZUlucHV0KHBhc3RlZENvbnRlbnQpO1xuICAgICAgICBjb25zdCBwYXN0ZWQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0VGV4dCcsIGZhbHNlLCBzYW5pdGl6ZWRDb250ZW50KTtcbiAgICAgICAgaWYgKCFwYXN0ZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQuc2V0UmFuZ2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydDogc3RhcnQsIHNlbGVjdGlvbkVuZDogZW5kIH0gPSB0aGlzLl9pbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChzYW5pdGl6ZWRDb250ZW50LCBzdGFydCA/PyAwLCBlbmQgPz8gMCwgJ2VuZCcpO1xuICAgICAgICAgICAgICAgIC8vIEFuZ3VsYXIncyBSZWFjdGl2ZSBGb3JtIHJlbGllcyBvbiBcImlucHV0XCIgZXZlbnQsIGJ1dCBvbiBGaXJlZm94LCB0aGUgc2V0UmFuZ2VUZXh0IG1ldGhvZCBkb2Vzbid0IHRyaWdnZXIgaXRcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIHRyaWdnZXIgaXQgb3Vyc2VsZi5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvd1snSW5zdGFsbFRyaWdnZXInXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgc2V0UmFuZ2VUZXh0LCBlLmcuIElFXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0QXRDdXJzb3IodGhpcy5faW5wdXRFbGVtZW50LCBzYW5pdGl6ZWRDb250ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwpIHtcbiAgICAgICAgICAgIHRoaXMuX2hhc0RlY2ltYWxQb2ludCA9IHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgPiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgMiBtZXRob2RzIHdlcmUgYWRkZWQgZnJvbSB0aGUgYmVsb3cgYXJ0aWNsZSBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBzZXRSYW5nZVRleHRcbiAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTA3Njk3NS9ob3ctdG8taW5zZXJ0LXRleHQtaW50by10aGUtdGV4dGFyZWEtYXQtdGhlLWN1cnJlbnQtY3Vyc29yLXBvc2l0aW9uXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnNlcnRBdEN1cnNvcihteUZpZWxkOiBIVE1MSW5wdXRFbGVtZW50LCBteVZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhcnRQb3MgPSBteUZpZWxkLnNlbGVjdGlvblN0YXJ0ID8/IDA7XG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IG15RmllbGQuc2VsZWN0aW9uRW5kID8/IDA7XG5cbiAgICAgICAgbXlGaWVsZC52YWx1ZSA9XG4gICAgICAgICAgICBteUZpZWxkLnZhbHVlLnN1YnN0cmluZygwLCBzdGFydFBvcykgKyBteVZhbHVlICsgbXlGaWVsZC52YWx1ZS5zdWJzdHJpbmcoZW5kUG9zLCBteUZpZWxkLnZhbHVlLmxlbmd0aCk7XG5cbiAgICAgICAgY29uc3QgcG9zID0gc3RhcnRQb3MgKyBteVZhbHVlLmxlbmd0aDtcbiAgICAgICAgbXlGaWVsZC5mb2N1cygpO1xuICAgICAgICBteUZpZWxkLnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcblxuICAgICAgICB0aGlzLl90cmlnZ2VyRXZlbnQobXlGaWVsZCwgJ2lucHV0Jyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmlnZ2VyRXZlbnQoZWw6IEhUTUxJbnB1dEVsZW1lbnQsIHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2NyZWF0ZUV2ZW50JyBpbiBkb2N1bWVudCkge1xuICAgICAgICAgICAgLy8gbW9kZXJuIGJyb3dzZXJzLCBJRTkrXG4gICAgICAgICAgICBjb25zdCBlID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtcbiAgICAgICAgICAgIGUuaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQoZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gZW5kIHN0YWNrIG92ZXJmbG93IGNvZGVcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICBpZiAodGhpcy5kZWNpbWFsICYmIHRoaXMuX2lzVmFsaWREZWNpbWFsKGlucHV0KSkge1xuICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBbXjAtOSR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfV1gLCAnZycpO1xuICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZSgvW14wLTldL2csICcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbnB1dFswXSA9PT0gJy0nKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBgLSR7cmVzdWx0fWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLl9pbnB1dEVsZW1lbnQubWF4TGVuZ3RoO1xuICAgICAgICBpZiAobWF4TGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgaGFzIG1heExlbmd0aCBsaW1pdFxuICAgICAgICAgICAgY29uc3QgYWxsb3dlZExlbmd0aCA9IG1heExlbmd0aCAtIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1ZhbGlkRGVjaW1hbChzdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX2hhc0RlY2ltYWxQb2ludCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCA8PSAyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgYWxyZWFkeSBoYXMgYSBkZWNpbWFsIHNlcGFyYXRvclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZXh0ID0gdGhpcy5fZ2V0U2VsZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkVGV4dCAmJiBzZWxlY3RlZFRleHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpID4gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoIDw9IDI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJpbmcuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIDwgMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX2dldFNlbGVjdGlvbigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgfSA9IHRoaXMuX2lucHV0RWxlbWVudDtcblxuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCA/PyAwLCBzZWxlY3Rpb25FbmQgPz8gMCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JlY2FzdFZhbHVlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kLCB2YWx1ZTogb2xkVmFsdWUgfSA9IHRoaXMuX2lucHV0RWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gb2xkVmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvblN0YXJ0ID8/IDAsIHNlbGVjdGlvbkVuZCA/PyAwKTtcblxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uXG4gICAgICAgICAgICA/IG9sZFZhbHVlLnJlcGxhY2Uoc2VsZWN0aW9uLCBrZXkpXG4gICAgICAgICAgICA6IG9sZFZhbHVlLnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCA/PyAwKSArIGtleSArIG9sZFZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCA/PyAwKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1954,8 +1954,20 @@ class OnlyDigitsDirective {
|
|
|
1954
1954
|
/** @hidden */
|
|
1955
1955
|
onKeyDown(e) {
|
|
1956
1956
|
if (
|
|
1957
|
-
// Allow: Delete, Backspace, Tab, Escape, Enter, End, Home, Arrow Left, Arrow Right
|
|
1958
|
-
KeyUtil.isKeyCode(e, [
|
|
1957
|
+
// Allow: Delete, Backspace, Tab, Escape, Enter, End, Home, Arrow Left, Arrow Right, Arrow Up, Arrow Down
|
|
1958
|
+
KeyUtil.isKeyCode(e, [
|
|
1959
|
+
DELETE,
|
|
1960
|
+
BACKSPACE,
|
|
1961
|
+
TAB,
|
|
1962
|
+
ESCAPE,
|
|
1963
|
+
ENTER,
|
|
1964
|
+
END,
|
|
1965
|
+
HOME,
|
|
1966
|
+
LEFT_ARROW,
|
|
1967
|
+
RIGHT_ARROW,
|
|
1968
|
+
UP_ARROW,
|
|
1969
|
+
DOWN_ARROW
|
|
1970
|
+
]) ||
|
|
1959
1971
|
// Allow: Ctrl+(A/C/V/X) and Cmd+(A/C/V/X) (Mac)
|
|
1960
1972
|
(KeyUtil.isKeyCode(e, [A, C, V, X]) && (e.ctrlKey || e.metaKey))) {
|
|
1961
1973
|
return; // let it happen, don't do anything
|
|
@@ -3453,7 +3465,9 @@ function scrollIntoView(element, position) {
|
|
|
3453
3465
|
*/
|
|
3454
3466
|
const elRect = element.getBoundingClientRect();
|
|
3455
3467
|
const topEl = document.elementFromPoint(elRect.left, elRect.top);
|
|
3456
|
-
if (!element.isSameNode(topEl) &&
|
|
3468
|
+
if (!element.isSameNode(topEl) &&
|
|
3469
|
+
topEl &&
|
|
3470
|
+
element.getBoundingClientRect().top !== topEl.getBoundingClientRect().top) {
|
|
3457
3471
|
scrollableParent.scrollBy({ top: elRect.top - topEl.getBoundingClientRect().bottom });
|
|
3458
3472
|
}
|
|
3459
3473
|
}
|