ps-toolkit-ui 0.1.18 → 0.1.19
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 +3 -3
- 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/form/index/form.component.js +1 -1
- package/esm2015/lib/components/modal/modal.component.js +1 -1
- package/fesm2015/ps-toolkit-ui.js +3 -3
- package/fesm2015/ps-toolkit-ui.js.map +1 -1
- package/package.json +1 -1
- package/ps-toolkit-ui.metadata.json +1 -1
|
@@ -103,7 +103,7 @@ export class FormClass {
|
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
105
|
const br = new InputClass(this.environment, this.l, null, null, InputType.Label, (this.onTop ? 'space' : 'underline') + (onSubmit === null ? '' : ' m-v-5'));
|
|
106
|
-
const save = new InputClass(this.environment, this.l, name, 'fa-duotone fa-check', InputType.Submit, 'w-30 f-l ' + cls + (onSubmit === null ? ' h-
|
|
106
|
+
const save = new InputClass(this.environment, this.l, name, 'fa-duotone fa-check', InputType.Submit, 'w-30 f-l save-form-btn' + cls + (onSubmit === null ? ' h-35' : ' h-25'));
|
|
107
107
|
save.onClick = () => {
|
|
108
108
|
this.submit(onSubmit);
|
|
109
109
|
};
|
|
@@ -478,4 +478,4 @@ export class AccordionRowClass {
|
|
|
478
478
|
}, 100);
|
|
479
479
|
}
|
|
480
480
|
}
|
|
481
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9mb3JtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQVksSUFBWTtRQUt4QixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWIsVUFBSyxHQUFlLElBQUksQ0FBQztRQUN6QixZQUFPLEdBQWUsSUFBSSxDQUFDO1FBQzNCLFVBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNoQjtZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFFLEdBQUcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBQztvQkFDeEIsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDN0IsSUFB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QUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBTUQsTUFBTTtRQUNKLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxDQUFDLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEQsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUNELElBQUk7UUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQ2pFLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNyRDtRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW51bVV0aWxzLCBJbnB1dEVycm9yLCBJbnB1dFR5cGUsIE1ldGhvZH0gZnJvbSAnLi9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi9oZWxwZXIuY2xhc3MnO1xyXG5pbXBvcnQge1JlcXVlc3RDbGFzc30gZnJvbSAnLi9yZXF1ZXN0LmNsYXNzJztcclxuaW1wb3J0IHtUYWJsZUNsYXNzfSBmcm9tICcuL3RhYmxlLmNsYXNzJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge01vZGFsQ2xhc3N9IGZyb20gJy4vbW9kYWwuY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3Mge1xyXG4gIGNvbnN0cnVjdG9yKHNlY3M6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWNzID0gdGhpcy5yZW1haW5TZWNzID0gc2VjcztcclxuICB9XHJcbiAgc2VjczogbnVtYmVyO1xyXG4gIHJlbWFpblNlY3M6IG51bWJlcjtcclxuICBwZXJjZW50ID0gOTg7XHJcbiAgaW50ZXJWYWw7XHJcbiAgb25FbmQ6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uU3RhcnQ6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIHN0YXJ0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5yZW1haW5TZWNzID0gdGhpcy5zZWNzO1xyXG4gICAgdGhpcy5wZXJjZW50ID0gOTg7XHJcbiAgICBpZiAodGhpcy5vblN0YXJ0KXtcclxuICAgICAgdGhpcy5vblN0YXJ0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmludGVyVmFsID0gc2V0SW50ZXJ2YWwoICgpID0+IHtcclxuICAgICAgdGhpcy5wZXJjZW50ID0gKHRoaXMucmVtYWluU2VjcyAvIHRoaXMuc2VjcykgKiA5ODtcclxuICAgICAgaWYgKHRoaXMucmVtYWluU2VjcyA9PT0gMCl7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVyVmFsKTtcclxuICAgICAgICBpZiAodGhpcy5vbkVuZCl7XHJcbiAgICAgICAgICB0aGlzLm9uRW5kKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVtYWluU2VjcyAtPSAwLjU7XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY2xhc3MgRm9ybUNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihlbnZpcm9ubWVudDogYW55LCBsOiAoaywgdj8pID0+IHN0cmluZywgbmFtZTogc3RyaW5nID0gbnVsbCwgcGVybWlzc2lvbjogYm9vbGVhbiA9IHRydWUsXHJcbiAgICAgICAgICAgICAgdXJsOiBzdHJpbmcgPSBudWxsLCBjbHM6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLnVybCA9IHVybDtcclxuICAgIHRoaXMuYmFzZVVybCA9IHVybDtcclxuICAgIHRoaXMuY2xhc3MgPSBjbHM7XHJcbiAgICB0aGlzLnBlcm1pc3Npb24gPSBwZXJtaXNzaW9uO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMuaWQgPSB0aGlzLm5hbWU7XHJcbiAgfVxyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIHBlcm1pc3Npb246IGJvb2xlYW47XHJcbiAgZW52aXJvbm1lbnQ6IGFueSA9IG51bGw7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHN1Yk5hbWU6IHN0cmluZyA9IG51bGw7XHJcbiAgaWQ6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIGJhc2VVcmw6IHN0cmluZztcclxuICB1cmw6IHN0cmluZztcclxuICBtZXRob2Q6IE1ldGhvZCA9IE1ldGhvZC5Qb3N0O1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBzdHlsZToge307XHJcbiAgb25Ub3AgPSBmYWxzZTtcclxuICBkaXNwbGF5TGFiZWwgPSB0cnVlO1xyXG4gIGlucHV0czogSW5wdXRDbGFzc1tdID0gW107XHJcbiAgb25TdWNjZXNzQmFzZTogKHJlc3VsdCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25TdWNjZXNzOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkZhaWxlZDogKHJlc3VsdCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25Mb2FkOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkJlZm9yZVN1Ym1pdDogKCkgPT4gYm9vbGVhbiA9IG51bGw7XHJcbiAgb25IaWRlTW9kYWw6ICgpID0+IHZvaWQgPSBudWxsO1xyXG5cclxuICBsb2FkRGF0YSh1cmwpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCkuc2VuZCh1cmwsIE1ldGhvZC5Qb3N0LCBudWxsLCBudWxsLCAocmVzdWx0KSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YShyZXN1bHQpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLm9uTG9hZCl7XHJcbiAgICAgICAgICB0aGlzLm9uTG9hZChyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgNTAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzdWJtaXQob25TdWJtaXQgPSBudWxsKTogdm9pZCB7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCkucG9zdEZvcm0odGhpcywgb25TdWJtaXQpO1xyXG4gIH1cclxuICBjaGVjaygpOiBib29sZWFuIHtcclxuICAgIGxldCB2YWxpZCA9IHRydWU7XHJcbiAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGlmICghaW5wLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIGlmICh2YWxpZCl7XHJcbiAgICAgICAgICBpbnAuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFsaWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdmFsaWQ7XHJcbiAgfVxyXG4gIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZXRob2QgPSBNZXRob2QuUG9zdDtcclxuICAgIHRoaXMudXJsID0gdGhpcy5iYXNlVXJsO1xyXG4gICAgdGhpcy5zZXRCdXR0b25zKHRoaXMub25Ub3AsIGZhbHNlKTtcclxuICAgIHRoaXMuY2xlYXJJbnB1dHMoKTtcclxuICB9XHJcbiAgY2xlYXJJbnB1dHMoKTogdm9pZHtcclxuICAgIHRoaXMuaW5wdXRzLmZpbHRlcih4ID0+IHgudHlwZSAhPT0gSW5wdXRUeXBlLkNvbnN0YW50KS5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGlucC5jbGVhcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldEJ1dHRvbnMoZm9ybU9uVG9wLCBlZGl0OiBib29sZWFuLCBpZCA9IG51bGwpOiB2b2lkIHtcclxuICAgIGNvbnN0IHMgPSB0aGlzLmlucHV0cy5maW5kKHggPT4geC50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KTtcclxuICAgIGlmICghcyl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHMubmFtZSA9IGVkaXQgPyAnQWNjZXB0JyA6ICdTYXZlJztcclxuICAgIHMuY2xhc3MgPSBlZGl0ID8gcy5jbGFzcy5yZXBsYWNlKCdncmVlbicsICdibHVlJykgOiBzLmNsYXNzLnJlcGxhY2UoJ2JsdWUnLCAnZ3JlZW4nKTtcclxuICB9XHJcbiAgYWRkQnV0dG9ucyhuYW1lID0gJ1NhdmUnLCBjbHMgPSAnZ3JlZW4nLCBjbGVhciA9IHRydWUsIG9uU3VibWl0ID0gbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRzLmZpbHRlcih4ID0+IHgudHlwZSA9PT0gSW5wdXRUeXBlLlN1Ym1pdCkubGVuZ3RoID4gMCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGJyID0gbmV3IElucHV0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sLCBudWxsLCBudWxsLCBJbnB1dFR5cGUuTGFiZWwsXHJcbiAgICAgICh0aGlzLm9uVG9wID8gJ3NwYWNlJyA6ICd1bmRlcmxpbmUnKSArIChvblN1Ym1pdCA9PT0gbnVsbCA/ICcnIDogJyBtLXYtNScpKTtcclxuICAgIGNvbnN0IHNhdmUgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsIG5hbWUsICdmYS1kdW90b25lIGZhLWNoZWNrJywgSW5wdXRUeXBlLlN1Ym1pdCwgJ3ctMzAgZi1sICcgKyBjbHMgKyAob25TdWJtaXQgPT09IG51bGwgPyAnIGgtMzAnIDogJyBoLTI1JykpO1xyXG4gICAgc2F2ZS5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLnN1Ym1pdChvblN1Ym1pdCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnB1dHMucHVzaChicik7XHJcbiAgICB0aGlzLmlucHV0cy5wdXNoKHNhdmUpO1xyXG4gICAgaWYgKGNsZWFyKXtcclxuICAgICAgY29uc3QgZXJhc2UgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsIG51bGwsICdmYS1kdW90b25lIGZhLWVyYXNlcicsIElucHV0VHlwZS5CdXR0b24sXHJcbiAgICAgICAgJ2YtbCB3LXUgZ3JleScgKyAob25TdWJtaXQgPT09IG51bGwgPyAnIGgtMzAnIDogJyBoLTI1JykpO1xyXG4gICAgICBlcmFzZS5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9uVG9wKXtcclxuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuY2xlYXJJbnB1dHMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuaW5wdXRzLnB1c2goZXJhc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICBkYXRhKGQgPSBudWxsKTogYW55IHtcclxuICAgIGlmICh0aGlzLmlucHV0cy5maW5kSW5kZXgoeCA9PiB4LnR5cGUgPT09IElucHV0VHlwZS5GaWxlKSA9PT0gLTEpe1xyXG4gICAgICBpZiAoZCA9PSBudWxsKXtcclxuICAgICAgICBkID0ge307XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnAgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZsID0gaW5wLmRhdGEoKTtcclxuICAgICAgICBpZiAodmwgIT09IG51bGwpe1xyXG4gICAgICAgICAgXy5zZXQoZCwgaW5wLm5hbWUsIHZsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGlmIChkID09IG51bGwpe1xyXG4gICAgICAgIGQgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgICAgY29uc3QgdmwgPSBpbnAuZGF0YSgpO1xyXG4gICAgICAgIGlmICh2bCAhPT0gbnVsbCl7XHJcbiAgICAgICAgICBpZiAodmwgaW5zdGFuY2VvZiBBcnJheSl7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiB2bCl7XHJcbiAgICAgICAgICAgICAgZC5hcHBlbmQoaW5wLm5hbWUsIHYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgZC5hcHBlbmQoaW5wLm5hbWUsIHZsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGQ7XHJcbiAgfVxyXG4gIGpzb24oZCA9IG51bGwpOiB7fSB7XHJcbiAgICBpZiAoZCA9PSBudWxsKXtcclxuICAgICAgZCA9IHt9O1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnAgPT4ge1xyXG4gICAgICBjb25zdCB2bCA9IGlucC5kYXRhKCk7XHJcbiAgICAgIGlmICh2bCAhPT0gbnVsbCAmJiB2bCAhPT0gJycpe1xyXG4gICAgICAgIGlmICh2bCBpbnN0YW5jZW9mIEFycmF5KXtcclxuICAgICAgICAgIGZvciAoY29uc3QgdiBvZiB2bCl7XHJcbiAgICAgICAgICAgIGRbaW5wLm5hbWVdID0gdjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGRbaW5wLm5hbWVdID0gdmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkO1xyXG4gIH1cclxuICBzZXREYXRhKGQpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wID0+IHtcclxuICAgICAgY29uc3QgaXYgPSBfLmdldChkLCBpbnAubmFtZSk7XHJcbiAgICAgIGlmIChpbnAudHlwZSA9PT0gSW5wdXRUeXBlLkNhclNlYXJjaCl7XHJcbiAgICAgICAgY29uc3QgaXZzID0gXy5nZXQoZCwgaW5wLm5hbWUucmVwbGFjZSgnSWQnLCAnJykpO1xyXG4gICAgICAgIGlucC5zZXRWYWx1ZSh7U2VhcmNoOiBpdnMsIFZhbHVlOiBpdn0sIHRydWUpO1xyXG4gICAgICB9ZWxzZSBpZiAoaW5wLnR5cGUgIT09IElucHV0VHlwZS5MYWJlbCB8fCBpdiAhPSBudWxsKXtcclxuICAgICAgICBpbnAuc2V0VmFsdWUoaXYsIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSB8fCBpbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgICAgY29uc3QgaXZzID0gXy5nZXQoZCwgaW5wLm5hbWUucmVwbGFjZSgnSWQnLCAnJykpO1xyXG4gICAgICAgIGlucC5zZXRTZWFyY2goaXZzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSW5wdXRDbGFzcyB7XHJcbiAgY29uc3RydWN0b3IoZW52aXJvbm1lbnQ6IGFueSwgbDogKGssIHY/KSA9PiBzdHJpbmcsIG5hbWU6IHN0cmluZywgaWNvbjogc3RyaW5nID0gbnVsbCxcclxuICAgICAgICAgICAgICB0eXBlOiBJbnB1dFR5cGUgPSBJbnB1dFR5cGUuVGV4dCwgY2xzOiBzdHJpbmcgPSAnJywgdmFsdWUgPSBudWxsLFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiBib29sZWFuID0gdHJ1ZSwgbWluTGVuZ3RoID0gLTEsIG1heExlbmd0aCA9IC0xKSB7XHJcbiAgICB0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XHJcbiAgICB0aGlzLmwgPSBsO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMubG9hZGluZ05hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IG5hbWU7XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscyArIChbSW5wdXRUeXBlLk1vYmlsZSwgSW5wdXRUeXBlLlBob25lLCBJbnB1dFR5cGUuUGFzc3dvcmQsIElucHV0VHlwZS5FbWFpbCwgSW5wdXRUeXBlLk51bWJlciwgSW5wdXRUeXBlLlByaWNlLFxyXG4gICAgICBJbnB1dFR5cGUuTmF0aW9uYWxDb2RlLCBJbnB1dFR5cGUuU2hlYmEsIElucHV0VHlwZS5Qb3N0YWxDb2RlLCBJbnB1dFR5cGUuRGF0ZSwgSW5wdXRUeXBlLlRpbWVdLmluY2x1ZGVzKHR5cGUpID8gJyBsdHInIDogJycpO1xyXG4gICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuZGVmYXVsdCA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyBfLmNsb25lRGVlcCh2YWx1ZSkgOiBIZWxwZXJDbGFzcy5jbG9uZSh2YWx1ZSk7XHJcbiAgICB0aGlzLnJlcXVpcmVkID0gcmVxdWlyZWQ7XHJcbiAgICB0aGlzLm1pbkxlbmd0aCA9IHR5cGUgPT09IElucHV0VHlwZS5Nb2JpbGUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLlBob25lID8gMTEgOlxyXG4gICAgICB0eXBlID09PSBJbnB1dFR5cGUuTmF0aW9uYWxDb2RlIHx8IHR5cGUgPT09IElucHV0VHlwZS5Qb3N0YWxDb2RlID8gMTAgOlxyXG4gICAgICB0eXBlID09PSBJbnB1dFR5cGUuU2hlYmEgPyAyNCA6IG1pbkxlbmd0aDtcclxuICAgIHRoaXMubWF4TGVuZ3RoID0gdHlwZSA9PT0gSW5wdXRUeXBlLk1vYmlsZSB8fCB0eXBlID09PSBJbnB1dFR5cGUuUGhvbmUgPyAxMSA6XHJcbiAgICAgIHR5cGUgPT09IElucHV0VHlwZS5OYXRpb25hbENvZGUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLlBvc3RhbENvZGUgPyAxMCA6XHJcbiAgICAgIHR5cGUgPT09IElucHV0VHlwZS5TaGViYSA/IDI0IDogbWF4TGVuZ3RoO1xyXG4gIH1cclxuICBlbnZpcm9ubWVudDogYW55ID0gbnVsbDtcclxuICBsOiAoaywgdj8pID0+IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdXJsID0gbnVsbDtcclxuICB1cmxOZXdUYWIgPSBmYWxzZTtcclxuICBsb2FkaW5nTmFtZTogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgaWQ6IHN0cmluZztcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgYWRkTmV3ID0gZmFsc2U7XHJcbiAgY2xhc3M6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nID0gbnVsbDtcclxuICB0eXBlOiBJbnB1dFR5cGU7XHJcbiAgdmFsdWU7XHJcbiAgc2VhcmNoO1xyXG4gIGRlZmF1bHQ7XHJcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBpbkVkaXREaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGluRWRpdFZpc2libGUgPSB0cnVlO1xyXG4gIGRpc3BsYXlMYWJlbCA9IHRydWU7XHJcbiAgd2l0aENsZWFyID0gZmFsc2U7XHJcbiAgbWluTGVuZ3RoID0gLTE7XHJcbiAgbWF4TGVuZ3RoID0gLTE7XHJcbiAgZXJyb3I6IElucHV0RXJyb3IgPSBudWxsO1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBidXR0b24gPSBudWxsO1xyXG4gIG9uQ2xpY2tCdXR0b246ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIHByb2dyZXNzOiBQcm9ncmVzcyA9IG51bGw7XHJcbiAgb25DbGljazogKGJ0bikgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25LZXlVcDogKGlucCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25LZXlEb3duOiAoZSkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb3B0aW9uczogT3B0aW9uQ2xhc3NbXSA9IFtdO1xyXG4gIG1hdGNoOiBJbnB1dENsYXNzID0gbnVsbDtcclxuICByZWw6IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIHJlbFVybDogc3RyaW5nID0gbnVsbDtcclxuICB0YWJsZTogVGFibGVDbGFzcztcclxuICBzdHlsZSA9IHt9O1xyXG4gIHBvc2l0aW9uID0gJ2JvdHRvbSc7XHJcbiAgb25DaGFuZ2U6ICh2LCBlPykgPT4gdm9pZCA9IG51bGw7XHJcbiAgaG92ZXIgPSAtMTtcclxuICB2aXNpYmxlID0gdHJ1ZTtcclxuICBleHBvcnRQZGYgPSBmYWxzZTtcclxuICBvcGVuID0gZmFsc2U7XHJcbiAgbXVsdGlwbGUgPSBmYWxzZTtcclxuICBvbmx5Q2hpbGQgPSB0cnVlO1xyXG4gIGFsbG93ZWQgPSBudWxsO1xyXG4gIHJvdyA9IG51bGw7XHJcbiAgcm93cyA9IFtdO1xyXG4gIGluZGV4ID0gMDtcclxuICBsZXZlbCA9IG51bGw7XHJcbiAgbW9kYWw6IE1vZGFsQ2xhc3MgPSBudWxsO1xyXG4gIG5hbWVGdW46IChyKSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkZvY3VzT3V0OiAoZSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIGZvY3VzKGNoYW5nZUluZGV4OiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHt9XHJcbiAgY2hhbmdlVHlwZTogKHQ6IElucHV0VHlwZSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIHNldFZhbHVlOiAodiwgaXNFZGl0KSA9PiB2b2lkID0gKHYsIGlzRWRpdCkgPT4geyB0aGlzLnZhbHVlID0gdjsgfTtcclxuICBzZXRTZWFyY2g6ICh2KSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgY2xlYXI6ICgpID0+IHZvaWQgPSAoKSA9PiB7IHRoaXMudmFsdWUgPSBudWxsOyB9O1xyXG4gIGZvY3VzT3V0OiAoKSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgZGF0YTogKCkgPT4gYW55ID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XHJcbiAgfVxyXG4gIGlzVmFsaWQ6ICgpID0+IGJvb2xlYW4gPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgbG9hZCh1ID0gbnVsbCwgZG9uZTogKCkgPT4gdm9pZCA9IG51bGwpOiB2b2lke1xyXG4gICAgdSA9IHUgPyB1IDogdGhpcy51cmw7XHJcbiAgICBpZiAodSl7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xyXG4gICAgICB0aGlzLmhvdmVyID0gLTE7XHJcbiAgICAgIHRoaXMuaW5kZXggPSAwO1xyXG4gICAgICB0aGlzLnJvd3MgPSBbXTtcclxuICAgICAgaWYgKHR5cGVvZiB1ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGlmICghdS5pbmNsdWRlcygne30nKSl7XHJcbiAgICAgICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCkuc2VuZCh1ID8gdSA6IHRoaXMudXJsLCBNZXRob2QuUG9zdCwgbnVsbCwgdGhpcywgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0U2VhcmNoIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdCB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUgfHxcclxuICAgICAgICAgICAgICB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWUgfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlTSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHIgPSB0aGlzLmdldE9wdGlvbnMocmVzdWx0LCBudWxsKTtcclxuICAgICAgICAgICAgICBjb25zdCBzID0gcmVzdWx0LmZpbmQoeCA9PiB4LlNlbGVjdGVkKTtcclxuICAgICAgICAgICAgICBpZiAocykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHMuSWQudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRPcHRpb25zKHIpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlRyZWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJvd3MgPSB0aGlzLmdldFJvd3MocmVzdWx0LCBudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZG9uZSkge1xyXG4gICAgICAgICAgICAgIGRvbmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgICAgICBFbnVtVXRpbHMuZ2V0S2V5c0FuZFZhbHVlcyh1KS5mb3JFYWNoKChrKSA9PiB7XHJcbiAgICAgICAgICByZXN1bHQucHVzaCh7TmFtZTogdGhpcy5sKGsua2V5KSwgSWQ6IGsudmFsdWUudG9TdHJpbmcoKX0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IHIgPSB0aGlzLmdldE9wdGlvbnMocmVzdWx0LCBudWxsKTtcclxuICAgICAgICB0aGlzLnNldE9wdGlvbnMocik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zIGluc3RhbmNlb2YgQXJyYXkpe1xyXG4gICAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCh4ID0+IHguaW5kZXggPSB0aGlzLmluZGV4KyspO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRPcHRpb25zKHIpOiB2b2lke1xyXG4gICAgdGhpcy5vcHRpb25zID0gcjtcclxuICAgIGlmICh0aGlzLnZhbHVlICE9IG51bGwpe1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMudmFsdWUsIHRydWUpO1xyXG4gICAgICB9LCA1MDApO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRPcHRpb25zKHIsIHAsIHRyZWUgPSB0cnVlKTogT3B0aW9uQ2xhc3NbXXtcclxuICAgIHJldHVybiByLmZpbHRlcih4ID0+IChwID09IG51bGwgJiYgIXguUGFyZW50SWQpIHx8IHguUGFyZW50SWQgPT09IHAgfHwgIXRyZWUpXHJcbiAgICAgIC5tYXAoKHgpID0+IHtcclxuICAgICAgICBjb25zdCBvID0gbmV3IE9wdGlvbkNsYXNzKHguTmFtZSwgeC5JZC50b1N0cmluZygpKTtcclxuICAgICAgICBpZiAodGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0gfHwgdGhpcy5uYW1lID09PSAnQ2FySWQnKXtcclxuICAgICAgICAgIGNvbnN0IHRuID0gby5uYW1lLnNwbGl0KCdfJyk7XHJcbiAgICAgICAgICBpZiAodG4ubGVuZ3RoID09PSA0KXtcclxuICAgICAgICAgICAgdG5bMV0gKz0gJyZscm07JztcclxuICAgICAgICAgICAgdG5bMl0gKz0gJyB8JztcclxuICAgICAgICAgICAgby5uYW1lID0gdG4uam9pbignICcpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0bi5sZW5ndGggPT09IDIpe1xyXG4gICAgICAgICAgICBvLm5hbWUgPSB0bi5qb2luKCcgJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG8uc2VhcmNoID0geC5TZWFyY2g7XHJcbiAgICAgICAgby5vcHRpb24gPSB4O1xyXG4gICAgICAgIG8uaW5kZXggPSB0aGlzLmluZGV4Kys7XHJcbiAgICAgICAgby5vcHRpb25zID0gdHJlZSA/IHRoaXMuZ2V0T3B0aW9ucyhyLCB4LklkKSA6IFtdO1xyXG4gICAgICAgIHJldHVybiBvO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgZ2V0Um93cyhyLCBwKTogVHJlZVJvd0NsYXNzW117XHJcbiAgICBjb25zdCBsID0gW107XHJcbiAgICByLmZpbHRlcih4ID0+IChwID09IG51bGwgJiYgIXguUGFyZW50SWQpIHx8IHguUGFyZW50SWQgPT09IHApLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgbGV0IGMgPSB0aGlzLmdldFJvd3MociwgeC5JZCk7XHJcbiAgICAgIGMgPSBjLmxlbmd0aCA+IDAgPyBjIDogeC5DaGlsZHJlbiA/IHguQ2hpbGRyZW4ubWFwKGEgPT4gbmV3IFRyZWVSb3dDbGFzcyhhLk5hbWUsIGEuSWQsIGEuU2VsZWN0ZWQpKSA6IFtdO1xyXG4gICAgICBsZXQgcyA9IHguU2VsZWN0ZWQgPT09IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLm9ubHlDaGlsZCl7XHJcbiAgICAgICAgcyA9IGMubGVuZ3RoID09PSAwID8geC5TZWxlY3RlZCA6IChjLmZpbmQoeSA9PiB5LnNlbGVjdGVkID09PSBmYWxzZSB8fCB5LnNlbGVjdGVkID09PSBudWxsKSA9PSBudWxsID8gdHJ1ZSA6XHJcbiAgICAgICAgICAoYy5maW5kKHkgPT4geS5zZWxlY3RlZCA9PT0gdHJ1ZSB8fCB5LnNlbGVjdGVkID09PSBudWxsKSAhPSBudWxsID8gbnVsbCA6IGZhbHNlKSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgbiA9IHRoaXMubmFtZUZ1biA/IHRoaXMubmFtZUZ1bih4KSA6IHguTmFtZTtcclxuICAgICAgbC5wdXNoKG5ldyBUcmVlUm93Q2xhc3MobiwgeC5JZCwgcywgYykpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbDtcclxuICB9XHJcbiAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXRMYWJlbCh0aGlzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBPcHRpb25DbGFzcyB7XHJcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBPcHRpb25DbGFzc1tdID0gW10sIGNsczogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICB0aGlzLmNsYXNzID0gY2xzO1xyXG4gIH1cclxuICBvcHRpb247XHJcbiAgc2VhcmNoOiBzdHJpbmc7XHJcbiAgY2xhc3M6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBpbmRleDogbnVtYmVyO1xyXG4gIHNob3cgPSB0cnVlO1xyXG4gIHNlbGVjdGVkID0gZmFsc2U7XHJcbiAgcGFyZW50OiBPcHRpb25DbGFzcyA9IG51bGw7XHJcbiAgb3B0aW9uczogT3B0aW9uQ2xhc3NbXTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbn1cclxuZXhwb3J0IGNsYXNzIERheUNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihkYXk6IG51bWJlciwgdG9kYXk6IGJvb2xlYW4sIHNlbGVjdGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRheSA9IGRheTtcclxuICAgIHRoaXMudG9kYXkgPSB0b2RheTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcclxuICB9XHJcbiAgZGF5OiBudW1iZXI7XHJcbiAgdG9kYXk6IGJvb2xlYW47XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGNsYXNzIFRyZWVSb3dDbGFzcyB7XHJcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlLCBjaGlsZHJlbjogVHJlZVJvd0NsYXNzW10gPSBbXSkge1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcclxuICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcclxuICB9XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbiAgcGFyZW50OiBUcmVlUm93Q2xhc3M7XHJcbiAgY2hpbGRyZW46IFRyZWVSb3dDbGFzc1tdO1xyXG4gIHRvZ2dsZShvbmx5Q2hpbGQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZCl7XHJcbiAgICAgIHRoaXMudW5DaGVjayhvbmx5Q2hpbGQpO1xyXG4gICAgICBpZiAob25seUNoaWxkKXtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLnVuQ2hlY2tQYXJlbnQoKTsgfSk7XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNoZWNrKG9ubHlDaGlsZCk7XHJcbiAgICAgIGlmIChvbmx5Q2hpbGQpe1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3RoaXMuY2hlY2tQYXJlbnQoKTsgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2sob25seUNoaWxkOiBib29sZWFuLCBjOiBUcmVlUm93Q2xhc3MgPSB0aGlzKTogdm9pZCB7XHJcbiAgICBjLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIGlmIChvbmx5Q2hpbGQpIHtcclxuICAgICAgYy5jaGVja0NoaWxkcmVuKG9ubHlDaGlsZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVuQ2hlY2sob25seUNoaWxkOiBib29sZWFuLCBjOiBUcmVlUm93Q2xhc3MgPSB0aGlzKTogdm9pZCB7XHJcbiAgICBjLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICBpZiAob25seUNoaWxkKSB7XHJcbiAgICAgIGMuY2hpbGRyZW4uZm9yRWFjaCgoY2gpID0+IHtcclxuICAgICAgICB0aGlzLnVuQ2hlY2sob25seUNoaWxkLCBjaCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGVja0NoaWxkcmVuKG9ubHlDaGlsZDogYm9vbGVhbik6IHZvaWR7XHJcbiAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGNoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2sob25seUNoaWxkLCBjaCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY2hlY2tQYXJlbnQocDogVHJlZVJvd0NsYXNzID0gdGhpcy5wYXJlbnQpOiB2b2lke1xyXG4gICAgaWYgKHApe1xyXG4gICAgICBpZiAocC5jaGlsZHJlbi5maWx0ZXIoeCA9PiAheC5zZWxlY3RlZCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tQYXJlbnQocC5wYXJlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bkNoZWNrUGFyZW50KHA6IFRyZWVSb3dDbGFzcyA9IHRoaXMucGFyZW50KTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAuY2hpbGRyZW4uZmlsdGVyKHggPT4geC5zZWxlY3RlZCB8fCB4LnNlbGVjdGVkID09IG51bGwpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51bkNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25DbGFzcyB7XHJcbiAgY29uc3RydWN0b3IobDogKGssIHY/KSA9PiBzdHJpbmcsIG5hbWU6IHN0cmluZywgY2xzOiBzdHJpbmcgPSAnJywgcm93czogQWNjb3JkaW9uUm93Q2xhc3NbXSkge1xyXG4gICAgdGhpcy5sID0gbDtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmNsYXNzID0gY2xzO1xyXG4gICAgdGhpcy5yb3dzID0gcm93cztcclxuICB9XHJcbiAgbDogKGssIHY/KSA9PiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNsYXNzOiBzdHJpbmc7XHJcbiAgcm93czogQWNjb3JkaW9uUm93Q2xhc3NbXTtcclxuICBoYXNEZWxldGUgPSBmYWxzZTtcclxuICBkaXNwbGF5TGFiZWwgPSBmYWxzZTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgb25EZWxldGU6IChyb3cpID0+IHZvaWQgPSBudWxsO1xyXG4gIGNoZWNrKCk6IGJvb2xlYW57XHJcbiAgICBmb3IgKGNvbnN0IHJvdyBvZiB0aGlzLnJvd3Mpe1xyXG4gICAgICBpZiAoIXJvdy5mb3JtLmNoZWNrKCkpe1xyXG4gICAgICAgIHJvdy5vcGVuKCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Sb3dDbGFzcyB7XHJcbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nLCBmb3JtOiBGb3JtQ2xhc3MgPSBudWxsLCB0YWJsZTogVGFibGVDbGFzcyA9IG51bGwpIHtcclxuICAgIHRoaXMuaWQgPSBpZDtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmZvcm0gPSBmb3JtO1xyXG4gICAgdGhpcy50YWJsZSA9IHRhYmxlO1xyXG4gIH1cclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBzaG93ID0gdHJ1ZTtcclxuICBmb3JtOiBGb3JtQ2xhc3M7XHJcbiAgdGFibGU6IFRhYmxlQ2xhc3M7XHJcbiAgdG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICQoJyNBY2NvcmRpb25Sb3cnICsgdGhpcy5pZCArICcgPiAuaGVhZGVyJykuY2xpY2soKTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG4gIG9wZW4oKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKCEkKCcjQWNjb3JkaW9uUm93JyArIHRoaXMuaWQgKyAnID4gLmNvbnRlbnQnKS5oYXNDbGFzcygnb3BlbicpKXtcclxuICAgICAgICAkKCcjQWNjb3JkaW9uUm93JyArIHRoaXMuaWQgKyAnID4gLmhlYWRlcicpLmNsaWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
481
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY2xhc3Nlcy9mb3JtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQVksSUFBWTtRQUt4QixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWIsVUFBSyxHQUFlLElBQUksQ0FBQztRQUN6QixZQUFPLEdBQWUsSUFBSSxDQUFDO1FBQzNCLFVBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFDO2dCQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNoQjtZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFFLEdBQUcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBQztvQkFDeEIsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDN0IsSUFB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YixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBTUQsTUFBTTtRQUNKLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxDQUFDLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEQsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUNELElBQUk7UUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUM7Z0JBQ2pFLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNyRDtRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW51bVV0aWxzLCBJbnB1dEVycm9yLCBJbnB1dFR5cGUsIE1ldGhvZH0gZnJvbSAnLi9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi9oZWxwZXIuY2xhc3MnO1xyXG5pbXBvcnQge1JlcXVlc3RDbGFzc30gZnJvbSAnLi9yZXF1ZXN0LmNsYXNzJztcclxuaW1wb3J0IHtUYWJsZUNsYXNzfSBmcm9tICcuL3RhYmxlLmNsYXNzJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge01vZGFsQ2xhc3N9IGZyb20gJy4vbW9kYWwuY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3Mge1xyXG4gIGNvbnN0cnVjdG9yKHNlY3M6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWNzID0gdGhpcy5yZW1haW5TZWNzID0gc2VjcztcclxuICB9XHJcbiAgc2VjczogbnVtYmVyO1xyXG4gIHJlbWFpblNlY3M6IG51bWJlcjtcclxuICBwZXJjZW50ID0gOTg7XHJcbiAgaW50ZXJWYWw7XHJcbiAgb25FbmQ6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uU3RhcnQ6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIHN0YXJ0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5yZW1haW5TZWNzID0gdGhpcy5zZWNzO1xyXG4gICAgdGhpcy5wZXJjZW50ID0gOTg7XHJcbiAgICBpZiAodGhpcy5vblN0YXJ0KXtcclxuICAgICAgdGhpcy5vblN0YXJ0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmludGVyVmFsID0gc2V0SW50ZXJ2YWwoICgpID0+IHtcclxuICAgICAgdGhpcy5wZXJjZW50ID0gKHRoaXMucmVtYWluU2VjcyAvIHRoaXMuc2VjcykgKiA5ODtcclxuICAgICAgaWYgKHRoaXMucmVtYWluU2VjcyA9PT0gMCl7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVyVmFsKTtcclxuICAgICAgICBpZiAodGhpcy5vbkVuZCl7XHJcbiAgICAgICAgICB0aGlzLm9uRW5kKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVtYWluU2VjcyAtPSAwLjU7XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY2xhc3MgRm9ybUNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihlbnZpcm9ubWVudDogYW55LCBsOiAoaywgdj8pID0+IHN0cmluZywgbmFtZTogc3RyaW5nID0gbnVsbCwgcGVybWlzc2lvbjogYm9vbGVhbiA9IHRydWUsXHJcbiAgICAgICAgICAgICAgdXJsOiBzdHJpbmcgPSBudWxsLCBjbHM6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLnVybCA9IHVybDtcclxuICAgIHRoaXMuYmFzZVVybCA9IHVybDtcclxuICAgIHRoaXMuY2xhc3MgPSBjbHM7XHJcbiAgICB0aGlzLnBlcm1pc3Npb24gPSBwZXJtaXNzaW9uO1xyXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcclxuICAgIHRoaXMuaWQgPSB0aGlzLm5hbWU7XHJcbiAgfVxyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIHBlcm1pc3Npb246IGJvb2xlYW47XHJcbiAgZW52aXJvbm1lbnQ6IGFueSA9IG51bGw7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHN1Yk5hbWU6IHN0cmluZyA9IG51bGw7XHJcbiAgaWQ6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIGJhc2VVcmw6IHN0cmluZztcclxuICB1cmw6IHN0cmluZztcclxuICBtZXRob2Q6IE1ldGhvZCA9IE1ldGhvZC5Qb3N0O1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBzdHlsZToge307XHJcbiAgb25Ub3AgPSBmYWxzZTtcclxuICBkaXNwbGF5TGFiZWwgPSB0cnVlO1xyXG4gIGlucHV0czogSW5wdXRDbGFzc1tdID0gW107XHJcbiAgb25TdWNjZXNzQmFzZTogKHJlc3VsdCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25TdWNjZXNzOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkZhaWxlZDogKHJlc3VsdCkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25Mb2FkOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBvbkJlZm9yZVN1Ym1pdDogKCkgPT4gYm9vbGVhbiA9IG51bGw7XHJcbiAgb25IaWRlTW9kYWw6ICgpID0+IHZvaWQgPSBudWxsO1xyXG5cclxuICBsb2FkRGF0YSh1cmwpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCkuc2VuZCh1cmwsIE1ldGhvZC5Qb3N0LCBudWxsLCBudWxsLCAocmVzdWx0KSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YShyZXN1bHQpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLm9uTG9hZCl7XHJcbiAgICAgICAgICB0aGlzLm9uTG9hZChyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgNTAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzdWJtaXQob25TdWJtaXQgPSBudWxsKTogdm9pZCB7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCkucG9zdEZvcm0odGhpcywgb25TdWJtaXQpO1xyXG4gIH1cclxuICBjaGVjaygpOiBib29sZWFuIHtcclxuICAgIGxldCB2YWxpZCA9IHRydWU7XHJcbiAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGlmICghaW5wLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIGlmICh2YWxpZCl7XHJcbiAgICAgICAgICBpbnAuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFsaWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdmFsaWQ7XHJcbiAgfVxyXG4gIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZXRob2QgPSBNZXRob2QuUG9zdDtcclxuICAgIHRoaXMudXJsID0gdGhpcy5iYXNlVXJsO1xyXG4gICAgdGhpcy5zZXRCdXR0b25zKHRoaXMub25Ub3AsIGZhbHNlKTtcclxuICAgIHRoaXMuY2xlYXJJbnB1dHMoKTtcclxuICB9XHJcbiAgY2xlYXJJbnB1dHMoKTogdm9pZHtcclxuICAgIHRoaXMuaW5wdXRzLmZpbHRlcih4ID0+IHgudHlwZSAhPT0gSW5wdXRUeXBlLkNvbnN0YW50KS5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGlucC5jbGVhcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldEJ1dHRvbnMoZm9ybU9uVG9wLCBlZGl0OiBib29sZWFuLCBpZCA9IG51bGwpOiB2b2lkIHtcclxuICAgIGNvbnN0IHMgPSB0aGlzLmlucHV0cy5maW5kKHggPT4geC50eXBlID09PSBJbnB1dFR5cGUuU3VibWl0KTtcclxuICAgIGlmICghcyl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHMubmFtZSA9IGVkaXQgPyAnQWNjZXB0JyA6ICdTYXZlJztcclxuICAgIHMuY2xhc3MgPSBlZGl0ID8gcy5jbGFzcy5yZXBsYWNlKCdncmVlbicsICdibHVlJykgOiBzLmNsYXNzLnJlcGxhY2UoJ2JsdWUnLCAnZ3JlZW4nKTtcclxuICB9XHJcbiAgYWRkQnV0dG9ucyhuYW1lID0gJ1NhdmUnLCBjbHMgPSAnZ3JlZW4nLCBjbGVhciA9IHRydWUsIG9uU3VibWl0ID0gbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRzLmZpbHRlcih4ID0+IHgudHlwZSA9PT0gSW5wdXRUeXBlLlN1Ym1pdCkubGVuZ3RoID4gMCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGJyID0gbmV3IElucHV0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sLCBudWxsLCBudWxsLCBJbnB1dFR5cGUuTGFiZWwsXHJcbiAgICAgICh0aGlzLm9uVG9wID8gJ3NwYWNlJyA6ICd1bmRlcmxpbmUnKSArIChvblN1Ym1pdCA9PT0gbnVsbCA/ICcnIDogJyBtLXYtNScpKTtcclxuICAgIGNvbnN0IHNhdmUgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsIG5hbWUsICdmYS1kdW90b25lIGZhLWNoZWNrJywgSW5wdXRUeXBlLlN1Ym1pdCxcclxuICAgICAgJ3ctMzAgZi1sIHNhdmUtZm9ybS1idG4nICsgY2xzICsgKG9uU3VibWl0ID09PSBudWxsID8gJyBoLTM1JyA6ICcgaC0yNScpKTtcclxuICAgIHNhdmUub25DbGljayA9ICgpID0+IHtcclxuICAgICAgdGhpcy5zdWJtaXQob25TdWJtaXQpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wdXRzLnB1c2goYnIpO1xyXG4gICAgdGhpcy5pbnB1dHMucHVzaChzYXZlKTtcclxuICAgIGlmIChjbGVhcil7XHJcbiAgICAgIGNvbnN0IGVyYXNlID0gbmV3IElucHV0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sLCBudWxsLCAnZmEtZHVvdG9uZSBmYS1lcmFzZXInLCBJbnB1dFR5cGUuQnV0dG9uLFxyXG4gICAgICAgICdmLWwgdy11IGdyZXknICsgKG9uU3VibWl0ID09PSBudWxsID8gJyBoLTMwJyA6ICcgaC0yNScpKTtcclxuICAgICAgZXJhc2Uub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5vblRvcCl7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmNsZWFySW5wdXRzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmlucHV0cy5wdXNoKGVyYXNlKTtcclxuICAgIH1cclxuICB9XHJcbiAgZGF0YShkID0gbnVsbCk6IGFueSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dHMuZmluZEluZGV4KHggPT4geC50eXBlID09PSBJbnB1dFR5cGUuRmlsZSkgPT09IC0xKXtcclxuICAgICAgaWYgKGQgPT0gbnVsbCl7XHJcbiAgICAgICAgZCA9IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wID0+IHtcclxuICAgICAgICBjb25zdCB2bCA9IGlucC5kYXRhKCk7XHJcbiAgICAgICAgaWYgKHZsICE9PSBudWxsKXtcclxuICAgICAgICAgIF8uc2V0KGQsIGlucC5uYW1lLCB2bCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1lbHNle1xyXG4gICAgICBpZiAoZCA9PSBudWxsKXtcclxuICAgICAgICBkID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnB1dHMuZm9yRWFjaChpbnAgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZsID0gaW5wLmRhdGEoKTtcclxuICAgICAgICBpZiAodmwgIT09IG51bGwpe1xyXG4gICAgICAgICAgaWYgKHZsIGluc3RhbmNlb2YgQXJyYXkpe1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2Ygdmwpe1xyXG4gICAgICAgICAgICAgIGQuYXBwZW5kKGlucC5uYW1lLCB2KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGQuYXBwZW5kKGlucC5uYW1lLCB2bCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBkO1xyXG4gIH1cclxuICBqc29uKGQgPSBudWxsKToge30ge1xyXG4gICAgaWYgKGQgPT0gbnVsbCl7XHJcbiAgICAgIGQgPSB7fTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wdXRzLmZvckVhY2goaW5wID0+IHtcclxuICAgICAgY29uc3QgdmwgPSBpbnAuZGF0YSgpO1xyXG4gICAgICBpZiAodmwgIT09IG51bGwgJiYgdmwgIT09ICcnKXtcclxuICAgICAgICBpZiAodmwgaW5zdGFuY2VvZiBBcnJheSl7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IHYgb2Ygdmwpe1xyXG4gICAgICAgICAgICBkW2lucC5uYW1lXSA9IHY7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBkW2lucC5uYW1lXSA9IHZsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZDtcclxuICB9XHJcbiAgc2V0RGF0YShkKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucHV0cy5mb3JFYWNoKGlucCA9PiB7XHJcbiAgICAgIGNvbnN0IGl2ID0gXy5nZXQoZCwgaW5wLm5hbWUpO1xyXG4gICAgICBpZiAoaW5wLnR5cGUgPT09IElucHV0VHlwZS5DYXJTZWFyY2gpe1xyXG4gICAgICAgIGNvbnN0IGl2cyA9IF8uZ2V0KGQsIGlucC5uYW1lLnJlcGxhY2UoJ0lkJywgJycpKTtcclxuICAgICAgICBpbnAuc2V0VmFsdWUoe1NlYXJjaDogaXZzLCBWYWx1ZTogaXZ9LCB0cnVlKTtcclxuICAgICAgfWVsc2UgaWYgKGlucC50eXBlICE9PSBJbnB1dFR5cGUuTGFiZWwgfHwgaXYgIT0gbnVsbCl7XHJcbiAgICAgICAgaW5wLnNldFZhbHVlKGl2LCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWUgfHwgaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpe1xyXG4gICAgICAgIGNvbnN0IGl2cyA9IF8uZ2V0KGQsIGlucC5uYW1lLnJlcGxhY2UoJ0lkJywgJycpKTtcclxuICAgICAgICBpbnAuc2V0U2VhcmNoKGl2cyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIElucHV0Q2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGVudmlyb25tZW50OiBhbnksIGw6IChrLCB2PykgPT4gc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGljb246IHN0cmluZyA9IG51bGwsXHJcbiAgICAgICAgICAgICAgdHlwZTogSW5wdXRUeXBlID0gSW5wdXRUeXBlLlRleHQsIGNsczogc3RyaW5nID0gJycsIHZhbHVlID0gbnVsbCxcclxuICAgICAgICAgICAgICByZXF1aXJlZDogYm9vbGVhbiA9IHRydWUsIG1pbkxlbmd0aCA9IC0xLCBtYXhMZW5ndGggPSAtMSkge1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xyXG4gICAgdGhpcy5sID0gbDtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmxvYWRpbmdOYW1lID0gbmFtZTtcclxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBuYW1lO1xyXG4gICAgdGhpcy5pY29uID0gaWNvbjtcclxuICAgIHRoaXMuY2xhc3MgPSBjbHMgKyAoW0lucHV0VHlwZS5Nb2JpbGUsIElucHV0VHlwZS5QaG9uZSwgSW5wdXRUeXBlLlBhc3N3b3JkLCBJbnB1dFR5cGUuRW1haWwsIElucHV0VHlwZS5OdW1iZXIsIElucHV0VHlwZS5QcmljZSxcclxuICAgICAgSW5wdXRUeXBlLk5hdGlvbmFsQ29kZSwgSW5wdXRUeXBlLlNoZWJhLCBJbnB1dFR5cGUuUG9zdGFsQ29kZSwgSW5wdXRUeXBlLkRhdGUsIElucHV0VHlwZS5UaW1lXS5pbmNsdWRlcyh0eXBlKSA/ICcgbHRyJyA6ICcnKTtcclxuICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmRlZmF1bHQgPSB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInID8gXy5jbG9uZURlZXAodmFsdWUpIDogSGVscGVyQ2xhc3MuY2xvbmUodmFsdWUpO1xyXG4gICAgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkO1xyXG4gICAgdGhpcy5taW5MZW5ndGggPSB0eXBlID09PSBJbnB1dFR5cGUuTW9iaWxlIHx8IHR5cGUgPT09IElucHV0VHlwZS5QaG9uZSA/IDExIDpcclxuICAgICAgdHlwZSA9PT0gSW5wdXRUeXBlLk5hdGlvbmFsQ29kZSB8fCB0eXBlID09PSBJbnB1dFR5cGUuUG9zdGFsQ29kZSA/IDEwIDpcclxuICAgICAgdHlwZSA9PT0gSW5wdXRUeXBlLlNoZWJhID8gMjQgOiBtaW5MZW5ndGg7XHJcbiAgICB0aGlzLm1heExlbmd0aCA9IHR5cGUgPT09IElucHV0VHlwZS5Nb2JpbGUgfHwgdHlwZSA9PT0gSW5wdXRUeXBlLlBob25lID8gMTEgOlxyXG4gICAgICB0eXBlID09PSBJbnB1dFR5cGUuTmF0aW9uYWxDb2RlIHx8IHR5cGUgPT09IElucHV0VHlwZS5Qb3N0YWxDb2RlID8gMTAgOlxyXG4gICAgICB0eXBlID09PSBJbnB1dFR5cGUuU2hlYmEgPyAyNCA6IG1heExlbmd0aDtcclxuICB9XHJcbiAgZW52aXJvbm1lbnQ6IGFueSA9IG51bGw7XHJcbiAgbDogKGssIHY/KSA9PiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHVybCA9IG51bGw7XHJcbiAgdXJsTmV3VGFiID0gZmFsc2U7XHJcbiAgbG9hZGluZ05hbWU6IHN0cmluZztcclxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgaWNvbjogc3RyaW5nO1xyXG4gIGFkZE5ldyA9IGZhbHNlO1xyXG4gIGNsYXNzOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZyA9IG51bGw7XHJcbiAgdHlwZTogSW5wdXRUeXBlO1xyXG4gIHZhbHVlO1xyXG4gIHNlYXJjaDtcclxuICBkZWZhdWx0O1xyXG4gIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgaW5FZGl0RGlzYWJsZWQgPSBmYWxzZTtcclxuICBpbkVkaXRWaXNpYmxlID0gdHJ1ZTtcclxuICBkaXNwbGF5TGFiZWwgPSB0cnVlO1xyXG4gIHdpdGhDbGVhciA9IGZhbHNlO1xyXG4gIG1pbkxlbmd0aCA9IC0xO1xyXG4gIG1heExlbmd0aCA9IC0xO1xyXG4gIGVycm9yOiBJbnB1dEVycm9yID0gbnVsbDtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgYnV0dG9uID0gbnVsbDtcclxuICBvbkNsaWNrQnV0dG9uOiAoKSA9PiB2b2lkID0gbnVsbDtcclxuICBwcm9ncmVzczogUHJvZ3Jlc3MgPSBudWxsO1xyXG4gIG9uQ2xpY2s6IChidG4pID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uS2V5VXA6IChpbnApID0+IHZvaWQgPSBudWxsO1xyXG4gIG9uS2V5RG93bjogKGUpID0+IHZvaWQgPSBudWxsO1xyXG4gIG9wdGlvbnM6IE9wdGlvbkNsYXNzW10gPSBbXTtcclxuICBtYXRjaDogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgcmVsOiBJbnB1dENsYXNzID0gbnVsbDtcclxuICByZWxVcmw6IHN0cmluZyA9IG51bGw7XHJcbiAgdGFibGU6IFRhYmxlQ2xhc3M7XHJcbiAgc3R5bGUgPSB7fTtcclxuICBwb3NpdGlvbiA9ICdib3R0b20nO1xyXG4gIG9uQ2hhbmdlOiAodiwgZT8pID0+IHZvaWQgPSBudWxsO1xyXG4gIGhvdmVyID0gLTE7XHJcbiAgdmlzaWJsZSA9IHRydWU7XHJcbiAgZXhwb3J0UGRmID0gZmFsc2U7XHJcbiAgb3BlbiA9IGZhbHNlO1xyXG4gIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgb25seUNoaWxkID0gdHJ1ZTtcclxuICBhbGxvd2VkID0gbnVsbDtcclxuICByb3cgPSBudWxsO1xyXG4gIHJvd3MgPSBbXTtcclxuICBpbmRleCA9IDA7XHJcbiAgbGV2ZWwgPSBudWxsO1xyXG4gIG1vZGFsOiBNb2RhbENsYXNzID0gbnVsbDtcclxuICBuYW1lRnVuOiAocikgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25Gb2N1c091dDogKGUpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICBmb2N1cyhjaGFuZ2VJbmRleDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7fVxyXG4gIGNoYW5nZVR5cGU6ICh0OiBJbnB1dFR5cGUpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuICBzZXRWYWx1ZTogKHYsIGlzRWRpdCkgPT4gdm9pZCA9ICh2LCBpc0VkaXQpID0+IHsgdGhpcy52YWx1ZSA9IHY7IH07XHJcbiAgc2V0U2VhcmNoOiAodikgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIGNsZWFyOiAoKSA9PiB2b2lkID0gKCkgPT4geyB0aGlzLnZhbHVlID0gbnVsbDsgfTtcclxuICBmb2N1c091dDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIGRhdGE6ICgpID0+IGFueSA9ICgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlO1xyXG4gIH1cclxuICBpc1ZhbGlkOiAoKSA9PiBib29sZWFuID0gKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIGxvYWQodSA9IG51bGwsIGRvbmU6ICgpID0+IHZvaWQgPSBudWxsKTogdm9pZHtcclxuICAgIHUgPSB1ID8gdSA6IHRoaXMudXJsO1xyXG4gICAgaWYgKHUpe1xyXG4gICAgICB0aGlzLm9wdGlvbnMgPSBbXTtcclxuICAgICAgdGhpcy5ob3ZlciA9IC0xO1xyXG4gICAgICB0aGlzLmluZGV4ID0gMDtcclxuICAgICAgdGhpcy5yb3dzID0gW107XHJcbiAgICAgIGlmICh0eXBlb2YgdSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBpZiAoIXUuaW5jbHVkZXMoJ3t9Jykpe1xyXG4gICAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwpLnNlbmQodSA/IHUgOiB0aGlzLnVybCwgTWV0aG9kLlBvc3QsIG51bGwsIHRoaXMsIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdFNlYXJjaCB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3QgfHwgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlIHx8XHJcbiAgICAgICAgICAgICAgdGhpcy50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlUGxhcXVlIHx8IHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0pIHtcclxuICAgICAgICAgICAgICBjb25zdCByID0gdGhpcy5nZXRPcHRpb25zKHJlc3VsdCwgbnVsbCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgcyA9IHJlc3VsdC5maW5kKHggPT4geC5TZWxlY3RlZCk7XHJcbiAgICAgICAgICAgICAgaWYgKHMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBzLklkLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9ucyhyKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IElucHV0VHlwZS5UcmVlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yb3dzID0gdGhpcy5nZXRSb3dzKHJlc3VsdCwgbnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRvbmUpIHtcclxuICAgICAgICAgICAgICBkb25lKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XHJcbiAgICAgICAgRW51bVV0aWxzLmdldEtleXNBbmRWYWx1ZXModSkuZm9yRWFjaCgoaykgPT4ge1xyXG4gICAgICAgICAgcmVzdWx0LnB1c2goe05hbWU6IHRoaXMubChrLmtleSksIElkOiBrLnZhbHVlLnRvU3RyaW5nKCl9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCByID0gdGhpcy5nZXRPcHRpb25zKHJlc3VsdCwgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5zZXRPcHRpb25zKHIpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucyBpbnN0YW5jZW9mIEFycmF5KXtcclxuICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goeCA9PiB4LmluZGV4ID0gdGhpcy5pbmRleCsrKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0T3B0aW9ucyhyKTogdm9pZHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHI7XHJcbiAgICBpZiAodGhpcy52YWx1ZSAhPSBudWxsKXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlLCB0cnVlKTtcclxuICAgICAgfSwgNTAwKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0T3B0aW9ucyhyLCBwLCB0cmVlID0gdHJ1ZSk6IE9wdGlvbkNsYXNzW117XHJcbiAgICByZXR1cm4gci5maWx0ZXIoeCA9PiAocCA9PSBudWxsICYmICF4LlBhcmVudElkKSB8fCB4LlBhcmVudElkID09PSBwIHx8ICF0cmVlKVxyXG4gICAgICAubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbyA9IG5ldyBPcHRpb25DbGFzcyh4Lk5hbWUsIHguSWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSB8fCB0aGlzLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGVQbGFxdWVNIHx8IHRoaXMubmFtZSA9PT0gJ0NhcklkJyl7XHJcbiAgICAgICAgICBjb25zdCB0biA9IG8ubmFtZS5zcGxpdCgnXycpO1xyXG4gICAgICAgICAgaWYgKHRuLmxlbmd0aCA9PT0gNCl7XHJcbiAgICAgICAgICAgIHRuWzFdICs9ICcmbHJtOyc7XHJcbiAgICAgICAgICAgIHRuWzJdICs9ICcgfCc7XHJcbiAgICAgICAgICAgIG8ubmFtZSA9IHRuLmpvaW4oJyAnKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodG4ubGVuZ3RoID09PSAyKXtcclxuICAgICAgICAgICAgby5uYW1lID0gdG4uam9pbignICcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBvLnNlYXJjaCA9IHguU2VhcmNoO1xyXG4gICAgICAgIG8ub3B0aW9uID0geDtcclxuICAgICAgICBvLmluZGV4ID0gdGhpcy5pbmRleCsrO1xyXG4gICAgICAgIG8ub3B0aW9ucyA9IHRyZWUgPyB0aGlzLmdldE9wdGlvbnMociwgeC5JZCkgOiBbXTtcclxuICAgICAgICByZXR1cm4gbztcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGdldFJvd3MociwgcCk6IFRyZWVSb3dDbGFzc1tde1xyXG4gICAgY29uc3QgbCA9IFtdO1xyXG4gICAgci5maWx0ZXIoeCA9PiAocCA9PSBudWxsICYmICF4LlBhcmVudElkKSB8fCB4LlBhcmVudElkID09PSBwKS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGxldCBjID0gdGhpcy5nZXRSb3dzKHIsIHguSWQpO1xyXG4gICAgICBjID0gYy5sZW5ndGggPiAwID8gYyA6IHguQ2hpbGRyZW4gPyB4LkNoaWxkcmVuLm1hcChhID0+IG5ldyBUcmVlUm93Q2xhc3MoYS5OYW1lLCBhLklkLCBhLlNlbGVjdGVkKSkgOiBbXTtcclxuICAgICAgbGV0IHMgPSB4LlNlbGVjdGVkID09PSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy5vbmx5Q2hpbGQpe1xyXG4gICAgICAgIHMgPSBjLmxlbmd0aCA9PT0gMCA/IHguU2VsZWN0ZWQgOiAoYy5maW5kKHkgPT4geS5zZWxlY3RlZCA9PT0gZmFsc2UgfHwgeS5zZWxlY3RlZCA9PT0gbnVsbCkgPT0gbnVsbCA/IHRydWUgOlxyXG4gICAgICAgICAgKGMuZmluZCh5ID0+IHkuc2VsZWN0ZWQgPT09IHRydWUgfHwgeS5zZWxlY3RlZCA9PT0gbnVsbCkgIT0gbnVsbCA/IG51bGwgOiBmYWxzZSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG4gPSB0aGlzLm5hbWVGdW4gPyB0aGlzLm5hbWVGdW4oeCkgOiB4Lk5hbWU7XHJcbiAgICAgIGwucHVzaChuZXcgVHJlZVJvd0NsYXNzKG4sIHguSWQsIHMsIGMpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGw7XHJcbiAgfVxyXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gSGVscGVyQ2xhc3MuZ2V0TGFiZWwodGhpcyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgT3B0aW9uQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgb3B0aW9uczogT3B0aW9uQ2xhc3NbXSA9IFtdLCBjbHM6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscztcclxuICB9XHJcbiAgb3B0aW9uO1xyXG4gIHNlYXJjaDogc3RyaW5nO1xyXG4gIGNsYXNzOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgaW5kZXg6IG51bWJlcjtcclxuICBzaG93ID0gdHJ1ZTtcclxuICBzZWxlY3RlZCA9IGZhbHNlO1xyXG4gIHBhcmVudDogT3B0aW9uQ2xhc3MgPSBudWxsO1xyXG4gIG9wdGlvbnM6IE9wdGlvbkNsYXNzW107XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBEYXlDbGFzcyB7XHJcbiAgY29uc3RydWN0b3IoZGF5OiBudW1iZXIsIHRvZGF5OiBib29sZWFuLCBzZWxlY3RlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kYXkgPSBkYXk7XHJcbiAgICB0aGlzLnRvZGF5ID0gdG9kYXk7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XHJcbiAgfVxyXG4gIGRheTogbnVtYmVyO1xyXG4gIHRvZGF5OiBib29sZWFuO1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBUcmVlUm93Q2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZSwgY2hpbGRyZW46IFRyZWVSb3dDbGFzc1tdID0gW10pIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XHJcbiAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgfVxyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG4gIHBhcmVudDogVHJlZVJvd0NsYXNzO1xyXG4gIGNoaWxkcmVuOiBUcmVlUm93Q2xhc3NbXTtcclxuICB0b2dnbGUob25seUNoaWxkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpe1xyXG4gICAgICB0aGlzLnVuQ2hlY2sob25seUNoaWxkKTtcclxuICAgICAgaWYgKG9ubHlDaGlsZCl7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy51bkNoZWNrUGFyZW50KCk7IH0pO1xyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jaGVjayhvbmx5Q2hpbGQpO1xyXG4gICAgICBpZiAob25seUNoaWxkKXtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLmNoZWNrUGFyZW50KCk7IH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrKG9ubHlDaGlsZDogYm9vbGVhbiwgYzogVHJlZVJvd0NsYXNzID0gdGhpcyk6IHZvaWQge1xyXG4gICAgYy5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICBpZiAob25seUNoaWxkKSB7XHJcbiAgICAgIGMuY2hlY2tDaGlsZHJlbihvbmx5Q2hpbGQpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bkNoZWNrKG9ubHlDaGlsZDogYm9vbGVhbiwgYzogVHJlZVJvd0NsYXNzID0gdGhpcyk6IHZvaWQge1xyXG4gICAgYy5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgaWYgKG9ubHlDaGlsZCkge1xyXG4gICAgICBjLmNoaWxkcmVuLmZvckVhY2goKGNoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51bkNoZWNrKG9ubHlDaGlsZCwgY2gpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2tDaGlsZHJlbihvbmx5Q2hpbGQ6IGJvb2xlYW4pOiB2b2lke1xyXG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrKG9ubHlDaGlsZCwgY2gpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoZWNrUGFyZW50KHA6IFRyZWVSb3dDbGFzcyA9IHRoaXMucGFyZW50KTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAuY2hpbGRyZW4uZmlsdGVyKHggPT4gIXguc2VsZWN0ZWQpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgdW5DaGVja1BhcmVudChwOiBUcmVlUm93Q2xhc3MgPSB0aGlzLnBhcmVudCk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLmNoaWxkcmVuLmZpbHRlcih4ID0+IHguc2VsZWN0ZWQgfHwgeC5zZWxlY3RlZCA9PSBudWxsKS5sZW5ndGggPiAwKXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudW5DaGVja1BhcmVudChwLnBhcmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGw6IChrLCB2PykgPT4gc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGNsczogc3RyaW5nID0gJycsIHJvd3M6IEFjY29yZGlvblJvd0NsYXNzW10pIHtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscztcclxuICAgIHRoaXMucm93cyA9IHJvd3M7XHJcbiAgfVxyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIHJvd3M6IEFjY29yZGlvblJvd0NsYXNzW107XHJcbiAgaGFzRGVsZXRlID0gZmFsc2U7XHJcbiAgZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIG9uRGVsZXRlOiAocm93KSA9PiB2b2lkID0gbnVsbDtcclxuICBjaGVjaygpOiBib29sZWFue1xyXG4gICAgZm9yIChjb25zdCByb3cgb2YgdGhpcy5yb3dzKXtcclxuICAgICAgaWYgKCFyb3cuZm9ybS5jaGVjaygpKXtcclxuICAgICAgICByb3cub3BlbigpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uUm93Q2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZm9ybTogRm9ybUNsYXNzID0gbnVsbCwgdGFibGU6IFRhYmxlQ2xhc3MgPSBudWxsKSB7XHJcbiAgICB0aGlzLmlkID0gaWQ7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5mb3JtID0gZm9ybTtcclxuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcclxuICB9XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgc2hvdyA9IHRydWU7XHJcbiAgZm9ybTogRm9ybUNsYXNzO1xyXG4gIHRhYmxlOiBUYWJsZUNsYXNzO1xyXG4gIHRvZ2dsZSgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAkKCcjQWNjb3JkaW9uUm93JyArIHRoaXMuaWQgKyAnID4gLmhlYWRlcicpLmNsaWNrKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuICBvcGVuKCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghJCgnI0FjY29yZGlvblJvdycgKyB0aGlzLmlkICsgJyA+IC5jb250ZW50JykuaGFzQ2xhc3MoJ29wZW4nKSl7XHJcbiAgICAgICAgJCgnI0FjY29yZGlvblJvdycgKyB0aGlzLmlkICsgJyA+IC5oZWFkZXInKS5jbGljaygpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -38,7 +38,7 @@ FormComponent.decorators = [
|
|
|
38
38
|
{ type: Component, args: [{
|
|
39
39
|
selector: 'lib-form',
|
|
40
40
|
template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form' + (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\">{{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 <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.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba)\" [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 [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\"></lib-form-select>\r\n <lib-form-date [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Date\" [inp]=\"inp\"></lib-form-date>\r\n <lib-form-time [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\"></lib-form-time>\r\n <lib-form-datetime [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\"></lib-form-datetime>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\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]=\"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]=\"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]=\"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-car-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.CarSearch\" [inp]=\"inp\"></lib-form-car-search>\r\n <lib-form-car (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Car\" [inp]=\"inp\"></lib-form-car>\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-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n </span>\r\n </div>\r\n</form>\r\n",
|
|
41
|
-
styles: [".form{border-radius:5px;float:right;padding:20px;position:relative;width:100%}.form>.title{font-family:VazirBold;font-size:16px;height:40px}.form>.sub-title,.form>.title{float:right;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form>.sub-title{color:var(--black-88);font-family:VazirLight;font-size:12px;height:30px}.form .loading{background-color:#fff;border-radius:5px;height:100%;right:0;top:0;z-index:4}.form .loading,.form .loading .text{position:absolute;text-align:center;width:100%}.form .loading .text{font-family:VazirBold;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-cc);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}"]
|
|
41
|
+
styles: [".form{border-radius:5px;float:right;padding:20px;position:relative;width:100%}.form>.title{font-family:VazirBold;font-size:16px;height:40px}.form>.sub-title,.form>.title{float:right;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form>.sub-title{color:var(--black-88);font-family:VazirLight;font-size:12px;height:30px}.form .loading{background-color:#fff;border-radius:5px;height:100%;right:0;top:0;z-index:4}.form .loading,.form .loading .text{position:absolute;text-align:center;width:100%}.form .loading .text{font-family:VazirBold;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-cc);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}@media (max-width:399.98px){::ng-deep .form .inputs .save-form-btn{width:60%!important}}@media (min-width:400px) and (max-width:499.98px){::ng-deep .form .inputs .save-form-btn{width:60%!important}}@media (min-width:500px) and (max-width:599.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:600px) and (max-width:699.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:700px) and (max-width:799.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:800px) and (max-width:899.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:900px) and (max-width:999.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:1000px) and (max-width:1099.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:1100px) and (max-width:1199.98px){::ng-deep .form .inputs .save-form-btn{width:40%!important}}"]
|
|
42
42
|
},] }
|
|
43
43
|
];
|
|
44
44
|
FormComponent.ctorParameters = () => [];
|
|
@@ -15,7 +15,7 @@ ModalComponent.decorators = [
|
|
|
15
15
|
{ type: Component, args: [{
|
|
16
16
|
selector: 'lib-modal',
|
|
17
17
|
template: "<div [id]=\"modal.id + 'Modal'\" class=\"modal\">\r\n <div [className]=\"(modal.class ? modal.class : '') + ' content'\">\r\n <lib-form-button [inp]=\"close\"></lib-form-button>\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n <lib-form *ngIf=\"modal.form != null && modal.firstForm\" [form]=\"modal.form\"></lib-form>\r\n <lib-table *ngIf=\"modal.table != null\" [table]=\"modal.table\"></lib-table>\r\n <lib-form *ngIf=\"modal.form != null && !modal.firstForm\" [form]=\"modal.form\"></lib-form>\r\n <lib-accordion *ngIf=\"modal.accordion != null\" [accordion]=\"modal.accordion\"></lib-accordion>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
18
|
-
styles: [".modal{background-color:var(--black-t-44);display:none;height:100%;overflow-y:auto;position:fixed;right:0;top:0;width:100%;z-index:999}.modal .content{background-color:#fff;border-radius:5px;box-shadow:var(--box-shadow-modal);float:right;margin:50px 30%;position:relative;width:40%;z-index:2}.modal .content .header{float:right;position:relative;text-align:center;width:100%}.modal .content .header .title{float:left;font-family:VazirBold;font-size:18px;height:40px;line-height:40px;width:100%}::ng-deep .modal .content>lib-form-button .form-input-con.button{left:-25px;position:absolute;top:-10px;z-index:5}.modal .content .body{float:right;position:relative;width:100%}.modal .content .footer{background-color:var(--base-22);float:right;height:50px;width:100%}.modal .content .footer:before{background-image:linear-gradient(90deg,rgba(51,51,51,0),rgba(51,51,51,.25),rgba(51,51,51,0));border:0;content:\"\";float:right;height:1px;width:100%}"]
|
|
18
|
+
styles: [".modal{background-color:var(--black-t-44);display:none;height:100%;overflow-y:auto;position:fixed;right:0;top:0;width:100%;z-index:999}.modal .content{background-color:#fff;border-radius:5px;box-shadow:var(--box-shadow-modal);float:right;margin:50px 30%;position:relative;width:40%;z-index:2}.modal .content .header{float:right;position:relative;text-align:center;width:100%}.modal .content .header .title{float:left;font-family:VazirBold;font-size:18px;height:40px;line-height:40px;width:100%}::ng-deep .modal .content>lib-form-button .form-input-con.button{left:-25px;position:absolute;top:-10px;z-index:5}.modal .content .body{float:right;position:relative;width:100%}.modal .content .footer{background-color:var(--base-22);float:right;height:50px;width:100%}.modal .content .footer:before{background-image:linear-gradient(90deg,rgba(51,51,51,0),rgba(51,51,51,.25),rgba(51,51,51,0));border:0;content:\"\";float:right;height:1px;width:100%}@media (max-width:399.98px){.modal .content{margin:50px 5%;width:90%}}@media (min-width:400px) and (max-width:499.98px){.modal .content{margin:50px 10%;width:80%}}@media (min-width:500px) and (max-width:599.98px){.modal .content{margin:50px 15%;width:70%}}@media (min-width:600px) and (max-width:699.98px){.modal .content{margin:50px 20%;width:60%}}@media (min-width:700px) and (max-width:799.98px){.modal .content{margin:50px 20%;width:60%}}@media (min-width:800px) and (max-width:899.98px){.modal .content{margin:50px 25%;width:50%}}"]
|
|
19
19
|
},] }
|
|
20
20
|
];
|
|
21
21
|
ModalComponent.ctorParameters = () => [];
|
|
@@ -1161,7 +1161,7 @@ class FormClass {
|
|
|
1161
1161
|
return;
|
|
1162
1162
|
}
|
|
1163
1163
|
const br = new InputClass(this.environment, this.l, null, null, InputType.Label, (this.onTop ? 'space' : 'underline') + (onSubmit === null ? '' : ' m-v-5'));
|
|
1164
|
-
const save = new InputClass(this.environment, this.l, name, 'fa-duotone fa-check', InputType.Submit, 'w-30 f-l ' + cls + (onSubmit === null ? ' h-
|
|
1164
|
+
const save = new InputClass(this.environment, this.l, name, 'fa-duotone fa-check', InputType.Submit, 'w-30 f-l save-form-btn' + cls + (onSubmit === null ? ' h-35' : ' h-25'));
|
|
1165
1165
|
save.onClick = () => {
|
|
1166
1166
|
this.submit(onSubmit);
|
|
1167
1167
|
};
|
|
@@ -1582,7 +1582,7 @@ ModalComponent.decorators = [
|
|
|
1582
1582
|
{ type: Component, args: [{
|
|
1583
1583
|
selector: 'lib-modal',
|
|
1584
1584
|
template: "<div [id]=\"modal.id + 'Modal'\" class=\"modal\">\r\n <div [className]=\"(modal.class ? modal.class : '') + ' content'\">\r\n <lib-form-button [inp]=\"close\"></lib-form-button>\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n <lib-form *ngIf=\"modal.form != null && modal.firstForm\" [form]=\"modal.form\"></lib-form>\r\n <lib-table *ngIf=\"modal.table != null\" [table]=\"modal.table\"></lib-table>\r\n <lib-form *ngIf=\"modal.form != null && !modal.firstForm\" [form]=\"modal.form\"></lib-form>\r\n <lib-accordion *ngIf=\"modal.accordion != null\" [accordion]=\"modal.accordion\"></lib-accordion>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
1585
|
-
styles: [".modal{background-color:var(--black-t-44);display:none;height:100%;overflow-y:auto;position:fixed;right:0;top:0;width:100%;z-index:999}.modal .content{background-color:#fff;border-radius:5px;box-shadow:var(--box-shadow-modal);float:right;margin:50px 30%;position:relative;width:40%;z-index:2}.modal .content .header{float:right;position:relative;text-align:center;width:100%}.modal .content .header .title{float:left;font-family:VazirBold;font-size:18px;height:40px;line-height:40px;width:100%}::ng-deep .modal .content>lib-form-button .form-input-con.button{left:-25px;position:absolute;top:-10px;z-index:5}.modal .content .body{float:right;position:relative;width:100%}.modal .content .footer{background-color:var(--base-22);float:right;height:50px;width:100%}.modal .content .footer:before{background-image:linear-gradient(90deg,rgba(51,51,51,0),rgba(51,51,51,.25),rgba(51,51,51,0));border:0;content:\"\";float:right;height:1px;width:100%}"]
|
|
1585
|
+
styles: [".modal{background-color:var(--black-t-44);display:none;height:100%;overflow-y:auto;position:fixed;right:0;top:0;width:100%;z-index:999}.modal .content{background-color:#fff;border-radius:5px;box-shadow:var(--box-shadow-modal);float:right;margin:50px 30%;position:relative;width:40%;z-index:2}.modal .content .header{float:right;position:relative;text-align:center;width:100%}.modal .content .header .title{float:left;font-family:VazirBold;font-size:18px;height:40px;line-height:40px;width:100%}::ng-deep .modal .content>lib-form-button .form-input-con.button{left:-25px;position:absolute;top:-10px;z-index:5}.modal .content .body{float:right;position:relative;width:100%}.modal .content .footer{background-color:var(--base-22);float:right;height:50px;width:100%}.modal .content .footer:before{background-image:linear-gradient(90deg,rgba(51,51,51,0),rgba(51,51,51,.25),rgba(51,51,51,0));border:0;content:\"\";float:right;height:1px;width:100%}@media (max-width:399.98px){.modal .content{margin:50px 5%;width:90%}}@media (min-width:400px) and (max-width:499.98px){.modal .content{margin:50px 10%;width:80%}}@media (min-width:500px) and (max-width:599.98px){.modal .content{margin:50px 15%;width:70%}}@media (min-width:600px) and (max-width:699.98px){.modal .content{margin:50px 20%;width:60%}}@media (min-width:700px) and (max-width:799.98px){.modal .content{margin:50px 20%;width:60%}}@media (min-width:800px) and (max-width:899.98px){.modal .content{margin:50px 25%;width:50%}}"]
|
|
1586
1586
|
},] }
|
|
1587
1587
|
];
|
|
1588
1588
|
ModalComponent.ctorParameters = () => [];
|
|
@@ -3410,7 +3410,7 @@ FormComponent.decorators = [
|
|
|
3410
3410
|
{ type: Component, args: [{
|
|
3411
3411
|
selector: 'lib-form',
|
|
3412
3412
|
template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form' + (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\">{{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 <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.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba)\" [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 [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\"></lib-form-select>\r\n <lib-form-date [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Date\" [inp]=\"inp\"></lib-form-date>\r\n <lib-form-time [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\"></lib-form-time>\r\n <lib-form-datetime [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\"></lib-form-datetime>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\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]=\"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]=\"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]=\"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-car-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.CarSearch\" [inp]=\"inp\"></lib-form-car-search>\r\n <lib-form-car (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Car\" [inp]=\"inp\"></lib-form-car>\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-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n </span>\r\n </div>\r\n</form>\r\n",
|
|
3413
|
-
styles: [".form{border-radius:5px;float:right;padding:20px;position:relative;width:100%}.form>.title{font-family:VazirBold;font-size:16px;height:40px}.form>.sub-title,.form>.title{float:right;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form>.sub-title{color:var(--black-88);font-family:VazirLight;font-size:12px;height:30px}.form .loading{background-color:#fff;border-radius:5px;height:100%;right:0;top:0;z-index:4}.form .loading,.form .loading .text{position:absolute;text-align:center;width:100%}.form .loading .text{font-family:VazirBold;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-cc);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}"]
|
|
3413
|
+
styles: [".form{border-radius:5px;float:right;padding:20px;position:relative;width:100%}.form>.title{font-family:VazirBold;font-size:16px;height:40px}.form>.sub-title,.form>.title{float:right;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form>.sub-title{color:var(--black-88);font-family:VazirLight;font-size:12px;height:30px}.form .loading{background-color:#fff;border-radius:5px;height:100%;right:0;top:0;z-index:4}.form .loading,.form .loading .text{position:absolute;text-align:center;width:100%}.form .loading .text{font-family:VazirBold;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-cc);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}@media (max-width:399.98px){::ng-deep .form .inputs .save-form-btn{width:60%!important}}@media (min-width:400px) and (max-width:499.98px){::ng-deep .form .inputs .save-form-btn{width:60%!important}}@media (min-width:500px) and (max-width:599.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:600px) and (max-width:699.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:700px) and (max-width:799.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:800px) and (max-width:899.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:900px) and (max-width:999.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:1000px) and (max-width:1099.98px){::ng-deep .form .inputs .save-form-btn{width:50%!important}}@media (min-width:1100px) and (max-width:1199.98px){::ng-deep .form .inputs .save-form-btn{width:40%!important}}"]
|
|
3414
3414
|
},] }
|
|
3415
3415
|
];
|
|
3416
3416
|
FormComponent.ctorParameters = () => [];
|