info-library 2.10.76 → 2.10.77

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/bundles/info-library.umd.js +230 -8
  2. package/bundles/info-library.umd.js.map +1 -1
  3. package/bundles/info-library.umd.min.js +1 -1
  4. package/bundles/info-library.umd.min.js.map +1 -1
  5. package/controls/grid/grid.component.d.ts +18 -1
  6. package/esm2015/controls/alert/alert.component.js +1 -1
  7. package/esm2015/controls/autocomplete/autocomplete.component.js +1 -1
  8. package/esm2015/controls/big-checkbox/big-checkbox.component.js +1 -1
  9. package/esm2015/controls/card/card.component.js +1 -1
  10. package/esm2015/controls/card-menu/card-menu.component.js +1 -1
  11. package/esm2015/controls/checkbox/checkbox.component.js +1 -1
  12. package/esm2015/controls/chips/chips.component.js +1 -1
  13. package/esm2015/controls/date/date.component.js +1 -1
  14. package/esm2015/controls/date-month/date-month.component.js +1 -1
  15. package/esm2015/controls/editor/editor.component.js +1 -1
  16. package/esm2015/controls/grid/grid.component.js +201 -11
  17. package/esm2015/controls/input/input.component.js +1 -1
  18. package/esm2015/controls/input-list/input-list.component.js +1 -1
  19. package/esm2015/controls/list-checkbox/list-checkbox.component.js +1 -1
  20. package/esm2015/controls/message/message.component.js +1 -1
  21. package/esm2015/controls/multi-select/multi-select.component.js +1 -1
  22. package/esm2015/controls/paginator/paginator.component.js +1 -1
  23. package/esm2015/controls/select/select.component.js +1 -1
  24. package/esm2015/controls/timeline/timeline.component.js +1 -1
  25. package/esm2015/directives/mask.directive.js +1 -1
  26. package/esm2015/directives/unmask.directive.js +1 -1
  27. package/esm2015/enum/dialog-buttons.enum.js +1 -1
  28. package/esm2015/enum/index.js +1 -1
  29. package/esm2015/enum/modal-action.enum.js +1 -1
  30. package/esm2015/enum/page-action.enum.js +1 -1
  31. package/esm2015/global-config.js +1 -1
  32. package/esm2015/info-library.js +2 -2
  33. package/esm2015/info-library.module.js +4 -2
  34. package/esm2015/layouts/dialog/dialog.component.js +1 -1
  35. package/esm2015/layouts/loading/loading.component.js +1 -1
  36. package/esm2015/layouts/main/main.component.js +1 -1
  37. package/esm2015/layouts/modal/modal.component.js +1 -1
  38. package/esm2015/layouts/pagebar/pagebar.component.js +1 -1
  39. package/esm2015/layouts/sidebar/sidebar.component.js +1 -1
  40. package/esm2015/layouts/topbar/topbar.component.js +1 -1
  41. package/esm2015/layouts/topmenu/topmenu.component.js +1 -1
  42. package/esm2015/model/app-config.model.js +1 -1
  43. package/esm2015/model/data-access.model.js +1 -1
  44. package/esm2015/model/dialog-result.model.js +1 -1
  45. package/esm2015/model/dialog.model.js +1 -1
  46. package/esm2015/model/form-prop.model.js +1 -1
  47. package/esm2015/model/grid-button.model.js +1 -1
  48. package/esm2015/model/index.js +1 -1
  49. package/esm2015/model/last-search.model.js +1 -1
  50. package/esm2015/model/login.model.js +1 -1
  51. package/esm2015/model/method-grid-button.model.js +1 -1
  52. package/esm2015/model/notification.model.js +1 -1
  53. package/esm2015/model/pagebar-buttons.model.js +1 -1
  54. package/esm2015/model/permission.model.js +1 -1
  55. package/esm2015/model/platform.model.js +1 -1
  56. package/esm2015/model/session.model.js +1 -1
  57. package/esm2015/pipe/index.js +1 -1
  58. package/esm2015/pipe/mask.pipe.js +1 -1
  59. package/esm2015/pipe/translate.pipe.js +1 -1
  60. package/esm2015/public_api.js +2 -2
  61. package/esm2015/service/authentication.service.js +1 -1
  62. package/esm2015/service/configuration.service.js +1 -1
  63. package/esm2015/service/data.service.js +1 -1
  64. package/esm2015/service/index.js +1 -1
  65. package/esm2015/service/theme.service.js +1 -1
  66. package/esm2015/service/translate.service.js +1 -1
  67. package/esm2015/utils/utilities.js +1 -1
  68. package/fesm2015/info-library.js +201 -9
  69. package/fesm2015/info-library.js.map +1 -1
  70. package/info-library.metadata.json +1 -1
  71. package/package.json +1 -1
  72. package/public_api.d.ts +1 -1
@@ -130,4 +130,4 @@ if (false) {
130
130
  /** @type {?} */
131
131
  InfoThemeService.prototype._session;
132
132
  }
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9kZXYvSW5mbyBVdGlsaXRpZXMvSW5mbyBMaWJyYXJ5IC0gQW5ndWxhci9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjLyIsInNvdXJjZXMiOlsic2VydmljZS90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFLMUQsTUFBTSxPQUFPLGdCQUFnQjs7Ozs7O0lBRXpCLFlBQW1CLFFBQTBCLEVBQVMsVUFBNkIsRUFBUyxRQUEwQjtRQUFuRyxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUFTLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFBSSxDQUFDOzs7OztJQUVwSCxRQUFRLENBQUMsS0FBSztRQUNqQiw2Q0FBNkM7UUFFN0MsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUM7O2dCQUMzQixJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSTs7OztZQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUM7WUFDNUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQy9FOztZQUVHLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLENBQUMsU0FBUzs7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Z0I7Ozs7O0lBT1Qsb0NBQWlDOztJQUFFLHNDQUFvQzs7SUFBRSxvQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQgeyBJbmZvUGxhdGZvcm1Nb2RlbCB9IGZyb20gJy4uL21vZGVsL3BsYXRmb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgSW5mb1Nlc3Npb25Nb2RlbCB9IGZyb20gJy4uL21vZGVsL3Nlc3Npb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvVGhlbWVTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgX292ZXJsYXk6IE92ZXJsYXlDb250YWluZXIsIHB1YmxpYyBfcGxhdGFmb3JtOiBJbmZvUGxhdGZvcm1Nb2RlbCwgcHVibGljIF9zZXNzaW9uOiBJbmZvU2Vzc2lvbk1vZGVsKSB7IH1cclxuXHJcbiAgICBwdWJsaWMgc2V0VGhlbWUodGhlbWUpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygnaW5mby10aGVtZS5zZXRUaGVtZScsIHRoZW1lKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5UaGVtZXMgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gdGhpcy5fcGxhdGFmb3JtLlRoZW1lcy5maW5kKHQgPT4gdC5uYW1lID09IHRoZW1lKTtcclxuICAgICAgICAgICAgdGhpcy5fcGxhdGFmb3JtLlVuaWZpY2FyVG9wYmFyID0gaXRlbSA9PSBudWxsID8gZmFsc2UgOiBpdGVtLnVuaWZpY2FyVG9wYmFyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IF9vdmVybGF5ID0gdGhpcy5fb3ZlcmxheS5nZXRDb250YWluZXJFbGVtZW50KCkuY2xhc3NMaXN0O1xyXG4gICAgICAgIGxldCB0aGVtZUNsYXNzZXNUb1JlbW92ZTogYW55ID0gQXJyYXkuZnJvbShfb3ZlcmxheSkuZmlsdGVyKChpdGVtOiBzdHJpbmcpID0+IGl0ZW0uaW5jbHVkZXMoJy10aGVtZScpKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhlbWVDbGFzc2VzVG9SZW1vdmUgJiYgdGhlbWVDbGFzc2VzVG9SZW1vdmUubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgX292ZXJsYXkucmVtb3ZlKHRoZW1lQ2xhc3Nlc1RvUmVtb3ZlKTtcclxuXHJcbiAgICAgICAgX292ZXJsYXkucmVtb3ZlKCdhbHRlcm5hdGl2ZS1sYXlvdXQnKTtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoJ2NsYXNzJyk7XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl9wbGF0YWZvcm0uTW9kb1ByaW1lKXtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKHRoZW1lKTtcclxuICAgICAgICAgICAgX292ZXJsYXkuYWRkKHRoZW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9wbGF0YWZvcm0uVW5pZmljYXJUb3BiYXIpXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYWx0ZXJuYXRpdmUtbGF5b3V0Jyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5NZW51TWluKVxyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21lbnUtbWluJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUpXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbW9kby1wcmltZScpO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3V4JyArICh0aGlzLl9wbGF0YWZvcm0uQ29uZmlnLnV4ID8gdGhpcy5fcGxhdGFmb3JtLkNvbmZpZy51eCA6IDIpKTtcclxuXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXQnLCB0aGVtZSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2F0JywgdGhlbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRUaGVtZUJ5TG9nZ2VkQ29tcGFueSgpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygnaW5mby10aGVtZS5zZXRUaGVtZUJ5TG9nZ2VkQ29tcGFueScsIHRoaXMuX3Nlc3Npb24uVGVtYUlkKTtcclxuICAgICAgICB0aGlzLnNldFRoZW1lKHRoaXMuX3Nlc3Npb24uVGVtYUlkID4gMCA/IGBfJHt0aGlzLl9zZXNzaW9uLlRlbWFJZH0tdGhlbWVgIDogJ2RlZmF1bHQtdGhlbWUnKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TWVudU1pbih2YWx1ZTogYm9vbGVhbiA9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuX3BsYXRhZm9ybS5NZW51TWluID0gdmFsdWUgPT0gbnVsbCA/ICF0aGlzLl9wbGF0YWZvcm0uTWVudU1pbiA6IHZhbHVlO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21lbnUtbWluJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5NZW51TWluKVxyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21lbnUtbWluJyk7XHJcblxyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21tJywgdGhpcy5fcGxhdGFmb3JtLk1lbnVNaW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21tJywgdGhpcy5fcGxhdGFmb3JtLk1lbnVNaW4udG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldE1vZGVQcmltZShwcmltZTogYm9vbGVhbiA9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUgPSBwcmltZSA9PSBudWxsID8gIXRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUgOiBwcmltZTtcclxuICAgICAgICBsZXQgX292ZXJsYXkgPSB0aGlzLl9vdmVybGF5LmdldENvbnRhaW5lckVsZW1lbnQoKS5jbGFzc0xpc3Q7XHJcbiAgICAgICAgbGV0IHRoZW1lc0NsYXNzVG9SZW1vdmUgPSBBcnJheS5mcm9tKF9vdmVybGF5KS5maWx0ZXIoaXRlbSA9PiBpdGVtLmluY2x1ZGVzKCctdGhlbWUnKSk7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbW9kby1wcmltZScpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLl9wbGF0YWZvcm0uTW9kb1ByaW1lKXtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdtb2RvLXByaW1lJyk7XHJcbiAgICAgICAgICAgIGlmICh0aGVtZXNDbGFzc1RvUmVtb3ZlICYmIHRoZW1lc0NsYXNzVG9SZW1vdmUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgdGhlbWVUb1JlbW92ZSBvZiB0aGVtZXNDbGFzc1RvUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX292ZXJsYXkucmVtb3ZlKHRoZW1lVG9SZW1vdmUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSh0aGVtZVRvUmVtb3ZlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbXAnLCB0aGlzLl9wbGF0YWZvcm0uTW9kb1ByaW1lLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdtcCcsIHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbn0iXX0=
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9pbmZvL2Rldi91dGlsaXRpZXMvaW5mbyBsaWJyYXJ5IGExMC9JbmZvIExpYnJhcnkgLSBBbmd1bGFyL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvIiwic291cmNlcyI6WyJzZXJ2aWNlL3RoZW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQUsxRCxNQUFNLE9BQU8sZ0JBQWdCOzs7Ozs7SUFFekIsWUFBbUIsUUFBMEIsRUFBUyxVQUE2QixFQUFTLFFBQTBCO1FBQW5HLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUFJLENBQUM7Ozs7O0lBRXBILFFBQVEsQ0FBQyxLQUFLO1FBQ2pCLDZDQUE2QztRQUU3QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksRUFBQzs7Z0JBQzNCLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUssRUFBQztZQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDL0U7O1lBRUcsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1C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aUJBQWlCO1lBQ2pCLGdCQUFnQjs7Ozs7SUFPVCxvQ0FBaUM7O0lBQUUsc0NBQW9DOztJQUFFLG9DQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBPdmVybGF5Q29udGFpbmVyIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XHJcbmltcG9ydCB7IEluZm9QbGF0Zm9ybU1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvcGxhdGZvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBJbmZvU2Vzc2lvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvc2Vzc2lvbi5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9UaGVtZVNlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBfb3ZlcmxheTogT3ZlcmxheUNvbnRhaW5lciwgcHVibGljIF9wbGF0YWZvcm06IEluZm9QbGF0Zm9ybU1vZGVsLCBwdWJsaWMgX3Nlc3Npb246IEluZm9TZXNzaW9uTW9kZWwpIHsgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRUaGVtZSh0aGVtZSkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdpbmZvLXRoZW1lLnNldFRoZW1lJywgdGhlbWUpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fcGxhdGFmb3JtLlRoZW1lcyAhPSBudWxsKXtcclxuICAgICAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLl9wbGF0YWZvcm0uVGhlbWVzLmZpbmQodCA9PiB0Lm5hbWUgPT0gdGhlbWUpO1xyXG4gICAgICAgICAgICB0aGlzLl9wbGF0YWZvcm0uVW5pZmljYXJUb3BiYXIgPSBpdGVtID09IG51bGwgPyBmYWxzZSA6IGl0ZW0udW5pZmljYXJUb3BiYXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgX292ZXJsYXkgPSB0aGlzLl9vdmVybGF5LmdldENvbnRhaW5lckVsZW1lbnQoKS5jbGFzc0xpc3Q7XHJcbiAgICAgICAgbGV0IHRoZW1lQ2xhc3Nlc1RvUmVtb3ZlOiBhbnkgPSBBcnJheS5mcm9tKF9vdmVybGF5KS5maWx0ZXIoKGl0ZW06IHN0cmluZykgPT4gaXRlbS5pbmNsdWRlcygnLXRoZW1lJykpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGVtZUNsYXNzZXNUb1JlbW92ZSAmJiB0aGVtZUNsYXNzZXNUb1JlbW92ZS5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICBfb3ZlcmxheS5yZW1vdmUodGhlbWVDbGFzc2VzVG9SZW1vdmUpO1xyXG5cclxuICAgICAgICBfb3ZlcmxheS5yZW1vdmUoJ2FsdGVybmF0aXZlLWxheW91dCcpO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgnY2xhc3MnKTtcclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUpe1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQodGhlbWUpO1xyXG4gICAgICAgICAgICBfb3ZlcmxheS5hZGQodGhlbWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5VbmlmaWNhclRvcGJhcilcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdhbHRlcm5hdGl2ZS1sYXlvdXQnKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5fcGxhdGFmb3JtLk1lbnVNaW4pXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbWVudS1taW4nKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5fcGxhdGFmb3JtLk1vZG9QcmltZSlcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdtb2RvLXByaW1lJyk7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgndXgnICsgKHRoaXMuX3BsYXRhZm9ybS5Db25maWcudXggPyB0aGlzLl9wbGF0YWZvcm0uQ29uZmlnLnV4IDogMikpO1xyXG5cclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdhdCcsIHRoZW1lKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYXQnLCB0aGVtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFRoZW1lQnlMb2dnZWRDb21wYW55KCkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdpbmZvLXRoZW1lLnNldFRoZW1lQnlMb2dnZWRDb21wYW55JywgdGhpcy5fc2Vzc2lvbi5UZW1hSWQpO1xyXG4gICAgICAgIHRoaXMuc2V0VGhlbWUodGhpcy5fc2Vzc2lvbi5UZW1hSWQgPiAwID8gYF8ke3RoaXMuX3Nlc3Npb24uVGVtYUlkfS10aGVtZWAgOiAnZGVmYXVsdC10aGVtZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRNZW51TWluKHZhbHVlOiBib29sZWFuID0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5fcGxhdGFmb3JtLk1lbnVNaW4gPSB2YWx1ZSA9PSBudWxsID8gIXRoaXMuX3BsYXRhZm9ybS5NZW51TWluIDogdmFsdWU7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbWVudS1taW4nKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy5fcGxhdGFmb3JtLk1lbnVNaW4pXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbWVudS1taW4nKTtcclxuXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbW0nLCB0aGlzLl9wbGF0YWZvcm0uTWVudU1pbi50b1N0cmluZygpKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbW0nLCB0aGlzLl9wbGF0YWZvcm0uTWVudU1pbi50b1N0cmluZygpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TW9kZVByaW1lKHByaW1lOiBib29sZWFuID0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5fcGxhdGFmb3JtLk1vZG9QcmltZSA9IHByaW1lID09IG51bGwgPyAhdGhpcy5fcGxhdGFmb3JtLk1vZG9QcmltZSA6IHByaW1lO1xyXG4gICAgICAgIGxldCBfb3ZlcmxheSA9IHRoaXMuX292ZXJsYXkuZ2V0Q29udGFpbmVyRWxlbWVudCgpLmNsYXNzTGlzdDtcclxuICAgICAgICBsZXQgdGhlbWVzQ2xhc3NUb1JlbW92ZSA9IEFycmF5LmZyb20oX292ZXJsYXkpLmZpbHRlcihpdGVtID0+IGl0ZW0uaW5jbHVkZXMoJy10aGVtZScpKTtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdtb2RvLXByaW1lJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUpe1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21vZG8tcHJpbWUnKTtcclxuICAgICAgICAgICAgaWYgKHRoZW1lc0NsYXNzVG9SZW1vdmUgJiYgdGhlbWVzQ2xhc3NUb1JlbW92ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCB0aGVtZVRvUmVtb3ZlIG9mIHRoZW1lc0NsYXNzVG9SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICBfb3ZlcmxheS5yZW1vdmUodGhlbWVUb1JlbW92ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKHRoZW1lVG9SZW1vdmUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdtcCcsIHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21wJywgdGhpcy5fcGxhdGFmb3JtLk1vZG9QcmltZS50b1N0cmluZygpKTtcclxuICAgIH1cclxufSJdfQ==
@@ -102,4 +102,4 @@ if (false) {
102
102
  */
103
103
  InfoTranslateService.prototype._plataforma;
104
104
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovZGV2L0luZm8gVXRpbGl0aWVzL0luZm8gTGlicmFyeSAtIEFuZ3VsYXIvcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy8iLCJzb3VyY2VzIjpbInNlcnZpY2UvdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQUt2RCxNQUFNLE9BQU8sb0JBQW9COzs7OztJQVE3QixZQUFpRCxhQUFrQixFQUFVLFdBQThCO1FBQTFELGtCQUFhLEdBQWIsYUFBYSxDQUFLO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBTm5HLFNBQUksR0FBVyxhQUFhLENBQUM7O1lBUTdCLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUMsSUFBSSxJQUFJLElBQUksSUFBSTtZQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDOztZQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDOzs7O0lBVkQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDOzs7OztJQVVNLEdBQUcsQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7OztJQUVNLFNBQVMsQ0FBQyxHQUFXOztZQUNwQixXQUFXLEdBQUcsR0FBRztRQUVyQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekksV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvSixJQUFJLE9BQU8sV0FBVyxJQUFJLFFBQVE7Z0JBQzlCLFdBQVcsR0FBRyxHQUFHLENBQUM7U0FDekI7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDOzs7O0lBRU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQ3ZGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ3hEO0lBQ0wsQ0FBQzs7Ozs7SUFFTSxPQUFPLENBQUMsR0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7O1lBNUNKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7Ozs0Q0FTZ0IsTUFBTSxTQUFDLG1CQUFtQjtZQWRsQyxpQkFBaUI7Ozs7Ozs7O0lBT3RCLDRDQUE2Qjs7Ozs7SUFDN0Isb0NBQXFDOzs7OztJQU16Qiw2Q0FBdUQ7Ozs7O0lBQUUsMkNBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSW5mb1BsYXRmb3JtTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9wbGF0Zm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IERJQ1RJT05BUklFU19DT05GSUcgfSBmcm9tIFwiLi4vZ2xvYmFsLWNvbmZpZ1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvVHJhbnNsYXRlU2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9jdXJyZW50TGFuZzogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfa2V5OiBzdHJpbmcgPSAnY3VycmVudExhbmcnO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgY3VycmVudExhbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRMYW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRElDVElPTkFSSUVTX0NPTkZJRykgcHJpdmF0ZSBfdHJhbnNsYXRpb25zOiBhbnksIHByaXZhdGUgX3BsYXRhZm9ybWE6IEluZm9QbGF0Zm9ybU1vZGVsKSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLl9rZXkpO1xyXG4gICAgICAgIGlmIChsYW5nID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRMYW5nID0gJ3B0LWJyJztcclxuICAgICAgICBlbHNlIHRoaXMuX2N1cnJlbnRMYW5nID0gbGFuZztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0KGxhbmc6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2N1cnJlbnRMYW5nID0gbGFuZztcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLl9rZXksIGxhbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0cmFuc2xhdGUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCB0cmFuc2xhdGlvbiA9IGtleTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXSAmJiB0aGlzLl90cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ10uVmFsdWVzICYmIHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXS5WYWx1ZXNba2V5XSkge1xyXG4gICAgICAgICAgICB0cmFuc2xhdGlvbiA9ICh0aGlzLl90cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ10uVmFsdWVzW3RoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLmRpY3Rpb25hcnldIHx8IHt9KVtrZXldIHx8IHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXS5WYWx1ZXNba2V5XTtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB0cmFuc2xhdGlvbiAhPSAnc3RyaW5nJylcclxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uID0ga2V5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRDYWxlbmRhcigpOiBhbnkge1xyXG4gICAgICAgIGlmICh0aGlzLl90cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ10gJiYgdGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddLkNhbGVuZGFyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ10uQ2FsZW5kYXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpbnN0YW50KGtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlKGtleSk7XHJcbiAgICB9XHJcbn1cclxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovaW5mby9kZXYvdXRpbGl0aWVzL2luZm8gbGlicmFyeSBhMTAvSW5mbyBMaWJyYXJ5IC0gQW5ndWxhci9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjLyIsInNvdXJjZXMiOlsic2VydmljZS90cmFuc2xhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBS3ZELE1BQU0sT0FBTyxvQkFBb0I7Ozs7O0lBUTdCLFlBQWlELGFBQWtCLEVBQVUsV0FBOEI7UUFBMUQsa0JBQWEsR0FBYixhQUFhLENBQUs7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFObkcsU0FBSSxHQUFXLGFBQWEsQ0FBQzs7WUFRN0IsSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMxQyxJQUFJLElBQUksSUFBSSxJQUFJO1lBQ1osSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7O1lBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7Ozs7SUFWRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBVU0sR0FBRyxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7Ozs7O0lBRU0sU0FBUyxDQUFDLEdBQVc7O1lBQ3BCLFdBQVcsR0FBRyxHQUFHO1FBRXJCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6SSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9KLElBQUksT0FBTyxXQUFXLElBQUksUUFBUTtnQkFDOUIsV0FBVyxHQUFHLEdBQUcsQ0FBQztTQUN6QjtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7Ozs7SUFFTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDdkYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDeEQ7SUFDTCxDQUFDOzs7OztJQUVNLE9BQU8sQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7WUE1Q0osVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7OzRDQVNnQixNQUFNLFNBQUMsbUJBQW1CO1lBZGxDLGlCQUFpQjs7Ozs7Ozs7SUFPdEIsNENBQTZCOzs7OztJQUM3QixvQ0FBcUM7Ozs7O0lBTXpCLDZDQUF1RDs7Ozs7SUFBRSwyQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBJbmZvUGxhdGZvcm1Nb2RlbCB9IGZyb20gJy4uL21vZGVsL3BsYXRmb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgRElDVElPTkFSSUVTX0NPTkZJRyB9IGZyb20gXCIuLi9nbG9iYWwtY29uZmlnXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9UcmFuc2xhdGVTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX2N1cnJlbnRMYW5nOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9rZXk6IHN0cmluZyA9ICdjdXJyZW50TGFuZyc7XHJcblxyXG4gICAgcHVibGljIGdldCBjdXJyZW50TGFuZygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudExhbmc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChESUNUSU9OQVJJRVNfQ09ORklHKSBwcml2YXRlIF90cmFuc2xhdGlvbnM6IGFueSwgcHJpdmF0ZSBfcGxhdGFmb3JtYTogSW5mb1BsYXRmb3JtTW9kZWwpIHtcclxuICAgICAgICBcclxuICAgICAgICBsZXQgbGFuZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuX2tleSk7XHJcbiAgICAgICAgaWYgKGxhbmcgPT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5fY3VycmVudExhbmcgPSAncHQtYnInO1xyXG4gICAgICAgIGVsc2UgdGhpcy5fY3VycmVudExhbmcgPSBsYW5nO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQobGFuZzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY3VycmVudExhbmcgPSBsYW5nO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuX2tleSwgbGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRyYW5zbGF0ZShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHRyYW5zbGF0aW9uID0ga2V5O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddICYmIHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXS5WYWx1ZXMgJiYgdGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddLlZhbHVlc1trZXldKSB7XHJcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uID0gKHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXS5WYWx1ZXNbdGhpcy5fcGxhdGFmb3JtYS5Db25maWcuZGljdGlvbmFyeV0gfHwge30pW2tleV0gfHwgdGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddLlZhbHVlc1trZXldO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHRyYW5zbGF0aW9uICE9ICdzdHJpbmcnKVxyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb24gPSBrZXk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJhbnNsYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldENhbGVuZGFyKCk6IGFueSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXSAmJiB0aGlzLl90cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ10uQ2FsZW5kYXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXS5DYWxlbmRhcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGluc3RhbnQoa2V5OiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUoa2V5KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -253,4 +253,4 @@ export class Utilities {
253
253
  Utilities.decorators = [
254
254
  { type: Injectable }
255
255
  ];
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IkQ6L2Rldi9JbmZvIFV0aWxpdGllcy9JbmZvIExpYnJhcnkgLSBBbmd1bGFyL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvIiwic291cmNlcyI6WyJ1dGlscy91dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBR3RDLE1BQU0sT0FBTyxTQUFTOzs7O0lBQ2xCLE9BQU87UUFDSCxPQUFPLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7O1FBQUUsVUFBUyxDQUFDOztrQkFDL0QsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQzs7a0JBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBRTtZQUN2RSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOzs7O0lBRUQsWUFBWTtRQUNSLE9BQU8sc0NBQXNDLENBQUM7SUFDbEQsQ0FBQzs7Ozs7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNSLE9BQU8sQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLCtFQUErRSxDQUFDLEtBQUssSUFBSSxDQUFDO0lBQ3hILENBQUM7Ozs7O0lBRUQsbUJBQW1CLENBQUMsTUFBTTs7WUFDbEIsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDOztZQUNsQyxTQUFTLEdBQUcsWUFBWSxDQUFDLE1BQU07O1lBQy9CLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDckMsS0FB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LFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIENyeXB0b0pTIGZyb20gJ2NyeXB0by1qcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBVdGlsaXRpZXMge1xyXG4gICAgZ2V0R3VpZCgpIDogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PT0gJ3gnID8gciA6ICggciAmIDB4MyB8IDB4OCApO1xyXG4gICAgICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGdldEd1aWRFbXB0eSgpIDogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNHdWlkKHZhbHVlKSA6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXCJcIiArIHZhbHVlKS5tYXRjaCgnXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQnKSAhPT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBiYXNlNjRUb0FycmF5QnVmZmVyKGJhc2U2NCk6IGFueSB7XHJcbiAgICAgICAgdmFyIGJpbmFyeVN0cmluZyA9IHdpbmRvdy5hdG9iKGJhc2U2NCk7XHJcbiAgICAgICAgdmFyIGJpbmFyeUxlbiA9IGJpbmFyeVN0cmluZy5sZW5ndGg7XHJcbiAgICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYmluYXJ5TGVuKTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJpbmFyeUxlbjsgaSsrKSB7XHJcbiAgICAgICAgICAgdmFyIGFzY2lpID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgICAgYnl0ZXNbaV0gPSBhc2NpaTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGJ5dGVzO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5PckRvd25sb2FkKHRpdGxlLCBibG9iKSB7XHJcbiAgICAgICAgbGV0IGZpbGVVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICBpZiAodGl0bGUuaW5kZXhPZihcInBkZlwiKSA+IC0xKVxyXG4gICAgICAgICAgICB3aW5kb3cub3BlbihmaWxlVVJMLCB0aXRsZSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBlbGVtZW50QTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJykgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGVsZW1lbnRBLmhyZWYgPSBmaWxlVVJMO1xyXG4gICAgICAgICAgICBlbGVtZW50QS5kb3dubG9hZCA9IHRpdGxlO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnRBKTtcclxuICAgICAgICAgICAgZWxlbWVudEEuY2xpY2soKTsgICAgICAgIFxyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnRBKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlckFjZW50b3ModmFsOiBzdHJpbmcpIDogc3RyaW5nIHtcclxuICAgICAgICBpZiAodmFsID09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB2YXIgbm9ybWFsaXplRnVuY3Rpb24gPSBTdHJpbmcucHJvdG90eXBlLm5vcm1hbGl6ZSA/IChzdHIpID0+IHN0ci5ub3JtYWxpemUoJ05GRCcpIDogKHN0cikgPT4gc3RyO1xyXG4gICAgICAgIHJldHVybiBub3JtYWxpemVGdW5jdGlvbih2YWwpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Rm9ybWF0b3MoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6IFwiRVhDRUxcIiwgTm9tZTogXCJFeGNlbFwiLCBNaW1lVHlwZTogXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWxcIiwgRXh0ZW5zYW86IFwieGxzXCIgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIlBERlwiLCBOb21lOiBcIlBERlwiLCBNaW1lVHlwZTogXCJhcHBsaWNhdGlvbi9wZGZcIiwgRXh0ZW5zYW86IFwicGRmXCIgfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZvcm1hdG9zRXhjZWwoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6ICdQUCcsIE5vbWU6ICdFeGNlbCBQb3J0dWd1w6pzIGNvbSBTZXBhcmFkb3IgRGVjaW1hbCBbLl0nIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogJ1BWJywgTm9tZTogJ0V4Y2VsIFBvcnR1Z3XDqnMgY29tIFNlcGFyYWRvciBEZWNpbWFsIFssXScgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiAnSVAnLCBOb21lOiAnRXhjZWwgSW5nbMOqcyBjb20gU2VwYXJhZG9yIERlY2ltYWwgWy5dJyB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6ICdJVicsIE5vbWU6ICdFeGNlbCBJbmdsw6pzIGNvbSBTZXBhcmFkb3IgRGVjaW1hbCBbLF0nIH0gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGF0dXMoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6IFwiQVwiLCBOb21lOiBcIkF0aXZvXCIgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIlBcIiwgTm9tZTogXCJQZW5kZW50ZVwiIH0gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGF0dXNDb21wbGV0bygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogXCJDXCIsIE5vbWU6IFwiQ2FkYXN0cmFkb1wiLCBTZWxlY2lvbmFkbzogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiRlwiLCBOb21lOiBcIkZlaXRvXCIsIFNlbGVjaW9uYWRvOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiT1wiLCBOb21lOiBcIkNvbmZlcmlkb1wiLCBTZWxlY2lvbmFkbzogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiUlwiLCBOb21lOiBcIlJlamVpdGFkb1wiLCBTZWxlY2lvbmFkbzogZmFsc2UgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIklcIiwgTm9tZTogXCJJbmF0aXZvXCIsIFNlbGVjaW9uYWRvOiBmYWxzZSB9IF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RhdHVzUHJvY2Vzc2FtZW50bygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogXCJBXCIsIE5vbWU6IFwiQWd1YXJkYW5kb1Byb2Nlc3NhbWVudG9cIiB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiRVwiLCBOb21lOiBcIkVtUHJvY2Vzc2FtZW50b1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJQXCIsIE5vbWU6IFwiUHJvY2Vzc2Fkb1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJJXCIsIE5vbWU6IFwiSW5hdGl2b1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJaXCIsIE5vbWU6IFwiRXJyb1wiIH0gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRGb3JtYXRvSWRpb21hcygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogXCJlblwiLCBOb21lOiBcIkVuZ2xpc2hcIiB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwicHQtQlJcIiwgTm9tZTogXCJQb3J0dWd1w6pzXCIgfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEdlbmVyb3MoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6ICdNJywgTm9tZTogJ01hc2N1bGlubycgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiAnRicsIE5vbWU6ICdGZW1pbmlubycgfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRpcG9zRXZpZGVuY2lhKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gWyB7IElkOiAxLCBOb21lOiAnVGVsZWZvbmUnfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiAyLCBOb21lOiAnRW1haWwnfSxcclxuICAgICAgICAgICAgICAgICB7SWQ6IDMsIE5vbWU6ICdEb2N1bWVudG8nfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE9yZGVucygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsge0lkOiBcIm5vbWUtYXNjXCIsIE5vbWU6IFwiTm9tZUNyZXNjZW50ZVwifSxcclxuICAgICAgICAgICAgICAgICB7SWQ6IFwibm9tZS1kZXNjXCIsIE5vbWU6IFwiTm9tZURlY3Jlc2NlbnRlXCJ9LFxyXG4gICAgICAgICAgICAgICAgIHtJZDogXCJ2YWxvci1hc2NcIiwgTm9tZTogXCJWYWxvckNyZXNjZW50ZVwifSxcclxuICAgICAgICAgICAgICAgICB7SWQ6IFwidmFsb3ItZGVzY1wiLCBOb21lOiBcIlZhbG9yRGVjcmVzY2VudGVcIn0gXTtcclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGFyRW1haWwoZm9ybSwgdmFsdWUsIGNvbnRyb2wpIHtcclxuICAgICAgICBpZiAoIXZhbHVlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IHBhdHRlcm4gPSAvXihbYS16QS1aMC05X1xcLVxcLl0rKUAoW2EtekEtWjAtOV9cXC1cXC5dKylcXC4oW2EtekEtWl17Miw1fSkkLztcclxuICAgICAgICBsZXQgZW1haWxzOiBzdHJpbmdbXSA9IHZhbHVlLnNwbGl0KCc7Jyk7XHJcbiAgICAgICAgbGV0IGludmFsaWRvID0gZW1haWxzLnNvbWUoZW1haWwgPT4gZW1haWwgJiYgIXBhdHRlcm4udGVzdChlbWFpbC50cmltKCkpKTtcclxuXHJcbiAgICAgICAgaWYgKGludmFsaWRvKVxyXG4gICAgICAgICAgICBmb3JtLmZvcm0uY29udHJvbHNbY29udHJvbF0uc2V0RXJyb3JzKCB7ICdpbnZhbGlkJzogdHJ1ZSB9ICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TG9jYWxTdG9yYWdlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0aGlzLmNyaXB0b2dyYWZhcih2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldExvY2FsU3RvcmFnZShrZXk6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgdmFyIGRhdGEgPSB0aGlzLmRlc2NyaXB0b2dyYWZhcihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpKTtcclxuICAgICAgICBpZiAoZGF0YSA9PSBudWxsIHx8IGRhdGEgPT0gJycpIHJldHVybiBudWxsO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGlzSUUoKSB7XHJcbiAgICAgICAgdmFyIHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJBZ2VudC5pbmRleE9mKFwiTVNJRSBcIikgPiAtMSB8fCB1c2VyQWdlbnQuaW5kZXhPZihcIlRyaWRlbnQvXCIpID4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0b3JuYVRleHRvKHRleHRvKSB7XHJcbiAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIilcclxuICAgICAgICBkaXYuaW5uZXJIVE1MID0gdGV4dG87XHJcbiAgICAgICAgcmV0dXJuIGRpdi5pbm5lclRleHQgfHwgZGl2LnRleHRDb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGNyaXB0b2dyYWZhcih0ZXh0bykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZW5jcnlwdCh0ZXh0bywgXCJHS3hMdFFnMmF0XCIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGRlc2NyaXB0b2dyYWZhcih0ZXh0bykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZGVjcnlwdCh0ZXh0bywgXCJHS3hMdFFnMmF0XCIpLnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IkQ6L2luZm8vZGV2L3V0aWxpdGllcy9pbmZvIGxpYnJhcnkgYTEwL0luZm8gTGlicmFyeSAtIEFuZ3VsYXIvcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy8iLCJzb3VyY2VzIjpbInV0aWxzL3V0aWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFHdEMsTUFBTSxPQUFPLFNBQVM7Ozs7SUFDbEIsT0FBTztRQUNILE9BQU8sc0NBQXNDLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7UUFBRSxVQUFTLENBQUM7O2tCQUMvRCxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDOztrQkFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFFO1lBQ3ZFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7SUFFRCxZQUFZO1FBQ1IsT0FBTyxzQ0FBc0MsQ0FBQztJQUNsRCxDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxLQUFLO1FBQ1IsT0FBTyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsK0VBQStFLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDeEgsQ0FBQzs7Ozs7SUFFRCxtQkFBbUIsQ0FBQyxNQUFNOztZQUNsQixZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7O1lBQ2xDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTTs7WUFDL0IsS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLFNB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SUFDTCxDQUFDOzs7WUF6SkosVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFV0aWxpdGllcyB7XHJcbiAgICBnZXRHdWlkKCkgOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uKGMpIHtcclxuICAgICAgICAgICAgY29uc3QgciA9IE1hdGgucmFuZG9tKCkgKiAxNiB8IDAsIHYgPSBjID09PSAneCcgPyByIDogKCByICYgMHgzIHwgMHg4ICk7XHJcbiAgICAgICAgICAgIHJldHVybiB2LnRvU3RyaW5nKDE2KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZ2V0R3VpZEVtcHR5KCkgOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJztcclxuICAgIH1cclxuXHJcbiAgICBpc0d1aWQodmFsdWUpIDogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcIlwiICsgdmFsdWUpLm1hdGNoKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpICE9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGJhc2U2NFRvQXJyYXlCdWZmZXIoYmFzZTY0KTogYW55IHtcclxuICAgICAgICB2YXIgYmluYXJ5U3RyaW5nID0gd2luZG93LmF0b2IoYmFzZTY0KTtcclxuICAgICAgICB2YXIgYmluYXJ5TGVuID0gYmluYXJ5U3RyaW5nLmxlbmd0aDtcclxuICAgICAgICB2YXIgYnl0ZXMgPSBuZXcgVWludDhBcnJheShiaW5hcnlMZW4pO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmluYXJ5TGVuOyBpKyspIHtcclxuICAgICAgICAgICB2YXIgYXNjaWkgPSBiaW5hcnlTdHJpbmcuY2hhckNvZGVBdChpKTtcclxuICAgICAgICAgICBieXRlc1tpXSA9IGFzY2lpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnl0ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgb3Blbk9yRG93bmxvYWQodGl0bGUsIGJsb2IpIHtcclxuICAgICAgICBsZXQgZmlsZVVSTCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIGlmICh0aXRsZS5pbmRleE9mKFwicGRmXCIpID4gLTEpXHJcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuKGZpbGVVUkwsIHRpdGxlKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGVsZW1lbnRBOiBIVE1MQW5jaG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcclxuICAgICAgICAgICAgZWxlbWVudEEuaHJlZiA9IGZpbGVVUkw7XHJcbiAgICAgICAgICAgIGVsZW1lbnRBLmRvd25sb2FkID0gdGl0bGU7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudEEpO1xyXG4gICAgICAgICAgICBlbGVtZW50QS5jbGljaygpOyAgICAgICAgXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudEEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVyQWNlbnRvcyh2YWw6IHN0cmluZykgOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh2YWwgPT0gbnVsbClcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIHZhciBub3JtYWxpemVGdW5jdGlvbiA9IFN0cmluZy5wcm90b3R5cGUubm9ybWFsaXplID8gKHN0cikgPT4gc3RyLm5vcm1hbGl6ZSgnTkZEJykgOiAoc3RyKSA9PiBzdHI7XHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUZ1bmN0aW9uKHZhbCkucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIilcclxuICAgIH1cclxuXHJcbiAgICBnZXRGb3JtYXRvcygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogXCJFWENFTFwiLCBOb21lOiBcIkV4Y2VsXCIsIE1pbWVUeXBlOiBcImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbFwiLCBFeHRlbnNhbzogXCJ4bHNcIiB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiUERGXCIsIE5vbWU6IFwiUERGXCIsIE1pbWVUeXBlOiBcImFwcGxpY2F0aW9uL3BkZlwiLCBFeHRlbnNhbzogXCJwZGZcIiB9IF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Rm9ybWF0b3NFeGNlbCgpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogJ1BQJywgTm9tZTogJ0V4Y2VsIFBvcnR1Z3XDqnMgY29tIFNlcGFyYWRvciBEZWNpbWFsIFsuXScgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiAnUFYnLCBOb21lOiAnRXhjZWwgUG9ydHVndcOqcyBjb20gU2VwYXJhZG9yIERlY2ltYWwgWyxdJyB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6ICdJUCcsIE5vbWU6ICdFeGNlbCBJbmdsw6pzIGNvbSBTZXBhcmFkb3IgRGVjaW1hbCBbLl0nIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogJ0lWJywgTm9tZTogJ0V4Y2VsIEluZ2zDqnMgY29tIFNlcGFyYWRvciBEZWNpbWFsIFssXScgfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN0YXR1cygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogXCJBXCIsIE5vbWU6IFwiQXRpdm9cIiB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiUFwiLCBOb21lOiBcIlBlbmRlbnRlXCIgfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN0YXR1c0NvbXBsZXRvKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gWyB7IElkOiBcIkNcIiwgTm9tZTogXCJDYWRhc3RyYWRvXCIsIFNlbGVjaW9uYWRvOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJGXCIsIE5vbWU6IFwiRmVpdG9cIiwgU2VsZWNpb25hZG86IGZhbHNlIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJPXCIsIE5vbWU6IFwiQ29uZmVyaWRvXCIsIFNlbGVjaW9uYWRvOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJSXCIsIE5vbWU6IFwiUmVqZWl0YWRvXCIsIFNlbGVjaW9uYWRvOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiSVwiLCBOb21lOiBcIkluYXRpdm9cIiwgU2VsZWNpb25hZG86IGZhbHNlIH0gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGF0dXNQcm9jZXNzYW1lbnRvKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gWyB7IElkOiBcIkFcIiwgTm9tZTogXCJBZ3VhcmRhbmRvUHJvY2Vzc2FtZW50b1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJFXCIsIE5vbWU6IFwiRW1Qcm9jZXNzYW1lbnRvXCIgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIlBcIiwgTm9tZTogXCJQcm9jZXNzYWRvXCIgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIklcIiwgTm9tZTogXCJJbmF0aXZvXCIgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIlpcIiwgTm9tZTogXCJFcnJvXCIgfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZvcm1hdG9JZGlvbWFzKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gWyB7IElkOiBcImVuXCIsIE5vbWU6IFwiRW5nbGlzaFwiIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJwdC1CUlwiLCBOb21lOiBcIlBvcnR1Z3XDqnNcIiB9IF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0R2VuZXJvcygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogJ00nLCBOb21lOiAnTWFzY3VsaW5vJyB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6ICdGJywgTm9tZTogJ0ZlbWluaW5vJyB9IF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VGlwb3NFdmlkZW5jaWEoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6IDEsIE5vbWU6ICdUZWxlZm9uZSd9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IDIsIE5vbWU6ICdFbWFpbCd9LFxyXG4gICAgICAgICAgICAgICAgIHtJZDogMywgTm9tZTogJ0RvY3VtZW50byd9IF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0T3JkZW5zKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gWyB7SWQ6IFwibm9tZS1hc2NcIiwgTm9tZTogXCJOb21lQ3Jlc2NlbnRlXCJ9LFxyXG4gICAgICAgICAgICAgICAgIHtJZDogXCJub21lLWRlc2NcIiwgTm9tZTogXCJOb21lRGVjcmVzY2VudGVcIn0sXHJcbiAgICAgICAgICAgICAgICAge0lkOiBcInZhbG9yLWFzY1wiLCBOb21lOiBcIlZhbG9yQ3Jlc2NlbnRlXCJ9LFxyXG4gICAgICAgICAgICAgICAgIHtJZDogXCJ2YWxvci1kZXNjXCIsIE5vbWU6IFwiVmFsb3JEZWNyZXNjZW50ZVwifSBdO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXJFbWFpbChmb3JtLCB2YWx1ZSwgY29udHJvbCkge1xyXG4gICAgICAgIGlmICghdmFsdWUpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBcclxuICAgICAgICBsZXQgcGF0dGVybiA9IC9eKFthLXpBLVowLTlfXFwtXFwuXSspQChbYS16QS1aMC05X1xcLVxcLl0rKVxcLihbYS16QS1aXXsyLDV9KSQvO1xyXG4gICAgICAgIGxldCBlbWFpbHM6IHN0cmluZ1tdID0gdmFsdWUuc3BsaXQoJzsnKTtcclxuICAgICAgICBsZXQgaW52YWxpZG8gPSBlbWFpbHMuc29tZShlbWFpbCA9PiBlbWFpbCAmJiAhcGF0dGVybi50ZXN0KGVtYWlsLnRyaW0oKSkpO1xyXG5cclxuICAgICAgICBpZiAoaW52YWxpZG8pXHJcbiAgICAgICAgICAgIGZvcm0uZm9ybS5jb250cm9sc1tjb250cm9sXS5zZXRFcnJvcnMoIHsgJ2ludmFsaWQnOiB0cnVlIH0gKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRMb2NhbFN0b3JhZ2Uoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHRoaXMuY3JpcHRvZ3JhZmFyKHZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TG9jYWxTdG9yYWdlKGtleTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICB2YXIgZGF0YSA9IHRoaXMuZGVzY3JpcHRvZ3JhZmFyKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpO1xyXG4gICAgICAgIGlmIChkYXRhID09IG51bGwgfHwgZGF0YSA9PSAnJykgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgaXNJRSgpIHtcclxuICAgICAgICB2YXIgdXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudDtcclxuICAgICAgICByZXR1cm4gdXNlckFnZW50LmluZGV4T2YoXCJNU0lFIFwiKSA+IC0xIHx8IHVzZXJBZ2VudC5pbmRleE9mKFwiVHJpZGVudC9cIikgPiAtMTtcclxuICAgIH1cclxuXHJcbiAgICByZXRvcm5hVGV4dG8odGV4dG8pIHtcclxuICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKVxyXG4gICAgICAgIGRpdi5pbm5lckhUTUwgPSB0ZXh0bztcclxuICAgICAgICByZXR1cm4gZGl2LmlubmVyVGV4dCB8fCBkaXYudGV4dENvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgY3JpcHRvZ3JhZmFyKHRleHRvKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIENyeXB0b0pTLkFFUy5lbmNyeXB0KHRleHRvLCBcIkdLeEx0UWcyYXRcIikudG9TdHJpbmcoKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgZGVzY3JpcHRvZ3JhZmFyKHRleHRvKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIENyeXB0b0pTLkFFUy5kZWNyeXB0KHRleHRvLCBcIkdLeEx0UWcyYXRcIikudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
@@ -4040,6 +4040,7 @@ class InfoGridComponent {
4040
4040
  this.paged = false;
4041
4041
  this.size = 15;
4042
4042
  this.autorefresh = 0;
4043
+ this.enabledcols = true;
4043
4044
  this.enablednew = true;
4044
4045
  this.enablededit = true;
4045
4046
  this.enableddelete = true;
@@ -4084,12 +4085,15 @@ class InfoGridComponent {
4084
4085
  this.icons = [];
4085
4086
  this.colunasItens = [];
4086
4087
  this.colunasHeaders = [];
4088
+ this.colunasPadraoHeaders = [];
4087
4089
  this.colunasType = [];
4088
4090
  this.colunasWidth = [];
4089
4091
  this.colunasTranslate = [];
4090
4092
  this.colunasHtml = [];
4091
4093
  this.currentUrl = null;
4092
4094
  this.url = null;
4095
+ this.chaveStorage = 'cols';
4096
+ this.identificador = null;
4093
4097
  this.parentIdUrlChange = new EventEmitter();
4094
4098
  this.parentIdUrlValue = null;
4095
4099
  this._cols = '';
@@ -4152,6 +4156,7 @@ class InfoGridComponent {
4152
4156
  * @return {?}
4153
4157
  */
4154
4158
  ngAfterViewInit() {
4159
+ this.identificador = this.api + '_' + this.method;
4155
4160
  this.showPagebar = this.pagetitle != '' || this.prefixtitle != '';
4156
4161
  if (!this.fullarea && this._platform.Config.ux <= 2)
4157
4162
  this.fullarea = this.showPagebar;
@@ -4197,8 +4202,36 @@ class InfoGridComponent {
4197
4202
  if (this.cols == '')
4198
4203
  alert('Nenhuma coluna informada');
4199
4204
  if (this.cols != '') {
4205
+ /** @type {?} */
4206
+ let colunasOcultas = [];
4207
+ if (localStorage.getItem(this.chaveStorage) != null) {
4208
+ /** @type {?} */
4209
+ let dadosStorage = JSON.parse(localStorage.getItem(this.chaveStorage));
4210
+ if (dadosStorage.findIndex((/**
4211
+ * @param {?} c
4212
+ * @return {?}
4213
+ */
4214
+ c => c.Identificador == this.identificador)) > -1) {
4215
+ colunasOcultas = dadosStorage.find((/**
4216
+ * @param {?} c
4217
+ * @return {?}
4218
+ */
4219
+ c => c.Identificador == this.identificador)).Colunas;
4220
+ if (colunasOcultas.length > 0)
4221
+ colunasOcultas = colunasOcultas.filter((/**
4222
+ * @param {?} c
4223
+ * @return {?}
4224
+ */
4225
+ c => !c.Exibir)).map((/**
4226
+ * @param {?} c
4227
+ * @return {?}
4228
+ */
4229
+ c => c.Nome));
4230
+ }
4231
+ }
4200
4232
  this.colunasItens = [];
4201
4233
  this.colunasHeaders = [];
4234
+ this.colunasPadraoHeaders = [];
4202
4235
  this.colunasType = [];
4203
4236
  this.colunasWidth = [];
4204
4237
  this.colunasTranslate = [];
@@ -4251,12 +4284,15 @@ class InfoGridComponent {
4251
4284
  if (width.indexOf('%') < 0 && width.indexOf('px') < 0)
4252
4285
  width += 'px';
4253
4286
  }
4254
- this.colunasItens.push(column);
4255
- this.colunasHeaders.push(header);
4256
- this.colunasType.push(type == '' ? 'label' : type);
4257
- this.colunasWidth.push(width);
4258
- this.colunasTranslate.push(translate);
4259
- this.colunasHtml.push(html);
4287
+ if (colunasOcultas.indexOf(header) < 0) {
4288
+ this.colunasItens.push(column);
4289
+ this.colunasHeaders.push(header);
4290
+ this.colunasType.push(type == '' ? 'label' : type);
4291
+ this.colunasWidth.push(width);
4292
+ this.colunasTranslate.push(translate);
4293
+ this.colunasHtml.push(html);
4294
+ }
4295
+ this.colunasPadraoHeaders.push(header);
4260
4296
  }));
4261
4297
  if (this.colunasItens.length == 1 && this.colunasWidth.length == 1)
4262
4298
  this.colunasWidth[0] = '100%';
@@ -4593,6 +4629,35 @@ class InfoGridComponent {
4593
4629
  }
4594
4630
  }));
4595
4631
  }
4632
+ /**
4633
+ * @return {?}
4634
+ */
4635
+ customizeTable() {
4636
+ this._prop.set(InfoPageAction.Edit, {
4637
+ Identificador: this.identificador,
4638
+ Colunas: this.colunasPadraoHeaders,
4639
+ Chave: this.chaveStorage
4640
+ });
4641
+ this._prop.modalAction = InfoModalAction.None;
4642
+ /** @type {?} */
4643
+ let ref = this.modal.open(InfoGridModalComponent, {
4644
+ data: this._prop,
4645
+ disableClose: true,
4646
+ width: '500px'
4647
+ });
4648
+ ref.afterClosed().subscribe((/**
4649
+ * @param {?} r
4650
+ * @return {?}
4651
+ */
4652
+ (r) => {
4653
+ if (r == null)
4654
+ return;
4655
+ if (r.modalAction == InfoModalAction.Save) {
4656
+ this.setColumns();
4657
+ this.getData();
4658
+ }
4659
+ }));
4660
+ }
4596
4661
  /**
4597
4662
  * @return {?}
4598
4663
  */
@@ -4686,6 +4751,7 @@ class InfoGridComponent {
4686
4751
  * @return {?}
4687
4752
  */
4688
4753
  openModal(modalComponent = this.form, width = this.width) {
4754
+ this._prop.modalAction = InfoModalAction.None;
4689
4755
  /** @type {?} */
4690
4756
  let ref = this.modal.open(modalComponent, {
4691
4757
  data: this._prop,
@@ -4825,9 +4891,9 @@ class InfoGridComponent {
4825
4891
  InfoGridComponent.decorators = [
4826
4892
  { type: Component, args: [{
4827
4893
  selector: 'info-grid',
4828
- template: "<info-pagebar *ngIf=\"showPagebar\" icon=\"work\" [pagetitle]=\"pagebarTitle\" [description]=\"description\">\r\n <button mat-button type=\"button\" *ngIf=\"backurl != null && backurl != ''\" color=\"primary\" (click)=\"back()\">\r\n <mat-icon class=\"fs-20\">chevron_left</mat-icon>{{\"Voltar\" | translate}}\r\n </button>\r\n\r\n <ng-container *ngFor=\"let b of pagebarbuttons\">\r\n <button type=\"button\" mat-button color=\"primary\" (click)=\"b.modal == null ? navigateTo(b.url, false, null) : openCustomModal(b.modal, b.modalwidth, null)\">\r\n <mat-icon *ngIf=\"b.icon != 'chevron_right'\" class=\"fs-20\">{{ b.icon }}</mat-icon>\r\n {{ b.label | translate }}\r\n </button>\r\n </ng-container>\r\n\r\n <button mat-button type=\"button\" *ngIf=\"searchmodel != null && !enabledSearch\" color=\"primary\" (click)=\"enabledSearch = !enabledSearch\">\r\n <mat-icon class=\"fs-20\">search</mat-icon> {{ \"Pesquisar\" | translate}}\r\n </button>\r\n\r\n <button mat-button type=\"button\" *ngIf=\"searchmodel != null && enabledSearch\" color=\"primary\" (click)=\"enabledSearch = !enabledSearch\">\r\n <mat-icon class=\"fs-20\">search_off</mat-icon> {{ \"Ocultar\" | translate}}\r\n </button>\r\n\r\n <button mat-button type=\"button\" *ngIf=\"enablednew && hasPermissionNew\" color=\"primary\" (click)=\"add()\">\r\n <mat-icon class=\"fs-20\">add</mat-icon> {{ newlabel | translate}}\r\n </button>\r\n</info-pagebar>\r\n\r\n<div [ngClass]=\"{ 'table-full': fullarea }\">\r\n <div class=\"table-responsive white\">\r\n <div class=\"table-title grid-search\" [ngStyle]=\"{ 'padding': (enabledSearch ? 10 : 0) + 'px 20px' }\">\r\n <form autocomplete=\"off\" #formSearch=\"ngForm\" (ngSubmit)=\"search()\">\r\n <div *ngIf=\"enabledSearch\" class=\"search-container row\">\r\n <div class=\"col-md-{{(searchbuttons || []).length == 0 ? '10' : '9' }}\">\r\n <div class=\"row\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"col-md-{{(searchbuttons || []).length == 0 ? '2' : '3' }} align-right\" *ngIf=\"searchmodel != null\">\r\n <div class=\"search-buttons \">\r\n <ng-container *ngIf=\"searchonlyonebutton\">\r\n <button mat-button type=\"submit\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\">\r\n {{ 'Buscar' | translate }}\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!searchonlyonebutton\">\r\n <button mat-button type=\"button\" color=\"warn\" (click)=\"cancelSearch()\" *ngIf=\"enabledcancelsearch\">\r\n <mat-icon class=\"fs-20\">close</mat-icon>\r\n </button>\r\n <button mat-button type=\"submit\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\">\r\n <mat-icon class=\"fs-20\">search</mat-icon>\r\n </button>\r\n \r\n <ng-container *ngFor=\"let b of searchbuttons\">\r\n <button mat-button type=\"button\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\" (click)=\"b.method()\">\r\n <mat-icon *ngIf=\"b.icon\" class=\"fs-20\">{{b.icon | translate}}</mat-icon> {{b.label | translate}}\r\n </button>\r\n </ng-container>\r\n \r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <fieldset *ngIf=\"!showPagebar\"><legend [innerHTML]=\"pagebarTitle | translate\"></legend></fieldset>\r\n <section class=\"loading-bar\"><mat-progress-bar color=\"primary\" mode=\"indeterminate\" *ngIf=\"loading\"></mat-progress-bar></section>\r\n\r\n <div id=\"auto-refresh\" *ngIf=\"autorefresh > 0\">\r\n <i class=\"material-icons\" matTooltip=\"{{ 'AutoRefresh' | translate }} {{ autorefresh }} seg\" matTooltipPosition=\"left\">access_time</i>\r\n </div>\r\n\r\n <table class=\"table table-hover\" [ngStyle]=\"{ 'min-height.px': tableHeight }\" [ngClass]=\"{ 'loading': loading, 'clickaccess': enabledclickaccess }\" *ngIf=\"data != null\">\r\n <thead>\r\n <tr>\r\n <th style=\"width: 5%;\" *ngIf=\"enabledclassicons && data?.length > 0 && data[0]?.Icon != null\"></th>\r\n\r\n <ng-container *ngFor=\"let col of colunasHeaders; let i = index\">\r\n <th *ngIf=\"colunasWidth[i] == ''\" [class]=\"'col_' + col.toLowerCase()\" [ngClass]=\"{ 'text-center': colunasType[i] == 'check', 'align-right': colunasType[i].startsWith('n') }\">{{ col | translate }}</th>\r\n <th *ngIf=\"colunasWidth[i] != ''\" [ngStyle]=\"{ 'width': colunasWidth[i] }\" [ngClass]=\"{ 'text-center': colunasType[i] == 'check', 'align-right': colunasType[i].startsWith('n') }\">{{ col | translate }}</th>\r\n </ng-container>\r\n\r\n <th class=\"actions align-right buttons\" *ngIf=\"(templateurl != '') || (buttons != null && buttons.length > 0) || enableddetail || enabledview || ((disabledcol == '') && enablededit && hasPermissionEdit) || ((disabledcol == '') && enableddelete && hasPermissionDelete)\">\r\n <button mat-icon-button type=\"button\"[matTooltip]=\"newlabel | translate\" matTooltipPosition=\"left\" (click)=\"add()\" *ngIf=\"!showPagebar && enablednew && hasPermissionNew\">\r\n <mat-icon>add_circle_outline</mat-icon>\r\n </button>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"grid-content\">\r\n <tr *ngFor=\"let mod of data\" [ngClass]=\"{ 'default-color': !enabledclassicons }\" [class]=\"mod.Class\" (click)=\"access(mod)\">\r\n <td *ngIf=\"enabledclassicons && mod?.Icon != null\">\r\n <ng-container *ngFor=\"let icon of icons\">\r\n <i class=\"material-icons\" [matTooltip]=\"icon.Tooltip | translate\" *ngIf=\"icon.Name == mod.Icon\" [ngClass]=\"{ 'icone-secundario': icon.Principal == false }\">{{icon.Icon}}</i>\r\n </ng-container>\r\n </td>\r\n\r\n <ng-container *ngFor=\"let col of colunasItens; let i = index\">\r\n <td *ngIf=\"mod[col] == null || mod[col] == undefined\"></td>\r\n <ng-container [ngSwitch]=\"colunasType[i]\" *ngIf=\"mod[col] != null && mod[col] != undefined\">\r\n <ng-container *ngSwitchCase=\"'label'\">\r\n <td *ngIf=\"mod[col] !== true && mod[col] !== false && mod[col] !== 0 && mod[col] !== '0'\" >\r\n <label *ngIf=\"colunasHtml[i] === true\" [outerHTML]=\"(mod[col] | translate:colunasTranslate[i]) || ''\"></label>\r\n <label *ngIf=\"colunasHtml[i] === false\">{{ (mod[col] | translate:colunasHtml[i]) || '' }}</label>\r\n <p *ngIf=\"i == 0 && mod.Badge != null && mod.Badge != undefined\">{{ mod.Badge | translate:colunasTranslate[i] }}</p>\r\n </td>\r\n <td *ngIf=\"mod[col] === true\"><mat-icon>check_box</mat-icon></td>\r\n <td *ngIf=\"mod[col] === false\"><mat-icon>check_box_outline_blank</mat-icon></td>\r\n <td *ngIf=\"mod[col] === 0 || mod[col] === '0'\">0</td>\r\n </ng-container>\r\n\r\n <td nowrap *ngSwitchCase=\"'date'\" [innerHTML]=\"mod[col] | date:'shortDate'\"></td>\r\n <td nowrap *ngSwitchCase=\"'datetime'\">{{ mod[col] | date:'shortDate' }} {{ mod[col] | date:'mediumTime' }}</td>\r\n <td nowrap *ngSwitchCase=\"'monthyear'\" [innerHTML]=\"mod[col] | date:'MM/yyyy'\"></td>\r\n <td nowrap *ngSwitchCase=\"'n0'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.0-0' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n2'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.2-2' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n4'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.4-4' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n6'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.6-6' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n9'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.9-9' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n12'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.12-12' }}</td>\r\n \r\n <td *ngSwitchCase=\"'check'\" class=\"text-center\">\r\n <ng-container *ngIf=\"mod[col] != null && (mod[col] === true || mod[col] == 1 || mod[col].toLowerCase() == 's'); then checked; else unchecked\"></ng-container>\r\n <ng-template #checked><mat-icon>check_box</mat-icon></ng-template>\r\n <ng-template #unchecked><mat-icon>check_box_outline_blank</mat-icon></ng-template>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"enabledclickaccess\">\r\n <td class=\"td-actions clickaccess\">\r\n <button mat-icon-button type=\"button\" (click)=\"access(mod)\" *ngIf=\"enabledview\">\r\n <mat-icon>{{accessicon || 'arrow_forward'}}</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!enabledclickaccess\">\r\n <td class=\"td-actions\" *ngIf=\"(templateurl != '') || (buttons != null && buttons.length > 0) || (mod.Download != null) || enableddetail || (mod?.Info != null) || enabledview || ((disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit) || ((disabledcol == '' || mod[disabledcol] === true) && enableddelete && hasPermissionDelete)\">\r\n\r\n <a mat-icon-button href=\"{{ templateurl.replace('{id}', mod.Id) }}\" target=\"_blank\" [matTooltip]=\"'Abrir' | translate\" *ngIf=\"templateurl != ''\">\r\n <mat-icon>visibility</mat-icon>\r\n </a>\r\n\r\n <ng-container *ngFor=\"let b of buttons\">\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"b.label | translate\" (click)=\"b.modalComponent != null ? openCustomModal(b.modalComponent, b.widthModalComponent, mod) : b.api != null ? eventButton(mod, b.api, b.method, b.confirm) : navigateTo(b.navigateTo, b.passId, mod.Id)\" *ngIf=\"b.showOnlyClass == null || b.showOnlyClass == mod.Class\" [disabled]=\"b.disabledField && mod[b.disabledField] === true\">\r\n <mat-icon>{{b.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Download' | translate\" (click)=\"download(mod.Download)\" *ngIf=\"mod.Download != null\">\r\n <mat-icon>file_download</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Detalhe' | translate\" (click)=\"detail(mod)\" *ngIf=\"enableddetail\">\r\n <mat-icon>list</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Informacao' | translate\" (click)=\"info(mod?.Info)\" *ngIf=\"mod?.Info != null\" [disabled]=\"mod?.Info == ''\">\r\n <mat-icon>info</mat-icon>\r\n </button>\r\n \r\n <!-- <button mat-icon-button type=\"button\" [matTooltip]=\"'Visualizar' | translate\" (click)=\"view(mod)\" *ngIf=\"enabledview\">\r\n <mat-icon>visibility</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Editar' | translate\" (click)=\"edit(mod)\" *ngIf=\"(disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit\">\r\n <mat-icon>edit</mat-icon>\r\n </button> -->\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Excluir' | translate\" (click)=\"delete(mod)\" *ngIf=\"(disabledcol == '' || mod[disabledcol] === true) && enableddelete && hasPermissionDelete && !mod.HideDelete\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Acessar' | translate\" (click)=\"edit(mod)\" *ngIf=\"((disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit) || enabledview\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <span class=\"blank-table\" *ngIf=\"data != null && data.length == 0\">{{\"NenhumItemEncontrado\" | translate}}</span>\r\n\r\n <info-paginator #paginator [hidden]=\"!paged || (data != null && data.length == 0)\" [size]=\"size\" (change)=\"changePage($event)\" ></info-paginator>\r\n </div>\r\n</div>\r\n\r\n<div class=\"block\" *ngIf=\"loading\"></div>\r\n<info-alert [messages]=\"messages\"></info-alert>",
4894
+ template: "<info-pagebar *ngIf=\"showPagebar\" icon=\"work\" [pagetitle]=\"pagebarTitle\" [description]=\"description\">\r\n <button mat-button type=\"button\" *ngIf=\"backurl != null && backurl != ''\" color=\"primary\" (click)=\"back()\">\r\n <mat-icon class=\"fs-20\">chevron_left</mat-icon>{{\"Voltar\" | translate}}\r\n </button>\r\n\r\n <ng-container *ngFor=\"let b of pagebarbuttons\">\r\n <button type=\"button\" mat-button color=\"primary\" (click)=\"b.modal == null ? navigateTo(b.url, false, null) : openCustomModal(b.modal, b.modalwidth, null)\">\r\n <mat-icon *ngIf=\"b.icon != 'chevron_right'\" class=\"fs-20\">{{ b.icon }}</mat-icon>\r\n {{ b.label | translate }}\r\n </button>\r\n </ng-container>\r\n\r\n <button mat-button type=\"button\" *ngIf=\"searchmodel != null && !enabledSearch\" color=\"primary\" (click)=\"enabledSearch = !enabledSearch\">\r\n <mat-icon class=\"fs-20\">search</mat-icon> {{ \"Pesquisar\" | translate}}\r\n </button>\r\n\r\n <button mat-button type=\"button\" *ngIf=\"searchmodel != null && enabledSearch\" color=\"primary\" (click)=\"enabledSearch = !enabledSearch\">\r\n <mat-icon class=\"fs-20\">search_off</mat-icon> {{ \"Ocultar\" | translate}}\r\n </button>\r\n\r\n <button mat-button type=\"button\" *ngIf=\"enablednew && hasPermissionNew\" color=\"primary\" (click)=\"add()\">\r\n <mat-icon class=\"fs-20\">add</mat-icon> {{ newlabel | translate}}\r\n </button>\r\n</info-pagebar>\r\n\r\n<div [ngClass]=\"{ 'table-full': fullarea }\">\r\n <div class=\"table-responsive white\">\r\n <div class=\"table-title grid-search\" [ngStyle]=\"{ 'padding': (enabledSearch ? 10 : 0) + 'px 20px' }\">\r\n <form autocomplete=\"off\" #formSearch=\"ngForm\" (ngSubmit)=\"search()\">\r\n <div *ngIf=\"enabledSearch\" class=\"search-container row\">\r\n <div class=\"col-md-{{(searchbuttons || []).length == 0 ? '10' : '9' }}\">\r\n <div class=\"row\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"col-md-{{(searchbuttons || []).length == 0 ? '2' : '3' }} align-right\" *ngIf=\"searchmodel != null\">\r\n <div class=\"search-buttons \">\r\n <ng-container *ngIf=\"searchonlyonebutton\">\r\n <button mat-button type=\"submit\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\">\r\n {{ 'Buscar' | translate }}\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!searchonlyonebutton\">\r\n <button mat-button type=\"button\" color=\"warn\" (click)=\"cancelSearch()\" *ngIf=\"enabledcancelsearch\">\r\n <mat-icon class=\"fs-20\">close</mat-icon>\r\n </button>\r\n <button mat-button type=\"submit\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\">\r\n <mat-icon class=\"fs-20\">search</mat-icon>\r\n </button>\r\n \r\n <ng-container *ngFor=\"let b of searchbuttons\">\r\n <button mat-button type=\"button\" color=\"primary\" [disabled]=\"formSearch.invalid || loading\" (click)=\"b.method()\">\r\n <mat-icon *ngIf=\"b.icon\" class=\"fs-20\">{{b.icon | translate}}</mat-icon> {{b.label | translate}}\r\n </button>\r\n </ng-container>\r\n \r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <fieldset *ngIf=\"!showPagebar\"><legend [innerHTML]=\"pagebarTitle | translate\"></legend></fieldset>\r\n <section class=\"loading-bar\"><mat-progress-bar color=\"primary\" mode=\"indeterminate\" *ngIf=\"loading\"></mat-progress-bar></section>\r\n\r\n <div id=\"auto-refresh\" *ngIf=\"autorefresh > 0\">\r\n <i class=\"material-icons\" matTooltip=\"{{ 'AutoRefresh' | translate }} {{ autorefresh }} seg\" matTooltipPosition=\"left\">access_time</i>\r\n </div>\r\n\r\n <table class=\"table table-hover\" [ngStyle]=\"{ 'min-height.px': tableHeight }\" [ngClass]=\"{ 'loading': loading, 'clickaccess': enabledclickaccess }\" *ngIf=\"data != null\">\r\n <thead>\r\n <tr>\r\n <th style=\"width: 5%;\" *ngIf=\"enabledclassicons && data?.length > 0 && data[0]?.Icon != null\"></th>\r\n\r\n <ng-container *ngFor=\"let col of colunasHeaders; let i = index\">\r\n <th *ngIf=\"colunasWidth[i] == ''\" [class]=\"'col_' + col.toLowerCase()\" [ngClass]=\"{ 'text-center': colunasType[i] == 'check', 'align-right': colunasType[i].startsWith('n') }\">{{ col | translate }}</th>\r\n <th *ngIf=\"colunasWidth[i] != ''\" [ngStyle]=\"{ 'width': colunasWidth[i] }\" [ngClass]=\"{ 'text-center': colunasType[i] == 'check', 'align-right': colunasType[i].startsWith('n') }\">{{ col | translate }}</th>\r\n </ng-container>\r\n\r\n <th class=\"actions align-right buttons\" *ngIf=\"(templateurl != '') || (buttons != null && buttons.length > 0) || enableddetail || enabledview || enabledcols || ((disabledcol == '') && enablededit && hasPermissionEdit) || ((disabledcol == '') && enableddelete && hasPermissionDelete)\">\r\n <button mat-icon-button type=\"button\"[matTooltip]=\"newlabel | translate\" matTooltipPosition=\"left\" (click)=\"add()\" *ngIf=\"!showPagebar && enablednew && hasPermissionNew\">\r\n <mat-icon>add_circle_outline</mat-icon>\r\n </button>\r\n <button mat-icon-button type=\"button\" class=\"managercols\" [matTooltip]=\"'CustomizarTabela' | translate\" matTooltipPosition=\"left\" (click)=\"customizeTable()\" *ngIf=\"enabledcols\">\r\n <mat-icon class=\"icon-out\">settings</mat-icon>\r\n </button>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"grid-content\">\r\n <tr *ngFor=\"let mod of data\" [ngClass]=\"{ 'default-color': !enabledclassicons }\" [class]=\"mod.Class\" (click)=\"access(mod)\">\r\n <td *ngIf=\"enabledclassicons && mod?.Icon != null\">\r\n <ng-container *ngFor=\"let icon of icons\">\r\n <i class=\"material-icons\" [matTooltip]=\"icon.Tooltip | translate\" *ngIf=\"icon.Name == mod.Icon\" [ngClass]=\"{ 'icone-secundario': icon.Principal == false }\">{{icon.Icon}}</i>\r\n </ng-container>\r\n </td>\r\n\r\n <ng-container *ngFor=\"let col of colunasItens; let i = index\">\r\n <td *ngIf=\"mod[col] == null || mod[col] == undefined\"></td>\r\n <ng-container [ngSwitch]=\"colunasType[i]\" *ngIf=\"mod[col] != null && mod[col] != undefined\">\r\n <ng-container *ngSwitchCase=\"'label'\">\r\n <td *ngIf=\"mod[col] !== true && mod[col] !== false && mod[col] !== 0 && mod[col] !== '0'\" >\r\n <label *ngIf=\"colunasHtml[i] === true\" [outerHTML]=\"(mod[col] | translate:colunasTranslate[i]) || ''\"></label>\r\n <label *ngIf=\"colunasHtml[i] === false\">{{ (mod[col] | translate:colunasHtml[i]) || '' }}</label>\r\n <p *ngIf=\"i == 0 && mod.Badge != null && mod.Badge != undefined\">{{ mod.Badge | translate:colunasTranslate[i] }}</p>\r\n </td>\r\n <td *ngIf=\"mod[col] === true\"><mat-icon>check_box</mat-icon></td>\r\n <td *ngIf=\"mod[col] === false\"><mat-icon>check_box_outline_blank</mat-icon></td>\r\n <td *ngIf=\"mod[col] === 0 || mod[col] === '0'\">0</td>\r\n </ng-container>\r\n\r\n <td nowrap *ngSwitchCase=\"'date'\" [innerHTML]=\"mod[col] | date:'shortDate'\"></td>\r\n <td nowrap *ngSwitchCase=\"'datetime'\">{{ mod[col] | date:'shortDate' }} {{ mod[col] | date:'mediumTime' }}</td>\r\n <td nowrap *ngSwitchCase=\"'monthyear'\" [innerHTML]=\"mod[col] | date:'MM/yyyy'\"></td>\r\n <td nowrap *ngSwitchCase=\"'n0'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.0-0' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n2'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.2-2' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n4'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.4-4' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n6'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.6-6' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n9'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.9-9' }}</td>\r\n <td nowrap *ngSwitchCase=\"'n12'\" [class]=\"'align-right ' + (mod[col] < 0 ? 'text-red' : '')\">{{ mod[col] | number:'1.12-12' }}</td>\r\n \r\n <td *ngSwitchCase=\"'check'\" class=\"text-center\">\r\n <ng-container *ngIf=\"mod[col] != null && (mod[col] === true || mod[col] == 1 || mod[col].toLowerCase() == 's'); then checked; else unchecked\"></ng-container>\r\n <ng-template #checked><mat-icon>check_box</mat-icon></ng-template>\r\n <ng-template #unchecked><mat-icon>check_box_outline_blank</mat-icon></ng-template>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"enabledclickaccess\">\r\n <td class=\"td-actions clickaccess\">\r\n <button mat-icon-button type=\"button\" (click)=\"access(mod)\" *ngIf=\"enabledview\">\r\n <mat-icon>{{accessicon || 'arrow_forward'}}</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!enabledclickaccess\">\r\n <td class=\"td-actions\" *ngIf=\"(templateurl != '') || (buttons != null && buttons.length > 0) || (mod.Download != null) || enableddetail || (mod?.Info != null) || enabledview || ((disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit) || ((disabledcol == '' || mod[disabledcol] === true) && enableddelete && hasPermissionDelete)\">\r\n\r\n <a mat-icon-button href=\"{{ templateurl.replace('{id}', mod.Id) }}\" target=\"_blank\" [matTooltip]=\"'Abrir' | translate\" *ngIf=\"templateurl != ''\">\r\n <mat-icon>visibility</mat-icon>\r\n </a>\r\n\r\n <ng-container *ngFor=\"let b of buttons\">\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"b.label | translate\" (click)=\"b.modalComponent != null ? openCustomModal(b.modalComponent, b.widthModalComponent, mod) : b.api != null ? eventButton(mod, b.api, b.method, b.confirm) : navigateTo(b.navigateTo, b.passId, mod.Id)\" *ngIf=\"b.showOnlyClass == null || b.showOnlyClass == mod.Class\" [disabled]=\"b.disabledField && mod[b.disabledField] === true\">\r\n <mat-icon>{{b.icon}}</mat-icon>\r\n </button>\r\n </ng-container>\r\n\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Download' | translate\" (click)=\"download(mod.Download)\" *ngIf=\"mod.Download != null\">\r\n <mat-icon>file_download</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Detalhe' | translate\" (click)=\"detail(mod)\" *ngIf=\"enableddetail\">\r\n <mat-icon>list</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Informacao' | translate\" (click)=\"info(mod?.Info)\" *ngIf=\"mod?.Info != null\" [disabled]=\"mod?.Info == ''\">\r\n <mat-icon>info</mat-icon>\r\n </button>\r\n \r\n <!-- <button mat-icon-button type=\"button\" [matTooltip]=\"'Visualizar' | translate\" (click)=\"view(mod)\" *ngIf=\"enabledview\">\r\n <mat-icon>visibility</mat-icon>\r\n </button>\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Editar' | translate\" (click)=\"edit(mod)\" *ngIf=\"(disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit\">\r\n <mat-icon>edit</mat-icon>\r\n </button> -->\r\n \r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Excluir' | translate\" (click)=\"delete(mod)\" *ngIf=\"(disabledcol == '' || mod[disabledcol] === true) && enableddelete && hasPermissionDelete && !mod.HideDelete\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n\r\n <button mat-icon-button type=\"button\" [matTooltip]=\"'Acessar' | translate\" (click)=\"edit(mod)\" *ngIf=\"((disabledcol == '' || mod[disabledcol] === true) && enablededit && hasPermissionEdit) || enabledview\">\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <span class=\"blank-table\" *ngIf=\"data != null && data.length == 0\">{{\"NenhumItemEncontrado\" | translate}}</span>\r\n\r\n <info-paginator #paginator [hidden]=\"!paged || (data != null && data.length == 0)\" [size]=\"size\" (change)=\"changePage($event)\" ></info-paginator>\r\n </div>\r\n</div>\r\n\r\n<div class=\"block\" *ngIf=\"loading\"></div>\r\n<info-alert [messages]=\"messages\"></info-alert>",
4829
4895
  providers: [InfoFormPropModel],
4830
- styles: [":host{display:block;position:relative}:host #auto-refresh{background:transparent;margin:0;padding:0;position:absolute;right:0;top:8px}:host #auto-refresh i{cursor:default;font-size:18px}:host .table-title{background:#fcfcfc}:host .table-title .mat-icon-button{height:25px;line-height:25px;text-align:center;width:25px}:host .table-title .mat-icon-button .mat-icon{font-size:18px}:host .table-title :hover{transition:color .2s}:host .search-container{margin-top:10px;position:relative}:host .title-grid{font-size:.8rem;font-weight:700;padding-top:8px;text-transform:uppercase}:host table thead .col_dia,:host table thead .col_id{width:80px}:host table thead .col_moeda{width:90px}:host table thead .col_data,:host table thead .col_datacotacao,:host table thead .col_dataposicao,:host table thead .col_referencia{width:125px}:host table thead .col_conta,:host table thead .col_identificador{width:250px}:host table thead .col_cliente,:host table thead .col_descricao,:host table thead .col_nome{width:400px}:host table tbody .icone-secundario{font-size:12px}:host.uxc3 div.table-responsive .table-title{padding:0!important}:host.uxc3 div.table-responsive .table thead{background:transparent}:host.uxc3 div.table-responsive .table thead th{border-top:none;font-size:10px;padding:10px 5px 5px;text-transform:capitalize}:host.uxc3 div.table-responsive .table thead th.actions{border-bottom-width:0}:host.uxc3 div.table-responsive .table thead th:after{display:none}:host.uxc3 div.table-responsive .table tbody tr{background:#f9f9f9;height:40px}:host.uxc3 div.table-responsive .table tbody tr td{cursor:default;font-size:13px;font-weight:600;transition:color .2s ease-in-out}:host.uxc3 div.table-responsive .table tbody tr td.td-actions{border-bottom:none;margin-top:1px;padding-bottom:6px;padding-top:7px}:host.uxc3 div.table-responsive .table tbody tr td mat-icon{height:17px;line-height:17px}:host.uxc3 div.table-responsive .table tbody tr td p{border:1px solid;border-radius:3px;display:inline-block;font-size:8px;margin:0 0 0 5px;padding:2px 5px;position:relative;text-transform:uppercase;top:-2px}:host.uxc3 div.table-responsive .table tbody tr:hover{background:#f9f9f9}:host.uxc3 div.table-responsive .table tbody tr:nth-child(2n):hover,:host.uxc3 div.table-responsive .table tbody tr:nth-child(2n):hover .td-actions{background:#fff}"]
4896
+ styles: [":host{display:block;position:relative}:host #auto-refresh{background:transparent;margin:0;padding:0;position:absolute;right:0;top:8px}:host #auto-refresh i{cursor:default;font-size:18px}:host .table-title{background:#fcfcfc}:host .table-title .mat-icon-button{height:25px;line-height:25px;text-align:center;width:25px}:host .table-title .mat-icon-button .mat-icon{font-size:18px}:host .table-title :hover{transition:color .2s}:host .search-container{margin-top:10px;position:relative}:host .title-grid{font-size:.8rem;font-weight:700;padding-top:8px;text-transform:uppercase}:host table thead .col_dia,:host table thead .col_id{width:80px}:host table thead .col_moeda{width:90px}:host table thead .col_data,:host table thead .col_datacotacao,:host table thead .col_dataposicao,:host table thead .col_referencia{width:125px}:host table thead .col_conta,:host table thead .col_identificador{width:250px}:host table thead .col_cliente,:host table thead .col_descricao,:host table thead .col_nome{width:400px}:host table tbody .icone-secundario{font-size:12px}:host.uxc3 div.table-responsive .table-title{padding:0!important}:host.uxc3 div.table-responsive .table thead{background:transparent}:host.uxc3 div.table-responsive .table thead th{border-top:none;font-size:10px;padding:10px 5px 5px;text-transform:capitalize}:host.uxc3 div.table-responsive .table thead th.actions{border-bottom-width:0}:host.uxc3 div.table-responsive .table thead th:after{display:none}:host.uxc3 div.table-responsive .table thead th .managercols{opacity:0;right:0;top:-4px;transition:opacity .3s ease-in-out}:host.uxc3 div.table-responsive .table thead:hover .managercols{opacity:1!important}:host.uxc3 div.table-responsive .table tbody tr{background:#f9f9f9;height:40px}:host.uxc3 div.table-responsive .table tbody tr td{cursor:default;font-size:13px;font-weight:600;transition:color .2s ease-in-out}:host.uxc3 div.table-responsive .table tbody tr td.td-actions{border-bottom:none;margin-top:1px;padding-bottom:6px;padding-top:7px}:host.uxc3 div.table-responsive .table tbody tr td mat-icon{height:17px;line-height:17px}:host.uxc3 div.table-responsive .table tbody tr td p{border:1px solid;border-radius:3px;display:inline-block;font-size:8px;margin:0 0 0 5px;padding:2px 5px;position:relative;text-transform:uppercase;top:-2px}:host.uxc3 div.table-responsive .table tbody tr:hover{background:#f9f9f9}:host.uxc3 div.table-responsive .table tbody tr:nth-child(2n):hover,:host.uxc3 div.table-responsive .table tbody tr:nth-child(2n):hover .td-actions{background:#fff}"]
4831
4897
  }] }
4832
4898
  ];
4833
4899
  /** @nocollapse */
@@ -4868,6 +4934,7 @@ InfoGridComponent.propDecorators = {
4868
4934
  paged: [{ type: Input }],
4869
4935
  size: [{ type: Input }],
4870
4936
  autorefresh: [{ type: Input }],
4937
+ enabledcols: [{ type: Input }],
4871
4938
  enablednew: [{ type: Input }],
4872
4939
  enablededit: [{ type: Input }],
4873
4940
  enableddelete: [{ type: Input }],
@@ -4950,6 +5017,8 @@ if (false) {
4950
5017
  /** @type {?} */
4951
5018
  InfoGridComponent.prototype.autorefresh;
4952
5019
  /** @type {?} */
5020
+ InfoGridComponent.prototype.enabledcols;
5021
+ /** @type {?} */
4953
5022
  InfoGridComponent.prototype.enablednew;
4954
5023
  /** @type {?} */
4955
5024
  InfoGridComponent.prototype.enablededit;
@@ -5044,6 +5113,8 @@ if (false) {
5044
5113
  /** @type {?} */
5045
5114
  InfoGridComponent.prototype.colunasHeaders;
5046
5115
  /** @type {?} */
5116
+ InfoGridComponent.prototype.colunasPadraoHeaders;
5117
+ /** @type {?} */
5047
5118
  InfoGridComponent.prototype.colunasType;
5048
5119
  /** @type {?} */
5049
5120
  InfoGridComponent.prototype.colunasWidth;
@@ -5056,6 +5127,10 @@ if (false) {
5056
5127
  /** @type {?} */
5057
5128
  InfoGridComponent.prototype.url;
5058
5129
  /** @type {?} */
5130
+ InfoGridComponent.prototype.chaveStorage;
5131
+ /** @type {?} */
5132
+ InfoGridComponent.prototype.identificador;
5133
+ /** @type {?} */
5059
5134
  InfoGridComponent.prototype.paginator;
5060
5135
  /** @type {?} */
5061
5136
  InfoGridComponent.prototype.parentIdUrlChange;
@@ -5122,6 +5197,121 @@ if (false) {
5122
5197
  * @private
5123
5198
  */
5124
5199
  InfoGridComponent.prototype._element;
5200
+ }
5201
+ class InfoGridModalComponent {
5202
+ /**
5203
+ * @param {?} _prop
5204
+ * @param {?} _ref
5205
+ * @param {?} _modal
5206
+ */
5207
+ constructor(_prop, _ref, _modal) {
5208
+ this._prop = _prop;
5209
+ this._ref = _ref;
5210
+ this._modal = _modal;
5211
+ this.colunas = [];
5212
+ this.dadosStorage = null;
5213
+ }
5214
+ /**
5215
+ * @return {?}
5216
+ */
5217
+ ngOnInit() {
5218
+ this.identificador = this._prop.data.Identificador;
5219
+ this.chaveStorage = this._prop.data.Chave;
5220
+ /** @type {?} */
5221
+ let colunasGrid = this._prop.data.Colunas.map((/**
5222
+ * @param {?} c
5223
+ * @return {?}
5224
+ */
5225
+ c => { return { Nome: c, Exibir: true, GridAtual: true }; }));
5226
+ if (localStorage.getItem(this.chaveStorage) == null)
5227
+ localStorage.setItem(this.chaveStorage, JSON.stringify([]));
5228
+ this.dadosStorage = JSON.parse(localStorage.getItem(this.chaveStorage));
5229
+ if (this.dadosStorage.findIndex((/**
5230
+ * @param {?} c
5231
+ * @return {?}
5232
+ */
5233
+ c => c.Identificador == this.identificador)) < 0)
5234
+ this.dadosStorage.push({ Identificador: this.identificador, Colunas: colunasGrid });
5235
+ /** @type {?} */
5236
+ let colunasGeral = this.dadosStorage.find((/**
5237
+ * @param {?} c
5238
+ * @return {?}
5239
+ */
5240
+ c => c.Identificador == this.identificador)).Colunas;
5241
+ //Adiciona possíveis novas colunas
5242
+ colunasGrid.filter((/**
5243
+ * @param {?} g
5244
+ * @return {?}
5245
+ */
5246
+ g => colunasGeral.map((/**
5247
+ * @param {?} c
5248
+ * @return {?}
5249
+ */
5250
+ c => c.Nome)).indexOf(g.Nome) < 0)).forEach((/**
5251
+ * @param {?} novaColuna
5252
+ * @return {?}
5253
+ */
5254
+ novaColuna => {
5255
+ colunasGeral.push(novaColuna);
5256
+ }));
5257
+ //Exibe apenas as colunas presentes no grid atual
5258
+ this.colunas = colunasGeral.map((/**
5259
+ * @param {?} c
5260
+ * @return {?}
5261
+ */
5262
+ c => (Object.assign(Object.assign({}, c), { GridAtual: colunasGrid.findIndex((/**
5263
+ * @param {?} g
5264
+ * @return {?}
5265
+ */
5266
+ g => g.Nome == c.Nome)) > -1 }))));
5267
+ }
5268
+ /**
5269
+ * @return {?}
5270
+ */
5271
+ save() {
5272
+ this.dadosStorage.find((/**
5273
+ * @param {?} c
5274
+ * @return {?}
5275
+ */
5276
+ c => c.Identificador == this.identificador)).Colunas = this.colunas;
5277
+ localStorage.setItem(this.chaveStorage, JSON.stringify(this.dadosStorage));
5278
+ this._prop.modalAction = InfoModalAction.Save;
5279
+ this._ref.close(this._prop);
5280
+ }
5281
+ }
5282
+ InfoGridModalComponent.decorators = [
5283
+ { type: Component, args: [{
5284
+ template: "<info-modal (onsave)=\"save()\" modaltitle=\"CustomizarTabela\" >\r\n <info-message color=\"warning\" class=\"min\">\r\n <ul>\r\n <li><mat-icon class=\"icon-out\">info</mat-icon>{{ 'CustomizarTabelaDescricao1' | translate }}</li>\r\n <li><mat-icon class=\"icon-out\">dangerous</mat-icon>{{ 'CustomizarTabelaDescricao2' | translate }}</li>\r\n </ul>\r\n \r\n </info-message>\r\n \r\n <ul class=\"listagem\">\r\n <ng-container *ngFor=\"let item of colunas\" >\r\n <li *ngIf=\"item.GridAtual\" >\r\n <info-checkbox [(ngModel)]=\"item.Exibir\" [placeholder]=\"item.Nome\" [name]=\"'chkcoluna' + item.Nome\" ></info-checkbox>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</info-modal>",
5285
+ providers: [InfoFormPropModel]
5286
+ }] }
5287
+ ];
5288
+ /** @nocollapse */
5289
+ InfoGridModalComponent.ctorParameters = () => [
5290
+ { type: InfoFormPropModel, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] },
5291
+ { type: MatDialogRef },
5292
+ { type: MatDialog }
5293
+ ];
5294
+ if (false) {
5295
+ /** @type {?} */
5296
+ InfoGridModalComponent.prototype.identificador;
5297
+ /** @type {?} */
5298
+ InfoGridModalComponent.prototype.chaveStorage;
5299
+ /** @type {?} */
5300
+ InfoGridModalComponent.prototype.colunas;
5301
+ /** @type {?} */
5302
+ InfoGridModalComponent.prototype.dadosStorage;
5303
+ /** @type {?} */
5304
+ InfoGridModalComponent.prototype._prop;
5305
+ /**
5306
+ * @type {?}
5307
+ * @private
5308
+ */
5309
+ InfoGridModalComponent.prototype._ref;
5310
+ /**
5311
+ * @type {?}
5312
+ * @private
5313
+ */
5314
+ InfoGridModalComponent.prototype._modal;
5125
5315
  }
5126
5316
 
5127
5317
  /**
@@ -8462,6 +8652,7 @@ InfoLibraryModule.decorators = [
8462
8652
  InfoDateComponent,
8463
8653
  InfoDateMonthComponent,
8464
8654
  InfoGridComponent,
8655
+ InfoGridModalComponent,
8465
8656
  InfoInputComponent,
8466
8657
  InfoInputListComponent,
8467
8658
  InfoListCheckboxComponent,
@@ -8495,6 +8686,7 @@ InfoLibraryModule.decorators = [
8495
8686
  InfoDateComponent,
8496
8687
  InfoDateMonthComponent,
8497
8688
  InfoGridComponent,
8689
+ InfoGridModalComponent,
8498
8690
  InfoInputComponent,
8499
8691
  InfoInputListComponent,
8500
8692
  InfoListCheckboxComponent,
@@ -8540,5 +8732,5 @@ InfoLibraryModule.decorators = [
8540
8732
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
8541
8733
  */
8542
8734
 
8543
- export { APICONTROLLER_CONFIG, DICTIONARIES_CONFIG, InfoAlertComponent, InfoAppConfigModel, InfoAuthenticationService, InfoAutoCompleteComponent, InfoBigCheckboxComponent, InfoCardComponent, InfoCheckboxComponent, InfoChipsComponent, InfoConfigurationService, InfoDataAccessModel, InfoDataService, InfoDateComponent, InfoDateMonthComponent, InfoDialogButtons, InfoDialogComponent, InfoDialogModal, InfoDialogModel, InfoDialogResult, InfoEditorComponent, InfoFormPropModel, InfoGridButtonModel, InfoGridComponent, InfoInputComponent, InfoInputListComponent, InfoLastSearchModel, InfoLibraryModule, InfoListCheckboxComponent, InfoLoadingComponent, InfoLoginModel, InfoMainComponent, InfoMaskPipe, InfoMenuCardComponent, InfoMessageComponent, InfoMethodGridButtonModel, InfoModalAction, InfoModalComponent, InfoMultiSelectComponent, InfoNotificationItemModel, InfoNotificationModel, InfoPageAction, InfoPagebarButtonModel, InfoPagebarComponent, InfoPaginatorComponent, InfoPermissionModel, InfoPlatformModel, InfoSelectComponent, InfoSessionModel, InfoSidebarComponent, InfoThemeService, InfoTimelineComponent, InfoTopMenuComponent, InfoTopbarComponent, InfoTranslatePipe, InfoTranslateService, PT_BR_DATE_FORMATS as ɵa, PT_BR_DATE_MONTH_FORMATS as ɵb, AtalhoModalComponent as ɵc, InfoDataService as ɵd, InfoPlatformModel as ɵe, Utilities as ɵf, InfoFormPropModel as ɵg, InfoAuthenticationService as ɵh, RefreshSessionTimeModalComponent as ɵi, InfoSessionModel as ɵj, InfoTranslateService as ɵk, InfoLastSearchModel as ɵl, InfoThemeService as ɵm, InfoDialogModel as ɵn, InfoTranslatePipe as ɵo, InfoMaskPipe as ɵp, InfoMaskDirective as ɵq, InfoUnmaskDirective as ɵr };
8735
+ export { APICONTROLLER_CONFIG, DICTIONARIES_CONFIG, InfoAlertComponent, InfoAppConfigModel, InfoAuthenticationService, InfoAutoCompleteComponent, InfoBigCheckboxComponent, InfoCardComponent, InfoCheckboxComponent, InfoChipsComponent, InfoConfigurationService, InfoDataAccessModel, InfoDataService, InfoDateComponent, InfoDateMonthComponent, InfoDialogButtons, InfoDialogComponent, InfoDialogModal, InfoDialogModel, InfoDialogResult, InfoEditorComponent, InfoFormPropModel, InfoGridButtonModel, InfoGridComponent, InfoGridModalComponent, InfoInputComponent, InfoInputListComponent, InfoLastSearchModel, InfoLibraryModule, InfoListCheckboxComponent, InfoLoadingComponent, InfoLoginModel, InfoMainComponent, InfoMaskPipe, InfoMenuCardComponent, InfoMessageComponent, InfoMethodGridButtonModel, InfoModalAction, InfoModalComponent, InfoMultiSelectComponent, InfoNotificationItemModel, InfoNotificationModel, InfoPageAction, InfoPagebarButtonModel, InfoPagebarComponent, InfoPaginatorComponent, InfoPermissionModel, InfoPlatformModel, InfoSelectComponent, InfoSessionModel, InfoSidebarComponent, InfoThemeService, InfoTimelineComponent, InfoTopMenuComponent, InfoTopbarComponent, InfoTranslatePipe, InfoTranslateService, PT_BR_DATE_FORMATS as ɵa, PT_BR_DATE_MONTH_FORMATS as ɵb, AtalhoModalComponent as ɵc, InfoDataService as ɵd, InfoPlatformModel as ɵe, Utilities as ɵf, InfoFormPropModel as ɵg, InfoAuthenticationService as ɵh, RefreshSessionTimeModalComponent as ɵi, InfoSessionModel as ɵj, InfoTranslateService as ɵk, InfoLastSearchModel as ɵl, InfoThemeService as ɵm, InfoDialogModel as ɵn, InfoTranslatePipe as ɵo, InfoMaskPipe as ɵp, InfoMaskDirective as ɵq, InfoUnmaskDirective as ɵr };
8544
8736
  //# sourceMappingURL=info-library.js.map