@messaia/cdk 13.3.5-rc10 → 13.3.5-rc11

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.
@@ -51,6 +51,7 @@ export class GenericReactiveFormComponent extends GenericFormBaseComponent {
51
51
  super.onAfterFormBuild();
52
52
  if (this.buildFieldGroups && !this.fieldGroups) {
53
53
  this.fieldGroups = getFormGroups(new this.entityCtor());
54
+ console.log('this.fieldGroups', this.fieldGroups);
54
55
  }
55
56
  }
56
57
  /**
@@ -69,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
69
70
  }], ctorParameters: function () { return [{ type: i0.Type }, { type: undefined }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { form: [{
70
71
  type: Input
71
72
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1yZWFjdGl2ZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Jhc2UvY29tcG9uZW50cy9nZW5lcmljLXJlYWN0aXZlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBVyxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sa0NBQWtDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7QUFFekUsV0FBVztBQUVYLE1BQU0sT0FBZ0IsNEJBQWdHLFNBQVEsd0JBQTJDO0lBa0NySzs7O09BR0c7SUFDSCxZQUNXLFVBQXlCLEVBQ3RCLE9BQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLGlCQUFvQztRQUU5QyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUw5QyxlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTdCbEQ7O1dBRUc7UUFDTyxzQkFBaUIsR0FBNkIsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBNkJuRixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQTVCRDs7T0FFRztJQUNILElBQVcsU0FBUyxLQUFvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUEyQmxFOztPQUVHO0lBQ08sU0FBUztRQUNmLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXpCLDRCQUE0QjtRQUM1QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDbEU7UUFFRCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBZ0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV2RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDTyxnQkFBZ0I7UUFDdEIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDM0Q7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sU0FBUyxDQUFDLE9BQWtCLElBQUk7UUFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixPQUFPLENBQUMsR0FBRyxDQUFFLElBQUksQ0FBQyxJQUFvQixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7OytKQWxGaUIsNEJBQTRCO21KQUE1Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFEakQsU0FBUzs2S0FPQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBJbnB1dCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSUVudGl0eSwgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi8uLi9jb21tb24vY29tbW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uL2Zvcm0tdmFsaWRhdG9ycy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQcm9wVmFsaWRhdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uL2Zvcm0tdmFsaWRhdG9ycy9tb2RlbHMvcHJvcC12YWxpZGF0aW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IFJ4Rm9ybUJ1aWxkZXIsIFJ4Rm9ybUdyb3VwIH0gZnJvbSAnLi4vLi4vZm9ybS12YWxpZGF0b3JzL3B1YmxpY19hcGknO1xyXG5pbXBvcnQgeyBnZXRGb3JtR3JvdXBzIH0gZnJvbSAnLi4vLi4vZm9ybXMvZnVuY3Rpb25zL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9odHRwLm1vZHVsZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vZ2VuZXJpYy1mb3JtLWJhc2UuY29tcG9uZW50JztcclxuXHJcbi8vIEBkeW5hbWljXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJpY1JlYWN0aXZlRm9ybUNvbXBvbmVudDxURW50aXR5IGV4dGVuZHMgSUVudGl0eSwgVFNlcnZpY2UgZXh0ZW5kcyBHZW5lcmljU2VydmljZTxURW50aXR5Pj4gZXh0ZW5kcyBHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eSwgVFNlcnZpY2U+IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcm0gZ3JvdXBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtIGJ1aWxkZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBSeEZvcm1CdWlsZGVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZm9ybUJ1aWxkZXJDb25maWc6IEZvcm1CdWlsZGVyQ29uZmlndXJhdGlvblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZm9ybUJ1aWxkZXJDb25maWc6IEZvcm1CdWlsZGVyQ29uZmlndXJhdGlvbiA9IG5ldyBGb3JtQnVpbGRlckNvbmZpZ3VyYXRpb24oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgZm9ybSB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1WYWx1ZSgpOiBURW50aXR5IHwgYW55IHsgcmV0dXJuIHRoaXMuZm9ybS52YWx1ZTsgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGZvcm1WYWxpZGF0aW9uOiBhbnlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGZvcm1WYWxpZGF0aW9uOiB7IFtrZXk6IHN0cmluZ106IFByb3BWYWxpZGF0aW9uQ29uZmlnIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBidWlsZEZpZWxkR3JvdXBzOiBib29sZWFuXHJcbiAgICAgKiBCdWlsZHMgZmllbGQgZ3JvdXBzLCBpZiB0cnVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBidWlsZEZpZWxkR3JvdXBzOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBzZXJ2aWNlIFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZW50aXR5Q3RvcjogVHlwZTxURW50aXR5PixcclxuICAgICAgICBwcm90ZWN0ZWQgc2VydmljZTogVFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihlbnRpdHlDdG9yLCBzZXJ2aWNlLCByb3V0ZSwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIgPSBTZXJ2aWNlTG9jYXRvci5nZXRTZXJ2aWNlKFJ4Rm9ybUJ1aWxkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQnVpbGRzIGEgbmV3IGZvcm1cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGJ1aWxkRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQmVmb3JlRm9ybUJ1aWxkKCk7XHJcblxyXG4gICAgICAgIC8qIEFkZCBkeW5hbWljIHZhbGlkYXRpb24gKi9cclxuICAgICAgICBpZiAodGhpcy5mb3JtVmFsaWRhdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1CdWlsZGVyQ29uZmlnLmR5bmFtaWNWYWxpZGF0aW9uID0gdGhpcy5mb3JtVmFsaWRhdGlvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIENyZWF0ZSB0aGUgZm9ybSAqL1xyXG4gICAgICAgIHRoaXMuZm9ybSA9IDxSeEZvcm1Hcm91cD50aGlzLmZvcm1CdWlsZGVyLmZvcm1Hcm91cCh0aGlzLml0ZW0sIHRoaXMuZm9ybUJ1aWxkZXJDb25maWcpO1xyXG5cclxuICAgICAgICB0aGlzLm9uQWZ0ZXJGb3JtQnVpbGQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBoYXMgYnVpbHQuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBvbkFmdGVyRm9ybUJ1aWxkKCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm9uQWZ0ZXJGb3JtQnVpbGQoKTtcclxuICAgICAgICBpZiAodGhpcy5idWlsZEZpZWxkR3JvdXBzICYmICF0aGlzLmZpZWxkR3JvdXBzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmllbGRHcm91cHMgPSBnZXRGb3JtR3JvdXBzKG5ldyB0aGlzLmVudGl0eUN0b3IoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvd3MgZm9ybSBlcnJvcnNcclxuICAgICAqIEBwYXJhbSBmb3JtIFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZGVidWdGb3JtKGZvcm06IEZvcm1Hcm91cCA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5kZWJ1Z0Zvcm0oZm9ybSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coKHRoaXMuZm9ybSBhcyBSeEZvcm1Hcm91cCkuZ2V0RXJyb3JTdW1tYXJ5KGZhbHNlKSk7XHJcbiAgICB9XHJcbn0iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1yZWFjdGl2ZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Jhc2UvY29tcG9uZW50cy9nZW5lcmljLXJlYWN0aXZlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBVyxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sa0NBQWtDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7QUFFekUsV0FBVztBQUVYLE1BQU0sT0FBZ0IsNEJBQWdHLFNBQVEsd0JBQTJDO0lBa0NySzs7O09BR0c7SUFDSCxZQUNXLFVBQXlCLEVBQ3RCLE9BQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLGlCQUFvQztRQUU5QyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUw5QyxlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTdCbEQ7O1dBRUc7UUFDTyxzQkFBaUIsR0FBNkIsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBNkJuRixJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQTVCRDs7T0FFRztJQUNILElBQVcsU0FBUyxLQUFvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUEyQmxFOztPQUVHO0lBQ08sU0FBUztRQUNmLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXpCLDRCQUE0QjtRQUM1QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDbEU7UUFFRCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBZ0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV2RixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDTyxnQkFBZ0I7UUFDdEIsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDckQ7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sU0FBUyxDQUFDLE9BQWtCLElBQUk7UUFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixPQUFPLENBQUMsR0FBRyxDQUFFLElBQUksQ0FBQyxJQUFvQixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7OytKQW5GaUIsNEJBQTRCO21KQUE1Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFEakQsU0FBUzs2S0FPQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBJbnB1dCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSUVudGl0eSwgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi8uLi9jb21tb24vY29tbW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uL2Zvcm0tdmFsaWRhdG9ycy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQcm9wVmFsaWRhdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uL2Zvcm0tdmFsaWRhdG9ycy9tb2RlbHMvcHJvcC12YWxpZGF0aW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IFJ4Rm9ybUJ1aWxkZXIsIFJ4Rm9ybUdyb3VwIH0gZnJvbSAnLi4vLi4vZm9ybS12YWxpZGF0b3JzL3B1YmxpY19hcGknO1xyXG5pbXBvcnQgeyBnZXRGb3JtR3JvdXBzIH0gZnJvbSAnLi4vLi4vZm9ybXMvZnVuY3Rpb25zL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9odHRwLm1vZHVsZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vZ2VuZXJpYy1mb3JtLWJhc2UuY29tcG9uZW50JztcclxuXHJcbi8vIEBkeW5hbWljXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJpY1JlYWN0aXZlRm9ybUNvbXBvbmVudDxURW50aXR5IGV4dGVuZHMgSUVudGl0eSwgVFNlcnZpY2UgZXh0ZW5kcyBHZW5lcmljU2VydmljZTxURW50aXR5Pj4gZXh0ZW5kcyBHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eSwgVFNlcnZpY2U+IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcm0gZ3JvdXBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtIGJ1aWxkZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBSeEZvcm1CdWlsZGVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZm9ybUJ1aWxkZXJDb25maWc6IEZvcm1CdWlsZGVyQ29uZmlndXJhdGlvblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZm9ybUJ1aWxkZXJDb25maWc6IEZvcm1CdWlsZGVyQ29uZmlndXJhdGlvbiA9IG5ldyBGb3JtQnVpbGRlckNvbmZpZ3VyYXRpb24oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgZm9ybSB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1WYWx1ZSgpOiBURW50aXR5IHwgYW55IHsgcmV0dXJuIHRoaXMuZm9ybS52YWx1ZTsgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGZvcm1WYWxpZGF0aW9uOiBhbnlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGZvcm1WYWxpZGF0aW9uOiB7IFtrZXk6IHN0cmluZ106IFByb3BWYWxpZGF0aW9uQ29uZmlnIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBidWlsZEZpZWxkR3JvdXBzOiBib29sZWFuXHJcbiAgICAgKiBCdWlsZHMgZmllbGQgZ3JvdXBzLCBpZiB0cnVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBidWlsZEZpZWxkR3JvdXBzOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBzZXJ2aWNlIFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZW50aXR5Q3RvcjogVHlwZTxURW50aXR5PixcclxuICAgICAgICBwcm90ZWN0ZWQgc2VydmljZTogVFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihlbnRpdHlDdG9yLCBzZXJ2aWNlLCByb3V0ZSwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIgPSBTZXJ2aWNlTG9jYXRvci5nZXRTZXJ2aWNlKFJ4Rm9ybUJ1aWxkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQnVpbGRzIGEgbmV3IGZvcm1cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGJ1aWxkRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQmVmb3JlRm9ybUJ1aWxkKCk7XHJcblxyXG4gICAgICAgIC8qIEFkZCBkeW5hbWljIHZhbGlkYXRpb24gKi9cclxuICAgICAgICBpZiAodGhpcy5mb3JtVmFsaWRhdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1CdWlsZGVyQ29uZmlnLmR5bmFtaWNWYWxpZGF0aW9uID0gdGhpcy5mb3JtVmFsaWRhdGlvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIENyZWF0ZSB0aGUgZm9ybSAqL1xyXG4gICAgICAgIHRoaXMuZm9ybSA9IDxSeEZvcm1Hcm91cD50aGlzLmZvcm1CdWlsZGVyLmZvcm1Hcm91cCh0aGlzLml0ZW0sIHRoaXMuZm9ybUJ1aWxkZXJDb25maWcpO1xyXG5cclxuICAgICAgICB0aGlzLm9uQWZ0ZXJGb3JtQnVpbGQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBoYXMgYnVpbHQuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBvbkFmdGVyRm9ybUJ1aWxkKCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm9uQWZ0ZXJGb3JtQnVpbGQoKTtcclxuICAgICAgICBpZiAodGhpcy5idWlsZEZpZWxkR3JvdXBzICYmICF0aGlzLmZpZWxkR3JvdXBzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmllbGRHcm91cHMgPSBnZXRGb3JtR3JvdXBzKG5ldyB0aGlzLmVudGl0eUN0b3IoKSk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLmZpZWxkR3JvdXBzJywgdGhpcy5maWVsZEdyb3Vwcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvd3MgZm9ybSBlcnJvcnNcclxuICAgICAqIEBwYXJhbSBmb3JtIFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZGVidWdGb3JtKGZvcm06IEZvcm1Hcm91cCA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5kZWJ1Z0Zvcm0oZm9ybSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coKHRoaXMuZm9ybSBhcyBSeEZvcm1Hcm91cCkuZ2V0RXJyb3JTdW1tYXJ5KGZhbHNlKSk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,27 +1,25 @@
1
1
  import { headerMetadataKey } from "../../common/constants/constants";
2
- import { Utils } from "../../common/functions/utils";
3
2
  import { formFieldGroupsMetadataKey, formFieldsMetadataKey } from "../constants/constants";
4
3
  import { FormFieldType } from "../enums/form-field-type";
5
4
  import { FormFieldDefinition } from "../models/form-field-definition";
6
- import { FormFieldGroupDefinition } from "../models/form-field-group-definition";
7
5
  import { getFormGroups } from "./functions";
8
6
  /**
9
7
  * Property decorator to create form fields
10
8
  * @param args
11
9
  * @returns
12
10
  */
13
- export function FormField(args = null) {
11
+ export function FormField(args) {
14
12
  return function (target, propertyKey) {
15
13
  /* Get property name */
16
- var propertyName = args?.name || propertyKey;
14
+ var propertyName = args.name || propertyKey;
17
15
  /* Get property type */
18
16
  var propertyType = Reflect.getMetadata("design:type", target, propertyKey)?.name;
19
17
  /* Create table column */
20
18
  var formField = new FormFieldDefinition(Object.assign(args, {
21
- name: args?.name || propertyKey,
22
- header: args?.header || Reflect.getMetadata(headerMetadataKey, target, propertyKey) || propertyName,
23
- autocompleteTemplate: args?.autocompleteTemplate || ((option) => option[formField.autocompleteText]),
24
- chipTemplate: args?.chipTemplate || ((chip) => chip[formField.chipText])
19
+ name: args.name || propertyKey,
20
+ header: args.header || Reflect.getMetadata(headerMetadataKey, target, propertyKey) || propertyName,
21
+ autocompleteTemplate: args.autocompleteTemplate || ((option) => option[formField.autocompleteText]),
22
+ chipTemplate: args.chipTemplate || ((chip) => chip[formField.chipText])
25
23
  }));
26
24
  /* Type enum */
27
25
  if (formField.enumType) {
@@ -67,36 +65,11 @@ export function FormField(args = null) {
67
65
  let formFields = previousFormFields ? previousFormFields.concat([formField]) : [formField];
68
66
  /* Override the result in the metadata */
69
67
  Reflect.defineMetadata(formFieldsMetadataKey, formFields, target);
70
- /* Get old form field groups */
71
- const previousGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, target) || [];
72
- /* Get the group by group name from the previous saved groups */
73
- var group = previousGroups?.filter(x => x.name == formField.groupName)[0];
74
- /* If the group doesn't exist, create a new one and add it to the previous groups */
75
- if (!group) {
76
- group = new FormFieldGroupDefinition({ index: 0, name: formField.groupName || null, header: formField.groupHeader });
77
- previousGroups.push(group);
78
- }
79
- /* Add the fields to the current group */
80
- group.fields.push(formField);
81
- /* Group the field by 'row' */
82
- group.groups = Object.values((group.fields).reduce(function (r, a) {
83
- r[a.row] = (r[a.row] || []);
84
- r[a.row].push(a);
85
- r[a.row].forEach((x, i) => x.index = x.index || i);
86
- Utils.sortArray(r[a.row], 'index');
87
- return r;
88
- }, Object.create(null)));
89
- /* Sort the groups by index */
90
- Utils.sortArray(previousGroups, 'index');
91
- /* Override the result in the metadata */
92
- Reflect.defineMetadata(formFieldGroupsMetadataKey, previousGroups, target);
93
68
  };
94
69
  }
95
70
  /**
96
71
  * Property decorator to create form fields
97
- * @param type
98
- * @param header
99
- * @param init
72
+ * @param args
100
73
  * @returns
101
74
  */
102
75
  export function FormFieldGroup(type, args = null) {
@@ -124,12 +97,8 @@ export function FormFieldGroup(type, args = null) {
124
97
  });
125
98
  /* Get old form field groups */
126
99
  var previousGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, target);
127
- /* Add the current groups to the previous groups */
128
- previousGroups = (previousGroups ? previousGroups.concat(groups) : groups);
129
- /* Sort the groups by index */
130
- Utils.sortArray(previousGroups, 'index');
131
100
  /* Override the result in the metadata */
132
- Reflect.defineMetadata(formFieldGroupsMetadataKey, previousGroups, target);
101
+ Reflect.defineMetadata(formFieldGroupsMetadataKey, (previousGroups ? previousGroups.concat(groups) : groups), target);
133
102
  };
134
103
  }
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm1zL2Z1bmN0aW9ucy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1Qzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFxQyxJQUFJO0lBQy9ELE9BQU8sVUFBVSxNQUFXLEVBQUUsV0FBbUI7UUFDN0MsdUJBQXVCO1FBQ3ZCLElBQUksWUFBWSxHQUFHLElBQUksRUFBRSxJQUFJLElBQUksV0FBVyxDQUFDO1FBRTdDLHVCQUF1QjtRQUN2QixJQUFJLFlBQVksR0FBVyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsSUFBSSxDQUFDO1FBRXpGLHlCQUF5QjtRQUN6QixJQUFJLFNBQVMsR0FBRyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUF1QjtZQUM3RSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxXQUFXO1lBQy9CLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMs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QUNuQyxTQUFTLEVBQUUsV0FBVztnQkFDdEIsV0FBVyxFQUFFLFdBQVc7YUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztRQUVILCtCQUErQjtRQUMvQixJQUFJLGNBQWMsR0FBK0IsT0FBTyxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV6RyxtREFBbUQ7UUFDbkQsY0FBYyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzRSw4QkFBOEI7UUFDOUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFekMseUNBQXlDO1FBQ3pDLE9BQU8sQ0FBQyxjQUFjLENBQUMsMEJBQTBCLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9FLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaGVhZGVyTWV0YWRhdGFLZXkgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2Z1bmN0aW9ucy91dGlsc1wiO1xyXG5pbXBvcnQgeyBmb3JtRmllbGRHcm91cHNNZXRhZGF0YUtleSwgZm9ybUZpZWxkc01ldGFkYXRhS2V5IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkVHlwZSB9IGZyb20gXCIuLi9lbnVtcy9mb3JtLWZpZWxkLXR5cGVcIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvZm9ybS1maWVsZC1kZWZpbml0aW9uXCI7XHJcbmltcG9ydCB7IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvZm9ybS1maWVsZC1ncm91cC1kZWZpbml0aW9uXCI7XHJcbmltcG9ydCB7IGdldEZvcm1Hcm91cHMgfSBmcm9tIFwiLi9mdW5jdGlvbnNcIjtcclxuXHJcbi8qKlxyXG4gKiBQcm9wZXJ0eSBkZWNvcmF0b3IgdG8gY3JlYXRlIGZvcm0gZmllbGRzXHJcbiAqIEBwYXJhbSBhcmdzIFxyXG4gKiBAcmV0dXJucyBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtRmllbGQoYXJnczogUGFydGlhbDxGb3JtRmllbGREZWZpbml0aW9uPiA9IG51bGwpOiBGdW5jdGlvbiB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgLyogR2V0IHByb3BlcnR5IG5hbWUgKi9cclxuICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gYXJncz8ubmFtZSB8fCBwcm9wZXJ0eUtleTtcclxuXHJcbiAgICAgICAgLyogR2V0IHByb3BlcnR5IHR5cGUgKi9cclxuICAgICAgICB2YXIgcHJvcGVydHlUeXBlOiBzdHJpbmcgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk/Lm5hbWU7XHJcblxyXG4gICAgICAgIC8qIENyZWF0ZSB0YWJsZSBjb2x1bW4gKi9cclxuICAgICAgICB2YXIgZm9ybUZpZWxkID0gbmV3IEZvcm1GaWVsZERlZmluaXRpb24oT2JqZWN0LmFzc2lnbihhcmdzLCA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XHJcbiAgICAgICAgICAgIG5hbWU6IGFyZ3M/Lm5hbWUgfHwgcHJvcGVydHlLZXksXHJcbiAgICAgICAgICAgIGhlYWRlcjogYXJncz8uaGVhZGVyIHx8IFJlZmxlY3QuZ2V0TWV0YWRhdGEoaGVhZGVyTWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpIHx8IHByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlVGVtcGxhdGU6IGFyZ3M/LmF1dG9jb21wbGV0ZVRlbXBsYXRlIHx8ICgob3B0aW9uOiBhbnkpID0+IG9wdGlvbltmb3JtRmllbGQuYXV0b2NvbXBsZXRlVGV4dF0pLFxyXG4gICAgICAgICAgICBjaGlwVGVtcGxhdGU6IGFyZ3M/LmNoaXBUZW1wbGF0ZSB8fCAoKGNoaXA6IGFueSkgPT4gY2hpcFtmb3JtRmllbGQuY2hpcFRleHRdKVxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgLyogVHlwZSBlbnVtICovXHJcbiAgICAgICAgaWYgKGZvcm1GaWVsZC5lbnVtVHlwZSkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5FbnVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBWZFNlbGVjdCAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5lbmRwb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5WZFNlbGVjdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFR5cGUgU2VsZWN0ICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLm9wdGlvbnMpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuU2VsZWN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBUZXh0QXJlYSAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5yb3dzKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHRBcmVhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBGaWxlICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLmZpbGVQYXRoKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkZpbGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBPdGhlciB0eXBlcyAqL1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5VHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLmlucHV0VHlwZSB8fD0gJ251bWJlcic7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuRGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5DaGVja2JveDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEdldCBvbGQgZm9ybSBmaWVsZHMgKi9cclxuICAgICAgICBjb25zdCBwcmV2aW91c0Zvcm1GaWVsZHM6IEZvcm1GaWVsZERlZmluaXRpb25bXSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkc01ldGFkYXRhS2V5LCB0YXJnZXQpO1xyXG5cclxuICAgICAgICAvKiBDcmVhdGUgYSBjb3B5IG9mIHRoZSByZXN1bHQgKi9cclxuICAgICAgICBsZXQgZm9ybUZpZWxkczogRm9ybUZpZWxkRGVmaW5pdGlvbltdID0gcHJldmlvdXNGb3JtRmllbGRzID8gcHJldmlvdXNGb3JtRmllbGRzLmNvbmNhdChbZm9ybUZpZWxkXSkgOiBbZm9ybUZpZWxkXTtcclxuXHJcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIHJlc3VsdCBpbiB0aGUgbWV0YWRhdGEgKi9cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGZvcm1GaWVsZHNNZXRhZGF0YUtleSwgZm9ybUZpZWxkcywgdGFyZ2V0KTtcclxuXHJcbiAgICAgICAgLyogR2V0IG9sZCBmb3JtIGZpZWxkIGdyb3VwcyAqL1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzR3JvdXBzOiBGb3JtRmllbGRHcm91cERlZmluaXRpb25bXSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkR3JvdXBzTWV0YWRhdGFLZXksIHRhcmdldCkgfHwgW107XHJcblxyXG4gICAgICAgIC8qIEdldCB0aGUgZ3JvdXAgYnkgZ3JvdXAgbmFtZSBmcm9tIHRoZSBwcmV2aW91cyBzYXZlZCBncm91cHMgKi9cclxuICAgICAgICB2YXIgZ3JvdXAgPSBwcmV2aW91c0dyb3Vwcz8uZmlsdGVyKHggPT4geC5uYW1lID09IGZvcm1GaWVsZC5ncm91cE5hbWUpWzBdO1xyXG5cclxuICAgICAgICAvKiBJZiB0aGUgZ3JvdXAgZG9lc24ndCBleGlzdCwgY3JlYXRlIGEgbmV3IG9uZSBhbmQgYWRkIGl0IHRvIHRoZSBwcmV2aW91cyBncm91cHMgKi9cclxuICAgICAgICBpZiAoIWdyb3VwKSB7XHJcbiAgICAgICAgICAgIGdyb3VwID0gbmV3IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbih7IGluZGV4OiAwLCBuYW1lOiBmb3JtRmllbGQuZ3JvdXBOYW1lIHx8IG51bGwsIGhlYWRlcjogZm9ybUZpZWxkLmdyb3VwSGVhZGVyIH0pO1xyXG4gICAgICAgICAgICBwcmV2aW91c0dyb3Vwcy5wdXNoKGdyb3VwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEFkZCB0aGUgZmllbGRzIHRvIHRoZSBjdXJyZW50IGdyb3VwICovXHJcbiAgICAgICAgZ3JvdXAuZmllbGRzLnB1c2goZm9ybUZpZWxkKTtcclxuXHJcbiAgICAgICAgLyogR3JvdXAgdGhlIGZpZWxkIGJ5ICdyb3cnICovXHJcbiAgICAgICAgZ3JvdXAuZ3JvdXBzID0gKE9iamVjdC52YWx1ZXMoKGdyb3VwLmZpZWxkcykucmVkdWNlKGZ1bmN0aW9uIChyOiBbRm9ybUZpZWxkRGVmaW5pdGlvbltdXSwgYTogRm9ybUZpZWxkRGVmaW5pdGlvbikge1xyXG4gICAgICAgICAgICByW2Eucm93XSA9IChyW2Eucm93XSB8fCBbXSk7XHJcbiAgICAgICAgICAgIHJbYS5yb3ddLnB1c2goYSk7XHJcbiAgICAgICAgICAgIHJbYS5yb3ddLmZvckVhY2goKHgsIGkpID0+IHguaW5kZXggPSB4LmluZGV4IHx8IGkpO1xyXG4gICAgICAgICAgICBVdGlscy5zb3J0QXJyYXkoclthLnJvd10sICdpbmRleCcpO1xyXG4gICAgICAgICAgICByZXR1cm4gcjtcclxuICAgICAgICB9LCBPYmplY3QuY3JlYXRlKG51bGwpKSkgYXMgW0Zvcm1GaWVsZERlZmluaXRpb25bXV0pO1xyXG5cclxuICAgICAgICAvKiBTb3J0IHRoZSBncm91cHMgYnkgaW5kZXggKi9cclxuICAgICAgICBVdGlscy5zb3J0QXJyYXkocHJldmlvdXNHcm91cHMsICdpbmRleCcpO1xyXG5cclxuICAgICAgICAvKiBPdmVycmlkZSB0aGUgcmVzdWx0IGluIHRoZSBtZXRhZGF0YSAqL1xyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoZm9ybUZpZWxkR3JvdXBzTWV0YWRhdGFLZXksIHByZXZpb3VzR3JvdXBzLCB0YXJnZXQpO1xyXG4gICAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb3BlcnR5IGRlY29yYXRvciB0byBjcmVhdGUgZm9ybSBmaWVsZHNcclxuICogQHBhcmFtIHR5cGUgXHJcbiAqIEBwYXJhbSBoZWFkZXIgXHJcbiAqIEBwYXJhbSBpbml0IFxyXG4gKiBAcmV0dXJucyBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtRmllbGRHcm91cCh0eXBlOiBUeXBlPGFueT4sIGFyZ3M6IFBhcnRpYWw8Rm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uPiA9IG51bGwpOiBGdW5jdGlvbiB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgLyogQ3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBncm91cCBvYmplY3QgKi9cclxuICAgICAgICB2YXIgaW5zdGFuY2UgPSBSZWZsZWN0LmNvbnN0cnVjdCh0eXBlLCBbXSk7XHJcblxyXG4gICAgICAgIC8qIEdldCBmcm9tIGdyb3VwcyAqL1xyXG4gICAgICAgIHZhciBncm91cHMgPSBnZXRGb3JtR3JvdXBzKGluc3RhbmNlKTtcclxuXHJcbiAgICAgICAgLyogR2V0IHRoZSBoZWFkZXIgb2YgdGhlIGdyb3VwcyBvciBjcmVhdGUgb25lIHVzaW5nIHRoZSBwcm9wZXJ0eSBuYW1lICovXHJcbiAgICAgICAgdmFyIGdyb3VwSGVhZGVyID0gYXJncz8uaGVhZGVyIHx8IFJlZmxlY3QuZ2V0TWV0YWRhdGEoaGVhZGVyTWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpIHx8IHByb3BlcnR5S2V5O1xyXG5cclxuICAgICAgICAvKiBHZXQgdGhlIGZpZWxkcyBmcm9tIHRoZSBncm91cHMgKi9cclxuICAgICAgICBncm91cHM/LmZvckVhY2goKHgsIGkpID0+IHtcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih4LCA8Rm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uPntcclxuICAgICAgICAgICAgICAgIG5hbWU6IHByb3BlcnR5S2V5LFxyXG4gICAgICAgICAgICAgICAgaGVhZGVyOiBncm91cEhlYWRlcixcclxuICAgICAgICAgICAgICAgIHR5cGU6IHR5cGUsXHJcbiAgICAgICAgICAgICAgICBpbnN0YW5jZTogYXJncz8uaW5zdGFuY2UgfHwgaW5zdGFuY2UsXHJcbiAgICAgICAgICAgICAgICBpbmRleDogYXJncz8uaW5kZXggfHwgaVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8qIFNldCB0aGUgbmFtZSBvZiB0aGUgZ3JvdXAgaW4gdGhlIGZpZWxkcyAqL1xyXG4gICAgICAgICAgICB4LmZpZWxkcy5mb3JFYWNoKHkgPT4gT2JqZWN0LmFzc2lnbih5LCB7XHJcbiAgICAgICAgICAgICAgICBncm91cE5hbWU6IHByb3BlcnR5S2V5LFxyXG4gICAgICAgICAgICAgICAgZ3JvdXBIZWFkZXI6IGdyb3VwSGVhZGVyXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLyogR2V0IG9sZCBmb3JtIGZpZWxkIGdyb3VwcyAqL1xyXG4gICAgICAgIHZhciBwcmV2aW91c0dyb3VwczogRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uW10gPSBSZWZsZWN0LmdldE1ldGFkYXRhKGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5LCB0YXJnZXQpO1xyXG5cclxuICAgICAgICAvKiBBZGQgdGhlIGN1cnJlbnQgZ3JvdXBzIHRvIHRoZSBwcmV2aW91cyBncm91cHMgKi9cclxuICAgICAgICBwcmV2aW91c0dyb3VwcyA9IChwcmV2aW91c0dyb3VwcyA/IHByZXZpb3VzR3JvdXBzLmNvbmNhdChncm91cHMpIDogZ3JvdXBzKTtcclxuXHJcbiAgICAgICAgLyogU29ydCB0aGUgZ3JvdXBzIGJ5IGluZGV4ICovXHJcbiAgICAgICAgVXRpbHMuc29ydEFycmF5KHByZXZpb3VzR3JvdXBzLCAnaW5kZXgnKTtcclxuXHJcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIHJlc3VsdCBpbiB0aGUgbWV0YWRhdGEgKi9cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5LCBwcmV2aW91c0dyb3VwcywgdGFyZ2V0KTtcclxuICAgIH07XHJcbn0iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm1zL2Z1bmN0aW9ucy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQWtDO0lBQ3hELE9BQU8sVUFBVSxNQUFXLEVBQUUsV0FBbUI7UUFDN0MsdUJBQXVCO1FBQ3ZCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDO1FBRTVDLHVCQUF1QjtRQUN2QixJQUFJLFlBQVksR0FBVyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsSUFBSSxDQUFDO1FBRXpGLHlCQUF5QjtRQUN6QixJQUFJLFNBQVMsR0FBRyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUF1QjtZQUM3RSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXO1lBQzlCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxJQUFJLFlBQVk7WUFDbEcsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxN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LFdBQVcsR0FBRyxJQUFJLEVBQUUsTUFBTSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQztRQUU3RyxvQ0FBb0M7UUFDcEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBNEI7Z0JBQ3ZDLElBQUksRUFBRSxXQUFXO2dCQUNqQixNQUFNLEVBQUUsV0FBVztnQkFDbkIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLElBQUksUUFBUTtnQkFDcEMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLElBQUksQ0FBQzthQUMxQixDQUFDLENBQUM7WUFFSCw2Q0FBNkM7WUFDN0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtnQkFDbkMsU0FBUyxFQUFFLFdBQVc7Z0JBQ3RCLFdBQVcsRUFBRSxXQUFXO2FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUM7UUFFSCwrQkFBK0I7UUFDL0IsSUFBSSxjQUFjLEdBQStCLE9BQU8sQ0FBQyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFekcseUNBQXlDO1FBQ3pDLE9BQU8sQ0FBQyxjQUFjLENBQUMsMEJBQTBCLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFILENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaGVhZGVyTWV0YWRhdGFLZXkgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZm9ybUZpZWxkR3JvdXBzTWV0YWRhdGFLZXksIGZvcm1GaWVsZHNNZXRhZGF0YUtleSB9IGZyb20gXCIuLi9jb25zdGFudHMvY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEZvcm1GaWVsZFR5cGUgfSBmcm9tIFwiLi4vZW51bXMvZm9ybS1maWVsZC10eXBlXCI7XHJcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm0tZmllbGQtZGVmaW5pdGlvblwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRHcm91cERlZmluaXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm0tZmllbGQtZ3JvdXAtZGVmaW5pdGlvblwiO1xyXG5pbXBvcnQgeyBnZXRGb3JtR3JvdXBzIH0gZnJvbSBcIi4vZnVuY3Rpb25zXCI7XHJcblxyXG4vKipcclxuICogUHJvcGVydHkgZGVjb3JhdG9yIHRvIGNyZWF0ZSBmb3JtIGZpZWxkc1xyXG4gKiBAcGFyYW0gYXJncyBcclxuICogQHJldHVybnMgXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gRm9ybUZpZWxkKGFyZ3M6IFBhcnRpYWw8Rm9ybUZpZWxkRGVmaW5pdGlvbj4pOiBGdW5jdGlvbiB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgLyogR2V0IHByb3BlcnR5IG5hbWUgKi9cclxuICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gYXJncy5uYW1lIHx8IHByb3BlcnR5S2V5O1xyXG5cclxuICAgICAgICAvKiBHZXQgcHJvcGVydHkgdHlwZSAqL1xyXG4gICAgICAgIHZhciBwcm9wZXJ0eVR5cGU6IHN0cmluZyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCB0YXJnZXQsIHByb3BlcnR5S2V5KT8ubmFtZTtcclxuXHJcbiAgICAgICAgLyogQ3JlYXRlIHRhYmxlIGNvbHVtbiAqL1xyXG4gICAgICAgIHZhciBmb3JtRmllbGQgPSBuZXcgRm9ybUZpZWxkRGVmaW5pdGlvbihPYmplY3QuYXNzaWduKGFyZ3MsIDxGb3JtRmllbGREZWZpbml0aW9uPntcclxuICAgICAgICAgICAgbmFtZTogYXJncy5uYW1lIHx8IHByb3BlcnR5S2V5LFxyXG4gICAgICAgICAgICBoZWFkZXI6IGFyZ3MuaGVhZGVyIHx8IFJlZmxlY3QuZ2V0TWV0YWRhdGEoaGVhZGVyTWV0YWRhdGFLZXksIHRhcmdldCwgcHJvcGVydHlLZXkpIHx8IHByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlVGVtcGxhdGU6IGFyZ3MuYXV0b2NvbXBsZXRlVGVtcGxhdGUgfHwgKChvcHRpb246IGFueSkgPT4gb3B0aW9uW2Zvcm1GaWVsZC5hdXRvY29tcGxldGVUZXh0XSksXHJcbiAgICAgICAgICAgIGNoaXBUZW1wbGF0ZTogYXJncy5jaGlwVGVtcGxhdGUgfHwgKChjaGlwOiBhbnkpID0+IGNoaXBbZm9ybUZpZWxkLmNoaXBUZXh0XSlcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIC8qIFR5cGUgZW51bSAqL1xyXG4gICAgICAgIGlmIChmb3JtRmllbGQuZW51bVR5cGUpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuRW51bTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFR5cGUgVmRTZWxlY3QgKi9cclxuICAgICAgICBlbHNlIGlmIChmb3JtRmllbGQuZW5kcG9pbnQpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuVmRTZWxlY3Q7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUeXBlIFNlbGVjdCAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5vcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlNlbGVjdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFR5cGUgVGV4dEFyZWEgKi9cclxuICAgICAgICBlbHNlIGlmIChmb3JtRmllbGQucm93cykge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5UZXh0QXJlYTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFR5cGUgRmlsZSAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5maWxlUGF0aCkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5GaWxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogT3RoZXIgdHlwZXMgKi9cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc3dpdGNoIChwcm9wZXJ0eVR5cGUudG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5UZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC5pbnB1dFR5cGUgfHw9ICdudW1iZXInO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkRhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuQ2hlY2tib3g7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5UZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBHZXQgb2xkIGZvcm0gZmllbGRzICovXHJcbiAgICAgICAgY29uc3QgcHJldmlvdXNGb3JtRmllbGRzID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRzTWV0YWRhdGFLZXksIHRhcmdldCk7XHJcblxyXG4gICAgICAgIC8qIENyZWF0ZSBhIGNvcHkgb2YgdGhlIHJlc3VsdCAqL1xyXG4gICAgICAgIGxldCBmb3JtRmllbGRzID0gcHJldmlvdXNGb3JtRmllbGRzID8gcHJldmlvdXNGb3JtRmllbGRzLmNvbmNhdChbZm9ybUZpZWxkXSkgOiBbZm9ybUZpZWxkXTtcclxuXHJcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIHJlc3VsdCBpbiB0aGUgbWV0YWRhdGEgKi9cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGZvcm1GaWVsZHNNZXRhZGF0YUtleSwgZm9ybUZpZWxkcywgdGFyZ2V0KTtcclxuICAgIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcm9wZXJ0eSBkZWNvcmF0b3IgdG8gY3JlYXRlIGZvcm0gZmllbGRzXHJcbiAqIEBwYXJhbSBhcmdzIFxyXG4gKiBAcmV0dXJucyBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtRmllbGRHcm91cDxUPih0eXBlOiBUeXBlPFQ+LCBhcmdzOiBQYXJ0aWFsPEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbj4gPSBudWxsKTogRnVuY3Rpb24ge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZykge1xyXG4gICAgICAgIC8qIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUgZ3JvdXAgb2JqZWN0ICovXHJcbiAgICAgICAgdmFyIGluc3RhbmNlID0gUmVmbGVjdC5jb25zdHJ1Y3QodHlwZSwgW10pO1xyXG5cclxuICAgICAgICAvKiBHZXQgZnJvbSBncm91cHMgKi9cclxuICAgICAgICB2YXIgZ3JvdXBzID0gZ2V0Rm9ybUdyb3VwcyhpbnN0YW5jZSk7XHJcblxyXG4gICAgICAgIC8qIEdldCB0aGUgaGVhZGVyIG9mIHRoZSBncm91cHMgb3IgY3JlYXRlIG9uZSB1c2luZyB0aGUgcHJvcGVydHkgbmFtZSAqL1xyXG4gICAgICAgIHZhciBncm91cEhlYWRlciA9IGFyZ3M/LmhlYWRlciB8fCBSZWZsZWN0LmdldE1ldGFkYXRhKGhlYWRlck1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB8fCBwcm9wZXJ0eUtleTtcclxuXHJcbiAgICAgICAgLyogR2V0IHRoZSBmaWVsZHMgZnJvbSB0aGUgZ3JvdXBzICovXHJcbiAgICAgICAgZ3JvdXBzPy5mb3JFYWNoKCh4LCBpKSA9PiB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oeCwgPEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbj57XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBwcm9wZXJ0eUtleSxcclxuICAgICAgICAgICAgICAgIGhlYWRlcjogZ3JvdXBIZWFkZXIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICAgICAgICAgICAgaW5zdGFuY2U6IGFyZ3M/Lmluc3RhbmNlIHx8IGluc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgaW5kZXg6IGFyZ3M/LmluZGV4IHx8IGlcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvKiBTZXQgdGhlIG5hbWUgb2YgdGhlIGdyb3VwIGluIHRoZSBmaWVsZHMgKi9cclxuICAgICAgICAgICAgeC5maWVsZHMuZm9yRWFjaCh5ID0+IE9iamVjdC5hc3NpZ24oeSwge1xyXG4gICAgICAgICAgICAgICAgZ3JvdXBOYW1lOiBwcm9wZXJ0eUtleSxcclxuICAgICAgICAgICAgICAgIGdyb3VwSGVhZGVyOiBncm91cEhlYWRlclxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8qIEdldCBvbGQgZm9ybSBmaWVsZCBncm91cHMgKi9cclxuICAgICAgICB2YXIgcHJldmlvdXNHcm91cHM6IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbltdID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRHcm91cHNNZXRhZGF0YUtleSwgdGFyZ2V0KTtcclxuXHJcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIHJlc3VsdCBpbiB0aGUgbWV0YWRhdGEgKi9cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5LCAocHJldmlvdXNHcm91cHMgPyBwcmV2aW91c0dyb3Vwcy5jb25jYXQoZ3JvdXBzKSA6IGdyb3VwcyksIHRhcmdldCk7XHJcbiAgICB9O1xyXG59Il19
@@ -1,10 +1,44 @@
1
- import { formFieldGroupsMetadataKey } from "../constants/constants";
1
+ import { Utils } from "../../common/functions/utils";
2
+ import { formFieldGroupsMetadataKey, formFieldsMetadataKey } from "../constants/constants";
3
+ import { FormFieldGroupDefinition } from "../models/form-field-group-definition";
4
+ /**
5
+ * Gets poperties decoarated with @FormField grouped by row
6
+ * @param origin
7
+ * @returns
8
+ * @deprecated
9
+ */
10
+ export function getFormGroupsOld(origin) {
11
+ return Reflect.getMetadata(formFieldsMetadataKey, origin);
12
+ }
2
13
  /**
3
14
  * Gets poperties decoarated with @FormField grouped by row
4
15
  * @param origin
5
16
  * @returns
6
17
  */
7
18
  export function getFormGroups(origin) {
8
- return Reflect.getMetadata(formFieldGroupsMetadataKey, origin);
19
+ /* Get main fields grouped by the group name */
20
+ const mainFieldGroups = Utils.groupArrayBy(Reflect.getMetadata(formFieldsMetadataKey, origin), x => x.groupName);
21
+ /* Group the fields */
22
+ var groups = Array.from(mainFieldGroups).map(([_, value], i) => new FormFieldGroupDefinition({
23
+ name: value[0].groupName || null,
24
+ header: value[0].groupHeader,
25
+ index: i,
26
+ groups: Object.values((value).reduce(function (r, a) {
27
+ r[a.row] = (r[a.row] || []);
28
+ r[a.row].push(a);
29
+ r[a.row].forEach((x, i) => x.index = x.index || i);
30
+ Utils.sortArray(r[a.row], 'index');
31
+ return r;
32
+ }, Object.create(null)))
33
+ }));
34
+ /* Get object groups */
35
+ var objectFieldGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, origin);
36
+ if (objectFieldGroups) {
37
+ groups = groups.concat(objectFieldGroups);
38
+ }
39
+ /* Sort the groups by index */
40
+ Utils.sortArray(groups, 'index');
41
+ console.log('groups', groups);
42
+ return groups;
9
43
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvZnVuY3Rpb25zL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdwRTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFjO0lBQ3hDLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsRUFBRSxNQUFNLENBQStCLENBQUM7QUFDakcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwLWRlZmluaXRpb25cIjtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIHBvcGVydGllcyBkZWNvYXJhdGVkIHdpdGggQEZvcm1GaWVsZCBncm91cGVkIGJ5IHJvd1xyXG4gKiBAcGFyYW0gb3JpZ2luIFxyXG4gKiBAcmV0dXJucyBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtR3JvdXBzKG9yaWdpbjogb2JqZWN0KTogRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uW10ge1xyXG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkR3JvdXBzTWV0YWRhdGFLZXksIG9yaWdpbikgYXMgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uW107XHJcbn0iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvZnVuY3Rpb25zL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakY7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBYztJQUMzQyxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUErQixDQUFDO0FBQzVGLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFjO0lBQ3hDLCtDQUErQztJQUMvQyxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUEwQixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTFJLHNCQUFzQjtJQUN0QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSx3QkFBd0IsQ0FBQztRQUNqRyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJO1FBQ2hDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVztRQUM1QixLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sRUFBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBMEIsRUFBRSxDQUFzQjtZQUM5RixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbkMsT0FBTyxDQUFDLENBQUM7UUFDYixDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUE2QjtLQUN2RCxDQUFDLENBQUMsQ0FBQztJQUVKLHVCQUF1QjtJQUN2QixJQUFJLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEYsSUFBSSxpQkFBaUIsRUFBRTtRQUNuQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBQzdDO0lBRUQsOEJBQThCO0lBQzlCLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVdGlscyB9IGZyb20gXCIuLi8uLi9jb21tb24vZnVuY3Rpb25zL3V0aWxzXCI7XHJcbmltcG9ydCB7IGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5LCBmb3JtRmllbGRzTWV0YWRhdGFLZXkgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWRlZmluaXRpb25cIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwLWRlZmluaXRpb25cIjtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIHBvcGVydGllcyBkZWNvYXJhdGVkIHdpdGggQEZvcm1GaWVsZCBncm91cGVkIGJ5IHJvd1xyXG4gKiBAcGFyYW0gb3JpZ2luIFxyXG4gKiBAcmV0dXJucyBcclxuICogQGRlcHJlY2F0ZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtR3JvdXBzT2xkKG9yaWdpbjogb2JqZWN0KTogRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uW10ge1xyXG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkc01ldGFkYXRhS2V5LCBvcmlnaW4pIGFzIEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbltdO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBwb3BlcnRpZXMgZGVjb2FyYXRlZCB3aXRoIEBGb3JtRmllbGQgZ3JvdXBlZCBieSByb3dcclxuICogQHBhcmFtIG9yaWdpbiBcclxuICogQHJldHVybnMgXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUdyb3VwcyhvcmlnaW46IG9iamVjdCk6IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbltdIHtcclxuICAgIC8qIEdldCBtYWluIGZpZWxkcyBncm91cGVkIGJ5IHRoZSBncm91cCBuYW1lICovXHJcbiAgICBjb25zdCBtYWluRmllbGRHcm91cHMgPSBVdGlscy5ncm91cEFycmF5QnkoUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRzTWV0YWRhdGFLZXksIG9yaWdpbikgYXMgRm9ybUZpZWxkRGVmaW5pdGlvbltdLCB4ID0+IHguZ3JvdXBOYW1lKTtcclxuXHJcbiAgICAvKiBHcm91cCB0aGUgZmllbGRzICovXHJcbiAgICB2YXIgZ3JvdXBzID0gQXJyYXkuZnJvbShtYWluRmllbGRHcm91cHMpLm1hcCgoW18sIHZhbHVlXSwgaTogbnVtYmVyKSA9PiBuZXcgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uKHtcclxuICAgICAgICBuYW1lOiB2YWx1ZVswXS5ncm91cE5hbWUgfHwgbnVsbCxcclxuICAgICAgICBoZWFkZXI6IHZhbHVlWzBdLmdyb3VwSGVhZGVyLFxyXG4gICAgICAgIGluZGV4OiBpLFxyXG4gICAgICAgIGdyb3VwczogKE9iamVjdC52YWx1ZXMoKHZhbHVlKS5yZWR1Y2UoZnVuY3Rpb24gKHI6IFtGb3JtRmllbGREZWZpbml0aW9uW11dLCBhOiBGb3JtRmllbGREZWZpbml0aW9uKSB7XHJcbiAgICAgICAgICAgIHJbYS5yb3ddID0gKHJbYS5yb3ddIHx8IFtdKTtcclxuICAgICAgICAgICAgclthLnJvd10ucHVzaChhKTtcclxuICAgICAgICAgICAgclthLnJvd10uZm9yRWFjaCgoeCwgaSkgPT4geC5pbmRleCA9IHguaW5kZXggfHwgaSk7XHJcbiAgICAgICAgICAgIFV0aWxzLnNvcnRBcnJheShyW2Eucm93XSwgJ2luZGV4Jyk7XHJcbiAgICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH0sIE9iamVjdC5jcmVhdGUobnVsbCkpKSBhcyBbRm9ybUZpZWxkRGVmaW5pdGlvbltdXSlcclxuICAgIH0pKTtcclxuXHJcbiAgICAvKiBHZXQgb2JqZWN0IGdyb3VwcyAqL1xyXG4gICAgdmFyIG9iamVjdEZpZWxkR3JvdXBzID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRHcm91cHNNZXRhZGF0YUtleSwgb3JpZ2luKTtcclxuICAgIGlmIChvYmplY3RGaWVsZEdyb3Vwcykge1xyXG4gICAgICAgIGdyb3VwcyA9IGdyb3Vwcy5jb25jYXQob2JqZWN0RmllbGRHcm91cHMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFNvcnQgdGhlIGdyb3VwcyBieSBpbmRleCAqL1xyXG4gICAgVXRpbHMuc29ydEFycmF5KGdyb3VwcywgJ2luZGV4Jyk7XHJcbiAgICBjb25zb2xlLmxvZygnZ3JvdXBzJywgZ3JvdXBzKTtcclxuICAgIHJldHVybiBncm91cHM7XHJcbn0iXX0=
@@ -3137,13 +3137,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
3137
3137
  const formFieldsMetadataKey = 'custom::vdFormFields';
3138
3138
  const formFieldGroupsMetadataKey = 'custom:vdFormFieldGroups';
3139
3139
 
3140
+ class FormFieldGroupDefinition {
3141
+ /**
3142
+ * constructor
3143
+ * @param init
3144
+ */
3145
+ constructor(init) {
3146
+ this.name = 'details';
3147
+ this.fields = [];
3148
+ Object.assign(this, init);
3149
+ }
3150
+ }
3151
+
3152
+ /**
3153
+ * Gets poperties decoarated with @FormField grouped by row
3154
+ * @param origin
3155
+ * @returns
3156
+ * @deprecated
3157
+ */
3158
+ function getFormGroupsOld(origin) {
3159
+ return Reflect.getMetadata(formFieldsMetadataKey, origin);
3160
+ }
3140
3161
  /**
3141
3162
  * Gets poperties decoarated with @FormField grouped by row
3142
3163
  * @param origin
3143
3164
  * @returns
3144
3165
  */
3145
3166
  function getFormGroups(origin) {
3146
- return Reflect.getMetadata(formFieldGroupsMetadataKey, origin);
3167
+ /* Get main fields grouped by the group name */
3168
+ const mainFieldGroups = Utils.groupArrayBy(Reflect.getMetadata(formFieldsMetadataKey, origin), x => x.groupName);
3169
+ /* Group the fields */
3170
+ var groups = Array.from(mainFieldGroups).map(([_, value], i) => new FormFieldGroupDefinition({
3171
+ name: value[0].groupName || null,
3172
+ header: value[0].groupHeader,
3173
+ index: i,
3174
+ groups: Object.values((value).reduce(function (r, a) {
3175
+ r[a.row] = (r[a.row] || []);
3176
+ r[a.row].push(a);
3177
+ r[a.row].forEach((x, i) => x.index = x.index || i);
3178
+ Utils.sortArray(r[a.row], 'index');
3179
+ return r;
3180
+ }, Object.create(null)))
3181
+ }));
3182
+ /* Get object groups */
3183
+ var objectFieldGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, origin);
3184
+ if (objectFieldGroups) {
3185
+ groups = groups.concat(objectFieldGroups);
3186
+ }
3187
+ /* Sort the groups by index */
3188
+ Utils.sortArray(groups, 'index');
3189
+ console.log('groups', groups);
3190
+ return groups;
3147
3191
  }
3148
3192
 
3149
3193
  // @dynamic
@@ -11886,6 +11930,7 @@ class GenericReactiveFormComponent extends GenericFormBaseComponent {
11886
11930
  super.onAfterFormBuild();
11887
11931
  if (this.buildFieldGroups && !this.fieldGroups) {
11888
11932
  this.fieldGroups = getFormGroups(new this.entityCtor());
11933
+ console.log('this.fieldGroups', this.fieldGroups);
11889
11934
  }
11890
11935
  }
11891
11936
  /**
@@ -14507,36 +14552,24 @@ class FormFieldDefinition {
14507
14552
  }
14508
14553
  }
14509
14554
 
14510
- class FormFieldGroupDefinition {
14511
- /**
14512
- * constructor
14513
- * @param init
14514
- */
14515
- constructor(init) {
14516
- this.name = 'details';
14517
- this.fields = [];
14518
- Object.assign(this, init);
14519
- }
14520
- }
14521
-
14522
14555
  /**
14523
14556
  * Property decorator to create form fields
14524
14557
  * @param args
14525
14558
  * @returns
14526
14559
  */
14527
- function FormField(args = null) {
14560
+ function FormField(args) {
14528
14561
  return function (target, propertyKey) {
14529
14562
  var _a;
14530
14563
  /* Get property name */
14531
- var propertyName = (args === null || args === void 0 ? void 0 : args.name) || propertyKey;
14564
+ var propertyName = args.name || propertyKey;
14532
14565
  /* Get property type */
14533
14566
  var propertyType = (_a = Reflect.getMetadata("design:type", target, propertyKey)) === null || _a === void 0 ? void 0 : _a.name;
14534
14567
  /* Create table column */
14535
14568
  var formField = new FormFieldDefinition(Object.assign(args, {
14536
- name: (args === null || args === void 0 ? void 0 : args.name) || propertyKey,
14537
- header: (args === null || args === void 0 ? void 0 : args.header) || Reflect.getMetadata(headerMetadataKey, target, propertyKey) || propertyName,
14538
- autocompleteTemplate: (args === null || args === void 0 ? void 0 : args.autocompleteTemplate) || ((option) => option[formField.autocompleteText]),
14539
- chipTemplate: (args === null || args === void 0 ? void 0 : args.chipTemplate) || ((chip) => chip[formField.chipText])
14569
+ name: args.name || propertyKey,
14570
+ header: args.header || Reflect.getMetadata(headerMetadataKey, target, propertyKey) || propertyName,
14571
+ autocompleteTemplate: args.autocompleteTemplate || ((option) => option[formField.autocompleteText]),
14572
+ chipTemplate: args.chipTemplate || ((chip) => chip[formField.chipText])
14540
14573
  }));
14541
14574
  /* Type enum */
14542
14575
  if (formField.enumType) {
@@ -14582,36 +14615,11 @@ function FormField(args = null) {
14582
14615
  let formFields = previousFormFields ? previousFormFields.concat([formField]) : [formField];
14583
14616
  /* Override the result in the metadata */
14584
14617
  Reflect.defineMetadata(formFieldsMetadataKey, formFields, target);
14585
- /* Get old form field groups */
14586
- const previousGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, target) || [];
14587
- /* Get the group by group name from the previous saved groups */
14588
- var group = previousGroups === null || previousGroups === void 0 ? void 0 : previousGroups.filter(x => x.name == formField.groupName)[0];
14589
- /* If the group doesn't exist, create a new one and add it to the previous groups */
14590
- if (!group) {
14591
- group = new FormFieldGroupDefinition({ index: 0, name: formField.groupName || null, header: formField.groupHeader });
14592
- previousGroups.push(group);
14593
- }
14594
- /* Add the fields to the current group */
14595
- group.fields.push(formField);
14596
- /* Group the field by 'row' */
14597
- group.groups = Object.values((group.fields).reduce(function (r, a) {
14598
- r[a.row] = (r[a.row] || []);
14599
- r[a.row].push(a);
14600
- r[a.row].forEach((x, i) => x.index = x.index || i);
14601
- Utils.sortArray(r[a.row], 'index');
14602
- return r;
14603
- }, Object.create(null)));
14604
- /* Sort the groups by index */
14605
- Utils.sortArray(previousGroups, 'index');
14606
- /* Override the result in the metadata */
14607
- Reflect.defineMetadata(formFieldGroupsMetadataKey, previousGroups, target);
14608
14618
  };
14609
14619
  }
14610
14620
  /**
14611
14621
  * Property decorator to create form fields
14612
- * @param type
14613
- * @param header
14614
- * @param init
14622
+ * @param args
14615
14623
  * @returns
14616
14624
  */
14617
14625
  function FormFieldGroup(type, args = null) {
@@ -14639,12 +14647,8 @@ function FormFieldGroup(type, args = null) {
14639
14647
  });
14640
14648
  /* Get old form field groups */
14641
14649
  var previousGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, target);
14642
- /* Add the current groups to the previous groups */
14643
- previousGroups = (previousGroups ? previousGroups.concat(groups) : groups);
14644
- /* Sort the groups by index */
14645
- Utils.sortArray(previousGroups, 'index');
14646
14650
  /* Override the result in the metadata */
14647
- Reflect.defineMetadata(formFieldGroupsMetadataKey, previousGroups, target);
14651
+ Reflect.defineMetadata(formFieldGroupsMetadataKey, (previousGroups ? previousGroups.concat(groups) : groups), target);
14648
14652
  };
14649
14653
  }
14650
14654