ps-toolkit-ui 1.22.26 → 1.22.28
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/form.class.js +2 -2
- package/esm2015/lib/components/confirm/confirm.component.js +5 -5
- package/esm2015/lib/components/form/index/form.component.js +1 -1
- package/esm2015/lib/components/form/time/form.time.component.js +1 -1
- package/fesm2015/ps-toolkit-ui.js +7 -7
- package/fesm2015/ps-toolkit-ui.js.map +1 -1
- package/package.json +1 -1
- package/ps-toolkit-ui.metadata.json +1 -1
|
@@ -221,7 +221,7 @@ export class FormClass {
|
|
|
221
221
|
submit.disabled = !insertAccess;
|
|
222
222
|
return;
|
|
223
223
|
}
|
|
224
|
-
const br = new InputClass(this.environment, this.l, null, null, InputType.Label, this.onTop ? 'space' : 'underline');
|
|
224
|
+
const br = new InputClass(this.environment, this.l, null, null, InputType.Label, (this.onTop ? 'space' : 'underline') + (cls.includes('confirm-modal' ? ' m-v-10' : '')));
|
|
225
225
|
const save = new InputClass(this.environment, this.l, name, 'fad fa-check', InputType.Submit, 'save-form-btn ' + (this.onTop ? 'h-25 ' : 'h-30 ') + cls);
|
|
226
226
|
save.onClick = () => {
|
|
227
227
|
this.submit(onSubmit);
|
|
@@ -670,4 +670,4 @@ export class AccordionRowClass {
|
|
|
670
670
|
}, 100);
|
|
671
671
|
}
|
|
672
672
|
}
|
|
673
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9mb3JtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFJN0MsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFHNUIsTUFBTSxPQUFPLFFBQVE7SUFDbkIsWUFBWSxJQUFZO1FBS3hCLFlBQU8sR0FBRyxHQUFHLENBQUM7UUFFZCxVQUFLLEdBQWUsSUFBSSxDQUFDO1FBQ3pCLFlBQU8sR0FBZSxJQUFJLENBQUM7UUFDM0IsV0FBTSxHQUFtQyxJQUFJLENBQUM7UUFDOUMsVUFBSyxHQUFHLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUM7Z0JBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2hCO1lBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUUsR0FBRyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNuRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFDO29CQUN4QixhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM3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LEdBQUcsRUFBRSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUM7Z0JBQ2pCLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxL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LFFBQW9CLElBQUk7UUFRdEYsU0FBSSxHQUFHLElBQUksQ0FBQztRQUNaLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFSaEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBUUQsTUFBTTtRQUNKLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxDQUFDLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEQsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUNELElBQUk7UUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQ2pFLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNyRDtRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRW51bVV0aWxzLFxyXG4gIElucHV0RXJyb3IsXHJcbiAgSW5wdXRUeXBlLFxyXG4gIE1ldGhvZCxcclxuICBSZXN1bHRTdGF0dXNFbnVtXHJcbn0gZnJvbSAnLi9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi9oZWxwZXIuY2xhc3MnO1xyXG5pbXBvcnQge1JlcXVlc3RDbGFzc30gZnJvbSAnLi9yZXF1ZXN0LmNsYXNzJztcclxuaW1wb3J0IHtUYWJsZUNsYXNzfSBmcm9tICcuL3RhYmxlLmNsYXNzJztcclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5pbXBvcnQge01vZGFsQ2xhc3N9IGZyb20gJy4vbW9kYWwuY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7Q2hhcnRDbGFzc30gZnJvbSAnLi9jaGFydC5jbGFzcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3Mge1xyXG4gIGNvbnN0cnVjdG9yKHNlY3M6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWNzID0gdGhpcy5yZW1haW5TZWNzID0gc2VjcztcclxuICB9XHJcbiAgc2VjczogbnVtYmVyO1xyXG4gIHJlbWFpblNlY3M6IG51bWJlcjtcclxuICBwZXJjZW50ID0gMTAwO1xyXG4gIGludGVyVmFsO1xyXG4gIG9uRW5kOiAoKSA9PiB2b2lkID0gbnVsbDtcclxuICBvblN0YXJ0OiAoKSA9PiB2b2lkID0gbnVsbDtcclxuICBvblRpY2s6IChtOiBudW1iZXIsIHM6IG51bWJlcikgPT4gdm9pZCA9IG51bGw7XHJcbiAgc3RhcnQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnJlbWFpblNlY3MgPSB0aGlzLnNlY3M7XHJcbiAgICB0aGlzLnBlcmNlbnQgPSAxMDA7XHJcbiAgICBpZiAodGhpcy5vblN0YXJ0KXtcclxuICAgICAgdGhpcy5vblN0YXJ0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmludGVyVmFsID0gc2V0SW50ZXJ2YWwoICgpID0+IHtcclxuICAgICAgdGhpcy5wZXJjZW50ID0gKHRoaXMucmVtYWluU2VjcyAvIHRoaXMuc2VjcykgKiAxMDA7XHJcbiAgICAgIGlmICh0aGlzLnJlbWFpblNlY3MgPT09IDApe1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlclZhbCk7XHJcbiAgICAgICAgaWYgKHRoaXMub25FbmQpe1xyXG4gICAgICAgICAgdGhpcy5vbkVuZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKE51bWJlci5pc0ludGVnZXIodGhpcy5yZW1haW5TZWNzKSl7XHJcbiAgICAgICAgY29uc3QgbSA9IE1hdGguZmxvb3IodGhpcy5yZW1haW5TZWNzIC8gNjApO1xyXG4gICAgICAgIGNvbnN0IHMgPSB0aGlzLnJlbWFpblNlY3MgJSA2MDtcclxuICAgICAgICB0aGlzLm9uVGljayhtLCBzKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlbWFpblNlY3MgLT0gMC41O1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIEZvcm1DbGFzcyB7XHJcbiAgY29uc3RydWN0b3IoZW52aXJvbm1lbnQ6IGFueSwgbDogKGssIHY/KSA9PiBzdHJpbmcsIG5hbWU6IHN0cmluZyA9IG51bGwsIHBlcm1pc3Npb246IGJvb2xlYW4gPSB0cnVlLFxyXG4gICAgICAgICAgICAgIHVybDogc3RyaW5nID0gbnVsbCwgY2xzOiBzdHJpbmcgPSBudWxsKSB7XHJcbiAgICB0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XHJcbiAgICB0aGlzLmwgPSBsO1xyXG4gICAgdGhpcy51cmwgPSB1cmw7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSB1cmw7XHJcbiAgICB0aGlzLmNsYXNzID0gY2xzO1xyXG4gICAgdGhpcy5wZXJtaXNzaW9uID0gcGVybWlzc2lvbjtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmlkID0gdGhpcy5uYW1lO1xyXG4gIH1cclxuICBsOiAoaywgdj8pID0+IHN0cmluZztcclxuICBwZXJtaXNzaW9uOiBib29sZWFuO1xyXG4gIGVudmlyb25tZW50OiBhbnkgPSBudWxsO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpc0VkaXQgPSBmYWxzZTtcclxuICBzdWJOYW1lOiBzdHJpbmcgPSBudWxsO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY2xhc3M6IHN0cmluZztcclxuICBiYXNlVXJsOiBzdHJpbmc7XHJcbiAgdXJsOiBzdHJpbmc7XHJcbiAgbWV0aG9kOiBNZXRob2QgPSBNZXRob2QuUG9zdDtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgc3R5bGU6IHt9O1xyXG4gIG9uVG9wID0gZmFsc2U7XHJcbiAgZGlzcGxheUxhYmVsID0gdHJ1ZTtcclxuICByZXF1ZXN0OiBhbnkgPSBudWxsO1xyXG4gIGlucHV0czogSW5wdXRDbGFzc1tdID0gW107XHJcbiAgb25TdWNjZXNzQmFzZTogKHJlc3VsdCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25TdWNjZXNzOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkZhaWxlZDogKG1lc3NhZ2UsIHJlcykgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25Mb2FkOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkJlZm9yZVN1Ym1pdDogKCkgPT4gYm9vbGVhbiA9IG51bGw7XHJcbiAgb25IaWRlTW9kYWw6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uU2hvd01vZGFsOiAoKSA9PiB2b2lkID0gbnVsbDtcclxuXHJcbiAgbG9hZERhdGEodXJsKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwpLnNlbmQodXJsLCBNZXRob2QuUG9zdCwgbnVsbCwgbnVsbCwgKHJlc3VsdCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldERhdGEocmVzdWx0KTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5vbkxvYWQpe1xyXG4gICAgICAgICAgdGhpcy5vbkxvYWQocmVzdWx0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDUwMCk7XHJcbiAgICB9LCAobSkgPT4ge1xyXG4gICAgICBpZiAobSA9PT0gJ0Zvcm1CYXNlRXJyb3JBY2Nlc3MnIHx8IG0gPT09ICdGb3JtQmFzZUVycm9yUGVybWlzc2lvbicpe1xyXG4gICAgICAgIHRoaXMucGVybWlzc2lvbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgZm9jdXMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpID0gdGhpcy5pbnB1dHMuZmluZCh4ID0+ICF4LmRpc2FibGVkICYmIHgudHlwZSAhPT0gSW5wdXRUeXBlLkxhYmVsICYmIHgudHlwZSAhPT0gSW5wdXRUeXBlLkhpZGRlbiAmJlxyXG4gICAgICB4LnR5cGUgIT09IElucHV0VHlwZS5Db25zdGFudCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5TdWJtaXQgJiYgeC50eXBlICE9PSBJbnB1dFR5cGUuQnV0dG9uICYmIHgudHlwZSAhPT0gSW5wdXRUeXBlLkljb24gJiZcclxuICAgICAgeC50eXBlICE9PSBJbnB1dFR5cGUuQ2hlY2spO1xyXG4gICAgaWYgKGkpe1xyXG4gICAgICBpLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHN1Ym1pdChvblN1Ym1pdCA9IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGVjaygpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9uQmVmb3JlU3VibWl0ICYmICF0aGlzLm9uQmVmb3JlU3VibWl0KCkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBidG5zID0gdGhpcy5pbnB1dHMuZmlsdGVyKHggPT4geC50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KTtcclxuICAgIGZvciAoY29uc3QgYnRuIG9mIGJ0bnMpe1xyXG4gICAgICBpZiAoYnRuLmxvYWRpbmcpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBidG4ubG9hZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhKCk7XHJcbiAgICBpZiAob25TdWJtaXQpe1xyXG4gICAgICBmb3IgKGNvbnN0IGJ0biBvZiBidG5zKXtcclxuICAgICAgICBidG4ubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIG9uU3VibWl0KGRhdGEpO1xyXG4gICAgICBpZiAodGhpcy5vblN1Y2Nlc3MpIHtcclxuICAgICAgICB0aGlzLm9uU3VjY2VzcyhkYXRhKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlcXVlc3QgPSBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQpLmdldENsaWVudCh0aGlzLnJlcXVlc3QsIHRoaXMudXJsLCB0aGlzLm1ldGhvZCwgZGF0YSxcclxuICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLlN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmICh0aGlzLm9uU3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLm9uU3VjY2VzcyhyZXMucmVzdWx0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLm9uU3VjY2Vzc0Jhc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5vblN1Y2Nlc3NCYXNlKHJlcy5yZXN1bHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgbSA9ICcnO1xyXG4gICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uTm90UmVnaXN0ZXJlZCkge1xyXG4gICAgICAgICAgICBtID0gdGhpcy5sKCdGb3JtQmFzZUVycm9yTm90UmVnaXN0ZXJlZCcpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLkV4cGlyZWRSZWdpc3RlcmVkKSB7XHJcbiAgICAgICAgICAgIG0gPSB0aGlzLmwoJ0Zvcm1CYXNlRXJyb3JFeHBpcmVkUmVnaXN0ZXJlZCcpO1xyXG4gICAgICAgICAgfSAgZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5JbnZhbGlkSXApIHtcclxuICAgICAgICAgICAgbSA9IHRoaXMubCgnRm9ybUJhc2VFcnJvckludmFsaWRJcCcpO1xyXG4gICAgICAgICAgfSAgZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5Ob0NyZWRpdCkge1xyXG4gICAgICAgICAgICBtID0gdGhpcy5sKCdGb3JtQmFzZUVycm9yTm9DcmVkaXQnKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5VbmF1dGhvcml6ZWQpIHtcclxuICAgICAgICAgICAgbSA9IHRoaXMubCgnRm9ybUJhc2VFcnJvckV4cGlyZWQnKTtcclxuICAgICAgICAgICAgSGVscGVyQ2xhc3MuZXJhc2VDb29raWUoJ1RPS0VOJyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uTm90QWNjZXNzKSB7XHJcbiAgICAgICAgICAgIG0gPSB0aGlzLmwoJ0Zvcm1CYXNlRXJyb3JBY2Nlc3MnKTtcclxuICAgICAgICAgIH0gIGVsc2UgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uTm90UGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICBtID0gdGhpcy5sKCdGb3JtQmFzZUVycm9yUGVybWlzc2lvbicpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiByZXMubWVzc2FnZSA9PT0gJ3N0cmluZycpe1xyXG4gICAgICAgICAgICAgIGNvbnN0IGFtID0gcmVzLm1lc3NhZ2Uuc3BsaXQoJzonKTtcclxuICAgICAgICAgICAgICBtID0gdGhpcy5sKGFtWzBdLCBhbS5sZW5ndGggPiAxID8gYW0uc2xpY2UoMSkgOiBudWxsKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXHJcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBtc2cgaW4gcmVzLm1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VuZmlsdGVyZWRGb3JJbkxvb3BcclxuICAgICAgICAgICAgICAgIG0gPSB0aGlzLmwobXNnLCByZXMubWVzc2FnZVttc2ddKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZXRFcnJvcihyZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKG0pIHtcclxuICAgICAgICAgICAgSGVscGVyQ2xhc3MuYWRkTm90aWZpY2F0aW9uKG0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMub25GYWlsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkZhaWxlZChyZXMubWVzc2FnZSwgcmVzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChjb25zdCBidG4gb2YgYnRucyl7XHJcbiAgICAgICAgICBidG4ubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgIEhlbHBlckNsYXNzLmFkZE5vdGlmaWNhdGlvbih0aGlzLmwoJ0Vycm9yJykpO1xyXG4gICAgICAgIGlmICh0aGlzLm9uRmFpbGVkKSB7XHJcbiAgICAgICAgICB0aGlzLm9uRmFpbGVkKCdFcnJvcicsIHJlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3QgYnRuIG9mIGJ0bnMpe1xyXG4gICAgICAgICAgYnRuLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGNoZWNrKCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wID0+IHtcclxuICAgICAgaWYgKCFpbnAuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgaWYgKHZhbGlkKXtcclxuICAgICAgICAgIGlucC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YWxpZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcbiAgY2xlYXIoaW5zZXJ0QWNjZXNzID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5tZXRob2QgPSBNZXRob2QuUG9zdDtcclxuICAgIHRoaXMudXJsID0gdGhpcy5iYXNlVXJsO1xyXG4gICAgdGhpcy5zZXRCdXR0b25zKHRoaXMub25Ub3AsIGZhbHNlLCBpbnNlcnRBY2Nlc3MsIGZhbHNlKTtcclxuICAgIHRoaXMuY2xlYXJJbnB1dHMoKTtcclxuICAgIGlmICh0aGlzLm9uVG9wICYmICF0aGlzLmlzRWRpdCl7XHJcbiAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNFZGl0ID0gZmFsc2U7XHJcbiAgfVxyXG4gIGNsZWFySW5wdXRzKCk6IHZvaWR7XHJcbiAgICB0aGlzLmlucHV0cy5maWx0ZXIoeCA9PiB4LnR5cGUgIT09IElucHV0VHlwZS5Db25zdGFudCkuZm9yRWFjaChpbnAgPT4ge1xyXG4gICAgICBpbnAuY2xlYXIoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRCdXR0b25zKGZvcm1PblRvcCwgZWRpdDogYm9vbGVhbiwgaW5zZXJ0QWNjZXNzID0gZmFsc2UsIHVwZGF0ZUFjY2VzcyA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICBjb25zdCBzID0gdGhpcy5pbnB1dHMuZmluZCh4ID0+IHgudHlwZSA9PT0gSW5wdXRUeXBlLlN1Ym1pdCk7XHJcbiAgICBpZiAoIXMpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBzLmRpc2FibGVkID0gISgoZWRpdCAmJiB1cGRhdGVBY2Nlc3MpIHx8ICghZWRpdCAmJiBpbnNlcnRBY2Nlc3MpKTtcclxuICAgIHMubmFtZSA9IHMubmFtZSAhPSBudWxsID8gKGVkaXQgPyAnQWNjZXB0JyA6ICdTYXZlJykgOiBudWxsO1xyXG4gICAgcy5jbGFzcyA9IGVkaXQgPyBzLmNsYXNzLnJlcGxhY2UoJ2dyZWVuJywgJ2JsdWUnKSA6IHMuY2xhc3MucmVwbGFjZSgnYmx1ZScsICdncmVlbicpO1xyXG4gIH1cclxuICBhZGRCdXR0b25zKG5hbWUgPSAnU2F2ZScsIGNscyA9ICdncmVlbicsIGNsZWFyID0gdHJ1ZSwgaW5zZXJ0QWNjZXNzID0gdHJ1ZSwgb25TdWJtaXQgPSBudWxsKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdWJtaXQgPSB0aGlzLmlucHV0cy5maW5kKHggPT4geC50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KSA/PyBudWxsO1xyXG4gICAgaWYgKHN1Ym1pdCAhPSBudWxsKXtcclxuICAgICAgc3VibWl0LmRpc2FibGVkID0gIWluc2VydEFjY2VzcztcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYnIgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsIG51bGwsIG51bGwsIElucHV0VHlwZS5MYWJlbCxcclxuICAgICAgdGhpcy5vblRvcCA/ICdzcGFjZScgOiAndW5kZXJsaW5lJyk7XHJcbiAgICBjb25zdCBzYXZlID0gbmV3IElucHV0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sLCBuYW1lLCAnZmFkIGZhLWNoZWNrJywgSW5wdXRUeXBlLlN1Ym1pdCxcclxuICAgICAgJ3NhdmUtZm9ybS1idG4gJyArICh0aGlzLm9uVG9wID8gJ2gtMjUgJyA6ICdoLTMwICcpICsgY2xzKTtcclxuICAgIHNhdmUub25DbGljayA9ICgpID0+IHtcclxuICAgICAgdGhpcy5zdWJtaXQob25TdWJtaXQpO1xyXG4gICAgfTtcclxuICAgIHNhdmUuZGlzYWJsZWQgPSAhaW5zZXJ0QWNjZXNzO1xyXG4gICAgaWYgKCFjbHMuaW5jbHVkZXMoJ29ubHktaWNvbicpKXtcclxuICAgICAgdGhpcy5pbnB1dHMucHVzaChicik7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHNhdmUuY2xhc3MgPSBzYXZlLmNsYXNzLnJlcGxhY2UoJ3NhdmUtZm9ybS1idG4gJywgJycpLnJlcGxhY2UoJ2gtMjUgJywgJ2gtMzAgJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucHV0cy5wdXNoKHNhdmUpO1xyXG4gICAgaWYgKGNsZWFyKXtcclxuICAgICAgY29uc3QgZXJhc2UgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsIG51bGwsICdmYWQgZmEtZXJhc2VyJywgSW5wdXRUeXBlLkJ1dHRvbixcclxuICAgICAgICAnZi1sIHctdSBncmV5IGVyYXNlLWZvcm0tYnRuICcgKyAodGhpcy5vblRvcCA/ICdoLTI1ICcgOiAnaC0zMCAnKSk7XHJcbiAgICAgIGVyYXNlLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMub25Ub3Ape1xyXG4gICAgICAgICAgdGhpcy5jbGVhcihpbnNlcnRBY2Nlc3MpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5jbGVhcklucHV0cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgdGhpcy5pbnB1dHMucHVzaChlcmFzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRhdGEoZCA9IG51bGwpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRzLmZpbmRJbmRleCh4ID0+IHgudHlwZSA9PT0gSW5wdXRUeXBlLkZpbGUgfHwgeC50eXBlID09PSBJbnB1dFR5cGUuVXBsb2FkZXIpID09PSAtMSl7XHJcbiAgICAgIGlmIChkID09IG51bGwpe1xyXG4gICAgICAgIGQgPSB7fTtcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGlmIChkID09IG51bGwpe1xyXG4gICAgICAgIGQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3Qgc2V0RCA9IChuLCB2bCkgPT4ge1xyXG4gICAgICBpZiAoZCBpbnN0YW5jZW9mIEZvcm1EYXRhKXtcclxuICAgICAgICBpZiAodmwgaW5zdGFuY2VvZiBBcnJheSl7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IHYgb2Ygdmwpe1xyXG4gICAgICAgICAgICBkLmFwcGVuZChuLCB2KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGQuYXBwZW5kKG4sIHZsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGRbbl0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgXy5zZXQoZCwgbiwgdmwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoZFtuXSBpbnN0YW5jZW9mIEFycmF5KXtcclxuICAgICAgICAgICAgZFtuXS5wdXNoKHZsKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRbbl0gPSBbZFtuXSwgdmxdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wID0+IHtcclxuICAgICAgY29uc3QgdmwgPSBpbnAuZGF0YSgpO1xyXG4gICAgICBpZiAodmwgIT09IG51bGwpe1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmwgPT09ICdvYmplY3QnICYmICEodmwgaW5zdGFuY2VvZiBBcnJheSkpe1xyXG4gICAgICAgICAgZm9yIChjb25zdCBbIGtleSwgdmFsdWUgXSBvZiBPYmplY3QuZW50cmllcyh2bCkpIHtcclxuICAgICAgICAgICAgc2V0RChrZXksIHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc2V0RChpbnAubmFtZSwgdmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZDtcclxuICB9XHJcbiAganNvbihkID0gbnVsbCk6IHt9IHtcclxuICAgIGlmIChkID09IG51bGwpe1xyXG4gICAgICBkID0ge307XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGNvbnN0IHZsID0gaW5wLmRhdGEoKTtcclxuICAgICAgaWYgKHZsICE9PSBudWxsICYmIHZsICE9PSAnJyl7XHJcbiAgICAgICAgaWYgKHZsIGluc3RhbmNlb2YgQXJyYXkpe1xyXG4gICAgICAgICAgZm9yIChjb25zdCB2IG9mIHZsKXtcclxuICAgICAgICAgICAgZFtpbnAubmFtZV0gPSB2O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgZFtpbnAubmFtZV0gPSB2bDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGQ7XHJcbiAgfVxyXG4gIHNldERhdGEoZCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnAgPT4ge1xyXG4gICAgICBjb25zdCBpdiA9IF8uZ2V0KGQsIGlucC5uYW1lKSA/PyBudWxsO1xyXG4gICAgICBpZiAoaW5wLnR5cGUgPT09IElucHV0VHlwZS5WZWhpY2xlKXtcclxuICAgICAgICBjb25zdCBpdnQgPSBfLmdldChkLCBpbnAubmFtZSArICdUeXBlJyk7XHJcbiAgICAgICAgaW5wLnNldFZhbHVlKHtWYWx1ZTogaXYsIFR5cGU6IGl2dH0sIHRydWUpO1xyXG4gICAgICB9ZWxzZSBpZiAoaW5wLnR5cGUgPT09IElucHV0VHlwZS5WZWhpY2xlU2VhcmNoKXtcclxuICAgICAgICBjb25zdCBpdnMgPSBfLmdldChkLCBpbnAubmFtZS5yZXBsYWNlKCdJZCcsICcnKSk7XHJcbiAgICAgICAgY29uc3QgaXZ0ID0gXy5nZXQoZCwgaW5wLm5hbWUucmVwbGFjZSgnSWQnLCAnVHlwZScpKTtcclxuICAgICAgICBpbnAuc2V0VmFsdWUoe1NlYXJjaDogaXZzLCBWYWx1ZTogaXYsIFR5cGU6IGl2dH0sIHRydWUpO1xyXG4gICAgICB9ZWxzZSBpZiAoaW5wLnR5cGUgIT09IElucHV0VHlwZS5MYWJlbCB8fCBpdiAhPSBudWxsKXtcclxuICAgICAgICBpbnAuc2V0VmFsdWUoaXYsIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSB8fCBpbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgICAgY29uc3QgaXZzID0gXy5nZXQoZCwgaW5wLm5hbWUucmVwbGFjZSgnSWQnLCAnJykpO1xyXG4gICAgICAgIGlucC5zZXRTZWFyY2goaXZzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldEVycm9yKHJlcyk6IHZvaWQge1xyXG4gICAgaWYgKHJlcy5lcnJvciAhPSBudWxsKXtcclxuICAgICAgbGV0IGYgPSBmYWxzZTtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmZvcmluXHJcbiAgICAgIGZvciAoY29uc3QgZXJyIGluIHJlcy5lcnJvcikge1xyXG4gICAgICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VuZmlsdGVyZWRGb3JJbkxvb3BcclxuICAgICAgICBjb25zdCBpID0gdGhpcy5pbnB1dHMuZmluZCh4ID0+IHgubmFtZSA9PT0gZXJyKTtcclxuICAgICAgICBpZiAoaSl7XHJcbiAgICAgICAgICAvLyBub2luc3BlY3Rpb24gSlNVbmZpbHRlcmVkRm9ySW5Mb29wXHJcbiAgICAgICAgICBpLmVycm9yID0gSW5wdXRFcnJvcltJbnB1dEVycm9yW3Jlcy5lcnJvcltlcnJdXV07XHJcbiAgICAgICAgICBpZiAoIWYpe1xyXG4gICAgICAgICAgICBpLmZvY3VzKCk7XHJcbiAgICAgICAgICAgIGYgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIElucHV0Q2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGVudmlyb25tZW50OiBhbnksIGw6IChrLCB2PykgPT4gc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGljb246IHN0cmluZyA9IG51bGwsXHJcbiAgICAgICAgICAgICAgdHlwZTogSW5wdXRUeXBlID0gSW5wdXRUeXBlLlRleHQsIGNsczogc3RyaW5nID0gJycsIHZhbHVlID0gbnVsbCxcclxuICAgICAgICAgICAgICByZXF1aXJlZDogYm9vbGVhbiA9IHRydWUsIG1pbkxlbmd0aCA9IC0xLCBtYXhMZW5ndGggPSAtMSkge1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xyXG4gICAgdGhpcy5sID0gbDtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmlkID0gbmFtZTtcclxuICAgIHRoaXMubG9hZGluZ05hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IG5hbWU7XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscyArIChbSW5wdXRUeXBlLk1vYmlsZSwgSW5wdXRUeXBlLlBob25lLCBJbnB1dFR5cGUuUGFzc3dvcmQsIElucHV0VHlwZS5FbWFpbCwgSW5wdXRUeXBlLk51bWJlciwgSW5wdXRUeXBlLlByaWNlLFxyXG4gICAgICBJbnB1dFR5cGUuTmF0aW9uYWxDb2RlLCBJbnB1dFR5cGUuTmF0aW9uYWxOdW0sIElucHV0VHlwZS5OYXRpb25hbENvZGVOdW0sIElucHV0VHlwZS5FY29ub21pY051bSwgSW5wdXRUeXBlLlNoZWJhLFxyXG4gICAgICBJbnB1dFR5cGUuUG9zdGFsQ29kZSwgSW5wdXRUeXBlLkRhdGUsIElucHV0VHlwZS5UaW1lLCBJbnB1dFR5cGUuQmlsbE51bWJlciwgSW5wdXRUeXBlLlVzZXJuYW1lLCBJbnB1dFR5cGUuVXJsXS5pbmNsdWRlcyh0eXBlKSA/ICcgbHRyJyA6ICcnKTtcclxuICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmRlZmF1bHQgPSB2YWx1ZSA9PSBudWxsID8gbnVsbCA6IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nID8gKHZhbHVlID09PSB0cnVlKSA6ICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBfLmNsb25lRGVlcCh2YWx1ZSkgOiBIZWxwZXJDbGFzcy5jbG9uZSh2YWx1ZSkpO1xyXG4gICAgdGhpcy5iYXNlUmVxdWlyZWQgPSByZXF1aXJlZDtcclxuICAgIHRoaXMucmVxdWlyZWQgPSByZXF1aXJlZDtcclxuICAgIHRoaXMuaW5FZGl0UmVxdWlyZWQgPSByZXF1aXJlZDtcclxuICAgIHRoaXMubWluTGVuZ3RoID0gdHlwZSA9PT0gSW5wdXRUeXBlLk1vYmlsZSB8fCB0eXBlID09PSBJbnB1dFR5cGUuUGhvbmUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLk5hdGlvbmFsTnVtIHx8IHR5cGUgPT09IElucHV0VHlwZS5FY29ub21pY051bSA/IDExIDpcclxuICAgICAgdHlwZSA9PT0gSW5wdXRUeXBlLk5hdGlvbmFsQ29kZSB8fCB0eXBlID09PSBJbnB1dFR5cGUuUG9zdGFsQ29kZSB8fCB0eXBlID09PSBJbnB1dFR5cGUuTmF0aW9uYWxDb2RlTnVtID8gMTAgOlxyXG4gICAgICB0eXBlID09PSBJbnB1dFR5cGUuVXNlcm5hbWUgPyA1IDpcclxuICAgICAgdHlwZSA9PT0gSW5wdXRUeXBlLlNoZWJhID8gMjQgOiBtaW5MZW5ndGg7XHJcbiAgICB0aGlzLm1heExlbmd0aCA9IHR5cGUgPT09IElucHV0VHlwZS5Nb2JpbGUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLlBob25lIHx8IHR5cGUgPT09IElucHV0VHlwZS5OYXRpb25hbE51bSB8fCB0eXBlID09PSBJbnB1dFR5cGUuTmF0aW9uYWxDb2RlTnVtID8gMTEgOlxyXG4gICAgICB0eXBlID09PSBJbnB1dFR5cGUuTmF0aW9uYWxDb2RlIHx8IHR5cGUgPT09IElucHV0VHlwZS5Qb3N0YWxDb2RlID8gMTAgOlxyXG4gICAgICB0eXBlID09PSBJbnB1dFR5cGUuRWNvbm9taWNOdW0gPyAxNCA6XHJcbiAgICAgIHR5cGUgPT09IElucHV0VHlwZS5Vc2VybmFtZSA/IDMwIDpcclxuICAgICAgdHlwZSA9PT0gSW5wdXRUeXBlLlNoZWJhID8gMjQgOiBtYXhMZW5ndGg7XHJcbiAgfVxyXG4gIGVudmlyb25tZW50OiBhbnkgPSBudWxsO1xyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB1cmwgPSBudWxsO1xyXG4gIHF1ZXJ5UGFyYW1zID0gbnVsbDtcclxuICB1cmxOZXdUYWIgPSBmYWxzZTtcclxuICBsb2FkaW5nTmFtZTogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIHRvb2x0aXA6IHN0cmluZztcclxuICBpZDogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZztcclxuICBhZGROZXcgPSBmYWxzZTtcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSBudWxsO1xyXG4gIHR5cGU6IElucHV0VHlwZTtcclxuICB2YWx1ZSA9IG51bGw7XHJcbiAgc2VhcmNoID0gbnVsbDtcclxuICBkZWZhdWx0ID0gbnVsbDtcclxuICBiYXNlUmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBpbkVkaXREaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGluRWRpdFZpc2libGUgPSB0cnVlO1xyXG4gIGluRWRpdFJlcXVpcmVkID0gdHJ1ZTtcclxuICBkaXNwbGF5TGFiZWwgPSB0cnVlO1xyXG4gIGxhYmVsOiBzdHJpbmcgPSBudWxsO1xyXG4gIHdpdGhDbGVhciA9IGZhbHNlO1xyXG4gIG1pbkxlbmd0aCA9IC0xO1xyXG4gIG1heExlbmd0aCA9IC0xO1xyXG4gIGVycm9yOiBJbnB1dEVycm9yID0gbnVsbDtcclxuICBhZGRNb2RhbDogTW9kYWxDbGFzcyA9IG51bGw7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIGJ1dHRvbiA9IG51bGw7XHJcbiAgaGFzQmFyY29kZVJlYWRlciA9IGZhbHNlO1xyXG4gIG9uQmFyY29kZVJlYWRlckNoYW5nZSA9IG51bGw7XHJcbiAgb25DbGlja0J1dHRvbjogKGlucCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgcHJvZ3Jlc3M6IFByb2dyZXNzID0gbnVsbDtcclxuICBvbkNsaWNrOiAoYnRuKSA9PiB2b2lkID0gbnVsbDtcclxuICBvbktleVVwOiAoaW5wKSA9PiB2b2lkID0gbnVsbDtcclxuICBvbktleURvd246IChlKSA9PiB2b2lkID0gbnVsbDtcclxuICBvcHRpb25zOiBPcHRpb25DbGFzc1tdID0gW107XHJcbiAgbWF0Y2g6IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIHJlbDogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgcmVsVXJsOiBzdHJpbmcgPSBudWxsO1xyXG4gIHRhYmxlOiBUYWJsZUNsYXNzO1xyXG4gIHN0eWxlID0ge307XHJcbiAgcG9zaXRpb24gPSAnYm90dG9tJztcclxuICBvbkNoYW5nZTogKHYsIGU/KSA9PiB2b2lkID0gbnVsbDtcclxuICBob3ZlciA9IC0xO1xyXG4gIHZpc2libGUgPSB0cnVlO1xyXG4gIG9wZW4gPSBmYWxzZTtcclxuICBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIG9ubHlDaGlsZCA9IHRydWU7XHJcbiAgYWxsb3dlZCA9IG51bGw7XHJcbiAgcm93ID0gbnVsbDtcclxuICByb3dzID0gW107XHJcbiAgbGV2ZWwgPSBudWxsO1xyXG4gIG1vZGFsOiBNb2RhbENsYXNzID0gbnVsbDtcclxuICBhZGRJY29uOiBJbnB1dENsYXNzID0gbnVsbDtcclxuICByZXF1ZXN0OiBhbnkgPSBudWxsO1xyXG4gIG5hbWVGdW46IChyKSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkZvY3VzSW46IChlKSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkZvY3VzT3V0OiAoZSkgPT4gdm9pZCA9IG51bGw7XHJcbiAgZm9jdXMoY2hhbmdlSW5kZXg6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge31cclxuICBjaGFuZ2VUeXBlOiAodDogSW5wdXRUeXBlKSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgc2V0VmFsdWU6ICh2LCBpc0VkaXQpID0+IHZvaWQgPSAodiwgaXNFZGl0KSA9PiB7IHRoaXMudmFsdWUgPSB2OyB9O1xyXG4gIHNldFNlYXJjaDogKHYpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICBjbGVhcjogKCkgPT4gdm9pZCA9ICgpID0+IHsgdGhpcy52YWx1ZSA9IG51bGw7IH07XHJcbiAgZm9jdXNPdXQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICBkYXRhOiAoKSA9PiBhbnkgPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcclxuICB9XHJcbiAgaXNWYWxpZDogKCkgPT4gYm9vbGVhbiA9ICgpID0+IHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBsb2FkKHUgPSBudWxsLCBkb25lOiAoKSA9PiB2b2lkID0gbnVsbCk6IHZvaWR7XHJcbiAgICB1ID0gdSA/IHUgOiB0aGlzLnVybDtcclxuICAgIGlmICh1KXtcclxuICAgICAgdGhpcy5vcHRpb25zID0gW107XHJcbiAgICAgIHRoaXMuaG92ZXIgPSAtMTtcclxuICAgICAgdGhpcy5yb3dzID0gW107XHJcbiAgICAgIGlmICh0eXBlb2YgdSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBpZiAoIXUuaW5jbHVkZXMoJ3t9Jykpe1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMucmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sKS5zZW5kKHUgPyB1IDogdGhpcy51cmwsIE1ldGhvZC5Qb3N0LCBudWxsLCBudWxsLCAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2hSYWRpbyB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2ggfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0IHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSB8fFxyXG4gICAgICAgICAgICAgIHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNIHx8XHJcbiAgICAgICAgICAgICAgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRiB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVHIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlJhZGlvKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgciA9IHRoaXMuZ2V0T3B0aW9ucyhyZXN1bHQsIG51bGwpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHMgPSByZXN1bHQuZmluZCh4ID0+IHguU2VsZWN0ZWQpO1xyXG4gICAgICAgICAgICAgIGlmIChzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gcy5JZC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNldE9wdGlvbnMocik7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBJbnB1dFR5cGUuVHJlZSB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5UcmVlUmFkaW8pIHtcclxuICAgICAgICAgICAgICByZXN1bHQuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgICAgICAgIHguSWQgPSB4LklkLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICB4LlBhcmVudElkID0gKHguUGFyZW50SWQgPz8gbnVsbCkgIT09IG51bGwgPyB4LlBhcmVudElkLnRvU3RyaW5nKCkgOiBudWxsO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMucm93cyA9IHRoaXMuZ2V0Um93cyhyZXN1bHQsIG51bGwpO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZG9uZSkge1xyXG4gICAgICAgICAgICAgIGRvbmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sIHRoaXMucmVxdWVzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgICAgICBFbnVtVXRpbHMuZ2V0S2V5c0FuZFZhbHVlcyh1KS5mb3JFYWNoKChrKSA9PiB7XHJcbiAgICAgICAgICByZXN1bHQucHVzaCh7TmFtZTogdGhpcy5sKGsua2V5KSwgSWQ6IGsudmFsdWUudG9TdHJpbmcoKX0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2hSYWRpbyB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2ggfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0IHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSB8fFxyXG4gICAgICAgICAgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0gfHxcclxuICAgICAgICAgIHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUYgfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRyB8fFxyXG4gICAgICAgICAgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuUmFkaW8gfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2xpZGUpIHtcclxuICAgICAgICAgIGNvbnN0IHIgPSB0aGlzLmdldE9wdGlvbnMocmVzdWx0LCBudWxsKTtcclxuICAgICAgICAgIHRoaXMuc2V0T3B0aW9ucyhyKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlRyZWUgfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuVHJlZVJhZGlvKSB7XHJcbiAgICAgICAgICB0aGlzLnJvd3MgPSB0aGlzLmdldFJvd3MocmVzdWx0LCBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgc2V0T3B0aW9ucyhyKTogdm9pZHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHI7XHJcbiAgICBpZiAodGhpcy52YWx1ZSAhPSBudWxsKXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlLCB0cnVlKTtcclxuICAgICAgfSwgNTAwKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRPcHRpb25EYXRhKCk6IGFueXtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmluZCh4ID0+IHgudmFsdWUgPT09IHRoaXMudmFsdWUpPy5vcHRpb24gPz8gbnVsbDtcclxuICB9XHJcbiAgZ2V0T3B0aW9ucyhyLCBwLCB0cmVlID0gdHJ1ZSk6IE9wdGlvbkNsYXNzW117XHJcbiAgICByZXR1cm4gci5maWx0ZXIoeCA9PiAocCA9PSBudWxsICYmICF4LlBhcmVudElkKSB8fCB4LlBhcmVudElkID09PSBwIHx8ICF0cmVlKVxyXG4gICAgICAubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbyA9IG5ldyBPcHRpb25DbGFzcyh4Lk5hbWUsIHguSWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNIHx8XHJcbiAgICAgICAgICB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVGIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUcgfHwgdGhpcy5uYW1lID09PSAnQ2FySWQnKXtcclxuICAgICAgICAgIG8ubmFtZSA9IEhlbHBlckNsYXNzLlRvUmVhZGFibGVQbGFxdWUoby5uYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgby5zZWFyY2ggPSB4LlNlYXJjaDtcclxuICAgICAgICBvLm9wdGlvbiA9IHg7XHJcbiAgICAgICAgby5vcHRpb25zID0gdHJlZSA/IHRoaXMuZ2V0T3B0aW9ucyhyLCB4LklkKSA6IFtdO1xyXG4gICAgICAgIHJldHVybiBvO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgZ2V0Um93cyhyLCBwKTogVHJlZVJvd0NsYXNzW117XHJcbiAgICBjb25zdCBsID0gW107XHJcbiAgICByLmZpbHRlcih4ID0+IChwID09IG51bGwgJiYgIXguUGFyZW50SWQpIHx8IHguUGFyZW50SWQgPT09IHApLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgbGV0IGMgPSB0aGlzLmdldFJvd3MociwgeC5JZCk7XHJcbiAgICAgIGMgPSBjLmxlbmd0aCA+IDAgPyBjIDogeC5DaGlsZHJlbiA/IHguQ2hpbGRyZW4ubWFwKGEgPT4gbmV3IFRyZWVSb3dDbGFzcyhhLk5hbWUsIGEuSWQsIGEuU2VsZWN0ZWQpKSA6IFtdO1xyXG4gICAgICBsZXQgcyA9IHguU2VsZWN0ZWQgPT09IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLm9ubHlDaGlsZCl7XHJcbiAgICAgICAgcyA9IGMubGVuZ3RoID09PSAwID8geC5TZWxlY3RlZCA6IChjLmZpbmQoeSA9PiB5LnNlbGVjdGVkID09PSBmYWxzZSB8fCB5LnNlbGVjdGVkID09PSBudWxsKSA9PSBudWxsID8gdHJ1ZSA6XHJcbiAgICAgICAgICAoYy5maW5kKHkgPT4geS5zZWxlY3RlZCA9PT0gdHJ1ZSB8fCB5LnNlbGVjdGVkID09PSBudWxsKSAhPSBudWxsID8gbnVsbCA6IGZhbHNlKSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgbiA9IHRoaXMubmFtZUZ1biA/IHRoaXMubmFtZUZ1bih4KSA6IHguTmFtZTtcclxuICAgICAgbC5wdXNoKG5ldyBUcmVlUm93Q2xhc3MobiwgeC5JZCwgcywgYykpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbDtcclxuICB9XHJcbiAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXRMYWJlbCh0aGlzKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWQob3B0czogT3B0aW9uQ2xhc3NbXSA9IHRoaXMub3B0aW9ucyk6IGFueVtde1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWRPcHRpb25zKG9wdHMpLm1hcCh4ID0+IHgudmFsdWUpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZE5hbWUob3B0czogT3B0aW9uQ2xhc3NbXSA9IHRoaXMub3B0aW9ucyk6IGFueVtde1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWRPcHRpb25zKG9wdHMpLm1hcCh4ID0+IHguc2VhcmNoKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRPcHRpb25zKG9wdHM6IE9wdGlvbkNsYXNzW10gPSB0aGlzLm9wdGlvbnMpOiBhbnlbXXtcclxuICAgIGxldCBsID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGYgb2Ygb3B0cyl7XHJcbiAgICAgIGlmIChmLnNlbGVjdGVkICYmICghdGhpcy5vbmx5Q2hpbGQgfHwgZi5vcHRpb25zLmxlbmd0aCA9PT0gMCkpe1xyXG4gICAgICAgIGwucHVzaChmKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBycyA9IHRoaXMuZ2V0U2VsZWN0ZWRPcHRpb25zKGYub3B0aW9ucyk7XHJcbiAgICAgIGwgPSBsLmNvbmNhdChycyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbC5zb3J0KChhLCBiKSA9PiBhLnByaW9yaXR5IC0gYi5wcmlvcml0eSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93cyhyb3dzOiBhbnlbXSA9IHRoaXMucm93cyk6IGFueVtde1xyXG4gICAgbGV0IGwgPSBbXTtcclxuICAgIGZvciAoY29uc3QgZiBvZiByb3dzKXtcclxuICAgICAgaWYgKGYuc2VsZWN0ZWQgJiYgKCF0aGlzLm9ubHlDaGlsZCB8fCBmLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpe1xyXG4gICAgICAgIGwucHVzaChmKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBycyA9IHRoaXMuZ2V0U2VsZWN0ZWRSb3dzKGYuY2hpbGRyZW4pO1xyXG4gICAgICBsID0gbC5jb25jYXQocnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGw7XHJcbiAgfVxyXG4gIGdldEFsbFJvd3Mocm93czogYW55W10gPSB0aGlzLnJvd3MpOiBhbnlbXXtcclxuICAgIGxldCBsID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGYgb2Ygcm93cyl7XHJcbiAgICAgIGlmICghdGhpcy5vbmx5Q2hpbGQgfHwgZi5jaGlsZHJlbi5sZW5ndGggPT09IDApe1xyXG4gICAgICAgIGwucHVzaChmKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBycyA9IHRoaXMuZ2V0QWxsUm93cyhmLmNoaWxkcmVuKTtcclxuICAgICAgbCA9IGwuY29uY2F0KHJzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBsO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE9wdGlvbkNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbkNsYXNzW10gPSBbXSwgY2xzOiBzdHJpbmcgPSBudWxsLCBkaXM6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICB0aGlzLmNsYXNzID0gY2xzO1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpcztcclxuICB9XHJcbiAgb3B0aW9uO1xyXG4gIHNlYXJjaDogc3RyaW5nO1xyXG4gIGNsYXNzOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgc2hvdyA9IHRydWU7XHJcbiAgc2VsZWN0ZWQgPSBmYWxzZTtcclxuICBwcmlvcml0eSA9IDA7XHJcbiAgcGFyZW50OiBPcHRpb25DbGFzcyA9IG51bGw7XHJcbiAgb3B0aW9uczogT3B0aW9uQ2xhc3NbXTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgZGlzYWJsZWQgPSBmYWxzZTtcclxufVxyXG5leHBvcnQgY2xhc3MgRGF5Q2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGRheTogbnVtYmVyLCB0b2RheTogYm9vbGVhbiwgc2VsZWN0ZWQ6IGJvb2xlYW4sIGFjdGl2ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kYXkgPSBkYXk7XHJcbiAgICB0aGlzLnRvZGF5ID0gdG9kYXk7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XHJcbiAgICB0aGlzLmFjdGl2ZSA9IGFjdGl2ZTtcclxuICB9XHJcbiAgZGF5OiBudW1iZXI7XHJcbiAgdG9kYXk6IGJvb2xlYW47XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbiAgYWN0aXZlOiBib29sZWFuO1xyXG4gIGNsYXNzOiBzdHJpbmcgPSBudWxsO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBUcmVlUm93Q2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZSwgY2hpbGRyZW46IFRyZWVSb3dDbGFzc1tdID0gW10pIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XHJcbiAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgfVxyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG4gIHBhcmVudDogVHJlZVJvd0NsYXNzO1xyXG4gIGNoaWxkcmVuOiBUcmVlUm93Q2xhc3NbXTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihsOiAoaywgdj8pID0+IHN0cmluZywgbmFtZTogc3RyaW5nLCBjbHM6IHN0cmluZyA9ICcnLCByb3dzOiBBY2NvcmRpb25Sb3dDbGFzc1tdKSB7XHJcbiAgICB0aGlzLmwgPSBsO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMuY2xhc3MgPSBjbHM7XHJcbiAgICB0aGlzLnJvd3MgPSByb3dzO1xyXG4gIH1cclxuICBsOiAoaywgdj8pID0+IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY2xhc3M6IHN0cmluZztcclxuICByb3dzOiBBY2NvcmRpb25Sb3dDbGFzc1tdO1xyXG4gIGhhc0RlbGV0ZSA9IGZhbHNlO1xyXG4gIGRpc3BsYXlMYWJlbCA9IGZhbHNlO1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBhY2Nlc3MgPSB0cnVlO1xyXG4gIG9uRGVsZXRlOiAocm93KSA9PiB2b2lkID0gbnVsbDtcclxuICBjaGVjaygpOiBib29sZWFue1xyXG4gICAgZm9yIChjb25zdCByb3cgb2YgdGhpcy5yb3dzKXtcclxuICAgICAgaWYgKCFyb3cuZm9ybS5jaGVjaygpKXtcclxuICAgICAgICByb3cub3BlbigpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uUm93Q2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZm9ybTogRm9ybUNsYXNzID0gbnVsbCwgdGFibGU6IFRhYmxlQ2xhc3MgPSBudWxsKSB7XHJcbiAgICB0aGlzLmlkID0gaWQ7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5mb3JtID0gZm9ybTtcclxuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcclxuICB9XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgc2hvdyA9IHRydWU7XHJcbiAgZmlyc3RUYWJsZSA9IHRydWU7XHJcbiAgZm9ybTogRm9ybUNsYXNzO1xyXG4gIGNoYXJ0OiBDaGFydENsYXNzO1xyXG4gIHRhYmxlOiBUYWJsZUNsYXNzO1xyXG4gIHRvZ2dsZSgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAkKCcjQWNjb3JkaW9uUm93JyArIHRoaXMuaWQgKyAnID4gLmhlYWRlcicpLmNsaWNrKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuICBvcGVuKCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghJCgnI0FjY29yZGlvblJvdycgKyB0aGlzLmlkICsgJyA+IC5jb250ZW50JykuaGFzQ2xhc3MoJ29wZW4nKSl7XHJcbiAgICAgICAgJCgnI0FjY29yZGlvblJvdycgKyB0aGlzLmlkICsgJyA+IC5oZWFkZXInKS5jbGljaygpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
673
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9mb3JtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2pCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFJN0MsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFHNUIsTUFBTSxPQUFPLFFBQVE7SUFDbkIsWUFBWSxJQUFZO1FBS3hCLFlBQU8sR0FBRyxHQUFHLENBQUM7UUFFZCxVQUFLLEdBQWUsSUFBSSxDQUFDO1FBQ3pCLFlBQU8sR0FBZSxJQUFJLENBQUM7UUFDM0IsV0FBTSxHQUFtQyxJQUFJLENBQUM7UUFDOUMsVUFBSyxHQUFHLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUM7Z0JBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2hCO1lBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUUsR0FBRyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNuRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFDO29CQUN4QixhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM3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TyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQVksRUFBVSxFQUFFLElBQVksRUFBRSxPQUFrQixJQUFJLEVBQUUsUUFBb0IsSUFBSTtRQVF0RixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osZUFBVSxHQUFHLElBQUksQ0FBQztRQVJoQixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFRRCxNQUFNO1FBQ0osVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0RCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBQ0QsSUFBSTtRQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBQztnQkFDakUsQ0FBQyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3JEO1FBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBFbnVtVXRpbHMsXHJcbiAgSW5wdXRFcnJvcixcclxuICBJbnB1dFR5cGUsXHJcbiAgTWV0aG9kLFxyXG4gIFJlc3VsdFN0YXR1c0VudW1cclxufSBmcm9tICcuL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuL2hlbHBlci5jbGFzcyc7XHJcbmltcG9ydCB7UmVxdWVzdENsYXNzfSBmcm9tICcuL3JlcXVlc3QuY2xhc3MnO1xyXG5pbXBvcnQge1RhYmxlQ2xhc3N9IGZyb20gJy4vdGFibGUuY2xhc3MnO1xyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcbmltcG9ydCB7TW9kYWxDbGFzc30gZnJvbSAnLi9tb2RhbC5jbGFzcyc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHtDaGFydENsYXNzfSBmcm9tICcuL2NoYXJ0LmNsYXNzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9ncmVzcyB7XHJcbiAgY29uc3RydWN0b3Ioc2VjczogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNlY3MgPSB0aGlzLnJlbWFpblNlY3MgPSBzZWNzO1xyXG4gIH1cclxuICBzZWNzOiBudW1iZXI7XHJcbiAgcmVtYWluU2VjczogbnVtYmVyO1xyXG4gIHBlcmNlbnQgPSAxMDA7XHJcbiAgaW50ZXJWYWw7XHJcbiAgb25FbmQ6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uU3RhcnQ6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uVGljazogKG06IG51bWJlciwgczogbnVtYmVyKSA9PiB2b2lkID0gbnVsbDtcclxuICBzdGFydCA9ICgpID0+IHtcclxuICAgIHRoaXMucmVtYWluU2VjcyA9IHRoaXMuc2VjcztcclxuICAgIHRoaXMucGVyY2VudCA9IDEwMDtcclxuICAgIGlmICh0aGlzLm9uU3RhcnQpe1xyXG4gICAgICB0aGlzLm9uU3RhcnQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJWYWwgPSBzZXRJbnRlcnZhbCggKCkgPT4ge1xyXG4gICAgICB0aGlzLnBlcmNlbnQgPSAodGhpcy5yZW1haW5TZWNzIC8gdGhpcy5zZWNzKSAqIDEwMDtcclxuICAgICAgaWYgKHRoaXMucmVtYWluU2VjcyA9PT0gMCl7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVyVmFsKTtcclxuICAgICAgICBpZiAodGhpcy5vbkVuZCl7XHJcbiAgICAgICAgICB0aGlzLm9uRW5kKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcih0aGlzLnJlbWFpblNlY3MpKXtcclxuICAgICAgICBjb25zdCBtID0gTWF0aC5mbG9vcih0aGlzLnJlbWFpblNlY3MgLyA2MCk7XHJcbiAgICAgICAgY29uc3QgcyA9IHRoaXMucmVtYWluU2VjcyAlIDYwO1xyXG4gICAgICAgIHRoaXMub25UaWNrKG0sIHMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVtYWluU2VjcyAtPSAwLjU7XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY2xhc3MgRm9ybUNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihlbnZpcm9ubWVudDogYW55LCBsOiAoaywgdj8pID0+IHN0cmluZywgbmFtZTogc3RyaW5nID0gbnVsbCwgcGVybWlzc2lvbjogYm9vbGVhbiA9IHRydWUsXHJcbiAgICAgICAgICAgICAgdXJsOiBzdHJpbmcgPSBudWxsLCBjbHM6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLnVybCA9IHVybDtcclxuICAgIHRoaXMuYmFzZVVybCA9IHVybDtcclxuICAgIHRoaXMuY2xhc3MgPSBjbHM7XHJcbiAgICB0aGlzLnBlcm1pc3Npb24gPSBwZXJtaXNzaW9uO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMuaWQgPSB0aGlzLm5hbWU7XHJcbiAgfVxyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIHBlcm1pc3Npb246IGJvb2xlYW47XHJcbiAgZW52aXJvbm1lbnQ6IGFueSA9IG51bGw7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGlzRWRpdCA9IGZhbHNlO1xyXG4gIHN1Yk5hbWU6IHN0cmluZyA9IG51bGw7XHJcbiAgaWQ6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIGJhc2VVcmw6IHN0cmluZztcclxuICB1cmw6IHN0cmluZztcclxuICBtZXRob2Q6IE1ldGhvZCA9IE1ldGhvZC5Qb3N0O1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBzdHlsZToge307XHJcbiAgb25Ub3AgPSBmYWxzZTtcclxuICBkaXNwbGF5TGFiZWwgPSB0cnVlO1xyXG4gIHJlcXVlc3Q6IGFueSA9IG51bGw7XHJcbiAgaW5wdXRzOiBJbnB1dENsYXNzW10gPSBbXTtcclxuICBvblN1Y2Nlc3NCYXNlOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvblN1Y2Nlc3M6IChyZXN1bHQpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uRmFpbGVkOiAobWVzc2FnZSwgcmVzKSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkxvYWQ6IChyZXN1bHQpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uQmVmb3JlU3VibWl0OiAoKSA9PiBib29sZWFuID0gbnVsbDtcclxuICBvbkhpZGVNb2RhbDogKCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25TaG93TW9kYWw6ICgpID0+IHZvaWQgPSBudWxsO1xyXG5cclxuICBsb2FkRGF0YSh1cmwpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCkuc2VuZCh1cmwsIE1ldGhvZC5Qb3N0LCBudWxsLCBudWxsLCAocmVzdWx0KSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YShyZXN1bHQpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLm9uTG9hZCl7XHJcbiAgICAgICAgICB0aGlzLm9uTG9hZChyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgNTAwKTtcclxuICAgIH0sIChtKSA9PiB7XHJcbiAgICAgIGlmIChtID09PSAnRm9ybUJhc2VFcnJvckFjY2VzcycgfHwgbSA9PT0gJ0Zvcm1CYXNlRXJyb3JQZXJtaXNzaW9uJyl7XHJcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBmb2N1cygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGkgPSB0aGlzLmlucHV0cy5maW5kKHggPT4gIXguZGlzYWJsZWQgJiYgeC50eXBlICE9PSBJbnB1dFR5cGUuTGFiZWwgJiYgeC50eXBlICE9PSBJbnB1dFR5cGUuSGlkZGVuICYmXHJcbiAgICAgIHgudHlwZSAhPT0gSW5wdXRUeXBlLkNvbnN0YW50ICYmIHgudHlwZSAhPT0gSW5wdXRUeXBlLlN1Ym1pdCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5CdXR0b24gJiYgeC50eXBlICE9PSBJbnB1dFR5cGUuSWNvbiAmJlxyXG4gICAgICB4LnR5cGUgIT09IElucHV0VHlwZS5DaGVjayk7XHJcbiAgICBpZiAoaSl7XHJcbiAgICAgIGkuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgc3VibWl0KG9uU3VibWl0ID0gbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNoZWNrKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub25CZWZvcmVTdWJtaXQgJiYgIXRoaXMub25CZWZvcmVTdWJtaXQoKSl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGJ0bnMgPSB0aGlzLmlucHV0cy5maWx0ZXIoeCA9PiB4LnR5cGUgPT09IElucHV0VHlwZS5TdWJtaXQpO1xyXG4gICAgZm9yIChjb25zdCBidG4gb2YgYnRucyl7XHJcbiAgICAgIGlmIChidG4ubG9hZGluZyl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGJ0bi5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGEoKTtcclxuICAgIGlmIChvblN1Ym1pdCl7XHJcbiAgICAgIGZvciAoY29uc3QgYnRuIG9mIGJ0bnMpe1xyXG4gICAgICAgIGJ0bi5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgb25TdWJtaXQoZGF0YSk7XHJcbiAgICAgIGlmICh0aGlzLm9uU3VjY2Vzcykge1xyXG4gICAgICAgIHRoaXMub25TdWNjZXNzKGRhdGEpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCkuZ2V0Q2xpZW50KHRoaXMucmVxdWVzdCwgdGhpcy51cmwsIHRoaXMubWV0aG9kLCBkYXRhLFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uU3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHRoaXMub25TdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25TdWNjZXNzKHJlcy5yZXN1bHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMub25TdWNjZXNzQmFzZSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uU3VjY2Vzc0Jhc2UocmVzLnJlc3VsdCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBtID0gJyc7XHJcbiAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5Ob3RSZWdpc3RlcmVkKSB7XHJcbiAgICAgICAgICAgIG0gPSB0aGlzLmwoJ0Zvcm1CYXNlRXJyb3JOb3RSZWdpc3RlcmVkJyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uRXhwaXJlZFJlZ2lzdGVyZWQpIHtcclxuICAgICAgICAgICAgbSA9IHRoaXMubCgnRm9ybUJhc2VFcnJvckV4cGlyZWRSZWdpc3RlcmVkJyk7XHJcbiAgICAgICAgICB9ICBlbHNlIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLkludmFsaWRJcCkge1xyXG4gICAgICAgICAgICBtID0gdGhpcy5sKCdGb3JtQmFzZUVycm9ySW52YWxpZElwJyk7XHJcbiAgICAgICAgICB9ICBlbHNlIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLk5vQ3JlZGl0KSB7XHJcbiAgICAgICAgICAgIG0gPSB0aGlzLmwoJ0Zvcm1CYXNlRXJyb3JOb0NyZWRpdCcpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLlVuYXV0aG9yaXplZCkge1xyXG4gICAgICAgICAgICBtID0gdGhpcy5sKCdGb3JtQmFzZUVycm9yRXhwaXJlZCcpO1xyXG4gICAgICAgICAgICBIZWxwZXJDbGFzcy5lcmFzZUNvb2tpZSgnVE9LRU4nKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5Ob3RBY2Nlc3MpIHtcclxuICAgICAgICAgICAgbSA9IHRoaXMubCgnRm9ybUJhc2VFcnJvckFjY2VzcycpO1xyXG4gICAgICAgICAgfSAgZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5Ob3RQZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgIG0gPSB0aGlzLmwoJ0Zvcm1CYXNlRXJyb3JQZXJtaXNzaW9uJyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlcy5tZXNzYWdlID09PSAnc3RyaW5nJyl7XHJcbiAgICAgICAgICAgICAgY29uc3QgYW0gPSByZXMubWVzc2FnZS5zcGxpdCgnOicpO1xyXG4gICAgICAgICAgICAgIG0gPSB0aGlzLmwoYW1bMF0sIGFtLmxlbmd0aCA+IDEgPyBhbS5zbGljZSgxKSA6IG51bGwpO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cclxuICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1zZyBpbiByZXMubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gbm9pbnNwZWN0aW9uIEpTVW5maWx0ZXJlZEZvckluTG9vcFxyXG4gICAgICAgICAgICAgICAgbSA9IHRoaXMubChtc2csIHJlcy5tZXNzYWdlW21zZ10pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNldEVycm9yKHJlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAobSkge1xyXG4gICAgICAgICAgICBIZWxwZXJDbGFzcy5hZGROb3RpZmljYXRpb24obSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5vbkZhaWxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLm9uRmFpbGVkKHJlcy5tZXNzYWdlLCByZXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGNvbnN0IGJ0biBvZiBidG5zKXtcclxuICAgICAgICAgIGJ0bi5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgSGVscGVyQ2xhc3MuYWRkTm90aWZpY2F0aW9uKHRoaXMubCgnRXJyb3InKSk7XHJcbiAgICAgICAgaWYgKHRoaXMub25GYWlsZWQpIHtcclxuICAgICAgICAgIHRoaXMub25GYWlsZWQoJ0Vycm9yJywgcmVzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChjb25zdCBidG4gb2YgYnRucyl7XHJcbiAgICAgICAgICBidG4ubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgY2hlY2soKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xyXG4gICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnAgPT4ge1xyXG4gICAgICBpZiAoIWlucC5pc1ZhbGlkKCkpIHtcclxuICAgICAgICBpZiAodmFsaWQpe1xyXG4gICAgICAgICAgaW5wLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhbGlkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZhbGlkO1xyXG4gIH1cclxuICBjbGVhcihpbnNlcnRBY2Nlc3MgPSB0cnVlKTogdm9pZCB7XHJcbiAgICB0aGlzLm1ldGhvZCA9IE1ldGhvZC5Qb3N0O1xyXG4gICAgdGhpcy51cmwgPSB0aGlzLmJhc2VVcmw7XHJcbiAgICB0aGlzLnNldEJ1dHRvbnModGhpcy5vblRvcCwgZmFsc2UsIGluc2VydEFjY2VzcywgZmFsc2UpO1xyXG4gICAgdGhpcy5jbGVhcklucHV0cygpO1xyXG4gICAgaWYgKHRoaXMub25Ub3AgJiYgIXRoaXMuaXNFZGl0KXtcclxuICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0VkaXQgPSBmYWxzZTtcclxuICB9XHJcbiAgY2xlYXJJbnB1dHMoKTogdm9pZHtcclxuICAgIHRoaXMuaW5wdXRzLmZpbHRlcih4ID0+IHgudHlwZSAhPT0gSW5wdXRUeXBlLkNvbnN0YW50KS5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGlucC5jbGVhcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldEJ1dHRvbnMoZm9ybU9uVG9wLCBlZGl0OiBib29sZWFuLCBpbnNlcnRBY2Nlc3MgPSBmYWxzZSwgdXBkYXRlQWNjZXNzID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IHMgPSB0aGlzLmlucHV0cy5maW5kKHggPT4geC50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KTtcclxuICAgIGlmICghcyl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHMuZGlzYWJsZWQgPSAhKChlZGl0ICYmIHVwZGF0ZUFjY2VzcykgfHwgKCFlZGl0ICYmIGluc2VydEFjY2VzcykpO1xyXG4gICAgcy5uYW1lID0gcy5uYW1lICE9IG51bGwgPyAoZWRpdCA/ICdBY2NlcHQnIDogJ1NhdmUnKSA6IG51bGw7XHJcbiAgICBzLmNsYXNzID0gZWRpdCA/IHMuY2xhc3MucmVwbGFjZSgnZ3JlZW4nLCAnYmx1ZScpIDogcy5jbGFzcy5yZXBsYWNlKCdibHVlJywgJ2dyZWVuJyk7XHJcbiAgfVxyXG4gIGFkZEJ1dHRvbnMobmFtZSA9ICdTYXZlJywgY2xzID0gJ2dyZWVuJywgY2xlYXIgPSB0cnVlLCBpbnNlcnRBY2Nlc3MgPSB0cnVlLCBvblN1Ym1pdCA9IG51bGwpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN1Ym1pdCA9IHRoaXMuaW5wdXRzLmZpbmQoeCA9PiB4LnR5cGUgPT09IElucHV0VHlwZS5TdWJtaXQpID8/IG51bGw7XHJcbiAgICBpZiAoc3VibWl0ICE9IG51bGwpe1xyXG4gICAgICBzdWJtaXQuZGlzYWJsZWQgPSAhaW5zZXJ0QWNjZXNzO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBiciA9IG5ldyBJbnB1dENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCwgbnVsbCwgbnVsbCwgSW5wdXRUeXBlLkxhYmVsLFxyXG4gICAgICAodGhpcy5vblRvcCA/ICdzcGFjZScgOiAndW5kZXJsaW5lJykgKyAoY2xzLmluY2x1ZGVzKCdjb25maXJtLW1vZGFsJyA/ICcgbS12LTEwJyA6ICcnKSkpO1xyXG4gICAgY29uc3Qgc2F2ZSA9IG5ldyBJbnB1dENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCwgbmFtZSwgJ2ZhZCBmYS1jaGVjaycsIElucHV0VHlwZS5TdWJtaXQsXHJcbiAgICAgICdzYXZlLWZvcm0tYnRuICcgKyAodGhpcy5vblRvcCA/ICdoLTI1ICcgOiAnaC0zMCAnKSArIGNscyk7XHJcbiAgICBzYXZlLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3VibWl0KG9uU3VibWl0KTtcclxuICAgIH07XHJcbiAgICBzYXZlLmRpc2FibGVkID0gIWluc2VydEFjY2VzcztcclxuICAgIGlmICghY2xzLmluY2x1ZGVzKCdvbmx5LWljb24nKSl7XHJcbiAgICAgIHRoaXMuaW5wdXRzLnB1c2goYnIpO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICBzYXZlLmNsYXNzID0gc2F2ZS5jbGFzcy5yZXBsYWNlKCdzYXZlLWZvcm0tYnRuICcsICcnKS5yZXBsYWNlKCdoLTI1ICcsICdoLTMwICcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dHMucHVzaChzYXZlKTtcclxuICAgIGlmIChjbGVhcil7XHJcbiAgICAgIGNvbnN0IGVyYXNlID0gbmV3IElucHV0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sLCBudWxsLCAnZmFkIGZhLWVyYXNlcicsIElucHV0VHlwZS5CdXR0b24sXHJcbiAgICAgICAgJ2YtbCB3LXUgZ3JleSBlcmFzZS1mb3JtLWJ0biAnICsgKHRoaXMub25Ub3AgPyAnaC0yNSAnIDogJ2gtMzAgJykpO1xyXG4gICAgICBlcmFzZS5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9uVG9wKXtcclxuICAgICAgICAgIHRoaXMuY2xlYXIoaW5zZXJ0QWNjZXNzKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuY2xlYXJJbnB1dHMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuaW5wdXRzLnB1c2goZXJhc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBkYXRhKGQgPSBudWxsKTogYW55IHtcclxuICAgIGlmICh0aGlzLmlucHV0cy5maW5kSW5kZXgoeCA9PiB4LnR5cGUgPT09IElucHV0VHlwZS5GaWxlIHx8IHgudHlwZSA9PT0gSW5wdXRUeXBlLlVwbG9hZGVyKSA9PT0gLTEpe1xyXG4gICAgICBpZiAoZCA9PSBudWxsKXtcclxuICAgICAgICBkID0ge307XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICBpZiAoZCA9PSBudWxsKXtcclxuICAgICAgICBkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHNldEQgPSAobiwgdmwpID0+IHtcclxuICAgICAgaWYgKGQgaW5zdGFuY2VvZiBGb3JtRGF0YSl7XHJcbiAgICAgICAgaWYgKHZsIGluc3RhbmNlb2YgQXJyYXkpe1xyXG4gICAgICAgICAgZm9yIChjb25zdCB2IG9mIHZsKXtcclxuICAgICAgICAgICAgZC5hcHBlbmQobiwgdik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBkLmFwcGVuZChuLCB2bCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChkW25dID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIF8uc2V0KGQsIG4sIHZsKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGRbbl0gaW5zdGFuY2VvZiBBcnJheSl7XHJcbiAgICAgICAgICAgIGRbbl0ucHVzaCh2bCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkW25dID0gW2Rbbl0sIHZsXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGNvbnN0IHZsID0gaW5wLmRhdGEoKTtcclxuICAgICAgaWYgKHZsICE9PSBudWxsKXtcclxuICAgICAgICBpZiAodHlwZW9mIHZsID09PSAnb2JqZWN0JyAmJiAhKHZsIGluc3RhbmNlb2YgQXJyYXkpKXtcclxuICAgICAgICAgIGZvciAoY29uc3QgWyBrZXksIHZhbHVlIF0gb2YgT2JqZWN0LmVudHJpZXModmwpKSB7XHJcbiAgICAgICAgICAgIHNldEQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHNldEQoaW5wLm5hbWUsIHZsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGQ7XHJcbiAgfVxyXG4gIGpzb24oZCA9IG51bGwpOiB7fSB7XHJcbiAgICBpZiAoZCA9PSBudWxsKXtcclxuICAgICAgZCA9IHt9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnAgPT4ge1xyXG4gICAgICBjb25zdCB2bCA9IGlucC5kYXRhKCk7XHJcbiAgICAgIGlmICh2bCAhPT0gbnVsbCAmJiB2bCAhPT0gJycpe1xyXG4gICAgICAgIGlmICh2bCBpbnN0YW5jZW9mIEFycmF5KXtcclxuICAgICAgICAgIGZvciAoY29uc3QgdiBvZiB2bCl7XHJcbiAgICAgICAgICAgIGRbaW5wLm5hbWVdID0gdjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGRbaW5wLm5hbWVdID0gdmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkO1xyXG4gIH1cclxuICBzZXREYXRhKGQpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wID0+IHtcclxuICAgICAgY29uc3QgaXYgPSBfLmdldChkLCBpbnAubmFtZSkgPz8gbnVsbDtcclxuICAgICAgaWYgKGlucC50eXBlID09PSBJbnB1dFR5cGUuVmVoaWNsZSl7XHJcbiAgICAgICAgY29uc3QgaXZ0ID0gXy5nZXQoZCwgaW5wLm5hbWUgKyAnVHlwZScpO1xyXG4gICAgICAgIGlucC5zZXRWYWx1ZSh7VmFsdWU6IGl2LCBUeXBlOiBpdnR9LCB0cnVlKTtcclxuICAgICAgfWVsc2UgaWYgKGlucC50eXBlID09PSBJbnB1dFR5cGUuVmVoaWNsZVNlYXJjaCl7XHJcbiAgICAgICAgY29uc3QgaXZzID0gXy5nZXQoZCwgaW5wLm5hbWUucmVwbGFjZSgnSWQnLCAnJykpO1xyXG4gICAgICAgIGNvbnN0IGl2dCA9IF8uZ2V0KGQsIGlucC5uYW1lLnJlcGxhY2UoJ0lkJywgJ1R5cGUnKSk7XHJcbiAgICAgICAgaW5wLnNldFZhbHVlKHtTZWFyY2g6IGl2cywgVmFsdWU6IGl2LCBUeXBlOiBpdnR9LCB0cnVlKTtcclxuICAgICAgfWVsc2UgaWYgKGlucC50eXBlICE9PSBJbnB1dFR5cGUuTGFiZWwgfHwgaXYgIT0gbnVsbCl7XHJcbiAgICAgICAgaW5wLnNldFZhbHVlKGl2LCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWUgfHwgaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpe1xyXG4gICAgICAgIGNvbnN0IGl2cyA9IF8uZ2V0KGQsIGlucC5uYW1lLnJlcGxhY2UoJ0lkJywgJycpKTtcclxuICAgICAgICBpbnAuc2V0U2VhcmNoKGl2cyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRFcnJvcihyZXMpOiB2b2lkIHtcclxuICAgIGlmIChyZXMuZXJyb3IgIT0gbnVsbCl7XHJcbiAgICAgIGxldCBmID0gZmFsc2U7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpmb3JpblxyXG4gICAgICBmb3IgKGNvbnN0IGVyciBpbiByZXMuZXJyb3IpIHtcclxuICAgICAgICAvLyBub2luc3BlY3Rpb24gSlNVbmZpbHRlcmVkRm9ySW5Mb29wXHJcbiAgICAgICAgY29uc3QgaSA9IHRoaXMuaW5wdXRzLmZpbmQoeCA9PiB4Lm5hbWUgPT09IGVycik7XHJcbiAgICAgICAgaWYgKGkpe1xyXG4gICAgICAgICAgLy8gbm9pbnNwZWN0aW9uIEpTVW5maWx0ZXJlZEZvckluTG9vcFxyXG4gICAgICAgICAgaS5lcnJvciA9IElucHV0RXJyb3JbSW5wdXRFcnJvcltyZXMuZXJyb3JbZXJyXV1dO1xyXG4gICAgICAgICAgaWYgKCFmKXtcclxuICAgICAgICAgICAgaS5mb2N1cygpO1xyXG4gICAgICAgICAgICBmID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBJbnB1dENsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihlbnZpcm9ubWVudDogYW55LCBsOiAoaywgdj8pID0+IHN0cmluZywgbmFtZTogc3RyaW5nLCBpY29uOiBzdHJpbmcgPSBudWxsLFxyXG4gICAgICAgICAgICAgIHR5cGU6IElucHV0VHlwZSA9IElucHV0VHlwZS5UZXh0LCBjbHM6IHN0cmluZyA9ICcnLCB2YWx1ZSA9IG51bGwsXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IGJvb2xlYW4gPSB0cnVlLCBtaW5MZW5ndGggPSAtMSwgbWF4TGVuZ3RoID0gLTEpIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5pZCA9IG5hbWU7XHJcbiAgICB0aGlzLmxvYWRpbmdOYW1lID0gbmFtZTtcclxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBuYW1lO1xyXG4gICAgdGhpcy5pY29uID0gaWNvbjtcclxuICAgIHRoaXMuY2xhc3MgPSBjbHMgKyAoW0lucHV0VHlwZS5Nb2JpbGUsIElucHV0VHlwZS5QaG9uZSwgSW5wdXRUeXBlLlBhc3N3b3JkLCBJbnB1dFR5cGUuRW1haWwsIElucHV0VHlwZS5OdW1iZXIsIElucHV0VHlwZS5QcmljZSxcclxuICAgICAgSW5wdXRUeXBlLk5hdGlvbmFsQ29kZSwgSW5wdXRUeXBlLk5hdGlvbmFsTnVtLCBJbnB1dFR5cGUuTmF0aW9uYWxDb2RlTnVtLCBJbnB1dFR5cGUuRWNvbm9taWNOdW0sIElucHV0VHlwZS5TaGViYSxcclxuICAgICAgSW5wdXRUeXBlLlBvc3RhbENvZGUsIElucHV0VHlwZS5EYXRlLCBJbnB1dFR5cGUuVGltZSwgSW5wdXRUeXBlLkJpbGxOdW1iZXIsIElucHV0VHlwZS5Vc2VybmFtZSwgSW5wdXRUeXBlLlVybF0uaW5jbHVkZXModHlwZSkgPyAnIGx0cicgOiAnJyk7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5kZWZhdWx0ID0gdmFsdWUgPT0gbnVsbCA/IG51bGwgOiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyA/ICh2YWx1ZSA9PT0gdHJ1ZSkgOiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gXy5jbG9uZURlZXAodmFsdWUpIDogSGVscGVyQ2xhc3MuY2xvbmUodmFsdWUpKTtcclxuICAgIHRoaXMuYmFzZVJlcXVpcmVkID0gcmVxdWlyZWQ7XHJcbiAgICB0aGlzLnJlcXVpcmVkID0gcmVxdWlyZWQ7XHJcbiAgICB0aGlzLmluRWRpdFJlcXVpcmVkID0gcmVxdWlyZWQ7XHJcbiAgICB0aGlzLm1pbkxlbmd0aCA9IHR5cGUgPT09IElucHV0VHlwZS5Nb2JpbGUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLlBob25lIHx8IHR5cGUgPT09IElucHV0VHlwZS5OYXRpb25hbE51bSB8fCB0eXBlID09PSBJbnB1dFR5cGUuRWNvbm9taWNOdW0gPyAxMSA6XHJcbiAgICAgIHR5cGUgPT09IElucHV0VHlwZS5OYXRpb25hbENvZGUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLlBvc3RhbENvZGUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLk5hdGlvbmFsQ29kZU51bSA/IDEwIDpcclxuICAgICAgdHlwZSA9PT0gSW5wdXRUeXBlLlVzZXJuYW1lID8gNSA6XHJcbiAgICAgIHR5cGUgPT09IElucHV0VHlwZS5TaGViYSA/IDI0IDogbWluTGVuZ3RoO1xyXG4gICAgdGhpcy5tYXhMZW5ndGggPSB0eXBlID09PSBJbnB1dFR5cGUuTW9iaWxlIHx8IHR5cGUgPT09IElucHV0VHlwZS5QaG9uZSB8fCB0eXBlID09PSBJbnB1dFR5cGUuTmF0aW9uYWxOdW0gfHwgdHlwZSA9PT0gSW5wdXRUeXBlLk5hdGlvbmFsQ29kZU51bSA/IDExIDpcclxuICAgICAgdHlwZSA9PT0gSW5wdXRUeXBlLk5hdGlvbmFsQ29kZSB8fCB0eXBlID09PSBJbnB1dFR5cGUuUG9zdGFsQ29kZSA/IDEwIDpcclxuICAgICAgdHlwZSA9PT0gSW5wdXRUeXBlLkVjb25vbWljTnVtID8gMTQgOlxyXG4gICAgICB0eXBlID09PSBJbnB1dFR5cGUuVXNlcm5hbWUgPyAzMCA6XHJcbiAgICAgIHR5cGUgPT09IElucHV0VHlwZS5TaGViYSA/IDI0IDogbWF4TGVuZ3RoO1xyXG4gIH1cclxuICBlbnZpcm9ubWVudDogYW55ID0gbnVsbDtcclxuICBsOiAoaywgdj8pID0+IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdXJsID0gbnVsbDtcclxuICBxdWVyeVBhcmFtcyA9IG51bGw7XHJcbiAgdXJsTmV3VGFiID0gZmFsc2U7XHJcbiAgbG9hZGluZ05hbWU6IHN0cmluZztcclxuICBwbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuICB0b29sdGlwOiBzdHJpbmc7XHJcbiAgaWQ6IHN0cmluZztcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgYWRkTmV3ID0gZmFsc2U7XHJcbiAgY2xhc3M6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nID0gbnVsbDtcclxuICB0eXBlOiBJbnB1dFR5cGU7XHJcbiAgdmFsdWUgPSBudWxsO1xyXG4gIHNlYXJjaCA9IG51bGw7XHJcbiAgZGVmYXVsdCA9IG51bGw7XHJcbiAgYmFzZVJlcXVpcmVkOiBib29sZWFuO1xyXG4gIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgaW5FZGl0RGlzYWJsZWQgPSBmYWxzZTtcclxuICBpbkVkaXRWaXNpYmxlID0gdHJ1ZTtcclxuICBpbkVkaXRSZXF1aXJlZCA9IHRydWU7XHJcbiAgZGlzcGxheUxhYmVsID0gdHJ1ZTtcclxuICBsYWJlbDogc3RyaW5nID0gbnVsbDtcclxuICB3aXRoQ2xlYXIgPSBmYWxzZTtcclxuICBtaW5MZW5ndGggPSAtMTtcclxuICBtYXhMZW5ndGggPSAtMTtcclxuICBlcnJvcjogSW5wdXRFcnJvciA9IG51bGw7XHJcbiAgYWRkTW9kYWw6IE1vZGFsQ2xhc3MgPSBudWxsO1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBidXR0b24gPSBudWxsO1xyXG4gIGhhc0JhcmNvZGVSZWFkZXIgPSBmYWxzZTtcclxuICBvbkJhcmNvZGVSZWFkZXJDaGFuZ2UgPSBudWxsO1xyXG4gIG9uQ2xpY2tCdXR0b246IChpbnApID0+IHZvaWQgPSBudWxsO1xyXG4gIHByb2dyZXNzOiBQcm9ncmVzcyA9IG51bGw7XHJcbiAgb25DbGljazogKGJ0bikgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25LZXlVcDogKGlucCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25LZXlEb3duOiAoZSkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb3B0aW9uczogT3B0aW9uQ2xhc3NbXSA9IFtdO1xyXG4gIG1hdGNoOiBJbnB1dENsYXNzID0gbnVsbDtcclxuICByZWw6IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIHJlbFVybDogc3RyaW5nID0gbnVsbDtcclxuICB0YWJsZTogVGFibGVDbGFzcztcclxuICBzdHlsZSA9IHt9O1xyXG4gIHBvc2l0aW9uID0gJ2JvdHRvbSc7XHJcbiAgb25DaGFuZ2U6ICh2LCBlPykgPT4gdm9pZCA9IG51bGw7XHJcbiAgaG92ZXIgPSAtMTtcclxuICB2aXNpYmxlID0gdHJ1ZTtcclxuICBvcGVuID0gZmFsc2U7XHJcbiAgbXVsdGlwbGUgPSBmYWxzZTtcclxuICBvbmx5Q2hpbGQgPSB0cnVlO1xyXG4gIGFsbG93ZWQgPSBudWxsO1xyXG4gIHJvdyA9IG51bGw7XHJcbiAgcm93cyA9IFtdO1xyXG4gIGxldmVsID0gbnVsbDtcclxuICBtb2RhbDogTW9kYWxDbGFzcyA9IG51bGw7XHJcbiAgYWRkSWNvbjogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgcmVxdWVzdDogYW55ID0gbnVsbDtcclxuICBuYW1lRnVuOiAocikgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25Gb2N1c0luOiAoZSkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25Gb2N1c091dDogKGUpID0+IHZvaWQgPSBudWxsO1xyXG4gIGZvY3VzKGNoYW5nZUluZGV4OiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHt9XHJcbiAgY2hhbmdlVHlwZTogKHQ6IElucHV0VHlwZSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIHNldFZhbHVlOiAodiwgaXNFZGl0KSA9PiB2b2lkID0gKHYsIGlzRWRpdCkgPT4geyB0aGlzLnZhbHVlID0gdjsgfTtcclxuICBzZXRTZWFyY2g6ICh2KSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgY2xlYXI6ICgpID0+IHZvaWQgPSAoKSA9PiB7IHRoaXMudmFsdWUgPSBudWxsOyB9O1xyXG4gIGZvY3VzT3V0OiAoKSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgZGF0YTogKCkgPT4gYW55ID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XHJcbiAgfVxyXG4gIGlzVmFsaWQ6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgbG9hZCh1ID0gbnVsbCwgZG9uZTogKCkgPT4gdm9pZCA9IG51bGwpOiB2b2lke1xyXG4gICAgdSA9IHUgPyB1IDogdGhpcy51cmw7XHJcbiAgICBpZiAodSl7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xyXG4gICAgICB0aGlzLmhvdmVyID0gLTE7XHJcbiAgICAgIHRoaXMucm93cyA9IFtdO1xyXG4gICAgICBpZiAodHlwZW9mIHUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgaWYgKCF1LmluY2x1ZGVzKCd7fScpKXtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnJlcXVlc3QgPSBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCkuc2VuZCh1ID8gdSA6IHRoaXMudXJsLCBNZXRob2QuUG9zdCwgbnVsbCwgbnVsbCwgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0U2VhcmNoUmFkaW8gfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0U2VhcmNoIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdCB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUgfHxcclxuICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWUgfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlTSB8fFxyXG4gICAgICAgICAgICAgIHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUYgfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRyB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5SYWRpbykge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHIgPSB0aGlzLmdldE9wdGlvbnMocmVzdWx0LCBudWxsKTtcclxuICAgICAgICAgICAgICBjb25zdCBzID0gcmVzdWx0LmZpbmQoeCA9PiB4LlNlbGVjdGVkKTtcclxuICAgICAgICAgICAgICBpZiAocykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHMuSWQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRPcHRpb25zKHIpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlRyZWUgfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuVHJlZVJhZGlvKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0LmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgICAgICB4LklkID0geC5JZC50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgeC5QYXJlbnRJZCA9ICh4LlBhcmVudElkID8/IG51bGwpICE9PSBudWxsID8geC5QYXJlbnRJZC50b1N0cmluZygpIDogbnVsbDtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLnJvd3MgPSB0aGlzLmdldFJvd3MocmVzdWx0LCBudWxsKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy52YWx1ZSAhPSBudWxsKXtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMudmFsdWUsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRvbmUpIHtcclxuICAgICAgICAgICAgICBkb25lKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LCB0aGlzLnJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XHJcbiAgICAgICAgRW51bVV0aWxzLmdldEtleXNBbmRWYWx1ZXModSkuZm9yRWFjaCgoaykgPT4ge1xyXG4gICAgICAgICAgcmVzdWx0LnB1c2goe05hbWU6IHRoaXMubChrLmtleSksIElkOiBrLnZhbHVlLnRvU3RyaW5nKCl9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAodGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0U2VhcmNoUmFkaW8gfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0U2VhcmNoIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdCB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUgfHxcclxuICAgICAgICAgIHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNIHx8XHJcbiAgICAgICAgICB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVGIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZUcgfHxcclxuICAgICAgICAgIHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlJhZGlvIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNsaWRlKSB7XHJcbiAgICAgICAgICBjb25zdCByID0gdGhpcy5nZXRPcHRpb25zKHJlc3VsdCwgbnVsbCk7XHJcbiAgICAgICAgICB0aGlzLnNldE9wdGlvbnMocik7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IElucHV0VHlwZS5UcmVlIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlRyZWVSYWRpbykge1xyXG4gICAgICAgICAgdGhpcy5yb3dzID0gdGhpcy5nZXRSb3dzKHJlc3VsdCwgbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldE9wdGlvbnMocik6IHZvaWR7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSByO1xyXG4gICAgaWYgKHRoaXMudmFsdWUgIT0gbnVsbCl7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSwgdHJ1ZSk7XHJcbiAgICAgIH0sIDUwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkT3B0aW9uRGF0YSgpOiBhbnl7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbmQoeCA9PiB4LnZhbHVlID09PSB0aGlzLnZhbHVlKT8ub3B0aW9uID8/IG51bGw7XHJcbiAgfVxyXG4gIGdldE9wdGlvbnMociwgcCwgdHJlZSA9IHRydWUpOiBPcHRpb25DbGFzc1tde1xyXG4gICAgcmV0dXJuIHIuZmlsdGVyKHggPT4gKHAgPT0gbnVsbCAmJiAheC5QYXJlbnRJZCkgfHwgeC5QYXJlbnRJZCA9PT0gcCB8fCAhdHJlZSlcclxuICAgICAgLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG8gPSBuZXcgT3B0aW9uQ2xhc3MoeC5OYW1lLCB4LklkLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWUgfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlTSB8fFxyXG4gICAgICAgICAgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlRiB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVHIHx8IHRoaXMubmFtZSA9PT0gJ0NhcklkJyl7XHJcbiAgICAgICAgICBvLm5hbWUgPSBIZWxwZXJDbGFzcy5Ub1JlYWRhYmxlUGxhcXVlKG8ubmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG8uc2VhcmNoID0geC5TZWFyY2g7XHJcbiAgICAgICAgby5vcHRpb24gPSB4O1xyXG4gICAgICAgIG8ub3B0aW9ucyA9IHRyZWUgPyB0aGlzLmdldE9wdGlvbnMociwgeC5JZCkgOiBbXTtcclxuICAgICAgICByZXR1cm4gbztcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGdldFJvd3MociwgcCk6IFRyZWVSb3dDbGFzc1tde1xyXG4gICAgY29uc3QgbCA9IFtdO1xyXG4gICAgci5maWx0ZXIoeCA9PiAocCA9PSBudWxsICYmICF4LlBhcmVudElkKSB8fCB4LlBhcmVudElkID09PSBwKS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGxldCBjID0gdGhpcy5nZXRSb3dzKHIsIHguSWQpO1xyXG4gICAgICBjID0gYy5sZW5ndGggPiAwID8gYyA6IHguQ2hpbGRyZW4gPyB4LkNoaWxkcmVuLm1hcChhID0+IG5ldyBUcmVlUm93Q2xhc3MoYS5OYW1lLCBhLklkLCBhLlNlbGVjdGVkKSkgOiBbXTtcclxuICAgICAgbGV0IHMgPSB4LlNlbGVjdGVkID09PSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy5vbmx5Q2hpbGQpe1xyXG4gICAgICAgIHMgPSBjLmxlbmd0aCA9PT0gMCA/IHguU2VsZWN0ZWQgOiAoYy5maW5kKHkgPT4geS5zZWxlY3RlZCA9PT0gZmFsc2UgfHwgeS5zZWxlY3RlZCA9PT0gbnVsbCkgPT0gbnVsbCA/IHRydWUgOlxyXG4gICAgICAgICAgKGMuZmluZCh5ID0+IHkuc2VsZWN0ZWQgPT09IHRydWUgfHwgeS5zZWxlY3RlZCA9PT0gbnVsbCkgIT0gbnVsbCA/IG51bGwgOiBmYWxzZSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG4gPSB0aGlzLm5hbWVGdW4gPyB0aGlzLm5hbWVGdW4oeCkgOiB4Lk5hbWU7XHJcbiAgICAgIGwucHVzaChuZXcgVHJlZVJvd0NsYXNzKG4sIHguSWQsIHMsIGMpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGw7XHJcbiAgfVxyXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gSGVscGVyQ2xhc3MuZ2V0TGFiZWwodGhpcyk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkKG9wdHM6IE9wdGlvbkNsYXNzW10gPSB0aGlzLm9wdGlvbnMpOiBhbnlbXXtcclxuICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGVkT3B0aW9ucyhvcHRzKS5tYXAoeCA9PiB4LnZhbHVlKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWROYW1lKG9wdHM6IE9wdGlvbkNsYXNzW10gPSB0aGlzLm9wdGlvbnMpOiBhbnlbXXtcclxuICAgIHJldHVybiB0aGlzLmdldFNlbGVjdGVkT3B0aW9ucyhvcHRzKS5tYXAoeCA9PiB4LnNlYXJjaCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkT3B0aW9ucyhvcHRzOiBPcHRpb25DbGFzc1tdID0gdGhpcy5vcHRpb25zKTogYW55W117XHJcbiAgICBsZXQgbCA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBmIG9mIG9wdHMpe1xyXG4gICAgICBpZiAoZi5zZWxlY3RlZCAmJiAoIXRoaXMub25seUNoaWxkIHx8IGYub3B0aW9ucy5sZW5ndGggPT09IDApKXtcclxuICAgICAgICBsLnB1c2goZik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcnMgPSB0aGlzLmdldFNlbGVjdGVkT3B0aW9ucyhmLm9wdGlvbnMpO1xyXG4gICAgICBsID0gbC5jb25jYXQocnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGwuc29ydCgoYSwgYikgPT4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHkpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd3Mocm93czogYW55W10gPSB0aGlzLnJvd3MpOiBhbnlbXXtcclxuICAgIGxldCBsID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGYgb2Ygcm93cyl7XHJcbiAgICAgIGlmIChmLnNlbGVjdGVkICYmICghdGhpcy5vbmx5Q2hpbGQgfHwgZi5jaGlsZHJlbi5sZW5ndGggPT09IDApKXtcclxuICAgICAgICBsLnB1c2goZik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcnMgPSB0aGlzLmdldFNlbGVjdGVkUm93cyhmLmNoaWxkcmVuKTtcclxuICAgICAgbCA9IGwuY29uY2F0KHJzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBsO1xyXG4gIH1cclxuICBnZXRBbGxSb3dzKHJvd3M6IGFueVtdID0gdGhpcy5yb3dzKTogYW55W117XHJcbiAgICBsZXQgbCA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBmIG9mIHJvd3Mpe1xyXG4gICAgICBpZiAoIXRoaXMub25seUNoaWxkIHx8IGYuY2hpbGRyZW4ubGVuZ3RoID09PSAwKXtcclxuICAgICAgICBsLnB1c2goZik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcnMgPSB0aGlzLmdldEFsbFJvd3MoZi5jaGlsZHJlbik7XHJcbiAgICAgIGwgPSBsLmNvbmNhdChycyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBPcHRpb25DbGFzcyB7XHJcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25DbGFzc1tdID0gW10sIGNsczogc3RyaW5nID0gbnVsbCwgZGlzOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscztcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXM7XHJcbiAgfVxyXG4gIG9wdGlvbjtcclxuICBzZWFyY2g6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIHNob3cgPSB0cnVlO1xyXG4gIHNlbGVjdGVkID0gZmFsc2U7XHJcbiAgcHJpb3JpdHkgPSAwO1xyXG4gIHBhcmVudDogT3B0aW9uQ2xhc3MgPSBudWxsO1xyXG4gIG9wdGlvbnM6IE9wdGlvbkNsYXNzW107XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIGRpc2FibGVkID0gZmFsc2U7XHJcbn1cclxuZXhwb3J0IGNsYXNzIERheUNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihkYXk6IG51bWJlciwgdG9kYXk6IGJvb2xlYW4sIHNlbGVjdGVkOiBib29sZWFuLCBhY3RpdmU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGF5ID0gZGF5O1xyXG4gICAgdGhpcy50b2RheSA9IHRvZGF5O1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xyXG4gICAgdGhpcy5hY3RpdmUgPSBhY3RpdmU7XHJcbiAgfVxyXG4gIGRheTogbnVtYmVyO1xyXG4gIHRvZGF5OiBib29sZWFuO1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG4gIGFjdGl2ZTogYm9vbGVhbjtcclxuICBjbGFzczogc3RyaW5nID0gbnVsbDtcclxufVxyXG5leHBvcnQgY2xhc3MgVHJlZVJvd0NsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2UsIGNoaWxkcmVuOiBUcmVlUm93Q2xhc3NbXSA9IFtdKSB7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xyXG4gICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xyXG4gIH1cclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBzZWxlY3RlZDogYm9vbGVhbjtcclxuICBwYXJlbnQ6IFRyZWVSb3dDbGFzcztcclxuICBjaGlsZHJlbjogVHJlZVJvd0NsYXNzW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25DbGFzcyB7XHJcbiAgY29uc3RydWN0b3IobDogKGssIHY/KSA9PiBzdHJpbmcsIG5hbWU6IHN0cmluZywgY2xzOiBzdHJpbmcgPSAnJywgcm93czogQWNjb3JkaW9uUm93Q2xhc3NbXSkge1xyXG4gICAgdGhpcy5sID0gbDtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmNsYXNzID0gY2xzO1xyXG4gICAgdGhpcy5yb3dzID0gcm93cztcclxuICB9XHJcbiAgbDogKGssIHY/KSA9PiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNsYXNzOiBzdHJpbmc7XHJcbiAgcm93czogQWNjb3JkaW9uUm93Q2xhc3NbXTtcclxuICBoYXNEZWxldGUgPSBmYWxzZTtcclxuICBkaXNwbGF5TGFiZWwgPSBmYWxzZTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgYWNjZXNzID0gdHJ1ZTtcclxuICBvbkRlbGV0ZTogKHJvdykgPT4gdm9pZCA9IG51bGw7XHJcbiAgY2hlY2soKTogYm9vbGVhbntcclxuICAgIGZvciAoY29uc3Qgcm93IG9mIHRoaXMucm93cyl7XHJcbiAgICAgIGlmICghcm93LmZvcm0uY2hlY2soKSl7XHJcbiAgICAgICAgcm93Lm9wZW4oKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjY29yZGlvblJvd0NsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGZvcm06IEZvcm1DbGFzcyA9IG51bGwsIHRhYmxlOiBUYWJsZUNsYXNzID0gbnVsbCkge1xyXG4gICAgdGhpcy5pZCA9IGlkO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMuZm9ybSA9IGZvcm07XHJcbiAgICB0aGlzLnRhYmxlID0gdGFibGU7XHJcbiAgfVxyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHNob3cgPSB0cnVlO1xyXG4gIGZpcnN0VGFibGUgPSB0cnVlO1xyXG4gIGZvcm06IEZvcm1DbGFzcztcclxuICBjaGFydDogQ2hhcnRDbGFzcztcclxuICB0YWJsZTogVGFibGVDbGFzcztcclxuICB0b2dnbGUoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgJCgnI0FjY29yZGlvblJvdycgKyB0aGlzLmlkICsgJyA+IC5oZWFkZXInKS5jbGljaygpO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbiAgb3BlbigpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoISQoJyNBY2NvcmRpb25Sb3cnICsgdGhpcy5pZCArICcgPiAuY29udGVudCcpLmhhc0NsYXNzKCdvcGVuJykpe1xyXG4gICAgICAgICQoJyNBY2NvcmRpb25Sb3cnICsgdGhpcy5pZCArICcgPiAuaGVhZGVyJykuY2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -13,13 +13,13 @@ export class ConfirmComponent {
|
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
ngOnInit() {
|
|
16
|
-
this.confirm = new ModalClass(this.config.environment, this.l, (this.tableId ? this.tableId : '') + 'Confirm');
|
|
17
|
-
this.confirm.form = new FormClass(this.config.environment, this.l, 'Confirm');
|
|
18
|
-
this.confirmLabel = new InputClass(this.config.environment, this.l, 'Confirm', null, InputType.Label, 'f-s-
|
|
16
|
+
this.confirm = new ModalClass(this.config.environment, this.l, (this.tableId ? this.tableId : '') + 'Confirm', 'confirm-modal sm');
|
|
17
|
+
this.confirm.form = new FormClass(this.config.environment, this.l, 'Confirm', true, null, 'confirm-modal');
|
|
18
|
+
this.confirmLabel = new InputClass(this.config.environment, this.l, 'Confirm', null, InputType.Label, 'f-s-14 p-h-20 p-t-10 l-h-25', 'Confirm');
|
|
19
19
|
this.confirm.form.inputs = [
|
|
20
20
|
this.confirmLabel,
|
|
21
21
|
];
|
|
22
|
-
this.confirm.form.addButtons('Accept', 'blue', false);
|
|
22
|
+
this.confirm.form.addButtons('Accept', 'blue h-25 confirm-modal', false);
|
|
23
23
|
}
|
|
24
24
|
show(l, url, data, accept) {
|
|
25
25
|
this.confirmLabel.value = l;
|
|
@@ -47,4 +47,4 @@ ConfirmComponent.ctorParameters = () => [
|
|
|
47
47
|
ConfirmComponent.propDecorators = {
|
|
48
48
|
tableId: [{ type: Input }]
|
|
49
49
|
};
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29uZmlybS9jb25maXJtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBT25ELE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFBbUIsTUFBZ0M7UUFBaEMsV0FBTSxHQUFOLE1BQU0sQ0FBMEI7UUFDakQsTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQVcsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFVLEVBQUU7WUFDekMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDbkksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUMzRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLDZCQUE2QixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUN6QixJQUFJLENBQUMsWUFBWTtTQUNsQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBSSxDQUFDLENBQVMsRUFBRSxHQUFXLEVBQUUsSUFBSSxFQUFFLE1BQTZCO1FBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7OztZQXRDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLDZFQUF1Qzs7YUFFeEM7OztZQVBPLHdCQUF3Qjs7O3NCQVM3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1DbGFzcywgSW5wdXRDbGFzc30gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtNb2RhbENsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL21vZGFsLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dFR5cGV9IGZyb20gJy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7UHNUb29sa2l0VWlDb25maWdTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7TGFuZ0NsYXNzfSBmcm9tICcuLi8uLi9jbGFzc2VzL2xhbmcuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY29uZmlybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm0uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBJbnB1dCgpXHJcbiAgdGFibGVJZDogc3RyaW5nO1xyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIGNvbmZpcm06IE1vZGFsQ2xhc3M7XHJcbiAgY29uZmlybUxhYmVsOiBJbnB1dENsYXNzO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb25maWc6IFBzVG9vbGtpdFVpQ29uZmlnU2VydmljZSl7XHJcbiAgICBjb25zdCBsYW5nID0gbmV3IExhbmdDbGFzcyhjb25maWcuY3VycmVudExhbmcsIGNvbmZpZy5zdHJpbmdzKTtcclxuICAgIHRoaXMubCA9IChrZXk6IHN0cmluZywgdiA9IG51bGwpOiBzdHJpbmcgPT4ge1xyXG4gICAgICByZXR1cm4gbGFuZy5nZXQoJ1B1YmxpYycsICdDb25maXJtJywga2V5LCB2KTtcclxuICAgIH07XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maXJtID0gbmV3IE1vZGFsQ2xhc3ModGhpcy5jb25maWcuZW52aXJvbm1lbnQsIHRoaXMubCwgKHRoaXMudGFibGVJZCA/IHRoaXMudGFibGVJZCA6ICcnKSArICdDb25maXJtJywgJ2NvbmZpcm0tbW9kYWwgc20nKTtcclxuICAgIHRoaXMuY29uZmlybS5mb3JtID0gbmV3IEZvcm1DbGFzcyh0aGlzLmNvbmZpZy5lbnZpcm9ubWVudCwgdGhpcy5sLCAnQ29uZmlybScsIHRydWUsIG51bGwsICdjb25maXJtLW1vZGFsJyk7XHJcbiAgICB0aGlzLmNvbmZpcm1MYWJlbCA9IG5ldyBJbnB1dENsYXNzKHRoaXMuY29uZmlnLmVudmlyb25tZW50LCB0aGlzLmwsICdDb25maXJtJywgbnVsbCwgSW5wdXRUeXBlLkxhYmVsLCAnZi1zLTE0IHAtaC0yMCBwLXQtMTAgbC1oLTI1JywgJ0NvbmZpcm0nKTtcclxuICAgIHRoaXMuY29uZmlybS5mb3JtLmlucHV0cyA9IFtcclxuICAgICAgdGhpcy5jb25maXJtTGFiZWwsXHJcbiAgICBdO1xyXG4gICAgdGhpcy5jb25maXJtLmZvcm0uYWRkQnV0dG9ucygnQWNjZXB0JywgJ2JsdWUgaC0yNSBjb25maXJtLW1vZGFsJywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2hvdyhsOiBzdHJpbmcsIHVybDogc3RyaW5nLCBkYXRhLCBhY2NlcHQ6IChyZXN1bHQ6IGFueSkgPT4gdm9pZCk6IHZvaWR7XHJcbiAgICB0aGlzLmNvbmZpcm1MYWJlbC52YWx1ZSA9IGw7XHJcbiAgICB0aGlzLmNvbmZpcm0uZm9ybS51cmwgPSB1cmw7XHJcbiAgICB0aGlzLmNvbmZpcm0uZm9ybS5kYXRhID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gZGF0YTtcclxuICAgIH07XHJcbiAgICB0aGlzLmNvbmZpcm0uZm9ybS5vblN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuY29uZmlybS5oaWRlKCk7XHJcbiAgICAgIGFjY2VwdChyZXN1bHQpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuY29uZmlybS5zaG93KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -41,7 +41,7 @@ FormComponent.decorators = [
|
|
|
41
41
|
{ type: Component, args: [{
|
|
42
42
|
selector: 'lib-form',
|
|
43
43
|
template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form w-100 m-0' + (form.class ? ' ' + form.class : '')\">\r\n <div *ngIf=\"form.displayLabel\" [className]=\"(form.subName ? '' : 'underline ') + 'title'\">{{this.form.l(this.form.name)}}</div>\r\n <div *ngIf=\"form.displayLabel && form.subName\" class=\"sub-title underline\" [innerHTML]=\"this.form.l(this.form.subName)\"></div>\r\n <div *ngIf=\"form.loading\" class=\"loading\">\r\n <div class=\"text\" [innerHTML]=\"form.l('LoadingTable', 'Processing')\"></div>\r\n </div>\r\n <div *ngIf=\"!form.permission\" class=\"loading\">\r\n <div class=\"text\"><i class=\"fas fa-shield-alt icon\"></i>{{ form.l(\"PermissionDenied\") }}</div>\r\n </div>\r\n <ng-content></ng-content>\r\n <div class=\"inputs\">\r\n <span *ngFor=\"let inp of form.inputs; let i = index\">\r\n <lib-form-textbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Text || inp.type == type.Password || inp.type == type.Mobile || inp.type == type.Username || inp.type == type.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.NationalNum || inp.type == type.NationalCodeNum || inp.type == type.EconomicNum || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba || inp.type == type.Color || inp.type == type.BillNumber)\" [inp]=\"inp\"></lib-form-textbox>\r\n <lib-form-textarea (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.TextArea\" [inp]=\"inp\"></lib-form-textarea>\r\n <lib-form-checkbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Check\" [inp]=\"inp\"></lib-form-checkbox>\r\n <lib-form-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectSearchRadio || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-select>\r\n <lib-form-date (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Date || inp.type == type.Month || inp.type == type.Year)\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-date>\r\n <lib-form-time (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-time>\r\n <lib-form-datetime (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-datetime>\r\n <lib-form-file (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.File\" [inp]=\"inp\"></lib-form-file>\r\n <lib-form-button (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Button || inp.type == type.Submit)\" [inp]=\"inp\"></lib-form-button>\r\n <lib-form-icon (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Icon\" [inp]=\"inp\"></lib-form-icon>\r\n <lib-form-radio (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Radio\" [inp]=\"inp\"></lib-form-radio>\r\n <lib-form-tree (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Tree || inp.type == type.TreeRadio)\" [inp]=\"inp\"></lib-form-tree>\r\n <lib-form-plaque (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Plaque || inp.type == type.PlaqueM || inp.type == type.PlaqueF || inp.type == type.PlaqueG)\" [inp]=\"inp\"></lib-form-plaque>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.SelectAutoCompletePlaque || inp.type == type.SelectAutoCompletePlaqueM || inp.type == type.SelectAutoCompletePlaqueF || inp.type == type.SelectAutoCompletePlaqueG)\" [inp]=\"inp\"></lib-form-plaque-select>\r\n <lib-form-bank-card (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.BankCard\" [inp]=\"inp\"></lib-form-bank-card>\r\n <lib-form-vehicle-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.VehicleSearch\" [inp]=\"inp\"></lib-form-vehicle-search>\r\n <lib-form-vehicle (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Vehicle\" [inp]=\"inp\"></lib-form-vehicle>\r\n <lib-form-finger (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Finger\" [inp]=\"inp\"></lib-form-finger>\r\n <lib-form-star (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Star\" [inp]=\"inp\"></lib-form-star>\r\n <lib-form-toggle (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Toggle\" [inp]=\"inp\"></lib-form-toggle>\r\n <lib-form-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-tag (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Tag\" [inp]=\"inp\"></lib-form-tag>\r\n <lib-form-ckeditor (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Ckeditor\" [inp]=\"inp\"></lib-form-ckeditor>\r\n <lib-form-uploader (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Uploader\" [inp]=\"inp\"></lib-form-uploader>\r\n <lib-form-slide (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Slide\" [inp]=\"inp\"></lib-form-slide>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\r\n <lib-form-pre *ngIf=\"inp.visible && inp.type == type.Pre\" [inp]=\"inp\"></lib-form-pre>\r\n </span>\r\n </div>\r\n</form>\r\n",
|
|
44
|
-
styles: [".form{border-radius:var(--border-radius-base);padding:20px;position:relative}.form>.title{font-size:16px;font-weight:var(--font-bold);height:40px
|
|
44
|
+
styles: [".form{border-radius:var(--border-radius-base);padding:20px;position:relative}.form>.title{float:right;font-size:16px;font-weight:var(--font-bold);height:40px;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form.confirm-modal>.title{font-size:14px;height:30px;line-height:20px}.form>.sub-title{color:var(--black-light);float:right;font-size:12px;font-weight:var(--font-light);height:30px;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form .loading{background-color:#fff;border-radius:var(--border-radius-base);height:100%;right:0;top:0;z-index:104}.form .loading,.form .loading .text{position:absolute;text-align:center;width:100%}.form .loading .text{font-weight:var(--font-bold);height:35px;line-height:35px;top:calc(50% - 20px)}::ng-deep .form .loading .icon{font-size:20px!important;line-height:30px;margin-left:5px;position:relative;top:5px}.form-buttons,.form-error{float:right;width:100%}.form-error{color:var(--red-light);font-size:11px;height:15px;line-height:8px;margin-top:10px;padding:0 10px;position:relative;text-align:center}.form-error .message{float:left;width:calc(100% - 40px)}.form-error .icon{float:right;height:20px;line-height:6px;right:0;top:0;width:40px}.form .inputs{margin:0 -15px}"]
|
|
45
45
|
},] }
|
|
46
46
|
];
|
|
47
47
|
FormComponent.ctorParameters = () => [];
|
|
@@ -132,7 +132,7 @@ FormTimeComponent.decorators = [
|
|
|
132
132
|
{ type: Component, args: [{
|
|
133
133
|
selector: 'lib-form-time',
|
|
134
134
|
template: "<div #inputDiv [id]=\"inp.id + 'TimeInput'\" [style]=\"inp.style\" [className]=\"'form-input-con time w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + (inp.icon == null ? ' without-icon' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"toggleTime()\">\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 <div class=\"w-100 p-r\">\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n <i *ngIf=\"inp.withClear && inp.value\" (click)=\"inp.clear()\" class=\"fad fa-times clear-icon\"></i>\r\n <input (keydown)=\"onKeyDown($event)\" (keyup)=\"onKeyUp($event)\" (focusout)=\"onFocusOut()\" [disabled]=\"inp.disabled\" [(ngModel)]=\"inp.search\" #inputBase [name]=\"inp.name\" [placeholder]=\"inp.l(inp.name)\" class=\"control\" autocomplete=\"off\" maxlength=\"\">\r\n <div #inputOptionsDiv class=\"options-con\">\r\n <div class=\"options\">\r\n <div [className]=\"'hours' + (inp.level === 60 ? ' w-100' : ' w-50')\">\r\n <div [className]=\"(h === activeHour ? 'active ' : '') + 'hour'\" (click)=\"selectTime(h, 'hour')\" *ngFor=\"let h of hours\">{{h}}{{inp.level === 60 ? ':00' : ''}}</div>\r\n </div>\r\n <div *ngIf=\"inp.level !== 60\" class=\"rightline\">\r\n </div>\r\n <div *ngIf=\"inp.level !== 60\" class=\"minutes\">\r\n <div [className]=\"(m === activeMinute ? 'active ' : '') + 'minute'\" (click)=\"selectTime(m, 'minute')\" *ngFor=\"let m of minutes\">{{m}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
135
|
-
styles: [".form-input-con.time{padding:0 15px;position:relative}.form-input-con.time .form-input{float:right;position:relative;width:100%}.form-input-con.time .form-input .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-con.time.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.time .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.time .form-input .control{background-color:#fff;background-image:none;border:none;border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input-con.time .form-input .control:focus{border-radius:var(--border-radius-base) var(--border-radius-base) var(--border-radius-base) 0}.form-input-con.time.top .form-input .control:focus{border-radius:0 var(--border-radius-base) var(--border-radius-base) var(--border-radius-base)}.form-input-con.time .form-input .control:focus,.form-input-con.time .form-input:hover .control{border:var(--border-input-dark);outline:none}.form-input-con.time .form-input i.icon{color:var(--primary);cursor:text;font-size:13px;left:0}.form-input-con.time .form-input i.clear-icon,.form-input-con.time .form-input i.icon{bottom:0;height:35px;line-height:35px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:3}.form-input-con.time .form-input i.clear-icon{color:var(--red);cursor:pointer;font-size:14px;right:0}.form-input-con.time.disabled .form-input .control,.form-input-con.time.disabled .form-input .label,.form-input-con.time.disabled .form-input i.icon{cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.time.error .form-input .control,.form-input-con.time.error .form-input i.icon{color:var(--red-light)}.form-input-con.time.error .form-input .control{border:var(--border-input-red)}.form-input-con.time.error .form-input .control:focus,.form-input-con.time.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.time .form-input .options-con{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#fff;border:var(--border-input);border-radius:0 0 var(--border-radius-base) var(--border-radius-base);height:235px;left:0;overflow:hidden;position:absolute;top:-200000px;z-index:4}.form-input-con.time .form-input .options-con .options{float:right;position:relative;width:100px}.form-input-con.time .form-input .options-con .options .hours{-ms-overflow-style:none;float:left!important;height:235px;overflow:auto;position:relative;scrollbar-width:none}.form-input-con.time .form-input .options-con .options .rightline{height:235px;position:absolute;right:calc(50% - .5px);top:0;width:1px}.form-input-con.time .form-input .options-con .options .minutes{-ms-overflow-style:none;float:right;height:235px;overflow:auto;scrollbar-width:none;width:50%}.form-input-con.time .form-input .options-con .options .hours::-webkit-scrollbar{display:none}.form-input-con.time .form-input .options-con .options .hours .hour,.form-input-con.time .form-input .options-con .options .minutes .minute{cursor:pointer;float:right;font-size:12px;height:30px;line-height:30px;text-align:center;width:100%}.form-input-con.time.without-icon .form-input .control{padding:5px 10px}.form-input-con.time .form-input .options-con .options .hours .hour.active,.form-input-con.time .form-input .options-con .options .hours .hour:hover,.form-input-con.time .form-input .options-con .options .minutes .minute.active,.form-input-con.time .form-input .options-con .options .minutes .minute:hover{background-color:var(--black-white)}.form-input-con.time .form-input .control:focus+.options-con{top:35px!important}.form-input-con.time.top .form-input .control:focus+.options-con{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:35px;top:unset!important}.form-input-con.time.h-22 .form-input .control{height:22px;padding:5px}.form-input-con.time.h-22 .form-input i.icon{display:none}.form-input-con.time.h-22 .form-input .control:focus+.options-con{top:22px!important}.form-input-con.time.h-22.top .form-input .control:focus+.options-con{bottom:22px}.form-input-con.time.h-30 .form-input .control{height:30px;padding:5px 30px}.form-input-con.time .form-input i.clear-icon,.form-input-con.time .form-input i.icon{height:30px;line-height:30px;width:30px}.form-input-con.time .form-input .control:focus+.options-con{top:30px!important}.form-input-con.time.top .form-input .control:focus+.options-con{bottom:30px}"]
|
|
135
|
+
styles: [".form-input-con.time{padding:0 15px;position:relative}.form-input-con.time .form-input{float:right;position:relative;width:100%}.form-input-con.time .form-input .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-con.time.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.time .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.time .form-input .control{background-color:#fff;background-image:none;border:none;border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input-con.time .form-input .control:focus{border-radius:var(--border-radius-base) var(--border-radius-base) var(--border-radius-base) 0}.form-input-con.time.top .form-input .control:focus{border-radius:0 var(--border-radius-base) var(--border-radius-base) var(--border-radius-base)}.form-input-con.time .form-input .control:focus,.form-input-con.time .form-input:hover .control{border:var(--border-input-dark);outline:none}.form-input-con.time .form-input i.icon{color:var(--primary);cursor:text;font-size:13px;left:0}.form-input-con.time .form-input i.clear-icon,.form-input-con.time .form-input i.icon{bottom:0;height:35px;line-height:35px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:3}.form-input-con.time .form-input i.clear-icon{color:var(--red);cursor:pointer;font-size:14px;right:0}.form-input-con.time.disabled .form-input .control,.form-input-con.time.disabled .form-input .label,.form-input-con.time.disabled .form-input i.icon{cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.time.error .form-input .control,.form-input-con.time.error .form-input i.icon{color:var(--red-light)}.form-input-con.time.error .form-input .control{border:var(--border-input-red)}.form-input-con.time.error .form-input .control:focus,.form-input-con.time.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.time .form-input .options-con{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#fff;border:var(--border-input);border-radius:0 0 var(--border-radius-base) var(--border-radius-base);height:235px;left:0;overflow:hidden;position:absolute;top:-200000px;z-index:4}.form-input-con.time .form-input .options-con .options{float:right;position:relative;width:100px}.form-input-con.time .form-input .options-con .options .hours{-ms-overflow-style:none;float:left!important;height:235px;overflow:auto;position:relative;scrollbar-width:none}.form-input-con.time .form-input .options-con .options .rightline{height:235px;position:absolute;right:calc(50% - .5px);top:0;width:1px}.form-input-con.time .form-input .options-con .options .minutes{-ms-overflow-style:none;float:right;height:235px;overflow:auto;scrollbar-width:none;width:50%}.form-input-con.time .form-input .options-con .options .hours::-webkit-scrollbar{display:none}.form-input-con.time .form-input .options-con .options .hours .hour,.form-input-con.time .form-input .options-con .options .minutes .minute{cursor:pointer;float:right;font-size:12px;height:30px;line-height:30px;text-align:center;width:100%}.form-input-con.time.without-icon .form-input .control{padding:5px 10px}.form-input-con.time .form-input .options-con .options .hours .hour.active,.form-input-con.time .form-input .options-con .options .hours .hour:hover,.form-input-con.time .form-input .options-con .options .minutes .minute.active,.form-input-con.time .form-input .options-con .options .minutes .minute:hover{background-color:var(--black-white)}.form-input-con.time .form-input .control:focus+.options-con{top:35px!important}.form-input-con.time.top .form-input .control:focus+.options-con{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:35px;top:unset!important}.form-input-con.time.h-22 .form-input .control{height:22px;padding:5px}.form-input-con.time.h-22 .form-input i.icon{display:none}.form-input-con.time.h-22 .form-input .control:focus+.options-con{top:22px!important}.form-input-con.time.h-22.top .form-input .control:focus+.options-con{bottom:22px}.form-input-con.time.h-30 .form-input .control{height:30px;padding:5px 30px}.form-input-con.time.h-30 .form-input i.clear-icon,.form-input-con.time.h-30 .form-input i.icon{height:30px;line-height:30px;width:30px}.form-input-con.time.h-30 .form-input .control:focus+.options-con{top:30px!important}.form-input-con.time.h-30.top .form-input .control:focus+.options-con{bottom:30px}"]
|
|
136
136
|
},] }
|
|
137
137
|
];
|
|
138
138
|
FormTimeComponent.ctorParameters = () => [];
|
|
@@ -1735,7 +1735,7 @@ class FormClass {
|
|
|
1735
1735
|
submit.disabled = !insertAccess;
|
|
1736
1736
|
return;
|
|
1737
1737
|
}
|
|
1738
|
-
const br = new InputClass(this.environment, this.l, null, null, InputType.Label, this.onTop ? 'space' : 'underline');
|
|
1738
|
+
const br = new InputClass(this.environment, this.l, null, null, InputType.Label, (this.onTop ? 'space' : 'underline') + (cls.includes('confirm-modal' ? ' m-v-10' : '')));
|
|
1739
1739
|
const save = new InputClass(this.environment, this.l, name, 'fad fa-check', InputType.Submit, 'save-form-btn ' + (this.onTop ? 'h-25 ' : 'h-30 ') + cls);
|
|
1740
1740
|
save.onClick = () => {
|
|
1741
1741
|
this.submit(onSubmit);
|
|
@@ -4951,7 +4951,7 @@ FormComponent.decorators = [
|
|
|
4951
4951
|
{ type: Component, args: [{
|
|
4952
4952
|
selector: 'lib-form',
|
|
4953
4953
|
template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form w-100 m-0' + (form.class ? ' ' + form.class : '')\">\r\n <div *ngIf=\"form.displayLabel\" [className]=\"(form.subName ? '' : 'underline ') + 'title'\">{{this.form.l(this.form.name)}}</div>\r\n <div *ngIf=\"form.displayLabel && form.subName\" class=\"sub-title underline\" [innerHTML]=\"this.form.l(this.form.subName)\"></div>\r\n <div *ngIf=\"form.loading\" class=\"loading\">\r\n <div class=\"text\" [innerHTML]=\"form.l('LoadingTable', 'Processing')\"></div>\r\n </div>\r\n <div *ngIf=\"!form.permission\" class=\"loading\">\r\n <div class=\"text\"><i class=\"fas fa-shield-alt icon\"></i>{{ form.l(\"PermissionDenied\") }}</div>\r\n </div>\r\n <ng-content></ng-content>\r\n <div class=\"inputs\">\r\n <span *ngFor=\"let inp of form.inputs; let i = index\">\r\n <lib-form-textbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Text || inp.type == type.Password || inp.type == type.Mobile || inp.type == type.Username || inp.type == type.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.NationalNum || inp.type == type.NationalCodeNum || inp.type == type.EconomicNum || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba || inp.type == type.Color || inp.type == type.BillNumber)\" [inp]=\"inp\"></lib-form-textbox>\r\n <lib-form-textarea (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.TextArea\" [inp]=\"inp\"></lib-form-textarea>\r\n <lib-form-checkbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Check\" [inp]=\"inp\"></lib-form-checkbox>\r\n <lib-form-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectSearchRadio || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-select>\r\n <lib-form-date (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Date || inp.type == type.Month || inp.type == type.Year)\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-date>\r\n <lib-form-time (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-time>\r\n <lib-form-datetime (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\" [inForm]=\"true\"></lib-form-datetime>\r\n <lib-form-file (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.File\" [inp]=\"inp\"></lib-form-file>\r\n <lib-form-button (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Button || inp.type == type.Submit)\" [inp]=\"inp\"></lib-form-button>\r\n <lib-form-icon (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Icon\" [inp]=\"inp\"></lib-form-icon>\r\n <lib-form-radio (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Radio\" [inp]=\"inp\"></lib-form-radio>\r\n <lib-form-tree (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Tree || inp.type == type.TreeRadio)\" [inp]=\"inp\"></lib-form-tree>\r\n <lib-form-plaque (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Plaque || inp.type == type.PlaqueM || inp.type == type.PlaqueF || inp.type == type.PlaqueG)\" [inp]=\"inp\"></lib-form-plaque>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.SelectAutoCompletePlaque || inp.type == type.SelectAutoCompletePlaqueM || inp.type == type.SelectAutoCompletePlaqueF || inp.type == type.SelectAutoCompletePlaqueG)\" [inp]=\"inp\"></lib-form-plaque-select>\r\n <lib-form-bank-card (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.BankCard\" [inp]=\"inp\"></lib-form-bank-card>\r\n <lib-form-vehicle-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.VehicleSearch\" [inp]=\"inp\"></lib-form-vehicle-search>\r\n <lib-form-vehicle (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Vehicle\" [inp]=\"inp\"></lib-form-vehicle>\r\n <lib-form-finger (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Finger\" [inp]=\"inp\"></lib-form-finger>\r\n <lib-form-star (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Star\" [inp]=\"inp\"></lib-form-star>\r\n <lib-form-toggle (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Toggle\" [inp]=\"inp\"></lib-form-toggle>\r\n <lib-form-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-tag (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Tag\" [inp]=\"inp\"></lib-form-tag>\r\n <lib-form-ckeditor (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Ckeditor\" [inp]=\"inp\"></lib-form-ckeditor>\r\n <lib-form-uploader (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Uploader\" [inp]=\"inp\"></lib-form-uploader>\r\n <lib-form-slide (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Slide\" [inp]=\"inp\"></lib-form-slide>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\r\n <lib-form-pre *ngIf=\"inp.visible && inp.type == type.Pre\" [inp]=\"inp\"></lib-form-pre>\r\n </span>\r\n </div>\r\n</form>\r\n",
|
|
4954
|
-
styles: [".form{border-radius:var(--border-radius-base);padding:20px;position:relative}.form>.title{font-size:16px;font-weight:var(--font-bold);height:40px
|
|
4954
|
+
styles: [".form{border-radius:var(--border-radius-base);padding:20px;position:relative}.form>.title{float:right;font-size:16px;font-weight:var(--font-bold);height:40px;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form.confirm-modal>.title{font-size:14px;height:30px;line-height:20px}.form>.sub-title{color:var(--black-light);float:right;font-size:12px;font-weight:var(--font-light);height:30px;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form .loading{background-color:#fff;border-radius:var(--border-radius-base);height:100%;right:0;top:0;z-index:104}.form .loading,.form .loading .text{position:absolute;text-align:center;width:100%}.form .loading .text{font-weight:var(--font-bold);height:35px;line-height:35px;top:calc(50% - 20px)}::ng-deep .form .loading .icon{font-size:20px!important;line-height:30px;margin-left:5px;position:relative;top:5px}.form-buttons,.form-error{float:right;width:100%}.form-error{color:var(--red-light);font-size:11px;height:15px;line-height:8px;margin-top:10px;padding:0 10px;position:relative;text-align:center}.form-error .message{float:left;width:calc(100% - 40px)}.form-error .icon{float:right;height:20px;line-height:6px;right:0;top:0;width:40px}.form .inputs{margin:0 -15px}"]
|
|
4955
4955
|
},] }
|
|
4956
4956
|
];
|
|
4957
4957
|
FormComponent.ctorParameters = () => [];
|
|
@@ -6834,7 +6834,7 @@ FormTimeComponent.decorators = [
|
|
|
6834
6834
|
{ type: Component, args: [{
|
|
6835
6835
|
selector: 'lib-form-time',
|
|
6836
6836
|
template: "<div #inputDiv [id]=\"inp.id + 'TimeInput'\" [style]=\"inp.style\" [className]=\"'form-input-con time w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + (inp.icon == null ? ' without-icon' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"toggleTime()\">\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 <div class=\"w-100 p-r\">\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n <i *ngIf=\"inp.withClear && inp.value\" (click)=\"inp.clear()\" class=\"fad fa-times clear-icon\"></i>\r\n <input (keydown)=\"onKeyDown($event)\" (keyup)=\"onKeyUp($event)\" (focusout)=\"onFocusOut()\" [disabled]=\"inp.disabled\" [(ngModel)]=\"inp.search\" #inputBase [name]=\"inp.name\" [placeholder]=\"inp.l(inp.name)\" class=\"control\" autocomplete=\"off\" maxlength=\"\">\r\n <div #inputOptionsDiv class=\"options-con\">\r\n <div class=\"options\">\r\n <div [className]=\"'hours' + (inp.level === 60 ? ' w-100' : ' w-50')\">\r\n <div [className]=\"(h === activeHour ? 'active ' : '') + 'hour'\" (click)=\"selectTime(h, 'hour')\" *ngFor=\"let h of hours\">{{h}}{{inp.level === 60 ? ':00' : ''}}</div>\r\n </div>\r\n <div *ngIf=\"inp.level !== 60\" class=\"rightline\">\r\n </div>\r\n <div *ngIf=\"inp.level !== 60\" class=\"minutes\">\r\n <div [className]=\"(m === activeMinute ? 'active ' : '') + 'minute'\" (click)=\"selectTime(m, 'minute')\" *ngFor=\"let m of minutes\">{{m}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
6837
|
-
styles: [".form-input-con.time{padding:0 15px;position:relative}.form-input-con.time .form-input{float:right;position:relative;width:100%}.form-input-con.time .form-input .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-con.time.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.time .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.time .form-input .control{background-color:#fff;background-image:none;border:none;border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input-con.time .form-input .control:focus{border-radius:var(--border-radius-base) var(--border-radius-base) var(--border-radius-base) 0}.form-input-con.time.top .form-input .control:focus{border-radius:0 var(--border-radius-base) var(--border-radius-base) var(--border-radius-base)}.form-input-con.time .form-input .control:focus,.form-input-con.time .form-input:hover .control{border:var(--border-input-dark);outline:none}.form-input-con.time .form-input i.icon{color:var(--primary);cursor:text;font-size:13px;left:0}.form-input-con.time .form-input i.clear-icon,.form-input-con.time .form-input i.icon{bottom:0;height:35px;line-height:35px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:3}.form-input-con.time .form-input i.clear-icon{color:var(--red);cursor:pointer;font-size:14px;right:0}.form-input-con.time.disabled .form-input .control,.form-input-con.time.disabled .form-input .label,.form-input-con.time.disabled .form-input i.icon{cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.time.error .form-input .control,.form-input-con.time.error .form-input i.icon{color:var(--red-light)}.form-input-con.time.error .form-input .control{border:var(--border-input-red)}.form-input-con.time.error .form-input .control:focus,.form-input-con.time.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.time .form-input .options-con{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#fff;border:var(--border-input);border-radius:0 0 var(--border-radius-base) var(--border-radius-base);height:235px;left:0;overflow:hidden;position:absolute;top:-200000px;z-index:4}.form-input-con.time .form-input .options-con .options{float:right;position:relative;width:100px}.form-input-con.time .form-input .options-con .options .hours{-ms-overflow-style:none;float:left!important;height:235px;overflow:auto;position:relative;scrollbar-width:none}.form-input-con.time .form-input .options-con .options .rightline{height:235px;position:absolute;right:calc(50% - .5px);top:0;width:1px}.form-input-con.time .form-input .options-con .options .minutes{-ms-overflow-style:none;float:right;height:235px;overflow:auto;scrollbar-width:none;width:50%}.form-input-con.time .form-input .options-con .options .hours::-webkit-scrollbar{display:none}.form-input-con.time .form-input .options-con .options .hours .hour,.form-input-con.time .form-input .options-con .options .minutes .minute{cursor:pointer;float:right;font-size:12px;height:30px;line-height:30px;text-align:center;width:100%}.form-input-con.time.without-icon .form-input .control{padding:5px 10px}.form-input-con.time .form-input .options-con .options .hours .hour.active,.form-input-con.time .form-input .options-con .options .hours .hour:hover,.form-input-con.time .form-input .options-con .options .minutes .minute.active,.form-input-con.time .form-input .options-con .options .minutes .minute:hover{background-color:var(--black-white)}.form-input-con.time .form-input .control:focus+.options-con{top:35px!important}.form-input-con.time.top .form-input .control:focus+.options-con{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:35px;top:unset!important}.form-input-con.time.h-22 .form-input .control{height:22px;padding:5px}.form-input-con.time.h-22 .form-input i.icon{display:none}.form-input-con.time.h-22 .form-input .control:focus+.options-con{top:22px!important}.form-input-con.time.h-22.top .form-input .control:focus+.options-con{bottom:22px}.form-input-con.time.h-30 .form-input .control{height:30px;padding:5px 30px}.form-input-con.time .form-input i.clear-icon,.form-input-con.time .form-input i.icon{height:30px;line-height:30px;width:30px}.form-input-con.time .form-input .control:focus+.options-con{top:30px!important}.form-input-con.time.top .form-input .control:focus+.options-con{bottom:30px}"]
|
|
6837
|
+
styles: [".form-input-con.time{padding:0 15px;position:relative}.form-input-con.time .form-input{float:right;position:relative;width:100%}.form-input-con.time .form-input .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-con.time.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.time .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.time .form-input .control{background-color:#fff;background-image:none;border:none;border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);display:block;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input-con.time .form-input .control:focus{border-radius:var(--border-radius-base) var(--border-radius-base) var(--border-radius-base) 0}.form-input-con.time.top .form-input .control:focus{border-radius:0 var(--border-radius-base) var(--border-radius-base) var(--border-radius-base)}.form-input-con.time .form-input .control:focus,.form-input-con.time .form-input:hover .control{border:var(--border-input-dark);outline:none}.form-input-con.time .form-input i.icon{color:var(--primary);cursor:text;font-size:13px;left:0}.form-input-con.time .form-input i.clear-icon,.form-input-con.time .form-input i.icon{bottom:0;height:35px;line-height:35px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:3}.form-input-con.time .form-input i.clear-icon{color:var(--red);cursor:pointer;font-size:14px;right:0}.form-input-con.time.disabled .form-input .control,.form-input-con.time.disabled .form-input .label,.form-input-con.time.disabled .form-input i.icon{cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.time.error .form-input .control,.form-input-con.time.error .form-input i.icon{color:var(--red-light)}.form-input-con.time.error .form-input .control{border:var(--border-input-red)}.form-input-con.time.error .form-input .control:focus,.form-input-con.time.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.time .form-input .options-con{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#fff;border:var(--border-input);border-radius:0 0 var(--border-radius-base) var(--border-radius-base);height:235px;left:0;overflow:hidden;position:absolute;top:-200000px;z-index:4}.form-input-con.time .form-input .options-con .options{float:right;position:relative;width:100px}.form-input-con.time .form-input .options-con .options .hours{-ms-overflow-style:none;float:left!important;height:235px;overflow:auto;position:relative;scrollbar-width:none}.form-input-con.time .form-input .options-con .options .rightline{height:235px;position:absolute;right:calc(50% - .5px);top:0;width:1px}.form-input-con.time .form-input .options-con .options .minutes{-ms-overflow-style:none;float:right;height:235px;overflow:auto;scrollbar-width:none;width:50%}.form-input-con.time .form-input .options-con .options .hours::-webkit-scrollbar{display:none}.form-input-con.time .form-input .options-con .options .hours .hour,.form-input-con.time .form-input .options-con .options .minutes .minute{cursor:pointer;float:right;font-size:12px;height:30px;line-height:30px;text-align:center;width:100%}.form-input-con.time.without-icon .form-input .control{padding:5px 10px}.form-input-con.time .form-input .options-con .options .hours .hour.active,.form-input-con.time .form-input .options-con .options .hours .hour:hover,.form-input-con.time .form-input .options-con .options .minutes .minute.active,.form-input-con.time .form-input .options-con .options .minutes .minute:hover{background-color:var(--black-white)}.form-input-con.time .form-input .control:focus+.options-con{top:35px!important}.form-input-con.time.top .form-input .control:focus+.options-con{border-radius:var(--border-radius-base) var(--border-radius-base) 0 0;bottom:35px;top:unset!important}.form-input-con.time.h-22 .form-input .control{height:22px;padding:5px}.form-input-con.time.h-22 .form-input i.icon{display:none}.form-input-con.time.h-22 .form-input .control:focus+.options-con{top:22px!important}.form-input-con.time.h-22.top .form-input .control:focus+.options-con{bottom:22px}.form-input-con.time.h-30 .form-input .control{height:30px;padding:5px 30px}.form-input-con.time.h-30 .form-input i.clear-icon,.form-input-con.time.h-30 .form-input i.icon{height:30px;line-height:30px;width:30px}.form-input-con.time.h-30 .form-input .control:focus+.options-con{top:30px!important}.form-input-con.time.h-30.top .form-input .control:focus+.options-con{bottom:30px}"]
|
|
6838
6838
|
},] }
|
|
6839
6839
|
];
|
|
6840
6840
|
FormTimeComponent.ctorParameters = () => [];
|
|
@@ -7091,13 +7091,13 @@ class ConfirmComponent {
|
|
|
7091
7091
|
};
|
|
7092
7092
|
}
|
|
7093
7093
|
ngOnInit() {
|
|
7094
|
-
this.confirm = new ModalClass(this.config.environment, this.l, (this.tableId ? this.tableId : '') + 'Confirm');
|
|
7095
|
-
this.confirm.form = new FormClass(this.config.environment, this.l, 'Confirm');
|
|
7096
|
-
this.confirmLabel = new InputClass(this.config.environment, this.l, 'Confirm', null, InputType.Label, 'f-s-
|
|
7094
|
+
this.confirm = new ModalClass(this.config.environment, this.l, (this.tableId ? this.tableId : '') + 'Confirm', 'confirm-modal sm');
|
|
7095
|
+
this.confirm.form = new FormClass(this.config.environment, this.l, 'Confirm', true, null, 'confirm-modal');
|
|
7096
|
+
this.confirmLabel = new InputClass(this.config.environment, this.l, 'Confirm', null, InputType.Label, 'f-s-14 p-h-20 p-t-10 l-h-25', 'Confirm');
|
|
7097
7097
|
this.confirm.form.inputs = [
|
|
7098
7098
|
this.confirmLabel,
|
|
7099
7099
|
];
|
|
7100
|
-
this.confirm.form.addButtons('Accept', 'blue', false);
|
|
7100
|
+
this.confirm.form.addButtons('Accept', 'blue h-25 confirm-modal', false);
|
|
7101
7101
|
}
|
|
7102
7102
|
show(l, url, data, accept) {
|
|
7103
7103
|
this.confirmLabel.value = l;
|