keevo-components 1.8.454 → 1.8.455

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 (66) hide show
  1. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +1 -1
  2. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +1 -1
  3. package/esm2022/lib/api/base-components/base-component-crud.mjs +1 -1
  4. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +1 -1
  5. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +1 -1
  6. package/esm2022/lib/api/components/chart/orchart.config.mjs +1 -1
  7. package/esm2022/lib/api/components/chart/orchartnode.mjs +1 -1
  8. package/esm2022/lib/api/components/table/table.config.column.mjs +1 -1
  9. package/esm2022/lib/api/components/table/table.paginate.mjs +1 -1
  10. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +1 -1
  11. package/esm2022/lib/api/components/tree-table/tree-table-keys.mjs +1 -1
  12. package/esm2022/lib/api/modules/primeng.module.mjs +1 -1
  13. package/esm2022/lib/api/pipes/capitalize.pipe.mjs +1 -1
  14. package/esm2022/lib/api/services/breadcrumbs.service.mjs +1 -1
  15. package/esm2022/lib/api/services/chat.service.mjs +1 -1
  16. package/esm2022/lib/api/services/component.service.mjs +5 -2
  17. package/esm2022/lib/api/services/form.service.mjs +1 -1
  18. package/esm2022/lib/api/services/image.cutter.service.mjs +43 -43
  19. package/esm2022/lib/api/services/notification.service.mjs +1 -1
  20. package/esm2022/lib/api/services/orgchart.service.mjs +1 -1
  21. package/esm2022/lib/components/keevo-components.module.mjs +1 -1
  22. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +3 -3
  23. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +1 -1
  24. package/esm2022/lib/components/kv-button/kv-button.component.mjs +3 -3
  25. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +3 -3
  26. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.component.mjs +3 -3
  27. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.module.mjs +1 -1
  28. package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +3 -3
  29. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.mjs +3 -3
  30. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.mjs +1 -1
  31. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +3 -3
  32. package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +3 -3
  33. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +3 -3
  34. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +3 -3
  35. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +3 -3
  36. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +3 -3
  37. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +3 -3
  38. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +1 -1
  39. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +3 -3
  40. package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +3 -3
  41. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +3 -3
  42. package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +3 -3
  43. package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +3 -3
  44. package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +3 -3
  45. package/esm2022/lib/components/kv-login/kv-login.component.mjs +3 -3
  46. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +11 -11
  47. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +1 -1
  48. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +3 -3
  49. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +3 -3
  50. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +1 -1
  51. package/esm2022/lib/components/kv-report/kv-report.component.mjs +3 -3
  52. package/esm2022/lib/components/kv-table/kv-table.component.mjs +3 -3
  53. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +3 -3
  54. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +3 -3
  55. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +3 -3
  56. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +3 -3
  57. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +1 -1
  58. package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +3 -3
  59. package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +3 -3
  60. package/esm2022/public-api.mjs +1 -1
  61. package/fesm2022/keevo-components.mjs +116 -113
  62. package/fesm2022/keevo-components.mjs.map +1 -1
  63. package/package.json +2 -2
  64. package/src/lib/components/keevo-components-styles.scss +183 -183
  65. package/src/lib/components/kv-button/kv-button.component.scss +203 -203
  66. package/src/lib/components/kv-table/kv-table.component.scss +202 -202
@@ -47,11 +47,11 @@ export class KvLoginComponent extends BaseComponentCrudForm {
47
47
  }
48
48
  }
49
49
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvLoginComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvLoginComponent, selector: "kv-login", inputs: { Background: "Background", SystemLogo: "SystemLogo", SystemColorPrimary: "SystemColorPrimary", SystemColorSecondary: "SystemColorSecondary" }, outputs: { onLogin: "onLogin" }, usesInheritance: true, ngImport: i0, template: "<div\r\n id=\"kvLogin-container\"\r\n class=\"flex justify-content-center align-items-center flex-column h-screen \"\r\n [style.background-image]=\"'url(' + Background + ')'\"\r\n>\r\n\r\n <!-- CARD PRINCIPAL -->\r\n <div\r\n [formGroup]=\" formGroup\"\r\n id=\"kvLogin-card\"\r\n class=\"flex flex-column align-items-center justify-content-between bg-white border-round-xl\"\r\n [style.width.rem]=\"20\"\r\n [style.height.rem]=\"28\"\r\n (keydown.enter)=\"save()\"\r\n >\r\n\r\n <!-- LOGO DO SISTEMA -->\r\n <div class=\"flex flex-row align-items-center justify-content-center p-3 mt-2\">\r\n <img\r\n alt=\"Logo do Sistema\"\r\n [style.height.rem]=\"4\"\r\n [src]=\"SystemLogo\"\r\n />\r\n </div>\r\n\r\n <!-- INFORMA\u00C7\u00D5ES CENTRAIS -->\r\n <div class=\" grid formgrid p-fluid gap-2 p-3 pb-0\">\r\n\r\n <div\r\n class=\"mb-2 w-full flex flex-row align-items-center justify-content-srart gap-1 font-medium\"\r\n >\r\n <img\r\n [style.height.rem]=\"1.5\"\r\n class=\"ml-2\"\r\n alt=\"keepass\"\r\n src=\"https://work-assets.keevo.com.br/img/icone-keepass-preto.png\"\r\n />\r\n <label\r\n class=\"mt-1 text-sm\"\r\n >\r\n Entrar com KeePass\r\n </label>\r\n </div>\r\n\r\n <kv-input-text\r\n componentId=\"usuario\"\r\n label=\"CPF ou e-mail\"\r\n formControlName=\"usuario\"\r\n class=\"field col-12\"\r\n >\r\n </kv-input-text>\r\n\r\n <kv-input-password\r\n componentId=\"senha\"\r\n label=\"Senha\"\r\n [toggleMask]=\"true\"\r\n formControlName=\"senha\"\r\n [required]=\"true\"\r\n class=\"field col-12\"\r\n >\r\n </kv-input-password>\r\n\r\n <div\r\n class=\"flex w-full justify-content-end mb-2 h-2\"\r\n id=\"kvLogin-esqueceu-senha\"\r\n >\r\n <a\r\n href=\"https://keepass.seg.br/redefinirsenha\"\r\n target=\"_blank\"\r\n class=\"text-xs\"\r\n [style.color]=\"SystemColorPrimary\"\r\n >\r\n Esqueceu a senha?\r\n </a>\r\n </div>\r\n\r\n <div id=\"kvLogin-cadastro\" class=\"flex w-full justify-content-center h-2\">\r\n <label\r\n class=\"text-xs font-normal\"\r\n >\r\n Novo no KeePass?\r\n <a\r\n href=\"https://keepass.seg.br/cadastrar\"\r\n target=\"_blank\"\r\n class=\"text-xs m-0 p-0\"\r\n [style.color]=\"SystemColorPrimary\"\r\n >\r\n Cadastre-se.\r\n </a>\r\n </label>\r\n </div>\r\n </div>\r\n \r\n\r\n <button\r\n id=\"kvLogin-login-button\"\r\n [style.background-color]=\"SystemColorPrimary\"\r\n [style.color]=\"'white'\"\r\n class=\"w-full \"\r\n (click)=\"save()\"\r\n [style.height.px]=\"50\"\r\n ><strong>Login</strong></button>\r\n </div>\r\n\r\n <div class=\"logo-keevo\">\r\n <img\r\n src=\"https://work-assets.keevo.com.br/img/keevo-logo-temp.png\"\r\n />\r\n <label\r\n class=\"text-xs\"\r\n [style.color]=\"SystemColorSecondary\"\r\n >\r\n Copyright \u00A9 2024 - Keevo Ltda Todos os direitos reservados.\r\n </label>\r\n </div>\r\n\r\n</div>", styles: ["@charset \"UTF-8\";:host{overflow:hidden}#kvLogin-container{font-family:Inter var,Roboto,Arial,Helvetica,sans-serif!important;background:no-repeat center;background-size:cover;padding:20px}#kvLogin-card{box-shadow:#00000059 0 5px 15px}#kvLogin-esqueceu-senha{position:relative;bottom:.5rem;padding-right:10px}#kvLogin-esqueceu-senha a{text-decoration:none;font-weight:500;cursor:pointer;transition:text-shadow .2s ease-in-out}#kvLogin-esqueceu-senha a:hover{text-shadow:0 0 2px rgba(158,158,158,.692)}#kvLogin-cadastro{margin-bottom:1rem}#kvLogin-cadastro a{text-decoration:none;font-weight:600;cursor:pointer;gap:3px;transition:text-shadow .2s ease-in-out}#kvLogin-cadastro a:hover{text-shadow:0 0 2px rgba(158,158,158,.692)}#kvLogin-login-button{width:100%;height:3rem!important;border-radius:0 0 .5rem .5rem;border:none;cursor:pointer;font-size:14px;transition:all ease-in .2s;-webkit-transition:all ease-in .2s;-moz-transition:all ease-in .2s;-ms-transition:all ease-in .2s;-o-transition:all ease-in .2s}#kvLogin-login-button:hover{opacity:.9}.logo-keevo{text-align:center}.logo-keevo img{height:2rem;width:auto;display:block;margin:0 auto;margin-top:5rem}.logo-keevo label{display:block;margin-top:.5rem}@media (max-height: 700px){.logo-keevo img{margin-top:1rem}#kvLogin-container{padding:10px}#kvLogin-container img{max-width:90%}}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.KvInputPasswordComponent, selector: "kv-input-password", inputs: ["feedback", "mediumRegex", "strongRegex", "toggleMask"] }, { kind: "component", type: i3.KvInputTextComponent, selector: "kv-input-text", inputs: ["textCaptalized"] }] }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvLoginComponent, selector: "kv-login", inputs: { Background: "Background", SystemLogo: "SystemLogo", SystemColorPrimary: "SystemColorPrimary", SystemColorSecondary: "SystemColorSecondary" }, outputs: { onLogin: "onLogin" }, usesInheritance: true, ngImport: i0, template: "<div\n id=\"kvLogin-container\"\n class=\"flex justify-content-center align-items-center flex-column h-screen \"\n [style.background-image]=\"'url(' + Background + ')'\"\n>\n\n <!-- CARD PRINCIPAL -->\n <div\n [formGroup]=\" formGroup\"\n id=\"kvLogin-card\"\n class=\"flex flex-column align-items-center justify-content-between bg-white border-round-xl\"\n [style.width.rem]=\"20\"\n [style.height.rem]=\"28\"\n (keydown.enter)=\"save()\"\n >\n\n <!-- LOGO DO SISTEMA -->\n <div class=\"flex flex-row align-items-center justify-content-center p-3 mt-2\">\n <img\n alt=\"Logo do Sistema\"\n [style.height.rem]=\"4\"\n [src]=\"SystemLogo\"\n />\n </div>\n\n <!-- INFORMA\u00C7\u00D5ES CENTRAIS -->\n <div class=\" grid formgrid p-fluid gap-2 p-3 pb-0\">\n\n <div\n class=\"mb-2 w-full flex flex-row align-items-center justify-content-srart gap-1 font-medium\"\n >\n <img\n [style.height.rem]=\"1.5\"\n class=\"ml-2\"\n alt=\"keepass\"\n src=\"https://work-assets.keevo.com.br/img/icone-keepass-preto.png\"\n />\n <label\n class=\"mt-1 text-sm\"\n >\n Entrar com KeePass\n </label>\n </div>\n\n <kv-input-text\n componentId=\"usuario\"\n label=\"CPF ou e-mail\"\n formControlName=\"usuario\"\n class=\"field col-12\"\n >\n </kv-input-text>\n\n <kv-input-password\n componentId=\"senha\"\n label=\"Senha\"\n [toggleMask]=\"true\"\n formControlName=\"senha\"\n [required]=\"true\"\n class=\"field col-12\"\n >\n </kv-input-password>\n\n <div\n class=\"flex w-full justify-content-end mb-2 h-2\"\n id=\"kvLogin-esqueceu-senha\"\n >\n <a\n href=\"https://keepass.seg.br/redefinirsenha\"\n target=\"_blank\"\n class=\"text-xs\"\n [style.color]=\"SystemColorPrimary\"\n >\n Esqueceu a senha?\n </a>\n </div>\n\n <div id=\"kvLogin-cadastro\" class=\"flex w-full justify-content-center h-2\">\n <label\n class=\"text-xs font-normal\"\n >\n Novo no KeePass?\n <a\n href=\"https://keepass.seg.br/cadastrar\"\n target=\"_blank\"\n class=\"text-xs m-0 p-0\"\n [style.color]=\"SystemColorPrimary\"\n >\n Cadastre-se.\n </a>\n </label>\n </div>\n </div>\n \n\n <button\n id=\"kvLogin-login-button\"\n [style.background-color]=\"SystemColorPrimary\"\n [style.color]=\"'white'\"\n class=\"w-full \"\n (click)=\"save()\"\n [style.height.px]=\"50\"\n ><strong>Login</strong></button>\n </div>\n\n <div class=\"logo-keevo\">\n <img\n src=\"https://work-assets.keevo.com.br/img/keevo-logo-temp.png\"\n />\n <label\n class=\"text-xs\"\n [style.color]=\"SystemColorSecondary\"\n >\n Copyright \u00A9 2024 - Keevo Ltda Todos os direitos reservados.\n </label>\n </div>\n\n</div>", styles: ["@charset \"UTF-8\";:host{overflow:hidden}#kvLogin-container{font-family:Inter var,Roboto,Arial,Helvetica,sans-serif!important;background:no-repeat center;background-size:cover;padding:20px}#kvLogin-card{box-shadow:#00000059 0 5px 15px}#kvLogin-esqueceu-senha{position:relative;bottom:.5rem;padding-right:10px}#kvLogin-esqueceu-senha a{text-decoration:none;font-weight:500;cursor:pointer;transition:text-shadow .2s ease-in-out}#kvLogin-esqueceu-senha a:hover{text-shadow:0 0 2px rgba(158,158,158,.692)}#kvLogin-cadastro{margin-bottom:1rem}#kvLogin-cadastro a{text-decoration:none;font-weight:600;cursor:pointer;gap:3px;transition:text-shadow .2s ease-in-out}#kvLogin-cadastro a:hover{text-shadow:0 0 2px rgba(158,158,158,.692)}#kvLogin-login-button{width:100%;height:3rem!important;border-radius:0 0 .5rem .5rem;border:none;cursor:pointer;font-size:14px;transition:all ease-in .2s;-webkit-transition:all ease-in .2s;-moz-transition:all ease-in .2s;-ms-transition:all ease-in .2s;-o-transition:all ease-in .2s}#kvLogin-login-button:hover{opacity:.9}.logo-keevo{text-align:center}.logo-keevo img{height:2rem;width:auto;display:block;margin:0 auto;margin-top:5rem}.logo-keevo label{display:block;margin-top:.5rem}@media (max-height: 700px){.logo-keevo img{margin-top:1rem}#kvLogin-container{padding:10px}#kvLogin-container img{max-width:90%}}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.KvInputPasswordComponent, selector: "kv-input-password", inputs: ["feedback", "mediumRegex", "strongRegex", "toggleMask"] }, { kind: "component", type: i3.KvInputTextComponent, selector: "kv-input-text", inputs: ["textCaptalized"] }] }); }
51
51
  }
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvLoginComponent, decorators: [{
53
53
  type: Component,
54
- args: [{ selector: 'kv-login', template: "<div\r\n id=\"kvLogin-container\"\r\n class=\"flex justify-content-center align-items-center flex-column h-screen \"\r\n [style.background-image]=\"'url(' + Background + ')'\"\r\n>\r\n\r\n <!-- CARD PRINCIPAL -->\r\n <div\r\n [formGroup]=\" formGroup\"\r\n id=\"kvLogin-card\"\r\n class=\"flex flex-column align-items-center justify-content-between bg-white border-round-xl\"\r\n [style.width.rem]=\"20\"\r\n [style.height.rem]=\"28\"\r\n (keydown.enter)=\"save()\"\r\n >\r\n\r\n <!-- LOGO DO SISTEMA -->\r\n <div class=\"flex flex-row align-items-center justify-content-center p-3 mt-2\">\r\n <img\r\n alt=\"Logo do Sistema\"\r\n [style.height.rem]=\"4\"\r\n [src]=\"SystemLogo\"\r\n />\r\n </div>\r\n\r\n <!-- INFORMA\u00C7\u00D5ES CENTRAIS -->\r\n <div class=\" grid formgrid p-fluid gap-2 p-3 pb-0\">\r\n\r\n <div\r\n class=\"mb-2 w-full flex flex-row align-items-center justify-content-srart gap-1 font-medium\"\r\n >\r\n <img\r\n [style.height.rem]=\"1.5\"\r\n class=\"ml-2\"\r\n alt=\"keepass\"\r\n src=\"https://work-assets.keevo.com.br/img/icone-keepass-preto.png\"\r\n />\r\n <label\r\n class=\"mt-1 text-sm\"\r\n >\r\n Entrar com KeePass\r\n </label>\r\n </div>\r\n\r\n <kv-input-text\r\n componentId=\"usuario\"\r\n label=\"CPF ou e-mail\"\r\n formControlName=\"usuario\"\r\n class=\"field col-12\"\r\n >\r\n </kv-input-text>\r\n\r\n <kv-input-password\r\n componentId=\"senha\"\r\n label=\"Senha\"\r\n [toggleMask]=\"true\"\r\n formControlName=\"senha\"\r\n [required]=\"true\"\r\n class=\"field col-12\"\r\n >\r\n </kv-input-password>\r\n\r\n <div\r\n class=\"flex w-full justify-content-end mb-2 h-2\"\r\n id=\"kvLogin-esqueceu-senha\"\r\n >\r\n <a\r\n href=\"https://keepass.seg.br/redefinirsenha\"\r\n target=\"_blank\"\r\n class=\"text-xs\"\r\n [style.color]=\"SystemColorPrimary\"\r\n >\r\n Esqueceu a senha?\r\n </a>\r\n </div>\r\n\r\n <div id=\"kvLogin-cadastro\" class=\"flex w-full justify-content-center h-2\">\r\n <label\r\n class=\"text-xs font-normal\"\r\n >\r\n Novo no KeePass?\r\n <a\r\n href=\"https://keepass.seg.br/cadastrar\"\r\n target=\"_blank\"\r\n class=\"text-xs m-0 p-0\"\r\n [style.color]=\"SystemColorPrimary\"\r\n >\r\n Cadastre-se.\r\n </a>\r\n </label>\r\n </div>\r\n </div>\r\n \r\n\r\n <button\r\n id=\"kvLogin-login-button\"\r\n [style.background-color]=\"SystemColorPrimary\"\r\n [style.color]=\"'white'\"\r\n class=\"w-full \"\r\n (click)=\"save()\"\r\n [style.height.px]=\"50\"\r\n ><strong>Login</strong></button>\r\n </div>\r\n\r\n <div class=\"logo-keevo\">\r\n <img\r\n src=\"https://work-assets.keevo.com.br/img/keevo-logo-temp.png\"\r\n />\r\n <label\r\n class=\"text-xs\"\r\n [style.color]=\"SystemColorSecondary\"\r\n >\r\n Copyright \u00A9 2024 - Keevo Ltda Todos os direitos reservados.\r\n </label>\r\n </div>\r\n\r\n</div>", styles: ["@charset \"UTF-8\";:host{overflow:hidden}#kvLogin-container{font-family:Inter var,Roboto,Arial,Helvetica,sans-serif!important;background:no-repeat center;background-size:cover;padding:20px}#kvLogin-card{box-shadow:#00000059 0 5px 15px}#kvLogin-esqueceu-senha{position:relative;bottom:.5rem;padding-right:10px}#kvLogin-esqueceu-senha a{text-decoration:none;font-weight:500;cursor:pointer;transition:text-shadow .2s ease-in-out}#kvLogin-esqueceu-senha a:hover{text-shadow:0 0 2px rgba(158,158,158,.692)}#kvLogin-cadastro{margin-bottom:1rem}#kvLogin-cadastro a{text-decoration:none;font-weight:600;cursor:pointer;gap:3px;transition:text-shadow .2s ease-in-out}#kvLogin-cadastro a:hover{text-shadow:0 0 2px rgba(158,158,158,.692)}#kvLogin-login-button{width:100%;height:3rem!important;border-radius:0 0 .5rem .5rem;border:none;cursor:pointer;font-size:14px;transition:all ease-in .2s;-webkit-transition:all ease-in .2s;-moz-transition:all ease-in .2s;-ms-transition:all ease-in .2s;-o-transition:all ease-in .2s}#kvLogin-login-button:hover{opacity:.9}.logo-keevo{text-align:center}.logo-keevo img{height:2rem;width:auto;display:block;margin:0 auto;margin-top:5rem}.logo-keevo label{display:block;margin-top:.5rem}@media (max-height: 700px){.logo-keevo img{margin-top:1rem}#kvLogin-container{padding:10px}#kvLogin-container img{max-width:90%}}\n"] }]
54
+ args: [{ selector: 'kv-login', template: "<div\n id=\"kvLogin-container\"\n class=\"flex justify-content-center align-items-center flex-column h-screen \"\n [style.background-image]=\"'url(' + Background + ')'\"\n>\n\n <!-- CARD PRINCIPAL -->\n <div\n [formGroup]=\" formGroup\"\n id=\"kvLogin-card\"\n class=\"flex flex-column align-items-center justify-content-between bg-white border-round-xl\"\n [style.width.rem]=\"20\"\n [style.height.rem]=\"28\"\n (keydown.enter)=\"save()\"\n >\n\n <!-- LOGO DO SISTEMA -->\n <div class=\"flex flex-row align-items-center justify-content-center p-3 mt-2\">\n <img\n alt=\"Logo do Sistema\"\n [style.height.rem]=\"4\"\n [src]=\"SystemLogo\"\n />\n </div>\n\n <!-- INFORMA\u00C7\u00D5ES CENTRAIS -->\n <div class=\" grid formgrid p-fluid gap-2 p-3 pb-0\">\n\n <div\n class=\"mb-2 w-full flex flex-row align-items-center justify-content-srart gap-1 font-medium\"\n >\n <img\n [style.height.rem]=\"1.5\"\n class=\"ml-2\"\n alt=\"keepass\"\n src=\"https://work-assets.keevo.com.br/img/icone-keepass-preto.png\"\n />\n <label\n class=\"mt-1 text-sm\"\n >\n Entrar com KeePass\n </label>\n </div>\n\n <kv-input-text\n componentId=\"usuario\"\n label=\"CPF ou e-mail\"\n formControlName=\"usuario\"\n class=\"field col-12\"\n >\n </kv-input-text>\n\n <kv-input-password\n componentId=\"senha\"\n label=\"Senha\"\n [toggleMask]=\"true\"\n formControlName=\"senha\"\n [required]=\"true\"\n class=\"field col-12\"\n >\n </kv-input-password>\n\n <div\n class=\"flex w-full justify-content-end mb-2 h-2\"\n id=\"kvLogin-esqueceu-senha\"\n >\n <a\n href=\"https://keepass.seg.br/redefinirsenha\"\n target=\"_blank\"\n class=\"text-xs\"\n [style.color]=\"SystemColorPrimary\"\n >\n Esqueceu a senha?\n </a>\n </div>\n\n <div id=\"kvLogin-cadastro\" class=\"flex w-full justify-content-center h-2\">\n <label\n class=\"text-xs font-normal\"\n >\n Novo no KeePass?\n <a\n href=\"https://keepass.seg.br/cadastrar\"\n target=\"_blank\"\n class=\"text-xs m-0 p-0\"\n [style.color]=\"SystemColorPrimary\"\n >\n Cadastre-se.\n </a>\n </label>\n </div>\n </div>\n \n\n <button\n id=\"kvLogin-login-button\"\n [style.background-color]=\"SystemColorPrimary\"\n [style.color]=\"'white'\"\n class=\"w-full \"\n (click)=\"save()\"\n [style.height.px]=\"50\"\n ><strong>Login</strong></button>\n </div>\n\n <div class=\"logo-keevo\">\n <img\n src=\"https://work-assets.keevo.com.br/img/keevo-logo-temp.png\"\n />\n <label\n class=\"text-xs\"\n [style.color]=\"SystemColorSecondary\"\n >\n Copyright \u00A9 2024 - Keevo Ltda Todos os direitos reservados.\n </label>\n </div>\n\n</div>", styles: ["@charset \"UTF-8\";:host{overflow:hidden}#kvLogin-container{font-family:Inter var,Roboto,Arial,Helvetica,sans-serif!important;background:no-repeat center;background-size:cover;padding:20px}#kvLogin-card{box-shadow:#00000059 0 5px 15px}#kvLogin-esqueceu-senha{position:relative;bottom:.5rem;padding-right:10px}#kvLogin-esqueceu-senha a{text-decoration:none;font-weight:500;cursor:pointer;transition:text-shadow .2s ease-in-out}#kvLogin-esqueceu-senha a:hover{text-shadow:0 0 2px rgba(158,158,158,.692)}#kvLogin-cadastro{margin-bottom:1rem}#kvLogin-cadastro a{text-decoration:none;font-weight:600;cursor:pointer;gap:3px;transition:text-shadow .2s ease-in-out}#kvLogin-cadastro a:hover{text-shadow:0 0 2px rgba(158,158,158,.692)}#kvLogin-login-button{width:100%;height:3rem!important;border-radius:0 0 .5rem .5rem;border:none;cursor:pointer;font-size:14px;transition:all ease-in .2s;-webkit-transition:all ease-in .2s;-moz-transition:all ease-in .2s;-ms-transition:all ease-in .2s;-o-transition:all ease-in .2s}#kvLogin-login-button:hover{opacity:.9}.logo-keevo{text-align:center}.logo-keevo img{height:2rem;width:auto;display:block;margin:0 auto;margin-top:5rem}.logo-keevo label{display:block;margin-top:.5rem}@media (max-height: 700px){.logo-keevo img{margin-top:1rem}#kvLogin-container{padding:10px}#kvLogin-container img{max-width:90%}}\n"] }]
55
55
  }], propDecorators: { Background: [{
56
56
  type: Input
57
57
  }], SystemLogo: [{
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
63
63
  }], onLogin: [{
64
64
  type: Output
65
65
  }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtbG9naW4va3YtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtbG9naW4va3YtbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFFdEQ7OztHQUdHO0FBTUgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLHFCQUFxQjtJQUwzRDs7UUFlRSxpREFBaUQ7UUFDdkMsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXZELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBbUMzQztJQWpDQyxlQUFlO0lBQ2Ysa0NBQWtDO0lBQ2xDLDhDQUE4QztJQUM5QyxvQ0FBb0M7SUFDcEMsd0NBQXdDO0lBQ3hDLDhDQUE4QztJQUM5QyxzQkFBc0I7SUFDdEIsV0FBVztJQUNYLHFCQUFxQjtJQUNyQiwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLHdCQUF3QjtJQUN4QiwyQkFBMkI7SUFDM0IsYUFBYTtJQUNiLE1BQU07SUFDTixJQUFJO0lBRUssYUFBYTtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDNUQsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMzRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsUUFBUSxDQUFDLEVBQU87SUFFekIsQ0FBQztJQUVRLElBQUk7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7OEdBL0NVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGdRQ2xDN0IsNDlIQW9ITTs7MkZEbEZPLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxVQUFVOzhCQU9YLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlLFxyXG4gIFJvdXRlclxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBEaWFsb2dTZXJ2aWNlLFxyXG4gIER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgRHluYW1pY0RpYWxvZ1JlZlxyXG59IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnRDcnVkRm9ybSB9IGZyb20gJy4uLy4uL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtY3J1ZC1mb3JtJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEtlZXZvVmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgZGUgbG9naW4gcGVyc29uYWxpemFkby5cclxuICogRXN0ZSBjb21wb25lbnRlIHBlcm1pdGUgcXVlIG9zIHVzdcOhcmlvcyBmYcOnYW0gbG9naW4gbm8gc2lzdGVtYSB1dGlsaXphbmRvIG8gZXN0aWxvIHBhZHLDo28gZG9zIHNpc3RlbWFzIEtlZXZvLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1sb2dpbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWxvZ2luLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi1sb2dpbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkxvZ2luQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudENydWRGb3JtIHtcclxuXHJcbiAgLyoqIFVSTCBkYSBpbWFnZW0gZGUgZnVuZG8gZG8gY29tcG9uZW50ZS4gKi9cclxuICBASW5wdXQoKSBCYWNrZ3JvdW5kITogYW55O1xyXG4gIC8qKiBVUkwgZG8gbG9nbyBkbyBzaXN0ZW1hLiAqL1xyXG4gIEBJbnB1dCgpIFN5c3RlbUxvZ28hOiBhbnk7XHJcbiAgLyoqIENvciBwcmltw6FyaWEgZG8gc2lzdGVtYS4gKi9cclxuICBASW5wdXQoKSBTeXN0ZW1Db2xvclByaW1hcnkhOiBzdHJpbmc7XHJcbiAgLyoqIENvciBzZWN1bmTDoXJpYSBkbyBzaXN0ZW1hLiAqL1xyXG4gIEBJbnB1dCgpIFN5c3RlbUNvbG9yU2Vjb25kYXJ5ITogc3RyaW5nO1xyXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBmYXogbG9naW4uICovXHJcbiAgQE91dHB1dCgpIG9uTG9naW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHByaXZhdGUgZm9ybUJ1aWxkZXIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG5cclxuICAvLyBjb25zdHJ1Y3RvcihcclxuICAvLyAgIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgLy8gICBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gIC8vICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gIC8vICAgZHluYW1pY0RpYWxvZ1JlZjogRHluYW1pY0RpYWxvZ1JlZixcclxuICAvLyAgIGR5bmFtaWNEaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgLy8gICByb3V0ZXI6IFJvdXRlcikge1xyXG4gIC8vICAgc3VwZXIoXHJcbiAgLy8gICAgIGRpYWxvZ1NlcnZpY2UsXHJcbiAgLy8gICAgIG5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgLy8gICAgIGFjdGl2YXRlZFJvdXRlLFxyXG4gIC8vICAgICBkeW5hbWljRGlhbG9nUmVmLFxyXG4gIC8vICAgICBkeW5hbWljRGlhbG9nQ29uZmlnLFxyXG4gIC8vICAgICByb3V0ZXJcclxuICAvLyAgIClcclxuICAvLyB9XHJcblxyXG4gIG92ZXJyaWRlIGNvbmZpZ3VyZUZvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICB1c3VhcmlvOiBbJycsIEtlZXZvVmFsaWRhdG9ycy5yZXF1aXJlZCgnQ2FtcG8gb2JyaWdhdMOzcmlvJyldLFxyXG4gICAgICBzZW5oYTogWycnLCBLZWV2b1ZhbGlkYXRvcnMucmVxdWlyZWQoJ0NhbXBvIG9icmlnYXTDs3JpbycpXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBsb2FkRm9ybShpZDogYW55KTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2F2ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZhbGlkYXRlRm9ybSgpKSB7XHJcbiAgICAgIHRoaXMub25Mb2dpbi5lbWl0KHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICAgaWQ9XCJrdkxvZ2luLWNvbnRhaW5lclwiXHJcbiAgICBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW4gaC1zY3JlZW4gXCJcclxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIEJhY2tncm91bmQgKyAnKSdcIlxyXG4+XHJcblxyXG4gICAgPCEtLSBDQVJEIFBSSU5DSVBBTCAtLT5cclxuICAgIDxkaXZcclxuICAgICAgICBbZm9ybUdyb3VwXT1cIiBmb3JtR3JvdXBcIlxyXG4gICAgICAgIGlkPVwia3ZMb2dpbi1jYXJkXCJcclxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGJnLXdoaXRlIGJvcmRlci1yb3VuZC14bFwiXHJcbiAgICAgICAgW3N0eWxlLndpZHRoLnJlbV09XCIyMFwiXHJcbiAgICAgICAgW3N0eWxlLmhlaWdodC5yZW1dPVwiMjhcIlxyXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cInNhdmUoKVwiXHJcbiAgICA+XHJcblxyXG4gICAgICAgIDwhLS0gTE9HTyBETyBTSVNURU1BIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHAtMyBtdC0yXCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgIGFsdD1cIkxvZ28gZG8gU2lzdGVtYVwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnJlbV09XCI0XCJcclxuICAgICAgICAgICAgICAgIFtzcmNdPVwiU3lzdGVtTG9nb1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gSU5GT1JNQcOHw5VFUyBDRU5UUkFJUyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIGdyaWQgZm9ybWdyaWQgcC1mbHVpZCBnYXAtMiBwLTMgcGItMFwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0yIHctZnVsbCBmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc3JhcnQgZ2FwLTEgZm9udC1tZWRpdW1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5yZW1dPVwiMS41XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cImtlZXBhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vd29yay1hc3NldHMua2Vldm8uY29tLmJyL2ltZy9pY29uZS1rZWVwYXNzLXByZXRvLnBuZ1wiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0xIHRleHQtc21cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIEVudHJhciBjb20gS2VlUGFzc1xyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8a3YtaW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50SWQ9XCJ1c3VhcmlvXCJcclxuICAgICAgICAgICAgICAgIGxhYmVsPVwiQ1BGIG91IGUtbWFpbFwiXHJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c3VhcmlvXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmllbGQgY29sLTEyXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2t2LWlucHV0LXRleHQ+XHJcblxyXG4gICAgICAgICAgICA8a3YtaW5wdXQtcGFzc3dvcmRcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudElkPVwic2VuaGFcIlxyXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJTZW5oYVwiXHJcbiAgICAgICAgICAgICAgICBbdG9nZ2xlTWFza109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlbmhhXCJcclxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmllbGQgY29sLTEyXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2t2LWlucHV0LXBhc3N3b3JkPlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG1iLTIgaC0yXCJcclxuICAgICAgICAgICAgICAgIGlkPVwia3ZMb2dpbi1lc3F1ZWNldS1zZW5oYVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8va2VlcGFzcy5zZWcuYnIvcmVkZWZpbmlyc2VuaGFcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiU3lzdGVtQ29sb3JQcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICBFc3F1ZWNldSBhIHNlbmhhP1xyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJrdkxvZ2luLWNhZGFzdHJvXCIgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGgtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIGZvbnQtbm9ybWFsXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICBOb3ZvIG5vIEtlZVBhc3M/XHJcbiAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8va2VlcGFzcy5zZWcuYnIvY2FkYXN0cmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIG0tMCBwLTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiU3lzdGVtQ29sb3JQcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENhZGFzdHJlLXNlLlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcblxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgaWQ9XCJrdkxvZ2luLWxvZ2luLWJ1dHRvblwiXHJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIlN5c3RlbUNvbG9yUHJpbWFyeVwiXHJcbiAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCInd2hpdGUnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXHJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiNTBcIlxyXG4gICAgICAgID48c3Ryb25nPkxvZ2luPC9zdHJvbmc+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibG9nby1rZWV2b1wiPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly93b3JrLWFzc2V0cy5rZWV2by5jb20uYnIvaW1nL2tlZXZvLWxvZ28tdGVtcC5wbmdcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC14c1wiXHJcbiAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJTeXN0ZW1Db2xvclNlY29uZGFyeVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICBDb3B5cmlnaHQgwqkgMjAyNCAtIEtlZXZvIEx0ZGEgVG9kb3Mgb3MgZGlyZWl0b3MgcmVzZXJ2YWRvcy5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtbG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtbG9naW4va3YtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtbG9naW4va3YtbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFFdEQ7OztHQUdHO0FBTUgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLHFCQUFxQjtJQUwzRDs7UUFlRSxpREFBaUQ7UUFDdkMsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXZELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBbUMzQztJQWpDQyxlQUFlO0lBQ2Ysa0NBQWtDO0lBQ2xDLDhDQUE4QztJQUM5QyxvQ0FBb0M7SUFDcEMsd0NBQXdDO0lBQ3hDLDhDQUE4QztJQUM5QyxzQkFBc0I7SUFDdEIsV0FBVztJQUNYLHFCQUFxQjtJQUNyQiwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLHdCQUF3QjtJQUN4QiwyQkFBMkI7SUFDM0IsYUFBYTtJQUNiLE1BQU07SUFDTixJQUFJO0lBRUssYUFBYTtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDNUQsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMzRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsUUFBUSxDQUFDLEVBQU87SUFFekIsQ0FBQztJQUVRLElBQUk7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7OEdBL0NVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGdRQ2xDN0Isb3ZIQW9ITTs7MkZEbEZPLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxVQUFVOzhCQU9YLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZSxcbiAgUm91dGVyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIERpYWxvZ1NlcnZpY2UsXG4gIER5bmFtaWNEaWFsb2dDb25maWcsXG4gIER5bmFtaWNEaWFsb2dSZWZcbn0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcblxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJhc2VDb21wb25lbnRDcnVkRm9ybSB9IGZyb20gJy4uLy4uL2FwaS9iYXNlLWNvbXBvbmVudHMvYmFzZS1jb21wb25lbnQtY3J1ZC1mb3JtJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2Vldm9WYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vLi4vcHVibGljLWFwaSc7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBkZSBsb2dpbiBwZXJzb25hbGl6YWRvLlxuICogRXN0ZSBjb21wb25lbnRlIHBlcm1pdGUgcXVlIG9zIHVzdcOhcmlvcyBmYcOnYW0gbG9naW4gbm8gc2lzdGVtYSB1dGlsaXphbmRvIG8gZXN0aWxvIHBhZHLDo28gZG9zIHNpc3RlbWFzIEtlZXZvLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrdi1sb2dpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1sb2dpbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2t2LWxvZ2luLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgS3ZMb2dpbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnRDcnVkRm9ybSB7XG5cbiAgLyoqIFVSTCBkYSBpbWFnZW0gZGUgZnVuZG8gZG8gY29tcG9uZW50ZS4gKi9cbiAgQElucHV0KCkgQmFja2dyb3VuZCE6IGFueTtcbiAgLyoqIFVSTCBkbyBsb2dvIGRvIHNpc3RlbWEuICovXG4gIEBJbnB1dCgpIFN5c3RlbUxvZ28hOiBhbnk7XG4gIC8qKiBDb3IgcHJpbcOhcmlhIGRvIHNpc3RlbWEuICovXG4gIEBJbnB1dCgpIFN5c3RlbUNvbG9yUHJpbWFyeSE6IHN0cmluZztcbiAgLyoqIENvciBzZWN1bmTDoXJpYSBkbyBzaXN0ZW1hLiAqL1xuICBASW5wdXQoKSBTeXN0ZW1Db2xvclNlY29uZGFyeSE6IHN0cmluZztcbiAgLyoqIEV2ZW50byBlbWl0aWRvIHF1YW5kbyBvIHVzdcOhcmlvIGZheiBsb2dpbi4gKi9cbiAgQE91dHB1dCgpIG9uTG9naW46IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBmb3JtQnVpbGRlciA9IGluamVjdChGb3JtQnVpbGRlcik7XG5cbiAgLy8gY29uc3RydWN0b3IoXG4gIC8vICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgLy8gICBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAvLyAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgLy8gICBkeW5hbWljRGlhbG9nUmVmOiBEeW5hbWljRGlhbG9nUmVmLFxuICAvLyAgIGR5bmFtaWNEaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXG4gIC8vICAgcm91dGVyOiBSb3V0ZXIpIHtcbiAgLy8gICBzdXBlcihcbiAgLy8gICAgIGRpYWxvZ1NlcnZpY2UsXG4gIC8vICAgICBub3RpZmljYXRpb25TZXJ2aWNlLFxuICAvLyAgICAgYWN0aXZhdGVkUm91dGUsXG4gIC8vICAgICBkeW5hbWljRGlhbG9nUmVmLFxuICAvLyAgICAgZHluYW1pY0RpYWxvZ0NvbmZpZyxcbiAgLy8gICAgIHJvdXRlclxuICAvLyAgIClcbiAgLy8gfVxuXG4gIG92ZXJyaWRlIGNvbmZpZ3VyZUZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIHVzdWFyaW86IFsnJywgS2Vldm9WYWxpZGF0b3JzLnJlcXVpcmVkKCdDYW1wbyBvYnJpZ2F0w7NyaW8nKV0sXG4gICAgICBzZW5oYTogWycnLCBLZWV2b1ZhbGlkYXRvcnMucmVxdWlyZWQoJ0NhbXBvIG9icmlnYXTDs3JpbycpXVxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbG9hZEZvcm0oaWQ6IGFueSk6IHZvaWQge1xuXG4gIH1cblxuICBvdmVycmlkZSBzYXZlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbGlkYXRlRm9ybSgpKSB7XG4gICAgICB0aGlzLm9uTG9naW4uZW1pdCh0aGlzLmZvcm1Hcm91cC52YWx1ZSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICAgaWQ9XCJrdkxvZ2luLWNvbnRhaW5lclwiXG4gICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uIGgtc2NyZWVuIFwiXG4gICAgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiJ3VybCgnICsgQmFja2dyb3VuZCArICcpJ1wiXG4+XG5cbiAgICA8IS0tIENBUkQgUFJJTkNJUEFMIC0tPlxuICAgIDxkaXZcbiAgICAgICAgW2Zvcm1Hcm91cF09XCIgZm9ybUdyb3VwXCJcbiAgICAgICAgaWQ9XCJrdkxvZ2luLWNhcmRcIlxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGJnLXdoaXRlIGJvcmRlci1yb3VuZC14bFwiXG4gICAgICAgIFtzdHlsZS53aWR0aC5yZW1dPVwiMjBcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0LnJlbV09XCIyOFwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cInNhdmUoKVwiXG4gICAgPlxuXG4gICAgICAgIDwhLS0gTE9HTyBETyBTSVNURU1BIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBwLTMgbXQtMlwiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGFsdD1cIkxvZ28gZG8gU2lzdGVtYVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5yZW1dPVwiNFwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJTeXN0ZW1Mb2dvXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gSU5GT1JNQcOHw5VFUyBDRU5UUkFJUyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIiBncmlkIGZvcm1ncmlkIHAtZmx1aWQgZ2FwLTIgcC0zIHBiLTBcIj5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWItMiB3LWZ1bGwgZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LXNyYXJ0IGdhcC0xIGZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucmVtXT1cIjEuNVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMlwiXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cImtlZXBhc3NcIlxuICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3dvcmstYXNzZXRzLmtlZXZvLmNvbS5ici9pbWcvaWNvbmUta2VlcGFzcy1wcmV0by5wbmdcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtMSB0ZXh0LXNtXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEVudHJhciBjb20gS2VlUGFzc1xuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGt2LWlucHV0LXRleHRcbiAgICAgICAgICAgICAgICBjb21wb25lbnRJZD1cInVzdWFyaW9cIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwiQ1BGIG91IGUtbWFpbFwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXN1YXJpb1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9rdi1pbnB1dC10ZXh0PlxuXG4gICAgICAgICAgICA8a3YtaW5wdXQtcGFzc3dvcmRcbiAgICAgICAgICAgICAgICBjb21wb25lbnRJZD1cInNlbmhhXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIlNlbmhhXCJcbiAgICAgICAgICAgICAgICBbdG9nZ2xlTWFza109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZW5oYVwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmllbGQgY29sLTEyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwva3YtaW5wdXQtcGFzc3dvcmQ+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggdy1mdWxsIGp1c3RpZnktY29udGVudC1lbmQgbWItMiBoLTJcIlxuICAgICAgICAgICAgICAgIGlkPVwia3ZMb2dpbi1lc3F1ZWNldS1zZW5oYVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8va2VlcGFzcy5zZWcuYnIvcmVkZWZpbmlyc2VuaGFcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHNcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiU3lzdGVtQ29sb3JQcmltYXJ5XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEVzcXVlY2V1IGEgc2VuaGE/XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJrdkxvZ2luLWNhZGFzdHJvXCIgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGgtMlwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHMgZm9udC1ub3JtYWxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgTm92byBubyBLZWVQYXNzP1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8va2VlcGFzcy5zZWcuYnIvY2FkYXN0cmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQteHMgbS0wIHAtMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiU3lzdGVtQ29sb3JQcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQ2FkYXN0cmUtc2UuXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIFxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwia3ZMb2dpbi1sb2dpbi1idXR0b25cIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiU3lzdGVtQ29sb3JQcmltYXJ5XCJcbiAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCInd2hpdGUnXCJcbiAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2F2ZSgpXCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiNTBcIlxuICAgICAgICA+PHN0cm9uZz5Mb2dpbjwvc3Ryb25nPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImxvZ28ta2Vldm9cIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly93b3JrLWFzc2V0cy5rZWV2by5jb20uYnIvaW1nL2tlZXZvLWxvZ28tdGVtcC5wbmdcIlxuICAgICAgICAvPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC14c1wiXG4gICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiU3lzdGVtQ29sb3JTZWNvbmRhcnlcIlxuICAgICAgICA+XG4gICAgICAgICAgICBDb3B5cmlnaHQgwqkgMjAyNCAtIEtlZXZvIEx0ZGEgVG9kb3Mgb3MgZGlyZWl0b3MgcmVzZXJ2YWRvcy5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cblxuPC9kaXY+Il19
@@ -58,16 +58,16 @@ export class KvOrgchartComponent {
58
58
  })
59
59
  .compact(false)
60
60
  .buttonContent(({ node, state }) => {
61
- return `<div style="color:#FFFFFF; border-radius:100%;font-size:5px;margin:auto auto;background-color:#64748B;">
62
- <span>
61
+ return `<div style="color:#FFFFFF; border-radius:100%;font-size:5px;margin:auto auto;background-color:#64748B;">
62
+ <span>
63
63
  ${node.children && node.children.length > 0
64
- ? `<i class="material-symbols-outlined">
65
- keyboard_arrow_up
64
+ ? `<i class="material-symbols-outlined">
65
+ keyboard_arrow_up
66
66
  </i>`
67
- : `<i class="material-symbols-outlined">
68
- keyboard_arrow_down
69
- </i>`}
70
- </span>
67
+ : `<i class="material-symbols-outlined">
68
+ keyboard_arrow_down
69
+ </i>`}
70
+ </span>
71
71
  </div>`;
72
72
  })
73
73
  .linkUpdate((node, index, nodes) => {
@@ -196,11 +196,11 @@ export class KvOrgchartComponent {
196
196
  this.filter.clear();
197
197
  }
198
198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvOrgchartComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.OrgChartService }, { token: i2.FilterService }], target: i0.ɵɵFactoryTarget.Component }); }
199
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvOrgchartComponent, selector: "kv-orgchart", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: false, isRequired: false, transformFunction: null }, nodeTemplate: { classPropertyName: "nodeTemplate", publicName: "nodeTemplate", isSignal: false, isRequired: false, transformFunction: null }, filterItemTemplate: { classPropertyName: "filterItemTemplate", publicName: "filterItemTemplate", isSignal: false, isRequired: false, transformFunction: null }, filterSelectedItemTemplate: { classPropertyName: "filterSelectedItemTemplate", publicName: "filterSelectedItemTemplate", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { dataSource: "dataSourceChange", onNodeClick: "onNodeClick" }, viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartContainer"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["nodeTemplate"], descendants: true, read: ViewContainerRef }, { propertyName: "filter", first: true, predicate: ["filter"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #chartContainer id=\"chartContainer\" [ngClass]=\"{ backGround: true }\">\r\n <div class=\"div-botoes w-full flex gap-1\">\r\n <div\r\n id=\"menubar\"\r\n class=\"shadow-2 flex justify-content-between align-content-center\"\r\n >\r\n <div class=\"grid formgrid p-fluid flex-grow-1\">\r\n <!-- <div #filterContainer class=\"col-4 grid formgrid p-fluid\">\r\n <kv-input-text class=\"col-12\" #filtro (onInput)=\"pesquisar($event)\">\r\n </kv-input-text>\r\n </div>\r\n\r\n @if(filtrosOpt().length > 0) {\r\n \r\n <div id=\"filtro-org-chart\" [style.width.px]=\"filterContainer.offsetWidth*0.9\">\r\n\r\n @for (opt of filtrosOpt(); track $index) {\r\n <div class=\"filtro-org-chart-item\">\r\n {{ opt.data.name }}\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n\r\n } -->\r\n\r\n <p-dropdown\r\n #filter\r\n placeholder=\"Filtrar...\"\r\n [style]=\"{\r\n height: '30px',\r\n 'display': 'flex',\r\n 'align-items': 'center',\r\n 'margin-left': '15px',\r\n 'max-width': '95%'\r\n }\"\r\n [filter]=\"true\"\r\n [filterFields]=\"config.filters\"\r\n [options]=\"this.dataSource()!\"\r\n [showClear]=\"true\"\r\n (onChange)=\"centralizarNo($event.value.id)\"\r\n >\r\n <!-- [itemTemplate]=\"itemTemplate\"\r\n [selectedItemTemplate]=\"selectedItemTemplate\" -->\r\n <!-- [filteredOptions]=\"this.dataSource()!\" -->\r\n <!-- [filterFields]=\"data.name\" -->\r\n\r\n <ng-template #itemTemplate let-item pTemplate=\"item\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template #selectedItemTemplate let-item pTemplate=\"selectedItem\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterSelectedItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n\r\n <!-- Actions bar -->\r\n <div class=\"flex gap-1 flex-row flex-grow-0\">\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.expandAll()\"\r\n class=\"button-expand-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'expand_all'\"\r\n [pTooltip]=\"'Expandir Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.collapseAll()\"\r\n class=\"button-colappse-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'collapse_all'\"\r\n [pTooltip]=\"'Recolher Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.fit().render()\"\r\n class=\"button-focus-center\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"primary\"\r\n [icon]=\"'center_focus_weak'\"\r\n [pTooltip]=\"'Centralizar Organograma'\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\r\n/>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\r\n/>\r\n\r\n<div style=\"display: none\">\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"node-content\">erro</div>\r\n </ng-template>\r\n</div>\r\n", styles: ["#chartContainer{height:100%;overflow:hidden}:host ::ng-deep #chartContainer svg.svg-chart-container{height:100%!important;position:relative;width:100%;top:-56px;z-index:0;background-color:#fff}.div-botoes{z-index:1;width:100%;position:relative}:host ::ng-deep .p-organizationChart{overflow:hidden}svg{width:100%;height:100%}#menubar{width:100%;padding:5px;border-radius:8px;background:#eaeaea}.filtro-input{width:300px}#filtro-org-chart{height:300px;overflow-y:auto;overflow-x:hidden;position:absolute;top:40px;left:8px;background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.filtro-org-chart-item{cursor:pointer;height:35px;padding:3px}.filtro-org-chart-item:hover{background-color:#d9dadb}.filtro-org-chart-item:active{background-color:#c0c1c2}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i6.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "label", "disabled"], outputs: ["onClick"] }] }); }
199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvOrgchartComponent, selector: "kv-orgchart", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: false, isRequired: false, transformFunction: null }, nodeTemplate: { classPropertyName: "nodeTemplate", publicName: "nodeTemplate", isSignal: false, isRequired: false, transformFunction: null }, filterItemTemplate: { classPropertyName: "filterItemTemplate", publicName: "filterItemTemplate", isSignal: false, isRequired: false, transformFunction: null }, filterSelectedItemTemplate: { classPropertyName: "filterSelectedItemTemplate", publicName: "filterSelectedItemTemplate", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { dataSource: "dataSourceChange", onNodeClick: "onNodeClick" }, viewQueries: [{ propertyName: "chartContainer", first: true, predicate: ["chartContainer"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["nodeTemplate"], descendants: true, read: ViewContainerRef }, { propertyName: "filter", first: true, predicate: ["filter"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #chartContainer id=\"chartContainer\" [ngClass]=\"{ backGround: true }\">\n <div class=\"div-botoes w-full flex gap-1\">\n <div\n id=\"menubar\"\n class=\"shadow-2 flex justify-content-between align-content-center\"\n >\n <div class=\"grid formgrid p-fluid flex-grow-1\">\n <!-- <div #filterContainer class=\"col-4 grid formgrid p-fluid\">\n <kv-input-text class=\"col-12\" #filtro (onInput)=\"pesquisar($event)\">\n </kv-input-text>\n </div>\n\n @if(filtrosOpt().length > 0) {\n \n <div id=\"filtro-org-chart\" [style.width.px]=\"filterContainer.offsetWidth*0.9\">\n\n @for (opt of filtrosOpt(); track $index) {\n <div class=\"filtro-org-chart-item\">\n {{ opt.data.name }}\n\n </div>\n\n }\n\n </div>\n\n } -->\n\n <p-dropdown\n #filter\n placeholder=\"Filtrar...\"\n [style]=\"{\n height: '30px',\n 'display': 'flex',\n 'align-items': 'center',\n 'margin-left': '15px',\n 'max-width': '95%'\n }\"\n [filter]=\"true\"\n [filterFields]=\"config.filters\"\n [options]=\"this.dataSource()!\"\n [showClear]=\"true\"\n (onChange)=\"centralizarNo($event.value.id)\"\n >\n <!-- [itemTemplate]=\"itemTemplate\"\n [selectedItemTemplate]=\"selectedItemTemplate\" -->\n <!-- [filteredOptions]=\"this.dataSource()!\" -->\n <!-- [filterFields]=\"data.name\" -->\n\n <ng-template #itemTemplate let-item pTemplate=\"item\">\n <ng-container\n [ngTemplateOutlet]=\"filterItemTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </ng-template>\n\n <ng-template #selectedItemTemplate let-item pTemplate=\"selectedItem\">\n <ng-container\n [ngTemplateOutlet]=\"filterSelectedItemTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </ng-template>\n </p-dropdown>\n </div>\n\n <!-- Actions bar -->\n <div class=\"flex gap-1 flex-row flex-grow-0\">\n <div style=\"width: 30px\" class=\"mr-2\">\n <kv-button\n (onClick)=\"chart.expandAll()\"\n class=\"button-expand-all\"\n [fullWidth]=\"false\"\n size=\"small\"\n severity=\"tertiary\"\n [icon]=\"'expand_all'\"\n [pTooltip]=\"'Expandir Todos'\"\n >\n </kv-button>\n </div>\n\n <div style=\"width: 30px\" class=\"mr-2\">\n <kv-button\n (onClick)=\"chart.collapseAll()\"\n class=\"button-colappse-all\"\n [fullWidth]=\"false\"\n size=\"small\"\n severity=\"tertiary\"\n [icon]=\"'collapse_all'\"\n [pTooltip]=\"'Recolher Todos'\"\n >\n </kv-button>\n </div>\n\n <div style=\"width: 30px\" class=\"mr-2\">\n <kv-button\n (onClick)=\"chart.fit().render()\"\n class=\"button-focus-center\"\n [fullWidth]=\"false\"\n size=\"small\"\n severity=\"primary\"\n [icon]=\"'center_focus_weak'\"\n [pTooltip]=\"'Centralizar Organograma'\"\n >\n </kv-button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<link\n rel=\"stylesheet\"\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\n/>\n\n<link\n rel=\"stylesheet\"\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\n/>\n\n<div style=\"display: none\">\n <ng-template #nodeTemplate let-node>\n <div class=\"node-content\">erro</div>\n </ng-template>\n</div>\n", styles: ["#chartContainer{height:100%;overflow:hidden}:host ::ng-deep #chartContainer svg.svg-chart-container{height:100%!important;position:relative;width:100%;top:-56px;z-index:0;background-color:#fff}.div-botoes{z-index:1;width:100%;position:relative}:host ::ng-deep .p-organizationChart{overflow:hidden}svg{width:100%;height:100%}#menubar{width:100%;padding:5px;border-radius:8px;background:#eaeaea}.filtro-input{width:300px}#filtro-org-chart{height:300px;overflow-y:auto;overflow-x:hidden;position:absolute;top:40px;left:8px;background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.filtro-org-chart-item{cursor:pointer;height:35px;padding:3px}.filtro-org-chart-item:hover{background-color:#d9dadb}.filtro-org-chart-item:active{background-color:#c0c1c2}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "component", type: i6.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "label", "disabled"], outputs: ["onClick"] }] }); }
200
200
  }
201
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvOrgchartComponent, decorators: [{
202
202
  type: Component,
203
- args: [{ selector: 'kv-orgchart', template: "<div #chartContainer id=\"chartContainer\" [ngClass]=\"{ backGround: true }\">\r\n <div class=\"div-botoes w-full flex gap-1\">\r\n <div\r\n id=\"menubar\"\r\n class=\"shadow-2 flex justify-content-between align-content-center\"\r\n >\r\n <div class=\"grid formgrid p-fluid flex-grow-1\">\r\n <!-- <div #filterContainer class=\"col-4 grid formgrid p-fluid\">\r\n <kv-input-text class=\"col-12\" #filtro (onInput)=\"pesquisar($event)\">\r\n </kv-input-text>\r\n </div>\r\n\r\n @if(filtrosOpt().length > 0) {\r\n \r\n <div id=\"filtro-org-chart\" [style.width.px]=\"filterContainer.offsetWidth*0.9\">\r\n\r\n @for (opt of filtrosOpt(); track $index) {\r\n <div class=\"filtro-org-chart-item\">\r\n {{ opt.data.name }}\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n\r\n } -->\r\n\r\n <p-dropdown\r\n #filter\r\n placeholder=\"Filtrar...\"\r\n [style]=\"{\r\n height: '30px',\r\n 'display': 'flex',\r\n 'align-items': 'center',\r\n 'margin-left': '15px',\r\n 'max-width': '95%'\r\n }\"\r\n [filter]=\"true\"\r\n [filterFields]=\"config.filters\"\r\n [options]=\"this.dataSource()!\"\r\n [showClear]=\"true\"\r\n (onChange)=\"centralizarNo($event.value.id)\"\r\n >\r\n <!-- [itemTemplate]=\"itemTemplate\"\r\n [selectedItemTemplate]=\"selectedItemTemplate\" -->\r\n <!-- [filteredOptions]=\"this.dataSource()!\" -->\r\n <!-- [filterFields]=\"data.name\" -->\r\n\r\n <ng-template #itemTemplate let-item pTemplate=\"item\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template #selectedItemTemplate let-item pTemplate=\"selectedItem\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"filterSelectedItemTemplate!\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\r\n />\r\n </ng-template>\r\n </p-dropdown>\r\n </div>\r\n\r\n <!-- Actions bar -->\r\n <div class=\"flex gap-1 flex-row flex-grow-0\">\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.expandAll()\"\r\n class=\"button-expand-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'expand_all'\"\r\n [pTooltip]=\"'Expandir Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.collapseAll()\"\r\n class=\"button-colappse-all\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"tertiary\"\r\n [icon]=\"'collapse_all'\"\r\n [pTooltip]=\"'Recolher Todos'\"\r\n >\r\n </kv-button>\r\n </div>\r\n\r\n <div style=\"width: 30px\" class=\"mr-2\">\r\n <kv-button\r\n (onClick)=\"chart.fit().render()\"\r\n class=\"button-focus-center\"\r\n [fullWidth]=\"false\"\r\n size=\"small\"\r\n severity=\"primary\"\r\n [icon]=\"'center_focus_weak'\"\r\n [pTooltip]=\"'Centralizar Organograma'\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\r\n/>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\r\n/>\r\n\r\n<div style=\"display: none\">\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"node-content\">erro</div>\r\n </ng-template>\r\n</div>\r\n", styles: ["#chartContainer{height:100%;overflow:hidden}:host ::ng-deep #chartContainer svg.svg-chart-container{height:100%!important;position:relative;width:100%;top:-56px;z-index:0;background-color:#fff}.div-botoes{z-index:1;width:100%;position:relative}:host ::ng-deep .p-organizationChart{overflow:hidden}svg{width:100%;height:100%}#menubar{width:100%;padding:5px;border-radius:8px;background:#eaeaea}.filtro-input{width:300px}#filtro-org-chart{height:300px;overflow-y:auto;overflow-x:hidden;position:absolute;top:40px;left:8px;background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.filtro-org-chart-item{cursor:pointer;height:35px;padding:3px}.filtro-org-chart-item:hover{background-color:#d9dadb}.filtro-org-chart-item:active{background-color:#c0c1c2}\n"] }]
203
+ args: [{ selector: 'kv-orgchart', template: "<div #chartContainer id=\"chartContainer\" [ngClass]=\"{ backGround: true }\">\n <div class=\"div-botoes w-full flex gap-1\">\n <div\n id=\"menubar\"\n class=\"shadow-2 flex justify-content-between align-content-center\"\n >\n <div class=\"grid formgrid p-fluid flex-grow-1\">\n <!-- <div #filterContainer class=\"col-4 grid formgrid p-fluid\">\n <kv-input-text class=\"col-12\" #filtro (onInput)=\"pesquisar($event)\">\n </kv-input-text>\n </div>\n\n @if(filtrosOpt().length > 0) {\n \n <div id=\"filtro-org-chart\" [style.width.px]=\"filterContainer.offsetWidth*0.9\">\n\n @for (opt of filtrosOpt(); track $index) {\n <div class=\"filtro-org-chart-item\">\n {{ opt.data.name }}\n\n </div>\n\n }\n\n </div>\n\n } -->\n\n <p-dropdown\n #filter\n placeholder=\"Filtrar...\"\n [style]=\"{\n height: '30px',\n 'display': 'flex',\n 'align-items': 'center',\n 'margin-left': '15px',\n 'max-width': '95%'\n }\"\n [filter]=\"true\"\n [filterFields]=\"config.filters\"\n [options]=\"this.dataSource()!\"\n [showClear]=\"true\"\n (onChange)=\"centralizarNo($event.value.id)\"\n >\n <!-- [itemTemplate]=\"itemTemplate\"\n [selectedItemTemplate]=\"selectedItemTemplate\" -->\n <!-- [filteredOptions]=\"this.dataSource()!\" -->\n <!-- [filterFields]=\"data.name\" -->\n\n <ng-template #itemTemplate let-item pTemplate=\"item\">\n <ng-container\n [ngTemplateOutlet]=\"filterItemTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </ng-template>\n\n <ng-template #selectedItemTemplate let-item pTemplate=\"selectedItem\">\n <ng-container\n [ngTemplateOutlet]=\"filterSelectedItemTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </ng-template>\n </p-dropdown>\n </div>\n\n <!-- Actions bar -->\n <div class=\"flex gap-1 flex-row flex-grow-0\">\n <div style=\"width: 30px\" class=\"mr-2\">\n <kv-button\n (onClick)=\"chart.expandAll()\"\n class=\"button-expand-all\"\n [fullWidth]=\"false\"\n size=\"small\"\n severity=\"tertiary\"\n [icon]=\"'expand_all'\"\n [pTooltip]=\"'Expandir Todos'\"\n >\n </kv-button>\n </div>\n\n <div style=\"width: 30px\" class=\"mr-2\">\n <kv-button\n (onClick)=\"chart.collapseAll()\"\n class=\"button-colappse-all\"\n [fullWidth]=\"false\"\n size=\"small\"\n severity=\"tertiary\"\n [icon]=\"'collapse_all'\"\n [pTooltip]=\"'Recolher Todos'\"\n >\n </kv-button>\n </div>\n\n <div style=\"width: 30px\" class=\"mr-2\">\n <kv-button\n (onClick)=\"chart.fit().render()\"\n class=\"button-focus-center\"\n [fullWidth]=\"false\"\n size=\"small\"\n severity=\"primary\"\n [icon]=\"'center_focus_weak'\"\n [pTooltip]=\"'Centralizar Organograma'\"\n >\n </kv-button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<link\n rel=\"stylesheet\"\n href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\n/>\n\n<link\n rel=\"stylesheet\"\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0\"\n/>\n\n<div style=\"display: none\">\n <ng-template #nodeTemplate let-node>\n <div class=\"node-content\">erro</div>\n </ng-template>\n</div>\n", styles: ["#chartContainer{height:100%;overflow:hidden}:host ::ng-deep #chartContainer svg.svg-chart-container{height:100%!important;position:relative;width:100%;top:-56px;z-index:0;background-color:#fff}.div-botoes{z-index:1;width:100%;position:relative}:host ::ng-deep .p-organizationChart{overflow:hidden}svg{width:100%;height:100%}#menubar{width:100%;padding:5px;border-radius:8px;background:#eaeaea}.filtro-input{width:300px}#filtro-org-chart{height:300px;overflow-y:auto;overflow-x:hidden;position:absolute;top:40px;left:8px;background:#fff;color:#4b5563;border:0 none;border-radius:6px;box-shadow:0 2px 12px #0000001a}.filtro-org-chart-item{cursor:pointer;height:35px;padding:3px}.filtro-org-chart-item:hover{background-color:#d9dadb}.filtro-org-chart-item:active{background-color:#c0c1c2}\n"] }]
204
204
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.OrgChartService }, { type: i2.FilterService }], propDecorators: { config: [{
205
205
  type: Input
206
206
  }], chartContainer: [{
@@ -221,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
221
221
  type: ViewChild,
222
222
  args: ['filter']
223
223
  }] } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytb3JnY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUlOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUl6QixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFZL0MsTUFBTSxPQUFPLG1CQUFtQjtJQThCOUIsWUFDVSxHQUFzQixFQUN0QixPQUF3QixFQUN4QixhQUE0QjtRQUY1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTVCdEMsZUFBVSxHQUFHLEtBQUssQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFFaEQsZUFBVSxHQUFHLE1BQU0sQ0FBaUIsRUFBRSxDQUFDLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxJQUFJLENBQUE7UUFhbEIsNkJBQTZCO1FBRW5CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVoRCxhQUFhO1FBRWIsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QixlQUFVLEdB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QUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDckIsQ0FBQzs4R0FwUFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsaWpDQVlLLGdCQUFnQixxSUM3Q3JELHNtSUE2SEE7OzJGRDVGYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTtnSkFjZCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ3VCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUUzQixnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTVDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQXNOYyxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBtb2RlbCxcclxuICBPdXRwdXQsXHJcbiAgc2lnbmFsLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgdmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT3JnQ2hhcnQgfSBmcm9tICdkMy1vcmctY2hhcnQnO1xyXG5pbXBvcnQgKiBhcyBkMyBmcm9tICdkMyc7XHJcblxyXG5pbXBvcnQgT3JnQ2hhcnRDb25maWcgZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvY2hhcnQvb3JjaGFydC5jb25maWcnO1xyXG5pbXBvcnQgT3JnQ2hhcnROb2RlIGZyb20gJy4uLy4uL2FwaS9jb21wb25lbnRzL2NoYXJ0L29yY2hhcnRub2RlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgT3JnQ2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL29yZ2NoYXJ0LnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRHJvcGRvd24sIERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1vcmdjaGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LW9yZ2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi1vcmdjaGFydC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZPcmdjaGFydENvbXBvbmVudCB7XHJcblxyXG5cclxuICBjaGFydCE6IGFueTtcclxuXHJcbiAgZGF0YVNvdXJjZSA9IG1vZGVsPE9yZ0NoYXJ0Tm9kZVtdIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIGZpbHRyb3NPcHQgPSBzaWduYWw8T3JnQ2hhcnROb2RlW10+KFtdKTtcclxuICBzZWxlY3RlZE9wdCA9IG51bGxcclxuXHJcbiAgQElucHV0KCkgY29uZmlnITogT3JnQ2hhcnRDb25maWc7XHJcbiAgQFZpZXdDaGlsZCgnY2hhcnRDb250YWluZXInKSBjaGFydENvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnbm9kZVRlbXBsYXRlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcbiAgdmlld0NvbnRhaW5lclJlZiE6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQElucHV0KCkgbm9kZVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgQElucHV0KCkgZmlsdGVySXRlbVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBmaWx0ZXJTZWxlY3RlZEl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cclxuXHJcbiAgLy8jcmVnaW9uIEVtaXNzb3JlcyBkZSBldmVudG9cclxuXHJcbiAgQE91dHB1dCgpIG9uTm9kZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbiAgY29tcGFjdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgbW9zdHJhTWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgc2VydmljZTogT3JnQ2hhcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICAvLyNyZWdpb24gSW5pY2lhciBPcmdDaGFydCBlIEF0dWFsaXphw6fDo28gZGUgZGFkb3NcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pY2lhckhhbmRsZXJzRGVFdmVudG9zKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hhcnQpIHtcclxuICAgICAgdGhpcy5jaGFydCA9IG5ldyBPcmdDaGFydCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbmljaWFyQ2hhcnQoKTtcclxuICB9XHJcblxyXG4gIGluaWNpYXJDaGFydCgpIHtcclxuICAgIGlmICghdGhpcy5kYXRhU291cmNlKCkgfHwgIXRoaXMuY2hhcnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNoYXJ0Q29udGFpbmVyID0gdGhpcy5jaGFydENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5jaGFydFxyXG4gICAgICAuY3JlYXRlWm9vbSgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGQzLnpvb20oKS5maWx0ZXIoKGUpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZS5zcmNFbGVtZW50O1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduby16b29tJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jb250YWluZXIoY2hhcnRDb250YWluZXIpXHJcbiAgICAgIC5kYXRhKHRoaXMuZGF0YVNvdXJjZSgpKVxyXG4gICAgICAubm9kZVdpZHRoKCgpID0+IHRoaXMuY29uZmlnLmNhcmRXaWRodClcclxuICAgICAgLm5vZGVIZWlnaHQoKGQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBkLmRhdGEuZXhwYW5kZWQgJiYgdGhpcy5jb25maWcuY2FyZEV4cGFuZGVkSGVpZ2h0XHJcbiAgICAgICAgICA/IHRoaXMuY29uZmlnLmNhcmRFeHBhbmRlZEhlaWdodFxyXG4gICAgICAgICAgOiB0aGlzLmNvbmZpZy5jYXJkSGVpZ2h0O1xyXG4gICAgICB9KVxyXG4gICAgICAuY29tcGFjdChmYWxzZSlcclxuICAgICAgLmJ1dHRvbkNvbnRlbnQoKHsgbm9kZSwgc3RhdGUgfTogeyBub2RlOiBhbnk7IHN0YXRlOiBhbnkgfSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBzdHlsZT1cImNvbG9yOiNGRkZGRkY7IGJvcmRlci1yYWRpdXM6MTAwJTtmb250LXNpemU6NXB4O21hcmdpbjphdXRvIGF1dG87YmFja2dyb3VuZC1jb2xvcjojNjQ3NDhCO1wiPlxyXG4gICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAke1xyXG4gICAgICAgICAgICBub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICAgID8gYDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPlxyXG4gICAgICAgICAgICAgIGtleWJvYXJkX2Fycm93X3VwXHJcbiAgICAgICAgICAgICAgPC9pPmBcclxuICAgICAgICAgICAgICA6IGA8aSBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5cclxuICAgICAgICAgICAgICBrZXlib2FyZF9hcnJvd19kb3duXHJcbiAgICAgICAgICAgIDwvaT5gXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PmA7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5saW5rVXBkYXRlKChub2RlOiBhbnksIGluZGV4OiBhbnksIG5vZGVzOiBhbnkpID0+IHtcclxuICAgICAgICBkMy5zZWxlY3Qobm9kZXNbaW5kZXhdKVxyXG4gICAgICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIHRoaXMuY29uZmlnLmNvbmVjdGlvbldpZHRoIHx8ICcycHgnKVxyXG4gICAgICAgICAgLnN0eWxlKCdzdHJva2UnLCB0aGlzLmNvbmZpZy5jb25uZWN0aW9uQ29sb3IgfHwgJyNkNmQ2ZDYnKTtcclxuICAgICAgfSlcclxuICAgICAgLm5vZGVDb250ZW50KChkOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBub2RlOiBPcmdDaGFydE5vZGUgPSB7XHJcbiAgICAgICAgICBkYXRhOiBkLmRhdGEuZGF0YSxcclxuICAgICAgICAgIGNoaWxkcmVuOiBkLmNoaWxkcmVuLFxyXG4gICAgICAgICAgaWQ6IGQuZGF0YS5pZCxcclxuICAgICAgICAgIHBhcmVudElkOiBkLmRhdGEucGFyZW50SWQsXHJcbiAgICAgICAgICBleHBhbmRlZDogZC5kYXRhLmV4cGFuZGVkLFxyXG4gICAgICAgICAgb3JnQ29uZmlnOiBkLm9yZ0NvbmZpZyxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHggPSB0aGlzLnJlbmRlck5vZGVUZW1wbGF0ZShub2RlKTtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfSlcclxuICAgICAgLm5vZGVVcGRhdGUoZnVuY3Rpb24gKHRoaXM6IGFueSwgZDogYW55KSB7XHJcbiAgICAgICAgZC5kYXRhLm9yZ0NvbmZpZy5jbGlja3MuZm9yRWFjaCgoY2xpY2s6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZDMuc2VsZWN0KHRoaXMpXHJcbiAgICAgICAgICAgIC5zZWxlY3QoY2xpY2spXHJcbiAgICAgICAgICAgIC5vbignY2xpY2snLCAoZSwgZCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhZG9zOiBhbnkgPSBkO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5vZGU6IE9yZ0NoYXJ0Tm9kZSA9IHtcclxuICAgICAgICAgICAgICAgIGRhdGE6IGRhZG9zLmRhdGEuZGF0YSxcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBkYWRvcy5jaGlsZHJlbixcclxuICAgICAgICAgICAgICAgIGlkOiBkYWRvcy5kYXRhLmlkLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IGRhZG9zLmRhdGEucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgICBleHBhbmRlZDogZGFkb3MuZGF0YS5leHBhbmRlZCxcclxuICAgICAgICAgICAgICAgIG9yZ0NvbmZpZzogZGFkb3Mub3JnQ29uZmlnLFxyXG4gICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KFxyXG4gICAgICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdLdk9yZ0NoYXJ0X05vZGVDbGljaycsIHtcclxuICAgICAgICAgICAgICAgICAgZGV0YWlsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZSxcclxuICAgICAgICAgICAgICAgICAgICBzZWxldG9yOiBjbGljayxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5kZWZhdWx0Rm9udCgnUm9ib3RvJylcclxuICAgICAgLnJlbmRlcigpO1xyXG5cclxuICAgIHRoaXMuY2hhcnQuZXhwYW5kQWxsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZGF0YVNvdXJjZSddKSB7XHJcbiAgICAgIHRoaXMuaW5pY2lhckNoYXJ0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyAjcmVnaW9uIFJlbmRlcml6YcOnw6NvIGRlIHRlbXBsYXRlXHJcbiAgcmVuZGVyTm9kZVRlbXBsYXRlKG5vZGU6IE9yZ0NoYXJ0Tm9kZSk6IHN0cmluZyB7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubm9kZVRlbXBsYXRlLCB7XHJcbiAgICAgIG5vZGU6IG5vZGUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHJldHVybiB2aWV3LnJvb3ROb2Rlc1swXS5vdXRlckhUTUw7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbiAgLy8gI3JlZ2lvbiBFdmVudG9zXHJcbiAgcHJpdmF0ZSBub2RlQ2xpY2tTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBub2RlQWRkU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbm9kZVJlbW92ZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgaW5pY2lhckhhbmRsZXJzRGVFdmVudG9zKCkge1xyXG4gICAgdGhpcy5ub2RlQ2xpY2tTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8Q3VzdG9tRXZlbnQ+KFxyXG4gICAgICB3aW5kb3csXHJcbiAgICAgICdLdk9yZ0NoYXJ0X05vZGVDbGljaydcclxuICAgICkuc3Vic2NyaWJlKChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5lbWl0aXJDbGljayhldmVudC5kZXRhaWwubm9kZSwgZXZlbnQuZGV0YWlsLnNlbGV0b3IpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5ub2RlQWRkU3Vic2NyaXB0aW9uID0gdGhpcy5zZXJ2aWNlLm5vZGVBZGQkLnN1YnNjcmliZShcclxuICAgICAgKG5vZGU6IE9yZ0NoYXJ0Tm9kZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRpY2lvbmFyTm9kZShub2RlKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLm5vZGVSZW1vdmVTdWJzY3JpcHRpb24gPSB0aGlzLnNlcnZpY2Uubm9kZVJlbW92ZSQuc3Vic2NyaWJlKFxyXG4gICAgICAoaWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHRoaXMucmVtb3Zlck5vZGUoaWQpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubm9kZUNsaWNrU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLm5vZGVBZGRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubm9kZVJlbW92ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZW1pdGlyQ2xpY2sobm9kZTogTm9kZSwgc2VsZXRvckNzcz86IHN0cmluZykge1xyXG4gICAgY29uc3QgZXZlbnQgPSB7XHJcbiAgICAgIG5vZGU6IG5vZGUsXHJcbiAgICAgIHNlbGV0b3JDc3M6IHNlbGV0b3JDc3MgPz8gJycsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5vbk5vZGVDbGljay5lbWl0KGV2ZW50KTtcclxuICB9XHJcbiAgYWRpY2lvbmFyTm9kZShub2RlOiBPcmdDaGFydE5vZGUpIHtcclxuICAgIGNvbnN0IGFyciA9IFsuLi50aGlzLmRhdGFTb3VyY2UoKSEsIG5vZGVdO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLnNldChhcnIpO1xyXG4gICAgdGhpcy5pbmljaWFyQ2hhcnQoKTtcclxuICB9XHJcbiAgcmVtb3Zlck5vZGUoaWQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgaW5kUGFpID0gdGhpcy5kYXRhU291cmNlKCkhLnNvbWUoKHg6IGFueSkgPT4geC5wYXJlbnRJZCA9PSBpZCk7XHJcbiAgICBpZiAoaW5kUGFpKSB7XHJcbiAgICAgIGFsZXJ0KCdOw6NvIMOpIHBvc3PDrXZlbCByZW1vdmVyIHVtIG7DsyBxdWUgcG9zc3VpIGZpbGhvcycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgYXJyID0gdGhpcy5kYXRhU291cmNlKCkhLmZpbHRlcigoeDogYW55KSA9PiB4LmlkICE9IGlkKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLnNldChhcnIpO1xyXG4gICAgICB0aGlzLmluaWNpYXJDaGFydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiBGdW7Dp8O1ZXMgZGUgdXRpbGlkYWRlXHJcblxyXG4gIHBlc3F1aXNhcihlOiBhbnkpIHtcclxuICAgIGNvbnN0IHZhbG9yID0gZS50YXJnZXQudmFsdWVcclxuICAgIHRoaXMuZmlsdHJvc09wdC5zZXQodGhpcy5maWx0cmFyQXJyYXkodmFsb3IpISlcclxuICB9XHJcblxyXG4gIGZpbHRyYXJBcnJheSh2YWxvcjogc3RyaW5nKTogT3JnQ2hhcnROb2RlW10gfCBudWxsIHtcclxuICAgIGlmICh2YWxvciAmJiB0aGlzLmNvbmZpZy5maWx0ZXJzKSB7XHJcbiAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UoKSE7XHJcbiAgICAgIGNvbnN0IHZhbG9yTG93ZXIgPSB2YWxvci50b0xvd2VyQ2FzZSgpOyAvLyBDb252ZXJ0ZSBvIHZhbG9yIGRlIGJ1c2NhIHBhcmEgbWluw7pzY3VsYXNcclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IGRhdGFTb3VyY2UuZmlsdGVyKChub2RlOiBPcmdDaGFydE5vZGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZmlsdGVycyEuZXZlcnkoKGZpbHRlcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAvLyBDb252ZXJ0ZSBvcyB2YWxvcmVzIHBhcmEgbWluw7pzY3VsYXMgZSB2ZXJpZmljYSBzZSBjb250w6ltIGEgc3RyaW5nIGRlIGJ1c2NhXHJcbiAgICAgICAgICByZXR1cm4gbm9kZS5kYXRhW2ZpbHRlcl0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWxvckxvd2VyKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gYXJyID8/IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcicpIGZpbHRlciE6IERyb3Bkb3duO1xyXG5cclxuXHJcbiAgY2VudHJhbGl6YXJObyhpZDogYW55KSB7XHJcbiAgICB0aGlzLmNoYXJ0LnNldENlbnRlcmVkKGlkKS5yZW5kZXIoKVxyXG4gICAgdGhpcy5maWx0ZXIuaGlkZSgpXHJcbiAgICB0aGlzLmZpbHRlci5jbGVhcigpXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gI2VuZHJlZ2lvblxyXG59XHJcbiIsIjxkaXYgI2NoYXJ0Q29udGFpbmVyIGlkPVwiY2hhcnRDb250YWluZXJcIiBbbmdDbGFzc109XCJ7IGJhY2tHcm91bmQ6IHRydWUgfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkaXYtYm90b2VzIHctZnVsbCBmbGV4IGdhcC0xXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGlkPVwibWVudWJhclwiXHJcbiAgICAgIGNsYXNzPVwic2hhZG93LTIgZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1jb250ZW50LWNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZvcm1ncmlkIHAtZmx1aWQgZmxleC1ncm93LTFcIj5cclxuICAgICAgICA8IS0tIDxkaXYgI2ZpbHRlckNvbnRhaW5lciBjbGFzcz1cImNvbC00IGdyaWQgZm9ybWdyaWQgcC1mbHVpZFwiPlxyXG4gICAgICAgICAgICA8a3YtaW5wdXQtdGV4dCBjbGFzcz1cImNvbC0xMlwiICNmaWx0cm8gKG9uSW5wdXQpPVwicGVzcXVpc2FyKCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9rdi1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgQGlmKGZpbHRyb3NPcHQoKS5sZW5ndGggPiAwKSB7XHJcbiBcclxuICAgICAgICAgICAgICA8ZGl2IGlkPVwiZmlsdHJvLW9yZy1jaGFydFwiIFtzdHlsZS53aWR0aC5weF09XCJmaWx0ZXJDb250YWluZXIub2Zmc2V0V2lkdGgqMC45XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgQGZvciAob3B0IG9mIGZpbHRyb3NPcHQoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0cm8tb3JnLWNoYXJ0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBvcHQuZGF0YS5uYW1lIH19XHJcblxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIH0gLS0+XHJcblxyXG4gICAgICAgIDxwLWRyb3Bkb3duXHJcbiAgICAgICAgICAjZmlsdGVyXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbHRyYXIuLi5cIlxyXG4gICAgICAgICAgW3N0eWxlXT1cIntcclxuICAgICAgICAgICAgaGVpZ2h0OiAnMzBweCcsXHJcbiAgICAgICAgICAgICdkaXNwbGF5JzogJ2ZsZXgnLFxyXG4gICAgICAgICAgICAnYWxpZ24taXRlbXMnOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgJ21hcmdpbi1sZWZ0JzogJzE1cHgnLFxyXG4gICAgICAgICAgICAnbWF4LXdpZHRoJzogJzk1JSdcclxuICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgW2ZpbHRlcl09XCJ0cnVlXCJcclxuICAgICAgICAgIFtmaWx0ZXJGaWVsZHNdPVwiY29uZmlnLmZpbHRlcnNcIlxyXG4gICAgICAgICAgW29wdGlvbnNdPVwidGhpcy5kYXRhU291cmNlKCkhXCJcclxuICAgICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAob25DaGFuZ2UpPVwiY2VudHJhbGl6YXJObygkZXZlbnQudmFsdWUuaWQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8IS0tIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRJdGVtVGVtcGxhdGVdPVwic2VsZWN0ZWRJdGVtVGVtcGxhdGVcIiAtLT5cclxuICAgICAgICAgIDwhLS0gW2ZpbHRlcmVkT3B0aW9uc109XCJ0aGlzLmRhdGFTb3VyY2UoKSFcIiAtLT5cclxuICAgICAgICAgIDwhLS0gW2ZpbHRlckZpZWxkc109XCJkYXRhLm5hbWVcIiAtLT5cclxuXHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2l0ZW1UZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJJdGVtVGVtcGxhdGUhXCJcclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRJdGVtVGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJTZWxlY3RlZEl0ZW1UZW1wbGF0ZSFcIlxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9wLWRyb3Bkb3duPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gQWN0aW9ucyBiYXIgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0xIGZsZXgtcm93IGZsZXgtZ3Jvdy0wXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMHB4XCIgY2xhc3M9XCJtci0yXCI+XHJcbiAgICAgICAgICA8a3YtYnV0dG9uXHJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNoYXJ0LmV4cGFuZEFsbCgpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tZXhwYW5kLWFsbFwiXHJcbiAgICAgICAgICAgIFtmdWxsV2lkdGhdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICBzZXZlcml0eT1cInRlcnRpYXJ5XCJcclxuICAgICAgICAgICAgW2ljb25dPVwiJ2V4cGFuZF9hbGwnXCJcclxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIidFeHBhbmRpciBUb2RvcydcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9rdi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMzBweFwiIGNsYXNzPVwibXItMlwiPlxyXG4gICAgICAgICAgPGt2LWJ1dHRvblxyXG4gICAgICAgICAgICAob25DbGljayk9XCJjaGFydC5jb2xsYXBzZUFsbCgpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tY29sYXBwc2UtYWxsXCJcclxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgIHNldmVyaXR5PVwidGVydGlhcnlcIlxyXG4gICAgICAgICAgICBbaWNvbl09XCInY29sbGFwc2VfYWxsJ1wiXHJcbiAgICAgICAgICAgIFtwVG9vbHRpcF09XCInUmVjb2xoZXIgVG9kb3MnXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwva3YtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDMwcHhcIiBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgIDxrdi1idXR0b25cclxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2hhcnQuZml0KCkucmVuZGVyKClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1mb2N1cy1jZW50ZXJcIlxyXG4gICAgICAgICAgICBbZnVsbFdpZHRoXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc2V2ZXJpdHk9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgW2ljb25dPVwiJ2NlbnRlcl9mb2N1c193ZWFrJ1wiXHJcbiAgICAgICAgICAgIFtwVG9vbHRpcF09XCInQ2VudHJhbGl6YXIgT3JnYW5vZ3JhbWEnXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwva3YtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxsaW5rXHJcbiAgcmVsPVwic3R5bGVzaGVldFwiXHJcbiAgaHJlZj1cImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vaWNvbj9mYW1pbHk9TWF0ZXJpYWwrSWNvbnNcIlxyXG4vPlxyXG5cclxuPGxpbmtcclxuICByZWw9XCJzdHlsZXNoZWV0XCJcclxuICBocmVmPVwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1NYXRlcmlhbCtTeW1ib2xzK091dGxpbmVkOm9wc3osd2dodCxGSUxMLEdSQURANDgsNDAwLDAsMFwiXHJcbi8+XHJcblxyXG48ZGl2IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjbm9kZVRlbXBsYXRlIGxldC1ub2RlPlxyXG4gICAgPGRpdiBjbGFzcz1cIm5vZGUtY29udGVudFwiPmVycm88L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytb3JnY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUlOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUl6QixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFZL0MsTUFBTSxPQUFPLG1CQUFtQjtJQThCOUIsWUFDVSxHQUFzQixFQUN0QixPQUF3QixFQUN4QixhQUE0QjtRQUY1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTVCdEMsZUFBVSxHQUFHLEtBQUssQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFFaEQsZUFBVSxHQUFHLE1BQU0sQ0FBaUIsRUFBRSxDQUFDLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxJQUFJLENBQUE7UUFhbEIsNkJBQTZCO1FBRW5CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVoRCxhQUFhO1FBRWIsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QixlQUFVLEdB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QUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDckIsQ0FBQzs4R0FwUFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsaWpDQVlLLGdCQUFnQixxSUM3Q3JELDQySEE2SEE7OzJGRDVGYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTtnSkFjZCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ3VCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUUzQixnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTVDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQXNOYyxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBtb2RlbCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9yZ0NoYXJ0IH0gZnJvbSAnZDMtb3JnLWNoYXJ0JztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcblxuaW1wb3J0IE9yZ0NoYXJ0Q29uZmlnIGZyb20gJy4uLy4uL2FwaS9jb21wb25lbnRzL2NoYXJ0L29yY2hhcnQuY29uZmlnJztcbmltcG9ydCBPcmdDaGFydE5vZGUgZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvY2hhcnQvb3JjaGFydG5vZGUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9yZ0NoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9vcmdjaGFydC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IERyb3Bkb3duLCBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2t2LW9yZ2NoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LW9yZ2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4va3Ytb3JnY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgS3ZPcmdjaGFydENvbXBvbmVudCB7XG5cblxuICBjaGFydCE6IGFueTtcblxuICBkYXRhU291cmNlID0gbW9kZWw8T3JnQ2hhcnROb2RlW10gfCBudWxsPihudWxsKTtcblxuICBmaWx0cm9zT3B0ID0gc2lnbmFsPE9yZ0NoYXJ0Tm9kZVtdPihbXSk7XG4gIHNlbGVjdGVkT3B0ID0gbnVsbFxuXG4gIEBJbnB1dCgpIGNvbmZpZyE6IE9yZ0NoYXJ0Q29uZmlnO1xuICBAVmlld0NoaWxkKCdjaGFydENvbnRhaW5lcicpIGNoYXJ0Q29udGFpbmVyITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnbm9kZVRlbXBsYXRlJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gIHZpZXdDb250YWluZXJSZWYhOiBWaWV3Q29udGFpbmVyUmVmO1xuICBASW5wdXQoKSBub2RlVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpIGZpbHRlckl0ZW1UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGZpbHRlclNlbGVjdGVkSXRlbVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuXG5cbiAgLy8jcmVnaW9uIEVtaXNzb3JlcyBkZSBldmVudG9cblxuICBAT3V0cHV0KCkgb25Ob2RlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvLyAjZW5kcmVnaW9uXG5cbiAgY29tcGFjdDogYm9vbGVhbiA9IHRydWU7XG4gIG1vc3RyYU1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBPcmdDaGFydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlXG4gICkge31cblxuICAvLyNyZWdpb24gSW5pY2lhciBPcmdDaGFydCBlIEF0dWFsaXphw6fDo28gZGUgZGFkb3NcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbmljaWFySGFuZGxlcnNEZUV2ZW50b3MoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuY2hhcnQpIHtcbiAgICAgIHRoaXMuY2hhcnQgPSBuZXcgT3JnQ2hhcnQoKTtcbiAgICB9XG4gICAgdGhpcy5pbmljaWFyQ2hhcnQoKTtcbiAgfVxuXG4gIGluaWNpYXJDaGFydCgpIHtcbiAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSgpIHx8ICF0aGlzLmNoYXJ0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2hhcnRDb250YWluZXIgPSB0aGlzLmNoYXJ0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5jaGFydFxuICAgICAgLmNyZWF0ZVpvb20oKCkgPT4ge1xuICAgICAgICByZXR1cm4gZDMuem9vbSgpLmZpbHRlcigoZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZS5zcmNFbGVtZW50O1xuICAgICAgICAgIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbm8tem9vbScpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY29udGFpbmVyKGNoYXJ0Q29udGFpbmVyKVxuICAgICAgLmRhdGEodGhpcy5kYXRhU291cmNlKCkpXG4gICAgICAubm9kZVdpZHRoKCgpID0+IHRoaXMuY29uZmlnLmNhcmRXaWRodClcbiAgICAgIC5ub2RlSGVpZ2h0KChkOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGQuZGF0YS5leHBhbmRlZCAmJiB0aGlzLmNvbmZpZy5jYXJkRXhwYW5kZWRIZWlnaHRcbiAgICAgICAgICA/IHRoaXMuY29uZmlnLmNhcmRFeHBhbmRlZEhlaWdodFxuICAgICAgICAgIDogdGhpcy5jb25maWcuY2FyZEhlaWdodDtcbiAgICAgIH0pXG4gICAgICAuY29tcGFjdChmYWxzZSlcbiAgICAgIC5idXR0b25Db250ZW50KCh7IG5vZGUsIHN0YXRlIH06IHsgbm9kZTogYW55OyBzdGF0ZTogYW55IH0pID0+IHtcbiAgICAgICAgcmV0dXJuIGA8ZGl2IHN0eWxlPVwiY29sb3I6I0ZGRkZGRjsgYm9yZGVyLXJhZGl1czoxMDAlO2ZvbnQtc2l6ZTo1cHg7bWFyZ2luOmF1dG8gYXV0bztiYWNrZ3JvdW5kLWNvbG9yOiM2NDc0OEI7XCI+XG4gICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgJHtcbiAgICAgICAgICAgIG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwXG4gICAgICAgICAgICAgID8gYDxpIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICBrZXlib2FyZF9hcnJvd191cFxuICAgICAgICAgICAgICA8L2k+YFxuICAgICAgICAgICAgICA6IGA8aSBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAga2V5Ym9hcmRfYXJyb3dfZG93blxuICAgICAgICAgICAgPC9pPmBcbiAgICAgICAgICB9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgIH0pXG4gICAgICAubGlua1VwZGF0ZSgobm9kZTogYW55LCBpbmRleDogYW55LCBub2RlczogYW55KSA9PiB7XG4gICAgICAgIGQzLnNlbGVjdChub2Rlc1tpbmRleF0pXG4gICAgICAgICAgLmF0dHIoJ3N0cm9rZS13aWR0aCcsIHRoaXMuY29uZmlnLmNvbmVjdGlvbldpZHRoIHx8ICcycHgnKVxuICAgICAgICAgIC5zdHlsZSgnc3Ryb2tlJywgdGhpcy5jb25maWcuY29ubmVjdGlvbkNvbG9yIHx8ICcjZDZkNmQ2Jyk7XG4gICAgICB9KVxuICAgICAgLm5vZGVDb250ZW50KChkOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZTogT3JnQ2hhcnROb2RlID0ge1xuICAgICAgICAgIGRhdGE6IGQuZGF0YS5kYXRhLFxuICAgICAgICAgIGNoaWxkcmVuOiBkLmNoaWxkcmVuLFxuICAgICAgICAgIGlkOiBkLmRhdGEuaWQsXG4gICAgICAgICAgcGFyZW50SWQ6IGQuZGF0YS5wYXJlbnRJZCxcbiAgICAgICAgICBleHBhbmRlZDogZC5kYXRhLmV4cGFuZGVkLFxuICAgICAgICAgIG9yZ0NvbmZpZzogZC5vcmdDb25maWcsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHggPSB0aGlzLnJlbmRlck5vZGVUZW1wbGF0ZShub2RlKTtcbiAgICAgICAgcmV0dXJuIHg7XG4gICAgICB9KVxuICAgICAgLm5vZGVVcGRhdGUoZnVuY3Rpb24gKHRoaXM6IGFueSwgZDogYW55KSB7XG4gICAgICAgIGQuZGF0YS5vcmdDb25maWcuY2xpY2tzLmZvckVhY2goKGNsaWNrOiBhbnkpID0+IHtcbiAgICAgICAgICBkMy5zZWxlY3QodGhpcylcbiAgICAgICAgICAgIC5zZWxlY3QoY2xpY2spXG4gICAgICAgICAgICAub24oJ2NsaWNrJywgKGUsIGQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZGFkb3M6IGFueSA9IGQ7XG4gICAgICAgICAgICAgIGNvbnN0IG5vZGU6IE9yZ0NoYXJ0Tm9kZSA9IHtcbiAgICAgICAgICAgICAgICBkYXRhOiBkYWRvcy5kYXRhLmRhdGEsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGRhZG9zLmNoaWxkcmVuLFxuICAgICAgICAgICAgICAgIGlkOiBkYWRvcy5kYXRhLmlkLFxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBkYWRvcy5kYXRhLnBhcmVudElkLFxuICAgICAgICAgICAgICAgIGV4cGFuZGVkOiBkYWRvcy5kYXRhLmV4cGFuZGVkLFxuICAgICAgICAgICAgICAgIG9yZ0NvbmZpZzogZGFkb3Mub3JnQ29uZmlnLFxuICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgnS3ZPcmdDaGFydF9Ob2RlQ2xpY2snLCB7XG4gICAgICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZXRvcjogY2xpY2ssXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmRlZmF1bHRGb250KCdSb2JvdG8nKVxuICAgICAgLnJlbmRlcigpO1xuXG4gICAgdGhpcy5jaGFydC5leHBhbmRBbGwoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snZGF0YVNvdXJjZSddKSB7XG4gICAgICB0aGlzLmluaWNpYXJDaGFydCgpO1xuICAgIH1cbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyAjcmVnaW9uIFJlbmRlcml6YcOnw6NvIGRlIHRlbXBsYXRlXG4gIHJlbmRlck5vZGVUZW1wbGF0ZShub2RlOiBPcmdDaGFydE5vZGUpOiBzdHJpbmcge1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubm9kZVRlbXBsYXRlLCB7XG4gICAgICBub2RlOiBub2RlLFxuICAgIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICByZXR1cm4gdmlldy5yb290Tm9kZXNbMF0ub3V0ZXJIVE1MO1xuICB9XG4gIC8vICNlbmRyZWdpb25cblxuICAvLyAjcmVnaW9uIEV2ZW50b3NcbiAgcHJpdmF0ZSBub2RlQ2xpY2tTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgbm9kZUFkZFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBub2RlUmVtb3ZlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIGluaWNpYXJIYW5kbGVyc0RlRXZlbnRvcygpIHtcbiAgICB0aGlzLm5vZGVDbGlja1N1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxDdXN0b21FdmVudD4oXG4gICAgICB3aW5kb3csXG4gICAgICAnS3ZPcmdDaGFydF9Ob2RlQ2xpY2snXG4gICAgKS5zdWJzY3JpYmUoKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgdGhpcy5lbWl0aXJDbGljayhldmVudC5kZXRhaWwubm9kZSwgZXZlbnQuZGV0YWlsLnNlbGV0b3IpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5ub2RlQWRkU3Vic2NyaXB0aW9uID0gdGhpcy5zZXJ2aWNlLm5vZGVBZGQkLnN1YnNjcmliZShcbiAgICAgIChub2RlOiBPcmdDaGFydE5vZGUpID0+IHtcbiAgICAgICAgdGhpcy5hZGljaW9uYXJOb2RlKG5vZGUpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLm5vZGVSZW1vdmVTdWJzY3JpcHRpb24gPSB0aGlzLnNlcnZpY2Uubm9kZVJlbW92ZSQuc3Vic2NyaWJlKFxuICAgICAgKGlkOiBudW1iZXIpID0+IHtcbiAgICAgICAgdGhpcy5yZW1vdmVyTm9kZShpZCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5vZGVDbGlja1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubm9kZUFkZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMubm9kZVJlbW92ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZW1pdGlyQ2xpY2sobm9kZTogTm9kZSwgc2VsZXRvckNzcz86IHN0cmluZykge1xuICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgbm9kZTogbm9kZSxcbiAgICAgIHNlbGV0b3JDc3M6IHNlbGV0b3JDc3MgPz8gJycsXG4gICAgfTtcbiAgICB0aGlzLm9uTm9kZUNsaWNrLmVtaXQoZXZlbnQpO1xuICB9XG4gIGFkaWNpb25hck5vZGUobm9kZTogT3JnQ2hhcnROb2RlKSB7XG4gICAgY29uc3QgYXJyID0gWy4uLnRoaXMuZGF0YVNvdXJjZSgpISwgbm9kZV07XG4gICAgdGhpcy5kYXRhU291cmNlLnNldChhcnIpO1xuICAgIHRoaXMuaW5pY2lhckNoYXJ0KCk7XG4gIH1cbiAgcmVtb3Zlck5vZGUoaWQ6IG51bWJlcikge1xuICAgIGNvbnN0IGluZFBhaSA9IHRoaXMuZGF0YVNvdXJjZSgpIS5zb21lKCh4OiBhbnkpID0+IHgucGFyZW50SWQgPT0gaWQpO1xuICAgIGlmIChpbmRQYWkpIHtcbiAgICAgIGFsZXJ0KCdOw6NvIMOpIHBvc3PDrXZlbCByZW1vdmVyIHVtIG7DsyBxdWUgcG9zc3VpIGZpbGhvcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmRhdGFTb3VyY2UoKSEuZmlsdGVyKCh4OiBhbnkpID0+IHguaWQgIT0gaWQpO1xuICAgICAgdGhpcy5kYXRhU291cmNlLnNldChhcnIpO1xuICAgICAgdGhpcy5pbmljaWFyQ2hhcnQoKTtcbiAgICB9XG4gIH1cbiAgLy8gI2VuZHJlZ2lvblxuXG5cblxuICAvLyAjcmVnaW9uIEZ1bsOnw7VlcyBkZSB1dGlsaWRhZGVcblxuICBwZXNxdWlzYXIoZTogYW55KSB7XG4gICAgY29uc3QgdmFsb3IgPSBlLnRhcmdldC52YWx1ZVxuICAgIHRoaXMuZmlsdHJvc09wdC5zZXQodGhpcy5maWx0cmFyQXJyYXkodmFsb3IpISlcbiAgfVxuXG4gIGZpbHRyYXJBcnJheSh2YWxvcjogc3RyaW5nKTogT3JnQ2hhcnROb2RlW10gfCBudWxsIHtcbiAgICBpZiAodmFsb3IgJiYgdGhpcy5jb25maWcuZmlsdGVycykge1xuICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpITtcbiAgICAgIGNvbnN0IHZhbG9yTG93ZXIgPSB2YWxvci50b0xvd2VyQ2FzZSgpOyAvLyBDb252ZXJ0ZSBvIHZhbG9yIGRlIGJ1c2NhIHBhcmEgbWluw7pzY3VsYXNcblxuICAgICAgY29uc3QgYXJyID0gZGF0YVNvdXJjZS5maWx0ZXIoKG5vZGU6IE9yZ0NoYXJ0Tm9kZSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZmlsdGVycyEuZXZlcnkoKGZpbHRlcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgLy8gQ29udmVydGUgb3MgdmFsb3JlcyBwYXJhIG1pbsO6c2N1bGFzIGUgdmVyaWZpY2Egc2UgY29udMOpbSBhIHN0cmluZyBkZSBidXNjYVxuICAgICAgICAgIHJldHVybiBub2RlLmRhdGFbZmlsdGVyXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbG9yTG93ZXIpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYXJyID8/IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcicpIGZpbHRlciE6IERyb3Bkb3duO1xuXG5cbiAgY2VudHJhbGl6YXJObyhpZDogYW55KSB7XG4gICAgdGhpcy5jaGFydC5zZXRDZW50ZXJlZChpZCkucmVuZGVyKClcbiAgICB0aGlzLmZpbHRlci5oaWRlKClcbiAgICB0aGlzLmZpbHRlci5jbGVhcigpXG4gIH1cblxuXG4gIC8vICNlbmRyZWdpb25cbn1cbiIsIjxkaXYgI2NoYXJ0Q29udGFpbmVyIGlkPVwiY2hhcnRDb250YWluZXJcIiBbbmdDbGFzc109XCJ7IGJhY2tHcm91bmQ6IHRydWUgfVwiPlxuICA8ZGl2IGNsYXNzPVwiZGl2LWJvdG9lcyB3LWZ1bGwgZmxleCBnYXAtMVwiPlxuICAgIDxkaXZcbiAgICAgIGlkPVwibWVudWJhclwiXG4gICAgICBjbGFzcz1cInNoYWRvdy0yIGZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24tY29udGVudC1jZW50ZXJcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGZvcm1ncmlkIHAtZmx1aWQgZmxleC1ncm93LTFcIj5cbiAgICAgICAgPCEtLSA8ZGl2ICNmaWx0ZXJDb250YWluZXIgY2xhc3M9XCJjb2wtNCBncmlkIGZvcm1ncmlkIHAtZmx1aWRcIj5cbiAgICAgICAgICAgIDxrdi1pbnB1dC10ZXh0IGNsYXNzPVwiY29sLTEyXCIgI2ZpbHRybyAob25JbnB1dCk9XCJwZXNxdWlzYXIoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9rdi1pbnB1dC10ZXh0PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgQGlmKGZpbHRyb3NPcHQoKS5sZW5ndGggPiAwKSB7XG4gXG4gICAgICAgICAgICAgIDxkaXYgaWQ9XCJmaWx0cm8tb3JnLWNoYXJ0XCIgW3N0eWxlLndpZHRoLnB4XT1cImZpbHRlckNvbnRhaW5lci5vZmZzZXRXaWR0aCowLjlcIj5cblxuICAgICAgICAgICAgICAgIEBmb3IgKG9wdCBvZiBmaWx0cm9zT3B0KCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRyby1vcmctY2hhcnQtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBvcHQuZGF0YS5uYW1lIH19XG5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgfSAtLT5cblxuICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgICNmaWx0ZXJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbHRyYXIuLi5cIlxuICAgICAgICAgIFtzdHlsZV09XCJ7XG4gICAgICAgICAgICBoZWlnaHQ6ICczMHB4JyxcbiAgICAgICAgICAgICdkaXNwbGF5JzogJ2ZsZXgnLFxuICAgICAgICAgICAgJ2FsaWduLWl0ZW1zJzogJ2NlbnRlcicsXG4gICAgICAgICAgICAnbWFyZ2luLWxlZnQnOiAnMTVweCcsXG4gICAgICAgICAgICAnbWF4LXdpZHRoJzogJzk1JSdcbiAgICAgICAgICB9XCJcbiAgICAgICAgICBbZmlsdGVyXT1cInRydWVcIlxuICAgICAgICAgIFtmaWx0ZXJGaWVsZHNdPVwiY29uZmlnLmZpbHRlcnNcIlxuICAgICAgICAgIFtvcHRpb25zXT1cInRoaXMuZGF0YVNvdXJjZSgpIVwiXG4gICAgICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgICAgICAob25DaGFuZ2UpPVwiY2VudHJhbGl6YXJObygkZXZlbnQudmFsdWUuaWQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDwhLS0gW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgICBbc2VsZWN0ZWRJdGVtVGVtcGxhdGVdPVwic2VsZWN0ZWRJdGVtVGVtcGxhdGVcIiAtLT5cbiAgICAgICAgICA8IS0tIFtmaWx0ZXJlZE9wdGlvbnNdPVwidGhpcy5kYXRhU291cmNlKCkhXCIgLS0+XG4gICAgICAgICAgPCEtLSBbZmlsdGVyRmllbGRzXT1cImRhdGEubmFtZVwiIC0tPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwiaXRlbVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJJdGVtVGVtcGxhdGUhXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RlZEl0ZW1UZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyU2VsZWN0ZWRJdGVtVGVtcGxhdGUhXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBBY3Rpb25zIGJhciAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0xIGZsZXgtcm93IGZsZXgtZ3Jvdy0wXCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMzBweFwiIGNsYXNzPVwibXItMlwiPlxuICAgICAgICAgIDxrdi1idXR0b25cbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNoYXJ0LmV4cGFuZEFsbCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWV4cGFuZC1hbGxcIlxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJmYWxzZVwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgc2V2ZXJpdHk9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgICAgICBbaWNvbl09XCInZXhwYW5kX2FsbCdcIlxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIidFeHBhbmRpciBUb2RvcydcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2t2LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMHB4XCIgY2xhc3M9XCJtci0yXCI+XG4gICAgICAgICAgPGt2LWJ1dHRvblxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2hhcnQuY29sbGFwc2VBbGwoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1jb2xhcHBzZS1hbGxcIlxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJmYWxzZVwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgc2V2ZXJpdHk9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgICAgICBbaWNvbl09XCInY29sbGFwc2VfYWxsJ1wiXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ1JlY29saGVyIFRvZG9zJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwva3YtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDMwcHhcIiBjbGFzcz1cIm1yLTJcIj5cbiAgICAgICAgICA8a3YtYnV0dG9uXG4gICAgICAgICAgICAob25DbGljayk9XCJjaGFydC5maXQoKS5yZW5kZXIoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1mb2N1cy1jZW50ZXJcIlxuICAgICAgICAgICAgW2Z1bGxXaWR0aF09XCJmYWxzZVwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgc2V2ZXJpdHk9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIFtpY29uXT1cIidjZW50ZXJfZm9jdXNfd2VhaydcIlxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIidDZW50cmFsaXphciBPcmdhbm9ncmFtYSdcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2t2LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGxpbmtcbiAgcmVsPVwic3R5bGVzaGVldFwiXG4gIGhyZWY9XCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2ljb24/ZmFtaWx5PU1hdGVyaWFsK0ljb25zXCJcbi8+XG5cbjxsaW5rXG4gIHJlbD1cInN0eWxlc2hlZXRcIlxuICBocmVmPVwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1NYXRlcmlhbCtTeW1ib2xzK091dGxpbmVkOm9wc3osd2dodCxGSUxMLEdSQURANDgsNDAwLDAsMFwiXG4vPlxuXG48ZGl2IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxuICA8bmctdGVtcGxhdGUgI25vZGVUZW1wbGF0ZSBsZXQtbm9kZT5cbiAgICA8ZGl2IGNsYXNzPVwibm9kZS1jb250ZW50XCI+ZXJybzwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
56
56
  exports: [KvOrgchartComponent]
57
57
  }]
58
58
  }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytb3JnY2hhcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUcsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW1CdEQsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBSFosbUJBQW1CLGFBWmhDLFlBQVk7WUFDWixhQUFhO1lBQ2IsV0FBVztZQUNYLGFBQWE7WUFDYixhQUFhO1lBQ2IsdUJBQXVCO1lBQ3ZCLGNBQWM7WUFDZCxjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxnQkFBZ0IsYUFHUixtQkFBbUI7K0dBRWxCLGdCQUFnQixZQWZ6QixZQUFZO1lBQ1osYUFBYTtZQUNiLFdBQVc7WUFDWCxhQUFhO1lBQ2IsYUFBYTtZQUNiLHVCQUF1QjtZQUN2QixjQUFjO1lBQ2QsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZ0JBQWdCOzsyRkFLUCxnQkFBZ0I7a0JBakI1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGt2RXJyb3JNb2R1bGUgfSBmcm9tICcuLy4uL2t2LWVycm9yL2t2LWVycm9yLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEt2T3JnY2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2t2LW9yZ2NoYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByaW1lTmdNb2R1bGUgfSBmcm9tICcuLi8uLi9hcGkvbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IE9yZ2FuaXphdGlvbkNoYXJ0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9vcmdhbml6YXRpb25jaGFydCc7XHJcbmltcG9ydCB7IEt2QnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4va3YtYnV0dG9uL2t2LWJ1dHRvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdklucHV0c01vZHVsZSB9IGZyb20gJy4uL2t2LWlucHV0cy9rdi1pbnB1dHMubW9kdWxlJztcclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyAgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZsb2F0TGFiZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL2Zsb2F0bGFiZWwnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBQcmltZU5nTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBrdkVycm9yTW9kdWxlLFxyXG4gICAgUHJpbWVOZ01vZHVsZSxcclxuICAgIE9yZ2FuaXphdGlvbkNoYXJ0TW9kdWxlLFxyXG4gICAgS3ZCdXR0b25Nb2R1bGUsXHJcbiAgICBLdklucHV0c01vZHVsZSxcclxuICAgIEF1dG9Db21wbGV0ZU1vZHVsZSxcclxuICAgIERyb3Bkb3duTW9kdWxlLFxyXG4gICAgRmxvYXRMYWJlbE1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbS3ZPcmdjaGFydENvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW0t2T3JnY2hhcnRDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdk9yZ2NoYXJ0TW9kdWxlIHsgfVxyXG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytb3JnY2hhcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytb3JnY2hhcnQva3Ytb3JnY2hhcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUcsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW1CdEQsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBSFosbUJBQW1CLGFBWmhDLFlBQVk7WUFDWixhQUFhO1lBQ2IsV0FBVztZQUNYLGFBQWE7WUFDYixhQUFhO1lBQ2IsdUJBQXVCO1lBQ3ZCLGNBQWM7WUFDZCxjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxnQkFBZ0IsYUFHUixtQkFBbUI7K0dBRWxCLGdCQUFnQixZQWZ6QixZQUFZO1lBQ1osYUFBYTtZQUNiLFdBQVc7WUFDWCxhQUFhO1lBQ2IsYUFBYTtZQUNiLHVCQUF1QjtZQUN2QixjQUFjO1lBQ2QsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZ0JBQWdCOzsyRkFLUCxnQkFBZ0I7a0JBakI1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGt2RXJyb3JNb2R1bGUgfSBmcm9tICcuLy4uL2t2LWVycm9yL2t2LWVycm9yLm1vZHVsZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEt2T3JnY2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2t2LW9yZ2NoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcmltZU5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vYXBpL21vZHVsZXMvcHJpbWVuZy5tb2R1bGUnO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uQ2hhcnRNb2R1bGUgfSBmcm9tICdwcmltZW5nL29yZ2FuaXphdGlvbmNoYXJ0JztcbmltcG9ydCB7IEt2QnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4va3YtYnV0dG9uL2t2LWJ1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgS3ZJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi9rdi1pbnB1dHMva3YtaW5wdXRzLm1vZHVsZSc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyAgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmxvYXRMYWJlbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZmxvYXRsYWJlbCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUHJpbWVOZ01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBrdkVycm9yTW9kdWxlLFxuICAgIFByaW1lTmdNb2R1bGUsXG4gICAgT3JnYW5pemF0aW9uQ2hhcnRNb2R1bGUsXG4gICAgS3ZCdXR0b25Nb2R1bGUsXG4gICAgS3ZJbnB1dHNNb2R1bGUsXG4gICAgQXV0b0NvbXBsZXRlTW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIEZsb2F0TGFiZWxNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbS3ZPcmdjaGFydENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtLdk9yZ2NoYXJ0Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBLdk9yZ2NoYXJ0TW9kdWxlIHsgfVxuIl19
@@ -138,11 +138,11 @@ export class KvPageFormComponent {
138
138
  }
139
139
  }
140
140
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPageFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPageFormComponent, selector: "kv-page-form", inputs: { formGroup: "formGroup", TituloForm: "TituloForm", SubTituloForm: "SubTituloForm", isSaveLoading: "isSaveLoading", popup: "popup", locationUseComponent: "locationUseComponent", iconBtnCancel: "iconBtnCancel", showBtnCancel: "showBtnCancel", txtBtnCancel: "txtBtnCancel", actionsCancelToogle: "actionsCancelToogle", iconBtnCancelToogle: "iconBtnCancelToogle", showBtnCancelToogle: "showBtnCancelToogle", txtBtnCancelToogle: "txtBtnCancelToogle", iconBtnSave: "iconBtnSave", showBtnSave: "showBtnSave", txtBtnSave: "txtBtnSave", disableBtnSave: "disableBtnSave", actionsSaveToogle: "actionsSaveToogle", iconBtnSaveToogle: "iconBtnSaveToogle", showBtnSaveToogle: "showBtnSaveToogle", txtBtnSaveToogle: "txtBtnSaveToogle", iconBtnSecundary: "iconBtnSecundary", showBtnSecundary: "showBtnSecundary", txtBtnSecundary: "txtBtnSecundary", colorBtnSecundary: "colorBtnSecundary", actionsToogle: "actionsToogle", iconBtnToogle: "iconBtnToogle", showBtnToogle: "showBtnToogle", txtBtnToogle: "txtBtnToogle", classBtnToogle: "classBtnToogle", disableBtnSair: "disableBtnSair", showMessageCamposObrigatorios: "showMessageCamposObrigatorios" }, outputs: { onSave: "onSave", onCancel: "onCancel", onClickSecundary: "onClickSecundary" }, viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n [formGroup]=\"formGroup\"\r\n class=\"grid-nogutter m-0\"\r\n id=\"page-form-container\"\r\n #pageContainer\r\n [style.padding-bottom.px]=\"pageContentHeight()\"\r\n>\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n\r\n <div\r\n class=\"flex flex-column md:flex-row md:justify-content-end md:align-items-center col-12 gap-2 barra-acoes\"\r\n id=\"barra-acoes\"\r\n >\r\n @if(showMessageCamposObrigatorios) {\r\n <span class=\"w-full text-sm\">\r\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios</span\r\n >\r\n }\r\n <kv-button\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (onClick)=\"cancel($event)\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n >\r\n </kv-button>\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full md:w-auto\"\r\n [classBtn]=\"'tertiary'\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSecundary\"\r\n [label]=\"txtBtnSecundary\"\r\n [icon]=\"iconBtnSecundary\"\r\n [disabled]=\"isSaveLoading\"\r\n severity=\"secondary\"\r\n (onClick)=\"actionSecundary($event)\"\r\n class=\"w-full md:w-auto\"\r\n ></kv-button>\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n class=\"w-full md:w-auto\"\r\n classBtn=\"secondary\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (onClick)=\"save($event)\"\r\n severity=\"primary\"\r\n class=\"w-full md:w-auto\"\r\n />\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full md:w-auto\"\r\n [classBtn]=\"'primary'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n </div>\r\n</div>\r\n", styles: ["*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;right:0;background-color:#fff;padding:10px}#page-form-container{padding-bottom:40px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i4.KvButtonPopupComponent, selector: "kv-button-popup", inputs: ["items", "classBtn"] }, { kind: "component", type: i5.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "label", "disabled"], outputs: ["onClick"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPageFormComponent, selector: "kv-page-form", inputs: { formGroup: "formGroup", TituloForm: "TituloForm", SubTituloForm: "SubTituloForm", isSaveLoading: "isSaveLoading", popup: "popup", locationUseComponent: "locationUseComponent", iconBtnCancel: "iconBtnCancel", showBtnCancel: "showBtnCancel", txtBtnCancel: "txtBtnCancel", actionsCancelToogle: "actionsCancelToogle", iconBtnCancelToogle: "iconBtnCancelToogle", showBtnCancelToogle: "showBtnCancelToogle", txtBtnCancelToogle: "txtBtnCancelToogle", iconBtnSave: "iconBtnSave", showBtnSave: "showBtnSave", txtBtnSave: "txtBtnSave", disableBtnSave: "disableBtnSave", actionsSaveToogle: "actionsSaveToogle", iconBtnSaveToogle: "iconBtnSaveToogle", showBtnSaveToogle: "showBtnSaveToogle", txtBtnSaveToogle: "txtBtnSaveToogle", iconBtnSecundary: "iconBtnSecundary", showBtnSecundary: "showBtnSecundary", txtBtnSecundary: "txtBtnSecundary", colorBtnSecundary: "colorBtnSecundary", actionsToogle: "actionsToogle", iconBtnToogle: "iconBtnToogle", showBtnToogle: "showBtnToogle", txtBtnToogle: "txtBtnToogle", classBtnToogle: "classBtnToogle", disableBtnSair: "disableBtnSair", showMessageCamposObrigatorios: "showMessageCamposObrigatorios" }, outputs: { onSave: "onSave", onCancel: "onCancel", onClickSecundary: "onClickSecundary" }, viewQueries: [{ propertyName: "pageContainer", first: true, predicate: ["pageContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n [formGroup]=\"formGroup\"\n class=\"grid-nogutter m-0\"\n id=\"page-form-container\"\n #pageContainer\n [style.padding-bottom.px]=\"pageContentHeight()\"\n>\n <!-- Renderiza\u00E7\u00E3o do form -->\n <div class=\"col-12 p-0\" id=\"page-form-content\">\n <ng-content></ng-content>\n </div>\n\n <!-- Divider -->\n <!-- <p-divider class=\"col-12\"></p-divider> -->\n\n <!-- Barra de a\u00E7\u00F5es -->\n\n <div\n class=\"flex flex-column md:flex-row md:justify-content-end md:align-items-center col-12 gap-2 barra-acoes\"\n id=\"barra-acoes\"\n >\n @if(showMessageCamposObrigatorios) {\n <span class=\"w-full text-sm\">\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios</span\n >\n }\n <kv-button\n *ngIf=\"showBtnCancel\"\n [label]=\"txtBtnCancel\"\n [icon]=\"iconBtnCancel\"\n [disabled]=\"isSaveLoading\"\n (onClick)=\"cancel($event)\"\n class=\"w-full md:w-auto\"\n severity=\"tertiary\"\n >\n </kv-button>\n <kv-button-popup\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\n [label]=\"txtBtnCancelToogle\"\n [icon]=\"iconBtnCancelToogle\"\n (click)=\"menuCancel.toggle($event)\"\n class=\"w-full md:w-auto\"\n [classBtn]=\"'tertiary'\"\n [disabled]=\"isSaveLoading\"\n >\n </kv-button-popup>\n <p-menu\n #menuCancel\n [popup]=\"true\"\n [model]=\"actionsCancelToogle\"\n appendTo=\"body\"\n class=\"w-full md:w-auto\"\n [style.display]=\"'none'\"\n ></p-menu>\n\n <kv-button\n *ngIf=\"showBtnSecundary\"\n [label]=\"txtBtnSecundary\"\n [icon]=\"iconBtnSecundary\"\n [disabled]=\"isSaveLoading\"\n severity=\"secondary\"\n (onClick)=\"actionSecundary($event)\"\n class=\"w-full md:w-auto\"\n ></kv-button>\n\n <kv-button-popup\n *ngIf=\"actionsToogle && showBtnToogle\"\n [label]=\"txtBtnToogle\"\n [icon]=\"iconBtnToogle\"\n (click)=\"menuToogle.toggle($event)\"\n class=\"w-full md:w-auto\"\n classBtn=\"secondary\"\n [disabled]=\"isSaveLoading\"\n >\n </kv-button-popup>\n <p-menu\n #menuToogle\n [popup]=\"true\"\n [model]=\"actionsToogle\"\n appendTo=\"body\"\n class=\"w-full md:w-auto\"\n [style.display]=\"'none'\"\n ></p-menu>\n\n <kv-button\n *ngIf=\"showBtnSave\"\n [label]=\"txtBtnSave\"\n [icon]=\"iconBtnSave\"\n [disabled]=\"disableBtnSave\"\n [loading]=\"isSaveLoading\"\n (onClick)=\"save($event)\"\n severity=\"primary\"\n class=\"w-full md:w-auto\"\n />\n\n <kv-button-popup\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\n [label]=\"txtBtnSaveToogle\"\n [icon]=\"iconBtnSaveToogle\"\n (click)=\"menuSave.toggle($event)\"\n [loading]=\"isSaveLoading\"\n class=\"w-full md:w-auto\"\n [classBtn]=\"'primary'\"\n >\n </kv-button-popup>\n\n <p-menu\n #menuSave\n [popup]=\"true\"\n [model]=\"actionsSaveToogle\"\n appendTo=\"body\"\n class=\"w-full md:w-auto\"\n [style.display]=\"'none'\"\n ></p-menu>\n </div>\n</div>\n", styles: ["*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;right:0;background-color:#fff;padding:10px}#page-form-container{padding-bottom:40px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i4.KvButtonPopupComponent, selector: "kv-button-popup", inputs: ["items", "classBtn"] }, { kind: "component", type: i5.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "label", "disabled"], outputs: ["onClick"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
142
142
  }
143
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPageFormComponent, decorators: [{
144
144
  type: Component,
145
- args: [{ selector: 'kv-page-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n [formGroup]=\"formGroup\"\r\n class=\"grid-nogutter m-0\"\r\n id=\"page-form-container\"\r\n #pageContainer\r\n [style.padding-bottom.px]=\"pageContentHeight()\"\r\n>\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n\r\n <div\r\n class=\"flex flex-column md:flex-row md:justify-content-end md:align-items-center col-12 gap-2 barra-acoes\"\r\n id=\"barra-acoes\"\r\n >\r\n @if(showMessageCamposObrigatorios) {\r\n <span class=\"w-full text-sm\">\r\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios</span\r\n >\r\n }\r\n <kv-button\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (onClick)=\"cancel($event)\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n >\r\n </kv-button>\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full md:w-auto\"\r\n [classBtn]=\"'tertiary'\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSecundary\"\r\n [label]=\"txtBtnSecundary\"\r\n [icon]=\"iconBtnSecundary\"\r\n [disabled]=\"isSaveLoading\"\r\n severity=\"secondary\"\r\n (onClick)=\"actionSecundary($event)\"\r\n class=\"w-full md:w-auto\"\r\n ></kv-button>\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n class=\"w-full md:w-auto\"\r\n classBtn=\"secondary\"\r\n [disabled]=\"isSaveLoading\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (onClick)=\"save($event)\"\r\n severity=\"primary\"\r\n class=\"w-full md:w-auto\"\r\n />\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full md:w-auto\"\r\n [classBtn]=\"'primary'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full md:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n </div>\r\n</div>\r\n", styles: ["*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;right:0;background-color:#fff;padding:10px}#page-form-container{padding-bottom:40px}\n"] }]
145
+ args: [{ selector: 'kv-page-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [formGroup]=\"formGroup\"\n class=\"grid-nogutter m-0\"\n id=\"page-form-container\"\n #pageContainer\n [style.padding-bottom.px]=\"pageContentHeight()\"\n>\n <!-- Renderiza\u00E7\u00E3o do form -->\n <div class=\"col-12 p-0\" id=\"page-form-content\">\n <ng-content></ng-content>\n </div>\n\n <!-- Divider -->\n <!-- <p-divider class=\"col-12\"></p-divider> -->\n\n <!-- Barra de a\u00E7\u00F5es -->\n\n <div\n class=\"flex flex-column md:flex-row md:justify-content-end md:align-items-center col-12 gap-2 barra-acoes\"\n id=\"barra-acoes\"\n >\n @if(showMessageCamposObrigatorios) {\n <span class=\"w-full text-sm\">\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios</span\n >\n }\n <kv-button\n *ngIf=\"showBtnCancel\"\n [label]=\"txtBtnCancel\"\n [icon]=\"iconBtnCancel\"\n [disabled]=\"isSaveLoading\"\n (onClick)=\"cancel($event)\"\n class=\"w-full md:w-auto\"\n severity=\"tertiary\"\n >\n </kv-button>\n <kv-button-popup\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\n [label]=\"txtBtnCancelToogle\"\n [icon]=\"iconBtnCancelToogle\"\n (click)=\"menuCancel.toggle($event)\"\n class=\"w-full md:w-auto\"\n [classBtn]=\"'tertiary'\"\n [disabled]=\"isSaveLoading\"\n >\n </kv-button-popup>\n <p-menu\n #menuCancel\n [popup]=\"true\"\n [model]=\"actionsCancelToogle\"\n appendTo=\"body\"\n class=\"w-full md:w-auto\"\n [style.display]=\"'none'\"\n ></p-menu>\n\n <kv-button\n *ngIf=\"showBtnSecundary\"\n [label]=\"txtBtnSecundary\"\n [icon]=\"iconBtnSecundary\"\n [disabled]=\"isSaveLoading\"\n severity=\"secondary\"\n (onClick)=\"actionSecundary($event)\"\n class=\"w-full md:w-auto\"\n ></kv-button>\n\n <kv-button-popup\n *ngIf=\"actionsToogle && showBtnToogle\"\n [label]=\"txtBtnToogle\"\n [icon]=\"iconBtnToogle\"\n (click)=\"menuToogle.toggle($event)\"\n class=\"w-full md:w-auto\"\n classBtn=\"secondary\"\n [disabled]=\"isSaveLoading\"\n >\n </kv-button-popup>\n <p-menu\n #menuToogle\n [popup]=\"true\"\n [model]=\"actionsToogle\"\n appendTo=\"body\"\n class=\"w-full md:w-auto\"\n [style.display]=\"'none'\"\n ></p-menu>\n\n <kv-button\n *ngIf=\"showBtnSave\"\n [label]=\"txtBtnSave\"\n [icon]=\"iconBtnSave\"\n [disabled]=\"disableBtnSave\"\n [loading]=\"isSaveLoading\"\n (onClick)=\"save($event)\"\n severity=\"primary\"\n class=\"w-full md:w-auto\"\n />\n\n <kv-button-popup\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\n [label]=\"txtBtnSaveToogle\"\n [icon]=\"iconBtnSaveToogle\"\n (click)=\"menuSave.toggle($event)\"\n [loading]=\"isSaveLoading\"\n class=\"w-full md:w-auto\"\n [classBtn]=\"'primary'\"\n >\n </kv-button-popup>\n\n <p-menu\n #menuSave\n [popup]=\"true\"\n [model]=\"actionsSaveToogle\"\n appendTo=\"body\"\n class=\"w-full md:w-auto\"\n [style.display]=\"'none'\"\n ></p-menu>\n </div>\n</div>\n", styles: ["*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;right:0;background-color:#fff;padding:10px}#page-form-container{padding-bottom:40px}\n"] }]
146
146
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { formGroup: [{
147
147
  type: Input
148
148
  }], TituloForm: [{
@@ -214,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
214
214
  }], onClickSecundary: [{
215
215
  type: Output
216
216
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBhZ2UtZm9ybS9rdi1wYWdlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGFnZS1mb3JtL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBRU4sWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFVeEQsTUFBTSxPQUFPLG1CQUFtQjtJQTJGOUIsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUExRm5DOztXQUVHO1FBQ00sY0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLGVBQVUsR0FBdUIsRUFBRSxDQUFDO1FBQ3BDLGtCQUFhLEdBQXVCLEVBQUUsQ0FBQztRQUV2QyxVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLHlCQUFvQixHQUFzQixRQUFRLENBQUM7UUFDNUQsaUNBQWlDO1FBRWpDOztXQUVHO1FBQ00sa0JBQWEsR0FBVyxPQUFPLENBQUM7UUFDaEMsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsaUJBQVksR0FBVyxVQUFVLENBQUM7UUFNbEMsd0JBQW1CLEdBQVcsb0JBQW9CLENBQUM7UUFDbkQsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHVCQUFrQixHQUFXLFVBQVUsQ0FBQztRQUVq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QUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUtHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUtJLE1BQU07c0JBQWYsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUtHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIGVmZmVjdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIHNpZ25hbCxcclxuICB2aWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQWN0aW9uSXRlbSB9IGZyb20gJy4uLy4uL2FwaS9jb21wb25lbnRzL3RhYmxlL2FjdGlvbi1pdGVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtcGFnZS1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtcGFnZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9rdi1wYWdlLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2UGFnZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKlxyXG4gICAqIENvbmZpZ3VyYcOnw7VlcyBkbyBmb3JtdWzDoXJpb1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQElucHV0KCkgVGl0dWxvRm9ybTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XHJcbiAgQElucHV0KCkgU3ViVGl0dWxvRm9ybTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XHJcbiAgQElucHV0KCkgaXNTYXZlTG9hZGluZyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsb2NhdGlvblVzZUNvbXBvbmVudDogJ3BhZ2UnIHwgJ2RpYWxvZycgPSAnZGlhbG9nJztcclxuICAvLyBASW5wdXQoKSBleHBhbmRNZW51ITogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGNhbmNlbGFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgaWNvbkJ0bkNhbmNlbDogc3RyaW5nID0gJ2Nsb3NlJztcclxuICBASW5wdXQoKSBzaG93QnRuQ2FuY2VsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB0eHRCdG5DYW5jZWw6IHN0cmluZyA9ICdDYW5jZWxhcic7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvdMOjbyBkZSBjYW5jZWxhciBjb20gb3DDp8O1ZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBhY3Rpb25zQ2FuY2VsVG9vZ2xlITogQWN0aW9uSXRlbVtdO1xyXG4gIEBJbnB1dCgpIGljb25CdG5DYW5jZWxUb29nbGU6IHN0cmluZyA9ICdwaSBwaS1jaGV2cm9uLWRvd24nO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5DYW5jZWxUb29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eHRCdG5DYW5jZWxUb29nbGU6IHN0cmluZyA9ICdDYW5jZWxhcic7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvdMOjbyBzYWx2YXJcclxuICAgKi9cclxuICBASW5wdXQoKSBpY29uQnRuU2F2ZTogc3RyaW5nID0gJ3NhdmUnO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5TYXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB0eHRCdG5TYXZlOiBzdHJpbmcgPSAnU2FsdmFyJztcclxuICBASW5wdXQoKSBkaXNhYmxlQnRuU2F2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZGUgc2FsdmFyIGNvbSBvcMOnw7Vlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjdGlvbnNTYXZlVG9vZ2xlITogQWN0aW9uSXRlbVtdO1xyXG4gIEBJbnB1dCgpIGljb25CdG5TYXZlVG9vZ2xlOiBzdHJpbmcgPSAncGkgcGktY2hldnJvbi1kb3duJztcclxuICBASW5wdXQoKSBzaG93QnRuU2F2ZVRvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHR4dEJ0blNhdmVUb29nbGU6IHN0cmluZyA9ICdBw6fDtWVzJztcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGdlbsOpcmljbyAnU2VjdW5kYXJ5J1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGljb25CdG5TZWN1bmRhcnkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0J0blNlY3VuZGFyeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHR4dEJ0blNlY3VuZGFyeSE6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgRXNzYSBuw6NvIMOpIG1haXMgdXRpbGl6YWRvLCBmYXZvciB1dGlsaXphciBhIHByb3ByaWVkYWRlIHNldmVyaXR5QnRuU2VjdW5kYXJ5XHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sb3JCdG5TZWN1bmRhcnk6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZ2Vuw6lyaWNvIGNvbSBvcMOnw7Vlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjdGlvbnNUb29nbGUhOiBBY3Rpb25JdGVtW107XHJcbiAgQElucHV0KCkgaWNvbkJ0blRvb2dsZTogc3RyaW5nID0gJ3BpIHBpLWNoZXZyb24tZG93bic7XHJcbiAgQElucHV0KCkgc2hvd0J0blRvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHR4dEJ0blRvb2dsZTogc3RyaW5nID0gJ0HDp8O1ZXMnO1xyXG4gIEBJbnB1dCgpIGNsYXNzQnRuVG9vZ2xlOiBzdHJpbmcgPSAnYmctZ2x1ZS01MDAnO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZmVjaGFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzYWJsZUJ0blNhaXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBzaG93TWVzc2FnZUNhbXBvc09icmlnYXRvcmlvczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhbHZhciBkYWRvc1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvblNhdmU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWxhclxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvbkNhbmNlbDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEHDp8OjbyBkbyBib3TDo28gU2VjdW5kYXJ5XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uQ2xpY2tTZWN1bmRhcnk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHJlc2l6ZU9ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XHJcbiAgcGFnZUNvbnRhaW5lciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigncGFnZUNvbnRhaW5lcicpO1xyXG5cclxuICBwYWdlQ29udGVudEhlaWdodCA9IHNpZ25hbDxudW1iZXI+KDApO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xyXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xyXG4gICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRXaWR0aEJhcigpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnBhZ2VDb250YWluZXIoKSlcclxuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5wYWdlQ29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYWRkU3ViVGl0bGUoKTtcclxuICAgIC8vIHRoaXMuc2V0UGFnZUZvcm1Db250YWluZXJBdHRyaWJ1dGVzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGljaW9uYSBzdWItdMOtdHVsbyDDoCB0ZWxhXHJcbiAgICovXHJcbiAgYWRkU3ViVGl0bGUoKSB7XHJcbiAgICBpZiAodGhpcy5TdWJUaXR1bG9Gb3JtKSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgICcucC1kaWFsb2cgLnAtZGlhbG9nLWhlYWRlcidcclxuICAgICAgKTtcclxuICAgICAgaWYgKGhlYWRlckVsZW1lbnQpIHtcclxuICAgICAgICBjb25zdCBzdWJ0aXRsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5TdWJUaXR1bG9Gb3JtO1xyXG4gICAgICAgIHN1YnRpdGxlRWxlbWVudC5zdHlsZS5mb250U2l6ZSA9ICcwLjc1cmVtJztcclxuICAgICAgICBzdWJ0aXRsZUVsZW1lbnQuc3R5bGUud2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLm1hcmdpbkxlZnQgPSAnMnB4JztcclxuXHJcbiAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChzdWJ0aXRsZUVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNwYXJhIG8gbcOpdG9kbyBkZSBjYW5jZWxhbWVudG8gZGEgdGVsYVxyXG4gICAqIEBwYXJhbSBldmVudCBldmVudG9cclxuICAgKi9cclxuICBjYW5jZWwoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uQ2FuY2VsLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGFyYSBvIG3DqXRvZG8gZGUgc2FsdmFyIGRhIHRlbGFcclxuICAgKiBAcGFyYW0gZXZlbnQgZXZlbnRvXHJcbiAgICovXHJcbiAgc2F2ZShldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25TYXZlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgYWN0aW9uU2VjdW5kYXJ5KGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5vbkNsaWNrU2VjdW5kYXJ5LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWp1c3RhIG8gdGFtYW5obyBkYSB0ZWxhIGNvbnNpZGVyYW5kbyBvIG1lbnUgbGF0ZXJhbFxyXG4gICAqL1xyXG4gIC8vIHNldFBhZ2VGb3JtQ29udGFpbmVyQXR0cmlidXRlcygpIHtcclxuICAvLyAgIGlmICh0aGlzLmxvY2F0aW9uVXNlQ29tcG9uZW50ID09ICdwYWdlJykge1xyXG4gIC8vICAgICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLWZvcm0tY29udGFpbmVyJyk7XHJcblxyXG4gIC8vICAgICBpZiAoZm9ybSkge1xyXG4gIC8vICAgICAgIHZhciB3aWR0aEZ1bGwgPSBmb3JtLmNsaWVudFdpZHRoO1xyXG4gIC8vICAgICAgIHZhciB3aWR0aEFkanVzdGVkO1xyXG5cclxuICAvLyAgICAgICB3aWR0aEFkanVzdGVkID0gd2lkdGhGdWxsIC0gMzMyO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuXHJcbiAgc2V0V2lkdGhCYXIoKSB7XHJcbiAgICBsZXQgZGl2Q2FyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLWZvcm0tY29udGVudCcpO1xyXG5cclxuICAgIGxldCBkaXZCYXJyYUFjb2VzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJhLWFjb2VzJyk7XHJcblxyXG4gICAgaWYgKGRpdkNhcmQgJiYgZGl2QmFycmFBY29lcykge1xyXG5cclxuICAgICAgaWYgKCF0aGlzLnBvcHVwKSB7XHJcbiAgICAgICAgZGl2QmFycmFBY29lcy5zdHlsZS5ib3R0b20gPSAnMC41cmVtJztcclxuICAgICAgICBkaXZCYXJyYUFjb2VzLnN0eWxlLm1hcmdpbiA9ICcwIDFyZW0gMCAwJztcclxuICAgICAgICBkaXZCYXJyYUFjb2VzLnN0eWxlLndpZHRoID0gZGl2Q2FyZC5jbGllbnRXaWR0aCArIDYgKyAncHgnO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnBhZ2VDb250ZW50SGVpZ2h0LnNldChkaXZCYXJyYUFjb2VzLmNsaWVudEhlaWdodCAqIDAuOSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXHJcbiAgY2xhc3M9XCJncmlkLW5vZ3V0dGVyIG0tMFwiXHJcbiAgaWQ9XCJwYWdlLWZvcm0tY29udGFpbmVyXCJcclxuICAjcGFnZUNvbnRhaW5lclxyXG4gIFtzdHlsZS5wYWRkaW5nLWJvdHRvbS5weF09XCJwYWdlQ29udGVudEhlaWdodCgpXCJcclxuPlxyXG4gIDwhLS0gUmVuZGVyaXphw6fDo28gZG8gZm9ybSAtLT5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIHAtMFwiIGlkPVwicGFnZS1mb3JtLWNvbnRlbnRcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBEaXZpZGVyIC0tPlxyXG4gIDwhLS0gPHAtZGl2aWRlciBjbGFzcz1cImNvbC0xMlwiPjwvcC1kaXZpZGVyPiAtLT5cclxuXHJcbiAgPCEtLSBCYXJyYSBkZSBhw6fDtWVzIC0tPlxyXG5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgbWQ6anVzdGlmeS1jb250ZW50LWVuZCBtZDphbGlnbi1pdGVtcy1jZW50ZXIgY29sLTEyIGdhcC0yIGJhcnJhLWFjb2VzXCJcclxuICAgIGlkPVwiYmFycmEtYWNvZXNcIlxyXG4gID5cclxuICAgIEBpZihzaG93TWVzc2FnZUNhbXBvc09icmlnYXRvcmlvcykge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJ3LWZ1bGwgdGV4dC1zbVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPio8L3NwYW4+IENhbXBvcyBvYnJpZ2F0w7NyaW9zPC9zcGFuXHJcbiAgICA+XHJcbiAgICB9XHJcbiAgICA8a3YtYnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2hvd0J0bkNhbmNlbFwiXHJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5DYW5jZWxcIlxyXG4gICAgICBbaWNvbl09XCJpY29uQnRuQ2FuY2VsXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzU2F2ZUxvYWRpbmdcIlxyXG4gICAgICAob25DbGljayk9XCJjYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAgIHNldmVyaXR5PVwidGVydGlhcnlcIlxyXG4gICAgPlxyXG4gICAgPC9rdi1idXR0b24+XHJcbiAgICA8a3YtYnV0dG9uLXBvcHVwXHJcbiAgICAgICpuZ0lmPVwiYWN0aW9uc0NhbmNlbFRvb2dsZSAmJiBzaG93QnRuQ2FuY2VsVG9vZ2xlXCJcclxuICAgICAgW2xhYmVsXT1cInR4dEJ0bkNhbmNlbFRvb2dsZVwiXHJcbiAgICAgIFtpY29uXT1cImljb25CdG5DYW5jZWxUb29nbGVcIlxyXG4gICAgICAoY2xpY2spPVwibWVudUNhbmNlbC50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAgIFtjbGFzc0J0bl09XCIndGVydGlhcnknXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzU2F2ZUxvYWRpbmdcIlxyXG4gICAgPlxyXG4gICAgPC9rdi1idXR0b24tcG9wdXA+XHJcbiAgICA8cC1tZW51XHJcbiAgICAgICNtZW51Q2FuY2VsXHJcbiAgICAgIFtwb3B1cF09XCJ0cnVlXCJcclxuICAgICAgW21vZGVsXT1cImFjdGlvbnNDYW5jZWxUb29nbGVcIlxyXG4gICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICBjbGFzcz1cInctZnVsbCBtZDp3LWF1dG9cIlxyXG4gICAgICBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxyXG4gICAgPjwvcC1tZW51PlxyXG5cclxuICAgIDxrdi1idXR0b25cclxuICAgICAgKm5nSWY9XCJzaG93QnRuU2VjdW5kYXJ5XCJcclxuICAgICAgW2xhYmVsXT1cInR4dEJ0blNlY3VuZGFyeVwiXHJcbiAgICAgIFtpY29uXT1cImljb25CdG5TZWN1bmRhcnlcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICAgIHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcclxuICAgICAgKG9uQ2xpY2spPVwiYWN0aW9uU2VjdW5kYXJ5KCRldmVudClcIlxyXG4gICAgICBjbGFzcz1cInctZnVsbCBtZDp3LWF1dG9cIlxyXG4gICAgPjwva3YtYnV0dG9uPlxyXG5cclxuICAgIDxrdi1idXR0b24tcG9wdXBcclxuICAgICAgKm5nSWY9XCJhY3Rpb25zVG9vZ2xlICYmIHNob3dCdG5Ub29nbGVcIlxyXG4gICAgICBbbGFiZWxdPVwidHh0QnRuVG9vZ2xlXCJcclxuICAgICAgW2ljb25dPVwiaWNvbkJ0blRvb2dsZVwiXHJcbiAgICAgIChjbGljayk9XCJtZW51VG9vZ2xlLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy1hdXRvXCJcclxuICAgICAgY2xhc3NCdG49XCJzZWNvbmRhcnlcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICA+XHJcbiAgICA8L2t2LWJ1dHRvbi1wb3B1cD5cclxuICAgIDxwLW1lbnVcclxuICAgICAgI21lbnVUb29nbGVcclxuICAgICAgW3BvcHVwXT1cInRydWVcIlxyXG4gICAgICBbbW9kZWxdPVwiYWN0aW9uc1Rvb2dsZVwiXHJcbiAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICA+PC9wLW1lbnU+XHJcblxyXG4gICAgPGt2LWJ1dHRvblxyXG4gICAgICAqbmdJZj1cInNob3dCdG5TYXZlXCJcclxuICAgICAgW2xhYmVsXT1cInR4dEJ0blNhdmVcIlxyXG4gICAgICBbaWNvbl09XCJpY29uQnRuU2F2ZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnRuU2F2ZVwiXHJcbiAgICAgIFtsb2FkaW5nXT1cImlzU2F2ZUxvYWRpbmdcIlxyXG4gICAgICAob25DbGljayk9XCJzYXZlKCRldmVudClcIlxyXG4gICAgICBzZXZlcml0eT1cInByaW1hcnlcIlxyXG4gICAgICBjbGFzcz1cInctZnVsbCBtZDp3LWF1dG9cIlxyXG4gICAgLz5cclxuXHJcbiAgICA8a3YtYnV0dG9uLXBvcHVwXHJcbiAgICAgICpuZ0lmPVwiYWN0aW9uc1NhdmVUb29nbGUgJiYgc2hvd0J0blNhdmVUb29nbGVcIlxyXG4gICAgICBbbGFiZWxdPVwidHh0QnRuU2F2ZVRvb2dsZVwiXHJcbiAgICAgIFtpY29uXT1cImljb25CdG5TYXZlVG9vZ2xlXCJcclxuICAgICAgKGNsaWNrKT1cIm1lbnVTYXZlLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgW2xvYWRpbmddPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAgIFtjbGFzc0J0bl09XCIncHJpbWFyeSdcIlxyXG4gICAgPlxyXG4gICAgPC9rdi1idXR0b24tcG9wdXA+XHJcblxyXG4gICAgPHAtbWVudVxyXG4gICAgICAjbWVudVNhdmVcclxuICAgICAgW3BvcHVwXT1cInRydWVcIlxyXG4gICAgICBbbW9kZWxdPVwiYWN0aW9uc1NhdmVUb29nbGVcIlxyXG4gICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICBjbGFzcz1cInctZnVsbCBtZDp3LWF1dG9cIlxyXG4gICAgICBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxyXG4gICAgPjwvcC1tZW51PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBhZ2UtZm9ybS9rdi1wYWdlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGFnZS1mb3JtL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBRU4sWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFVeEQsTUFBTSxPQUFPLG1CQUFtQjtJQTJGOUIsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUExRm5DOztXQUVHO1FBQ00sY0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLGVBQVUsR0FBdUIsRUFBRSxDQUFDO1FBQ3BDLGtCQUFhLEdBQXVCLEVBQUUsQ0FBQztRQUV2QyxVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLHlCQUFvQixHQUFzQixRQUFRLENBQUM7UUFDNUQsaUNBQWlDO1FBRWpDOztXQUVHO1FBQ00sa0JBQWEsR0FBVyxPQUFPLENBQUM7UUFDaEMsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsaUJBQVksR0FBVyxVQUFVLENBQUM7UUFNbEMsd0JBQW1CLEdBQVcsb0JBQW9CLENBQUM7UUFDbkQsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHVCQUFrQixHQUFXLFVBQVUsQ0FBQztRQUVq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QUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUtHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUtJLE1BQU07c0JBQWYsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQUtHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQWN0aW9uSXRlbSB9IGZyb20gJy4uLy4uL2FwaS9jb21wb25lbnRzL3RhYmxlL2FjdGlvbi1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna3YtcGFnZS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgS3ZQYWdlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBDb25maWd1cmHDp8O1ZXMgZG8gZm9ybXVsw6FyaW9cbiAgICovXG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIEBJbnB1dCgpIFRpdHVsb0Zvcm06IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xuICBASW5wdXQoKSBTdWJUaXR1bG9Gb3JtOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcbiAgQElucHV0KCkgaXNTYXZlTG9hZGluZyE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHBvcHVwOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxvY2F0aW9uVXNlQ29tcG9uZW50OiAncGFnZScgfCAnZGlhbG9nJyA9ICdkaWFsb2cnO1xuICAvLyBASW5wdXQoKSBleHBhbmRNZW51ITogYm9vbGVhbjtcblxuICAvKipcbiAgICogQm90w6NvIGNhbmNlbGFyXG4gICAqL1xuICBASW5wdXQoKSBpY29uQnRuQ2FuY2VsOiBzdHJpbmcgPSAnY2xvc2UnO1xuICBASW5wdXQoKSBzaG93QnRuQ2FuY2VsOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgdHh0QnRuQ2FuY2VsOiBzdHJpbmcgPSAnQ2FuY2VsYXInO1xuXG4gIC8qKlxuICAgKiBCb3TDo28gZGUgY2FuY2VsYXIgY29tIG9ww6fDtWVzXG4gICAqL1xuICBASW5wdXQoKSBhY3Rpb25zQ2FuY2VsVG9vZ2xlITogQWN0aW9uSXRlbVtdO1xuICBASW5wdXQoKSBpY29uQnRuQ2FuY2VsVG9vZ2xlOiBzdHJpbmcgPSAncGkgcGktY2hldnJvbi1kb3duJztcbiAgQElucHV0KCkgc2hvd0J0bkNhbmNlbFRvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0eHRCdG5DYW5jZWxUb29nbGU6IHN0cmluZyA9ICdDYW5jZWxhcic7XG5cbiAgLyoqXG4gICAqIEJvdMOjbyBzYWx2YXJcbiAgICovXG4gIEBJbnB1dCgpIGljb25CdG5TYXZlOiBzdHJpbmcgPSAnc2F2ZSc7XG4gIEBJbnB1dCgpIHNob3dCdG5TYXZlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgdHh0QnRuU2F2ZTogc3RyaW5nID0gJ1NhbHZhcic7XG4gIEBJbnB1dCgpIGRpc2FibGVCdG5TYXZlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEJvdMOjbyBkZSBzYWx2YXIgY29tIG9ww6fDtWVzXG4gICAqL1xuICBASW5wdXQoKSBhY3Rpb25zU2F2ZVRvb2dsZSE6IEFjdGlvbkl0ZW1bXTtcbiAgQElucHV0KCkgaWNvbkJ0blNhdmVUb29nbGU6IHN0cmluZyA9ICdwaSBwaS1jaGV2cm9uLWRvd24nO1xuICBASW5wdXQoKSBzaG93QnRuU2F2ZVRvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0eHRCdG5TYXZlVG9vZ2xlOiBzdHJpbmcgPSAnQcOnw7Vlcyc7XG5cbiAgLyoqXG4gICAqIEJvdMOjbyBnZW7DqXJpY28gJ1NlY3VuZGFyeSdcbiAgICovXG4gIEBJbnB1dCgpIGljb25CdG5TZWN1bmRhcnkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dCdG5TZWN1bmRhcnk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdHh0QnRuU2VjdW5kYXJ5ITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBFc3NhIG7Do28gw6kgbWFpcyB1dGlsaXphZG8sIGZhdm9yIHV0aWxpemFyIGEgcHJvcHJpZWRhZGUgc2V2ZXJpdHlCdG5TZWN1bmRhcnlcbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yQnRuU2VjdW5kYXJ5OiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogQm90w6NvIGdlbsOpcmljbyBjb20gb3DDp8O1ZXNcbiAgICovXG4gIEBJbnB1dCgpIGFjdGlvbnNUb29nbGUhOiBBY3Rpb25JdGVtW107XG4gIEBJbnB1dCgpIGljb25CdG5Ub29nbGU6IHN0cmluZyA9ICdwaSBwaS1jaGV2cm9uLWRvd24nO1xuICBASW5wdXQoKSBzaG93QnRuVG9vZ2xlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHR4dEJ0blRvb2dsZTogc3RyaW5nID0gJ0HDp8O1ZXMnO1xuICBASW5wdXQoKSBjbGFzc0J0blRvb2dsZTogc3RyaW5nID0gJ2JnLWdsdWUtNTAwJztcblxuICAvKipcbiAgICogQm90w6NvIGZlY2hhclxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZUJ0blNhaXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpIHNob3dNZXNzYWdlQ2FtcG9zT2JyaWdhdG9yaW9zOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogU2FsdmFyIGRhZG9zXG4gICAqL1xuICBAT3V0cHV0KCkgb25TYXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQ2FuY2VsYXJcbiAgICovXG4gIEBPdXRwdXQoKSBvbkNhbmNlbDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEHDp8OjbyBkbyBib3TDo28gU2VjdW5kYXJ5XG4gICAqL1xuICBAT3V0cHV0KCkgb25DbGlja1NlY3VuZGFyeTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuICBwYWdlQ29udGFpbmVyID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdwYWdlQ29udGFpbmVyJyk7XG5cbiAgcGFnZUNvbnRlbnRIZWlnaHQgPSBzaWduYWw8bnVtYmVyPigwKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgdGhpcy5zZXRXaWR0aEJhcigpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucGFnZUNvbnRhaW5lcigpKVxuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5wYWdlQ29udGFpbmVyKCk/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hZGRTdWJUaXRsZSgpO1xuICAgIC8vIHRoaXMuc2V0UGFnZUZvcm1Db250YWluZXJBdHRyaWJ1dGVzKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRpY2lvbmEgc3ViLXTDrXR1bG8gw6AgdGVsYVxuICAgKi9cbiAgYWRkU3ViVGl0bGUoKSB7XG4gICAgaWYgKHRoaXMuU3ViVGl0dWxvRm9ybSkge1xuICAgICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcucC1kaWFsb2cgLnAtZGlhbG9nLWhlYWRlcidcbiAgICAgICk7XG4gICAgICBpZiAoaGVhZGVyRWxlbWVudCkge1xuICAgICAgICBjb25zdCBzdWJ0aXRsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHN1YnRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuU3ViVGl0dWxvRm9ybTtcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLmZvbnRTaXplID0gJzAuNzVyZW0nO1xuICAgICAgICBzdWJ0aXRsZUVsZW1lbnQuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgICAgIHN1YnRpdGxlRWxlbWVudC5zdHlsZS5tYXJnaW5MZWZ0ID0gJzJweCc7XG5cbiAgICAgICAgaGVhZGVyRWxlbWVudC5hcHBlbmRDaGlsZChzdWJ0aXRsZUVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwYXJhIG8gbcOpdG9kbyBkZSBjYW5jZWxhbWVudG8gZGEgdGVsYVxuICAgKiBAcGFyYW0gZXZlbnQgZXZlbnRvXG4gICAqL1xuICBjYW5jZWwoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwYXJhIG8gbcOpdG9kbyBkZSBzYWx2YXIgZGEgdGVsYVxuICAgKiBAcGFyYW0gZXZlbnQgZXZlbnRvXG4gICAqL1xuICBzYXZlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMub25TYXZlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgYWN0aW9uU2VjdW5kYXJ5KGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMub25DbGlja1NlY3VuZGFyeS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBanVzdGEgbyB0YW1hbmhvIGRhIHRlbGEgY29uc2lkZXJhbmRvIG8gbWVudSBsYXRlcmFsXG4gICAqL1xuICAvLyBzZXRQYWdlRm9ybUNvbnRhaW5lckF0dHJpYnV0ZXMoKSB7XG4gIC8vICAgaWYgKHRoaXMubG9jYXRpb25Vc2VDb21wb25lbnQgPT0gJ3BhZ2UnKSB7XG4gIC8vICAgICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlLWZvcm0tY29udGFpbmVyJyk7XG5cbiAgLy8gICAgIGlmIChmb3JtKSB7XG4gIC8vICAgICAgIHZhciB3aWR0aEZ1bGwgPSBmb3JtLmNsaWVudFdpZHRoO1xuICAvLyAgICAgICB2YXIgd2lkdGhBZGp1c3RlZDtcblxuICAvLyAgICAgICB3aWR0aEFkanVzdGVkID0gd2lkdGhGdWxsIC0gMzMyO1xuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gfVxuXG5cbiAgc2V0V2lkdGhCYXIoKSB7XG4gICAgbGV0IGRpdkNhcmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZS1mb3JtLWNvbnRlbnQnKTtcblxuICAgIGxldCBkaXZCYXJyYUFjb2VzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhcnJhLWFjb2VzJyk7XG5cbiAgICBpZiAoZGl2Q2FyZCAmJiBkaXZCYXJyYUFjb2VzKSB7XG5cbiAgICAgIGlmICghdGhpcy5wb3B1cCkge1xuICAgICAgICBkaXZCYXJyYUFjb2VzLnN0eWxlLmJvdHRvbSA9ICcwLjVyZW0nO1xuICAgICAgICBkaXZCYXJyYUFjb2VzLnN0eWxlLm1hcmdpbiA9ICcwIDFyZW0gMCAwJztcbiAgICAgICAgZGl2QmFycmFBY29lcy5zdHlsZS53aWR0aCA9IGRpdkNhcmQuY2xpZW50V2lkdGggKyA2ICsgJ3B4JztcbiAgICAgIH1cblxuICAgICAgdGhpcy5wYWdlQ29udGVudEhlaWdodC5zZXQoZGl2QmFycmFBY29lcy5jbGllbnRIZWlnaHQgKiAwLjkpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gIGNsYXNzPVwiZ3JpZC1ub2d1dHRlciBtLTBcIlxuICBpZD1cInBhZ2UtZm9ybS1jb250YWluZXJcIlxuICAjcGFnZUNvbnRhaW5lclxuICBbc3R5bGUucGFkZGluZy1ib3R0b20ucHhdPVwicGFnZUNvbnRlbnRIZWlnaHQoKVwiXG4+XG4gIDwhLS0gUmVuZGVyaXphw6fDo28gZG8gZm9ybSAtLT5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTBcIiBpZD1cInBhZ2UtZm9ybS1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8IS0tIERpdmlkZXIgLS0+XG4gIDwhLS0gPHAtZGl2aWRlciBjbGFzcz1cImNvbC0xMlwiPjwvcC1kaXZpZGVyPiAtLT5cblxuICA8IS0tIEJhcnJhIGRlIGHDp8O1ZXMgLS0+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBtZDpmbGV4LXJvdyBtZDpqdXN0aWZ5LWNvbnRlbnQtZW5kIG1kOmFsaWduLWl0ZW1zLWNlbnRlciBjb2wtMTIgZ2FwLTIgYmFycmEtYWNvZXNcIlxuICAgIGlkPVwiYmFycmEtYWNvZXNcIlxuICA+XG4gICAgQGlmKHNob3dNZXNzYWdlQ2FtcG9zT2JyaWdhdG9yaW9zKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJ3LWZ1bGwgdGV4dC1zbVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj4qPC9zcGFuPiBDYW1wb3Mgb2JyaWdhdMOzcmlvczwvc3BhblxuICAgID5cbiAgICB9XG4gICAgPGt2LWJ1dHRvblxuICAgICAgKm5nSWY9XCJzaG93QnRuQ2FuY2VsXCJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5DYW5jZWxcIlxuICAgICAgW2ljb25dPVwiaWNvbkJ0bkNhbmNlbFwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNTYXZlTG9hZGluZ1wiXG4gICAgICAob25DbGljayk9XCJjYW5jZWwoJGV2ZW50KVwiXG4gICAgICBjbGFzcz1cInctZnVsbCBtZDp3LWF1dG9cIlxuICAgICAgc2V2ZXJpdHk9XCJ0ZXJ0aWFyeVwiXG4gICAgPlxuICAgIDwva3YtYnV0dG9uPlxuICAgIDxrdi1idXR0b24tcG9wdXBcbiAgICAgICpuZ0lmPVwiYWN0aW9uc0NhbmNlbFRvb2dsZSAmJiBzaG93QnRuQ2FuY2VsVG9vZ2xlXCJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5DYW5jZWxUb29nbGVcIlxuICAgICAgW2ljb25dPVwiaWNvbkJ0bkNhbmNlbFRvb2dsZVwiXG4gICAgICAoY2xpY2spPVwibWVudUNhbmNlbC50b2dnbGUoJGV2ZW50KVwiXG4gICAgICBjbGFzcz1cInctZnVsbCBtZDp3LWF1dG9cIlxuICAgICAgW2NsYXNzQnRuXT1cIid0ZXJ0aWFyeSdcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzU2F2ZUxvYWRpbmdcIlxuICAgID5cbiAgICA8L2t2LWJ1dHRvbi1wb3B1cD5cbiAgICA8cC1tZW51XG4gICAgICAjbWVudUNhbmNlbFxuICAgICAgW3BvcHVwXT1cInRydWVcIlxuICAgICAgW21vZGVsXT1cImFjdGlvbnNDYW5jZWxUb29nbGVcIlxuICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXG4gICAgICBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxuICAgID48L3AtbWVudT5cblxuICAgIDxrdi1idXR0b25cbiAgICAgICpuZ0lmPVwic2hvd0J0blNlY3VuZGFyeVwiXG4gICAgICBbbGFiZWxdPVwidHh0QnRuU2VjdW5kYXJ5XCJcbiAgICAgIFtpY29uXT1cImljb25CdG5TZWN1bmRhcnlcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzU2F2ZUxvYWRpbmdcIlxuICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxuICAgICAgKG9uQ2xpY2spPVwiYWN0aW9uU2VjdW5kYXJ5KCRldmVudClcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy1hdXRvXCJcbiAgICA+PC9rdi1idXR0b24+XG5cbiAgICA8a3YtYnV0dG9uLXBvcHVwXG4gICAgICAqbmdJZj1cImFjdGlvbnNUb29nbGUgJiYgc2hvd0J0blRvb2dsZVwiXG4gICAgICBbbGFiZWxdPVwidHh0QnRuVG9vZ2xlXCJcbiAgICAgIFtpY29uXT1cImljb25CdG5Ub29nbGVcIlxuICAgICAgKGNsaWNrKT1cIm1lbnVUb29nbGUudG9nZ2xlKCRldmVudClcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy1hdXRvXCJcbiAgICAgIGNsYXNzQnRuPVwic2Vjb25kYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc1NhdmVMb2FkaW5nXCJcbiAgICA+XG4gICAgPC9rdi1idXR0b24tcG9wdXA+XG4gICAgPHAtbWVudVxuICAgICAgI21lbnVUb29nbGVcbiAgICAgIFtwb3B1cF09XCJ0cnVlXCJcbiAgICAgIFttb2RlbF09XCJhY3Rpb25zVG9vZ2xlXCJcbiAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICBjbGFzcz1cInctZnVsbCBtZDp3LWF1dG9cIlxuICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcbiAgICA+PC9wLW1lbnU+XG5cbiAgICA8a3YtYnV0dG9uXG4gICAgICAqbmdJZj1cInNob3dCdG5TYXZlXCJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5TYXZlXCJcbiAgICAgIFtpY29uXT1cImljb25CdG5TYXZlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnRuU2F2ZVwiXG4gICAgICBbbG9hZGluZ109XCJpc1NhdmVMb2FkaW5nXCJcbiAgICAgIChvbkNsaWNrKT1cInNhdmUoJGV2ZW50KVwiXG4gICAgICBzZXZlcml0eT1cInByaW1hcnlcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6dy1hdXRvXCJcbiAgICAvPlxuXG4gICAgPGt2LWJ1dHRvbi1wb3B1cFxuICAgICAgKm5nSWY9XCJhY3Rpb25zU2F2ZVRvb2dsZSAmJiBzaG93QnRuU2F2ZVRvb2dsZVwiXG4gICAgICBbbGFiZWxdPVwidHh0QnRuU2F2ZVRvb2dsZVwiXG4gICAgICBbaWNvbl09XCJpY29uQnRuU2F2ZVRvb2dsZVwiXG4gICAgICAoY2xpY2spPVwibWVudVNhdmUudG9nZ2xlKCRldmVudClcIlxuICAgICAgW2xvYWRpbmddPVwiaXNTYXZlTG9hZGluZ1wiXG4gICAgICBjbGFzcz1cInctZnVsbCBtZDp3LWF1dG9cIlxuICAgICAgW2NsYXNzQnRuXT1cIidwcmltYXJ5J1wiXG4gICAgPlxuICAgIDwva3YtYnV0dG9uLXBvcHVwPlxuXG4gICAgPHAtbWVudVxuICAgICAgI21lbnVTYXZlXG4gICAgICBbcG9wdXBdPVwidHJ1ZVwiXG4gICAgICBbbW9kZWxdPVwiYWN0aW9uc1NhdmVUb29nbGVcIlxuICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXG4gICAgICBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxuICAgID48L3AtbWVudT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==