@ngutil/aria 0.0.73 → 0.0.75
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/esm2022/gestures/gesture-drag.mjs +3 -2
- package/esm2022/gestures/gesture-event.mjs +1 -2
- package/esm2022/gestures/gesture-longtap.mjs +3 -2
- package/esm2022/gestures/gesture-tap.mjs +4 -3
- package/esm2022/gestures/gesture.mjs +2 -3
- package/esm2022/gestures/gesture.service.mjs +9 -7
- package/fesm2022/ngutil-aria.mjs +16 -13
- package/fesm2022/ngutil-aria.mjs.map +1 -1
- package/gestures/gesture-drag.d.ts +2 -1
- package/gestures/gesture-event.d.ts +1 -7
- package/gestures/gesture-longtap.d.ts +4 -3
- package/gestures/gesture-tap.d.ts +4 -4
- package/gestures/gesture.d.ts +14 -6
- package/gestures/gesture.service.d.ts +3 -4
- package/package.json +3 -3
|
@@ -2,7 +2,8 @@ import { map, tap } from "rxjs";
|
|
|
2
2
|
import { Gesture } from "./gesture";
|
|
3
3
|
export class GestureDragImpl extends Gesture {
|
|
4
4
|
constructor(options) {
|
|
5
|
-
super(
|
|
5
|
+
super({ includeScrollDistance: true, ...options });
|
|
6
|
+
this.type = "gesture-drag";
|
|
6
7
|
if (this.horizontal == null && this.vertical == null) {
|
|
7
8
|
this.horizontal = true;
|
|
8
9
|
this.vertical = true;
|
|
@@ -77,4 +78,4 @@ export function gestureDrag(options) {
|
|
|
77
78
|
export const GestureDarg = gestureDrag();
|
|
78
79
|
export const GestureDargHorizontal = gestureDrag({ horizontal: true, vertical: false });
|
|
79
80
|
export const GestureDargVertical = gestureDrag({ horizontal: false, vertical: true });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzdHVyZS1kcmFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXJpYS9zcmMvZ2VzdHVyZXMvZ2VzdHVyZS1kcmFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBTTNDLE9BQU8sRUFBRSxPQUFPLEVBQXVDLE1BQU0sV0FBVyxDQUFBO0FBU3hFLE1BQU0sT0FBTyxlQUFpRSxTQUFRLE9BQVU7SUFLNUYsWUFBWSxPQUE0QjtRQUNwQyxLQUFLLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBTDdDLFNBQUksR0FBRyxjQUFjLENBQUE7UUFPMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFBO1lBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO1FBQ3hCLENBQUM7SUFDTCxDQUFDO0lBRVEsT0FBTyxDQUFDLE1BQWlDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FDZCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ2xFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLG1DQUEyQixDQUFDLGlDQUF5QixDQUFBO1lBQ2pGLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxD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QUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN0QixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQzFCLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQTRCO0lBQ3BELE9BQU8sSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdkMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxXQUFXLEVBQUUsQ0FBQTtBQUN4QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0FBQ3ZGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHRhcCB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgTXV0YWJsZSB9IGZyb20gXCJ1dGlsaXR5LXR5cGVzXCJcblxuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tIFwiQG5ndXRpbC9zdHlsZVwiXG5cbmltcG9ydCB7IEdlc3R1cmUsIEdlc3R1cmVDYXB0dXJlU3RhdGUsIEdlc3R1cmVPcHRpb25zIH0gZnJvbSBcIi4vZ2VzdHVyZVwiXG5pbXBvcnQgeyBHZXN0dXJlRGV0YWlsIH0gZnJvbSBcIi4vZ2VzdHVyZS1ldmVudFwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VzdHVyZURyYWdEZXRhaWwgZXh0ZW5kcyBHZXN0dXJlRGV0YWlsIHtcbiAgICBtb3ZlQnk6IFBvc2l0aW9uXG59XG5cbmV4cG9ydCB0eXBlIEdlc3R1cmVEcmFnT3B0aW9ucyA9IEdlc3R1cmVPcHRpb25zPEdlc3R1cmVEcmFnSW1wbD5cblxuZXhwb3J0IGNsYXNzIEdlc3R1cmVEcmFnSW1wbDxUIGV4dGVuZHMgR2VzdHVyZURyYWdEZXRhaWwgPSBHZXN0dXJlRHJhZ0RldGFpbD4gZXh0ZW5kcyBHZXN0dXJlPFQ+IHtcbiAgICByZWFkb25seSB0eXBlID0gXCJnZXN0dXJlLWRyYWdcIlxuICAgIHJlYWRvbmx5IGhvcml6b250YWw/OiBib29sZWFuXG4gICAgcmVhZG9ubHkgdmVydGljYWw/OiBib29sZWFuXG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogR2VzdHVyZURyYWdPcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHsgaW5jbHVkZVNjcm9sbERpc3RhbmNlOiB0cnVlLCAuLi5vcHRpb25zIH0pXG5cbiAgICAgICAgaWYgKHRoaXMuaG9yaXpvbnRhbCA9PSBudWxsICYmIHRoaXMudmVydGljYWwgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsID0gdHJ1ZVxuICAgICAgICAgICAgdGhpcy52ZXJ0aWNhbCA9IHRydWVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG92ZXJyaWRlIGNhcHR1cmUoZXZlbnRzOiBPYnNlcnZhYmxlPEdlc3R1cmVEZXRhaWw+KTogT2JzZXJ2YWJsZTxHZXN0dXJlQ2FwdHVyZVN0YXRlPiB7XG4gICAgICAgIHJldHVybiBldmVudHMucGlwZShcbiAgICAgICAgICAgIG1hcChzdGF0ZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHN0YXRlLnBvaW50ZXJzWzBdLmRpc3RhbmNlLngpID4gdGhpcy5kaXN0YW5jZUluY2x1c2lvbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ob3Jpem9udGFsID8gR2VzdHVyZUNhcHR1cmVTdGF0ZS5NYXliZSA6IEdlc3R1cmVDYXB0dXJlU3RhdGUuU2tpcFxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhzdGF0ZS5wb2ludGVyc1swXS5kaXN0YW5jZS55KSA+IHRoaXMuZGlzdGFuY2VJbmNsdXNpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmVydGljYWwgPyBHZXN0dXJlQ2FwdHVyZVN0YXRlLk1heWJlIDogR2VzdHVyZUNhcHR1cmVTdGF0ZS5Ta2lwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBHZXN0dXJlQ2FwdHVyZVN0YXRlLlBlbmRpbmdcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBvdmVycmlkZSBoYW5kbGUoZXZlbnRzOiBPYnNlcnZhYmxlPEdlc3R1cmVEZXRhaWw+KSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZXIgPVxuICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsICYmIHRoaXMudmVydGljYWxcbiAgICAgICAgICAgICAgICA/IHVwZGF0ZUFueURpcmVjdGlvblxuICAgICAgICAgICAgICAgIDogdGhpcy5ob3Jpem9udGFsXG4gICAgICAgICAgICAgICAgICA/IHVwZGF0ZUhvcml6b250YWxPbmx5XG4gICAgICAgICAgICAgICAgICA6IHVwZGF0ZVZlcnRpY2FsT25seVxuXG4gICAgICAgIHJldHVybiBzdXBlci5oYW5kbGUoZXZlbnRzKS5waXBlKHRhcCh1cGRhdGVyPFQ+KSlcbiAgICB9XG59XG5cbnR5cGUgVXBkYXRlckZuID0gKGV2ZW50OiBNdXRhYmxlPEdlc3R1cmVEcmFnRGV0YWlsPikgPT4gdm9pZFxuXG5mdW5jdGlvbiB1cGRhdGVWZXJ0aWNhbE9ubHk8VCBleHRlbmRzIEdlc3R1cmVEcmFnRGV0YWlsPihldmVudDogTXV0YWJsZTxUPikge1xuICAgIGNvbnN0IHBvaW50ZXIgPSBldmVudC5wb2ludGVyc1swXVxuICAgIHBvaW50ZXIuZGlzdGFuY2UueCA9IDBcbiAgICBwb2ludGVyLmRpcmVjdGlvbi54ID0gMFxuICAgIHBvaW50ZXIuY3VycmVudC54ID0gcG9pbnRlci5zdGFydC54XG4gICAgdXBkYXRlRXZlbnQoZXZlbnQsIHVwZGF0ZUJ5U2Nyb2xsRGlzdGFuY2VWZXJ0aWNhbClcbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9yaXpvbnRhbE9ubHk8VCBleHRlbmRzIEdlc3R1cmVEcmFnRGV0YWlsPihldmVudDogTXV0YWJsZTxUPikge1xuICAgIGNvbnN0IHBvaW50ZXIgPSBldmVudC5wb2ludGVyc1swXVxuICAgIHBvaW50ZXIuZGlzdGFuY2UueSA9IDBcbiAgICBwb2ludGVyLmRpcmVjdGlvbi55ID0gMFxuICAgIHBvaW50ZXIuY3VycmVudC55ID0gcG9pbnRlci5zdGFydC55XG4gICAgdXBkYXRlRXZlbnQoZXZlbnQsIHVwZGF0ZUJ5U2Nyb2xsRGlzdGFuY2VIb3Jpem9udGFsKVxufVxuXG5mdW5jdGlvbiB1cGRhdGVBbnlEaXJlY3Rpb248VCBleHRlbmRzIEdlc3R1cmVEcmFnRGV0YWlsPihldmVudDogTXV0YWJsZTxUPikge1xuICAgIHVwZGF0ZUV2ZW50KGV2ZW50LCB1cGRhdGVCeVNjcm9sbERpc3RhbmNlQm90aClcbn1cblxuZnVuY3Rpb24gdXBkYXRlRXZlbnQ8VCBleHRlbmRzIEdlc3R1cmVEcmFnRGV0YWlsPihldmVudDogTXV0YWJsZTxUPiwgc2Nyb2xsVXBkYXRlOiBVcGRhdGVyRm4pIHtcbiAgICBldmVudC5tb3ZlQnkgPSB7IC4uLmV2ZW50LnBvaW50ZXJzWzBdLmRpc3RhbmNlIH1cbiAgICBzY3JvbGxVcGRhdGUoZXZlbnQpXG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUJ5U2Nyb2xsRGlzdGFuY2VWZXJ0aWNhbDxUIGV4dGVuZHMgR2VzdHVyZURyYWdEZXRhaWw+KGV2ZW50OiBNdXRhYmxlPFQ+KSB7XG4gICAgY29uc3Qgc2QgPSBldmVudC5zY3JvbGxEaXN0YW5jZVxuICAgIGlmIChzZCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVyblxuICAgIH1cbiAgICBldmVudC5tb3ZlQnkueSArPSBzZC55XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUJ5U2Nyb2xsRGlzdGFuY2VIb3Jpem9udGFsPFQgZXh0ZW5kcyBHZXN0dXJlRHJhZ0RldGFpbD4oZXZlbnQ6IE11dGFibGU8VD4pIHtcbiAgICBjb25zdCBzZCA9IGV2ZW50LnNjcm9sbERpc3RhbmNlXG4gICAgaWYgKHNkID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGV2ZW50Lm1vdmVCeS54ICs9IHNkLnhcbn1cblxuZnVuY3Rpb24gdXBkYXRlQnlTY3JvbGxEaXN0YW5jZUJvdGg8VCBleHRlbmRzIEdlc3R1cmVEcmFnRGV0YWlsPihldmVudDogTXV0YWJsZTxUPikge1xuICAgIGNvbnN0IHNkID0gZXZlbnQuc2Nyb2xsRGlzdGFuY2VcbiAgICBpZiAoc2QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm5cbiAgICB9XG4gICAgZXZlbnQubW92ZUJ5LnggKz0gc2QueFxuICAgIGV2ZW50Lm1vdmVCeS55ICs9IHNkLnlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlc3R1cmVEcmFnKG9wdGlvbnM/OiBHZXN0dXJlRHJhZ09wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IEdlc3R1cmVEcmFnSW1wbChvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgR2VzdHVyZURhcmcgPSBnZXN0dXJlRHJhZygpXG5leHBvcnQgY29uc3QgR2VzdHVyZURhcmdIb3Jpem9udGFsID0gZ2VzdHVyZURyYWcoeyBob3Jpem9udGFsOiB0cnVlLCB2ZXJ0aWNhbDogZmFsc2UgfSlcbmV4cG9ydCBjb25zdCBHZXN0dXJlRGFyZ1ZlcnRpY2FsID0gZ2VzdHVyZURyYWcoeyBob3Jpem9udGFsOiBmYWxzZSwgdmVydGljYWw6IHRydWUgfSlcbiJdfQ==
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
const PHANTOM = Symbol("phantom");
|
|
2
1
|
export const Listeners = {
|
|
3
2
|
mousedown: {
|
|
4
3
|
pointerType: "mouse" /* GesturePointerType.Mouse */,
|
|
@@ -42,4 +41,4 @@ export const Listeners = {
|
|
|
42
41
|
// options: { capture: true, passive: false }
|
|
43
42
|
// }
|
|
44
43
|
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzdHVyZS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FyaWEvc3JjL2dlc3R1cmVzL2dlc3R1cmUtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMENBLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBNkM7SUFDL0QsU0FBUyxFQUFFO1FBQ1AsV0FBVyx3Q0FBMEI7UUFDckMsS0FBSyxrQ0FBb0I7UUFDekIsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0tBQzdDO0lBQ0QsU0FBUyxFQUFFO1FBQ1AsV0FBVyx3Q0FBMEI7UUFDckMsS0FBSyxvQ0FBcUI7UUFDMUIsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0tBQzdDO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsV0FBVyx3Q0FBMEI7UUFDckMsS0FBSyw4QkFBa0I7UUFDdkIsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0tBQzdDO0lBQ0QsVUFBVSxFQUFFO1FBQ1IsV0FBVyx3Q0FBMEI7UUFDckMsS0FBSyxrQ0FBb0I7UUFDekIsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0tBQzdDO0lBQ0QsU0FBUyxFQUFFO1FBQ1AsV0FBVyx3Q0FBMEI7UUFDckMsS0FBSyxvQ0FBcUI7UUFDMUIsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0tBQzdDO0lBQ0QsUUFBUSxFQUFFO1FBQ04sV0FBVyx3Q0FBMEI7UUFDckMsS0FBSyw4QkFBa0I7UUFDdkIsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0tBQzdDO0lBQ0QsV0FBVyxFQUFFO1FBQ1QsV0FBVyx3Q0FBMEI7UUFDckMsS0FBSyw4QkFBa0I7UUFDdkIsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO0tBQzdDO0lBQ0QsSUFBSTtJQUNKLGlCQUFpQjtJQUNqQiw2Q0FBNkM7SUFDN0MsaUNBQWlDO0lBQ2pDLGlEQUFpRDtJQUNqRCxJQUFJO0NBQ0UsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSBcIkBuZ3V0aWwvc3R5bGVcIlxuXG5leHBvcnQgaW50ZXJmYWNlIEdlc3R1cmVEZXRhaWwge1xuICAgIHJlYWRvbmx5IG9yaWdpbjogR2VzdHVyZU9yaWdpblxuICAgIHJlYWRvbmx5IHRhcmdldDogSFRNTEVsZW1lbnRcbiAgICByZWFkb25seSBwb2ludGVyVHlwZTogR2VzdHVyZVBvaW50ZXJUeXBlXG4gICAgcmVhZG9ubHkgcGhhc2U6IEdlc3R1cmVQaGFzZVxuICAgIHJlYWRvbmx5IHBvaW50ZXJzOiBSZWFkb25seUFycmF5PEdlc3R1cmVQb2ludGVyPlxuICAgIHJlYWRvbmx5IHRpbWVTdGFtcDogbnVtYmVyXG4gICAgcmVhZG9ubHkgZWxhcHNlZDogbnVtYmVyXG4gICAgcmVhZG9ubHkgc2Nyb2xsRGlzdGFuY2U/OiBQb3NpdGlvblxufVxuXG5leHBvcnQgdHlwZSBQb2ludGVyc1Bvc2l0aW9uID0gUmVhZG9ubHlBcnJheTxSZWFkb25seTxQb3NpdGlvbj4+XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VzdHVyZVBvaW50ZXIge1xuICAgIHJlYWRvbmx5IHN0YXJ0OiBQb3NpdGlvblxuICAgIHJlYWRvbmx5IGN1cnJlbnQ6IFBvc2l0aW9uXG4gICAgcmVhZG9ubHkgZW5kPzogUG9zaXRpb25cbiAgICByZWFkb25seSBkaXN0YW5jZTogUG9zaXRpb25cbiAgICByZWFkb25seSBkaXJlY3Rpb246IHsgeDogLTEgfCAwIHwgMTsgeTogLTEgfCAwIHwgMSB9XG59XG5cbmV4cG9ydCB0eXBlIEdlc3R1cmVPcmlnaW4gPSBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudFxuXG5leHBvcnQgY29uc3QgZW51bSBHZXN0dXJlUG9pbnRlclR5cGUge1xuICAgIE1vdXNlID0gXCJtb3VzZVwiLFxuICAgIFRvdWNoID0gXCJ0b3VjaFwiXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIEdlc3R1cmVQaGFzZSB7XG4gICAgU3RhcnQgPSBcInN0YXJ0XCIsXG4gICAgTW92aW5nID0gXCJtb3ZpbmdcIixcbiAgICBFbmQgPSBcImVuZFwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VzdHVyZUxpc3RlbmVyQ29uZmlnIHtcbiAgICBvcHRpb25zPzogQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnNcbiAgICBwb2ludGVyVHlwZTogR2VzdHVyZVBvaW50ZXJUeXBlXG4gICAgcGhhc2U6IEdlc3R1cmVQaGFzZVxufVxuXG5leHBvcnQgY29uc3QgTGlzdGVuZXJzOiB7IFtrZXk6IHN0cmluZ106IEdlc3R1cmVMaXN0ZW5lckNvbmZpZyB9ID0ge1xuICAgIG1vdXNlZG93bjoge1xuICAgICAgICBwb2ludGVyVHlwZTogR2VzdHVyZVBvaW50ZXJUeXBlLk1vdXNlLFxuICAgICAgICBwaGFzZTogR2VzdHVyZVBoYXNlLlN0YXJ0LFxuICAgICAgICBvcHRpb25zOiB7IGNhcHR1cmU6IHRydWUsIHBhc3NpdmU6IGZhbHNlIH1cbiAgICB9LFxuICAgIG1vdXNlbW92ZToge1xuICAgICAgICBwb2ludGVyVHlwZTogR2VzdHVyZVBvaW50ZXJUeXBlLk1vdXNlLFxuICAgICAgICBwaGFzZTogR2VzdHVyZVBoYXNlLk1vdmluZyxcbiAgICAgICAgb3B0aW9uczogeyBjYXB0dXJlOiB0cnVlLCBwYXNzaXZlOiBmYWxzZSB9XG4gICAgfSxcbiAgICBtb3VzZXVwOiB7XG4gICAgICAgIHBvaW50ZXJUeXBlOiBHZXN0dXJlUG9pbnRlclR5cGUuTW91c2UsXG4gICAgICAgIHBoYXNlOiBHZXN0dXJlUGhhc2UuRW5kLFxuICAgICAgICBvcHRpb25zOiB7IGNhcHR1cmU6IHRydWUsIHBhc3NpdmU6IGZhbHNlIH1cbiAgICB9LFxuICAgIHRvdWNoc3RhcnQ6IHtcbiAgICAgICAgcG9pbnRlclR5cGU6IEdlc3R1cmVQb2ludGVyVHlwZS5Ub3VjaCxcbiAgICAgICAgcGhhc2U6IEdlc3R1cmVQaGFzZS5TdGFydCxcbiAgICAgICAgb3B0aW9uczogeyBjYXB0dXJlOiB0cnVlLCBwYXNzaXZlOiBmYWxzZSB9XG4gICAgfSxcbiAgICB0b3VjaG1vdmU6IHtcbiAgICAgICAgcG9pbnRlclR5cGU6IEdlc3R1cmVQb2ludGVyVHlwZS5Ub3VjaCxcbiAgICAgICAgcGhhc2U6IEdlc3R1cmVQaGFzZS5Nb3ZpbmcsXG4gICAgICAgIG9wdGlvbnM6IHsgY2FwdHVyZTogdHJ1ZSwgcGFzc2l2ZTogZmFsc2UgfVxuICAgIH0sXG4gICAgdG91Y2hlbmQ6IHtcbiAgICAgICAgcG9pbnRlclR5cGU6IEdlc3R1cmVQb2ludGVyVHlwZS5Ub3VjaCxcbiAgICAgICAgcGhhc2U6IEdlc3R1cmVQaGFzZS5FbmQsXG4gICAgICAgIG9wdGlvbnM6IHsgY2FwdHVyZTogdHJ1ZSwgcGFzc2l2ZTogZmFsc2UgfVxuICAgIH0sXG4gICAgdG91Y2hjYW5jZWw6IHtcbiAgICAgICAgcG9pbnRlclR5cGU6IEdlc3R1cmVQb2ludGVyVHlwZS5Ub3VjaCxcbiAgICAgICAgcGhhc2U6IEdlc3R1cmVQaGFzZS5FbmQsXG4gICAgICAgIG9wdGlvbnM6IHsgY2FwdHVyZTogdHJ1ZSwgcGFzc2l2ZTogZmFsc2UgfVxuICAgIH1cbiAgICAvLyAsXG4gICAgLy8gY29udGV4dG1lbnU6IHtcbiAgICAvLyAgICAgcG9pbnRlclR5cGU6IEdlc3R1cmVQb2ludGVyVHlwZS5Nb3VzZSxcbiAgICAvLyAgICAgcGhhc2U6IEdlc3R1cmVQaGFzZS5TdGFydCxcbiAgICAvLyAgICAgb3B0aW9uczogeyBjYXB0dXJlOiB0cnVlLCBwYXNzaXZlOiBmYWxzZSB9XG4gICAgLy8gfVxufSBhcyBjb25zdFxuIl19
|
|
@@ -2,7 +2,8 @@ import { combineLatest, filter, map, startWith, timer } from "rxjs";
|
|
|
2
2
|
import { Gesture } from "./gesture";
|
|
3
3
|
export class GestureLongTapImpl extends Gesture {
|
|
4
4
|
constructor(options) {
|
|
5
|
-
super(
|
|
5
|
+
super({ pointerTypes: ["touch" /* GesturePointerType.Touch */], ...options });
|
|
6
|
+
this.type = "gesture-longtap";
|
|
6
7
|
}
|
|
7
8
|
capture(events) {
|
|
8
9
|
return combineLatest({ timeWithin: timer(this.timeWithin).pipe(startWith(null)), event: events }).pipe(map(({ timeWithin, event }) => {
|
|
@@ -30,4 +31,4 @@ export function gestureLongTap(options) {
|
|
|
30
31
|
return new GestureLongTapImpl(options);
|
|
31
32
|
}
|
|
32
33
|
export const GestureLongTap = gestureLongTap();
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzdHVyZS1sb25ndGFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXJpYS9zcmMvZ2VzdHVyZXMvZ2VzdHVyZS1sb25ndGFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRS9FLE9BQU8sRUFBRSxPQUFPLEVBQXVDLE1BQU0sV0FBVyxDQUFBO0FBTXhFLE1BQU0sT0FBTyxrQkFBMEUsU0FBUSxPQUFVO0lBRXJHLFlBQVksT0FBK0I7UUFDdkMsS0FBSyxDQUFDLEVBQUUsWUFBWSxFQUFFLHdDQUEwQixFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUYxRCxTQUFJLEdBQUcsaUJBQWlCLENBQUE7SUFHakMsQ0FBQztJQUVRLE9BQU8sQ0FBQyxNQUFpQztRQUM5QyxPQUFPLGFBQWEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2xHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEMsd0NBQStCO1lBQ25DLENBQUM7WUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLGlDQUFxQixJQUFJLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0RSx3Q0FBK0I7WUFDbkMsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFBO1lBRTNDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNqRywrQ0FBK0M7Z0JBQy9DLE9BQU8sVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLHFDQUE2QixDQUFDLG9DQUE0QixDQUFBO1lBQzFGLENBQUM7aUJBQU0sQ0FBQztnQkFDSix3Q0FBK0I7WUFDbkMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUE7SUFDTCxDQUFDO0lBRVEsTUFBTSxDQUFDLE1BQWlDO1FBQzdDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FDZixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLHFDQUF1QixJQUFJLEtBQUssQ0FBQyxLQUFLLGlDQUFxQixDQUFDLENBQUMsQ0FDdkcsQ0FBQTtJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBK0I7SUFDMUQsT0FBTyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzFDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsY0FBYyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCB0aW1lciB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgR2VzdHVyZSwgR2VzdHVyZUNhcHR1cmVTdGF0ZSwgR2VzdHVyZU9wdGlvbnMgfSBmcm9tIFwiLi9nZXN0dXJlXCJcbmltcG9ydCB7IEdlc3R1cmVEZXRhaWwsIEdlc3R1cmVQaGFzZSwgR2VzdHVyZVBvaW50ZXJUeXBlIH0gZnJvbSBcIi4vZ2VzdHVyZS1ldmVudFwiXG5cbmV4cG9ydCB0eXBlIEdlc3R1cmVMb25nVGFwRGV0YWlsID0gR2VzdHVyZURldGFpbFxuZXhwb3J0IHR5cGUgR2VzdHVyZUxvbmdUYXBPcHRpb25zID0gR2VzdHVyZU9wdGlvbnM8R2VzdHVyZUxvbmdUYXBJbXBsPlxuXG5leHBvcnQgY2xhc3MgR2VzdHVyZUxvbmdUYXBJbXBsPFQgZXh0ZW5kcyBHZXN0dXJlTG9uZ1RhcERldGFpbCA9IEdlc3R1cmVMb25nVGFwRGV0YWlsPiBleHRlbmRzIEdlc3R1cmU8VD4ge1xuICAgIHJlYWRvbmx5IHR5cGUgPSBcImdlc3R1cmUtbG9uZ3RhcFwiXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucz86IEdlc3R1cmVMb25nVGFwT3B0aW9ucykge1xuICAgICAgICBzdXBlcih7IHBvaW50ZXJUeXBlczogW0dlc3R1cmVQb2ludGVyVHlwZS5Ub3VjaF0sIC4uLm9wdGlvbnMgfSlcbiAgICB9XG5cbiAgICBvdmVycmlkZSBjYXB0dXJlKGV2ZW50czogT2JzZXJ2YWJsZTxHZXN0dXJlRGV0YWlsPik6IE9ic2VydmFibGU8R2VzdHVyZUNhcHR1cmVTdGF0ZT4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdCh7IHRpbWVXaXRoaW46IHRpbWVyKHRoaXMudGltZVdpdGhpbikucGlwZShzdGFydFdpdGgobnVsbCkpLCBldmVudDogZXZlbnRzIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHsgdGltZVdpdGhpbiwgZXZlbnQgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5lbGFwc2VkID4gdGhpcy50aW1lV2l0aGluKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBHZXN0dXJlQ2FwdHVyZVN0YXRlLlNraXBcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQucGhhc2UgPT09IEdlc3R1cmVQaGFzZS5FbmQgJiYgZXZlbnQuZWxhcHNlZCA+IHRoaXMudGltZVdpdGhpbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2VzdHVyZUNhcHR1cmVTdGF0ZS5Ta2lwXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBldmVudC5wb2ludGVyc1swXS5kaXN0YW5jZVxuXG4gICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKGRpc3RhbmNlLngpIDwgdGhpcy5kaXN0YW5jZUluY2x1c2lvbiAmJiBNYXRoLmFicyhkaXN0YW5jZS55KSA8IHRoaXMuZGlzdGFuY2VJbmNsdXNpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbWF5YmUgaXMgb2sgZXZlbnQucGhhc2UgPT09IEdlc3R1cmVQaGFzZS5FbmRcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRpbWVXaXRoaW4gIT09IG51bGwgPyBHZXN0dXJlQ2FwdHVyZVN0YXRlLkluc3RhbnQgOiBHZXN0dXJlQ2FwdHVyZVN0YXRlLlBlbmRpbmdcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2VzdHVyZUNhcHR1cmVTdGF0ZS5Ta2lwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIG92ZXJyaWRlIGhhbmRsZShldmVudHM6IE9ic2VydmFibGU8R2VzdHVyZURldGFpbD4pIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmhhbmRsZShcbiAgICAgICAgICAgIGV2ZW50cy5waXBlKGZpbHRlcihldmVudCA9PiBldmVudC5waGFzZSA9PT0gR2VzdHVyZVBoYXNlLlN0YXJ0IHx8IGV2ZW50LnBoYXNlID09PSBHZXN0dXJlUGhhc2UuRW5kKSlcbiAgICAgICAgKVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlc3R1cmVMb25nVGFwKG9wdGlvbnM/OiBHZXN0dXJlTG9uZ1RhcE9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IEdlc3R1cmVMb25nVGFwSW1wbChvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgR2VzdHVyZUxvbmdUYXAgPSBnZXN0dXJlTG9uZ1RhcCgpXG4iXX0=
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { filter, map } from "rxjs";
|
|
2
2
|
import { Gesture } from "./gesture";
|
|
3
3
|
export class GestureTapImpl extends Gesture {
|
|
4
|
-
constructor(
|
|
5
|
-
super(
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.type = "gesture-tap";
|
|
6
7
|
}
|
|
7
8
|
capture(events) {
|
|
8
9
|
return events.pipe(map(event => {
|
|
@@ -33,4 +34,4 @@ export function gestureTap(options) {
|
|
|
33
34
|
return new GestureTapImpl(options);
|
|
34
35
|
}
|
|
35
36
|
export const GestureTap = gestureTap();
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzdHVyZS10YXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hcmlhL3NyYy9nZXN0dXJlcy9nZXN0dXJlLXRhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUF1QyxNQUFNLFdBQVcsQ0FBQTtBQU14RSxNQUFNLE9BQU8sY0FBOEQsU0FBUSxPQUFVO0lBQTdGOztRQUNhLFNBQUksR0FBRyxhQUFhLENBQUE7SUE4QmpDLENBQUM7SUE1QlksT0FBTyxDQUFDLE1BQWlDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FDZCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQTtZQUMzQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDakcsT0FBTztnQkFDUCwwQ0FBMEM7Z0JBQzFDLGdHQUFnRztnQkFDaEcsNkNBQTZDO2dCQUM3QyxlQUFlO2dCQUNmLDBDQUEwQztnQkFDMUMsUUFBUTtnQkFDUixXQUFXO2dCQUNYLHlDQUF5QztnQkFDekMsSUFBSTtnQkFDSixPQUFPLEtBQUssQ0FBQyxLQUFLLGlDQUFxQixDQUFDLENBQUMscUNBQTZCLENBQUMsb0NBQTRCLENBQUE7WUFDdkcsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLHdDQUErQjtZQUNuQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQTtJQUNMLENBQUM7SUFFUSxNQUFNLENBQUMsTUFBaUM7UUFDN0MsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUsscUNBQXVCLElBQUksS0FBSyxDQUFDLEtBQUssaUNBQXFCLENBQUMsQ0FBQyxDQUN2RyxDQUFBO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxPQUEyQjtJQUNsRCxPQUFPLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ3RDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsVUFBVSxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgR2VzdHVyZSwgR2VzdHVyZUNhcHR1cmVTdGF0ZSwgR2VzdHVyZU9wdGlvbnMgfSBmcm9tIFwiLi9nZXN0dXJlXCJcbmltcG9ydCB7IEdlc3R1cmVEZXRhaWwsIEdlc3R1cmVQaGFzZSB9IGZyb20gXCIuL2dlc3R1cmUtZXZlbnRcIlxuXG5leHBvcnQgdHlwZSBHZXN0dXJlVGFwRGV0YWlsID0gR2VzdHVyZURldGFpbFxuZXhwb3J0IHR5cGUgR2VzdHVyZVRhcE9wdGlvbnMgPSBHZXN0dXJlT3B0aW9uczxHZXN0dXJlVGFwSW1wbD5cblxuZXhwb3J0IGNsYXNzIEdlc3R1cmVUYXBJbXBsPFQgZXh0ZW5kcyBHZXN0dXJlVGFwRGV0YWlsID0gR2VzdHVyZVRhcERldGFpbD4gZXh0ZW5kcyBHZXN0dXJlPFQ+IHtcbiAgICByZWFkb25seSB0eXBlID0gXCJnZXN0dXJlLXRhcFwiXG5cbiAgICBvdmVycmlkZSBjYXB0dXJlKGV2ZW50czogT2JzZXJ2YWJsZTxHZXN0dXJlRGV0YWlsPik6IE9ic2VydmFibGU8R2VzdHVyZUNhcHR1cmVTdGF0ZT4ge1xuICAgICAgICByZXR1cm4gZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gZXZlbnQucG9pbnRlcnNbMF0uZGlzdGFuY2VcbiAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMoZGlzdGFuY2UueCkgPCB0aGlzLmRpc3RhbmNlSW5jbHVzaW9uICYmIE1hdGguYWJzKGRpc3RhbmNlLnkpIDwgdGhpcy5kaXN0YW5jZUluY2x1c2lvbikge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIChldmVudC5waGFzZSA9PT0gR2VzdHVyZVBoYXNlLkVuZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gZXZlbnQub3JpZ2luLnRhcmdldCB8fCBldmVudC50YXJnZXQuY29udGFpbnMoZXZlbnQub3JpZ2luLnRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICByZXR1cm4gR2VzdHVyZUNhcHR1cmVTdGF0ZS5JbnN0YW50XG4gICAgICAgICAgICAgICAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHJldHVybiBHZXN0dXJlQ2FwdHVyZVN0YXRlLlNraXBcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIHJldHVybiBHZXN0dXJlQ2FwdHVyZVN0YXRlLlBlbmRpbmdcbiAgICAgICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGhhc2UgPT09IEdlc3R1cmVQaGFzZS5FbmQgPyBHZXN0dXJlQ2FwdHVyZVN0YXRlLkluc3RhbnQgOiBHZXN0dXJlQ2FwdHVyZVN0YXRlLlBlbmRpbmdcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2VzdHVyZUNhcHR1cmVTdGF0ZS5Ta2lwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIG92ZXJyaWRlIGhhbmRsZShldmVudHM6IE9ic2VydmFibGU8R2VzdHVyZURldGFpbD4pIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmhhbmRsZShcbiAgICAgICAgICAgIGV2ZW50cy5waXBlKGZpbHRlcihldmVudCA9PiBldmVudC5waGFzZSA9PT0gR2VzdHVyZVBoYXNlLlN0YXJ0IHx8IGV2ZW50LnBoYXNlID09PSBHZXN0dXJlUGhhc2UuRW5kKSlcbiAgICAgICAgKVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlc3R1cmVUYXAob3B0aW9ucz86IEdlc3R1cmVUYXBPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBHZXN0dXJlVGFwSW1wbChvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgR2VzdHVyZVRhcCA9IGdlc3R1cmVUYXAoKVxuIl19
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Listeners } from "./gesture-event";
|
|
2
2
|
export class Gesture {
|
|
3
|
-
constructor(
|
|
4
|
-
this.name = name;
|
|
3
|
+
constructor(options) {
|
|
5
4
|
/**
|
|
6
5
|
* Gestures that depends on move distance, like drag, use this option
|
|
7
6
|
*/
|
|
@@ -64,4 +63,4 @@ export class Gesture {
|
|
|
64
63
|
(event.origin instanceof MouseEvent && this.mouseButtons.includes(event.origin.button))));
|
|
65
64
|
}
|
|
66
65
|
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzdHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FyaWEvc3JjL2dlc3R1cmVzL2dlc3R1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFxQyxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQXNCOUUsTUFBTSxPQUFnQixPQUFPO0lBOEN6QixZQUFZLE9BQXlCO1FBeENyQzs7V0FFRztRQUNNLHNCQUFpQixHQUFXLEVBQUUsQ0FBQTtRQUV2Qzs7V0FFRztRQUNNLGVBQVUsR0FBVyxHQUFHLENBQUE7UUFFakM7O1dBRUc7UUFDTSxhQUFRLEdBQVcsQ0FBQyxDQUFBO1FBRTdCOztXQUVHO1FBQ00sMEJBQXFCLEdBQVksS0FBSyxDQUFBO1FBRS9DOztXQUVHO1FBQ00saUJBQVksR0FBOEIsZ0ZBQW9ELENBQUE7UUFFdkc7O1dBRUc7UUFDTSxpQkFBWSxHQUFXLENBQUMsQ0FBQTtRQUVqQzs7V0FFRztRQUNNLGlCQUFZLEdBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFRdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO0lBQy9HLENBQUM7SUFVRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxNQUFpQztRQUNwQyxPQUFPLE1BQWdDLENBQUE7SUFDM0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhLENBQUMsS0FBb0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3RDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxLQUFvQjtRQUNoQyxPQUFPLENBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUM3QyxJQUFJLENBQUMsWUFBWSxLQUFLLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVcsQ0FBQztZQUNuRCxDQUFDLEtBQUssQ0FBQyxXQUFXLDJDQUE2QjtnQkFDM0MsQ0FBQyxLQUFLLENBQUMsTUFBTSxZQUFZLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FDL0YsQ0FBQTtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IEZ1bmN0aW9uS2V5cywgTXV0YWJsZSB9IGZyb20gXCJ1dGlsaXR5LXR5cGVzXCJcblxuaW1wb3J0IHsgR2VzdHVyZURldGFpbCwgR2VzdHVyZVBvaW50ZXJUeXBlLCBMaXN0ZW5lcnMgfSBmcm9tIFwiLi9nZXN0dXJlLWV2ZW50XCJcblxuZXhwb3J0IGNvbnN0IGVudW0gR2VzdHVyZUNhcHR1cmVTdGF0ZSB7XG4gICAgLy8gVW5jaGVja2VkXG4gICAgVW5jaGVja2VkID0gMCxcbiAgICAvLyBQZW5kaW5nIHN0YXRlXG4gICAgUGVuZGluZyA9IDEsXG4gICAgLy8gU2tpcCBjYXB0dXJlXG4gICAgU2tpcCA9IDIsXG4gICAgLy8gRGV0ZXJtaW5lIGJ5IHByaW9yaXR5XG4gICAgTWF5YmUgPSAzLFxuICAgIC8vIEluc3Rhbmx0eSB0ZXJtaW5hdGUgY2FwdHVyZSwgYW5kIGZpcmUgZXZlbnRcbiAgICBJbnN0YW50ID0gNFxufVxuXG50eXBlIF9HZXN0dXJlT3B0aW9ucyA9IFBhcnRpYWw8T21pdDxHZXN0dXJlPGFueT4sIFwib3JpZ2luVHlwZXNcIiB8IFwidHlwZVwiIHwgRnVuY3Rpb25LZXlzPEdlc3R1cmU8YW55Pj4+PlxuZXhwb3J0IHR5cGUgR2VzdHVyZU9wdGlvbnM8VCBleHRlbmRzIG9iamVjdD4gPSBQYXJ0aWFsPE9taXQ8VCwga2V5b2YgR2VzdHVyZTxhbnk+IHwgRnVuY3Rpb25LZXlzPFQ+Pj4gJiBfR2VzdHVyZU9wdGlvbnNcblxuZXhwb3J0IHR5cGUgR2VzdHVyZUV2ZW50PEcgZXh0ZW5kcyBHZXN0dXJlPiA9IEcgZXh0ZW5kcyBHZXN0dXJlPGluZmVyIEU+ICYgeyB0eXBlOiBpbmZlciBUIH1cbiAgICA/IEN1c3RvbUV2ZW50PEU+ICYgeyB0eXBlOiBUIH1cbiAgICA6IG5ldmVyXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHZXN0dXJlPFQgZXh0ZW5kcyBHZXN0dXJlRGV0YWlsID0gR2VzdHVyZURldGFpbD4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBnZXN0dXJlXG4gICAgICovXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgdHlwZTogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBHZXN0dXJlcyB0aGF0IGRlcGVuZHMgb24gbW92ZSBkaXN0YW5jZSwgbGlrZSBkcmFnLCB1c2UgdGhpcyBvcHRpb25cbiAgICAgKi9cbiAgICByZWFkb25seSBkaXN0YW5jZUluY2x1c2lvbjogbnVtYmVyID0gMTBcblxuICAgIC8qKlxuICAgICAqIEdlc3R1cmVzIHRoZXQgZGVwZW5kbnNvIG9uIHRpbWUgZnJhbWUsIGxpa2UgbG9uZ3RhcCwgdXNlIHRoaXMgb3B0aW9uXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGltZVdpdGhpbjogbnVtYmVyID0gMzAwXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcHJpb3JpdHkgb2YgdGhlIGdlc3R1cmVcbiAgICAgKi9cbiAgICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyID0gMFxuXG4gICAgLyoqXG4gICAgICogU2hvdWxkIHRoZSBnZXN0dXJlIGluY2x1ZGUgdGhlIHNjcm9sbCBkaXN0YW5jZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluY2x1ZGVTY3JvbGxEaXN0YW5jZTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcG9pbnRlciB0eXBlcyBvZiB0aGUgZ2VzdHVyZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBvaW50ZXJUeXBlczogQXJyYXk8R2VzdHVyZVBvaW50ZXJUeXBlPiA9IFtHZXN0dXJlUG9pbnRlclR5cGUuTW91c2UsIEdlc3R1cmVQb2ludGVyVHlwZS5Ub3VjaF1cblxuICAgIC8qKlxuICAgICAqIFRoZSBudW1iZXIgb2YgcG9pbnRlcnMgb2YgdGhlIGdlc3R1cmUgY2FuIGhhbmRsZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBvaW50ZXJDb3VudDogbnVtYmVyID0gMVxuXG4gICAgLyoqXG4gICAgICogVGhlIG1vdXNlIGJ1dHRvbnMgb2YgdGhlIGdlc3R1cmUgKDEgPSBsZWZ0LCAyID0gbWlkZGxlLCAzID0gcmlnaHQpXG4gICAgICovXG4gICAgcmVhZG9ubHkgbW91c2VCdXR0b25zOiBBcnJheTxudW1iZXI+ID0gWzBdXG5cbiAgICAvKipcbiAgICAgKiBUaGUgZXZlbnQgdHlwZXMgb2YgdGhlIGdlc3R1cmUgY2FuIGhhbmRsZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IG9yaWdpblR5cGVzOiBBcnJheTxzdHJpbmc+XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogX0dlc3R1cmVPcHRpb25zKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgb3B0aW9ucylcbiAgICAgICAgdGhpcy5vcmlnaW5UeXBlcyA9IE9iamVjdC5rZXlzKExpc3RlbmVycykuZmlsdGVyKHYgPT4gdGhpcy5wb2ludGVyVHlwZXMuaW5jbHVkZXMoTGlzdGVuZXJzW3ZdLnBvaW50ZXJUeXBlKSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUZXN0IGlmIHRoZSBnZXN0dXJlIHNob3VsZCBiZSBjYXB0dXJlZC5cbiAgICAgKiBUaGUgZ2l2ZW4gZXZlbnRzIGlzIGZpbHRlcmRlIGJ5IHtAc2VlIEdlc3R1cmUjc2hvdWxkQ2FwdHVyZX1cbiAgICAgKiAhIGltcG9ydGFudCwgZG9udCByZWx5IG9uIHRoaXMgb2JqZWN0IHN0YXRlLCBiZWNhdXNlIG5vdCBhbHdheXMgY3JlYXRlIGEgbmV3IG9iamVjdFxuICAgICAqIEBwYXJhbSBldmVudHMgZXZlbnRzIHRvIGNoZWNrXG4gICAgICovXG4gICAgYWJzdHJhY3QgY2FwdHVyZShldmVudHM6IE9ic2VydmFibGU8R2VzdHVyZURldGFpbD4pOiBPYnNlcnZhYmxlPEdlc3R1cmVDYXB0dXJlU3RhdGU+XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm0gaW5wdXQgZXZlbnQsIHRvIGdlc3R1cmUgZXZlbnQuXG4gICAgICogVGhlIGdpdmVuIGV2ZW50cyBpcyBmaWx0ZXJkZSBieSB7QHNlZSBHZXN0dXJlI2lzUmVsZXZhbnRFdmVudH1cbiAgICAgKiAhIGltcG9ydGFudCwgZG9udCByZWx5IG9uIHRoaXMgb2JqZWN0IHN0YXRlLCBiZWNhdXNlIG5vdCBhbHdheXMgY3JlYXRlIGEgbmV3IG9iamVjdFxuICAgICAqIEBwYXJhbSBldmVudHMgZXZlbnRzIHRvIHRyYW5zZm9ybSBvciBmaWx0ZXIgb3IgbGVhdmUgYXMgaXNcbiAgICAgKi9cbiAgICBoYW5kbGUoZXZlbnRzOiBPYnNlcnZhYmxlPEdlc3R1cmVEZXRhaWw+KTogT2JzZXJ2YWJsZTxNdXRhYmxlPFQ+PiB7XG4gICAgICAgIHJldHVybiBldmVudHMgYXMgT2JzZXJ2YWJsZTxNdXRhYmxlPFQ+PlxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3VsZCB0aGlzIGdlc3R1cmUgY2FwdHVyZSB0aGUgZXZlbnQ/XG4gICAgICogQHBhcmFtIGV2ZW50IGV2ZW50IHRvIGNoZWNrXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZ2VzdHVyZSBzaG91bGQgY2FwdHVyZSB0aGUgZXZlbnQsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIHNob3VsZENhcHR1cmUoZXZlbnQ6IEdlc3R1cmVEZXRhaWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZWxldmFudEV2ZW50KGV2ZW50KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRlc3QgaWYgdGhlIGV2ZW50IGlzIHJlbGV2YW50IHRvIHRoZSBnZXN0dXJlLlxuICAgICAqIFRoZSBldmVudCBpcyByZWxldmFudCBpZlxuICAgICAqIEBwYXJhbSBldmVudCBldmVudCB0byBjaGVja1xuICAgICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IGlzIHJlbGV2YW50LCBmYWxzZSBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBpc1JlbGV2YW50RXZlbnQoZXZlbnQ6IEdlc3R1cmVEZXRhaWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMucG9pbnRlclR5cGVzLmluY2x1ZGVzKGV2ZW50LnBvaW50ZXJUeXBlKSAmJlxuICAgICAgICAgICAgdGhpcy5wb2ludGVyQ291bnQgPT09IGV2ZW50LnBvaW50ZXJzLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy5vcmlnaW5UeXBlcy5pbmNsdWRlcyhldmVudC5vcmlnaW4udHlwZSBhcyBhbnkpICYmXG4gICAgICAgICAgICAoZXZlbnQucG9pbnRlclR5cGUgIT09IEdlc3R1cmVQb2ludGVyVHlwZS5Nb3VzZSB8fFxuICAgICAgICAgICAgICAgIChldmVudC5vcmlnaW4gaW5zdGFuY2VvZiBNb3VzZUV2ZW50ICYmIHRoaXMubW91c2VCdXR0b25zLmluY2x1ZGVzKGV2ZW50Lm9yaWdpbi5idXR0b24pKSlcbiAgICAgICAgKVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -41,8 +41,8 @@ export class GestureService {
|
|
|
41
41
|
const eventTarget = event.target;
|
|
42
42
|
let includeScrollDistance = false;
|
|
43
43
|
const gestures = this.#watchers
|
|
44
|
-
.filter(({ gesture, el }) =>
|
|
45
|
-
|
|
44
|
+
.filter(({ gesture, el }) => (el === eventTarget || ("contains" in el && el.contains(eventTarget))) &&
|
|
45
|
+
gesture.shouldCapture(event))
|
|
46
46
|
.reduce((gestures, { gesture }) => {
|
|
47
47
|
if (!gestures.has(gesture)) {
|
|
48
48
|
includeScrollDistance = includeScrollDistance || gesture.includeScrollDistance;
|
|
@@ -80,7 +80,9 @@ export class GestureService {
|
|
|
80
80
|
share());
|
|
81
81
|
const captureState = eventStream.pipe(connect(src => {
|
|
82
82
|
const state = { events: [], gestures, includeScrollDistance };
|
|
83
|
-
return merge(src.pipe(tap(event => state.events.push(event))), ...Array.from(gestures.keys())
|
|
83
|
+
return merge(src.pipe(tap(event => state.events.push(event))), ...Array.from(gestures.keys())
|
|
84
|
+
.sort(sortByPripority)
|
|
85
|
+
.map(gesture => gesture.capture(src.pipe(filter(gesture.shouldCapture.bind(gesture)))).pipe(takeWhile(result => result !== 2 /* GestureCaptureState.Skip */, true), tap(result => gestures.set(gesture, result))))).pipe(map(() => state));
|
|
84
86
|
})
|
|
85
87
|
// ,finalize(() => console.log("FINALIZE CAPTURE"))
|
|
86
88
|
);
|
|
@@ -119,7 +121,7 @@ export class GestureService {
|
|
|
119
121
|
);
|
|
120
122
|
return selectGesture.pipe(switchMap(({ events, gesture }) => gesture
|
|
121
123
|
.handle(eventStream.pipe(startWith(...events), filter(gesture.isRelevantEvent.bind(gesture))))
|
|
122
|
-
.pipe(takeWhile(v => v.phase !== "end" /* GesturePhase.End */, true), tap(detail => dispatchEvent(new CustomEvent(gesture.
|
|
124
|
+
.pipe(takeWhile(v => v.phase !== "end" /* GesturePhase.End */, true), tap(detail => dispatchEvent(new CustomEvent(gesture.type, { detail, bubbles: true, cancelable: true })))
|
|
123
125
|
// finalize(() => console.log("GESTURE FINALIZE")),
|
|
124
126
|
)),
|
|
125
127
|
// finalize(() => console.log("FINALIZE RESULT")),
|
|
@@ -136,8 +138,8 @@ export class GestureService {
|
|
|
136
138
|
const element = coerceElement(el);
|
|
137
139
|
const next = dst.next.bind(dst);
|
|
138
140
|
for (const gesture of gestures) {
|
|
139
|
-
element[ADD_EVENT_LISTENER](gesture.
|
|
140
|
-
dst.add(element[REMOVE_EVENT_LISTENER].bind(element, gesture.
|
|
141
|
+
element[ADD_EVENT_LISTENER](gesture.type, next);
|
|
142
|
+
dst.add(element[REMOVE_EVENT_LISTENER].bind(element, gesture.type, next));
|
|
141
143
|
}
|
|
142
144
|
dst.add(this.#watch(element, ...gestures).subscribe());
|
|
143
145
|
}));
|
|
@@ -279,4 +281,4 @@ function updatePointers(state) {
|
|
|
279
281
|
function direction(prev, curr) {
|
|
280
282
|
return curr > prev ? 1 : curr < prev ? -1 : 0;
|
|
281
283
|
}
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXJpYS9zcmMvZ2VzdHVyZXMvZ2VzdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFL0QsT0FBTyxFQUNILGFBQWEsRUFDYixPQUFPLEVBQ1AsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILEtBQUssRUFDTCxVQUFVLEVBQ1YsSUFBSSxFQUNKLEtBQUssRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUVQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNOLE1BQU0sTUFBTSxDQUFBO0FBSWIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUloRyxPQUFPLEVBT0gsU0FBUyxFQUNaLE1BQU0saUJBQWlCLENBQUE7O0FBRXhCLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUE7QUFDOUQsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQTtBQUNwRSxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUE7QUFvQ3ZELE1BQU0sdUJBQXVCLEdBQTRCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFBO0FBRzFFLE1BQU0sT0FBTyxjQUFjO0lBQ2QsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN0QixTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxD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QUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIlxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIlxuXG5pbXBvcnQge1xuICAgIGNvbWJpbmVMYXRlc3QsXG4gICAgY29ubmVjdCxcbiAgICBkZWJvdW5jZVRpbWUsXG4gICAgZmlsdGVyLFxuICAgIGZpbmFsaXplLFxuICAgIG1hcCxcbiAgICBtZXJnZSxcbiAgICBPYnNlcnZhYmxlLFxuICAgIHNjYW4sXG4gICAgc2hhcmUsXG4gICAgc3RhcnRXaXRoLFxuICAgIFN1YmplY3QsXG4gICAgU3Vic2NyaWJlcixcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZVdoaWxlLFxuICAgIHRhcFxufSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IE11dGFibGUgfSBmcm9tIFwidXRpbGl0eS10eXBlc1wiXG5cbmltcG9ydCB7IF9fem9uZV9zeW1ib2xfXywgY29lcmNlRWxlbWVudCwgRWxlbWVudElucHV0LCBpc0ZhbHN5LCBpc1RydXRoeSB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gXCJAbmd1dGlsL3N0eWxlXCJcblxuaW1wb3J0IHsgR2VzdHVyZSwgR2VzdHVyZUNhcHR1cmVTdGF0ZSB9IGZyb20gXCIuL2dlc3R1cmVcIlxuaW1wb3J0IHtcbiAgICBHZXN0dXJlRGV0YWlsLFxuICAgIEdlc3R1cmVFdmVudCxcbiAgICBHZXN0dXJlTGlzdGVuZXJDb25maWcsXG4gICAgR2VzdHVyZU9yaWdpbixcbiAgICBHZXN0dXJlUGhhc2UsXG4gICAgR2VzdHVyZVBvaW50ZXJUeXBlLFxuICAgIExpc3RlbmVyc1xufSBmcm9tIFwiLi9nZXN0dXJlLWV2ZW50XCJcblxuY29uc3QgQUREX0VWRU5UX0xJU1RFTkVSID0gX196b25lX3N5bWJvbF9fKFwiYWRkRXZlbnRMaXN0ZW5lclwiKVxuY29uc3QgUkVNT1ZFX0VWRU5UX0xJU1RFTkVSID0gX196b25lX3N5bWJvbF9fKFwicmVtb3ZlRXZlbnRMaXN0ZW5lclwiKVxuY29uc3QgRElTUEFUQ0hfRVZFTlQgPSBfX3pvbmVfc3ltYm9sX18oXCJkaXNwYXRjaEV2ZW50XCIpXG5cbnR5cGUgR2VzdHVyZXNUb0V2ZW50c1R5cGU8VCBleHRlbmRzIEFycmF5PEdlc3R1cmU+PiA9XG4gICAgVCBleHRlbmRzIEFycmF5PGluZmVyIEc+ID8gKEcgZXh0ZW5kcyBHZXN0dXJlPGluZmVyIEU+ID8gRSA6IG5ldmVyKSA6IG5ldmVyXG5cbnR5cGUgR2VzdHVyZUV2ZW50RGlzY3JpbWluYXRvcjxUPiA9IFQgZXh0ZW5kcyB7IHR5cGU6IGluZmVyIE4gfSA/IHsgdHlwZTogTiB9ICYgVCA6IG5ldmVyXG5cbmV4cG9ydCB0eXBlIEdlc3R1cmVXYXRjaFJldHVybnM8VCBleHRlbmRzIEFycmF5PEdlc3R1cmU+PiA9IE9ic2VydmFibGU8XG4gICAgR2VzdHVyZUV2ZW50RGlzY3JpbWluYXRvcjxHZXN0dXJlc1RvRXZlbnRzVHlwZTxUPj5cbj5cblxuZXhwb3J0IHR5cGUgR2VzdHVyZUxpc3RlblJldHVybnM8VCBleHRlbmRzIEFycmF5PEdlc3R1cmU+PiA9IE9ic2VydmFibGU8R2VzdHVyZUV2ZW50PEdlc3R1cmVzVG9FdmVudHNUeXBlPFQ+Pj5cblxuaW50ZXJmYWNlIEJlZ2luU3RhdGUge1xuICAgIGRldGFpbDogR2VzdHVyZURldGFpbFxuICAgIGdlc3R1cmVzOiBNYXA8R2VzdHVyZSwgR2VzdHVyZUNhcHR1cmVTdGF0ZT5cbiAgICBpbmNsdWRlU2Nyb2xsRGlzdGFuY2U6IGJvb2xlYW5cbn1cblxuaW50ZXJmYWNlIENhcHR1cmVTdGF0ZSB7XG4gICAgZXZlbnRzOiBHZXN0dXJlRGV0YWlsW11cbiAgICBnZXN0dXJlczogQmVnaW5TdGF0ZVtcImdlc3R1cmVzXCJdXG4gICAgaW5jbHVkZVNjcm9sbERpc3RhbmNlOiBCZWdpblN0YXRlW1wiaW5jbHVkZVNjcm9sbERpc3RhbmNlXCJdXG59XG5cbmludGVyZmFjZSBDYXB0dXJlU2VsZWN0U3RhdGUge1xuICAgIGV2ZW50czogR2VzdHVyZURldGFpbFtdXG4gICAgZ2VzdHVyZT86IEdlc3R1cmVcbiAgICB3YXRjaGVycz86IEFycmF5PFdhdGNoZXI+XG59XG5cbmludGVyZmFjZSBXYXRjaGVyIHtcbiAgICByZWFkb25seSBlbDogSFRNTEVsZW1lbnRcbiAgICByZWFkb25seSBnZXN0dXJlOiBHZXN0dXJlXG59XG5cbmNvbnN0IFNDUk9MTF9MSVNURU5FUl9PUFRJT05TOiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyA9IHsgcGFzc2l2ZTogdHJ1ZSB9XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBHZXN0dXJlU2VydmljZSB7XG4gICAgcmVhZG9ubHkgI3pvbmUgPSBpbmplY3QoTmdab25lKVxuICAgIHJlYWRvbmx5ICNkb2N1bWVudCA9IGluamVjdChET0NVTUVOVClcblxuICAgICN3YXRjaGVyczogV2F0Y2hlcltdID0gW11cbiAgICByZWFkb25seSAjdHJpZ2dlciA9IG5ldyBTdWJqZWN0PEdlc3R1cmVEZXRhaWw+KClcblxuICAgIHJlYWRvbmx5ICNtb3Zpbmc6IE9ic2VydmFibGU8R2VzdHVyZURldGFpbD4gPSBtZXJnZShcbiAgICAgICAgLi4uT2JqZWN0LmtleXMoTGlzdGVuZXJzKVxuICAgICAgICAgICAgLmZpbHRlcihuYW1lID0+IExpc3RlbmVyc1tuYW1lXS5waGFzZSA9PT0gR2VzdHVyZVBoYXNlLk1vdmluZylcbiAgICAgICAgICAgIC5tYXAobmFtZSA9PiB0aGlzLiNsaXN0ZW4obmFtZSwgTGlzdGVuZXJzW25hbWVdKSlcbiAgICApLnBpcGUoc2hhcmUoKSlcblxuICAgIHJlYWRvbmx5ICNlbmQ6IE9ic2VydmFibGU8R2VzdHVyZURldGFpbD4gPSBtZXJnZShcbiAgICAgICAgLi4uT2JqZWN0LmtleXMoTGlzdGVuZXJzKVxuICAgICAgICAgICAgLmZpbHRlcihuYW1lID0+IExpc3RlbmVyc1tuYW1lXS5waGFzZSA9PT0gR2VzdHVyZVBoYXNlLkVuZClcbiAgICAgICAgICAgIC5tYXAobmFtZSA9PiB0aGlzLiNsaXN0ZW4obmFtZSwgTGlzdGVuZXJzW25hbWVdKSlcbiAgICApLnBpcGUoc2hhcmUoKSlcblxuICAgIHJlYWRvbmx5ICNldmVudFN0cmVhbSA9IG1lcmdlKHRoaXMuI21vdmluZywgdGhpcy4jZW5kKS5waXBlKHNoYXJlKCkpXG5cbiAgICByZWFkb25seSAjYmVnaW4gPSBuZXcgT2JzZXJ2YWJsZSgoZHN0OiBTdWJzY3JpYmVyPEJlZ2luU3RhdGU+KSA9PiB7XG4gICAgICAgIGxldCBwb2ludGVyVHlwZTogR2VzdHVyZVBvaW50ZXJUeXBlIHwgdW5kZWZpbmVkXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuI3RyaWdnZXJcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwb2ludGVyVHlwZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyVHlwZSA9IGV2ZW50LnBvaW50ZXJUeXBlXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucG9pbnRlclR5cGUgPT09IHBvaW50ZXJUeXBlXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY29ubmVjdChldmVudHMgPT5cbiAgICAgICAgICAgICAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyByZXNldCBwb2ludGVyVHlwZSBvbiBlbmQsIGFmdGVyIDIwMG1zLCBiZWNhdXNlIHRvdWNoZW5kIGlzIG1heWJlIGZvbGxvd2VkIGJ5IGEgbW91c2UgZXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuI2VuZC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJUeXBlID0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuI2VuYWJsZVRvdWNoQWN0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIC8vIFNlbGVjdCBhY3RpdmUgd2F0Y2hlcnNcbiAgICAgICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVQb2ludGVycyhldmVudClcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXZlbnRUYXJnZXQgPSBldmVudC50YXJnZXRcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluY2x1ZGVTY3JvbGxEaXN0YW5jZSA9IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdlc3R1cmVzID0gdGhpcy4jd2F0Y2hlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHsgZ2VzdHVyZSwgZWwgfSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VzdHVyZS5zaG91bGRDYXB0dXJlKGV2ZW50KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWwgPT09IGV2ZW50VGFyZ2V0IHx8IChcImNvbnRhaW5zXCIgaW4gZWwgJiYgZWwuY29udGFpbnMoZXZlbnRUYXJnZXQpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlc3R1cmVzLCB7IGdlc3R1cmUgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdlc3R1cmVzLmhhcyhnZXN0dXJlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZVNjcm9sbERpc3RhbmNlID0gaW5jbHVkZVNjcm9sbERpc3RhbmNlIHx8IGdlc3R1cmUuaW5jbHVkZVNjcm9sbERpc3RhbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXN0dXJlcy5zZXQoZ2VzdHVyZSwgR2VzdHVyZUNhcHR1cmVTdGF0ZS5VbmNoZWNrZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdlc3R1cmVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTWFwKCkgYXMgQmVnaW5TdGF0ZVtcImdlc3R1cmVzXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZGV0YWlsOiBldmVudCwgZ2VzdHVyZXMsIGluY2x1ZGVTY3JvbGxEaXN0YW5jZSB9IHNhdGlzZmllcyBCZWdpblN0YXRlXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh7IGdlc3R1cmVzIH0pID0+IGdlc3R1cmVzLnNpemUgPiAwKSxcbiAgICAgICAgICAgICAgICB0YXAodGhpcy4jZGlzYWJsZVRvdWNoQWN0aW9uKVxuICAgICAgICAgICAgICAgIC8vIGZpbmFsaXplKCgpID0+IGNvbnNvbGUubG9nKFwiRklOQUxJWkUgQkVHSU5cIikpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGRzdClcbiAgICB9KVxuXG4gICAgcmVhZG9ubHkgI2dlc3R1cmUgPSB0aGlzLiNiZWdpbi5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHsgZGV0YWlsOiBzdGFydEV2ZW50LCBnZXN0dXJlcywgaW5jbHVkZVNjcm9sbERpc3RhbmNlIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ZXJUeXBlID0gc3RhcnRFdmVudC5wb2ludGVyVHlwZVxuICAgICAgICAgICAgY29uc3Qgc3RhcnRBdCA9IHN0YXJ0RXZlbnQub3JpZ2luLnRpbWVTdGFtcFxuICAgICAgICAgICAgY29uc3QgZGlzcGF0Y2hFdmVudCA9IHN0YXJ0RXZlbnQudGFyZ2V0W0RJU1BBVENIX0VWRU5UXS5iaW5kKHN0YXJ0RXZlbnQudGFyZ2V0KVxuXG4gICAgICAgICAgICBjb25zdCBldmVudFN0cmVhbUluaXQgPSB0aGlzLiNldmVudFN0cmVhbS5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChzdGFydEV2ZW50KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQucG9pbnRlclR5cGUgPT09IHBvaW50ZXJUeXBlKVxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBjb25zdCBldmVudFN0cmVhbVNvdXJjZSA9ICFpbmNsdWRlU2Nyb2xsRGlzdGFuY2VcbiAgICAgICAgICAgICAgICA/IGV2ZW50U3RyZWFtSW5pdFxuICAgICAgICAgICAgICAgIDogY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnRTdHJlYW1Jbml0LFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuI3Njcm9sbERpc3RhbmNlKHN0YXJ0RXZlbnQudGFyZ2V0KS5waXBlKHN0YXJ0V2l0aCh7IHg6IDAsIHk6IDAgfSkpXG4gICAgICAgICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgIG1hcCgoW3NyYywgZGlzdGFuY2VdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDsoc3JjIGFzIE11dGFibGU8R2VzdHVyZURldGFpbD4pLnNjcm9sbERpc3RhbmNlID0gZGlzdGFuY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNyY1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50U3RyZWFtID0gZXZlbnRTdHJlYW1Tb3VyY2UucGlwZShcbiAgICAgICAgICAgICAgICBzY2FuKFxuICAgICAgICAgICAgICAgICAgICAoc3RhdGUsIGN1cnIpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVQb2ludGVycyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uY3VycixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGFwc2VkOiBjdXJyLm9yaWdpbi50aW1lU3RhbXAgLSBzdGFydEF0IVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RXZlbnRcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VXaGlsZShldmVudCA9PiBldmVudC5waGFzZSAhPT0gR2VzdHVyZVBoYXNlLkVuZCwgdHJ1ZSksXG4gICAgICAgICAgICAgICAgLy8gZmluYWxpemUoKCkgPT4gY29uc29sZS5sb2coXCJGSU5BTElaRSBXQVRDSFwiKSksXG4gICAgICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBjb25zdCBjYXB0dXJlU3RhdGUgPSBldmVudFN0cmVhbS5waXBlKFxuICAgICAgICAgICAgICAgIGNvbm5lY3Qoc3JjID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdGU6IENhcHR1cmVTdGF0ZSA9IHsgZXZlbnRzOiBbXSwgZ2VzdHVyZXMsIGluY2x1ZGVTY3JvbGxEaXN0YW5jZSB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5waXBlKHRhcChldmVudCA9PiBzdGF0ZS5ldmVudHMucHVzaChldmVudCkpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLkFycmF5LmZyb20oZ2VzdHVyZXMua2V5cygpKS5tYXAoZ2VzdHVyZSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlc3R1cmUuY2FwdHVyZShzcmMucGlwZShmaWx0ZXIoZ2VzdHVyZS5zaG91bGRDYXB0dXJlLmJpbmQoZ2VzdHVyZSkpKSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVdoaWxlKHJlc3VsdCA9PiByZXN1bHQgIT09IEdlc3R1cmVDYXB0dXJlU3RhdGUuU2tpcCwgdHJ1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcChyZXN1bHQgPT4gZ2VzdHVyZXMuc2V0KGdlc3R1cmUsIHJlc3VsdCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApLnBpcGUobWFwKCgpID0+IHN0YXRlKSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC8vICxmaW5hbGl6ZSgoKSA9PiBjb25zb2xlLmxvZyhcIkZJTkFMSVpFIENBUFRVUkVcIikpXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdEdlc3R1cmUgPSBjYXB0dXJlU3RhdGUucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoc3RhdGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJ0aXRpb25zOiB7IFtrIGluIEdlc3R1cmVDYXB0dXJlU3RhdGVdPzogR2VzdHVyZVtdIH0gPSB7fVxuXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2dlc3R1cmUsIGNhcHR1cmVTdGF0ZV0gb2Ygc3RhdGUuZ2VzdHVyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnRpdGlvbiA9IChwYXJ0aXRpb25zW2NhcHR1cmVTdGF0ZV0gPz89IFtdKVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFydGl0aW9uLnB1c2goZ2VzdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0aXRpb25zW0dlc3R1cmVDYXB0dXJlU3RhdGUuSW5zdGFudF0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXN0dXJlOiBwYXJ0aXRpb25zW0dlc3R1cmVDYXB0dXJlU3RhdGUuSW5zdGFudF0uc29ydChzb3J0QnlQcmlwb3JpdHkpWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50czogc3RhdGUuZXZlbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGFzIENhcHR1cmVTZWxlY3RTdGF0ZVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gd2hpbGUgbm90IGFsbCBnZXN0dXJlcyByZXR1cm4gZnJvbSBHZXN0dXJlLmNhcHR1cmVcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnRpdGlvbnNbR2VzdHVyZUNhcHR1cmVTdGF0ZS5VbmNoZWNrZWRdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyB3aGlsZSBoYXMgcGVuZGluZywgdGhlIGNhcHR1cmUgaXMgY29udGludWVkXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0aXRpb25zW0dlc3R1cmVDYXB0dXJlU3RhdGUuUGVuZGluZ10gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIG5vIHBlbmRpZyAmIGhhcyBtYXliZVxuICAgICAgICAgICAgICAgICAgICBpZiAocGFydGl0aW9uc1tHZXN0dXJlQ2FwdHVyZVN0YXRlLk1heWJlXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlc3R1cmU6IHBhcnRpdGlvbnNbR2VzdHVyZUNhcHR1cmVTdGF0ZS5NYXliZV0uc29ydChzb3J0QnlQcmlwb3JpdHkpWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50czogc3RhdGUuZXZlbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGFzIENhcHR1cmVTZWxlY3RTdGF0ZVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gbm8gcGVuZGluZyAmIG5vIG1heWJlICYgbm8gdGVybWluYXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvLCBub3RoaWduIG1hdGNoZWRcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZXZlbnRzOiBzdGF0ZS5ldmVudHMgfSBhcyBDYXB0dXJlU2VsZWN0U3RhdGVcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlV2hpbGUoaXNGYWxzeSwgdHJ1ZSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKGlzVHJ1dGh5KSxcbiAgICAgICAgICAgICAgICB0YWtlV2hpbGUodiA9PiB2IS5nZXN0dXJlICE9IG51bGwsIGZhbHNlKVxuICAgICAgICAgICAgICAgIC8vIGZpbmFsaXplKCgpID0+IGNvbnNvbGUubG9nKFwiRklOQUxJWkUgU0VMRUNUXCIpKVxuICAgICAgICAgICAgKSBhcyBPYnNlcnZhYmxlPFJlcXVpcmVkPENhcHR1cmVTZWxlY3RTdGF0ZT4+XG5cbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RHZXN0dXJlLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh7IGV2ZW50cywgZ2VzdHVyZSB9KSA9PlxuICAgICAgICAgICAgICAgICAgICBnZXN0dXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAuaGFuZGxlKGV2ZW50U3RyZWFtLnBpcGUoc3RhcnRXaXRoKC4uLmV2ZW50cyksIGZpbHRlcihnZXN0dXJlLmlzUmVsZXZhbnRFdmVudC5iaW5kKGdlc3R1cmUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlV2hpbGUodiA9PiB2LnBoYXNlICE9PSBHZXN0dXJlUGhhc2UuRW5kLCB0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoZGV0YWlsID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoZ2VzdHVyZS5uYW1lLCB7IGRldGFpbCwgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpbmFsaXplKCgpID0+IGNvbnNvbGUubG9nKFwiR0VTVFVSRSBGSU5BTElaRVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAvLyBmaW5hbGl6ZSgoKSA9PiBjb25zb2xlLmxvZyhcIkZJTkFMSVpFIFJFU1VMVFwiKSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUodGhpcy4jZW5hYmxlVG91Y2hBY3Rpb24pXG4gICAgICAgICAgICApXG4gICAgICAgIH0pLFxuICAgICAgICBzaGFyZSgpXG4gICAgKVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXJzID0gbWVyZ2UoXG4gICAgICAgICAgICAuLi5PYmplY3Qua2V5cyhMaXN0ZW5lcnMpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihuYW1lID0+IExpc3RlbmVyc1tuYW1lXS5waGFzZSA9PT0gR2VzdHVyZVBoYXNlLlN0YXJ0KVxuICAgICAgICAgICAgICAgIC5tYXAobmFtZSA9PiB0aGlzLiNsaXN0ZW4obmFtZSwgTGlzdGVuZXJzW25hbWVdKSlcbiAgICAgICAgKVxuICAgICAgICB0cmlnZ2Vycy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUodGhpcy4jdHJpZ2dlcilcbiAgICB9XG5cbiAgICBsaXN0ZW48VCBleHRlbmRzIEFycmF5PEdlc3R1cmU+PihlbDogRWxlbWVudElucHV0LCAuLi5nZXN0dXJlczogVCk6IEdlc3R1cmVMaXN0ZW5SZXR1cm5zPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkc3Q6IFN1YnNjcmliZXI8R2VzdHVyZURldGFpbD4pID0+XG4gICAgICAgICAgICB0aGlzLiN6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gY29lcmNlRWxlbWVudChlbClcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gZHN0Lm5leHQuYmluZChkc3QpXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBnZXN0dXJlIG9mIGdlc3R1cmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRbQUREX0VWRU5UX0xJU1RFTkVSXShnZXN0dXJlLm5hbWUgYXMgYW55LCBuZXh0KVxuICAgICAgICAgICAgICAgICAgICBkc3QuYWRkKGVsZW1lbnRbUkVNT1ZFX0VWRU5UX0xJU1RFTkVSXS5iaW5kKGVsZW1lbnQsIGdlc3R1cmUubmFtZSBhcyBhbnksIG5leHQgYXMgYW55KSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZHN0LmFkZCh0aGlzLiN3YXRjaChlbGVtZW50LCAuLi5nZXN0dXJlcykuc3Vic2NyaWJlKCkpXG4gICAgICAgICAgICB9KVxuICAgICAgICApIGFzIGFueVxuICAgIH1cblxuICAgICN3YXRjaDxUIGV4dGVuZHMgQXJyYXk8R2VzdHVyZT4+KGVsOiBFbGVtZW50SW5wdXQsIC4uLmdlc3R1cmVzOiBUKTogR2VzdHVyZVdhdGNoUmV0dXJuczxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZHN0OiBTdWJzY3JpYmVyPEdlc3R1cmVEZXRhaWw+KSA9PlxuICAgICAgICAgICAgdGhpcy4jem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGNvZXJjZUVsZW1lbnQoZWwpXG4gICAgICAgICAgICAgICAgY29uc3Qgd2F0Y2hlcnMgPSBnZXN0dXJlcy5tYXAoZ2VzdHVyZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGdlc3R1cmUsIGVsOiBlbGVtZW50IH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIHRoaXMuI2FkZCh3YXRjaGVycylcbiAgICAgICAgICAgICAgICBkc3QuYWRkKHRoaXMuI2dlc3R1cmUuc3Vic2NyaWJlKGRzdCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jcmVtb3ZlKHdhdGNoZXJzKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICkgYXMgYW55XG4gICAgfVxuXG4gICAgI2FkZCh3YXRjaGVyczogV2F0Y2hlcltdKSB7XG4gICAgICAgIHRoaXMuI3dhdGNoZXJzID0gdGhpcy4jd2F0Y2hlcnMuY29uY2F0KHdhdGNoZXJzKVxuICAgIH1cblxuICAgICNyZW1vdmUod2F0Y2hlcnM6IFdhdGNoZXJbXSkge1xuICAgICAgICB0aGlzLiN3YXRjaGVycyA9IHRoaXMuI3dhdGNoZXJzLmZpbHRlcih2ID0+ICF3YXRjaGVycy5pbmNsdWRlcyh2KSlcbiAgICB9XG5cbiAgICAjbGlzdGVuKG5hbWU6IHN0cmluZywgY29uZmlnOiBHZXN0dXJlTGlzdGVuZXJDb25maWcpIHtcbiAgICAgICAgY29uc3QgeyBwaGFzZSwgcG9pbnRlclR5cGUsIG9wdGlvbnMgfSA9IGNvbmZpZ1xuXG4gICAgICAgIGNvbnN0IHRvUmVzdWx0ID1cbiAgICAgICAgICAgIHBoYXNlID09PSBHZXN0dXJlUGhhc2UuU3RhcnRcbiAgICAgICAgICAgICAgICA/IChvcmlnaW46IEdlc3R1cmVPcmlnaW4pID0+XG4gICAgICAgICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwaGFzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlclR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogb3JpZ2luLnRhcmdldCBhcyBIVE1MRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgIH0pIGFzIEdlc3R1cmVEZXRhaWxcbiAgICAgICAgICAgICAgICA6IChvcmlnaW46IEdlc3R1cmVPcmlnaW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAob3JpZ2luLmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgb3JpZ2luLCBwaGFzZSwgcG9pbnRlclR5cGUgfSBhcyBHZXN0dXJlRGV0YWlsXG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkc3Q6IFN1YnNjcmliZXI8R2VzdHVyZURldGFpbD4pID0+XG4gICAgICAgICAgICB0aGlzLiN6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ZW5lciA9IChvcmlnaW46IEdlc3R1cmVPcmlnaW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9yaWdpbi5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBkc3QubmV4dCh0b1Jlc3VsdChvcmlnaW4pKVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWRkRXZlbnRMaXN0ZW5lclwiLCBuYW1lKVxuICAgICAgICAgICAgICAgIHRoaXMuI2RvY3VtZW50W0FERF9FVkVOVF9MSVNURU5FUl0obmFtZSBhcyBrZXlvZiBEb2N1bWVudEV2ZW50TWFwLCBsaXN0ZW5lciBhcyBhbnksIG9wdGlvbnMpXG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJyZW1vdmVFdmVudExpc3RlbmVyXCIsIG5hbWUpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI2RvY3VtZW50W1JFTU9WRV9FVkVOVF9MSVNURU5FUl0obmFtZSBhcyBrZXlvZiBEb2N1bWVudEV2ZW50TWFwLCBsaXN0ZW5lciBhcyBhbnksIG9wdGlvbnMpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgICNzY3JvbGxEaXN0YW5jZShlbGVtZW50OiBFbGVtZW50KTogT2JzZXJ2YWJsZTxQb3NpdGlvbj4ge1xuICAgICAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICAgIGxldCB4ID0gMFxuICAgICAgICAgICAgbGV0IHkgPSAwXG4gICAgICAgICAgICBsZXQgcCA9IGVsZW1lbnRcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICB4ICs9IHAuc2Nyb2xsTGVmdCA/PyAwXG4gICAgICAgICAgICAgICAgeSArPSBwLnNjcm9sbFRvcCA/PyAwXG4gICAgICAgICAgICAgICAgcCA9IHAucGFyZW50Tm9kZSBhcyBFbGVtZW50XG4gICAgICAgICAgICB9IHdoaWxlIChwICE9IG51bGwpXG4gICAgICAgICAgICByZXR1cm4geyB4LCB5IH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZHN0OiBTdWJzY3JpYmVyPFBvc2l0aW9uPikgPT5cbiAgICAgICAgICAgIHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluaXRpYWwgPSBzY3JvbGxQb3NpdGlvbigpXG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBzY3JvbGxQb3NpdGlvbigpXG4gICAgICAgICAgICAgICAgICAgIGRzdC5uZXh0KHsgeDogY3VycmVudC54IC0gaW5pdGlhbC54LCB5OiBjdXJyZW50LnkgLSBpbml0aWFsLnkgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy4jZG9jdW1lbnRbQUREX0VWRU5UX0xJU1RFTkVSXShcInNjcm9sbFwiLCBsaXN0ZW5lciwgU0NST0xMX0xJU1RFTkVSX09QVElPTlMpXG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jZG9jdW1lbnRbUkVNT1ZFX0VWRU5UX0xJU1RFTkVSXShcInNjcm9sbFwiLCBsaXN0ZW5lciwgU0NST0xMX0xJU1RFTkVSX09QVElPTlMpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgICNsYXN0VG91Y2hBY3Rpb24/OiBzdHJpbmdcbiAgICAjZGlzYWJsZVRvdWNoQWN0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy4jbGFzdFRvdWNoQWN0aW9uID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuI2xhc3RUb3VjaEFjdGlvbiA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuI2RvY3VtZW50LmJvZHkpLnRvdWNoQWN0aW9uXG4gICAgICAgICAgICB0aGlzLiNkb2N1bWVudC5ib2R5LnN0eWxlLnRvdWNoQWN0aW9uID0gXCJub25lXCJcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNlbmFibGVUb3VjaEFjdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRoaXMuI2xhc3RUb3VjaEFjdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLiNkb2N1bWVudC5ib2R5LnN0eWxlLnRvdWNoQWN0aW9uID0gdGhpcy4jbGFzdFRvdWNoQWN0aW9uXG4gICAgICAgICAgICB0aGlzLiNsYXN0VG91Y2hBY3Rpb24gPSB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gc29ydEJ5UHJpcG9yaXR5KGE6IEdlc3R1cmUsIGI6IEdlc3R1cmUpIHtcbiAgICByZXR1cm4gYi5wcmlvcml0eSAtIGEucHJpb3JpdHlcbn1cblxuZnVuY3Rpb24gcG9pbnRlcnNGcm9tRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogUG9zaXRpb25bXSB7XG4gICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHg6IGV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgICAgICAgeTogZXZlbnQuY2xpZW50WVxuICAgICAgICAgICAgfVxuICAgICAgICBdXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oZXZlbnQudG91Y2hlcykubWFwKHQgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgeDogdC5jbGllbnRYLCB5OiB0LmNsaWVudFkgfVxuICAgICAgICB9KVxuICAgIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlUG9pbnRlcnMoc3RhdGU6IE11dGFibGU8R2VzdHVyZURldGFpbD4pOiBHZXN0dXJlRGV0YWlsIHtcbiAgICBpZiAoc3RhdGUucGhhc2UgPT09IEdlc3R1cmVQaGFzZS5TdGFydCkge1xuICAgICAgICBzdGF0ZS5wb2ludGVycyA9IHBvaW50ZXJzRnJvbUV2ZW50KHN0YXRlLm9yaWdpbikubWFwKHYgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhcnQ6IHYsIGN1cnJlbnQ6IHYsIGRpc3RhbmNlOiB7IHg6IDAsIHk6IDAgfSwgZGlyZWN0aW9uOiB7IHg6IDAsIHk6IDAgfSB9XG4gICAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChzdGF0ZS5wb2ludGVycykge1xuICAgICAgICBjb25zdCBwb2ludGVycyA9IHBvaW50ZXJzRnJvbUV2ZW50KHN0YXRlLm9yaWdpbilcbiAgICAgICAgaWYgKHBvaW50ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICAgIH1cblxuICAgICAgICBzdGF0ZS5wb2ludGVycyA9IHN0YXRlLnBvaW50ZXJzLm1hcCgodiwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcCA9IHBvaW50ZXJzW2ldXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHN0YXJ0OiB2LnN0YXJ0LFxuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHAsXG4gICAgICAgICAgICAgICAgZGlzdGFuY2U6IHsgeDogcC54IC0gdi5zdGFydC54LCB5OiBwLnkgLSB2LnN0YXJ0LnkgfSxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHsgeDogZGlyZWN0aW9uKHYuc3RhcnQueCwgcC54KSwgeTogZGlyZWN0aW9uKHYuc3RhcnQueSwgcC55KSB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlXG59XG5cbmZ1bmN0aW9uIGRpcmVjdGlvbihwcmV2OiBudW1iZXIsIGN1cnI6IG51bWJlcik6IC0xIHwgMCB8IDEge1xuICAgIHJldHVybiBjdXJyID4gcHJldiA/IDEgOiBjdXJyIDwgcHJldiA/IC0xIDogMFxufVxuIl19
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXJpYS9zcmMvZ2VzdHVyZXMvZ2VzdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFL0QsT0FBTyxFQUNILGFBQWEsRUFDYixPQUFPLEVBQ1AsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsR0FBRyxFQUNILEtBQUssRUFDTCxVQUFVLEVBQ1YsSUFBSSxFQUNKLEtBQUssRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUVQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNOLE1BQU0sTUFBTSxDQUFBO0FBSWIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUloRyxPQUFPLEVBTUgsU0FBUyxFQUNaLE1BQU0saUJBQWlCLENBQUE7O0FBRXhCLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUE7QUFDOUQsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQTtBQUNwRSxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUE7QUFvQ3ZELE1BQU0sdUJBQXVCLEdBQTRCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFBO0FBRzFFLE1BQU0sT0FBTyxjQUFjO0lBQ2QsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN0QixTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxD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RyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIlxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCJcblxuaW1wb3J0IHtcbiAgICBjb21iaW5lTGF0ZXN0LFxuICAgIGNvbm5lY3QsXG4gICAgZGVib3VuY2VUaW1lLFxuICAgIGZpbHRlcixcbiAgICBmaW5hbGl6ZSxcbiAgICBtYXAsXG4gICAgbWVyZ2UsXG4gICAgT2JzZXJ2YWJsZSxcbiAgICBzY2FuLFxuICAgIHNoYXJlLFxuICAgIHN0YXJ0V2l0aCxcbiAgICBTdWJqZWN0LFxuICAgIFN1YnNjcmliZXIsXG4gICAgc3dpdGNoTWFwLFxuICAgIHRha2VXaGlsZSxcbiAgICB0YXBcbn0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBNdXRhYmxlIH0gZnJvbSBcInV0aWxpdHktdHlwZXNcIlxuXG5pbXBvcnQgeyBfX3pvbmVfc3ltYm9sX18sIGNvZXJjZUVsZW1lbnQsIEVsZW1lbnRJbnB1dCwgaXNGYWxzeSwgaXNUcnV0aHkgfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tIFwiQG5ndXRpbC9zdHlsZVwiXG5cbmltcG9ydCB7IEdlc3R1cmUsIEdlc3R1cmVDYXB0dXJlU3RhdGUsIEdlc3R1cmVFdmVudCB9IGZyb20gXCIuL2dlc3R1cmVcIlxuaW1wb3J0IHtcbiAgICBHZXN0dXJlRGV0YWlsLFxuICAgIEdlc3R1cmVMaXN0ZW5lckNvbmZpZyxcbiAgICBHZXN0dXJlT3JpZ2luLFxuICAgIEdlc3R1cmVQaGFzZSxcbiAgICBHZXN0dXJlUG9pbnRlclR5cGUsXG4gICAgTGlzdGVuZXJzXG59IGZyb20gXCIuL2dlc3R1cmUtZXZlbnRcIlxuXG5jb25zdCBBRERfRVZFTlRfTElTVEVORVIgPSBfX3pvbmVfc3ltYm9sX18oXCJhZGRFdmVudExpc3RlbmVyXCIpXG5jb25zdCBSRU1PVkVfRVZFTlRfTElTVEVORVIgPSBfX3pvbmVfc3ltYm9sX18oXCJyZW1vdmVFdmVudExpc3RlbmVyXCIpXG5jb25zdCBESVNQQVRDSF9FVkVOVCA9IF9fem9uZV9zeW1ib2xfXyhcImRpc3BhdGNoRXZlbnRcIilcblxudHlwZSBHZXN0dXJlc1RvRXZlbnRzVHlwZTxUIGV4dGVuZHMgQXJyYXk8R2VzdHVyZT4+ID1cbiAgICBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgRz4gPyAoRyBleHRlbmRzIEdlc3R1cmUgPyBHZXN0dXJlRXZlbnQ8Rz4gOiBuZXZlcikgOiBuZXZlclxuXG50eXBlIEdlc3R1cmVFdmVudERpc2NyaW1pbmF0b3I8VD4gPSBUIGV4dGVuZHMgeyB0eXBlOiBpbmZlciBOIH0gPyB7IHR5cGU6IE4gfSAmIFQgOiBuZXZlclxuXG5leHBvcnQgdHlwZSBHZXN0dXJlV2F0Y2hSZXR1cm5zPFQgZXh0ZW5kcyBBcnJheTxHZXN0dXJlPj4gPSBPYnNlcnZhYmxlPFxuICAgIEdlc3R1cmVFdmVudERpc2NyaW1pbmF0b3I8R2VzdHVyZXNUb0V2ZW50c1R5cGU8VD4+XG4+XG5cbmV4cG9ydCB0eXBlIEdlc3R1cmVMaXN0ZW5SZXR1cm5zPFQgZXh0ZW5kcyBBcnJheTxHZXN0dXJlPj4gPSBPYnNlcnZhYmxlPEdlc3R1cmVzVG9FdmVudHNUeXBlPFQ+PlxuXG5pbnRlcmZhY2UgQmVnaW5TdGF0ZSB7XG4gICAgZGV0YWlsOiBHZXN0dXJlRGV0YWlsXG4gICAgZ2VzdHVyZXM6IE1hcDxHZXN0dXJlLCBHZXN0dXJlQ2FwdHVyZVN0YXRlPlxuICAgIGluY2x1ZGVTY3JvbGxEaXN0YW5jZTogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgQ2FwdHVyZVN0YXRlIHtcbiAgICBldmVudHM6IEdlc3R1cmVEZXRhaWxbXVxuICAgIGdlc3R1cmVzOiBCZWdpblN0YXRlW1wiZ2VzdHVyZXNcIl1cbiAgICBpbmNsdWRlU2Nyb2xsRGlzdGFuY2U6IEJlZ2luU3RhdGVbXCJpbmNsdWRlU2Nyb2xsRGlzdGFuY2VcIl1cbn1cblxuaW50ZXJmYWNlIENhcHR1cmVTZWxlY3RTdGF0ZSB7XG4gICAgZXZlbnRzOiBHZXN0dXJlRGV0YWlsW11cbiAgICBnZXN0dXJlPzogR2VzdHVyZVxuICAgIHdhdGNoZXJzPzogQXJyYXk8V2F0Y2hlcj5cbn1cblxuaW50ZXJmYWNlIFdhdGNoZXIge1xuICAgIHJlYWRvbmx5IGVsOiBIVE1MRWxlbWVudFxuICAgIHJlYWRvbmx5IGdlc3R1cmU6IEdlc3R1cmVcbn1cblxuY29uc3QgU0NST0xMX0xJU1RFTkVSX09QVElPTlM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIEdlc3R1cmVTZXJ2aWNlIHtcbiAgICByZWFkb25seSAjem9uZSA9IGluamVjdChOZ1pvbmUpXG4gICAgcmVhZG9ubHkgI2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKVxuXG4gICAgI3dhdGNoZXJzOiBXYXRjaGVyW10gPSBbXVxuICAgIHJlYWRvbmx5ICN0cmlnZ2VyID0gbmV3IFN1YmplY3Q8R2VzdHVyZURldGFpbD4oKVxuXG4gICAgcmVhZG9ubHkgI21vdmluZzogT2JzZXJ2YWJsZTxHZXN0dXJlRGV0YWlsPiA9IG1lcmdlKFxuICAgICAgICAuLi5PYmplY3Qua2V5cyhMaXN0ZW5lcnMpXG4gICAgICAgICAgICAuZmlsdGVyKG5hbWUgPT4gTGlzdGVuZXJzW25hbWVdLnBoYXNlID09PSBHZXN0dXJlUGhhc2UuTW92aW5nKVxuICAgICAgICAgICAgLm1hcChuYW1lID0+IHRoaXMuI2xpc3RlbihuYW1lLCBMaXN0ZW5lcnNbbmFtZV0pKVxuICAgICkucGlwZShzaGFyZSgpKVxuXG4gICAgcmVhZG9ubHkgI2VuZDogT2JzZXJ2YWJsZTxHZXN0dXJlRGV0YWlsPiA9IG1lcmdlKFxuICAgICAgICAuLi5PYmplY3Qua2V5cyhMaXN0ZW5lcnMpXG4gICAgICAgICAgICAuZmlsdGVyKG5hbWUgPT4gTGlzdGVuZXJzW25hbWVdLnBoYXNlID09PSBHZXN0dXJlUGhhc2UuRW5kKVxuICAgICAgICAgICAgLm1hcChuYW1lID0+IHRoaXMuI2xpc3RlbihuYW1lLCBMaXN0ZW5lcnNbbmFtZV0pKVxuICAgICkucGlwZShzaGFyZSgpKVxuXG4gICAgcmVhZG9ubHkgI2V2ZW50U3RyZWFtID0gbWVyZ2UodGhpcy4jbW92aW5nLCB0aGlzLiNlbmQpLnBpcGUoc2hhcmUoKSlcblxuICAgIHJlYWRvbmx5ICNiZWdpbiA9IG5ldyBPYnNlcnZhYmxlKChkc3Q6IFN1YnNjcmliZXI8QmVnaW5TdGF0ZT4pID0+IHtcbiAgICAgICAgbGV0IHBvaW50ZXJUeXBlOiBHZXN0dXJlUG9pbnRlclR5cGUgfCB1bmRlZmluZWRcblxuICAgICAgICByZXR1cm4gdGhpcy4jdHJpZ2dlclxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvaW50ZXJUeXBlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJUeXBlID0gZXZlbnQucG9pbnRlclR5cGVcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5wb2ludGVyVHlwZSA9PT0gcG9pbnRlclR5cGVcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjb25uZWN0KGV2ZW50cyA9PlxuICAgICAgICAgICAgICAgICAgICBtZXJnZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlc2V0IHBvaW50ZXJUeXBlIG9uIGVuZCwgYWZ0ZXIgMjAwbXMsIGJlY2F1c2UgdG91Y2hlbmQgaXMgbWF5YmUgZm9sbG93ZWQgYnkgYSBtb3VzZSBldmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4jZW5kLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlclR5cGUgPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4jZW5hYmxlVG91Y2hBY3Rpb24oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgLy8gU2VsZWN0IGFjdGl2ZSB3YXRjaGVyc1xuICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVBvaW50ZXJzKGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBldmVudFRhcmdldCA9IGV2ZW50LnRhcmdldFxuICAgICAgICAgICAgICAgICAgICBsZXQgaW5jbHVkZVNjcm9sbERpc3RhbmNlID0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2VzdHVyZXMgPSB0aGlzLiN3YXRjaGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeyBnZXN0dXJlLCBlbCB9KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWwgPT09IGV2ZW50VGFyZ2V0IHx8IChcImNvbnRhaW5zXCIgaW4gZWwgJiYgZWwuY29udGFpbnMoZXZlbnRUYXJnZXQpKSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VzdHVyZS5zaG91bGRDYXB0dXJlKGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2VzdHVyZXMsIHsgZ2VzdHVyZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2VzdHVyZXMuaGFzKGdlc3R1cmUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlU2Nyb2xsRGlzdGFuY2UgPSBpbmNsdWRlU2Nyb2xsRGlzdGFuY2UgfHwgZ2VzdHVyZS5pbmNsdWRlU2Nyb2xsRGlzdGFuY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlc3R1cmVzLnNldChnZXN0dXJlLCBHZXN0dXJlQ2FwdHVyZVN0YXRlLlVuY2hlY2tlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VzdHVyZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBNYXAoKSBhcyBCZWdpblN0YXRlW1wiZ2VzdHVyZXNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkZXRhaWw6IGV2ZW50LCBnZXN0dXJlcywgaW5jbHVkZVNjcm9sbERpc3RhbmNlIH0gc2F0aXNmaWVzIEJlZ2luU3RhdGVcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHsgZ2VzdHVyZXMgfSkgPT4gZ2VzdHVyZXMuc2l6ZSA+IDApLFxuICAgICAgICAgICAgICAgIHRhcCh0aGlzLiNkaXNhYmxlVG91Y2hBY3Rpb24pXG4gICAgICAgICAgICAgICAgLy8gZmluYWxpemUoKCkgPT4gY29uc29sZS5sb2coXCJGSU5BTElaRSBCRUdJTlwiKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZHN0KVxuICAgIH0pXG5cbiAgICByZWFkb25seSAjZ2VzdHVyZSA9IHRoaXMuI2JlZ2luLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoeyBkZXRhaWw6IHN0YXJ0RXZlbnQsIGdlc3R1cmVzLCBpbmNsdWRlU2Nyb2xsRGlzdGFuY2UgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcG9pbnRlclR5cGUgPSBzdGFydEV2ZW50LnBvaW50ZXJUeXBlXG4gICAgICAgICAgICBjb25zdCBzdGFydEF0ID0gc3RhcnRFdmVudC5vcmlnaW4udGltZVN0YW1wXG4gICAgICAgICAgICBjb25zdCBkaXNwYXRjaEV2ZW50ID0gc3RhcnRFdmVudC50YXJnZXRbRElTUEFUQ0hfRVZFTlRdLmJpbmQoc3RhcnRFdmVudC50YXJnZXQpXG5cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50U3RyZWFtSW5pdCA9IHRoaXMuI2V2ZW50U3RyZWFtLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKHN0YXJ0RXZlbnQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudC5wb2ludGVyVHlwZSA9PT0gcG9pbnRlclR5cGUpXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50U3RyZWFtU291cmNlID0gIWluY2x1ZGVTY3JvbGxEaXN0YW5jZVxuICAgICAgICAgICAgICAgID8gZXZlbnRTdHJlYW1Jbml0XG4gICAgICAgICAgICAgICAgOiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudFN0cmVhbUluaXQsXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy4jc2Nyb2xsRGlzdGFuY2Uoc3RhcnRFdmVudC50YXJnZXQpLnBpcGUoc3RhcnRXaXRoKHsgeDogMCwgeTogMCB9KSlcbiAgICAgICAgICAgICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgbWFwKChbc3JjLCBkaXN0YW5jZV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOyhzcmMgYXMgTXV0YWJsZTxHZXN0dXJlRGV0YWlsPikuc2Nyb2xsRGlzdGFuY2UgPSBkaXN0YW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3JjXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgY29uc3QgZXZlbnRTdHJlYW0gPSBldmVudFN0cmVhbVNvdXJjZS5waXBlKFxuICAgICAgICAgICAgICAgIHNjYW4oXG4gICAgICAgICAgICAgICAgICAgIChzdGF0ZSwgY3VycikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVBvaW50ZXJzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5jdXJyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsYXBzZWQ6IGN1cnIub3JpZ2luLnRpbWVTdGFtcCAtIHN0YXJ0QXQhXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRFdmVudFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVdoaWxlKGV2ZW50ID0+IGV2ZW50LnBoYXNlICE9PSBHZXN0dXJlUGhhc2UuRW5kLCB0cnVlKSxcbiAgICAgICAgICAgICAgICAvLyBmaW5hbGl6ZSgoKSA9PiBjb25zb2xlLmxvZyhcIkZJTkFMSVpFIFdBVENIXCIpKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGNvbnN0IGNhcHR1cmVTdGF0ZSA9IGV2ZW50U3RyZWFtLnBpcGUoXG4gICAgICAgICAgICAgICAgY29ubmVjdChzcmMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0ZTogQ2FwdHVyZVN0YXRlID0geyBldmVudHM6IFtdLCBnZXN0dXJlcywgaW5jbHVkZVNjcm9sbERpc3RhbmNlIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjLnBpcGUodGFwKGV2ZW50ID0+IHN0YXRlLmV2ZW50cy5wdXNoKGV2ZW50KSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uQXJyYXkuZnJvbShnZXN0dXJlcy5rZXlzKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNvcnQoc29ydEJ5UHJpcG9yaXR5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZ2VzdHVyZSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXN0dXJlLmNhcHR1cmUoc3JjLnBpcGUoZmlsdGVyKGdlc3R1cmUuc2hvdWxkQ2FwdHVyZS5iaW5kKGdlc3R1cmUpKSkpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlV2hpbGUocmVzdWx0ID0+IHJlc3VsdCAhPT0gR2VzdHVyZUNhcHR1cmVTdGF0ZS5Ta2lwLCB0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcChyZXN1bHQgPT4gZ2VzdHVyZXMuc2V0KGdlc3R1cmUsIHJlc3VsdCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICkucGlwZShtYXAoKCkgPT4gc3RhdGUpKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLy8gLGZpbmFsaXplKCgpID0+IGNvbnNvbGUubG9nKFwiRklOQUxJWkUgQ0FQVFVSRVwiKSlcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0R2VzdHVyZSA9IGNhcHR1cmVTdGF0ZS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChzdGF0ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnRpdGlvbnM6IHsgW2sgaW4gR2VzdHVyZUNhcHR1cmVTdGF0ZV0/OiBHZXN0dXJlW10gfSA9IHt9XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBbZ2VzdHVyZSwgY2FwdHVyZVN0YXRlXSBvZiBzdGF0ZS5nZXN0dXJlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFydGl0aW9uID0gKHBhcnRpdGlvbnNbY2FwdHVyZVN0YXRlXSA/Pz0gW10pXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aXRpb24ucHVzaChnZXN0dXJlKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnRpdGlvbnNbR2VzdHVyZUNhcHR1cmVTdGF0ZS5JbnN0YW50XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlc3R1cmU6IHBhcnRpdGlvbnNbR2VzdHVyZUNhcHR1cmVTdGF0ZS5JbnN0YW50XS5zb3J0KHNvcnRCeVByaXBvcml0eSlbMF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzOiBzdGF0ZS5ldmVudHNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgQ2FwdHVyZVNlbGVjdFN0YXRlXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyB3aGlsZSBub3QgYWxsIGdlc3R1cmVzIHJldHVybiBmcm9tIEdlc3R1cmUuY2FwdHVyZVxuICAgICAgICAgICAgICAgICAgICBpZiAocGFydGl0aW9uc1tHZXN0dXJlQ2FwdHVyZVN0YXRlLlVuY2hlY2tlZF0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoaWxlIGhhcyBwZW5kaW5nLCB0aGUgY2FwdHVyZSBpcyBjb250aW51ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnRpdGlvbnNbR2VzdHVyZUNhcHR1cmVTdGF0ZS5QZW5kaW5nXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gbm8gcGVuZGlnICYgaGFzIG1heWJlXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0aXRpb25zW0dlc3R1cmVDYXB0dXJlU3RhdGUuTWF5YmVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VzdHVyZTogcGFydGl0aW9uc1tHZXN0dXJlQ2FwdHVyZVN0YXRlLk1heWJlXS5zb3J0KHNvcnRCeVByaXBvcml0eSlbMF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzOiBzdGF0ZS5ldmVudHNcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgQ2FwdHVyZVNlbGVjdFN0YXRlXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBubyBwZW5kaW5nICYgbm8gbWF5YmUgJiBubyB0ZXJtaW5hdGVcbiAgICAgICAgICAgICAgICAgICAgLy8gc28sIG5vdGhpZ24gbWF0Y2hlZFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBldmVudHM6IHN0YXRlLmV2ZW50cyB9IGFzIENhcHR1cmVTZWxlY3RTdGF0ZVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VXaGlsZShpc0ZhbHN5LCB0cnVlKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoaXNUcnV0aHkpLFxuICAgICAgICAgICAgICAgIHRha2VXaGlsZSh2ID0+IHYhLmdlc3R1cmUgIT0gbnVsbCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgLy8gZmluYWxpemUoKCkgPT4gY29uc29sZS5sb2coXCJGSU5BTElaRSBTRUxFQ1RcIikpXG4gICAgICAgICAgICApIGFzIE9ic2VydmFibGU8UmVxdWlyZWQ8Q2FwdHVyZVNlbGVjdFN0YXRlPj5cblxuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdEdlc3R1cmUucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgZXZlbnRzLCBnZXN0dXJlIH0pID0+XG4gICAgICAgICAgICAgICAgICAgIGdlc3R1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgIC5oYW5kbGUoZXZlbnRTdHJlYW0ucGlwZShzdGFydFdpdGgoLi4uZXZlbnRzKSwgZmlsdGVyKGdlc3R1cmUuaXNSZWxldmFudEV2ZW50LmJpbmQoZ2VzdHVyZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VXaGlsZSh2ID0+IHYucGhhc2UgIT09IEdlc3R1cmVQaGFzZS5FbmQsIHRydWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcChkZXRhaWwgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudChnZXN0dXJlLnR5cGUsIHsgZGV0YWlsLCBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmluYWxpemUoKCkgPT4gY29uc29sZS5sb2coXCJHRVNUVVJFIEZJTkFMSVpFXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIC8vIGZpbmFsaXplKCgpID0+IGNvbnNvbGUubG9nKFwiRklOQUxJWkUgUkVTVUxUXCIpKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSh0aGlzLiNlbmFibGVUb3VjaEFjdGlvbilcbiAgICAgICAgICAgIClcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlKClcbiAgICApXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3QgdHJpZ2dlcnMgPSBtZXJnZShcbiAgICAgICAgICAgIC4uLk9iamVjdC5rZXlzKExpc3RlbmVycylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKG5hbWUgPT4gTGlzdGVuZXJzW25hbWVdLnBoYXNlID09PSBHZXN0dXJlUGhhc2UuU3RhcnQpXG4gICAgICAgICAgICAgICAgLm1hcChuYW1lID0+IHRoaXMuI2xpc3RlbihuYW1lLCBMaXN0ZW5lcnNbbmFtZV0pKVxuICAgICAgICApXG4gICAgICAgIHRyaWdnZXJzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSh0aGlzLiN0cmlnZ2VyKVxuICAgIH1cblxuICAgIGxpc3RlbjxUIGV4dGVuZHMgQXJyYXk8R2VzdHVyZT4+KGVsOiBFbGVtZW50SW5wdXQsIC4uLmdlc3R1cmVzOiBUKTogR2VzdHVyZUxpc3RlblJldHVybnM8VD4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGRzdDogU3Vic2NyaWJlcjxHZXN0dXJlRGV0YWlsPikgPT5cbiAgICAgICAgICAgIHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb2VyY2VFbGVtZW50KGVsKVxuICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSBkc3QubmV4dC5iaW5kKGRzdClcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGdlc3R1cmUgb2YgZ2VzdHVyZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFtBRERfRVZFTlRfTElTVEVORVJdKGdlc3R1cmUudHlwZSBhcyBhbnksIG5leHQpXG4gICAgICAgICAgICAgICAgICAgIGRzdC5hZGQoZWxlbWVudFtSRU1PVkVfRVZFTlRfTElTVEVORVJdLmJpbmQoZWxlbWVudCwgZ2VzdHVyZS50eXBlIGFzIGFueSwgbmV4dCBhcyBhbnkpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkc3QuYWRkKHRoaXMuI3dhdGNoKGVsZW1lbnQsIC4uLmdlc3R1cmVzKS5zdWJzY3JpYmUoKSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkgYXMgYW55XG4gICAgfVxuXG4gICAgI3dhdGNoPFQgZXh0ZW5kcyBBcnJheTxHZXN0dXJlPj4oZWw6IEVsZW1lbnRJbnB1dCwgLi4uZ2VzdHVyZXM6IFQpOiBHZXN0dXJlV2F0Y2hSZXR1cm5zPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkc3Q6IFN1YnNjcmliZXI8R2VzdHVyZURldGFpbD4pID0+XG4gICAgICAgICAgICB0aGlzLiN6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gY29lcmNlRWxlbWVudChlbClcbiAgICAgICAgICAgICAgICBjb25zdCB3YXRjaGVycyA9IGdlc3R1cmVzLm1hcChnZXN0dXJlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZ2VzdHVyZSwgZWw6IGVsZW1lbnQgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgdGhpcy4jYWRkKHdhdGNoZXJzKVxuICAgICAgICAgICAgICAgIGRzdC5hZGQodGhpcy4jZ2VzdHVyZS5zdWJzY3JpYmUoZHN0KSlcbiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNyZW1vdmUod2F0Y2hlcnMpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKSBhcyBhbnlcbiAgICB9XG5cbiAgICAjYWRkKHdhdGNoZXJzOiBXYXRjaGVyW10pIHtcbiAgICAgICAgdGhpcy4jd2F0Y2hlcnMgPSB0aGlzLiN3YXRjaGVycy5jb25jYXQod2F0Y2hlcnMpXG4gICAgfVxuXG4gICAgI3JlbW92ZSh3YXRjaGVyczogV2F0Y2hlcltdKSB7XG4gICAgICAgIHRoaXMuI3dhdGNoZXJzID0gdGhpcy4jd2F0Y2hlcnMuZmlsdGVyKHYgPT4gIXdhdGNoZXJzLmluY2x1ZGVzKHYpKVxuICAgIH1cblxuICAgICNsaXN0ZW4obmFtZTogc3RyaW5nLCBjb25maWc6IEdlc3R1cmVMaXN0ZW5lckNvbmZpZykge1xuICAgICAgICBjb25zdCB7IHBoYXNlLCBwb2ludGVyVHlwZSwgb3B0aW9ucyB9ID0gY29uZmlnXG5cbiAgICAgICAgY29uc3QgdG9SZXN1bHQgPVxuICAgICAgICAgICAgcGhhc2UgPT09IEdlc3R1cmVQaGFzZS5TdGFydFxuICAgICAgICAgICAgICAgID8gKG9yaWdpbjogR2VzdHVyZU9yaWdpbikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBoYXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBvcmlnaW4udGFyZ2V0IGFzIEhUTUxFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgfSkgYXMgR2VzdHVyZURldGFpbFxuICAgICAgICAgICAgICAgIDogKG9yaWdpbjogR2VzdHVyZU9yaWdpbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmlnaW4uY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW4ucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBvcmlnaW4sIHBoYXNlLCBwb2ludGVyVHlwZSB9IGFzIEdlc3R1cmVEZXRhaWxcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGRzdDogU3Vic2NyaWJlcjxHZXN0dXJlRGV0YWlsPikgPT5cbiAgICAgICAgICAgIHRoaXMuI3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyID0gKG9yaWdpbjogR2VzdHVyZU9yaWdpbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3JpZ2luLmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGRzdC5uZXh0KHRvUmVzdWx0KG9yaWdpbikpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJhZGRFdmVudExpc3RlbmVyXCIsIG5hbWUpXG4gICAgICAgICAgICAgICAgdGhpcy4jZG9jdW1lbnRbQUREX0VWRU5UX0xJU1RFTkVSXShuYW1lIGFzIGtleW9mIERvY3VtZW50RXZlbnRNYXAsIGxpc3RlbmVyIGFzIGFueSwgb3B0aW9ucylcbiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcInJlbW92ZUV2ZW50TGlzdGVuZXJcIiwgbmFtZSlcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jZG9jdW1lbnRbUkVNT1ZFX0VWRU5UX0xJU1RFTkVSXShuYW1lIGFzIGtleW9mIERvY3VtZW50RXZlbnRNYXAsIGxpc3RlbmVyIGFzIGFueSwgb3B0aW9ucylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgI3Njcm9sbERpc3RhbmNlKGVsZW1lbnQ6IEVsZW1lbnQpOiBPYnNlcnZhYmxlPFBvc2l0aW9uPiB7XG4gICAgICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHggPSAwXG4gICAgICAgICAgICBsZXQgeSA9IDBcbiAgICAgICAgICAgIGxldCBwID0gZWxlbWVudFxuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIHggKz0gcC5zY3JvbGxMZWZ0ID8/IDBcbiAgICAgICAgICAgICAgICB5ICs9IHAuc2Nyb2xsVG9wID8/IDBcbiAgICAgICAgICAgICAgICBwID0gcC5wYXJlbnROb2RlIGFzIEVsZW1lbnRcbiAgICAgICAgICAgIH0gd2hpbGUgKHAgIT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB7IHgsIHkgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkc3Q6IFN1YnNjcmliZXI8UG9zaXRpb24+KSA9PlxuICAgICAgICAgICAgdGhpcy4jem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5pdGlhbCA9IHNjcm9sbFBvc2l0aW9uKClcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IHNjcm9sbFBvc2l0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgZHN0Lm5leHQoeyB4OiBjdXJyZW50LnggLSBpbml0aWFsLngsIHk6IGN1cnJlbnQueSAtIGluaXRpYWwueSB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLiNkb2N1bWVudFtBRERfRVZFTlRfTElTVEVORVJdKFwic2Nyb2xsXCIsIGxpc3RlbmVyLCBTQ1JPTExfTElTVEVORVJfT1BUSU9OUylcbiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNkb2N1bWVudFtSRU1PVkVfRVZFTlRfTElTVEVORVJdKFwic2Nyb2xsXCIsIGxpc3RlbmVyLCBTQ1JPTExfTElTVEVORVJfT1BUSU9OUylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgI2xhc3RUb3VjaEFjdGlvbj86IHN0cmluZ1xuICAgICNkaXNhYmxlVG91Y2hBY3Rpb24gPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0aGlzLiNsYXN0VG91Y2hBY3Rpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy4jbGFzdFRvdWNoQWN0aW9uID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy4jZG9jdW1lbnQuYm9keSkudG91Y2hBY3Rpb25cbiAgICAgICAgICAgIHRoaXMuI2RvY3VtZW50LmJvZHkuc3R5bGUudG91Y2hBY3Rpb24gPSBcIm5vbmVcIlxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2VuYWJsZVRvdWNoQWN0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy4jbGFzdFRvdWNoQWN0aW9uICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuI2RvY3VtZW50LmJvZHkuc3R5bGUudG91Y2hBY3Rpb24gPSB0aGlzLiNsYXN0VG91Y2hBY3Rpb25cbiAgICAgICAgICAgIHRoaXMuI2xhc3RUb3VjaEFjdGlvbiA9IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiBzb3J0QnlQcmlwb3JpdHkoYTogR2VzdHVyZSwgYjogR2VzdHVyZSkge1xuICAgIHJldHVybiBiLnByaW9yaXR5IC0gYS5wcmlvcml0eVxufVxuXG5mdW5jdGlvbiBwb2ludGVyc0Zyb21FdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiBQb3NpdGlvbltdIHtcbiAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgeDogZXZlbnQuY2xpZW50WCxcbiAgICAgICAgICAgICAgICB5OiBldmVudC5jbGllbnRZXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShldmVudC50b3VjaGVzKS5tYXAodCA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyB4OiB0LmNsaWVudFgsIHk6IHQuY2xpZW50WSB9XG4gICAgICAgIH0pXG4gICAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVQb2ludGVycyhzdGF0ZTogTXV0YWJsZTxHZXN0dXJlRGV0YWlsPik6IEdlc3R1cmVEZXRhaWwge1xuICAgIGlmIChzdGF0ZS5waGFzZSA9PT0gR2VzdHVyZVBoYXNlLlN0YXJ0KSB7XG4gICAgICAgIHN0YXRlLnBvaW50ZXJzID0gcG9pbnRlcnNGcm9tRXZlbnQoc3RhdGUub3JpZ2luKS5tYXAodiA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGFydDogdiwgY3VycmVudDogdiwgZGlzdGFuY2U6IHsgeDogMCwgeTogMCB9LCBkaXJlY3Rpb246IHsgeDogMCwgeTogMCB9IH1cbiAgICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvaW50ZXJzKSB7XG4gICAgICAgIGNvbnN0IHBvaW50ZXJzID0gcG9pbnRlcnNGcm9tRXZlbnQoc3RhdGUub3JpZ2luKVxuICAgICAgICBpZiAocG9pbnRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlLnBvaW50ZXJzID0gc3RhdGUucG9pbnRlcnMubWFwKCh2LCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwID0gcG9pbnRlcnNbaV1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3RhcnQ6IHYuc3RhcnQsXG4gICAgICAgICAgICAgICAgY3VycmVudDogcCxcbiAgICAgICAgICAgICAgICBkaXN0YW5jZTogeyB4OiBwLnggLSB2LnN0YXJ0LngsIHk6IHAueSAtIHYuc3RhcnQueSB9LFxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogeyB4OiBkaXJlY3Rpb24odi5zdGFydC54LCBwLngpLCB5OiBkaXJlY3Rpb24odi5zdGFydC55LCBwLnkpIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVcbn1cblxuZnVuY3Rpb24gZGlyZWN0aW9uKHByZXY6IG51bWJlciwgY3VycjogbnVtYmVyKTogLTEgfCAwIHwgMSB7XG4gICAgcmV0dXJuIGN1cnIgPiBwcmV2ID8gMSA6IGN1cnIgPCBwcmV2ID8gLTEgOiAwXG59XG4iXX0=
|
package/fesm2022/ngutil-aria.mjs
CHANGED
|
@@ -356,7 +356,6 @@ function eventToKeystroke(event) {
|
|
|
356
356
|
};
|
|
357
357
|
}
|
|
358
358
|
|
|
359
|
-
const PHANTOM = Symbol("phantom");
|
|
360
359
|
const Listeners = {
|
|
361
360
|
mousedown: {
|
|
362
361
|
pointerType: "mouse" /* GesturePointerType.Mouse */,
|
|
@@ -402,8 +401,7 @@ const Listeners = {
|
|
|
402
401
|
};
|
|
403
402
|
|
|
404
403
|
class Gesture {
|
|
405
|
-
constructor(
|
|
406
|
-
this.name = name;
|
|
404
|
+
constructor(options) {
|
|
407
405
|
/**
|
|
408
406
|
* Gestures that depends on move distance, like drag, use this option
|
|
409
407
|
*/
|
|
@@ -469,7 +467,8 @@ class Gesture {
|
|
|
469
467
|
|
|
470
468
|
class GestureDragImpl extends Gesture {
|
|
471
469
|
constructor(options) {
|
|
472
|
-
super(
|
|
470
|
+
super({ includeScrollDistance: true, ...options });
|
|
471
|
+
this.type = "gesture-drag";
|
|
473
472
|
if (this.horizontal == null && this.vertical == null) {
|
|
474
473
|
this.horizontal = true;
|
|
475
474
|
this.vertical = true;
|
|
@@ -547,7 +546,8 @@ const GestureDargVertical = gestureDrag({ horizontal: false, vertical: true });
|
|
|
547
546
|
|
|
548
547
|
class GestureLongTapImpl extends Gesture {
|
|
549
548
|
constructor(options) {
|
|
550
|
-
super(
|
|
549
|
+
super({ pointerTypes: ["touch" /* GesturePointerType.Touch */], ...options });
|
|
550
|
+
this.type = "gesture-longtap";
|
|
551
551
|
}
|
|
552
552
|
capture(events) {
|
|
553
553
|
return combineLatest({ timeWithin: timer(this.timeWithin).pipe(startWith(null)), event: events }).pipe(map(({ timeWithin, event }) => {
|
|
@@ -577,8 +577,9 @@ function gestureLongTap(options) {
|
|
|
577
577
|
const GestureLongTap = gestureLongTap();
|
|
578
578
|
|
|
579
579
|
class GestureTapImpl extends Gesture {
|
|
580
|
-
constructor(
|
|
581
|
-
super(
|
|
580
|
+
constructor() {
|
|
581
|
+
super(...arguments);
|
|
582
|
+
this.type = "gesture-tap";
|
|
582
583
|
}
|
|
583
584
|
capture(events) {
|
|
584
585
|
return events.pipe(map(event => {
|
|
@@ -646,8 +647,8 @@ class GestureService {
|
|
|
646
647
|
const eventTarget = event.target;
|
|
647
648
|
let includeScrollDistance = false;
|
|
648
649
|
const gestures = this.#watchers
|
|
649
|
-
.filter(({ gesture, el }) =>
|
|
650
|
-
|
|
650
|
+
.filter(({ gesture, el }) => (el === eventTarget || ("contains" in el && el.contains(eventTarget))) &&
|
|
651
|
+
gesture.shouldCapture(event))
|
|
651
652
|
.reduce((gestures, { gesture }) => {
|
|
652
653
|
if (!gestures.has(gesture)) {
|
|
653
654
|
includeScrollDistance = includeScrollDistance || gesture.includeScrollDistance;
|
|
@@ -685,7 +686,9 @@ class GestureService {
|
|
|
685
686
|
share());
|
|
686
687
|
const captureState = eventStream.pipe(connect(src => {
|
|
687
688
|
const state = { events: [], gestures, includeScrollDistance };
|
|
688
|
-
return merge(src.pipe(tap(event => state.events.push(event))), ...Array.from(gestures.keys())
|
|
689
|
+
return merge(src.pipe(tap(event => state.events.push(event))), ...Array.from(gestures.keys())
|
|
690
|
+
.sort(sortByPripority)
|
|
691
|
+
.map(gesture => gesture.capture(src.pipe(filter(gesture.shouldCapture.bind(gesture)))).pipe(takeWhile(result => result !== 2 /* GestureCaptureState.Skip */, true), tap(result => gestures.set(gesture, result))))).pipe(map(() => state));
|
|
689
692
|
})
|
|
690
693
|
// ,finalize(() => console.log("FINALIZE CAPTURE"))
|
|
691
694
|
);
|
|
@@ -724,7 +727,7 @@ class GestureService {
|
|
|
724
727
|
);
|
|
725
728
|
return selectGesture.pipe(switchMap(({ events, gesture }) => gesture
|
|
726
729
|
.handle(eventStream.pipe(startWith(...events), filter(gesture.isRelevantEvent.bind(gesture))))
|
|
727
|
-
.pipe(takeWhile(v => v.phase !== "end" /* GesturePhase.End */, true), tap(detail => dispatchEvent(new CustomEvent(gesture.
|
|
730
|
+
.pipe(takeWhile(v => v.phase !== "end" /* GesturePhase.End */, true), tap(detail => dispatchEvent(new CustomEvent(gesture.type, { detail, bubbles: true, cancelable: true })))
|
|
728
731
|
// finalize(() => console.log("GESTURE FINALIZE")),
|
|
729
732
|
)),
|
|
730
733
|
// finalize(() => console.log("FINALIZE RESULT")),
|
|
@@ -741,8 +744,8 @@ class GestureService {
|
|
|
741
744
|
const element = coerceElement(el);
|
|
742
745
|
const next = dst.next.bind(dst);
|
|
743
746
|
for (const gesture of gestures) {
|
|
744
|
-
element[ADD_EVENT_LISTENER](gesture.
|
|
745
|
-
dst.add(element[REMOVE_EVENT_LISTENER].bind(element, gesture.
|
|
747
|
+
element[ADD_EVENT_LISTENER](gesture.type, next);
|
|
748
|
+
dst.add(element[REMOVE_EVENT_LISTENER].bind(element, gesture.type, next));
|
|
746
749
|
}
|
|
747
750
|
dst.add(this.#watch(element, ...gestures).subscribe());
|
|
748
751
|
}));
|