@po-ui/ng-components 6.8.0 → 6.10.1

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 (32) hide show
  1. package/esm2020/lib/components/po-button/po-button.component.mjs +4 -4
  2. package/esm2020/lib/components/po-field/po-combo/po-combo-base.component.mjs +54 -6
  3. package/esm2020/lib/components/po-field/po-combo/po-combo-filter.service.mjs +16 -8
  4. package/esm2020/lib/components/po-field/po-combo/po-combo.component.mjs +221 -112
  5. package/esm2020/lib/components/po-field/po-decimal/po-decimal.component.mjs +15 -4
  6. package/esm2020/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.mjs +8 -8
  7. package/esm2020/lib/components/po-table/po-table-base.component.mjs +18 -2
  8. package/esm2020/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.mjs +10 -2
  9. package/esm2020/lib/components/po-table/po-table.component.mjs +987 -433
  10. package/esm2020/lib/directives/po-tooltip/po-tooltip-base.directive.mjs +2 -2
  11. package/esm2020/lib/directives/po-tooltip/po-tooltip.directive.mjs +32 -2
  12. package/fesm2015/po-ui-ng-components.mjs +1516 -601
  13. package/fesm2015/po-ui-ng-components.mjs.map +1 -1
  14. package/fesm2020/po-ui-ng-components.mjs +1347 -565
  15. package/fesm2020/po-ui-ng-components.mjs.map +1 -1
  16. package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +31 -1
  17. package/lib/components/po-field/po-combo/po-combo-filter.service.d.ts +3 -0
  18. package/lib/components/po-field/po-combo/po-combo.component.d.ts +22 -3
  19. package/lib/components/po-table/po-table-base.component.d.ts +12 -1
  20. package/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.d.ts +3 -1
  21. package/lib/components/po-table/po-table.component.d.ts +3 -0
  22. package/lib/directives/po-tooltip/po-tooltip-base.directive.d.ts +1 -1
  23. package/lib/directives/po-tooltip/po-tooltip.directive.d.ts +3 -0
  24. package/package.json +4 -4
  25. package/po-ui-ng-components-6.10.1.tgz +0 -0
  26. package/schematics/ng-add/index.js +1 -1
  27. package/schematics/ng-update/v2/index.js +1 -1
  28. package/schematics/ng-update/v3/index.js +1 -1
  29. package/schematics/ng-update/v4/index.js +1 -1
  30. package/schematics/ng-update/v5/index.js +1 -1
  31. package/schematics/ng-update/v6/index.js +1 -1
  32. package/po-ui-ng-components-6.8.0.tgz +0 -0
@@ -8,7 +8,7 @@ const PO_TOOLTIP_POSITION_DEFAULT = 'bottom';
8
8
  * @description
9
9
  *
10
10
  * A diretiva po-tooltip deve ser utilizada para oferecer informações adicionais quando os usuários
11
- * passam o mouse sobre o elemento alvo ao qual ela está atribuída.
11
+ * passam o mouse ou realizam o foco sobre o elemento alvo ao qual ela está atribuída.
12
12
  *
13
13
  * O conteúdo é formado por um pequeno texto que deve contribuir para uma tomada de decisão ou
14
14
  * orientação do usuário. A ativação dele pode estar em qualquer componente ou tag HTML.
@@ -108,4 +108,4 @@ __decorate([
108
108
  type: Input,
109
109
  args: ['p-display-tooltip']
110
110
  }] }); })();
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdG9vbHRpcC1iYXNlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZGlyZWN0aXZlcy9wby10b29sdGlwL3BvLXRvb2x0aXAtYmFzZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQzs7QUFFMUcsTUFBTSwyQkFBMkIsR0FBRyxRQUFRLENBQUM7QUFFN0M7Ozs7Ozs7Ozs7O0dBV0c7QUFHSCxNQUFNLE9BQWdCLHNCQUFzQjtJQUQ1QztRQUVFOzs7Ozs7Ozs7V0FTRztRQUN3QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUUvRCxxQkFBZ0IsR0FBWSxRQUFRLENBQUM7UUFHdkMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsYUFBUSxHQUFXLEVBQUUsQ0FBQztLQTJEL0I7SUF6REM7Ozs7OztPQU1HO0lBQ0gsSUFBd0IsT0FBTyxDQUFDLE9BQWU7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXdCRztJQUNILElBQWlDLGVBQWUsQ0FBQyxRQUFnQjtRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDO0lBQzNHLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUUyQyxJQUFJLGNBQWMsQ0FBQyxLQUFjO1FBQzNFLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDOzs0RkF4RW1CLHNCQUFzQjt5RUFBdEIsc0JBQXNCO0FBV0M7SUFBZixZQUFZLEVBQUU7NERBQStCO0FBc0Q3QjtJQUFmLFlBQVksRUFBRTs0REFHMUM7dUZBcEVtQixzQkFBc0I7Y0FEM0MsU0FBUztnQkFZbUMsWUFBWTtrQkFBdEQsS0FBSzttQkFBQyxrQkFBa0I7WUFlRCxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUFnQ2UsZUFBZTtrQkFBL0MsS0FBSzttQkFBQyxvQkFBb0I7WUFPcUIsY0FBYztrQkFBN0QsS0FBSzttQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMnO1xuXG5pbXBvcnQgeyBQT19DT05UUk9MX1BPU0lUSU9OUyB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvcG8tY29udHJvbC1wb3NpdGlvbi9wby1jb250cm9sLXBvc2l0aW9uLmNvbnN0YW50cyc7XG5cbmNvbnN0IFBPX1RPT0xUSVBfUE9TSVRJT05fREVGQVVMVCA9ICdib3R0b20nO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEEgZGlyZXRpdmEgcG8tdG9vbHRpcCBkZXZlIHNlciB1dGlsaXphZGEgcGFyYSBvZmVyZWNlciBpbmZvcm1hw6fDtWVzIGFkaWNpb25haXMgcXVhbmRvIG9zIHVzdcOhcmlvc1xuICogcGFzc2FtIG8gbW91c2Ugc29icmUgbyBlbGVtZW50byBhbHZvIGFvIHF1YWwgZWxhIGVzdMOhIGF0cmlidcOtZGEuXG4gKlxuICogTyBjb250ZcO6ZG8gw6kgZm9ybWFkbyBwb3IgdW0gcGVxdWVubyB0ZXh0byBxdWUgZGV2ZSBjb250cmlidWlyIHBhcmEgdW1hIHRvbWFkYSBkZSBkZWNpc8OjbyBvdVxuICogb3JpZW50YcOnw6NvIGRvIHVzdcOhcmlvLiBBIGF0aXZhw6fDo28gZGVsZSBwb2RlIGVzdGFyIGVtIHF1YWxxdWVyIGNvbXBvbmVudGUgb3UgdGFnIEhUTUwuXG4gKlxuICogUGFyYSB0ZXh0b3MgbWFpb3JlcyBvdSBubyBjYXNvIGRlIGhhdmVyIGEgbmVjZXNzaWRhZGUgZGUgdXRpbGl6YXIgYWxndW0gb3V0cm8gZWxlbWVudG8gY29tb1xuICogY29udGXDumRvIGRldmUtc2UgdXRpbGl6YXIgbyBbKipwby1wb3BvdmVyKipdKGh0dHBzOi8vcG8tdWkuaW8vZG9jdW1lbnRhdGlvbi9wby1wb3BvdmVyP3ZpZXc9ZG9jKS5cbiAqL1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb1Rvb2x0aXBCYXNlRGlyZWN0aXZlIHtcbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHF1ZSBvIHBvLXRvb2x0aXAgc2Vyw6EgaW5jbHVpZG8gbm8gYm9keSBlIG7Do28gZGVudHJvIGRvIGVsZW1lbnRvIGFvIHF1YWwgbyB0b29sdGlwIGZvaSBlc3BlY2lmaWNhZG8uXG4gICAqIE9ww6fDo28gbmVjZXNzw6FyaWEgcGFyYSBvIGNhc28gZGUgdXNvIGRlIHRvb2x0aXAgZW0gdW0gZWxlbWVudG8gU1ZHLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtYXBwZW5kLWluLWJvZHknKSBASW5wdXRCb29sZWFuKCkgYXBwZW5kSW5Cb2R5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIF90b29sdGlwUG9zaXRpb24/OiBzdHJpbmcgPSAnYm90dG9tJztcbiAgcHJvdGVjdGVkIHRvb2x0aXBDb250ZW50O1xuXG4gIHByaXZhdGUgX2Rpc3BsYXlUb29sdGlwOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3Rvb2x0aXA6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSGFiaWxpdGEgZSBhdHJpYnVpIHVtIHRleHRvIGFvIHBvLXRvb2x0aXAuXG4gICAqXG4gICAqICoqQ29tbyBib2EgcHLDoXRpY2EsIGluZGljYS1zZSB1dGlsaXphciB1bSB0ZXh0byBjb20gYXTDqSAxNDAgY2FyYWN0ZXJlcy4qKlxuICAgKi9cbiAgQElucHV0KCdwLXRvb2x0aXAnKSBzZXQgdG9vbHRpcCh0b29sdGlwOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90b29sdGlwID0gdG9vbHRpcDtcbiAgfVxuICBnZXQgdG9vbHRpcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdG9vbHRpcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBhIHBvc2nDp8OjbyBxdWUgbyBwby10b29sdGlwIGFicmlyw6EgZW0gcmVsYcOnw6NvIGFvIGNvbXBvbmVudGUgYWx2by4gU3VnZXJlLXNlIHF1ZSBzZWphXG4gICAqIHVzYWRhIGEgb3JpZW50YcOnw6NvIFwiYm90dG9tXCIgKGFiYWl4byksIHBvcsOpbSBvIG1lc21vIMOpIGZsZXjDrXZlbCBlIHNlcsOhIHJvdGFjaW9uYWRvXG4gICAqIGF1dG9tYXRpY2FtZW50ZSBwYXJhIHNlIGFkZXF1YXIgYSB0ZWxhLCBjYXNvIG5lY2Vzc8OhcmlvLlxuICAgKlxuICAgKiBQb3Npw6fDtWVzIHbDoWxpZGFzOlxuICAgKiAtIGByaWdodGA6IFBvc2ljaW9uYSBvIHBvLXRvb2x0aXAgbm8gbGFkbyBkaXJlaXRvIGRvIGNvbXBvbmVudGUgYWx2by5cbiAgICogLSBgcmlnaHQtYm90dG9tYDogUG9zaWNpb25hIG8gcG8tdG9vbHRpcCBubyBsYWRvIGRpcmVpdG8gaW5mZXJpb3IgZG8gY29tcG9uZW50ZSBhbHZvLlxuICAgKiAtIGByaWdodC10b3BgOiBQb3NpY2lvbmEgbyBwby10b29sdGlwIG5vIGxhZG8gZGlyZWl0byBzdXBlcmlvciBkbyBjb21wb25lbnRlIGFsdm8uXG4gICAqIC0gYGJvdHRvbWA6IFBvc2ljaW9uYSBvIHBvLXRvb2x0aXAgYWJhaXhvIGRvIGNvbXBvbmVudGUgYWx2by5cbiAgICogLSBgYm90dG9tLWxlZnRgOiBQb3NpY2lvbmEgbyBwby10b29sdGlwIGFiYWl4byBlIMOgIGVzcXVlcmRhIGRvIGNvbXBvbmVudGUgYWx2by5cbiAgICogLSBgYm90dG9tLXJpZ2h0YDogUG9zaWNpb25hIG8gcG8tdG9vbHRpcCBhYmFpeG8gZSDDoCBkaXJlaXRhIGRvIGNvbXBvbmVudGUgYWx2by5cbiAgICogLSBgbGVmdGA6IFBvc2ljaW9uYSBvIHBvLXRvb2x0aXAgbm8gbGFkbyBlc3F1ZXJkbyBkbyBjb21wb25lbnRlIGFsdm8uXG4gICAqIC0gYGxlZnQtdG9wYDogUG9zaWNpb25hIG8gcG8tdG9vbHRpcCBubyBsYWRvIGVzcXVlcmRvIHN1cGVyaW9yIGRvIGNvbXBvbmVudGUgYWx2by5cbiAgICogLSBgbGVmdC1ib3R0b21gOiBQb3NpY2lvbmEgbyBwby10b29sdGlwIG5vIGxhZG8gZXNxdWVyZG8gaW5mZXJpb3IgZG8gY29tcG9uZW50ZSBhbHZvLlxuICAgKiAtIGB0b3BgOiBQb3NpY2lvbmEgbyBwby10b29sdGlwIGFjaW1hIGRvIGNvbXBvbmVudGUgYWx2by5cbiAgICogLSBgdG9wLXJpZ2h0YDogUG9zaWNpb25hIG8gcG8tdG9vbHRpcCBhY2ltYSBlIMOgIGRpcmVpdGEgZG8gY29tcG9uZW50ZSBhbHZvLlxuICAgKiAtIGB0b3AtbGVmdGA6IFBvc2ljaW9uYSBvIHBvLXRvb2x0aXAgYWNpbWEgZSDDoCBlc3F1ZXJkYSBkbyBjb21wb25lbnRlIGFsdm8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGJvdHRvbVxuICAgKi9cbiAgQElucHV0KCdwLXRvb2x0aXAtcG9zaXRpb24nKSBzZXQgdG9vbHRpcFBvc2l0aW9uKHBvc2l0aW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLl90b29sdGlwUG9zaXRpb24gPSBQT19DT05UUk9MX1BPU0lUSU9OUy5pbmNsdWRlcyhwb3NpdGlvbikgPyBwb3NpdGlvbiA6IFBPX1RPT0xUSVBfUE9TSVRJT05fREVGQVVMVDtcbiAgfVxuICBnZXQgdG9vbHRpcFBvc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBQb3NpdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCgncC1kaXNwbGF5LXRvb2x0aXAnKSBASW5wdXRCb29sZWFuKCkgc2V0IGRpc3BsYXlUb29sdGlwKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzcGxheVRvb2x0aXAgPSB2YWx1ZTtcbiAgICB0aGlzLl9kaXNwbGF5VG9vbHRpcCA/IHRoaXMuYWRkVG9vbHRpcEFjdGlvbigpIDogdGhpcy5yZW1vdmVUb29sdGlwQWN0aW9uKCk7XG4gIH1cblxuICBnZXQgZGlzcGxheVRvb2x0aXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlUb29sdGlwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGFkZFRvb2x0aXBBY3Rpb24oKTtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbW92ZVRvb2x0aXBBY3Rpb24oKTtcbn1cbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdG9vbHRpcC1iYXNlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvZGlyZWN0aXZlcy9wby10b29sdGlwL3BvLXRvb2x0aXAtYmFzZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQzs7QUFFMUcsTUFBTSwyQkFBMkIsR0FBRyxRQUFRLENBQUM7QUFFN0M7Ozs7Ozs7Ozs7O0dBV0c7QUFHSCxNQUFNLE9BQWdCLHNCQUFzQjtJQUQ1QztRQUVFOzs7Ozs7Ozs7V0FTRztRQUN3QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUUvRCxxQkFBZ0IsR0FBWSxRQUFRLENBQUM7UUFHdkMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsYUFBUSxHQUFXLEVBQUUsQ0FBQztLQTJEL0I7SUF6REM7Ozs7OztPQU1HO0lBQ0gsSUFBd0IsT0FBTyxDQUFDLE9BQWU7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXdCRztJQUNILElBQWlDLGVBQWUsQ0FBQyxRQUFnQjtRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDO0lBQzNHLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUUyQyxJQUFJLGNBQWMsQ0FBQyxLQUFjO1FBQzNFLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDOzs0RkF4RW1CLHNCQUFzQjt5RUFBdEIsc0JBQXNCO0FBV0M7SUFBZixZQUFZLEVBQUU7NERBQStCO0FBc0Q3QjtJQUFmLFlBQVksRUFBRTs0REFHMUM7dUZBcEVtQixzQkFBc0I7Y0FEM0MsU0FBUztnQkFZbUMsWUFBWTtrQkFBdEQsS0FBSzttQkFBQyxrQkFBa0I7WUFlRCxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUFnQ2UsZUFBZTtrQkFBL0MsS0FBSzttQkFBQyxvQkFBb0I7WUFPcUIsY0FBYztrQkFBN0QsS0FBSzttQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMnO1xuXG5pbXBvcnQgeyBQT19DT05UUk9MX1BPU0lUSU9OUyB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvcG8tY29udHJvbC1wb3NpdGlvbi9wby1jb250cm9sLXBvc2l0aW9uLmNvbnN0YW50cyc7XG5cbmNvbnN0IFBPX1RPT0xUSVBfUE9TSVRJT05fREVGQVVMVCA9ICdib3R0b20nO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEEgZGlyZXRpdmEgcG8tdG9vbHRpcCBkZXZlIHNlciB1dGlsaXphZGEgcGFyYSBvZmVyZWNlciBpbmZvcm1hw6fDtWVzIGFkaWNpb25haXMgcXVhbmRvIG9zIHVzdcOhcmlvc1xuICogcGFzc2FtIG8gbW91c2Ugb3UgcmVhbGl6YW0gbyBmb2NvIHNvYnJlIG8gZWxlbWVudG8gYWx2byBhbyBxdWFsIGVsYSBlc3TDoSBhdHJpYnXDrWRhLlxuICpcbiAqIE8gY29udGXDumRvIMOpIGZvcm1hZG8gcG9yIHVtIHBlcXVlbm8gdGV4dG8gcXVlIGRldmUgY29udHJpYnVpciBwYXJhIHVtYSB0b21hZGEgZGUgZGVjaXPDo28gb3VcbiAqIG9yaWVudGHDp8OjbyBkbyB1c3XDoXJpby4gQSBhdGl2YcOnw6NvIGRlbGUgcG9kZSBlc3RhciBlbSBxdWFscXVlciBjb21wb25lbnRlIG91IHRhZyBIVE1MLlxuICpcbiAqIFBhcmEgdGV4dG9zIG1haW9yZXMgb3Ugbm8gY2FzbyBkZSBoYXZlciBhIG5lY2Vzc2lkYWRlIGRlIHV0aWxpemFyIGFsZ3VtIG91dHJvIGVsZW1lbnRvIGNvbW9cbiAqIGNvbnRlw7pkbyBkZXZlLXNlIHV0aWxpemFyIG8gWyoqcG8tcG9wb3ZlcioqXShodHRwczovL3BvLXVpLmlvL2RvY3VtZW50YXRpb24vcG8tcG9wb3Zlcj92aWV3PWRvYykuXG4gKi9cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9Ub29sdGlwQmFzZURpcmVjdGl2ZSB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBxdWUgbyBwby10b29sdGlwIHNlcsOhIGluY2x1aWRvIG5vIGJvZHkgZSBuw6NvIGRlbnRybyBkbyBlbGVtZW50byBhbyBxdWFsIG8gdG9vbHRpcCBmb2kgZXNwZWNpZmljYWRvLlxuICAgKiBPcMOnw6NvIG5lY2Vzc8OhcmlhIHBhcmEgbyBjYXNvIGRlIHVzbyBkZSB0b29sdGlwIGVtIHVtIGVsZW1lbnRvIFNWRy5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLWFwcGVuZC1pbi1ib2R5JykgQElucHV0Qm9vbGVhbigpIGFwcGVuZEluQm9keTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBfdG9vbHRpcFBvc2l0aW9uPzogc3RyaW5nID0gJ2JvdHRvbSc7XG4gIHByb3RlY3RlZCB0b29sdGlwQ29udGVudDtcblxuICBwcml2YXRlIF9kaXNwbGF5VG9vbHRpcDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF90b29sdGlwOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEhhYmlsaXRhIGUgYXRyaWJ1aSB1bSB0ZXh0byBhbyBwby10b29sdGlwLlxuICAgKlxuICAgKiAqKkNvbW8gYm9hIHByw6F0aWNhLCBpbmRpY2Etc2UgdXRpbGl6YXIgdW0gdGV4dG8gY29tIGF0w6kgMTQwIGNhcmFjdGVyZXMuKipcbiAgICovXG4gIEBJbnB1dCgncC10b29sdGlwJykgc2V0IHRvb2x0aXAodG9vbHRpcDogc3RyaW5nKSB7XG4gICAgdGhpcy5fdG9vbHRpcCA9IHRvb2x0aXA7XG4gIH1cbiAgZ2V0IHRvb2x0aXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXA7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgYSBwb3Npw6fDo28gcXVlIG8gcG8tdG9vbHRpcCBhYnJpcsOhIGVtIHJlbGHDp8OjbyBhbyBjb21wb25lbnRlIGFsdm8uIFN1Z2VyZS1zZSBxdWUgc2VqYVxuICAgKiB1c2FkYSBhIG9yaWVudGHDp8OjbyBcImJvdHRvbVwiIChhYmFpeG8pLCBwb3LDqW0gbyBtZXNtbyDDqSBmbGV4w612ZWwgZSBzZXLDoSByb3RhY2lvbmFkb1xuICAgKiBhdXRvbWF0aWNhbWVudGUgcGFyYSBzZSBhZGVxdWFyIGEgdGVsYSwgY2FzbyBuZWNlc3PDoXJpby5cbiAgICpcbiAgICogUG9zacOnw7VlcyB2w6FsaWRhczpcbiAgICogLSBgcmlnaHRgOiBQb3NpY2lvbmEgbyBwby10b29sdGlwIG5vIGxhZG8gZGlyZWl0byBkbyBjb21wb25lbnRlIGFsdm8uXG4gICAqIC0gYHJpZ2h0LWJvdHRvbWA6IFBvc2ljaW9uYSBvIHBvLXRvb2x0aXAgbm8gbGFkbyBkaXJlaXRvIGluZmVyaW9yIGRvIGNvbXBvbmVudGUgYWx2by5cbiAgICogLSBgcmlnaHQtdG9wYDogUG9zaWNpb25hIG8gcG8tdG9vbHRpcCBubyBsYWRvIGRpcmVpdG8gc3VwZXJpb3IgZG8gY29tcG9uZW50ZSBhbHZvLlxuICAgKiAtIGBib3R0b21gOiBQb3NpY2lvbmEgbyBwby10b29sdGlwIGFiYWl4byBkbyBjb21wb25lbnRlIGFsdm8uXG4gICAqIC0gYGJvdHRvbS1sZWZ0YDogUG9zaWNpb25hIG8gcG8tdG9vbHRpcCBhYmFpeG8gZSDDoCBlc3F1ZXJkYSBkbyBjb21wb25lbnRlIGFsdm8uXG4gICAqIC0gYGJvdHRvbS1yaWdodGA6IFBvc2ljaW9uYSBvIHBvLXRvb2x0aXAgYWJhaXhvIGUgw6AgZGlyZWl0YSBkbyBjb21wb25lbnRlIGFsdm8uXG4gICAqIC0gYGxlZnRgOiBQb3NpY2lvbmEgbyBwby10b29sdGlwIG5vIGxhZG8gZXNxdWVyZG8gZG8gY29tcG9uZW50ZSBhbHZvLlxuICAgKiAtIGBsZWZ0LXRvcGA6IFBvc2ljaW9uYSBvIHBvLXRvb2x0aXAgbm8gbGFkbyBlc3F1ZXJkbyBzdXBlcmlvciBkbyBjb21wb25lbnRlIGFsdm8uXG4gICAqIC0gYGxlZnQtYm90dG9tYDogUG9zaWNpb25hIG8gcG8tdG9vbHRpcCBubyBsYWRvIGVzcXVlcmRvIGluZmVyaW9yIGRvIGNvbXBvbmVudGUgYWx2by5cbiAgICogLSBgdG9wYDogUG9zaWNpb25hIG8gcG8tdG9vbHRpcCBhY2ltYSBkbyBjb21wb25lbnRlIGFsdm8uXG4gICAqIC0gYHRvcC1yaWdodGA6IFBvc2ljaW9uYSBvIHBvLXRvb2x0aXAgYWNpbWEgZSDDoCBkaXJlaXRhIGRvIGNvbXBvbmVudGUgYWx2by5cbiAgICogLSBgdG9wLWxlZnRgOiBQb3NpY2lvbmEgbyBwby10b29sdGlwIGFjaW1hIGUgw6AgZXNxdWVyZGEgZG8gY29tcG9uZW50ZSBhbHZvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBib3R0b21cbiAgICovXG4gIEBJbnB1dCgncC10b29sdGlwLXBvc2l0aW9uJykgc2V0IHRvb2x0aXBQb3NpdGlvbihwb3NpdGlvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5fdG9vbHRpcFBvc2l0aW9uID0gUE9fQ09OVFJPTF9QT1NJVElPTlMuaW5jbHVkZXMocG9zaXRpb24pID8gcG9zaXRpb24gOiBQT19UT09MVElQX1BPU0lUSU9OX0RFRkFVTFQ7XG4gIH1cbiAgZ2V0IHRvb2x0aXBQb3NpdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90b29sdGlwUG9zaXRpb247XG4gIH1cblxuICBASW5wdXQoJ3AtZGlzcGxheS10b29sdGlwJykgQElucHV0Qm9vbGVhbigpIHNldCBkaXNwbGF5VG9vbHRpcCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc3BsYXlUb29sdGlwID0gdmFsdWU7XG4gICAgdGhpcy5fZGlzcGxheVRvb2x0aXAgPyB0aGlzLmFkZFRvb2x0aXBBY3Rpb24oKSA6IHRoaXMucmVtb3ZlVG9vbHRpcEFjdGlvbigpO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlUb29sdGlwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5VG9vbHRpcDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhZGRUb29sdGlwQWN0aW9uKCk7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZW1vdmVUb29sdGlwQWN0aW9uKCk7XG59XG4iXX0=
@@ -3,6 +3,7 @@ import { PoTooltipBaseDirective } from './po-tooltip-base.directive';
3
3
  import { PoTooltipControlPositionService } from './po-tooltip-control-position.service';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./po-tooltip-control-position.service";
6
+ const nativeElements = ['input', 'button'];
6
7
  /**
7
8
  * @docsExtends PoTooltipBaseDirective
8
9
  *
@@ -42,6 +43,16 @@ export class PoTooltipDirective extends PoTooltipBaseDirective {
42
43
  this.removeTooltipAction();
43
44
  }
44
45
  }
46
+ onFocusOut() {
47
+ if (!this.displayTooltip) {
48
+ this.removeTooltipAction();
49
+ }
50
+ }
51
+ onFocusIn() {
52
+ if (!this.displayTooltip) {
53
+ this.addTooltipAction();
54
+ }
55
+ }
45
56
  ngOnInit() {
46
57
  this.initScrollEventListenerFunction();
47
58
  }
@@ -80,6 +91,7 @@ export class PoTooltipDirective extends PoTooltipBaseDirective {
80
91
  createTooltip() {
81
92
  this.tooltipContent = this.renderer.createElement('div');
82
93
  this.renderer.addClass(this.tooltipContent, 'po-tooltip');
94
+ this.insertAriaLabelTooltip();
83
95
  this.divArrow = this.renderer.createElement('div');
84
96
  this.renderer.addClass(this.divArrow, 'po-tooltip-arrow');
85
97
  this.divContent = this.renderer.createElement('div');
@@ -130,10 +142,22 @@ export class PoTooltipDirective extends PoTooltipBaseDirective {
130
142
  this.renderer.appendChild(this.divContent, this.textContent);
131
143
  }
132
144
  }
145
+ insertAriaLabelTooltip() {
146
+ const nativeTextContent = this.elementRef.nativeElement.textContent;
147
+ let targetElement = '';
148
+ nativeElements.forEach(el => {
149
+ if (this.elementRef.nativeElement.getElementsByTagName(el)[0] !== undefined) {
150
+ targetElement = el;
151
+ }
152
+ });
153
+ if (this.elementRef.nativeElement.getElementsByTagName(targetElement)[0] && this.tooltip) {
154
+ this.renderer.setAttribute(this.elementRef.nativeElement.getElementsByTagName(targetElement)[0], 'aria-label', nativeTextContent + ' ' + this.tooltip);
155
+ }
156
+ }
133
157
  }
134
158
  PoTooltipDirective.ɵfac = function PoTooltipDirective_Factory(t) { return new (t || PoTooltipDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.PoTooltipControlPositionService)); };
135
159
  PoTooltipDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoTooltipDirective, selectors: [["", "p-tooltip", ""]], hostBindings: function PoTooltipDirective_HostBindings(rf, ctx) { if (rf & 1) {
136
- i0.ɵɵlistener("mouseenter", function PoTooltipDirective_mouseenter_HostBindingHandler() { return ctx.onMouseEnter(); })("mouseleave", function PoTooltipDirective_mouseleave_HostBindingHandler() { return ctx.onMouseLeave(); });
160
+ i0.ɵɵlistener("mouseenter", function PoTooltipDirective_mouseenter_HostBindingHandler() { return ctx.onMouseEnter(); })("mouseleave", function PoTooltipDirective_mouseleave_HostBindingHandler() { return ctx.onMouseLeave(); })("focusout", function PoTooltipDirective_focusout_HostBindingHandler() { return ctx.onFocusOut(); })("focusin", function PoTooltipDirective_focusin_HostBindingHandler() { return ctx.onFocusIn(); });
137
161
  } }, features: [i0.ɵɵProvidersFeature([PoTooltipControlPositionService]), i0.ɵɵInheritDefinitionFeature] });
138
162
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoTooltipDirective, [{
139
163
  type: Directive,
@@ -147,5 +171,11 @@ PoTooltipDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoToolti
147
171
  }], onMouseLeave: [{
148
172
  type: HostListener,
149
173
  args: ['mouseleave']
174
+ }], onFocusOut: [{
175
+ type: HostListener,
176
+ args: ['focusout']
177
+ }], onFocusIn: [{
178
+ type: HostListener,
179
+ args: ['focusin']
150
180
  }] }); })();
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2RpcmVjdGl2ZXMvcG8tdG9vbHRpcC9wby10b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQUV4Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFLSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQXNCO0lBVzVELFlBQ1UsVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsaUJBQWtEO1FBRTFELEtBQUssRUFBRSxDQUFDO1FBSkEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBaUM7UUFQcEQsa0JBQWEsR0FBVyxDQUFDLENBQUM7SUFVbEMsQ0FBQztJQUUyQixZQUFZO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUUyQixZQUFZO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLElBQUks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QUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXRCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDOUQ7SUFDSCxDQUFDOztvRkE3SVUsa0JBQWtCO3FFQUFsQixrQkFBa0I7eUdBQWxCLGtCQUFjLHdGQUFkLGtCQUFjOzBDQUZkLENBQUMsK0JBQStCLENBQUM7dUZBRWpDLGtCQUFrQjtjQUo5QixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO2FBQzdDO21JQW9CNkIsWUFBWTtrQkFBdkMsWUFBWTttQkFBQyxZQUFZO1lBTUUsWUFBWTtrQkFBdkMsWUFBWTttQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBvVG9vbHRpcEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuL3BvLXRvb2x0aXAtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9Ub29sdGlwQ29udHJvbFBvc2l0aW9uU2VydmljZSB9IGZyb20gJy4vcG8tdG9vbHRpcC1jb250cm9sLXBvc2l0aW9uLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb1Rvb2x0aXBCYXNlRGlyZWN0aXZlXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdG9vbHRpcC1iYXNpY1wiIHRpdGxlPVwiUE8gVG9vbHRpcCBCYXNpY1wiID5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRvb2x0aXAtYmFzaWMvc2FtcGxlLXBvLXRvb2x0aXAtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdG9vbHRpcC1iYXNpYy9zYW1wbGUtcG8tdG9vbHRpcC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10b29sdGlwLWxhYnNcIiB0aXRsZT1cIlBPIFRvb2x0aXAgTGFic1wiID5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRvb2x0aXAtbGFicy9zYW1wbGUtcG8tdG9vbHRpcC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRvb2x0aXAtbGFicy9zYW1wbGUtcG8tdG9vbHRpcC1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRvb2x0aXAtbmV3LXVzZXJcIiB0aXRsZT1cIlBPIFRvb2x0aXAgLSBOZXcgVXNlclwiID5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRvb2x0aXAtbmV3LXVzZXIvc2FtcGxlLXBvLXRvb2x0aXAtbmV3LXVzZXIuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdG9vbHRpcC1uZXctdXNlci9zYW1wbGUtcG8tdG9vbHRpcC1uZXctdXNlci5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3AtdG9vbHRpcF0nLFxuICBwcm92aWRlcnM6IFtQb1Rvb2x0aXBDb250cm9sUG9zaXRpb25TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBQb1Rvb2x0aXBEaXJlY3RpdmUgZXh0ZW5kcyBQb1Rvb2x0aXBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBhcnJvd0RpcmVjdGlvbjogc3RyaW5nO1xuICBwcml2YXRlIGRpdkFycm93O1xuICBwcml2YXRlIGRpdkNvbnRlbnQ7XG4gIHByaXZhdGUgaXNIaWRkZW46IGJvb2xlYW47XG4gIHByaXZhdGUgbGFzdFRvb2x0aXBUZXh0OiBzdHJpbmc7XG4gIHByaXZhdGUgdGV4dENvbnRlbnQ7XG4gIHByaXZhdGUgdG9vbHRpcE9mZnNldDogbnVtYmVyID0gODtcblxuICBwcml2YXRlIGV2ZW50TGlzdGVuZXJGdW5jdGlvbjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcG9Db250cm9sUG9zaXRpb246IFBvVG9vbHRpcENvbnRyb2xQb3NpdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKSBvbk1vdXNlRW50ZXIoKSB7XG4gICAgaWYgKCF0aGlzLmRpc3BsYXlUb29sdGlwKSB7XG4gICAgICB0aGlzLmFkZFRvb2x0aXBBY3Rpb24oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Nb3VzZUxlYXZlKCkge1xuICAgIGlmICghdGhpcy5kaXNwbGF5VG9vbHRpcCkge1xuICAgICAgdGhpcy5yZW1vdmVUb29sdGlwQWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0U2Nyb2xsRXZlbnRMaXN0ZW5lckZ1bmN0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkVG9vbHRpcEFjdGlvbigpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnRvb2x0aXApIHtcbiAgICAgICAgdGhpcy50b29sdGlwQ29udGVudCA/IHRoaXMuc2hvd1Rvb2x0aXAoKSA6IHRoaXMuY3JlYXRlVG9vbHRpcCgpO1xuXG4gICAgICAgIHRoaXMucmVtb3ZlQXJyb3codGhpcy5hcnJvd0RpcmVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5wb0NvbnRyb2xQb3NpdGlvbi5hZGp1c3RQb3NpdGlvbih0aGlzLnRvb2x0aXBQb3NpdGlvbik7XG4gICAgICAgIHRoaXMuYXJyb3dEaXJlY3Rpb24gPSB0aGlzLnBvQ29udHJvbFBvc2l0aW9uLmdldEFycm93RGlyZWN0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5hZGRBcnJvdyh0aGlzLmFycm93RGlyZWN0aW9uKTtcblxuICAgICAgICB0aGlzLmxhc3RUb29sdGlwVGV4dCA9IHRoaXMudG9vbHRpcDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW1vdmVUb29sdGlwQWN0aW9uKCkge1xuICAgIC8vIG5lY2Vzc2l0YSBkbyB0aW1lb3V0IHBhcmEgY29uc2VndWlyIGFkaWNpb25hciBcIi5wby1pbnZpc2libGVcIiwgcG9pcyBxdWFuZG8gdGVtIGFsZ3VucyBlbGVtZW50b3NcbiAgICAvLyBwcsOzeGltb3MgY29tIHRvb2x0aXBzIGUgZmljYXIgcGFzc2FuZG8gbyBtb3VzZSBlbSBjaW1hLCBvcyBtZXNtb3MgbsOjbyBlc3RhdmFtIGZpY2FuZG8gaW52aXNpdmVpcy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmFwcGVuZEluQm9keSAmJiB0aGlzLnRvb2x0aXBDb250ZW50KSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuYm9keSwgdGhpcy50b29sdGlwQ29udGVudCk7XG4gICAgICAgIHRoaXMudG9vbHRpcENvbnRlbnQgPSB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEFycm93KGFycm93RGlyZWN0aW9uKSB7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRpdkFycm93LCBgcG8tYXJyb3ctJHthcnJvd0RpcmVjdGlvbn1gKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkU2Nyb2xsRXZlbnRMaXN0ZW5lcigpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5ldmVudExpc3RlbmVyRnVuY3Rpb24sIHRydWUpO1xuICB9XG5cbiAgLy8gTW9udGEgYSBlc3RydXR1cmEgZG8gdG9vbHRpcFxuICBwcml2YXRlIGNyZWF0ZVRvb2x0aXAoKSB7XG4gICAgdGhpcy50b29sdGlwQ29udGVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXBDb250ZW50LCAncG8tdG9vbHRpcCcpO1xuXG4gICAgdGhpcy5kaXZBcnJvdyA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRpdkFycm93LCAncG8tdG9vbHRpcC1hcnJvdycpO1xuXG4gICAgdGhpcy5kaXZDb250ZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZGl2Q29udGVudCwgJ3BvLXRvb2x0aXAtY29udGVudCcpO1xuXG4gICAgdGhpcy50ZXh0Q29udGVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0aGlzLnRvb2x0aXApO1xuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRpdkNvbnRlbnQsIHRoaXMudGV4dENvbnRlbnQpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwQ29udGVudCwgdGhpcy5kaXZBcnJvdyk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBDb250ZW50LCB0aGlzLmRpdkNvbnRlbnQpO1xuXG4gICAgY29uc3QgcGFyZW50VGFyZ2V0ID0gdGhpcy5hcHBlbmRJbkJvZHkgPyBkb2N1bWVudC5ib2R5IDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwYXJlbnRUYXJnZXQsIHRoaXMudG9vbHRpcENvbnRlbnQpO1xuXG4gICAgdGhpcy5wb0NvbnRyb2xQb3NpdGlvbi5zZXRFbGVtZW50cyh0aGlzLnRvb2x0aXBDb250ZW50LCB0aGlzLnRvb2x0aXBPZmZzZXQsIHRoaXMuZWxlbWVudFJlZik7XG5cbiAgICB0aGlzLmFkZFNjcm9sbEV2ZW50TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNjcm9sbEV2ZW50TGlzdGVuZXJGdW5jdGlvbigpIHtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJGdW5jdGlvbiA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0hpZGRlbikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnBvQ29udHJvbFBvc2l0aW9uLmFkanVzdFBvc2l0aW9uKHRoaXMudG9vbHRpcFBvc2l0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZVRvb2x0aXAoKSB7XG4gICAgaWYgKHRoaXMudG9vbHRpcENvbnRlbnQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwQ29udGVudCwgJ3BvLWludmlzaWJsZScpO1xuICAgICAgdGhpcy5pc0hpZGRlbiA9IHRydWU7XG5cbiAgICAgIHRoaXMucmVtb3ZlU2Nyb2xsRXZlbnRMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQXJyb3coYXJyb3dEaXJlY3Rpb24pIHtcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgLnBvLWFycm93LSR7YXJyb3dEaXJlY3Rpb259YCkpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kaXZBcnJvdywgYHBvLWFycm93LSR7YXJyb3dEaXJlY3Rpb259YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTY3JvbGxFdmVudExpc3RlbmVyKCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmV2ZW50TGlzdGVuZXJGdW5jdGlvbiwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dUb29sdGlwKCkge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwQ29udGVudCwgJ3BvLWludmlzaWJsZScpO1xuICAgIHRoaXMudXBkYXRlVGV4dENvbnRlbnQoKTtcbiAgICB0aGlzLmlzSGlkZGVuID0gZmFsc2U7XG5cbiAgICB0aGlzLmFkZFNjcm9sbEV2ZW50TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGV4dENvbnRlbnQoKSB7XG4gICAgaWYgKHRoaXMubGFzdFRvb2x0aXBUZXh0ICE9PSB0aGlzLnRvb2x0aXApIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kaXZDb250ZW50LCB0aGlzLnRleHRDb250ZW50KTtcbiAgICAgIHRoaXMudGV4dENvbnRlbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodGhpcy50b29sdGlwKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kaXZDb250ZW50LCB0aGlzLnRleHRDb250ZW50KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2RpcmVjdGl2ZXMvcG8tdG9vbHRpcC9wby10b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7OztBQUV4RixNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFLSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQXNCO0lBVzVELFlBQ1UsVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsaUJBQWtEO1FBRTFELEtBQUssRUFBRSxDQUFDO1FBSkEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBaUM7UUFQcEQsa0JBQWEsR0FBVyxDQUFDLENBQUM7SUFVbEMsQ0FBQztJQUUyQixZQUFZO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUUyQixZQUFZO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUV5QixVQUFVO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NB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c3RlbmVyLCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQb1Rvb2x0aXBCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9wby10b29sdGlwLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvVG9vbHRpcENvbnRyb2xQb3NpdGlvblNlcnZpY2UgfSBmcm9tICcuL3BvLXRvb2x0aXAtY29udHJvbC1wb3NpdGlvbi5zZXJ2aWNlJztcblxuY29uc3QgbmF0aXZlRWxlbWVudHMgPSBbJ2lucHV0JywgJ2J1dHRvbiddO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb1Rvb2x0aXBCYXNlRGlyZWN0aXZlXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tdG9vbHRpcC1iYXNpY1wiIHRpdGxlPVwiUE8gVG9vbHRpcCBCYXNpY1wiID5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRvb2x0aXAtYmFzaWMvc2FtcGxlLXBvLXRvb2x0aXAtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdG9vbHRpcC1iYXNpYy9zYW1wbGUtcG8tdG9vbHRpcC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby10b29sdGlwLWxhYnNcIiB0aXRsZT1cIlBPIFRvb2x0aXAgTGFic1wiID5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRvb2x0aXAtbGFicy9zYW1wbGUtcG8tdG9vbHRpcC1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRvb2x0aXAtbGFicy9zYW1wbGUtcG8tdG9vbHRpcC1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXRvb2x0aXAtbmV3LXVzZXJcIiB0aXRsZT1cIlBPIFRvb2x0aXAgLSBOZXcgVXNlclwiID5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXRvb2x0aXAtbmV3LXVzZXIvc2FtcGxlLXBvLXRvb2x0aXAtbmV3LXVzZXIuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tdG9vbHRpcC1uZXctdXNlci9zYW1wbGUtcG8tdG9vbHRpcC1uZXctdXNlci5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3AtdG9vbHRpcF0nLFxuICBwcm92aWRlcnM6IFtQb1Rvb2x0aXBDb250cm9sUG9zaXRpb25TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBQb1Rvb2x0aXBEaXJlY3RpdmUgZXh0ZW5kcyBQb1Rvb2x0aXBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBhcnJvd0RpcmVjdGlvbjogc3RyaW5nO1xuICBwcml2YXRlIGRpdkFycm93O1xuICBwcml2YXRlIGRpdkNvbnRlbnQ7XG4gIHByaXZhdGUgaXNIaWRkZW46IGJvb2xlYW47XG4gIHByaXZhdGUgbGFzdFRvb2x0aXBUZXh0OiBzdHJpbmc7XG4gIHByaXZhdGUgdGV4dENvbnRlbnQ7XG4gIHByaXZhdGUgdG9vbHRpcE9mZnNldDogbnVtYmVyID0gODtcblxuICBwcml2YXRlIGV2ZW50TGlzdGVuZXJGdW5jdGlvbjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcG9Db250cm9sUG9zaXRpb246IFBvVG9vbHRpcENvbnRyb2xQb3NpdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKSBvbk1vdXNlRW50ZXIoKSB7XG4gICAgaWYgKCF0aGlzLmRpc3BsYXlUb29sdGlwKSB7XG4gICAgICB0aGlzLmFkZFRvb2x0aXBBY3Rpb24oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgb25Nb3VzZUxlYXZlKCkge1xuICAgIGlmICghdGhpcy5kaXNwbGF5VG9vbHRpcCkge1xuICAgICAgdGhpcy5yZW1vdmVUb29sdGlwQWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKSBvbkZvY3VzT3V0KCkge1xuICAgIGlmICghdGhpcy5kaXNwbGF5VG9vbHRpcCkge1xuICAgICAgdGhpcy5yZW1vdmVUb29sdGlwQWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicpIG9uRm9jdXNJbigpIHtcbiAgICBpZiAoIXRoaXMuZGlzcGxheVRvb2x0aXApIHtcbiAgICAgIHRoaXMuYWRkVG9vbHRpcEFjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdFNjcm9sbEV2ZW50TGlzdGVuZXJGdW5jdGlvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZFRvb2x0aXBBY3Rpb24oKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy50b29sdGlwKSB7XG4gICAgICAgIHRoaXMudG9vbHRpcENvbnRlbnQgPyB0aGlzLnNob3dUb29sdGlwKCkgOiB0aGlzLmNyZWF0ZVRvb2x0aXAoKTtcblxuICAgICAgICB0aGlzLnJlbW92ZUFycm93KHRoaXMuYXJyb3dEaXJlY3Rpb24pO1xuXG4gICAgICAgIHRoaXMucG9Db250cm9sUG9zaXRpb24uYWRqdXN0UG9zaXRpb24odGhpcy50b29sdGlwUG9zaXRpb24pO1xuICAgICAgICB0aGlzLmFycm93RGlyZWN0aW9uID0gdGhpcy5wb0NvbnRyb2xQb3NpdGlvbi5nZXRBcnJvd0RpcmVjdGlvbigpO1xuXG4gICAgICAgIHRoaXMuYWRkQXJyb3codGhpcy5hcnJvd0RpcmVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5sYXN0VG9vbHRpcFRleHQgPSB0aGlzLnRvb2x0aXA7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVtb3ZlVG9vbHRpcEFjdGlvbigpIHtcbiAgICAvLyBuZWNlc3NpdGEgZG8gdGltZW91dCBwYXJhIGNvbnNlZ3VpciBhZGljaW9uYXIgXCIucG8taW52aXNpYmxlXCIsIHBvaXMgcXVhbmRvIHRlbSBhbGd1bnMgZWxlbWVudG9zXG4gICAgLy8gcHLDs3hpbW9zIGNvbSB0b29sdGlwcyBlIGZpY2FyIHBhc3NhbmRvIG8gbW91c2UgZW0gY2ltYSwgb3MgbWVzbW9zIG7Do28gZXN0YXZhbSBmaWNhbmRvIGludmlzaXZlaXMuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hcHBlbmRJbkJvZHkgJiYgdGhpcy50b29sdGlwQ29udGVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMudG9vbHRpcENvbnRlbnQpO1xuICAgICAgICB0aGlzLnRvb2x0aXBDb250ZW50ID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oaWRlVG9vbHRpcCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRBcnJvdyhhcnJvd0RpcmVjdGlvbikge1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5kaXZBcnJvdywgYHBvLWFycm93LSR7YXJyb3dEaXJlY3Rpb259YCk7XG4gIH1cblxuICBwcml2YXRlIGFkZFNjcm9sbEV2ZW50TGlzdGVuZXIoKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuZXZlbnRMaXN0ZW5lckZ1bmN0aW9uLCB0cnVlKTtcbiAgfVxuXG4gIC8vIE1vbnRhIGEgZXN0cnV0dXJhIGRvIHRvb2x0aXBcbiAgcHJpdmF0ZSBjcmVhdGVUb29sdGlwKCkge1xuICAgIHRoaXMudG9vbHRpcENvbnRlbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwQ29udGVudCwgJ3BvLXRvb2x0aXAnKTtcblxuICAgIHRoaXMuaW5zZXJ0QXJpYUxhYmVsVG9vbHRpcCgpO1xuXG4gICAgdGhpcy5kaXZBcnJvdyA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRpdkFycm93LCAncG8tdG9vbHRpcC1hcnJvdycpO1xuXG4gICAgdGhpcy5kaXZDb250ZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZGl2Q29udGVudCwgJ3BvLXRvb2x0aXAtY29udGVudCcpO1xuXG4gICAgdGhpcy50ZXh0Q29udGVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0aGlzLnRvb2x0aXApO1xuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRpdkNvbnRlbnQsIHRoaXMudGV4dENvbnRlbnQpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwQ29udGVudCwgdGhpcy5kaXZBcnJvdyk7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnRvb2x0aXBDb250ZW50LCB0aGlzLmRpdkNvbnRlbnQpO1xuXG4gICAgY29uc3QgcGFyZW50VGFyZ2V0ID0gdGhpcy5hcHBlbmRJbkJvZHkgPyBkb2N1bWVudC5ib2R5IDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChwYXJlbnRUYXJnZXQsIHRoaXMudG9vbHRpcENvbnRlbnQpO1xuXG4gICAgdGhpcy5wb0NvbnRyb2xQb3NpdGlvbi5zZXRFbGVtZW50cyh0aGlzLnRvb2x0aXBDb250ZW50LCB0aGlzLnRvb2x0aXBPZmZzZXQsIHRoaXMuZWxlbWVudFJlZik7XG5cbiAgICB0aGlzLmFkZFNjcm9sbEV2ZW50TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNjcm9sbEV2ZW50TGlzdGVuZXJGdW5jdGlvbigpIHtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJGdW5jdGlvbiA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0hpZGRlbikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnBvQ29udHJvbFBvc2l0aW9uLmFkanVzdFBvc2l0aW9uKHRoaXMudG9vbHRpcFBvc2l0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZVRvb2x0aXAoKSB7XG4gICAgaWYgKHRoaXMudG9vbHRpcENvbnRlbnQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwQ29udGVudCwgJ3BvLWludmlzaWJsZScpO1xuICAgICAgdGhpcy5pc0hpZGRlbiA9IHRydWU7XG5cbiAgICAgIHRoaXMucmVtb3ZlU2Nyb2xsRXZlbnRMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQXJyb3coYXJyb3dEaXJlY3Rpb24pIHtcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgLnBvLWFycm93LSR7YXJyb3dEaXJlY3Rpb259YCkpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kaXZBcnJvdywgYHBvLWFycm93LSR7YXJyb3dEaXJlY3Rpb259YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTY3JvbGxFdmVudExpc3RlbmVyKCkge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmV2ZW50TGlzdGVuZXJGdW5jdGlvbiwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dUb29sdGlwKCkge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwQ29udGVudCwgJ3BvLWludmlzaWJsZScpO1xuICAgIHRoaXMudXBkYXRlVGV4dENvbnRlbnQoKTtcbiAgICB0aGlzLmlzSGlkZGVuID0gZmFsc2U7XG5cbiAgICB0aGlzLmFkZFNjcm9sbEV2ZW50TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGV4dENvbnRlbnQoKSB7XG4gICAgaWYgKHRoaXMubGFzdFRvb2x0aXBUZXh0ICE9PSB0aGlzLnRvb2x0aXApIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kaXZDb250ZW50LCB0aGlzLnRleHRDb250ZW50KTtcbiAgICAgIHRoaXMudGV4dENvbnRlbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodGhpcy50b29sdGlwKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kaXZDb250ZW50LCB0aGlzLnRleHRDb250ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluc2VydEFyaWFMYWJlbFRvb2x0aXAoKSB7XG4gICAgY29uc3QgbmF0aXZlVGV4dENvbnRlbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDtcbiAgICBsZXQgdGFyZ2V0RWxlbWVudCA9ICcnO1xuXG4gICAgbmF0aXZlRWxlbWVudHMuZm9yRWFjaChlbCA9PiB7XG4gICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZWwpWzBdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGFyZ2V0RWxlbWVudCA9IGVsO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhcmdldEVsZW1lbnQpWzBdICYmIHRoaXMudG9vbHRpcCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhcmdldEVsZW1lbnQpWzBdLFxuICAgICAgICAnYXJpYS1sYWJlbCcsXG4gICAgICAgIG5hdGl2ZVRleHRDb250ZW50ICsgJyAnICsgdGhpcy50b29sdGlwXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19