@decaf-ts/for-angular 0.0.3 → 0.0.4

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.
Files changed (43) hide show
  1. package/LICENSE.md +157 -21
  2. package/README.md +0 -0
  3. package/dist/for-angular/README.md +0 -0
  4. package/dist/for-angular/assets/i18n/en.json +0 -0
  5. package/dist/for-angular/components/decaf-crud-field/decaf-crud-field.component.d.ts +33 -6
  6. package/dist/for-angular/components/decaf-crud-form/constants.d.ts +0 -0
  7. package/dist/for-angular/components/decaf-crud-form/decaf-crud-form.component.d.ts +4 -4
  8. package/dist/for-angular/components/decaf-crud-form/types.d.ts +0 -0
  9. package/dist/for-angular/components/decaf-model-renderer/decaf-model-renderer.component.d.ts +13 -13
  10. package/dist/for-angular/engine/DynamicModule.d.ts +0 -0
  11. package/dist/for-angular/engine/NgxCrudFormField.d.ts +16 -17
  12. package/dist/for-angular/engine/NgxFormService.d.ts +2 -2
  13. package/dist/for-angular/engine/NgxRenderingEngine.d.ts +7 -6
  14. package/dist/for-angular/engine/ValidatorFactory.d.ts +0 -0
  15. package/dist/for-angular/engine/constants.d.ts +3 -0
  16. package/dist/for-angular/engine/decorators.d.ts +0 -0
  17. package/dist/for-angular/engine/index.d.ts +0 -0
  18. package/dist/for-angular/engine/types.d.ts +15 -3
  19. package/dist/for-angular/esm2022/components/decaf-crud-field/decaf-crud-field.component.mjs +84 -21
  20. package/dist/for-angular/esm2022/components/decaf-crud-form/constants.mjs +0 -0
  21. package/dist/for-angular/esm2022/components/decaf-crud-form/decaf-crud-form.component.mjs +15 -19
  22. package/dist/for-angular/esm2022/components/decaf-crud-form/types.mjs +0 -0
  23. package/dist/for-angular/esm2022/components/decaf-model-renderer/decaf-model-renderer.component.mjs +30 -29
  24. package/dist/for-angular/esm2022/decaf-ts-for-angular.mjs +0 -0
  25. package/dist/for-angular/esm2022/engine/DynamicModule.mjs +0 -0
  26. package/dist/for-angular/esm2022/engine/NgxCrudFormField.mjs +6 -9
  27. package/dist/for-angular/esm2022/engine/NgxFormService.mjs +4 -1
  28. package/dist/for-angular/esm2022/engine/NgxRenderingEngine.mjs +52 -3
  29. package/dist/for-angular/esm2022/engine/ValidatorFactory.mjs +0 -0
  30. package/dist/for-angular/esm2022/engine/constants.mjs +4 -1
  31. package/dist/for-angular/esm2022/engine/decorators.mjs +5 -8
  32. package/dist/for-angular/esm2022/engine/index.mjs +0 -0
  33. package/dist/for-angular/esm2022/engine/types.mjs +1 -1
  34. package/dist/for-angular/esm2022/interfaces.mjs +0 -0
  35. package/dist/for-angular/esm2022/public-apis.mjs +2 -1
  36. package/dist/for-angular/fesm2022/decaf-ts-for-angular.mjs +237 -153
  37. package/dist/for-angular/fesm2022/decaf-ts-for-angular.mjs.map +1 -1
  38. package/dist/for-angular/index.d.ts +0 -0
  39. package/dist/for-angular/interfaces.d.ts +0 -0
  40. package/dist/for-angular/public-apis.d.ts +1 -0
  41. package/package.json +3 -1
  42. package/dist/for-angular/directives/decaf-field.directive.d.ts +0 -8
  43. package/dist/for-angular/esm2022/directives/decaf-field.directive.mjs +0 -23
@@ -1,4 +1,4 @@
1
- import { InternalError, OperationKeys, } from '@decaf-ts/db-decorators';
1
+ import { OperationKeys, } from '@decaf-ts/db-decorators';
2
2
  import { NgxFormService } from './NgxFormService';
3
3
  import { sf } from '@decaf-ts/decorator-validation';
4
4
  /**
@@ -57,7 +57,7 @@ export class NgxCrudFormField {
57
57
  * @param {boolean} isDisabled - Whether the field should be disabled
58
58
  */
59
59
  setDisabledState(isDisabled) {
60
- this.props.disabled = isDisabled;
60
+ this.disabled = isDisabled;
61
61
  }
62
62
  /**
63
63
  * @summary After view initialization logic
@@ -71,12 +71,12 @@ export class NgxCrudFormField {
71
71
  case OperationKeys.UPDATE:
72
72
  case OperationKeys.DELETE:
73
73
  try {
74
- parent = NgxFormService.getParentEl(this.component.nativeElement, 'form');
74
+ parent = NgxFormService.getParentEl(this.component.nativeElement, 'div');
75
75
  }
76
76
  catch (e) {
77
77
  throw new Error(`Unable to retrieve parent form element for the ${this.operation}: ${e instanceof Error ? e.message : e}`);
78
78
  }
79
- NgxFormService.register(parent.id, this.formGroup, this.props);
79
+ NgxFormService.register(parent.id, this.formGroup, this);
80
80
  return parent;
81
81
  default:
82
82
  throw new Error(`Invalid operation: ${this.operation}`);
@@ -96,10 +96,7 @@ export class NgxCrudFormField {
96
96
  * @param {FieldUpdateMode} updateOn - The update mode for the field
97
97
  */
98
98
  onInit(updateOn) {
99
- if (!this.props || !this.operation)
100
- throw new InternalError(`props and operation are required`);
101
- this.formGroup = NgxFormService.fromProps(this.props, updateOn);
102
- this.name = this.props.name;
99
+ this.formGroup = NgxFormService.fromProps(this, updateOn);
103
100
  }
104
101
  /**
105
102
  * @summary Get field errors
@@ -115,4 +112,4 @@ export class NgxCrudFormField {
115
112
  }, []);
116
113
  }
117
114
  }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmd4Q3J1ZEZvcm1GaWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL05neENydWRGb3JtRmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUVMLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUdqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQWdCLGdCQUFnQjtJQUF0QztRQTZDRTs7O1dBR0c7UUFDSCxPQUFFLEdBQUcsRUFBRSxDQUFDO1FBRVI7OztXQUdHO1FBQ0gsYUFBUSxHQUFrQixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFbkM7OztXQUdHO1FBQ0gsWUFBTyxHQUFrQixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUF5R3BDLENBQUM7SUF2R0M7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsRUFBaUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQkFBaUIsQ0FBQyxFQUFpQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWE7UUFDWCxJQUFJLE1BQW1CLENBQUM7UUFDeEIsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkIsS0FBSyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQzFCLEtBQUssYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUMxQixLQUFLLGFBQWEsQ0FBQyxNQUFNO2dCQUN2QixJQUFJLENBQUM7b0JBQ0gsTUFBTSxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUM1QixNQUFNLENBQ1AsQ0FBQztnQkFDSixDQUFDO2dCQUFDLE9BQU8sQ0FBVSxFQUFFLENBQUM7b0JBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0RBQWtELElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzFHLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9ELE9BQU8sTUFBTSxDQUFDO1lBQ2hCO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLE1BQU07WUFDYixjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsUUFBeUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNoQyxNQUFNLElBQUksYUFBYSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVM7UUFDUCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQ25ELENBQUMsS0FBeUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzdELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQWlDLENBQUMsQ0FBQyxPQUFPLENBQy9ELENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQ0YsQ0FBQztZQUNGLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3J1ZEZvcm1GaWVsZCB9IGZyb20gJ0BkZWNhZi10cy91aS1kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFuZ3VsYXJGaWVsZERlZmluaXRpb24sIEZpZWxkVXBkYXRlTW9kZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ3J1ZE9wZXJhdGlvbnMsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG59IGZyb20gJ0BkZWNhZi10cy9kYi1kZWNvcmF0b3JzJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hGb3JtU2VydmljZSB9IGZyb20gJy4vTmd4Rm9ybVNlcnZpY2UnO1xuaW1wb3J0IHsgc2YgfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuXG4vKipcbiAqIEBjbGFzcyBOZ3hDcnVkRm9ybUZpZWxkXG4gKiBAaW1wbGVtZW50cyB7Q3J1ZEZvcm1GaWVsZDxBbmd1bGFyRmllbGREZWZpbml0aW9uPn1cbiAqIEBpbXBsZW1lbnRzIHtDb250cm9sVmFsdWVBY2Nlc3Nvcn1cbiAqIEBzdW1tYXJ5IEFic3RyYWN0IGNsYXNzIHJlcHJlc2VudGluZyBhIENSVUQgZm9ybSBmaWVsZCBmb3IgQW5ndWxhciBhcHBsaWNhdGlvbnNcbiAqIEBkZXNjcmlwdGlvbiBUaGlzIGNsYXNzIHByb3ZpZGVzIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uIGZvciBDUlVEIGZvcm0gZmllbGRzIGluIEFuZ3VsYXIsXG4gKiBpbXBsZW1lbnRpbmcgYm90aCBDcnVkRm9ybUZpZWxkIGFuZCBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmd4Q3J1ZEZvcm1GaWVsZFxuICBpbXBsZW1lbnRzIENydWRGb3JtRmllbGQ8QW5ndWxhckZpZWxkRGVmaW5pdGlvbj4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZWZlcmVuY2UgdG8gdGhlIGNvbXBvbmVudCdzIGVsZW1lbnRcbiAgICogQGRlc2NyaXB0aW9uIEVsZW1lbnRSZWYgcmVwcmVzZW50aW5nIHRoZSBjb21wb25lbnQncyBuYXRpdmUgZWxlbWVudFxuICAgKi9cbiAgY29tcG9uZW50ITogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogQHN1bW1hcnkgQ3VycmVudCBDUlVEIG9wZXJhdGlvblxuICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgY3VycmVudCBDUlVEIG9wZXJhdGlvbiBiZWluZyBwZXJmb3JtZWRcbiAgICovXG4gIG9wZXJhdGlvbiE6IENydWRPcGVyYXRpb25zO1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBGaWVsZCBwcm9wZXJ0aWVzXG4gICAqIEBkZXNjcmlwdGlvbiBBbmd1bGFyLXNwZWNpZmljIGZpZWxkIGRlZmluaXRpb24gcHJvcGVydGllc1xuICAgKi9cbiAgcHJvcHMhOiBBbmd1bGFyRmllbGREZWZpbml0aW9uO1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBGb3JtIGdyb3VwIGZvciB0aGUgZmllbGRcbiAgICogQGRlc2NyaXB0aW9uIEFuZ3VsYXIgRm9ybUdyb3VwIGluc3RhbmNlIGZvciB0aGUgZmllbGRcbiAgICovXG4gIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQHN1bW1hcnkgRmllbGQgbmFtZVxuICAgKiBAZGVzY3JpcHRpb24gTmFtZSBvZiB0aGUgZm9ybSBmaWVsZFxuICAgKi9cbiAgbmFtZSE6IHN0cmluZztcblxuICAvKipcbiAgICogQHN1bW1hcnkgRmllbGQgdmFsdWVcbiAgICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgdmFsdWUgb2YgdGhlIGZvcm0gZmllbGRcbiAgICovXG4gIHZhbHVlITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBQYXJlbnQgSFRNTCBlbGVtZW50XG4gICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBIVE1MIGVsZW1lbnQgb2YgdGhlIGZpZWxkXG4gICAqL1xuICBwcm90ZWN0ZWQgcGFyZW50PzogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFN0cmluZyBmb3JtYXR0aW5nIGZ1bmN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHNmIGZ1bmN0aW9uIGZvciBlcnJvciBtZXNzYWdlIGZvcm1hdHRpbmdcbiAgICovXG4gIHNmID0gc2Y7XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IENoYW5nZSBjYWxsYmFjayBmdW5jdGlvblxuICAgKiBAZGVzY3JpcHRpb24gRnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGZpZWxkIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gIG9uQ2hhbmdlOiAoKSA9PiB1bmtub3duID0gKCkgPT4ge307XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRvdWNoIGNhbGxiYWNrIGZ1bmN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgZmllbGQgaXMgdG91Y2hlZFxuICAgKi9cbiAgb25Ub3VjaDogKCkgPT4gdW5rbm93biA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBXcml0ZSB2YWx1ZSB0byB0aGUgZmllbGRcbiAgICogQGRlc2NyaXB0aW9uIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBmaWVsZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gb2JqIC0gVGhlIHZhbHVlIHRvIGJlIHNldFxuICAgKi9cbiAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBvYmo7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmVnaXN0ZXIgY2hhbmdlIGNhbGxiYWNrXG4gICAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlcnMgYSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgZmllbGQgdmFsdWUgY2hhbmdlc1xuICAgKiBAcGFyYW0geygpID0+IHVua25vd259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiBjaGFuZ2VcbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmVnaXN0ZXIgdG91Y2ggY2FsbGJhY2tcbiAgICogQGRlc2NyaXB0aW9uIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBmaWVsZCBpcyB0b3VjaGVkXG4gICAqIEBwYXJhbSB7KCkgPT4gdW5rbm93bn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIG9uIHRvdWNoXG4gICAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFNldCBkaXNhYmxlZCBzdGF0ZVxuICAgKiBAZGVzY3JpcHRpb24gU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGZpZWxkXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNEaXNhYmxlZCAtIFdoZXRoZXIgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNhYmxlZFxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucHJvcHMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEFmdGVyIHZpZXcgaW5pdGlhbGl6YXRpb24gbG9naWNcbiAgICogQGRlc2NyaXB0aW9uIFBlcmZvcm1zIG5lY2Vzc2FyeSBzZXR1cCBhZnRlciB0aGUgdmlldyBoYXMgYmVlbiBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7SFRNTEVsZW1lbnR9IFRoZSBwYXJlbnQgZWxlbWVudCBvZiB0aGUgZmllbGRcbiAgICovXG4gIGFmdGVyVmlld0luaXQoKTogSFRNTEVsZW1lbnQge1xuICAgIGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50O1xuICAgIHN3aXRjaCAodGhpcy5vcGVyYXRpb24pIHtcbiAgICAgIGNhc2UgT3BlcmF0aW9uS2V5cy5DUkVBVEU6XG4gICAgICBjYXNlIE9wZXJhdGlvbktleXMuVVBEQVRFOlxuICAgICAgY2FzZSBPcGVyYXRpb25LZXlzLkRFTEVURTpcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBwYXJlbnQgPSBOZ3hGb3JtU2VydmljZS5nZXRQYXJlbnRFbChcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnZm9ybScsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBVbmFibGUgdG8gcmV0cmlldmUgcGFyZW50IGZvcm0gZWxlbWVudCBmb3IgdGhlICR7dGhpcy5vcGVyYXRpb259OiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IGV9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIE5neEZvcm1TZXJ2aWNlLnJlZ2lzdGVyKHBhcmVudC5pZCwgdGhpcy5mb3JtR3JvdXAsIHRoaXMucHJvcHMpO1xuICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG9wZXJhdGlvbjogJHt0aGlzLm9wZXJhdGlvbn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgQ2xlYW51cCBvbiBjb21wb25lbnQgZGVzdHJ1Y3Rpb25cbiAgICogQGRlc2NyaXB0aW9uIFVucmVnaXN0ZXJzIHRoZSBmaWVsZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkXG4gICAqL1xuICBvbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFyZW50KVxuICAgICAgTmd4Rm9ybVNlcnZpY2UudW5yZWdpc3Rlcih0aGlzLnBhcmVudC5pZCwgdGhpcy5jb21wb25lbnQubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZSB0aGUgZmllbGRcbiAgICogQGRlc2NyaXB0aW9uIFNldHMgdXAgdGhlIGZvcm0gZ3JvdXAgYW5kIGZpZWxkIG5hbWVcbiAgICogQHBhcmFtIHtGaWVsZFVwZGF0ZU1vZGV9IHVwZGF0ZU9uIC0gVGhlIHVwZGF0ZSBtb2RlIGZvciB0aGUgZmllbGRcbiAgICovXG4gIG9uSW5pdCh1cGRhdGVPbjogRmllbGRVcGRhdGVNb2RlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByb3BzIHx8ICF0aGlzLm9wZXJhdGlvbilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBwcm9wcyBhbmQgb3BlcmF0aW9uIGFyZSByZXF1aXJlZGApO1xuICAgIHRoaXMuZm9ybUdyb3VwID0gTmd4Rm9ybVNlcnZpY2UuZnJvbVByb3BzKHRoaXMucHJvcHMsIHVwZGF0ZU9uKTtcbiAgICB0aGlzLm5hbWUgPSB0aGlzLnByb3BzLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgR2V0IGZpZWxkIGVycm9yc1xuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGFsbCBlcnJvcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZFxuICAgKiBAcmV0dXJucyB7e2tleTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmd9W119IEFuIGFycmF5IG9mIGVycm9yIG9iamVjdHNcbiAgICovXG4gIGdldEVycm9ycygpOiB7IGtleTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVtdIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLnJlZHVjZShcbiAgICAgIChhY2N1bTogeyBrZXk6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXSwgW3Byb3AsIGNvbnRyb2xdKSA9PiB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbnRyb2wuZXJyb3JzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5mb3JFYWNoKFxuICAgICAgICAgIChbaywgY10pID0+IHtcbiAgICAgICAgICAgIGFjY3VtLnB1c2goeyBrZXk6IGssIG1lc3NhZ2U6IGsgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSxcbiAgICAgIFtdLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmd4Q3J1ZEZvcm1GaWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL05neENydWRGb3JtRmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUdMLGFBQWEsR0FDZCxNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBZ0IsZ0JBQWdCO0lBQXRDO1FBK0NFOzs7V0FHRztRQUNILE9BQUUsR0FBRyxFQUFFLENBQUM7UUFFUjs7O1dBR0c7UUFDSCxhQUFRLEdBQWtCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUVuQzs7O1dBR0c7UUFDSCxZQUFPLEdBQWtCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQTBHcEMsQ0FBQztJQXhHQzs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFpQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLEVBQWlCO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhO1FBQ1gsSUFBSSxNQUFtQixDQUFDO1FBQ3hCLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUMxQixLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDMUIsS0FBSyxhQUFhLENBQUMsTUFBTTtnQkFDdkIsSUFBSSxDQUFDO29CQUNILE1BQU0sR0FBRyxjQUFjLENBQUMsV0FBVyxDQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFDNUIsS0FBSyxDQUNOLENBQUM7Z0JBQ0osQ0FBQztnQkFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO29CQUNwQixNQUFNLElBQUksS0FBSyxDQUNiLGtEQUFrRCxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUMxRyxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsY0FBYyxDQUFDLFFBQVEsQ0FDckIsTUFBTSxDQUFDLEVBQUUsRUFDVCxJQUFJLENBQUMsU0FBUyxFQUNkLElBQThCLENBQy9CLENBQUM7Z0JBQ0YsT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUNiLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxRQUF5QjtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUztRQUNQLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FDbkQsQ0FBQyxLQUF5QyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDN0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBaUMsQ0FBQyxDQUFDLE9BQU8sQ0FDL0QsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNULEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FDRixDQUFDO1lBQ0YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLEVBQ0QsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcnVkRm9ybUZpZWxkLCBGaWVsZFByb3BlcnRpZXMgfSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5pbXBvcnQge1xuICBBbmd1bGFyRmllbGREZWZpbml0aW9uLFxuICBGaWVsZFVwZGF0ZU1vZGUsXG4gIFBvc3NpYmxlSW5wdXRUeXBlcyxcbiAgUmFkaW9PcHRpb24sXG4gIFNlbGVjdE9wdGlvbixcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBDcnVkT3BlcmF0aW9ucyxcbiAgSW50ZXJuYWxFcnJvcixcbiAgT3BlcmF0aW9uS2V5cyxcbn0gZnJvbSAnQGRlY2FmLXRzL2RiLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hGb3JtU2VydmljZSB9IGZyb20gJy4vTmd4Rm9ybVNlcnZpY2UnO1xuaW1wb3J0IHsgc2YgfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlVHlwZXMsIFNlbGVjdEludGVyZmFjZSB9IGZyb20gJ0Bpb25pYy9jb3JlJztcblxuLyoqXG4gKiBAY2xhc3MgTmd4Q3J1ZEZvcm1GaWVsZFxuICogQGltcGxlbWVudHMge0NydWRGb3JtRmllbGQ8QW5ndWxhckZpZWxkRGVmaW5pdGlvbj59XG4gKiBAaW1wbGVtZW50cyB7Q29udHJvbFZhbHVlQWNjZXNzb3J9XG4gKiBAc3VtbWFyeSBBYnN0cmFjdCBjbGFzcyByZXByZXNlbnRpbmcgYSBDUlVEIGZvcm0gZmllbGQgZm9yIEFuZ3VsYXIgYXBwbGljYXRpb25zXG4gKiBAZGVzY3JpcHRpb24gVGhpcyBjbGFzcyBwcm92aWRlcyB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBmb3IgQ1JVRCBmb3JtIGZpZWxkcyBpbiBBbmd1bGFyLFxuICogaW1wbGVtZW50aW5nIGJvdGggQ3J1ZEZvcm1GaWVsZCBhbmQgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5neENydWRGb3JtRmllbGRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRmllbGRQcm9wZXJ0aWVzXG57XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZWZlcmVuY2UgdG8gdGhlIGNvbXBvbmVudCdzIGVsZW1lbnRcbiAgICogQGRlc2NyaXB0aW9uIEVsZW1lbnRSZWYgcmVwcmVzZW50aW5nIHRoZSBjb21wb25lbnQncyBuYXRpdmUgZWxlbWVudFxuICAgKi9cbiAgY29tcG9uZW50ITogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogQHN1bW1hcnkgQ3VycmVudCBDUlVEIG9wZXJhdGlvblxuICAgKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyB0aGUgY3VycmVudCBDUlVEIG9wZXJhdGlvbiBiZWluZyBwZXJmb3JtZWRcbiAgICovXG4gIG9wZXJhdGlvbiE6IENydWRPcGVyYXRpb25zO1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBGb3JtIGdyb3VwIGZvciB0aGUgZmllbGRcbiAgICogQGRlc2NyaXB0aW9uIEFuZ3VsYXIgRm9ybUdyb3VwIGluc3RhbmNlIGZvciB0aGUgZmllbGRcbiAgICovXG4gIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcblxuICBuYW1lITogc3RyaW5nO1xuXG4gIHR5cGUhOiBQb3NzaWJsZUlucHV0VHlwZXM7XG5cbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8vIFZhbGlkYXRpb25cblxuICBmb3JtYXQ/OiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIG1heD86IG51bWJlciB8IERhdGU7XG4gIG1heGxlbmd0aD86IG51bWJlcjtcbiAgbWluPzogbnVtYmVyIHwgRGF0ZTtcbiAgbWlubGVuZ3RoPzogbnVtYmVyO1xuICBwYXR0ZXJuPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgc3RlcD86IG51bWJlcjtcblxuICB2YWx1ZSE6IHN0cmluZyB8IG51bWJlciB8IERhdGU7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBQYXJlbnQgSFRNTCBlbGVtZW50XG4gICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBIVE1MIGVsZW1lbnQgb2YgdGhlIGZpZWxkXG4gICAqL1xuICBwcm90ZWN0ZWQgcGFyZW50PzogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFN0cmluZyBmb3JtYXR0aW5nIGZ1bmN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHNmIGZ1bmN0aW9uIGZvciBlcnJvciBtZXNzYWdlIGZvcm1hdHRpbmdcbiAgICovXG4gIHNmID0gc2Y7XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IENoYW5nZSBjYWxsYmFjayBmdW5jdGlvblxuICAgKiBAZGVzY3JpcHRpb24gRnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGZpZWxkIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gIG9uQ2hhbmdlOiAoKSA9PiB1bmtub3duID0gKCkgPT4ge307XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRvdWNoIGNhbGxiYWNrIGZ1bmN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgZmllbGQgaXMgdG91Y2hlZFxuICAgKi9cbiAgb25Ub3VjaDogKCkgPT4gdW5rbm93biA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBXcml0ZSB2YWx1ZSB0byB0aGUgZmllbGRcbiAgICogQGRlc2NyaXB0aW9uIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBmaWVsZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gb2JqIC0gVGhlIHZhbHVlIHRvIGJlIHNldFxuICAgKi9cbiAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBvYmo7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmVnaXN0ZXIgY2hhbmdlIGNhbGxiYWNrXG4gICAqIEBkZXNjcmlwdGlvbiBSZWdpc3RlcnMgYSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgZmllbGQgdmFsdWUgY2hhbmdlc1xuICAgKiBAcGFyYW0geygpID0+IHVua25vd259IGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbiBjaGFuZ2VcbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmVnaXN0ZXIgdG91Y2ggY2FsbGJhY2tcbiAgICogQGRlc2NyaXB0aW9uIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBmaWVsZCBpcyB0b3VjaGVkXG4gICAqIEBwYXJhbSB7KCkgPT4gdW5rbm93bn0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIG9uIHRvdWNoXG4gICAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFNldCBkaXNhYmxlZCBzdGF0ZVxuICAgKiBAZGVzY3JpcHRpb24gU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGZpZWxkXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNEaXNhYmxlZCAtIFdoZXRoZXIgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNhYmxlZFxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEFmdGVyIHZpZXcgaW5pdGlhbGl6YXRpb24gbG9naWNcbiAgICogQGRlc2NyaXB0aW9uIFBlcmZvcm1zIG5lY2Vzc2FyeSBzZXR1cCBhZnRlciB0aGUgdmlldyBoYXMgYmVlbiBpbml0aWFsaXplZFxuICAgKiBAcmV0dXJucyB7SFRNTEVsZW1lbnR9IFRoZSBwYXJlbnQgZWxlbWVudCBvZiB0aGUgZmllbGRcbiAgICovXG4gIGFmdGVyVmlld0luaXQoKTogSFRNTEVsZW1lbnQge1xuICAgIGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50O1xuICAgIHN3aXRjaCAodGhpcy5vcGVyYXRpb24pIHtcbiAgICAgIGNhc2UgT3BlcmF0aW9uS2V5cy5DUkVBVEU6XG4gICAgICBjYXNlIE9wZXJhdGlvbktleXMuVVBEQVRFOlxuICAgICAgY2FzZSBPcGVyYXRpb25LZXlzLkRFTEVURTpcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBwYXJlbnQgPSBOZ3hGb3JtU2VydmljZS5nZXRQYXJlbnRFbChcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFVuYWJsZSB0byByZXRyaWV2ZSBwYXJlbnQgZm9ybSBlbGVtZW50IGZvciB0aGUgJHt0aGlzLm9wZXJhdGlvbn06ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZX1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgTmd4Rm9ybVNlcnZpY2UucmVnaXN0ZXIoXG4gICAgICAgICAgcGFyZW50LmlkLFxuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLFxuICAgICAgICAgIHRoaXMgYXMgQW5ndWxhckZpZWxkRGVmaW5pdGlvbixcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBvcGVyYXRpb246ICR7dGhpcy5vcGVyYXRpb259YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IENsZWFudXAgb24gY29tcG9uZW50IGRlc3RydWN0aW9uXG4gICAqIEBkZXNjcmlwdGlvbiBVbnJlZ2lzdGVycyB0aGUgZmllbGQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZFxuICAgKi9cbiAgb25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhcmVudClcbiAgICAgIE5neEZvcm1TZXJ2aWNlLnVucmVnaXN0ZXIodGhpcy5wYXJlbnQuaWQsIHRoaXMuY29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemUgdGhlIGZpZWxkXG4gICAqIEBkZXNjcmlwdGlvbiBTZXRzIHVwIHRoZSBmb3JtIGdyb3VwIGFuZCBmaWVsZCBuYW1lXG4gICAqIEBwYXJhbSB7RmllbGRVcGRhdGVNb2RlfSB1cGRhdGVPbiAtIFRoZSB1cGRhdGUgbW9kZSBmb3IgdGhlIGZpZWxkXG4gICAqL1xuICBvbkluaXQodXBkYXRlT246IEZpZWxkVXBkYXRlTW9kZSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gTmd4Rm9ybVNlcnZpY2UuZnJvbVByb3BzKHRoaXMsIHVwZGF0ZU9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBHZXQgZmllbGQgZXJyb3JzXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYWxsIGVycm9ycyBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkXG4gICAqIEByZXR1cm5zIHt7a2V5OiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZ31bXX0gQW4gYXJyYXkgb2YgZXJyb3Igb2JqZWN0c1xuICAgKi9cbiAgZ2V0RXJyb3JzKCk6IHsga2V5OiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9W10ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykucmVkdWNlKFxuICAgICAgKGFjY3VtOiB7IGtleTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVtdLCBbcHJvcCwgY29udHJvbF0pID0+IHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoY29udHJvbC5lcnJvcnMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLmZvckVhY2goXG4gICAgICAgICAgKFtrLCBjXSkgPT4ge1xuICAgICAgICAgICAgYWNjdW0ucHVzaCh7IGtleTogaywgbWVzc2FnZTogayB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICB9LFxuICAgICAgW10sXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -210,6 +210,9 @@ export class NgxFormService {
210
210
  throw new Error(`No parent with the tag ${tag} was found for provided element`);
211
211
  }
212
212
  static register(formId, control, props) {
213
+ if (formId.includes(AngularEngineKeys.RENDERED)) {
214
+ formId = formId.split(AngularEngineKeys.RENDERED)[1];
215
+ }
213
216
  this.controls[formId] = this.controls[formId] || {};
214
217
  this.controls[formId][props.name] = {
215
218
  control: control,
@@ -229,4 +232,4 @@ export class NgxFormService {
229
232
  delete this.controls[formId][field.name];
230
233
  }
231
234
  }
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmd4Rm9ybVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9OZ3hGb3JtU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUVWLGVBQWUsRUFDZixlQUFlLEVBQ2YsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBRVQsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDekI7Ozs7O09BS0c7YUFDWSxhQUFRLEdBU25CLEVBQUUsQ0FBQztJQUVQLGdFQUFnRTtJQUNoRSxnQkFBdUIsQ0FBQztJQUV4Qjs7Ozs7OztPQU9HO0lBQ0g7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQ3RCLEVBQWUsRUFDZixNQUFjLEVBQ2QsaUJBQWtDLE1BQU07UUFFeEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxpQkFBaUIsQ0FBQyxVQUFVLE9BQU8sQ0FBQztRQUMxRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUN6QixFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FDdEQsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFVLEVBQUUsRUFBRTtZQUMzQyxNQUFNLFNBQVMsR0FBSSxDQUF1RDtpQkFDdkUsVUFBVSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxNQUFNLENBQUMs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SUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUN2RCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1lBQ0QsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLDBCQUEwQixHQUFHLGlDQUFpQyxDQUMvRCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQ2IsTUFBYyxFQUNkLE9BQWtCLEVBQ2xCLEtBQStDO1FBRS9DLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDbEMsT0FBTyxFQUFFLE9BQU87WUFDaEIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFjLEVBQUUsS0FBbUI7UUFDbkQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7O1lBRXZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBRSxLQUFxQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBlc2NhcGVIdG1sLFxuICBGaWVsZFByb3BlcnRpZXMsXG4gIEhUTUw1Q2hlY2tUeXBlcyxcbiAgSFRNTDVJbnB1dFR5cGVzLFxuICBwYXJzZVRvTnVtYmVyLFxufSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBbmd1bGFyRmllbGREZWZpbml0aW9uLCBGaWVsZFVwZGF0ZU1vZGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQW5ndWxhckVuZ2luZUtleXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGb3JtRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRmFjdG9yeSB9IGZyb20gJy4vVmFsaWRhdG9yRmFjdG9yeSc7XG5cbi8qKlxuICogQHN1bW1hcnkgU2VydmljZSBmb3IgbWFuYWdpbmcgQW5ndWxhciBmb3JtcyBhbmQgZm9ybSBjb250cm9scy5cbiAqIEBkZXNjcmlwdGlvblxuICogVGhlIE5neEZvcm1TZXJ2aWNlIHByb3ZpZGVzIHV0aWxpdHkgbWV0aG9kcyBmb3IgaGFuZGxpbmcgZm9ybSBpbml0aWFsaXphdGlvbixcbiAqIHZhbGlkYXRpb24sIGRhdGEgcmV0cmlldmFsLCBhbmQgZm9ybSBjb250cm9sIG1hbmFnZW1lbnQgaW4gQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKiBJdCBvZmZlcnMgYSBjZW50cmFsaXplZCB3YXkgdG8gbWFuYWdlIGZvcm0gY29udHJvbHMsIHBlcmZvcm0gdmFsaWRhdGlvbnMsIGFuZFxuICogaGFuZGxlIGZvcm0tcmVsYXRlZCBvcGVyYXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgTmd4Rm9ybVNlcnZpY2Uge1xuICAvKipcbiAgICogQHN1bW1hcnkgU3RvcmFnZSBmb3IgZm9ybSBjb250cm9scy5cbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgc3RhdGljIG9iamVjdCB0aGF0IHN0b3JlcyBmb3JtIGNvbnRyb2xzIGluZGV4ZWQgYnkgZm9ybSBJRCBhbmQgZmllbGQgbmFtZS5cbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHsgY29udHJvbDogRm9ybUdyb3VwOyBwcm9wczogQW5ndWxhckZpZWxkRGVmaW5pdGlvbiB9Pj59XG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBjb250cm9sczogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICBSZWNvcmQ8XG4gICAgICBzdHJpbmcsXG4gICAgICB7XG4gICAgICAgIGNvbnRyb2w6IEZvcm1Hcm91cDtcbiAgICAgICAgcHJvcHM6IEFuZ3VsYXJGaWVsZERlZmluaXRpb247XG4gICAgICB9XG4gICAgPlxuICA+ID0ge307XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGZvcm0gYWZ0ZXIgdGhlIHZpZXcgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAqIFRoaXMgbWV0aG9kIHNldHMgdXAgdGhlIGZvcm0gY29udHJvbHMgYW5kIGNyZWF0ZXMgYSBGb3JtR3JvdXAuXG4gICAqXG4gICAqIEBwYXJhbSBlbCAtIFRoZSBmb3JtIGVsZW1lbnQgdG8gaW5pdGlhbGl6ZS5cbiAgICogQHBhcmFtIGZvcm1JZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGZvcm0uXG4gICAqIEBwYXJhbSBmb3JtVXBkYXRlTW9kZSAtIFRoZSB1cGRhdGUgbW9kZSBmb3IgdGhlIGZvcm0uIERlZmF1bHRzIHRvICdibHVyJy5cbiAgICovXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyB0aGUgZm9ybSBhZnRlciB2aWV3IGluaXRpYWxpemF0aW9uLlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB1cCBmb3JtIGNvbnRyb2xzIGFuZCBjcmVhdGVzIGEgRm9ybUdyb3VwIGZvciB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0Zvcm1FbGVtZW50fSBlbCAtIFRoZSBmb3JtIGVsZW1lbnQgdG8gaW5pdGlhbGl6ZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1JZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGZvcm0uXG4gICAqIEBwYXJhbSB7RmllbGRVcGRhdGVNb2RlfSBbZm9ybVVwZGF0ZU1vZGU9J2JsdXInXSAtIFRoZSB1cGRhdGUgbW9kZSBmb3IgdGhlIGZvcm0uXG4gICAqL1xuICBzdGF0aWMgZm9ybUFmdGVyVmlld0luaXQoXG4gICAgZWw6IEZvcm1FbGVtZW50LFxuICAgIGZvcm1JZDogc3RyaW5nLFxuICAgIGZvcm1VcGRhdGVNb2RlOiBGaWVsZFVwZGF0ZU1vZGUgPSAnYmx1cicsXG4gICkge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gYCpbJHtBbmd1bGFyRW5naW5lS2V5cy5OR19SRUZMRUNUfW5hbWVdYDtcbiAgICBjb25zdCBlbGVtZW50cyA9IEFycmF5LmZyb20oXG4gICAgICBlbC5jb21wb25lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSxcbiAgICApO1xuICAgIGNvbnN0IGNvbnRyb2xzID0gZWxlbWVudHMubWFwKChmOiB1bmtub3duKSA9PiB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSAoZiBhcyB7IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHsgdmFsdWU6IHN0cmluZyB9PiB9KVxuICAgICAgICAuYXR0cmlidXRlc1tgJHtBbmd1bGFyRW5naW5lS2V5cy5OR19SRUZMRUNUfW5hbWVgXS52YWx1ZTtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBOZ3hGb3JtU2VydmljZS5nZXRGaWVsZEJ5TmFtZShmb3JtSWQsIGZpZWxkTmFtZSk7XG4gICAgICByZXR1cm4gY29udHJvbC5jb250cm9sO1xuICAgIH0pO1xuICAgIGVsLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoY29udHJvbHMsIHtcbiAgICAgIHVwZGF0ZU9uOiBmb3JtVXBkYXRlTW9kZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBIYW5kbGVzIGZvcm0gY29tcG9uZW50IGRlc3RydWN0aW9uLlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVW5yZWdpc3RlcnMgdGhlIGZvcm0gZnJvbSB0aGUgc2VydmljZSB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxuICAgKlxuICAgKiBAcGFyYW0ge0Zvcm1FbGVtZW50fSBlbCAtIFRoZSBmb3JtIGVsZW1lbnQgYmVpbmcgZGVzdHJveWVkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybUlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBmb3JtIHRvIHVucmVnaXN0ZXIuXG4gICAqL1xuICBzdGF0aWMgZm9yT25EZXN0cm95KGVsOiBGb3JtRWxlbWVudCwgZm9ybUlkOiBzdHJpbmcpIHtcbiAgICBOZ3hGb3JtU2VydmljZS51bnJlZ2lzdGVyKGZvcm1JZCwgZWwuY29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyBmb3JtIGRhdGEgZm9yIGEgZ2l2ZW4gZm9ybSBJRC5cbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFByb2Nlc3NlcyBmb3JtIGNvbnRyb2xzIGFuZCByZXR1cm5zIHRoZWlyIHZhbHVlcyBhcyBhbiBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtSWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGZvcm0gdG8gcmV0cmlldmUgZGF0YSBmcm9tLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59IEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBmb3JtIGRhdGEuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZm9ybSB3aXRoIHRoZSBnaXZlbiBJRCBpcyBub3QgZm91bmQuXG4gICAqL1xuICBzdGF0aWMgZ2V0Rm9ybURhdGEoZm9ybUlkOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgaWYgKCEoZm9ybUlkIGluIHRoaXMuY29udHJvbHMpKSB0aHJvdyBuZXcgRXJyb3IoYGZvcm0gJHtmb3JtSWR9IG5vdCBmb3VuZGApO1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmNvbnRyb2xzW2Zvcm1JZF07XG4gICAgbGV0IGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgICBsZXQgdmFsOiB1bmtub3duO1xuICAgIGNvbnN0IGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZm9ybSkge1xuICAgICAgY29udHJvbCA9IGZvcm1ba2V5XS5jb250cm9sO1xuICAgICAgaWYgKCFIVE1MNUNoZWNrVHlwZXMuaW5jbHVkZXMoZm9ybVtrZXldLnByb3BzLnR5cGUpKSB7XG4gICAgICAgIHN3aXRjaCAoZm9ybVtrZXldLnByb3BzLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIEhUTUw1SW5wdXRUeXBlcy5OVU1CRVI6XG4gICAgICAgICAgICB2YWwgPSBwYXJzZVRvTnVtYmVyKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBIVE1MNUlucHV0VHlwZXMuREFURTpcbiAgICAgICAgICBjYXNlIEhUTUw1SW5wdXRUeXBlcy5EQVRFVElNRV9MT0NBTDpcbiAgICAgICAgICAgIHZhbCA9IG5ldyBEYXRlKGNvbnRyb2wudmFsdWVba2V5XSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFsID0gZXNjYXBlSHRtbChjb250cm9sLnZhbHVlW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWwgPSBjb250cm9sLnZhbHVlO1xuICAgICAgfVxuICAgICAgZGF0YVtrZXldID0gdmFsO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgZm9ybSBmaWVsZHMuXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBWYWxpZGF0ZXMgZWl0aGVyIGEgc3BlY2lmaWMgZmllbGQgb3IgYWxsIGZpZWxkcyBpbiB0aGUgZm9ybSBncm91cC5cbiAgICpcbiAgICogQHBhcmFtIHtGb3JtR3JvdXB9IGZvcm1Hcm91cCAtIFRoZSBGb3JtR3JvdXAgdG8gdmFsaWRhdGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZmllbGROYW1lXSAtIE9wdGlvbmFsIG5hbWUgb2YgYSBzcGVjaWZpYyBmaWVsZCB0byB2YWxpZGF0ZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IEluZGljYXRlcyB3aGV0aGVyIHRoZSB2YWxpZGF0aW9uIHBhc3NlZCAodHJ1ZSkgb3IgZmFpbGVkIChmYWxzZSkuXG4gICAqL1xuICBzdGF0aWMgdmFsaWRhdGVGaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZpZWxkTmFtZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGZ1bmN0aW9uIGlzVmFsaWQoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZpZWxkTmFtZTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZE5hbWUpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICByZXR1cm4gIWNvbnRyb2wuaW52YWxpZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBzaG91bGQgYmUgaW1wb3NzaWJsZScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWVsZE5hbWUpIHJldHVybiBpc1ZhbGlkKGZvcm1Hcm91cCwgZmllbGROYW1lKTtcblxuICAgIGxldCBpc1ZhbGlkRm9ybSA9IHRydWU7XG4gICAgZm9yIChjb25zdCBmZyBvZiBmb3JtR3JvdXAuY29udHJvbHMgYXMgdW5rbm93biBhcyBGb3JtR3JvdXBbXSkge1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZmcuY29udHJvbHMpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGUgPSBpc1ZhbGlkKGZnLCBrZXkpO1xuICAgICAgICBpZiAoIXZhbGlkYXRlKSBpc1ZhbGlkRm9ybSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpc1ZhbGlkRm9ybTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgRm9ybUdyb3VwIGZyb20gZmllbGQgcHJvcGVydGllcy5cbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdlbmVyYXRlcyBhIG5ldyBGb3JtR3JvdXAgaW5zdGFuY2UgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGZpZWxkIGRlZmluaXRpb24gYW5kIHVwZGF0ZSBtb2RlLlxuICAgKlxuICAgKiBAcGFyYW0ge0FuZ3VsYXJGaWVsZERlZmluaXRpb259IHByb3BzIC0gVGhlIEFuZ3VsYXIgZmllbGQgZGVmaW5pdGlvbiBwcm9wZXJ0aWVzLlxuICAgKiBAcGFyYW0ge0ZpZWxkVXBkYXRlTW9kZX0gdXBkYXRlTW9kZSAtIFRoZSB1cGRhdGUgbW9kZSBmb3IgdGhlIGZvcm0gZ3JvdXAuXG4gICAqIEByZXR1cm5zIHtGb3JtR3JvdXB9IEEgbmV3IEZvcm1Hcm91cCBpbnN0YW5jZS5cbiAgICovXG4gIHN0YXRpYyBmcm9tUHJvcHMoXG4gICAgcHJvcHM6IEFuZ3VsYXJGaWVsZERlZmluaXRpb24sXG4gICAgdXBkYXRlTW9kZTogRmllbGRVcGRhdGVNb2RlLFxuICApOiBGb3JtR3JvdXAge1xuICAgIGNvbnN0IGNvbnRyb2xzOiBSZWNvcmQ8c3RyaW5nLCBGb3JtQ29udHJvbD4gPSB7fTtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gdGhpcy52YWxpZGF0b3JzRnJvbVByb3BzKHByb3BzKTtcbiAgICBjb25zdCBjb21wb3NlZCA9IHZhbGlkYXRvcnMubGVuZ3RoID8gVmFsaWRhdG9ycy5jb21wb3NlKHZhbGlkYXRvcnMpIDogbnVsbDtcbiAgICBjb250cm9sc1twcm9wcy5uYW1lXSA9IG5ldyBGb3JtQ29udHJvbChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6XG4gICAgICAgICAgcHJvcHMudmFsdWUgJiYgcHJvcHMudHlwZSAhPT0gSFRNTDVJbnB1dFR5cGVzLkNIRUNLQk9YXG4gICAgICAgICAgICA/IHByb3BzLnZhbHVlXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgZGlzYWJsZWQ6IHByb3BzLmRpc2FibGVkLFxuICAgICAgfSxcbiAgICAgIGNvbXBvc2VkLFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChjb250cm9scywgeyB1cGRhdGVPbjogdXBkYXRlTW9kZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBmb3JtIGJ5IGl0cyBJRCBmcm9tIHRoZSBzdG9yZWQgY29udHJvbHMuXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZm9ybSB0byByZXRyaWV2ZS5cbiAgICogQHJldHVybnMgVGhlIGZvcm0gY29udHJvbHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBJRC5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgZm9ybSB3aXRoIHRoZSBnaXZlbiBJRCBpcyBub3QgZm91bmQuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXRGb3JtQnlJZChpZDogc3RyaW5nKSB7XG4gICAgaWYgKCEoaWQgaW4gTmd4Rm9ybVNlcnZpY2UuY29udHJvbHMpKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBmb3JtSWQgJHtpZH1gKTtcbiAgICByZXR1cm4gTmd4Rm9ybVNlcnZpY2UuY29udHJvbHNbaWRdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIHNwZWNpZmljIGZpZWxkIGZyb20gYSBmb3JtIGJ5IGl0cyBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gZm9ybUlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBmb3JtLlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBmaWVsZCB0byByZXRyaWV2ZS5cbiAgICogQHJldHVybnMgVGhlIGZpZWxkIGNvbnRyb2wgYW5kIHByb3BlcnRpZXMuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGZpZWxkIGlzIG5vdCBmb3VuZCBpbiB0aGUgZm9ybS5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGdldEZpZWxkQnlOYW1lKGZvcm1JZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmb3JtID0gTmd4Rm9ybVNlcnZpY2UuZ2V0Rm9ybUJ5SWQoZm9ybUlkKTtcbiAgICBpZiAoIShuYW1lIGluIGZvcm0pKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBmaWVsZCAke25hbWV9IGluIGZvcm1gKTtcbiAgICByZXR1cm4gZm9ybVtuYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYW4gYXJyYXkgb2YgdmFsaWRhdG9yIGZ1bmN0aW9ucyBmcm9tIHRoZSBwcm92aWRlZCBmaWVsZCBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgZmllbGQgcHJvcGVydGllcyBjb250YWluaW5nIHZhbGlkYXRpb24gcnVsZXMuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIFZhbGlkYXRvckZuIGluc3RhbmNlcy5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRvcnNGcm9tUHJvcHMoXG4gICAgcHJvcHM6IEZpZWxkUHJvcGVydGllcyAmIEFuZ3VsYXJGaWVsZERlZmluaXRpb24sXG4gICk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHN1cHBvcnRlZFZhbGlkYXRpb25LZXlzID0gVmFsaWRhdGlvbi5rZXlzKCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHByb3BzKVxuICAgICAgLmZpbHRlcigoazogc3RyaW5nKSA9PiBzdXBwb3J0ZWRWYWxpZGF0aW9uS2V5cy5pbmNsdWRlcyhrKSlcbiAgICAgIC5tYXAoKGs6IHN0cmluZykgPT4gVmFsaWRhdG9yRmFjdG9yeS5zcGF3bihrLCBwcm9wc1trXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBlbFxuICAgKiBAcGFyYW0gdGFnXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSB3aGVuIG5vIHBhcmVudCBleGlzdHMgd2l0aCB0aGUgcHJvdmlkZWQgdGFnXG4gICAqL1xuICBzdGF0aWMgZ2V0UGFyZW50RWwoZWw6IEhUTUxFbGVtZW50LCB0YWc6IHN0cmluZykge1xuICAgIGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICB3aGlsZSAoKHBhcmVudCA9IGVsLnBhcmVudEVsZW1lbnQpICE9PSBudWxsKSB7XG4gICAgICBpZiAocGFyZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gdGFnLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH1cbiAgICAgIGVsID0gcGFyZW50O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTm8gcGFyZW50IHdpdGggdGhlIHRhZyAke3RhZ30gd2FzIGZvdW5kIGZvciBwcm92aWRlZCBlbGVtZW50YCxcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIHJlZ2lzdGVyKFxuICAgIGZvcm1JZDogc3RyaW5nLFxuICAgIGNvbnRyb2w6IEZvcm1Hcm91cCxcbiAgICBwcm9wczogRmllbGRQcm9wZXJ0aWVzICYgQW5ndWxhckZpZWxkRGVmaW5pdGlvbixcbiAgKSB7XG4gICAgdGhpcy5jb250cm9sc1tmb3JtSWRdID0gdGhpcy5jb250cm9sc1tmb3JtSWRdIHx8IHt9O1xuICAgIHRoaXMuY29udHJvbHNbZm9ybUlkXVtwcm9wcy5uYW1lXSA9IHtcbiAgICAgIGNvbnRyb2w6IGNvbnRyb2wsXG4gICAgICBwcm9wczogcHJvcHMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVycyBhIGZvcm0gb3IgYSBzcGVjaWZpYyBmaWVsZCBmcm9tIHRoZSBzZXJ2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0gZm9ybUlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBmb3JtLlxuICAgKiBAcGFyYW0gZmllbGQgLSBPcHRpb25hbC4gVGhlIHNwZWNpZmljIGZpZWxkIHRvIHVucmVnaXN0ZXIuIElmIG5vdCBwcm92aWRlZCwgdGhlIGVudGlyZSBmb3JtIGlzIHVucmVnaXN0ZXJlZC5cbiAgICovXG4gIHN0YXRpYyB1bnJlZ2lzdGVyKGZvcm1JZDogc3RyaW5nLCBmaWVsZD86IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKCFmaWVsZCkgZGVsZXRlIHRoaXMuY29udHJvbHNbZm9ybUlkXTtcbiAgICBlbHNlXG4gICAgICBkZWxldGUgdGhpcy5jb250cm9sc1tmb3JtSWRdWyhmaWVsZCBhcyB1bmtub3duIGFzIHsgbmFtZTogc3RyaW5nIH0pLm5hbWVdO1xuICB9XG59XG4iXX0=
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmd4Rm9ybVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9OZ3hGb3JtU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUVWLGVBQWUsRUFDZixlQUFlLEVBQ2YsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBRVQsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDekI7Ozs7O09BS0c7YUFDWSxhQUFRLEdBU25CLEVBQUUsQ0FBQztJQUVQLGdFQUFnRTtJQUNoRSxnQkFBdUIsQ0FBQztJQUV4Qjs7Ozs7OztPQU9HO0lBQ0g7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQ3RCLEVBQWUsRUFDZixNQUFjLEVBQ2QsaUJBQWtDLE1BQU07UUFFeEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxpQkFBaUIsQ0FBQyxVQUFVLE9BQU8sQ0FBQztRQUMxRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUN6QixFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FDdEQsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFVLEVBQUUsRUFBRTtZQUMzQyxNQUFNLFNBQVMsR0FBSSxDQUF1RDtpQkFDdkUsVUFBVSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxNQUFNLENBQUMs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QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsMEJBQTBCLEdBQUcsaUNBQWlDLENBQy9ELENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FDYixNQUFjLEVBQ2QsT0FBa0IsRUFDbEIsS0FBNkI7UUFFN0IsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDaEQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDbEMsT0FBTyxFQUFFLE9BQU87WUFDaEIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFjLEVBQUUsS0FBbUI7UUFDbkQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7O1lBRXZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBRSxLQUFxQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBlc2NhcGVIdG1sLFxuICBGaWVsZFByb3BlcnRpZXMsXG4gIEhUTUw1Q2hlY2tUeXBlcyxcbiAgSFRNTDVJbnB1dFR5cGVzLFxuICBwYXJzZVRvTnVtYmVyLFxufSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBbmd1bGFyRmllbGREZWZpbml0aW9uLCBGaWVsZFVwZGF0ZU1vZGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbGlkYXRpb24gfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQW5ndWxhckVuZ2luZUtleXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGb3JtRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRmFjdG9yeSB9IGZyb20gJy4vVmFsaWRhdG9yRmFjdG9yeSc7XG5cbi8qKlxuICogQHN1bW1hcnkgU2VydmljZSBmb3IgbWFuYWdpbmcgQW5ndWxhciBmb3JtcyBhbmQgZm9ybSBjb250cm9scy5cbiAqIEBkZXNjcmlwdGlvblxuICogVGhlIE5neEZvcm1TZXJ2aWNlIHByb3ZpZGVzIHV0aWxpdHkgbWV0aG9kcyBmb3IgaGFuZGxpbmcgZm9ybSBpbml0aWFsaXphdGlvbixcbiAqIHZhbGlkYXRpb24sIGRhdGEgcmV0cmlldmFsLCBhbmQgZm9ybSBjb250cm9sIG1hbmFnZW1lbnQgaW4gQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKiBJdCBvZmZlcnMgYSBjZW50cmFsaXplZCB3YXkgdG8gbWFuYWdlIGZvcm0gY29udHJvbHMsIHBlcmZvcm0gdmFsaWRhdGlvbnMsIGFuZFxuICogaGFuZGxlIGZvcm0tcmVsYXRlZCBvcGVyYXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgTmd4Rm9ybVNlcnZpY2Uge1xuICAvKipcbiAgICogQHN1bW1hcnkgU3RvcmFnZSBmb3IgZm9ybSBjb250cm9scy5cbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgc3RhdGljIG9iamVjdCB0aGF0IHN0b3JlcyBmb3JtIGNvbnRyb2xzIGluZGV4ZWQgYnkgZm9ybSBJRCBhbmQgZmllbGQgbmFtZS5cbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHsgY29udHJvbDogRm9ybUdyb3VwOyBwcm9wczogQW5ndWxhckZpZWxkRGVmaW5pdGlvbiB9Pj59XG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBjb250cm9sczogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICBSZWNvcmQ8XG4gICAgICBzdHJpbmcsXG4gICAgICB7XG4gICAgICAgIGNvbnRyb2w6IEZvcm1Hcm91cDtcbiAgICAgICAgcHJvcHM6IEFuZ3VsYXJGaWVsZERlZmluaXRpb247XG4gICAgICB9XG4gICAgPlxuICA+ID0ge307XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGZvcm0gYWZ0ZXIgdGhlIHZpZXcgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAqIFRoaXMgbWV0aG9kIHNldHMgdXAgdGhlIGZvcm0gY29udHJvbHMgYW5kIGNyZWF0ZXMgYSBGb3JtR3JvdXAuXG4gICAqXG4gICAqIEBwYXJhbSBlbCAtIFRoZSBmb3JtIGVsZW1lbnQgdG8gaW5pdGlhbGl6ZS5cbiAgICogQHBhcmFtIGZvcm1JZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGZvcm0uXG4gICAqIEBwYXJhbSBmb3JtVXBkYXRlTW9kZSAtIFRoZSB1cGRhdGUgbW9kZSBmb3IgdGhlIGZvcm0uIERlZmF1bHRzIHRvICdibHVyJy5cbiAgICovXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyB0aGUgZm9ybSBhZnRlciB2aWV3IGluaXRpYWxpemF0aW9uLlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB1cCBmb3JtIGNvbnRyb2xzIGFuZCBjcmVhdGVzIGEgRm9ybUdyb3VwIGZvciB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0Zvcm1FbGVtZW50fSBlbCAtIFRoZSBmb3JtIGVsZW1lbnQgdG8gaW5pdGlhbGl6ZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZvcm1JZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGZvcm0uXG4gICAqIEBwYXJhbSB7RmllbGRVcGRhdGVNb2RlfSBbZm9ybVVwZGF0ZU1vZGU9J2JsdXInXSAtIFRoZSB1cGRhdGUgbW9kZSBmb3IgdGhlIGZvcm0uXG4gICAqL1xuICBzdGF0aWMgZm9ybUFmdGVyVmlld0luaXQoXG4gICAgZWw6IEZvcm1FbGVtZW50LFxuICAgIGZvcm1JZDogc3RyaW5nLFxuICAgIGZvcm1VcGRhdGVNb2RlOiBGaWVsZFVwZGF0ZU1vZGUgPSAnYmx1cicsXG4gICkge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gYCpbJHtBbmd1bGFyRW5naW5lS2V5cy5OR19SRUZMRUNUfW5hbWVdYDtcbiAgICBjb25zdCBlbGVtZW50cyA9IEFycmF5LmZyb20oXG4gICAgICBlbC5jb21wb25lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKSxcbiAgICApO1xuICAgIGNvbnN0IGNvbnRyb2xzID0gZWxlbWVudHMubWFwKChmOiB1bmtub3duKSA9PiB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSAoZiBhcyB7IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHsgdmFsdWU6IHN0cmluZyB9PiB9KVxuICAgICAgICAuYXR0cmlidXRlc1tgJHtBbmd1bGFyRW5naW5lS2V5cy5OR19SRUZMRUNUfW5hbWVgXS52YWx1ZTtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBOZ3hGb3JtU2VydmljZS5nZXRGaWVsZEJ5TmFtZShmb3JtSWQsIGZpZWxkTmFtZSk7XG4gICAgICByZXR1cm4gY29udHJvbC5jb250cm9sO1xuICAgIH0pO1xuICAgIGVsLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoY29udHJvbHMsIHtcbiAgICAgIHVwZGF0ZU9uOiBmb3JtVXBkYXRlTW9kZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBIYW5kbGVzIGZvcm0gY29tcG9uZW50IGRlc3RydWN0aW9uLlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVW5yZWdpc3RlcnMgdGhlIGZvcm0gZnJvbSB0aGUgc2VydmljZSB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxuICAgKlxuICAgKiBAcGFyYW0ge0Zvcm1FbGVtZW50fSBlbCAtIFRoZSBmb3JtIGVsZW1lbnQgYmVpbmcgZGVzdHJveWVkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybUlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBmb3JtIHRvIHVucmVnaXN0ZXIuXG4gICAqL1xuICBzdGF0aWMgZm9yT25EZXN0cm95KGVsOiBGb3JtRWxlbWVudCwgZm9ybUlkOiBzdHJpbmcpIHtcbiAgICBOZ3hGb3JtU2VydmljZS51bnJlZ2lzdGVyKGZvcm1JZCwgZWwuY29tcG9uZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyBmb3JtIGRhdGEgZm9yIGEgZ2l2ZW4gZm9ybSBJRC5cbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFByb2Nlc3NlcyBmb3JtIGNvbnRyb2xzIGFuZCByZXR1cm5zIHRoZWlyIHZhbHVlcyBhcyBhbiBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtSWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGZvcm0gdG8gcmV0cmlldmUgZGF0YSBmcm9tLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59IEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBmb3JtIGRhdGEuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZm9ybSB3aXRoIHRoZSBnaXZlbiBJRCBpcyBub3QgZm91bmQuXG4gICAqL1xuICBzdGF0aWMgZ2V0Rm9ybURhdGEoZm9ybUlkOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgaWYgKCEoZm9ybUlkIGluIHRoaXMuY29udHJvbHMpKSB0aHJvdyBuZXcgRXJyb3IoYGZvcm0gJHtmb3JtSWR9IG5vdCBmb3VuZGApO1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmNvbnRyb2xzW2Zvcm1JZF07XG4gICAgbGV0IGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgICBsZXQgdmFsOiB1bmtub3duO1xuICAgIGNvbnN0IGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZm9ybSkge1xuICAgICAgY29udHJvbCA9IGZvcm1ba2V5XS5jb250cm9sO1xuICAgICAgaWYgKCFIVE1MNUNoZWNrVHlwZXMuaW5jbHVkZXMoZm9ybVtrZXldLnByb3BzLnR5cGUpKSB7XG4gICAgICAgIHN3aXRjaCAoZm9ybVtrZXldLnByb3BzLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIEhUTUw1SW5wdXRUeXBlcy5OVU1CRVI6XG4gICAgICAgICAgICB2YWwgPSBwYXJzZVRvTnVtYmVyKGNvbnRyb2wudmFsdWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBIVE1MNUlucHV0VHlwZXMuREFURTpcbiAgICAgICAgICBjYXNlIEhUTUw1SW5wdXRUeXBlcy5EQVRFVElNRV9MT0NBTDpcbiAgICAgICAgICAgIHZhbCA9IG5ldyBEYXRlKGNvbnRyb2wudmFsdWVba2V5XSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdmFsID0gZXNjYXBlSHRtbChjb250cm9sLnZhbHVlW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWwgPSBjb250cm9sLnZhbHVlO1xuICAgICAgfVxuICAgICAgZGF0YVtrZXldID0gdmFsO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgZm9ybSBmaWVsZHMuXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBWYWxpZGF0ZXMgZWl0aGVyIGEgc3BlY2lmaWMgZmllbGQgb3IgYWxsIGZpZWxkcyBpbiB0aGUgZm9ybSBncm91cC5cbiAgICpcbiAgICogQHBhcmFtIHtGb3JtR3JvdXB9IGZvcm1Hcm91cCAtIFRoZSBGb3JtR3JvdXAgdG8gdmFsaWRhdGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZmllbGROYW1lXSAtIE9wdGlvbmFsIG5hbWUgb2YgYSBzcGVjaWZpYyBmaWVsZCB0byB2YWxpZGF0ZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IEluZGljYXRlcyB3aGV0aGVyIHRoZSB2YWxpZGF0aW9uIHBhc3NlZCAodHJ1ZSkgb3IgZmFpbGVkIChmYWxzZSkuXG4gICAqL1xuICBzdGF0aWMgdmFsaWRhdGVGaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZpZWxkTmFtZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGZ1bmN0aW9uIGlzVmFsaWQoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZpZWxkTmFtZTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZE5hbWUpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICByZXR1cm4gIWNvbnRyb2wuaW52YWxpZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBzaG91bGQgYmUgaW1wb3NzaWJsZScpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWVsZE5hbWUpIHJldHVybiBpc1ZhbGlkKGZvcm1Hcm91cCwgZmllbGROYW1lKTtcblxuICAgIGxldCBpc1ZhbGlkRm9ybSA9IHRydWU7XG4gICAgZm9yIChjb25zdCBmZyBvZiBmb3JtR3JvdXAuY29udHJvbHMgYXMgdW5rbm93biBhcyBGb3JtR3JvdXBbXSkge1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZmcuY29udHJvbHMpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGUgPSBpc1ZhbGlkKGZnLCBrZXkpO1xuICAgICAgICBpZiAoIXZhbGlkYXRlKSBpc1ZhbGlkRm9ybSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpc1ZhbGlkRm9ybTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgRm9ybUdyb3VwIGZyb20gZmllbGQgcHJvcGVydGllcy5cbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdlbmVyYXRlcyBhIG5ldyBGb3JtR3JvdXAgaW5zdGFuY2UgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGZpZWxkIGRlZmluaXRpb24gYW5kIHVwZGF0ZSBtb2RlLlxuICAgKlxuICAgKiBAcGFyYW0ge0FuZ3VsYXJGaWVsZERlZmluaXRpb259IHByb3BzIC0gVGhlIEFuZ3VsYXIgZmllbGQgZGVmaW5pdGlvbiBwcm9wZXJ0aWVzLlxuICAgKiBAcGFyYW0ge0ZpZWxkVXBkYXRlTW9kZX0gdXBkYXRlTW9kZSAtIFRoZSB1cGRhdGUgbW9kZSBmb3IgdGhlIGZvcm0gZ3JvdXAuXG4gICAqIEByZXR1cm5zIHtGb3JtR3JvdXB9IEEgbmV3IEZvcm1Hcm91cCBpbnN0YW5jZS5cbiAgICovXG4gIHN0YXRpYyBmcm9tUHJvcHMoXG4gICAgcHJvcHM6IEZpZWxkUHJvcGVydGllcyxcbiAgICB1cGRhdGVNb2RlOiBGaWVsZFVwZGF0ZU1vZGUsXG4gICk6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgY29udHJvbHM6IFJlY29yZDxzdHJpbmcsIEZvcm1Db250cm9sPiA9IHt9O1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLnZhbGlkYXRvcnNGcm9tUHJvcHMocHJvcHMpO1xuICAgIGNvbnN0IGNvbXBvc2VkID0gdmFsaWRhdG9ycy5sZW5ndGggPyBWYWxpZGF0b3JzLmNvbXBvc2UodmFsaWRhdG9ycykgOiBudWxsO1xuICAgIGNvbnRyb2xzW3Byb3BzLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKFxuICAgICAge1xuICAgICAgICB2YWx1ZTpcbiAgICAgICAgICBwcm9wcy52YWx1ZSAmJiBwcm9wcy50eXBlICE9PSBIVE1MNUlucHV0VHlwZXMuQ0hFQ0tCT1hcbiAgICAgICAgICAgID8gKHByb3BzLnZhbHVlIGFzIGFueSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBkaXNhYmxlZDogcHJvcHMuZGlzYWJsZWQsXG4gICAgICB9LFxuICAgICAgY29tcG9zZWQsXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGNvbnRyb2xzLCB7IHVwZGF0ZU9uOiB1cGRhdGVNb2RlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGZvcm0gYnkgaXRzIElEIGZyb20gdGhlIHN0b3JlZCBjb250cm9scy5cbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBmb3JtIHRvIHJldHJpZXZlLlxuICAgKiBAcmV0dXJucyBUaGUgZm9ybSBjb250cm9scyBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIElELlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBmb3JtIHdpdGggdGhlIGdpdmVuIElEIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGdldEZvcm1CeUlkKGlkOiBzdHJpbmcpIHtcbiAgICBpZiAoIShpZCBpbiBOZ3hGb3JtU2VydmljZS5jb250cm9scykpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGZvcm1JZCAke2lkfWApO1xuICAgIHJldHVybiBOZ3hGb3JtU2VydmljZS5jb250cm9sc1tpZF07XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgc3BlY2lmaWMgZmllbGQgZnJvbSBhIGZvcm0gYnkgaXRzIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtSWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGZvcm0uXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGZpZWxkIHRvIHJldHJpZXZlLlxuICAgKiBAcmV0dXJucyBUaGUgZmllbGQgY29udHJvbCBhbmQgcHJvcGVydGllcy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgZmllbGQgaXMgbm90IGZvdW5kIGluIHRoZSBmb3JtLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RmllbGRCeU5hbWUoZm9ybUlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGZvcm0gPSBOZ3hGb3JtU2VydmljZS5nZXRGb3JtQnlJZChmb3JtSWQpO1xuICAgIGlmICghKG5hbWUgaW4gZm9ybSkpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGZpZWxkICR7bmFtZX0gaW4gZm9ybWApO1xuICAgIHJldHVybiBmb3JtW25hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhbiBhcnJheSBvZiB2YWxpZGF0b3IgZnVuY3Rpb25zIGZyb20gdGhlIHByb3ZpZGVkIGZpZWxkIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBmaWVsZCBwcm9wZXJ0aWVzIGNvbnRhaW5pbmcgdmFsaWRhdGlvbiBydWxlcy5cbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgVmFsaWRhdG9yRm4gaW5zdGFuY2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdG9yc0Zyb21Qcm9wcyhwcm9wczogRmllbGRQcm9wZXJ0aWVzKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3Qgc3VwcG9ydGVkVmFsaWRhdGlvbktleXMgPSBWYWxpZGF0aW9uLmtleXMoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocHJvcHMpXG4gICAgICAuZmlsdGVyKChrOiBzdHJpbmcpID0+IHN1cHBvcnRlZFZhbGlkYXRpb25LZXlzLmluY2x1ZGVzKGspKVxuICAgICAgLm1hcCgoazogc3RyaW5nKSA9PlxuICAgICAgICBWYWxpZGF0b3JGYWN0b3J5LnNwYXduKGssIHByb3BzW2sgYXMga2V5b2YgRmllbGRQcm9wZXJ0aWVzXSksXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBlbFxuICAgKiBAcGFyYW0gdGFnXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSB3aGVuIG5vIHBhcmVudCBleGlzdHMgd2l0aCB0aGUgcHJvdmlkZWQgdGFnXG4gICAqL1xuICBzdGF0aWMgZ2V0UGFyZW50RWwoZWw6IEhUTUxFbGVtZW50LCB0YWc6IHN0cmluZykge1xuICAgIGxldCBwYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICB3aGlsZSAoKHBhcmVudCA9IGVsLnBhcmVudEVsZW1lbnQpICE9PSBudWxsKSB7XG4gICAgICBpZiAocGFyZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gdGFnLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH1cbiAgICAgIGVsID0gcGFyZW50O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTm8gcGFyZW50IHdpdGggdGhlIHRhZyAke3RhZ30gd2FzIGZvdW5kIGZvciBwcm92aWRlZCBlbGVtZW50YCxcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIHJlZ2lzdGVyKFxuICAgIGZvcm1JZDogc3RyaW5nLFxuICAgIGNvbnRyb2w6IEZvcm1Hcm91cCxcbiAgICBwcm9wczogQW5ndWxhckZpZWxkRGVmaW5pdGlvbixcbiAgKSB7XG4gICAgaWYgKGZvcm1JZC5pbmNsdWRlcyhBbmd1bGFyRW5naW5lS2V5cy5SRU5ERVJFRCkpIHtcbiAgICAgIGZvcm1JZCA9IGZvcm1JZC5zcGxpdChBbmd1bGFyRW5naW5lS2V5cy5SRU5ERVJFRClbMV07XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sc1tmb3JtSWRdID0gdGhpcy5jb250cm9sc1tmb3JtSWRdIHx8IHt9O1xuICAgIHRoaXMuY29udHJvbHNbZm9ybUlkXVtwcm9wcy5uYW1lXSA9IHtcbiAgICAgIGNvbnRyb2w6IGNvbnRyb2wsXG4gICAgICBwcm9wczogcHJvcHMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVycyBhIGZvcm0gb3IgYSBzcGVjaWZpYyBmaWVsZCBmcm9tIHRoZSBzZXJ2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0gZm9ybUlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBmb3JtLlxuICAgKiBAcGFyYW0gZmllbGQgLSBPcHRpb25hbC4gVGhlIHNwZWNpZmljIGZpZWxkIHRvIHVucmVnaXN0ZXIuIElmIG5vdCBwcm92aWRlZCwgdGhlIGVudGlyZSBmb3JtIGlzIHVucmVnaXN0ZXJlZC5cbiAgICovXG4gIHN0YXRpYyB1bnJlZ2lzdGVyKGZvcm1JZDogc3RyaW5nLCBmaWVsZD86IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKCFmaWVsZCkgZGVsZXRlIHRoaXMuY29udHJvbHNbZm9ybUlkXTtcbiAgICBlbHNlXG4gICAgICBkZWxldGUgdGhpcy5jb250cm9sc1tmb3JtSWRdWyhmaWVsZCBhcyB1bmtub3duIGFzIHsgbmFtZTogc3RyaW5nIH0pLm5hbWVdO1xuICB9XG59XG4iXX0=
@@ -1,24 +1,73 @@
1
1
  import { RenderingEngine } from '@decaf-ts/ui-decorators';
2
2
  import { AngularEngineKeys } from './constants';
3
3
  import { InternalError } from '@decaf-ts/db-decorators';
4
+ import { reflectComponentType, } from '@angular/core';
4
5
  export class NgxRenderingEngine extends RenderingEngine {
5
6
  constructor() {
6
7
  super('angular');
7
8
  }
9
+ fromFieldDefinition(fieldDef, vcr, injector, tpl) {
10
+ const component = NgxRenderingEngine.components(fieldDef.tag)
11
+ .constructor;
12
+ const componentMetadata = reflectComponentType(component);
13
+ if (!componentMetadata) {
14
+ throw new InternalError(`Metadata for component ${fieldDef.tag} not found.`);
15
+ }
16
+ const inputs = fieldDef.props;
17
+ const possibleInputs = componentMetadata.inputs;
18
+ const inputKeys = Object.keys(inputs);
19
+ for (let input of possibleInputs) {
20
+ const index = inputKeys.indexOf(input.propName);
21
+ if (index !== -1) {
22
+ inputKeys.splice(index, 1);
23
+ }
24
+ if (!inputKeys.length)
25
+ break;
26
+ }
27
+ if (inputKeys.length)
28
+ console.warn(`Unmapped input properties for component ${fieldDef.tag}: ${inputKeys.join(', ')}`);
29
+ const result = {
30
+ component: component,
31
+ inputs: inputs || {},
32
+ injector: injector,
33
+ };
34
+ if (fieldDef.rendererId) {
35
+ result.inputs['rendererId'] =
36
+ fieldDef.rendererId;
37
+ }
38
+ if (fieldDef.children && fieldDef.children.length) {
39
+ result.children = fieldDef.children.map((child) => {
40
+ return this.fromFieldDefinition(child, vcr, injector, tpl);
41
+ });
42
+ const template = vcr.createEmbeddedView(tpl, injector).rootNodes;
43
+ result.content = [template];
44
+ }
45
+ return result;
46
+ }
47
+ render(model, globalProps, vcr, injector, tpl) {
48
+ let result;
49
+ try {
50
+ const fieldDef = this.toFieldDefinition(model, globalProps);
51
+ result = this.fromFieldDefinition(fieldDef, vcr, injector, tpl);
52
+ }
53
+ catch (e) {
54
+ throw new InternalError(`Failed to render Model ${model.constructor.name}: ${e}`);
55
+ }
56
+ return result;
57
+ }
8
58
  async initialize(...args) {
9
59
  if (this.initialized)
10
60
  return;
11
61
  // ValidatableByType[]
12
62
  this.initialized = true;
13
63
  }
14
- static registerComponent(name, constructor, metadata) {
64
+ static registerComponent(name, constructor) {
15
65
  if (!this._components)
16
66
  this._components = {};
17
67
  if (name in this._components)
18
68
  throw new InternalError(`Component already registered under ${name}`);
19
69
  this._components[name] = {
20
70
  constructor: constructor,
21
- metadata: metadata,
22
71
  };
23
72
  }
24
73
  static components(selector) {
@@ -32,4 +81,4 @@ export class NgxRenderingEngine extends RenderingEngine {
32
81
  return `${AngularEngineKeys.REFLECT}${key}`;
33
82
  }
34
83
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmd4UmVuZGVyaW5nRW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvTmd4UmVuZGVyaW5nRW5naW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUF1QztJQU03RTtRQUNFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRVEsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQVc7UUFDdEMsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU87UUFDN0Isc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQ3RCLElBQVksRUFDWixXQUFpQyxFQUNqQyxRQUEyQjtRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVztZQUMxQixNQUFNLElBQUksYUFBYSxDQUFDLHNDQUFzQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDdkIsV0FBVyxFQUFFLFdBQVc7WUFDeEIsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQWlCO1FBQ2pDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNqQyxNQUFNLElBQUksYUFBYSxDQUFDLGlDQUFpQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsTUFBTSxDQUFVLEdBQUcsQ0FBQyxHQUFXO1FBQzdCLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVuZGVyaW5nRW5naW5lIH0gZnJvbSAnQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgQW5ndWxhckZpZWxkRGVmaW5pdGlvbiwgQ29tcG9uZW50TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFuZ3VsYXJFbmdpbmVLZXlzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gJ0BkZWNhZi10cy9kYi1kZWNvcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIE5neFJlbmRlcmluZ0VuZ2luZSBleHRlbmRzIFJlbmRlcmluZ0VuZ2luZTxBbmd1bGFyRmllbGREZWZpbml0aW9uPiB7XG4gIHByaXZhdGUgc3RhdGljIF9jb21wb25lbnRzOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHsgY29uc3RydWN0b3I6IENvbnN0cnVjdG9yPHVua25vd24+OyBtZXRhZGF0YTogQ29tcG9uZW50TWV0YWRhdGEgfVxuICA+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdhbmd1bGFyJyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgICAvLyBWYWxpZGF0YWJsZUJ5VHlwZVtdXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBzdGF0aWMgcmVnaXN0ZXJDb21wb25lbnQoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNvbnN0cnVjdG9yOiBDb25zdHJ1Y3Rvcjx1bmtub3duPixcbiAgICBtZXRhZGF0YTogQ29tcG9uZW50TWV0YWRhdGEsXG4gICkge1xuICAgIGlmICghdGhpcy5fY29tcG9uZW50cykgdGhpcy5fY29tcG9uZW50cyA9IHt9O1xuICAgIGlmIChuYW1lIGluIHRoaXMuX2NvbXBvbmVudHMpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgQ29tcG9uZW50IGFscmVhZHkgcmVnaXN0ZXJlZCB1bmRlciAke25hbWV9YCk7XG4gICAgdGhpcy5fY29tcG9uZW50c1tuYW1lXSA9IHtcbiAgICAgIGNvbnN0cnVjdG9yOiBjb25zdHJ1Y3RvcixcbiAgICAgIG1ldGFkYXRhOiBtZXRhZGF0YSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGNvbXBvbmVudHMoc2VsZWN0b3I/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXNlbGVjdG9yKSByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLl9jb21wb25lbnRzKTtcbiAgICBpZiAoIShzZWxlY3RvciBpbiB0aGlzLl9jb21wb25lbnRzKSlcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBDb21wb25lbnQgcmVnaXN0ZXJlZCB1bmRlciAke3NlbGVjdG9yfWApO1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRzW3NlbGVjdG9yXTtcbiAgfVxuXG4gIHN0YXRpYyBvdmVycmlkZSBrZXkoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7QW5ndWxhckVuZ2luZUtleXMuUkVGTEVDVH0ke2tleX1gO1xuICB9XG59XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmd4UmVuZGVyaW5nRW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvTmd4UmVuZGVyaW5nRW5naW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBRUwsb0JBQW9CLEdBSXJCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUd2QztJQU1DO1FBQ0UsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFTyxtQkFBbUIsQ0FDekIsUUFBaUQsRUFDakQsR0FBcUIsRUFDckIsUUFBa0IsRUFDbEIsR0FBcUI7UUFFckIsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7YUFDMUQsV0FBdUMsQ0FBQztRQUUzQyxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxhQUFhLENBQ3JCLDBCQUEwQixRQUFRLENBQUMsR0FBRyxhQUFhLENBQ3BELENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUU5QixNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7UUFDaEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxLQUFLLElBQUksS0FBSyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07Z0JBQUUsTUFBTTtRQUMvQixDQUFDO1FBRUQsSUFBSSxTQUFTLENBQUMsTUFBTTtZQUNsQixPQUFPLENBQUMsSUFBSSxDQUNWLDJDQUEyQyxRQUFRLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbkYsQ0FBQztRQUVKLE1BQU0sTUFBTSxHQUF5QjtZQUNuQyxTQUFTLEVBQUUsU0FBUztZQUNwQixNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUU7WUFDcEIsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQztRQUVGLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxNQUE4QixDQUFDLFlBQVksQ0FBQztnQkFDbEQsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEQsTUFBTSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNoRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2pFLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVRLE1BQU0sQ0FDYixLQUFRLEVBQ1IsV0FBb0MsRUFDcEMsR0FBcUIsRUFDckIsUUFBa0IsRUFDbEIsR0FBcUI7UUFFckIsSUFBSSxNQUE0QixDQUFDO1FBQ2pDLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDNUQsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksYUFBYSxDQUNyQiwwQkFBMEIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQ3pELENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVRLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFXO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBQzdCLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQVksRUFBRSxXQUFpQztRQUN0RSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVztZQUMxQixNQUFNLElBQUksYUFBYSxDQUFDLHNDQUFzQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDdkIsV0FBVyxFQUFFLFdBQVc7U0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQWlCO1FBQ2pDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNqQyxNQUFNLElBQUksYUFBYSxDQUFDLGlDQUFpQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsTUFBTSxDQUFVLEdBQUcsQ0FBQyxHQUFXO1FBQzdCLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGREZWZpbml0aW9uLCBSZW5kZXJpbmdFbmdpbmUgfSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBbmd1bGFyRHluYW1pY091dHB1dCwgQW5ndWxhckZpZWxkRGVmaW5pdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQW5ndWxhckVuZ2luZUtleXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciwgTW9kZWwgfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gJ0BkZWNhZi10cy9kYi1kZWNvcmF0b3JzJztcbmltcG9ydCB7XG4gIEluamVjdG9yLFxuICByZWZsZWN0Q29tcG9uZW50VHlwZSxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgTmd4UmVuZGVyaW5nRW5naW5lIGV4dGVuZHMgUmVuZGVyaW5nRW5naW5lPFxuICBBbmd1bGFyRmllbGREZWZpbml0aW9uLFxuICBBbmd1bGFyRHluYW1pY091dHB1dFxuPiB7XG4gIHByaXZhdGUgc3RhdGljIF9jb21wb25lbnRzOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHsgY29uc3RydWN0b3I6IENvbnN0cnVjdG9yPHVua25vd24+IH1cbiAgPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignYW5ndWxhcicpO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tRmllbGREZWZpbml0aW9uKFxuICAgIGZpZWxkRGVmOiBGaWVsZERlZmluaXRpb248QW5ndWxhckZpZWxkRGVmaW5pdGlvbj4sXG4gICAgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICB0cGw6IFRlbXBsYXRlUmVmPGFueT4sXG4gICk6IEFuZ3VsYXJEeW5hbWljT3V0cHV0IHtcbiAgICBjb25zdCBjb21wb25lbnQgPSBOZ3hSZW5kZXJpbmdFbmdpbmUuY29tcG9uZW50cyhmaWVsZERlZi50YWcpXG4gICAgICAuY29uc3RydWN0b3IgYXMgdW5rbm93biBhcyBUeXBlPHVua25vd24+O1xuXG4gICAgY29uc3QgY29tcG9uZW50TWV0YWRhdGEgPSByZWZsZWN0Q29tcG9uZW50VHlwZShjb21wb25lbnQpO1xuICAgIGlmICghY29tcG9uZW50TWV0YWRhdGEpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgTWV0YWRhdGEgZm9yIGNvbXBvbmVudCAke2ZpZWxkRGVmLnRhZ30gbm90IGZvdW5kLmAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBpbnB1dHMgPSBmaWVsZERlZi5wcm9wcztcblxuICAgIGNvbnN0IHBvc3NpYmxlSW5wdXRzID0gY29tcG9uZW50TWV0YWRhdGEuaW5wdXRzO1xuICAgIGNvbnN0IGlucHV0S2V5cyA9IE9iamVjdC5rZXlzKGlucHV0cyk7XG4gICAgZm9yIChsZXQgaW5wdXQgb2YgcG9zc2libGVJbnB1dHMpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gaW5wdXRLZXlzLmluZGV4T2YoaW5wdXQucHJvcE5hbWUpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBpbnB1dEtleXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICAgIGlmICghaW5wdXRLZXlzLmxlbmd0aCkgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGlucHV0S2V5cy5sZW5ndGgpXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBVbm1hcHBlZCBpbnB1dCBwcm9wZXJ0aWVzIGZvciBjb21wb25lbnQgJHtmaWVsZERlZi50YWd9OiAke2lucHV0S2V5cy5qb2luKCcsICcpfWAsXG4gICAgICApO1xuXG4gICAgY29uc3QgcmVzdWx0OiBBbmd1bGFyRHluYW1pY091dHB1dCA9IHtcbiAgICAgIGNvbXBvbmVudDogY29tcG9uZW50LFxuICAgICAgaW5wdXRzOiBpbnB1dHMgfHwge30sXG4gICAgICBpbmplY3RvcjogaW5qZWN0b3IsXG4gICAgfTtcblxuICAgIGlmIChmaWVsZERlZi5yZW5kZXJlcklkKSB7XG4gICAgICAocmVzdWx0LmlucHV0cyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVsncmVuZGVyZXJJZCddID1cbiAgICAgICAgZmllbGREZWYucmVuZGVyZXJJZDtcbiAgICB9XG5cbiAgICBpZiAoZmllbGREZWYuY2hpbGRyZW4gJiYgZmllbGREZWYuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICByZXN1bHQuY2hpbGRyZW4gPSBmaWVsZERlZi5jaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb21GaWVsZERlZmluaXRpb24oY2hpbGQsIHZjciwgaW5qZWN0b3IsIHRwbCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgdGVtcGxhdGUgPSB2Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRwbCwgaW5qZWN0b3IpLnJvb3ROb2RlcztcbiAgICAgIHJlc3VsdC5jb250ZW50ID0gW3RlbXBsYXRlXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgb3ZlcnJpZGUgcmVuZGVyPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgbW9kZWw6IE0sXG4gICAgZ2xvYmFsUHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgdHBsOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICApOiBBbmd1bGFyRHluYW1pY091dHB1dCB7XG4gICAgbGV0IHJlc3VsdDogQW5ndWxhckR5bmFtaWNPdXRwdXQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZpZWxkRGVmID0gdGhpcy50b0ZpZWxkRGVmaW5pdGlvbihtb2RlbCwgZ2xvYmFsUHJvcHMpO1xuICAgICAgcmVzdWx0ID0gdGhpcy5mcm9tRmllbGREZWZpbml0aW9uKGZpZWxkRGVmLCB2Y3IsIGluamVjdG9yLCB0cGwpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHJlbmRlciBNb2RlbCAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9OiAke2V9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGluaXRpYWxpemUoLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCkgcmV0dXJuO1xuICAgIC8vIFZhbGlkYXRhYmxlQnlUeXBlW11cbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyByZWdpc3RlckNvbXBvbmVudChuYW1lOiBzdHJpbmcsIGNvbnN0cnVjdG9yOiBDb25zdHJ1Y3Rvcjx1bmtub3duPikge1xuICAgIGlmICghdGhpcy5fY29tcG9uZW50cykgdGhpcy5fY29tcG9uZW50cyA9IHt9O1xuICAgIGlmIChuYW1lIGluIHRoaXMuX2NvbXBvbmVudHMpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgQ29tcG9uZW50IGFscmVhZHkgcmVnaXN0ZXJlZCB1bmRlciAke25hbWV9YCk7XG4gICAgdGhpcy5fY29tcG9uZW50c1tuYW1lXSA9IHtcbiAgICAgIGNvbnN0cnVjdG9yOiBjb25zdHJ1Y3RvcixcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGNvbXBvbmVudHMoc2VsZWN0b3I/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXNlbGVjdG9yKSByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLl9jb21wb25lbnRzKTtcbiAgICBpZiAoIShzZWxlY3RvciBpbiB0aGlzLl9jb21wb25lbnRzKSlcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBDb21wb25lbnQgcmVnaXN0ZXJlZCB1bmRlciAke3NlbGVjdG9yfWApO1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRzW3NlbGVjdG9yXTtcbiAgfVxuXG4gIHN0YXRpYyBvdmVycmlkZSBrZXkoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7QW5ndWxhckVuZ2luZUtleXMuUkVGTEVDVH0ke2tleX1gO1xuICB9XG59XG4iXX0=
@@ -3,10 +3,13 @@ export const AngularEngineKeys = {
3
3
  REFLECT: `${UIKeys.REFLECT}.angular.`,
4
4
  DYNAMIC: 'dynamic-component',
5
5
  ANNOTATIONS: '__annotations__',
6
+ ECMP: 'ecmp',
6
7
  NG_REFLECT: 'ng-reflect-',
8
+ RENDERED: 'rendered-as-',
9
+ RENDERED_ID: 'rendered-as-{0}',
7
10
  };
8
11
  export const FormConstants = {
9
12
  VALID: 'VALID',
10
13
  INVALID: 'INVALID',
11
14
  };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsT0FBTyxXQUFXO0lBQ3JDLE9BQU8sRUFBRSxtQkFBbUI7SUFDNUIsV0FBVyxFQUFFLGlCQUFpQjtJQUM5QixVQUFVLEVBQUUsYUFBYTtDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLEtBQUssRUFBRSxPQUFPO0lBQ2QsT0FBTyxFQUFFLFNBQVM7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVJS2V5cyB9IGZyb20gJ0BkZWNhZi10cy91aS1kZWNvcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IEFuZ3VsYXJFbmdpbmVLZXlzID0ge1xuICBSRUZMRUNUOiBgJHtVSUtleXMuUkVGTEVDVH0uYW5ndWxhci5gLFxuICBEWU5BTUlDOiAnZHluYW1pYy1jb21wb25lbnQnLFxuICBBTk5PVEFUSU9OUzogJ19fYW5ub3RhdGlvbnNfXycsXG4gIE5HX1JFRkxFQ1Q6ICduZy1yZWZsZWN0LScsXG59O1xuXG5leHBvcnQgY29uc3QgRm9ybUNvbnN0YW50cyA9IHtcbiAgVkFMSUQ6ICdWQUxJRCcsXG4gIElOVkFMSUQ6ICdJTlZBTElEJyxcbn07XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsT0FBTyxXQUFXO0lBQ3JDLE9BQU8sRUFBRSxtQkFBbUI7SUFDNUIsV0FBVyxFQUFFLGlCQUFpQjtJQUM5QixJQUFJLEVBQUUsTUFBTTtJQUNaLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLFFBQVEsRUFBRSxjQUFjO0lBQ3hCLFdBQVcsRUFBRSxpQkFBaUI7Q0FDL0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxTQUFTO0NBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVSUtleXMgfSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBBbmd1bGFyRW5naW5lS2V5cyA9IHtcbiAgUkVGTEVDVDogYCR7VUlLZXlzLlJFRkxFQ1R9LmFuZ3VsYXIuYCxcbiAgRFlOQU1JQzogJ2R5bmFtaWMtY29tcG9uZW50JyxcbiAgQU5OT1RBVElPTlM6ICdfX2Fubm90YXRpb25zX18nLFxuICBFQ01QOiAnZWNtcCcsXG4gIE5HX1JFRkxFQ1Q6ICduZy1yZWZsZWN0LScsXG4gIFJFTkRFUkVEOiAncmVuZGVyZWQtYXMtJyxcbiAgUkVOREVSRURfSUQ6ICdyZW5kZXJlZC1hcy17MH0nLFxufTtcblxuZXhwb3J0IGNvbnN0IEZvcm1Db25zdGFudHMgPSB7XG4gIFZBTElEOiAnVkFMSUQnLFxuICBJTlZBTElEOiAnSU5WQUxJRCcsXG59O1xuIl19
@@ -2,16 +2,13 @@ import { apply, metadata } from '@decaf-ts/reflection';
2
2
  import { NgxRenderingEngine } from './NgxRenderingEngine';
3
3
  import { AngularEngineKeys } from './constants';
4
4
  import { InternalError } from '@decaf-ts/db-decorators';
5
+ import { reflectComponentType } from '@angular/core';
5
6
  export function Dynamic() {
6
7
  return apply((original) => {
7
- const annotation = Object.getOwnPropertyDescriptor(original, AngularEngineKeys.ANNOTATIONS);
8
- if (!annotation || !annotation.value)
8
+ const metadata = reflectComponentType(original);
9
+ if (!metadata)
9
10
  throw new InternalError(`Could not find Component metadata. @Dynamic decorator must come above @Component`);
10
- // console.log(
11
- // `Could not find Component metadata. @Dynamic decorator must come above @Component`,
12
- // );
13
- const decorator = annotation.value[0];
14
- NgxRenderingEngine.registerComponent(decorator.selector, original, decorator);
11
+ NgxRenderingEngine.registerComponent(metadata.selector, original);
15
12
  }, metadata(NgxRenderingEngine.key(AngularEngineKeys.DYNAMIC), true));
16
13
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3hELE1BQU0sVUFBVSxPQUFPO0lBQ3JCLE9BQU8sS0FBSyxDQUNWLENBQUMsUUFBZ0IsRUFBRSxFQUFFO1FBQ25CLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FDaEQsUUFBUSxFQUNSLGlCQUFpQixDQUFDLFdBQVcsQ0FDOUIsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSztZQUNsQyxNQUFNLElBQUksYUFBYSxDQUNyQixrRkFBa0YsQ0FDbkYsQ0FBQztRQUNKLGVBQWU7UUFDZix3RkFBd0Y7UUFDeEYsS0FBSztRQUNMLE1BQU0sU0FBUyxHQUFzQixVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELGtCQUFrQixDQUFDLGlCQUFpQixDQUNsQyxTQUFTLENBQUMsUUFBUSxFQUNsQixRQUEyQyxFQUMzQyxTQUFTLENBQ1YsQ0FBQztJQUNKLENBQUMsRUFDRCxRQUFRLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUNsRSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGx5LCBtZXRhZGF0YSB9IGZyb20gJ0BkZWNhZi10cy9yZWZsZWN0aW9uJztcbmltcG9ydCB7IE5neFJlbmRlcmluZ0VuZ2luZSB9IGZyb20gJy4vTmd4UmVuZGVyaW5nRW5naW5lJztcbmltcG9ydCB7IEFuZ3VsYXJFbmdpbmVLZXlzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gJ0BkZWNhZi10cy9kYi1kZWNvcmF0b3JzJztcbmltcG9ydCB7IENvbXBvbmVudE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBEeW5hbWljKCkge1xuICByZXR1cm4gYXBwbHkoXG4gICAgKG9yaWdpbmFsOiBvYmplY3QpID0+IHtcbiAgICAgIGNvbnN0IGFubm90YXRpb24gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxuICAgICAgICBvcmlnaW5hbCxcbiAgICAgICAgQW5ndWxhckVuZ2luZUtleXMuQU5OT1RBVElPTlMsXG4gICAgICApO1xuICAgICAgaWYgKCFhbm5vdGF0aW9uIHx8ICFhbm5vdGF0aW9uLnZhbHVlKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgQ291bGQgbm90IGZpbmQgQ29tcG9uZW50IG1ldGFkYXRhLiBARHluYW1pYyBkZWNvcmF0b3IgbXVzdCBjb21lIGFib3ZlIEBDb21wb25lbnRgLFxuICAgICAgICApO1xuICAgICAgLy8gY29uc29sZS5sb2coXG4gICAgICAvLyAgIGBDb3VsZCBub3QgZmluZCBDb21wb25lbnQgbWV0YWRhdGEuIEBEeW5hbWljIGRlY29yYXRvciBtdXN0IGNvbWUgYWJvdmUgQENvbXBvbmVudGAsXG4gICAgICAvLyApO1xuICAgICAgY29uc3QgZGVjb3JhdG9yOiBDb21wb25lbnRNZXRhZGF0YSA9IGFubm90YXRpb24udmFsdWVbMF07XG4gICAgICBOZ3hSZW5kZXJpbmdFbmdpbmUucmVnaXN0ZXJDb21wb25lbnQoXG4gICAgICAgIGRlY29yYXRvci5zZWxlY3RvcixcbiAgICAgICAgb3JpZ2luYWwgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3Rvcjx1bmtub3duPixcbiAgICAgICAgZGVjb3JhdG9yLFxuICAgICAgKTtcbiAgICB9LFxuICAgIG1ldGFkYXRhKE5neFJlbmRlcmluZ0VuZ2luZS5rZXkoQW5ndWxhckVuZ2luZUtleXMuRFlOQU1JQyksIHRydWUpLFxuICApO1xufVxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxNQUFNLFVBQVUsT0FBTztJQUNyQixPQUFPLEtBQUssQ0FDVixDQUFDLFFBQWdCLEVBQUUsRUFBRTtRQUNuQixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxRQUF5QixDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFFBQVE7WUFDWCxNQUFNLElBQUksYUFBYSxDQUNyQixrRkFBa0YsQ0FDbkYsQ0FBQztRQUVKLGtCQUFrQixDQUFDLGlCQUFpQixDQUNsQyxRQUFRLENBQUMsUUFBUSxFQUNqQixRQUEyQyxDQUM1QyxDQUFDO0lBQ0osQ0FBQyxFQUNELFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQ2xFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXBwbHksIG1ldGFkYXRhIH0gZnJvbSAnQGRlY2FmLXRzL3JlZmxlY3Rpb24nO1xuaW1wb3J0IHsgTmd4UmVuZGVyaW5nRW5naW5lIH0gZnJvbSAnLi9OZ3hSZW5kZXJpbmdFbmdpbmUnO1xuaW1wb3J0IHsgQW5ndWxhckVuZ2luZUtleXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gJ0BkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSAnQGRlY2FmLXRzL2RiLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHJlZmxlY3RDb21wb25lbnRUeXBlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBEeW5hbWljKCkge1xuICByZXR1cm4gYXBwbHkoXG4gICAgKG9yaWdpbmFsOiBvYmplY3QpID0+IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gcmVmbGVjdENvbXBvbmVudFR5cGUob3JpZ2luYWwgYXMgVHlwZTx1bmtub3duPik7XG5cbiAgICAgIGlmICghbWV0YWRhdGEpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBDb3VsZCBub3QgZmluZCBDb21wb25lbnQgbWV0YWRhdGEuIEBEeW5hbWljIGRlY29yYXRvciBtdXN0IGNvbWUgYWJvdmUgQENvbXBvbmVudGAsXG4gICAgICAgICk7XG5cbiAgICAgIE5neFJlbmRlcmluZ0VuZ2luZS5yZWdpc3RlckNvbXBvbmVudChcbiAgICAgICAgbWV0YWRhdGEuc2VsZWN0b3IsXG4gICAgICAgIG9yaWdpbmFsIGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8dW5rbm93bj4sXG4gICAgICApO1xuICAgIH0sXG4gICAgbWV0YWRhdGEoTmd4UmVuZGVyaW5nRW5naW5lLmtleShBbmd1bGFyRW5naW5lS2V5cy5EWU5BTUlDKSwgdHJ1ZSksXG4gICk7XG59XG4iXX0=
File without changes
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRQcm9wZXJ0aWVzIH0gZnJvbSAnQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgSW9uQ2hlY2tib3gsIElvbklucHV0LCBJb25TZWxlY3QsIElvblRleHRhcmVhIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgVGV4dEZpZWxkVHlwZXMgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEZpZWxkVXBkYXRlTW9kZSA9ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ3N1Ym1pdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50TWV0YWRhdGEge1xuICBjaGFuZ2VEZXRlY3Rpb246IG51bWJlcjtcbiAgc2VsZWN0b3I6IHN0cmluZztcbiAgc3RhbmRhbG9uZTogYm9vbGVhbjtcbiAgaW1wb3J0czogKG5ldyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duKVtdO1xuICB0ZW1wbGF0ZTogc3RyaW5nO1xuICBzdHlsZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBBbmd1bGFyRmllbGREZWZpbml0aW9uID0gRmllbGRQcm9wZXJ0aWVzICZcbiAgT21pdDxcbiAgICBJb25JbnB1dCxcbiAgICB8ICdpb25JbnB1dCdcbiAgICB8ICdpb25Gb2N1cydcbiAgICB8ICdpb25DaGFuZ2UnXG4gICAgfCAnaW9uQmx1cidcbiAgICB8ICdnZXRJbnB1dEVsZW1lbnQnXG4gICAgfCAnc2V0Rm9jdXMnXG4gICAgfCAnbGFiZWwnXG4gICAgfCAnZWwnXG4gICAgfCAneidcbiAgICB8ICd0eXBlJ1xuICA+ICZcbiAgUGljazxcbiAgICBJb25TZWxlY3QsXG4gICAgJ2NhbmNlbFRleHQnIHwgJ2ludGVyZmFjZScgfCAnc2VsZWN0ZWRUZXh0JyB8ICdpbnRlcmZhY2VPcHRpb25zJ1xuICA+ICZcbiAgUGljazxJb25UZXh0YXJlYSwgJ3Jvd3MnIHwgJ2NvbHMnPiAmXG4gIFBpY2s8SW9uQ2hlY2tib3gsICdhbGlnbm1lbnQnIHwgJ2p1c3RpZnknIHwgJ2NoZWNrZWQnPiAmIHtcbiAgICB0eXBlOiAnY2hlY2tib3gnIHwgJ3JhZGlvJyB8ICdzZWxlY3QnIHwgVGV4dEZpZWxkVHlwZXMgfCAndGV4dGFyZWEnO1xuICAgIGNsYXNzTmFtZTogc3RyaW5nIHwgc3RyaW5nW107XG4gIH0gJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgU3RyaW5nT3JCb29sZWFuID0gJ3RydWUnIHwgJ2ZhbHNlJyB8IGJvb2xlYW47XG5cbmV4cG9ydCB0eXBlIFNlbGVjdE9wdGlvbiA9IElucHV0T3B0aW9uICYgeyBzZWxlY3RlZD86IGJvb2xlYW4gfTtcbmV4cG9ydCB0eXBlIENoZWNrYm94T3B0aW9uID0gUmFkaW9PcHRpb247XG5leHBvcnQgdHlwZSBSYWRpb09wdGlvbiA9IElucHV0T3B0aW9uICYgeyBjaGVja2VkPzogYm9vbGVhbiB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIElucHV0T3B0aW9uIHtcbiAgdGV4dDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICBkaXNhYmxlZD86IFN0cmluZ09yQm9vbGVhbjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBIVE1MRm9ybVRhcmdldCA9ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJyB8IHN0cmluZztcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW9uQ2hlY2tib3gsIElvbklucHV0LCBJb25TZWxlY3QsIElvblRleHRhcmVhIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgVGV4dEZpZWxkVHlwZXMgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBGaWVsZFVwZGF0ZU1vZGUgPSAnY2hhbmdlJyB8ICdibHVyJyB8ICdzdWJtaXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudE1ldGFkYXRhIHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBudW1iZXI7XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIHN0YW5kYWxvbmU6IGJvb2xlYW47XG4gIGltcG9ydHM6IChuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bilbXTtcbiAgdGVtcGxhdGU6IHN0cmluZztcbiAgc3R5bGVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IHR5cGUgQW5ndWxhckR5bmFtaWNPdXRwdXQgPSB7XG4gIGNvbXBvbmVudDogVHlwZTx1bmtub3duPjtcbiAgcmVuZGVyZXJJZD86IHN0cmluZztcbiAgaW5wdXRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGluamVjdG9yPzogSW5qZWN0b3I7XG4gIGNvbnRlbnQ/OiBOb2RlW11bXTtcbiAgY2hpbGRyZW4/OiBBbmd1bGFyRHluYW1pY091dHB1dFtdO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJlZE1vZGVsIHtcbiAgcmVuZGVyZXJJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUG9zc2libGVJbnB1dFR5cGVzID1cbiAgfCAnY2hlY2tib3gnXG4gIHwgJ3JhZGlvJ1xuICB8ICdzZWxlY3QnXG4gIHwgVGV4dEZpZWxkVHlwZXNcbiAgfCAndGV4dGFyZWEnO1xuXG5leHBvcnQgdHlwZSBBbmd1bGFyRmllbGREZWZpbml0aW9uID0gT21pdDxcbiAgSW9uSW5wdXQsXG4gIHwgJ2lvbklucHV0J1xuICB8ICdpb25Gb2N1cydcbiAgfCAnaW9uQ2hhbmdlJ1xuICB8ICdpb25CbHVyJ1xuICB8ICdnZXRJbnB1dEVsZW1lbnQnXG4gIHwgJ3NldEZvY3VzJ1xuICB8ICdsYWJlbCdcbiAgfCAnZWwnXG4gIHwgJ3onXG4gIHwgJ3R5cGUnXG4+ICZcbiAgUGljazxcbiAgICBJb25TZWxlY3QsXG4gICAgJ2NhbmNlbFRleHQnIHwgJ2ludGVyZmFjZScgfCAnc2VsZWN0ZWRUZXh0JyB8ICdpbnRlcmZhY2VPcHRpb25zJ1xuICA+ICZcbiAgUGljazxJb25UZXh0YXJlYSwgJ3Jvd3MnIHwgJ2NvbHMnPiAmXG4gIFBpY2s8SW9uQ2hlY2tib3gsICdhbGlnbm1lbnQnIHwgJ2p1c3RpZnknIHwgJ2NoZWNrZWQnPiAmIHtcbiAgICB0eXBlOiBQb3NzaWJsZUlucHV0VHlwZXM7XG4gICAgY2xhc3NOYW1lOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgfSAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgdHlwZSBTdHJpbmdPckJvb2xlYW4gPSAndHJ1ZScgfCAnZmFsc2UnIHwgYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0gSW5wdXRPcHRpb24gJiB7IHNlbGVjdGVkPzogYm9vbGVhbiB9O1xuZXhwb3J0IHR5cGUgQ2hlY2tib3hPcHRpb24gPSBSYWRpb09wdGlvbjtcbmV4cG9ydCB0eXBlIFJhZGlvT3B0aW9uID0gSW5wdXRPcHRpb24gJiB7IGNoZWNrZWQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRPcHRpb24ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGRpc2FibGVkPzogU3RyaW5nT3JCb29sZWFuO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEhUTUxGb3JtVGFyZ2V0ID0gJ19ibGFuaycgfCAnX3NlbGYnIHwgJ19wYXJlbnQnIHwgJ190b3AnIHwgc3RyaW5nO1xuIl19
File without changes
@@ -1,5 +1,6 @@
1
+ import '@decaf-ts/ui-decorators';
1
2
  export * from './components/decaf-model-renderer/decaf-model-renderer.component';
2
3
  export * from './components/decaf-crud-field/decaf-crud-field.component';
3
4
  export * from './components/decaf-crud-form/decaf-crud-form.component';
4
5
  export * from './engine';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3B1YmxpYy1hcGlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RlY2FmLW1vZGVsLXJlbmRlcmVyL2RlY2FmLW1vZGVsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGVjYWYtY3J1ZC1maWVsZC9kZWNhZi1jcnVkLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGVjYWYtY3J1ZC1mb3JtL2RlY2FmLWNydWQtZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lbmdpbmUnO1xuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3B1YmxpYy1hcGlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8seUJBQXlCLENBQUM7QUFDakMsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ0BkZWNhZi10cy91aS1kZWNvcmF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9kZWNhZi1tb2RlbC1yZW5kZXJlci9kZWNhZi1tb2RlbC1yZW5kZXJlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RlY2FmLWNydWQtZmllbGQvZGVjYWYtY3J1ZC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RlY2FmLWNydWQtZm9ybS9kZWNhZi1jcnVkLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZW5naW5lJztcbiJdfQ==