monkey-front-components 0.0.195 → 0.0.197
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/components/base/base-component.mjs +10 -40
- package/fesm2015/monkey-front-components.mjs +9 -39
- package/fesm2015/monkey-front-components.mjs.map +1 -1
- package/fesm2020/monkey-front-components.mjs +9 -39
- package/fesm2020/monkey-front-components.mjs.map +1 -1
- package/monkey-front-components-0.0.197.tgz +0 -0
- package/package.json +2 -2
- package/monkey-front-components-0.0.195.tgz +0 -0
|
@@ -19,52 +19,22 @@ export class BaseComponent {
|
|
|
19
19
|
}
|
|
20
20
|
handlePagination(create = true) {
|
|
21
21
|
const { __paginationOptions } = this;
|
|
22
|
-
console.log('x');
|
|
23
|
-
console.log(__paginationOptions);
|
|
24
22
|
if (__paginationOptions) {
|
|
25
23
|
const { mainElement, service } = __paginationOptions;
|
|
26
|
-
console.log('__paginationOptions');
|
|
27
|
-
console.log(__paginationOptions);
|
|
28
24
|
const element = document.getElementById(mainElement);
|
|
29
|
-
console.log('element');
|
|
30
|
-
console.log(element);
|
|
31
25
|
if (element) {
|
|
32
26
|
element.scroll = null;
|
|
33
27
|
element.onscroll = null;
|
|
34
28
|
if (create) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
element.addEventListener('scroll', () => {
|
|
45
|
-
console.log('no on scroll');
|
|
46
|
-
const { scrollTop, scrollHeight, offsetHeight } = element;
|
|
47
|
-
const contentHeight = scrollHeight - offsetHeight;
|
|
48
|
-
console.log(contentHeight);
|
|
49
|
-
console.log(scrollTop);
|
|
50
|
-
if (contentHeight <= scrollTop) {
|
|
51
|
-
service.doPagination();
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
// element.onscroll = () => {
|
|
55
|
-
// console.log('no on scroll');
|
|
56
|
-
// const { scrollTop, scrollHeight, offsetHeight } = element;
|
|
57
|
-
// const contentHeight = scrollHeight - offsetHeight;
|
|
58
|
-
// console.log(contentHeight);
|
|
59
|
-
// console.log(scrollTop);
|
|
60
|
-
// if (contentHeight <= scrollTop) {
|
|
61
|
-
// service.doPagination();
|
|
62
|
-
// }
|
|
63
|
-
// };
|
|
64
|
-
}
|
|
65
|
-
catch (e) {
|
|
66
|
-
console.log(e);
|
|
67
|
-
}
|
|
29
|
+
element.removeEventListener('scroll', element.eventListeners('scroll'));
|
|
30
|
+
element.removeEventListener('scroll', element.eventListeners('scroll')[0]);
|
|
31
|
+
element.addEventListener('scroll', () => {
|
|
32
|
+
const { scrollTop, scrollHeight, offsetHeight } = element;
|
|
33
|
+
const contentHeight = scrollHeight - offsetHeight;
|
|
34
|
+
if (contentHeight <= scrollTop) {
|
|
35
|
+
service.doPagination();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
68
38
|
}
|
|
69
39
|
}
|
|
70
40
|
}
|
|
@@ -320,4 +290,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
|
|
|
320
290
|
selector: '[baseComponent]'
|
|
321
291
|
}]
|
|
322
292
|
}], ctorParameters: function () { return []; } });
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsdUJBQXVCLEVBS3ZCLGFBQWEsRUFDZCxNQUFNLG1CQUFtQixDQUFDOztBQUszQixNQUFNLE9BQWdCLGFBQWE7SUFlakM7UUFWQSx3QkFBbUIsR0FBc0MsSUFBSSxDQUFDO1FBSTlELGVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFN0IsY0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBSzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxRQUFRO1FBQ2QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUM7WUFDaEQsQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDaEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLE9BQU8sQ0FDaEUsQ0FBQztRQUNKLE9BQU8sQ0FBQyxtREFBbUQsQ0FBQyxJQUFJLENBQzlELFNBQVMsQ0FBQyxTQUFTLENBQ3BCLENBQUMsSUFBSSxhQUFhLENBQUM7SUFDdEIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxJQUFJO1FBQ3BD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eEMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxJQUFTLEVBQUUsS0FBYTtRQUM3QyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQzNCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0lBRU0sVUFBVSxDQUFDLEdBQVc7UUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBUztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsT0FBZTtRQUNyQyxPQUFPO1lBQ0wsRUFBRSxFQUFFLEVBQUU7WUFDTixFQUFFLEVBQUUsRUFBRTtTQUNQLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sNkJBQTZCLENBQUMsT0FBZTtRQUNsRCxPQUFPO1lBQ0wsRUFBRSxFQUFFLGlCQUFpQjtZQUNyQixFQUFFLEVBQUUsZUFBZTtTQUNwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWU7UUFDekMsT0FBTztZQUNMLEVBQUUsRUFBRTtnQkFDRixZQUFZLEVBQUUsYUFBYSxDQUFDLGlCQUFpQjthQUM5QztZQUNELEVBQUUsRUFBRTtnQkFDRixZQUFZLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjthQUNqRDtTQUNGLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDOzswR0ExVW1CLGFBQWE7OEZBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUhsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPbkRlc3Ryb3ksIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9ua2V5VXRpbHMgfSBmcm9tICdtb25rZXktc3R5bGUtZ3VpZGUnO1xuaW1wb3J0IHtcbiAgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2UsXG4gIE1vbmtleUVjeEVycm9yUmVzcG9uc2UsXG4gIE1vbmtleUVjeFBhZ2luYXRpb25PcHRpb25zLFxuICBNb25rZXlFY3hTdXBwb3J0T3B0aW9ucyxcbiAgTW9ua2V5RWN4VHJhbnNsYXRlT3B0aW9ucyxcbiAgVmFsaWRhdGVVdGlsc1xufSBmcm9tICdtb25rZXktZnJvbnQtY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tiYXNlQ29tcG9uZW50XSdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIF9fbW9ua2V5ZWN4Rm9ybUVycm9yczogYW55IHwgYW55W107XG5cbiAgX191bnN1YnNjcmliZUFsbDogU3ViamVjdDxhbnk+O1xuXG4gIF9fcGFnaW5hdGlvbk9wdGlvbnM6IE1vbmtleUVjeFBhZ2luYXRpb25PcHRpb25zIHwgbnVsbCA9IG51bGw7XG5cbiAgX19pMThuOiBhbnk7XG5cbiAgX19pc01vYmlsZSA9IHRoaXMuaXNNb2JpbGUoKTtcblxuICBfX2xvY2FsZXMgPSBbJ3B0LUJSJywgJ2VzLUNMJ107XG5cbiAgcHJpdmF0ZSBwYWdpbmF0aW9uRnVuYzogYW55O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9fdW5zdWJzY3JpYmVBbGwgPSBuZXcgU3ViamVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc01vYmlsZSgpIHtcbiAgICBjb25zdCBpc01vYmlsZVdpZHRoID0gKHdpbmRvdy5zY3JlZW4ud2lkdGggPD0gNjQwKSB8fFxuICAgICAgKHdpbmRvdy5tYXRjaE1lZGlhICYmXG4gICAgICAgIHdpbmRvdy5tYXRjaE1lZGlhKCdvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpJykubWF0Y2hlc1xuICAgICAgKTtcbiAgICByZXR1cm4gKC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxNb2JpbGUvaS50ZXN0KFxuICAgICAgbmF2aWdhdG9yLnVzZXJBZ2VudFxuICAgICkpIHx8IGlzTW9iaWxlV2lkdGg7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVBhZ2luYXRpb24oY3JlYXRlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHsgX19wYWdpbmF0aW9uT3B0aW9ucyB9ID0gdGhpcztcblxuICAgIGNvbnNvbGUubG9nKCd4Jyk7XG4gICAgY29uc29sZS5sb2coX19wYWdpbmF0aW9uT3B0aW9ucyk7XG4gICAgaWYgKF9fcGFnaW5hdGlvbk9wdGlvbnMpIHtcbiAgICAgIGNvbnN0IHsgbWFpbkVsZW1lbnQsIHNlcnZpY2UgfSA9IF9fcGFnaW5hdGlvbk9wdGlvbnM7XG4gICAgICBjb25zb2xlLmxvZygnX19wYWdpbmF0aW9uT3B0aW9ucycpO1xuICAgICAgY29uc29sZS5sb2coX19wYWdpbmF0aW9uT3B0aW9ucyk7XG4gICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobWFpbkVsZW1lbnQpO1xuICAgICAgY29uc29sZS5sb2coJ2VsZW1lbnQnKTtcbiAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpO1xuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5zY3JvbGwgPSBudWxsO1xuICAgICAgICBlbGVtZW50Lm9uc2Nyb2xsID0gbnVsbDtcblxuICAgICAgICBpZiAoY3JlYXRlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ3NlcnZpY2UnKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhzZXJ2aWNlKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ2VsZW1lbnQub25zY3JvbGwnKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQub25zY3JvbGwpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ2VsZW1lbnQuZXZlbnRMaXN0ZW5lcnMoc2Nyb2xsKScpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coKGVsZW1lbnQgYXMgYW55KS5ldmVudExpc3RlbmVycygnc2Nyb2xsJykpO1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoZWxlbWVudCBhcyBhbnkpLmV2ZW50TGlzdGVuZXJzKCdzY3JvbGwnKSk7XG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIChlbGVtZW50IGFzIGFueSkuZXZlbnRMaXN0ZW5lcnMoJ3Njcm9sbCcpWzBdKTtcbiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbm8gb24gc2Nyb2xsJyk7XG4gICAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIG9mZnNldEhlaWdodCB9ID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgY29uc3QgY29udGVudEhlaWdodCA9IHNjcm9sbEhlaWdodCAtIG9mZnNldEhlaWdodDtcblxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjb250ZW50SGVpZ2h0KTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coc2Nyb2xsVG9wKTtcbiAgICAgICAgICAgICAgaWYgKGNvbnRlbnRIZWlnaHQgPD0gc2Nyb2xsVG9wKSB7XG4gICAgICAgICAgICAgICAgc2VydmljZS5kb1BhZ2luYXRpb24oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBlbGVtZW50Lm9uc2Nyb2xsID0gKCkgPT4ge1xuICAgICAgICAgICAgLy8gIGNvbnNvbGUubG9nKCdubyBvbiBzY3JvbGwnKTtcbiAgICAgICAgICAgIC8vICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBvZmZzZXRIZWlnaHQgfSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAvLyAgY29uc3QgY29udGVudEhlaWdodCA9IHNjcm9sbEhlaWdodCAtIG9mZnNldEhlaWdodDtcblxuICAgICAgICAgICAgLy8gIGNvbnNvbGUubG9nKGNvbnRlbnRIZWlnaHQpO1xuICAgICAgICAgICAgLy8gIGNvbnNvbGUubG9nKHNjcm9sbFRvcCk7XG4gICAgICAgICAgICAvLyAgaWYgKGNvbnRlbnRIZWlnaHQgPD0gc2Nyb2xsVG9wKSB7XG4gICAgICAgICAgICAvLyAgICBzZXJ2aWNlLmRvUGFnaW5hdGlvbigpO1xuICAgICAgICAgICAgLy8gIH1cbiAgICAgICAgICAgIC8vIH07XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdXBwb3J0KHN1cHBvcnRDb250cm9sczogTW9ua2V5RWN4U3VwcG9ydE9wdGlvbnMpIHtcbiAgICBjb25zdCB7IHNlcnZpY2UsIHNob3cgfSA9IHN1cHBvcnRDb250cm9scztcbiAgICBjb25zdCBtZXRob2QgPSBzaG93ID8gJ3Nob3cnIDogJ2hpZGUnO1xuICAgIHNlcnZpY2VbbWV0aG9kLnRvTG93ZXJDYXNlKCldKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVRyYW5zbGF0ZSh0cmFuc2xhdGVPcHRpb25zOiBNb25rZXlFY3hUcmFuc2xhdGVPcHRpb25zKSB7XG4gICAgY29uc3QgeyBzZXJ2aWNlIH0gPSB0cmFuc2xhdGVPcHRpb25zO1xuICAgIHNlcnZpY2UuX19vbmkxOG5EYXRhQ2hhbmdlZCRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9fdW5zdWJzY3JpYmVBbGwpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBzZXJ2aWNlLl9faTE4bjtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICB0aGlzLl9faTE4biA9IGRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFcnJvckZpcnN0TWVzc2FnZVRyYW5zbGF0ZWQoZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsKSB7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcigncmVxdWlyZWQnKSkgcmV0dXJuICdGSUVMRC1SRVFVSVJFRCc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZCcpKSByZXR1cm4gJ0ZJRUxELUlOVkFMSUQnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2VtYWlsJykpIHJldHVybiAnSU5WQUxJRC1FTUFJTCc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWlubGVuZ3RoJykpIHJldHVybiAnTUlOLUxFTkdUSCc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHJldHVybiAnTUFYLUxFTkdUSCc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWF4JykpIHJldHVybiAnTUFYJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW4nKSkgcmV0dXJuICdNSU4nO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ3Bhc3N3b3Jkc05vdE1hdGNoaW5nJykpIHJldHVybiAnTUFUQ0gtUEFTU1dPUkQnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWREYXRlJykpIHJldHVybiAnSU5WQUxJRC1EQVRFJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdpbnZhbGlkVHJ1ZScpKSByZXR1cm4gJ0lOVkFMSUQtVFJVRSc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZENwZkNucGonKSkgcmV0dXJuICdJTlZBTElELURPQ1VNRU5UJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdpbnZhbGlkWmlwQ29kZScpKSByZXR1cm4gJ0lOVkFMSUQtWklQQ09ERSc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZENvbWJvJykpIHJldHVybiAnSU5WQUxJRC1DT01CTyc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZFVybCcpKSByZXR1cm4gJ0lOVkFMSUQtVVJMJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdpbnZhbGlkVW5sb2NrUmVnaXN0ZXInKSkgeyByZXR1cm4gJ0lOVkFMSUQtVU5MT0NLLVJFR0lTVEVSJzsgfVxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2RhdGVTdGFydE11c3RCZUxlc3NUaGFuQW5kJykpIHtcbiAgICAgIHJldHVybiAnREFURS1TVEFSVC1NVVNULUJFLUxFU1MtVEhBTi1BTkQnO1xuICAgIH1cbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdkYXRlRW5kTXVzdEJlR3JlYXRlclRoYW5TdGFydCcpKSB7XG4gICAgICByZXR1cm4gJ0RBVEUtRU5ELU1VU1QtQkUtR1JFQVRFUi1USEFOLVNBUlQnO1xuICAgIH1cbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdwaG9uZScpKSByZXR1cm4gJ0lOVkFMSUQtUEhPTkUnO1xuXG4gICAgcmV0dXJuICdGSUVMRC1JTlZBTElEJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXJyb3JMYXN0TWVzc2FnZU5vdFRyYW5zbGF0ZWQoZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsKSB7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcbiAgICAgIHJldHVybiBgJHtmb3JtQ29udHJvbD8uZ2V0RXJyb3IoJ21pbmxlbmd0aCcpLnJlcXVpcmVkTGVuZ3RofSBjYXJhY3RlcmVzLmA7XG4gICAgfVxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21heGxlbmd0aCcpKSB7XG4gICAgICByZXR1cm4gYCR7Zm9ybUNvbnRyb2w/LmdldEVycm9yKCdtYXhsZW5ndGgnKS5yZXF1aXJlZExlbmd0aH0gY2FyYWN0ZXJlcy5gO1xuICAgIH1cbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtYXgnKSkgeyByZXR1cm4gYCR7Zm9ybUNvbnRyb2w/LmdldEVycm9yKCdtYXgnKS5tYXh9YDsgfVxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21pbicpKSB7IHJldHVybiBgJHtmb3JtQ29udHJvbD8uZ2V0RXJyb3IoJ21pbicpLm1pbn1gOyB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVGb3JtV2l0aFRyYW5zbGF0ZShmOiBGb3JtR3JvdXAsIGluZGV4PzogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZm9ybUVycm9yczogYW55ID0gZi52YWx1ZTtcblxuICAgIGlmIChmLnN0YXR1cyA9PT0gJ1ZBTElEJykgcmV0dXJuIHRydWU7XG5cbiAgICBpZiAoIWZvcm1FcnJvcnMpIHJldHVybiB0cnVlO1xuICAgIE9iamVjdC5lbnRyaWVzKGZvcm1FcnJvcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGYuZ2V0KGtleSk7XG4gICAgICBmb3JtRXJyb3JzW2tleV0gPSAnJztcbiAgICAgIGlmIChjb250cm9sICYmICFjb250cm9sLnZhbGlkKSB7XG4gICAgICAgIGNvbnN0IG1zZyA9IHtcbiAgICAgICAgICBmaXJzdDogYEVSUk9SUy4ke3RoaXMuZ2V0RXJyb3JGaXJzdE1lc3NhZ2VUcmFuc2xhdGVkKGYuZ2V0KGtleSkpfWAsXG4gICAgICAgICAgbGFzdDogdGhpcy5nZXRFcnJvckxhc3RNZXNzYWdlTm90VHJhbnNsYXRlZChmLmdldChrZXkpKVxuICAgICAgICB9O1xuICAgICAgICBmb3JtRXJyb3JzW2tleV0gPSBtc2c7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoTW9ua2V5VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZChpbmRleCkpIHsgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnNbaW5kZXggfHwgMF0gPSBmb3JtRXJyb3JzOyB9IGVsc2Uge1xuICAgICAgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMgPSBmb3JtRXJyb3JzO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjb3B5VG9DbGlwYm9hcmQodmFsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxCb3ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgIHNlbEJveC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgc2VsQm94LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgc2VsQm94LnN0eWxlLnRvcCA9ICcwJztcbiAgICBzZWxCb3guc3R5bGUub3BhY2l0eSA9ICcwJztcbiAgICBzZWxCb3gudmFsdWUgPSB2YWw7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzZWxCb3gpO1xuICAgIHNlbEJveC5mb2N1cygpO1xuICAgIHNlbEJveC5zZWxlY3QoKTtcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoc2VsQm94KTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZUZvcm0oZjogRm9ybUdyb3VwLCBpbmRleD86IG51bWJlciwgYWxpYXM/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtRXJyb3JzOiBhbnkgPSBmLnZhbHVlO1xuICAgIGlmIChmLnN0YXR1cyA9PT0gJ1ZBTElEJykgcmV0dXJuIHRydWU7XG5cbiAgICBpZiAoIWZvcm1FcnJvcnMpIHJldHVybiB0cnVlO1xuICAgIE9iamVjdC5lbnRyaWVzKGZvcm1FcnJvcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGYuZ2V0KGtleSk7XG4gICAgICBmb3JtRXJyb3JzW2tleV0gPSAnJztcbiAgICAgIGlmIChjb250cm9sICYmICFjb250cm9sLnZhbGlkKSB7XG4gICAgICAgIGNvbnN0IG1zZyA9IHtcbiAgICAgICAgICBmaXJzdE1lc3NhZ2U6IGBFUlJPUlMuJHt0aGlzLmdldEVycm9yRmlyc3RNZXNzYWdlVHJhbnNsYXRlZChcbiAgICAgICAgICAgIGYuZ2V0KGtleSlcbiAgICAgICAgICApfWAsXG4gICAgICAgICAgbGFzdE1lc3NhZ2U6IHRoaXMuZ2V0RXJyb3JMYXN0TWVzc2FnZU5vdFRyYW5zbGF0ZWQoZi5nZXQoa2V5KSlcbiAgICAgICAgfTtcbiAgICAgICAgZm9ybUVycm9yc1trZXldID0gbXNnO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKE1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQoaW5kZXgpKSB7XG4gICAgICB0aGlzLl9fbW9ua2V5ZWN4Rm9ybUVycm9yc1tpbmRleCB8fCAwXSA9IGZvcm1FcnJvcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBvYmo6IGFueTtcblxuICAgICAgaWYgKGFsaWFzKSB7XG4gICAgICAgIG9iaiA9IHtcbiAgICAgICAgICBbYWxpYXNdOiB7XG4gICAgICAgICAgICAuLi5mb3JtRXJyb3JzXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JqID0gZm9ybUVycm9ycztcbiAgICAgIH1cblxuICAgICAgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMgPSB7XG4gICAgICAgIC4uLnRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzLFxuICAgICAgICAuLi5vYmpcbiAgICAgIH07XG4gICAgfVxuICAgIGYubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckFsbFNlcnZpY2VEYXRhKGNsZWFyRGF0YTogYm9vbGVhbikge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzO1xuICAgIE9iamVjdC52YWx1ZXMoY29udGV4dCkuZm9yRWFjaCgoY3R4OiBhbnkpID0+IHtcbiAgICAgIGlmIChjdHggaW5zdGFuY2VvZiBNb25rZXlFY3hDb21tb25zU2VydmljZSkge1xuICAgICAgICBjdHguY2xlYXIoY2xlYXJEYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdChhcmdzOiB7XG4gICAgcGFnaW5hdGlvbk9wdGlvbnM/OiBNb25rZXlFY3hQYWdpbmF0aW9uT3B0aW9ucztcbiAgICBzdXBwb3J0Q29udHJvbHM/OiBNb25rZXlFY3hTdXBwb3J0T3B0aW9ucztcbiAgICB0cmFuc2xhdGVPcHRpb25zPzogTW9ua2V5RWN4VHJhbnNsYXRlT3B0aW9ucztcbiAgfSkge1xuICAgIGlmIChhcmdzPy5wYWdpbmF0aW9uT3B0aW9ucykge1xuICAgICAgdGhpcy5fX3BhZ2luYXRpb25PcHRpb25zID0gYXJncz8ucGFnaW5hdGlvbk9wdGlvbnM7XG4gICAgICB0aGlzLmhhbmRsZVBhZ2luYXRpb24oKTtcbiAgICB9XG4gICAgaWYgKGFyZ3M/LnN1cHBvcnRDb250cm9scykge1xuICAgICAgdGhpcy5oYW5kbGVTdXBwb3J0KGFyZ3M/LnN1cHBvcnRDb250cm9scyk7XG4gICAgfVxuICAgIGlmIChhcmdzPy50cmFuc2xhdGVPcHRpb25zKSB7XG4gICAgICB0aGlzLmhhbmRsZVRyYW5zbGF0ZShhcmdzPy50cmFuc2xhdGVPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koY2xlYXJEYXRhOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHRoaXMuX191bnN1YnNjcmliZUFsbC5uZXh0KCk7XG4gICAgdGhpcy5fX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jbGVhckFsbFNlcnZpY2VEYXRhKGNsZWFyRGF0YSk7XG4gICAgdGhpcy5oYW5kbGVQYWdpbmF0aW9uKGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVFcnJvckZyb21TZXJ2aWNlcyhlcnJvcjogTW9ua2V5RWN4RXJyb3JSZXNwb25zZSwgZjogRm9ybUdyb3VwKSB7XG4gICAgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMgPSBudWxsO1xuICAgIGlmIChlcnJvci50eXBlID09PSAnUGFyYW1ldGVyX0Vycm9yJykge1xuICAgICAgT2JqZWN0LmVudHJpZXMoZi52YWx1ZSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGVycm9yLm5vdGlmaWNhdGlvbnMuZm9yRWFjaCgoXzogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmllbGQgPSBfLnNwbGl0KCc6JylbMF07XG4gICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBfLnNwbGl0KCc6JylbMV07XG4gICAgICAgICAgaWYgKGZpZWxkID09PSBrZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IHtcbiAgICAgICAgICAgICAgZmlyc3RNZXNzYWdlOiAnJyxcbiAgICAgICAgICAgICAgbGFzdE1lc3NhZ2U6IGRlc2NyaXB0aW9uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMgPSB7XG4gICAgICAgICAgICAgIC4uLnRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzLFxuICAgICAgICAgICAgICBba2V5XTogbXNnXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZi5jb250cm9sc1trZXldLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgIGluY29ycmVjdDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGYubWFya0FsbEFzVG91Y2hlZCgpO1xuICB9XG5cbiAgcHVibGljIGdvQmFjaygpIHtcbiAgICB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ29TY3JvbGwoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFbWJlZGRlZERhdGEoZGF0YTogYW55LCBmaWVsZDogc3RyaW5nKTogYW55W10gfCBhbnkge1xuICAgIGNvbnN0IHsgX2VtYmVkZGVkIH0gPSBkYXRhO1xuICAgIHJldHVybiBfZW1iZWRkZWQgPyBfZW1iZWRkZWRbZmllbGRdIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuV2luZG93KHVybDogc3RyaW5nKSB7XG4gICAgd2luZG93Lm9wZW4oYCR7dXJsfWAsICdfYmxhbmsnKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxsSTE4bihkYXRhOiBhbnkpIHtcbiAgICB0aGlzLl9faTE4biA9IGRhdGE7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRyeVByZWZpeChjb3VudHJ5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnI6IDU1LFxuICAgICAgY2w6IDU2XG4gICAgfVtjb3VudHJ5XTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb3VudHJ5Q3VycmVuY3lDaGFydEZvcm1hdChjb3VudHJ5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnI6ICdSJCAjLCMjIywjIzAuMDAnLFxuICAgICAgY2w6ICdDTFAgIywjIyMsIyMwJ1xuICAgIH1bY291bnRyeV07XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRyeVZhbGlkYXRvcnMoY291bnRyeTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJyOiB7XG4gICAgICAgIGdvdmVybm1lbnRJZDogVmFsaWRhdGVVdGlscy5Eb2N1bWVudFZhbGlkYXRvclxuICAgICAgfSxcbiAgICAgIGNsOiB7XG4gICAgICAgIGdvdmVybm1lbnRJZDogVmFsaWRhdGVVdGlscy5Eb2N1bWVudFJ1dFZhbGlkYXRvclxuICAgICAgfVxuICAgIH1bY291bnRyeV07XG4gIH1cbn1cbiJdfQ==
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsdUJBQXVCLEVBS3ZCLGFBQWEsRUFDZCxNQUFNLG1CQUFtQixDQUFDOztBQUszQixNQUFNLE9BQWdCLGFBQWE7SUFlakM7UUFWQSx3QkFBbUIsR0FBc0MsSUFBSSxDQUFDO1FBSTlELGVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFN0IsY0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBSzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxRQUFRO1FBQ2QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUM7WUFDaEQsQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDaEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLE9BQU8sQ0FDaEUsQ0FBQztRQUNKLE9BQU8sQ0FBQyxtREFBbUQsQ0FBQyxJQUFJLENBQzlELFNBQVMsQ0FBQyxTQUFTLENBQ3BCLENBQUMsSUFBSSxhQUFhLENBQUM7SUFDdEIsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxJQUFJO1FBQ3BD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QUUsQ0FBQztJQUN4QyxDQUFDO0lBRU0sZUFBZSxDQUFDLElBQVMsRUFBRSxLQUFhO1FBQzdDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDM0IsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdDLENBQUM7SUFFTSxVQUFVLENBQUMsR0FBVztRQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFTO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxPQUFlO1FBQ3JDLE9BQU87WUFDTCxFQUFFLEVBQUUsRUFBRTtZQUNOLEVBQUUsRUFBRSxFQUFFO1NBQ1AsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTSw2QkFBNkIsQ0FBQyxPQUFlO1FBQ2xELE9BQU87WUFDTCxFQUFFLEVBQUUsaUJBQWlCO1lBQ3JCLEVBQUUsRUFBRSxlQUFlO1NBQ3BCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sb0JBQW9CLENBQUMsT0FBZTtRQUN6QyxPQUFPO1lBQ0wsRUFBRSxFQUFFO2dCQUNGLFlBQVksRUFBRSxhQUFhLENBQUMsaUJBQWlCO2FBQzlDO1lBQ0QsRUFBRSxFQUFFO2dCQUNGLFlBQVksRUFBRSxhQUFhLENBQUMsb0JBQW9CO2FBQ2pEO1NBQ0YsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7OzBHQTlTbUIsYUFBYTs4RkFBYixhQUFhOzJGQUFiLGFBQWE7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9uRGVzdHJveSwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNb25rZXlVdGlscyB9IGZyb20gJ21vbmtleS1zdHlsZS1ndWlkZSc7XG5pbXBvcnQge1xuICBNb25rZXlFY3hDb21tb25zU2VydmljZSxcbiAgTW9ua2V5RWN4RXJyb3JSZXNwb25zZSxcbiAgTW9ua2V5RWN4UGFnaW5hdGlvbk9wdGlvbnMsXG4gIE1vbmtleUVjeFN1cHBvcnRPcHRpb25zLFxuICBNb25rZXlFY3hUcmFuc2xhdGVPcHRpb25zLFxuICBWYWxpZGF0ZVV0aWxzXG59IGZyb20gJ21vbmtleS1mcm9udC1jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Jhc2VDb21wb25lbnRdJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgX19tb25rZXllY3hGb3JtRXJyb3JzOiBhbnkgfCBhbnlbXTtcblxuICBfX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PGFueT47XG5cbiAgX19wYWdpbmF0aW9uT3B0aW9uczogTW9ua2V5RWN4UGFnaW5hdGlvbk9wdGlvbnMgfCBudWxsID0gbnVsbDtcblxuICBfX2kxOG46IGFueTtcblxuICBfX2lzTW9iaWxlID0gdGhpcy5pc01vYmlsZSgpO1xuXG4gIF9fbG9jYWxlcyA9IFsncHQtQlInLCAnZXMtQ0wnXTtcblxuICBwcml2YXRlIHBhZ2luYXRpb25GdW5jOiBhbnk7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX191bnN1YnNjcmliZUFsbCA9IG5ldyBTdWJqZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIGlzTW9iaWxlKCkge1xuICAgIGNvbnN0IGlzTW9iaWxlV2lkdGggPSAod2luZG93LnNjcmVlbi53aWR0aCA8PSA2NDApIHx8XG4gICAgICAod2luZG93Lm1hdGNoTWVkaWEgJiZcbiAgICAgICAgd2luZG93Lm1hdGNoTWVkaWEoJ29ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCknKS5tYXRjaGVzXG4gICAgICApO1xuICAgIHJldHVybiAoL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fE1vYmlsZS9pLnRlc3QoXG4gICAgICBuYXZpZ2F0b3IudXNlckFnZW50XG4gICAgKSkgfHwgaXNNb2JpbGVXaWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUGFnaW5hdGlvbihjcmVhdGUgPSB0cnVlKSB7XG4gICAgY29uc3QgeyBfX3BhZ2luYXRpb25PcHRpb25zIH0gPSB0aGlzO1xuXG4gICAgaWYgKF9fcGFnaW5hdGlvbk9wdGlvbnMpIHtcbiAgICAgIGNvbnN0IHsgbWFpbkVsZW1lbnQsIHNlcnZpY2UgfSA9IF9fcGFnaW5hdGlvbk9wdGlvbnM7XG5cbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtYWluRWxlbWVudCk7XG5cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsID0gbnVsbDtcbiAgICAgICAgZWxlbWVudC5vbnNjcm9sbCA9IG51bGw7XG5cbiAgICAgICAgaWYgKGNyZWF0ZSkge1xuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKGVsZW1lbnQgYXMgYW55KS5ldmVudExpc3RlbmVycygnc2Nyb2xsJykpO1xuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKGVsZW1lbnQgYXMgYW55KS5ldmVudExpc3RlbmVycygnc2Nyb2xsJylbMF0pO1xuICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgb2Zmc2V0SGVpZ2h0IH0gPSBlbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgY29udGVudEhlaWdodCA9IHNjcm9sbEhlaWdodCAtIG9mZnNldEhlaWdodDtcblxuICAgICAgICAgICAgaWYgKGNvbnRlbnRIZWlnaHQgPD0gc2Nyb2xsVG9wKSB7XG4gICAgICAgICAgICAgIHNlcnZpY2UuZG9QYWdpbmF0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVN1cHBvcnQoc3VwcG9ydENvbnRyb2xzOiBNb25rZXlFY3hTdXBwb3J0T3B0aW9ucykge1xuICAgIGNvbnN0IHsgc2VydmljZSwgc2hvdyB9ID0gc3VwcG9ydENvbnRyb2xzO1xuICAgIGNvbnN0IG1ldGhvZCA9IHNob3cgPyAnc2hvdycgOiAnaGlkZSc7XG4gICAgc2VydmljZVttZXRob2QudG9Mb3dlckNhc2UoKV0oKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVHJhbnNsYXRlKHRyYW5zbGF0ZU9wdGlvbnM6IE1vbmtleUVjeFRyYW5zbGF0ZU9wdGlvbnMpIHtcbiAgICBjb25zdCB7IHNlcnZpY2UgfSA9IHRyYW5zbGF0ZU9wdGlvbnM7XG4gICAgc2VydmljZS5fX29uaTE4bkRhdGFDaGFuZ2VkJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX191bnN1YnNjcmliZUFsbCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHNlcnZpY2UuX19pMThuO1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIHRoaXMuX19pMThuID0gZGF0YTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEVycm9yRmlyc3RNZXNzYWdlVHJhbnNsYXRlZChmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGwpIHtcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpKSByZXR1cm4gJ0ZJRUxELVJFUVVJUkVEJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdpbnZhbGlkJykpIHJldHVybiAnRklFTEQtSU5WQUxJRCc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignZW1haWwnKSkgcmV0dXJuICdJTlZBTElELUVNQUlMJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkgcmV0dXJuICdNSU4tTEVOR1RIJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkgcmV0dXJuICdNQVgtTEVOR1RIJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtYXgnKSkgcmV0dXJuICdNQVgnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21pbicpKSByZXR1cm4gJ01JTic7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcigncGFzc3dvcmRzTm90TWF0Y2hpbmcnKSkgcmV0dXJuICdNQVRDSC1QQVNTV09SRCc7XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignaW52YWxpZERhdGUnKSkgcmV0dXJuICdJTlZBTElELURBVEUnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWRUcnVlJykpIHJldHVybiAnSU5WQUxJRC1UUlVFJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdpbnZhbGlkQ3BmQ25waicpKSByZXR1cm4gJ0lOVkFMSUQtRE9DVU1FTlQnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWRaaXBDb2RlJykpIHJldHVybiAnSU5WQUxJRC1aSVBDT0RFJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdpbnZhbGlkQ29tYm8nKSkgcmV0dXJuICdJTlZBTElELUNPTUJPJztcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdpbnZhbGlkVXJsJykpIHJldHVybiAnSU5WQUxJRC1VUkwnO1xuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2ludmFsaWRVbmxvY2tSZWdpc3RlcicpKSB7IHJldHVybiAnSU5WQUxJRC1VTkxPQ0stUkVHSVNURVInOyB9XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignZGF0ZVN0YXJ0TXVzdEJlTGVzc1RoYW5BbmQnKSkge1xuICAgICAgcmV0dXJuICdEQVRFLVNUQVJULU1VU1QtQkUtTEVTUy1USEFOLUFORCc7XG4gICAgfVxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2RhdGVFbmRNdXN0QmVHcmVhdGVyVGhhblN0YXJ0JykpIHtcbiAgICAgIHJldHVybiAnREFURS1FTkQtTVVTVC1CRS1HUkVBVEVSLVRIQU4tU0FSVCc7XG4gICAgfVxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ3Bob25lJykpIHJldHVybiAnSU5WQUxJRC1QSE9ORSc7XG5cbiAgICByZXR1cm4gJ0ZJRUxELUlOVkFMSUQnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFcnJvckxhc3RNZXNzYWdlTm90VHJhbnNsYXRlZChmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IG51bGwpIHtcbiAgICBpZiAoZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgcmV0dXJuIGAke2Zvcm1Db250cm9sPy5nZXRFcnJvcignbWlubGVuZ3RoJykucmVxdWlyZWRMZW5ndGh9IGNhcmFjdGVyZXMuYDtcbiAgICB9XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHtcbiAgICAgIHJldHVybiBgJHtmb3JtQ29udHJvbD8uZ2V0RXJyb3IoJ21heGxlbmd0aCcpLnJlcXVpcmVkTGVuZ3RofSBjYXJhY3RlcmVzLmA7XG4gICAgfVxuICAgIGlmIChmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21heCcpKSB7IHJldHVybiBgJHtmb3JtQ29udHJvbD8uZ2V0RXJyb3IoJ21heCcpLm1heH1gOyB9XG4gICAgaWYgKGZvcm1Db250cm9sPy5oYXNFcnJvcignbWluJykpIHsgcmV0dXJuIGAke2Zvcm1Db250cm9sPy5nZXRFcnJvcignbWluJykubWlufWA7IH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZUZvcm1XaXRoVHJhbnNsYXRlKGY6IEZvcm1Hcm91cCwgaW5kZXg/OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtRXJyb3JzOiBhbnkgPSBmLnZhbHVlO1xuXG4gICAgaWYgKGYuc3RhdHVzID09PSAnVkFMSUQnKSByZXR1cm4gdHJ1ZTtcblxuICAgIGlmICghZm9ybUVycm9ycykgcmV0dXJuIHRydWU7XG4gICAgT2JqZWN0LmVudHJpZXMoZm9ybUVycm9ycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZi5nZXQoa2V5KTtcbiAgICAgIGZvcm1FcnJvcnNba2V5XSA9ICcnO1xuICAgICAgaWYgKGNvbnRyb2wgJiYgIWNvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgY29uc3QgbXNnID0ge1xuICAgICAgICAgIGZpcnN0OiBgRVJST1JTLiR7dGhpcy5nZXRFcnJvckZpcnN0TWVzc2FnZVRyYW5zbGF0ZWQoZi5nZXQoa2V5KSl9YCxcbiAgICAgICAgICBsYXN0OiB0aGlzLmdldEVycm9yTGFzdE1lc3NhZ2VOb3RUcmFuc2xhdGVkKGYuZ2V0KGtleSkpXG4gICAgICAgIH07XG4gICAgICAgIGZvcm1FcnJvcnNba2V5XSA9IG1zZztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChNb25rZXlVdGlscy5wZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKGluZGV4KSkgeyB0aGlzLl9fbW9ua2V5ZWN4Rm9ybUVycm9yc1tpbmRleCB8fCAwXSA9IGZvcm1FcnJvcnM7IH0gZWxzZSB7XG4gICAgICB0aGlzLl9fbW9ua2V5ZWN4Rm9ybUVycm9ycyA9IGZvcm1FcnJvcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGNvcHlUb0NsaXBib2FyZCh2YWw6IHN0cmluZykge1xuICAgIGNvbnN0IHNlbEJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgc2VsQm94LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICBzZWxCb3guc3R5bGUubGVmdCA9ICcwJztcbiAgICBzZWxCb3guc3R5bGUudG9wID0gJzAnO1xuICAgIHNlbEJveC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgIHNlbEJveC52YWx1ZSA9IHZhbDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNlbEJveCk7XG4gICAgc2VsQm94LmZvY3VzKCk7XG4gICAgc2VsQm94LnNlbGVjdCgpO1xuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzZWxCb3gpO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlRm9ybShmOiBGb3JtR3JvdXAsIGluZGV4PzogbnVtYmVyLCBhbGlhcz86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZvcm1FcnJvcnM6IGFueSA9IGYudmFsdWU7XG4gICAgaWYgKGYuc3RhdHVzID09PSAnVkFMSUQnKSByZXR1cm4gdHJ1ZTtcblxuICAgIGlmICghZm9ybUVycm9ycykgcmV0dXJuIHRydWU7XG4gICAgT2JqZWN0LmVudHJpZXMoZm9ybUVycm9ycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZi5nZXQoa2V5KTtcbiAgICAgIGZvcm1FcnJvcnNba2V5XSA9ICcnO1xuICAgICAgaWYgKGNvbnRyb2wgJiYgIWNvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgY29uc3QgbXNnID0ge1xuICAgICAgICAgIGZpcnN0TWVzc2FnZTogYEVSUk9SUy4ke3RoaXMuZ2V0RXJyb3JGaXJzdE1lc3NhZ2VUcmFuc2xhdGVkKFxuICAgICAgICAgICAgZi5nZXQoa2V5KVxuICAgICAgICAgICl9YCxcbiAgICAgICAgICBsYXN0TWVzc2FnZTogdGhpcy5nZXRFcnJvckxhc3RNZXNzYWdlTm90VHJhbnNsYXRlZChmLmdldChrZXkpKVxuICAgICAgICB9O1xuICAgICAgICBmb3JtRXJyb3JzW2tleV0gPSBtc2c7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoTW9ua2V5VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZChpbmRleCkpIHtcbiAgICAgIHRoaXMuX19tb25rZXllY3hGb3JtRXJyb3JzW2luZGV4IHx8IDBdID0gZm9ybUVycm9ycztcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IG9iajogYW55O1xuXG4gICAgICBpZiAoYWxpYXMpIHtcbiAgICAgICAgb2JqID0ge1xuICAgICAgICAgIFthbGlhc106IHtcbiAgICAgICAgICAgIC4uLmZvcm1FcnJvcnNcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYmogPSBmb3JtRXJyb3JzO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9fbW9ua2V5ZWN4Rm9ybUVycm9ycyA9IHtcbiAgICAgICAgLi4udGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMsXG4gICAgICAgIC4uLm9ialxuICAgICAgfTtcbiAgICB9XG4gICAgZi5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsU2VydmljZURhdGEoY2xlYXJEYXRhOiBib29sZWFuKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7XG4gICAgT2JqZWN0LnZhbHVlcyhjb250ZXh0KS5mb3JFYWNoKChjdHg6IGFueSkgPT4ge1xuICAgICAgaWYgKGN0eCBpbnN0YW5jZW9mIE1vbmtleUVjeENvbW1vbnNTZXJ2aWNlKSB7XG4gICAgICAgIGN0eC5jbGVhcihjbGVhckRhdGEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KGFyZ3M6IHtcbiAgICBwYWdpbmF0aW9uT3B0aW9ucz86IE1vbmtleUVjeFBhZ2luYXRpb25PcHRpb25zO1xuICAgIHN1cHBvcnRDb250cm9scz86IE1vbmtleUVjeFN1cHBvcnRPcHRpb25zO1xuICAgIHRyYW5zbGF0ZU9wdGlvbnM/OiBNb25rZXlFY3hUcmFuc2xhdGVPcHRpb25zO1xuICB9KSB7XG4gICAgaWYgKGFyZ3M/LnBhZ2luYXRpb25PcHRpb25zKSB7XG4gICAgICB0aGlzLl9fcGFnaW5hdGlvbk9wdGlvbnMgPSBhcmdzPy5wYWdpbmF0aW9uT3B0aW9ucztcbiAgICAgIHRoaXMuaGFuZGxlUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgICBpZiAoYXJncz8uc3VwcG9ydENvbnRyb2xzKSB7XG4gICAgICB0aGlzLmhhbmRsZVN1cHBvcnQoYXJncz8uc3VwcG9ydENvbnRyb2xzKTtcbiAgICB9XG4gICAgaWYgKGFyZ3M/LnRyYW5zbGF0ZU9wdGlvbnMpIHtcbiAgICAgIHRoaXMuaGFuZGxlVHJhbnNsYXRlKGFyZ3M/LnRyYW5zbGF0ZU9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveShjbGVhckRhdGE6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgdGhpcy5fX3Vuc3Vic2NyaWJlQWxsLm5leHQoKTtcbiAgICB0aGlzLl9fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcbiAgICB0aGlzLmNsZWFyQWxsU2VydmljZURhdGEoY2xlYXJEYXRhKTtcbiAgICB0aGlzLmhhbmRsZVBhZ2luYXRpb24oZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUVycm9yRnJvbVNlcnZpY2VzKGVycm9yOiBNb25rZXlFY3hFcnJvclJlc3BvbnNlLCBmOiBGb3JtR3JvdXApIHtcbiAgICB0aGlzLl9fbW9ua2V5ZWN4Rm9ybUVycm9ycyA9IG51bGw7XG4gICAgaWYgKGVycm9yLnR5cGUgPT09ICdQYXJhbWV0ZXJfRXJyb3InKSB7XG4gICAgICBPYmplY3QuZW50cmllcyhmLnZhbHVlKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgZXJyb3Iubm90aWZpY2F0aW9ucy5mb3JFYWNoKChfOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IF8uc3BsaXQoJzonKVswXTtcbiAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IF8uc3BsaXQoJzonKVsxXTtcbiAgICAgICAgICBpZiAoZmllbGQgPT09IGtleSkge1xuICAgICAgICAgICAgY29uc3QgbXNnID0ge1xuICAgICAgICAgICAgICBmaXJzdE1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgICBsYXN0TWVzc2FnZTogZGVzY3JpcHRpb25cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLl9fbW9ua2V5ZWN4Rm9ybUVycm9ycyA9IHtcbiAgICAgICAgICAgICAgLi4udGhpcy5fX21vbmtleWVjeEZvcm1FcnJvcnMsXG4gICAgICAgICAgICAgIFtrZXldOiBtc2dcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmLmNvbnRyb2xzW2tleV0uc2V0RXJyb3JzKHtcbiAgICAgICAgICAgICAgaW5jb3JyZWN0OiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZi5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gIH1cblxuICBwdWJsaWMgZ29CYWNrKCkge1xuICAgIHdpbmRvdy5oaXN0b3J5LmJhY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1Njcm9sbChpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICBpZiAoZWxlbWVudCkgZWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICB9XG5cbiAgcHVibGljIGdldEVtYmVkZGVkRGF0YShkYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBhbnlbXSB8IGFueSB7XG4gICAgY29uc3QgeyBfZW1iZWRkZWQgfSA9IGRhdGE7XG4gICAgcmV0dXJuIF9lbWJlZGRlZCA/IF9lbWJlZGRlZFtmaWVsZF0gOiBudWxsO1xuICB9XG5cbiAgcHVibGljIG9wZW5XaW5kb3codXJsOiBzdHJpbmcpIHtcbiAgICB3aW5kb3cub3BlbihgJHt1cmx9YCwgJ19ibGFuaycpO1xuICB9XG5cbiAgcHVibGljIGZpbGxJMThuKGRhdGE6IGFueSkge1xuICAgIHRoaXMuX19pMThuID0gZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb3VudHJ5UHJlZml4KGNvdW50cnk6IHN0cmluZykge1xuICAgIHJldHVybiB7XG4gICAgICBicjogNTUsXG4gICAgICBjbDogNTZcbiAgICB9W2NvdW50cnldO1xuICB9XG5cbiAgcHVibGljIGdldENvdW50cnlDdXJyZW5jeUNoYXJ0Rm9ybWF0KGNvdW50cnk6IHN0cmluZykge1xuICAgIHJldHVybiB7XG4gICAgICBicjogJ1IkICMsIyMjLCMjMC4wMCcsXG4gICAgICBjbDogJ0NMUCAjLCMjIywjIzAnXG4gICAgfVtjb3VudHJ5XTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb3VudHJ5VmFsaWRhdG9ycyhjb3VudHJ5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnI6IHtcbiAgICAgICAgZ292ZXJubWVudElkOiBWYWxpZGF0ZVV0aWxzLkRvY3VtZW50VmFsaWRhdG9yXG4gICAgICB9LFxuICAgICAgY2w6IHtcbiAgICAgICAgZ292ZXJubWVudElkOiBWYWxpZGF0ZVV0aWxzLkRvY3VtZW50UnV0VmFsaWRhdG9yXG4gICAgICB9XG4gICAgfVtjb3VudHJ5XTtcbiAgfVxufVxuIl19
|
|
@@ -30,52 +30,22 @@ class BaseComponent {
|
|
|
30
30
|
}
|
|
31
31
|
handlePagination(create = true) {
|
|
32
32
|
const { __paginationOptions } = this;
|
|
33
|
-
console.log('x');
|
|
34
|
-
console.log(__paginationOptions);
|
|
35
33
|
if (__paginationOptions) {
|
|
36
34
|
const { mainElement, service } = __paginationOptions;
|
|
37
|
-
console.log('__paginationOptions');
|
|
38
|
-
console.log(__paginationOptions);
|
|
39
35
|
const element = document.getElementById(mainElement);
|
|
40
|
-
console.log('element');
|
|
41
|
-
console.log(element);
|
|
42
36
|
if (element) {
|
|
43
37
|
element.scroll = null;
|
|
44
38
|
element.onscroll = null;
|
|
45
39
|
if (create) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
element.addEventListener('scroll', () => {
|
|
56
|
-
console.log('no on scroll');
|
|
57
|
-
const { scrollTop, scrollHeight, offsetHeight } = element;
|
|
58
|
-
const contentHeight = scrollHeight - offsetHeight;
|
|
59
|
-
console.log(contentHeight);
|
|
60
|
-
console.log(scrollTop);
|
|
61
|
-
if (contentHeight <= scrollTop) {
|
|
62
|
-
service.doPagination();
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
// element.onscroll = () => {
|
|
66
|
-
// console.log('no on scroll');
|
|
67
|
-
// const { scrollTop, scrollHeight, offsetHeight } = element;
|
|
68
|
-
// const contentHeight = scrollHeight - offsetHeight;
|
|
69
|
-
// console.log(contentHeight);
|
|
70
|
-
// console.log(scrollTop);
|
|
71
|
-
// if (contentHeight <= scrollTop) {
|
|
72
|
-
// service.doPagination();
|
|
73
|
-
// }
|
|
74
|
-
// };
|
|
75
|
-
}
|
|
76
|
-
catch (e) {
|
|
77
|
-
console.log(e);
|
|
78
|
-
}
|
|
40
|
+
element.removeEventListener('scroll', element.eventListeners('scroll'));
|
|
41
|
+
element.removeEventListener('scroll', element.eventListeners('scroll')[0]);
|
|
42
|
+
element.addEventListener('scroll', () => {
|
|
43
|
+
const { scrollTop, scrollHeight, offsetHeight } = element;
|
|
44
|
+
const contentHeight = scrollHeight - offsetHeight;
|
|
45
|
+
if (contentHeight <= scrollTop) {
|
|
46
|
+
service.doPagination();
|
|
47
|
+
}
|
|
48
|
+
});
|
|
79
49
|
}
|
|
80
50
|
}
|
|
81
51
|
}
|