@po-ui/ng-components 17.4.0 → 17.6.0

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 (44) hide show
  1. package/esm2022/lib/components/po-dynamic/index.mjs +3 -1
  2. package/esm2022/lib/components/po-dynamic/po-dynamic-container/po-dynamic-container.component.mjs +56 -0
  3. package/esm2022/lib/components/po-dynamic/po-dynamic-field.interface.mjs +1 -1
  4. package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields-base.component.mjs +8 -5
  5. package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.mjs +221 -196
  6. package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form.component.mjs +9 -2
  7. package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.mjs +17 -6
  8. package/esm2022/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.mjs +68 -39
  9. package/esm2022/lib/components/po-dynamic/po-dynamic.module.mjs +20 -7
  10. package/esm2022/lib/components/po-dynamic/shared/po-dynamic-shared-base.mjs +41 -0
  11. package/esm2022/lib/components/po-field/po-combo/po-combo.component.mjs +8 -1
  12. package/esm2022/lib/components/po-search/interfaces/po-search-option.interface.mjs +2 -0
  13. package/esm2022/lib/components/po-search/po-search-base.component.mjs +27 -2
  14. package/esm2022/lib/components/po-search/po-search.component.mjs +264 -48
  15. package/esm2022/lib/components/po-search/po-search.module.mjs +25 -4
  16. package/fesm2022/po-ui-ng-components.mjs +1001 -564
  17. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  18. package/lib/components/po-dynamic/index.d.ts +2 -0
  19. package/lib/components/po-dynamic/po-dynamic-container/po-dynamic-container.component.d.ts +8 -0
  20. package/lib/components/po-dynamic/po-dynamic-field.interface.d.ts +7 -0
  21. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields-base.component.d.ts +2 -3
  22. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form.component.d.ts +7 -0
  23. package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.d.ts +5 -3
  24. package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.d.ts +5 -0
  25. package/lib/components/po-dynamic/po-dynamic.module.d.ts +11 -9
  26. package/lib/components/po-dynamic/shared/po-dynamic-shared-base.d.ts +18 -0
  27. package/lib/components/po-field/po-combo/po-combo.component.d.ts +1 -0
  28. package/lib/components/po-search/interfaces/po-search-option.interface.d.ts +21 -0
  29. package/lib/components/po-search/po-search-base.component.d.ts +20 -1
  30. package/lib/components/po-search/po-search.component.d.ts +53 -4
  31. package/lib/components/po-search/po-search.module.d.ts +2 -1
  32. package/package.json +4 -4
  33. package/po-ui-ng-components-17.6.0.tgz +0 -0
  34. package/schematics/ng-add/index.js +1 -1
  35. package/schematics/ng-update/v14/index.js +1 -1
  36. package/schematics/ng-update/v15/index.js +1 -1
  37. package/schematics/ng-update/v16/index.js +1 -1
  38. package/schematics/ng-update/v17/index.js +1 -1
  39. package/schematics/ng-update/v2/index.js +1 -1
  40. package/schematics/ng-update/v3/index.js +1 -1
  41. package/schematics/ng-update/v4/index.js +1 -1
  42. package/schematics/ng-update/v5/index.js +1 -1
  43. package/schematics/ng-update/v6/index.js +1 -1
  44. package/po-ui-ng-components-17.4.0.tgz +0 -0
@@ -42,6 +42,13 @@ function PoDynamicFormComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
42
42
  * <file name="sample-po-dynamic-form-register/sample-po-dynamic-form-register.component.ts"> </file>
43
43
  * <file name="sample-po-dynamic-form-register/sample-po-dynamic-form-register.service.ts"> </file>
44
44
  * </example>
45
+ *
46
+ * <example name="po-dynamic-form-container" title="PO Dynamic Form - Container">
47
+ * <file name="sample-po-dynamic-form-container/sample-po-dynamic-form-container.component.html"> </file>
48
+ * <file name="sample-po-dynamic-form-container/sample-po-dynamic-form-container.component.ts"> </file>
49
+ * <file name="sample-po-dynamic-form-container/sample-po-dynamic-form-container.service.ts"> </file>
50
+ * </example>
51
+ *
45
52
  */
46
53
  export class PoDynamicFormComponent extends PoDynamicFormBaseComponent {
47
54
  changes;
@@ -206,5 +213,5 @@ export class PoDynamicFormComponent extends PoDynamicFormBaseComponent {
206
213
  type: ViewChild,
207
214
  args: ['dynamicForm']
208
215
  }] }); })();
209
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoDynamicFormComponent, { className: "PoDynamicFormComponent", filePath: "lib/components/po-dynamic/po-dynamic-form/po-dynamic-form.component.ts", lineNumber: 34 }); })();
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1keW5hbWljL3BvLWR5bmFtaWMtZm9ybS9wby1keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWR5bmFtaWMvcG8tZHluYW1pYy1mb3JtL3BvLWR5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF3QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0YsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFekQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7SUNMOUUsd0JBQWdHOzs7SUFHOUYsK0NBQ3lCOzs7SUFEZ0IsK0NBQTBCLDJCQUFBLHlCQUFBOzs7O0lBS25FLHFDQUE0QixtQ0FBQTtJQUd4Qiw2VEFBcUI7SUFPckIsb05BQWtCLGVBQUEsK0JBQXVCLENBQUEsSUFBQyx5TUFDdkIsZUFBQSw0QkFBb0IsQ0FBQSxJQURHO0lBRzVDLGlCQUF5QixFQUFBOzs7SUFWdkIsZUFBcUI7SUFBckIsOENBQXFCO0lBQ3JCLCtDQUEwQix3Q0FBQSwrQkFBQSw0Q0FBQSwrQ0FBQSx5QkFBQTs7QURBaEM7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBTUgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQXlCMUQ7SUFDQTtJQUNBO0lBMUJvQixlQUFlLENBQXlFO0lBRXRILFlBQVksQ0FBVTtJQUVkLEtBQUssQ0FBUztJQUVkLGtCQUFrQixDQUFlO0lBQ2pDLG9CQUFvQixDQUFlO0lBQ25DLGtCQUFrQixHQUFHLElBQUksT0FBTyxF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LENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVPLHlCQUF5QixDQUFDLFFBQWlDO1FBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RGLENBQUM7Z0ZBaEtVLHNCQUFzQjs2REFBdEIsc0JBQXNCOzs7Ozs7OztZQ2pDbkMseUZBQWdHLDJHQUFBLDJHQUFBOzs7O1lBQWpGLG9DQUFpQixpQkFBQSxpQkFBQTs7O2lGRGlDbkIsc0JBQXNCO2NBSmxDLFNBQVM7MkJBQ0UsaUJBQWlCO3NJQUlHLGVBQWU7a0JBQTVDLFNBQVM7bUJBQUMsaUJBQWlCO1lBVUUsSUFBSTtrQkFBakMsU0FBUzttQkFBQyxhQUFhOztrRkFYYixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQb0R5bmFtaWNGb3JtQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8tZHluYW1pYy1mb3JtLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1GaWVsZCB9IGZyb20gJy4vcG8tZHluYW1pYy1mb3JtLWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0R5bmFtaWNGb3JtTG9hZCB9IGZyb20gJy4vcG8tZHluYW1pYy1mb3JtLWxvYWQvcG8tZHluYW1pYy1mb3JtLWxvYWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1Mb2FkU2VydmljZSB9IGZyb20gJy4vcG8tZHluYW1pYy1mb3JtLWxvYWQvcG8tZHluYW1pYy1mb3JtLWxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBQb0R5bmFtaWNGb3JtVmFsaWRhdGlvbiB9IGZyb20gJy4vcG8tZHluYW1pYy1mb3JtLXZhbGlkYXRpb24vcG8tZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4vcG8tZHluYW1pYy1mb3JtLXZhbGlkYXRpb24vcG8tZHluYW1pYy1mb3JtLXZhbGlkYXRpb24uc2VydmljZSc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvRHluYW1pY0Zvcm1CYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tZHluYW1pYy1mb3JtLWJhc2ljXCIgdGl0bGU9XCJQTyBEeW5hbWljIEZvcm0gQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWR5bmFtaWMtZm9ybS1iYXNpYy9zYW1wbGUtcG8tZHluYW1pYy1mb3JtLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWR5bmFtaWMtZm9ybS1iYXNpYy9zYW1wbGUtcG8tZHluYW1pYy1mb3JtLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWR5bmFtaWMtZm9ybS1yZWdpc3RlclwiIHRpdGxlPVwiUE8gRHluYW1pYyBGb3JtIC0gUmVnaXN0ZXJcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWR5bmFtaWMtZm9ybS1yZWdpc3Rlci9zYW1wbGUtcG8tZHluYW1pYy1mb3JtLXJlZ2lzdGVyLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWR5bmFtaWMtZm9ybS1yZWdpc3Rlci9zYW1wbGUtcG8tZHluYW1pYy1mb3JtLXJlZ2lzdGVyLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1keW5hbWljLWZvcm0tcmVnaXN0ZXIvc2FtcGxlLXBvLWR5bmFtaWMtZm9ybS1yZWdpc3Rlci5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1keW5hbWljLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb0R5bmFtaWNGb3JtQ29tcG9uZW50IGV4dGVuZHMgUG9EeW5hbWljRm9ybUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2ZpZWxkc0NvbXBvbmVudCcpIGZpZWxkc0NvbXBvbmVudDogeyBmb2N1czogKHByb3BlcnR5OiBzdHJpbmcpID0+IHZvaWQ7IHVwZGF0ZVByZXZpb3VzVmFsdWU6ICgpID0+IHZvaWQgfTtcblxuICBkaXNhYmxlZEZvcm06IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfZm9ybTogTmdGb3JtO1xuXG4gIHByaXZhdGUgb25Mb2FkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc2VuZEZvcm1TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBjb21ib09wdGlvblN1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgQFZpZXdDaGlsZCgnZHluYW1pY0Zvcm0nKSBzZXQgZm9ybSh2YWx1ZTogTmdGb3JtKSB7XG4gICAgLy8gbmVjZXNzYXJpbyBwYXJhIG5hbyBvY29ycmVyIG8gRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fZm9ybSA9IHZhbHVlO1xuXG4gICAgICB0aGlzLmVtaXRGb3JtKCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgZm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybSB8fCA8YW55Pnt9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VzOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGxvYWRTZXJ2aWNlOiBQb0R5bmFtaWNGb3JtTG9hZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogUG9EeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMubG9hZCkge1xuICAgICAgdGhpcy5sb2FkRGF0YU9uSW5pdGlhbGl6ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW7Dp8OjbyBxdWUgYXRyaWJ1aSBmb2NvIGFvIGNhbXBvIGRlc2VqYWRvLlxuICAgKlxuICAgKiBQYXJhIHV0aWxpesOhLWxhIMOpIG5lY2Vzc8OhcmlvIGNhcHR1cmFyIGEgaW5zdMOibmNpYSBkbyBgZHluYW1pYyBmb3JtYCwgY29tbyBwb3IgZXhlbXBsbzpcbiAgICpcbiAgICogYGBgIGh0bWxcbiAgICogPHBvLWR5bmFtaWMtZm9ybSAjZHluYW1pY0Zvcm0gW3AtZmllbGRzXT1cImZpZWxkc1wiPjwvcG8tZHluYW1pYy1mb3JtPlxuICAgKiBgYGBcbiAgICpcbiAgICogYGBgIGphdmFzY3JpcHRcbiAgICogaW1wb3J0IHsgUG9EeW5hbWljRm9ybUNvbXBvbmVudCwgUG9EeW5hbWljRm9ybUZpZWxkIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuICAgKlxuICAgKiAuLi5cbiAgICpcbiAgICogQFZpZXdDaGlsZCgnZHluYW1pY0Zvcm0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBkeW5hbWljRm9ybTogUG9EeW5hbWljRm9ybUNvbXBvbmVudDtcbiAgICpcbiAgICogZmllbGRzOiBBcnJheTxQb0R5bmFtaWNGb3JtRmllbGQ+ID0gW1xuICAgKiAgIHsgcHJvcGVydHk6ICdmaWVsZE9uZScgfSxcbiAgICogICB7IHByb3BlcnR5OiAnZmllbGRUd28nIH1cbiAgICogXTtcbiAgICpcbiAgICogZmllbGRGb2N1cygpIHtcbiAgICogICB0aGlzLmR5bmFtaWNGb3JtLmZvY3VzKCdmaWVsZFR3bycpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHkgTm9tZSBkYSBwcm9wcmllZGFkZSBhdHJpYnXDrWRhIGFvIGBQb0R5bmFtaWNGb3JtRmllbGQucHJvcGVydHlgLlxuICAgKi9cbiAgZm9jdXMocHJvcGVydHk6IHN0cmluZykge1xuICAgIHRoaXMuZmllbGRzQ29tcG9uZW50LmZvY3VzKHByb3BlcnR5KTtcbiAgfVxuXG4gIGdldE9iamVjdFZhbHVlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY29tYm9PcHRpb25TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2VuZE9iamVjdFZhbHVlKG9iamVjdFZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNvbWJvT3B0aW9uU3ViamVjdC5uZXh0KG9iamVjdFZhbHVlKTtcbiAgfVxuXG4gIHZhbGlkYXRlRm9ybShmaWVsZDogUG9EeW5hbWljRm9ybUZpZWxkKSB7XG4gICAgY29uc3QgcHJldmlvdXNGb2N1c0VsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5kaXNhYmxlRm9ybSh0cnVlKTtcbiAgICBjb25zdCBlcnJvck9uVmFsaWRhdGlvbiA9ICgpID0+IHRoaXMuZGlzYWJsZUZvcm0oZmFsc2UpO1xuXG4gICAgdGhpcy5zZW5kRm9ybVN1YnNjcmlwdGlvbiA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2VcbiAgICAgIC5zZW5kRm9ybUNoYW5nZSh0aGlzLnZhbGlkYXRlLCBmaWVsZCwgdGhpcy52YWx1ZSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5hcHBseUZvcm1WYWxpZGF0aW9uKHByZXZpb3VzRm9jdXNFbGVtZW50KSwgZXJyb3JPblZhbGlkYXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUZvcm1VcGRhdGVzT25Mb2FkKHByZXZpb3VzRm9jdXNFbGVtZW50OiBFbGVtZW50KTogKGR5bmFtaWNGb3JtRGF0YTogUG9EeW5hbWljRm9ybUxvYWQpID0+IHZvaWQge1xuICAgIHJldHVybiBkeW5hbWljRm9ybURhdGEgPT4ge1xuICAgICAgdGhpcy51cGRhdGVNb2RlbE9uTG9hZChkeW5hbWljRm9ybURhdGEpO1xuICAgICAgdGhpcy5kaXNhYmxlRm9ybShmYWxzZSk7XG4gICAgICB0aGlzLnNldEZvY3VzT25GaWVsZEJ5UHJvcGVydHkoZHluYW1pY0Zvcm1EYXRhLmZvY3VzLCBwcmV2aW91c0ZvY3VzRWxlbWVudCk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGb3JtVmFsaWRhdGlvbihwcmV2aW91c0ZvY3VzRWxlbWVudDogRWxlbWVudCk6IChkeW5hbWljRm9ybURhdGE6IFBvRHluYW1pY0Zvcm1WYWxpZGF0aW9uKSA9PiB2b2lkIHtcbiAgICByZXR1cm4gZHluYW1pY0Zvcm1EYXRhID0+IHtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWxXaXRoVmFsaWRhdGlvbihkeW5hbWljRm9ybURhdGEpO1xuICAgICAgdGhpcy5kaXNhYmxlRm9ybShmYWxzZSk7XG4gICAgICB0aGlzLnNldEZvY3VzT25GaWVsZEJ5UHJvcGVydHkoZHluYW1pY0Zvcm1EYXRhLmZvY3VzLCBwcmV2aW91c0ZvY3VzRWxlbWVudCk7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZUZvcm0odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkRm9ybSA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlcy5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtKCkge1xuICAgIGlmICghdGhpcy5ncm91cEZvcm0gJiYgdGhpcy5mb3JtT3V0cHV0Lm9ic2VydmVycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZm9ybU91dHB1dC5lbWl0KHRoaXMuZm9ybSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRGF0YU9uSW5pdGlhbGl6ZSgpIHtcbiAgICBjb25zdCBwcmV2aW91c0ZvY3VzRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLmRpc2FibGVkRm9ybSA9IHRydWU7XG4gICAgY29uc3QgZXJyb3JPbkxvYWQgPSAoKSA9PiAodGhpcy5kaXNhYmxlZEZvcm0gPSBmYWxzZSk7XG5cbiAgICB0aGlzLm9uTG9hZFN1YnNjcmlwdGlvbiA9IHRoaXMubG9hZFNlcnZpY2VcbiAgICAgIC5leGVjdXRlTG9hZCh0aGlzLmxvYWQsIHRoaXMudmFsdWUpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuYXBwbHlGb3JtVXBkYXRlc09uTG9hZChwcmV2aW91c0ZvY3VzRWxlbWVudCksIGVycm9yT25Mb2FkKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTGlzdGVuZXJzKCkge1xuICAgIGlmICh0aGlzLm9uTG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5vbkxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZW5kRm9ybVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zZW5kRm9ybVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Rm9jdXNPbkZpZWxkQnlQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nLCBwcmV2aW91c0ZvY3VzRWxlbWVudDogRWxlbWVudCkge1xuICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgLy8gcHJlY2lzYSBkbyB0aW1lb3V0IHBhcmEgcXVlIG8gdmFsb3Igc2VqYSBhdHJpYnVpZG8gbm8gY2FtcG8gYW50ZXMgZGUgc2V0YXIgbyBmb2N1cyxcbiAgICAgIC8vIHBhcmEgbmFvIGRpc3BhcmFyIGEgbXVkYW7Dp2EgcG9zdGVyaW9ybWVudGUuIFNpdHVhw6fDo28gb2NvcnJlIHF1YW5kbyByZXRvcm5hciBjYW1wbyBjb20gdmFsb3IgZSBmb2N1cyBhdHJpYnVpZG8gYSBlbGUuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9jdXMocHJvcGVydHkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJldmlvdXNGb2N1c0VsZW1lbnRbJ2ZvY3VzJ10oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1vZGVsT25Mb2FkKGxvYWRlZEZvcm1EYXRhOiBQb0R5bmFtaWNGb3JtTG9hZCkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy52YWx1ZSwgbG9hZGVkRm9ybURhdGEudmFsdWUpO1xuICAgIHRoaXMuZmllbGRzID0gdGhpcy5sb2FkU2VydmljZS5jcmVhdGVBbmRVcGRhdGVGaWVsZHNGb3JtKGxvYWRlZEZvcm1EYXRhLmZpZWxkcywgdGhpcy5maWVsZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNb2RlbFdpdGhWYWxpZGF0aW9uKGZvcm1EYXRhOiBQb0R5bmFtaWNGb3JtVmFsaWRhdGlvbikge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy52YWx1ZSwgZm9ybURhdGEudmFsdWUpO1xuICAgIHRoaXMuZmllbGRzQ29tcG9uZW50LnVwZGF0ZVByZXZpb3VzVmFsdWUoKTtcbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UudXBkYXRlRmllbGRzRm9ybShmb3JtRGF0YS5maWVsZHMsIHRoaXMuZmllbGRzKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwRm9ybTsgdGhlbiByZXVzZUZvcm1UZW1wbGF0ZTsgZWxzZSB1bmlxdWVGb3JtVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNyZXVzZUZvcm1UZW1wbGF0ZT5cbiAgPHBvLWR5bmFtaWMtZm9ybS1maWVsZHMgI2ZpZWxkc0NvbXBvbmVudCBbcC1hdXRvLWZvY3VzXT1cImF1dG9Gb2N1c1wiIFtwLWZpZWxkc109XCJmaWVsZHNcIiBbcC12YWx1ZV09XCJ2YWx1ZVwiPlxuICA8L3BvLWR5bmFtaWMtZm9ybS1maWVsZHM+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3VuaXF1ZUZvcm1UZW1wbGF0ZT5cbiAgPGZvcm0gI2R5bmFtaWNGb3JtPVwibmdGb3JtXCI+XG4gICAgPHBvLWR5bmFtaWMtZm9ybS1maWVsZHNcbiAgICAgICNmaWVsZHNDb21wb25lbnRcbiAgICAgIFsocC1maWVsZHMpXT1cImZpZWxkc1wiXG4gICAgICBbcC1hdXRvLWZvY3VzXT1cImF1dG9Gb2N1c1wiXG4gICAgICBbcC1kaXNhYmxlZC1mb3JtXT1cImRpc2FibGVkRm9ybVwiXG4gICAgICBbcC12YWxpZGF0ZV09XCJ2YWxpZGF0ZVwiXG4gICAgICBbcC12YWxpZGF0ZS1maWVsZHNdPVwidmFsaWRhdGVGaWVsZHNcIlxuICAgICAgW3AtdmFsaWRhdGUtb24taW5wdXRdPVwidmFsaWRhdGVPbklucHV0XCJcbiAgICAgIFtwLXZhbHVlXT1cInZhbHVlXCJcbiAgICAgIChwLW9iamVjdC12YWx1ZSk9XCJzZW5kT2JqZWN0VmFsdWUoJGV2ZW50KVwiXG4gICAgICAocC1mb3JtLXZhbGlkYXRlKT1cInZhbGlkYXRlRm9ybSgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9wby1keW5hbWljLWZvcm0tZmllbGRzPlxuICA8L2Zvcm0+XG48L25nLXRlbXBsYXRlPlxuIl19
216
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoDynamicFormComponent, { className: "PoDynamicFormComponent", filePath: "lib/components/po-dynamic/po-dynamic-form/po-dynamic-form.component.ts", lineNumber: 41 }); })();
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1keW5hbWljL3BvLWR5bmFtaWMtZm9ybS9wby1keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWR5bmFtaWMvcG8tZHluYW1pYy1mb3JtL3BvLWR5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF3QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0YsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFekQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7SUNMOUUsd0JBQWdHOzs7SUFHOUYsK0NBQ3lCOzs7SUFEZ0IsK0NBQTBCLDJCQUFBLHlCQUFBOzs7O0lBS25FLHFDQUE0QixtQ0FBQTtJQUd4Qiw2VEFBcUI7SUFPckIsb05BQWtCLGVBQUEsK0JBQXVCLENBQUEsSUFBQyx5TUFDdkIsZUFBQSw0QkFBb0IsQ0FBQSxJQURHO0lBRzVDLGlCQUF5QixFQUFBOzs7SUFWdkIsZUFBcUI7SUFBckIsOENBQXFCO0lBQ3JCLCtDQUEwQix3Q0FBQSwrQkFBQSw0Q0FBQSwrQ0FBQSx5QkFBQTs7QURBaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFNSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMEJBQTBCO0lBeUIxRDtJQUNBO0lBQ0E7SUExQm9CLGVBQWUsQ0FBeUU7SUFFdEgsWUFBWSxDQUFVO0lBRWQsS0FBSyxDQUFTO0lBRWQsa0JBQWtCLENBQWU7SUFDakMsb0JBQW9CLENBQWU7SUFDbkMsa0JBQWtCLEdBQUcsSUFB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QUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU8seUJBQXlCLENBQUMsUUFBaUM7UUFDakUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEYsQ0FBQztnRkFoS1Usc0JBQXNCOzZEQUF0QixzQkFBc0I7Ozs7Ozs7O1lDeENuQyx5RkFBZ0csMkdBQUEsMkdBQUE7Ozs7WUFBakYsb0NBQWlCLGlCQUFBLGlCQUFBOzs7aUZEd0NuQixzQkFBc0I7Y0FKbEMsU0FBUzsyQkFDRSxpQkFBaUI7c0lBSUcsZUFBZTtrQkFBNUMsU0FBUzttQkFBQyxpQkFBaUI7WUFVRSxJQUFJO2tCQUFqQyxTQUFTO21CQUFDLGFBQWE7O2tGQVhiLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1keW5hbWljLWZvcm0tYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9EeW5hbWljRm9ybUZpZWxkIH0gZnJvbSAnLi9wby1keW5hbWljLWZvcm0tZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1Mb2FkIH0gZnJvbSAnLi9wby1keW5hbWljLWZvcm0tbG9hZC9wby1keW5hbWljLWZvcm0tbG9hZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9EeW5hbWljRm9ybUxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9wby1keW5hbWljLWZvcm0tbG9hZC9wby1keW5hbWljLWZvcm0tbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1WYWxpZGF0aW9uIH0gZnJvbSAnLi9wby1keW5hbWljLWZvcm0tdmFsaWRhdGlvbi9wby1keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9EeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9wby1keW5hbWljLWZvcm0tdmFsaWRhdGlvbi9wby1keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9EeW5hbWljRm9ybUJhc2VDb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1keW5hbWljLWZvcm0tYmFzaWNcIiB0aXRsZT1cIlBPIER5bmFtaWMgRm9ybSBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZHluYW1pYy1mb3JtLWJhc2ljL3NhbXBsZS1wby1keW5hbWljLWZvcm0tYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZHluYW1pYy1mb3JtLWJhc2ljL3NhbXBsZS1wby1keW5hbWljLWZvcm0tYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tZHluYW1pYy1mb3JtLXJlZ2lzdGVyXCIgdGl0bGU9XCJQTyBEeW5hbWljIEZvcm0gLSBSZWdpc3RlclwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZHluYW1pYy1mb3JtLXJlZ2lzdGVyL3NhbXBsZS1wby1keW5hbWljLWZvcm0tcmVnaXN0ZXIuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZHluYW1pYy1mb3JtLXJlZ2lzdGVyL3NhbXBsZS1wby1keW5hbWljLWZvcm0tcmVnaXN0ZXIuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWR5bmFtaWMtZm9ybS1yZWdpc3Rlci9zYW1wbGUtcG8tZHluYW1pYy1mb3JtLXJlZ2lzdGVyLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1keW5hbWljLWZvcm0tY29udGFpbmVyXCIgdGl0bGU9XCJQTyBEeW5hbWljIEZvcm0gLSBDb250YWluZXJcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWR5bmFtaWMtZm9ybS1jb250YWluZXIvc2FtcGxlLXBvLWR5bmFtaWMtZm9ybS1jb250YWluZXIuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZHluYW1pYy1mb3JtLWNvbnRhaW5lci9zYW1wbGUtcG8tZHluYW1pYy1mb3JtLWNvbnRhaW5lci5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZHluYW1pYy1mb3JtLWNvbnRhaW5lci9zYW1wbGUtcG8tZHluYW1pYy1mb3JtLWNvbnRhaW5lci5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tZHluYW1pYy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLWR5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9EeW5hbWljRm9ybUNvbXBvbmVudCBleHRlbmRzIFBvRHluYW1pY0Zvcm1CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdmaWVsZHNDb21wb25lbnQnKSBmaWVsZHNDb21wb25lbnQ6IHsgZm9jdXM6IChwcm9wZXJ0eTogc3RyaW5nKSA9PiB2b2lkOyB1cGRhdGVQcmV2aW91c1ZhbHVlOiAoKSA9PiB2b2lkIH07XG5cbiAgZGlzYWJsZWRGb3JtOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX2Zvcm06IE5nRm9ybTtcblxuICBwcml2YXRlIG9uTG9hZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHNlbmRGb3JtU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgY29tYm9PcHRpb25TdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2R5bmFtaWNGb3JtJykgc2V0IGZvcm0odmFsdWU6IE5nRm9ybSkge1xuICAgIC8vIG5lY2Vzc2FyaW8gcGFyYSBuYW8gb2NvcnJlciBvIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2Zvcm0gPSB2YWx1ZTtcblxuICAgICAgdGhpcy5lbWl0Rm9ybSgpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm0gfHwgPGFueT57fTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlczogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBsb2FkU2VydmljZTogUG9EeW5hbWljRm9ybUxvYWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmFsaWRhdGlvblNlcnZpY2U6IFBvRHluYW1pY0Zvcm1WYWxpZGF0aW9uU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmxvYWQpIHtcbiAgICAgIHRoaXMubG9hZERhdGFPbkluaXRpYWxpemUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuw6fDo28gcXVlIGF0cmlidWkgZm9jbyBhbyBjYW1wbyBkZXNlamFkby5cbiAgICpcbiAgICogUGFyYSB1dGlsaXrDoS1sYSDDqSBuZWNlc3PDoXJpbyBjYXB0dXJhciBhIGluc3TDom5jaWEgZG8gYGR5bmFtaWMgZm9ybWAsIGNvbW8gcG9yIGV4ZW1wbG86XG4gICAqXG4gICAqIGBgYCBodG1sXG4gICAqIDxwby1keW5hbWljLWZvcm0gI2R5bmFtaWNGb3JtIFtwLWZpZWxkc109XCJmaWVsZHNcIj48L3BvLWR5bmFtaWMtZm9ybT5cbiAgICogYGBgXG4gICAqXG4gICAqIGBgYCBqYXZhc2NyaXB0XG4gICAqIGltcG9ydCB7IFBvRHluYW1pY0Zvcm1Db21wb25lbnQsIFBvRHluYW1pY0Zvcm1GaWVsZCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcbiAgICpcbiAgICogLi4uXG4gICAqXG4gICAqIEBWaWV3Q2hpbGQoJ2R5bmFtaWNGb3JtJywgeyBzdGF0aWM6IHRydWUgfSkgZHluYW1pY0Zvcm06IFBvRHluYW1pY0Zvcm1Db21wb25lbnQ7XG4gICAqXG4gICAqIGZpZWxkczogQXJyYXk8UG9EeW5hbWljRm9ybUZpZWxkPiA9IFtcbiAgICogICB7IHByb3BlcnR5OiAnZmllbGRPbmUnIH0sXG4gICAqICAgeyBwcm9wZXJ0eTogJ2ZpZWxkVHdvJyB9XG4gICAqIF07XG4gICAqXG4gICAqIGZpZWxkRm9jdXMoKSB7XG4gICAqICAgdGhpcy5keW5hbWljRm9ybS5mb2N1cygnZmllbGRUd28nKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5IE5vbWUgZGEgcHJvcHJpZWRhZGUgYXRyaWJ1w61kYSBhbyBgUG9EeW5hbWljRm9ybUZpZWxkLnByb3BlcnR5YC5cbiAgICovXG4gIGZvY3VzKHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpZWxkc0NvbXBvbmVudC5mb2N1cyhwcm9wZXJ0eSk7XG4gIH1cblxuICBnZXRPYmplY3RWYWx1ZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNvbWJvT3B0aW9uU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHNlbmRPYmplY3RWYWx1ZShvYmplY3RWYWx1ZTogYW55KSB7XG4gICAgdGhpcy5jb21ib09wdGlvblN1YmplY3QubmV4dChvYmplY3RWYWx1ZSk7XG4gIH1cblxuICB2YWxpZGF0ZUZvcm0oZmllbGQ6IFBvRHluYW1pY0Zvcm1GaWVsZCkge1xuICAgIGNvbnN0IHByZXZpb3VzRm9jdXNFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuICAgIHRoaXMuZGlzYWJsZUZvcm0odHJ1ZSk7XG4gICAgY29uc3QgZXJyb3JPblZhbGlkYXRpb24gPSAoKSA9PiB0aGlzLmRpc2FibGVGb3JtKGZhbHNlKTtcblxuICAgIHRoaXMuc2VuZEZvcm1TdWJzY3JpcHRpb24gPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlXG4gICAgICAuc2VuZEZvcm1DaGFuZ2UodGhpcy52YWxpZGF0ZSwgZmllbGQsIHRoaXMudmFsdWUpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuYXBwbHlGb3JtVmFsaWRhdGlvbihwcmV2aW91c0ZvY3VzRWxlbWVudCksIGVycm9yT25WYWxpZGF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGb3JtVXBkYXRlc09uTG9hZChwcmV2aW91c0ZvY3VzRWxlbWVudDogRWxlbWVudCk6IChkeW5hbWljRm9ybURhdGE6IFBvRHluYW1pY0Zvcm1Mb2FkKSA9PiB2b2lkIHtcbiAgICByZXR1cm4gZHluYW1pY0Zvcm1EYXRhID0+IHtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWxPbkxvYWQoZHluYW1pY0Zvcm1EYXRhKTtcbiAgICAgIHRoaXMuZGlzYWJsZUZvcm0oZmFsc2UpO1xuICAgICAgdGhpcy5zZXRGb2N1c09uRmllbGRCeVByb3BlcnR5KGR5bmFtaWNGb3JtRGF0YS5mb2N1cywgcHJldmlvdXNGb2N1c0VsZW1lbnQpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Rm9ybVZhbGlkYXRpb24ocHJldmlvdXNGb2N1c0VsZW1lbnQ6IEVsZW1lbnQpOiAoZHluYW1pY0Zvcm1EYXRhOiBQb0R5bmFtaWNGb3JtVmFsaWRhdGlvbikgPT4gdm9pZCB7XG4gICAgcmV0dXJuIGR5bmFtaWNGb3JtRGF0YSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZU1vZGVsV2l0aFZhbGlkYXRpb24oZHluYW1pY0Zvcm1EYXRhKTtcbiAgICAgIHRoaXMuZGlzYWJsZUZvcm0oZmFsc2UpO1xuICAgICAgdGhpcy5zZXRGb2N1c09uRmllbGRCeVByb3BlcnR5KGR5bmFtaWNGb3JtRGF0YS5mb2N1cywgcHJldmlvdXNGb2N1c0VsZW1lbnQpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGRpc2FibGVGb3JtKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZEZvcm0gPSB2YWx1ZTtcbiAgICB0aGlzLmNoYW5nZXMuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybSgpIHtcbiAgICBpZiAoIXRoaXMuZ3JvdXBGb3JtICYmIHRoaXMuZm9ybU91dHB1dC5vYnNlcnZlcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZvcm1PdXRwdXQuZW1pdCh0aGlzLmZvcm0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZERhdGFPbkluaXRpYWxpemUoKSB7XG4gICAgY29uc3QgcHJldmlvdXNGb2N1c0VsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5kaXNhYmxlZEZvcm0gPSB0cnVlO1xuICAgIGNvbnN0IGVycm9yT25Mb2FkID0gKCkgPT4gKHRoaXMuZGlzYWJsZWRGb3JtID0gZmFsc2UpO1xuXG4gICAgdGhpcy5vbkxvYWRTdWJzY3JpcHRpb24gPSB0aGlzLmxvYWRTZXJ2aWNlXG4gICAgICAuZXhlY3V0ZUxvYWQodGhpcy5sb2FkLCB0aGlzLnZhbHVlKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmFwcGx5Rm9ybVVwZGF0ZXNPbkxvYWQocHJldmlvdXNGb2N1c0VsZW1lbnQpLCBlcnJvck9uTG9hZCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxpc3RlbmVycygpIHtcbiAgICBpZiAodGhpcy5vbkxvYWRTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMub25Mb2FkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VuZEZvcm1TdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2VuZEZvcm1TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZvY3VzT25GaWVsZEJ5UHJvcGVydHkocHJvcGVydHk6IHN0cmluZywgcHJldmlvdXNGb2N1c0VsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIC8vIHByZWNpc2EgZG8gdGltZW91dCBwYXJhIHF1ZSBvIHZhbG9yIHNlamEgYXRyaWJ1aWRvIG5vIGNhbXBvIGFudGVzIGRlIHNldGFyIG8gZm9jdXMsXG4gICAgICAvLyBwYXJhIG5hbyBkaXNwYXJhciBhIG11ZGFuw6dhIHBvc3Rlcmlvcm1lbnRlLiBTaXR1YcOnw6NvIG9jb3JyZSBxdWFuZG8gcmV0b3JuYXIgY2FtcG8gY29tIHZhbG9yIGUgZm9jdXMgYXRyaWJ1aWRvIGEgZWxlLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvY3VzKHByb3BlcnR5KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZXZpb3VzRm9jdXNFbGVtZW50Wydmb2N1cyddKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNb2RlbE9uTG9hZChsb2FkZWRGb3JtRGF0YTogUG9EeW5hbWljRm9ybUxvYWQpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMudmFsdWUsIGxvYWRlZEZvcm1EYXRhLnZhbHVlKTtcbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMubG9hZFNlcnZpY2UuY3JlYXRlQW5kVXBkYXRlRmllbGRzRm9ybShsb2FkZWRGb3JtRGF0YS5maWVsZHMsIHRoaXMuZmllbGRzKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTW9kZWxXaXRoVmFsaWRhdGlvbihmb3JtRGF0YTogUG9EeW5hbWljRm9ybVZhbGlkYXRpb24pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMudmFsdWUsIGZvcm1EYXRhLnZhbHVlKTtcbiAgICB0aGlzLmZpZWxkc0NvbXBvbmVudC51cGRhdGVQcmV2aW91c1ZhbHVlKCk7XG4gICAgdGhpcy5maWVsZHMgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnVwZGF0ZUZpZWxkc0Zvcm0oZm9ybURhdGEuZmllbGRzLCB0aGlzLmZpZWxkcyk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cEZvcm07IHRoZW4gcmV1c2VGb3JtVGVtcGxhdGU7IGVsc2UgdW5pcXVlRm9ybVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcmV1c2VGb3JtVGVtcGxhdGU+XG4gIDxwby1keW5hbWljLWZvcm0tZmllbGRzICNmaWVsZHNDb21wb25lbnQgW3AtYXV0by1mb2N1c109XCJhdXRvRm9jdXNcIiBbcC1maWVsZHNdPVwiZmllbGRzXCIgW3AtdmFsdWVdPVwidmFsdWVcIj5cbiAgPC9wby1keW5hbWljLWZvcm0tZmllbGRzPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN1bmlxdWVGb3JtVGVtcGxhdGU+XG4gIDxmb3JtICNkeW5hbWljRm9ybT1cIm5nRm9ybVwiPlxuICAgIDxwby1keW5hbWljLWZvcm0tZmllbGRzXG4gICAgICAjZmllbGRzQ29tcG9uZW50XG4gICAgICBbKHAtZmllbGRzKV09XCJmaWVsZHNcIlxuICAgICAgW3AtYXV0by1mb2N1c109XCJhdXRvRm9jdXNcIlxuICAgICAgW3AtZGlzYWJsZWQtZm9ybV09XCJkaXNhYmxlZEZvcm1cIlxuICAgICAgW3AtdmFsaWRhdGVdPVwidmFsaWRhdGVcIlxuICAgICAgW3AtdmFsaWRhdGUtZmllbGRzXT1cInZhbGlkYXRlRmllbGRzXCJcbiAgICAgIFtwLXZhbGlkYXRlLW9uLWlucHV0XT1cInZhbGlkYXRlT25JbnB1dFwiXG4gICAgICBbcC12YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAocC1vYmplY3QtdmFsdWUpPVwic2VuZE9iamVjdFZhbHVlKCRldmVudClcIlxuICAgICAgKHAtZm9ybS12YWxpZGF0ZSk9XCJ2YWxpZGF0ZUZvcm0oJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvcG8tZHluYW1pYy1mb3JtLWZpZWxkcz5cbiAgPC9mb3JtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -2,6 +2,7 @@ import { Directive, Input } from '@angular/core';
2
2
  import { convertToBoolean, isTypeof, sortFields } from '../../../utils/util';
3
3
  import { catchError, map, of } from 'rxjs';
4
4
  import { getGridColumnsClasses, isVisibleField } from '../po-dynamic.util';
5
+ import { PoDynamicSharedBase } from '../shared/po-dynamic-shared-base';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/common";
7
8
  import * as i2 from "../../../pipes/po-time/po-time.pipe";
@@ -17,7 +18,7 @@ import * as i5 from "../../po-field/po-multiselect/po-multiselect-filter.service
17
18
  * > Por padrão esse componente cria `po-info` para exibição, é possível criar `po-tag` passando a propriedade { tag: true }.
18
19
  *
19
20
  */
20
- export class PoDynamicViewBaseComponent {
21
+ export class PoDynamicViewBaseComponent extends PoDynamicSharedBase {
21
22
  currencyPipe;
22
23
  datePipe;
23
24
  decimalPipe;
@@ -60,7 +61,6 @@ export class PoDynamicViewBaseComponent {
60
61
  *
61
62
  */
62
63
  load;
63
- visibleFields = [];
64
64
  service;
65
65
  _fields = [];
66
66
  _showAllValue = false;
@@ -123,6 +123,7 @@ export class PoDynamicViewBaseComponent {
123
123
  return this._value;
124
124
  }
125
125
  constructor(currencyPipe, datePipe, decimalPipe, timePipe, titleCasePipe, dynamicViewService, comboFilterService, multiselectFilterService) {
126
+ super();
126
127
  this.currencyPipe = currencyPipe;
127
128
  this.datePipe = datePipe;
128
129
  this.decimalPipe = decimalPipe;
@@ -132,8 +133,16 @@ export class PoDynamicViewBaseComponent {
132
133
  this.comboFilterService = comboFilterService;
133
134
  this.multiselectFilterService = multiselectFilterService;
134
135
  }
136
+ getFieldOrderRetroactive(position, index = 1) {
137
+ if (position === index) {
138
+ return position;
139
+ }
140
+ return this.fields.findIndex(field => field.order === index) > -1
141
+ ? this.getFieldOrderRetroactive(position, index + 1)
142
+ : index;
143
+ }
135
144
  getFieldOrder(field, index) {
136
- const position = index + 1;
145
+ const position = this.getFieldOrderRetroactive(index + 1);
137
146
  return this.fields.findIndex(e => e.order === position) > -1 ? this.getFieldOrder(field, position) : position;
138
147
  }
139
148
  getConfiguredFields(useSearchService = true) {
@@ -184,7 +193,9 @@ export class PoDynamicViewBaseComponent {
184
193
  this.createFieldWithService(field, newFields, _field);
185
194
  }
186
195
  });
187
- return sortFields(newFields);
196
+ const _sortedField = sortFields(newFields);
197
+ this.ensureFieldHasContainer(_sortedField);
198
+ return _sortedField;
188
199
  }
189
200
  // retorna fields ligado ao value mais os atributos do value que não possuiam fields.
190
201
  getMergedFields() {
@@ -353,7 +364,7 @@ export class PoDynamicViewBaseComponent {
353
364
  return formattedField;
354
365
  }
355
366
  static ɵfac = function PoDynamicViewBaseComponent_Factory(t) { return new (t || PoDynamicViewBaseComponent)(i0.ɵɵdirectiveInject(i1.CurrencyPipe), i0.ɵɵdirectiveInject(i1.DatePipe), i0.ɵɵdirectiveInject(i1.DecimalPipe), i0.ɵɵdirectiveInject(i2.PoTimePipe), i0.ɵɵdirectiveInject(i1.TitleCasePipe), i0.ɵɵdirectiveInject(i3.PoDynamicViewService), i0.ɵɵdirectiveInject(i4.PoComboFilterService), i0.ɵɵdirectiveInject(i5.PoMultiselectFilterService)); };
356
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoDynamicViewBaseComponent, inputs: { load: [i0.ɵɵInputFlags.None, "p-load", "load"], fields: [i0.ɵɵInputFlags.None, "p-fields", "fields"], showAllValue: [i0.ɵɵInputFlags.None, "p-show-all-value", "showAllValue"], value: [i0.ɵɵInputFlags.None, "p-value", "value"] } });
367
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoDynamicViewBaseComponent, inputs: { load: [i0.ɵɵInputFlags.None, "p-load", "load"], fields: [i0.ɵɵInputFlags.None, "p-fields", "fields"], showAllValue: [i0.ɵɵInputFlags.None, "p-show-all-value", "showAllValue"], value: [i0.ɵɵInputFlags.None, "p-value", "value"] }, features: [i0.ɵɵInheritDefinitionFeature] });
357
368
  }
358
369
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoDynamicViewBaseComponent, [{
359
370
  type: Directive
@@ -370,4 +381,4 @@ export class PoDynamicViewBaseComponent {
370
381
  type: Input,
371
382
  args: ['p-value']
372
383
  }] }); })();
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZHluYW1pYy12aWV3LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWR5bmFtaWMvcG8tZHluYW1pYy12aWV3L3BvLWR5bmFtaWMtdmlldy1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdFLE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFNM0U7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLE9BQU8sMEJBQTBCO0lBMkczQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0U7SUFDQTtJQUNBO0lBakhaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWdDRztJQUNjLElBQUksQ0FBb0I7SUFFekMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNuQixPQUFPLENBQU07SUFFTCxPQUFPLEdBQThCLEVBQUUsQ0FBQztJQUN4QyxhQUFhLEdBQVksS0FBSyxDQUFDO0lBQy9CLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFCRztJQUNILElBQXVCLE1BQU0sQ0FBQyxNQUFpQztRQUM3RCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzFE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b250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSwgRGF0ZVBpcGUsIERlY2ltYWxQaXBlLCBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9UaW1lUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3BvLXRpbWUvcG8tdGltZS5waXBlJztcbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xlYW4sIGlzVHlwZW9mLCBzb3J0RmllbGRzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIG1hcCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldEdyaWRDb2x1bW5zQ2xhc3NlcywgaXNWaXNpYmxlRmllbGQgfSBmcm9tICcuLi9wby1keW5hbWljLnV0aWwnO1xuaW1wb3J0IHsgUG9EeW5hbWljVmlld0ZpZWxkIH0gZnJvbSAnLi9wby1keW5hbWljLXZpZXctZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvRHluYW1pY1ZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1keW5hbWljLXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBQb0NvbWJvRmlsdGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3BvLWZpZWxkL3BvLWNvbWJvL3BvLWNvbWJvLWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcG8tZmllbGQvcG8tbXVsdGlzZWxlY3QvcG8tbXVsdGlzZWxlY3QtZmlsdGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBDb21wb25lbnRlIHBhcmEgbGlzdGFyIGRhZG9zIGRpbmFtaWNhbWVudGUgYSBwYXJ0aXIgZGUgdW1hIGxpc3RhIGRlIG9iamV0b3MuXG4gKlxuICogPiBQb3IgcGFkcsOjbyBlc3NlIGNvbXBvbmVudGUgY3JpYSBgcG8taW5mb2AgcGFyYSBleGliacOnw6NvLCDDqSBwb3Nzw612ZWwgY3JpYXIgYHBvLXRhZ2AgcGFzc2FuZG8gYSBwcm9wcmllZGFkZSB7IHRhZzogdHJ1ZSB9LlxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUG9EeW5hbWljVmlld0Jhc2VDb21wb25lbnQge1xuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQb3NzaWJpbGl0YSBleGVjdXRhciB1bWEgZnVuw6fDo28gcXVhbmRvIG8gY29tcG9uZW50ZSDDqSBpbmljaWFsaXphZG8uXG4gICAqXG4gICAqIEEgcHJvcHJpZWRhZGUgYWNlaXRhIG9zIHNlZ3VpbnRlcyB0aXBvczpcbiAgICogLSAqKlN0cmluZyoqOiBFbmRwb2ludCB1c2FkbyBwZWxvIGNvbXBvbmVudGUgcGFyYSByZXF1aXNpw6fDo28gdmlhIGBQT1NUYC5cbiAgICogLSAqKkZ1bmN0aW9uKio6IE3DqXRvZG8gcXVlIHNlcsOhIGV4ZWN1dGFkbyBuYSBpbmljaWFsaXphw6fDo28gZG8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogUGFyYSBvcyBkb2lzIHRpcG9zIGRlIHV0aWxpemHDp8OjbyBkYSBwcm9wcmllZGFkZSBlc3BlcmEtc2UgbyBzZWd1aW50ZSByZXRvcm5vOlxuICAgKlxuICAgKiBgYGBcbiAgICoge1xuICAgKiAgIHZhbHVlOiB7XG4gICAqICAgICBjbnBqOiAnKioqKioqKioqKioqKionLCAvLyBhbHRlcmEgdmFsb3IgZG8gY2FtcG9cbiAgICogICAgIHVwZGF0ZWQ6IChuZXcgRGF0ZSgpKS50b1N0cmluZygpIC8vIGF0cmlidWkgdmFsb3IgYW8gY2FtcG8gbm92b1xuICAgKiAgIH0sXG4gICAqICAgZmllbGRzOiBbXG4gICAqICAgICB7IHByb3BlcnR5OiAnY25waicsIHRhZzogdHJ1ZSwgaW52ZXJzZTogdHJ1ZSB9LCAvLyBhdHJpYnVpIG5vdmFzIHByb3ByaWVkYWRlcyBhbyBmaWVsZFxuICAgKiAgICAgeyBwcm9wZXJ0eTogJ3VwZGF0ZWQnLCB0YWc6IHRydWUgfSAvLyBpbmNsdWkgY2FtcG8gbm92b1xuICAgKiAgIF1cbiAgICogfVxuICAgKiBgYGBcbiAgICogPiAqKnZhbHVlKio6IGFueSA9IGF0cmlidWkgbm92byB2YWxvciBkbyBtb2RlbC5cbiAgICpcbiAgICogPiAqKmZpZWxkcyoqOiBgQXJyYXk8UG9EeW5hbWljVmlld0ZpZWxkPmAgPSBMaXN0YSBkZSBjYW1wb3MgcXVlIGRlc2VqYSBhbHRlcmFyIGFzIHByb3ByaWVkYWRlcyxcbiAgICogY2FzbyBlbnZpYXIgdW0gY2FtcG8gYSBtYWlzIHNlcsOhIGNyaWFkbyB1bSBub3ZvIGNhbXBvLlxuICAgKlxuICAgKiAtIFBhcmEgZXNjb25kZXIvcmVtb3ZlciBjYW1wb3MgcHJlY2lzYSBpbmZvcm1hciBubyBmaWVsZCBhIHByb3ByaWVkYWRlIGB2aXNpYmxlID0gZmFsc2VgLlxuICAgKlxuICAgKi9cbiAgQElucHV0KCdwLWxvYWQnKSBsb2FkOiBzdHJpbmcgfCBGdW5jdGlvbjtcblxuICB2aXNpYmxlRmllbGRzID0gW107XG4gIHNlcnZpY2U6IGFueTtcblxuICBwcml2YXRlIF9maWVsZHM6IEFycmF5PFBvRHluYW1pY1ZpZXdGaWVsZD4gPSBbXTtcbiAgcHJpdmF0ZSBfc2hvd0FsbFZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZhbHVlID0ge307XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGlzdGEgZGUgb2JqZXRvcyBxdWUgaW1wbGVtZW50YW0gYSBpbnRlcmZhY2UgYFBvRHluYW1pY1ZpZXdgLlxuICAgKlxuICAgKiA+IEV4OiBgWyB7IHByb3BlcnR5OiAnYWdlJyB9IF1gXG4gICAqXG4gICAqIFJlZ3JhcyBkZSB0aXBhZ2VtIGUgZm9ybWF0YcOnw6NvIGRvcyB2YWxvcmVzIGV4aWJpZG9zOlxuICAgKlxuICAgKiAtIENhc28gbyAqdHlwZSogaW5mb3JtYWRvIHNlamEgKmN1cnJlbmN5KiBlIG7Do28gc2VqYSBpbmZvcm1hZG8gbyAqZm9ybWF0KiBvIG1lc21vIHJlY2ViZSBcIidCUkwnLCAnc3ltYm9sJywgJzEuMi0yJ1wiXG4gICAqIGNvbW8gZm9ybWF0byBwYWRyw6NvLlxuICAgKiAtIENhc28gbyAqdHlwZSogaW5mb3JtYWRvIHNlamEgKmRhdGUqIGUgbsOjbyBzZWphIGluZm9ybWFkbyBvICpmb3JtYXQqIG8gbWVzbW8gcmVjZWJlICdkZC9NTS95eXl5JyBjb21vIGZvcm1hdG8gcGFkcsOjby5cbiAgICogLSBDYXNvIG8gKnR5cGUqIGluZm9ybWFkbyBzZWphICpkYXRlVGltZSogZSBuw6NvIHNlamEgaW5mb3JtYWRvIG8gKmZvcm1hdCogbyBtZXNtbyByZWNlYmUgJ2RkL01NL3l5eXkgSEg6bW06c3MnIGNvbW8gZm9ybWF0byBwYWRyw6NvLlxuICAgKiAtIENhc28gbyAqdHlwZSogaW5mb3JtYWRvIHNlamEgKm51bWJlciogZSBuw6NvIHNlamEgaW5mb3JtYWRvIG8gKmZvcm1hdCogbyBtZXNtbyBuw6NvIHNlcsOhIGZvcm1hdGFkby5cbiAgICogLSBDYXNvIG8gKnR5cGUqIGluZm9ybWFkbyBzZWphICp0aW1lKiBlIG7Do28gc2VqYSBpbmZvcm1hZG8gbyAqZm9ybWF0KiBvIG1lc21vIHJlY2ViZSAnSEg6bW06c3MuZmZmZmZmJyBjb21vIGZvcm1hdG8gcGFkcsOjby5cbiAgICpcbiAgICogPiBBcyBwcm9wcmllZGFkZXMgaW5mb3JtYWRhcyBzZXLDo28gZXhpYmlkYXMgbWVzbW8gbsOjbyBjb250ZW5kbyB2YWxvciBkZSByZWZlcsOqbmNpYSBubyBvYmpldG8gZGEgcHJvcHJpZWRhZGUgYHAtdmFsdWVgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgW11gXG4gICAqL1xuICBASW5wdXQoJ3AtZmllbGRzJykgc2V0IGZpZWxkcyhmaWVsZHM6IEFycmF5PFBvRHluYW1pY1ZpZXdGaWVsZD4pIHtcbiAgICB0aGlzLl9maWVsZHMgPSBBcnJheS5pc0FycmF5KGZpZWxkcykgPyBbLi4uZmllbGRzXSA6IFtdO1xuICB9XG5cbiAgZ2V0IGZpZWxkcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIHNlIGV4aWJpcsOhIHRvZGFzIGFzIGluZm9ybWHDp8O1ZXMgY29udGlkYXMgZGVudHJvIGRvIG9iamV0byBpbmZvcm1hZG8gbmEgcHJvcHJpZWRhZGUgYHAtdmFsdWVgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atc2hvdy1hbGwtdmFsdWUnKSBzZXQgc2hvd0FsbFZhbHVlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0FsbFZhbHVlID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gIH1cblxuICBnZXQgc2hvd0FsbFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93QWxsVmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9iamV0byBxdWUgc2Vyw6EgdXRpbGl6YWRvIHBhcmEgZXhpYmlyIGFzIGluZm9ybWHDp8O1ZXMgZGluw6JtaWNhcywgbyB2YWxvciBzZXLDoSByZWN1cGVyYWRvIGF0cmF2w6lzIGRvIGF0cmlidXRvICpwcm9wZXJ0eSpcbiAgICogZG9zIG9iamV0b3MgY29udGlkb3MgbmEgcHJvcHJpZGFkZSBgcC1maWVsZHNgLlxuICAgKlxuICAgKiA+IEV4OiBgeyBhZ2U6ICczNScgfWBcbiAgICovXG4gIEBJbnB1dCgncC12YWx1ZScpIHNldCB2YWx1ZSh2YWx1ZTogb2JqZWN0KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZSAmJiBpc1R5cGVvZih2YWx1ZSwgJ29iamVjdCcpID8gdmFsdWUgOiB7fTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGN1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxuICAgIHByaXZhdGUgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlLFxuICAgIHByaXZhdGUgdGltZVBpcGU6IFBvVGltZVBpcGUsXG4gICAgcHJpdmF0ZSB0aXRsZUNhc2VQaXBlOiBUaXRsZUNhc2VQaXBlLFxuICAgIHByb3RlY3RlZCBkeW5hbWljVmlld1NlcnZpY2U6IFBvRHluYW1pY1ZpZXdTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjb21ib0ZpbHRlclNlcnZpY2U6IFBvQ29tYm9GaWx0ZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBtdWx0aXNlbGVjdEZpbHRlclNlcnZpY2U6IFBvTXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlXG4gICkge31cblxuICBwcm90ZWN0ZWQgZ2V0RmllbGRPcmRlcihmaWVsZDogUG9EeW5hbWljVmlld0ZpZWxkLCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBpbmRleCArIDE7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzLmZpbmRJbmRleChlID0+IGUub3JkZXIgPT09IHBvc2l0aW9uKSA+IC0xID8gdGhpcy5nZXRGaWVsZE9yZGVyKGZpZWxkLCBwb3NpdGlvbikgOiBwb3NpdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb25maWd1cmVkRmllbGRzKHVzZVNlYXJjaFNlcnZpY2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbmV3RmllbGRzID0gW107XG5cbiAgICB0aGlzLmZpZWxkcy5mb3JFYWNoKChmaWVsZCwgaW5kZXgpID0+IHtcbiAgICAgIGZpZWxkLm9yZGVyID0gZmllbGQub3JkZXIgfHwgdGhpcy5nZXRGaWVsZE9yZGVyKGZpZWxkLCBpbmRleCk7XG5cbiAgICAgIGlmICghaXNWaXNpYmxlRmllbGQoZmllbGQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmaWVsZC5zZWFyY2hTZXJ2aWNlICYmICFmaWVsZC5vcHRpb25zU2VydmljZSkge1xuICAgICAgICBuZXdGaWVsZHMucHVzaCh0aGlzLmNyZWF0ZUZpZWxkKGZpZWxkKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFzVmFsdWUgPVxuICAgICAgICB0aGlzLnZhbHVlW2ZpZWxkLnByb3BlcnR5XT8ubGVuZ3RoIHx8XG4gICAgICAgICghQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlW2ZpZWxkLnByb3BlcnR5XSkgJiYgdGhpcy52YWx1ZVtmaWVsZC5wcm9wZXJ0eV0gJiYgdXNlU2VhcmNoU2VydmljZSk7XG5cbiAgICAgIGlmIChoYXNWYWx1ZSkge1xuICAgICAgICBjb25zdCBfZmllbGQgPSB0aGlzLnJldHVyblZhbHVlcyh7IC4uLmZpZWxkIH0sICcnKTtcbiAgICAgICAgbmV3RmllbGRzLnB1c2goX2ZpZWxkKTtcblxuICAgICAgICBpZiAoZmllbGQuc2VhcmNoU2VydmljZSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgZmllbGQuc2VhcmNoU2VydmljZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IGZpZWxkLnNlYXJjaFNlcnZpY2UgYXMgUG9EeW5hbWljVmlld1NlcnZpY2U7XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmllbGQuc2VhcmNoU2VydmljZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IHRoaXMuZHluYW1pY1ZpZXdTZXJ2aWNlO1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNldENvbmZpZyhmaWVsZC5zZWFyY2hTZXJ2aWNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZmllbGQub3B0aW9uc1NlcnZpY2UpIHtcbiAgICAgICAgICBpZiAoZmllbGQub3B0aW9uc011bHRpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGZpZWxkLm9wdGlvbnNTZXJ2aWNlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UgPSBmaWVsZC5vcHRpb25zU2VydmljZSBhcyBQb011bHRpc2VsZWN0RmlsdGVyU2VydmljZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IHRoaXMubXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlO1xuICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuY29uZmlnUHJvcGVydGllcyhmaWVsZC5vcHRpb25zU2VydmljZSwgZmllbGQuZmllbGRMYWJlbCwgZmllbGQuZmllbGRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZmllbGQub3B0aW9uc1NlcnZpY2UgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IGZpZWxkLm9wdGlvbnNTZXJ2aWNlIGFzIFBvQ29tYm9GaWx0ZXJTZXJ2aWNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlID0gdGhpcy5jb21ib0ZpbHRlclNlcnZpY2U7XG4gICAgICAgICAgICAgIHRoaXMuc2VydmljZS5jb25maWdQcm9wZXJ0aWVzKGZpZWxkLm9wdGlvbnNTZXJ2aWNlLCBmaWVsZC5maWVsZExhYmVsLCBmaWVsZC5maWVsZFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNyZWF0ZUZpZWxkV2l0aFNlcnZpY2UoZmllbGQsIG5ld0ZpZWxkcywgX2ZpZWxkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzb3J0RmllbGRzKG5ld0ZpZWxkcyk7XG4gIH1cblxuICAvLyByZXRvcm5hIGZpZWxkcyBsaWdhZG8gYW8gdmFsdWUgbWFpcyBvcyBhdHJpYnV0b3MgZG8gdmFsdWUgcXVlIG7Do28gcG9zc3VpYW0gZmllbGRzLlxuICBwcm90ZWN0ZWQgZ2V0TWVyZ2VkRmllbGRzKCkge1xuICAgIGNvbnN0IG1lcmdlZEZpZWxkcyA9IFsuLi50aGlzLmdldENvbmZpZ3VyZWRGaWVsZHMoKV07XG5cbiAgICB0aGlzLmdldFZhbHVlRmllbGRzKCkuZm9yRWFjaCh2YWx1ZUZpZWxkID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkSW5kZXggPSBtZXJnZWRGaWVsZHMuZmluZEluZGV4KGZpZWxkID0+IGZpZWxkLnByb3BlcnR5ID09PSB2YWx1ZUZpZWxkLnByb3BlcnR5KTtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gdmFsdWVGaWVsZC5wcm9wZXJ0eTtcblxuICAgICAgaWYgKGZpZWxkSW5kZXggPT09IC0xKSB7XG4gICAgICAgIG1lcmdlZEZpZWxkcy5wdXNoKHRoaXMuY3JlYXRlRmllbGQoeyBwcm9wZXJ0eSB9KSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWVyZ2VkRmllbGRzO1xuICB9XG5cbiAgLy8gcmV0b3JuYSBvIG9iamV0byB2YWx1ZSBjb21vIGZpZWxkcy5cbiAgcHJvdGVjdGVkIGdldFZhbHVlRmllbGRzKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnZhbHVlKS5tYXAocHJvcGVydHkgPT4gdGhpcy5jcmVhdGVGaWVsZCh7IHByb3BlcnR5IH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRmllbGQoZmllbGQ6IFBvRHluYW1pY1ZpZXdGaWVsZCkge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gZmllbGQucHJvcGVydHk7XG4gICAgbGV0IHZhbHVlO1xuICAgIGlmIChmaWVsZC5pc0FycmF5T3JPYmplY3QgJiYgdGhpcy52YWx1ZVtwcm9wZXJ0eV0pIHtcbiAgICAgIHZhbHVlID0gdGhpcy50cmFuc2Zvcm1BcnJheVZhbHVlKHRoaXMudmFsdWVbcHJvcGVydHldLCBmaWVsZCk7XG4gICAgfSBlbHNlIGlmIChmaWVsZC5maWVsZExhYmVsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtRmllbGRMYWJlbChwcm9wZXJ0eSwgZmllbGQpO1xuICAgIH1cblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50cmFuc2Zvcm1WYWx1ZShmaWVsZC50eXBlLCB0aGlzLnZhbHVlW3Byb3BlcnR5XSwgZmllbGQuZm9ybWF0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yZXR1cm5WYWx1ZXMoZmllbGQsIHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRmllbGRXaXRoU2VydmljZShmaWVsZDogUG9EeW5hbWljVmlld0ZpZWxkLCBuZXdGaWVsZHM/LCBvbGRGaWVsZD8pIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IGZpZWxkLnByb3BlcnR5O1xuXG4gICAgdGhpcy5zZWFyY2hCeUlkKHRoaXMudmFsdWVbcHJvcGVydHldLCBmaWVsZCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcmVzcG9uc2U7XG4gICAgICBjb25zdCBhbGxWYWx1ZXMgPSB0aGlzLnJldHVyblZhbHVlcyhmaWVsZCwgdmFsdWUpO1xuICAgICAgY29uc3Qgb2xkRmllbGRJbmRleCA9IG5ld0ZpZWxkcy5pbmRleE9mKG5ld0ZpZWxkcy5maW5kKGZpZWxkID0+IGZpZWxkID09PSBvbGRGaWVsZCkpO1xuICAgICAgbmV3RmllbGRzLnNwbGljZShvbGRGaWVsZEluZGV4LCAxLCBhbGxWYWx1ZXMpO1xuICAgICAgc29ydEZpZWxkcyhuZXdGaWVsZHMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXR1cm5WYWx1ZXMoZmllbGQ6IFBvRHluYW1pY1ZpZXdGaWVsZCwgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gZmllbGQucHJvcGVydHk7XG4gICAgY29uc3QgY2xhc3Nlc0dyaWRDb2x1bW5zID0gZ2V0R3JpZENvbHVtbnNDbGFzc2VzKFxuICAgICAgZmllbGQuZ3JpZENvbHVtbnMsXG4gICAgICBmaWVsZC5vZmZzZXRDb2x1bW5zLFxuICAgICAge1xuICAgICAgICBzbUdyaWQ6IGZpZWxkLmdyaWRTbUNvbHVtbnMsXG4gICAgICAgIG1kR3JpZDogZmllbGQuZ3JpZE1kQ29sdW1ucyxcbiAgICAgICAgbGdHcmlkOiBmaWVsZC5ncmlkTGdDb2x1bW5zLFxuICAgICAgICB4bEdyaWQ6IGZpZWxkLmdyaWRYbENvbHVtbnNcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNtT2Zmc2V0OiBmaWVsZC5vZmZzZXRTbUNvbHVtbnMsXG4gICAgICAgIG1kT2Zmc2V0OiBmaWVsZC5vZmZzZXRNZENvbHVtbnMsXG4gICAgICAgIGxnT2Zmc2V0OiBmaWVsZC5vZmZzZXRMZ0NvbHVtbnMsXG4gICAgICAgIHhsT2Zmc2V0OiBmaWVsZC5vZmZzZXRYbENvbHVtbnNcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNtUHVsbDogZmllbGQuZ3JpZFNtUHVsbCxcbiAgICAgICAgbWRQdWxsOiBmaWVsZC5ncmlkTWRQdWxsLFxuICAgICAgICBsZ1B1bGw6IGZpZWxkLmdyaWRMZ1B1bGwsXG4gICAgICAgIHhsUHVsbDogZmllbGQuZ3JpZFhsUHVsbFxuICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJvcGVydHksXG4gICAgICB2YWx1ZSxcbiAgICAgIGxhYmVsOiB0aGlzLnRpdGxlQ2FzZVBpcGUudHJhbnNmb3JtKHByb3BlcnR5KSxcbiAgICAgIGNzc0NsYXNzOiBjbGFzc2VzR3JpZENvbHVtbnMsXG4gICAgICAuLi5maWVsZFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNlYXJjaEJ5SWQodmFsdWU6IGFueSwgZmllbGQ6IFBvRHluYW1pY1ZpZXdGaWVsZCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSAhPT0gJycpIHtcbiAgICAgIGlmIChmaWVsZC5vcHRpb25zTXVsdGkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxuICAgICAgICAgIC5nZXRPYmplY3RzQnlWYWx1ZXModmFsdWUsIGZpZWxkLnBhcmFtcylcbiAgICAgICAgICAucGlwZShtYXAocmVzID0+IHRoaXMudHJhbnNmb3JtQXJyYXlWYWx1ZShyZXMsIGZpZWxkKSkpXG4gICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZihudWxsKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxuICAgICAgICAgIC5nZXRPYmplY3RCeVZhbHVlKHZhbHVlLCBmaWVsZC5wYXJhbXMpXG4gICAgICAgICAgLnBpcGUobWFwKHJlcyA9PiB0aGlzLnRyYW5zZm9ybUFycmF5VmFsdWUocmVzLCBmaWVsZCkpKVxuICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtQXJyYXlWYWx1ZSh2YWx1ZVByb3BlcnR5OiBhbnksIGZpZWxkOiBQb0R5bmFtaWNWaWV3RmllbGQpIHtcbiAgICBjb25zdCB2YWx1ZUFycmF5ID0gQXJyYXkuaXNBcnJheSh2YWx1ZVByb3BlcnR5KSA/IHZhbHVlUHJvcGVydHkgOiBbdmFsdWVQcm9wZXJ0eV07XG4gICAgbGV0IGxhYmVsczogQXJyYXk8c3RyaW5nPjtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLmZvcm1hdCkpIHtcbiAgICAgIGxhYmVscyA9IHZhbHVlQXJyYXkubWFwKG9iamVjdERhdGEgPT4gdGhpcy5mb3JtYXRGaWVsZChvYmplY3REYXRhLCBmaWVsZC5mb3JtYXQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYXJyYXlXaXRoTGFiZWwgPSB2YWx1ZUFycmF5Lm1hcChpdGVtID0+ICh7XG4gICAgICAgIHZhbHVlOiBpdGVtW2ZpZWxkLmZpZWxkVmFsdWVdIHx8IGl0ZW0udmFsdWUsXG4gICAgICAgIGxhYmVsOiBpdGVtW2ZpZWxkLmZpZWxkTGFiZWxdIHx8IGl0ZW0ubGFiZWxcbiAgICAgIH0pKTtcblxuICAgICAgbGFiZWxzID0gYXJyYXlXaXRoTGFiZWwubWFwKG9wdGlvblZhbHVlID0+IHtcbiAgICAgICAgaWYgKG9wdGlvblZhbHVlLmxhYmVsKSB7XG4gICAgICAgICAgY29uc3QgbGFiZWxUcmFuZm9ybWVkID0gdGhpcy50cmFuc2Zvcm1WYWx1ZShmaWVsZC50eXBlLCBvcHRpb25WYWx1ZS5sYWJlbCwgZmllbGQuZm9ybWF0KTtcbiAgICAgICAgICBpZiAoZmllbGQuY29uY2F0TGFiZWxWYWx1ZSAmJiBvcHRpb25WYWx1ZS52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke2xhYmVsVHJhbmZvcm1lZH0gLSAke29wdGlvblZhbHVlLnZhbHVlfWA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBsYWJlbFRyYW5mb3JtZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAobGFiZWxzWzBdICE9PSB1bmRlZmluZWQgJiYgbGFiZWxzLmpvaW4oKSkge1xuICAgICAgcmV0dXJuIGxhYmVscy5qb2luKCcsICcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZVByb3BlcnR5ID0gJyc7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtRmllbGRMYWJlbChwcm9wZXJ0eTogc3RyaW5nLCBmaWVsZDogUG9EeW5hbWljVmlld0ZpZWxkKSB7XG4gICAgaWYgKGZpZWxkLmNvbmNhdExhYmVsVmFsdWUgJiYgZmllbGQuZmllbGRMYWJlbCAmJiBmaWVsZC5maWVsZFZhbHVlICYmICFmaWVsZC5pc0FycmF5T3JPYmplY3QpIHtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLnRyYW5zZm9ybVZhbHVlKGZpZWxkLnR5cGUsIHRoaXMudmFsdWVbZmllbGQuZmllbGRMYWJlbF0sIGZpZWxkLmZvcm1hdCk7XG4gICAgICByZXR1cm4gYCR7dHJhbnNmb3JtZWRWYWx1ZX0gLSAke3RoaXMudmFsdWVbZmllbGQuZmllbGRWYWx1ZV19YDtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQuZmllbGRMYWJlbCAmJiAhZmllbGQuY29uY2F0TGFiZWxWYWx1ZSAmJiAhZmllbGQuaXNBcnJheU9yT2JqZWN0KSB7XG4gICAgICB0aGlzLnZhbHVlW3Byb3BlcnR5XSA9IHRoaXMudmFsdWVbZmllbGQuZmllbGRMYWJlbF07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybVZhbHVlKHR5cGU6IHN0cmluZywgdmFsdWUsIGZvcm1hdCkge1xuICAgIGxldCB0cmFuc2Zvcm1lZFZhbHVlID0gdmFsdWU7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgdHJhbnNmb3JtZWRWYWx1ZSA9IHRoaXMuY3VycmVuY3lQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0IHx8ICdCUkwnLCAnc3ltYm9sJywgJzEuMi0yJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgIHRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0IHx8ICdkZC9NTS95eXl5Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGF0ZVRpbWUnOlxuICAgICAgICB0cmFuc2Zvcm1lZFZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCB8fCAnZGQvTU0veXl5eSBISDptbTpzcycpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0aW1lJzpcbiAgICAgICAgdHJhbnNmb3JtZWRWYWx1ZSA9IHRoaXMudGltZVBpcGUudHJhbnNmb3JtKHZhbHVlLCBmb3JtYXQgfHwgJ0hIOm1tOnNzLmZmZmZmZicpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNmb3JtZWRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RmllbGQob2JqZWN0U2VsZWN0ZWQsIHByb3BlcnRpZXMpIHtcbiAgICBsZXQgZm9ybWF0dGVkRmllbGQ7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydGllcykpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICBpZiAob2JqZWN0U2VsZWN0ZWQgJiYgb2JqZWN0U2VsZWN0ZWRbcHJvcGVydHldKSB7XG4gICAgICAgICAgaWYgKCFmb3JtYXR0ZWRGaWVsZCkge1xuICAgICAgICAgICAgZm9ybWF0dGVkRmllbGQgPSBvYmplY3RTZWxlY3RlZFtwcm9wZXJ0eV07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZEZpZWxkICs9ICcgLSAnICsgb2JqZWN0U2VsZWN0ZWRbcHJvcGVydHldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGVkRmllbGQ7XG4gIH1cbn1cbiJdfQ==
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZHluYW1pYy12aWV3LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWR5bmFtaWMvcG8tZHluYW1pYy12aWV3L3BvLWR5bmFtaWMtdmlldy1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdFLE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFFdkU7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsbUJBQW1CO0lBMEd2RDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0U7SUFDQTtJQUNBO0lBaEhaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWdDRztJQUNjLElBQUksQ0FBb0I7SUFFekMsT0FBTyxDQUFNO0lBRUwsT0FBTyxHQUE4QixFQUFFLENBQUM7SUFDeEMsYUFBYSxHQUFZLEtBQUssQ0FBQztJQUMvQixNQUFNLEdBQUcsRUFBRSxDQUFDO0lBRXBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQkc7SUFDSCxJQUF1QixNQUFNLENBQUMsTUFBaUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFD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LFFBQVEsSUFBSSxVQUFVLEVBQUU7Z0JBQ2pDLElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDOUMsSUFBSSxDQUFDLGNBQWMsRUFBRTt3QkFDbkIsY0FBYyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDM0M7eUJBQU07d0JBQ0wsY0FBYyxJQUFJLEtBQUssR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQ3BEO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7b0ZBelhVLDBCQUEwQjs2REFBMUIsMEJBQTBCOztpRkFBMUIsMEJBQTBCO2NBRHRDLFNBQVM7a1FBbUNTLElBQUk7a0JBQXBCLEtBQUs7bUJBQUMsUUFBUTtZQThCUSxNQUFNO2tCQUE1QixLQUFLO21CQUFDLFVBQVU7WUFpQmMsWUFBWTtrQkFBMUMsS0FBSzttQkFBQyxrQkFBa0I7WUFnQkgsS0FBSztrQkFBMUIsS0FBSzttQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlLCBEYXRlUGlwZSwgRGVjaW1hbFBpcGUsIFRpdGxlQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQb1RpbWVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvcG8tdGltZS9wby10aW1lLnBpcGUnO1xuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiwgaXNUeXBlb2YsIHNvcnRGaWVsZHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0R3JpZENvbHVtbnNDbGFzc2VzLCBpc1Zpc2libGVGaWVsZCB9IGZyb20gJy4uL3BvLWR5bmFtaWMudXRpbCc7XG5pbXBvcnQgeyBQb0R5bmFtaWNWaWV3RmllbGQgfSBmcm9tICcuL3BvLWR5bmFtaWMtdmlldy1maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9EeW5hbWljVmlld1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLWR5bmFtaWMtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7IFBvQ29tYm9GaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcG8tZmllbGQvcG8tY29tYm8vcG8tY29tYm8tZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9NdWx0aXNlbGVjdEZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9wby1maWVsZC9wby1tdWx0aXNlbGVjdC9wby1tdWx0aXNlbGVjdC1maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQb0R5bmFtaWNTaGFyZWRCYXNlIH0gZnJvbSAnLi4vc2hhcmVkL3BvLWR5bmFtaWMtc2hhcmVkLWJhc2UnO1xuXG4vKipcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBDb21wb25lbnRlIHBhcmEgbGlzdGFyIGRhZG9zIGRpbmFtaWNhbWVudGUgYSBwYXJ0aXIgZGUgdW1hIGxpc3RhIGRlIG9iamV0b3MuXG4gKlxuICogPiBQb3IgcGFkcsOjbyBlc3NlIGNvbXBvbmVudGUgY3JpYSBgcG8taW5mb2AgcGFyYSBleGliacOnw6NvLCDDqSBwb3Nzw612ZWwgY3JpYXIgYHBvLXRhZ2AgcGFzc2FuZG8gYSBwcm9wcmllZGFkZSB7IHRhZzogdHJ1ZSB9LlxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUG9EeW5hbWljVmlld0Jhc2VDb21wb25lbnQgZXh0ZW5kcyBQb0R5bmFtaWNTaGFyZWRCYXNlIHtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogUG9zc2liaWxpdGEgZXhlY3V0YXIgdW1hIGZ1bsOnw6NvIHF1YW5kbyBvIGNvbXBvbmVudGUgw6kgaW5pY2lhbGl6YWRvLlxuICAgKlxuICAgKiBBIHByb3ByaWVkYWRlIGFjZWl0YSBvcyBzZWd1aW50ZXMgdGlwb3M6XG4gICAqIC0gKipTdHJpbmcqKjogRW5kcG9pbnQgdXNhZG8gcGVsbyBjb21wb25lbnRlIHBhcmEgcmVxdWlzacOnw6NvIHZpYSBgUE9TVGAuXG4gICAqIC0gKipGdW5jdGlvbioqOiBNw6l0b2RvIHF1ZSBzZXLDoSBleGVjdXRhZG8gbmEgaW5pY2lhbGl6YcOnw6NvIGRvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFBhcmEgb3MgZG9pcyB0aXBvcyBkZSB1dGlsaXphw6fDo28gZGEgcHJvcHJpZWRhZGUgZXNwZXJhLXNlIG8gc2VndWludGUgcmV0b3JubzpcbiAgICpcbiAgICogYGBgXG4gICAqIHtcbiAgICogICB2YWx1ZToge1xuICAgKiAgICAgY25wajogJyoqKioqKioqKioqKioqJywgLy8gYWx0ZXJhIHZhbG9yIGRvIGNhbXBvXG4gICAqICAgICB1cGRhdGVkOiAobmV3IERhdGUoKSkudG9TdHJpbmcoKSAvLyBhdHJpYnVpIHZhbG9yIGFvIGNhbXBvIG5vdm9cbiAgICogICB9LFxuICAgKiAgIGZpZWxkczogW1xuICAgKiAgICAgeyBwcm9wZXJ0eTogJ2NucGonLCB0YWc6IHRydWUsIGludmVyc2U6IHRydWUgfSwgLy8gYXRyaWJ1aSBub3ZhcyBwcm9wcmllZGFkZXMgYW8gZmllbGRcbiAgICogICAgIHsgcHJvcGVydHk6ICd1cGRhdGVkJywgdGFnOiB0cnVlIH0gLy8gaW5jbHVpIGNhbXBvIG5vdm9cbiAgICogICBdXG4gICAqIH1cbiAgICogYGBgXG4gICAqID4gKip2YWx1ZSoqOiBhbnkgPSBhdHJpYnVpIG5vdm8gdmFsb3IgZG8gbW9kZWwuXG4gICAqXG4gICAqID4gKipmaWVsZHMqKjogYEFycmF5PFBvRHluYW1pY1ZpZXdGaWVsZD5gID0gTGlzdGEgZGUgY2FtcG9zIHF1ZSBkZXNlamEgYWx0ZXJhciBhcyBwcm9wcmllZGFkZXMsXG4gICAqIGNhc28gZW52aWFyIHVtIGNhbXBvIGEgbWFpcyBzZXLDoSBjcmlhZG8gdW0gbm92byBjYW1wby5cbiAgICpcbiAgICogLSBQYXJhIGVzY29uZGVyL3JlbW92ZXIgY2FtcG9zIHByZWNpc2EgaW5mb3JtYXIgbm8gZmllbGQgYSBwcm9wcmllZGFkZSBgdmlzaWJsZSA9IGZhbHNlYC5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgncC1sb2FkJykgbG9hZDogc3RyaW5nIHwgRnVuY3Rpb247XG5cbiAgc2VydmljZTogYW55O1xuXG4gIHByaXZhdGUgX2ZpZWxkczogQXJyYXk8UG9EeW5hbWljVmlld0ZpZWxkPiA9IFtdO1xuICBwcml2YXRlIF9zaG93QWxsVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdmFsdWUgPSB7fTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBMaXN0YSBkZSBvYmpldG9zIHF1ZSBpbXBsZW1lbnRhbSBhIGludGVyZmFjZSBgUG9EeW5hbWljVmlld2AuXG4gICAqXG4gICAqID4gRXg6IGBbIHsgcHJvcGVydHk6ICdhZ2UnIH0gXWBcbiAgICpcbiAgICogUmVncmFzIGRlIHRpcGFnZW0gZSBmb3JtYXRhw6fDo28gZG9zIHZhbG9yZXMgZXhpYmlkb3M6XG4gICAqXG4gICAqIC0gQ2FzbyBvICp0eXBlKiBpbmZvcm1hZG8gc2VqYSAqY3VycmVuY3kqIGUgbsOjbyBzZWphIGluZm9ybWFkbyBvICpmb3JtYXQqIG8gbWVzbW8gcmVjZWJlIFwiJ0JSTCcsICdzeW1ib2wnLCAnMS4yLTInXCJcbiAgICogY29tbyBmb3JtYXRvIHBhZHLDo28uXG4gICAqIC0gQ2FzbyBvICp0eXBlKiBpbmZvcm1hZG8gc2VqYSAqZGF0ZSogZSBuw6NvIHNlamEgaW5mb3JtYWRvIG8gKmZvcm1hdCogbyBtZXNtbyByZWNlYmUgJ2RkL01NL3l5eXknIGNvbW8gZm9ybWF0byBwYWRyw6NvLlxuICAgKiAtIENhc28gbyAqdHlwZSogaW5mb3JtYWRvIHNlamEgKmRhdGVUaW1lKiBlIG7Do28gc2VqYSBpbmZvcm1hZG8gbyAqZm9ybWF0KiBvIG1lc21vIHJlY2ViZSAnZGQvTU0veXl5eSBISDptbTpzcycgY29tbyBmb3JtYXRvIHBhZHLDo28uXG4gICAqIC0gQ2FzbyBvICp0eXBlKiBpbmZvcm1hZG8gc2VqYSAqbnVtYmVyKiBlIG7Do28gc2VqYSBpbmZvcm1hZG8gbyAqZm9ybWF0KiBvIG1lc21vIG7Do28gc2Vyw6EgZm9ybWF0YWRvLlxuICAgKiAtIENhc28gbyAqdHlwZSogaW5mb3JtYWRvIHNlamEgKnRpbWUqIGUgbsOjbyBzZWphIGluZm9ybWFkbyBvICpmb3JtYXQqIG8gbWVzbW8gcmVjZWJlICdISDptbTpzcy5mZmZmZmYnIGNvbW8gZm9ybWF0byBwYWRyw6NvLlxuICAgKlxuICAgKiA+IEFzIHByb3ByaWVkYWRlcyBpbmZvcm1hZGFzIHNlcsOjbyBleGliaWRhcyBtZXNtbyBuw6NvIGNvbnRlbmRvIHZhbG9yIGRlIHJlZmVyw6puY2lhIG5vIG9iamV0byBkYSBwcm9wcmllZGFkZSBgcC12YWx1ZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBbXWBcbiAgICovXG4gIEBJbnB1dCgncC1maWVsZHMnKSBzZXQgZmllbGRzKGZpZWxkczogQXJyYXk8UG9EeW5hbWljVmlld0ZpZWxkPikge1xuICAgIHRoaXMuX2ZpZWxkcyA9IEFycmF5LmlzQXJyYXkoZmllbGRzKSA/IFsuLi5maWVsZHNdIDogW107XG4gIH1cblxuICBnZXQgZmllbGRzKCkge1xuICAgIHJldHVybiB0aGlzLl9maWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2Egc2UgZXhpYmlyw6EgdG9kYXMgYXMgaW5mb3JtYcOnw7VlcyBjb250aWRhcyBkZW50cm8gZG8gb2JqZXRvIGluZm9ybWFkbyBuYSBwcm9wcmllZGFkZSBgcC12YWx1ZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1zaG93LWFsbC12YWx1ZScpIHNldCBzaG93QWxsVmFsdWUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93QWxsVmFsdWUgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzaG93QWxsVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dBbGxWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIHF1ZSBzZXLDoSB1dGlsaXphZG8gcGFyYSBleGliaXIgYXMgaW5mb3JtYcOnw7VlcyBkaW7Dom1pY2FzLCBvIHZhbG9yIHNlcsOhIHJlY3VwZXJhZG8gYXRyYXbDqXMgZG8gYXRyaWJ1dG8gKnByb3BlcnR5KlxuICAgKiBkb3Mgb2JqZXRvcyBjb250aWRvcyBuYSBwcm9wcmlkYWRlIGBwLWZpZWxkc2AuXG4gICAqXG4gICAqID4gRXg6IGB7IGFnZTogJzM1JyB9YFxuICAgKi9cbiAgQElucHV0KCdwLXZhbHVlJykgc2V0IHZhbHVlKHZhbHVlOiBvYmplY3QpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlICYmIGlzVHlwZW9mKHZhbHVlLCAnb2JqZWN0JykgPyB2YWx1ZSA6IHt9O1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXG4gICAgcHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsXG4gICAgcHJpdmF0ZSB0aW1lUGlwZTogUG9UaW1lUGlwZSxcbiAgICBwcml2YXRlIHRpdGxlQ2FzZVBpcGU6IFRpdGxlQ2FzZVBpcGUsXG4gICAgcHJvdGVjdGVkIGR5bmFtaWNWaWV3U2VydmljZTogUG9EeW5hbWljVmlld1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNvbWJvRmlsdGVyU2VydmljZTogUG9Db21ib0ZpbHRlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG11bHRpc2VsZWN0RmlsdGVyU2VydmljZTogUG9NdWx0aXNlbGVjdEZpbHRlclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRGaWVsZE9yZGVyUmV0cm9hY3RpdmUocG9zaXRpb246IG51bWJlciwgaW5kZXg6IG51bWJlciA9IDEpOiBudW1iZXIge1xuICAgIGlmIChwb3NpdGlvbiA9PT0gaW5kZXgpIHtcbiAgICAgIHJldHVybiBwb3NpdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzLmZpbmRJbmRleChmaWVsZCA9PiBmaWVsZC5vcmRlciA9PT0gaW5kZXgpID4gLTFcbiAgICAgID8gdGhpcy5nZXRGaWVsZE9yZGVyUmV0cm9hY3RpdmUocG9zaXRpb24sIGluZGV4ICsgMSlcbiAgICAgIDogaW5kZXg7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RmllbGRPcmRlcihmaWVsZDogUG9EeW5hbWljVmlld0ZpZWxkLCBpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZ2V0RmllbGRPcmRlclJldHJvYWN0aXZlKGluZGV4ICsgMSk7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzLmZpbmRJbmRleChlID0+IGUub3JkZXIgPT09IHBvc2l0aW9uKSA+IC0xID8gdGhpcy5nZXRGaWVsZE9yZGVyKGZpZWxkLCBwb3NpdGlvbikgOiBwb3NpdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb25maWd1cmVkRmllbGRzKHVzZVNlYXJjaFNlcnZpY2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbmV3RmllbGRzID0gW107XG5cbiAgICB0aGlzLmZpZWxkcy5mb3JFYWNoKChmaWVsZCwgaW5kZXgpID0+IHtcbiAgICAgIGZpZWxkLm9yZGVyID0gZmllbGQub3JkZXIgfHwgdGhpcy5nZXRGaWVsZE9yZGVyKGZpZWxkLCBpbmRleCk7XG5cbiAgICAgIGlmICghaXNWaXNpYmxlRmllbGQoZmllbGQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmaWVsZC5zZWFyY2hTZXJ2aWNlICYmICFmaWVsZC5vcHRpb25zU2VydmljZSkge1xuICAgICAgICBuZXdGaWVsZHMucHVzaCh0aGlzLmNyZWF0ZUZpZWxkKGZpZWxkKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFzVmFsdWUgPVxuICAgICAgICB0aGlzLnZhbHVlW2ZpZWxkLnByb3BlcnR5XT8ubGVuZ3RoIHx8XG4gICAgICAgICghQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlW2ZpZWxkLnByb3BlcnR5XSkgJiYgdGhpcy52YWx1ZVtmaWVsZC5wcm9wZXJ0eV0gJiYgdXNlU2VhcmNoU2VydmljZSk7XG5cbiAgICAgIGlmIChoYXNWYWx1ZSkge1xuICAgICAgICBjb25zdCBfZmllbGQgPSB0aGlzLnJldHVyblZhbHVlcyh7IC4uLmZpZWxkIH0sICcnKTtcbiAgICAgICAgbmV3RmllbGRzLnB1c2goX2ZpZWxkKTtcblxuICAgICAgICBpZiAoZmllbGQuc2VhcmNoU2VydmljZSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgZmllbGQuc2VhcmNoU2VydmljZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IGZpZWxkLnNlYXJjaFNlcnZpY2UgYXMgUG9EeW5hbWljVmlld1NlcnZpY2U7XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmllbGQuc2VhcmNoU2VydmljZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IHRoaXMuZHluYW1pY1ZpZXdTZXJ2aWNlO1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNldENvbmZpZyhmaWVsZC5zZWFyY2hTZXJ2aWNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZmllbGQub3B0aW9uc1NlcnZpY2UpIHtcbiAgICAgICAgICBpZiAoZmllbGQub3B0aW9uc011bHRpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGZpZWxkLm9wdGlvbnNTZXJ2aWNlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UgPSBmaWVsZC5vcHRpb25zU2VydmljZSBhcyBQb011bHRpc2VsZWN0RmlsdGVyU2VydmljZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IHRoaXMubXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlO1xuICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuY29uZmlnUHJvcGVydGllcyhmaWVsZC5vcHRpb25zU2VydmljZSwgZmllbGQuZmllbGRMYWJlbCwgZmllbGQuZmllbGRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZmllbGQub3B0aW9uc1NlcnZpY2UgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IGZpZWxkLm9wdGlvbnNTZXJ2aWNlIGFzIFBvQ29tYm9GaWx0ZXJTZXJ2aWNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlID0gdGhpcy5jb21ib0ZpbHRlclNlcnZpY2U7XG4gICAgICAgICAgICAgIHRoaXMuc2VydmljZS5jb25maWdQcm9wZXJ0aWVzKGZpZWxkLm9wdGlvbnNTZXJ2aWNlLCBmaWVsZC5maWVsZExhYmVsLCBmaWVsZC5maWVsZFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNyZWF0ZUZpZWxkV2l0aFNlcnZpY2UoZmllbGQsIG5ld0ZpZWxkcywgX2ZpZWxkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IF9zb3J0ZWRGaWVsZCA9IHNvcnRGaWVsZHMobmV3RmllbGRzKTtcbiAgICB0aGlzLmVuc3VyZUZpZWxkSGFzQ29udGFpbmVyKF9zb3J0ZWRGaWVsZCk7XG5cbiAgICByZXR1cm4gX3NvcnRlZEZpZWxkO1xuICB9XG5cbiAgLy8gcmV0b3JuYSBmaWVsZHMgbGlnYWRvIGFvIHZhbHVlIG1haXMgb3MgYXRyaWJ1dG9zIGRvIHZhbHVlIHF1ZSBuw6NvIHBvc3N1aWFtIGZpZWxkcy5cbiAgcHJvdGVjdGVkIGdldE1lcmdlZEZpZWxkcygpIHtcbiAgICBjb25zdCBtZXJnZWRGaWVsZHMgPSBbLi4udGhpcy5nZXRDb25maWd1cmVkRmllbGRzKCldO1xuXG4gICAgdGhpcy5nZXRWYWx1ZUZpZWxkcygpLmZvckVhY2godmFsdWVGaWVsZCA9PiB7XG4gICAgICBjb25zdCBmaWVsZEluZGV4ID0gbWVyZ2VkRmllbGRzLmZpbmRJbmRleChmaWVsZCA9PiBmaWVsZC5wcm9wZXJ0eSA9PT0gdmFsdWVGaWVsZC5wcm9wZXJ0eSk7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHZhbHVlRmllbGQucHJvcGVydHk7XG5cbiAgICAgIGlmIChmaWVsZEluZGV4ID09PSAtMSkge1xuICAgICAgICBtZXJnZWRGaWVsZHMucHVzaCh0aGlzLmNyZWF0ZUZpZWxkKHsgcHJvcGVydHkgfSkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1lcmdlZEZpZWxkcztcbiAgfVxuXG4gIC8vIHJldG9ybmEgbyBvYmpldG8gdmFsdWUgY29tbyBmaWVsZHMuXG4gIHByb3RlY3RlZCBnZXRWYWx1ZUZpZWxkcygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZSkubWFwKHByb3BlcnR5ID0+IHRoaXMuY3JlYXRlRmllbGQoeyBwcm9wZXJ0eSB9KSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZpZWxkKGZpZWxkOiBQb0R5bmFtaWNWaWV3RmllbGQpIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IGZpZWxkLnByb3BlcnR5O1xuICAgIGxldCB2YWx1ZTtcbiAgICBpZiAoZmllbGQuaXNBcnJheU9yT2JqZWN0ICYmIHRoaXMudmFsdWVbcHJvcGVydHldKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtQXJyYXlWYWx1ZSh0aGlzLnZhbHVlW3Byb3BlcnR5XSwgZmllbGQpO1xuICAgIH0gZWxzZSBpZiAoZmllbGQuZmllbGRMYWJlbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnRyYW5zZm9ybUZpZWxkTGFiZWwocHJvcGVydHksIGZpZWxkKTtcbiAgICB9XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtVmFsdWUoZmllbGQudHlwZSwgdGhpcy52YWx1ZVtwcm9wZXJ0eV0sIGZpZWxkLmZvcm1hdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmV0dXJuVmFsdWVzKGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZpZWxkV2l0aFNlcnZpY2UoZmllbGQ6IFBvRHluYW1pY1ZpZXdGaWVsZCwgbmV3RmllbGRzPywgb2xkRmllbGQ/KSB7XG4gICAgY29uc3QgcHJvcGVydHkgPSBmaWVsZC5wcm9wZXJ0eTtcblxuICAgIHRoaXMuc2VhcmNoQnlJZCh0aGlzLnZhbHVlW3Byb3BlcnR5XSwgZmllbGQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHJlc3BvbnNlO1xuICAgICAgY29uc3QgYWxsVmFsdWVzID0gdGhpcy5yZXR1cm5WYWx1ZXMoZmllbGQsIHZhbHVlKTtcbiAgICAgIGNvbnN0IG9sZEZpZWxkSW5kZXggPSBuZXdGaWVsZHMuaW5kZXhPZihuZXdGaWVsZHMuZmluZChmaWVsZCA9PiBmaWVsZCA9PT0gb2xkRmllbGQpKTtcbiAgICAgIG5ld0ZpZWxkcy5zcGxpY2Uob2xkRmllbGRJbmRleCwgMSwgYWxsVmFsdWVzKTtcbiAgICAgIHNvcnRGaWVsZHMobmV3RmllbGRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmV0dXJuVmFsdWVzKGZpZWxkOiBQb0R5bmFtaWNWaWV3RmllbGQsIHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IGZpZWxkLnByb3BlcnR5O1xuICAgIGNvbnN0IGNsYXNzZXNHcmlkQ29sdW1ucyA9IGdldEdyaWRDb2x1bW5zQ2xhc3NlcyhcbiAgICAgIGZpZWxkLmdyaWRDb2x1bW5zLFxuICAgICAgZmllbGQub2Zmc2V0Q29sdW1ucyxcbiAgICAgIHtcbiAgICAgICAgc21HcmlkOiBmaWVsZC5ncmlkU21Db2x1bW5zLFxuICAgICAgICBtZEdyaWQ6IGZpZWxkLmdyaWRNZENvbHVtbnMsXG4gICAgICAgIGxnR3JpZDogZmllbGQuZ3JpZExnQ29sdW1ucyxcbiAgICAgICAgeGxHcmlkOiBmaWVsZC5ncmlkWGxDb2x1bW5zXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzbU9mZnNldDogZmllbGQub2Zmc2V0U21Db2x1bW5zLFxuICAgICAgICBtZE9mZnNldDogZmllbGQub2Zmc2V0TWRDb2x1bW5zLFxuICAgICAgICBsZ09mZnNldDogZmllbGQub2Zmc2V0TGdDb2x1bW5zLFxuICAgICAgICB4bE9mZnNldDogZmllbGQub2Zmc2V0WGxDb2x1bW5zXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzbVB1bGw6IGZpZWxkLmdyaWRTbVB1bGwsXG4gICAgICAgIG1kUHVsbDogZmllbGQuZ3JpZE1kUHVsbCxcbiAgICAgICAgbGdQdWxsOiBmaWVsZC5ncmlkTGdQdWxsLFxuICAgICAgICB4bFB1bGw6IGZpZWxkLmdyaWRYbFB1bGxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3BlcnR5LFxuICAgICAgdmFsdWUsXG4gICAgICBsYWJlbDogdGhpcy50aXRsZUNhc2VQaXBlLnRyYW5zZm9ybShwcm9wZXJ0eSksXG4gICAgICBjc3NDbGFzczogY2xhc3Nlc0dyaWRDb2x1bW5zLFxuICAgICAgLi4uZmllbGRcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hCeUlkKHZhbHVlOiBhbnksIGZpZWxkOiBQb0R5bmFtaWNWaWV3RmllbGQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgIT09ICcnKSB7XG4gICAgICBpZiAoZmllbGQub3B0aW9uc011bHRpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAuZ2V0T2JqZWN0c0J5VmFsdWVzKHZhbHVlLCBmaWVsZC5wYXJhbXMpXG4gICAgICAgICAgLnBpcGUobWFwKHJlcyA9PiB0aGlzLnRyYW5zZm9ybUFycmF5VmFsdWUocmVzLCBmaWVsZCkpKVxuICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAuZ2V0T2JqZWN0QnlWYWx1ZSh2YWx1ZSwgZmllbGQucGFyYW1zKVxuICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gdGhpcy50cmFuc2Zvcm1BcnJheVZhbHVlKHJlcywgZmllbGQpKSlcbiAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKG51bGwpKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybUFycmF5VmFsdWUodmFsdWVQcm9wZXJ0eTogYW55LCBmaWVsZDogUG9EeW5hbWljVmlld0ZpZWxkKSB7XG4gICAgY29uc3QgdmFsdWVBcnJheSA9IEFycmF5LmlzQXJyYXkodmFsdWVQcm9wZXJ0eSkgPyB2YWx1ZVByb3BlcnR5IDogW3ZhbHVlUHJvcGVydHldO1xuICAgIGxldCBsYWJlbHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5mb3JtYXQpKSB7XG4gICAgICBsYWJlbHMgPSB2YWx1ZUFycmF5Lm1hcChvYmplY3REYXRhID0+IHRoaXMuZm9ybWF0RmllbGQob2JqZWN0RGF0YSwgZmllbGQuZm9ybWF0KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGFycmF5V2l0aExhYmVsID0gdmFsdWVBcnJheS5tYXAoaXRlbSA9PiAoe1xuICAgICAgICB2YWx1ZTogaXRlbVtmaWVsZC5maWVsZFZhbHVlXSB8fCBpdGVtLnZhbHVlLFxuICAgICAgICBsYWJlbDogaXRlbVtmaWVsZC5maWVsZExhYmVsXSB8fCBpdGVtLmxhYmVsXG4gICAgICB9KSk7XG5cbiAgICAgIGxhYmVscyA9IGFycmF5V2l0aExhYmVsLm1hcChvcHRpb25WYWx1ZSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25WYWx1ZS5sYWJlbCkge1xuICAgICAgICAgIGNvbnN0IGxhYmVsVHJhbmZvcm1lZCA9IHRoaXMudHJhbnNmb3JtVmFsdWUoZmllbGQudHlwZSwgb3B0aW9uVmFsdWUubGFiZWwsIGZpZWxkLmZvcm1hdCk7XG4gICAgICAgICAgaWYgKGZpZWxkLmNvbmNhdExhYmVsVmFsdWUgJiYgb3B0aW9uVmFsdWUudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtsYWJlbFRyYW5mb3JtZWR9IC0gJHtvcHRpb25WYWx1ZS52YWx1ZX1gO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbGFiZWxUcmFuZm9ybWVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGxhYmVsc1swXSAhPT0gdW5kZWZpbmVkICYmIGxhYmVscy5qb2luKCkpIHtcbiAgICAgIHJldHVybiBsYWJlbHMuam9pbignLCAnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWVQcm9wZXJ0eSA9ICcnO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybUZpZWxkTGFiZWwocHJvcGVydHk6IHN0cmluZywgZmllbGQ6IFBvRHluYW1pY1ZpZXdGaWVsZCkge1xuICAgIGlmIChmaWVsZC5jb25jYXRMYWJlbFZhbHVlICYmIGZpZWxkLmZpZWxkTGFiZWwgJiYgZmllbGQuZmllbGRWYWx1ZSAmJiAhZmllbGQuaXNBcnJheU9yT2JqZWN0KSB7XG4gICAgICBjb25zdCB0cmFuc2Zvcm1lZFZhbHVlID0gdGhpcy50cmFuc2Zvcm1WYWx1ZShmaWVsZC50eXBlLCB0aGlzLnZhbHVlW2ZpZWxkLmZpZWxkTGFiZWxdLCBmaWVsZC5mb3JtYXQpO1xuICAgICAgcmV0dXJuIGAke3RyYW5zZm9ybWVkVmFsdWV9IC0gJHt0aGlzLnZhbHVlW2ZpZWxkLmZpZWxkVmFsdWVdfWA7XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLmZpZWxkTGFiZWwgJiYgIWZpZWxkLmNvbmNhdExhYmVsVmFsdWUgJiYgIWZpZWxkLmlzQXJyYXlPck9iamVjdCkge1xuICAgICAgdGhpcy52YWx1ZVtwcm9wZXJ0eV0gPSB0aGlzLnZhbHVlW2ZpZWxkLmZpZWxkTGFiZWxdO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1WYWx1ZSh0eXBlOiBzdHJpbmcsIHZhbHVlLCBmb3JtYXQpIHtcbiAgICBsZXQgdHJhbnNmb3JtZWRWYWx1ZSA9IHZhbHVlO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICAgIHRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLmN1cnJlbmN5UGlwZS50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCB8fCAnQlJMJywgJ3N5bWJvbCcsICcxLjItMicpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICB0cmFuc2Zvcm1lZFZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCB8fCAnZGQvTU0veXl5eScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgdHJhbnNmb3JtZWRWYWx1ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCBmb3JtYXQgfHwgJ2RkL01NL3l5eXkgSEg6bW06c3MnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICB0cmFuc2Zvcm1lZFZhbHVlID0gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGltZSc6XG4gICAgICAgIHRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLnRpbWVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0IHx8ICdISDptbTpzcy5mZmZmZmYnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEZpZWxkKG9iamVjdFNlbGVjdGVkLCBwcm9wZXJ0aWVzKSB7XG4gICAgbGV0IGZvcm1hdHRlZEZpZWxkO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKG9iamVjdFNlbGVjdGVkICYmIG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XSkge1xuICAgICAgICAgIGlmICghZm9ybWF0dGVkRmllbGQpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZEZpZWxkID0gb2JqZWN0U2VsZWN0ZWRbcHJvcGVydHldO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRGaWVsZCArPSAnIC0gJyArIG9iamVjdFNlbGVjdGVkW3Byb3BlcnR5XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdHRlZEZpZWxkO1xuICB9XG59XG4iXX0=
@@ -10,56 +10,77 @@ import * as i6 from "../../po-divider/po-divider.component";
10
10
  import * as i7 from "../../po-info/po-info.component";
11
11
  import * as i8 from "../../po-tag/po-tag.component";
12
12
  import * as i9 from "../../po-image/po-image.component";
13
- function PoDynamicViewComponent_div_0_ng_template_1_po_divider_0_Template(rf, ctx) { if (rf & 1) {
14
- i0.ɵɵelement(0, "po-divider", 8);
15
- } if (rf & 2) {
16
- const field_r8 = i0.ɵɵnextContext().$implicit;
17
- i0.ɵɵproperty("p-label", field_r8.divider);
18
- } }
19
- function PoDynamicViewComponent_div_0_ng_template_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
13
+ import * as i10 from "../po-dynamic-container/po-dynamic-container.component";
14
+ function PoDynamicViewComponent_div_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
20
15
  i0.ɵɵelementContainer(0);
21
16
  } }
22
17
  const _c0 = a0 => ({ $implicit: a0 });
23
- function PoDynamicViewComponent_div_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {
24
- i0.ɵɵtemplate(0, PoDynamicViewComponent_div_0_ng_template_1_po_divider_0_Template, 1, 1, "po-divider", 6)(1, PoDynamicViewComponent_div_0_ng_template_1_ng_container_1_Template, 1, 0, "ng-container", 7);
18
+ function PoDynamicViewComponent_div_0_Template(rf, ctx) { if (rf & 1) {
19
+ i0.ɵɵelementStart(0, "div", 6);
20
+ i0.ɵɵtemplate(1, PoDynamicViewComponent_div_0_ng_container_1_Template, 1, 0, "ng-container", 7);
21
+ i0.ɵɵelementEnd();
25
22
  } if (rf & 2) {
26
- const field_r8 = ctx.$implicit;
27
- i0.ɵɵnextContext(2);
28
- const _r2 = i0.ɵɵreference(2);
23
+ const ctx_r0 = i0.ɵɵnextContext();
29
24
  const _r4 = i0.ɵɵreference(4);
30
- const _r6 = i0.ɵɵreference(6);
31
- i0.ɵɵproperty("ngIf", field_r8 == null ? null : field_r8.divider == null ? null : field_r8.divider.trim());
25
+ const _r2 = i0.ɵɵreference(2);
26
+ i0.ɵɵclassProp("po-dynamic", ctx_r0.hasContainers);
32
27
  i0.ɵɵadvance();
33
- i0.ɵɵproperty("ngTemplateOutlet", !field_r8.tag && !field_r8.image ? _r2 : !field_r8.image ? _r4 : _r6)("ngTemplateOutletContext", i0.ɵɵpureFunction1(3, _c0, field_r8));
28
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.hasContainers ? _r4 : _r2)("ngTemplateOutletContext", i0.ɵɵpureFunction1(4, _c0, ctx_r0.hasContainers ? ctx_r0.containerFields : ctx_r0.visibleFields));
34
29
  } }
35
- function PoDynamicViewComponent_div_0_Template(rf, ctx) { if (rf & 1) {
36
- i0.ɵɵelementStart(0, "div", 4);
37
- i0.ɵɵtemplate(1, PoDynamicViewComponent_div_0_ng_template_1_Template, 2, 5, "ng-template", 5);
38
- i0.ɵɵelementEnd();
30
+ function PoDynamicViewComponent_ng_template_1_ng_template_0_po_divider_0_Template(rf, ctx) { if (rf & 1) {
31
+ i0.ɵɵelement(0, "po-divider", 10);
39
32
  } if (rf & 2) {
40
- const ctx_r0 = i0.ɵɵnextContext();
33
+ const field_r14 = i0.ɵɵnextContext().$implicit;
34
+ i0.ɵɵproperty("p-label", field_r14.divider);
35
+ } }
36
+ function PoDynamicViewComponent_ng_template_1_ng_template_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
37
+ i0.ɵɵelementContainer(0);
38
+ } }
39
+ function PoDynamicViewComponent_ng_template_1_ng_template_0_Template(rf, ctx) { if (rf & 1) {
40
+ i0.ɵɵtemplate(0, PoDynamicViewComponent_ng_template_1_ng_template_0_po_divider_0_Template, 1, 1, "po-divider", 9)(1, PoDynamicViewComponent_ng_template_1_ng_template_0_ng_container_1_Template, 1, 0, "ng-container", 7);
41
+ } if (rf & 2) {
42
+ const field_r14 = ctx.$implicit;
43
+ i0.ɵɵnextContext(2);
44
+ const _r6 = i0.ɵɵreference(6);
45
+ const _r8 = i0.ɵɵreference(8);
46
+ const _r10 = i0.ɵɵreference(10);
47
+ i0.ɵɵproperty("ngIf", field_r14 == null ? null : field_r14.divider == null ? null : field_r14.divider.trim());
41
48
  i0.ɵɵadvance();
42
- i0.ɵɵproperty("ngForOf", ctx_r0.visibleFields);
49
+ i0.ɵɵproperty("ngTemplateOutlet", !field_r14.tag && !field_r14.image ? _r6 : !field_r14.image ? _r8 : _r10)("ngTemplateOutletContext", i0.ɵɵpureFunction1(3, _c0, field_r14));
43
50
  } }
44
51
  function PoDynamicViewComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵelement(0, "po-info", 9);
52
+ i0.ɵɵtemplate(0, PoDynamicViewComponent_ng_template_1_ng_template_0_Template, 2, 5, "ng-template", 8);
46
53
  } if (rf & 2) {
47
- const field_r12 = ctx.$implicit;
48
- const ctx_r1 = i0.ɵɵnextContext();
49
- i0.ɵɵproperty("ngClass", field_r12.cssClass)("p-label", field_r12.label)("p-value", ctx_r1.setFieldValue(field_r12));
54
+ const fields_r12 = ctx.$implicit;
55
+ i0.ɵɵproperty("ngForOf", fields_r12);
50
56
  } }
51
57
  function PoDynamicViewComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
52
- i0.ɵɵelement(0, "po-tag", 10);
58
+ i0.ɵɵelement(0, "po-dynamic-container", 11);
53
59
  } if (rf & 2) {
54
- const field_r13 = ctx.$implicit;
55
- const ctx_r3 = i0.ɵɵnextContext();
56
- i0.ɵɵproperty("ngClass", field_r13.cssClass)("p-color", field_r13.color)("p-icon", field_r13.icon)("p-inverse", field_r13.inverse)("p-label", field_r13.label)("p-value", ctx_r3.setFieldValue(field_r13));
60
+ const fields_r18 = ctx.$implicit;
61
+ i0.ɵɵnextContext();
62
+ const _r2 = i0.ɵɵreference(2);
63
+ i0.ɵɵproperty("p-fields", fields_r18)("p-content", _r2);
57
64
  } }
58
65
  function PoDynamicViewComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
59
- i0.ɵɵelement(0, "po-image", 11);
66
+ i0.ɵɵelement(0, "po-info", 12);
60
67
  } if (rf & 2) {
61
- const field_r14 = ctx.$implicit;
62
- i0.ɵɵproperty("p-alt", field_r14.alt)("p-height", field_r14.height)("p-src", field_r14.value);
68
+ const field_r19 = ctx.$implicit;
69
+ const ctx_r5 = i0.ɵɵnextContext();
70
+ i0.ɵɵproperty("ngClass", field_r19.cssClass)("p-label", field_r19.label)("p-value", ctx_r5.setFieldValue(field_r19));
71
+ } }
72
+ function PoDynamicViewComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) {
73
+ i0.ɵɵelement(0, "po-tag", 13);
74
+ } if (rf & 2) {
75
+ const field_r20 = ctx.$implicit;
76
+ const ctx_r7 = i0.ɵɵnextContext();
77
+ i0.ɵɵproperty("ngClass", field_r20.cssClass)("p-color", field_r20.color)("p-icon", field_r20.icon)("p-inverse", field_r20.inverse)("p-label", field_r20.label)("p-value", ctx_r7.setFieldValue(field_r20));
78
+ } }
79
+ function PoDynamicViewComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵelement(0, "po-image", 14);
81
+ } if (rf & 2) {
82
+ const field_r21 = ctx.$implicit;
83
+ i0.ɵɵproperty("p-alt", field_r21.alt)("p-height", field_r21.height)("p-src", field_r21.value);
63
84
  } }
64
85
  /**
65
86
  * @docsExtends PoDynamicViewBaseComponent
@@ -81,6 +102,11 @@ function PoDynamicViewComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
81
102
  * <file name="sample-po-dynamic-view-employee-on-load/sample-po-dynamic-view-employee-on-load.component.ts"> </file>
82
103
  * <file name="sample-po-dynamic-view-employee-on-load/sample-po-dynamic-view-employee-on-load.service.ts"> </file>
83
104
  * </example>
105
+ *
106
+ * <example name="po-dynamic-view-container" title="PO Dynamic View - Employee on load">
107
+ * <file name="sample-po-dynamic-view-container/sample-po-dynamic-view-container.component.html"> </file>
108
+ * <file name="sample-po-dynamic-view-container/sample-po-dynamic-view-container.component.ts"> </file>
109
+ * </example>
84
110
  */
85
111
  export class PoDynamicViewComponent extends PoDynamicViewBaseComponent {
86
112
  initChanges;
@@ -96,11 +122,14 @@ export class PoDynamicViewComponent extends PoDynamicViewBaseComponent {
96
122
  }
97
123
  if ((changes.fields || changes.value || changes.showAllValue) && this.initChanges) {
98
124
  this.visibleFields = this.getVisibleFields();
125
+ this.setContainerFields();
99
126
  }
100
127
  }
101
128
  ngOnInit() {
102
129
  if (this.load) {
103
- this.updateValuesAndFieldsOnLoad();
130
+ this.updateValuesAndFieldsOnLoad().finally(() => {
131
+ this.setContainerFields();
132
+ });
104
133
  }
105
134
  }
106
135
  setFieldValue(field) {
@@ -158,15 +187,15 @@ export class PoDynamicViewComponent extends PoDynamicViewBaseComponent {
158
187
  this.initChanges = true;
159
188
  }
160
189
  static ɵfac = function PoDynamicViewComponent_Factory(t) { return new (t || PoDynamicViewComponent)(i0.ɵɵdirectiveInject(i1.CurrencyPipe), i0.ɵɵdirectiveInject(i1.DatePipe), i0.ɵɵdirectiveInject(i1.DecimalPipe), i0.ɵɵdirectiveInject(i2.PoTimePipe), i0.ɵɵdirectiveInject(i1.TitleCasePipe), i0.ɵɵdirectiveInject(i3.PoDynamicViewService), i0.ɵɵdirectiveInject(i4.PoComboFilterService), i0.ɵɵdirectiveInject(i5.PoMultiselectFilterService)); };
161
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoDynamicViewComponent, selectors: [["po-dynamic-view"]], features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 7, vars: 1, consts: [["class", "po-dynamic-view po-row", 4, "ngIf"], ["poInfo", ""], ["poTag", ""], ["poImage", ""], [1, "po-dynamic-view", "po-row"], ["ngFor", "", 3, "ngForOf"], ["class", "po-sm-12", 3, "p-label", 4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "po-sm-12", 3, "p-label"], [3, "ngClass", "p-label", "p-value"], [3, "ngClass", "p-color", "p-icon", "p-inverse", "p-label", "p-value"], [3, "p-alt", "p-height", "p-src"]], template: function PoDynamicViewComponent_Template(rf, ctx) { if (rf & 1) {
162
- i0.ɵɵtemplate(0, PoDynamicViewComponent_div_0_Template, 2, 1, "div", 0)(1, PoDynamicViewComponent_ng_template_1_Template, 1, 3, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(3, PoDynamicViewComponent_ng_template_3_Template, 1, 6, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(5, PoDynamicViewComponent_ng_template_5_Template, 1, 3, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
190
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoDynamicViewComponent, selectors: [["po-dynamic-view"]], features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 11, vars: 1, consts: [["class", "po-row", 3, "po-dynamic", 4, "ngIf"], ["poContent", ""], ["poContentContainer", ""], ["poInfo", ""], ["poTag", ""], ["poImage", ""], [1, "po-row"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["ngFor", "", 3, "ngForOf"], ["class", "po-sm-12", 3, "p-label", 4, "ngIf"], [1, "po-sm-12", 3, "p-label"], [3, "p-fields", "p-content"], [3, "ngClass", "p-label", "p-value"], [3, "ngClass", "p-color", "p-icon", "p-inverse", "p-label", "p-value"], [3, "p-alt", "p-height", "p-src"]], template: function PoDynamicViewComponent_Template(rf, ctx) { if (rf & 1) {
191
+ i0.ɵɵtemplate(0, PoDynamicViewComponent_div_0_Template, 2, 6, "div", 0)(1, PoDynamicViewComponent_ng_template_1_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(3, PoDynamicViewComponent_ng_template_3_Template, 1, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(5, PoDynamicViewComponent_ng_template_5_Template, 1, 3, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor)(7, PoDynamicViewComponent_ng_template_7_Template, 1, 6, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor)(9, PoDynamicViewComponent_ng_template_9_Template, 1, 3, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
163
192
  } if (rf & 2) {
164
193
  i0.ɵɵproperty("ngIf", ctx.visibleFields.length);
165
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i6.PoDividerComponent, i7.PoInfoComponent, i8.PoTagComponent, i9.PoImageComponent], encapsulation: 2 });
194
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i6.PoDividerComponent, i7.PoInfoComponent, i8.PoTagComponent, i9.PoImageComponent, i10.PoDynamicContainerComponent], encapsulation: 2 });
166
195
  }
167
196
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoDynamicViewComponent, [{
168
197
  type: Component,
169
- args: [{ selector: 'po-dynamic-view', template: "<div class=\"po-dynamic-view po-row\" *ngIf=\"visibleFields.length\">\n <ng-template ngFor let-field [ngForOf]=\"visibleFields\">\n <po-divider *ngIf=\"field?.divider?.trim()\" class=\"po-sm-12\" [p-label]=\"field.divider\"> </po-divider>\n\n <ng-container\n *ngTemplateOutlet=\"\n !field.tag && !field.image ? poInfo : !field.image ? poTag : poImage;\n context: { $implicit: field }\n \"\n >\n </ng-container>\n </ng-template>\n</div>\n\n<ng-template #poInfo let-field>\n <po-info [ngClass]=\"field.cssClass\" [p-label]=\"field.label\" [p-value]=\"setFieldValue(field)\"> </po-info>\n</ng-template>\n\n<ng-template #poTag let-field>\n <po-tag\n [ngClass]=\"field.cssClass\"\n [p-color]=\"field.color\"\n [p-icon]=\"field.icon\"\n [p-inverse]=\"field.inverse\"\n [p-label]=\"field.label\"\n [p-value]=\"setFieldValue(field)\"\n >\n </po-tag>\n</ng-template>\n\n<ng-template #poImage let-field>\n <po-image [p-alt]=\"field.alt\" [p-height]=\"field.height\" [p-src]=\"field.value\"> </po-image>\n</ng-template>\n" }]
198
+ args: [{ selector: 'po-dynamic-view', template: "<div class=\"po-row\" [class.po-dynamic]=\"hasContainers\" *ngIf=\"visibleFields.length\">\n <ng-container\n *ngTemplateOutlet=\"\n hasContainers ? poContentContainer : poContent;\n context: { $implicit: hasContainers ? containerFields : visibleFields }\n \"\n ></ng-container>\n</div>\n\n<ng-template #poContent let-fields>\n <ng-template ngFor let-field [ngForOf]=\"fields\">\n <po-divider *ngIf=\"field?.divider?.trim()\" class=\"po-sm-12\" [p-label]=\"field.divider\"> </po-divider>\n <ng-container\n *ngTemplateOutlet=\"\n !field.tag && !field.image ? poInfo : !field.image ? poTag : poImage;\n context: { $implicit: field }\n \"\n >\n </ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #poContentContainer let-fields>\n <po-dynamic-container [p-fields]=\"fields\" [p-content]=\"poContent\"></po-dynamic-container>\n</ng-template>\n\n<ng-template #poInfo let-field>\n <po-info [ngClass]=\"field.cssClass\" [p-label]=\"field.label\" [p-value]=\"setFieldValue(field)\"> </po-info>\n</ng-template>\n\n<ng-template #poTag let-field>\n <po-tag\n [ngClass]=\"field.cssClass\"\n [p-color]=\"field.color\"\n [p-icon]=\"field.icon\"\n [p-inverse]=\"field.inverse\"\n [p-label]=\"field.label\"\n [p-value]=\"setFieldValue(field)\"\n >\n </po-tag>\n</ng-template>\n\n<ng-template #poImage let-field>\n <po-image [p-alt]=\"field.alt\" [p-height]=\"field.height\" [p-src]=\"field.value\"> </po-image>\n</ng-template>\n" }]
170
199
  }], () => [{ type: i1.CurrencyPipe }, { type: i1.DatePipe }, { type: i1.DecimalPipe }, { type: i2.PoTimePipe }, { type: i1.TitleCasePipe }, { type: i3.PoDynamicViewService }, { type: i4.PoComboFilterService }, { type: i5.PoMultiselectFilterService }], null); })();
171
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoDynamicViewComponent, { className: "PoDynamicViewComponent", filePath: "lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.ts", lineNumber: 37 }); })();
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZHluYW1pYy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1keW5hbWljL3BvLWR5bmFtaWMtdmlldy9wby1keW5hbWljLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWR5bmFtaWMvcG8tZHluYW1pYy12aWV3L3BvLWR5bmFtaWMtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUs1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7O0lDSjFFLGdDQUFvRzs7O0lBQXhDLDBDQUF5Qjs7O0lBRXJGLHdCQU1lOzs7O0lBUmYseUdBQW9HLGdHQUFBOzs7Ozs7O0lBQXZGLDBHQUE0QjtJQUd0QyxjQUVVO0lBRlYsdUdBRVUsaUVBQUE7OztJQVBqQiw4QkFBaUU7SUFDL0QsNkZBVWM7SUFDaEIsaUJBQU07OztJQVh5QixjQUF5QjtJQUF6Qiw4Q0FBeUI7OztJQWN0RCw2QkFBd0c7Ozs7SUFBL0YsNENBQTBCLDRCQUFBLDRDQUFBOzs7SUFJbkMsNkJBUVM7Ozs7SUFQUCw0Q0FBMEIsNEJBQUEsMEJBQUEsZ0NBQUEsNEJBQUEsNENBQUE7OztJQVc1QiwrQkFBMEY7OztJQUFoRixxQ0FBbUIsOEJBQUEsMEJBQUE7O0FEcEIvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFLSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMEJBQTBCO0lBQ3BFLFdBQVcsQ0FBQztJQUNaLFlBQ0UsWUFBMEIsRUFDMUIsUUFBa0IsRUFDbEIsV0FBd0IsRUFDeEIsUUFBb0IsRUFDcEIsYUFBNEIsRUFDNUIsa0JBQXdD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LCBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9UaW1lUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3BvLXRpbWUvcG8tdGltZS5waXBlJztcblxuaW1wb3J0IHsgUG9EeW5hbWljVmlld0ZpZWxkIH0gZnJvbSAnLi8uLi9wby1keW5hbWljLXZpZXcvcG8tZHluYW1pYy12aWV3LWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0R5bmFtaWNWaWV3QmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8tZHluYW1pYy12aWV3LWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvRHluYW1pY1ZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1keW5hbWljLXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBQb0NvbWJvRmlsdGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3BvLWZpZWxkL3BvLWNvbWJvL3BvLWNvbWJvLWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcG8tZmllbGQvcG8tbXVsdGlzZWxlY3QvcG8tbXVsdGlzZWxlY3QtZmlsdGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb0R5bmFtaWNWaWV3QmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWR5bmFtaWMtdmlldy1iYXNpY1wiIHRpdGxlPVwiUE8gRHluYW1pYyBWaWV3IEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1keW5hbWljLXZpZXctYmFzaWMvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1keW5hbWljLXZpZXctYmFzaWMvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1keW5hbWljLXZpZXctZW1wbG95ZWVcIiB0aXRsZT1cIlBPIER5bmFtaWMgVmlldyAtIEVtcGxveWVlXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1keW5hbWljLXZpZXctZW1wbG95ZWUvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1lbXBsb3llZS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1keW5hbWljLXZpZXctZW1wbG95ZWUvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1lbXBsb3llZS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1keW5hbWljLXZpZXctZW1wbG95ZWUtb24tbG9hZFwiIHRpdGxlPVwiUE8gRHluYW1pYyBWaWV3IC0gRW1wbG95ZWUgb24gbG9hZFwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZHluYW1pYy12aWV3LWVtcGxveWVlLW9uLWxvYWQvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1lbXBsb3llZS1vbi1sb2FkLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWR5bmFtaWMtdmlldy1lbXBsb3llZS1vbi1sb2FkL3NhbXBsZS1wby1keW5hbWljLXZpZXctZW1wbG95ZWUtb24tbG9hZC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZHluYW1pYy12aWV3LWVtcGxveWVlLW9uLWxvYWQvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1lbXBsb3llZS1vbi1sb2FkLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1keW5hbWljLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tZHluYW1pYy12aWV3LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb0R5bmFtaWNWaWV3Q29tcG9uZW50IGV4dGVuZHMgUG9EeW5hbWljVmlld0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gIGluaXRDaGFuZ2VzO1xuICBjb25zdHJ1Y3RvcihcbiAgICBjdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSxcbiAgICBkYXRlUGlwZTogRGF0ZVBpcGUsXG4gICAgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlLFxuICAgIHRpbWVQaXBlOiBQb1RpbWVQaXBlLFxuICAgIHRpdGxlQ2FzZVBpcGU6IFRpdGxlQ2FzZVBpcGUsXG4gICAgZHluYW1pY1ZpZXdTZXJ2aWNlOiBQb0R5bmFtaWNWaWV3U2VydmljZSxcbiAgICBjb21ib0ZpbHRlclNlcnZpY2U6IFBvQ29tYm9GaWx0ZXJTZXJ2aWNlLFxuICAgIG11bHRpc2VsZWN0RmlsdGVyU2VydmljZTogUG9NdWx0aXNlbGVjdEZpbHRlclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBjdXJyZW5jeVBpcGUsXG4gICAgICBkYXRlUGlwZSxcbiAgICAgIGRlY2ltYWxQaXBlLFxuICAgICAgdGltZVBpcGUsXG4gICAgICB0aXRsZUNhc2VQaXBlLFxuICAgICAgZHluYW1pY1ZpZXdTZXJ2aWNlLFxuICAgICAgY29tYm9GaWx0ZXJTZXJ2aWNlLFxuICAgICAgbXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5sb2FkICYmICF0aGlzLmluaXRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLmluaXRDaGFuZ2VzID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdENoYW5nZXMgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoKGNoYW5nZXMuZmllbGRzIHx8IGNoYW5nZXMudmFsdWUgfHwgY2hhbmdlcy5zaG93QWxsVmFsdWUpICYmIHRoaXMuaW5pdENoYW5nZXMpIHtcbiAgICAgIHRoaXMudmlzaWJsZUZpZWxkcyA9IHRoaXMuZ2V0VmlzaWJsZUZpZWxkcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmxvYWQpIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVzQW5kRmllbGRzT25Mb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0RmllbGRWYWx1ZShmaWVsZCkge1xuICAgIGlmIChmaWVsZC5vcHRpb25zKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGZpZWxkLm9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLnZhbHVlID09PSBmaWVsZC52YWx1ZSk7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb24gPyBzZWxlY3RlZE9wdGlvbi5sYWJlbCA6IGZpZWxkLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAoZmllbGQudHlwZSA9PT0gJ2Jvb2xlYW4nICYmICdib29sZWFuVHJ1ZScgaW4gZmllbGQgJiYgJ2Jvb2xlYW5GYWxzZScgaW4gZmllbGQpIHtcbiAgICAgIHJldHVybiBmaWVsZC52YWx1ZSA/IGZpZWxkLmJvb2xlYW5UcnVlIDogZmllbGQuYm9vbGVhbkZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmllbGQudmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRWYWx1ZXNBbmRGaWVsZHNGcm9tTG9hZCgpOiBQcm9taXNlPHsgdmFsdWU/OiBhbnk7IGZpZWxkcz86IEFycmF5PFBvRHluYW1pY1ZpZXdGaWVsZD4gfT4ge1xuICAgIGxldCB2YWx1ZUFuZEZpZWxkc0Zyb21Mb2FkO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmxvYWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZUFuZEZpZWxkc0Zyb21Mb2FkID0gYXdhaXQgdGhpcy5keW5hbWljVmlld1NlcnZpY2Uub25Mb2FkKHRoaXMubG9hZCwgdGhpcy52YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5sb2FkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YWx1ZUFuZEZpZWxkc0Zyb21Mb2FkID0gdGhpcy5sb2FkKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlQW5kRmllbGRzRnJvbUxvYWQgfHwge307XG4gIH1cblxuICBwcml2YXRlIGdldFZpc2libGVGaWVsZHMoKSB7XG4gICAgaWYgKHRoaXMuc2hvd0FsbFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXJnZWRGaWVsZHMoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52YWx1ZSAmJiB0aGlzLmZpZWxkcy5sZW5ndGggPyB0aGlzLmdldENvbmZpZ3VyZWRGaWVsZHMoKSA6IHRoaXMuZ2V0VmFsdWVGaWVsZHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RmllbGRPbkxvYWQoZmllbGRPbkxvYWQ6IFBvRHluYW1pY1ZpZXdGaWVsZCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWVsZHMuZmluZEluZGV4KGZpZWxkID0+IGZpZWxkLnByb3BlcnR5ID09PSBmaWVsZE9uTG9hZC5wcm9wZXJ0eSk7XG5cbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5maWVsZHNbaW5kZXhdID0geyAuLi50aGlzLmZpZWxkc1tpbmRleF0sIC4uLmZpZWxkT25Mb2FkIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmllbGRzLnB1c2goeyAuLi5maWVsZE9uTG9hZCB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZpZWxkc09uTG9hZChmaWVsZHM6IEFycmF5PFBvRHluYW1pY1ZpZXdGaWVsZD4pIHtcbiAgICBpZiAoZmllbGRzKSB7XG4gICAgICBmaWVsZHMuZm9yRWFjaChmaWVsZE9uTG9hZCA9PiB7XG4gICAgICAgIHRoaXMuc2V0RmllbGRPbkxvYWQoZmllbGRPbkxvYWQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRWYWx1ZU9uTG9hZChuZXdWYWx1ZTogYW55KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnZhbHVlLCBuZXdWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVZhbHVlc0FuZEZpZWxkc09uTG9hZCgpIHtcbiAgICBjb25zdCB7IHZhbHVlLCBmaWVsZHMgfSA9IGF3YWl0IHRoaXMuZ2V0VmFsdWVzQW5kRmllbGRzRnJvbUxvYWQoKTtcblxuICAgIHRoaXMuc2V0VmFsdWVPbkxvYWQodmFsdWUpO1xuICAgIHRoaXMuc2V0RmllbGRzT25Mb2FkKGZpZWxkcyk7XG5cbiAgICB0aGlzLnZpc2libGVGaWVsZHMgPSB0aGlzLmdldFZpc2libGVGaWVsZHMoKTtcbiAgICB0aGlzLmluaXRDaGFuZ2VzID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBvLWR5bmFtaWMtdmlldyBwby1yb3dcIiAqbmdJZj1cInZpc2libGVGaWVsZHMubGVuZ3RoXCI+XG4gIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtZmllbGQgW25nRm9yT2ZdPVwidmlzaWJsZUZpZWxkc1wiPlxuICAgIDxwby1kaXZpZGVyICpuZ0lmPVwiZmllbGQ/LmRpdmlkZXI/LnRyaW0oKVwiIGNsYXNzPVwicG8tc20tMTJcIiBbcC1sYWJlbF09XCJmaWVsZC5kaXZpZGVyXCI+IDwvcG8tZGl2aWRlcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICFmaWVsZC50YWcgJiYgIWZpZWxkLmltYWdlID8gcG9JbmZvIDogIWZpZWxkLmltYWdlID8gcG9UYWcgOiBwb0ltYWdlO1xuICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogZmllbGQgfVxuICAgICAgXCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNwb0luZm8gbGV0LWZpZWxkPlxuICA8cG8taW5mbyBbbmdDbGFzc109XCJmaWVsZC5jc3NDbGFzc1wiIFtwLWxhYmVsXT1cImZpZWxkLmxhYmVsXCIgW3AtdmFsdWVdPVwic2V0RmllbGRWYWx1ZShmaWVsZClcIj4gPC9wby1pbmZvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwb1RhZyBsZXQtZmllbGQ+XG4gIDxwby10YWdcbiAgICBbbmdDbGFzc109XCJmaWVsZC5jc3NDbGFzc1wiXG4gICAgW3AtY29sb3JdPVwiZmllbGQuY29sb3JcIlxuICAgIFtwLWljb25dPVwiZmllbGQuaWNvblwiXG4gICAgW3AtaW52ZXJzZV09XCJmaWVsZC5pbnZlcnNlXCJcbiAgICBbcC1sYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgW3AtdmFsdWVdPVwic2V0RmllbGRWYWx1ZShmaWVsZClcIlxuICA+XG4gIDwvcG8tdGFnPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwb0ltYWdlIGxldC1maWVsZD5cbiAgPHBvLWltYWdlIFtwLWFsdF09XCJmaWVsZC5hbHRcIiBbcC1oZWlnaHRdPVwiZmllbGQuaGVpZ2h0XCIgW3Atc3JjXT1cImZpZWxkLnZhbHVlXCI+IDwvcG8taW1hZ2U+XG48L25nLXRlbXBsYXRlPlxuIl19
200
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoDynamicViewComponent, { className: "PoDynamicViewComponent", filePath: "lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.ts", lineNumber: 42 }); })();
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tZHluYW1pYy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1keW5hbWljL3BvLWR5bmFtaWMtdmlldy9wby1keW5hbWljLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLWR5bmFtaWMvcG8tZHluYW1pYy12aWV3L3BvLWR5bmFtaWMtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUs1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0w1RSx3QkFLZ0I7Ozs7SUFObEIsOEJBQW9GO0lBQ2xGLCtGQUtnQjtJQUNsQixpQkFBTTs7Ozs7SUFQYyxrREFBa0M7SUFFakQsY0FFUTtJQUZSLG1FQUVRLDZIQUFBOzs7SUFPVCxpQ0FBb0c7OztJQUF4QywyQ0FBeUI7OztJQUNyRix3QkFNZTs7O0lBUGYsaUhBQW9HLHdHQUFBOzs7Ozs7O0lBQXZGLDZHQUE0QjtJQUV0QyxjQUVVO0lBRlYsMkdBRVUsa0VBQUE7OztJQUxmLHFHQVNjOzs7SUFUZSxvQ0FBa0I7OztJQWEvQywyQ0FBeUY7Ozs7O0lBQW5FLHFDQUFtQixrQkFBQTs7O0lBSXpDLDhCQUF3Rzs7OztJQUEvRiw0Q0FBMEIsNEJBQUEsNENBQUE7OztJQUluQyw2QkFRUzs7OztJQVBQLDRDQUEwQiw0QkFBQSwwQkFBQSxnQ0FBQSw0QkFBQSw0Q0FBQTs7O0lBVzVCLCtCQUEwRjs7O0lBQWhGLHFDQUFtQiw4QkFBQSwwQkFBQTs7QURoQy9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBS0gsTUFBTSxPQUFPLHNCQUF1QixT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LENBQUM7SUFDMUIsQ0FBQztnRkF6R1Usc0JBQXNCOzZEQUF0QixzQkFBc0I7WUN6Q25DLHVFQU9NLDJHQUFBLDJHQUFBLDJHQUFBLDJHQUFBLDJHQUFBOztZQVBrRCwrQ0FBMEI7OztpRkR5Q3JFLHNCQUFzQjtjQUpsQyxTQUFTOzJCQUNFLGlCQUFpQjs7a0ZBR2hCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSwgRGF0ZVBpcGUsIERlY2ltYWxQaXBlLCBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9UaW1lUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3BvLXRpbWUvcG8tdGltZS5waXBlJztcblxuaW1wb3J0IHsgUG9EeW5hbWljVmlld0ZpZWxkIH0gZnJvbSAnLi8uLi9wby1keW5hbWljLXZpZXcvcG8tZHluYW1pYy12aWV3LWZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0R5bmFtaWNWaWV3QmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcG8tZHluYW1pYy12aWV3LWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvRHluYW1pY1ZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1keW5hbWljLXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBQb0NvbWJvRmlsdGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3BvLWZpZWxkL3BvLWNvbWJvL3BvLWNvbWJvLWZpbHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcG8tZmllbGQvcG8tbXVsdGlzZWxlY3QvcG8tbXVsdGlzZWxlY3QtZmlsdGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb0R5bmFtaWNWaWV3QmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWR5bmFtaWMtdmlldy1iYXNpY1wiIHRpdGxlPVwiUE8gRHluYW1pYyBWaWV3IEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1keW5hbWljLXZpZXctYmFzaWMvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1keW5hbWljLXZpZXctYmFzaWMvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1keW5hbWljLXZpZXctZW1wbG95ZWVcIiB0aXRsZT1cIlBPIER5bmFtaWMgVmlldyAtIEVtcGxveWVlXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1keW5hbWljLXZpZXctZW1wbG95ZWUvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1lbXBsb3llZS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1keW5hbWljLXZpZXctZW1wbG95ZWUvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1lbXBsb3llZS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1keW5hbWljLXZpZXctZW1wbG95ZWUtb24tbG9hZFwiIHRpdGxlPVwiUE8gRHluYW1pYyBWaWV3IC0gRW1wbG95ZWUgb24gbG9hZFwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZHluYW1pYy12aWV3LWVtcGxveWVlLW9uLWxvYWQvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1lbXBsb3llZS1vbi1sb2FkLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWR5bmFtaWMtdmlldy1lbXBsb3llZS1vbi1sb2FkL3NhbXBsZS1wby1keW5hbWljLXZpZXctZW1wbG95ZWUtb24tbG9hZC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tZHluYW1pYy12aWV3LWVtcGxveWVlLW9uLWxvYWQvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1lbXBsb3llZS1vbi1sb2FkLnNlcnZpY2UudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1keW5hbWljLXZpZXctY29udGFpbmVyXCIgdGl0bGU9XCJQTyBEeW5hbWljIFZpZXcgLSBFbXBsb3llZSBvbiBsb2FkXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1keW5hbWljLXZpZXctY29udGFpbmVyL3NhbXBsZS1wby1keW5hbWljLXZpZXctY29udGFpbmVyLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWR5bmFtaWMtdmlldy1jb250YWluZXIvc2FtcGxlLXBvLWR5bmFtaWMtdmlldy1jb250YWluZXIuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tZHluYW1pYy12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLWR5bmFtaWMtdmlldy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9EeW5hbWljVmlld0NvbXBvbmVudCBleHRlbmRzIFBvRHluYW1pY1ZpZXdCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICBpbml0Q2hhbmdlcztcbiAgY29uc3RydWN0b3IoXG4gICAgY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgZGF0ZVBpcGU6IERhdGVQaXBlLFxuICAgIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSxcbiAgICB0aW1lUGlwZTogUG9UaW1lUGlwZSxcbiAgICB0aXRsZUNhc2VQaXBlOiBUaXRsZUNhc2VQaXBlLFxuICAgIGR5bmFtaWNWaWV3U2VydmljZTogUG9EeW5hbWljVmlld1NlcnZpY2UsXG4gICAgY29tYm9GaWx0ZXJTZXJ2aWNlOiBQb0NvbWJvRmlsdGVyU2VydmljZSxcbiAgICBtdWx0aXNlbGVjdEZpbHRlclNlcnZpY2U6IFBvTXVsdGlzZWxlY3RGaWx0ZXJTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgY3VycmVuY3lQaXBlLFxuICAgICAgZGF0ZVBpcGUsXG4gICAgICBkZWNpbWFsUGlwZSxcbiAgICAgIHRpbWVQaXBlLFxuICAgICAgdGl0bGVDYXNlUGlwZSxcbiAgICAgIGR5bmFtaWNWaWV3U2VydmljZSxcbiAgICAgIGNvbWJvRmlsdGVyU2VydmljZSxcbiAgICAgIG11bHRpc2VsZWN0RmlsdGVyU2VydmljZVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMubG9hZCAmJiAhdGhpcy5pbml0Q2hhbmdlcykge1xuICAgICAgdGhpcy5pbml0Q2hhbmdlcyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRDaGFuZ2VzID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKChjaGFuZ2VzLmZpZWxkcyB8fCBjaGFuZ2VzLnZhbHVlIHx8IGNoYW5nZXMuc2hvd0FsbFZhbHVlKSAmJiB0aGlzLmluaXRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnZpc2libGVGaWVsZHMgPSB0aGlzLmdldFZpc2libGVGaWVsZHMoKTtcbiAgICAgIHRoaXMuc2V0Q29udGFpbmVyRmllbGRzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMubG9hZCkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZXNBbmRGaWVsZHNPbkxvYWQoKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRDb250YWluZXJGaWVsZHMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldEZpZWxkVmFsdWUoZmllbGQpIHtcbiAgICBpZiAoZmllbGQub3B0aW9ucykge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBmaWVsZC5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gZmllbGQudmFsdWUpO1xuICAgICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9uID8gc2VsZWN0ZWRPcHRpb24ubGFiZWwgOiBmaWVsZC52YWx1ZTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09ICdib29sZWFuJyAmJiAnYm9vbGVhblRydWUnIGluIGZpZWxkICYmICdib29sZWFuRmFsc2UnIGluIGZpZWxkKSB7XG4gICAgICByZXR1cm4gZmllbGQudmFsdWUgPyBmaWVsZC5ib29sZWFuVHJ1ZSA6IGZpZWxkLmJvb2xlYW5GYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZpZWxkLnZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0VmFsdWVzQW5kRmllbGRzRnJvbUxvYWQoKTogUHJvbWlzZTx7IHZhbHVlPzogYW55OyBmaWVsZHM/OiBBcnJheTxQb0R5bmFtaWNWaWV3RmllbGQ+IH0+IHtcbiAgICBsZXQgdmFsdWVBbmRGaWVsZHNGcm9tTG9hZDtcblxuICAgIGlmICh0eXBlb2YgdGhpcy5sb2FkID09PSAnc3RyaW5nJykge1xuICAgICAgdmFsdWVBbmRGaWVsZHNGcm9tTG9hZCA9IGF3YWl0IHRoaXMuZHluYW1pY1ZpZXdTZXJ2aWNlLm9uTG9hZCh0aGlzLmxvYWQsIHRoaXMudmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMubG9hZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdmFsdWVBbmRGaWVsZHNGcm9tTG9hZCA9IHRoaXMubG9hZCgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZUFuZEZpZWxkc0Zyb21Mb2FkIHx8IHt9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWaXNpYmxlRmllbGRzKCkge1xuICAgIGlmICh0aGlzLnNob3dBbGxWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVyZ2VkRmllbGRzKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudmFsdWUgJiYgdGhpcy5maWVsZHMubGVuZ3RoID8gdGhpcy5nZXRDb25maWd1cmVkRmllbGRzKCkgOiB0aGlzLmdldFZhbHVlRmllbGRzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldEZpZWxkT25Mb2FkKGZpZWxkT25Mb2FkOiBQb0R5bmFtaWNWaWV3RmllbGQpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmllbGRzLmZpbmRJbmRleChmaWVsZCA9PiBmaWVsZC5wcm9wZXJ0eSA9PT0gZmllbGRPbkxvYWQucHJvcGVydHkpO1xuXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMuZmllbGRzW2luZGV4XSA9IHsgLi4udGhpcy5maWVsZHNbaW5kZXhdLCAuLi5maWVsZE9uTG9hZCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpZWxkcy5wdXNoKHsgLi4uZmllbGRPbkxvYWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRGaWVsZHNPbkxvYWQoZmllbGRzOiBBcnJheTxQb0R5bmFtaWNWaWV3RmllbGQ+KSB7XG4gICAgaWYgKGZpZWxkcykge1xuICAgICAgZmllbGRzLmZvckVhY2goZmllbGRPbkxvYWQgPT4ge1xuICAgICAgICB0aGlzLnNldEZpZWxkT25Mb2FkKGZpZWxkT25Mb2FkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VmFsdWVPbkxvYWQobmV3VmFsdWU6IGFueSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy52YWx1ZSwgbmV3VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVWYWx1ZXNBbmRGaWVsZHNPbkxvYWQoKSB7XG4gICAgY29uc3QgeyB2YWx1ZSwgZmllbGRzIH0gPSBhd2FpdCB0aGlzLmdldFZhbHVlc0FuZEZpZWxkc0Zyb21Mb2FkKCk7XG5cbiAgICB0aGlzLnNldFZhbHVlT25Mb2FkKHZhbHVlKTtcbiAgICB0aGlzLnNldEZpZWxkc09uTG9hZChmaWVsZHMpO1xuXG4gICAgdGhpcy52aXNpYmxlRmllbGRzID0gdGhpcy5nZXRWaXNpYmxlRmllbGRzKCk7XG4gICAgdGhpcy5pbml0Q2hhbmdlcyA9IHRydWU7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwby1yb3dcIiBbY2xhc3MucG8tZHluYW1pY109XCJoYXNDb250YWluZXJzXCIgKm5nSWY9XCJ2aXNpYmxlRmllbGRzLmxlbmd0aFwiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIGhhc0NvbnRhaW5lcnMgPyBwb0NvbnRlbnRDb250YWluZXIgOiBwb0NvbnRlbnQ7XG4gICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaGFzQ29udGFpbmVycyA/IGNvbnRhaW5lckZpZWxkcyA6IHZpc2libGVGaWVsZHMgfVxuICAgIFwiXG4gID48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BvQ29udGVudCBsZXQtZmllbGRzPlxuICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWZpZWxkIFtuZ0Zvck9mXT1cImZpZWxkc1wiPlxuICAgIDxwby1kaXZpZGVyICpuZ0lmPVwiZmllbGQ/LmRpdmlkZXI/LnRyaW0oKVwiIGNsYXNzPVwicG8tc20tMTJcIiBbcC1sYWJlbF09XCJmaWVsZC5kaXZpZGVyXCI+IDwvcG8tZGl2aWRlcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAhZmllbGQudGFnICYmICFmaWVsZC5pbWFnZSA/IHBvSW5mbyA6ICFmaWVsZC5pbWFnZSA/IHBvVGFnIDogcG9JbWFnZTtcbiAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpZWxkIH1cbiAgICAgIFwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNwb0NvbnRlbnRDb250YWluZXIgbGV0LWZpZWxkcz5cbiAgPHBvLWR5bmFtaWMtY29udGFpbmVyIFtwLWZpZWxkc109XCJmaWVsZHNcIiBbcC1jb250ZW50XT1cInBvQ29udGVudFwiPjwvcG8tZHluYW1pYy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BvSW5mbyBsZXQtZmllbGQ+XG4gIDxwby1pbmZvIFtuZ0NsYXNzXT1cImZpZWxkLmNzc0NsYXNzXCIgW3AtbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbcC12YWx1ZV09XCJzZXRGaWVsZFZhbHVlKGZpZWxkKVwiPiA8L3BvLWluZm8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BvVGFnIGxldC1maWVsZD5cbiAgPHBvLXRhZ1xuICAgIFtuZ0NsYXNzXT1cImZpZWxkLmNzc0NsYXNzXCJcbiAgICBbcC1jb2xvcl09XCJmaWVsZC5jb2xvclwiXG4gICAgW3AtaWNvbl09XCJmaWVsZC5pY29uXCJcbiAgICBbcC1pbnZlcnNlXT1cImZpZWxkLmludmVyc2VcIlxuICAgIFtwLWxhYmVsXT1cImZpZWxkLmxhYmVsXCJcbiAgICBbcC12YWx1ZV09XCJzZXRGaWVsZFZhbHVlKGZpZWxkKVwiXG4gID5cbiAgPC9wby10YWc+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BvSW1hZ2UgbGV0LWZpZWxkPlxuICA8cG8taW1hZ2UgW3AtYWx0XT1cImZpZWxkLmFsdFwiIFtwLWhlaWdodF09XCJmaWVsZC5oZWlnaHRcIiBbcC1zcmNdPVwiZmllbGQudmFsdWVcIj4gPC9wby1pbWFnZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=