ps-toolkit-ui 1.6.86 → 1.6.89
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/bundles/ps-toolkit-ui.umd.js +7 -7
- package/bundles/ps-toolkit-ui.umd.js.map +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js.map +1 -1
- package/esm2015/lib/classes/string.class.js +4 -1
- package/esm2015/lib/components/form/finger/form.finger.component.js +5 -3
- package/esm2015/lib/components/form/plaque/select/form.plaque.select.component.js +1 -3
- package/esm2015/lib/components/form/select/form.select.component.js +1 -4
- package/fesm2015/ps-toolkit-ui.js +7 -7
- package/fesm2015/ps-toolkit-ui.js.map +1 -1
- package/lib/classes/string.class.d.ts +3 -0
- package/package.json +1 -1
- package/ps-toolkit-ui.metadata.json +1 -1
|
@@ -353,9 +353,6 @@ export class FormSelectComponent {
|
|
|
353
353
|
if (f.selected) {
|
|
354
354
|
l.push(f.value);
|
|
355
355
|
}
|
|
356
|
-
if (f.selected && f.options.length !== 0) {
|
|
357
|
-
continue;
|
|
358
|
-
}
|
|
359
356
|
const rs = this.getSelected(f.options);
|
|
360
357
|
l = l.concat(rs);
|
|
361
358
|
}
|
|
@@ -381,4 +378,4 @@ FormSelectComponent.propDecorators = {
|
|
|
381
378
|
inputOptionsDiv: [{ type: ViewChild, args: ['inputOptionsDiv',] }],
|
|
382
379
|
inputLabel: [{ type: ViewChild, args: ['inputLabel',] }]
|
|
383
380
|
};
|
|
384
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L2Zvcm0uc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU8xRCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBT0UsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3pDLFlBQU8sR0FBRyxFQUFFLENBQUM7SUE2VmYsQ0FBQztJQTVWQyxJQUFJLElBQUksS0FBdUIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBS2xELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxrQkFBa0IsRUFBQztZQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDO2dCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1B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cG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge0lucHV0Q2xhc3MsIE9wdGlvbkNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0RXJyb3IsIElucHV0VHlwZX0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLnNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5zZWxlY3QuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQElucHV0KClcclxuICBpbkZvcm06IGJvb2xlYW47XHJcbiAgY1NlYXJjaCA9ICcnO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRPcHRpb25zRGl2JykgaW5wdXRPcHRpb25zRGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0TGFiZWwnKSBpbnB1dExhYmVsOiBFbGVtZW50UmVmO1xyXG4gIG5nT25Jbml0KCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5pbnAudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgIHRoaXMuaW5wLmxvYWQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLnNldFZhbHVlID0gKHYsIGlzRWRpdCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaW5wLm11bHRpcGxlKXtcclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih2ID09IG51bGwgPyBudWxsIDogdi50b1N0cmluZygpLCBpc0VkaXQpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBmb3IgKGNvbnN0IHQgb2Ygdil7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih0LnRvU3RyaW5nKCksIGlzRWRpdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuaW5wLmRlZmF1bHQgIT0gbnVsbCl7XHJcbiAgICAgIHRoaXMuaW5wLnNldFZhbHVlKHRoaXMuaW5wLmRlZmF1bHQsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLnNldFNlYXJjaCA9IChzKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9IHM7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub3Blbk9wdGlvbnMoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiAoKCF0aGlzLmlucC5tdWx0aXBsZSAmJiAoKHRoaXMuaW5wLmFkZE5ldyAmJiAhdGhpcy5pbnAuc2VhcmNoKSB8fCAoIXRoaXMuaW5wLmFkZE5ldyAmJiAhdGhpcy5pbnAudmFsdWUpKSkgfHxcclxuICAgICAgICAodGhpcy5pbnAubXVsdGlwbGUgJiYgdGhpcy5nZXRTZWxlY3RlZCgpLmxlbmd0aCA9PT0gMCkpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5jbGVhciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAoIXRoaXMuaW5wLm11bHRpcGxlKXtcclxuICAgICAgICB0aGlzLmlucC5zZXRWYWx1ZSh0aGlzLmlucC5kZWZhdWx0LCB0cnVlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucy5mb3JFYWNoKHggPT4gdGhpcy51bkNoZWNrKHgpKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVsICE9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaW5wLnJlbC5vcHRpb25zID0gW107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpe1xyXG4gICAgICAgIHRoaXMuaW5wLm9wdGlvbnMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiAhdGhpcy5pbnAubXVsdGlwbGUgPyAodGhpcy5pbnAuYWRkTmV3ID8gdGhpcy5pbnAuc2VhcmNoIDogdGhpcy5pbnAudmFsdWUpIDogdGhpcy5nZXRTZWxlY3RlZCgpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzT3V0ID0gKCkgPT4ge1xyXG4gICAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmJsdXIoKTtcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5pbnAuaGFzQmFyY29kZVJlYWRlcil7XHJcbiAgICAgIEhlbHBlckNsYXNzLnNldEJhcmNvZGVSZWFkZXIodGhpcy5pbnApO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2FkT3B0aW9ucygpOiB2b2lke1xyXG4gICAgY29uc3QgdiA9IHRoaXMuaW5wLnNlYXJjaC5yZXBsYWNlKC9eXyt8XyskL2csICcnKTtcclxuICAgIGlmICh2KXtcclxuICAgICAgdGhpcy5pbnAubG9hZCh0aGlzLmlucC51cmwucmVwbGFjZSgne30nLCB2KSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuICBvcGVuT3B0aW9ucygpOiB2b2lke1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5zZXRIb3ZlckNlbnRlcigpO1xyXG4gICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG4gIH1cclxuICBvbkZvY3VzT3V0KCk6IHZvaWR7XHJcbiAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gIH1cclxuICBjbG9zZU9wdGlvbnMoKTogYm9vbGVhbntcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAkKHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3RvcCcpO1xyXG4gICAgICB0aGlzLmlucC5ob3ZlciA9IC0xO1xyXG4gICAgICBpZiAodGhpcy5pbnAudmFsdWUgPT09IG51bGwpe1xyXG4gICAgICAgIGlmICghdGhpcy5pbnAuYWRkTmV3KXtcclxuICAgICAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnNldE9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIDEpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIHNldFBvc2l0aW9uKCk6IHZvaWR7XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0T2ZCb3R0b20gPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LmJvdHRvbTtcclxuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgaWYgKG9mZnNldE9mQm90dG9tIDwgaGVpZ2h0KXtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLmFkZENsYXNzKCd0b3AnKTtcclxuICAgIH1lbHNle1xyXG4gICAgICAkKHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3RvcCcpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRPcHRpb25zKHIgPSB0aGlzLmlucC5vcHRpb25zKTogdm9pZHtcclxuICAgIHIubWFwKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0T3B0aW9ucyh4Lm9wdGlvbnMpO1xyXG4gICAgICB4LnNob3cgPSAodGhpcy5pbnAudmFsdWUgIT09IG51bGwgfHwgdGhpcy5pbnAuc2VhcmNoID09PSAnJyB8fCB4Lm5hbWUuaW5jbHVkZXModGhpcy5pbnAuc2VhcmNoKSB8fFxyXG4gICAgICAgICAgeC52YWx1ZS5pbmNsdWRlcyh0aGlzLmlucC5zZWFyY2gpIHx8IHgub3B0aW9ucy5maWx0ZXIobyA9PiBvLnNob3cpLmxlbmd0aCA+IDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZHtcclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5KSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jSShlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDEzKXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAoJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5pcygnOmZvY3VzJykpe1xyXG4gICAgICAgIGNvbnN0IGggPSB0aGlzLmdldFNlbGVjdGVkSG92ZXIoKTtcclxuICAgICAgICBpZiAoIWgpe1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbihoLnZhbHVlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5jSSgnVGFiJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDQwKXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnAuaG92ZXIgKyAxID49IHRoaXMuaW5wLmluZGV4KXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnAuaG92ZXIgPSB0aGlzLmdldEhvdmVyKCk7XHJcbiAgICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDM4KXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnAuaG92ZXIgPD0gMCl7XHJcbiAgICAgICAgdGhpcy5pbnAuaG92ZXIgPSAwO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucC5ob3ZlciA9IHRoaXMuZ2V0SG92ZXIoLTEpO1xyXG4gICAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRvZ2dsZU9wdGlvbihlKTogdm9pZHtcclxuICAgIGlmICh0aGlzLmlucC5tdWx0aXBsZSAmJiAkKGUudGFyZ2V0KS5jbG9zZXN0KCcub3B0aW9uJykuaGFzQ2xhc3MoJ29wdGlvbicpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vcGVuT3B0aW9ucygpO1xyXG4gIH1cclxuICBvbktleVVwKGUpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuY1NlYXJjaCAhPT0gZS50YXJnZXQudmFsdWUpIHtcclxuICAgICAgdGhpcy5jU2VhcmNoID0gZS50YXJnZXQudmFsdWU7XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0KXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2gpe1xyXG4gICAgICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgICB9ZWxzZSBpZiAoZS50YXJnZXQudmFsdWUpe1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE9wdGlvbih2LCBpc0VkaXQgPSBmYWxzZSk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICBjb25zdCB2YSA9IHRoaXMuZ2V0VmFsdWUodik7XHJcbiAgICBpZiAodGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICB0aGlzLnRvZ2dsZSh2YSk7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgICAgdGhpcy5pbnAuaG92ZXIgPSB2YSA/IHZhLmluZGV4IDogLTE7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9IHZhID8gKCgodGhpcy5pbnAudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdFNlYXJjaCAmJiB0aGlzLmlucC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0KSB8fCB2YS5zZWFyY2gpID8gdmEuc2VhcmNoIDogdmEubmFtZSkgOiAnJztcclxuICAgIH1cclxuICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgdGhpcy5jU2VhcmNoID0gdGhpcy5pbnAuc2VhcmNoO1xyXG4gICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5pbnAsIGlzRWRpdCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pbnAucmVsKXtcclxuICAgICAgdGhpcy5pbnAucmVsLnZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAucmVsLmhvdmVyID0gLTE7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5pbmRleCA9IDA7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5zZWFyY2ggPSAnJztcclxuICAgICAgdGhpcy5pbnAucmVsLm9wdGlvbnMgPSBbXTtcclxuICAgICAgaWYgKHYgIT09IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaW5wLnJlbC51cmwgPSB0aGlzLmlucC5yZWxVcmwucmVwbGFjZSgne30nLCB0aGlzLmlucC52YWx1ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnJlbC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgICAgICB0aGlzLmlucC5yZWwubG9hZCgpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5pbnAucmVsLnVybCArPSAnX3t9JztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghaXNFZGl0ICYmICF0aGlzLmlucC5tdWx0aXBsZSl7XHJcbiAgICAgIHRoaXMuY0koJ1RhYicpO1xyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGUob3A6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBpZiAob3Auc2VsZWN0ZWQpe1xyXG4gICAgICB0aGlzLnVuQ2hlY2sob3ApO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLnVuQ2hlY2tQYXJlbnQob3AucGFyZW50KTsgfSwgMTAwKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNoZWNrKG9wKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy5jaGVja1BhcmVudChvcC5wYXJlbnQpOyB9LCAxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGVjayhjOiBPcHRpb25DbGFzcyk6IHZvaWQge1xyXG4gICAgYy5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICB0aGlzLmNoZWNrQ2hpbGRyZW4oYyk7XHJcbiAgfVxyXG4gIHVuQ2hlY2soYzogT3B0aW9uQ2xhc3MpOiB2b2lkIHtcclxuICAgIGMuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIGMub3B0aW9ucy5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICB0aGlzLnVuQ2hlY2soY2gpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoZWNrQ2hpbGRyZW4obzogT3B0aW9uQ2xhc3MpOiB2b2lke1xyXG4gICAgby5vcHRpb25zLmZvckVhY2goKGNoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2soY2gpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoZWNrUGFyZW50KHA6IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAub3B0aW9ucy5maWx0ZXIoeCA9PiAheC5zZWxlY3RlZCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tQYXJlbnQocC5wYXJlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bkNoZWNrUGFyZW50KHA6IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAub3B0aW9ucy5maWx0ZXIoeCA9PiB4LnNlbGVjdGVkIHx8IHguc2VsZWN0ZWQgPT0gbnVsbCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVuQ2hlY2tQYXJlbnQocC5wYXJlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjSShpOiBzdHJpbmcpOiB2b2lke1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdChpKTtcclxuICAgICAgaWYgKCF0aGlzLmluRm9ybSl7XHJcbiAgICAgICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5ibHVyKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gICAgfSwgMjApO1xyXG4gIH1cclxuICBzZXRIb3ZlckNlbnRlcigpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBob3ZlcjogYW55ID0gJCh0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50KS5maW5kKCcub3B0aW9uLmhvdmVyJyk7XHJcbiAgICAgIGNvbnN0IGl0ZW1zOiBhbnkgPSAkKHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQpLmZpbmQoJy5pdGVtcycpO1xyXG4gICAgICBpZiAoaG92ZXIubGVuZ3RoID09PSAwKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaXRlbXMuc2Nyb2xsVG9wID0gaXRlbXMuc2Nyb2xsVG9wIC0gaXRlbXMub2Zmc2V0LnRvcCArIGhvdmVyLm9mZnNldC50b3AgLSBob3Zlci5oZWlnaHQoKTtcclxuICAgIH0sIDEpO1xyXG4gIH1cclxuICB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuaW5wLnZhbHVlID09IG51bGwpe1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldFRpdGxlKHRoaXMuaW5wKTtcclxuICB9XHJcbiAgZ2V0VGl0bGUob3MpOiBzdHJpbmd7XHJcbiAgICBmb3IgKGNvbnN0IHMgb2Ygb3Mub3B0aW9ucyl7XHJcbiAgICAgIGlmIChzLnZhbHVlID09PSB0aGlzLmlucC52YWx1ZS50b1N0cmluZygpKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnAubChzLm5hbWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHYgPSB0aGlzLmdldFRpdGxlKHMpO1xyXG4gICAgICBpZiAodiAhPSBudWxsKXtcclxuICAgICAgICByZXR1cm4gdjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkSG92ZXIobzogT3B0aW9uQ2xhc3NbXSA9IHRoaXMuaW5wLm9wdGlvbnMpOiBhbnl7XHJcbiAgICBjb25zdCBoID0gby5maW5kKHggPT4geC5pbmRleCA9PT0gdGhpcy5pbnAuaG92ZXIpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFNlbGVjdGVkSG92ZXIoaS5vcHRpb25zKTtcclxuICAgICAgaWYgKGhpKXtcclxuICAgICAgICByZXR1cm4gaGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0SG92ZXIoaSA9IDEsIG86IE9wdGlvbkNsYXNzW10gPSB0aGlzLmlucC5vcHRpb25zLCBoID0gdGhpcy5pbnAuaG92ZXIpOiBudW1iZXJ7XHJcbiAgICBjb25zdCBobyA9IG8uZmluZCh4ID0+IHguaW5kZXggPT09IGggKyBpKTtcclxuICAgIGlmIChobyl7XHJcbiAgICAgIGlmIChoby5zaG93KXtcclxuICAgICAgICByZXR1cm4gaG8uaW5kZXg7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICBoID0gaCArIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaXQgb2Ygbyl7XHJcbiAgICAgIGNvbnN0IGhpID0gdGhpcy5nZXRIb3ZlcihpLCBpdC5vcHRpb25zLCBoKTtcclxuICAgICAgaWYgKGhpKXtcclxuICAgICAgICByZXR1cm4gaGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICBnZXRWYWx1ZSh2LCBvOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucyk6IE9wdGlvbkNsYXNze1xyXG4gICAgY29uc3QgaCA9IG8uZmluZCh4ID0+IHgudmFsdWUgPT09IHYpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFZhbHVlKHYsIGkub3B0aW9ucyk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZChvcHRzOiBPcHRpb25DbGFzc1tdPSB0aGlzLmlucC5vcHRpb25zKTogYW55W117XHJcbiAgICBsZXQgbCA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBmIG9mIG9wdHMpe1xyXG4gICAgICBpZiAoZi5zZWxlY3RlZCl7XHJcbiAgICAgICAgbC5wdXNoKGYudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChmLnNlbGVjdGVkICYmIGYub3B0aW9ucy5sZW5ndGggIT09IDApe1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJzID0gdGhpcy5nZXRTZWxlY3RlZChmLm9wdGlvbnMpO1xyXG4gICAgICBsID0gbC5jb25jYXQocnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGw7XHJcbiAgfVxyXG4gIG9uQ2xpY2tCdXR0b24oKTogdm9pZHtcclxuICAgIHRoaXMuaW5wLm9uQ2xpY2tCdXR0b24odGhpcy5pbnApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
381
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L2Zvcm0uc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU8xRCxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBT0UsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3pDLFlBQU8sR0FBRyxFQUFFLENBQUM7SUEwVmYsQ0FBQztJQXpWQyxJQUFJLElBQUksS0FBdUIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBS2xELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxrQkFBa0IsRUFBQztZQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDO2dCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1B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QUFNLENBQUMsSUFBSSxDQUFDLEVBQUM7WUFDaEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxFQUFDO2dCQUNMLE9BQU8sRUFBRSxDQUFDO2FBQ1g7U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBcUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPO1FBQy9DLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFDO1lBQ25CLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBQztnQkFDYixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNqQjtZQUNELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsYUFBYTtRQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs7WUFyV0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHd3REFBMkM7O2FBRTVDOzs7MEJBRUUsTUFBTTtrQkFFTixLQUFLO3FCQUVMLEtBQUs7dUJBSUwsU0FBUyxTQUFDLFVBQVU7d0JBQ3BCLFNBQVMsU0FBQyxXQUFXOzhCQUNyQixTQUFTLFNBQUMsaUJBQWlCO3lCQUMzQixTQUFTLFNBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge0lucHV0Q2xhc3MsIE9wdGlvbkNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0RXJyb3IsIElucHV0VHlwZX0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLnNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5zZWxlY3QuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQElucHV0KClcclxuICBpbkZvcm06IGJvb2xlYW47XHJcbiAgY1NlYXJjaCA9ICcnO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRPcHRpb25zRGl2JykgaW5wdXRPcHRpb25zRGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0TGFiZWwnKSBpbnB1dExhYmVsOiBFbGVtZW50UmVmO1xyXG4gIG5nT25Jbml0KCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5pbnAudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgIHRoaXMuaW5wLmxvYWQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLnNldFZhbHVlID0gKHYsIGlzRWRpdCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaW5wLm11bHRpcGxlKXtcclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih2ID09IG51bGwgPyBudWxsIDogdi50b1N0cmluZygpLCBpc0VkaXQpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBmb3IgKGNvbnN0IHQgb2Ygdil7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih0LnRvU3RyaW5nKCksIGlzRWRpdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuaW5wLmRlZmF1bHQgIT0gbnVsbCl7XHJcbiAgICAgIHRoaXMuaW5wLnNldFZhbHVlKHRoaXMuaW5wLmRlZmF1bHQsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLnNldFNlYXJjaCA9IChzKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9IHM7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub3Blbk9wdGlvbnMoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiAoKCF0aGlzLmlucC5tdWx0aXBsZSAmJiAoKHRoaXMuaW5wLmFkZE5ldyAmJiAhdGhpcy5pbnAuc2VhcmNoKSB8fCAoIXRoaXMuaW5wLmFkZE5ldyAmJiAhdGhpcy5pbnAudmFsdWUpKSkgfHxcclxuICAgICAgICAodGhpcy5pbnAubXVsdGlwbGUgJiYgdGhpcy5nZXRTZWxlY3RlZCgpLmxlbmd0aCA9PT0gMCkpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5jbGVhciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAoIXRoaXMuaW5wLm11bHRpcGxlKXtcclxuICAgICAgICB0aGlzLmlucC5zZXRWYWx1ZSh0aGlzLmlucC5kZWZhdWx0LCB0cnVlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucy5mb3JFYWNoKHggPT4gdGhpcy51bkNoZWNrKHgpKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVsICE9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaW5wLnJlbC5vcHRpb25zID0gW107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpe1xyXG4gICAgICAgIHRoaXMuaW5wLm9wdGlvbnMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiAhdGhpcy5pbnAubXVsdGlwbGUgPyAodGhpcy5pbnAuYWRkTmV3ID8gdGhpcy5pbnAuc2VhcmNoIDogdGhpcy5pbnAudmFsdWUpIDogdGhpcy5nZXRTZWxlY3RlZCgpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzT3V0ID0gKCkgPT4ge1xyXG4gICAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmJsdXIoKTtcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5pbnAuaGFzQmFyY29kZVJlYWRlcil7XHJcbiAgICAgIEhlbHBlckNsYXNzLnNldEJhcmNvZGVSZWFkZXIodGhpcy5pbnApO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2FkT3B0aW9ucygpOiB2b2lke1xyXG4gICAgY29uc3QgdiA9IHRoaXMuaW5wLnNlYXJjaC5yZXBsYWNlKC9eXyt8XyskL2csICcnKTtcclxuICAgIGlmICh2KXtcclxuICAgICAgdGhpcy5pbnAubG9hZCh0aGlzLmlucC51cmwucmVwbGFjZSgne30nLCB2KSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuICBvcGVuT3B0aW9ucygpOiB2b2lke1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5zZXRIb3ZlckNlbnRlcigpO1xyXG4gICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG4gIH1cclxuICBvbkZvY3VzT3V0KCk6IHZvaWR7XHJcbiAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gIH1cclxuICBjbG9zZU9wdGlvbnMoKTogYm9vbGVhbntcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAkKHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3RvcCcpO1xyXG4gICAgICB0aGlzLmlucC5ob3ZlciA9IC0xO1xyXG4gICAgICBpZiAodGhpcy5pbnAudmFsdWUgPT09IG51bGwpe1xyXG4gICAgICAgIGlmICghdGhpcy5pbnAuYWRkTmV3KXtcclxuICAgICAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnNldE9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIDEpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIHNldFBvc2l0aW9uKCk6IHZvaWR7XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0T2ZCb3R0b20gPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LmJvdHRvbTtcclxuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgaWYgKG9mZnNldE9mQm90dG9tIDwgaGVpZ2h0KXtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLmFkZENsYXNzKCd0b3AnKTtcclxuICAgIH1lbHNle1xyXG4gICAgICAkKHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3RvcCcpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRPcHRpb25zKHIgPSB0aGlzLmlucC5vcHRpb25zKTogdm9pZHtcclxuICAgIHIubWFwKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0T3B0aW9ucyh4Lm9wdGlvbnMpO1xyXG4gICAgICB4LnNob3cgPSAodGhpcy5pbnAudmFsdWUgIT09IG51bGwgfHwgdGhpcy5pbnAuc2VhcmNoID09PSAnJyB8fCB4Lm5hbWUuaW5jbHVkZXModGhpcy5pbnAuc2VhcmNoKSB8fFxyXG4gICAgICAgICAgeC52YWx1ZS5pbmNsdWRlcyh0aGlzLmlucC5zZWFyY2gpIHx8IHgub3B0aW9ucy5maWx0ZXIobyA9PiBvLnNob3cpLmxlbmd0aCA+IDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZHtcclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5KSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jSShlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDEzKXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAoJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5pcygnOmZvY3VzJykpe1xyXG4gICAgICAgIGNvbnN0IGggPSB0aGlzLmdldFNlbGVjdGVkSG92ZXIoKTtcclxuICAgICAgICBpZiAoIWgpe1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbihoLnZhbHVlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5jSSgnVGFiJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDQwKXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnAuaG92ZXIgKyAxID49IHRoaXMuaW5wLmluZGV4KXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnAuaG92ZXIgPSB0aGlzLmdldEhvdmVyKCk7XHJcbiAgICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDM4KXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnAuaG92ZXIgPD0gMCl7XHJcbiAgICAgICAgdGhpcy5pbnAuaG92ZXIgPSAwO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucC5ob3ZlciA9IHRoaXMuZ2V0SG92ZXIoLTEpO1xyXG4gICAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRvZ2dsZU9wdGlvbihlKTogdm9pZHtcclxuICAgIGlmICh0aGlzLmlucC5tdWx0aXBsZSAmJiAkKGUudGFyZ2V0KS5jbG9zZXN0KCcub3B0aW9uJykuaGFzQ2xhc3MoJ29wdGlvbicpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vcGVuT3B0aW9ucygpO1xyXG4gIH1cclxuICBvbktleVVwKGUpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuY1NlYXJjaCAhPT0gZS50YXJnZXQudmFsdWUpIHtcclxuICAgICAgdGhpcy5jU2VhcmNoID0gZS50YXJnZXQudmFsdWU7XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0KXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2gpe1xyXG4gICAgICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgICB9ZWxzZSBpZiAoZS50YXJnZXQudmFsdWUpe1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE9wdGlvbih2LCBpc0VkaXQgPSBmYWxzZSk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICBjb25zdCB2YSA9IHRoaXMuZ2V0VmFsdWUodik7XHJcbiAgICBpZiAodGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICB0aGlzLnRvZ2dsZSh2YSk7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgICAgdGhpcy5pbnAuaG92ZXIgPSB2YSA/IHZhLmluZGV4IDogLTE7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9IHZhID8gKCgodGhpcy5pbnAudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdFNlYXJjaCAmJiB0aGlzLmlucC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0KSB8fCB2YS5zZWFyY2gpID8gdmEuc2VhcmNoIDogdmEubmFtZSkgOiAnJztcclxuICAgIH1cclxuICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgdGhpcy5jU2VhcmNoID0gdGhpcy5pbnAuc2VhcmNoO1xyXG4gICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5pbnAsIGlzRWRpdCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pbnAucmVsKXtcclxuICAgICAgdGhpcy5pbnAucmVsLnZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAucmVsLmhvdmVyID0gLTE7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5pbmRleCA9IDA7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5zZWFyY2ggPSAnJztcclxuICAgICAgdGhpcy5pbnAucmVsLm9wdGlvbnMgPSBbXTtcclxuICAgICAgaWYgKHYgIT09IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaW5wLnJlbC51cmwgPSB0aGlzLmlucC5yZWxVcmwucmVwbGFjZSgne30nLCB0aGlzLmlucC52YWx1ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnJlbC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgICAgICB0aGlzLmlucC5yZWwubG9hZCgpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5pbnAucmVsLnVybCArPSAnX3t9JztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghaXNFZGl0ICYmICF0aGlzLmlucC5tdWx0aXBsZSl7XHJcbiAgICAgIHRoaXMuY0koJ1RhYicpO1xyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGUob3A6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBpZiAob3Auc2VsZWN0ZWQpe1xyXG4gICAgICB0aGlzLnVuQ2hlY2sob3ApO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLnVuQ2hlY2tQYXJlbnQob3AucGFyZW50KTsgfSwgMTAwKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNoZWNrKG9wKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy5jaGVja1BhcmVudChvcC5wYXJlbnQpOyB9LCAxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGVjayhjOiBPcHRpb25DbGFzcyk6IHZvaWQge1xyXG4gICAgYy5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICB0aGlzLmNoZWNrQ2hpbGRyZW4oYyk7XHJcbiAgfVxyXG4gIHVuQ2hlY2soYzogT3B0aW9uQ2xhc3MpOiB2b2lkIHtcclxuICAgIGMuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIGMub3B0aW9ucy5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICB0aGlzLnVuQ2hlY2soY2gpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoZWNrQ2hpbGRyZW4obzogT3B0aW9uQ2xhc3MpOiB2b2lke1xyXG4gICAgby5vcHRpb25zLmZvckVhY2goKGNoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2soY2gpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoZWNrUGFyZW50KHA6IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAub3B0aW9ucy5maWx0ZXIoeCA9PiAheC5zZWxlY3RlZCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tQYXJlbnQocC5wYXJlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bkNoZWNrUGFyZW50KHA6IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAub3B0aW9ucy5maWx0ZXIoeCA9PiB4LnNlbGVjdGVkIHx8IHguc2VsZWN0ZWQgPT0gbnVsbCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVuQ2hlY2tQYXJlbnQocC5wYXJlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjSShpOiBzdHJpbmcpOiB2b2lke1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdChpKTtcclxuICAgICAgaWYgKCF0aGlzLmluRm9ybSl7XHJcbiAgICAgICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5ibHVyKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gICAgfSwgMjApO1xyXG4gIH1cclxuICBzZXRIb3ZlckNlbnRlcigpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBob3ZlcjogYW55ID0gJCh0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50KS5maW5kKCcub3B0aW9uLmhvdmVyJyk7XHJcbiAgICAgIGNvbnN0IGl0ZW1zOiBhbnkgPSAkKHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQpLmZpbmQoJy5pdGVtcycpO1xyXG4gICAgICBpZiAoaG92ZXIubGVuZ3RoID09PSAwKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaXRlbXMuc2Nyb2xsVG9wID0gaXRlbXMuc2Nyb2xsVG9wIC0gaXRlbXMub2Zmc2V0LnRvcCArIGhvdmVyLm9mZnNldC50b3AgLSBob3Zlci5oZWlnaHQoKTtcclxuICAgIH0sIDEpO1xyXG4gIH1cclxuICB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuaW5wLnZhbHVlID09IG51bGwpe1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldFRpdGxlKHRoaXMuaW5wKTtcclxuICB9XHJcbiAgZ2V0VGl0bGUob3MpOiBzdHJpbmd7XHJcbiAgICBmb3IgKGNvbnN0IHMgb2Ygb3Mub3B0aW9ucyl7XHJcbiAgICAgIGlmIChzLnZhbHVlID09PSB0aGlzLmlucC52YWx1ZS50b1N0cmluZygpKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnAubChzLm5hbWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHYgPSB0aGlzLmdldFRpdGxlKHMpO1xyXG4gICAgICBpZiAodiAhPSBudWxsKXtcclxuICAgICAgICByZXR1cm4gdjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkSG92ZXIobzogT3B0aW9uQ2xhc3NbXSA9IHRoaXMuaW5wLm9wdGlvbnMpOiBhbnl7XHJcbiAgICBjb25zdCBoID0gby5maW5kKHggPT4geC5pbmRleCA9PT0gdGhpcy5pbnAuaG92ZXIpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFNlbGVjdGVkSG92ZXIoaS5vcHRpb25zKTtcclxuICAgICAgaWYgKGhpKXtcclxuICAgICAgICByZXR1cm4gaGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0SG92ZXIoaSA9IDEsIG86IE9wdGlvbkNsYXNzW10gPSB0aGlzLmlucC5vcHRpb25zLCBoID0gdGhpcy5pbnAuaG92ZXIpOiBudW1iZXJ7XHJcbiAgICBjb25zdCBobyA9IG8uZmluZCh4ID0+IHguaW5kZXggPT09IGggKyBpKTtcclxuICAgIGlmIChobyl7XHJcbiAgICAgIGlmIChoby5zaG93KXtcclxuICAgICAgICByZXR1cm4gaG8uaW5kZXg7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICBoID0gaCArIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaXQgb2Ygbyl7XHJcbiAgICAgIGNvbnN0IGhpID0gdGhpcy5nZXRIb3ZlcihpLCBpdC5vcHRpb25zLCBoKTtcclxuICAgICAgaWYgKGhpKXtcclxuICAgICAgICByZXR1cm4gaGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICBnZXRWYWx1ZSh2LCBvOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucyk6IE9wdGlvbkNsYXNze1xyXG4gICAgY29uc3QgaCA9IG8uZmluZCh4ID0+IHgudmFsdWUgPT09IHYpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFZhbHVlKHYsIGkub3B0aW9ucyk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZChvcHRzOiBPcHRpb25DbGFzc1tdPSB0aGlzLmlucC5vcHRpb25zKTogYW55W117XHJcbiAgICBsZXQgbCA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBmIG9mIG9wdHMpe1xyXG4gICAgICBpZiAoZi5zZWxlY3RlZCl7XHJcbiAgICAgICAgbC5wdXNoKGYudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJzID0gdGhpcy5nZXRTZWxlY3RlZChmLm9wdGlvbnMpO1xyXG4gICAgICBsID0gbC5jb25jYXQocnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGw7XHJcbiAgfVxyXG4gIG9uQ2xpY2tCdXR0b24oKTogdm9pZHtcclxuICAgIHRoaXMuaW5wLm9uQ2xpY2tCdXR0b24odGhpcy5pbnApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -290,6 +290,9 @@ const strings = {
|
|
|
290
290
|
FormBaseErrorPermission: 'عدم دسترسی',
|
|
291
291
|
PaymentError: 'خطا در اتصال به درگاه بانکی',
|
|
292
292
|
Error: 'متاسفانه در سیستم خطایی به وجود آمده است. لطفا مجددا تلاش کنید',
|
|
293
|
+
ErrorFingerPrintNoDeviceConnected: 'دستگاه اثرانگشت به سیستم متصل نیست',
|
|
294
|
+
ErrorFingerPrintOpenDeviceFailed: 'خطا در باز کردن دستگاه اثرانگشت',
|
|
295
|
+
ErrorFingerPrintInitDBFailed: 'خطا در باز کردن دیتابیس دستگاه اثرانگشت',
|
|
293
296
|
}
|
|
294
297
|
}
|
|
295
298
|
};
|
|
@@ -3815,8 +3818,6 @@ class FormPlaqueSelectComponent {
|
|
|
3815
3818
|
}
|
|
3816
3819
|
};
|
|
3817
3820
|
this.part1.onFocusOut = (e) => {
|
|
3818
|
-
console.log($$1(e.relatedTarget));
|
|
3819
|
-
console.log($$1(e.rangeParent));
|
|
3820
3821
|
if (!$$1(e.relatedTarget).closest('.form-input.plaque-select').hasClass('plaque-select') && !$$1(e.rangeParent).closest('.form-input.plaque-select').hasClass('plaque-select')) {
|
|
3821
3822
|
if (this.open) {
|
|
3822
3823
|
this.closeOptions();
|
|
@@ -4843,9 +4844,6 @@ class FormSelectComponent {
|
|
|
4843
4844
|
if (f.selected) {
|
|
4844
4845
|
l.push(f.value);
|
|
4845
4846
|
}
|
|
4846
|
-
if (f.selected && f.options.length !== 0) {
|
|
4847
|
-
continue;
|
|
4848
|
-
}
|
|
4849
4847
|
const rs = this.getSelected(f.options);
|
|
4850
4848
|
l = l.concat(rs);
|
|
4851
4849
|
}
|
|
@@ -5787,7 +5785,9 @@ class FormFingerComponent {
|
|
|
5787
5785
|
HelperClass.addNotification(evt.data);
|
|
5788
5786
|
}
|
|
5789
5787
|
else {
|
|
5790
|
-
|
|
5788
|
+
const r = JSON.parse(evt.data);
|
|
5789
|
+
r.ImageBase64 = 'data:image/png;base64,' + r.Image;
|
|
5790
|
+
this.inp.value[f] = r;
|
|
5791
5791
|
}
|
|
5792
5792
|
this.wsRegister.close();
|
|
5793
5793
|
this.wsRegister = null;
|
|
@@ -5803,7 +5803,7 @@ class FormFingerComponent {
|
|
|
5803
5803
|
FormFingerComponent.decorators = [
|
|
5804
5804
|
{ type: Component, args: [{
|
|
5805
5805
|
selector: 'lib-form-finger',
|
|
5806
|
-
template: "<div #inputDiv [id]=\"inp.id + 'FingerInput'\" [className]=\"'form-input finger w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + ' ' + inp.class\">\r\n <div class=\"form-input-flex\">\r\n <div class=\"form-input-con\" (click)=\"onClick()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"fas fa-star-of-life required-icon\"></i>{{inp.getLabel()}}</div>\r\n <input #inputBase type=\"checkbox\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fa-spin fa-spinner ' : inp.icon) + (inp.icon.includes('far') ? '' : ' fas') + ' icon'\"></i>\r\n <div class=\"fingers\">\r\n <div class=\"hand-con right\">\r\n <i class=\"fas fa-hand-paper hand fa-flip-horizontal\"></i>\r\n <div (click)=\"addRemoveFinger('R1')\" [className]=\"(inp.value.R1 == 'Loading' ? 'loading ' : (inp.value.R1 == null ? '' : 'remove ')) + 'btn-f f1'\">\r\n <i [className]=\"(inp.value.R1 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R1 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R1 && inp.value.R1.Image\" [style]=\"{backgroundImage: 'url(\\'
|
|
5806
|
+
template: "<div #inputDiv [id]=\"inp.id + 'FingerInput'\" [className]=\"'form-input finger w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + ' ' + inp.class\">\r\n <div class=\"form-input-flex\">\r\n <div class=\"form-input-con\" (click)=\"onClick()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"fas fa-star-of-life required-icon\"></i>{{inp.getLabel()}}</div>\r\n <input #inputBase type=\"checkbox\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fa-spin fa-spinner ' : inp.icon) + (inp.icon.includes('far') ? '' : ' fas') + ' icon'\"></i>\r\n <div class=\"fingers\">\r\n <div class=\"hand-con right\">\r\n <i class=\"fas fa-hand-paper hand fa-flip-horizontal\"></i>\r\n <div (click)=\"addRemoveFinger('R1')\" [className]=\"(inp.value.R1 == 'Loading' ? 'loading ' : (inp.value.R1 == null ? '' : 'remove ')) + 'btn-f f1'\">\r\n <i [className]=\"(inp.value.R1 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R1 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R1 && inp.value.R1.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.R1.ImageBase64 ? inp.value.R1.ImageBase64 : inp.value.R1.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('R2')\" [className]=\"(inp.value.R2 == 'Loading' ? 'loading ' : (inp.value.R2 == null ? '' : 'remove ')) + 'btn-f f2'\">\r\n <i [className]=\"(inp.value.R2 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R2 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R2 && inp.value.R2.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.R2.ImageBase64 ? inp.value.R2.ImageBase64 : inp.value.R2.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('R3')\" [className]=\"(inp.value.R3 == 'Loading' ? 'loading ' : (inp.value.R3 == null ? '' : 'remove ')) + 'btn-f f3'\">\r\n <i [className]=\"(inp.value.R3 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R3 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R3 && inp.value.R3.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.R3.ImageBase64 ? inp.value.R3.ImageBase64 : inp.value.R3.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('R4')\" [className]=\"(inp.value.R4 == 'Loading' ? 'loading ' : (inp.value.R4 == null ? '' : 'remove ')) + 'btn-f f4'\">\r\n <i [className]=\"(inp.value.R4 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R4 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R4 && inp.value.R4.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.R4.ImageBase64 ? inp.value.R4.ImageBase64 : inp.value.R4.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('R5')\" [className]=\"(inp.value.R5 == 'Loading' ? 'loading ' : (inp.value.R5 == null ? '' : 'remove ')) + 'btn-f f5'\">\r\n <i [className]=\"(inp.value.R5 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.R5 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.R5 && inp.value.R5.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.R5.ImageBase64 ? inp.value.R5.ImageBase64 : inp.value.R5.Image) + '\\')'}\"></div>\r\n </div>\r\n </div>\r\n <div class=\"hand-con left\">\r\n <i class=\"fas hand fa-hand-paper\"></i>\r\n <div (click)=\"addRemoveFinger('L1')\" [className]=\"(inp.value.L1 == 'Loading' ? 'loading ' : (inp.value.L1 == null ? '' : 'remove ')) + 'btn-f f1'\">\r\n <i [className]=\"(inp.value.L1 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.L1 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.L1 && inp.value.L1.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.L1.ImageBase64 ? inp.value.L1.ImageBase64 : inp.value.L1.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('L2')\" [className]=\"(inp.value.L2 == 'Loading' ? 'loading ' : (inp.value.L2 == null ? '' : 'remove ')) + 'btn-f f2'\">\r\n <i [className]=\"(inp.value.L2 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.L2 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.L2 && inp.value.L2.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.L2.ImageBase64 ? inp.value.L2.ImageBase64 : inp.value.L2.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('L3')\" [className]=\"(inp.value.L3 == 'Loading' ? 'loading ' : (inp.value.L3 == null ? '' : 'remove ')) + 'btn-f f3'\">\r\n <i [className]=\"(inp.value.L3 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.L3 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.L3 && inp.value.L3.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.L3.ImageBase64 ? inp.value.L3.ImageBase64 : inp.value.L3.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('L4')\" [className]=\"(inp.value.L4 == 'Loading' ? 'loading ' : (inp.value.L4 == null ? '' : 'remove ')) + 'btn-f f4'\">\r\n <i [className]=\"(inp.value.L4 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.L4 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.L4 && inp.value.L4.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.L4.ImageBase64 ? inp.value.L4.ImageBase64 : inp.value.L4.Image) + '\\')'}\"></div>\r\n </div>\r\n <div (click)=\"addRemoveFinger('L5')\" [className]=\"(inp.value.L5 == 'Loading' ? 'loading ' : (inp.value.L5 == null ? '' : 'remove ')) + 'btn-f f5'\">\r\n <i [className]=\"(inp.value.L5 == 'Loading' ? 'fa-spin fa-spinner ' : (inp.value.L5 == null ? 'fa-plus ' : 'fa-minus ')) + 'fas'\"></i>\r\n <div class=\"img\" *ngIf=\"inp.value.L5 && inp.value.L5.Image\" [style]=\"{backgroundImage: 'url(\\'' + (inp.value.L5.ImageBase64 ? inp.value.L5.ImageBase64 : inp.value.L5.Image) + '\\')'}\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
5807
5807
|
styles: [".form-input.finger{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;padding:0 15px;position:relative}.form-input.finger .form-input-flex{align-items:center;display:flex;float:right;justify-content:center;width:100%}.form-input.finger .form-input-flex .form-input-con{float:right;width:250px}.form-input.finger .form-input-flex .form-input-con .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input.finger .form-input-flex .form-input-con.error .label{color:var(--red);font-size:10px}.form-input.finger .form-input-flex .form-input-con .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input.finger .form-input-flex .form-input-con>.control{background-color:#fff;border-radius:var(--border-radius-base);box-shadow:0 1px 3px 0 rgba(0,0,0,.4);float:right;min-height:35px;position:relative;width:100%}.form-input.finger .form-input-flex .form-input-con .input-base{cursor:pointer;height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:1}.form-input.finger .form-input-flex .form-input-con .input-base:focus+.control,.form-input.finger .form-input-flex .form-input-con:hover .control{box-shadow:0 1px 5px 0 rgba(0,0,0,.7)}.form-input.finger .form-input-flex .form-input-con i.icon{color:var(--primary);cursor:default;font-size:14px;height:35px;left:0;line-height:35px;position:absolute;text-align:center;top:0;transition:all .35s ease-in-out;width:35px;z-index:1}.form-input.finger .form-input-flex .form-input-con.error>.control{box-shadow:0 1px 3px 0 var(--red)}.form-input.finger .form-input-flex .form-input-con.error i.icon{color:var(--red-light)}.form-input.finger .form-input-flex .form-input-con>.control .fingers{float:right;position:relative;width:100%}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con{float:right;position:relative;width:50%}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .hand{float:right;font-size:100px;height:160px;line-height:160px;padding-right:10px;position:relative;text-align:right;width:100%}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f{align-items:center;background-color:var(--green);border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:17px;justify-content:center;position:absolute;text-align:center;width:17px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f:hover{background-color:var(--green-dark)}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f.remove{background-color:var(--red)}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f.remove:hover{background-color:var(--red-dark)}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f.loading,.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f.loading:hover{background-color:var(--primary)}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.right .btn-f.f1{right:11px;top:79px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.right .btn-f.f2{right:38px;top:36px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.right .btn-f.f3{right:56px;top:27px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.right .btn-f.f4{right:75px;top:36px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.right .btn-f.f5{right:94px;top:46px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.left .btn-f.f1{left:11px;top:79px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.left .btn-f.f2{left:38px;top:36px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.left .btn-f.f3{left:56px;top:27px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.left .btn-f.f4{left:75px;top:36px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con.left .btn-f.f5{left:94px;top:46px}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f .img{background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:var(--border-radius-base);bottom:20px;box-shadow:var(--box-shadow);display:none;height:100px;position:absolute;right:-29px;width:75px;z-index:1}.form-input.finger .form-input-flex .form-input-con>.control .fingers .hand-con .btn-f.remove:hover .img{display:block}"]
|
|
5808
5808
|
},] }
|
|
5809
5809
|
];
|