@recursyve/nice-ui-kit.v2 13.1.0-beta.87 → 13.1.0-beta.90
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/lib/api/nice.api.mjs +1 -1
- package/esm2020/lib/components/async-typeahead/async-typeahead.component.mjs +8 -5
- package/fesm2015/recursyve-nice-ui-kit.v2.mjs +19 -14
- package/fesm2015/recursyve-nice-ui-kit.v2.mjs.map +1 -1
- package/fesm2020/recursyve-nice-ui-kit.v2.mjs +7 -4
- package/fesm2020/recursyve-nice-ui-kit.v2.mjs.map +1 -1
- package/lib/api/nice.api.d.ts +4 -1
- package/lib/components/async-typeahead/async-typeahead.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -55,4 +55,4 @@ export function mixinNiceApi(base) {
|
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmljZS5hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLXVpLWtpdC12Mi9zcmMvbGliL2FwaS9uaWNlLmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUE4QyxNQUFNLHNCQUFzQixDQUFDO0FBRTNHLE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBa0MvRSxNQUFNLFVBQVUsWUFBWSxDQUN4QixJQUFPO0lBRVAsT0FBTyxLQUFNLFNBQVEsSUFBSTtRQUNkLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRTtZQUNqQixJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRTtnQkFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ3RCO2lCQUFNLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDckIsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3hDO1lBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNsRCxDQUFDO1FBRU0sTUFBTSxDQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsT0FBcUI7WUFDOUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbEYsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMxQyxDQUFDO1FBQ04sQ0FBQztRQUVNLEdBQUcsQ0FBSSxLQUFLLEdBQUcsRUFBRSxFQUFFLE9BQXFCO1lBQzNDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9FLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDMUMsQ0FBQztRQUNOLENBQUM7UUFFTSxJQUFJLENBQUksS0FBSyxHQUFHLEVBQUUsRUFBRSxPQUFxQjtZQUM1QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoRixVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzFDLENBQUM7UUFDTixDQUFDO1FBRU0sS0FBSyxDQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsSUFBVSxFQUFFLE9BQXFCO1lBQ3pELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN2RixVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzFDLENBQUM7UUFDTixDQUFDO1FBRU0sSUFBSSxDQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsSUFBVSxFQUFFLE9BQXFCO1lBQ3hELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN0RixVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzFDLENBQUM7UUFDTixDQUFDO1FBRU0sR0FBRyxDQUFJLEtBQUssR0FBRyxFQUFFLEVBQUUsSUFBVSxFQUFFLE9BQXFCO1lBQ3ZELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNyRixVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzFDLENBQUM7UUFDTixDQUFDO1FBRU8sY0FBYyxDQUFDLEtBQXdCO1lBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3hCLE1BQU0sS0FBSyxDQUFDO2FBQ2Y7WUFDRCxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUVPLGdCQUFnQixDQUFDLE9BQXFCO1lBQzFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ1YsT0FBTyxPQUFPLENBQUM7YUFDbEI7WUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFDaEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxJQUFJLEVBQUU7Z0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDckM7WUFDRCxPQUFPO2dCQUNILEdBQUcsTUFBTTtnQkFDVCxPQUFPO2FBQ1YsQ0FBQztRQUNOLENBQUM7UUFFRCxZQUFZLEdBQUcsSUFBVztZQUN0QixLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNuQixDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQ29udGV4dCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb25zdHJ1Y3RvciwgQ29uc3RydWN0b3IgfSBmcm9tIFwiLi4vdHlwZXMvY29uc3RydWN0b3JcIjtcbmltcG9ydCB7IE5pY2VIdHRwRXhjZXB0aW9uRmFjdG9yeSB9IGZyb20gXCIuL2V4Y2VwdGlvbnMvZXhjZXB0aW9uLmZhY3RvcnlcIjtcbmltcG9ydCB7IFRSQU5TRk9STV9UWVBFIH0gZnJvbSBcIi4vaW50ZXJjZXB0b3JzL3RyYW5zZm9ybS1yZXNwb25zZS5pbnRlcmNlcHRvclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBPcHRpb25zIHtcbiAgICB0eXBlPzogVHlwZTxhbnk+O1xuICAgIGNvbnRleHQ/OiBIdHRwQ29udGV4dDtcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnMgfCB7XG4gICAgICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIH07XG4gICAgcGFyYW1zPzogSHR0cFBhcmFtcyB8IHtcbiAgICAgICAgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VBcGlEZWZpbml0aW9uIHtcbiAgICB1cmwocm91dGU/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgZGVsZXRlPFQ+KHJvdXRlPzogc3RyaW5nLCBvcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPFQ+O1xuICAgIGdldDxUPihyb3V0ZT86IHN0cmluZywgb3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxUPjtcbiAgICBwYXRjaDxUPihyb3V0ZT86IHN0cmluZywgYm9keT86IGFueSwgb3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxUPjtcbiAgICBwb3N0PFQ+KHJvdXRlPzogc3RyaW5nLCBib2R5PzogYW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPFQ+O1xuICAgIHB1dDxUPihyb3V0ZT86IHN0cmluZywgYm9keT86IGFueSwgb3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIYXNOaWNlQXBpRGVmaW5pdGlvbiB7XG4gICAgZXhjZXB0aW9uRmFjdG9yeTogTmljZUh0dHBFeGNlcHRpb25GYWN0b3J5O1xuICAgIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQ7XG4gICAgYXBpVXJsOiBzdHJpbmc7XG4gICAgcGF0aDogc3RyaW5nO1xufVxuXG50eXBlIE5pY2VBcGlEZWZpbml0aW9uQ3RvciA9IENvbnN0cnVjdG9yPE5pY2VBcGlEZWZpbml0aW9uPiAmIEFic3RyYWN0Q29uc3RydWN0b3I8TmljZUFwaURlZmluaXRpb24+O1xuXG5leHBvcnQgZnVuY3Rpb24gbWl4aW5OaWNlQXBpPEMgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPEhhc05pY2VBcGlEZWZpbml0aW9uPj4oXG4gICAgYmFzZTogQyxcbik6IE5pY2VBcGlEZWZpbml0aW9uQ3RvciAmIEM7XG5leHBvcnQgZnVuY3Rpb24gbWl4aW5OaWNlQXBpPEMgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxIYXNOaWNlQXBpRGVmaW5pdGlvbj4+KFxuICAgIGJhc2U6IEMsXG4pOiBOaWNlQXBpRGVmaW5pdGlvbkN0b3IgJiBDIHtcbiAgICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBiYXNlIHtcbiAgICAgICAgcHVibGljIHVybChyb3V0ZSA9IFwiXCIpOiBzdHJpbmcge1xuICAgICAgICAgICAgaWYgKHJvdXRlID09PSBcIlwiICYmICghdGhpcy5wYXRoIHx8IHRoaXMucGF0aCA9PT0gXCJcIikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcGlVcmw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJvdXRlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuYXBpVXJsfS8ke3RoaXMucGF0aH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuYXBpVXJsfS8ke3RoaXMucGF0aH0vJHtyb3V0ZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGRlbGV0ZTxUPihyb3V0ZSA9IFwiXCIsIG9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGU8VD4odGhpcy51cmwocm91dGUpLCB0aGlzLnRyYW5zZm9ybU9wdGlvbnMob3B0aW9ucykpLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlID0+IHRoaXMudHJhbnNmb3JtRXJyb3IoZSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGdldDxUPihyb3V0ZSA9IFwiXCIsIG9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8VD4odGhpcy51cmwocm91dGUpLCB0aGlzLnRyYW5zZm9ybU9wdGlvbnMob3B0aW9ucykpLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlID0+IHRoaXMudHJhbnNmb3JtRXJyb3IoZSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGhlYWQ8VD4ocm91dGUgPSBcIlwiLCBvcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuaGVhZDxUPih0aGlzLnVybChyb3V0ZSksIHRoaXMudHJhbnNmb3JtT3B0aW9ucyhvcHRpb25zKSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGUgPT4gdGhpcy50cmFuc2Zvcm1FcnJvcihlKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgcGF0Y2g8VD4ocm91dGUgPSBcIlwiLCBib2R5PzogYW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucGF0Y2g8VD4odGhpcy51cmwocm91dGUpLCBib2R5LCB0aGlzLnRyYW5zZm9ybU9wdGlvbnMob3B0aW9ucykpLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlID0+IHRoaXMudHJhbnNmb3JtRXJyb3IoZSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHBvc3Q8VD4ocm91dGUgPSBcIlwiLCBib2R5PzogYW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxUPih0aGlzLnVybChyb3V0ZSksIGJvZHksIHRoaXMudHJhbnNmb3JtT3B0aW9ucyhvcHRpb25zKSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGUgPT4gdGhpcy50cmFuc2Zvcm1FcnJvcihlKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgcHV0PFQ+KHJvdXRlID0gXCJcIiwgYm9keT86IGFueSwgb3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dDxUPih0aGlzLnVybChyb3V0ZSksIGJvZHksIHRoaXMudHJhbnNmb3JtT3B0aW9ucyhvcHRpb25zKSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKGUgPT4gdGhpcy50cmFuc2Zvcm1FcnJvcihlKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIHRyYW5zZm9ybUVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZXhjZXB0aW9uRmFjdG9yeSkge1xuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgdGhpcy5leGNlcHRpb25GYWN0b3J5LnRyYW5zZm9ybShlcnJvcik7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIHRyYW5zZm9ybU9wdGlvbnMob3B0aW9ucz86IEh0dHBPcHRpb25zKTogSHR0cE9wdGlvbnMge1xuICAgICAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHsgdHlwZSwgY29udGV4dDogYywgLi4udmFsdWVzIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IGMgPz8gbmV3IEh0dHBDb250ZXh0KCk7XG4gICAgICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0KFRSQU5TRk9STV9UWVBFLCB0eXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4udmFsdWVzLFxuICAgICAgICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIl19
|
|
@@ -90,6 +90,7 @@ export class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent {
|
|
|
90
90
|
this.focused = false;
|
|
91
91
|
this.stateChanges.next();
|
|
92
92
|
}
|
|
93
|
+
this.changeDetectorRef.detectChanges();
|
|
93
94
|
}
|
|
94
95
|
get disabled() {
|
|
95
96
|
if (this.ngControl && this.ngControl.disabled !== null) {
|
|
@@ -184,7 +185,7 @@ export class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent {
|
|
|
184
185
|
this.updateErrorState();
|
|
185
186
|
}
|
|
186
187
|
}
|
|
187
|
-
writeValue(value) {
|
|
188
|
+
async writeValue(value) {
|
|
188
189
|
if (this._value === value || (isNullOrUndefined(this._value) && isNullOrUndefined(value))) {
|
|
189
190
|
return;
|
|
190
191
|
}
|
|
@@ -192,12 +193,14 @@ export class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent {
|
|
|
192
193
|
this.onRemove(null);
|
|
193
194
|
return;
|
|
194
195
|
}
|
|
195
|
-
this.value = value;
|
|
196
196
|
if (value instanceof NiceTypeaheadNewValue) {
|
|
197
197
|
this.updateSearchInput();
|
|
198
198
|
return;
|
|
199
199
|
}
|
|
200
|
-
|
|
200
|
+
else {
|
|
201
|
+
await this.service.setActiveId(this.resource, value, this.searchOptions).then(() => this.updateSearchInput());
|
|
202
|
+
}
|
|
203
|
+
this.value = value;
|
|
201
204
|
}
|
|
202
205
|
registerOnChange(propagate) {
|
|
203
206
|
this.propagate = propagate;
|
|
@@ -250,7 +253,7 @@ export class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent {
|
|
|
250
253
|
}
|
|
251
254
|
onRemove(event) {
|
|
252
255
|
if (event) {
|
|
253
|
-
event.stopPropagation();
|
|
256
|
+
// event.stopPropagation();
|
|
254
257
|
}
|
|
255
258
|
if (this.disabled) {
|
|
256
259
|
return;
|
|
@@ -411,4 +414,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
411
414
|
type: HostBinding,
|
|
412
415
|
args: ["attr.aria-describedby"]
|
|
413
416
|
}] } });
|
|
414
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtdHlwZWFoZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9hc3luYy10eXBlYWhlYWQvYXN5bmMtdHlwZWFoZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9hc3luYy10eXBlYWhlYWQvYXN5bmMtdHlwZWFoZWFkLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUFFLE1BQU0sRUFHYixRQUFRLEVBQ1IsSUFBSSxFQUFpQixXQUFXLEVBQ2hDLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdHLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUs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bUI7NEJBQzVCLFdBQVcsNkJBQTZCO3lCQUMzQzt3QkFDRCx5QkFBeUI7cUJBQzVCOzswQkFrSkksUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUNSLFFBQVE7eUtBbklOLEtBQUs7c0JBRFgsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUluQyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsU0FBUztnQkFJaEIsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBV0ssUUFBUTtzQkFEbEIsS0FBSztnQkErQkssS0FBSztzQkFEZixLQUFLO2dCQWtCSyxRQUFRO3NCQURsQixLQUFLO2dCQVVLLGdCQUFnQjtzQkFEMUIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTXRCLEVBQUU7c0JBRFIsV0FBVztnQkFJTCxXQUFXO3NCQURqQixXQUFXO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2VyY2lvblwiO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdDb250cm9sLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZUFjdGl2YXRlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIsIE1hdE9wdGlvbiwgbWl4aW5FcnJvclN0YXRlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gXCJ1dWlkXCI7XG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xuaW1wb3J0IHsgTmljZVR5cGVhaGVhZE5ld1ZhbHVlIH0gZnJvbSBcIi4uL3R5cGVhaGVhZFwiO1xuaW1wb3J0IHsgTmljZUFzeW5jVHlwZWFoZWFkU2VydmljZSB9IGZyb20gXCIuL3Byb3ZpZGVycy9hc3luYy10eXBlYWhlYWQuc2VydmljZVwiO1xuXG4vLyBCb2lsZXJwbGF0ZSBmb3IgYXBwbHlpbmcgbWl4aW5zIHRvICkuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuY29uc3QgX0Jhc2VBc3luY1R5cGVhaGVhZENvbXBvbmVudCA9IG1peGluRXJyb3JTdGF0ZShcbiAgICBjbGFzcyB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXRlIGNoYW5nZXMgYW5kIHNob3VsZCBjYXVzZSB0aGUgcGFyZW50XG4gICAgICAgICAqIGZvcm0gZmllbGQgdG8gdXBkYXRlLiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIGBNYXRGb3JtRmllbGRDb250cm9sYC5cbiAgICAgICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgICAgIHB1YmxpYyBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcbiAgICAgICAgICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgICAgICAgICAgcHVibGljIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRm9ybSBjb250cm9sIGJvdW5kIHRvIHRoZSBjb21wb25lbnQuXG4gICAgICAgICAgICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIGBNYXRGb3JtRmllbGRDb250cm9sYC5cbiAgICAgICAgICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sXG4gICAgICAgICkge31cbiAgICB9XG4pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLWFzeW5jLXR5cGVhaGVhZFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcImFzeW5jLXR5cGVhaGVhZC50ZW1wbGF0ZS5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCJhc3luYy10eXBlYWhlYWQuc3R5bGUuc2Nzc1wiXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IE5pY2VBc3luY1R5cGVhaGVhZENvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICBOaWNlQXN5bmNUeXBlYWhlYWRTZXJ2aWNlXG4gICAgXVxufSlcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbmV4cG9ydCBjbGFzcyBOaWNlQXN5bmNUeXBlYWhlYWRDb21wb25lbnQgZXh0ZW5kcyBfQmFzZUFzeW5jVHlwZWFoZWFkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PiwgRG9DaGVjayB7XG4gICAgcHVibGljIHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHVibGljIGNvbnRyb2xUeXBlID0gXCJyZW1vdGUtdHlwZWFoZWFkXCI7XG4gICAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBzZWFyY2hDb250cm9sID0gbmV3IEZvcm1Db250cm9sKG51bGwpO1xuICAgIHB1YmxpYyB2YWx1ZUNoYW5nZXNTdWIkOiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljIG9wZW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgcGFuZWxXaWR0aCA9IDA7XG4gICAgcHVibGljIGFjdGl2ZU9wdGlvbjogTWF0T3B0aW9uO1xuXG4gICAgcHVibGljIGFjdGl2ZSQgPSB0aGlzLnNlcnZpY2UuYWN0aXZlJDtcblxuICAgIEBWaWV3Q2hpbGQoXCJzZWFyY2hJbnB1dFwiLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGRyZW4oTWF0T3B0aW9uKVxuICAgIHB1YmxpYyBvcHRpb25zOiBNYXRPcHRpb25bXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlc291cmNlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hPcHRpb25zOiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwcmVsb2FkUmVzb3VyY2UgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93Tm90Rm91bmRJdGVtcyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFuZWxDbGFzczogc3RyaW5nIHwgc3RyaW5nW10gPSBbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJpbmRWYWx1ZSA9IFwiaWRcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJpbmRMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGVtcHR5UGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG9wdGlvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWx0ZXJGbjogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+IHwgT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBsYWJlbEZvcm1hdEZuKGxhYmVsRm9ybWF0Rm46IChpdGVtOiBhbnkpID0+IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sYWJlbEZvcm1hdEZuID0gbGFiZWxGb3JtYXRGbjtcbiAgICB9XG4gICAgcHJpdmF0ZSBfbGFiZWxGb3JtYXRGbjogKGl0ZW06IGFueSkgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBNYXRGb3JtRmllbGRDb250cm9sLlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJyb3dzZXJzIG1heSBub3QgZmlyZSB0aGUgYmx1ciBldmVudCBpZiB0aGUgaW5wdXQgaXMgZGlzYWJsZWQgdG9vIHF1aWNrbHkuXG4gICAgICAgIC8vIFJlc2V0IGZyb20gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgZWxlbWVudCBkb2Vzbid0IGJlY29tZSBzdHVjay5cbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgTWF0Rm9ybUZpZWxkQ29udHJvbC5cbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IGFueTtcblxuICAgIC8qKlxuICAgICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgTWF0Rm9ybUZpZWxkQ29udHJvbC5cbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQgPz8gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/PyBmYWxzZTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yZXF1aXJlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmZsb2F0aW5nXCIpXG4gICAgcHVibGljIGdldCBzaG91bGRMYWJlbEZsb2F0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygpXG4gICAgcHVibGljIGlkOiBzdHJpbmcgPSB1dWlkLnY0KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoXCJhdHRyLmFyaWEtZGVzY3JpYmVkYnlcIilcbiAgICBwdWJsaWMgZGVzY3JpYmVkQnkgPSBcIlwiO1xuXG4gICAgcHVibGljIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICghdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlIHx8ICF0aGlzLnNlYXJjaENvbnRyb2wudmFsdWUubGVuZ3RoKSAmJlxuICAgICAgICAgICAgKCF0aGlzLl92YWx1ZSB8fCAodHlwZW9mIHRoaXMuX3ZhbHVlID09PSBcInN0cmluZ1wiICYmICF0aGlzLl92YWx1ZS5sZW5ndGgpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0SW5pdGlhbGl6ZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvcGFnYXRlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIHBhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgICAgIGRlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgc2VydmljZTogTmljZUFzeW5jVHlwZWFoZWFkU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyLCBwYXJlbnRGb3JtLCBwYXJlbnRGb3JtR3JvdXAsIG5nQ29udHJvbCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gc3RhdHVzID09PSBcIkRJU0FCTEVEXCI7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoQ29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZpbHRlckZuKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0RmlsdGVyRm4odGhpcy5maWx0ZXJGbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWFyY2hDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YiQgPSB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh0ZXh0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRleHQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5zZWFyY2godGhpcy5yZXNvdXJjZSwgdGV4dCwgdGhpcy5zZWFyY2hPcHRpb25zKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJlbG9hZFJlc291cmNlKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2VhcmNoKHRoaXMucmVzb3VyY2UsIFwiXCIsIHRoaXMuc2VhcmNoT3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzU3ViJC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChcInNlYXJjaE9wdGlvbnNcIiBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2UgPSBjaGFuZ2VzLnNlYXJjaE9wdGlvbnM7XG4gICAgICAgICAgICBpZiAoIWNoYW5nZS5pc0ZpcnN0Q2hhbmdlKCkgJiYgY2hhbmdlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2VhcmNoKHRoaXMucmVzb3VyY2UsIFwiXCIsIGNoYW5nZS5jdXJyZW50VmFsdWUpLnRoZW4oKCkgPT4gdGhpcy5jaGVja0lmVmFsdWVTdGlsbEV4aXN0KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFwiZmlsdGVyRm5cIiBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2UgPSBjaGFuZ2VzLmZpbHRlckZuO1xuICAgICAgICAgICAgaWYgKCFjaGFuZ2UuaXNGaXJzdENoYW5nZSgpICYmIGNoYW5nZS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNldEZpbHRlckZuKGNoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZSA9PT0gdmFsdWUgfHwgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuX3ZhbHVlKSAmJiBpc051bGxPclVuZGVmaW5lZCh2YWx1ZSkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlICYmIHRoaXMuX3ZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5vblJlbW92ZShudWxsKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTmljZVR5cGVhaGVhZE5ld1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaElucHV0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0QWN0aXZlSWQodGhpcy5yZXNvdXJjZSwgdmFsdWUsIHRoaXMuc2VhcmNoT3B0aW9ucykudGhlbigoKSA9PiB0aGlzLnVwZGF0ZVNlYXJjaElucHV0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKHByb3BhZ2F0ZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGUgPSBwcm9wYWdhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgLy8gTk8tT1BcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKFwiIFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWN0aXZlPFQgPSBhbnk+KCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldEFjdGl2ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk9wdGlvbkFjdGl2YXRlZChldmVudDogTWF0QXV0b2NvbXBsZXRlQWN0aXZhdGVkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVPcHRpb24gPSBldmVudC5vcHRpb247XG4gICAgfVxuXG4gICAgcHVibGljIG9uT3B0aW9uU2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50Lm9wdGlvbi5pZCA9PT0gXCJuZXctdmFsdWUtb3B0aW9uXCIpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcgTmljZVR5cGVhaGVhZE5ld1ZhbHVlKHRoaXMuc2VhcmNoQ29udHJvbC52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxhYmVsKGV2ZW50Lm9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0QWN0aXZlKGV2ZW50Lm9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5iaW5kVmFsdWUgPyB0aGlzLmdldE9iamVjdEl0ZW0odGhpcy5iaW5kVmFsdWUsIGV2ZW50Lm9wdGlvbi52YWx1ZSkgOiBldmVudC5vcHRpb24udmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlU3RhdGUob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBvcGVuO1xuXG4gICAgICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNDaGFuZ2VkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcGVuICYmICF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzLnJlc291cmNlLCB0aGlzLnNlYXJjaE9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLm9wZW4gJiYgdGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLm9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIGlmICghdGhpcy5fdmFsdWUgJiYgdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblJlbW92ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVtb3ZlKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VydmljZS5zZXRBY3RpdmUobnVsbCk7XG4gICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wucGF0Y2hWYWx1ZShudWxsKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sPy5jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cbiAgICAgICAgdGhpcy5zZXJ2aWNlLnNlYXJjaCh0aGlzLnJlc291cmNlLCBcIlwiLCB0aGlzLnNlYXJjaE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JtYXRMYWJlbChpdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5fbGFiZWxGb3JtYXRGbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsRm9ybWF0Rm4oaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5iaW5kTGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldE9iamVjdEl0ZW0odGhpcy5iaW5kTGFiZWwsIGl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmZvcm1hdCh0aGlzLnJlc291cmNlLCBpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkVuZFNjcm9sbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmxvYWRNb3JlKHRoaXMucmVzb3VyY2UsIHRoaXMuc2VhcmNoT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzQ2hhbmdlZChpc0ZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGlzRm9jdXNlZCAhPT0gdGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSBpc0ZvY3VzZWQ7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cbiAgICAgICAgICAgIGlmIChpc0ZvY3VzZWQgJiYgdGhpcy5maWx0ZXJGbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5yZWxvYWRGaWx0ZXJlZEl0ZW1zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVsb2FkQWN0aXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2U/LnJlbG9hZEFjdGl2ZSh0aGlzLnJlc291cmNlLCB0aGlzLnNlYXJjaE9wdGlvbnMpO1xuICAgICAgICBjb25zdCBhY3RpdmUgPSB0aGlzLnNlcnZpY2U/LmdldEFjdGl2ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUxhYmVsKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVMYWJlbChpdGVtOiB1bmtub3duIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmZvcm1hdExhYmVsKGl0ZW0pO1xuXG4gICAgICAgIGlmIChsYWJlbCAmJiBsYWJlbCAhPT0gdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wucGF0Y2hWYWx1ZShsYWJlbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPYmplY3RJdGVtKGtleTogc3RyaW5nLCBvYmo6IG9iamVjdCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoXCIuXCIpO1xuICAgICAgICBsZXQgaXRlbSA9IG9iajtcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleXMpIHtcbiAgICAgICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWl0ZW0uaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtW2tdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTZWFyY2hJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlIGluc3RhbmNlb2YgTmljZVR5cGVhaGVhZE5ld1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxhYmVsKHRoaXMuX3ZhbHVlLiRuZXcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5zZXJ2aWNlLmdldEFjdGl2ZSgpO1xuICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxhYmVsKGFjdGl2ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNoZWNrSWZWYWx1ZVN0aWxsRXhpc3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl92YWx1ZSBpbnN0YW5jZW9mIE5pY2VUeXBlYWhlYWROZXdWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlcnZpY2UuZmlsdGVyZWRJdGVtcyQpO1xuICAgICAgICBjb25zdCBpdGVtID0gaXRlbXMuZmluZChcbiAgICAgICAgICAgIHYgPT4gKHRoaXMuYmluZFZhbHVlICYmIHR5cGVvZiB2ID09PSBcIm9iamVjdFwiID8gdGhpcy5nZXRPYmplY3RJdGVtKHRoaXMuYmluZFZhbHVlLCB2KSA6IHYpID09PSB0aGlzLl92YWx1ZVxuICAgICAgICApO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlICE9PSBudWxsICYmIHRoaXMuX3ZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25SZW1vdmUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwieyBsb2FkaW5nOiBzZXJ2aWNlLmxvYWRpbmckIHwgYXN5bmMsIGxvYWRpbmdQYWdlOiBzZXJ2aWNlLmxvYWRpbmdQYWdlJCB8IGFzeW5jLCB2YWx1ZXM6IHNlcnZpY2UuZmlsdGVyZWRJdGVtcyQgfCBhc3luYyB9IGFzIGN0eFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4XCIgKm5nSWY9XCIhZGlzYWJsZWQ7IGVsc2UgZGlzYWJsZVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleC1hdXRvXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIG5hbWU9XCJtYXQtYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIkYW55KGRpc2FibGVkKVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaENvbnRyb2xcIlxuICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCIkYW55KHJlcXVpcmVkKVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwiZm9jdXNDaGFuZ2VkKHRydWUpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwidmFsdWUgJiYgIWN0eC5sb2FkaW5nXCIgbWF0U3VmZml4IGNsYXNzPVwiY2xvc2UtYnV0dG9uIHNlY29uZGFyeS10ZXh0XCIgKGNsaWNrKT1cIm9uUmVtb3ZlKCRldmVudClcIj5cbiAgICAgICAgICAgIGNsb3NlXG4gICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgPG1hdC1zcGlubmVyIGNsYXNzPVwic2VsZi1jZW50ZXJcIiBbZGlhbWV0ZXJdPVwiMTZcIiAqbmdJZj1cImN0eC5sb2FkaW5nXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAgIFtwYW5lbFdpZHRoXT1cInBhbmVsV2lkdGhcIlxuICAgICAgICBbY2xhc3NdPVwicGFuZWxDbGFzc1wiXG4gICAgICAgIChvcHRpb25BY3RpdmF0ZWQpPVwib25PcHRpb25BY3RpdmF0ZWQoJGV2ZW50KVwiXG4gICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJvbk9wdGlvblNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAoY2xvc2VkKT1cInVwZGF0ZVN0YXRlKGZhbHNlKVwiXG4gICAgICAgIChvcGVuZWQpPVwidXBkYXRlU3RhdGUodHJ1ZSlcIlxuICAgICAgICAob3B0aW9uc1Njcm9sbCk9XCJvbkVuZFNjcm9sbCgpXCJcbiAgICAgICAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXG4gICAgPlxuICAgICAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cIm9wZW4gJiYgY3R4LmxvYWRpbmdcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjdHgudmFsdWVzXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvblRlbXBsYXRlOyBlbHNlIGZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBvcHRpb24gfVwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Zvcm1hdD5cbiAgICAgICAgICAgICAgICB7eyBmb3JtYXRMYWJlbChvcHRpb24pIH19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiIWN0eC52YWx1ZXM/Lmxlbmd0aCAmJiAhYWxsb3dOb3RGb3VuZEl0ZW1zXCIgZGlzYWJsZWQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlQbGFjZWhvbGRlcjsgZWxzZSBkZWZhdWx0RW1wdHlQbGFjZWhvbGRlclwiPlxuICAgICAgICAgICAgICAgIHt7IGVtcHR5UGxhY2Vob2xkZXIgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RW1wdHlQbGFjZWhvbGRlcj5cbiAgICAgICAgICAgICAgICB7eyBcImNvbXBvbmVudHMudHlwZWFoZWFkLm5vX2l0ZW1fZm91bmRcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cIiFjdHgudmFsdWVzPy5sZW5ndGggJiYgYWxsb3dOb3RGb3VuZEl0ZW1zXCIgaWQ9XCJuZXctdmFsdWUtb3B0aW9uXCIgW3ZhbHVlXT1cInNlYXJjaENvbnRyb2wudmFsdWVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRhbGljXCI+e3sgc2VhcmNoQ29udHJvbC52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cIm9wZW4gJiYgY3R4LmxvYWRpbmdQYWdlXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBjb2xvcj1cInByaW1hcnlcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZGlzYWJsZT5cbiAgICA8aW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgY2xhc3M9XCJkaXNhYmxlZC1pbnB1dFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCIkYW55KHJlcXVpcmVkKVwiXG4gICAgLz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
417
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtdHlwZWFoZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9hc3luYy10eXBlYWhlYWQvYXN5bmMtdHlwZWFoZWFkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtdWkta2l0LXYyL3NyYy9saWIvY29tcG9uZW50cy9hc3luYy10eXBlYWhlYWQvYXN5bmMtdHlwZWFoZWFkLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFJTixRQUFRLEVBQ1IsSUFBSSxFQUVKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3RyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1B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QkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsNkJBQTZCO3lCQUMzQzt3QkFDRCx5QkFBeUI7cUJBQzVCOzswQkFvSkksUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUNSLFFBQVE7eUtBcklOLEtBQUs7c0JBRFgsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUluQyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsU0FBUztnQkFJaEIsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBV0ssUUFBUTtzQkFEbEIsS0FBSztnQkFpQ0ssS0FBSztzQkFEZixLQUFLO2dCQWtCSyxRQUFRO3NCQURsQixLQUFLO2dCQVVLLGdCQUFnQjtzQkFEMUIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTXRCLEVBQUU7c0JBRFIsV0FBVztnQkFJTCxXQUFXO3NCQURqQixXQUFXO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2VyY2lvblwiO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGVcIjtcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyLCBNYXRPcHRpb24sIG1peGluRXJyb3JTdGF0ZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tIFwidXVpZFwiO1xuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbmltcG9ydCB7IE5pY2VUeXBlYWhlYWROZXdWYWx1ZSB9IGZyb20gXCIuLi90eXBlYWhlYWRcIjtcbmltcG9ydCB7IE5pY2VBc3luY1R5cGVhaGVhZFNlcnZpY2UgfSBmcm9tIFwiLi9wcm92aWRlcnMvYXN5bmMtdHlwZWFoZWFkLnNlcnZpY2VcIjtcblxuLy8gQm9pbGVycGxhdGUgZm9yIGFwcGx5aW5nIG1peGlucyB0byApLlxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmNvbnN0IF9CYXNlQXN5bmNUeXBlYWhlYWRDb21wb25lbnQgPSBtaXhpbkVycm9yU3RhdGUoXG4gICAgY2xhc3Mge1xuICAgICAgICAvKipcbiAgICAgICAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGF0ZSBjaGFuZ2VzIGFuZCBzaG91bGQgY2F1c2UgdGhlIHBhcmVudFxuICAgICAgICAgKiBmb3JtIGZpZWxkIHRvIHVwZGF0ZS4gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBgTWF0Rm9ybUZpZWxkQ29udHJvbGAuXG4gICAgICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICBwdWJsaWMgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXG4gICAgICAgICAgICBwdWJsaWMgX3BhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgICAgIHB1YmxpYyBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZvcm0gY29udHJvbCBib3VuZCB0byB0aGUgY29tcG9uZW50LlxuICAgICAgICAgICAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBgTWF0Rm9ybUZpZWxkQ29udHJvbGAuXG4gICAgICAgICAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICAgICAgICApIHt9XG4gICAgfVxuKTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1hc3luYy10eXBlYWhlYWRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCJhc3luYy10eXBlYWhlYWQudGVtcGxhdGUuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiYXN5bmMtdHlwZWFoZWFkLnN0eWxlLnNjc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBOaWNlQXN5bmNUeXBlYWhlYWRDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgTmljZUFzeW5jVHlwZWFoZWFkU2VydmljZVxuICAgIF1cbn0pXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG5leHBvcnQgY2xhc3MgTmljZUFzeW5jVHlwZWFoZWFkQ29tcG9uZW50IGV4dGVuZHMgX0Jhc2VBc3luY1R5cGVhaGVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBNYXRGb3JtRmllbGRDb250cm9sPGFueT4sIERvQ2hlY2sge1xuICAgIHB1YmxpYyBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHB1YmxpYyBjb250cm9sVHlwZSA9IFwicmVtb3RlLXR5cGVhaGVhZFwiO1xuICAgIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc2VhcmNoQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChudWxsKTtcbiAgICBwdWJsaWMgdmFsdWVDaGFuZ2VzU3ViJDogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyBvcGVuID0gZmFsc2U7XG4gICAgcHVibGljIHBhbmVsV2lkdGggPSAwO1xuICAgIHB1YmxpYyBhY3RpdmVPcHRpb246IE1hdE9wdGlvbjtcblxuICAgIHB1YmxpYyBhY3RpdmUkID0gdGhpcy5zZXJ2aWNlLmFjdGl2ZSQ7XG5cbiAgICBAVmlld0NoaWxkKFwic2VhcmNoSW5wdXRcIiwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkcmVuKE1hdE9wdGlvbilcbiAgICBwdWJsaWMgb3B0aW9uczogTWF0T3B0aW9uW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZXNvdXJjZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoT3B0aW9uczogYW55O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcHJlbG9hZFJlc291cmNlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd05vdEZvdW5kSXRlbXMgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhbmVsQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiaW5kVmFsdWUgPSBcImlkXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiaW5kTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbXB0eVBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvcHRpb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsdGVyRm46ICh2YWx1ZTogYW55KSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPiB8IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbGFiZWxGb3JtYXRGbihsYWJlbEZvcm1hdEZuOiAoaXRlbTogYW55KSA9PiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbGFiZWxGb3JtYXRGbiA9IGxhYmVsRm9ybWF0Rm47XG4gICAgfVxuICAgIHByaXZhdGUgX2xhYmVsRm9ybWF0Rm46IChpdGVtOiBhbnkpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgTWF0Rm9ybUZpZWxkQ29udHJvbC5cbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDb250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hDb250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCcm93c2VycyBtYXkgbm90IGZpcmUgdGhlIGJsdXIgZXZlbnQgaWYgdGhlIGlucHV0IGlzIGRpc2FibGVkIHRvbyBxdWlja2x5LlxuICAgICAgICAvLyBSZXNldCBmcm9tIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIGVsZW1lbnQgZG9lc24ndCBiZWNvbWUgc3R1Y2suXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmRpc2FibGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuICAgIHByaXZhdGUgX3ZhbHVlOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkID8/IHRoaXMubmdDb250cm9sPy5jb250cm9sPy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkgPz8gZmFsc2U7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5mbG9hdGluZ1wiKVxuICAgIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoKVxuICAgIHB1YmxpYyBpZDogc3RyaW5nID0gdXVpZC52NCgpO1xuXG4gICAgQEhvc3RCaW5kaW5nKFwiYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XCIpXG4gICAgcHVibGljIGRlc2NyaWJlZEJ5ID0gXCJcIjtcblxuICAgIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoIXRoaXMuc2VhcmNoQ29udHJvbC52YWx1ZSB8fCAhdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlLmxlbmd0aCkgJiZcbiAgICAgICAgICAgICghdGhpcy5fdmFsdWUgfHwgKHR5cGVvZiB0aGlzLl92YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiAhdGhpcy5fdmFsdWUubGVuZ3RoKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGluaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldEluaXRpYWxpemVkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHByb3BhZ2F0ZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBwYXJlbnRGb3JtOiBOZ0Zvcm0sXG4gICAgICAgIEBPcHRpb25hbCgpIHBhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgICAgICBkZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIHNlcnZpY2U6IE5pY2VBc3luY1R5cGVhaGVhZFNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGRlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciwgcGFyZW50Rm9ybSwgcGFyZW50Rm9ybUdyb3VwLCBuZ0NvbnRyb2wpO1xuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMubmdDb250cm9sLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hDb250cm9sLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHN0YXR1cyA9PT0gXCJESVNBQkxFRFwiO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hDb250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5maWx0ZXJGbikge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNldEZpbHRlckZuKHRoaXMuZmlsdGVyRm4pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXNTdWIkID0gdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSg1MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUodGV4dCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0ZXh0ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2VhcmNoKHRoaXMucmVzb3VyY2UsIHRleHQsIHRoaXMuc2VhcmNoT3B0aW9ucyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnByZWxvYWRSZXNvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNlYXJjaCh0aGlzLnJlc291cmNlLCBcIlwiLCB0aGlzLnNlYXJjaE9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YiQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoXCJzZWFyY2hPcHRpb25zXCIgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlID0gY2hhbmdlcy5zZWFyY2hPcHRpb25zO1xuICAgICAgICAgICAgaWYgKCFjaGFuZ2UuaXNGaXJzdENoYW5nZSgpICYmIGNoYW5nZS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNlYXJjaCh0aGlzLnJlc291cmNlLCBcIlwiLCBjaGFuZ2UuY3VycmVudFZhbHVlKS50aGVuKCgpID0+IHRoaXMuY2hlY2tJZlZhbHVlU3RpbGxFeGlzdCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcImZpbHRlckZuXCIgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlID0gY2hhbmdlcy5maWx0ZXJGbjtcbiAgICAgICAgICAgIGlmICghY2hhbmdlLmlzRmlyc3RDaGFuZ2UoKSAmJiBjaGFuZ2UuY3VycmVudFZhbHVlICE9PSBjaGFuZ2UucHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5zZXRGaWx0ZXJGbihjaGFuZ2UuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRXJyb3JTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5fdmFsdWUgPT09IHZhbHVlIHx8IChpc051bGxPclVuZGVmaW5lZCh0aGlzLl92YWx1ZSkgJiYgaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSAmJiB0aGlzLl92YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25SZW1vdmUobnVsbCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBOaWNlVHlwZWFoZWFkTmV3VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoSW5wdXQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5zZXRBY3RpdmVJZCh0aGlzLnJlc291cmNlLCB2YWx1ZSwgdGhpcy5zZWFyY2hPcHRpb25zKS50aGVuKCgpID0+IHRoaXMudXBkYXRlU2VhcmNoSW5wdXQoKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UocHJvcGFnYXRlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZSA9IHByb3BhZ2F0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBOTy1PUFxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oXCIgXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY3RpdmU8VCA9IGFueT4oKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0QWN0aXZlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uT3B0aW9uQWN0aXZhdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVBY3RpdmF0ZWRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZU9wdGlvbiA9IGV2ZW50Lm9wdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25PcHRpb25TZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQub3B0aW9uLmlkID09PSBcIm5ldy12YWx1ZS1vcHRpb25cIikge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBOaWNlVHlwZWFoZWFkTmV3VmFsdWUodGhpcy5zZWFyY2hDb250cm9sLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGFiZWwoZXZlbnQub3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5zZXRBY3RpdmUoZXZlbnQub3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmJpbmRWYWx1ZSA/IHRoaXMuZ2V0T2JqZWN0SXRlbSh0aGlzLmJpbmRWYWx1ZSwgZXZlbnQub3B0aW9uLnZhbHVlKSA6IGV2ZW50Lm9wdGlvbi52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVTdGF0ZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbiA9IG9wZW47XG5cbiAgICAgICAgaWYgKCF0aGlzLm9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0NoYW5nZWQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wZW4gJiYgIXRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5pbml0aWFsaXplKHRoaXMucmVzb3VyY2UsIHRoaXMuc2VhcmNoT3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMub3BlbiAmJiB0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMub3Blbikge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVPcHRpb24gPSBudWxsO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl92YWx1ZSAmJiB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUmVtb3ZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25SZW1vdmUoZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgIC8vIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXJ2aWNlLnNldEFjdGl2ZShudWxsKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuc2VhcmNoQ29udHJvbC5wYXRjaFZhbHVlKG51bGwpO1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcblxuICAgICAgICB0aGlzLnNlcnZpY2Uuc2VhcmNoKHRoaXMucmVzb3VyY2UsIFwiXCIsIHRoaXMuc2VhcmNoT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvcm1hdExhYmVsKGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLl9sYWJlbEZvcm1hdEZuKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbGFiZWxGb3JtYXRGbihpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmJpbmRMYWJlbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T2JqZWN0SXRlbSh0aGlzLmJpbmRMYWJlbCwgaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZm9ybWF0KHRoaXMucmVzb3VyY2UsIGl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuXG4gICAgcHVibGljIG9uRW5kU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UubG9hZE1vcmUodGhpcy5yZXNvdXJjZSwgdGhpcy5zZWFyY2hPcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9jdXNDaGFuZ2VkKGlzRm9jdXNlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAoaXNGb2N1c2VkICE9PSB0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IGlzRm9jdXNlZDtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcblxuICAgICAgICAgICAgaWYgKGlzRm9jdXNlZCAmJiB0aGlzLmZpbHRlckZuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlbG9hZEZpbHRlcmVkSXRlbXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWxvYWRBY3RpdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZT8ucmVsb2FkQWN0aXZlKHRoaXMucmVzb3VyY2UsIHRoaXMuc2VhcmNoT3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuc2VydmljZT8uZ2V0QWN0aXZlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlTGFiZWwoYWN0aXZlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUxhYmVsKGl0ZW06IHVua25vd24gfCBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZm9ybWF0TGFiZWwoaXRlbSk7XG5cbiAgICAgICAgaWYgKGxhYmVsICYmIGxhYmVsICE9PSB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoQ29udHJvbC5wYXRjaFZhbHVlKGxhYmVsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9iamVjdEl0ZW0oa2V5OiBzdHJpbmcsIG9iajogb2JqZWN0KTogYW55IHtcbiAgICAgICAgY29uc3Qga2V5cyA9IGtleS5zcGxpdChcIi5cIik7XG4gICAgICAgIGxldCBpdGVtID0gb2JqO1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2Yga2V5cykge1xuICAgICAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXRlbS5oYXNPd25Qcm9wZXJ0eShrKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1ba107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlYXJjaElucHV0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdmFsdWUgaW5zdGFuY2VvZiBOaWNlVHlwZWFoZWFkTmV3VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGFiZWwodGhpcy5fdmFsdWUuJG5ldyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhY3RpdmUgPSB0aGlzLnNlcnZpY2UuZ2V0QWN0aXZlKCk7XG4gICAgICAgIGlmIChhY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGFiZWwoYWN0aXZlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY2hlY2tJZlZhbHVlU3RpbGxFeGlzdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlIGluc3RhbmNlb2YgTmljZVR5cGVhaGVhZE5ld1ZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpdGVtcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VydmljZS5maWx0ZXJlZEl0ZW1zJCk7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5maW5kKFxuICAgICAgICAgICAgdiA9PiAodGhpcy5iaW5kVmFsdWUgJiYgdHlwZW9mIHYgPT09IFwib2JqZWN0XCIgPyB0aGlzLmdldE9iamVjdEl0ZW0odGhpcy5iaW5kVmFsdWUsIHYpIDogdikgPT09IHRoaXMuX3ZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fdmFsdWUgIT09IG51bGwgJiYgdGhpcy5fdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5vblJlbW92ZShudWxsKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ7IGxvYWRpbmc6IHNlcnZpY2UubG9hZGluZyQgfCBhc3luYywgbG9hZGluZ1BhZ2U6IHNlcnZpY2UubG9hZGluZ1BhZ2UkIHwgYXN5bmMsIHZhbHVlczogc2VydmljZS5maWx0ZXJlZEl0ZW1zJCB8IGFzeW5jIH0gYXMgY3R4XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIiAqbmdJZj1cIiFkaXNhYmxlZDsgZWxzZSBkaXNhYmxlXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI3NlYXJjaElucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWF1dG9cIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgbmFtZT1cIm1hdC1hdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiRhbnkoZGlzYWJsZWQpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiXG4gICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiRhbnkocmVxdWlyZWQpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJmb2N1c0NoYW5nZWQodHJ1ZSlcIlxuICAgICAgICAvPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJ2YWx1ZSAmJiAhY3R4LmxvYWRpbmdcIiBtYXRTdWZmaXggY2xhc3M9XCJjbG9zZS1idXR0b24gc2Vjb25kYXJ5LXRleHRcIiAoY2xpY2spPVwib25SZW1vdmUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgY2xvc2VcbiAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJzZWxmLWNlbnRlclwiIFtkaWFtZXRlcl09XCIxNlwiICpuZ0lmPVwiY3R4LmxvYWRpbmdcIj48L21hdC1zcGlubmVyPlxuICAgIDwvZGl2PlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICAgW3BhbmVsV2lkdGhdPVwicGFuZWxXaWR0aFwiXG4gICAgICAgIFtjbGFzc109XCJwYW5lbENsYXNzXCJcbiAgICAgICAgKG9wdGlvbkFjdGl2YXRlZCk9XCJvbk9wdGlvbkFjdGl2YXRlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgIChjbG9zZWQpPVwidXBkYXRlU3RhdGUoZmFsc2UpXCJcbiAgICAgICAgKG9wZW5lZCk9XCJ1cGRhdGVTdGF0ZSh0cnVlKVwiXG4gICAgICAgIChvcHRpb25zU2Nyb2xsKT1cIm9uRW5kU2Nyb2xsKClcIlxuICAgICAgICBhdXRvQWN0aXZlRmlyc3RPcHRpb25cbiAgICA+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwib3BlbiAmJiBjdHgubG9hZGluZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGN0eC52YWx1ZXNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uVGVtcGxhdGU7IGVsc2UgZm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG9wdGlvbiB9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9ybWF0PlxuICAgICAgICAgICAgICAgIHt7IGZvcm1hdExhYmVsKG9wdGlvbikgfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhY3R4LnZhbHVlcz8ubGVuZ3RoICYmICFhbGxvd05vdEZvdW5kSXRlbXNcIiBkaXNhYmxlZD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbXB0eVBsYWNlaG9sZGVyOyBlbHNlIGRlZmF1bHRFbXB0eVBsYWNlaG9sZGVyXCI+XG4gICAgICAgICAgICAgICAge3sgZW1wdHlQbGFjZWhvbGRlciB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRFbXB0eVBsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgIHt7IFwiY29tcG9uZW50cy50eXBlYWhlYWQubm9faXRlbV9mb3VuZFwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiIWN0eC52YWx1ZXM/Lmxlbmd0aCAmJiBhbGxvd05vdEZvdW5kSXRlbXNcIiBpZD1cIm5ldy12YWx1ZS1vcHRpb25cIiBbdmFsdWVdPVwic2VhcmNoQ29udHJvbC52YWx1ZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGFsaWNcIj57eyBzZWFyY2hDb250cm9sLnZhbHVlIH19PC9zcGFuPlxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwib3BlbiAmJiBjdHgubG9hZGluZ1BhZ2VcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNkaXNhYmxlPlxuICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBjbGFzcz1cImRpc2FibGVkLWlucHV0XCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cIiRhbnkocmVxdWlyZWQpXCJcbiAgICAvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -2796,6 +2796,7 @@ class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent {
|
|
|
2796
2796
|
this.focused = false;
|
|
2797
2797
|
this.stateChanges.next();
|
|
2798
2798
|
}
|
|
2799
|
+
this.changeDetectorRef.detectChanges();
|
|
2799
2800
|
}
|
|
2800
2801
|
get disabled() {
|
|
2801
2802
|
if (this.ngControl && this.ngControl.disabled !== null) {
|
|
@@ -2892,19 +2893,23 @@ class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent {
|
|
|
2892
2893
|
}
|
|
2893
2894
|
}
|
|
2894
2895
|
writeValue(value) {
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
this.
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2896
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2897
|
+
if (this._value === value || (isNullOrUndefined(this._value) && isNullOrUndefined(value))) {
|
|
2898
|
+
return;
|
|
2899
|
+
}
|
|
2900
|
+
if (!value && this._value !== value) {
|
|
2901
|
+
this.onRemove(null);
|
|
2902
|
+
return;
|
|
2903
|
+
}
|
|
2904
|
+
if (value instanceof NiceTypeaheadNewValue) {
|
|
2905
|
+
this.updateSearchInput();
|
|
2906
|
+
return;
|
|
2907
|
+
}
|
|
2908
|
+
else {
|
|
2909
|
+
yield this.service.setActiveId(this.resource, value, this.searchOptions).then(() => this.updateSearchInput());
|
|
2910
|
+
}
|
|
2911
|
+
this.value = value;
|
|
2912
|
+
});
|
|
2908
2913
|
}
|
|
2909
2914
|
registerOnChange(propagate) {
|
|
2910
2915
|
this.propagate = propagate;
|
|
@@ -2958,7 +2963,7 @@ class NiceAsyncTypeaheadComponent extends _BaseAsyncTypeaheadComponent {
|
|
|
2958
2963
|
onRemove(event) {
|
|
2959
2964
|
var _a;
|
|
2960
2965
|
if (event) {
|
|
2961
|
-
event.stopPropagation();
|
|
2966
|
+
// event.stopPropagation();
|
|
2962
2967
|
}
|
|
2963
2968
|
if (this.disabled) {
|
|
2964
2969
|
return;
|