keevo-components 1.8.306 → 1.8.308

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 (144) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/api/base-components/base-component-button.mjs +1 -1
  3. package/esm2022/lib/api/base-components/base-component-chart.mjs +1 -1
  4. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +1 -1
  5. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +1 -1
  6. package/esm2022/lib/api/base-components/base-component-crud.mjs +1 -1
  7. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +1 -1
  8. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +1 -1
  9. package/esm2022/lib/api/base-components/base-component-input.mjs +1 -1
  10. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +1 -1
  11. package/esm2022/lib/api/base-components/base-component-table.mjs +1 -1
  12. package/esm2022/lib/api/base-components/base-component.mjs +1 -1
  13. package/esm2022/lib/api/components/chart/chart.config.mjs +1 -1
  14. package/esm2022/lib/api/components/chart/chart.model.mjs +1 -1
  15. package/esm2022/lib/api/components/chart/orchart.config.mjs +1 -1
  16. package/esm2022/lib/api/components/chart/orchart.item.mjs +1 -1
  17. package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +1 -1
  18. package/esm2022/lib/api/components/stepper/kv-stepperpanel.mjs +1 -1
  19. package/esm2022/lib/api/components/table/action-item.mjs +1 -1
  20. package/esm2022/lib/api/components/table/kv-menuitem.mjs +1 -1
  21. package/esm2022/lib/api/components/table/table-dropdown-control.mjs +1 -1
  22. package/esm2022/lib/api/components/table/table.config.column.mjs +1 -1
  23. package/esm2022/lib/api/components/table/table.config.mjs +1 -1
  24. package/esm2022/lib/api/components/table/table.paginate.mjs +1 -1
  25. package/esm2022/lib/api/components/table/tabledit.config.mjs +1 -1
  26. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +1 -1
  27. package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +1 -1
  28. package/esm2022/lib/api/directives/directives.module.mjs +1 -1
  29. package/esm2022/lib/api/directives/drag/drag.directive.mjs +1 -1
  30. package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +1 -1
  31. package/esm2022/lib/api/directives/template/template.directive.mjs +1 -1
  32. package/esm2022/lib/api/helpers/component-providers.mjs +1 -1
  33. package/esm2022/lib/api/helpers/keevo-validators.mjs +1 -1
  34. package/esm2022/lib/api/helpers/translate-primeng.mjs +1 -1
  35. package/esm2022/lib/api/modules/primeng.module.mjs +1 -1
  36. package/esm2022/lib/api/pipes/capitalize.pipe.mjs +1 -1
  37. package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +1 -1
  38. package/esm2022/lib/api/pipes/mask.pipe.mjs +1 -1
  39. package/esm2022/lib/api/pipes/pipes.module.mjs +1 -1
  40. package/esm2022/lib/api/pipes/telefone.pipe.mjs +1 -1
  41. package/esm2022/lib/api/services/base.api.service.mjs +1 -1
  42. package/esm2022/lib/api/services/breadcrumbs.service.mjs +1 -1
  43. package/esm2022/lib/api/services/component.service.mjs +1 -1
  44. package/esm2022/lib/api/services/docs.service.mjs +1 -1
  45. package/esm2022/lib/api/services/form.service.mjs +1 -1
  46. package/esm2022/lib/api/services/imagens.service.mjs +1 -1
  47. package/esm2022/lib/api/services/notification.service.mjs +1 -1
  48. package/esm2022/lib/api/services/object.service.mjs +1 -1
  49. package/esm2022/lib/api/types/breadcrumb.model.mjs +1 -1
  50. package/esm2022/lib/api/types/severity.mjs +1 -1
  51. package/esm2022/lib/components/keevo-components.module.mjs +1 -1
  52. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +223 -48
  53. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +1 -1
  54. package/esm2022/lib/components/kv-button/kv-button.component.mjs +3 -3
  55. package/esm2022/lib/components/kv-button/kv-button.module.mjs +1 -1
  56. package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +3 -3
  57. package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +3 -3
  58. package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +3 -3
  59. package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +3 -3
  60. package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +1 -1
  61. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +3 -3
  62. package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +1 -1
  63. package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +3 -3
  64. package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +1 -1
  65. package/esm2022/lib/components/kv-error/kv-error.component.mjs +3 -3
  66. package/esm2022/lib/components/kv-error/kv-error.module.mjs +1 -1
  67. package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +3 -3
  68. package/esm2022/lib/components/kv-file-upload/kv-file-upload.module.mjs +1 -1
  69. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +3 -3
  70. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +1 -1
  71. package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +3 -3
  72. package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +1 -1
  73. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +3 -3
  74. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.mjs +1 -1
  75. package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +1 -1
  76. package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +1 -1
  77. package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +3 -3
  78. package/esm2022/lib/components/kv-home-card/kv-home-card.module.mjs +1 -1
  79. package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +3 -3
  80. package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +1 -1
  81. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +3 -3
  82. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +3 -3
  83. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +3 -3
  84. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +3 -3
  85. package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +3 -3
  86. package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +3 -3
  87. package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +3 -3
  88. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +3 -3
  89. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +3 -3
  90. package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +3 -3
  91. package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +3 -3
  92. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +1 -1
  93. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +3 -3
  94. package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +3 -3
  95. package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +3 -3
  96. package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +3 -3
  97. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +3 -3
  98. package/esm2022/lib/components/kv-label/kv-label.component.mjs +3 -3
  99. package/esm2022/lib/components/kv-label/kv-label.module.mjs +1 -1
  100. package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +3 -3
  101. package/esm2022/lib/components/kv-layout/kv-layout.module.mjs +1 -1
  102. package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +3 -3
  103. package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +3 -3
  104. package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +1 -1
  105. package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +1 -1
  106. package/esm2022/lib/components/kv-login/kv-login.component.mjs +3 -3
  107. package/esm2022/lib/components/kv-login/kv-login.module.mjs +1 -1
  108. package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +3 -3
  109. package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +1 -1
  110. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +3 -3
  111. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +1 -1
  112. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +3 -3
  113. package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +1 -1
  114. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +3 -3
  115. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +1 -1
  116. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +3 -3
  117. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +1 -1
  118. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +3 -3
  119. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +1 -1
  120. package/esm2022/lib/components/kv-report/kv-report.component.mjs +3 -3
  121. package/esm2022/lib/components/kv-report/kv-report.module.mjs +1 -1
  122. package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +3 -3
  123. package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +1 -1
  124. package/esm2022/lib/components/kv-table/kv-table.component.mjs +3 -3
  125. package/esm2022/lib/components/kv-table/kv-table.module.mjs +1 -1
  126. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +3 -3
  127. package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +1 -1
  128. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +3 -3
  129. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +1 -1
  130. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +5 -5
  131. package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +1 -1
  132. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +3 -3
  133. package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +1 -1
  134. package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +3 -3
  135. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +1 -1
  136. package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +3 -3
  137. package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +3 -3
  138. package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +3 -3
  139. package/esm2022/public-api.mjs +1 -1
  140. package/fesm2022/keevo-components.mjs +323 -149
  141. package/fesm2022/keevo-components.mjs.map +1 -1
  142. package/lib/api/components/tree-table/tree-table.config.d.ts +1 -1
  143. package/lib/components/kv-avatar/kv-avatar.component.d.ts +35 -10
  144. package/package.json +1 -1
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
66
66
  providedIn: 'root',
67
67
  }]
68
68
  }], ctorParameters: () => [{ type: i1.ConfirmationService }, { type: i1.MessageService }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUF1QnpELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDbUIsbUJBQXdDLEVBQ3hDLGNBQThCO1FBRDlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQzdDLENBQUM7SUFFTCxRQUFRLENBQUMsTUFBc0I7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztZQUMvQixNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYTtZQUMzRCxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFO1lBQ3hGLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLHNCQUFzQixFQUFFLHdDQUF3QztZQUNoRSxXQUFXLEVBQUUsS0FBSztZQUNsQixzQkFBc0IsRUFBRSx5Q0FBeUM7WUFDakUsR0FBRyxNQUFNO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFvQjtRQUN6QixJQUFJLFlBQW9CLENBQUM7UUFDekIsSUFBSSxVQUFrQixDQUFDO1FBRXZCLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLEtBQUssT0FBTztnQkFDVixZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUN6QixVQUFVLEdBQUcsNEJBQTRCLENBQUM7Z0JBQzFDLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsWUFBWSxHQUFHLFlBQVksQ0FBQztnQkFDNUIsVUFBVSxHQUFHLG1CQUFtQixDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLFlBQVksR0FBRyxNQUFNLENBQUM7Z0JBQ3RCLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQztnQkFDbEMsTUFBTTtRQUNWLENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLElBQUksRUFBRSxVQUFVO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLHNCQUFzQixFQUFFLHdDQUF3QztZQUNoRSxhQUFhLEVBQUUsS0FBSztZQUNwQixhQUFhLEVBQUUsS0FBSztZQUNwQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDN0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDOzhHQS9EVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHtcbiAgQ29uZmlybWF0aW9uU2VydmljZSxcbiAgTWVzc2FnZVNlcnZpY2Vcbn0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlc3Rpb25Db25maWcge1xuICB0eXBlPzogJ3F1ZXN0aW9uJyB8ICdhbGVydCc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgYWNjZXB0PzogRnVuY3Rpb247XG4gIHJlamVjdD86IEZ1bmN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0NvbmZpZyB7XG4gIHR5cGU6ICdpbmZvJyB8ICdhbGVydCcgfCAnZXJyb3InO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGFjY2VwdD86IEZ1bmN0aW9uO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgKSB7IH1cblxuICBxdWVzdGlvbihjb25maWc6IFF1ZXN0aW9uQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgaGVhZGVyOiBjb25maWcudHlwZSA9PT0gJ2FsZXJ0JyA/ICdBdGVuw6fDo28nIDogJ0NvbmZpcm1hw6fDo28nLFxuICAgICAgaWNvbjogYHBpICR7Y29uZmlnLnR5cGUgPT09ICdhbGVydCcgPyAncGktZXhjbGFtYXRpb24tdHJpYW5nbGUnIDogJ3BpLXF1ZXN0aW9uLWNpcmNsZSd9YCxcbiAgICAgIGFjY2VwdExhYmVsOiAnU2ltJyxcbiAgICAgIGFjY2VwdEJ1dHRvblN0eWxlQ2xhc3M6ICcga3YtYnV0dG9uIGt2LXByaW1hcnkga3YtaHVnIGt2LW5vcm1hbCcsXG4gICAgICByZWplY3RMYWJlbDogJ07Do28nLFxuICAgICAgcmVqZWN0QnV0dG9uU3R5bGVDbGFzczogJyBrdi1idXR0b24ga3YtdGVydGlhcnkga3YtaHVnIGt2LW5vcm1hbCcsXG4gICAgICAuLi5jb25maWcsXG4gICAgfSk7XG4gIH1cblxuICBkaWFsb2coY29uZmlnOiBEaWFsb2dDb25maWcpIHtcbiAgICBsZXQgZGlhbG9nSGVhZGVyOiBzdHJpbmc7XG4gICAgbGV0IGRpYWxvZ0ljb246IHN0cmluZztcblxuICAgIHN3aXRjaCAoY29uZmlnLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2FsZXJ0JzpcbiAgICAgICAgZGlhbG9nSGVhZGVyID0gJ0F0ZW7Dp8Ojbyc7XG4gICAgICAgIGRpYWxvZ0ljb24gPSAncGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICBkaWFsb2dIZWFkZXIgPSAnSW5mb3JtYcOnw6NvJztcbiAgICAgICAgZGlhbG9nSWNvbiA9ICdwaSBwaS1pbmZvLWNpcmNsZSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICBkaWFsb2dIZWFkZXIgPSAnRXJybyc7XG4gICAgICAgIGRpYWxvZ0ljb24gPSAncGkgcGktdGltZXMtY2lyY2xlJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgaGVhZGVyOiBkaWFsb2dIZWFkZXIsXG4gICAgICBpY29uOiBkaWFsb2dJY29uLFxuICAgICAgYWNjZXB0TGFiZWw6ICdPaycsXG4gICAgICBhY2NlcHRCdXR0b25TdHlsZUNsYXNzOiAnIGt2LWJ1dHRvbiBrdi1wcmltYXJ5IGt2LWh1ZyBrdi1ub3JtYWwnLFxuICAgICAgcmVqZWN0VmlzaWJsZTogZmFsc2UsXG4gICAgICBjbG9zZU9uRXNjYXBlOiBmYWxzZSxcbiAgICAgIG1lc3NhZ2U6IGNvbmZpZy5tZXNzYWdlLFxuICAgICAgYWNjZXB0OiAoKSA9PiBjb25maWcuYWNjZXB0ICYmIGNvbmZpZy5hY2NlcHQoKVxuICAgIH0pO1xuICB9XG5cbiAgdG9hc3RTdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgdGltZTogbnVtYmVyID0gNDAwMCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ1N1Y2Vzc28nLCBkZXRhaWw6IG1lc3NhZ2UsIGxpZmU6IHRpbWUgfSk7XG4gIH1cblxuICB0b2FzdEluZm8obWVzc2FnZTogc3RyaW5nLCB0aW1lOiBudW1iZXIgPSA0MDAwKSB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2luZm8nLCBzdW1tYXJ5OiAnSW5mbycsIGRldGFpbDogbWVzc2FnZSwgbGlmZTogdGltZSB9KTtcbiAgfVxuXG4gIHRvYXN0V2FybihtZXNzYWdlOiBzdHJpbmcsIHRpbWU6IG51bWJlciA9IDQwMDApIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnd2FybicsIHN1bW1hcnk6ICdBdmlzbycsIGRldGFpbDogbWVzc2FnZSwgbGlmZTogdGltZSB9KTtcbiAgfVxuXG4gIHRvYXN0RXJyb3IobWVzc2FnZTogc3RyaW5nLCB0aW1lOiBudW1iZXIgPSA0MDAwKSB7XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm8nLCBkZXRhaWw6IG1lc3NhZ2UsIGxpZmU6IHRpbWUgfSk7XG4gIH1cbn1cbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUF1QnpELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDbUIsbUJBQXdDLEVBQ3hDLGNBQThCO1FBRDlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQzdDLENBQUM7SUFFTCxRQUFRLENBQUMsTUFBc0I7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztZQUMvQixNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYTtZQUMzRCxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFO1lBQ3hGLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLHNCQUFzQixFQUFFLHdDQUF3QztZQUNoRSxXQUFXLEVBQUUsS0FBSztZQUNsQixzQkFBc0IsRUFBRSx5Q0FBeUM7WUFDakUsR0FBRyxNQUFNO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFvQjtRQUN6QixJQUFJLFlBQW9CLENBQUM7UUFDekIsSUFBSSxVQUFrQixDQUFDO1FBRXZCLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLEtBQUssT0FBTztnQkFDVixZQUFZLEdBQUcsU0FBUyxDQUFDO2dCQUN6QixVQUFVLEdBQUcsNEJBQTRCLENBQUM7Z0JBQzFDLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsWUFBWSxHQUFHLFlBQVksQ0FBQztnQkFDNUIsVUFBVSxHQUFHLG1CQUFtQixDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLFlBQVksR0FBRyxNQUFNLENBQUM7Z0JBQ3RCLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQztnQkFDbEMsTUFBTTtRQUNWLENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLElBQUksRUFBRSxVQUFVO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLHNCQUFzQixFQUFFLHdDQUF3QztZQUNoRSxhQUFhLEVBQUUsS0FBSztZQUNwQixhQUFhLEVBQUUsS0FBSztZQUNwQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDdkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWUsRUFBRSxPQUFlLElBQUk7UUFDN0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDOzhHQS9EVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgQ29uZmlybWF0aW9uU2VydmljZSxcclxuICBNZXNzYWdlU2VydmljZVxyXG59IGZyb20gXCJwcmltZW5nL2FwaVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBRdWVzdGlvbkNvbmZpZyB7XHJcbiAgdHlwZT86ICdxdWVzdGlvbicgfCAnYWxlcnQnO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBhY2NlcHQ/OiBGdW5jdGlvbjtcclxuICByZWplY3Q/OiBGdW5jdGlvbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dDb25maWcge1xyXG4gIHR5cGU6ICdpbmZvJyB8ICdhbGVydCcgfCAnZXJyb3InO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBhY2NlcHQ/OiBGdW5jdGlvbjtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgcXVlc3Rpb24oY29uZmlnOiBRdWVzdGlvbkNvbmZpZykge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xyXG4gICAgICBoZWFkZXI6IGNvbmZpZy50eXBlID09PSAnYWxlcnQnID8gJ0F0ZW7Dp8OjbycgOiAnQ29uZmlybWHDp8OjbycsXHJcbiAgICAgIGljb246IGBwaSAke2NvbmZpZy50eXBlID09PSAnYWxlcnQnID8gJ3BpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyA6ICdwaS1xdWVzdGlvbi1jaXJjbGUnfWAsXHJcbiAgICAgIGFjY2VwdExhYmVsOiAnU2ltJyxcclxuICAgICAgYWNjZXB0QnV0dG9uU3R5bGVDbGFzczogJyBrdi1idXR0b24ga3YtcHJpbWFyeSBrdi1odWcga3Ytbm9ybWFsJyxcclxuICAgICAgcmVqZWN0TGFiZWw6ICdOw6NvJyxcclxuICAgICAgcmVqZWN0QnV0dG9uU3R5bGVDbGFzczogJyBrdi1idXR0b24ga3YtdGVydGlhcnkga3YtaHVnIGt2LW5vcm1hbCcsXHJcbiAgICAgIC4uLmNvbmZpZyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlhbG9nKGNvbmZpZzogRGlhbG9nQ29uZmlnKSB7XHJcbiAgICBsZXQgZGlhbG9nSGVhZGVyOiBzdHJpbmc7XHJcbiAgICBsZXQgZGlhbG9nSWNvbjogc3RyaW5nO1xyXG5cclxuICAgIHN3aXRjaCAoY29uZmlnLnR5cGUpIHtcclxuICAgICAgY2FzZSAnYWxlcnQnOlxyXG4gICAgICAgIGRpYWxvZ0hlYWRlciA9ICdBdGVuw6fDo28nO1xyXG4gICAgICAgIGRpYWxvZ0ljb24gPSAncGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdpbmZvJzpcclxuICAgICAgICBkaWFsb2dIZWFkZXIgPSAnSW5mb3JtYcOnw6NvJztcclxuICAgICAgICBkaWFsb2dJY29uID0gJ3BpIHBpLWluZm8tY2lyY2xlJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZXJyb3InOlxyXG4gICAgICAgIGRpYWxvZ0hlYWRlciA9ICdFcnJvJztcclxuICAgICAgICBkaWFsb2dJY29uID0gJ3BpIHBpLXRpbWVzLWNpcmNsZSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xyXG4gICAgICBoZWFkZXI6IGRpYWxvZ0hlYWRlcixcclxuICAgICAgaWNvbjogZGlhbG9nSWNvbixcclxuICAgICAgYWNjZXB0TGFiZWw6ICdPaycsXHJcbiAgICAgIGFjY2VwdEJ1dHRvblN0eWxlQ2xhc3M6ICcga3YtYnV0dG9uIGt2LXByaW1hcnkga3YtaHVnIGt2LW5vcm1hbCcsXHJcbiAgICAgIHJlamVjdFZpc2libGU6IGZhbHNlLFxyXG4gICAgICBjbG9zZU9uRXNjYXBlOiBmYWxzZSxcclxuICAgICAgbWVzc2FnZTogY29uZmlnLm1lc3NhZ2UsXHJcbiAgICAgIGFjY2VwdDogKCkgPT4gY29uZmlnLmFjY2VwdCAmJiBjb25maWcuYWNjZXB0KClcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9hc3RTdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgdGltZTogbnVtYmVyID0gNDAwMCkge1xyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnU3VjZXNzbycsIGRldGFpbDogbWVzc2FnZSwgbGlmZTogdGltZSB9KTtcclxuICB9XHJcblxyXG4gIHRvYXN0SW5mbyhtZXNzYWdlOiBzdHJpbmcsIHRpbWU6IG51bWJlciA9IDQwMDApIHtcclxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdpbmZvJywgc3VtbWFyeTogJ0luZm8nLCBkZXRhaWw6IG1lc3NhZ2UsIGxpZmU6IHRpbWUgfSk7XHJcbiAgfVxyXG5cclxuICB0b2FzdFdhcm4obWVzc2FnZTogc3RyaW5nLCB0aW1lOiBudW1iZXIgPSA0MDAwKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnd2FybicsIHN1bW1hcnk6ICdBdmlzbycsIGRldGFpbDogbWVzc2FnZSwgbGlmZTogdGltZSB9KTtcclxuICB9XHJcblxyXG4gIHRvYXN0RXJyb3IobWVzc2FnZTogc3RyaW5nLCB0aW1lOiBudW1iZXIgPSA0MDAwKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJybycsIGRldGFpbDogbWVzc2FnZSwgbGlmZTogdGltZSB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
36
36
  providedIn: 'root'
37
37
  }]
38
38
  }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL29iamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBVSxFQUFFLFlBQW9CLEVBQUUsS0FBVTtRQUM5RCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUM3QixPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFVLEVBQUUsWUFBb0IsRUFBRSxLQUFVO1FBQzVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsV0FBVyxDQUFJLEdBQU0sRUFBRSxZQUFvQjtRQUNoRCxPQUFPLEdBQUcsQ0FBRSxZQUFpQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBUyxFQUFFLElBQVM7UUFDcEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFDLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELEtBQUssSUFBSSxDQUFDLElBQUksU0FBUyxFQUFDLENBQUM7WUFDckIsSUFBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7Z0JBQ3BCLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQTFCVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0U2VydmljZSB7XG4gIHN0YXRpYyBmaWx0ZXJPYmplY3QoYXJyYXk6IGFueSwgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gYXJyYXkuZmlsdGVyKChlOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBlW3Byb3BlcnR5TmFtZV0gPT09IHZhbHVlO1xuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBmaW5kT2JqZWN0KGFycmF5OiBhbnksIHByb3BlcnR5TmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIGFycmF5LmZpbmQoKGU6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIGVbcHJvcGVydHlOYW1lXSA9PT0gdmFsdWU7XG4gICAgfSk7XG4gIH1cbiAgc3RhdGljIGdldFByb3BlcnR5PFQ+KG9iajogVCwgcHJvcGVydHlOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gb2JqWyhwcm9wZXJ0eU5hbWUgYXMga2V5b2YgdHlwZW9mIG9iaildO1xuICB9XG4gIHN0YXRpYyBvYmpDb21wYXJlKG9iajE6IGFueSwgb2JqMjogYW55KXtcbiAgICBjb25zdCBPYmoxX2tleXMgPSBPYmplY3Qua2V5cyhvYmoxKTtcbiAgICBjb25zdCBPYmoyX2tleXMgPSBPYmplY3Qua2V5cyhvYmoyKTtcbiAgICBpZiAoT2JqMV9rZXlzLmxlbmd0aCAhPT0gT2JqMl9rZXlzLmxlbmd0aCl7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChsZXQgayBvZiBPYmoxX2tleXMpe1xuICAgICAgICBpZihvYmoxW2tdICE9PSBvYmoyW2tdKXtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL29iamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBVSxFQUFFLFlBQW9CLEVBQUUsS0FBVTtRQUM5RCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUM3QixPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFVLEVBQUUsWUFBb0IsRUFBRSxLQUFVO1FBQzVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNLENBQUMsV0FBVyxDQUFJLEdBQU0sRUFBRSxZQUFvQjtRQUNoRCxPQUFPLEdBQUcsQ0FBRSxZQUFpQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBUyxFQUFFLElBQVM7UUFDcEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFDLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELEtBQUssSUFBSSxDQUFDLElBQUksU0FBUyxFQUFDLENBQUM7WUFDckIsSUFBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7Z0JBQ3BCLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQTFCVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE9iamVjdFNlcnZpY2Uge1xyXG4gIHN0YXRpYyBmaWx0ZXJPYmplY3QoYXJyYXk6IGFueSwgcHJvcGVydHlOYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgIHJldHVybiBhcnJheS5maWx0ZXIoKGU6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gZVtwcm9wZXJ0eU5hbWVdID09PSB2YWx1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzdGF0aWMgZmluZE9iamVjdChhcnJheTogYW55LCBwcm9wZXJ0eU5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgcmV0dXJuIGFycmF5LmZpbmQoKGU6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gZVtwcm9wZXJ0eU5hbWVdID09PSB2YWx1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0UHJvcGVydHk8VD4ob2JqOiBULCBwcm9wZXJ0eU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG9ialsocHJvcGVydHlOYW1lIGFzIGtleW9mIHR5cGVvZiBvYmopXTtcclxuICB9XHJcbiAgc3RhdGljIG9iakNvbXBhcmUob2JqMTogYW55LCBvYmoyOiBhbnkpe1xyXG4gICAgY29uc3QgT2JqMV9rZXlzID0gT2JqZWN0LmtleXMob2JqMSk7XHJcbiAgICBjb25zdCBPYmoyX2tleXMgPSBPYmplY3Qua2V5cyhvYmoyKTtcclxuICAgIGlmIChPYmoxX2tleXMubGVuZ3RoICE9PSBPYmoyX2tleXMubGVuZ3RoKXtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBrIG9mIE9iajFfa2V5cyl7XHJcbiAgICAgICAgaWYob2JqMVtrXSAhPT0gb2JqMltrXSl7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9hcGkvdHlwZXMvYnJlYWRjcnVtYi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBCcmVhZENydW1iT3B0aW9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgcm91dGVyTGluazogc3RyaW5nO1xuICBzaG93TWVudTogYm9vbGVhbjtcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9hcGkvdHlwZXMvYnJlYWRjcnVtYi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBCcmVhZENydW1iT3B0aW9uIHtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHJvdXRlckxpbms6IHN0cmluZztcclxuICBzaG93TWVudTogYm9vbGVhbjtcclxufSJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V2ZXJpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3R5cGVzL3NldmVyaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFNldmVyaXR5ID0gXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiIHwgXCJzdWNjZXNzXCIgfCBcImluZm9cIiB8IFwid2FybmluZ1wiIHwgXCJoZWxwXCIgfCBcImRhbmdlclwiO1xuXG5leHBvcnQgZGVmYXVsdCBTZXZlcml0eTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V2ZXJpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3R5cGVzL3NldmVyaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFNldmVyaXR5ID0gXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiIHwgXCJzdWNjZXNzXCIgfCBcImluZm9cIiB8IFwid2FybmluZ1wiIHwgXCJoZWxwXCIgfCBcImRhbmdlclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgU2V2ZXJpdHk7XHJcbiJdfQ==
@@ -190,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
190
190
  ],
191
191
  }]
192
192
  }] });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Vldm8tY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rZWV2by1jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOztBQTREeEYsTUFBTSxPQUFPLHFCQUFxQjs4R0FBckIscUJBQXFCOytHQUFyQixxQkFBcUIsWUF2RDlCLGNBQWM7WUFDZCxlQUFlO1lBQ2YsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsY0FBYztZQUNkLGNBQWM7WUFDZCxhQUFhO1lBQ2IsY0FBYztZQUNkLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLHNCQUFzQixhQUd0QixjQUFjO1lBQ2QsZUFBZTtZQUNmLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGNBQWM7WUFDZCxjQUFjO1lBQ2QsYUFBYTtZQUNiLGNBQWM7WUFDZCxhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsc0JBQXNCOytHQUdiLHFCQUFxQixZQXZEOUIsY0FBYztZQUNkLGVBQWU7WUFDZixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixjQUFjO1lBQ2QsY0FBYztZQUNkLGFBQWE7WUFDYixjQUFjO1lBQ2QsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsc0JBQXNCLEVBR3RCLGNBQWM7WUFDZCxlQUFlO1lBQ2YsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsY0FBYztZQUNkLGNBQWM7WUFDZCxhQUFhO1lBQ2IsY0FBYztZQUNkLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLHVCQUF1QjtZQUN2QixhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixzQkFBc0I7OzJGQUdiLHFCQUFxQjtrQkExRGpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBLdkF2YXRhck1vZHVsZSB9IGZyb20gJy4va3YtYXZhdGFyL2t2LWF2YXRhci5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZCdXR0b25zTW9kdWxlIH0gZnJvbSAnLi9rdi1idXR0b25zL2t2LWJ1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZDYXJvdXNlbE1vZHVsZSB9IGZyb20gJy4va3YtY2Fyb3VzZWwva3YtY2Fyb3VzZWwubW9kdWxlJztcbmltcG9ydCB7IEt2Q2hhcnRNb2R1bGUgfSBmcm9tICcuL2t2LWNoYXJ0L2t2LWNoYXJ0Lm1vZHVsZSc7XG5pbXBvcnQgeyBLdklucHV0c01vZHVsZSB9IGZyb20gJy4va3YtaW5wdXRzL2t2LWlucHV0cy5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZMb2FkZXJNb2R1bGUgfSBmcm9tICcuL2t2LWxvYWRlci9rdi1sb2FkZXIubW9kdWxlJztcbmltcG9ydCB7IEt2TG9naW5Nb2R1bGUgfSBmcm9tICcuL2t2LWxvZ2luL2t2LWxvZ2luLm1vZHVsZSc7XG5pbXBvcnQgeyBLdkxheW91dE1vZHVsZSB9IGZyb20gJy4va3YtbGF5b3V0L2t2LWxheW91dC5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZNb2RhbE1vZHVsZSB9IGZyb20gJy4va3YtbW9kYWwva3YtbW9kYWwubW9kdWxlJztcbmltcG9ydCB7IEt2T3JnY2hhcnRNb2R1bGUgfSBmcm9tICcuL2t2LW9yZ2NoYXJ0L2t2LW9yZ2NoYXJ0Lm1vZHVsZSc7XG5pbXBvcnQgeyBLdlBhZ2VGb3JtTW9kdWxlIH0gZnJvbSAnLi9rdi1wYWdlLWZvcm0va3YtcGFnZS1mb3JtLm1vZHVsZSc7XG5pbXBvcnQgeyBLdlBpY2tMaXN0TW9kdWxlIH0gZnJvbSAnLi9rdi1waWNrLWxpc3Qva3YtcGljay1saXN0Lm1vZHVsZSc7XG5pbXBvcnQgeyBLdlByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnLi9rdi1wcm9ncmVzcy1iYXIva3YtcHJvZ3Jlc3MtYmFyLm1vZHVsZSc7XG5pbXBvcnQgeyBLdlRhYmxlRWRpdE1vZHVsZSB9IGZyb20gJy4va3YtdGFibGUtZWRpdC9rdi10YWJsZS1lZGl0Lm1vZHVsZSc7XG5pbXBvcnQgeyBLdlRhYmxlTW9kdWxlIH0gZnJvbSAnLi9rdi10YWJsZS9rdi10YWJsZS5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZUcmVldGFibGVNb2R1bGUgfSBmcm9tICcuL2t2LXRyZWUtdGFibGUva3YtdHJlZS10YWJsZS5tb2R1bGUnO1xuaW1wb3J0IHsgS3Z0cmVlVmlld01vZHVsZSB9IGZyb20gJy4va3YtdHJlZS12aWV3L2t2LXRyZWUtdmlldy5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZXb3Jrc3BhY2VNb2R1bGUgfSBmcm9tICcuL2t2LXdvcmtzcGFjZS9rdi13b3Jrc3BhY2UubW9kdWxlJztcbmltcG9ydCB7IEt2U3RlcHBlck1vZHVsZSB9IGZyb20gJy4va3Ytc3RlcHBlci9rdi1zdGVwcGVyLm1vZHVsZSc7XG5pbXBvcnQgeyBLdkltYWdlVXBsb2FkTW9kdWxlIH0gZnJvbSAnLi9rdi1pbWFnZS11cGxvYWQva3YtaW1hZ2UtdXBsb2FkLm1vZHVsZSc7XG5pbXBvcnQgeyBLdlRhYmxlRXhwYW5kYWJsZU1vZHVsZSB9IGZyb20gJy4va3YtdGFibGUtZXhwYW5kYWJsZS9rdi10YWJsZS1leHBhbmRhYmxlLm1vZHVsZSc7XG5pbXBvcnQgeyBLdkZpbHRlckNhcmRNb2R1bGUgfSBmcm9tICcuL2t2LWZpbHRlci1jYXJkL2t2LWZpbHRlci1jYXJkLm1vZHVsZSc7XG5pbXBvcnQgeyBLdkdJY29uTW9kdWxlIH0gZnJvbSAnLi9rdi1nLWljb24va3YtZy1pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBLdkZpbGVWaWV3ZXJNb2R1bGUgfSBmcm9tICcuL2t2LWZpbGUtdmlld2VyL2t2LWZpbGUtdmlld2VyLm1vZHVsZSc7XG5pbXBvcnQgeyBLdkJ1dHRvbk1vZHVsZSB9IGZyb20gJy4va3YtYnV0dG9uL2t2LWJ1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZGaWx0ZXJGaWVsZHNldE1vZHVsZSB9IGZyb20gJy4va3YtZmlsdGVyLWZpZWxkc2V0L2t2LWZpbHRlci1maWVsZHNldC5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgS3ZBdmF0YXJNb2R1bGUsXG4gICAgS3ZCdXR0b25zTW9kdWxlLFxuICAgIEt2QnV0dG9uTW9kdWxlLFxuICAgIEt2Q2Fyb3VzZWxNb2R1bGUsXG4gICAgS3ZDaGFydE1vZHVsZSxcbiAgICBLdklucHV0c01vZHVsZSxcbiAgICBLdkxvYWRlck1vZHVsZSxcbiAgICBLdkxvZ2luTW9kdWxlLFxuICAgIEt2TGF5b3V0TW9kdWxlLFxuICAgIEt2TW9kYWxNb2R1bGUsXG4gICAgS3ZPcmdjaGFydE1vZHVsZSxcbiAgICBLdlBhZ2VGb3JtTW9kdWxlLFxuICAgIEt2UGlja0xpc3RNb2R1bGUsXG4gICAgS3ZQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBLdlRhYmxlTW9kdWxlLFxuICAgIEt2VHJlZXRhYmxlTW9kdWxlLFxuICAgIEt2dHJlZVZpZXdNb2R1bGUsXG4gICAgS3ZXb3Jrc3BhY2VNb2R1bGUsXG4gICAgS3ZTdGVwcGVyTW9kdWxlLFxuICAgIEt2SW1hZ2VVcGxvYWRNb2R1bGUsXG4gICAgS3ZUYWJsZUV4cGFuZGFibGVNb2R1bGUsXG4gICAgS3ZHSWNvbk1vZHVsZSxcbiAgICBLdkZpbHRlckNhcmRNb2R1bGUsXG4gICAgS3ZGaWxlVmlld2VyTW9kdWxlLFxuICAgIEt2RmlsdGVyRmllbGRzZXRNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBLdkF2YXRhck1vZHVsZSxcbiAgICBLdkJ1dHRvbnNNb2R1bGUsXG4gICAgS3ZCdXR0b25Nb2R1bGUsXG4gICAgS3ZDYXJvdXNlbE1vZHVsZSxcbiAgICBLdkNoYXJ0TW9kdWxlLFxuICAgIEt2SW5wdXRzTW9kdWxlLFxuICAgIEt2TG9hZGVyTW9kdWxlLFxuICAgIEt2TG9naW5Nb2R1bGUsXG4gICAgS3ZMYXlvdXRNb2R1bGUsXG4gICAgS3ZNb2RhbE1vZHVsZSxcbiAgICBLdk9yZ2NoYXJ0TW9kdWxlLFxuICAgIEt2UGFnZUZvcm1Nb2R1bGUsXG4gICAgS3ZQaWNrTGlzdE1vZHVsZSxcbiAgICBLdlByb2dyZXNzQmFyTW9kdWxlLFxuICAgIEt2VGFibGVFZGl0TW9kdWxlLFxuICAgIEt2VGFibGVNb2R1bGUsXG4gICAgS3ZUcmVldGFibGVNb2R1bGUsXG4gICAgS3Z0cmVlVmlld01vZHVsZSxcbiAgICBLdldvcmtzcGFjZU1vZHVsZSxcbiAgICBLdlN0ZXBwZXJNb2R1bGUsXG4gICAgS3ZJbWFnZVVwbG9hZE1vZHVsZSxcbiAgICBLdlRhYmxlRXhwYW5kYWJsZU1vZHVsZSxcbiAgICBLdkdJY29uTW9kdWxlLFxuICAgIEt2RmlsdGVyQ2FyZE1vZHVsZSxcbiAgICBLdkZpbGVWaWV3ZXJNb2R1bGUsXG4gICAgS3ZGaWx0ZXJGaWVsZHNldE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgS2Vldm9Db21wb25lbnRzTW9kdWxlIHt9XG4iXX0=
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Vldm8tY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rZWV2by1jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFB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UCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgS3ZBdmF0YXJNb2R1bGUgfSBmcm9tICcuL2t2LWF2YXRhci9rdi1hdmF0YXIubW9kdWxlJztcclxuaW1wb3J0IHsgS3ZCdXR0b25zTW9kdWxlIH0gZnJvbSAnLi9rdi1idXR0b25zL2t2LWJ1dHRvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdkNhcm91c2VsTW9kdWxlIH0gZnJvbSAnLi9rdi1jYXJvdXNlbC9rdi1jYXJvdXNlbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdkNoYXJ0TW9kdWxlIH0gZnJvbSAnLi9rdi1jaGFydC9rdi1jaGFydC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdklucHV0c01vZHVsZSB9IGZyb20gJy4va3YtaW5wdXRzL2t2LWlucHV0cy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdkxvYWRlck1vZHVsZSB9IGZyb20gJy4va3YtbG9hZGVyL2t2LWxvYWRlci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdkxvZ2luTW9kdWxlIH0gZnJvbSAnLi9rdi1sb2dpbi9rdi1sb2dpbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdkxheW91dE1vZHVsZSB9IGZyb20gJy4va3YtbGF5b3V0L2t2LWxheW91dC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdk1vZGFsTW9kdWxlIH0gZnJvbSAnLi9rdi1tb2RhbC9rdi1tb2RhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdk9yZ2NoYXJ0TW9kdWxlIH0gZnJvbSAnLi9rdi1vcmdjaGFydC9rdi1vcmdjaGFydC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdlBhZ2VGb3JtTW9kdWxlIH0gZnJvbSAnLi9rdi1wYWdlLWZvcm0va3YtcGFnZS1mb3JtLm1vZHVsZSc7XHJcbmltcG9ydCB7IEt2UGlja0xpc3RNb2R1bGUgfSBmcm9tICcuL2t2LXBpY2stbGlzdC9rdi1waWNrLWxpc3QubW9kdWxlJztcclxuaW1wb3J0IHsgS3ZQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJy4va3YtcHJvZ3Jlc3MtYmFyL2t2LXByb2dyZXNzLWJhci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdlRhYmxlRWRpdE1vZHVsZSB9IGZyb20gJy4va3YtdGFibGUtZWRpdC9rdi10YWJsZS1lZGl0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IEt2VGFibGVNb2R1bGUgfSBmcm9tICcuL2t2LXRhYmxlL2t2LXRhYmxlLm1vZHVsZSc7XHJcbmltcG9ydCB7IEt2VHJlZXRhYmxlTW9kdWxlIH0gZnJvbSAnLi9rdi10cmVlLXRhYmxlL2t2LXRyZWUtdGFibGUubW9kdWxlJztcclxuaW1wb3J0IHsgS3Z0cmVlVmlld01vZHVsZSB9IGZyb20gJy4va3YtdHJlZS12aWV3L2t2LXRyZWUtdmlldy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdldvcmtzcGFjZU1vZHVsZSB9IGZyb20gJy4va3Ytd29ya3NwYWNlL2t2LXdvcmtzcGFjZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdlN0ZXBwZXJNb2R1bGUgfSBmcm9tICcuL2t2LXN0ZXBwZXIva3Ytc3RlcHBlci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdkltYWdlVXBsb2FkTW9kdWxlIH0gZnJvbSAnLi9rdi1pbWFnZS11cGxvYWQva3YtaW1hZ2UtdXBsb2FkLm1vZHVsZSc7XHJcbmltcG9ydCB7IEt2VGFibGVFeHBhbmRhYmxlTW9kdWxlIH0gZnJvbSAnLi9rdi10YWJsZS1leHBhbmRhYmxlL2t2LXRhYmxlLWV4cGFuZGFibGUubW9kdWxlJztcclxuaW1wb3J0IHsgS3ZGaWx0ZXJDYXJkTW9kdWxlIH0gZnJvbSAnLi9rdi1maWx0ZXItY2FyZC9rdi1maWx0ZXItY2FyZC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdkdJY29uTW9kdWxlIH0gZnJvbSAnLi9rdi1nLWljb24va3YtZy1pY29uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEt2RmlsZVZpZXdlck1vZHVsZSB9IGZyb20gJy4va3YtZmlsZS12aWV3ZXIva3YtZmlsZS12aWV3ZXIubW9kdWxlJztcclxuaW1wb3J0IHsgS3ZCdXR0b25Nb2R1bGUgfSBmcm9tICcuL2t2LWJ1dHRvbi9rdi1idXR0b24ubW9kdWxlJztcclxuaW1wb3J0IHsgS3ZGaWx0ZXJGaWVsZHNldE1vZHVsZSB9IGZyb20gJy4va3YtZmlsdGVyLWZpZWxkc2V0L2t2LWZpbHRlci1maWVsZHNldC5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEt2QXZhdGFyTW9kdWxlLFxyXG4gICAgS3ZCdXR0b25zTW9kdWxlLFxyXG4gICAgS3ZCdXR0b25Nb2R1bGUsXHJcbiAgICBLdkNhcm91c2VsTW9kdWxlLFxyXG4gICAgS3ZDaGFydE1vZHVsZSxcclxuICAgIEt2SW5wdXRzTW9kdWxlLFxyXG4gICAgS3ZMb2FkZXJNb2R1bGUsXHJcbiAgICBLdkxvZ2luTW9kdWxlLFxyXG4gICAgS3ZMYXlvdXRNb2R1bGUsXHJcbiAgICBLdk1vZGFsTW9kdWxlLFxyXG4gICAgS3ZPcmdjaGFydE1vZHVsZSxcclxuICAgIEt2UGFnZUZvcm1Nb2R1bGUsXHJcbiAgICBLdlBpY2tMaXN0TW9kdWxlLFxyXG4gICAgS3ZQcm9ncmVzc0Jhck1vZHVsZSxcclxuICAgIEt2VGFibGVNb2R1bGUsXHJcbiAgICBLdlRyZWV0YWJsZU1vZHVsZSxcclxuICAgIEt2dHJlZVZpZXdNb2R1bGUsXHJcbiAgICBLdldvcmtzcGFjZU1vZHVsZSxcclxuICAgIEt2U3RlcHBlck1vZHVsZSxcclxuICAgIEt2SW1hZ2VVcGxvYWRNb2R1bGUsXHJcbiAgICBLdlRhYmxlRXhwYW5kYWJsZU1vZHVsZSxcclxuICAgIEt2R0ljb25Nb2R1bGUsXHJcbiAgICBLdkZpbHRlckNhcmRNb2R1bGUsXHJcbiAgICBLdkZpbGVWaWV3ZXJNb2R1bGUsXHJcbiAgICBLdkZpbHRlckZpZWxkc2V0TW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgS3ZBdmF0YXJNb2R1bGUsXHJcbiAgICBLdkJ1dHRvbnNNb2R1bGUsXHJcbiAgICBLdkJ1dHRvbk1vZHVsZSxcclxuICAgIEt2Q2Fyb3VzZWxNb2R1bGUsXHJcbiAgICBLdkNoYXJ0TW9kdWxlLFxyXG4gICAgS3ZJbnB1dHNNb2R1bGUsXHJcbiAgICBLdkxvYWRlck1vZHVsZSxcclxuICAgIEt2TG9naW5Nb2R1bGUsXHJcbiAgICBLdkxheW91dE1vZHVsZSxcclxuICAgIEt2TW9kYWxNb2R1bGUsXHJcbiAgICBLdk9yZ2NoYXJ0TW9kdWxlLFxyXG4gICAgS3ZQYWdlRm9ybU1vZHVsZSxcclxuICAgIEt2UGlja0xpc3RNb2R1bGUsXHJcbiAgICBLdlByb2dyZXNzQmFyTW9kdWxlLFxyXG4gICAgS3ZUYWJsZUVkaXRNb2R1bGUsXHJcbiAgICBLdlRhYmxlTW9kdWxlLFxyXG4gICAgS3ZUcmVldGFibGVNb2R1bGUsXHJcbiAgICBLdnRyZWVWaWV3TW9kdWxlLFxyXG4gICAgS3ZXb3Jrc3BhY2VNb2R1bGUsXHJcbiAgICBLdlN0ZXBwZXJNb2R1bGUsXHJcbiAgICBLdkltYWdlVXBsb2FkTW9kdWxlLFxyXG4gICAgS3ZUYWJsZUV4cGFuZGFibGVNb2R1bGUsXHJcbiAgICBLdkdJY29uTW9kdWxlLFxyXG4gICAgS3ZGaWx0ZXJDYXJkTW9kdWxlLFxyXG4gICAgS3ZGaWxlVmlld2VyTW9kdWxlLFxyXG4gICAgS3ZGaWx0ZXJGaWVsZHNldE1vZHVsZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS2Vldm9Db21wb25lbnRzTW9kdWxlIHt9XHJcbiJdfQ==
@@ -1,41 +1,59 @@
1
- import { Component, EventEmitter, input, Input, Output, signal, ViewChild, } from '@angular/core';
2
- import { BaseComponentCrud } from '../../api/base-components/base-component-crud';
1
+ import { Component, EventEmitter, HostListener, input, Input, Output, signal, ViewChild, } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
3
  import * as i1 from "../../api/services/imagens.service";
5
4
  import * as i2 from "../../api/services/notification.service";
6
- import * as i3 from "primeng/dynamicdialog";
7
- import * as i4 from "@angular/common";
8
- // import { KvCropImageComponent } from './kv-crop-image/kv-crop-image.component';
9
- export class KvAvatarComponent extends BaseComponentCrud {
10
- constructor(imageService, notificationService, dialogService) {
11
- super(dialogService, notificationService);
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "primeng/slider";
7
+ import * as i5 from "@angular/forms";
8
+ import * as i6 from "../kv-button/kv-button.component";
9
+ import * as i7 from "../kv-label/kv-label.component";
10
+ export class KvAvatarComponent {
11
+ constructor(imageService, notificationService) {
12
12
  this.imageService = imageService;
13
13
  this.notificationService = notificationService;
14
- this.dialogService = dialogService;
15
14
  this.borderColor = '#002542';
16
15
  this.btnsColor = '#002542';
17
16
  this.width = 135;
18
17
  this.height = 135;
19
18
  this.imageUrlChange = new EventEmitter();
20
- this.removerFotoEvent = new EventEmitter();
21
19
  this.onModalOpen = new EventEmitter();
20
+ this.removerFotoEvent = new EventEmitter();
22
21
  this.btnAlterarFoto = false;
23
22
  this.existeLogo = false;
24
23
  this.selectedImage = '';
24
+ this.showCropModal = false;
25
+ this.imageLoaded = false;
26
+ this.imageX = 0;
27
+ this.imageY = 0;
28
+ this.startX = 0;
29
+ this.startY = 0;
30
+ this.valueZoom = 20;
31
+ this.scaleFactor = 2;
32
+ this.canvasWidth = signal(null);
33
+ this.canvasHeight = signal(null);
25
34
  this.imageUrl = input(this.imageService.userDefaultImage());
26
35
  this.imageSource = signal(this.imageService.userDefaultImage());
36
+ this.imgCanva = signal(null);
37
+ this.widthTela = window.innerWidth;
27
38
  }
28
39
  ngOnInit() {
29
40
  this.imageSource.set(this.imageUrl());
30
41
  this.getImageSrc();
31
42
  }
43
+ onWindowResize() {
44
+ this.widthTela = window.innerWidth;
45
+ this.heigthTela = window.innerHeight;
46
+ this.updateCanvasSize();
47
+ this.updateCropBorderSize();
48
+ }
32
49
  getImageSrc() {
33
- if (this.imageUrl && (this.imageUrl().startsWith('data:image') || this.imageUrl().startsWith('http') || this.imageUrl().startsWith('https'))) {
50
+ const imageUrl = this.imageUrl();
51
+ if (imageUrl && (imageUrl.startsWith('data:image') || imageUrl.startsWith('http') || imageUrl.startsWith('https'))) {
34
52
  this.existeLogo = true;
35
53
  }
36
- else if (this.imageUrl.length > 0) {
54
+ else if (imageUrl && imageUrl.length > 0) {
37
55
  this.existeLogo = true;
38
- this.imageSource.set('data:image/jpg;base64,' + this.imageUrl);
56
+ this.imageSource.set('data:image/jpg;base64,' + imageUrl);
39
57
  }
40
58
  else {
41
59
  this.existeLogo = false;
@@ -55,7 +73,8 @@ export class KvAvatarComponent extends BaseComponentCrud {
55
73
  reader.readAsDataURL(file);
56
74
  reader.onload = () => {
57
75
  this.selectedImage = reader.result;
58
- // this.abrirModalRecortarFoto();
76
+ this.onModalOpen.emit(null);
77
+ this.openCropModal();
59
78
  this.existeLogo = false;
60
79
  };
61
80
  }
@@ -82,40 +101,187 @@ export class KvAvatarComponent extends BaseComponentCrud {
82
101
  handleImageError(event) {
83
102
  event.target.src = this.imageService.userDefaultImage();
84
103
  }
85
- // abrirModalRecortarFoto() {
86
- // this.openDialog(
87
- // KvCropImageComponent,
88
- // () => {
89
- // this.imageUrl = this.receberDados();
90
- // this.imageSource.set(this.receberDados() as string)
91
- // this.imageUrlChange.emit(this.imageSource());
92
- // this.existeLogo = true;
93
- // },
94
- // {
95
- // maximizable: false,
96
- // popup: true,
97
- // width: '60%',
98
- // header: 'Recortar',
99
- // id:{imagemSelecionada: this.selectedImage, imagemCortada: ''}
100
- // }
101
- // )
102
- // const [firstKey] = this.dialogService.dialogComponentRefMap.entries().next().value;
103
- // const instance = this.dialogService.getInstance(firstKey);
104
- // instance.config.showHeader = false;
105
- // instance.config.contentStyle = { 'border-radius': '12px' };
106
- // }
107
- receberDados() {
108
- const [firstKey] = this.dialogService.dialogComponentRefMap.entries().next().value;
109
- const instance = this.dialogService.getInstance(firstKey);
110
- return instance.config.data.id.imagemCortada;
111
- }
112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAvatarComponent, deps: [{ token: i1.ImagensService }, { token: i2.NotificationService }, { token: i3.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
113
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvAvatarComponent, selector: "kv-avatar", inputs: { borderColor: { classPropertyName: "borderColor", publicName: "borderColor", isSignal: false, isRequired: false, transformFunction: null }, btnsColor: { classPropertyName: "btnsColor", publicName: "btnsColor", isSignal: false, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: false, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: false, isRequired: false, transformFunction: null }, btnAlterarFoto: { classPropertyName: "btnAlterarFoto", publicName: "btnAlterarFoto", isSignal: false, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { imageUrlChange: "imageUrlChange", removerFotoEvent: "removerFotoEvent", onModalOpen: "onModalOpen" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"image-container\">\n <!-- <img [src]=\"getImageSrc() || imageService.userDefaultImage()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\" (click)=\"openFile()\"> -->\n\n <img [src]=\"imageSource()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\">\n <div class=\"btn\">\n <input #fileInput *ngIf=\"btnAlterarFoto\" id=\"fotoEscolhida\" type=\"file\" accept=\"image/*\" style=\"display:none\" (change)=\"selectFotoSelecionada($any($event))\">\n <button *ngIf=\"btnAlterarFoto && !existeLogo\" class=\"botao-alterar-foto border-circle\" [style.background-color]=\"btnsColor\" (click)=\"openFile()\">\n <i class=\"material-symbols-outlined\">photo_camera</i>\n </button>\n \n <button *ngIf=\"btnAlterarFoto && existeLogo\" [style.background-color]=\"btnsColor\"\n class=\"botao-excluir-foto border-circle\n hover:shadow-3\n active:shadow-5\"\n (click)=\"questionRemoverFoto()\">\n <i class=\"material-symbols-outlined\">delete</i>\n </button>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:35px}:root{--kv-primary-color: #29b92d, --kv-secondary-color: #002542, --kv-terciary-color: #f2f3f5, --kv-primary-hover-color: #249a29, --kv-secondary-hover-color: #002038, --kv-terciary-hover-color: #d9dadb, --kv-primary-active-color: #1c801f, --kv-secondary-active-color: #001729, --kv-terciary-active-color: #c0c1c2, --kv-primary-disable-color: #1c801f, --kv-secondary-disable-color: #001729, --kv-terciary-disable-color: #c0c1c2, }::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}img{border-style:solid;border-width:2px;border-radius:50%;object-fit:cover}i{font-size:22px}.botao-alterar-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-alterar-foto i{color:#fff}.botao-excluir-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-excluir-foto i{color:#fff}.btn{position:absolute;top:87%;left:87%;transform:translate(-50%,-50%)}.image-container{display:inline-block;position:relative}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
104
+ //------- Recorte de imagem -------
105
+ openCropModal() {
106
+ this.showCropModal = true;
107
+ setTimeout(() => {
108
+ const canvas = this.cropCanvas.nativeElement;
109
+ const ctx = canvas.getContext('2d');
110
+ const img = new Image();
111
+ img.src = this.selectedImage;
112
+ img.onload = () => {
113
+ this.imageLoaded = true;
114
+ canvas.height = 400;
115
+ canvas.width = this.retornaTamanhoCanvas();
116
+ this.scaleFactor = canvas.height / img.height;
117
+ this.imageX = (canvas.width - img.width * this.scaleFactor) / 2;
118
+ this.imageY = 0;
119
+ this.canvasWidth.set(canvas.width);
120
+ this.canvasHeight.set(canvas.height);
121
+ this.redrawCanvas(ctx, img);
122
+ this.initializeImageMove(canvas, ctx, img);
123
+ this.initializeMouseWheel(canvas, ctx, img);
124
+ this.valueZoom = this.scaleFactor * 20;
125
+ };
126
+ }, 0);
127
+ }
128
+ cropImage() {
129
+ const canvas = this.cropCanvas.nativeElement;
130
+ const ctx = canvas.getContext('2d');
131
+ if (ctx) {
132
+ const cropRadius = this.getCropRadius();
133
+ const centerX = canvas.width / 2;
134
+ const centerY = canvas.height / 2;
135
+ const imageData = ctx.getImageData(centerX - cropRadius, centerY - cropRadius, cropRadius * 2, cropRadius * 2);
136
+ const newCanvas = document.createElement('canvas');
137
+ const newCtx = newCanvas.getContext('2d');
138
+ newCanvas.width = cropRadius * 2;
139
+ newCanvas.height = cropRadius * 2;
140
+ if (newCtx) {
141
+ newCtx.putImageData(imageData, 0, 0);
142
+ this.imageSource.set(newCanvas.toDataURL());
143
+ this.imageUrlChange.emit(this.imageSource());
144
+ this.existeLogo = true;
145
+ this.closeCropModal();
146
+ }
147
+ }
148
+ }
149
+ onZoomChange(event) {
150
+ const canvas = this.cropCanvas.nativeElement;
151
+ const ctx = canvas.getContext('2d');
152
+ const img = new Image();
153
+ img.src = this.selectedImage;
154
+ img.onload = () => {
155
+ const zoomValue = event.value / 20;
156
+ this.scaleFactor = Math.max(zoomValue, 0.1); // Garantir que o fator de escala não seja menor que 0.1
157
+ this.redrawCanvas(ctx, img);
158
+ };
159
+ }
160
+ retornaTamanhoCanvas() {
161
+ return this.widthTela < 700 ? this.widthTela * 0.7 : this.widthTela * 0.4;
162
+ }
163
+ closeCropModal() {
164
+ this.showCropModal = false;
165
+ this.valueZoom = 20;
166
+ this.imageLoaded = false;
167
+ this.imageX = this.imgCanva()?.width / 2;
168
+ this.imageY = this.imgCanva()?.height / 2;
169
+ this.startX = 0;
170
+ this.startY = 0;
171
+ }
172
+ redrawCanvas(ctx, img) {
173
+ this.updateCropBorderSize();
174
+ if (!ctx)
175
+ return;
176
+ ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
177
+ ctx.filter = 'blur(5px) opacity(0.9)';
178
+ ctx.drawImage(img, this.imageX, this.imageY, img.width * this.scaleFactor, img.height * this.scaleFactor);
179
+ ctx.filter = 'none';
180
+ this.drawImageInCropArea(ctx, img);
181
+ this.drawCropArea(ctx);
182
+ }
183
+ initializeImageMove(canvas, ctx, img) {
184
+ let isDragging = false;
185
+ canvas.style.cursor = 'grab';
186
+ canvas.onmousedown = (e) => {
187
+ isDragging = true;
188
+ canvas.style.cursor = 'grabbing';
189
+ this.startX = e.offsetX - this.imageX;
190
+ this.startY = e.offsetY - this.imageY;
191
+ };
192
+ canvas.onmousemove = (e) => {
193
+ if (isDragging) {
194
+ this.imageX = e.offsetX - this.startX;
195
+ this.imageY = e.offsetY - this.startY;
196
+ this.redrawCanvas(ctx, img);
197
+ }
198
+ };
199
+ canvas.onmouseup = () => {
200
+ isDragging = false;
201
+ canvas.style.cursor = 'grab';
202
+ };
203
+ canvas.onmouseout = () => {
204
+ isDragging = false;
205
+ canvas.style.cursor = 'grab';
206
+ };
207
+ }
208
+ initializeMouseWheel(canvas, ctx, img) {
209
+ canvas.onwheel = (e) => {
210
+ e.preventDefault();
211
+ const delta = e.deltaY > 0 ? -0.1 : 0.1;
212
+ this.scaleFactor = Math.min(Math.max(this.scaleFactor + delta, 0.1), 5); // limita o fator de escala entre 0.1 e 5
213
+ this.redrawCanvas(ctx, img);
214
+ this.valueZoom = this.scaleFactor * 20;
215
+ };
216
+ }
217
+ drawImageInCropArea(ctx, img) {
218
+ if (!ctx)
219
+ return;
220
+ const cropRadius = this.getCropRadius();
221
+ const cropX = (ctx.canvas.width - cropRadius * 2) / 2;
222
+ const cropY = (ctx.canvas.height - cropRadius * 2) / 2;
223
+ ctx.save();
224
+ ctx.beginPath();
225
+ ctx.arc(cropX + cropRadius, cropY + cropRadius, cropRadius, 0, Math.PI * 2, true);
226
+ ctx.clip();
227
+ ctx.drawImage(img, this.imageX, this.imageY, img.width * this.scaleFactor, img.height * this.scaleFactor);
228
+ ctx.restore();
229
+ }
230
+ drawCropArea(ctx) {
231
+ if (!ctx)
232
+ return;
233
+ const cropRadius = this.getCropRadius();
234
+ const cropX = (ctx.canvas.width - cropRadius * 2) / 2;
235
+ const cropY = (ctx.canvas.height - cropRadius * 2) / 2;
236
+ ctx.beginPath();
237
+ ctx.arc(cropX + cropRadius, cropY + cropRadius, cropRadius, 0, Math.PI * 2, true);
238
+ ctx.strokeStyle = 'transparent';
239
+ ctx.lineWidth = 2;
240
+ ctx.stroke();
241
+ }
242
+ getCropRadius() {
243
+ const baseRadius = 200; // Raio base para uma tela de referência
244
+ const referenceWidth = (this.widthTela + 100); // Largura da tela de referência
245
+ const scaleFactor = window.innerWidth / referenceWidth; // Fator de escala com base na largura da tela atual
246
+ const diagonal = Math.sqrt(Math.pow(this.canvasHeight(), 2) + Math.pow(this.canvasWidth(), 2));
247
+ const calculatedRadius = (diagonal / 4);
248
+ const maxRadius = baseRadius * scaleFactor; // Ajusta o raio com base no fator de escala
249
+ return Math.min(calculatedRadius, maxRadius);
250
+ }
251
+ updateCropBorderSize() {
252
+ if (this.cropBorder && this.cropBorder.nativeElement) {
253
+ const radius = this.getCropRadius();
254
+ const cropBorderElement = this.cropBorder.nativeElement;
255
+ cropBorderElement.style.width = `${radius * 2}px`;
256
+ cropBorderElement.style.height = `${radius * 2}px`;
257
+ }
258
+ }
259
+ updateCanvasSize() {
260
+ if (this.cropCanvas && this.cropCanvas.nativeElement) {
261
+ const canvas = this.cropCanvas.nativeElement;
262
+ const ctx = canvas.getContext('2d');
263
+ const img = new Image();
264
+ img.src = this.selectedImage;
265
+ this.imgCanva.set(img);
266
+ img.onload = () => {
267
+ this.imageLoaded = true;
268
+ canvas.width = this.retornaTamanhoCanvas();
269
+ canvas.height = 400;
270
+ this.imageX = (canvas.width - img.width * this.scaleFactor) / 2;
271
+ this.imageY = 0; // A imagem começa no topo do canvas
272
+ this.canvasWidth.set(canvas.width);
273
+ this.canvasHeight.set(canvas.height);
274
+ this.redrawCanvas(ctx, img);
275
+ };
276
+ }
277
+ }
278
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAvatarComponent, deps: [{ token: i1.ImagensService }, { token: i2.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
279
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvAvatarComponent, selector: "kv-avatar", inputs: { borderColor: { classPropertyName: "borderColor", publicName: "borderColor", isSignal: false, isRequired: false, transformFunction: null }, btnsColor: { classPropertyName: "btnsColor", publicName: "btnsColor", isSignal: false, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: false, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: false, isRequired: false, transformFunction: null }, btnAlterarFoto: { classPropertyName: "btnAlterarFoto", publicName: "btnAlterarFoto", isSignal: false, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { imageUrlChange: "imageUrlChange", onModalOpen: "onModalOpen", removerFotoEvent: "removerFotoEvent" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, viewQueries: [{ propertyName: "cropCanvas", first: true, predicate: ["cropCanvas"], descendants: true }, { propertyName: "cropBorder", first: true, predicate: ["cropBorder"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"image-container\">\r\n <img [src]=\"imageSource()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\">\r\n <div class=\"btn\">\r\n <input #fileInput *ngIf=\"btnAlterarFoto\" id=\"fotoEscolhida\" type=\"file\" accept=\"image/*\" style=\"display:none\" (change)=\"selectFotoSelecionada($any($event))\">\r\n <button *ngIf=\"btnAlterarFoto && !existeLogo\" class=\"botao-alterar-foto border-circle\" [style.background-color]=\"btnsColor\" (click)=\"openFile()\">\r\n <i class=\"material-symbols-outlined\">photo_camera</i>\r\n </button>\r\n \r\n <button *ngIf=\"btnAlterarFoto && existeLogo\" [style.background-color]=\"btnsColor\"\r\n class=\"botao-excluir-foto border-circle\r\n hover:shadow-3\r\n active:shadow-5\"\r\n (click)=\"questionRemoverFoto()\">\r\n <i class=\"material-symbols-outlined\">delete</i>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"showCropModal\" class=\"modal\">\r\n <div class=\"modal-content\">\r\n <div class=\"crop-container\">\r\n <canvas #cropCanvas class=\"crop-canvas\"></canvas>\r\n <div #cropBorder class=\"crop-border\"></div>\r\n </div>\r\n\r\n <div class=\"w-full mt-2\">\r\n <kv-label label=\"Zoom\" style=\"text-align: left;\"/>\r\n <p-slider [(ngModel)]=\"valueZoom\" (onChange)=\"onZoomChange($event)\"></p-slider>\r\n </div>\r\n \r\n <div class=\"button-container\"> \r\n <kv-button label=\"Cancelar\" severity=\"tertiary\" icon=\"close\" (click)=\"closeCropModal()\"></kv-button>\r\n <kv-button label=\"Recortar\" severity=\"primary\" icon=\"crop\" (click)=\"cropImage()\" class=\"ml-2\"></kv-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:35px}:root{--kv-primary-color: #29b92d, --kv-secondary-color: #002542, --kv-terciary-color: #f2f3f5, --kv-primary-hover-color: #249a29, --kv-secondary-hover-color: #002038, --kv-terciary-hover-color: #d9dadb, --kv-primary-active-color: #1c801f, --kv-secondary-active-color: #001729, --kv-terciary-active-color: #c0c1c2, --kv-primary-disable-color: #1c801f, --kv-secondary-disable-color: #001729, --kv-terciary-disable-color: #c0c1c2, }::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}img{border-style:solid;border-width:2px;border-radius:50%;object-fit:cover}i{font-size:22px}.botao-alterar-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-alterar-foto i{color:#fff}.botao-excluir-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-excluir-foto i{color:#fff}.btn{position:absolute;top:87%;left:87%;transform:translate(-50%,-50%)}.image-container{display:inline-block;position:relative}.modal{display:block;position:absolute;z-index:9999;left:0;top:0;width:100vw;height:100vh;overflow:auto;background-color:#0006}.modal-content{background-color:#fefefe;margin:1% auto;padding:20px;border:1px solid #888;width:80%;max-width:fit-content;text-align:center;border-radius:12px}.crop-container{display:flex;justify-content:center;align-items:center}.crop-canvas{border:1px solid black;border-radius:12px;width:100%;height:auto}.crop-border{position:absolute;border:2px solid black;border-radius:50%;pointer-events:none}.zoom-container{padding-top:20px;padding-bottom:20px}.button-container{display:flex;align-items:center;justify-content:flex-end;flex-direction:row;margin-top:24px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabel", "ariaLabelledBy", "tabindex", "autofocus"], outputs: ["onChange", "onSlideEnd"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.KvButtonComponent, selector: "kv-button", inputs: ["label", "icon", "loading", "disabled", "severity", "size", "fullWidth"], outputs: ["onClick"] }, { kind: "component", type: i7.KvLabelComponent, selector: "kv-label", inputs: ["componentId", "label"] }] }); }
114
280
  }
115
281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvAvatarComponent, decorators: [{
116
282
  type: Component,
117
- args: [{ selector: 'kv-avatar', template: "<div class=\"image-container\">\n <!-- <img [src]=\"getImageSrc() || imageService.userDefaultImage()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\" (click)=\"openFile()\"> -->\n\n <img [src]=\"imageSource()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\">\n <div class=\"btn\">\n <input #fileInput *ngIf=\"btnAlterarFoto\" id=\"fotoEscolhida\" type=\"file\" accept=\"image/*\" style=\"display:none\" (change)=\"selectFotoSelecionada($any($event))\">\n <button *ngIf=\"btnAlterarFoto && !existeLogo\" class=\"botao-alterar-foto border-circle\" [style.background-color]=\"btnsColor\" (click)=\"openFile()\">\n <i class=\"material-symbols-outlined\">photo_camera</i>\n </button>\n \n <button *ngIf=\"btnAlterarFoto && existeLogo\" [style.background-color]=\"btnsColor\"\n class=\"botao-excluir-foto border-circle\n hover:shadow-3\n active:shadow-5\"\n (click)=\"questionRemoverFoto()\">\n <i class=\"material-symbols-outlined\">delete</i>\n </button>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:35px}:root{--kv-primary-color: #29b92d, --kv-secondary-color: #002542, --kv-terciary-color: #f2f3f5, --kv-primary-hover-color: #249a29, --kv-secondary-hover-color: #002038, --kv-terciary-hover-color: #d9dadb, --kv-primary-active-color: #1c801f, --kv-secondary-active-color: #001729, --kv-terciary-active-color: #c0c1c2, --kv-primary-disable-color: #1c801f, --kv-secondary-disable-color: #001729, --kv-terciary-disable-color: #c0c1c2, }::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}img{border-style:solid;border-width:2px;border-radius:50%;object-fit:cover}i{font-size:22px}.botao-alterar-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-alterar-foto i{color:#fff}.botao-excluir-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-excluir-foto i{color:#fff}.btn{position:absolute;top:87%;left:87%;transform:translate(-50%,-50%)}.image-container{display:inline-block;position:relative}\n"] }]
118
- }], ctorParameters: () => [{ type: i1.ImagensService }, { type: i2.NotificationService }, { type: i3.DialogService }], propDecorators: { borderColor: [{
283
+ args: [{ selector: 'kv-avatar', template: "<div class=\"image-container\">\r\n <img [src]=\"imageSource()\" alt=\"Foto\" class=\"container-foto\" [style.border-color]=\"borderColor\" [style.width.px]=\"width\" [style.height.px]=\"height\" (error)=\"handleImageError($event)\">\r\n <div class=\"btn\">\r\n <input #fileInput *ngIf=\"btnAlterarFoto\" id=\"fotoEscolhida\" type=\"file\" accept=\"image/*\" style=\"display:none\" (change)=\"selectFotoSelecionada($any($event))\">\r\n <button *ngIf=\"btnAlterarFoto && !existeLogo\" class=\"botao-alterar-foto border-circle\" [style.background-color]=\"btnsColor\" (click)=\"openFile()\">\r\n <i class=\"material-symbols-outlined\">photo_camera</i>\r\n </button>\r\n \r\n <button *ngIf=\"btnAlterarFoto && existeLogo\" [style.background-color]=\"btnsColor\"\r\n class=\"botao-excluir-foto border-circle\r\n hover:shadow-3\r\n active:shadow-5\"\r\n (click)=\"questionRemoverFoto()\">\r\n <i class=\"material-symbols-outlined\">delete</i>\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"showCropModal\" class=\"modal\">\r\n <div class=\"modal-content\">\r\n <div class=\"crop-container\">\r\n <canvas #cropCanvas class=\"crop-canvas\"></canvas>\r\n <div #cropBorder class=\"crop-border\"></div>\r\n </div>\r\n\r\n <div class=\"w-full mt-2\">\r\n <kv-label label=\"Zoom\" style=\"text-align: left;\"/>\r\n <p-slider [(ngModel)]=\"valueZoom\" (onChange)=\"onZoomChange($event)\"></p-slider>\r\n </div>\r\n \r\n <div class=\"button-container\"> \r\n <kv-button label=\"Cancelar\" severity=\"tertiary\" icon=\"close\" (click)=\"closeCropModal()\"></kv-button>\r\n <kv-button label=\"Recortar\" severity=\"primary\" icon=\"crop\" (click)=\"cropImage()\" class=\"ml-2\"></kv-button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\";.material-symbols-outlined{font-family:Material Symbols Outlined!important}*{font-family:Inter var,Inter,sans-serif!important}::ng-deep .p-accordion,::ng-deep .p-accordion-header,::ng-deep .p-accordion-content,::ng-deep .p-badge,::ng-deep .p-overlay-badge,::ng-deep .p-breadcrumb,::ng-deep .p-breadcrumb-item,::ng-deep .p-breadcrumb-link,::ng-deep .p-button,::ng-deep .p-calendar,::ng-deep .p-card,::ng-deep .p-card-title,::ng-deep .p-card-subtitle,::ng-deep .p-card-content,::ng-deep .p-checkbox,::ng-deep .p-chip,::ng-deep .p-confirm-dialog,::ng-deep .p-confirm-dialog-message,::ng-deep .p-contextmenu,::ng-deep .p-contextmenu-item,::ng-deep .p-dataview,::ng-deep .p-dataview-content,::ng-deep .p-dialog,::ng-deep .p-dialog-title,::ng-deep .p-dialog-content,::ng-deep .p-dropdown,::ng-deep .p-dropdown-label,::ng-deep .p-dropdown-item,::ng-deep .p-dynamic-dialog,::ng-deep .p-dynamic-dialog-title,::ng-deep .p-dynamic-dialog-content,::ng-deep .p-editor,::ng-deep .p-fieldset,::ng-deep .p-fieldset-legend,::ng-deep .p-fieldset-content,::ng-deep .p-fileupload,::ng-deep .p-inputmask,::ng-deep .p-inputnumber,::ng-deep .p-inputtextarea,::ng-deep .p-inputtext,::ng-deep .p-menu,::ng-deep .p-menuitem,::ng-deep .p-menuitem-text,::ng-deep .p-message,::ng-deep .p-messages,::ng-deep .p-multiselect,::ng-deep .p-multiselect-label,::ng-deep .p-multiselect-item,::ng-deep .p-panelmenu,::ng-deep .p-panelmenu-header,::ng-deep .p-panelmenu-content,::ng-deep .p-panel,::ng-deep .p-panel-header,::ng-deep .p-panel-content,::ng-deep .p-password,::ng-deep .p-picklist,::ng-deep .p-progressbar,::ng-deep .p-radiobutton,::ng-deep .p-rating,::ng-deep .p-sidebar,::ng-deep .p-splitbutton,::ng-deep .p-steps,::ng-deep .p-step,::ng-deep .p-table,::ng-deep .p-datatable,::ng-deep .p-tabview,::ng-deep .p-tabpanel,::ng-deep .p-tag,::ng-deep .p-toast,::ng-deep .p-toolbar,::ng-deep .p-tooltip,::ng-deep .p-tree,::ng-deep .p-treetable,::ng-deep .p-selectbutton,::ng-deep .p-stepper,::ng-deep .p-inputgroup,::ng-deep .p-inputgroup-addon,::ng-deep .p-text{font-family:Inter var,Inter,sans-serif!important}:host ::ng-deep .inputs{height:35px}:root{--kv-primary-color: #29b92d, --kv-secondary-color: #002542, --kv-terciary-color: #f2f3f5, --kv-primary-hover-color: #249a29, --kv-secondary-hover-color: #002038, --kv-terciary-hover-color: #d9dadb, --kv-primary-active-color: #1c801f, --kv-secondary-active-color: #001729, --kv-terciary-active-color: #c0c1c2, --kv-primary-disable-color: #1c801f, --kv-secondary-disable-color: #001729, --kv-terciary-disable-color: #c0c1c2, }::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap;word-wrap:break-word}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .p-dialog-footer{display:flex;justify-content:flex-end;padding:10px;gap:10px}::ng-deep .p-dialog .p-dialog-header .p-dialog-header-icon{display:none}img{border-style:solid;border-width:2px;border-radius:50%;object-fit:cover}i{font-size:22px}.botao-alterar-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-alterar-foto i{color:#fff}.botao-excluir-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-excluir-foto i{color:#fff}.btn{position:absolute;top:87%;left:87%;transform:translate(-50%,-50%)}.image-container{display:inline-block;position:relative}.modal{display:block;position:absolute;z-index:9999;left:0;top:0;width:100vw;height:100vh;overflow:auto;background-color:#0006}.modal-content{background-color:#fefefe;margin:1% auto;padding:20px;border:1px solid #888;width:80%;max-width:fit-content;text-align:center;border-radius:12px}.crop-container{display:flex;justify-content:center;align-items:center}.crop-canvas{border:1px solid black;border-radius:12px;width:100%;height:auto}.crop-border{position:absolute;border:2px solid black;border-radius:50%;pointer-events:none}.zoom-container{padding-top:20px;padding-bottom:20px}.button-container{display:flex;align-items:center;justify-content:flex-end;flex-direction:row;margin-top:24px}\n"] }]
284
+ }], ctorParameters: () => [{ type: i1.ImagensService }, { type: i2.NotificationService }], propDecorators: { borderColor: [{
119
285
  type: Input
120
286
  }], btnsColor: [{
121
287
  type: Input
@@ -125,14 +291,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
125
291
  type: Input
126
292
  }], imageUrlChange: [{
127
293
  type: Output
128
- }], removerFotoEvent: [{
129
- type: Output
130
294
  }], onModalOpen: [{
131
295
  type: Output
296
+ }], removerFotoEvent: [{
297
+ type: Output
132
298
  }], btnAlterarFoto: [{
133
299
  type: Input
300
+ }], cropCanvas: [{
301
+ type: ViewChild,
302
+ args: ['cropCanvas']
303
+ }], cropBorder: [{
304
+ type: ViewChild,
305
+ args: ['cropBorder']
134
306
  }], fileInput: [{
135
307
  type: ViewChild,
136
308
  args: ['fileInput']
309
+ }], onWindowResize: [{
310
+ type: HostListener,
311
+ args: ['window:resize', ['$event']]
137
312
  }] } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWF2YXRhci9rdi1hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtYXZhdGFyL2t2LWF2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7QUFDbEYsa0ZBQWtGO0FBUWxGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxpQkFBaUI7SUFldEQsWUFBbUIsWUFBNEIsRUFDMUIsbUJBQXdDLEVBQ3hDLGFBQTRCO1FBQzVDLEtBQUssQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtRQUgzQixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWhCeEMsZ0JBQVcsR0FBVyxTQUFTLENBQUM7UUFDaEMsY0FBUyxHQUFXLFNBQVMsQ0FBQztRQUM5QixVQUFLLEdBQVcsR0FBRyxDQUFDO1FBQ3BCLFdBQU0sR0FBVyxHQUFHLENBQUM7UUFDcEIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hDLG1CQUFjLEdBQVks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QWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS2tCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEltYWdlbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL2ltYWdlbnMuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudENydWQgfSBmcm9tICcuLi8uLi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWNydWQnO1xuLy8gaW1wb3J0IHsgS3ZDcm9wSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL2t2LWNyb3AtaW1hZ2Uva3YtY3JvcC1pbWFnZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrdi1hdmF0YXInLFxuICB0ZW1wbGF0ZVVybDogJy4va3YtYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4va3YtYXZhdGFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuXG5leHBvcnQgY2xhc3MgS3ZBdmF0YXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50Q3J1ZCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGJvcmRlckNvbG9yOiBzdHJpbmcgPSAnIzAwMjU0Mic7XG4gIEBJbnB1dCgpIGJ0bnNDb2xvcjogc3RyaW5nID0gJyMwMDI1NDInO1xuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyID0gMTM1O1xuICBASW5wdXQoKSBoZWlnaHQ6IG51bWJlciA9IDEzNTtcbiAgQE91dHB1dCgpIGltYWdlVXJsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVyRm90b0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgb25Nb2RhbE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIGJ0bkFsdGVyYXJGb3RvOiBib29sZWFuID0gZmFsc2U7XG4gIFxuICBleGlzdGVMb2dvID0gZmFsc2U7XG4gIHNlbGVjdGVkSW1hZ2U6IHN0cmluZyA9ICcnO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGltYWdlU2VydmljZTogSW1hZ2Vuc1NlcnZpY2UsIFxuICAgICAgICAgICAgICBvdmVycmlkZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLCBcbiAgICAgICAgICAgICAgb3ZlcnJpZGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICkgeyBzdXBlcihkaWFsb2dTZXJ2aWNlLCBub3RpZmljYXRpb25TZXJ2aWNlKSB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbWFnZVNvdXJjZS5zZXQodGhpcy5pbWFnZVVybCgpKVxuICAgIHRoaXMuZ2V0SW1hZ2VTcmMoKVxuICB9XG5cbiAgIGltYWdlVXJsID0gaW5wdXQ8c3RyaW5nPih0aGlzLmltYWdlU2VydmljZS51c2VyRGVmYXVsdEltYWdlKCkpXG4gICBpbWFnZVNvdXJjZSA9IHNpZ25hbDxzdHJpbmc+KHRoaXMuaW1hZ2VTZXJ2aWNlLnVzZXJEZWZhdWx0SW1hZ2UoKSlcblxuICBnZXRJbWFnZVNyYygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbWFnZVVybCAmJiAodGhpcy5pbWFnZVVybCgpLnN0YXJ0c1dpdGgoJ2RhdGE6aW1hZ2UnKSB8fCB0aGlzLmltYWdlVXJsKCkuc3RhcnRzV2l0aCgnaHR0cCcpIHx8IHRoaXMuaW1hZ2VVcmwoKS5zdGFydHNXaXRoKCdodHRwcycpKSkge1xuICAgICAgdGhpcy5leGlzdGVMb2dvID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW1hZ2VVcmwubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5leGlzdGVMb2dvID0gdHJ1ZTtcbiAgICAgIHRoaXMuaW1hZ2VTb3VyY2Uuc2V0KCdkYXRhOmltYWdlL2pwZztiYXNlNjQsJyArIHRoaXMuaW1hZ2VVcmwpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZXhpc3RlTG9nbyA9IGZhbHNlO1xuICAgICAgdGhpcy5pbWFnZVNvdXJjZS5zZXQodGhpcy5pbWFnZVNlcnZpY2UudXNlckRlZmF1bHRJbWFnZSgpKVxuICAgIH0gIFxuICB9XG5cbiAgb3BlbkZpbGUoKSB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3RvRXNjb2xoaWRhJykgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoaW5wdXRFbGVtZW50KSB7XG4gICAgICBpbnB1dEVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RGb3RvU2VsZWNpb25hZGEoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XG4gICAgaWYgKGZpbGUpIHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbWFnZSA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgICBcbiAgICAgICAgLy8gdGhpcy5hYnJpck1vZGFsUmVjb3J0YXJGb3RvKCk7XG4gICAgICAgIHRoaXMuZXhpc3RlTG9nbyA9IGZhbHNlO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBxdWVzdGlvblJlbW92ZXJGb3RvKCl7XG4gICAgY29uc3QgbXNnID0gJzxoMz5Wb2PDqiB0ZW0gY2VydGV6YSBxdWUgZGVzZWphIHJldGlyYXIgYSBmb3RvIGRlc3NlIHVzdcOhcmlvPzwvaDM+JztcblxuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5xdWVzdGlvbih7XG4gICAgICB0eXBlOiAncXVlc3Rpb24nLFxuICAgICAgbWVzc2FnZTogbXNnLFxuICAgICAgYWNjZXB0OiAoZGF0YTphbnkpID0+XG4gICAgICB7XG4gICAgICAgIHRoaXMucmVtb3ZlckZvdG8oKVxuICAgICAgfSxcbiAgICAgIHJlamVjdDogKGRhdGE6YW55KSA9PiB7XG5cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmVtb3ZlckZvdG8oKSB7XG4gICAgdGhpcy5pbWFnZVNvdXJjZS5zZXQoJycpXG4gICAgdGhpcy5yZW1vdmVyRm90b0V2ZW50LmVtaXQoKTtcbiAgICB0aGlzLmV4aXN0ZUxvZ28gPSBmYWxzZTtcbiAgICB0aGlzLmltYWdlVXJsQ2hhbmdlLmVtaXQodGhpcy5pbWFnZVNvdXJjZSgpKTtcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gIH1cblxuICBoYW5kbGVJbWFnZUVycm9yKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC50YXJnZXQuc3JjID0gdGhpcy5pbWFnZVNlcnZpY2UudXNlckRlZmF1bHRJbWFnZSgpO1xuICB9XG5cbiAgLy8gYWJyaXJNb2RhbFJlY29ydGFyRm90bygpIHtcbiAgLy8gICB0aGlzLm9wZW5EaWFsb2coXG4gIC8vICAgICBLdkNyb3BJbWFnZUNvbXBvbmVudCxcbiAgLy8gICAgICgpID0+IHtcbiAgLy8gICAgICAgdGhpcy5pbWFnZVVybCA9IHRoaXMucmVjZWJlckRhZG9zKCk7XG4gIC8vICAgICAgIHRoaXMuaW1hZ2VTb3VyY2Uuc2V0KHRoaXMucmVjZWJlckRhZG9zKCkgYXMgc3RyaW5nKVxuICAvLyAgICAgICB0aGlzLmltYWdlVXJsQ2hhbmdlLmVtaXQodGhpcy5pbWFnZVNvdXJjZSgpKTtcbiAgLy8gICAgICAgdGhpcy5leGlzdGVMb2dvID0gdHJ1ZTtcbiAgLy8gICAgIH0sXG4gIC8vICAgICB7XG4gIC8vICAgICAgIG1heGltaXphYmxlOiBmYWxzZSxcbiAgLy8gICAgICAgcG9wdXA6IHRydWUsXG4gIC8vICAgICAgIHdpZHRoOiAnNjAlJyxcbiAgLy8gICAgICAgaGVhZGVyOiAnUmVjb3J0YXInLFxuICAvLyAgICAgICBpZDp7aW1hZ2VtU2VsZWNpb25hZGE6IHRoaXMuc2VsZWN0ZWRJbWFnZSwgaW1hZ2VtQ29ydGFkYTogJyd9XG4gIC8vICAgICB9XG4gICAgICBcbiAgLy8gICApXG4gIC8vICAgY29uc3QgW2ZpcnN0S2V5XSA9IHRoaXMuZGlhbG9nU2VydmljZS5kaWFsb2dDb21wb25lbnRSZWZNYXAuZW50cmllcygpLm5leHQoKS52YWx1ZTtcbiAgLy8gICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXRJbnN0YW5jZShmaXJzdEtleSk7XG4gIC8vICAgaW5zdGFuY2UuY29uZmlnLnNob3dIZWFkZXIgPSBmYWxzZTtcbiAgLy8gICBpbnN0YW5jZS5jb25maWcuY29udGVudFN0eWxlID0geyAnYm9yZGVyLXJhZGl1cyc6ICcxMnB4JyB9O1xuICAvLyB9XG5cbiAgcmVjZWJlckRhZG9zKCl7XG4gICAgY29uc3QgW2ZpcnN0S2V5XSA9IHRoaXMuZGlhbG9nU2VydmljZS5kaWFsb2dDb21wb25lbnRSZWZNYXAuZW50cmllcygpLm5leHQoKS52YWx1ZTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXRJbnN0YW5jZShmaXJzdEtleSk7XG5cbiAgICByZXR1cm4gaW5zdGFuY2UuY29uZmlnLmRhdGEuaWQuaW1hZ2VtQ29ydGFkYVxuICB9ICBcbn1cbiIsIjxkaXYgY2xhc3M9XCJpbWFnZS1jb250YWluZXJcIj5cbiAgPCEtLSA8aW1nIFtzcmNdPVwiZ2V0SW1hZ2VTcmMoKSB8fCBpbWFnZVNlcnZpY2UudXNlckRlZmF1bHRJbWFnZSgpXCIgYWx0PVwiRm90b1wiIGNsYXNzPVwiY29udGFpbmVyLWZvdG9cIiBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cImJvcmRlckNvbG9yXCIgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIiAoZXJyb3IpPVwiaGFuZGxlSW1hZ2VFcnJvcigkZXZlbnQpXCIgKGNsaWNrKT1cIm9wZW5GaWxlKClcIj4gLS0+XG5cbiAgPGltZyBbc3JjXT1cImltYWdlU291cmNlKClcIiBhbHQ9XCJGb3RvXCIgY2xhc3M9XCJjb250YWluZXItZm90b1wiIFtzdHlsZS5ib3JkZXItY29sb3JdPVwiYm9yZGVyQ29sb3JcIiBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImhlaWdodFwiIChlcnJvcik9XCJoYW5kbGVJbWFnZUVycm9yKCRldmVudClcIj5cbiAgPGRpdiBjbGFzcz1cImJ0blwiPlxuICAgIDxpbnB1dCAjZmlsZUlucHV0ICpuZ0lmPVwiYnRuQWx0ZXJhckZvdG9cIiBpZD1cImZvdG9Fc2NvbGhpZGFcIiB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlLypcIiBzdHlsZT1cImRpc3BsYXk6bm9uZVwiIChjaGFuZ2UpPVwic2VsZWN0Rm90b1NlbGVjaW9uYWRhKCRhbnkoJGV2ZW50KSlcIj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiYnRuQWx0ZXJhckZvdG8gJiYgIWV4aXN0ZUxvZ29cIiBjbGFzcz1cImJvdGFvLWFsdGVyYXItZm90byBib3JkZXItY2lyY2xlXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYnRuc0NvbG9yXCIgKGNsaWNrKT1cIm9wZW5GaWxlKClcIj5cbiAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPnBob3RvX2NhbWVyYTwvaT5cbiAgICA8L2J1dHRvbj5cbiAgICBcbiAgICA8YnV0dG9uICpuZ0lmPVwiYnRuQWx0ZXJhckZvdG8gJiYgZXhpc3RlTG9nb1wiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJ0bnNDb2xvclwiXG4gICAgIGNsYXNzPVwiYm90YW8tZXhjbHVpci1mb3RvIGJvcmRlci1jaXJjbGVcbiAgICAgICAgICAgIGhvdmVyOnNoYWRvdy0zXG4gICAgICAgICAgICBhY3RpdmU6c2hhZG93LTVcIlxuICAgICAoY2xpY2spPVwicXVlc3Rpb25SZW1vdmVyRm90bygpXCI+XG4gICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5kZWxldGU8L2k+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWF2YXRhci9rdi1hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtYXZhdGFyL2t2LWF2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBV3ZCLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFBbUIsWUFBNEIsRUFDM0IsbUJBQXdDO1FBRHpDLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUMzQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBVW5ELGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBQ2hDLGNBQVMsR0FBVyxTQUFTLENBQUM7UUFDOUIsVUFBSyxHQUFXLEdBQUcsQ0FBQztRQUNwQixXQUFNLEdBQVcsR0FBRyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdkMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM3QyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUV6QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBSzNCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLFdBQU0sR0FBVyxDQUFDLENB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U0FBUzt1QkFBQyxXQUFXO2dCQVd0QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIGlucHV0LFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgc2lnbmFsLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEltYWdlbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL2ltYWdlbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1hdmF0YXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LWF2YXRhci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEt2QXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGltYWdlU2VydmljZTogSW1hZ2Vuc1NlcnZpY2UsIFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSkgXHJcbiAgeyBcclxuICAgIHRoaXMud2lkdGhUZWxhID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW1hZ2VTb3VyY2Uuc2V0KHRoaXMuaW1hZ2VVcmwoKSk7XHJcbiAgICB0aGlzLmdldEltYWdlU3JjKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBib3JkZXJDb2xvcjogc3RyaW5nID0gJyMwMDI1NDInO1xyXG4gIEBJbnB1dCgpIGJ0bnNDb2xvcjogc3RyaW5nID0gJyMwMDI1NDInO1xyXG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgPSAxMzU7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXIgPSAxMzU7XHJcbiAgQE91dHB1dCgpIGltYWdlVXJsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG9uTW9kYWxPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsPigpO1xyXG4gIEBPdXRwdXQoKSByZW1vdmVyRm90b0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBJbnB1dCgpIGJ0bkFsdGVyYXJGb3RvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgZXhpc3RlTG9nbyA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkSW1hZ2U6IHN0cmluZyA9ICcnO1xyXG5cclxuICB3aWR0aFRlbGEhOiBudW1iZXI7XHJcbiAgaGVpZ3RoVGVsYSE6IG51bWJlcjtcclxuXHJcbiAgc2hvd0Nyb3BNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGltYWdlTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW1hZ2VYOiBudW1iZXIgPSAwO1xyXG4gIGltYWdlWTogbnVtYmVyID0gMDtcclxuICBzdGFydFg6IG51bWJlciA9IDA7XHJcbiAgc3RhcnRZOiBudW1iZXIgPSAwO1xyXG4gIHZhbHVlWm9vbTogbnVtYmVyID0gMjA7XHJcbiAgc2NhbGVGYWN0b3I6IG51bWJlciA9IDI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2Nyb3BDYW52YXMnKSBjcm9wQ2FudmFzITogRWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnY3JvcEJvcmRlcicpIGNyb3BCb3JkZXIhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNhbnZhc1dpZHRoID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xyXG4gIGNhbnZhc0hlaWdodCA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuXHJcbiAgaW1hZ2VVcmwgPSBpbnB1dDxzdHJpbmc+KHRoaXMuaW1hZ2VTZXJ2aWNlLnVzZXJEZWZhdWx0SW1hZ2UoKSk7XHJcbiAgaW1hZ2VTb3VyY2UgPSBzaWduYWw8c3RyaW5nPih0aGlzLmltYWdlU2VydmljZS51c2VyRGVmYXVsdEltYWdlKCkpO1xyXG4gIGltZ0NhbnZhID0gc2lnbmFsPEhUTUxJbWFnZUVsZW1lbnR8bnVsbD4obnVsbCk7XHJcblxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvbldpbmRvd1Jlc2l6ZSgpIHtcclxuICAgIHRoaXMud2lkdGhUZWxhID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICB0aGlzLmhlaWd0aFRlbGEgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICB0aGlzLnVwZGF0ZUNhbnZhc1NpemUoKTtcclxuICAgIHRoaXMudXBkYXRlQ3JvcEJvcmRlclNpemUoKTtcclxuICB9XHJcblxyXG4gIGdldEltYWdlU3JjKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW1hZ2VVcmwgPSB0aGlzLmltYWdlVXJsKCk7XHJcbiAgICBcclxuICAgIGlmIChpbWFnZVVybCAmJiAoaW1hZ2VVcmwuc3RhcnRzV2l0aCgnZGF0YTppbWFnZScpIHx8IGltYWdlVXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSB8fCBpbWFnZVVybC5zdGFydHNXaXRoKCdodHRwcycpKSkge1xyXG4gICAgICAgIHRoaXMuZXhpc3RlTG9nbyA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKGltYWdlVXJsICYmIGltYWdlVXJsLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmV4aXN0ZUxvZ28gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VTb3VyY2Uuc2V0KCdkYXRhOmltYWdlL2pwZztiYXNlNjQsJyArIGltYWdlVXJsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5leGlzdGVMb2dvID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pbWFnZVNvdXJjZS5zZXQodGhpcy5pbWFnZVNlcnZpY2UudXNlckRlZmF1bHRJbWFnZSgpKTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbiAgb3BlbkZpbGUoKSB7XHJcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvdG9Fc2NvbGhpZGEnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgaWYgKGlucHV0RWxlbWVudCkge1xyXG4gICAgICBpbnB1dEVsZW1lbnQuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdEZvdG9TZWxlY2lvbmFkYShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgaWYgKGZpbGUpIHtcclxuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEltYWdlID0gcmVhZGVyLnJlc3VsdCBhcyBzdHJpbmc7XHJcbiAgICAgICAgdGhpcy5vbk1vZGFsT3Blbi5lbWl0KG51bGwpO1xyXG4gICAgICAgIHRoaXMub3BlbkNyb3BNb2RhbCgpO1xyXG4gICAgICAgIHRoaXMuZXhpc3RlTG9nbyA9IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcXVlc3Rpb25SZW1vdmVyRm90bygpe1xyXG4gICAgY29uc3QgbXNnID0gJzxoMz5Wb2PDqiB0ZW0gY2VydGV6YSBxdWUgZGVzZWphIHJldGlyYXIgYSBmb3RvIGRlc3NlIHVzdcOhcmlvPzwvaDM+JztcclxuXHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UucXVlc3Rpb24oe1xyXG4gICAgICB0eXBlOiAncXVlc3Rpb24nLFxyXG4gICAgICBtZXNzYWdlOiBtc2csXHJcbiAgICAgIGFjY2VwdDogKGRhdGE6YW55KSA9PlxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVyRm90bygpXHJcbiAgICAgIH0sXHJcbiAgICAgIHJlamVjdDogKGRhdGE6YW55KSA9PiB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlckZvdG8oKSB7XHJcbiAgICB0aGlzLmltYWdlU291cmNlLnNldCgnJylcclxuICAgIHRoaXMucmVtb3ZlckZvdG9FdmVudC5lbWl0KCk7XHJcbiAgICB0aGlzLmV4aXN0ZUxvZ28gPSBmYWxzZTtcclxuICAgIHRoaXMuaW1hZ2VVcmxDaGFuZ2UuZW1pdCh0aGlzLmltYWdlU291cmNlKCkpO1xyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW1hZ2VFcnJvcihldmVudDogYW55KSB7XHJcbiAgICBldmVudC50YXJnZXQuc3JjID0gdGhpcy5pbWFnZVNlcnZpY2UudXNlckRlZmF1bHRJbWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8tLS0tLS0tIFJlY29ydGUgZGUgaW1hZ2VtIC0tLS0tLS1cclxuICBcclxuICBvcGVuQ3JvcE1vZGFsKCkge1xyXG4gICAgdGhpcy5zaG93Q3JvcE1vZGFsID0gdHJ1ZTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBjYW52YXMgPSB0aGlzLmNyb3BDYW52YXMubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgICBpbWcuc3JjID0gdGhpcy5zZWxlY3RlZEltYWdlO1xyXG5cclxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlTG9hZGVkID0gdHJ1ZVxyXG5cclxuICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IDQwMDtcclxuICAgICAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy5yZXRvcm5hVGFtYW5ob0NhbnZhcygpO1xyXG4gICAgICAgICAgICB0aGlzLnNjYWxlRmFjdG9yID0gY2FudmFzLmhlaWdodCAvIGltZy5oZWlnaHQ7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmltYWdlWCA9IChjYW52YXMud2lkdGggLSBpbWcud2lkdGggKiB0aGlzLnNjYWxlRmFjdG9yKSAvIDI7XHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VZID0gMDsgXHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhbnZhc1dpZHRoLnNldChjYW52YXMud2lkdGgpO1xyXG4gICAgICAgICAgICB0aGlzLmNhbnZhc0hlaWdodC5zZXQoY2FudmFzLmhlaWdodCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlZHJhd0NhbnZhcyhjdHgsIGltZyk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUltYWdlTW92ZShjYW52YXMsIGN0eCwgaW1nKTtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplTW91c2VXaGVlbChjYW52YXMsIGN0eCwgaW1nKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVab29tID0gdGhpcy5zY2FsZUZhY3RvciAqIDIwO1xyXG4gICAgICAgIH07XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIGNyb3BJbWFnZSgpIHtcclxuICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuY3JvcENhbnZhcy5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICBpZiAoY3R4KSB7XHJcbiAgICAgIGNvbnN0IGNyb3BSYWRpdXMgPSB0aGlzLmdldENyb3BSYWRpdXMoKTtcclxuICAgICAgY29uc3QgY2VudGVyWCA9IGNhbnZhcy53aWR0aCAvIDI7XHJcbiAgICAgIGNvbnN0IGNlbnRlclkgPSBjYW52YXMuaGVpZ2h0IC8gMjtcclxuICBcclxuICAgICAgY29uc3QgaW1hZ2VEYXRhID0gY3R4LmdldEltYWdlRGF0YShjZW50ZXJYIC0gY3JvcFJhZGl1cywgY2VudGVyWSAtIGNyb3BSYWRpdXMsIGNyb3BSYWRpdXMgKiAyLCBjcm9wUmFkaXVzICogMik7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBuZXdDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICAgICAgY29uc3QgbmV3Q3R4ID0gbmV3Q2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgIG5ld0NhbnZhcy53aWR0aCA9IGNyb3BSYWRpdXMgKiAyO1xyXG4gICAgICBuZXdDYW52YXMuaGVpZ2h0ID0gY3JvcFJhZGl1cyAqIDI7XHJcbiAgICAgIFxyXG4gICAgICBpZiAobmV3Q3R4KSB7XHJcbiAgICAgICAgbmV3Q3R4LnB1dEltYWdlRGF0YShpbWFnZURhdGEsIDAsIDApO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VTb3VyY2Uuc2V0KG5ld0NhbnZhcy50b0RhdGFVUkwoKSlcclxuICAgICAgICB0aGlzLmltYWdlVXJsQ2hhbmdlLmVtaXQodGhpcy5pbWFnZVNvdXJjZSgpKTtcclxuICAgICAgICB0aGlzLmV4aXN0ZUxvZ28gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2xvc2VDcm9wTW9kYWwoKTtcclxuICAgICAgfSBcclxuICAgIH0gXHJcbiAgfVxyXG5cclxuICBvblpvb21DaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5jcm9wQ2FudmFzLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xyXG4gICAgaW1nLnNyYyA9IHRoaXMuc2VsZWN0ZWRJbWFnZTtcclxuICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgem9vbVZhbHVlID0gZXZlbnQudmFsdWUgLyAyMDtcclxuICAgICAgICB0aGlzLnNjYWxlRmFjdG9yID0gTWF0aC5tYXgoem9vbVZhbHVlLCAwLjEpOyAvLyBHYXJhbnRpciBxdWUgbyBmYXRvciBkZSBlc2NhbGEgbsOjbyBzZWphIG1lbm9yIHF1ZSAwLjFcclxuICAgICAgICB0aGlzLnJlZHJhd0NhbnZhcyhjdHgsIGltZyk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmV0b3JuYVRhbWFuaG9DYW52YXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLndpZHRoVGVsYSA8IDcwMCA/IHRoaXMud2lkdGhUZWxhICogMC43IDogdGhpcy53aWR0aFRlbGEgKiAwLjRcclxuICB9XHJcblxyXG4gIGNsb3NlQ3JvcE1vZGFsKCkge1xyXG4gICAgdGhpcy5zaG93Q3JvcE1vZGFsID0gZmFsc2U7XHJcbiAgICB0aGlzLnZhbHVlWm9vbSA9IDIwO1xyXG4gICAgdGhpcy5pbWFnZUxvYWRlZCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuaW1hZ2VYID0gdGhpcy5pbWdDYW52YSgpPy53aWR0aCEgLyAyO1xyXG4gICAgdGhpcy5pbWFnZVkgPSB0aGlzLmltZ0NhbnZhKCk/LmhlaWdodCEgLyAyO1xyXG4gICAgdGhpcy5zdGFydFggPSAwO1xyXG4gICAgdGhpcy5zdGFydFkgPSAwO1xyXG4gIH1cclxuXHJcbiAgcmVkcmF3Q2FudmFzKGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCwgaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XHJcbiAgICB0aGlzLnVwZGF0ZUNyb3BCb3JkZXJTaXplKClcclxuXHJcbiAgICBpZiAoIWN0eCkgcmV0dXJuO1xyXG4gICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjdHguY2FudmFzLndpZHRoLCBjdHguY2FudmFzLmhlaWdodCk7XHJcblxyXG4gICAgY3R4LmZpbHRlciA9ICdibHVyKDVweCkgb3BhY2l0eSgwLjkpJztcclxuICAgIFxyXG4gICAgY3R4LmRyYXdJbWFnZShpbWcsIHRoaXMuaW1hZ2VYLCB0aGlzLmltYWdlWSwgaW1nLndpZHRoICogdGhpcy5zY2FsZUZhY3RvciwgaW1nLmhlaWdodCAqIHRoaXMuc2NhbGVGYWN0b3IpO1xyXG4gICAgY3R4LmZpbHRlciA9ICdub25lJztcclxuICAgIFxyXG4gICAgdGhpcy5kcmF3SW1hZ2VJbkNyb3BBcmVhKGN0eCwgaW1nKTtcclxuXHJcbiAgICB0aGlzLmRyYXdDcm9wQXJlYShjdHgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUltYWdlTW92ZShjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50LCBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGwsIGltZzogSFRNTEltYWdlRWxlbWVudCkge1xyXG4gICAgbGV0IGlzRHJhZ2dpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gJ2dyYWInO1xyXG5cclxuICAgIGNhbnZhcy5vbm1vdXNlZG93biA9IChlKSA9PiB7XHJcbiAgICAgICAgaXNEcmFnZ2luZyA9IHRydWU7XHJcbiAgICAgICAgY2FudmFzLnN0eWxlLmN1cnNvciA9ICdncmFiYmluZyc7IFxyXG4gICAgICAgIHRoaXMuc3RhcnRYID0gZS5vZmZzZXRYIC0gdGhpcy5pbWFnZVg7XHJcbiAgICAgICAgdGhpcy5zdGFydFkgPSBlLm9mZnNldFkgLSB0aGlzLmltYWdlWTtcclxuICAgIH07XHJcblxyXG4gICAgY2FudmFzLm9ubW91c2Vtb3ZlID0gKGUpID0+IHtcclxuICAgICAgICBpZiAoaXNEcmFnZ2luZykge1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlWCA9IGUub2Zmc2V0WCAtIHRoaXMuc3RhcnRYO1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlWSA9IGUub2Zmc2V0WSAtIHRoaXMuc3RhcnRZO1xyXG4gICAgICAgICAgICB0aGlzLnJlZHJhd0NhbnZhcyhjdHgsIGltZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjYW52YXMub25tb3VzZXVwID0gKCkgPT4ge1xyXG4gICAgICAgIGlzRHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgICAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gJ2dyYWInO1xyXG4gICAgfTtcclxuXHJcbiAgICBjYW52YXMub25tb3VzZW91dCA9ICgpID0+IHtcclxuICAgICAgICBpc0RyYWdnaW5nID0gZmFsc2U7XHJcbiAgICAgICAgY2FudmFzLnN0eWxlLmN1cnNvciA9ICdncmFiJztcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplTW91c2VXaGVlbChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50LCBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGwsIGltZzogSFRNTEltYWdlRWxlbWVudCkge1xyXG4gICAgY2FudmFzLm9ud2hlZWwgPSAoZSkgPT4ge1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBjb25zdCBkZWx0YSA9IGUuZGVsdGFZID4gMCA/IC0wLjEgOiAwLjE7XHJcbiAgICAgICAgdGhpcy5zY2FsZUZhY3RvciA9IE1hdGgubWluKE1hdGgubWF4KHRoaXMuc2NhbGVGYWN0b3IgKyBkZWx0YSwgMC4xKSwgNSk7IC8vIGxpbWl0YSBvIGZhdG9yIGRlIGVzY2FsYSBlbnRyZSAwLjEgZSA1XHJcbiAgICAgICAgdGhpcy5yZWRyYXdDYW52YXMoY3R4LCBpbWcpO1xyXG4gICAgICAgIHRoaXMudmFsdWVab29tID0gdGhpcy5zY2FsZUZhY3RvciAqIDIwO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG5cclxuICBkcmF3SW1hZ2VJbkNyb3BBcmVhKGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgbnVsbCwgaW1nOiBIVE1MSW1hZ2VFbGVtZW50KSB7XHJcbiAgICBpZiAoIWN0eCkgcmV0dXJuO1xyXG4gIFxyXG4gICAgY29uc3QgY3JvcFJhZGl1cyA9IHRoaXMuZ2V0Q3JvcFJhZGl1cygpO1xyXG4gICAgY29uc3QgY3JvcFggPSAoY3R4LmNhbnZhcy53aWR0aCAtIGNyb3BSYWRpdXMgKiAyKSAvIDI7XHJcbiAgICBjb25zdCBjcm9wWSA9IChjdHguY2FudmFzLmhlaWdodCAtIGNyb3BSYWRpdXMgKiAyKSAvIDI7XHJcbiAgXHJcbiAgICBjdHguc2F2ZSgpO1xyXG4gICAgY3R4LmJlZ2luUGF0aCgpO1xyXG4gICAgY3R4LmFyYyhjcm9wWCArIGNyb3BSYWRpdXMsIGNyb3BZICsgY3JvcFJhZGl1cywgY3JvcFJhZGl1cywgMCwgTWF0aC5QSSAqIDIsIHRydWUpO1xyXG4gICAgY3R4LmNsaXAoKTtcclxuICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCB0aGlzLmltYWdlWCwgdGhpcy5pbWFnZVksIGltZy53aWR0aCAqIHRoaXMuc2NhbGVGYWN0b3IsIGltZy5oZWlnaHQgKiB0aGlzLnNjYWxlRmFjdG9yKTtcclxuICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgfVxyXG4gIFxyXG4gIGRyYXdDcm9wQXJlYShjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGwpIHtcclxuICAgIGlmICghY3R4KSByZXR1cm47XHJcbiAgXHJcbiAgICBjb25zdCBjcm9wUmFkaXVzID0gdGhpcy5nZXRDcm9wUmFkaXVzKCk7XHJcbiAgICBjb25zdCBjcm9wWCA9IChjdHguY2FudmFzLndpZHRoIC0gY3JvcFJhZGl1cyAqIDIpIC8gMjtcclxuICAgIGNvbnN0IGNyb3BZID0gKGN0eC5jYW52YXMuaGVpZ2h0IC0gY3JvcFJhZGl1cyAqIDIpIC8gMjtcclxuICBcclxuICAgIGN0eC5iZWdpblBhdGgoKTtcclxuICAgIGN0eC5hcmMoY3JvcFggKyBjcm9wUmFkaXVzLCBjcm9wWSArIGNyb3BSYWRpdXMsIGNyb3BSYWRpdXMsIDAsIE1hdGguUEkgKiAyLCB0cnVlKTtcclxuICAgIGN0eC5zdHJva2VTdHlsZSA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICBjdHgubGluZVdpZHRoID0gMjtcclxuICAgIGN0eC5zdHJva2UoKTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0Q3JvcFJhZGl1cygpOiBudW1iZXIge1xyXG4gICAgY29uc3QgYmFzZVJhZGl1cyA9IDIwMDsgLy8gUmFpbyBiYXNlIHBhcmEgdW1hIHRlbGEgZGUgcmVmZXLDqm5jaWFcclxuICAgIGNvbnN0IHJlZmVyZW5jZVdpZHRoID0gKHRoaXMud2lkdGhUZWxhICsgMTAwKSA7IC8vIExhcmd1cmEgZGEgdGVsYSBkZSByZWZlcsOqbmNpYVxyXG4gICAgY29uc3Qgc2NhbGVGYWN0b3IgPSB3aW5kb3cuaW5uZXJXaWR0aCAvIHJlZmVyZW5jZVdpZHRoOyAvLyBGYXRvciBkZSBlc2NhbGEgY29tIGJhc2UgbmEgbGFyZ3VyYSBkYSB0ZWxhIGF0dWFsXHJcbiAgICBjb25zdCBkaWFnb25hbCA9IE1hdGguc3FydChNYXRoLnBvdyh0aGlzLmNhbnZhc0hlaWdodCgpISwgMikgKyBNYXRoLnBvdyh0aGlzLmNhbnZhc1dpZHRoKCkhLCAyKSk7XHJcbiAgICBjb25zdCBjYWxjdWxhdGVkUmFkaXVzID0gKGRpYWdvbmFsIC8gNCk7XHJcbiAgICBjb25zdCBtYXhSYWRpdXMgPSBiYXNlUmFkaXVzICogc2NhbGVGYWN0b3I7IC8vIEFqdXN0YSBvIHJhaW8gY29tIGJhc2Ugbm8gZmF0b3IgZGUgZXNjYWxhXHJcblxyXG4gICAgcmV0dXJuIE1hdGgubWluKGNhbGN1bGF0ZWRSYWRpdXMsIG1heFJhZGl1cyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDcm9wQm9yZGVyU2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLmNyb3BCb3JkZXIgJiYgdGhpcy5jcm9wQm9yZGVyLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgY29uc3QgcmFkaXVzID0gdGhpcy5nZXRDcm9wUmFkaXVzKCk7XHJcbiAgICAgIGNvbnN0IGNyb3BCb3JkZXJFbGVtZW50ID0gdGhpcy5jcm9wQm9yZGVyLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGNyb3BCb3JkZXJFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7cmFkaXVzICogMn1weGA7XHJcbiAgICAgIGNyb3BCb3JkZXJFbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke3JhZGl1cyAqIDJ9cHhgO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICB1cGRhdGVDYW52YXNTaXplKCkge1xyXG4gICAgaWYgKHRoaXMuY3JvcENhbnZhcyAmJiB0aGlzLmNyb3BDYW52YXMubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICBjb25zdCBjYW52YXMgPSB0aGlzLmNyb3BDYW52YXMubmF0aXZlRWxlbWVudDtcclxuICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICBpbWcuc3JjID0gdGhpcy5zZWxlY3RlZEltYWdlO1xyXG4gICAgICB0aGlzLmltZ0NhbnZhLnNldChpbWcpXHJcbiAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pbWFnZUxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy5yZXRvcm5hVGFtYW5ob0NhbnZhcygpO1xyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSA0MDA7XHJcblxyXG4gICAgICAgIHRoaXMuaW1hZ2VYID0gKGNhbnZhcy53aWR0aCAtIGltZy53aWR0aCAqIHRoaXMuc2NhbGVGYWN0b3IpIC8gMjtcclxuICAgICAgICB0aGlzLmltYWdlWSA9IDA7IC8vIEEgaW1hZ2VtIGNvbWXDp2Egbm8gdG9wbyBkbyBjYW52YXNcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmNhbnZhc1dpZHRoLnNldChjYW52YXMud2lkdGgpXHJcbiAgICAgICAgdGhpcy5jYW52YXNIZWlnaHQuc2V0KGNhbnZhcy5oZWlnaHQpXHJcbiAgICAgICAgdGhpcy5yZWRyYXdDYW52YXMoY3R4LCBpbWcpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpbWFnZS1jb250YWluZXJcIj5cclxuICA8aW1nIFtzcmNdPVwiaW1hZ2VTb3VyY2UoKVwiIGFsdD1cIkZvdG9cIiBjbGFzcz1cImNvbnRhaW5lci1mb3RvXCIgW3N0eWxlLmJvcmRlci1jb2xvcl09XCJib3JkZXJDb2xvclwiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCIgKGVycm9yKT1cImhhbmRsZUltYWdlRXJyb3IoJGV2ZW50KVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJidG5cIj5cclxuICAgIDxpbnB1dCAjZmlsZUlucHV0ICpuZ0lmPVwiYnRuQWx0ZXJhckZvdG9cIiBpZD1cImZvdG9Fc2NvbGhpZGFcIiB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlLypcIiBzdHlsZT1cImRpc3BsYXk6bm9uZVwiIChjaGFuZ2UpPVwic2VsZWN0Rm90b1NlbGVjaW9uYWRhKCRhbnkoJGV2ZW50KSlcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJidG5BbHRlcmFyRm90byAmJiAhZXhpc3RlTG9nb1wiIGNsYXNzPVwiYm90YW8tYWx0ZXJhci1mb3RvIGJvcmRlci1jaXJjbGVcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJidG5zQ29sb3JcIiAoY2xpY2spPVwib3BlbkZpbGUoKVwiPlxyXG4gICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5waG90b19jYW1lcmE8L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIFxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cImJ0bkFsdGVyYXJGb3RvICYmIGV4aXN0ZUxvZ29cIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJidG5zQ29sb3JcIlxyXG4gICAgIGNsYXNzPVwiYm90YW8tZXhjbHVpci1mb3RvIGJvcmRlci1jaXJjbGVcclxuICAgICAgICAgICAgaG92ZXI6c2hhZG93LTNcclxuICAgICAgICAgICAgYWN0aXZlOnNoYWRvdy01XCJcclxuICAgICAoY2xpY2spPVwicXVlc3Rpb25SZW1vdmVyRm90bygpXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmRlbGV0ZTwvaT5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJzaG93Q3JvcE1vZGFsXCIgY2xhc3M9XCJtb2RhbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY3JvcC1jb250YWluZXJcIj5cclxuICAgICAgPGNhbnZhcyAjY3JvcENhbnZhcyBjbGFzcz1cImNyb3AtY2FudmFzXCI+PC9jYW52YXM+XHJcbiAgICAgIDxkaXYgI2Nyb3BCb3JkZXIgY2xhc3M9XCJjcm9wLWJvcmRlclwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInctZnVsbCBtdC0yXCI+XHJcbiAgICAgIDxrdi1sYWJlbCBsYWJlbD1cIlpvb21cIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnQ7XCIvPlxyXG4gICAgICA8cC1zbGlkZXIgWyhuZ01vZGVsKV09XCJ2YWx1ZVpvb21cIiAob25DaGFuZ2UpPVwib25ab29tQ2hhbmdlKCRldmVudClcIj48L3Atc2xpZGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj4gIFxyXG4gICAgICA8a3YtYnV0dG9uIGxhYmVsPVwiQ2FuY2VsYXJcIiBzZXZlcml0eT1cInRlcnRpYXJ5XCIgaWNvbj1cImNsb3NlXCIgKGNsaWNrKT1cImNsb3NlQ3JvcE1vZGFsKClcIj48L2t2LWJ1dHRvbj5cclxuICAgICAgPGt2LWJ1dHRvbiBsYWJlbD1cIlJlY29ydGFyXCIgc2V2ZXJpdHk9XCJwcmltYXJ5XCIgaWNvbj1cImNyb3BcIiAoY2xpY2spPVwiY3JvcEltYWdlKClcIiBjbGFzcz1cIm1sLTJcIj48L2t2LWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19