@po-ui/ng-components 18.16.0 → 18.17.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 (72) hide show
  1. package/esm2022/lib/components/po-chart/index.mjs +2 -1
  2. package/esm2022/lib/components/po-chart/interfaces/po-chart-path-coordinates.interface.mjs +1 -1
  3. package/esm2022/lib/components/po-chart/interfaces/po-chart-points-coordinates.interface.mjs +1 -1
  4. package/esm2022/lib/components/po-chart/interfaces/po-chart-serie-data-label.interface.mjs +2 -0
  5. package/esm2022/lib/components/po-chart/po-chart-base.component.mjs +28 -2
  6. package/esm2022/lib/components/po-chart/po-chart-container/po-chart-container.component.mjs +61 -33
  7. package/esm2022/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-area/po-chart-area.component.mjs +7 -6
  8. package/esm2022/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line-base.component.mjs +22 -4
  9. package/esm2022/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line.component.mjs +26 -7
  10. package/esm2022/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-series-point/po-chart-series-point.component.mjs +62 -8
  11. package/esm2022/lib/components/po-chart/po-chart.component.mjs +10 -5
  12. package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.mjs +1 -1
  13. package/esm2022/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.mjs +30 -30
  14. package/esm2022/lib/components/po-field/po-checkbox-group/po-checkbox-group-base.component.mjs +16 -2
  15. package/esm2022/lib/components/po-field/po-checkbox-group/po-checkbox-group.component.mjs +16 -7
  16. package/esm2022/lib/components/po-field/po-combo/po-combo-base.component.mjs +28 -6
  17. package/esm2022/lib/components/po-field/po-combo/po-combo.component.mjs +17 -10
  18. package/esm2022/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.mjs +44 -7
  19. package/esm2022/lib/components/po-field/po-datepicker-range/po-datepicker-range.component.mjs +5 -2
  20. package/esm2022/lib/components/po-field/po-field-validate.model.mjs +30 -5
  21. package/esm2022/lib/components/po-field/po-lookup/po-lookup-base.component.mjs +16 -2
  22. package/esm2022/lib/components/po-field/po-lookup/po-lookup.component.mjs +17 -9
  23. package/esm2022/lib/components/po-field/po-multiselect/po-multiselect-base.component.mjs +16 -2
  24. package/esm2022/lib/components/po-field/po-multiselect/po-multiselect.component.mjs +10 -4
  25. package/esm2022/lib/components/po-field/po-radio-group/po-radio-group-base.component.mjs +16 -2
  26. package/esm2022/lib/components/po-field/po-radio-group/po-radio-group.component.mjs +18 -8
  27. package/esm2022/lib/components/po-field/po-select/po-select.component.mjs +16 -10
  28. package/esm2022/lib/components/po-field/po-textarea/po-textarea-base.component.mjs +21 -2
  29. package/esm2022/lib/components/po-field/po-textarea/po-textarea.component.mjs +19 -8
  30. package/fesm2022/po-ui-ng-components.mjs +518 -153
  31. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  32. package/lib/components/po-chart/index.d.ts +1 -0
  33. package/lib/components/po-chart/interfaces/po-chart-path-coordinates.interface.d.ts +4 -0
  34. package/lib/components/po-chart/interfaces/po-chart-points-coordinates.interface.d.ts +2 -0
  35. package/lib/components/po-chart/interfaces/po-chart-serie-data-label.interface.d.ts +25 -0
  36. package/lib/components/po-chart/po-chart-base.component.d.ts +25 -1
  37. package/lib/components/po-chart/po-chart-container/po-chart-container.component.d.ts +7 -1
  38. package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line-base.component.d.ts +4 -1
  39. package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line.component.d.ts +5 -2
  40. package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-series-point/po-chart-series-point.component.d.ts +6 -1
  41. package/lib/components/po-chart/po-chart.component.d.ts +5 -0
  42. package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.d.ts +9 -2
  43. package/lib/components/po-field/po-checkbox-group/po-checkbox-group-base.component.d.ts +12 -1
  44. package/lib/components/po-field/po-checkbox-group/po-checkbox-group.component.d.ts +3 -0
  45. package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +16 -3
  46. package/lib/components/po-field/po-combo/po-combo.component.d.ts +4 -2
  47. package/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.d.ts +19 -4
  48. package/lib/components/po-field/po-datepicker-range/po-datepicker-range.component.d.ts +1 -1
  49. package/lib/components/po-field/po-field-validate.model.d.ts +16 -1
  50. package/lib/components/po-field/po-lookup/po-lookup-base.component.d.ts +12 -1
  51. package/lib/components/po-field/po-lookup/po-lookup.component.d.ts +5 -2
  52. package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +12 -1
  53. package/lib/components/po-field/po-multiselect/po-multiselect.component.d.ts +2 -0
  54. package/lib/components/po-field/po-radio-group/po-radio-group-base.component.d.ts +12 -1
  55. package/lib/components/po-field/po-radio-group/po-radio-group.component.d.ts +4 -1
  56. package/lib/components/po-field/po-select/po-select.component.d.ts +5 -3
  57. package/lib/components/po-field/po-textarea/po-textarea-base.component.d.ts +13 -1
  58. package/lib/components/po-field/po-textarea/po-textarea.component.d.ts +5 -2
  59. package/package.json +4 -4
  60. package/po-ui-ng-components-18.17.0.tgz +0 -0
  61. package/schematics/ng-add/index.js +1 -1
  62. package/schematics/ng-update/v14/index.js +1 -1
  63. package/schematics/ng-update/v15/index.js +1 -1
  64. package/schematics/ng-update/v16/index.js +1 -1
  65. package/schematics/ng-update/v17/index.js +1 -1
  66. package/schematics/ng-update/v18/index.js +2 -2
  67. package/schematics/ng-update/v2/index.js +1 -1
  68. package/schematics/ng-update/v3/index.js +1 -1
  69. package/schematics/ng-update/v4/index.js +1 -1
  70. package/schematics/ng-update/v5/index.js +1 -1
  71. package/schematics/ng-update/v6/index.js +1 -1
  72. package/po-ui-ng-components-18.16.0.tgz +0 -0
@@ -2,6 +2,7 @@ export * from './interfaces/po-chart-serie.interface';
2
2
  export * from './enums/po-chart-type.enum';
3
3
  export * from './interfaces/po-chart-axis-options.interface';
4
4
  export * from './interfaces/po-chart-options.interface';
5
+ export * from './interfaces/po-chart-serie-data-label.interface';
5
6
  export * from './po-chart.component';
6
7
  export * from './po-chart.module';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tY2hhcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvcG8tY2hhcnQtc2VyaWUuaW50ZXJmYWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9wby1jaGFydC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNoYXJ0LWF4aXMtb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNoYXJ0LW9wdGlvbnMuaW50ZXJmYWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9wby1jaGFydC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3BvLWNoYXJ0Lm1vZHVsZSc7XG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tY2hhcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9wby1jaGFydC1zZXJpZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2VudW1zL3BvLWNoYXJ0LXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvcG8tY2hhcnQtYXhpcy1vcHRpb25zLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvcG8tY2hhcnQtb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNoYXJ0LXNlcmllLWRhdGEtbGFiZWwuaW50ZXJmYWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9wby1jaGFydC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3BvLWNoYXJ0Lm1vZHVsZSc7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtcGF0aC1jb29yZGluYXRlcy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tY2hhcnQvaW50ZXJmYWNlcy9wby1jaGFydC1wYXRoLWNvb3JkaW5hdGVzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBAdXNlZEJ5IFBvQ2hhcnRDb21wb25lbnRcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBJbnRlcmZhY2UgcXVlIGRlZmluZSBvIG9iamV0byBjb20gYXMgY29vcmRlbmFkYXMgZGFzIGxpbmhhcyBkbyBncsOhZmljbyAoY2hhcnQtcGF0aCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9DaGFydFBhdGhDb29yZGluYXRlcyB7XG4gIC8qKiBBIGNvciBkYSBzw6lyaWUuICovXG4gIGNvbG9yPzogc3RyaW5nO1xuXG4gIC8qKiBBcyBjb29yZGVuYWRhcyBkYSBzw6lyaWUuICovXG4gIGNvb3JkaW5hdGVzPzogc3RyaW5nO1xuXG4gIC8qKiBWYWxvciBkYSBzw6lyaWUuICovXG4gIGRhdGE/OiBudW1iZXI7XG5cbiAgLyoqIEluZGljYSBzZSDDqSBlbGVtZW50byBhbyBxdWFsIG8gY3Vyc29yIGVzdMOhIHNlbGVjaW9uYWRvLiAqL1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqIEEgc8OpcmllIHBhcmEgYSBxdWFsIGNvcnJlc3BvbmRlbSBhcyBjb29yZGVuYWRhcy4gKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqIE8gdGV4dG8gZGUgZXhpYmnDp8OjbyBubyB0b29sdGlwLiAqL1xuICB0b29sdGlwTGFiZWw/OiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtcGF0aC1jb29yZGluYXRlcy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tY2hhcnQvaW50ZXJmYWNlcy9wby1jaGFydC1wYXRoLWNvb3JkaW5hdGVzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBAdXNlZEJ5IFBvQ2hhcnRDb21wb25lbnRcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBJbnRlcmZhY2UgcXVlIGRlZmluZSBvIG9iamV0byBjb20gYXMgY29vcmRlbmFkYXMgZGFzIGxpbmhhcyBkbyBncsOhZmljbyAoY2hhcnQtcGF0aCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9DaGFydFBhdGhDb29yZGluYXRlcyB7XG4gIC8qKiBBIGNvciBkYSBzw6lyaWUuICovXG4gIGNvbG9yPzogc3RyaW5nO1xuXG4gIC8qKiBBcyBjb29yZGVuYWRhcyBkYSBzw6lyaWUuICovXG4gIGNvb3JkaW5hdGVzPzogc3RyaW5nO1xuXG4gIC8qKiBWYWxvciBkYSBzw6lyaWUuICovXG4gIGRhdGE/OiBudW1iZXI7XG5cbiAgLyoqIEluZGljYSBzZSDDqSBlbGVtZW50byBhbyBxdWFsIG8gY3Vyc29yIGVzdMOhIHNlbGVjaW9uYWRvLiAqL1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqIEEgc8OpcmllIHBhcmEgYSBxdWFsIGNvcnJlc3BvbmRlbSBhcyBjb29yZGVuYWRhcy4gKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqIE8gdGV4dG8gZGUgZXhpYmnDp8OjbyBubyB0b29sdGlwLiAqL1xuICB0b29sdGlwTGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqIEluZGljYSBzZSDDqSBlbGVtZW50byBuw6NvIGVzdMOhIGVtIGZvY28uICovXG4gIGlzQmx1cj86IGJvb2xlYW47XG5cbiAgLyoqIEluZGljYSBzZSBvIHZhbG9yIGRhIHPDqXJpZSBlc3TDoSBtb3N0cmFuZG8gZml4YWRvIG5hIHRlbGEuICovXG4gIGlzRml4ZWQ/OiBib29sZWFuO1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtcG9pbnRzLWNvb3JkaW5hdGVzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1jaGFydC9pbnRlcmZhY2VzL3BvLWNoYXJ0LXBvaW50cy1jb29yZGluYXRlcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQHVzZWRCeSBQb0NoYXJ0Q29tcG9uZW50XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogSW50ZXJmYWNlIHF1ZSBkZWZpbmUgbyBvYmpldG8gY29tIGFzIGNvb3JkZW5hZGFzIGRvcyBwb250b3MgZGFzIGxpbmhhcyBkbyBncsOhZmljbyBkbyB0aXBvIGxpbmhhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvQ2hhcnRQb2ludHNDb29yZGluYXRlcyB7XG4gIC8qKiBDYXRlZ29yaWEgZG8gZWl4byBZIG5hIHF1YWwgbyBpdGVtIGRhIHPDqXJpZSBlc3TDoSBwcmVzZW50ZS4gKi9cbiAgY2F0ZWdvcnk6IHN0cmluZztcblxuICAvLyBDb3IgZGEgc8OpcmllXG4gIGNvbG9yPzogc3RyaW5nO1xuXG4gIC8qKiBJbmRpY2EgbyBwb250byBhdGl2byBlbSByZWxhw6fDo28gYW8gcG9zaWNpb25hbWVudG8gZG8gY3Vyc29yIG5hIMOhcmVhIGRvIGdyw6FmaWNvLiAqL1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqIEEgc8OpcmllIHBhcmEgYSBxdWFsIGNvcnJlc3BvbmRlbSBhcyBjb29yZGVuYWRhcy4gKi9cbiAgbGFiZWw6IHN0cmluZztcblxuICAvKiogTyB0ZXh0byBkZSBleGliacOnw6NvIG5vIHRvb2x0aXAuICovXG4gIHRvb2x0aXBMYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBWYWxvciBkYSBzw6lyaWUuICovXG4gIGRhdGE6IG51bWJlcjtcblxuICAvKiogQ29vcmRlbmFkYSBob3Jpem9udGFsLiAqL1xuICB4Q29vcmRpbmF0ZTogbnVtYmVyO1xuXG4gIC8qKiBDb29yZGVuYWRhIHZlcnRpY2FsLiAqL1xuICB5Q29vcmRpbmF0ZTogbnVtYmVyO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtcG9pbnRzLWNvb3JkaW5hdGVzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1jaGFydC9pbnRlcmZhY2VzL3BvLWNoYXJ0LXBvaW50cy1jb29yZGluYXRlcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQHVzZWRCeSBQb0NoYXJ0Q29tcG9uZW50XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogSW50ZXJmYWNlIHF1ZSBkZWZpbmUgbyBvYmpldG8gY29tIGFzIGNvb3JkZW5hZGFzIGRvcyBwb250b3MgZGFzIGxpbmhhcyBkbyBncsOhZmljbyBkbyB0aXBvIGxpbmhhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvQ2hhcnRQb2ludHNDb29yZGluYXRlcyB7XG4gIC8qKiBDYXRlZ29yaWEgZG8gZWl4byBZIG5hIHF1YWwgbyBpdGVtIGRhIHPDqXJpZSBlc3TDoSBwcmVzZW50ZS4gKi9cbiAgY2F0ZWdvcnk6IHN0cmluZztcblxuICAvLyBDb3IgZGEgc8OpcmllXG4gIGNvbG9yPzogc3RyaW5nO1xuXG4gIC8qKiBJbmRpY2EgbyBwb250byBhdGl2byBlbSByZWxhw6fDo28gYW8gcG9zaWNpb25hbWVudG8gZG8gY3Vyc29yIG5hIMOhcmVhIGRvIGdyw6FmaWNvLiAqL1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqIEEgc8OpcmllIHBhcmEgYSBxdWFsIGNvcnJlc3BvbmRlbSBhcyBjb29yZGVuYWRhcy4gKi9cbiAgbGFiZWw6IHN0cmluZztcblxuICAvKiogTyB0ZXh0byBkZSBleGliacOnw6NvIG5vIHRvb2x0aXAuICovXG4gIHRvb2x0aXBMYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBWYWxvciBkYSBzw6lyaWUuICovXG4gIGRhdGE6IG51bWJlcjtcblxuICAvKiogQ29vcmRlbmFkYSBob3Jpem9udGFsLiAqL1xuICB4Q29vcmRpbmF0ZTogbnVtYmVyO1xuXG4gIC8qKiBDb29yZGVuYWRhIHZlcnRpY2FsLiAqL1xuICB5Q29vcmRpbmF0ZTogbnVtYmVyO1xuXG4gIC8qKiBJbmRpY2Egc2UgbyB2YWxvciBkYSBzw6lyaWUgZXN0w6EgbW9zdHJhbmRvIGZpeGFkbyBuYSB0ZWxhLiAqL1xuICBpc0ZpeGVkPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtc2VyaWUtZGF0YS1sYWJlbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tY2hhcnQvaW50ZXJmYWNlcy9wby1jaGFydC1zZXJpZS1kYXRhLWxhYmVsLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9DaGFydFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wby1jaGFydC10eXBlLmVudW0nO1xuXG4vKipcbiAqIEB1c2VkQnkgUG9DaGFydENvbXBvbmVudFxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEludGVyZmFjZSBxdWUgZGVmaW5lIGFzIHByb3ByaWVkYWRlcyBkZSBleGliacOnw6NvIGRvcyByw7N0dWxvcyBkYXMgc8OpcmllcyBubyBgcG8tY2hhcnRgLlxuICpcbiAqID4gQXBsaWPDoXZlbCBhcGVuYXMgcGFyYSBncsOhZmljb3MgZG8gdGlwbyBgbGluZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9DaGFydERhdGFMYWJlbCB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBzZSBvIHRleHRvIGFzc29jaWFkbyBhb3MgcG9udG9zIGRhIHPDqXJpZSBkZXZlIHBlcm1hbmVjZXIgZml4byBuYSBleGliacOnw6NvIGRvIGdyw6FmaWNvLlxuICAgKlxuICAgKiAtIFF1YW5kbyBkZWZpbmlkbyBjb21vIGB0cnVlYDpcbiAgICogICAtIE8gKnRvb2x0aXAqIG7Do28gc2Vyw6EgZXhpYmlkby5cbiAgICogICAtIEFzIG91dHJhcyBzw6lyaWVzIGZpY2Fyw6NvIGNvbSBvcGFjaWRhZGUgcmVkdXppZGEgYW8gcGFzc2FyIG8gbW91c2Ugc29icmUgYSBzw6lyaWUgYXRpdmEuXG4gICAqXG4gICAqID4gRGlzcG9uw612ZWwgYXBlbmFzIHBhcmEgbyB0aXBvIGRlIGdyw6FmaWNvIGBQb0NoYXJ0VHlwZS5MaW5lYC5cbiAgICovXG4gIGZpeGVkPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -182,6 +182,29 @@ export class PoChartBaseComponent {
182
182
  get options() {
183
183
  return this._options;
184
184
  }
185
+ /**
186
+ * @optional
187
+ *
188
+ * @description
189
+ *
190
+ * Permite configurar as propriedades de exibição dos rótulos das séries no gráfico.
191
+ *
192
+ * Essa configuração possibilita fixar os valores das séries diretamente no gráfico, alterando o comportamento visual:
193
+ * - Os valores das séries permanecem visíveis, sem a necessidade de hover.
194
+ * - O *tooltip* não será exibido.
195
+ * - Os marcadores (*bullets*) terão seu estilo ajustado.
196
+ * - As outras séries ficarão com opacidade reduzida ao passar o mouse sobre a série ativa.
197
+ *
198
+ * > Disponível apenas para gráficos do tipo `line`.
199
+ *
200
+ * #### Exemplo de utilização:
201
+ * ```typescript
202
+ * dataLabel: PoChartDataLabel = {
203
+ * fixed: true,
204
+ * };
205
+ * ```
206
+ */
207
+ dataLabel;
185
208
  constructor(colorService) {
186
209
  this.colorService = colorService;
187
210
  }
@@ -237,7 +260,7 @@ export class PoChartBaseComponent {
237
260
  });
238
261
  }
239
262
  static ɵfac = function PoChartBaseComponent_Factory(t) { return new (t || PoChartBaseComponent)(i0.ɵɵdirectiveInject(i1.PoColorService)); };
240
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoChartBaseComponent, inputs: { title: [0, "p-title", "title"], height: [0, "p-height", "height"], type: [0, "p-type", "type"], series: [0, "p-series", "series"], categories: [0, "p-categories", "categories"], options: [0, "p-options", "options"] }, outputs: { seriesClick: "p-series-click", seriesHover: "p-series-hover" }, features: [i0.ɵɵNgOnChangesFeature] });
263
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoChartBaseComponent, inputs: { title: [0, "p-title", "title"], height: [0, "p-height", "height"], type: [0, "p-type", "type"], series: [0, "p-series", "series"], categories: [0, "p-categories", "categories"], options: [0, "p-options", "options"], dataLabel: [0, "p-data-label", "dataLabel"] }, outputs: { seriesClick: "p-series-click", seriesHover: "p-series-hover" }, features: [i0.ɵɵNgOnChangesFeature] });
241
264
  }
242
265
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoChartBaseComponent, [{
243
266
  type: Directive
@@ -265,5 +288,8 @@ export class PoChartBaseComponent {
265
288
  }], options: [{
266
289
  type: Input,
267
290
  args: ['p-options']
291
+ }], dataLabel: [{
292
+ type: Input,
293
+ args: ['p-data-label']
268
294
  }] }); })();
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tY2hhcnQvcG8tY2hhcnQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFakcsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUcxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUt6RCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUNqQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCxNQUFNLE9BQWdCLG9CQUFvQjtJQW9MbEI7SUFuTHRCLGtDQUFrQztJQUNoQixLQUFLLENBQVU7SUFFakM7Ozs7Ozs7Ozs7T0FVRztJQUVILFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQUUvQzs7Ozs7Ozs7OztPQVVHO0lBRUgsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO0lBRS9DLDBFQUEwRTtJQUMxRSxXQUFXLEdBQXdCLEVBQUUsQ0FBQztJQUN0QyxTQUFTLENBQWM7SUFDdkIsZ0JBQWdCLENBQXVCO0lBRS9CLFFBQVEsQ0FBaUI7SUFDekIsV0FBVyxDQUFnQjtJQUMzQixPQUFPLENBQVM7SUFDaEIsT0FBTyxDQUFzQjtJQUM3QixLQUFLLENBQWM7SUFFbkIsV0FBVyxDQUFjO0lBRWpDOzs7Ozs7Ozs7O09BVUc7SUFDSCxJQUF1QixNQUFNLENBQUMsS0FBYTtRQUN6QyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxN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SUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQWUsTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLFVBQVUsQ0FBQyxNQUEyQjtRQUM1QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDakMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQVMsTUFBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDckUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJO29CQUNaLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEMsQ0FBQztZQUVELE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhFQTFQbUIsb0JBQW9COzZEQUFwQixvQkFBb0I7O2lGQUFwQixvQkFBb0I7Y0FEekMsU0FBUzsrQ0FHVSxLQUFLO2tCQUF0QixLQUFLO21CQUFDLFNBQVM7WUFjaEIsV0FBVztrQkFEVixNQUFNO21CQUFDLGdCQUFnQjtZQWV4QixXQUFXO2tCQURWLE1BQU07bUJBQUMsZ0JBQWdCO1lBMkJELE1BQU07a0JBQTVCLEtBQUs7bUJBQUMsVUFBVTtZQXFDSSxJQUFJO2tCQUF4QixLQUFLO21CQUFDLFFBQVE7WUFnQlEsTUFBTTtrQkFBNUIsS0FBSzttQkFBQyxVQUFVO1lBMEJVLFVBQVU7a0JBQXBDLEtBQUs7bUJBQUMsY0FBYztZQStCRyxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIERpcmVjdGl2ZSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGNvbnZlcnRUb0ludCwgaXNUeXBlb2YgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9DaGFydENvbnRhaW5lclNpemUgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY2hhcnQtY29udGFpbmVyLXNpemUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvQ2hhcnRUeXBlIH0gZnJvbSAnLi9lbnVtcy9wby1jaGFydC10eXBlLmVudW0nO1xuaW1wb3J0IHsgUG9DaGFydE9wdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY2hhcnQtb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9DaGFydFNlcmllIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNoYXJ0LXNlcmllLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NvbG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWNvbG9yL3BvLWNvbG9yLnNlcnZpY2UnO1xuXG5jb25zdCBwb0NoYXJ0RGVmYXVsdEhlaWdodCA9IDQwMDtcbmNvbnN0IHBvQ2hhcnRNaW5IZWlnaHQgPSAyMDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBgcG8tY2hhcnRgIMOpIHVtIGNvbXBvbmVudGUgcGFyYSByZW5kZXJpemHDp8OjbyBkZSBkYWRvcyBhdHJhdsOpcyBkZSBncsOhZmljb3MsIGNvbSBpc3NvIGZhY2lsaXRhbmRvIGEgY29tcHJlZW5zw6NvIGUgdG9ybmFuZG8gYVxuICogdmlzdWFsaXphw6fDo28gZGVzdGVzIGRhZG9zIG1haXMgYWdyYWTDoXZlbC5cbiAqXG4gKiBBdHJhdsOpcyBkZSBzdWFzIHByaW5jaXBhaXMgcHJvcHJpZWRhZGVzIMOpIHBvc3PDrXZlbCBkZWZpbmlyIGF0cmlidXRvcywgdGFpcyBjb21vIHRpcG8gZGUgZ3LDoWZpY28sIGFsdHVyYSwgdMOtdHVsbywgY29yZXMgY3VzdG9taXphZGFzLCBvcMOnw7VlcyBwYXJhIG9zIGVpeG9zLCBlbnRyZSBvdXRyb3MuXG4gKlxuICogTyBjb21wb25lbnRlIHBlcm1pdGUgdXRpbGl6YXIgZW0gY29uanVudG8gc8OpcmllcyBkbyB0aXBvIGxpbmhhIGUgY29sdW5hLlxuICpcbiAqIEFsw6ltIGRpc3NvLCB0YW1iw6ltIMOpIHBvc3PDrXZlbCBkZWZpbmlyIHVtYSBhw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBhbyBjbGljYXIgZW0gZGV0ZXJtaW5hZG8gZWxlbWVudG8gZG8gZ3LDoWZpY29cbiAqIGUgb3V0cmEgcXVlIHNlcsOhIGV4ZWN1dGFkYSBhbyBwYXNzYXIgbyAqbW91c2UqIHNvYnJlIG8gZWxlbWVudG8uXG4gKlxuICogIyMjIyBHdWlhIGRlIHVzbyBwYXJhIEdyw6FmaWNvc1xuICpcbiAqID4gVmVqYSBub3NzbyBbZ3VpYSBkZSB1c28gcGFyYSBncsOhZmljb3NdKC9ndWlkZXMvZ3VpZGUtY2hhcnRzKSBwYXJhIGF1eGlsaWFyIG5hIGNvbnN0cnXDp8OjbyBkbyBzZXUgZ3LDoWZpY28sXG4gKiBpbmZvcm1hbmRvIGVtIHF1YWwgY2FzbyB1dGlsaXphciwgbyBxdWUgZGV2ZW1vcyBldml0YXIgZSBib2FzIHByw6F0aWNhcyByZWxhY2lvbmFkYSBhIGNvcmVzLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0NoYXJ0QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKiBEZWZpbmUgbyB0w610dWxvIGRvIGdyw6FmaWNvLiAqL1xuICBASW5wdXQoJ3AtdGl0bGUnKSB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZXhlY3V0YWRvIHF1YW5kbyBvIHVzdcOhcmlvIGNsaWNhciBzb2JyZSB1bSBlbGVtZW50byBkbyBncsOhZmljby5cbiAgICpcbiAgICogTyBldmVudG8gZW1pdGlyw6EgbyBzZWd1aW50ZSBwYXLDom1ldHJvOlxuICAgKiAtICpkb251dCogZSAqcGllKjogdW0gb2JqZXRvIGNvbnRlbmRvIGEgY2F0ZWdvcmlhIGUgdmFsb3IgZGEgc8OpcmllLlxuICAgKiAtICphcmVhKiwgKmxpbmUqLCAqY29sdW1uKiBlICpiYXIqOiB1bSBvYmpldG8gY29udGVuZG8gbyBub21lIGRhIHPDqXJpZSwgdmFsb3IgZSBjYXRlZ29yaWEgZG8gZWl4byBkbyBncsOhZmljby5cbiAgICovXG4gIEBPdXRwdXQoJ3Atc2VyaWVzLWNsaWNrJylcbiAgc2VyaWVzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFBvQ2hhcnRTZXJpZT4oKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZXhlY3V0YWRvIHF1YW5kbyBvIHVzdcOhcmlvIHBhc3NhciBvICptb3VzZSogc29icmUgdW0gZWxlbWVudG8gZG8gZ3LDoWZpY28uXG4gICAqXG4gICAqIE8gZXZlbnRvIGVtaXRpcsOhIG8gc2VndWludGUgcGFyw6JtZXRybyBkZSBhY29yZG8gY29tIG8gdGlwbyBkZSBncsOhZmljbzpcbiAgICogLSAqZG9udXQqIGUgKnBpZSo6IHVtIG9iamV0byBjb250ZW5kbyBhIGNhdGVnb3JpYSBlIHZhbG9yIGRhIHPDqXJpZS5cbiAgICogLSAqYXJlYSosICpsaW5lKiwgKmNvbHVtbiogZSAqYmFyKjogdW0gb2JqZXRvIGNvbnRlbmRvIGEgY2F0ZWdvcmlhLCB2YWxvciBkYSBzw6lyaWUgZSBjYXRlZ29yaWEgZG8gZWl4byBkbyBncsOhZmljby5cbiAgICovXG4gIEBPdXRwdXQoJ3Atc2VyaWVzLWhvdmVyJylcbiAgc2VyaWVzSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFBvQ2hhcnRTZXJpZT4oKTtcblxuICAvLyBtYW5pcHVsYcOnw6NvIGRhcyBzw6lyaWVzIHRyYXRhZGFzIGludGVybmFtZW50ZSBwYXJhIHByZXNlcnZhciAncC1zZXJpZXMnO1xuICBjaGFydFNlcmllczogQXJyYXk8UG9DaGFydFNlcmllPiA9IFtdO1xuICBjaGFydFR5cGU6IFBvQ2hhcnRUeXBlO1xuICBzdmdDb250YWluZXJTaXplOiBQb0NoYXJ0Q29udGFpbmVyU2l6ZTtcblxuICBwcml2YXRlIF9vcHRpb25zOiBQb0NoYXJ0T3B0aW9ucztcbiAgcHJpdmF0ZSBfY2F0ZWdvcmllczogQXJyYXk8c3RyaW5nPjtcbiAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXI7XG4gIHByaXZhdGUgX3NlcmllczogQXJyYXk8UG9DaGFydFNlcmllPjtcbiAgcHJpdmF0ZSBfdHlwZTogUG9DaGFydFR5cGU7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0VHlwZTogUG9DaGFydFR5cGU7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGEgYWx0dXJhIGRvIGdyw6FmaWNvLlxuICAgKlxuICAgKiA+IE8gdmFsb3IgbcOtbmltbyBhY2VpdG8gbmVzdGEgcHJvcHJpZWRhZGUgw6kgMjAwLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgNDAwcHhgXG4gICAqL1xuICBASW5wdXQoJ3AtaGVpZ2h0Jykgc2V0IGhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgaW50VmFsdWUgPSBjb252ZXJ0VG9JbnQodmFsdWUpO1xuICAgIGxldCBoZWlnaHQ6IG51bWJlcjtcblxuICAgIGlmIChpc1R5cGVvZih2YWx1ZSwgJ251bWJlcicpKSB7XG4gICAgICBoZWlnaHQgPSBpbnRWYWx1ZSA8PSBwb0NoYXJ0TWluSGVpZ2h0ID8gcG9DaGFydE1pbkhlaWdodCA6IGludFZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBoZWlnaHQgPSB0aGlzLnNldERlZmF1bHRIZWlnaHQoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9oZWlnaHQgPSBoZWlnaHQ7XG5cbiAgICB0aGlzLmdldFN2Z0NvbnRhaW5lclNpemUoKTtcbiAgICB0aGlzLnJlYnVpbGRDb21wb25lbnRSZWYoKTtcbiAgfVxuXG4gIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faGVpZ2h0IHx8IHRoaXMuc2V0RGVmYXVsdEhlaWdodCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIG8gdGlwbyBkZSBncsOhZmljby5cbiAgICpcbiAgICogw4kgcG9zc8OtdmVsIHRhbWLDqW0gY29tYmluYXIgZ3LDoWZpY29zIGRvcyB0aXBvcyBsaW5oYSBlIGNvbHVuYS4gUGFyYSBpc3NvLCBvcHRlIHBlbGEgZGVjbGFyYcOnw6NvIGRlIGB0eXBlYCBjb25mb3JtZSBhIGludGVyZmFjZSBgUG9DaGFydFNlcmllYC5cbiAgICpcbiAgICogPiBOb3RlIHF1ZSwgc2UgaG91dmVyIGRlY2xhcmHDp8OjbyBkZSB0aXBvIGRlIGdyw6FmaWNvIHRhbnRvIGVtIGBwLXR5cGVgIHF1YW50byBlbSBgUG9jaGFydFNlcmllLnR5cGVgLCBvIHZhbG9yIGB7IHR5cGUgfWAgZGEgcHJpbWVpcmEgc8OpcmllIGFudWxhcsOhIG8gdmFsb3IgZGVmaW5pZG8gZW0gYHAtdHlwZWAuXG4gICAqXG4gICAqIFNlIG7Do28gcGFzc2FkbyB2YWxvciwgbyBwYWRyw6NvIHNlcsOhIHJlbGF0aXZvIMOgIHByaW1laXJhIHPDqXJpZSBwYXNzYWRhIGVtIGBwLXNlcmllc2A6XG4gICAqIC0gU2UgYHAtc2VyaWVzID0gW3sgZGF0YTogWzEsMiwzXSB9XWA6IHNlcsOhIGBQb0NoYXJ0VHlwZS5Db2x1bW5gLlxuICAgKiAtIFNlIGBwLXNlcmllcyA9IFt7IGRhdGE6IDEgfV1gOiBzZXLDoSBgUG9DaGFydFR5cGUuUGllYC5cbiAgICpcbiAgICogPiBWZWphIG9zIHZhbG9yZXMgdsOhbGlkb3Mgbm8gKmVudW0qIGBQb0NoYXJ0VHlwZWAuXG4gICAqL1xuICBASW5wdXQoJ3AtdHlwZScpIHNldCB0eXBlKHZhbHVlOiBQb0NoYXJ0VHlwZSkge1xuICAgIC8vIE8gVmFsb3IgZGVmYXVsdCBkZWZpbmlkbyBlbSBgcC1zZXJpZXNgIGRlIGFjb3JkbyBjb20gYSBwcmltZWlyYSBzw6lyaWUgcGFzc2FkYS5cbiAgICB0aGlzLl90eXBlID0gKDxhbnk+T2JqZWN0KS52YWx1ZXMoUG9DaGFydFR5cGUpLmluY2x1ZGVzKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5yZWJ1aWxkQ29tcG9uZW50UmVmKCk7XG4gIH1cblxuICBnZXQgdHlwZSgpOiBQb0NoYXJ0VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBvcyBlbGVtZW50b3MgZG8gZ3LDoWZpY28gcXVlIHNlcsOjbyBjcmlhZG9zIGRpbmFtaWNhbWVudGUuXG4gICAqL1xuICBASW5wdXQoJ3Atc2VyaWVzJykgc2V0IHNlcmllcyh2YWx1ZTogQXJyYXk8UG9DaGFydFNlcmllPikge1xuICAgIHRoaXMuX3NlcmllcyA9IHZhbHVlIHx8IFtdO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fc2VyaWVzKSAmJiB0aGlzLl9zZXJpZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNldFR5cGVEZWZhdWx0KHRoaXMuX3Nlcmllc1swXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJhbnNmb3JtT2JqZWN0VG9BcnJheU9iamVjdCh0aGlzLnNlcmllcyk7XG4gICAgICB0aGlzLnJlYnVpbGRDb21wb25lbnRSZWYoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2VyaWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9zZXJpZXM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgb3Mgbm9tZXMgZGFzIGNhdGVnb3JpYXMgcXVlIHNlcsOjbyBwbG90YWRhcyBubyBlaXhvIFggZG8gZ3LDoWZpY28gY2FzbyBzZWphIGRvIHRpcG8gYGJhcmAsIG91IGVudMOjbyBub3MgZWl4b3MgWSBkbyBncmlkIGRlIGdyw6FmaWNvcyBkb3MgdGlwb3MgYGFyZWFgLCBgY29sdW1ubmAgZSBgbGluZWAuXG4gICAqXG4gICAqID4gR3LDoWZpY29zIGRvIHRpcG8gYGJhcmAgZGltZW5zaW9uYW0gYSDDoXJlYSBkbyBncsOhZmljbyBkZSBhY29yZG8gY29tIGEgbGFyZ3VyYSBkbyBtYWlvciB0ZXh0byBkZSBjYXRlZ29yaWFzLiBObyBlbnRhbnRvLCDDqSB1bWEgYm9hIHByw6F0aWNhIG9wdGFyIHBvciBwYWxhdnJhcyBjdXJ0YXMgcGFyYSBxdWUgYSBsZWl0dXJhIGRvIGdyw6FmaWNvIG7Do28gc2VqYSBwcmVqdWRpY2FkYS5cbiAgICpcbiAgICogPiBDYXNvIG7Do28gc2VqYSBlc3BlY2lmaWNhZG8gdW0gdmFsb3IgcGFyYSBhIGNhdGVnb3JpYSwgc2Vyw6EgcGxvdGFkbyB1bSBow61mZW4gbmEgY2F0ZWdvcmlhIHJlZmVyZW50ZSBhIGNhZGEgc8OpcmllLlxuICAgKi9cbiAgQElucHV0KCdwLWNhdGVnb3JpZXMnKSBzZXQgY2F0ZWdvcmllcyh2YWx1ZTogQXJyYXk8c3RyaW5nPikge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdGhpcy5fY2F0ZWdvcmllcyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjYXRlZ29yaWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9jYXRlZ29yaWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogT2JqZXRvIGNvbSBhcyBjb25maWd1cmHDp8O1ZXMgdXNhZGFzIG5vIGBwby1jaGFydGAuXG4gICAqXG4gICAqIMOJIHBvc3PDrXZlbCwgcG9yIGV4ZW1wbG8sIGRlZmluaXIgYXMgY29uZmlndXJhw6fDtWVzIGRlIGV4aWJpw6fDo28gZGFzIGxlZ2VuZGFzLFxuICAgKiBjb25maWd1cmFyIG9zIGVpeG9zKCpheGlzKikgcGFyYSBvcyBncsOhZmljb3MgZG9zIHRpcG9zIGBhcmVhYCwgYGxpbmVgLCBgY29sdW1uYCBlIGBiYXJgIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKlxuICAgKiBgYGBcbiAgICogIGNoYXJ0T3B0aW9uczogUG9DaGFydE9wdGlvbnMgPSB7XG4gICAqICAgIGxlZ2VuZDogdHJ1ZSxcbiAgICogICAgYXhpczoge1xuICAgKiAgICAgIG1pblJhbmdlOiAwLFxuICAgKiAgICAgIG1heFJhbmdlOiAxMDAsXG4gICAqICAgICAgZ3JpZExpbmVzOiA1LFxuICAgKiAgICB9LFxuICAgKiAgfTtcbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoJ3Atb3B0aW9ucycpIHNldCBvcHRpb25zKHZhbHVlOiBQb0NoYXJ0T3B0aW9ucykge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCAmJiAhKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0gdmFsdWU7XG5cbiAgICAgIGlmICh0aGlzLl9vcHRpb25zLmhhc093blByb3BlcnR5KCdsZWdlbmQnKSAmJiB0eXBlb2YgdGhpcy5fb3B0aW9ucy5sZWdlbmQgPT09ICdib29sZWFuJykge1xuICAgICAgICB0aGlzLmdldFN2Z0NvbnRhaW5lclNpemUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgb3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjb2xvclNlcnZpY2U6IFBvQ29sb3JTZXJ2aWNlKSB7fVxuXG4gIGdldCBpc1R5cGVDaXJjdWxhcigpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0VHlwZSA9PT0gUG9DaGFydFR5cGUuUGllIHx8IHRoaXMuZGVmYXVsdFR5cGUgPT09IFBvQ2hhcnRUeXBlLkRvbnV0O1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGlzQXJyYXlPZnNlcmllcyA9IEFycmF5LmlzQXJyYXkodGhpcy5zZXJpZXMpICYmIHRoaXMuc2VyaWVzLmxlbmd0aCA+IDA7XG5cbiAgICBpZiAoXG4gICAgICAoY2hhbmdlcy5zZXJpZXMgJiYgaXNBcnJheU9mc2VyaWVzKSB8fFxuICAgICAgKGNoYW5nZXMudHlwZSAmJiBpc0FycmF5T2ZzZXJpZXMpIHx8XG4gICAgICAoY2hhbmdlcy5jYXRlZ29yaWVzICYmIGlzQXJyYXlPZnNlcmllcylcbiAgICApIHtcbiAgICAgIHRoaXMudmFsaWRhdGVTZXJpZUFuZEFkZFR5cGUodGhpcy5zZXJpZXMpO1xuICAgIH1cblxuICAgIGlmICgoY2hhbmdlcy50eXBlICYmICF0aGlzLmlzVHlwZUNpcmN1bGFyKSB8fCAoY2hhbmdlcy5jYXRlZ29yaWVzICYmICF0aGlzLmlzVHlwZUNpcmN1bGFyKSkge1xuICAgICAgdGhpcy5zdmdDb250YWluZXJTaXplID0ge1xuICAgICAgICAuLi50aGlzLnN2Z0NvbnRhaW5lclNpemUsXG4gICAgICAgIGF4aXNYTGFiZWxXaWR0aDogdGhpcy5jYWxjdWxhdGVBeGlzWExhYmVsQXJlYSgpXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG9uU2VyaWVzQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VyaWVzQ2xpY2suZW1pdChldmVudCk7XG4gIH1cblxuICBvblNlcmllc0hvdmVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlcmllc0hvdmVyLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREZWZhdWx0SGVpZ2h0KCkge1xuICAgIHJldHVybiBwb0NoYXJ0RGVmYXVsdEhlaWdodDtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtT2JqZWN0VG9BcnJheU9iamVjdChzZXJpZSkge1xuICAgIHRoaXMuY2hhcnRTZXJpZXMgPSB0eXBlb2Ygc2VyaWUgPT09ICdvYmplY3QnICYmIE9iamVjdC5rZXlzKHNlcmllKS5sZW5ndGggPyBbeyAuLi5zZXJpZSB9XSA6IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUeXBlRGVmYXVsdChzZXJpZTogUG9DaGFydFNlcmllKSB7XG4gICAgY29uc3QgZGF0YSA9IHNlcmllLmRhdGE7XG4gICAgY29uc3Qgc2VyaWVUeXBlID0gKDxhbnk+T2JqZWN0KS52YWx1ZXMoUG9DaGFydFR5cGUpLmluY2x1ZGVzKHNlcmllLnR5cGUpID8gc2VyaWUudHlwZSA6IHVuZGVmaW5lZDtcblxuICAgIHRoaXMuZGVmYXVsdFR5cGUgPSBzZXJpZVR5cGUgPyBzZXJpZVR5cGUgOiBBcnJheS5pc0FycmF5KGRhdGEpID8gUG9DaGFydFR5cGUuQ29sdW1uIDogUG9DaGFydFR5cGUuUGllO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNlcmllQW5kQWRkVHlwZShzZXJpZXM6IEFycmF5PFBvQ2hhcnRTZXJpZT4pOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJlZFNlcmllcyA9IHNlcmllcy5maWx0ZXIoc2VyaWUgPT5cbiAgICAgIHRoaXMuaXNUeXBlQ2lyY3VsYXIgPyB0eXBlb2Ygc2VyaWUuZGF0YSA9PT0gJ251bWJlcicgOiBBcnJheS5pc0FycmF5KHNlcmllLmRhdGEpXG4gICAgKTtcblxuICAgIHRoaXMuY2hhcnRTZXJpZXMgPSB0aGlzLmFwcGVuZFR5cGUodGhpcy5hcHBlbmRDb2xvcnMoZmlsdGVyZWRTZXJpZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kQ29sb3JzKHNlcmllczogQXJyYXk8UG9DaGFydFNlcmllPikge1xuICAgIHJldHVybiB0aGlzLmNvbG9yU2VydmljZS5nZXRDb2xvcnM8UG9DaGFydFNlcmllPihzZXJpZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBlbmRUeXBlKHNlcmllczogQXJyYXk8UG9DaGFydFNlcmllPikge1xuICAgIHJldHVybiBzZXJpZXMubWFwKChzZXJpZSwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICB0aGlzLmNoYXJ0VHlwZSA9ICg8YW55Pk9iamVjdCkudmFsdWVzKFBvQ2hhcnRUeXBlKS5pbmNsdWRlcyhzZXJpZS50eXBlKVxuICAgICAgICAgID8gc2VyaWUudHlwZVxuICAgICAgICAgIDogdGhpcy50eXBlIHx8IHRoaXMuZGVmYXVsdFR5cGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IC4uLnNlcmllLCB0eXBlOiBzZXJpZS50eXBlIHx8IHRoaXMuY2hhcnRUeXBlIH07XG4gICAgfSk7XG4gIH1cblxuICBhYnN0cmFjdCByZWJ1aWxkQ29tcG9uZW50UmVmKCk6IHZvaWQ7XG5cbiAgLy8gdsOhbGlkbyBwYXJhIGdyw6FmaWNvcyBkbyB0aXBvIGNpcmN1bGFyIGUgcXVlIHNlcsOhIHJlZmF0b3JhZG8uXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRTdmdDb250YWluZXJTaXplKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjYWxjdWxhdGVBeGlzWExhYmVsQXJlYSgpOiBudW1iZXI7XG59XG4iXX0=
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tY2hhcnQvcG8tY2hhcnQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFakcsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUcxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQU16RCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUNqQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCxNQUFNLE9BQWdCLG9CQUFvQjtJQTRNbEI7SUEzTXRCLGtDQUFrQztJQUNoQixLQUFLLENBQVU7SUFFakM7Ozs7Ozs7Ozs7T0FVRztJQUVILFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQUUvQzs7Ozs7Ozs7OztPQVVHO0lBRUgsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO0lBRS9DLDBFQUEwRTtJQUMxRSxXQUFXLEdBQXdCLEVBQUUsQ0FBQztJQUN0QyxTQUFTLENBQWM7SUFDdkIsZ0JBQWdCLENBQXVCO0lBRS9CLFFBQVEsQ0FBaUI7SUFDekIsV0FBVyxDQUFnQjtJQUMzQixPQUFPLENBQVM7SUFDaEIsT0FBTyxDQUFzQjtJQUM3QixLQUFLLENBQWM7SUFFbkIsV0FBVyxDQUFjO0lBRWpDOzs7Ozs7Ozs7O09BVUc7SUFDSCxJQUF1QixNQUFNLENBQUMsS0FBYTtRQUN6QyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxN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ZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgRGlyZWN0aXZlLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY29udmVydFRvSW50LCBpc1R5cGVvZiB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBQb0NoYXJ0Q29udGFpbmVyU2l6ZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1jaGFydC1jb250YWluZXItc2l6ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9DaGFydFR5cGUgfSBmcm9tICcuL2VudW1zL3BvLWNoYXJ0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBQb0NoYXJ0T3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1jaGFydC1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NoYXJ0U2VyaWUgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY2hhcnQtc2VyaWUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvQ29sb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tY29sb3IvcG8tY29sb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBQb0NoYXJ0RGF0YUxhYmVsIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNoYXJ0LXNlcmllLWRhdGEtbGFiZWwuaW50ZXJmYWNlJztcblxuY29uc3QgcG9DaGFydERlZmF1bHRIZWlnaHQgPSA0MDA7XG5jb25zdCBwb0NoYXJ0TWluSGVpZ2h0ID0gMjAwO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIE8gYHBvLWNoYXJ0YCDDqSB1bSBjb21wb25lbnRlIHBhcmEgcmVuZGVyaXphw6fDo28gZGUgZGFkb3MgYXRyYXbDqXMgZGUgZ3LDoWZpY29zLCBjb20gaXNzbyBmYWNpbGl0YW5kbyBhIGNvbXByZWVuc8OjbyBlIHRvcm5hbmRvIGFcbiAqIHZpc3VhbGl6YcOnw6NvIGRlc3RlcyBkYWRvcyBtYWlzIGFncmFkw6F2ZWwuXG4gKlxuICogQXRyYXbDqXMgZGUgc3VhcyBwcmluY2lwYWlzIHByb3ByaWVkYWRlcyDDqSBwb3Nzw612ZWwgZGVmaW5pciBhdHJpYnV0b3MsIHRhaXMgY29tbyB0aXBvIGRlIGdyw6FmaWNvLCBhbHR1cmEsIHTDrXR1bG8sIGNvcmVzIGN1c3RvbWl6YWRhcywgb3DDp8O1ZXMgcGFyYSBvcyBlaXhvcywgZW50cmUgb3V0cm9zLlxuICpcbiAqIE8gY29tcG9uZW50ZSBwZXJtaXRlIHV0aWxpemFyIGVtIGNvbmp1bnRvIHPDqXJpZXMgZG8gdGlwbyBsaW5oYSBlIGNvbHVuYS5cbiAqXG4gKiBBbMOpbSBkaXNzbywgdGFtYsOpbSDDqSBwb3Nzw612ZWwgZGVmaW5pciB1bWEgYcOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgYW8gY2xpY2FyIGVtIGRldGVybWluYWRvIGVsZW1lbnRvIGRvIGdyw6FmaWNvXG4gKiBlIG91dHJhIHF1ZSBzZXLDoSBleGVjdXRhZGEgYW8gcGFzc2FyIG8gKm1vdXNlKiBzb2JyZSBvIGVsZW1lbnRvLlxuICpcbiAqICMjIyMgR3VpYSBkZSB1c28gcGFyYSBHcsOhZmljb3NcbiAqXG4gKiA+IFZlamEgbm9zc28gW2d1aWEgZGUgdXNvIHBhcmEgZ3LDoWZpY29zXSgvZ3VpZGVzL2d1aWRlLWNoYXJ0cykgcGFyYSBhdXhpbGlhciBuYSBjb25zdHJ1w6fDo28gZG8gc2V1IGdyw6FmaWNvLFxuICogaW5mb3JtYW5kbyBlbSBxdWFsIGNhc28gdXRpbGl6YXIsIG8gcXVlIGRldmVtb3MgZXZpdGFyIGUgYm9hcyBwcsOhdGljYXMgcmVsYWNpb25hZGEgYSBjb3Jlcy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9DaGFydEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKiogRGVmaW5lIG8gdMOtdHVsbyBkbyBncsOhZmljby4gKi9cbiAgQElucHV0KCdwLXRpdGxlJykgdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIGV4ZWN1dGFkbyBxdWFuZG8gbyB1c3XDoXJpbyBjbGljYXIgc29icmUgdW0gZWxlbWVudG8gZG8gZ3LDoWZpY28uXG4gICAqXG4gICAqIE8gZXZlbnRvIGVtaXRpcsOhIG8gc2VndWludGUgcGFyw6JtZXRybzpcbiAgICogLSAqZG9udXQqIGUgKnBpZSo6IHVtIG9iamV0byBjb250ZW5kbyBhIGNhdGVnb3JpYSBlIHZhbG9yIGRhIHPDqXJpZS5cbiAgICogLSAqYXJlYSosICpsaW5lKiwgKmNvbHVtbiogZSAqYmFyKjogdW0gb2JqZXRvIGNvbnRlbmRvIG8gbm9tZSBkYSBzw6lyaWUsIHZhbG9yIGUgY2F0ZWdvcmlhIGRvIGVpeG8gZG8gZ3LDoWZpY28uXG4gICAqL1xuICBAT3V0cHV0KCdwLXNlcmllcy1jbGljaycpXG4gIHNlcmllc0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxQb0NoYXJ0U2VyaWU+KCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIGV4ZWN1dGFkbyBxdWFuZG8gbyB1c3XDoXJpbyBwYXNzYXIgbyAqbW91c2UqIHNvYnJlIHVtIGVsZW1lbnRvIGRvIGdyw6FmaWNvLlxuICAgKlxuICAgKiBPIGV2ZW50byBlbWl0aXLDoSBvIHNlZ3VpbnRlIHBhcsOibWV0cm8gZGUgYWNvcmRvIGNvbSBvIHRpcG8gZGUgZ3LDoWZpY286XG4gICAqIC0gKmRvbnV0KiBlICpwaWUqOiB1bSBvYmpldG8gY29udGVuZG8gYSBjYXRlZ29yaWEgZSB2YWxvciBkYSBzw6lyaWUuXG4gICAqIC0gKmFyZWEqLCAqbGluZSosICpjb2x1bW4qIGUgKmJhcio6IHVtIG9iamV0byBjb250ZW5kbyBhIGNhdGVnb3JpYSwgdmFsb3IgZGEgc8OpcmllIGUgY2F0ZWdvcmlhIGRvIGVpeG8gZG8gZ3LDoWZpY28uXG4gICAqL1xuICBAT3V0cHV0KCdwLXNlcmllcy1ob3ZlcicpXG4gIHNlcmllc0hvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjxQb0NoYXJ0U2VyaWU+KCk7XG5cbiAgLy8gbWFuaXB1bGHDp8OjbyBkYXMgc8OpcmllcyB0cmF0YWRhcyBpbnRlcm5hbWVudGUgcGFyYSBwcmVzZXJ2YXIgJ3Atc2VyaWVzJztcbiAgY2hhcnRTZXJpZXM6IEFycmF5PFBvQ2hhcnRTZXJpZT4gPSBbXTtcbiAgY2hhcnRUeXBlOiBQb0NoYXJ0VHlwZTtcbiAgc3ZnQ29udGFpbmVyU2l6ZTogUG9DaGFydENvbnRhaW5lclNpemU7XG5cbiAgcHJpdmF0ZSBfb3B0aW9uczogUG9DaGFydE9wdGlvbnM7XG4gIHByaXZhdGUgX2NhdGVnb3JpZXM6IEFycmF5PHN0cmluZz47XG4gIHByaXZhdGUgX2hlaWdodDogbnVtYmVyO1xuICBwcml2YXRlIF9zZXJpZXM6IEFycmF5PFBvQ2hhcnRTZXJpZT47XG4gIHByaXZhdGUgX3R5cGU6IFBvQ2hhcnRUeXBlO1xuXG4gIHByaXZhdGUgZGVmYXVsdFR5cGU6IFBvQ2hhcnRUeXBlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBhIGFsdHVyYSBkbyBncsOhZmljby5cbiAgICpcbiAgICogPiBPIHZhbG9yIG3DrW5pbW8gYWNlaXRvIG5lc3RhIHByb3ByaWVkYWRlIMOpIDIwMC5cbiAgICpcbiAgICogQGRlZmF1bHQgYDQwMHB4YFxuICAgKi9cbiAgQElucHV0KCdwLWhlaWdodCcpIHNldCBoZWlnaHQodmFsdWU6IG51bWJlcikge1xuICAgIGNvbnN0IGludFZhbHVlID0gY29udmVydFRvSW50KHZhbHVlKTtcbiAgICBsZXQgaGVpZ2h0OiBudW1iZXI7XG5cbiAgICBpZiAoaXNUeXBlb2YodmFsdWUsICdudW1iZXInKSkge1xuICAgICAgaGVpZ2h0ID0gaW50VmFsdWUgPD0gcG9DaGFydE1pbkhlaWdodCA/IHBvQ2hhcnRNaW5IZWlnaHQgOiBpbnRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVpZ2h0ID0gdGhpcy5zZXREZWZhdWx0SGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgdGhpcy5nZXRTdmdDb250YWluZXJTaXplKCk7XG4gICAgdGhpcy5yZWJ1aWxkQ29tcG9uZW50UmVmKCk7XG4gIH1cblxuICBnZXQgaGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2hlaWdodCB8fCB0aGlzLnNldERlZmF1bHRIZWlnaHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBvIHRpcG8gZGUgZ3LDoWZpY28uXG4gICAqXG4gICAqIMOJIHBvc3PDrXZlbCB0YW1iw6ltIGNvbWJpbmFyIGdyw6FmaWNvcyBkb3MgdGlwb3MgbGluaGEgZSBjb2x1bmEuIFBhcmEgaXNzbywgb3B0ZSBwZWxhIGRlY2xhcmHDp8OjbyBkZSBgdHlwZWAgY29uZm9ybWUgYSBpbnRlcmZhY2UgYFBvQ2hhcnRTZXJpZWAuXG4gICAqXG4gICAqID4gTm90ZSBxdWUsIHNlIGhvdXZlciBkZWNsYXJhw6fDo28gZGUgdGlwbyBkZSBncsOhZmljbyB0YW50byBlbSBgcC10eXBlYCBxdWFudG8gZW0gYFBvY2hhcnRTZXJpZS50eXBlYCwgbyB2YWxvciBgeyB0eXBlIH1gIGRhIHByaW1laXJhIHPDqXJpZSBhbnVsYXLDoSBvIHZhbG9yIGRlZmluaWRvIGVtIGBwLXR5cGVgLlxuICAgKlxuICAgKiBTZSBuw6NvIHBhc3NhZG8gdmFsb3IsIG8gcGFkcsOjbyBzZXLDoSByZWxhdGl2byDDoCBwcmltZWlyYSBzw6lyaWUgcGFzc2FkYSBlbSBgcC1zZXJpZXNgOlxuICAgKiAtIFNlIGBwLXNlcmllcyA9IFt7IGRhdGE6IFsxLDIsM10gfV1gOiBzZXLDoSBgUG9DaGFydFR5cGUuQ29sdW1uYC5cbiAgICogLSBTZSBgcC1zZXJpZXMgPSBbeyBkYXRhOiAxIH1dYDogc2Vyw6EgYFBvQ2hhcnRUeXBlLlBpZWAuXG4gICAqXG4gICAqID4gVmVqYSBvcyB2YWxvcmVzIHbDoWxpZG9zIG5vICplbnVtKiBgUG9DaGFydFR5cGVgLlxuICAgKi9cbiAgQElucHV0KCdwLXR5cGUnKSBzZXQgdHlwZSh2YWx1ZTogUG9DaGFydFR5cGUpIHtcbiAgICAvLyBPIFZhbG9yIGRlZmF1bHQgZGVmaW5pZG8gZW0gYHAtc2VyaWVzYCBkZSBhY29yZG8gY29tIGEgcHJpbWVpcmEgc8OpcmllIHBhc3NhZGEuXG4gICAgdGhpcy5fdHlwZSA9ICg8YW55Pk9iamVjdCkudmFsdWVzKFBvQ2hhcnRUeXBlKS5pbmNsdWRlcyh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcblxuICAgIHRoaXMucmVidWlsZENvbXBvbmVudFJlZigpO1xuICB9XG5cbiAgZ2V0IHR5cGUoKTogUG9DaGFydFR5cGUge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgb3MgZWxlbWVudG9zIGRvIGdyw6FmaWNvIHF1ZSBzZXLDo28gY3JpYWRvcyBkaW5hbWljYW1lbnRlLlxuICAgKi9cbiAgQElucHV0KCdwLXNlcmllcycpIHNldCBzZXJpZXModmFsdWU6IEFycmF5PFBvQ2hhcnRTZXJpZT4pIHtcbiAgICB0aGlzLl9zZXJpZXMgPSB2YWx1ZSB8fCBbXTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX3NlcmllcykgJiYgdGhpcy5fc2VyaWVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRUeXBlRGVmYXVsdCh0aGlzLl9zZXJpZXNbMF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybU9iamVjdFRvQXJyYXlPYmplY3QodGhpcy5zZXJpZXMpO1xuICAgICAgdGhpcy5yZWJ1aWxkQ29tcG9uZW50UmVmKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNlcmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VyaWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIG9zIG5vbWVzIGRhcyBjYXRlZ29yaWFzIHF1ZSBzZXLDo28gcGxvdGFkYXMgbm8gZWl4byBYIGRvIGdyw6FmaWNvIGNhc28gc2VqYSBkbyB0aXBvIGBiYXJgLCBvdSBlbnTDo28gbm9zIGVpeG9zIFkgZG8gZ3JpZCBkZSBncsOhZmljb3MgZG9zIHRpcG9zIGBhcmVhYCwgYGNvbHVtbm5gIGUgYGxpbmVgLlxuICAgKlxuICAgKiA+IEdyw6FmaWNvcyBkbyB0aXBvIGBiYXJgIGRpbWVuc2lvbmFtIGEgw6FyZWEgZG8gZ3LDoWZpY28gZGUgYWNvcmRvIGNvbSBhIGxhcmd1cmEgZG8gbWFpb3IgdGV4dG8gZGUgY2F0ZWdvcmlhcy4gTm8gZW50YW50bywgw6kgdW1hIGJvYSBwcsOhdGljYSBvcHRhciBwb3IgcGFsYXZyYXMgY3VydGFzIHBhcmEgcXVlIGEgbGVpdHVyYSBkbyBncsOhZmljbyBuw6NvIHNlamEgcHJlanVkaWNhZGEuXG4gICAqXG4gICAqID4gQ2FzbyBuw6NvIHNlamEgZXNwZWNpZmljYWRvIHVtIHZhbG9yIHBhcmEgYSBjYXRlZ29yaWEsIHNlcsOhIHBsb3RhZG8gdW0gaMOtZmVuIG5hIGNhdGVnb3JpYSByZWZlcmVudGUgYSBjYWRhIHPDqXJpZS5cbiAgICovXG4gIEBJbnB1dCgncC1jYXRlZ29yaWVzJykgc2V0IGNhdGVnb3JpZXModmFsdWU6IEFycmF5PHN0cmluZz4pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX2NhdGVnb3JpZXMgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2F0ZWdvcmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5fY2F0ZWdvcmllcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9iamV0byBjb20gYXMgY29uZmlndXJhw6fDtWVzIHVzYWRhcyBubyBgcG8tY2hhcnRgLlxuICAgKlxuICAgKiDDiSBwb3Nzw612ZWwsIHBvciBleGVtcGxvLCBkZWZpbmlyIGFzIGNvbmZpZ3VyYcOnw7VlcyBkZSBleGliacOnw6NvIGRhcyBsZWdlbmRhcyxcbiAgICogY29uZmlndXJhciBvcyBlaXhvcygqYXhpcyopIHBhcmEgb3MgZ3LDoWZpY29zIGRvcyB0aXBvcyBgYXJlYWAsIGBsaW5lYCwgYGNvbHVtbmAgZSBgYmFyYCBkYSBzZWd1aW50ZSBmb3JtYTpcbiAgICpcbiAgICogYGBgXG4gICAqICBjaGFydE9wdGlvbnM6IFBvQ2hhcnRPcHRpb25zID0ge1xuICAgKiAgICBsZWdlbmQ6IHRydWUsXG4gICAqICAgIGF4aXM6IHtcbiAgICogICAgICBtaW5SYW5nZTogMCxcbiAgICogICAgICBtYXhSYW5nZTogMTAwLFxuICAgKiAgICAgIGdyaWRMaW5lczogNSxcbiAgICogICAgfSxcbiAgICogIH07XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KCdwLW9wdGlvbnMnKSBzZXQgb3B0aW9ucyh2YWx1ZTogUG9DaGFydE9wdGlvbnMpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuXG4gICAgICBpZiAodGhpcy5fb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnbGVnZW5kJykgJiYgdHlwZW9mIHRoaXMuX29wdGlvbnMubGVnZW5kID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5nZXRTdmdDb250YWluZXJTaXplKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBQZXJtaXRlIGNvbmZpZ3VyYXIgYXMgcHJvcHJpZWRhZGVzIGRlIGV4aWJpw6fDo28gZG9zIHLDs3R1bG9zIGRhcyBzw6lyaWVzIG5vIGdyw6FmaWNvLlxuICAgKlxuICAgKiBFc3NhIGNvbmZpZ3VyYcOnw6NvIHBvc3NpYmlsaXRhIGZpeGFyIG9zIHZhbG9yZXMgZGFzIHPDqXJpZXMgZGlyZXRhbWVudGUgbm8gZ3LDoWZpY28sIGFsdGVyYW5kbyBvIGNvbXBvcnRhbWVudG8gdmlzdWFsOlxuICAgKiAtIE9zIHZhbG9yZXMgZGFzIHPDqXJpZXMgcGVybWFuZWNlbSB2aXPDrXZlaXMsIHNlbSBhIG5lY2Vzc2lkYWRlIGRlIGhvdmVyLlxuICAgKiAtIE8gKnRvb2x0aXAqIG7Do28gc2Vyw6EgZXhpYmlkby5cbiAgICogLSBPcyBtYXJjYWRvcmVzICgqYnVsbGV0cyopIHRlcsOjbyBzZXUgZXN0aWxvIGFqdXN0YWRvLlxuICAgKiAtIEFzIG91dHJhcyBzw6lyaWVzIGZpY2Fyw6NvIGNvbSBvcGFjaWRhZGUgcmVkdXppZGEgYW8gcGFzc2FyIG8gbW91c2Ugc29icmUgYSBzw6lyaWUgYXRpdmEuXG4gICAqXG4gICAqID4gRGlzcG9uw612ZWwgYXBlbmFzIHBhcmEgZ3LDoWZpY29zIGRvIHRpcG8gYGxpbmVgLlxuICAgKlxuICAgKiAjIyMjIEV4ZW1wbG8gZGUgdXRpbGl6YcOnw6NvOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGRhdGFMYWJlbDogUG9DaGFydERhdGFMYWJlbCA9IHtcbiAgICogICBmaXhlZDogdHJ1ZSxcbiAgICogfTtcbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoJ3AtZGF0YS1sYWJlbCcpIGRhdGFMYWJlbD86IFBvQ2hhcnREYXRhTGFiZWw7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNvbG9yU2VydmljZTogUG9Db2xvclNlcnZpY2UpIHt9XG5cbiAgZ2V0IGlzVHlwZUNpcmN1bGFyKCkge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRUeXBlID09PSBQb0NoYXJ0VHlwZS5QaWUgfHwgdGhpcy5kZWZhdWx0VHlwZSA9PT0gUG9DaGFydFR5cGUuRG9udXQ7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgaXNBcnJheU9mc2VyaWVzID0gQXJyYXkuaXNBcnJheSh0aGlzLnNlcmllcykgJiYgdGhpcy5zZXJpZXMubGVuZ3RoID4gMDtcblxuICAgIGlmIChcbiAgICAgIChjaGFuZ2VzLnNlcmllcyAmJiBpc0FycmF5T2ZzZXJpZXMpIHx8XG4gICAgICAoY2hhbmdlcy50eXBlICYmIGlzQXJyYXlPZnNlcmllcykgfHxcbiAgICAgIChjaGFuZ2VzLmNhdGVnb3JpZXMgJiYgaXNBcnJheU9mc2VyaWVzKVxuICAgICkge1xuICAgICAgdGhpcy52YWxpZGF0ZVNlcmllQW5kQWRkVHlwZSh0aGlzLnNlcmllcyk7XG4gICAgfVxuXG4gICAgaWYgKChjaGFuZ2VzLnR5cGUgJiYgIXRoaXMuaXNUeXBlQ2lyY3VsYXIpIHx8IChjaGFuZ2VzLmNhdGVnb3JpZXMgJiYgIXRoaXMuaXNUeXBlQ2lyY3VsYXIpKSB7XG4gICAgICB0aGlzLnN2Z0NvbnRhaW5lclNpemUgPSB7XG4gICAgICAgIC4uLnRoaXMuc3ZnQ29udGFpbmVyU2l6ZSxcbiAgICAgICAgYXhpc1hMYWJlbFdpZHRoOiB0aGlzLmNhbGN1bGF0ZUF4aXNYTGFiZWxBcmVhKClcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgb25TZXJpZXNDbGljayhldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZXJpZXNDbGljay5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uU2VyaWVzSG92ZXIoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VyaWVzSG92ZXIuZW1pdChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRIZWlnaHQoKSB7XG4gICAgcmV0dXJuIHBvQ2hhcnREZWZhdWx0SGVpZ2h0O1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1PYmplY3RUb0FycmF5T2JqZWN0KHNlcmllKSB7XG4gICAgdGhpcy5jaGFydFNlcmllcyA9IHR5cGVvZiBzZXJpZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXMoc2VyaWUpLmxlbmd0aCA/IFt7IC4uLnNlcmllIH1dIDogW107XG4gIH1cblxuICBwcml2YXRlIHNldFR5cGVEZWZhdWx0KHNlcmllOiBQb0NoYXJ0U2VyaWUpIHtcbiAgICBjb25zdCBkYXRhID0gc2VyaWUuZGF0YTtcbiAgICBjb25zdCBzZXJpZVR5cGUgPSAoPGFueT5PYmplY3QpLnZhbHVlcyhQb0NoYXJ0VHlwZSkuaW5jbHVkZXMoc2VyaWUudHlwZSkgPyBzZXJpZS50eXBlIDogdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5kZWZhdWx0VHlwZSA9IHNlcmllVHlwZSA/IHNlcmllVHlwZSA6IEFycmF5LmlzQXJyYXkoZGF0YSkgPyBQb0NoYXJ0VHlwZS5Db2x1bW4gOiBQb0NoYXJ0VHlwZS5QaWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlU2VyaWVBbmRBZGRUeXBlKHNlcmllczogQXJyYXk8UG9DaGFydFNlcmllPik6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlcmVkU2VyaWVzID0gc2VyaWVzLmZpbHRlcihzZXJpZSA9PlxuICAgICAgdGhpcy5pc1R5cGVDaXJjdWxhciA/IHR5cGVvZiBzZXJpZS5kYXRhID09PSAnbnVtYmVyJyA6IEFycmF5LmlzQXJyYXkoc2VyaWUuZGF0YSlcbiAgICApO1xuXG4gICAgdGhpcy5jaGFydFNlcmllcyA9IHRoaXMuYXBwZW5kVHlwZSh0aGlzLmFwcGVuZENvbG9ycyhmaWx0ZXJlZFNlcmllcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBlbmRDb2xvcnMoc2VyaWVzOiBBcnJheTxQb0NoYXJ0U2VyaWU+KSB7XG4gICAgcmV0dXJuIHRoaXMuY29sb3JTZXJ2aWNlLmdldENvbG9yczxQb0NoYXJ0U2VyaWU+KHNlcmllcyk7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZFR5cGUoc2VyaWVzOiBBcnJheTxQb0NoYXJ0U2VyaWU+KSB7XG4gICAgcmV0dXJuIHNlcmllcy5tYXAoKHNlcmllLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgIHRoaXMuY2hhcnRUeXBlID0gKDxhbnk+T2JqZWN0KS52YWx1ZXMoUG9DaGFydFR5cGUpLmluY2x1ZGVzKHNlcmllLnR5cGUpXG4gICAgICAgICAgPyBzZXJpZS50eXBlXG4gICAgICAgICAgOiB0aGlzLnR5cGUgfHwgdGhpcy5kZWZhdWx0VHlwZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgLi4uc2VyaWUsIHR5cGU6IHNlcmllLnR5cGUgfHwgdGhpcy5jaGFydFR5cGUgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGFic3RyYWN0IHJlYnVpbGRDb21wb25lbnRSZWYoKTogdm9pZDtcblxuICAvLyB2w6FsaWRvIHBhcmEgZ3LDoWZpY29zIGRvIHRpcG8gY2lyY3VsYXIgZSBxdWUgc2Vyw6EgcmVmYXRvcmFkby5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFN2Z0NvbnRhaW5lclNpemUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNhbGN1bGF0ZUF4aXNYTGFiZWxBcmVhKCk6IG51bWJlcjtcbn1cbiJdfQ==
@@ -12,80 +12,81 @@ import * as i8 from "./po-chart-bar/po-chart-bar.component";
12
12
  import * as i9 from "./po-chart-bar/po-chart-column/po-chart-column.component";
13
13
  const _c0 = ["svgELement"];
14
14
  function PoChartContainerComponent__svg_g_2_Template(rf, ctx) { if (rf & 1) {
15
- const _r1 = i0.ɵɵgetCurrentView();
15
+ const _r2 = i0.ɵɵgetCurrentView();
16
16
  i0.ɵɵnamespaceSVG();
17
17
  i0.ɵɵelementStart(0, "g", 9);
18
- i0.ɵɵlistener("p-categories-coordinates", function PoChartContainerComponent__svg_g_2_Template_g_p_categories_coordinates_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.getCategoriesCoordinates($event)); });
18
+ i0.ɵɵlistener("p-categories-coordinates", function PoChartContainerComponent__svg_g_2_Template_g_p_categories_coordinates_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.getCategoriesCoordinates($event)); });
19
19
  i0.ɵɵelementEnd();
20
20
  } if (rf & 2) {
21
- const ctx_r1 = i0.ɵɵnextContext();
22
- i0.ɵɵproperty("p-align-by-the-corners", ctx_r1.alignByTheCorners)("p-range", ctx_r1.range)("p-type", ctx_r1.type)("p-series", ctx_r1.series)("p-container-size", ctx_r1.containerSize)("p-options", ctx_r1.axisOptions)("p-categories", ctx_r1.categories);
21
+ const ctx_r2 = i0.ɵɵnextContext();
22
+ i0.ɵɵproperty("p-align-by-the-corners", ctx_r2.alignByTheCorners)("p-range", ctx_r2.range)("p-type", ctx_r2.type)("p-series", ctx_r2.series)("p-container-size", ctx_r2.containerSize)("p-options", ctx_r2.axisOptions)("p-categories", ctx_r2.categories);
23
23
  } }
24
24
  function PoChartContainerComponent__svg_g_3_Template(rf, ctx) { if (rf & 1) {
25
- const _r3 = i0.ɵɵgetCurrentView();
25
+ const _r4 = i0.ɵɵgetCurrentView();
26
26
  i0.ɵɵnamespaceSVG();
27
27
  i0.ɵɵelementStart(0, "g", 10);
28
- i0.ɵɵlistener("p-bar-hover", function PoChartContainerComponent__svg_g_3_Template_g_p_bar_hover_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieHover($event)); })("p-bar-click", function PoChartContainerComponent__svg_g_3_Template_g_p_bar_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieClick($event)); });
28
+ i0.ɵɵlistener("p-bar-hover", function PoChartContainerComponent__svg_g_3_Template_g_p_bar_hover_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieHover($event)); })("p-bar-click", function PoChartContainerComponent__svg_g_3_Template_g_p_bar_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieClick($event)); });
29
29
  i0.ɵɵelementEnd();
30
30
  } if (rf & 2) {
31
- const ctx_r1 = i0.ɵɵnextContext();
32
- i0.ɵɵproperty("p-align-by-the-corners", ctx_r1.alignByTheCorners)("p-svg-space", ctx_r1.svgSpace)("p-categories", ctx_r1.categories)("p-categories-coordinates", ctx_r1.categoriesCoordinates)("p-range", ctx_r1.range)("p-series", ctx_r1.seriesByType["area"])("p-container-size", ctx_r1.containerSize);
31
+ const ctx_r2 = i0.ɵɵnextContext();
32
+ i0.ɵɵproperty("p-align-by-the-corners", ctx_r2.alignByTheCorners)("p-svg-space", ctx_r2.svgSpace)("p-categories", ctx_r2.categories)("p-categories-coordinates", ctx_r2.categoriesCoordinates)("p-range", ctx_r2.range)("p-series", ctx_r2.seriesByType["area"])("p-container-size", ctx_r2.containerSize);
33
33
  } }
34
34
  function PoChartContainerComponent__svg_g_4_Template(rf, ctx) { if (rf & 1) {
35
- const _r4 = i0.ɵɵgetCurrentView();
35
+ const _r5 = i0.ɵɵgetCurrentView();
36
36
  i0.ɵɵnamespaceSVG();
37
37
  i0.ɵɵelementStart(0, "g", 11);
38
- i0.ɵɵlistener("p-bar-hover", function PoChartContainerComponent__svg_g_4_Template_g_p_bar_hover_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieHover($event)); })("p-bar-click", function PoChartContainerComponent__svg_g_4_Template_g_p_bar_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieClick($event)); });
38
+ i0.ɵɵlistener("p-bar-hover", function PoChartContainerComponent__svg_g_4_Template_g_p_bar_hover_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieHover($event)); })("p-bar-click", function PoChartContainerComponent__svg_g_4_Template_g_p_bar_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieClick($event)); });
39
39
  i0.ɵɵelementEnd();
40
40
  } if (rf & 2) {
41
- const ctx_r1 = i0.ɵɵnextContext();
42
- i0.ɵɵproperty("p-categories", ctx_r1.categories)("p-range", ctx_r1.range)("p-series", ctx_r1.seriesByType["column"])("p-container-size", ctx_r1.containerSize);
41
+ const ctx_r2 = i0.ɵɵnextContext();
42
+ i0.ɵɵproperty("p-categories", ctx_r2.categories)("p-range", ctx_r2.range)("p-series", ctx_r2.seriesByType["column"])("p-container-size", ctx_r2.containerSize);
43
43
  } }
44
44
  function PoChartContainerComponent__svg_g_5_Template(rf, ctx) { if (rf & 1) {
45
- const _r5 = i0.ɵɵgetCurrentView();
45
+ const _r6 = i0.ɵɵgetCurrentView();
46
46
  i0.ɵɵnamespaceSVG();
47
47
  i0.ɵɵelementStart(0, "g", 12);
48
- i0.ɵɵlistener("p-point-hover", function PoChartContainerComponent__svg_g_5_Template_g_p_point_hover_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieHover($event)); })("p-point-click", function PoChartContainerComponent__svg_g_5_Template_g_p_point_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieClick($event)); });
48
+ i0.ɵɵlistener("p-point-hover", function PoChartContainerComponent__svg_g_5_Template_g_p_point_hover_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieHover($event)); })("p-point-click", function PoChartContainerComponent__svg_g_5_Template_g_p_point_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieClick($event)); });
49
49
  i0.ɵɵelementEnd();
50
50
  } if (rf & 2) {
51
- const ctx_r1 = i0.ɵɵnextContext();
52
- i0.ɵɵproperty("p-categories", ctx_r1.categories)("p-range", ctx_r1.range)("p-series", ctx_r1.seriesByType["line"])("p-container-size", ctx_r1.containerSize);
51
+ const ctx_r2 = i0.ɵɵnextContext();
52
+ i0.ɵɵproperty("p-categories", ctx_r2.categories)("p-range", ctx_r2.range)("p-series", ctx_r2.seriesByType["line"])("p-container-size", ctx_r2.containerSize)("p-data-label", ctx_r2.dataLabel)("p-insideChart", ctx_r2.insideChart);
53
53
  } }
54
54
  function PoChartContainerComponent__svg_g_6_Template(rf, ctx) { if (rf & 1) {
55
- const _r6 = i0.ɵɵgetCurrentView();
55
+ const _r7 = i0.ɵɵgetCurrentView();
56
56
  i0.ɵɵnamespaceSVG();
57
57
  i0.ɵɵelementStart(0, "g", 13);
58
- i0.ɵɵlistener("p-bar-hover", function PoChartContainerComponent__svg_g_6_Template_g_p_bar_hover_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieHover($event)); })("p-bar-click", function PoChartContainerComponent__svg_g_6_Template_g_p_bar_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieClick($event)); });
58
+ i0.ɵɵlistener("p-bar-hover", function PoChartContainerComponent__svg_g_6_Template_g_p_bar_hover_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieHover($event)); })("p-bar-click", function PoChartContainerComponent__svg_g_6_Template_g_p_bar_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieClick($event)); });
59
59
  i0.ɵɵelementEnd();
60
60
  } if (rf & 2) {
61
- const ctx_r1 = i0.ɵɵnextContext();
62
- i0.ɵɵproperty("p-categories", ctx_r1.categories)("p-range", ctx_r1.range)("p-series", ctx_r1.seriesByType["bar"])("p-container-size", ctx_r1.containerSize);
61
+ const ctx_r2 = i0.ɵɵnextContext();
62
+ i0.ɵɵproperty("p-categories", ctx_r2.categories)("p-range", ctx_r2.range)("p-series", ctx_r2.seriesByType["bar"])("p-container-size", ctx_r2.containerSize);
63
63
  } }
64
64
  function PoChartContainerComponent__svg_g_7_Template(rf, ctx) { if (rf & 1) {
65
- const _r7 = i0.ɵɵgetCurrentView();
65
+ const _r8 = i0.ɵɵgetCurrentView();
66
66
  i0.ɵɵnamespaceSVG();
67
67
  i0.ɵɵelementStart(0, "g", 14);
68
- i0.ɵɵlistener("p-circular-hover", function PoChartContainerComponent__svg_g_7_Template_g_p_circular_hover_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieHover($event)); })("p-circular-click", function PoChartContainerComponent__svg_g_7_Template_g_p_circular_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieClick($event)); });
68
+ i0.ɵɵlistener("p-circular-hover", function PoChartContainerComponent__svg_g_7_Template_g_p_circular_hover_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieHover($event)); })("p-circular-click", function PoChartContainerComponent__svg_g_7_Template_g_p_circular_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieClick($event)); });
69
69
  i0.ɵɵelementEnd();
70
70
  } if (rf & 2) {
71
- const ctx_r1 = i0.ɵɵnextContext();
72
- i0.ɵɵproperty("p-series", ctx_r1.seriesByType["pie"])("p-container-size", ctx_r1.containerSize);
71
+ const ctx_r2 = i0.ɵɵnextContext();
72
+ i0.ɵɵproperty("p-series", ctx_r2.seriesByType["pie"])("p-container-size", ctx_r2.containerSize);
73
73
  } }
74
74
  function PoChartContainerComponent__svg_g_8_Template(rf, ctx) { if (rf & 1) {
75
- const _r8 = i0.ɵɵgetCurrentView();
75
+ const _r9 = i0.ɵɵgetCurrentView();
76
76
  i0.ɵɵnamespaceSVG();
77
77
  i0.ɵɵelementStart(0, "g", 15);
78
- i0.ɵɵlistener("p-circular-hover", function PoChartContainerComponent__svg_g_8_Template_g_p_circular_hover_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieHover($event)); })("p-circular-click", function PoChartContainerComponent__svg_g_8_Template_g_p_circular_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSerieClick($event)); });
78
+ i0.ɵɵlistener("p-circular-hover", function PoChartContainerComponent__svg_g_8_Template_g_p_circular_hover_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieHover($event)); })("p-circular-click", function PoChartContainerComponent__svg_g_8_Template_g_p_circular_click_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSerieClick($event)); });
79
79
  i0.ɵɵelementEnd();
80
80
  } if (rf & 2) {
81
- const ctx_r1 = i0.ɵɵnextContext();
82
- i0.ɵɵproperty("p-options", ctx_r1.options)("p-series", ctx_r1.seriesByType["donut"])("p-container-size", ctx_r1.containerSize);
81
+ const ctx_r2 = i0.ɵɵnextContext();
82
+ i0.ɵɵproperty("p-options", ctx_r2.options)("p-series", ctx_r2.seriesByType["donut"])("p-container-size", ctx_r2.containerSize);
83
83
  } }
84
84
  export class PoChartContainerComponent {
85
85
  mathsService;
86
86
  categories;
87
87
  type;
88
88
  containerSize;
89
+ dataLabel;
89
90
  serieClick = new EventEmitter();
90
91
  serieHover = new EventEmitter();
91
92
  svgELement;
@@ -96,6 +97,7 @@ export class PoChartContainerComponent {
96
97
  seriesByType;
97
98
  svgSpace;
98
99
  viewBox;
100
+ insideChart;
99
101
  _options;
100
102
  _series = [];
101
103
  set options(value) {
@@ -127,6 +129,21 @@ export class PoChartContainerComponent {
127
129
  this.setViewBox();
128
130
  this.setSvgSpace();
129
131
  }
132
+ if (changes.dataLabel) {
133
+ this.updateRangeAxis();
134
+ }
135
+ }
136
+ updateRangeAxis() {
137
+ if (this.dataLabel?.fixed === true) {
138
+ // minimo valor para o grafico = maior numero + 5 de respingo
139
+ const calculatedMaxValue = this.mathsService.calculateMinAndMaxValues(this.series).maxValue + 5;
140
+ // Certifique-se de que o `maxValue` nunca seja menor que o maior valor mais 5.
141
+ const newMaxValue = Math.max(calculatedMaxValue, this.range.maxValue);
142
+ if (this.range.maxValue !== newMaxValue) {
143
+ this.range.maxValue = newMaxValue;
144
+ this.axisOptions.maxRange = newMaxValue;
145
+ }
146
+ }
130
147
  }
131
148
  getCategoriesCoordinates(value) {
132
149
  this.categoriesCoordinates = value;
@@ -190,16 +207,24 @@ export class PoChartContainerComponent {
190
207
  };
191
208
  }
192
209
  }
210
+ onChartMouseEnter() {
211
+ this.insideChart = true;
212
+ }
213
+ onChartMouseLeave() {
214
+ this.insideChart = false;
215
+ }
193
216
  static ɵfac = function PoChartContainerComponent_Factory(t) { return new (t || PoChartContainerComponent)(i0.ɵɵdirectiveInject(i1.PoChartMathsService)); };
194
217
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoChartContainerComponent, selectors: [["po-chart-container"]], viewQuery: function PoChartContainerComponent_Query(rf, ctx) { if (rf & 1) {
195
218
  i0.ɵɵviewQuery(_c0, 7);
196
219
  } if (rf & 2) {
197
220
  let _t;
198
221
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.svgELement = _t.first);
199
- } }, inputs: { categories: [0, "p-categories", "categories"], type: [0, "p-type", "type"], containerSize: [0, "p-container-size", "containerSize"], options: [0, "p-options", "options"], series: [0, "p-series", "series"] }, outputs: { serieClick: "p-serie-click", serieHover: "p-serie-hover" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 10, consts: [["svgELement", ""], ["preserveAspectRatio", "xMidYMin meet", 1, "po-chart-svg-element"], ["po-chart-axis", "", 3, "p-align-by-the-corners", "p-range", "p-type", "p-series", "p-container-size", "p-options", "p-categories", "p-categories-coordinates", 4, "ngIf"], ["po-chart-area", "", 3, "p-align-by-the-corners", "p-svg-space", "p-categories", "p-categories-coordinates", "p-range", "p-series", "p-container-size", "p-bar-hover", "p-bar-click", 4, "ngIf"], ["po-chart-column", "", 3, "p-categories", "p-range", "p-series", "p-container-size", "p-bar-hover", "p-bar-click", 4, "ngIf"], ["po-chart-line", "", 3, "p-categories", "p-range", "p-series", "p-container-size", "p-point-hover", "p-point-click", 4, "ngIf"], ["po-chart-bar", "", 3, "p-categories", "p-range", "p-series", "p-container-size", "p-bar-hover", "p-bar-click", 4, "ngIf"], ["po-chart-pie", "", 3, "p-series", "p-container-size", "p-circular-hover", "p-circular-click", 4, "ngIf"], ["po-chart-donut", "", 3, "p-options", "p-series", "p-container-size", "p-circular-hover", "p-circular-click", 4, "ngIf"], ["po-chart-axis", "", 3, "p-categories-coordinates", "p-align-by-the-corners", "p-range", "p-type", "p-series", "p-container-size", "p-options", "p-categories"], ["po-chart-area", "", 3, "p-bar-hover", "p-bar-click", "p-align-by-the-corners", "p-svg-space", "p-categories", "p-categories-coordinates", "p-range", "p-series", "p-container-size"], ["po-chart-column", "", 3, "p-bar-hover", "p-bar-click", "p-categories", "p-range", "p-series", "p-container-size"], ["po-chart-line", "", 3, "p-point-hover", "p-point-click", "p-categories", "p-range", "p-series", "p-container-size"], ["po-chart-bar", "", 3, "p-bar-hover", "p-bar-click", "p-categories", "p-range", "p-series", "p-container-size"], ["po-chart-pie", "", 3, "p-circular-hover", "p-circular-click", "p-series", "p-container-size"], ["po-chart-donut", "", 3, "p-circular-hover", "p-circular-click", "p-options", "p-series", "p-container-size"]], template: function PoChartContainerComponent_Template(rf, ctx) { if (rf & 1) {
222
+ } }, inputs: { categories: [0, "p-categories", "categories"], type: [0, "p-type", "type"], containerSize: [0, "p-container-size", "containerSize"], dataLabel: [0, "p-data-label", "dataLabel"], options: [0, "p-options", "options"], series: [0, "p-series", "series"] }, outputs: { serieClick: "p-serie-click", serieHover: "p-serie-hover" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 10, consts: [["svgELement", ""], ["preserveAspectRatio", "xMidYMin meet", 1, "po-chart-svg-element", 3, "mouseenter", "mouseleave"], ["po-chart-axis", "", 3, "p-align-by-the-corners", "p-range", "p-type", "p-series", "p-container-size", "p-options", "p-categories", "p-categories-coordinates", 4, "ngIf"], ["po-chart-area", "", 3, "p-align-by-the-corners", "p-svg-space", "p-categories", "p-categories-coordinates", "p-range", "p-series", "p-container-size", "p-bar-hover", "p-bar-click", 4, "ngIf"], ["po-chart-column", "", 3, "p-categories", "p-range", "p-series", "p-container-size", "p-bar-hover", "p-bar-click", 4, "ngIf"], ["po-chart-line", "", 3, "p-categories", "p-range", "p-series", "p-container-size", "p-data-label", "p-insideChart", "p-point-hover", "p-point-click", 4, "ngIf"], ["po-chart-bar", "", 3, "p-categories", "p-range", "p-series", "p-container-size", "p-bar-hover", "p-bar-click", 4, "ngIf"], ["po-chart-pie", "", 3, "p-series", "p-container-size", "p-circular-hover", "p-circular-click", 4, "ngIf"], ["po-chart-donut", "", 3, "p-options", "p-series", "p-container-size", "p-circular-hover", "p-circular-click", 4, "ngIf"], ["po-chart-axis", "", 3, "p-categories-coordinates", "p-align-by-the-corners", "p-range", "p-type", "p-series", "p-container-size", "p-options", "p-categories"], ["po-chart-area", "", 3, "p-bar-hover", "p-bar-click", "p-align-by-the-corners", "p-svg-space", "p-categories", "p-categories-coordinates", "p-range", "p-series", "p-container-size"], ["po-chart-column", "", 3, "p-bar-hover", "p-bar-click", "p-categories", "p-range", "p-series", "p-container-size"], ["po-chart-line", "", 3, "p-point-hover", "p-point-click", "p-categories", "p-range", "p-series", "p-container-size", "p-data-label", "p-insideChart"], ["po-chart-bar", "", 3, "p-bar-hover", "p-bar-click", "p-categories", "p-range", "p-series", "p-container-size"], ["po-chart-pie", "", 3, "p-circular-hover", "p-circular-click", "p-series", "p-container-size"], ["po-chart-donut", "", 3, "p-circular-hover", "p-circular-click", "p-options", "p-series", "p-container-size"]], template: function PoChartContainerComponent_Template(rf, ctx) { if (rf & 1) {
223
+ const _r1 = i0.ɵɵgetCurrentView();
200
224
  i0.ɵɵnamespaceSVG();
201
225
  i0.ɵɵelementStart(0, "svg", 1, 0);
202
- i0.ɵɵtemplate(2, PoChartContainerComponent__svg_g_2_Template, 1, 7, "g", 2)(3, PoChartContainerComponent__svg_g_3_Template, 1, 7, "g", 3)(4, PoChartContainerComponent__svg_g_4_Template, 1, 4, "g", 4)(5, PoChartContainerComponent__svg_g_5_Template, 1, 4, "g", 5)(6, PoChartContainerComponent__svg_g_6_Template, 1, 4, "g", 6)(7, PoChartContainerComponent__svg_g_7_Template, 1, 2, "g", 7)(8, PoChartContainerComponent__svg_g_8_Template, 1, 3, "g", 8);
226
+ i0.ɵɵlistener("mouseenter", function PoChartContainerComponent_Template_svg_mouseenter_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onChartMouseEnter()); })("mouseleave", function PoChartContainerComponent_Template_svg_mouseleave_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onChartMouseLeave()); });
227
+ i0.ɵɵtemplate(2, PoChartContainerComponent__svg_g_2_Template, 1, 7, "g", 2)(3, PoChartContainerComponent__svg_g_3_Template, 1, 7, "g", 3)(4, PoChartContainerComponent__svg_g_4_Template, 1, 4, "g", 4)(5, PoChartContainerComponent__svg_g_5_Template, 1, 6, "g", 5)(6, PoChartContainerComponent__svg_g_6_Template, 1, 4, "g", 6)(7, PoChartContainerComponent__svg_g_7_Template, 1, 2, "g", 7)(8, PoChartContainerComponent__svg_g_8_Template, 1, 3, "g", 8);
203
228
  i0.ɵɵelementEnd();
204
229
  } if (rf & 2) {
205
230
  i0.ɵɵattribute("viewBox", ctx.viewBox)("width", ctx.containerSize.svgWidth)("height", ctx.containerSize.svgHeight);
@@ -221,7 +246,7 @@ export class PoChartContainerComponent {
221
246
  }
222
247
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoChartContainerComponent, [{
223
248
  type: Component,
224
- args: [{ selector: 'po-chart-container', template: "<svg:svg\n #svgELement\n class=\"po-chart-svg-element\"\n preserveAspectRatio=\"xMidYMin meet\"\n [attr.viewBox]=\"viewBox\"\n [attr.width]=\"containerSize.svgWidth\"\n [attr.height]=\"containerSize.svgHeight\"\n>\n <!-- axis -->\n <svg:g\n *ngIf=\"!isTypeCircular\"\n po-chart-axis\n [p-align-by-the-corners]=\"alignByTheCorners\"\n [p-range]=\"range\"\n [p-type]=\"type\"\n [p-series]=\"series\"\n [p-container-size]=\"containerSize\"\n [p-options]=\"axisOptions\"\n [p-categories]=\"categories\"\n (p-categories-coordinates)=\"getCategoriesCoordinates($event)\"\n ></svg:g>\n\n <!-- chart area -->\n <svg:g\n *ngIf=\"(type === 'area' || type === 'line' || type === 'column') && seriesByType['area'].length\"\n po-chart-area\n [p-align-by-the-corners]=\"alignByTheCorners\"\n [p-svg-space]=\"svgSpace\"\n [p-categories]=\"categories\"\n [p-categories-coordinates]=\"categoriesCoordinates\"\n [p-range]=\"range\"\n [p-series]=\"seriesByType['area']\"\n [p-container-size]=\"containerSize\"\n (p-bar-hover)=\"onSerieHover($event)\"\n (p-bar-click)=\"onSerieClick($event)\"\n ></svg:g>\n\n <!-- chart column -->\n <svg:g\n *ngIf=\"(type === 'area' || type === 'line' || type === 'column') && seriesByType['column'].length\"\n po-chart-column\n [p-categories]=\"categories\"\n [p-range]=\"range\"\n [p-series]=\"seriesByType['column']\"\n [p-container-size]=\"containerSize\"\n (p-bar-hover)=\"onSerieHover($event)\"\n (p-bar-click)=\"onSerieClick($event)\"\n ></svg:g>\n\n <!-- chart line -->\n <svg:g\n *ngIf=\"(type === 'area' || type === 'line' || type === 'column') && seriesByType['line'].length\"\n po-chart-line\n [p-categories]=\"categories\"\n [p-range]=\"range\"\n [p-series]=\"seriesByType['line']\"\n [p-container-size]=\"containerSize\"\n (p-point-hover)=\"onSerieHover($event)\"\n (p-point-click)=\"onSerieClick($event)\"\n ></svg:g>\n\n <!-- chart bar -->\n <svg:g\n *ngIf=\"type === 'bar'\"\n po-chart-bar\n [p-categories]=\"categories\"\n [p-range]=\"range\"\n [p-series]=\"seriesByType['bar']\"\n [p-container-size]=\"containerSize\"\n (p-bar-hover)=\"onSerieHover($event)\"\n (p-bar-click)=\"onSerieClick($event)\"\n ></svg:g>\n\n <svg:g\n *ngIf=\"type === 'pie'\"\n po-chart-pie\n [p-series]=\"seriesByType['pie']\"\n [p-container-size]=\"containerSize\"\n (p-circular-hover)=\"onSerieHover($event)\"\n (p-circular-click)=\"onSerieClick($event)\"\n ></svg:g>\n\n <svg:g\n *ngIf=\"type === 'donut'\"\n po-chart-donut\n [p-options]=\"options\"\n [p-series]=\"seriesByType['donut']\"\n [p-container-size]=\"containerSize\"\n (p-circular-hover)=\"onSerieHover($event)\"\n (p-circular-click)=\"onSerieClick($event)\"\n ></svg:g>\n</svg:svg>\n" }]
249
+ args: [{ selector: 'po-chart-container', template: "<svg:svg\n #svgELement\n class=\"po-chart-svg-element\"\n preserveAspectRatio=\"xMidYMin meet\"\n [attr.viewBox]=\"viewBox\"\n [attr.width]=\"containerSize.svgWidth\"\n [attr.height]=\"containerSize.svgHeight\"\n (mouseenter)=\"onChartMouseEnter()\"\n (mouseleave)=\"onChartMouseLeave()\"\n>\n <!-- axis -->\n <svg:g\n *ngIf=\"!isTypeCircular\"\n po-chart-axis\n [p-align-by-the-corners]=\"alignByTheCorners\"\n [p-range]=\"range\"\n [p-type]=\"type\"\n [p-series]=\"series\"\n [p-container-size]=\"containerSize\"\n [p-options]=\"axisOptions\"\n [p-categories]=\"categories\"\n (p-categories-coordinates)=\"getCategoriesCoordinates($event)\"\n ></svg:g>\n\n <!-- chart area -->\n <svg:g\n *ngIf=\"(type === 'area' || type === 'line' || type === 'column') && seriesByType['area'].length\"\n po-chart-area\n [p-align-by-the-corners]=\"alignByTheCorners\"\n [p-svg-space]=\"svgSpace\"\n [p-categories]=\"categories\"\n [p-categories-coordinates]=\"categoriesCoordinates\"\n [p-range]=\"range\"\n [p-series]=\"seriesByType['area']\"\n [p-container-size]=\"containerSize\"\n (p-bar-hover)=\"onSerieHover($event)\"\n (p-bar-click)=\"onSerieClick($event)\"\n ></svg:g>\n\n <!-- chart column -->\n <svg:g\n *ngIf=\"(type === 'area' || type === 'line' || type === 'column') && seriesByType['column'].length\"\n po-chart-column\n [p-categories]=\"categories\"\n [p-range]=\"range\"\n [p-series]=\"seriesByType['column']\"\n [p-container-size]=\"containerSize\"\n (p-bar-hover)=\"onSerieHover($event)\"\n (p-bar-click)=\"onSerieClick($event)\"\n ></svg:g>\n\n <!-- chart line -->\n <svg:g\n *ngIf=\"(type === 'area' || type === 'line' || type === 'column') && seriesByType['line'].length\"\n po-chart-line\n [p-categories]=\"categories\"\n [p-range]=\"range\"\n [p-series]=\"seriesByType['line']\"\n [p-container-size]=\"containerSize\"\n [p-data-label]=\"dataLabel\"\n [p-insideChart]=\"insideChart\"\n (p-point-hover)=\"onSerieHover($event)\"\n (p-point-click)=\"onSerieClick($event)\"\n ></svg:g>\n\n <!-- chart bar -->\n <svg:g\n *ngIf=\"type === 'bar'\"\n po-chart-bar\n [p-categories]=\"categories\"\n [p-range]=\"range\"\n [p-series]=\"seriesByType['bar']\"\n [p-container-size]=\"containerSize\"\n (p-bar-hover)=\"onSerieHover($event)\"\n (p-bar-click)=\"onSerieClick($event)\"\n ></svg:g>\n\n <svg:g\n *ngIf=\"type === 'pie'\"\n po-chart-pie\n [p-series]=\"seriesByType['pie']\"\n [p-container-size]=\"containerSize\"\n (p-circular-hover)=\"onSerieHover($event)\"\n (p-circular-click)=\"onSerieClick($event)\"\n ></svg:g>\n\n <svg:g\n *ngIf=\"type === 'donut'\"\n po-chart-donut\n [p-options]=\"options\"\n [p-series]=\"seriesByType['donut']\"\n [p-container-size]=\"containerSize\"\n (p-circular-hover)=\"onSerieHover($event)\"\n (p-circular-click)=\"onSerieClick($event)\"\n ></svg:g>\n</svg:svg>\n" }]
225
250
  }], () => [{ type: i1.PoChartMathsService }], { categories: [{
226
251
  type: Input,
227
252
  args: ['p-categories']
@@ -231,6 +256,9 @@ export class PoChartContainerComponent {
231
256
  }], containerSize: [{
232
257
  type: Input,
233
258
  args: ['p-container-size']
259
+ }], dataLabel: [{
260
+ type: Input,
261
+ args: ['p-data-label']
234
262
  }], serieClick: [{
235
263
  type: Output,
236
264
  args: ['p-serie-click']
@@ -247,5 +275,5 @@ export class PoChartContainerComponent {
247
275
  type: Input,
248
276
  args: ['p-series']
249
277
  }] }); })();
250
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoChartContainerComponent, { className: "PoChartContainerComponent", filePath: "lib/components/po-chart/po-chart-container/po-chart-container.component.ts", lineNumber: 15 }); })();
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1jaGFydC9wby1jaGFydC1jb250YWluZXIvcG8tY2hhcnQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1jaGFydC9wby1jaGFydC1jb250YWluZXIvcG8tY2hhcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ094RCw0QkFXQztJQURDLCtOQUE0Qix1Q0FBZ0MsS0FBQztJQUM5RCxpQkFBUTs7O0lBRlAsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsaUVBQTRDLHlCQUMzQix1QkFDRiwyQkFDSSwwQ0FDZSxpQ0FDVCxtQ0FDRTs7Ozs7SUFLN0IsNkJBWUM7SUFEQyxBQURBLHFNQUFlLDJCQUFvQixLQUFDLHdMQUNyQiwyQkFBb0IsS0FBQztJQUNyQyxpQkFBUTs7O0lBSFAsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsaUVBQTRDLGdDQUNwQixtQ0FDRywwREFDdUIseUJBQ2pDLHlDQUNnQiwwQ0FDQzs7Ozs7SUFNcEMsNkJBU0M7SUFEQyxBQURBLHFNQUFlLDJCQUFvQixLQUFDLHdMQUNyQiwyQkFBb0IsS0FBQztJQUNyQyxpQkFBUTs7O0lBSFAsQUFEQSxBQURBLEFBREEsZ0RBQTJCLHlCQUNWLDJDQUNrQiwwQ0FDRDs7Ozs7SUFNcEMsNkJBU0M7SUFEQyxBQURBLHlNQUFpQiwyQkFBb0IsS0FBQyw0TEFDckIsMkJBQW9CLEtBQUM7SUFDdkMsaUJBQVE7OztJQUhQLEFBREEsQUFEQSxBQURBLGdEQUEyQix5QkFDVix5Q0FDZ0IsMENBQ0M7Ozs7O0lBTXBDLDZCQVNDO0lBREMsQUFEQSxxTUFBZSwyQkFBb0IsS0FBQyx3TEFDckIsMkJBQW9CLEtBQUM7SUFDckMsaUJBQVE7OztJQUhQLEFBREEsQUFEQSxBQURBLGdEQUEyQix5QkFDVix3Q0FDZSwwQ0FDRTs7Ozs7SUFLcEMsNkJBT0M7SUFEQyxBQURBLCtNQUFvQiwyQkFBb0IsS0FBQyxrTUFDckIsMkJBQW9CLEtBQUM7SUFDMUMsaUJBQVE7OztJQUhQLEFBREEscURBQWdDLDBDQUNFOzs7OztJQUtwQyw2QkFRQztJQURDLEFBREEsK01BQW9CLDJCQUFvQixLQUFDLGtNQUNyQiwyQkFBb0IsS0FBQztJQUMxQyxpQkFBUTs7O0lBSFAsQUFEQSxBQURBLDBDQUFxQiwwQ0FDYSwwQ0FDQTs7QUR6RXRDLE1BQU0sT0FBTyx5QkFBeUI7SUFtRGhCO0lBbERHLFVBQVUsQ0FBZ0I7SUFFaEMsSUFBSSxDQUFjO0lBRVIsYUFBYSxDQUF1QjtJQUV0QyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVyQyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVuQixVQUFVLENBQWE7SUFFbEUsaUJBQWlCLENBQVU7SUFDM0IsV0FBVyxDQUFxQjtJQUNoQyxxQkFBcUIsQ0FBZ0I7SUFDckMsS0FBSyxDQUFzQjtJQUMzQixZQUFZLENBQUM7SUFDYixRQUFRLENBQUM7SUFDVCxPQUFPLENBQVM7SUFFUixRQUFRLENBQWlCO0lBQ3pCLE9BQU8sR0FBd0IsRUFBRSxDQUFDO0lBRTFDLElBQXdCLE9BQU8sQ0FBQyxLQUFxQjtRQUNuRCxJQUFJLEtBQUssWUFBWSxNQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssWUFBWSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBRXRCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQXVCLE1BQU0sQ0FBQyxJQUF5QjtRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEtBQUssQ0FBQztJQUMxRSxDQUFDO0lBRUQsWUFBb0IsWUFBaUM7UUFBakMsaUJBQVksR0FBWixZQUFZLENBQXFCO0lBQUcsQ0FBQztJQUV6RCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBb0I7UUFDM0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxRQUFRLENBQUMsTUFBMkIsRUFBRSxVQUEwQixFQUFFO1FBQ3hFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQ1osQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVE7Z0JBQ3hDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ3BHLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFFbkQsT0FBTyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU8sV0FBVztRQUNqQixvSkFBb0o7UUFDcEosTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEUsb0xBQW9MO1FBQ3BMLHlLQUF5SztRQUN6SyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUU3RSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxNQUEyQjtRQUN0RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRU8sUUFBUSxDQUFDLE1BQTJCLEVBQUUsVUFBMEIsRUFBRTtRQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsTUFBMkI7UUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQzNFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDL0UsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUN6RSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQzNFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDN0UsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEdBQUcsQ0FBQztTQUMxRSxDQUFDO0lBQ0osQ0FBQztJQUVPLFVBQVU7UUFDaEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2hFLG9FQUFvRTtRQUNwRSxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFFbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLFFBQVEsS0FBSyxRQUFRLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUYsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQXVCO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsR0FBRztnQkFDakIsR0FBRyxJQUFJLENBQUMsV0FBVztnQkFDbkIsR0FBRyxPQUFPLENBQUMsSUFBSTthQUNoQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7bUZBdElVLHlCQUF5Qjs2REFBekIseUJBQXlCOzs7Ozs7O1lDZHRDLGlDQU9DO1lBMkVDLEFBVEEsQUFYQSxBQVpBLEFBWkEsQUFmQSxBQWRBLDJFQVdDLDhEQWVBLDhEQVlBLDhEQVlBLDhEQVlBLDhEQVNBLDhEQVVBO1lBQ0gsaUJBQVU7OztZQWpGTCxlQUFxQjtZQUFyQiwwQ0FBcUI7WUFjckIsY0FBOEY7WUFBOUYsK0hBQThGO1lBZTlGLGNBQWdHO1lBQWhHLGlJQUFnRztZQVloRyxjQUE4RjtZQUE5RiwrSEFBOEY7WUFZOUYsY0FBb0I7WUFBcEIseUNBQW9CO1lBV3BCLGNBQW9CO1lBQXBCLHlDQUFvQjtZQVNwQixjQUFzQjtZQUF0QiwyQ0FBc0I7OztpRkRyRWQseUJBQXlCO2NBSnJDLFNBQVM7MkJBQ0Usb0JBQW9CO29EQUlQLFVBQVU7a0JBQWhDLEtBQUs7bUJBQUMsY0FBYztZQUVKLElBQUk7a0JBQXBCLEtBQUs7bUJBQUMsUUFBUTtZQUVZLGFBQWE7a0JBQXZDLEtBQUs7bUJBQUMsa0JBQWtCO1lBRUEsVUFBVTtrQkFBbEMsTUFBTTttQkFBQyxlQUFlO1lBRUUsVUFBVTtrQkFBbEMsTUFBTTttQkFBQyxlQUFlO1lBRW9CLFVBQVU7a0JBQXBELFNBQVM7bUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQWFqQixPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUFZSyxNQUFNO2tCQUE1QixLQUFLO21CQUFDLFVBQVU7O2tGQXBDTix5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9DaGFydFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wby1jaGFydC10eXBlLmVudW0nO1xuaW1wb3J0IHsgUG9DaGFydENvbnRhaW5lclNpemUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWNoYXJ0LWNvbnRhaW5lci1zaXplLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NoYXJ0T3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tY2hhcnQtb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9DaGFydEF4aXNPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1jaGFydC1heGlzLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvQ2hhcnRNYXRoc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wby1jaGFydC1tYXRocy5zZXJ2aWNlJztcbmltcG9ydCB7IFBvQ2hhcnRNaW5NYXhWYWx1ZXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWNoYXJ0LW1pbi1tYXgtdmFsdWVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NoYXJ0U2VyaWUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWNoYXJ0LXNlcmllLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLWNoYXJ0LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1jaGFydC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvQ2hhcnRDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoJ3AtY2F0ZWdvcmllcycpIGNhdGVnb3JpZXM6IEFycmF5PHN0cmluZz47XG5cbiAgQElucHV0KCdwLXR5cGUnKSB0eXBlOiBQb0NoYXJ0VHlwZTtcblxuICBASW5wdXQoJ3AtY29udGFpbmVyLXNpemUnKSBjb250YWluZXJTaXplOiBQb0NoYXJ0Q29udGFpbmVyU2l6ZTtcblxuICBAT3V0cHV0KCdwLXNlcmllLWNsaWNrJykgc2VyaWVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoJ3Atc2VyaWUtaG92ZXInKSBzZXJpZUhvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc3ZnRUxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHN2Z0VMZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgYWxpZ25CeVRoZUNvcm5lcnM6IGJvb2xlYW47XG4gIGF4aXNPcHRpb25zOiBQb0NoYXJ0QXhpc09wdGlvbnM7XG4gIGNhdGVnb3JpZXNDb29yZGluYXRlczogQXJyYXk8bnVtYmVyPjtcbiAgcmFuZ2U6IFBvQ2hhcnRNaW5NYXhWYWx1ZXM7XG4gIHNlcmllc0J5VHlwZTtcbiAgc3ZnU3BhY2U7XG4gIHZpZXdCb3g6IHN0cmluZztcblxuICBwcml2YXRlIF9vcHRpb25zOiBQb0NoYXJ0T3B0aW9ucztcbiAgcHJpdmF0ZSBfc2VyaWVzOiBBcnJheTxQb0NoYXJ0U2VyaWU+ID0gW107XG5cbiAgQElucHV0KCdwLW9wdGlvbnMnKSBzZXQgb3B0aW9ucyh2YWx1ZTogUG9DaGFydE9wdGlvbnMpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuXG4gICAgICB0aGlzLnZlcmlmeUF4aXNPcHRpb25zKHRoaXMuX29wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgQElucHV0KCdwLXNlcmllcycpIHNldCBzZXJpZXMoZGF0YTogQXJyYXk8UG9DaGFydFNlcmllPikge1xuICAgIHRoaXMuX3NlcmllcyA9IGRhdGE7XG4gICAgdGhpcy5zZXRBbGlnbkJ5VGhlQ29ybmVycyh0aGlzLl9zZXJpZXMpO1xuICAgIHRoaXMuc2V0U2VyaWVzQnlUeXBlKHRoaXMuX3Nlcmllcyk7XG4gICAgdGhpcy5zZXRSYW5nZSh0aGlzLl9zZXJpZXMsIHRoaXMub3B0aW9ucyk7XG4gIH1cblxuICBnZXQgc2VyaWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9zZXJpZXM7XG4gIH1cblxuICBnZXQgaXNUeXBlQ2lyY3VsYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gUG9DaGFydFR5cGUuUGllIHx8IHRoaXMudHlwZSA9PT0gUG9DaGFydFR5cGUuRG9udXQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdGhzU2VydmljZTogUG9DaGFydE1hdGhzU2VydmljZSkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMudHlwZSB8fCBjaGFuZ2VzLmNvbnRhaW5lclNpemUpIHtcbiAgICAgIHRoaXMuc2V0Vmlld0JveCgpO1xuICAgICAgdGhpcy5zZXRTdmdTcGFjZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldENhdGVnb3JpZXNDb29yZGluYXRlcyh2YWx1ZTogQXJyYXk8bnVtYmVyPik6IHZvaWQge1xuICAgIHRoaXMuY2F0ZWdvcmllc0Nvb3JkaW5hdGVzID0gdmFsdWU7XG4gIH1cblxuICBvblNlcmllQ2xpY2soZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VyaWVDbGljay5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uU2VyaWVIb3ZlcihldmVudDogYW55KSB7XG4gICAgdGhpcy5zZXJpZUhvdmVyLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSYW5nZShzZXJpZXM6IEFycmF5PFBvQ2hhcnRTZXJpZT4sIG9wdGlvbnM6IFBvQ2hhcnRPcHRpb25zID0ge30pOiBQb0NoYXJ0TWluTWF4VmFsdWVzIHtcbiAgICBjb25zdCBkb21haW4gPSB0aGlzLm1hdGhzU2VydmljZS5jYWxjdWxhdGVNaW5BbmRNYXhWYWx1ZXMoc2VyaWVzKTtcbiAgICBjb25zdCBtaW5WYWx1ZSA9XG4gICAgICAhb3B0aW9ucy5heGlzPy5taW5SYW5nZSAmJiBkb21haW4ubWluVmFsdWUgPiAwXG4gICAgICAgID8gMFxuICAgICAgICA6IG9wdGlvbnMuYXhpcz8ubWluUmFuZ2UgPCBkb21haW4ubWluVmFsdWVcbiAgICAgICAgICA/IG9wdGlvbnMuYXhpcy5taW5SYW5nZVxuICAgICAgICAgIDogZG9tYWluLm1pblZhbHVlO1xuICAgIGNvbnN0IG1heFZhbHVlID0gb3B0aW9ucy5heGlzPy5tYXhSYW5nZSA+IGRvbWFpbi5tYXhWYWx1ZSA/IG9wdGlvbnMuYXhpcy5tYXhSYW5nZSA6IGRvbWFpbi5tYXhWYWx1ZTtcbiAgICBjb25zdCB1cGRhdGVkRG9tYWluVmFsdWVzID0geyBtaW5WYWx1ZSwgbWF4VmFsdWUgfTtcblxuICAgIHJldHVybiB7IC4uLmRvbWFpbiwgLi4udXBkYXRlZERvbWFpblZhbHVlcyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTdmdTcGFjZSgpIHtcbiAgICAvLyBSZXByZXNlbnRhIHVtIHBvbnRvIDJEIGRlbnRybyBkbyB2aWV3cG9ydCBkbyBTVkcuIEVsZSDDqSBhIHJlcHJlc2VudGHDp8OjbyBkbyBjdXJzb3IgZG8gbW91c2UgcGFyYSBjb21wYXJhw6fDo28gZGUgY29vcmRlbmFkYXMgY29tIGNhZGEgZGFkbyBkZSBzw6lyaWUuXG4gICAgY29uc3Qgc3ZnUG9pbnQgPSB0aGlzLnN2Z0VMZW1lbnQubmF0aXZlRWxlbWVudC5jcmVhdGVTVkdQb2ludCgpO1xuICAgIC8vIFJldG9ybmEgdW0gRE9NTWF0cml4IHJlcHJlc2VudGFuZG8gYXMgbWF0cml6ZXMgMkQgZSAzRCB0cmFuc2Zvcm1hZGFzIGEgcGFydGlyIGRhcyBjb29yZGVuYWRhcyBkbyBlbGVtZW50bywgZW0gcmVsYcOnw6NvIGFvIGRvY3VtZW50LCBwYXJhIGNvb3JkZW5hZGFzIHJlbGF0aXZhcyBhbyB2aWV3cG9ydCBkbyBTVkcuXG4gICAgLy8gw4kgdXRpbGl6YWRvIG5vcyBncsOhZmljb3MgZG8gdGlwbyDDoXJlYSBwYXJhIHF1ZSBzZWphIHBvc3PDrXZlbCBlcXVpcGFyYXIgYXMgY29vcmRlbmFkYXMgZG8gZXZlbnRvIGNvbSBjYWRhIGRhZG8gZGUgc8OpcmllLCBwYXJhIGFzc2ltIGF0aXZhciBvIHBvbnRvIGRlIGRhZG8gZXF1aXZhbGVudGUuXG4gICAgY29uc3Qgc3ZnRG9tTWF0cml4ID0gdGhpcy5zdmdFTGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0U2NyZWVuQ1RNKCk/LmludmVyc2UoKTtcblxuICAgIHRoaXMuc3ZnU3BhY2UgPSB7IHN2Z1BvaW50LCBzdmdEb21NYXRyaXggfTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWxpZ25CeVRoZUNvcm5lcnMoc2VyaWVzOiBBcnJheTxQb0NoYXJ0U2VyaWU+KTogdm9pZCB7XG4gICAgdGhpcy5hbGlnbkJ5VGhlQ29ybmVycyA9IHNlcmllcy5ldmVyeShzZXJpZSA9PiBzZXJpZS50eXBlID09PSBQb0NoYXJ0VHlwZS5BcmVhIHx8IHNlcmllLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkJhcik7XG4gIH1cblxuICBwcml2YXRlIHNldFJhbmdlKHNlcmllczogQXJyYXk8UG9DaGFydFNlcmllPiwgb3B0aW9uczogUG9DaGFydE9wdGlvbnMgPSB7fSkge1xuICAgIGlmICghdGhpcy5pc1R5cGVDaXJjdWxhcikge1xuICAgICAgdGhpcy5yYW5nZSA9IHRoaXMuZ2V0UmFuZ2Uoc2VyaWVzLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFNlcmllc0J5VHlwZShzZXJpZXM6IEFycmF5PFBvQ2hhcnRTZXJpZT4pIHtcbiAgICB0aGlzLnNlcmllc0J5VHlwZSA9IHtcbiAgICAgIFtQb0NoYXJ0VHlwZS5BcmVhXTogc2VyaWVzLmZpbHRlcihzZXJpZSA9PiBzZXJpZS50eXBlID09PSBQb0NoYXJ0VHlwZS5BcmVhKSxcbiAgICAgIFtQb0NoYXJ0VHlwZS5Db2x1bW5dOiBzZXJpZXMuZmlsdGVyKHNlcmllID0+IHNlcmllLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkNvbHVtbiksXG4gICAgICBbUG9DaGFydFR5cGUuQmFyXTogc2VyaWVzLmZpbHRlcihzZXJpZSA9PiBzZXJpZS50eXBlID09PSBQb0NoYXJ0VHlwZS5CYXIpLFxuICAgICAgW1BvQ2hhcnRUeXBlLkxpbmVdOiBzZXJpZXMuZmlsdGVyKHNlcmllID0+IHNlcmllLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkxpbmUpLFxuICAgICAgW1BvQ2hhcnRUeXBlLkRvbnV0XTogc2VyaWVzLmZpbHRlcihzZXJpZSA9PiBzZXJpZS50eXBlID09PSBQb0NoYXJ0VHlwZS5Eb251dCksXG4gICAgICBbUG9DaGFydFR5cGUuUGllXTogc2VyaWVzLmZpbHRlcihzZXJpZSA9PiBzZXJpZS50eXBlID09PSBQb0NoYXJ0VHlwZS5QaWUpXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Vmlld0JveCgpIHtcbiAgICBjb25zdCB7IHN2Z1dpZHRoLCBzdmdIZWlnaHQgfSA9IHRoaXMuY29udGFpbmVyU2l6ZTtcbiAgICBjb25zdCB2aWV3Qm94V2lkdGggPSB0aGlzLmlzVHlwZUNpcmN1bGFyID8gc3ZnSGVpZ2h0IDogc3ZnV2lkdGg7XG4gICAgLy8gVHJhdGFtZW50byBuZWNlc3PDoXJpbyBwYXJhIHF1ZSBuw6NvIGNvcnRlIG8gdmV0b3IgbmFzIGV4dHJlbWlkYWRlc1xuICAgIGNvbnN0IG9mZnNldFhZID0gMTtcblxuICAgIHRoaXMudmlld0JveCA9IGAke29mZnNldFhZfSAtJHtvZmZzZXRYWX0gJHt2aWV3Qm94V2lkdGh9ICR7dGhpcy5jb250YWluZXJTaXplLnN2Z0hlaWdodH1gO1xuICB9XG5cbiAgcHJpdmF0ZSB2ZXJpZnlBeGlzT3B0aW9ucyhvcHRpb25zOiBQb0NoYXJ0T3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1R5cGVDaXJjdWxhciAmJiBvcHRpb25zLmhhc093blByb3BlcnR5KCdheGlzJykpIHtcbiAgICAgIHRoaXMucmFuZ2UgPSB0aGlzLmdldFJhbmdlKHRoaXMuc2VyaWVzLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgdGhpcy5heGlzT3B0aW9ucyA9IHtcbiAgICAgICAgLi4udGhpcy5heGlzT3B0aW9ucyxcbiAgICAgICAgLi4ub3B0aW9ucy5heGlzXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuIiwiPHN2ZzpzdmdcbiAgI3N2Z0VMZW1lbnRcbiAgY2xhc3M9XCJwby1jaGFydC1zdmctZWxlbWVudFwiXG4gIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pbiBtZWV0XCJcbiAgW2F0dHIudmlld0JveF09XCJ2aWV3Qm94XCJcbiAgW2F0dHIud2lkdGhdPVwiY29udGFpbmVyU2l6ZS5zdmdXaWR0aFwiXG4gIFthdHRyLmhlaWdodF09XCJjb250YWluZXJTaXplLnN2Z0hlaWdodFwiXG4+XG4gIDwhLS0gYXhpcyAtLT5cbiAgPHN2ZzpnXG4gICAgKm5nSWY9XCIhaXNUeXBlQ2lyY3VsYXJcIlxuICAgIHBvLWNoYXJ0LWF4aXNcbiAgICBbcC1hbGlnbi1ieS10aGUtY29ybmVyc109XCJhbGlnbkJ5VGhlQ29ybmVyc1wiXG4gICAgW3AtcmFuZ2VdPVwicmFuZ2VcIlxuICAgIFtwLXR5cGVdPVwidHlwZVwiXG4gICAgW3Atc2VyaWVzXT1cInNlcmllc1wiXG4gICAgW3AtY29udGFpbmVyLXNpemVdPVwiY29udGFpbmVyU2l6ZVwiXG4gICAgW3Atb3B0aW9uc109XCJheGlzT3B0aW9uc1wiXG4gICAgW3AtY2F0ZWdvcmllc109XCJjYXRlZ29yaWVzXCJcbiAgICAocC1jYXRlZ29yaWVzLWNvb3JkaW5hdGVzKT1cImdldENhdGVnb3JpZXNDb29yZGluYXRlcygkZXZlbnQpXCJcbiAgPjwvc3ZnOmc+XG5cbiAgPCEtLSBjaGFydCBhcmVhIC0tPlxuICA8c3ZnOmdcbiAgICAqbmdJZj1cIih0eXBlID09PSAnYXJlYScgfHwgdHlwZSA9PT0gJ2xpbmUnIHx8IHR5cGUgPT09ICdjb2x1bW4nKSAmJiBzZXJpZXNCeVR5cGVbJ2FyZWEnXS5sZW5ndGhcIlxuICAgIHBvLWNoYXJ0LWFyZWFcbiAgICBbcC1hbGlnbi1ieS10aGUtY29ybmVyc109XCJhbGlnbkJ5VGhlQ29ybmVyc1wiXG4gICAgW3Atc3ZnLXNwYWNlXT1cInN2Z1NwYWNlXCJcbiAgICBbcC1jYXRlZ29yaWVzXT1cImNhdGVnb3JpZXNcIlxuICAgIFtwLWNhdGVnb3JpZXMtY29vcmRpbmF0ZXNdPVwiY2F0ZWdvcmllc0Nvb3JkaW5hdGVzXCJcbiAgICBbcC1yYW5nZV09XCJyYW5nZVwiXG4gICAgW3Atc2VyaWVzXT1cInNlcmllc0J5VHlwZVsnYXJlYSddXCJcbiAgICBbcC1jb250YWluZXItc2l6ZV09XCJjb250YWluZXJTaXplXCJcbiAgICAocC1iYXItaG92ZXIpPVwib25TZXJpZUhvdmVyKCRldmVudClcIlxuICAgIChwLWJhci1jbGljayk9XCJvblNlcmllQ2xpY2soJGV2ZW50KVwiXG4gID48L3N2ZzpnPlxuXG4gIDwhLS0gY2hhcnQgY29sdW1uIC0tPlxuICA8c3ZnOmdcbiAgICAqbmdJZj1cIih0eXBlID09PSAnYXJlYScgfHwgdHlwZSA9PT0gJ2xpbmUnIHx8IHR5cGUgPT09ICdjb2x1bW4nKSAmJiBzZXJpZXNCeVR5cGVbJ2NvbHVtbiddLmxlbmd0aFwiXG4gICAgcG8tY2hhcnQtY29sdW1uXG4gICAgW3AtY2F0ZWdvcmllc109XCJjYXRlZ29yaWVzXCJcbiAgICBbcC1yYW5nZV09XCJyYW5nZVwiXG4gICAgW3Atc2VyaWVzXT1cInNlcmllc0J5VHlwZVsnY29sdW1uJ11cIlxuICAgIFtwLWNvbnRhaW5lci1zaXplXT1cImNvbnRhaW5lclNpemVcIlxuICAgIChwLWJhci1ob3Zlcik9XCJvblNlcmllSG92ZXIoJGV2ZW50KVwiXG4gICAgKHAtYmFyLWNsaWNrKT1cIm9uU2VyaWVDbGljaygkZXZlbnQpXCJcbiAgPjwvc3ZnOmc+XG5cbiAgPCEtLSBjaGFydCBsaW5lIC0tPlxuICA8c3ZnOmdcbiAgICAqbmdJZj1cIih0eXBlID09PSAnYXJlYScgfHwgdHlwZSA9PT0gJ2xpbmUnIHx8IHR5cGUgPT09ICdjb2x1bW4nKSAmJiBzZXJpZXNCeVR5cGVbJ2xpbmUnXS5sZW5ndGhcIlxuICAgIHBvLWNoYXJ0LWxpbmVcbiAgICBbcC1jYXRlZ29yaWVzXT1cImNhdGVnb3JpZXNcIlxuICAgIFtwLXJhbmdlXT1cInJhbmdlXCJcbiAgICBbcC1zZXJpZXNdPVwic2VyaWVzQnlUeXBlWydsaW5lJ11cIlxuICAgIFtwLWNvbnRhaW5lci1zaXplXT1cImNvbnRhaW5lclNpemVcIlxuICAgIChwLXBvaW50LWhvdmVyKT1cIm9uU2VyaWVIb3ZlcigkZXZlbnQpXCJcbiAgICAocC1wb2ludC1jbGljayk9XCJvblNlcmllQ2xpY2soJGV2ZW50KVwiXG4gID48L3N2ZzpnPlxuXG4gIDwhLS0gY2hhcnQgYmFyIC0tPlxuICA8c3ZnOmdcbiAgICAqbmdJZj1cInR5cGUgPT09ICdiYXInXCJcbiAgICBwby1jaGFydC1iYXJcbiAgICBbcC1jYXRlZ29yaWVzXT1cImNhdGVnb3JpZXNcIlxuICAgIFtwLXJhbmdlXT1cInJhbmdlXCJcbiAgICBbcC1zZXJpZXNdPVwic2VyaWVzQnlUeXBlWydiYXInXVwiXG4gICAgW3AtY29udGFpbmVyLXNpemVdPVwiY29udGFpbmVyU2l6ZVwiXG4gICAgKHAtYmFyLWhvdmVyKT1cIm9uU2VyaWVIb3ZlcigkZXZlbnQpXCJcbiAgICAocC1iYXItY2xpY2spPVwib25TZXJpZUNsaWNrKCRldmVudClcIlxuICA+PC9zdmc6Zz5cblxuICA8c3ZnOmdcbiAgICAqbmdJZj1cInR5cGUgPT09ICdwaWUnXCJcbiAgICBwby1jaGFydC1waWVcbiAgICBbcC1zZXJpZXNdPVwic2VyaWVzQnlUeXBlWydwaWUnXVwiXG4gICAgW3AtY29udGFpbmVyLXNpemVdPVwiY29udGFpbmVyU2l6ZVwiXG4gICAgKHAtY2lyY3VsYXItaG92ZXIpPVwib25TZXJpZUhvdmVyKCRldmVudClcIlxuICAgIChwLWNpcmN1bGFyLWNsaWNrKT1cIm9uU2VyaWVDbGljaygkZXZlbnQpXCJcbiAgPjwvc3ZnOmc+XG5cbiAgPHN2ZzpnXG4gICAgKm5nSWY9XCJ0eXBlID09PSAnZG9udXQnXCJcbiAgICBwby1jaGFydC1kb251dFxuICAgIFtwLW9wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgW3Atc2VyaWVzXT1cInNlcmllc0J5VHlwZVsnZG9udXQnXVwiXG4gICAgW3AtY29udGFpbmVyLXNpemVdPVwiY29udGFpbmVyU2l6ZVwiXG4gICAgKHAtY2lyY3VsYXItaG92ZXIpPVwib25TZXJpZUhvdmVyKCRldmVudClcIlxuICAgIChwLWNpcmN1bGFyLWNsaWNrKT1cIm9uU2VyaWVDbGljaygkZXZlbnQpXCJcbiAgPjwvc3ZnOmc+XG48L3N2Zzpzdmc+XG4iXX0=
278
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoChartContainerComponent, { className: "PoChartContainerComponent", filePath: "lib/components/po-chart/po-chart-container/po-chart-container.component.ts", lineNumber: 16 }); })();
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY2hhcnQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1jaGFydC9wby1jaGFydC1jb250YWluZXIvcG8tY2hhcnQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1jaGFydC9wby1jaGFydC1jb250YWluZXIvcG8tY2hhcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ1N4RCw0QkFXQztJQURDLCtOQUE0Qix1Q0FBZ0MsS0FBQztJQUM5RCxpQkFBUTs7O0lBRlAsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsaUVBQTRDLHlCQUMzQix1QkFDRiwyQkFDSSwwQ0FDZSxpQ0FDVCxtQ0FDRTs7Ozs7SUFLN0IsNkJBWUM7SUFEQyxBQURBLHFNQUFlLDJCQUFvQixLQUFDLHdMQUNyQiwyQkFBb0IsS0FBQztJQUNyQyxpQkFBUTs7O0lBSFAsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsaUVBQTRDLGdDQUNwQixtQ0FDRywwREFDdUIseUJBQ2pDLHlDQUNnQiwwQ0FDQzs7Ozs7SUFNcEMsNkJBU0M7SUFEQyxBQURBLHFNQUFlLDJCQUFvQixLQUFDLHdMQUNyQiwyQkFBb0IsS0FBQztJQUNyQyxpQkFBUTs7O0lBSFAsQUFEQSxBQURBLEFBREEsZ0RBQTJCLHlCQUNWLDJDQUNrQiwwQ0FDRDs7Ozs7SUFNcEMsNkJBV0M7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RkwsZUFBcUI7WUFBckIsMENBQXFCO1lBY3JCLGNBQThGO1lBQTlGLCtIQUE4RjtZQWU5RixjQUFnRztZQUFoRyxpSUFBZ0c7WUFZaEcsY0FBOEY7WUFBOUYsK0hBQThGO1lBYzlGLGNBQW9CO1lBQXBCLHlDQUFvQjtZQVdwQixjQUFvQjtZQUFwQix5Q0FBb0I7WUFTcEIsY0FBc0I7WUFBdEIsMkNBQXNCOzs7aUZEeEVkLHlCQUF5QjtjQUpyQyxTQUFTOzJCQUNFLG9CQUFvQjtvREFJUCxVQUFVO2tCQUFoQyxLQUFLO21CQUFDLGNBQWM7WUFFSixJQUFJO2tCQUFwQixLQUFLO21CQUFDLFFBQVE7WUFFWSxhQUFhO2tCQUF2QyxLQUFLO21CQUFDLGtCQUFrQjtZQUVGLFNBQVM7a0JBQS9CLEtBQUs7bUJBQUMsY0FBYztZQUVJLFVBQVU7a0JBQWxDLE1BQU07bUJBQUMsZUFBZTtZQUVFLFVBQVU7a0JBQWxDLE1BQU07bUJBQUMsZUFBZTtZQUVvQixVQUFVO2tCQUFwRCxTQUFTO21CQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFjakIsT0FBTztrQkFBOUIsS0FBSzttQkFBQyxXQUFXO1lBV0ssTUFBTTtrQkFBNUIsS0FBSzttQkFBQyxVQUFVOztrRkF0Q04seUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBvQ2hhcnRUeXBlIH0gZnJvbSAnLi4vZW51bXMvcG8tY2hhcnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IFBvQ2hhcnRDb250YWluZXJTaXplIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1jaGFydC1jb250YWluZXItc2l6ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9DaGFydE9wdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvLWNoYXJ0LW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvQ2hhcnRBeGlzT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tY2hhcnQtYXhpcy1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NoYXJ0TWF0aHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcG8tY2hhcnQtbWF0aHMuc2VydmljZSc7XG5pbXBvcnQgeyBQb0NoYXJ0TWluTWF4VmFsdWVzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1jaGFydC1taW4tbWF4LXZhbHVlcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9DaGFydFNlcmllIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wby1jaGFydC1zZXJpZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9DaGFydERhdGFMYWJlbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG8tY2hhcnQtc2VyaWUtZGF0YS1sYWJlbC5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1jaGFydC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tY2hhcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb0NoYXJ0Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCdwLWNhdGVnb3JpZXMnKSBjYXRlZ29yaWVzOiBBcnJheTxzdHJpbmc+O1xuXG4gIEBJbnB1dCgncC10eXBlJykgdHlwZTogUG9DaGFydFR5cGU7XG5cbiAgQElucHV0KCdwLWNvbnRhaW5lci1zaXplJykgY29udGFpbmVyU2l6ZTogUG9DaGFydENvbnRhaW5lclNpemU7XG5cbiAgQElucHV0KCdwLWRhdGEtbGFiZWwnKSBkYXRhTGFiZWw/OiBQb0NoYXJ0RGF0YUxhYmVsO1xuXG4gIEBPdXRwdXQoJ3Atc2VyaWUtY2xpY2snKSBzZXJpZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgncC1zZXJpZS1ob3ZlcicpIHNlcmllSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKCdzdmdFTGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgc3ZnRUxlbWVudDogRWxlbWVudFJlZjtcblxuICBhbGlnbkJ5VGhlQ29ybmVyczogYm9vbGVhbjtcbiAgYXhpc09wdGlvbnM6IFBvQ2hhcnRBeGlzT3B0aW9ucztcbiAgY2F0ZWdvcmllc0Nvb3JkaW5hdGVzOiBBcnJheTxudW1iZXI+O1xuICByYW5nZTogUG9DaGFydE1pbk1heFZhbHVlcztcbiAgc2VyaWVzQnlUeXBlO1xuICBzdmdTcGFjZTtcbiAgdmlld0JveDogc3RyaW5nO1xuICBpbnNpZGVDaGFydDogYm9vbGVhbjtcblxuICBwcml2YXRlIF9vcHRpb25zOiBQb0NoYXJ0T3B0aW9ucztcbiAgcHJpdmF0ZSBfc2VyaWVzOiBBcnJheTxQb0NoYXJ0U2VyaWU+ID0gW107XG5cbiAgQElucHV0KCdwLW9wdGlvbnMnKSBzZXQgb3B0aW9ucyh2YWx1ZTogUG9DaGFydE9wdGlvbnMpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICAgICAgdGhpcy52ZXJpZnlBeGlzT3B0aW9ucyh0aGlzLl9vcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBnZXQgb3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgfVxuXG4gIEBJbnB1dCgncC1zZXJpZXMnKSBzZXQgc2VyaWVzKGRhdGE6IEFycmF5PFBvQ2hhcnRTZXJpZT4pIHtcbiAgICB0aGlzLl9zZXJpZXMgPSBkYXRhO1xuICAgIHRoaXMuc2V0QWxpZ25CeVRoZUNvcm5lcnModGhpcy5fc2VyaWVzKTtcbiAgICB0aGlzLnNldFNlcmllc0J5VHlwZSh0aGlzLl9zZXJpZXMpO1xuICAgIHRoaXMuc2V0UmFuZ2UodGhpcy5fc2VyaWVzLCB0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0IHNlcmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VyaWVzO1xuICB9XG5cbiAgZ2V0IGlzVHlwZUNpcmN1bGFyKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFBvQ2hhcnRUeXBlLlBpZSB8fCB0aGlzLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkRvbnV0O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXRoc1NlcnZpY2U6IFBvQ2hhcnRNYXRoc1NlcnZpY2UpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnR5cGUgfHwgY2hhbmdlcy5jb250YWluZXJTaXplKSB7XG4gICAgICB0aGlzLnNldFZpZXdCb3goKTtcbiAgICAgIHRoaXMuc2V0U3ZnU3BhY2UoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuZGF0YUxhYmVsKSB7XG4gICAgICB0aGlzLnVwZGF0ZVJhbmdlQXhpcygpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVJhbmdlQXhpcygpIHtcbiAgICBpZiAodGhpcy5kYXRhTGFiZWw/LmZpeGVkID09PSB0cnVlKSB7XG4gICAgICAvLyBtaW5pbW8gdmFsb3IgcGFyYSBvIGdyYWZpY28gPSBtYWlvciBudW1lcm8gKyA1IGRlIHJlc3BpbmdvXG4gICAgICBjb25zdCBjYWxjdWxhdGVkTWF4VmFsdWUgPSB0aGlzLm1hdGhzU2VydmljZS5jYWxjdWxhdGVNaW5BbmRNYXhWYWx1ZXModGhpcy5zZXJpZXMpLm1heFZhbHVlICsgNTtcblxuICAgICAgLy8gQ2VydGlmaXF1ZS1zZSBkZSBxdWUgbyBgbWF4VmFsdWVgIG51bmNhIHNlamEgbWVub3IgcXVlIG8gbWFpb3IgdmFsb3IgbWFpcyA1LlxuICAgICAgY29uc3QgbmV3TWF4VmFsdWUgPSBNYXRoLm1heChjYWxjdWxhdGVkTWF4VmFsdWUsIHRoaXMucmFuZ2UubWF4VmFsdWUpO1xuXG4gICAgICBpZiAodGhpcy5yYW5nZS5tYXhWYWx1ZSAhPT0gbmV3TWF4VmFsdWUpIHtcbiAgICAgICAgdGhpcy5yYW5nZS5tYXhWYWx1ZSA9IG5ld01heFZhbHVlO1xuICAgICAgICB0aGlzLmF4aXNPcHRpb25zLm1heFJhbmdlID0gbmV3TWF4VmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2F0ZWdvcmllc0Nvb3JkaW5hdGVzKHZhbHVlOiBBcnJheTxudW1iZXI+KTogdm9pZCB7XG4gICAgdGhpcy5jYXRlZ29yaWVzQ29vcmRpbmF0ZXMgPSB2YWx1ZTtcbiAgfVxuXG4gIG9uU2VyaWVDbGljayhldmVudDogYW55KSB7XG4gICAgdGhpcy5zZXJpZUNsaWNrLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25TZXJpZUhvdmVyKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlcmllSG92ZXIuZW1pdChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldFJhbmdlKHNlcmllczogQXJyYXk8UG9DaGFydFNlcmllPiwgb3B0aW9uczogUG9DaGFydE9wdGlvbnMgPSB7fSk6IFBvQ2hhcnRNaW5NYXhWYWx1ZXMge1xuICAgIGNvbnN0IGRvbWFpbiA9IHRoaXMubWF0aHNTZXJ2aWNlLmNhbGN1bGF0ZU1pbkFuZE1heFZhbHVlcyhzZXJpZXMpO1xuICAgIGNvbnN0IG1pblZhbHVlID1cbiAgICAgICFvcHRpb25zLmF4aXM/Lm1pblJhbmdlICYmIGRvbWFpbi5taW5WYWx1ZSA+IDBcbiAgICAgICAgPyAwXG4gICAgICAgIDogb3B0aW9ucy5heGlzPy5taW5SYW5nZSA8IGRvbWFpbi5taW5WYWx1ZVxuICAgICAgICAgID8gb3B0aW9ucy5heGlzLm1pblJhbmdlXG4gICAgICAgICAgOiBkb21haW4ubWluVmFsdWU7XG4gICAgY29uc3QgbWF4VmFsdWUgPSBvcHRpb25zLmF4aXM/Lm1heFJhbmdlID4gZG9tYWluLm1heFZhbHVlID8gb3B0aW9ucy5heGlzLm1heFJhbmdlIDogZG9tYWluLm1heFZhbHVlO1xuICAgIGNvbnN0IHVwZGF0ZWREb21haW5WYWx1ZXMgPSB7IG1pblZhbHVlLCBtYXhWYWx1ZSB9O1xuXG4gICAgcmV0dXJuIHsgLi4uZG9tYWluLCAuLi51cGRhdGVkRG9tYWluVmFsdWVzIH07XG4gIH1cblxuICBwcml2YXRlIHNldFN2Z1NwYWNlKCkge1xuICAgIC8vIFJlcHJlc2VudGEgdW0gcG9udG8gMkQgZGVudHJvIGRvIHZpZXdwb3J0IGRvIFNWRy4gRWxlIMOpIGEgcmVwcmVzZW50YcOnw6NvIGRvIGN1cnNvciBkbyBtb3VzZSBwYXJhIGNvbXBhcmHDp8OjbyBkZSBjb29yZGVuYWRhcyBjb20gY2FkYSBkYWRvIGRlIHPDqXJpZS5cbiAgICBjb25zdCBzdmdQb2ludCA9IHRoaXMuc3ZnRUxlbWVudC5uYXRpdmVFbGVtZW50LmNyZWF0ZVNWR1BvaW50KCk7XG4gICAgLy8gUmV0b3JuYSB1bSBET01NYXRyaXggcmVwcmVzZW50YW5kbyBhcyBtYXRyaXplcyAyRCBlIDNEIHRyYW5zZm9ybWFkYXMgYSBwYXJ0aXIgZGFzIGNvb3JkZW5hZGFzIGRvIGVsZW1lbnRvLCBlbSByZWxhw6fDo28gYW8gZG9jdW1lbnQsIHBhcmEgY29vcmRlbmFkYXMgcmVsYXRpdmFzIGFvIHZpZXdwb3J0IGRvIFNWRy5cbiAgICAvLyDDiSB1dGlsaXphZG8gbm9zIGdyw6FmaWNvcyBkbyB0aXBvIMOhcmVhIHBhcmEgcXVlIHNlamEgcG9zc8OtdmVsIGVxdWlwYXJhciBhcyBjb29yZGVuYWRhcyBkbyBldmVudG8gY29tIGNhZGEgZGFkbyBkZSBzw6lyaWUsIHBhcmEgYXNzaW0gYXRpdmFyIG8gcG9udG8gZGUgZGFkbyBlcXVpdmFsZW50ZS5cbiAgICBjb25zdCBzdmdEb21NYXRyaXggPSB0aGlzLnN2Z0VMZW1lbnQubmF0aXZlRWxlbWVudC5nZXRTY3JlZW5DVE0oKT8uaW52ZXJzZSgpO1xuXG4gICAgdGhpcy5zdmdTcGFjZSA9IHsgc3ZnUG9pbnQsIHN2Z0RvbU1hdHJpeCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBbGlnbkJ5VGhlQ29ybmVycyhzZXJpZXM6IEFycmF5PFBvQ2hhcnRTZXJpZT4pOiB2b2lkIHtcbiAgICB0aGlzLmFsaWduQnlUaGVDb3JuZXJzID0gc2VyaWVzLmV2ZXJ5KHNlcmllID0+IHNlcmllLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkFyZWEgfHwgc2VyaWUudHlwZSA9PT0gUG9DaGFydFR5cGUuQmFyKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UmFuZ2Uoc2VyaWVzOiBBcnJheTxQb0NoYXJ0U2VyaWU+LCBvcHRpb25zOiBQb0NoYXJ0T3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKCF0aGlzLmlzVHlwZUNpcmN1bGFyKSB7XG4gICAgICB0aGlzLnJhbmdlID0gdGhpcy5nZXRSYW5nZShzZXJpZXMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VyaWVzQnlUeXBlKHNlcmllczogQXJyYXk8UG9DaGFydFNlcmllPikge1xuICAgIHRoaXMuc2VyaWVzQnlUeXBlID0ge1xuICAgICAgW1BvQ2hhcnRUeXBlLkFyZWFdOiBzZXJpZXMuZmlsdGVyKHNlcmllID0+IHNlcmllLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkFyZWEpLFxuICAgICAgW1BvQ2hhcnRUeXBlLkNvbHVtbl06IHNlcmllcy5maWx0ZXIoc2VyaWUgPT4gc2VyaWUudHlwZSA9PT0gUG9DaGFydFR5cGUuQ29sdW1uKSxcbiAgICAgIFtQb0NoYXJ0VHlwZS5CYXJdOiBzZXJpZXMuZmlsdGVyKHNlcmllID0+IHNlcmllLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkJhciksXG4gICAgICBbUG9DaGFydFR5cGUuTGluZV06IHNlcmllcy5maWx0ZXIoc2VyaWUgPT4gc2VyaWUudHlwZSA9PT0gUG9DaGFydFR5cGUuTGluZSksXG4gICAgICBbUG9DaGFydFR5cGUuRG9udXRdOiBzZXJpZXMuZmlsdGVyKHNlcmllID0+IHNlcmllLnR5cGUgPT09IFBvQ2hhcnRUeXBlLkRvbnV0KSxcbiAgICAgIFtQb0NoYXJ0VHlwZS5QaWVdOiBzZXJpZXMuZmlsdGVyKHNlcmllID0+IHNlcmllLnR5cGUgPT09IFBvQ2hhcnRUeXBlLlBpZSlcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRWaWV3Qm94KCkge1xuICAgIGNvbnN0IHsgc3ZnV2lkdGgsIHN2Z0hlaWdodCB9ID0gdGhpcy5jb250YWluZXJTaXplO1xuICAgIGNvbnN0IHZpZXdCb3hXaWR0aCA9IHRoaXMuaXNUeXBlQ2lyY3VsYXIgPyBzdmdIZWlnaHQgOiBzdmdXaWR0aDtcbiAgICAvLyBUcmF0YW1lbnRvIG5lY2Vzc8OhcmlvIHBhcmEgcXVlIG7Do28gY29ydGUgbyB2ZXRvciBuYXMgZXh0cmVtaWRhZGVzXG4gICAgY29uc3Qgb2Zmc2V0WFkgPSAxO1xuXG4gICAgdGhpcy52aWV3Qm94ID0gYCR7b2Zmc2V0WFl9IC0ke29mZnNldFhZfSAke3ZpZXdCb3hXaWR0aH0gJHt0aGlzLmNvbnRhaW5lclNpemUuc3ZnSGVpZ2h0fWA7XG4gIH1cblxuICBwcml2YXRlIHZlcmlmeUF4aXNPcHRpb25zKG9wdGlvbnM6IFBvQ2hhcnRPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzVHlwZUNpcmN1bGFyICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2F4aXMnKSkge1xuICAgICAgdGhpcy5yYW5nZSA9IHRoaXMuZ2V0UmFuZ2UodGhpcy5zZXJpZXMsIHRoaXMub3B0aW9ucyk7XG4gICAgICB0aGlzLmF4aXNPcHRpb25zID0ge1xuICAgICAgICAuLi50aGlzLmF4aXNPcHRpb25zLFxuICAgICAgICAuLi5vcHRpb25zLmF4aXNcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgb25DaGFydE1vdXNlRW50ZXIoKSB7XG4gICAgdGhpcy5pbnNpZGVDaGFydCA9IHRydWU7XG4gIH1cblxuICBvbkNoYXJ0TW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLmluc2lkZUNoYXJ0ID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxzdmc6c3ZnXG4gICNzdmdFTGVtZW50XG4gIGNsYXNzPVwicG8tY2hhcnQtc3ZnLWVsZW1lbnRcIlxuICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaW4gbWVldFwiXG4gIFthdHRyLnZpZXdCb3hdPVwidmlld0JveFwiXG4gIFthdHRyLndpZHRoXT1cImNvbnRhaW5lclNpemUuc3ZnV2lkdGhcIlxuICBbYXR0ci5oZWlnaHRdPVwiY29udGFpbmVyU2l6ZS5zdmdIZWlnaHRcIlxuICAobW91c2VlbnRlcik9XCJvbkNoYXJ0TW91c2VFbnRlcigpXCJcbiAgKG1vdXNlbGVhdmUpPVwib25DaGFydE1vdXNlTGVhdmUoKVwiXG4+XG4gIDwhLS0gYXhpcyAtLT5cbiAgPHN2ZzpnXG4gICAgKm5nSWY9XCIhaXNUeXBlQ2lyY3VsYXJcIlxuICAgIHBvLWNoYXJ0LWF4aXNcbiAgICBbcC1hbGlnbi1ieS10aGUtY29ybmVyc109XCJhbGlnbkJ5VGhlQ29ybmVyc1wiXG4gICAgW3AtcmFuZ2VdPVwicmFuZ2VcIlxuICAgIFtwLXR5cGVdPVwidHlwZVwiXG4gICAgW3Atc2VyaWVzXT1cInNlcmllc1wiXG4gICAgW3AtY29udGFpbmVyLXNpemVdPVwiY29udGFpbmVyU2l6ZVwiXG4gICAgW3Atb3B0aW9uc109XCJheGlzT3B0aW9uc1wiXG4gICAgW3AtY2F0ZWdvcmllc109XCJjYXRlZ29yaWVzXCJcbiAgICAocC1jYXRlZ29yaWVzLWNvb3JkaW5hdGVzKT1cImdldENhdGVnb3JpZXNDb29yZGluYXRlcygkZXZlbnQpXCJcbiAgPjwvc3ZnOmc+XG5cbiAgPCEtLSBjaGFydCBhcmVhIC0tPlxuICA8c3ZnOmdcbiAgICAqbmdJZj1cIih0eXBlID09PSAnYXJlYScgfHwgdHlwZSA9PT0gJ2xpbmUnIHx8IHR5cGUgPT09ICdjb2x1bW4nKSAmJiBzZXJpZXNCeVR5cGVbJ2FyZWEnXS5sZW5ndGhcIlxuICAgIHBvLWNoYXJ0LWFyZWFcbiAgICBbcC1hbGlnbi1ieS10aGUtY29ybmVyc109XCJhbGlnbkJ5VGhlQ29ybmVyc1wiXG4gICAgW3Atc3ZnLXNwYWNlXT1cInN2Z1NwYWNlXCJcbiAgICBbcC1jYXRlZ29yaWVzXT1cImNhdGVnb3JpZXNcIlxuICAgIFtwLWNhdGVnb3JpZXMtY29vcmRpbmF0ZXNdPVwiY2F0ZWdvcmllc0Nvb3JkaW5hdGVzXCJcbiAgICBbcC1yYW5nZV09XCJyYW5nZVwiXG4gICAgW3Atc2VyaWVzXT1cInNlcmllc0J5VHlwZVsnYXJlYSddXCJcbiAgICBbcC1jb250YWluZXItc2l6ZV09XCJjb250YWluZXJTaXplXCJcbiAgICAocC1iYXItaG92ZXIpPVwib25TZXJpZUhvdmVyKCRldmVudClcIlxuICAgIChwLWJhci1jbGljayk9XCJvblNlcmllQ2xpY2soJGV2ZW50KVwiXG4gID48L3N2ZzpnPlxuXG4gIDwhLS0gY2hhcnQgY29sdW1uIC0tPlxuICA8c3ZnOmdcbiAgICAqbmdJZj1cIih0eXBlID09PSAnYXJlYScgfHwgdHlwZSA9PT0gJ2xpbmUnIHx8IHR5cGUgPT09ICdjb2x1bW4nKSAmJiBzZXJpZXNCeVR5cGVbJ2NvbHVtbiddLmxlbmd0aFwiXG4gICAgcG8tY2hhcnQtY29sdW1uXG4gICAgW3AtY2F0ZWdvcmllc109XCJjYXRlZ29yaWVzXCJcbiAgICBbcC1yYW5nZV09XCJyYW5nZVwiXG4gICAgW3Atc2VyaWVzXT1cInNlcmllc0J5VHlwZVsnY29sdW1uJ11cIlxuICAgIFtwLWNvbnRhaW5lci1zaXplXT1cImNvbnRhaW5lclNpemVcIlxuICAgIChwLWJhci1ob3Zlcik9XCJvblNlcmllSG92ZXIoJGV2ZW50KVwiXG4gICAgKHAtYmFyLWNsaWNrKT1cIm9uU2VyaWVDbGljaygkZXZlbnQpXCJcbiAgPjwvc3ZnOmc+XG5cbiAgPCEtLSBjaGFydCBsaW5lIC0tPlxuICA8c3ZnOmdcbiAgICAqbmdJZj1cIih0eXBlID09PSAnYXJlYScgfHwgdHlwZSA9PT0gJ2xpbmUnIHx8IHR5cGUgPT09ICdjb2x1bW4nKSAmJiBzZXJpZXNCeVR5cGVbJ2xpbmUnXS5sZW5ndGhcIlxuICAgIHBvLWNoYXJ0LWxpbmVcbiAgICBbcC1jYXRlZ29yaWVzXT1cImNhdGVnb3JpZXNcIlxuICAgIFtwLXJhbmdlXT1cInJhbmdlXCJcbiAgICBbcC1zZXJpZXNdPVwic2VyaWVzQnlUeXBlWydsaW5lJ11cIlxuICAgIFtwLWNvbnRhaW5lci1zaXplXT1cImNvbnRhaW5lclNpemVcIlxuICAgIFtwLWRhdGEtbGFiZWxdPVwiZGF0YUxhYmVsXCJcbiAgICBbcC1pbnNpZGVDaGFydF09XCJpbnNpZGVDaGFydFwiXG4gICAgKHAtcG9pbnQtaG92ZXIpPVwib25TZXJpZUhvdmVyKCRldmVudClcIlxuICAgIChwLXBvaW50LWNsaWNrKT1cIm9uU2VyaWVDbGljaygkZXZlbnQpXCJcbiAgPjwvc3ZnOmc+XG5cbiAgPCEtLSBjaGFydCBiYXIgLS0+XG4gIDxzdmc6Z1xuICAgICpuZ0lmPVwidHlwZSA9PT0gJ2JhcidcIlxuICAgIHBvLWNoYXJ0LWJhclxuICAgIFtwLWNhdGVnb3JpZXNdPVwiY2F0ZWdvcmllc1wiXG4gICAgW3AtcmFuZ2VdPVwicmFuZ2VcIlxuICAgIFtwLXNlcmllc109XCJzZXJpZXNCeVR5cGVbJ2JhciddXCJcbiAgICBbcC1jb250YWluZXItc2l6ZV09XCJjb250YWluZXJTaXplXCJcbiAgICAocC1iYXItaG92ZXIpPVwib25TZXJpZUhvdmVyKCRldmVudClcIlxuICAgIChwLWJhci1jbGljayk9XCJvblNlcmllQ2xpY2soJGV2ZW50KVwiXG4gID48L3N2ZzpnPlxuXG4gIDxzdmc6Z1xuICAgICpuZ0lmPVwidHlwZSA9PT0gJ3BpZSdcIlxuICAgIHBvLWNoYXJ0LXBpZVxuICAgIFtwLXNlcmllc109XCJzZXJpZXNCeVR5cGVbJ3BpZSddXCJcbiAgICBbcC1jb250YWluZXItc2l6ZV09XCJjb250YWluZXJTaXplXCJcbiAgICAocC1jaXJjdWxhci1ob3Zlcik9XCJvblNlcmllSG92ZXIoJGV2ZW50KVwiXG4gICAgKHAtY2lyY3VsYXItY2xpY2spPVwib25TZXJpZUNsaWNrKCRldmVudClcIlxuICA+PC9zdmc6Zz5cblxuICA8c3ZnOmdcbiAgICAqbmdJZj1cInR5cGUgPT09ICdkb251dCdcIlxuICAgIHBvLWNoYXJ0LWRvbnV0XG4gICAgW3Atb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICBbcC1zZXJpZXNdPVwic2VyaWVzQnlUeXBlWydkb251dCddXCJcbiAgICBbcC1jb250YWluZXItc2l6ZV09XCJjb250YWluZXJTaXplXCJcbiAgICAocC1jaXJjdWxhci1ob3Zlcik9XCJvblNlcmllSG92ZXIoJGV2ZW50KVwiXG4gICAgKHAtY2lyY3VsYXItY2xpY2spPVwib25TZXJpZUNsaWNrKCRldmVudClcIlxuICA+PC9zdmc6Zz5cbjwvc3ZnOnN2Zz5cbiJdfQ==