@sapphire-ion/framework 1.2.59 → 1.2.61

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 (95) hide show
  1. package/esm2022/lib/components/carousel/carousel-image/carousel-image.component.mjs +3 -3
  2. package/esm2022/lib/components/carousel/carousel-item/carousel-item.component.mjs +3 -3
  3. package/esm2022/lib/components/carousel/carousel.component.mjs +3 -3
  4. package/esm2022/lib/components/carousel/carousel.module.mjs +4 -4
  5. package/esm2022/lib/components/carousel/i-carousel-item.component.mjs +3 -3
  6. package/esm2022/lib/components/content-block/content-block.component.mjs +3 -3
  7. package/esm2022/lib/components/default/default-list/abstract-list.mjs +3 -3
  8. package/esm2022/lib/components/default/default-list/default-list.component.mjs +3 -3
  9. package/esm2022/lib/components/default/default-list/header-list/header-list.component.mjs +3 -3
  10. package/esm2022/lib/components/default/default-list/list.mjs +3 -3
  11. package/esm2022/lib/components/default/default-pagination/default-pagination.component.mjs +3 -3
  12. package/esm2022/lib/components/default/default-table/default-table.component.mjs +3 -3
  13. package/esm2022/lib/components/default/default-table/th-filter/th-filter.component.mjs +3 -3
  14. package/esm2022/lib/components/default/default-view/abstract-view.mjs +3 -3
  15. package/esm2022/lib/components/default/default-view/default-view.component.mjs +3 -3
  16. package/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +11 -18
  17. package/esm2022/lib/components/default/default-view/view.mjs +3 -3
  18. package/esm2022/lib/components/default/default.module.mjs +4 -4
  19. package/esm2022/lib/components/default-page/default.page.mjs +3 -3
  20. package/esm2022/lib/components/drag-drop-file/drag-drop-file.directive.mjs +3 -3
  21. package/esm2022/lib/components/drag-drop-file/drag-drop-file.module.mjs +4 -4
  22. package/esm2022/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.mjs +3 -3
  23. package/esm2022/lib/components/drawer/default-drawer-end/default-drawer-end.component.mjs +3 -3
  24. package/esm2022/lib/components/drawer/drawer-group/drawer-group.component.mjs +3 -3
  25. package/esm2022/lib/components/drawer/drawer.component.mjs +3 -3
  26. package/esm2022/lib/components/filter/filter.component.mjs +3 -3
  27. package/esm2022/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.mjs +3 -3
  28. package/esm2022/lib/components/image/image.component.mjs +3 -3
  29. package/esm2022/lib/components/info-popover/info-popover.component.mjs +3 -3
  30. package/esm2022/lib/components/inputs/custom-input.mjs +3 -3
  31. package/esm2022/lib/components/inputs/input-bool/input-bool.component.mjs +3 -3
  32. package/esm2022/lib/components/inputs/input-cep/input-cep.component.mjs +3 -3
  33. package/esm2022/lib/components/inputs/input-color/input-color.component.mjs +3 -3
  34. package/esm2022/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.mjs +3 -3
  35. package/esm2022/lib/components/inputs/input-date/input-date.component.mjs +27 -7
  36. package/esm2022/lib/components/inputs/input-date/input-date.configuration.mjs +5 -2
  37. package/esm2022/lib/components/inputs/input-decimal/input-decimal.component.mjs +42 -9
  38. package/esm2022/lib/components/inputs/input-file/download-button/download-button.component.mjs +3 -3
  39. package/esm2022/lib/components/inputs/input-file/input-file.component.mjs +3 -3
  40. package/esm2022/lib/components/inputs/input-icon/input-icon.component.mjs +3 -3
  41. package/esm2022/lib/components/inputs/input-select/directives/sion-label-template.directive.mjs +3 -3
  42. package/esm2022/lib/components/inputs/input-select/directives/sion-option-template.directive.mjs +3 -3
  43. package/esm2022/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.mjs +3 -3
  44. package/esm2022/lib/components/inputs/input-select/input-select.component.mjs +13 -10
  45. package/esm2022/lib/components/inputs/input-select/input.select.configuration.mjs +7 -3
  46. package/esm2022/lib/components/inputs/input-string/input-string.component.mjs +3 -3
  47. package/esm2022/lib/components/inputs/input-telefone/input-telefone.component.mjs +3 -3
  48. package/esm2022/lib/components/inputs/input-textarea/input-textarea.component.mjs +3 -3
  49. package/esm2022/lib/components/inputs/inputs.module.mjs +4 -4
  50. package/esm2022/lib/components/loading/loading.component.mjs +3 -3
  51. package/esm2022/lib/components/login/login-admin/login-admin.component.mjs +3 -3
  52. package/esm2022/lib/components/login/login.component.mjs +3 -3
  53. package/esm2022/lib/components/main-content/main-content.component.mjs +3 -3
  54. package/esm2022/lib/components/popover/sion-popover/sion-popover.component.mjs +3 -3
  55. package/esm2022/lib/components/popover/sion-popover.module.mjs +4 -4
  56. package/esm2022/lib/components/sion-card/sion-card.component.mjs +3 -3
  57. package/esm2022/lib/components/stepper/step/step.component.mjs +3 -3
  58. package/esm2022/lib/components/stepper/stepper.component.mjs +3 -3
  59. package/esm2022/lib/components/stepper/stepper.module.mjs +4 -4
  60. package/esm2022/lib/components/tabs/tab/tab.component.mjs +3 -3
  61. package/esm2022/lib/components/tabs/tabs/tabs.component.mjs +3 -3
  62. package/esm2022/lib/components/tabs/tabs.module.mjs +4 -4
  63. package/esm2022/lib/components/text-tooltip/text-tooltip.component.mjs +3 -3
  64. package/esm2022/lib/components/tooltip/tooltip.component.mjs +3 -3
  65. package/esm2022/lib/core.module.mjs +4 -4
  66. package/esm2022/lib/directives/ng-var.directive.mjs +3 -3
  67. package/esm2022/lib/guards/auth.guard.mjs +3 -3
  68. package/esm2022/lib/guards/error.interceptor.mjs +3 -3
  69. package/esm2022/lib/guards/token.interceptor.mjs +3 -3
  70. package/esm2022/lib/index.mjs +2 -1
  71. package/esm2022/lib/pipes/secure.pipe.mjs +3 -3
  72. package/esm2022/lib/services/auth.service.mjs +3 -3
  73. package/esm2022/lib/services/environment.service.mjs +3 -3
  74. package/esm2022/lib/services/generic.service.mjs +3 -3
  75. package/esm2022/lib/services/modal-focus-trap.service.mjs +3 -3
  76. package/esm2022/lib/services/navigation-context.service.mjs +100 -0
  77. package/esm2022/lib/services/popover-focus-trap.service.mjs +3 -3
  78. package/esm2022/lib/services/route/route.provider.service.mjs +3 -3
  79. package/esm2022/lib/services/usuario.service.mjs +3 -3
  80. package/esm2022/lib/services/utils.service.mjs +3 -3
  81. package/esm2022/lib/services/web/api-url-provider.service.mjs +3 -3
  82. package/esm2022/lib/services/web/http.ativo.service.mjs +3 -3
  83. package/esm2022/lib/services/web/http.service.mjs +11 -6
  84. package/esm2022/lib/services/web/storage.service.mjs +3 -3
  85. package/fesm2022/sapphire-ion-framework.mjs +437 -283
  86. package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
  87. package/lib/components/default/default-view/header-view/header-view.component.d.ts +3 -1
  88. package/lib/components/inputs/input-date/input-date.configuration.d.ts +5 -1
  89. package/lib/components/inputs/input-decimal/input-decimal.component.d.ts +4 -3
  90. package/lib/components/inputs/input-select/input-select.component.d.ts +1 -1
  91. package/lib/components/inputs/input-select/input.select.configuration.d.ts +6 -1
  92. package/lib/index.d.ts +1 -0
  93. package/lib/services/navigation-context.service.d.ts +14 -0
  94. package/package.json +1 -1
  95. package/themes/components/inputs/input-decimal/input-decimal.component.scss +1 -1
@@ -15,7 +15,7 @@ export var SelectInterfaces;
15
15
  })(SelectInterfaces || (SelectInterfaces = {}));
16
16
  export class InputSelectConfiguration {
17
17
  static Create(options) {
18
- const config = new InputSelectConfiguration(options.bindValue, options.bindLabel, options.clearable, options.searcheable, options.loadFrom, options.multiple, options.vFiltros || null, options.disableConditional || null);
18
+ const config = new InputSelectConfiguration(options.bindValue, options.bindLabel, options.clearable, options.searcheable, options.loadFrom, options.multiple, options.vFiltros || null, options.disableConditional || null, options.hasAtivo);
19
19
  if (options.placeholder) {
20
20
  config.placeholder = options.placeholder;
21
21
  }
@@ -28,6 +28,7 @@ export class InputSelectConfiguration {
28
28
  if (options.interface) {
29
29
  config.interface = options.interface;
30
30
  }
31
+ config.hasAtivo = options.hasAtivo ?? false;
31
32
  return config;
32
33
  }
33
34
  ;
@@ -51,7 +52,9 @@ export class InputSelectConfiguration {
51
52
  /** Aplica os filtros na pesquisa */
52
53
  vFiltros = null,
53
54
  /** Desativa os items que estão de acordo com a função */
54
- disableConditional = null) {
55
+ disableConditional = null,
56
+ /** Habilita o filtro de somente ativos */
57
+ hasAtivo = false) {
55
58
  this.bindValue = bindValue;
56
59
  this.bindLabel = bindLabel;
57
60
  this.clearable = clearable;
@@ -59,6 +62,7 @@ export class InputSelectConfiguration {
59
62
  this.loadFrom = loadFrom;
60
63
  this.multiple = multiple;
61
64
  this.disableConditional = disableConditional;
65
+ this.hasAtivo = hasAtivo;
62
66
  this.placeholder = "Selecione um item...";
63
67
  this.noItensFoundText = "Sem items encontrados...";
64
68
  this.popoverConfiguration = {
@@ -226,4 +230,4 @@ export function BindLabelFactory(configuration) {
226
230
  }
227
231
  return bindLabel;
228
232
  }
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuc2VsZWN0LmNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC5zZWxlY3QuY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTzFELE1BQU0sQ0FBTixJQUFZLGdCQVFYO0FBUkQsV0FBWSxnQkFBZ0I7SUFDMUI7O09BRUc7SUFDSCw2REFBZSxDQUFBO0lBQ2YsNkRBQWUsQ0FBQTtJQUNmLHlEQUFlLENBQUE7SUFDZixxRUFBZSxDQUFBO0FBQ2pCLENBQUMsRUFSVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUTNCO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9Ba0JiO1FBRUMsTUFBTSxNQUFNLEdBQUcsSUFBSSx3QkFBd0IsQ0FDekMsT0FBTyxDQUFDLFNBQVMsRUFDakIsT0FBTyxDQUFDLFNBQVMsRUFDakIsT0FBTyxDQUFDLFNBQVMsRUFDakIsT0FBTyxDQUFDLFdBQVcsRUFDbkIsT0FBTyxDQUFDLFFBQVEsRUFDaEIsT0FBTyxDQUFDLFFBQVEsRUFDaEIsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQ3hCLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQ25DLENBQUM7UUFDRixJQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUMsQ0FBQztZQUN0QixNQUFN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LEdBQVEsRUFBVSxFQUFFLEdBQUcsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQgeyBIdHRwU2VydmljZSwgVmlld1JldG9ybm8gfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBIdHRwU2VydmljZUF0aXZvIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3dlYi9odHRwLmF0aXZvLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVmlld0ZpbHRyb3MgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL3ZpZXctZmlsdHJvc1wiO1xyXG5pbXBvcnQgeyBJTlRfTUFYIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29tcGFyaXNvbiB9IGZyb20gXCIuLi8uLi8uLi9jbGFzc2VzL2NvbXBhcmlzb24vY29tcGFyaXNvblwiO1xyXG5pbXBvcnQgeyBJbnB1dFNlbGVjdENvbXBvbmVudCB9IGZyb20gXCIuL2lucHV0LXNlbGVjdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSBcIkBmbG9hdGluZy11aS9kb21cIjtcclxuXHJcbmV4cG9ydCB0eXBlIERlZmF1bHRNb2RlbE9wdGlvbnMgPSB7IHZhbHVlOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcgfTtcclxuXHJcbmV4cG9ydCBlbnVtIFNlbGVjdEludGVyZmFjZXMgICAge1xyXG4gIC8qKiBJbnRlcmZhY2UgcGFkcsOjbyBkbyBzZWxlY3QgXHJcbiAgICogUG9wb3ZlciBxdWFuZG8gd2ViLCBNb2RhbCBxdWFuZG8gbW9iaWxlXHJcbiAgICovXHJcbiAgRHluYW1pYyAgICAgPSAwLFxyXG4gIFBvcG92ZXIgICAgID0gMCxcclxuICBNb2RhbCAgICAgICA9IDEsXHJcbiAgQWN0aW9uU2hlZXQgPSAyLFxyXG59IFxyXG5cclxuZXhwb3J0IGNsYXNzIElucHV0U2VsZWN0Q29uZmlndXJhdGlvbntcclxuICBzdGF0aWMgQ3JlYXRlKG9wdGlvbnM6IHtcclxuICAgIGJpbmRMYWJlbDogc3RyaW5nIHwgKChvYmo6IGFueSkgPT4gc3RyaW5nKSxcclxuICAgIGJpbmRWYWx1ZTogc3RyaW5nIHwgKChvYmo6IGFueSkgPT4gYW55KSxcclxuICAgIGNsZWFyYWJsZT86IGJvb2xlYW4sXHJcbiAgICBzZWFyY2hlYWJsZT86IGJvb2xlYW4sXHJcbiAgICBsb2FkRnJvbT86IEh0dHBTZXJ2aWNlIHwgT2JzZXJ2YWJsZTxWaWV3UmV0b3Jubz4gfCBhbnlbXSxcclxuICAgIG11bHRpcGxlPzogYm9vbGVhbixcclxuICAgIHZGaWx0cm9zPzogUGFydGlhbDx7IFxyXG4gICAgICBzZWFyY2g6IHN0cmluZyxcclxuICAgICAgb3JkZXJCeVByb3BlcnR5OiBzdHJpbmcsXHJcbiAgICAgIGFzY2VuZGluZzogYm9vbGVhbixcclxuICAgICAgZmlsdGVyOiBDb21wYXJpc29uW11cclxuICAgIH0+LFxyXG4gICAgZGlzYWJsZUNvbmRpdGlvbmFsPzogKChvYmo6IGFueSkgPT4gYm9vbGVhbilcclxuICAgIHVzZUluZmluaXRlU2Nyb2xsPzogYm9vbGVhbiB8IHVuZGVmaW5lZCxcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxyXG4gICAgbm9JdGVuc0ZvdW5kVGV4dD86IHN0cmluZyxcclxuICAgIGludGVyZmFjZT86IFNlbGVjdEludGVyZmFjZXMsXHJcbiAgfVxyXG4gICl7XHJcbiAgICBjb25zdCBjb25maWcgPSBuZXcgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKFxyXG4gICAgICBvcHRpb25zLmJpbmRWYWx1ZSxcclxuICAgICAgb3B0aW9ucy5iaW5kTGFiZWwsXHJcbiAgICAgIG9wdGlvbnMuY2xlYXJhYmxlLFxyXG4gICAgICBvcHRpb25zLnNlYXJjaGVhYmxlLFxyXG4gICAgICBvcHRpb25zLmxvYWRGcm9tLFxyXG4gICAgICBvcHRpb25zLm11bHRpcGxlLFxyXG4gICAgICBvcHRpb25zLnZGaWx0cm9zIHx8IG51bGwsXHJcbiAgICAgIG9wdGlvbnMuZGlzYWJsZUNvbmRpdGlvbmFsIHx8IG51bGxcclxuICAgICk7XHJcbiAgICBpZihvcHRpb25zLnBsYWNlaG9sZGVyKXtcclxuICAgICAgY29uZmlnLnBsYWNlaG9sZGVyID0gb3B0aW9ucy5wbGFjZWhvbGRlcjtcclxuICAgIH1cclxuICAgIGlmKG9wdGlvbnMubm9JdGVuc0ZvdW5kVGV4dCl7XHJcbiAgICAgIGNvbmZpZy5ub0l0ZW5zRm91bmRUZXh0ID0gb3B0aW9ucy5ub0l0ZW5zRm91bmRUZXh0O1xyXG4gICAgfVxyXG4gICAgaWYob3B0aW9ucy51c2VJbmZpbml0ZVNjcm9sbCAhPSB1bmRlZmluZWQpe1xyXG4gICAgICBjb25maWcudXNlSW5maW5pdGVTY3JvbGwgPSBvcHRpb25zLnVzZUluZmluaXRlU2Nyb2xsO1xyXG4gICAgfVxyXG4gICAgaWYob3B0aW9ucy5pbnRlcmZhY2Upe1xyXG4gICAgICBjb25maWcuaW50ZXJmYWNlID0gb3B0aW9ucy5pbnRlcmZhY2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29uZmlnO1xyXG4gIH07XHJcblxyXG5cclxuICBwbGFjZWhvbGRlciAgICAgOiBzdHJpbmcgPSBcIlNlbGVjaW9uZSB1bSBpdGVtLi4uXCJcclxuICBub0l0ZW5zRm91bmRUZXh0OiBzdHJpbmcgPSBcIlNlbSBpdGVtcyBlbmNvbnRyYWRvcy4uLlwiXHJcblxyXG4gIGxvYWRlcjogSW5wdXRTZWxlY3REYXRhTG9hZGVyO1xyXG4gIGxvYWRGcm9tQXJyYXkgICA6IGFueVtdO1xyXG4gIGxvYWRGcm9tU2VydmljZSA6IEh0dHBTZXJ2aWNlIHwgSHR0cFNlcnZpY2VBdGl2b1xyXG4gIGxvYWRGcm9tRnVuY3Rpb246IE9ic2VydmFibGU8YW55PlxyXG5cclxuICBwb3BvdmVyQ29uZmlndXJhdGlvbjoge1xyXG4gICAgZmxpcDogYm9vbGVhbixcclxuICAgIHBsYWNlbWVudDogUGxhY2VtZW50LFxyXG4gIH0gPSB7XHJcbiAgICBmbGlwOiB0cnVlLFxyXG4gICAgcGxhY2VtZW50OiBcImJvdHRvbVwiXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdkZpbHRyb3M6IFZpZXdGaWx0cm9zIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIHVzZUluZmluaXRlU2Nyb2xsPzogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqIEludGVyZmFjZSBkbyBzZWxlY3QgKi9cclxuICBwdWJsaWMgaW50ZXJmYWNlOiBTZWxlY3RJbnRlcmZhY2VzID0gU2VsZWN0SW50ZXJmYWNlcy5EeW5hbWljO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8qKiBWYWxvciBxdWUgc2Vyw6Egc2V0YWRvIG5vIGZvcm1Db250cm9sICovXHJcbiAgICBwdWJsaWMgYmluZFZhbHVlOiBzdHJpbmcgfCAoKG9iajogYW55KSA9PiBhbnkpICAgICA9IFwiaWRcIiAgLFxyXG4gICAgLyoqIFZhbG9yIHF1ZSBzZXLDoSBleGliaWRvICovXHJcbiAgICBwdWJsaWMgYmluZExhYmVsOiBzdHJpbmcgfCAoKG9iajogYW55KSA9PiBzdHJpbmcpICA9IFwibm9tZVwiLCBcclxuICAgIFxyXG4gICAgLyoqIEluZGljYSBzZSBvIHNlbGVjdCBwb2RlIHNlciBudWxvIGUgbGltcGF2ZWwgKi9cclxuICAgIHB1YmxpYyBjbGVhcmFibGUgIDogYm9vbGVhbiA9IHRydWUsIFxyXG4gICAgLyoqIEluZGljYSBzZSBvIHNlbGVjdCBwb2RlIHNlciBwZXNxdWlzYWRvICovXHJcbiAgICBwdWJsaWMgc2VhcmNoZWFibGU6IGJvb2xlYW4gPSB0cnVlLCBcclxuICAgIFxyXG4gICAgLyoqIFxyXG4gICAgICogU2UgTG9hZEZyb20gaW5zdGFuY2VvZiBIdHRwU2VydmljZSAgICAgIC0+IE9zIGRhZG9zIHNlcsOjbyBjYXJyZWdhZG9zIGRvIExpc3QoKVxyXG4gICAgICogU2UgTG9hZEZyb20gaW5zdGFuY2VvZiBPYnNlcnZhYmxlICAgICAgIC0+IE9zIGRhZG9zIHNlcsOjbyBjYXJyZWdhZG9zIGRhIGZ1bsOnw6NvIGluZGljYWRhXHJcbiAgICAgKiBTZSBMb2FkRnJvbSBpbnN0YW5jZW9mIEFycmF5ICAgICAgICAgICAgLT4gT3MgZGFkb3Mgc2Vyw6NvIG8gYXJyYXlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxvYWRGcm9tPzogIEh0dHBTZXJ2aWNlIHwgT2JzZXJ2YWJsZTxWaWV3UmV0b3Jubz4gfCBhbnlbXSwgXHJcbiAgICAvKiogU2UgPSB0cnVlIE9zIHZhbG9yZXMgbm8gZm9ybSBjb250cm9sIHNlcsOhbyB1bSBhcnJheSBkb3MgaXRlbXMgc2VsZWNpb25hZG9zICovXHJcbiAgICBwdWJsaWMgbXVsdGlwbGUgOiBib29sZWFuID0gZmFsc2UsXHJcbiAgICAvKiogQXBsaWNhIG9zIGZpbHRyb3MgbmEgcGVzcXVpc2EgKi9cclxuICAgIHZGaWx0cm9zIDogUGFydGlhbDx7IFxyXG4gICAgICAvKiogQXBsaWNhIHVtYSBwZXNxdWlzYSBlbSB0ZXh0byAgKi9cclxuICAgICAgc2VhcmNoOiBzdHJpbmdcclxuICAgICAgLyoqIFByb3ByaWVkYWRlIGRlIG9yZGVuYcOnw6NvICovXHJcbiAgICAgIG9yZGVyQnlQcm9wZXJ0eTogc3RyaW5nXHJcbiAgICAgIC8qKiBPcmllbnRhw6fDo28gZGUgb3JkZW5hw6fDo28gKi9cclxuICAgICAgYXNjZW5kaW5nOiBib29sZWFuLFxyXG4gICAgICAvKiogRmlsdHJvICAqL1xyXG4gICAgICBmaWx0ZXI6IENvbXBhcmlzb25bXVxyXG4gICAgfT4gfCBudWxsID0gbnVsbCxcclxuICAgIC8qKiBEZXNhdGl2YSBvcyBpdGVtcyBxdWUgZXN0w6NvIGRlIGFjb3JkbyBjb20gYSBmdW7Dp8OjbyAqL1xyXG4gICAgcHVibGljIGRpc2FibGVDb25kaXRpb25hbDogKChvYmo6IGFueSkgPT4gYm9vbGVhbikgfCBudWxsID0gbnVsbFxyXG4gICl7XHJcbiAgICB0aGlzLmNsZWFyYWJsZSAgID0gY2xlYXJhYmxlO1xyXG4gICAgdGhpcy5zZWFyY2hlYWJsZSA9IHNlYXJjaGVhYmxlO1xyXG4gICAgdGhpcy5tdWx0aXBsZSAgICA9IG11bHRpcGxlO1xyXG5cclxuICAgIGlmKHZGaWx0cm9zICE9IG51bGwpe1xyXG4gICAgICBjb25zdCB2ID0gdkZpbHRyb3M7XHJcbiAgICAgIGlmKHYuYXNjZW5kaW5nID09IG51bGwgfHwgdi5hc2NlbmRpbmcgPT0gdW5kZWZpbmVkKXsgXHJcbiAgICAgICAgdi5hc2NlbmRpbmcgPSB0cnVlOyBcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnZGaWx0cm9zID0gbmV3IFZpZXdGaWx0cm9zKElOVF9NQVgsIHYuc2VhcmNoLCAxLCB2Lm9yZGVyQnlQcm9wZXJ0eSwgdi5hc2NlbmRpbmcpO1xyXG4gICAgICB0aGlzLnZGaWx0cm9zLmZpbHRlciA9IHYuZmlsdGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKGxvYWRGcm9tKXtcclxuICAgICAgaWYoQXJyYXkuaXNBcnJheShsb2FkRnJvbSkpeyBcclxuICAgICAgICB0aGlzLmxvYWRGcm9tQXJyYXkgICAgPSBsb2FkRnJvbTsgXHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICBpZihsb2FkRnJvbSBpbnN0YW5jZW9mIEh0dHBTZXJ2aWNlIHx8IGxvYWRGcm9tIGluc3RhbmNlb2YgSHR0cFNlcnZpY2VBdGl2byl7IFxyXG4gICAgICAgIHRoaXMubG9hZEZyb21TZXJ2aWNlICA9IGxvYWRGcm9tO1xyXG4gICAgICB9IGVsc2UgeyAgXHJcbiAgICAgICAgdGhpcy5sb2FkRnJvbUZ1bmN0aW9uID0gbG9hZEZyb207XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvYWRlciA9IG5ldyBJbnB1dFNlbGVjdERhdGFMb2FkZXIodGhpcyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSW5wdXRTZWxlY3REYXRhTG9hZGVye1xyXG4gIHByaXZhdGUgbHN0Q29tcG9uZW50czogSW5wdXRTZWxlY3RDb21wb25lbnRbXSA9IFtdO1xyXG4gIHByaXZhdGUgY29uZmlndXJhdGlvbjogSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uO1xyXG5cclxuICAvKiogVmFsb3IgcXVlIHNlcsOhIHNldGFkbyBubyBmb3JtQ29udHJvbCAqL1xyXG4gIHB1YmxpYyBiaW5kVmFsdWU6ICgob2JqOiBhbnkpID0+IGFueSkgICB8IG51bGwgPSBudWxsO1xyXG4gIC8qKiBWYWxvciBxdWUgc2Vyw6EgZXhpYmlkbyAqL1xyXG4gIHB1YmxpYyBiaW5kTGFiZWw6ICgob2JqOiBhbnkpID0+IHN0cmluZyl8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihjb25maWd1cmF0aW9uOiBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24pICB7IFxyXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsgXHJcbiAgICB0aGlzLmJpbmRWYWx1ZSA9IEJpbmRWYWx1ZUZhY3RvcnkoY29uZmlndXJhdGlvbilcclxuICAgIHRoaXMuYmluZExhYmVsID0gQmluZExhYmVsRmFjdG9yeShjb25maWd1cmF0aW9uKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEFkZENvbXBvbmVudChjb21wb25lbnQ6IElucHV0U2VsZWN0Q29tcG9uZW50KTogdm9pZCB7IFxyXG4gICAgdGhpcy5sc3RDb21wb25lbnRzLnB1c2goY29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIC8vVE9ETyBSZW1vdmUgZnVuY3Rpb25cclxuICAgcHVibGljIEdldExhYmVsKHZhbHVlOiBhbnkpe1xyXG4gICAgaWYoIXRoaXMuaXRlbXMgfHwgIXRoaXMuYmluZFZhbHVlIHx8ICF0aGlzLmJpbmRMYWJlbCl7IHJldHVybiBcIlwiOyB9XHJcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtcy5maW5kKHAgPT4gdGhpcy5iaW5kVmFsdWUocCkgPT0gdmFsdWUpO1xyXG4gICAgaWYoIWl0ZW0peyByZXR1cm4gXCJcIiA7fVxyXG4gICAgcmV0dXJuIHRoaXMuYmluZExhYmVsKGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgaXNMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlcnJvciAgIDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBhc3luYyBSZWZyZXNoKGl0ZW1zPzogYW55W10pOiBQcm9taXNlPHZvaWQ+e1xyXG4gICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgdGhpcy5sc3RDb21wb25lbnRzKSB7XHJcbiAgICAgIGNvbXBvbmVudC5sb2FkaW5nRnJvbUxvYWRlciA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKCF0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21TZXJ2aWNlICAmJiBcclxuICAgICAgICF0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21GdW5jdGlvbiAmJiBcclxuICAgICAgICghdGhpcy5jb25maWd1cmF0aW9uLmxvYWRGcm9tQXJyYXkgfHwgIXRoaXMuY29uZmlndXJhdGlvbi5sb2FkRnJvbUFycmF5Lmxlbmd0aClcclxuICAgICAgKXtcclxuICAgICAgdGhpcy5pdGVtcyA9IFsuLi5pdGVtcyB8fCBbXV07XHJcbiAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiB0aGlzLmxzdENvbXBvbmVudHMpIHtcclxuICAgICAgICBpZighY29tcG9uZW50LmRlc3Ryb3llZClcclxuICAgICAgICBjb21wb25lbnQuaXRlbXMuc2V0KFsuLi50aGlzLml0ZW1zXSk7IFxyXG4gICAgICAgICAgdGhpcy5DaGVja0ZvckluZmluaXRlU2Nyb2xsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgdHJ5e1xyXG4gICAgICBhd2FpdCB0aGlzLkxvYWQoKTtcclxuICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHRoaXMubHN0Q29tcG9uZW50cykge1xyXG4gICAgICAgIGlmKCFjb21wb25lbnQuZGVzdHJveWVkKVxyXG4gICAgICAgIGNvbXBvbmVudC5pdGVtcy5zZXQoWy4uLnRoaXMuaXRlbXNdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZmluYWxseXtcclxuICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgdGhpcy5sc3RDb21wb25lbnRzKSB7XHJcbiAgICAgICAgY29tcG9uZW50LmxvYWRpbmdGcm9tTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIENoZWNrRm9ySW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLml0ZW1zLmxlbmd0aCA+IDEwMCAmJiB0aGlzLmNvbmZpZ3VyYXRpb24udXNlSW5maW5pdGVTY3JvbGwgPT0gdW5kZWZpbmVkKXtcclxuICAgICAgdGhpcy5jb25maWd1cmF0aW9uLnVzZUluZmluaXRlU2Nyb2xsID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIGFzeW5jIExvYWQoKTogUHJvbWlzZTx2b2lkPntcclxuICAgIGlmKHRoaXMuaXNMb2FkZWQpe1xyXG4gICAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiB0aGlzLmxzdENvbXBvbmVudHMpIHtcclxuICAgICAgIGlmKCFjb21wb25lbnQuZGVzdHJveWVkKVxyXG4gICAgICAgIGNvbXBvbmVudC5pdGVtcy5zZXQoWy4uLnRoaXMuaXRlbXNdKTsgXHJcbiAgICAgICAgdGhpcy5DaGVja0ZvckluZmluaXRlU2Nyb2xsKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvL1sgTG9hZCBmcm9tIEFycmF5IF1cclxuICAgIGlmKHRoaXMuY29uZmlndXJhdGlvbi5sb2FkRnJvbUFycmF5ICE9IHVuZGVmaW5lZCAmJiB0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21BcnJheS5sZW5ndGgpe1xyXG4gICAgICB0aGlzLml0ZW1zID0gWy4uLnRoaXMuY29uZmlndXJhdGlvbi5sb2FkRnJvbUFycmF5XTtcclxuICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgdGhpcy5sc3RDb21wb25lbnRzKSB7XHJcbiAgICAgICBpZighY29tcG9uZW50LmRlc3Ryb3llZClcclxuICAgICAgICBjb21wb25lbnQuaXRlbXMuc2V0KFsuLi50aGlzLml0ZW1zXSk7IFxyXG4gICAgICAgIHRoaXMuQ2hlY2tGb3JJbmZpbml0ZVNjcm9sbCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvL1sgTG9hZCBmcm9tIGFwaSBdXHJcbiAgICBsZXQgdkZpbHRyb3M6IFZpZXdGaWx0cm9zIHwgbnVsbCA9IHRoaXMuY29uZmlndXJhdGlvbi52RmlsdHJvcztcclxuICAgIHRyeXtcclxuICAgICAgbGV0IGxzdERhZG9zOiBhbnlbXSA9IFtdO1xyXG4gICAgICBcclxuICAgICAgaWYodGhpcy5jb25maWd1cmF0aW9uLmxvYWRGcm9tU2VydmljZSl7XHJcbiAgICAgICAgbHN0RGFkb3MgPSAoYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5jb25maWd1cmF0aW9uLmxvYWRGcm9tU2VydmljZS5MaXN0KHZGaWx0cm9zKSkpLmxzdERhZG9zXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGxzdERhZG9zID0gKGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuY29uZmlndXJhdGlvbi5sb2FkRnJvbUZ1bmN0aW9uKSkubHN0RGFkb3M7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXRlbXMgPSBsc3REYWRvcztcclxuICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgdGhpcy5sc3RDb21wb25lbnRzKSB7XHJcbiAgICAgICAgaWYoIWNvbXBvbmVudC5kZXN0cm95ZWQpXHJcbiAgICAgICAgY29tcG9uZW50Lml0ZW1zLnNldChbLi4udGhpcy5pdGVtc10pOyBcclxuICAgICAgICAgIHRoaXMuQ2hlY2tGb3JJbmZpbml0ZVNjcm9sbCgpO31cclxuICAgICAgO1xyXG4gICAgICB0aGlzLmVycm9yID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSl7IHRoaXMuZXJyb3IgPSB0cnVlOyB0aHJvdyBlOyB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gQmluZFZhbHVlRmFjdG9yeShjb25maWd1cmF0aW9uOiBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24pOiAoKG9iajogYW55KSA9PiBhbnkpIHtcclxuICBjb25zdCBjQmluZFZhbHVlID0gY29uZmlndXJhdGlvbi5iaW5kVmFsdWU7XHJcbiAgbGV0IGJpbmRWYWx1ZTogKChhcmdzOiBhbnkpID0+IGFueSkgPSBudWxsO1xyXG4gIGlmKHR5cGVvZihjQmluZFZhbHVlKSA9PSAnc3RyaW5nJyl7XHJcbiAgICBsZXQgYnZTOiBzdHJpbmcgICAgICAgICAgICAgICA9IGNCaW5kVmFsdWU7XHJcbiAgICBiaW5kVmFsdWUgPSAoKG9iajogYW55KTogYW55ID0+IHsgcmV0dXJuIG9ialtidlNdOyB9KTtcclxuICB9ZWxzZXtcclxuICAgIGxldCBidkY6ICgoYXJnczogYW55KSA9PiBhbnkpID0gY0JpbmRWYWx1ZTtcclxuICAgIGJpbmRWYWx1ZSA9ICgob2JqOiBhbnkpOiBhbnkgPT4geyByZXR1cm4gYnZGKG9iaik7IH0pO1xyXG4gIH1cclxuICByZXR1cm4gYmluZFZhbHVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gQmluZExhYmVsRmFjdG9yeShjb25maWd1cmF0aW9uOiBJbnB1dFNlbGVjdENvbmZpZ3VyYXRpb24pOiAoKG9iajogYW55KSA9PiBzdHJpbmcpIHtcclxuICBjb25zdCBjQmluZExhYmVsID0gY29uZmlndXJhdGlvbi5iaW5kTGFiZWw7XHJcbiAgbGV0IGJpbmRMYWJlbDogKChhcmdzOiBhbnkpID0+IHN0cmluZykgPSBudWxsO1xyXG4gIGlmKHR5cGVvZihjQmluZExhYmVsKSA9PSAnc3RyaW5nJyl7XHJcbiAgICBsZXQgYmxTOiBzdHJpbmcgICAgICAgICAgICAgICA9IGNCaW5kTGFiZWw7XHJcbiAgICBiaW5kTGFiZWwgPSAoKG9iajogYW55KTogc3RyaW5nID0+IHsgcmV0dXJuIG9ialtibFNdICsgJyc7IH0pO1xyXG4gIH1lbHNle1xyXG4gICAgbGV0IGJsRjogKChhcmdzOiBhbnkpID0+IGFueSkgPSBjQmluZExhYmVsO1xyXG4gICAgYmluZExhYmVsID0gKChvYmo6IGFueSk6IHN0cmluZyA9PiB7IHJldHVybiBibEYob2JqKSArICcnOyB9KTtcclxuICB9XHJcbiAgcmV0dXJuIGJpbmRMYWJlbDtcclxufSJdfQ==
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuc2VsZWN0LmNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC5zZWxlY3QuY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTzFELE1BQU0sQ0FBTixJQUFZLGdCQVFYO0FBUkQsV0FBWSxnQkFBZ0I7SUFDMUI7O09BRUc7SUFDSCw2REFBZSxDQUFBO0lBQ2YsNkRBQWUsQ0FBQTtJQUNmLHlEQUFlLENBQUE7SUFDZixxRUFBZSxDQUFBO0FBQ2pCLENBQUMsRUFSVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUTNCO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BbUJiO1FBRUMsTUFBTSxNQUFNLEdBQUcsSUFBSSx3QkFBd0IsQ0FDekMsT0FBTyxDQUFDLFNBQVMsRUFDakIsT0FBTyxDQUFDLFNBQVMsRUFDakIsT0FBTyxDQUFDLFNBQVMsRUFDakIsT0FBTyxDQUFDLFdBQVcsRUFDbkIsT0FBTyxDQUFDLFFBQVEsRUFDaEIsT0FBTyxDQUFDLFFBQVEsRUFDaEIsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQ3hCLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQ2pCLENBQUM7UUFDRixJQUFHLE9BQU8sQ0FBQyxXQUFX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TyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztTQUFJLENBQUM7UUFDSixJQUFJLEdBQUcsR0FBeUIsVUFBVSxDQUFDO1FBQzNDLFNBQVMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFVLEVBQUUsR0FBRyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlLCBWaWV3UmV0b3JubyB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlQXRpdm8gfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvd2ViL2h0dHAuYXRpdm8uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBWaWV3RmlsdHJvcyB9IGZyb20gXCIuLi8uLi8uLi9jbGFzc2VzL2ZpbHRlcnMvdmlldy1maWx0cm9zXCI7XHJcbmltcG9ydCB7IElOVF9NQVggfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvdXRpbHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb21wYXJpc29uIH0gZnJvbSBcIi4uLy4uLy4uL2NsYXNzZXMvY29tcGFyaXNvbi9jb21wYXJpc29uXCI7XHJcbmltcG9ydCB7IElucHV0U2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIi4vaW5wdXQtc2VsZWN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL2RvbVwiO1xyXG5cclxuZXhwb3J0IHR5cGUgRGVmYXVsdE1vZGVsT3B0aW9ucyA9IHsgdmFsdWU6IHN0cmluZywgbGFiZWw6IHN0cmluZyB9O1xyXG5cclxuZXhwb3J0IGVudW0gU2VsZWN0SW50ZXJmYWNlcyAgICB7XHJcbiAgLyoqIEludGVyZmFjZSBwYWRyw6NvIGRvIHNlbGVjdCBcclxuICAgKiBQb3BvdmVyIHF1YW5kbyB3ZWIsIE1vZGFsIHF1YW5kbyBtb2JpbGVcclxuICAgKi9cclxuICBEeW5hbWljICAgICA9IDAsXHJcbiAgUG9wb3ZlciAgICAgPSAwLFxyXG4gIE1vZGFsICAgICAgID0gMSxcclxuICBBY3Rpb25TaGVldCA9IDIsXHJcbn0gXHJcblxyXG5leHBvcnQgY2xhc3MgSW5wdXRTZWxlY3RDb25maWd1cmF0aW9ue1xyXG4gXHJcbiAgc3RhdGljIENyZWF0ZShvcHRpb25zOiB7XHJcbiAgICBiaW5kTGFiZWw6IHN0cmluZyB8ICgob2JqOiBhbnkpID0+IHN0cmluZyksXHJcbiAgICBiaW5kVmFsdWU6IHN0cmluZyB8ICgob2JqOiBhbnkpID0+IGFueSksXHJcbiAgICBjbGVhcmFibGU/OiBib29sZWFuLFxyXG4gICAgc2VhcmNoZWFibGU/OiBib29sZWFuLFxyXG4gICAgbG9hZEZyb20/OiBIdHRwU2VydmljZSB8IE9ic2VydmFibGU8Vmlld1JldG9ybm8+IHwgYW55W10sXHJcbiAgICBtdWx0aXBsZT86IGJvb2xlYW4sXHJcbiAgICB2RmlsdHJvcz86IFBhcnRpYWw8eyBcclxuICAgICAgc2VhcmNoOiBzdHJpbmcsXHJcbiAgICAgIG9yZGVyQnlQcm9wZXJ0eTogc3RyaW5nLFxyXG4gICAgICBhc2NlbmRpbmc6IGJvb2xlYW4sXHJcbiAgICAgIGZpbHRlcjogQ29tcGFyaXNvbltdXHJcbiAgICB9PixcclxuICAgIGRpc2FibGVDb25kaXRpb25hbD86ICgob2JqOiBhbnkpID0+IGJvb2xlYW4pXHJcbiAgICB1c2VJbmZpbml0ZVNjcm9sbD86IGJvb2xlYW4gfCB1bmRlZmluZWQsXHJcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZyxcclxuICAgIG5vSXRlbnNGb3VuZFRleHQ/OiBzdHJpbmcsXHJcbiAgICBpbnRlcmZhY2U/OiBTZWxlY3RJbnRlcmZhY2VzLFxyXG4gICAgaGFzQXRpdm8/OiBib29sZWFuO1xyXG4gIH1cclxuICApe1xyXG4gICAgY29uc3QgY29uZmlnID0gbmV3IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbihcclxuICAgICAgb3B0aW9ucy5iaW5kVmFsdWUsXHJcbiAgICAgIG9wdGlvbnMuYmluZExhYmVsLFxyXG4gICAgICBvcHRpb25zLmNsZWFyYWJsZSxcclxuICAgICAgb3B0aW9ucy5zZWFyY2hlYWJsZSxcclxuICAgICAgb3B0aW9ucy5sb2FkRnJvbSxcclxuICAgICAgb3B0aW9ucy5tdWx0aXBsZSxcclxuICAgICAgb3B0aW9ucy52RmlsdHJvcyB8fCBudWxsLFxyXG4gICAgICBvcHRpb25zLmRpc2FibGVDb25kaXRpb25hbCB8fCBudWxsLFxyXG4gICAgICBvcHRpb25zLmhhc0F0aXZvXHJcbiAgICApO1xyXG4gICAgaWYob3B0aW9ucy5wbGFjZWhvbGRlcil7XHJcbiAgICAgIGNvbmZpZy5wbGFjZWhvbGRlciA9IG9wdGlvbnMucGxhY2Vob2xkZXI7XHJcbiAgICB9XHJcbiAgICBpZihvcHRpb25zLm5vSXRlbnNGb3VuZFRleHQpe1xyXG4gICAgICBjb25maWcubm9JdGVuc0ZvdW5kVGV4dCA9IG9wdGlvbnMubm9JdGVuc0ZvdW5kVGV4dDtcclxuICAgIH1cclxuICAgIGlmKG9wdGlvbnMudXNlSW5maW5pdGVTY3JvbGwgIT0gdW5kZWZpbmVkKXtcclxuICAgICAgY29uZmlnLnVzZUluZmluaXRlU2Nyb2xsID0gb3B0aW9ucy51c2VJbmZpbml0ZVNjcm9sbDtcclxuICAgIH1cclxuICAgIGlmKG9wdGlvbnMuaW50ZXJmYWNlKXtcclxuICAgICAgY29uZmlnLmludGVyZmFjZSA9IG9wdGlvbnMuaW50ZXJmYWNlO1xyXG4gICAgfVxyXG4gICAgY29uZmlnLmhhc0F0aXZvID0gb3B0aW9ucy5oYXNBdGl2byA/PyBmYWxzZTtcclxuICAgIHJldHVybiBjb25maWc7XHJcbiAgfTtcclxuXHJcblxyXG4gIHBsYWNlaG9sZGVyICAgICA6IHN0cmluZyA9IFwiU2VsZWNpb25lIHVtIGl0ZW0uLi5cIlxyXG4gIG5vSXRlbnNGb3VuZFRleHQ6IHN0cmluZyA9IFwiU2VtIGl0ZW1zIGVuY29udHJhZG9zLi4uXCJcclxuXHJcbiAgbG9hZGVyOiBJbnB1dFNlbGVjdERhdGFMb2FkZXI7XHJcbiAgbG9hZEZyb21BcnJheSAgIDogYW55W107XHJcbiAgbG9hZEZyb21TZXJ2aWNlIDogSHR0cFNlcnZpY2UgfCBIdHRwU2VydmljZUF0aXZvXHJcbiAgbG9hZEZyb21GdW5jdGlvbjogT2JzZXJ2YWJsZTxhbnk+XHJcblxyXG4gIHBvcG92ZXJDb25maWd1cmF0aW9uOiB7XHJcbiAgICBmbGlwOiBib29sZWFuLFxyXG4gICAgcGxhY2VtZW50OiBQbGFjZW1lbnQsXHJcbiAgfSA9IHtcclxuICAgIGZsaXA6IHRydWUsXHJcbiAgICBwbGFjZW1lbnQ6IFwiYm90dG9tXCJcclxuICB9XHJcblxyXG4gIHB1YmxpYyB2RmlsdHJvczogVmlld0ZpbHRyb3MgfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgdXNlSW5maW5pdGVTY3JvbGw/OiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICAvKiogSW50ZXJmYWNlIGRvIHNlbGVjdCAqL1xyXG4gIHB1YmxpYyBpbnRlcmZhY2U6IFNlbGVjdEludGVyZmFjZXMgPSBTZWxlY3RJbnRlcmZhY2VzLkR5bmFtaWM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLyoqIFZhbG9yIHF1ZSBzZXLDoSBzZXRhZG8gbm8gZm9ybUNvbnRyb2wgKi9cclxuICAgIHB1YmxpYyBiaW5kVmFsdWU6IHN0cmluZyB8ICgob2JqOiBhbnkpID0+IGFueSkgICAgID0gXCJpZFwiICAsXHJcbiAgICAvKiogVmFsb3IgcXVlIHNlcsOhIGV4aWJpZG8gKi9cclxuICAgIHB1YmxpYyBiaW5kTGFiZWw6IHN0cmluZyB8ICgob2JqOiBhbnkpID0+IHN0cmluZykgID0gXCJub21lXCIsIFxyXG4gICAgXHJcbiAgICAvKiogSW5kaWNhIHNlIG8gc2VsZWN0IHBvZGUgc2VyIG51bG8gZSBsaW1wYXZlbCAqL1xyXG4gICAgcHVibGljIGNsZWFyYWJsZSAgOiBib29sZWFuID0gdHJ1ZSwgXHJcbiAgICAvKiogSW5kaWNhIHNlIG8gc2VsZWN0IHBvZGUgc2VyIHBlc3F1aXNhZG8gKi9cclxuICAgIHB1YmxpYyBzZWFyY2hlYWJsZTogYm9vbGVhbiA9IHRydWUsIFxyXG4gICAgXHJcbiAgICAvKiogXHJcbiAgICAgKiBTZSBMb2FkRnJvbSBpbnN0YW5jZW9mIEh0dHBTZXJ2aWNlICAgICAgLT4gT3MgZGFkb3Mgc2Vyw6NvIGNhcnJlZ2Fkb3MgZG8gTGlzdCgpXHJcbiAgICAgKiBTZSBMb2FkRnJvbSBpbnN0YW5jZW9mIE9ic2VydmFibGUgICAgICAgLT4gT3MgZGFkb3Mgc2Vyw6NvIGNhcnJlZ2Fkb3MgZGEgZnVuw6fDo28gaW5kaWNhZGFcclxuICAgICAqIFNlIExvYWRGcm9tIGluc3RhbmNlb2YgQXJyYXkgICAgICAgICAgICAtPiBPcyBkYWRvcyBzZXLDo28gbyBhcnJheVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbG9hZEZyb20/OiAgSHR0cFNlcnZpY2UgfCBPYnNlcnZhYmxlPFZpZXdSZXRvcm5vPiB8IGFueVtdLCBcclxuICAgIC8qKiBTZSA9IHRydWUgT3MgdmFsb3JlcyBubyBmb3JtIGNvbnRyb2wgc2Vyw6FvIHVtIGFycmF5IGRvcyBpdGVtcyBzZWxlY2lvbmFkb3MgKi9cclxuICAgIHB1YmxpYyBtdWx0aXBsZSA6IGJvb2xlYW4gPSBmYWxzZSxcclxuXHJcbiAgICAvKiogQXBsaWNhIG9zIGZpbHRyb3MgbmEgcGVzcXVpc2EgKi9cclxuICAgIHZGaWx0cm9zIDogUGFydGlhbDx7IFxyXG4gICAgICAvKiogQXBsaWNhIHVtYSBwZXNxdWlzYSBlbSB0ZXh0byAgKi9cclxuICAgICAgc2VhcmNoOiBzdHJpbmdcclxuICAgICAgLyoqIFByb3ByaWVkYWRlIGRlIG9yZGVuYcOnw6NvICovXHJcbiAgICAgIG9yZGVyQnlQcm9wZXJ0eTogc3RyaW5nXHJcbiAgICAgIC8qKiBPcmllbnRhw6fDo28gZGUgb3JkZW5hw6fDo28gKi9cclxuICAgICAgYXNjZW5kaW5nOiBib29sZWFuLFxyXG4gICAgICAvKiogRmlsdHJvICAqL1xyXG4gICAgICBmaWx0ZXI6IENvbXBhcmlzb25bXVxyXG4gICAgfT4gfCBudWxsID0gbnVsbCxcclxuICAgIC8qKiBEZXNhdGl2YSBvcyBpdGVtcyBxdWUgZXN0w6NvIGRlIGFjb3JkbyBjb20gYSBmdW7Dp8OjbyAqL1xyXG4gICAgcHVibGljIGRpc2FibGVDb25kaXRpb25hbDogKChvYmo6IGFueSkgPT4gYm9vbGVhbikgfCBudWxsID0gbnVsbCxcclxuICAgIC8qKiBIYWJpbGl0YSBvIGZpbHRybyBkZSBzb21lbnRlIGF0aXZvcyAqL1xyXG4gICAgcHVibGljIGhhc0F0aXZvOiBib29sZWFuID0gZmFsc2VcclxuICApe1xyXG4gICAgdGhpcy5jbGVhcmFibGUgICA9IGNsZWFyYWJsZTtcclxuICAgIHRoaXMuc2VhcmNoZWFibGUgPSBzZWFyY2hlYWJsZTtcclxuICAgIHRoaXMubXVsdGlwbGUgICAgPSBtdWx0aXBsZTtcclxuXHJcbiAgICBpZih2RmlsdHJvcyAhPSBudWxsKXtcclxuICAgICAgY29uc3QgdiA9IHZGaWx0cm9zO1xyXG4gICAgICBpZih2LmFzY2VuZGluZyA9PSBudWxsIHx8IHYuYXNjZW5kaW5nID09IHVuZGVmaW5lZCl7IFxyXG4gICAgICAgIHYuYXNjZW5kaW5nID0gdHJ1ZTsgXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy52RmlsdHJvcyA9IG5ldyBWaWV3RmlsdHJvcyhJTlRfTUFYLCB2LnNlYXJjaCwgMSwgdi5vcmRlckJ5UHJvcGVydHksIHYuYXNjZW5kaW5nKTtcclxuICAgICAgdGhpcy52RmlsdHJvcy5maWx0ZXIgPSB2LmZpbHRlcjtcclxuICAgIH1cclxuXHJcbiAgICBpZihsb2FkRnJvbSl7XHJcbiAgICAgIGlmKEFycmF5LmlzQXJyYXkobG9hZEZyb20pKXsgXHJcbiAgICAgICAgdGhpcy5sb2FkRnJvbUFycmF5ICAgID0gbG9hZEZyb207IFxyXG4gICAgICB9IGVsc2VcclxuICAgICAgaWYobG9hZEZyb20gaW5zdGFuY2VvZiBIdHRwU2VydmljZSB8fCBsb2FkRnJvbSBpbnN0YW5jZW9mIEh0dHBTZXJ2aWNlQXRpdm8peyBcclxuICAgICAgICB0aGlzLmxvYWRGcm9tU2VydmljZSAgPSBsb2FkRnJvbTtcclxuICAgICAgfSBlbHNlIHsgIFxyXG4gICAgICAgIHRoaXMubG9hZEZyb21GdW5jdGlvbiA9IGxvYWRGcm9tO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sb2FkZXIgPSBuZXcgSW5wdXRTZWxlY3REYXRhTG9hZGVyKHRoaXMpO1xyXG4gIH1cclxuICBcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIElucHV0U2VsZWN0RGF0YUxvYWRlcntcclxuICBwcml2YXRlIGxzdENvbXBvbmVudHM6IElucHV0U2VsZWN0Q29tcG9uZW50W10gPSBbXTtcclxuICBwcml2YXRlIGNvbmZpZ3VyYXRpb246IElucHV0U2VsZWN0Q29uZmlndXJhdGlvbjtcclxuXHJcbiAgLyoqIFZhbG9yIHF1ZSBzZXLDoSBzZXRhZG8gbm8gZm9ybUNvbnRyb2wgKi9cclxuICBwdWJsaWMgYmluZFZhbHVlOiAoKG9iajogYW55KSA9PiBhbnkpICAgfCBudWxsID0gbnVsbDtcclxuICAvKiogVmFsb3IgcXVlIHNlcsOhIGV4aWJpZG8gKi9cclxuICBwdWJsaWMgYmluZExhYmVsOiAoKG9iajogYW55KSA9PiBzdHJpbmcpfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoY29uZmlndXJhdGlvbjogSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKSAgeyBcclxuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247IFxyXG4gICAgdGhpcy5iaW5kVmFsdWUgPSBCaW5kVmFsdWVGYWN0b3J5KGNvbmZpZ3VyYXRpb24pXHJcbiAgICB0aGlzLmJpbmRMYWJlbCA9IEJpbmRMYWJlbEZhY3RvcnkoY29uZmlndXJhdGlvbilcclxuICB9XHJcblxyXG4gIHB1YmxpYyBBZGRDb21wb25lbnQoY29tcG9uZW50OiBJbnB1dFNlbGVjdENvbXBvbmVudCk6IHZvaWQgeyBcclxuICAgIHRoaXMubHN0Q29tcG9uZW50cy5wdXNoKGNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gUmVtb3ZlIGZ1bmN0aW9uXHJcbiAgIHB1YmxpYyBHZXRMYWJlbCh2YWx1ZTogYW55KXtcclxuICAgIGlmKCF0aGlzLml0ZW1zIHx8ICF0aGlzLmJpbmRWYWx1ZSB8fCAhdGhpcy5iaW5kTGFiZWwpeyByZXR1cm4gXCJcIjsgfVxyXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXMuZmluZChwID0+IHRoaXMuYmluZFZhbHVlKHApID09IHZhbHVlKTtcclxuICAgIGlmKCFpdGVtKXsgcmV0dXJuIFwiXCIgO31cclxuICAgIHJldHVybiB0aGlzLmJpbmRMYWJlbChpdGVtKTtcclxuICB9XHJcblxyXG4gIGlzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZXJyb3IgICA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgYXN5bmMgUmVmcmVzaChpdGVtcz86IGFueVtdKTogUHJvbWlzZTx2b2lkPntcclxuICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHRoaXMubHN0Q29tcG9uZW50cykge1xyXG4gICAgICBjb21wb25lbnQubG9hZGluZ0Zyb21Mb2FkZXIgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZighdGhpcy5jb25maWd1cmF0aW9uLmxvYWRGcm9tU2VydmljZSAgJiYgXHJcbiAgICAgICAhdGhpcy5jb25maWd1cmF0aW9uLmxvYWRGcm9tRnVuY3Rpb24gJiYgXHJcbiAgICAgICAoIXRoaXMuY29uZmlndXJhdGlvbi5sb2FkRnJvbUFycmF5IHx8ICF0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21BcnJheS5sZW5ndGgpXHJcbiAgICAgICl7XHJcbiAgICAgIHRoaXMuaXRlbXMgPSBbLi4uaXRlbXMgfHwgW11dO1xyXG4gICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgdGhpcy5sc3RDb21wb25lbnRzKSB7XHJcbiAgICAgICAgaWYoIWNvbXBvbmVudC5kZXN0cm95ZWQpXHJcbiAgICAgICAgY29tcG9uZW50Lml0ZW1zLnNldChbLi4udGhpcy5pdGVtc10pOyBcclxuICAgICAgICAgIHRoaXMuQ2hlY2tGb3JJbmZpbml0ZVNjcm9sbCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRyeXtcclxuICAgICAgYXdhaXQgdGhpcy5Mb2FkKCk7XHJcbiAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xyXG4gICAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiB0aGlzLmxzdENvbXBvbmVudHMpIHtcclxuICAgICAgICBpZighY29tcG9uZW50LmRlc3Ryb3llZClcclxuICAgICAgICBjb21wb25lbnQuaXRlbXMuc2V0KFsuLi50aGlzLml0ZW1zXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZpbmFsbHl7XHJcbiAgICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHRoaXMubHN0Q29tcG9uZW50cykge1xyXG4gICAgICAgIGNvbXBvbmVudC5sb2FkaW5nRnJvbUxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBDaGVja0ZvckluZmluaXRlU2Nyb2xsKCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5pdGVtcy5sZW5ndGggPiAxMDAgJiYgdGhpcy5jb25maWd1cmF0aW9uLnVzZUluZmluaXRlU2Nyb2xsID09IHVuZGVmaW5lZCl7XHJcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbi51c2VJbmZpbml0ZVNjcm9sbCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpdGVtczogYW55W10gPSBbXTtcclxuICBhc3luYyBMb2FkKCk6IFByb21pc2U8dm9pZD57XHJcbiAgICBpZih0aGlzLmlzTG9hZGVkKXtcclxuICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgdGhpcy5sc3RDb21wb25lbnRzKSB7XHJcbiAgICAgICBpZighY29tcG9uZW50LmRlc3Ryb3llZClcclxuICAgICAgICBjb21wb25lbnQuaXRlbXMuc2V0KFsuLi50aGlzLml0ZW1zXSk7IFxyXG4gICAgICAgIHRoaXMuQ2hlY2tGb3JJbmZpbml0ZVNjcm9sbCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy9bIExvYWQgZnJvbSBBcnJheSBdXHJcbiAgICBpZih0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21BcnJheSAhPSB1bmRlZmluZWQgJiYgdGhpcy5jb25maWd1cmF0aW9uLmxvYWRGcm9tQXJyYXkubGVuZ3RoKXtcclxuICAgICAgdGhpcy5pdGVtcyA9IFsuLi50aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21BcnJheV07XHJcbiAgICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHRoaXMubHN0Q29tcG9uZW50cykge1xyXG4gICAgICAgaWYoIWNvbXBvbmVudC5kZXN0cm95ZWQpXHJcbiAgICAgICAgY29tcG9uZW50Lml0ZW1zLnNldChbLi4udGhpcy5pdGVtc10pOyBcclxuICAgICAgICB0aGlzLkNoZWNrRm9ySW5maW5pdGVTY3JvbGwoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy9bIExvYWQgZnJvbSBhcGkgXVxyXG4gICAgbGV0IHZGaWx0cm9zOiBWaWV3RmlsdHJvcyB8IG51bGwgPSB0aGlzLmNvbmZpZ3VyYXRpb24udkZpbHRyb3M7XHJcbiAgICB0cnl7XHJcbiAgICAgIGxldCBsc3REYWRvczogYW55W10gPSBbXTtcclxuICAgICAgXHJcbiAgICAgIGlmKHRoaXMuY29uZmlndXJhdGlvbi5sb2FkRnJvbVNlcnZpY2Upe1xyXG4gICAgICAgIGxzdERhZG9zID0gKGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuY29uZmlndXJhdGlvbi5sb2FkRnJvbVNlcnZpY2UuTGlzdCh2RmlsdHJvcykpKS5sc3REYWRvc1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBsc3REYWRvcyA9IChhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmNvbmZpZ3VyYXRpb24ubG9hZEZyb21GdW5jdGlvbikpLmxzdERhZG9zO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLml0ZW1zID0gbHN0RGFkb3M7XHJcbiAgICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHRoaXMubHN0Q29tcG9uZW50cykge1xyXG4gICAgICAgIGlmKCFjb21wb25lbnQuZGVzdHJveWVkKVxyXG4gICAgICAgIGNvbXBvbmVudC5pdGVtcy5zZXQoWy4uLnRoaXMuaXRlbXNdKTsgXHJcbiAgICAgICAgICB0aGlzLkNoZWNrRm9ySW5maW5pdGVTY3JvbGwoKTt9XHJcbiAgICAgIDtcclxuICAgICAgdGhpcy5lcnJvciA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpeyB0aGlzLmVycm9yID0gdHJ1ZTsgdGhyb3cgZTsgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEJpbmRWYWx1ZUZhY3RvcnkoY29uZmlndXJhdGlvbjogSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKTogKChvYmo6IGFueSkgPT4gYW55KSB7XHJcbiAgY29uc3QgY0JpbmRWYWx1ZSA9IGNvbmZpZ3VyYXRpb24uYmluZFZhbHVlO1xyXG4gIGxldCBiaW5kVmFsdWU6ICgoYXJnczogYW55KSA9PiBhbnkpID0gbnVsbDtcclxuICBpZih0eXBlb2YoY0JpbmRWYWx1ZSkgPT0gJ3N0cmluZycpe1xyXG4gICAgbGV0IGJ2Uzogc3RyaW5nICAgICAgICAgICAgICAgPSBjQmluZFZhbHVlO1xyXG4gICAgYmluZFZhbHVlID0gKChvYmo6IGFueSk6IGFueSA9PiB7IHJldHVybiBvYmpbYnZTXTsgfSk7XHJcbiAgfWVsc2V7XHJcbiAgICBsZXQgYnZGOiAoKGFyZ3M6IGFueSkgPT4gYW55KSA9IGNCaW5kVmFsdWU7XHJcbiAgICBiaW5kVmFsdWUgPSAoKG9iajogYW55KTogYW55ID0+IHsgcmV0dXJuIGJ2RihvYmopOyB9KTtcclxuICB9XHJcbiAgcmV0dXJuIGJpbmRWYWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEJpbmRMYWJlbEZhY3RvcnkoY29uZmlndXJhdGlvbjogSW5wdXRTZWxlY3RDb25maWd1cmF0aW9uKTogKChvYmo6IGFueSkgPT4gc3RyaW5nKSB7XHJcbiAgY29uc3QgY0JpbmRMYWJlbCA9IGNvbmZpZ3VyYXRpb24uYmluZExhYmVsO1xyXG4gIGxldCBiaW5kTGFiZWw6ICgoYXJnczogYW55KSA9PiBzdHJpbmcpID0gbnVsbDtcclxuICBpZih0eXBlb2YoY0JpbmRMYWJlbCkgPT0gJ3N0cmluZycpe1xyXG4gICAgbGV0IGJsUzogc3RyaW5nICAgICAgICAgICAgICAgPSBjQmluZExhYmVsO1xyXG4gICAgYmluZExhYmVsID0gKChvYmo6IGFueSk6IHN0cmluZyA9PiB7IHJldHVybiBvYmpbYmxTXSArICcnOyB9KTtcclxuICB9ZWxzZXtcclxuICAgIGxldCBibEY6ICgoYXJnczogYW55KSA9PiBhbnkpID0gY0JpbmRMYWJlbDtcclxuICAgIGJpbmRMYWJlbCA9ICgob2JqOiBhbnkpOiBzdHJpbmcgPT4geyByZXR1cm4gYmxGKG9iaikgKyAnJzsgfSk7XHJcbiAgfVxyXG4gIHJldHVybiBiaW5kTGFiZWw7XHJcbn0iXX0=
@@ -19,13 +19,13 @@ export class InputStringComponent extends CustomInput {
19
19
  this.value.set(obj);
20
20
  this.runValidation();
21
21
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputStringComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: InputStringComponent, selector: "input-string", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputStringComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: InputStringComponent, selector: "input-string", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
24
24
  ...InputProviderFactory.GetProviders(InputStringComponent),
25
25
  { provide: CustomInput, useExisting: forwardRef(() => InputStringComponent) },
26
26
  ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <input #input\r\n [ngModel]=\"value()\" \r\n [type]=\"configuration().type\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n [maxlength]=\"configuration().maxlength\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>", styles: ["", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputStringComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputStringComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{ selector: 'input-string', providers: [
31
31
  ...InputProviderFactory.GetProviders(InputStringComponent),
@@ -44,13 +44,13 @@ export class InputTelefoneComponent extends CustomInput {
44
44
  this.runValidation();
45
45
  this.propagateChange(obj.replaceAll('.', '').replaceAll('-', '').replaceAll(' ', ''));
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputTelefoneComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: InputTelefoneComponent, selector: "input-telefone, input-celular, input-telefone-celular", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { configuration: "configurationChange" }, providers: [
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputTelefoneComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: InputTelefoneComponent, selector: "input-telefone, input-celular, input-telefone-celular", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { configuration: "configurationChange" }, providers: [
49
49
  ...InputProviderFactory.GetProviders(InputTelefoneComponent),
50
50
  { provide: CustomInput, useExisting: forwardRef(() => InputTelefoneComponent) },
51
51
  ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <input #input\r\n (focus)=\"!value() ? SetValue('+55') : null\"\r\n [ngModel]=\"value()\" \r\n [maskito]=\"mask\"\r\n inputmode=\"numeric\"\r\n [type]=\"'text'\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n (blur)=\"blur.emit($event)\"\r\n />\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>", styles: ["", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }] }); }
52
52
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputTelefoneComponent, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputTelefoneComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{ selector: 'input-telefone, input-celular, input-telefone-celular', providers: [
56
56
  ...InputProviderFactory.GetProviders(InputTelefoneComponent),
@@ -57,13 +57,13 @@ export class InputTextareaComponent extends CustomInput {
57
57
  this.runValidation();
58
58
  requestAnimationFrame(() => this.resize());
59
59
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: InputTextareaComponent, selector: "input-textarea", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "onInput()" } }, providers: [
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: InputTextareaComponent, selector: "input-textarea", inputs: { configuration: { classPropertyName: "configuration", publicName: "configuration", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "onInput()" } }, providers: [
62
62
  ...InputProviderFactory.GetProviders(InputTextareaComponent),
63
63
  { provide: CustomInput, useExisting: forwardRef(() => InputTextareaComponent) },
64
64
  ], viewQueries: [{ propertyName: "input", first: true, predicate: ["textarea"], descendants: true }, { propertyName: "inputContainer", first: true, predicate: ["inputContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div \r\n #inputContainer\r\n class=\"input-container\" \r\n (click)=\"setFocus($event)\"\r\n [class.required]=\"required()\" \r\n [class.submitted]=\"submitted()\" \r\n [class.invalid]=\"invalid\" \r\n [class.disabled]=\"disabled() || loading()\"\r\n [class.loading]=\"loading()\"\r\n>\r\n <div class=\"input-label\"> \r\n <span class=\"truncate\">\r\n {{label()}} \r\n </span>\r\n </div>\r\n <textarea #textarea\r\n [ngModel]=\"value()\" \r\n (ngModelChange)=\"SetValue($event)\"\r\n [disabled]=\"disabled() || loading()\"\r\n [maxlength]=\"configuration().maxlength\"\r\n (blur)=\"blur.emit($event)\"\r\n >\r\n </textarea>\r\n <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n</div>", styles: [".input-container{padding-right:.25rem!important}.loading-container{padding-top:.5rem;align-items:start!important}textarea::-webkit-scrollbar{width:10px}textarea::-webkit-scrollbar-track{background:transparent}textarea::-webkit-scrollbar-thumb{background-color:#ffffff40;border-radius:10px;border:2px solid transparent;background-clip:content-box}textarea::-webkit-scrollbar-thumb:hover{background-color:#fff6}\n", "@property --input-color{syntax: \"<color>\"; initial-value: transparent; inherits: false;}.input-container{position:relative;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));cursor:text;border-radius:.75rem;padding:.25rem .75rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition:--input-color .2s ease-in-out,box-shadow .2s ease-in-out,opacity .2s ease-in-out,filter .2s ease-in-out;--color: var(--ion-color-dark);--input-color: var(--input-background, var(--ion-color-step-250));--shadow: 0 3px 4px -1px rgb(0 0 0 / .1);--inset-shadow: var(--input-color) 0px 1.75px 2px 0px inset;--focused-shadow: 0 0 1px 2px color-mix(in srgb, var(--ion-color-medium) 35%, transparent);box-shadow:var(--inset-shadow),var(--shadow);will-change:box-shadow,filter opacity;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:radial-gradient(ellipse at 0px top,hsl(from var(--input-color) h s l/.5),hsl(from var(--input-color) h s l/.4)),hsl(from var(--ion-color-light) h s l/.8)}.input-container:hover{--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container:focus-within,.input-container:focus,.input-container.manual-focus{box-shadow:var(--inset-shadow),var(--shadow),var(--focused-shadow);--tw-brightness: brightness(.9);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container .input-label{pointer-events:none;display:flex;height:1rem;width:100%;min-width:0px;max-width:100%;align-items:center;justify-content:flex-start;gap:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;color:var(--color)}.input-container input,.input-container textarea{height:1.5rem;width:100%;border-radius:.375rem;background-color:transparent;font-size:.875rem;line-height:1.25rem;color:var(--ion-color-dark);outline:2px solid transparent;outline-offset:2px}.input-container.loading{cursor:wait!important}.input-container.required .input-label:after{content:\"*\";color:var(--ion-color-danger);vertical-align:bottom}.input-container.submitted.invalid{--input-color: color-mix(in srgb, var(--ion-color-danger) 50%, transparent)}.input-container.disabled{cursor:not-allowed;opacity:.5;--tw-brightness: brightness(1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.input-container.disabled *{pointer-events:none}.loading-container{position:absolute;pointer-events:none;width:100%;height:100%;top:0;left:0;display:flex;justify-content:end;align-items:center;padding-right:.5rem;will-change:opacity;transition:opacity .2s ease-in-out;overflow:hidden;opacity:0;z-index:10}.loading-container ion-spinner{will-change:auto;transition:transform .2s ease-in-out;transform:translateY(-100%)}.loading-container.loading{opacity:1}.loading-container.loading ion-spinner{transform:translateY(0)}ion-modal::part(content){border-radius:.75rem;border:1px solid var(--ion-color-step-250)}\n"], dependencies: [{ kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputTextareaComponent, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputTextareaComponent, decorators: [{
67
67
  type: Component,
68
68
  args: [{ selector: 'input-textarea', providers: [
69
69
  ...InputProviderFactory.GetProviders(InputTextareaComponent),
@@ -48,8 +48,8 @@ const lstComponents = [
48
48
  DownloadButtonComponent,
49
49
  ];
50
50
  export class InputsModule {
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
52
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: InputsModule, declarations: [InputBoolComponent,
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
52
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: InputsModule, declarations: [InputBoolComponent,
53
53
  InputCepComponent,
54
54
  InputColorComponent,
55
55
  InputCpfCnpjComponent,
@@ -91,7 +91,7 @@ export class InputsModule {
91
91
  InputTelefoneComponent,
92
92
  InputTextareaComponent,
93
93
  DownloadButtonComponent] }); }
94
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputsModule, providers: [
94
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsModule, providers: [
95
95
  { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
96
96
  { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },
97
97
  ], imports: [IonicModule,
@@ -105,7 +105,7 @@ export class InputsModule {
105
105
  MatDatepickerModule,
106
106
  MatCardModule] }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputsModule, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsModule, decorators: [{
109
109
  type: NgModule,
110
110
  args: [{
111
111
  declarations: [...lstComponents],
@@ -18,10 +18,10 @@ export class LoadingComponent {
18
18
  this.loading = true;
19
19
  }
20
20
  ngOnInit() { }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LoadingComponent, isStandalone: true, selector: "loading", inputs: { text: "text", type: "type", loading: "loading" }, ngImport: i0, template: "@switch (type) {\r\n @case (1) {\r\n <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n <div class=\"flex items-center justify-center\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n @if(text){\r\n <span>{{text}}</span>\r\n }\r\n </div>\r\n }\r\n @case (2) {\r\n <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n <div class=\"flex items-center justify-center\">\r\n <ion-spinner></ion-spinner> \r\n @if (text) {\r\n <span class=\"ml-3\">{{text}}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @case (3) {\r\n <div class=\"absolute top-0 left-0 size-full opacity-0 -z-50 default-transition -translate-y-12 flex items-center justify-center !translucid-background\" \r\n [ngClass]=\"{'!z-20 !opacity-100 !translate-y-0': loading}\">\r\n <loading [type]=\"2\" [text]=\"text\"></loading> \r\n </div>\r\n }\r\n}", styles: [""], dependencies: [{ kind: "component", type: LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LoadingComponent, isStandalone: true, selector: "loading", inputs: { text: "text", type: "type", loading: "loading" }, ngImport: i0, template: "@switch (type) {\r\n @case (1) {\r\n <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n <div class=\"flex items-center justify-center\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n @if(text){\r\n <span>{{text}}</span>\r\n }\r\n </div>\r\n }\r\n @case (2) {\r\n <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n <div class=\"flex items-center justify-center\">\r\n <ion-spinner></ion-spinner> \r\n @if (text) {\r\n <span class=\"ml-3\">{{text}}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @case (3) {\r\n <div class=\"absolute top-0 left-0 size-full opacity-0 -z-50 default-transition -translate-y-12 flex items-center justify-center !translucid-background\" \r\n [ngClass]=\"{'!z-20 !opacity-100 !translate-y-0': loading}\">\r\n <loading [type]=\"2\" [text]=\"text\"></loading> \r\n </div>\r\n }\r\n}", styles: [""], dependencies: [{ kind: "component", type: LoadingComponent, selector: "loading", inputs: ["text", "type", "loading"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoadingComponent, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ standalone: true, imports: [CommonModule, IonicModule], selector: 'loading', template: "@switch (type) {\r\n @case (1) {\r\n <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n <div class=\"flex items-center justify-center\">\r\n <ion-spinner></ion-spinner>\r\n </div>\r\n @if(text){\r\n <span>{{text}}</span>\r\n }\r\n </div>\r\n }\r\n @case (2) {\r\n <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n <div class=\"flex items-center justify-center\">\r\n <ion-spinner></ion-spinner> \r\n @if (text) {\r\n <span class=\"ml-3\">{{text}}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n @case (3) {\r\n <div class=\"absolute top-0 left-0 size-full opacity-0 -z-50 default-transition -translate-y-12 flex items-center justify-center !translucid-background\" \r\n [ngClass]=\"{'!z-20 !opacity-100 !translate-y-0': loading}\">\r\n <loading [type]=\"2\" [text]=\"text\"></loading> \r\n </div>\r\n }\r\n}" }]
27
27
  }], ctorParameters: () => [], propDecorators: { text: [{
@@ -36,10 +36,10 @@ export class LoginAdminComponent {
36
36
  SetApiUrl() {
37
37
  this.apiUrlProviderService.apiUrl = this.apiUrl;
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginAdminComponent, deps: [{ token: i1.ApiUrlProviderService }, { token: i2.AuthService }, { token: i3.UsuarioService }], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LoginAdminComponent, isStandalone: true, selector: "login-admin", ngImport: i0, template: "@if (this.authService.isAdmin || !this.apiUrlProviderService.production) {\r\n <ion-button (click)=\"adminPopover.present($event)\" fill=\"outline\" class=\"aspect-square h-8 z-50\" size=\"small\">\r\n <ion-icon name=\"shield\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n <ion-popover id=\"admin-popover\" #adminPopover>\r\n <ng-template>\r\n <ion-content class=\"p-2 bg-transparent\">\r\n <div class=\"p-2\">\r\n <input-select\r\n [(ngModel)]=\"idUsuario\"\r\n label=\"Logar como...\"\r\n (change)=\"SelectUser($event)\"\r\n [configuration]=\"selectUserConfiguration\"\r\n ></input-select>\r\n \r\n <div class=\"rounded-2xl mt-2 overflow-hidden border border-primary/30\">\r\n <div class=\"py-2 text-center border-b border-b-medium/30\">\r\n <span class=\"font-poppins\"> API </span>\r\n </div>\r\n <ion-item lines=\"none\" style=\"--border-width: 0 !important;\">\r\n <ion-input [(ngModel)]=\"apiUrl\" (ngModelChange)=\"SetApiUrl()\"></ion-input>\r\n </ion-item>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}", styles: ["#admin-popover{--width: 17rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i4.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i4.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: InputsModule }, { kind: "component", type: i6.InputSelectComponent, selector: "input-select", inputs: ["items", "configuration"], outputs: ["itemsChange"] }] }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoginAdminComponent, deps: [{ token: i1.ApiUrlProviderService }, { token: i2.AuthService }, { token: i3.UsuarioService }], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LoginAdminComponent, isStandalone: true, selector: "login-admin", ngImport: i0, template: "@if (this.authService.isAdmin || !this.apiUrlProviderService.production) {\r\n <ion-button (click)=\"adminPopover.present($event)\" fill=\"outline\" class=\"aspect-square h-8 z-50\" size=\"small\">\r\n <ion-icon name=\"shield\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n <ion-popover id=\"admin-popover\" #adminPopover>\r\n <ng-template>\r\n <ion-content class=\"p-2 bg-transparent\">\r\n <div class=\"p-2\">\r\n <input-select\r\n [(ngModel)]=\"idUsuario\"\r\n label=\"Logar como...\"\r\n (change)=\"SelectUser($event)\"\r\n [configuration]=\"selectUserConfiguration\"\r\n ></input-select>\r\n \r\n <div class=\"rounded-2xl mt-2 overflow-hidden border border-primary/30\">\r\n <div class=\"py-2 text-center border-b border-b-medium/30\">\r\n <span class=\"font-poppins\"> API </span>\r\n </div>\r\n <ion-item lines=\"none\" style=\"--border-width: 0 !important;\">\r\n <ion-input [(ngModel)]=\"apiUrl\" (ngModelChange)=\"SetApiUrl()\"></ion-input>\r\n </ion-item>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-popover>\r\n}", styles: ["#admin-popover{--width: 17rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i4.IonPopover, selector: "ion-popover" }, { kind: "directive", type: i4.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: InputsModule }, { kind: "component", type: i6.InputSelectComponent, selector: "input-select", inputs: ["items", "configuration"], outputs: ["itemsChange"] }] }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoginAdminComponent, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoginAdminComponent, decorators: [{
43
43
  type: Component,
44
44
  args: [{ standalone: true, imports: [
45
45
  CommonModule,
@@ -76,10 +76,10 @@ export class DefaultLoginComponent {
76
76
  this.loading = false;
77
77
  }
78
78
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultLoginComponent, deps: [{ token: i1.FormBuilder }, { token: i2.GenericService }, { token: i3.NavController }, { token: i4.AuthService }, { token: i5.ApiUrlProviderService }, { token: i6.EnvironmentService }, { token: i7.Router }], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DefaultLoginComponent, isStandalone: true, selector: "login", outputs: { OnLogin: "OnLogin" }, host: { listeners: { "window:keydown": "Login($event)" } }, viewQueries: [{ propertyName: "loginContainer", first: true, predicate: ["loginContainer"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"size-full flex justify-center items-center relative\">\r\n <div class=\"landscape:w-4/5 portrait:w-full landscape:h-2/3 portrait:h-full landscape:max-w-[60rem] translucid-border landscape:rounded-3xl landscape:backdrop-blur-xl overflow-hidden\">\r\n <div class=\"size-full flex portrait:flex-col\" style=\"background-color: color-mix(in srgb, var(--ion-color-light) 20%, transparent 80%);\">\r\n <div class=\"shrink-0 w-96 portrait:w-full portrait:h-32 h-full p-3\">\r\n <div class=\"rounded-2xl size-full overflow-x-hidden\">\r\n <ng-content class=\"size-full\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"grow flex items-center justify-center h-full py-3 pr-3 portrait:pl-3\">\r\n <div class=\"w-96 h-full flex flex-col items-center justify-center gap-2\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n\r\n <ion-text class=\"text-5xl my-10 portrait:mt-[-5rem]\"> Login </ion-text>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\">\r\n <ion-card-content>\r\n <ion-item lines=\"none\" label=\"Senha\" labelPlacement=\"stacked\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"person\" slot=\"start\"></ion-icon>\r\n <ion-input placeholder=\"Usu\u00E1rio / User\" formControlName=\"apelido\"></ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\"> \r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"lock-closed\" slot=\"start\"></ion-icon>\r\n <ion-input type=\"password\" formControlName=\"senha\" placeholder=\"Senha / Password\">\r\n <ion-input-password-toggle slot=\"end\"></ion-input-password-toggle>\r\n </ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <div class=\"w-full\">\r\n <a href=\"\">Esqueceu a senha?</a>\r\n </div>\r\n\r\n <div class=\"flex w-full\">\r\n <ion-button class=\"rounded-2xl shadow-xl default-transition w-full\" expand=\"block\" (click)=\"Login()\" [disabled]=\"loading\">\r\n <ion-spinner class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': !loading, 'mr-2' : loading}\" slot=\"start\"></ion-spinner>\r\n <ion-icon class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': loading}\" name=\"enter-outline\" slot=\"start\" ></ion-icon>\r\n <span class=\"default-transition\" > Login </span>\r\n </ion-button>\r\n\r\n <ion-button class=\"shrink-0 aspect-square ml-3\" color=\"dark\" hidden>\r\n <svg class=\"size-8\" slot=\"icon-only\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\"><defs><path id=\"A\" d=\"M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z\"/></defs><clipPath id=\"B\"><use xlink:href=\"#A\"/></clipPath><g transform=\"matrix(.727273 0 0 .727273 -.954545 -1.45455)\"><path d=\"M0 37V11l17 13z\" clip-path=\"url(#B)\" fill=\"#fbbc05\"/><path d=\"M0 11l17 13 7-6.1L48 14V0H0z\" clip-path=\"url(#B)\" fill=\"#ea4335\"/><path d=\"M0 37l30-23 7.9 1L48 0v48H0z\" clip-path=\"url(#B)\" fill=\"#34a853\"/><path d=\"M48 48L17 24l-4-3 35-10z\" clip-path=\"url(#B)\" fill=\"#4285f4\"/></g></svg>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div> -->\r\n\r\n<div #loginContainer class=\"size-full flex justify-center items-center relative portrait:p-4\">\r\n <div class=\"landscape:w-4/5 landscape:h-2/3 landscape:xl:max-w-[60rem] portrait:size-full translucid-border backdrop-blur-xl rounded-3xl overflow-hidden\">\r\n <div class=\"size-full flex portrait:flex-col\" style=\"background-color: color-mix(in srgb, var(--ion-color-light) 20%, transparent 80%);\">\r\n <div class=\"shrink-0 w-96 portrait:w-full portrait:h-40 landscape:h-full p-2\">\r\n <div class=\"size-full rounded-2xl overflow-hidden\">\r\n <ng-content select=\"[slot=logo]\" class=\"size-full\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"shrink size-full flex flex-col items-center justify-center gap-3 px-10 relative\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n <ion-text class=\"h-24 text-5xl\"> Login </ion-text>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\">\r\n <ion-card-content>\r\n <ion-item lines=\"none\" label=\"Senha\" labelPlacement=\"stacked\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"person\" slot=\"start\"></ion-icon>\r\n <ion-input placeholder=\"Usu\u00E1rio / User\" formControlName=\"apelido\" (keydown.enter)=\"Login()\"></ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\"> \r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"lock-closed\" slot=\"start\"></ion-icon>\r\n <ion-input type=\"password\" formControlName=\"senha\" placeholder=\"Senha / Password\" (keydown.enter)=\"Login()\">\r\n <ion-input-password-toggle slot=\"end\"></ion-input-password-toggle>\r\n </ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <div class=\"flex w-full\">\r\n <ion-button class=\"transition-all rounded-2xl shadow-xl default-transition w-full\" expand=\"block\" (click)=\"Login()\" [disabled]=\"loading\">\r\n <ion-spinner class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': !loading, 'mr-2' : loading}\" slot=\"start\"></ion-spinner>\r\n <ion-icon class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': loading}\" name=\"enter-outline\" slot=\"start\" ></ion-icon>\r\n <span class=\"default-transition\"> Login </span>\r\n </ion-button>\r\n\r\n <!-- <ion-button class=\"shrink-0 aspect-square ml-3\" color=\"dark\" hidden>\r\n <svg class=\"size-8\" slot=\"icon-only\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\"><defs><path id=\"A\" d=\"M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z\"/></defs><clipPath id=\"B\"><use xlink:href=\"#A\"/></clipPath><g transform=\"matrix(.727273 0 0 .727273 -.954545 -1.45455)\"><path d=\"M0 37V11l17 13z\" clip-path=\"url(#B)\" fill=\"#fbbc05\"/><path d=\"M0 11l17 13 7-6.1L48 14V0H0z\" clip-path=\"url(#B)\" fill=\"#ea4335\"/><path d=\"M0 37l30-23 7.9 1L48 0v48H0z\" clip-path=\"url(#B)\" fill=\"#34a853\"/><path d=\"M48 48L17 24l-4-3 35-10z\" clip-path=\"url(#B)\" fill=\"#4285f4\"/></g></svg>\r\n </ion-button> -->\r\n </div>\r\n\r\n <div class=\"w-full\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["ion-card{margin:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 15%,transparent 93%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px}ion-card ion-card-content{padding:0}ion-card:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i3.IonInputPasswordToggle, selector: "ion-input-password-toggle", inputs: ["color", "hideIcon", "mode", "showIcon"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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"] }] }); }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultLoginComponent, deps: [{ token: i1.FormBuilder }, { token: i2.GenericService }, { token: i3.NavController }, { token: i4.AuthService }, { token: i5.ApiUrlProviderService }, { token: i6.EnvironmentService }, { token: i7.Router }], target: i0.ɵɵFactoryTarget.Component }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DefaultLoginComponent, isStandalone: true, selector: "login", outputs: { OnLogin: "OnLogin" }, host: { listeners: { "window:keydown": "Login($event)" } }, viewQueries: [{ propertyName: "loginContainer", first: true, predicate: ["loginContainer"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"size-full flex justify-center items-center relative\">\r\n <div class=\"landscape:w-4/5 portrait:w-full landscape:h-2/3 portrait:h-full landscape:max-w-[60rem] translucid-border landscape:rounded-3xl landscape:backdrop-blur-xl overflow-hidden\">\r\n <div class=\"size-full flex portrait:flex-col\" style=\"background-color: color-mix(in srgb, var(--ion-color-light) 20%, transparent 80%);\">\r\n <div class=\"shrink-0 w-96 portrait:w-full portrait:h-32 h-full p-3\">\r\n <div class=\"rounded-2xl size-full overflow-x-hidden\">\r\n <ng-content class=\"size-full\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"grow flex items-center justify-center h-full py-3 pr-3 portrait:pl-3\">\r\n <div class=\"w-96 h-full flex flex-col items-center justify-center gap-2\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n\r\n <ion-text class=\"text-5xl my-10 portrait:mt-[-5rem]\"> Login </ion-text>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\">\r\n <ion-card-content>\r\n <ion-item lines=\"none\" label=\"Senha\" labelPlacement=\"stacked\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"person\" slot=\"start\"></ion-icon>\r\n <ion-input placeholder=\"Usu\u00E1rio / User\" formControlName=\"apelido\"></ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\"> \r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"lock-closed\" slot=\"start\"></ion-icon>\r\n <ion-input type=\"password\" formControlName=\"senha\" placeholder=\"Senha / Password\">\r\n <ion-input-password-toggle slot=\"end\"></ion-input-password-toggle>\r\n </ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <div class=\"w-full\">\r\n <a href=\"\">Esqueceu a senha?</a>\r\n </div>\r\n\r\n <div class=\"flex w-full\">\r\n <ion-button class=\"rounded-2xl shadow-xl default-transition w-full\" expand=\"block\" (click)=\"Login()\" [disabled]=\"loading\">\r\n <ion-spinner class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': !loading, 'mr-2' : loading}\" slot=\"start\"></ion-spinner>\r\n <ion-icon class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': loading}\" name=\"enter-outline\" slot=\"start\" ></ion-icon>\r\n <span class=\"default-transition\" > Login </span>\r\n </ion-button>\r\n\r\n <ion-button class=\"shrink-0 aspect-square ml-3\" color=\"dark\" hidden>\r\n <svg class=\"size-8\" slot=\"icon-only\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\"><defs><path id=\"A\" d=\"M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z\"/></defs><clipPath id=\"B\"><use xlink:href=\"#A\"/></clipPath><g transform=\"matrix(.727273 0 0 .727273 -.954545 -1.45455)\"><path d=\"M0 37V11l17 13z\" clip-path=\"url(#B)\" fill=\"#fbbc05\"/><path d=\"M0 11l17 13 7-6.1L48 14V0H0z\" clip-path=\"url(#B)\" fill=\"#ea4335\"/><path d=\"M0 37l30-23 7.9 1L48 0v48H0z\" clip-path=\"url(#B)\" fill=\"#34a853\"/><path d=\"M48 48L17 24l-4-3 35-10z\" clip-path=\"url(#B)\" fill=\"#4285f4\"/></g></svg>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div> -->\r\n\r\n<div #loginContainer class=\"size-full flex justify-center items-center relative portrait:p-4\">\r\n <div class=\"landscape:w-4/5 landscape:h-2/3 landscape:xl:max-w-[60rem] portrait:size-full translucid-border backdrop-blur-xl rounded-3xl overflow-hidden\">\r\n <div class=\"size-full flex portrait:flex-col\" style=\"background-color: color-mix(in srgb, var(--ion-color-light) 20%, transparent 80%);\">\r\n <div class=\"shrink-0 w-96 portrait:w-full portrait:h-40 landscape:h-full p-2\">\r\n <div class=\"size-full rounded-2xl overflow-hidden\">\r\n <ng-content select=\"[slot=logo]\" class=\"size-full\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"shrink size-full flex flex-col items-center justify-center gap-3 px-10 relative\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n <ion-text class=\"h-24 text-5xl\"> Login </ion-text>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\">\r\n <ion-card-content>\r\n <ion-item lines=\"none\" label=\"Senha\" labelPlacement=\"stacked\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"person\" slot=\"start\"></ion-icon>\r\n <ion-input placeholder=\"Usu\u00E1rio / User\" formControlName=\"apelido\" (keydown.enter)=\"Login()\"></ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <ion-card class=\"w-full backdrop-blur-xl\"> \r\n <ion-card-content>\r\n <ion-item lines=\"none\" class=\"rounded-2xl my-3 w-full\">\r\n <ion-icon name=\"lock-closed\" slot=\"start\"></ion-icon>\r\n <ion-input type=\"password\" formControlName=\"senha\" placeholder=\"Senha / Password\" (keydown.enter)=\"Login()\">\r\n <ion-input-password-toggle slot=\"end\"></ion-input-password-toggle>\r\n </ion-input>\r\n </ion-item>\r\n </ion-card-content>\r\n </ion-card>\r\n\r\n <div class=\"flex w-full\">\r\n <ion-button class=\"transition-all rounded-2xl shadow-xl default-transition w-full\" expand=\"block\" (click)=\"Login()\" [disabled]=\"loading\">\r\n <ion-spinner class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': !loading, 'mr-2' : loading}\" slot=\"start\"></ion-spinner>\r\n <ion-icon class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': loading}\" name=\"enter-outline\" slot=\"start\" ></ion-icon>\r\n <span class=\"default-transition\"> Login </span>\r\n </ion-button>\r\n\r\n <!-- <ion-button class=\"shrink-0 aspect-square ml-3\" color=\"dark\" hidden>\r\n <svg class=\"size-8\" slot=\"icon-only\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\"><defs><path id=\"A\" d=\"M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z\"/></defs><clipPath id=\"B\"><use xlink:href=\"#A\"/></clipPath><g transform=\"matrix(.727273 0 0 .727273 -.954545 -1.45455)\"><path d=\"M0 37V11l17 13z\" clip-path=\"url(#B)\" fill=\"#fbbc05\"/><path d=\"M0 11l17 13 7-6.1L48 14V0H0z\" clip-path=\"url(#B)\" fill=\"#ea4335\"/><path d=\"M0 37l30-23 7.9 1L48 0v48H0z\" clip-path=\"url(#B)\" fill=\"#34a853\"/><path d=\"M48 48L17 24l-4-3 35-10z\" clip-path=\"url(#B)\" fill=\"#4285f4\"/></g></svg>\r\n </ion-button> -->\r\n </div>\r\n\r\n <div class=\"w-full\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["ion-card{margin:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);background:color-mix(in srgb,var(--ion-color-light) 15%,transparent 93%);border-bottom-color:var(--ion-color-medium);border-right-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-top-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-left-color:color-mix(in srgb,var(--ion-color-medium) 30%,transparent 70%);border-width:1px 1px 2px 1px}ion-card ion-card-content{padding:0}ion-card:hover{background:color-mix(in srgb,var(--ion-color-dark) 15%,transparent 93%)}ion-card.submitted.invalid{border-color:color-mix(in srgb,var(--ion-color-danger) 75%,transparent 25%)!important}ion-card ion-card-content{width:100%;height:100%;background-color:transparent;padding:0}ion-item{--background: transparent;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i3.IonInputPasswordToggle, selector: "ion-input-password-toggle", inputs: ["color", "hideIcon", "mode", "showIcon"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TextValueAccessor, selector: "ion-input:not([type=number]),ion-input-otp[type=text],ion-textarea,ion-searchbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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"] }] }); }
81
81
  }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultLoginComponent, decorators: [{
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DefaultLoginComponent, decorators: [{
83
83
  type: Component,
84
84
  args: [{ standalone: true, imports: [
85
85
  CommonModule,
@@ -73,10 +73,10 @@ export class MainContentComponent {
73
73
  document.exitFullscreen();
74
74
  }
75
75
  }
76
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainContentComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MainContentComponent, isStandalone: true, selector: "main-content", inputs: { backdrop: "backdrop", shadowColor: "shadowColor", colapsed: "colapsed", drawerComponent: "drawerComponent" }, viewQueries: [{ propertyName: "FullScreenConteiner", first: true, predicate: ["target"], descendants: true }], ngImport: i0, template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex items-center justify-end gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square portrait:hidden\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n\r\n\r\n @if (!fullScreen) {\r\n <div #anchor>\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n </div>\r\n <sion-popover #userPopover [anchor]=\"anchor\" [flip]=\"false\" width=\"13rem\">\r\n <div class=\"w-full flex flex-col overflow-hidden\">\r\n <div class=\"w-full flex p-2 gap-2 overflow-hidden\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center bg-primary\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n\r\n <div class=\"shrink-0 w-full flex flex-col justify-center items-start overflow-hidden text-sm\">\r\n <span class=\"truncate\"> {{Token ? Token.Nome : ''}} </span>\r\n <span class=\"truncate text-secondary\"> &#64;{{Token ? Token.Apelido : ''}} </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-full p-1 !pb-0 translucid-border !border-x-0 !border-b-0\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start default-transition py-1 px-2\">\r\n <ion-icon name=\"contrast\"></ion-icon>\r\n <ion-text> Tema </ion-text>\r\n </div>\r\n\r\n <div class=\"flex flex-col pl-4\">\r\n <ion-radio-group alignment=\"start\" [allowEmptySelection]=\"false\" [value]=\"Theme\" (ionChange)=\"SetTheme($event.detail.value)\">\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"cog\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"0\">Sistema</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"sunny\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"1\">Claro</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"none\">\r\n <ion-icon name=\"moon\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"2\">Escuro</ion-radio>\r\n </ion-item>\r\n </ion-radio-group>\r\n\r\n\r\n <!-- <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 0\" (ionChange)=\"SetTheme(0)\" ></ion-checkbox>\r\n <ion-icon name=\"cog\"></ion-icon>\r\n <ion-text> Sistema </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 1\" (ionChange)=\"SetTheme(1)\" ></ion-checkbox>\r\n <ion-icon name=\"sunny\"></ion-icon>\r\n <ion-text> Claro </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 2\" (ionChange)=\"SetTheme(2)\" ></ion-checkbox>\r\n <ion-icon name=\"moon\"></ion-icon>\r\n <ion-text> Escuro </ion-text>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0\">\r\n <div (click)=\"authService.Loggout()\" class=\"rounded-xl flex gap-2 cursor-pointer items-center justify-start hover:bg-medium/10 default-transition py-1 px-2\">\r\n <ion-icon color=\"danger\" name=\"exit\"></ion-icon>\r\n <ion-text> Log Out </ion-text>\r\n </div>\r\n\r\n <!-- <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button> -->\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"size-full\">\r\n <div class=\"w-full p-1 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n &#64;{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <div class=\"hover:bg-medium/30 default-transition size-full\">\r\n <ion-button color=\"dark\" fill=\"clear\" size=\"small\" class=\"rounded-xl w-full text-left overflow-hidden\">\r\n <ion-icon slot=\"start\" name=\"contrast\"></ion-icon>\r\n <ion-label class=\"text-sm\">Tema</ion-label>\r\n </ion-button>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n </div> -->\r\n </sion-popover>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 pt-0 bg-light\">\r\n <div class=\"size-full relative rounded-2xl content-shadow overflow-hidden {{backdrop}}\" style=\"--shadow-color: {{shadowColor}}\">\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--shadow-color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--shadow-color),0 6px 10px -4px var(--shadow-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i3.IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: i3.IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "compareWith", "errorText", "helperText", "name", "value"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SIonPopoverModule }, { kind: "component", type: i4.SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }] }); }
76
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MainContentComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
77
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MainContentComponent, isStandalone: true, selector: "main-content", inputs: { backdrop: "backdrop", shadowColor: "shadowColor", colapsed: "colapsed", drawerComponent: "drawerComponent" }, viewQueries: [{ propertyName: "FullScreenConteiner", first: true, predicate: ["target"], descendants: true }], ngImport: i0, template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex items-center justify-end gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square portrait:hidden\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n\r\n\r\n @if (!fullScreen) {\r\n <div #anchor>\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n </div>\r\n <sion-popover #userPopover [anchor]=\"anchor\" [flip]=\"false\" width=\"13rem\">\r\n <div class=\"w-full flex flex-col overflow-hidden\">\r\n <div class=\"w-full flex p-2 gap-2 overflow-hidden\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center bg-primary\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n\r\n <div class=\"shrink-0 w-full flex flex-col justify-center items-start overflow-hidden text-sm\">\r\n <span class=\"truncate\"> {{Token ? Token.Nome : ''}} </span>\r\n <span class=\"truncate text-secondary\"> &#64;{{Token ? Token.Apelido : ''}} </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-full p-1 !pb-0 translucid-border !border-x-0 !border-b-0\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start default-transition py-1 px-2\">\r\n <ion-icon name=\"contrast\"></ion-icon>\r\n <ion-text> Tema </ion-text>\r\n </div>\r\n\r\n <div class=\"flex flex-col pl-4\">\r\n <ion-radio-group alignment=\"start\" [allowEmptySelection]=\"false\" [value]=\"Theme\" (ionChange)=\"SetTheme($event.detail.value)\">\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"cog\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"0\">Sistema</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"sunny\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"1\">Claro</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"none\">\r\n <ion-icon name=\"moon\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"2\">Escuro</ion-radio>\r\n </ion-item>\r\n </ion-radio-group>\r\n\r\n\r\n <!-- <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 0\" (ionChange)=\"SetTheme(0)\" ></ion-checkbox>\r\n <ion-icon name=\"cog\"></ion-icon>\r\n <ion-text> Sistema </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 1\" (ionChange)=\"SetTheme(1)\" ></ion-checkbox>\r\n <ion-icon name=\"sunny\"></ion-icon>\r\n <ion-text> Claro </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 2\" (ionChange)=\"SetTheme(2)\" ></ion-checkbox>\r\n <ion-icon name=\"moon\"></ion-icon>\r\n <ion-text> Escuro </ion-text>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0\">\r\n <div (click)=\"authService.Loggout()\" class=\"rounded-xl flex gap-2 cursor-pointer items-center justify-start hover:bg-medium/10 default-transition py-1 px-2\">\r\n <ion-icon color=\"danger\" name=\"exit\"></ion-icon>\r\n <ion-text> Log Out </ion-text>\r\n </div>\r\n\r\n <!-- <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button> -->\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"size-full\">\r\n <div class=\"w-full p-1 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n &#64;{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <div class=\"hover:bg-medium/30 default-transition size-full\">\r\n <ion-button color=\"dark\" fill=\"clear\" size=\"small\" class=\"rounded-xl w-full text-left overflow-hidden\">\r\n <ion-icon slot=\"start\" name=\"contrast\"></ion-icon>\r\n <ion-label class=\"text-sm\">Tema</ion-label>\r\n </ion-button>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n </div> -->\r\n </sion-popover>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 pt-0 bg-light\">\r\n <div class=\"size-full relative rounded-2xl content-shadow overflow-hidden {{backdrop}}\" style=\"--shadow-color: {{shadowColor}}\">\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--shadow-color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--shadow-color),0 6px 10px -4px var(--shadow-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IonicModule }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i3.IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: i3.IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: i3.IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "compareWith", "errorText", "helperText", "name", "value"] }, { kind: "component", type: i3.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i3.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: RouterLinkWithHref, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SIonPopoverModule }, { kind: "component", type: i4.SIonPopoverComponent, selector: "sion-popover", inputs: ["fill", "arrow", "flip", "placement", "height", "width", "anchor"], outputs: ["onWillPresent", "onDidPresent", "onWillDismiss", "onDidDismiss"] }] }); }
78
78
  }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainContentComponent, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MainContentComponent, decorators: [{
80
80
  type: Component,
81
81
  args: [{ standalone: true, imports: [CommonModule, IonicModule, RouterLinkWithHref, SIonPopoverModule], selector: 'main-content', template: "<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n <div class=\"w-full h-14 relative shrink-0\">\r\n <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n @if (!fullScreen) {\r\n <ion-menu-button [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n }\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-1/2 h-full flex items-center justify-end gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square portrait:hidden\">\r\n <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n </ion-button>\r\n\r\n\r\n @if (!fullScreen) {\r\n <div #anchor>\r\n <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </ion-button>\r\n </div>\r\n <sion-popover #userPopover [anchor]=\"anchor\" [flip]=\"false\" width=\"13rem\">\r\n <div class=\"w-full flex flex-col overflow-hidden\">\r\n <div class=\"w-full flex p-2 gap-2 overflow-hidden\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center bg-primary\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n\r\n <div class=\"shrink-0 w-full flex flex-col justify-center items-start overflow-hidden text-sm\">\r\n <span class=\"truncate\"> {{Token ? Token.Nome : ''}} </span>\r\n <span class=\"truncate text-secondary\"> &#64;{{Token ? Token.Apelido : ''}} </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"w-full p-1 !pb-0 translucid-border !border-x-0 !border-b-0\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start default-transition py-1 px-2\">\r\n <ion-icon name=\"contrast\"></ion-icon>\r\n <ion-text> Tema </ion-text>\r\n </div>\r\n\r\n <div class=\"flex flex-col pl-4\">\r\n <ion-radio-group alignment=\"start\" [allowEmptySelection]=\"false\" [value]=\"Theme\" (ionChange)=\"SetTheme($event.detail.value)\">\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"cog\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"0\">Sistema</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"full\">\r\n <ion-icon name=\"sunny\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"1\">Claro</ion-radio>\r\n </ion-item>\r\n <ion-item class=\"bg-transparent\" lines=\"none\">\r\n <ion-icon name=\"moon\" slot=\"start\"></ion-icon>\r\n <ion-radio class=\"w-full\" [value]=\"2\">Escuro</ion-radio>\r\n </ion-item>\r\n </ion-radio-group>\r\n\r\n\r\n <!-- <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 0\" (ionChange)=\"SetTheme(0)\" ></ion-checkbox>\r\n <ion-icon name=\"cog\"></ion-icon>\r\n <ion-text> Sistema </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 1\" (ionChange)=\"SetTheme(1)\" ></ion-checkbox>\r\n <ion-icon name=\"sunny\"></ion-icon>\r\n <ion-text> Claro </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n <ion-checkbox [checked]=\"Theme == 2\" (ionChange)=\"SetTheme(2)\" ></ion-checkbox>\r\n <ion-icon name=\"moon\"></ion-icon>\r\n <ion-text> Escuro </ion-text>\r\n </div>\r\n </div> -->\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0\">\r\n <div (click)=\"authService.Loggout()\" class=\"rounded-xl flex gap-2 cursor-pointer items-center justify-start hover:bg-medium/10 default-transition py-1 px-2\">\r\n <ion-icon color=\"danger\" name=\"exit\"></ion-icon>\r\n <ion-text> Log Out </ion-text>\r\n </div>\r\n\r\n <!-- <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button> -->\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"size-full\">\r\n <div class=\"w-full p-1 flex items-center\">\r\n <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n </div>\r\n <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n <ion-text color=\"secondary\" class=\"text-sm\">\r\n &#64;{{Token ? Token.Apelido : ''}}\r\n </ion-text>\r\n </div>\r\n </div>\r\n <div class=\"w-full\">\r\n <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <div class=\"hover:bg-medium/30 default-transition size-full\">\r\n <ion-button color=\"dark\" fill=\"clear\" size=\"small\" class=\"rounded-xl w-full text-left overflow-hidden\">\r\n <ion-icon slot=\"start\" name=\"contrast\"></ion-icon>\r\n <ion-label class=\"text-sm\">Tema</ion-label>\r\n </ion-button>\r\n </div>\r\n </div>\r\n <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n <ion-text> Log Out </ion-text>\r\n <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n </ion-button>\r\n </div>\r\n </div> -->\r\n </sion-popover>\r\n }\r\n </div>\r\n </ion-card-content>\r\n </ion-card>\r\n </div>\r\n <div class=\"size-full relative p-2 pt-0 bg-light\">\r\n <div class=\"size-full relative rounded-2xl content-shadow overflow-hidden {{backdrop}}\" style=\"--shadow-color: {{shadowColor}}\">\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</div>", styles: ["#popover-user{--width: 17rem}.content-shadow{--shadow-color: color-mix(in srgb, var(--ion-color-primary) 15%, transparent);box-shadow:0 0 0 1px var(--shadow-color),0 6px 10px -4px var(--shadow-color)}\n"] }]
82
82
  }], ctorParameters: () => [{ type: i1.AuthService }], propDecorators: { backdrop: [{
@@ -128,10 +128,10 @@ export class SIonPopoverComponent {
128
128
  ].filter(p => p),
129
129
  });
130
130
  }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SIonPopoverComponent, selector: "sion-popover", inputs: { fill: "fill", arrow: "arrow", flip: "flip", placement: "placement", height: "height", width: "width", anchor: "anchor" }, outputs: { onWillPresent: "onWillPresent", onDidPresent: "onDidPresent", onWillDismiss: "onWillDismiss", onDidDismiss: "onDidDismiss" }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["popoverWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div #popoverWrapper \r\n class=\"popover-wrapper translucid-border\"\r\n [style.height]=\"height\"\r\n [style.width]=\"width\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'bg-light/90' : fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n> \r\n <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'bg-light/90' : fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n ></div>\r\n <ng-content #content></ng-content>\r\n</div>", styles: [".popover-wrapper{border-radius:.75rem;width:max-content;position:fixed;will-change:left,top,bottom,right,auto,opacity,filter;opacity:0;transition:opacity .15s ease-in-out,transform .15s ease-in-out,filter .15s ease-in-out;min-width:2rem;min-height:2rem;filter:grayscale(.9);transform:scale(.95);pointer-events:auto!important;z-index:10001!important}.popover-arrow{border-radius:.125rem;position:absolute;transform:scale(1) rotate(var(--rotation))!important;clip-path:var(--clip-path-triangle, polygon(0% 0%, 0% 100%, 100% 100%))}.show{filter:grayscale(0);transform:scale(1);opacity:1}.popover-wrapper:not(.show){pointer-events:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SIonPopoverComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SIonPopoverComponent, selector: "sion-popover", inputs: { fill: "fill", arrow: "arrow", flip: "flip", placement: "placement", height: "height", width: "width", anchor: "anchor" }, outputs: { onWillPresent: "onWillPresent", onDidPresent: "onDidPresent", onWillDismiss: "onWillDismiss", onDidDismiss: "onDidDismiss" }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["popoverWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div #popoverWrapper \r\n class=\"popover-wrapper translucid-border\"\r\n [style.height]=\"height\"\r\n [style.width]=\"width\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'bg-light/90' : fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n> \r\n <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'bg-light/90' : fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n ></div>\r\n <ng-content #content></ng-content>\r\n</div>", styles: [".popover-wrapper{border-radius:.75rem;width:max-content;position:fixed;will-change:left,top,bottom,right,auto,opacity,filter;opacity:0;transition:opacity .15s ease-in-out,transform .15s ease-in-out,filter .15s ease-in-out;min-width:2rem;min-height:2rem;filter:grayscale(.9);transform:scale(.95);pointer-events:auto!important;z-index:10001!important}.popover-arrow{border-radius:.125rem;position:absolute;transform:scale(1) rotate(var(--rotation))!important;clip-path:var(--clip-path-triangle, polygon(0% 0%, 0% 100%, 100% 100%))}.show{filter:grayscale(0);transform:scale(1);opacity:1}.popover-wrapper:not(.show){pointer-events:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
133
133
  }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SIonPopoverComponent, decorators: [{
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SIonPopoverComponent, decorators: [{
135
135
  type: Component,
136
136
  args: [{ selector: 'sion-popover', template: "<div #popoverWrapper \r\n class=\"popover-wrapper translucid-border\"\r\n [style.height]=\"height\"\r\n [style.width]=\"width\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'bg-light/90' : fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n> \r\n <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n [ngClass]=\"{\r\n 'bg-light' : fill == 'solid',\r\n 'bg-transparent' : fill == 'outline',\r\n 'bg-light/90' : fill == 'blur',\r\n '!border-0' : fill == 'clear',\r\n }\"\r\n ></div>\r\n <ng-content #content></ng-content>\r\n</div>", styles: [".popover-wrapper{border-radius:.75rem;width:max-content;position:fixed;will-change:left,top,bottom,right,auto,opacity,filter;opacity:0;transition:opacity .15s ease-in-out,transform .15s ease-in-out,filter .15s ease-in-out;min-width:2rem;min-height:2rem;filter:grayscale(.9);transform:scale(.95);pointer-events:auto!important;z-index:10001!important}.popover-arrow{border-radius:.125rem;position:absolute;transform:scale(1) rotate(var(--rotation))!important;clip-path:var(--clip-path-triangle, polygon(0% 0%, 0% 100%, 100% 100%))}.show{filter:grayscale(0);transform:scale(1);opacity:1}.popover-wrapper:not(.show){pointer-events:none!important}\n"] }]
137
137
  }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { fill: [{