@kre-form/ant
Version:
191 lines • 21 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input } from "@angular/core";
import { FormBuilder, Validators } from "@angular/forms";
/**
* @record
*/
function Item() { }
if (false) {
/** @type {?} */
Item.prototype.value;
/** @type {?} */
Item.prototype.label;
}
export class EventComponent {
/**
* @param {?} fb
*/
constructor(fb) {
this.fb = fb;
this.data = {};
this.fields = [];
this.options = [];
this.triggerJson = [];
this.validateForm = this.fb.group({});
this.validateForm.addControl("eventList", this.fb.array([]));
}
/**
* @return {?}
*/
get eventList() {
return (/** @type {?} */ (this.validateForm.get("eventList")));
}
/**
* @return {?}
*/
save() {
(/** @type {?} */ (((/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ ((/** @type {?} */ (((/** @type {?} */ (this.validateForm))))).controls)).eventList))["controls"]))))).forEach((/**
* @param {?} element
* @return {?}
*/
(element) => {
for (const i in element.controls) {
element.controls[i].markAsDirty();
element.controls[i].updateValueAndValidity();
}
}));
}
/**
* @return {?}
*/
ngOnInit() {
this.fields = this.fields.filter((/**
* @param {?} el
* @return {?}
*/
(el) => el.type !== "datetime"));
if (!!this.triggerJson && this.triggerJson.length > 0) {
this.triggerJson.forEach((/**
* @param {?} el
* @return {?}
*/
(el) => {
this.eventList.push(this.addEventList(el));
}));
}
}
/**
* @return {?}
*/
ngOnChanges() { }
/**
* @return {?}
*/
add() {
// console.log(this.validateForm);
this.save();
if (!this.validateForm.valid) {
return;
}
this.eventList.push(this.addEventList());
}
/**
* @param {?=} element
* @return {?}
*/
addEventList(element) {
return this.fb.group({
selected: [
element ? (/** @type {?} */ (element)).selected || null : null,
[Validators.required],
],
fieldType: [this.data.type, [Validators.required]],
secondType: [(/** @type {?} */ ((/** @type {?} */ (this.data)).templateOptions)).type],
required: [(/** @type {?} */ ((/** @type {?} */ (this.data)).templateOptions)).required || false],
fieldName: [(/** @type {?} */ ((/** @type {?} */ (this.data)).templateOptions)).label],
selectItem: [element ? (/** @type {?} */ (element)).selectItem || null : null],
selectItems: [element ? (/** @type {?} */ (element)).selectItems || null : null],
fieldKey: [
element ? (/** @type {?} */ (element)).fieldKey || null : null,
[Validators.required],
],
changeFieldName: [element ? (/** @type {?} */ (element)).changeFieldName || null : null, []],
changeFieldType: [
element ? (/** @type {?} */ (element)).changeFieldType || null : null,
[Validators.required],
],
changeAction: [
element ? (/** @type {?} */ (element)).changeAction || null : null,
[Validators.required],
],
changeActions: [
element ? (/** @type {?} */ (element)).changeActions || null : null,
[Validators.required],
],
changeToItem: [
element ? (/** @type {?} */ (element)).changeToItem || null : null,
[Validators.required],
],
changeToItems: [
element ? (/** @type {?} */ (element)).changeToItems || null : null,
[Validators.required],
],
maxLength: [element ? (/** @type {?} */ (element)).maxLength : null],
maxLengthIncludes: [element ? (/** @type {?} */ (element)).maxLengthIncludes || null : null],
minLength: [element ? (/** @type {?} */ (element)).minLength : null],
minLengthIncludes: [element ? (/** @type {?} */ (element)).minLengthIncludes || null : null],
maxIncludes: [element ? (/** @type {?} */ (element)).maxIncludes || null : null],
max: [element ? (/** @type {?} */ (element)).max : null],
minIncludes: [element ? (/** @type {?} */ (element)).minIncludes || null : null],
min: [element ? (/** @type {?} */ (element)).min : null],
// maxDateTime: [element ? element!.maxDateTime : null],
// maxDateTimeIncludes: [
// element ? element!.maxDateTimeIncludes || null : null,
// ],
// minDateTime: [element ? element!.minDateTime : null],
// minDateTimeIncludes: [
// element ? element!.minDateTimeIncludes || null : null,
// ],
specValue: [element ? (/** @type {?} */ (element)).specValue || null : null],
// specDateTime: [element ? element!.specValue || null : null],
fixedValue: [element ? (/** @type {?} */ (element)).fixedValue || null : null],
// fixedDateTime: [element ? element!.fixedValue || null : null],
code: [element ? (/** @type {?} */ (element)).code || Math.random() : Math.random()],
});
}
/**
* @param {?} i
* @return {?}
*/
removeEventList(i) {
this.eventList.removeAt(i);
}
}
EventComponent.decorators = [
{ type: Component, args: [{
selector: "demo-event",
template: "<div class=\"w-100 p-3 flex-h\">\n <div class=\"new-flex-1\">\n <div>\n <button nz-button nzType=\"primary\" (click)=\"add()\" nzSize=\"small\">\n \u65B0\u589E\n </button>\n <div class=\"event-boxs\">\n <form\n nz-form\n [formGroup]=\"validateForm\"\n class=\"form-wrap form-box h-100 flex-v\"\n >\n <ng-container *ngIf=\"eventList.value.length > 0; else cardEmpty\">\n <div\n formArrayName=\"eventList\"\n class=\"flex-h dynamic-from\"\n *ngFor=\"let lateAnalysis of eventList.controls; let i = index\"\n nz-row\n >\n <ng-container [formGroupName]=\"i\">\n <div class=\"new-flex-1 p-0\">\n <demo-event-item\n [myForm]=\"eventList.controls[i]\"\n [index]=\"i\"\n [options]=\"options\"\n [field]=\"data\"\n [fields]=\"fields\"\n >\n </demo-event-item>\n </div>\n <div style=\"width: 36px\">\n <div\n class=\"\n btn-close btn-close-show\n flex-h flex-align-center flex-justify-center\n h-100\n \"\n (click)=\"removeEventList(i)\"\n >\n <i class=\"icon-N_delete\"> </i>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #cardEmpty>\n <div class=\"repeat-card-empty\">\n <div class=\"repeat-empty-image\"></div>\n <p class=\"ant-empty-description\">\u6682\u65E0\u6570\u636E</p>\n </div>\n </ng-template>\n </form>\n </div>\n </div>\n </div>\n</div>",
styles: [""]
}] }
];
/** @nocollapse */
EventComponent.ctorParameters = () => [
{ type: FormBuilder }
];
EventComponent.propDecorators = {
data: [{ type: Input }],
fields: [{ type: Input }],
options: [{ type: Input }],
triggerJson: [{ type: Input }]
};
if (false) {
/** @type {?} */
EventComponent.prototype.data;
/** @type {?} */
EventComponent.prototype.fields;
/** @type {?} */
EventComponent.prototype.options;
/** @type {?} */
EventComponent.prototype.triggerJson;
/** @type {?} */
EventComponent.prototype.validateForm;
/**
* @type {?}
* @private
*/
EventComponent.prototype.fb;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGtyZS1mb3JtL2FudC8iLCJzb3VyY2VzIjpbImxpYi9kZXNpZ24vZXZlbnQvZXZlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUUvRSxtQkFHQzs7O0lBRkMscUJBQWM7O0lBQ2QscUJBQWM7O0FBT2hCLE1BQU0sT0FBTyxjQUFjOzs7O0lBWXpCLFlBQW9CLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBWDFCLFNBQUksR0FBdUIsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBeUIsRUFBRSxDQUFDO1FBQ2xDLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFTL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDOzs7O0lBUEQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxtQkFBQSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBYSxDQUFDO0lBQ3pELENBQUM7Ozs7SUFPRCxJQUFJO1FBQ0YsbUJBQUEsQ0FBQyxtQkFBQSxtQkFBQSxtQkFBQSxtQkFBQSxDQUFDLG1CQUFBLElBQUksQ0FBQyxZQUFZLEVBQU8sQ0FBQyxFQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsU0FBUyxFQUFDLENBQy9DLFVBQVUsQ0FDWCxFQUFlLENBQUMsRUFBQyxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLE9BQWtCLEVBQUUsRUFBRTtZQUNoRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzthQUM5QztRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTs7OztRQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTzs7OztZQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3QyxDQUFDLEVBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7OztJQUNELFdBQVcsS0FBSSxDQUFDOzs7O0lBQ2hCLEdBQUc7UUFDRCxrQ0FBa0M7UUFFbEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFO1lBQzVCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Ozs7O0lBRUQsWUFBWSxDQUFDLE9BQWE7UUFDeEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNuQixRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUMxQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7YUFDdEI7WUFDRCxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVsRCxVQUFVLEVBQUUsQ0FBQyxtQkFBQSxtQkFBQSxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsZUFBZSxFQUFDLENBQUMsSUFBSSxDQUFDO1lBQzlDLFFBQVEsRUFBRSxDQUFDLG1CQUFBLG1CQUFBLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxlQUFlLEVBQUMsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO1lBRXpELFNBQVMsRUFBRSxDQUFDLG1CQUFBLG1CQUFBLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxlQUFlLEVBQUMsQ0FBQyxLQUFLLENBQUM7WUFFOUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUQsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFFNUQsUUFBUSxFQUFFO2dCQUNSLE9BQU8sQ0FBQyxDQUFDLENBQUMsbUJBQUEsT0FBTyxFQUFDLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDMUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO2FBQ3RCO1lBRUQsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBRXhFLGVBQWUsRUFBRTtnQkFDZixPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ2pELENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQzthQUN0QjtZQUVELFlBQVksRUFBRTtnQkFDWixPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQzlDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQzthQUN0QjtZQUNELGFBQWEsRUFBRTtnQkFDYixPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQy9DLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQzthQUN0QjtZQUVELFlBQVksRUFBRTtnQkFDWixPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQzlDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQzthQUN0QjtZQUNELGFBQWEsRUFBRTtnQkFDYixPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQy9DLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQzthQUN0QjtZQUVELFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsbUJBQUEsT0FBTyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDaEQsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3hFLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsbUJBQUEsT0FBTyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDaEQsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBRXhFLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsbUJBQUEsT0FBTyxFQUFDLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzVELEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsbUJBQUEsT0FBTyxFQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDcEMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDNUQsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs7Ozs7Ozs7O1lBV3BDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsbUJBQUEsT0FBTyxFQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDOztZQUd4RCxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs7WUFHMUQsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFDRCxlQUFlLENBQUMsQ0FBUztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7WUFoSUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixzNkRBQXFDOzthQUV0Qzs7OztZQVZRLFdBQVc7OzttQkFZakIsS0FBSztxQkFDTCxLQUFLO3NCQUNMLEtBQUs7MEJBQ0wsS0FBSzs7OztJQUhOLDhCQUF1Qzs7SUFDdkMsZ0NBQTJDOztJQUMzQyxpQ0FBOEI7O0lBQzlCLHFDQUFpQzs7SUFFakMsc0NBQXdCOzs7OztJQU1aLDRCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEtyZUZvcm1GaWVsZENvbmZpZyB9IGZyb20gXCJAa3JlLWZvcm0vY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIEZvcm1BcnJheSwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcbmludGVyZmFjZSBJdGVtIHtcbiAgdmFsdWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJkZW1vLWV2ZW50XCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZXZlbnQuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2V2ZW50LmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBFdmVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YTogS3JlRm9ybUZpZWxkQ29uZmlnID0ge307XG4gIEBJbnB1dCgpIGZpZWxkczogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXTtcbiAgQElucHV0KCkgb3B0aW9uczogSXRlbVtdID0gW107XG4gIEBJbnB1dCgpIHRyaWdnZXJKc29uOiBhbnlbXSA9IFtdO1xuXG4gIHZhbGlkYXRlRm9ybTogRm9ybUdyb3VwO1xuXG4gIGdldCBldmVudExpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVGb3JtLmdldChcImV2ZW50TGlzdFwiKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMudmFsaWRhdGVGb3JtID0gdGhpcy5mYi5ncm91cCh7fSk7XG4gICAgdGhpcy52YWxpZGF0ZUZvcm0uYWRkQ29udHJvbChcImV2ZW50TGlzdFwiLCB0aGlzLmZiLmFycmF5KFtdKSk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgICgodGhpcy52YWxpZGF0ZUZvcm0gYXMgYW55KSEuY29udHJvbHMhLmV2ZW50TGlzdCFbXG4gICAgICBcImNvbnRyb2xzXCJcbiAgICBdIGFzIEZvcm1Hcm91cFtdKSEuZm9yRWFjaCgoZWxlbWVudDogRm9ybUdyb3VwKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGkgaW4gZWxlbWVudC5jb250cm9scykge1xuICAgICAgICBlbGVtZW50LmNvbnRyb2xzW2ldLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIGVsZW1lbnQuY29udHJvbHNbaV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5maWVsZHMgPSB0aGlzLmZpZWxkcy5maWx0ZXIoKGVsKSA9PiBlbC50eXBlICE9PSBcImRhdGV0aW1lXCIpO1xuICAgIGlmICghIXRoaXMudHJpZ2dlckpzb24gJiYgdGhpcy50cmlnZ2VySnNvbi5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRyaWdnZXJKc29uLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnRMaXN0LnB1c2godGhpcy5hZGRFdmVudExpc3QoZWwpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBuZ09uQ2hhbmdlcygpIHt9XG4gIGFkZCgpIHtcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnZhbGlkYXRlRm9ybSk7XG5cbiAgICB0aGlzLnNhdmUoKTtcbiAgICBpZiAoIXRoaXMudmFsaWRhdGVGb3JtLnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZXZlbnRMaXN0LnB1c2godGhpcy5hZGRFdmVudExpc3QoKSk7XG4gIH1cblxuICBhZGRFdmVudExpc3QoZWxlbWVudD86IGFueSkge1xuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHNlbGVjdGVkOiBbXG4gICAgICAgIGVsZW1lbnQgPyBlbGVtZW50IS5zZWxlY3RlZCB8fCBudWxsIDogbnVsbCxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgXSxcbiAgICAgIGZpZWxkVHlwZTogW3RoaXMuZGF0YS50eXBlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuXG4gICAgICBzZWNvbmRUeXBlOiBbdGhpcy5kYXRhIS50ZW1wbGF0ZU9wdGlvbnMhLnR5cGVdLFxuICAgICAgcmVxdWlyZWQ6IFt0aGlzLmRhdGEhLnRlbXBsYXRlT3B0aW9ucyEucmVxdWlyZWQgfHwgZmFsc2VdLFxuXG4gICAgICBmaWVsZE5hbWU6IFt0aGlzLmRhdGEhLnRlbXBsYXRlT3B0aW9ucyEubGFiZWxdLFxuXG4gICAgICBzZWxlY3RJdGVtOiBbZWxlbWVudCA/IGVsZW1lbnQhLnNlbGVjdEl0ZW0gfHwgbnVsbCA6IG51bGxdLFxuICAgICAgc2VsZWN0SXRlbXM6IFtlbGVtZW50ID8gZWxlbWVudCEuc2VsZWN0SXRlbXMgfHwgbnVsbCA6IG51bGxdLFxuXG4gICAgICBmaWVsZEtleTogW1xuICAgICAgICBlbGVtZW50ID8gZWxlbWVudCEuZmllbGRLZXkgfHwgbnVsbCA6IG51bGwsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIF0sXG5cbiAgICAgIGNoYW5nZUZpZWxkTmFtZTogW2VsZW1lbnQgPyBlbGVtZW50IS5jaGFuZ2VGaWVsZE5hbWUgfHwgbnVsbCA6IG51bGwsIFtdXSxcblxuICAgICAgY2hhbmdlRmllbGRUeXBlOiBbXG4gICAgICAgIGVsZW1lbnQgPyBlbGVtZW50IS5jaGFuZ2VGaWVsZFR5cGUgfHwgbnVsbCA6IG51bGwsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIF0sXG5cbiAgICAgIGNoYW5nZUFjdGlvbjogW1xuICAgICAgICBlbGVtZW50ID8gZWxlbWVudCEuY2hhbmdlQWN0aW9uIHx8IG51bGwgOiBudWxsLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBdLFxuICAgICAgY2hhbmdlQWN0aW9uczogW1xuICAgICAgICBlbGVtZW50ID8gZWxlbWVudCEuY2hhbmdlQWN0aW9ucyB8fCBudWxsIDogbnVsbCxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgXSxcblxuICAgICAgY2hhbmdlVG9JdGVtOiBbXG4gICAgICAgIGVsZW1lbnQgPyBlbGVtZW50IS5jaGFuZ2VUb0l0ZW0gfHwgbnVsbCA6IG51bGwsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIF0sXG4gICAgICBjaGFuZ2VUb0l0ZW1zOiBbXG4gICAgICAgIGVsZW1lbnQgPyBlbGVtZW50IS5jaGFuZ2VUb0l0ZW1zIHx8IG51bGwgOiBudWxsLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBdLFxuXG4gICAgICBtYXhMZW5ndGg6IFtlbGVtZW50ID8gZWxlbWVudCEubWF4TGVuZ3RoIDogbnVsbF0sXG4gICAgICBtYXhMZW5ndGhJbmNsdWRlczogW2VsZW1lbnQgPyBlbGVtZW50IS5tYXhMZW5ndGhJbmNsdWRlcyB8fCBudWxsIDogbnVsbF0sXG4gICAgICBtaW5MZW5ndGg6IFtlbGVtZW50ID8gZWxlbWVudCEubWluTGVuZ3RoIDogbnVsbF0sXG4gICAgICBtaW5MZW5ndGhJbmNsdWRlczogW2VsZW1lbnQgPyBlbGVtZW50IS5taW5MZW5ndGhJbmNsdWRlcyB8fCBudWxsIDogbnVsbF0sXG5cbiAgICAgIG1heEluY2x1ZGVzOiBbZWxlbWVudCA/IGVsZW1lbnQhLm1heEluY2x1ZGVzIHx8IG51bGwgOiBudWxsXSxcbiAgICAgIG1heDogW2VsZW1lbnQgPyBlbGVtZW50IS5tYXggOiBudWxsXSxcbiAgICAgIG1pbkluY2x1ZGVzOiBbZWxlbWVudCA/IGVsZW1lbnQhLm1pbkluY2x1ZGVzIHx8IG51bGwgOiBudWxsXSxcbiAgICAgIG1pbjogW2VsZW1lbnQgPyBlbGVtZW50IS5taW4gOiBudWxsXSxcblxuICAgICAgLy8gbWF4RGF0ZVRpbWU6IFtlbGVtZW50ID8gZWxlbWVudCEubWF4RGF0ZVRpbWUgOiBudWxsXSxcbiAgICAgIC8vIG1heERhdGVUaW1lSW5jbHVkZXM6IFtcbiAgICAgIC8vICAgZWxlbWVudCA/IGVsZW1lbnQhLm1heERhdGVUaW1lSW5jbHVkZXMgfHwgbnVsbCA6IG51bGwsXG4gICAgICAvLyBdLFxuICAgICAgLy8gbWluRGF0ZVRpbWU6IFtlbGVtZW50ID8gZWxlbWVudCEubWluRGF0ZVRpbWUgOiBudWxsXSxcbiAgICAgIC8vIG1pbkRhdGVUaW1lSW5jbHVkZXM6IFtcbiAgICAgIC8vICAgZWxlbWVudCA/IGVsZW1lbnQhLm1pbkRhdGVUaW1lSW5jbHVkZXMgfHwgbnVsbCA6IG51bGwsXG4gICAgICAvLyBdLFxuXG4gICAgICBzcGVjVmFsdWU6IFtlbGVtZW50ID8gZWxlbWVudCEuc3BlY1ZhbHVlIHx8IG51bGwgOiBudWxsXSxcbiAgICAgIC8vIHNwZWNEYXRlVGltZTogW2VsZW1lbnQgPyBlbGVtZW50IS5zcGVjVmFsdWUgfHwgbnVsbCA6IG51bGxdLFxuXG4gICAgICBmaXhlZFZhbHVlOiBbZWxlbWVudCA/IGVsZW1lbnQhLmZpeGVkVmFsdWUgfHwgbnVsbCA6IG51bGxdLFxuICAgICAgLy8gZml4ZWREYXRlVGltZTogW2VsZW1lbnQgPyBlbGVtZW50IS5maXhlZFZhbHVlIHx8IG51bGwgOiBudWxsXSxcblxuICAgICAgY29kZTogW2VsZW1lbnQgPyBlbGVtZW50IS5jb2RlIHx8IE1hdGgucmFuZG9tKCkgOiBNYXRoLnJhbmRvbSgpXSxcbiAgICB9KTtcbiAgfVxuICByZW1vdmVFdmVudExpc3QoaTogbnVtYmVyKSB7XG4gICAgdGhpcy5ldmVudExpc3QucmVtb3ZlQXQoaSk7XG4gIH1cbn1cbiJdfQ==