keevo-components 2.0.57 → 2.0.59

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 (168) hide show
  1. package/fesm2022/keevo-components.mjs +10 -9
  2. package/fesm2022/keevo-components.mjs.map +1 -1
  3. package/lib/components/kv-button/kv-button.component.d.ts +1 -1
  4. package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +1 -1
  5. package/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.d.ts +1 -1
  6. package/lib/components/kv-table/kv-table.component.d.ts +1 -1
  7. package/lib/components/kv-table-expandable/kv-table-expandable.component.d.ts +1 -1
  8. package/package.json +1 -3
  9. package/esm2022/keevo-components.mjs +0 -5
  10. package/esm2022/lib/api/base-components/base-component-button.mjs +0 -39
  11. package/esm2022/lib/api/base-components/base-component-chart.mjs +0 -104
  12. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +0 -308
  13. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +0 -91
  14. package/esm2022/lib/api/base-components/base-component-crud.mjs +0 -80
  15. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +0 -31
  16. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +0 -238
  17. package/esm2022/lib/api/base-components/base-component-input.mjs +0 -101
  18. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +0 -174
  19. package/esm2022/lib/api/base-components/base-component-table.mjs +0 -354
  20. package/esm2022/lib/api/base-components/base-component.mjs +0 -51
  21. package/esm2022/lib/api/components/chart/chart.config.mjs +0 -2
  22. package/esm2022/lib/api/components/chart/chart.model.mjs +0 -2
  23. package/esm2022/lib/api/components/chart/orchart.config.mjs +0 -2
  24. package/esm2022/lib/api/components/chart/orchartnode.mjs +0 -2
  25. package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +0 -2
  26. package/esm2022/lib/api/components/step/step.model.mjs +0 -2
  27. package/esm2022/lib/api/components/stepper/kv-stepperpanel.mjs +0 -2
  28. package/esm2022/lib/api/components/table/action-item.mjs +0 -2
  29. package/esm2022/lib/api/components/table/kv-menuitem.mjs +0 -46
  30. package/esm2022/lib/api/components/table/table-dropdown-control.mjs +0 -2
  31. package/esm2022/lib/api/components/table/table.config.column.mjs +0 -2
  32. package/esm2022/lib/api/components/table/table.config.mjs +0 -2
  33. package/esm2022/lib/api/components/table/table.paginate.mjs +0 -10
  34. package/esm2022/lib/api/components/table/tabledit.config.mjs +0 -2
  35. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +0 -2
  36. package/esm2022/lib/api/components/tree-table/tree-table-keys.mjs +0 -2
  37. package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +0 -3
  38. package/esm2022/lib/api/directives/directives.module.mjs +0 -30
  39. package/esm2022/lib/api/directives/drag/drag.directive.mjs +0 -52
  40. package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +0 -31
  41. package/esm2022/lib/api/directives/template/template.directive.mjs +0 -24
  42. package/esm2022/lib/api/helpers/component-providers.mjs +0 -16
  43. package/esm2022/lib/api/helpers/keevo-validators.mjs +0 -144
  44. package/esm2022/lib/api/helpers/translate-primeng.mjs +0 -23
  45. package/esm2022/lib/api/modules/primeng.module.mjs +0 -283
  46. package/esm2022/lib/api/pipes/capitalize.pipe.mjs +0 -47
  47. package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +0 -25
  48. package/esm2022/lib/api/pipes/mask.pipe.mjs +0 -29
  49. package/esm2022/lib/api/pipes/pipes.module.mjs +0 -39
  50. package/esm2022/lib/api/pipes/telefone.pipe.mjs +0 -45
  51. package/esm2022/lib/api/services/base.api.service.mjs +0 -74
  52. package/esm2022/lib/api/services/breadcrumbs.service.mjs +0 -62
  53. package/esm2022/lib/api/services/chat.service.mjs +0 -37
  54. package/esm2022/lib/api/services/component.service.mjs +0 -37
  55. package/esm2022/lib/api/services/docs.service.mjs +0 -129
  56. package/esm2022/lib/api/services/form.service.mjs +0 -95
  57. package/esm2022/lib/api/services/image.cutter.service.mjs +0 -193
  58. package/esm2022/lib/api/services/imagens.service.mjs +0 -28
  59. package/esm2022/lib/api/services/notification.service.mjs +0 -69
  60. package/esm2022/lib/api/services/object.service.mjs +0 -39
  61. package/esm2022/lib/api/services/orgchart.service.mjs +0 -64
  62. package/esm2022/lib/api/types/breadcrumb.model.mjs +0 -2
  63. package/esm2022/lib/components/keevo-components.module.mjs +0 -221
  64. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +0 -133
  65. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +0 -55
  66. package/esm2022/lib/components/kv-button/kv-button.component.mjs +0 -51
  67. package/esm2022/lib/components/kv-button/kv-button.module.mjs +0 -28
  68. package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +0 -25
  69. package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +0 -39
  70. package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +0 -17
  71. package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +0 -17
  72. package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +0 -39
  73. package/esm2022/lib/components/kv-card-selection/kv-card-selection.component.mjs +0 -60
  74. package/esm2022/lib/components/kv-card-selection/kv-card-selection.module.mjs +0 -31
  75. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +0 -34
  76. package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +0 -28
  77. package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +0 -166
  78. package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +0 -32
  79. package/esm2022/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.mjs +0 -32
  80. package/esm2022/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.mjs +0 -22
  81. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.component.mjs +0 -185
  82. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.module.mjs +0 -44
  83. package/esm2022/lib/components/kv-error/kv-error.component.mjs +0 -26
  84. package/esm2022/lib/components/kv-error/kv-error.module.mjs +0 -35
  85. package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +0 -162
  86. package/esm2022/lib/components/kv-file-upload/kv-file-upload.module.mjs +0 -18
  87. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +0 -46
  88. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +0 -20
  89. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.mjs +0 -68
  90. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.mjs +0 -24
  91. package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +0 -29
  92. package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +0 -34
  93. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +0 -26
  94. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.mjs +0 -28
  95. package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +0 -11
  96. package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +0 -19
  97. package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +0 -27
  98. package/esm2022/lib/components/kv-home-card/kv-home-card.module.mjs +0 -32
  99. package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +0 -136
  100. package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +0 -18
  101. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +0 -29
  102. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +0 -102
  103. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +0 -181
  104. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +0 -168
  105. package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +0 -30
  106. package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +0 -59
  107. package/esm2022/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.mjs +0 -66
  108. package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +0 -33
  109. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +0 -38
  110. package/esm2022/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.mjs +0 -42
  111. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +0 -50
  112. package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +0 -43
  113. package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +0 -24
  114. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +0 -141
  115. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +0 -60
  116. package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +0 -60
  117. package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +0 -46
  118. package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +0 -37
  119. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +0 -42
  120. package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +0 -58
  121. package/esm2022/lib/components/kv-label/kv-label.component.mjs +0 -15
  122. package/esm2022/lib/components/kv-label/kv-label.module.mjs +0 -24
  123. package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +0 -28
  124. package/esm2022/lib/components/kv-layout/kv-layout.module.mjs +0 -72
  125. package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +0 -433
  126. package/esm2022/lib/components/kv-layout/top-icons/top-icons.component.mjs +0 -15
  127. package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +0 -16
  128. package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +0 -28
  129. package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +0 -29
  130. package/esm2022/lib/components/kv-login/kv-login.component.mjs +0 -62
  131. package/esm2022/lib/components/kv-login/kv-login.module.mjs +0 -47
  132. package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +0 -98
  133. package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +0 -20
  134. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +0 -225
  135. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +0 -59
  136. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +0 -215
  137. package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +0 -41
  138. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +0 -205
  139. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +0 -51
  140. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +0 -386
  141. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +0 -39
  142. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +0 -58
  143. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +0 -28
  144. package/esm2022/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.mjs +0 -62
  145. package/esm2022/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.mjs +0 -28
  146. package/esm2022/lib/components/kv-report/kv-report.component.mjs +0 -44
  147. package/esm2022/lib/components/kv-report/kv-report.module.mjs +0 -24
  148. package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +0 -74
  149. package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +0 -47
  150. package/esm2022/lib/components/kv-steps/kv-steps.component.mjs +0 -105
  151. package/esm2022/lib/components/kv-table/kv-table.component.mjs +0 -673
  152. package/esm2022/lib/components/kv-table/kv-table.module.mjs +0 -40
  153. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +0 -323
  154. package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +0 -45
  155. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +0 -516
  156. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +0 -40
  157. package/esm2022/lib/components/kv-tag/kv-tag.component.mjs +0 -18
  158. package/esm2022/lib/components/kv-tag/kv-tag.module.mjs +0 -24
  159. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +0 -331
  160. package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +0 -39
  161. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +0 -70
  162. package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +0 -28
  163. package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +0 -40
  164. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +0 -68
  165. package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +0 -22
  166. package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +0 -78
  167. package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +0 -87
  168. package/esm2022/public-api.mjs +0 -274
@@ -1,105 +0,0 @@
1
- import { Component, inject, input, output, signal, ViewChild, ViewContainerRef } from '@angular/core';
2
- import { NotificationService } from '../../api/services/notification.service';
3
- import { KvPageFormModule } from '../kv-page-form/kv-page-form.module';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../kv-page-form/kv-page-form.component";
6
- export class KvStepsComponent {
7
- constructor() {
8
- this.notificationService = inject(NotificationService);
9
- this.steps = input([]);
10
- this.currentStepIndex = signal(0);
11
- this.emitData = output();
12
- }
13
- ngAfterViewInit() {
14
- if (this.steps().length > 0) {
15
- this.renderCurrentStep();
16
- }
17
- }
18
- getCurrentStep() {
19
- const stepsArray = this.steps();
20
- const index = this.currentStepIndex();
21
- if (index < 0 || index >= stepsArray.length) {
22
- return null;
23
- }
24
- return stepsArray[index];
25
- }
26
- renderCurrentStep() {
27
- const currentStep = this.getCurrentStep();
28
- if (currentStep && this.stepContainer) {
29
- this.renderStep(currentStep);
30
- }
31
- }
32
- renderStep(step) {
33
- if (!this.stepContainer)
34
- return;
35
- this.stepContainer.clear();
36
- const compRef = this.stepContainer.createComponent(step.component);
37
- step.instance = compRef.instance;
38
- }
39
- updateStepIndex(newIndex) {
40
- const stepsArray = this.steps();
41
- if (newIndex < 0 || newIndex >= stepsArray.length)
42
- return;
43
- this.currentStepIndex.set(newIndex);
44
- this.renderCurrentStep();
45
- }
46
- async nextPage() {
47
- const currentStep = this.getCurrentStep();
48
- if (!currentStep)
49
- return;
50
- if (currentStep.instance?.isValid()) {
51
- this.emitData.emit(currentStep?.instance?.getData());
52
- //aguardar o salvamento do step atual
53
- if (currentStep.instance?.isValid()) {
54
- currentStep.instance?.save().subscribe({
55
- next: () => { },
56
- complete: () => {
57
- if (currentStep.instance?.isCompleted()) {
58
- currentStep.completed = true;
59
- }
60
- this.updateStepIndex(this.currentStepIndex() + 1);
61
- }
62
- });
63
- }
64
- }
65
- else {
66
- // this.notificationService.toastError('Preencha todos os campos obrigatórios!');
67
- }
68
- }
69
- jumpPage() {
70
- const currentStep = this.getCurrentStep();
71
- if (currentStep && !currentStep.required) {
72
- this.updateStepIndex(this.currentStepIndex() + 1);
73
- }
74
- }
75
- previousPage() {
76
- if (this.currentStepIndex() > 0) {
77
- this.updateStepIndex(this.currentStepIndex() - 1);
78
- }
79
- }
80
- goToStep(index) {
81
- const currentStep = this.getCurrentStep();
82
- if (currentStep?.required) {
83
- this.notificationService.toastError('Não é possível sair de um passo obrigatório!');
84
- return;
85
- }
86
- else {
87
- this.notificationService.question({
88
- type: 'question',
89
- message: 'Ao sair do passo atual, todas as informações preenchidas serão perdidas. Deseja continuar?',
90
- accept: () => { this.updateStepIndex(index); },
91
- reject: () => { return; }
92
- });
93
- }
94
- }
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvStepsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvStepsComponent, isStandalone: true, selector: "kv-steps", inputs: { steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { emitData: "emitData" }, viewQueries: [{ propertyName: "stepContainer", first: true, predicate: ["stepContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<kv-page-form\r\n [txtBtnSave]=\"steps()[currentStepIndex()]?.textNextButton || ''\"\r\n (onSave)=\"nextPage()\"\r\n iconBtnSave=\"\"\r\n (onCancel)=\"jumpPage()\"\r\n iconBtnCancel=\"\"\r\n [txtBtnCancel]=\"steps()[currentStepIndex()]?.textSkipButton || ''\"\r\n [showBtnCancel]=\"!steps()[currentStepIndex()]?.required || false\"\r\n [txtBtnSecundary]=\"steps()[currentStepIndex()]?.textCancelButton || ''\"\r\n (onClickSecundary)=\"previousPage()\"\r\n [showBtnSecundary]=\"currentStepIndex() > 0\"\r\n iconBtnSecundary=\"\"\r\n>\r\n <div class=\"step-main\">\r\n <div class=\"step-header\">\r\n @for (item of steps(); track $index) {\r\n\r\n <!-- \u00CDTEM DO HEADER -->\r\n <div\r\n class=\"step-header-item {{ currentStepIndex() == $index && 'active' }}\"\r\n (click)=\"goToStep($index)\"\r\n >\r\n <div\r\n class=\"step-header-icon {{\r\n currentStepIndex() == $index && 'active'\r\n }} {{ item.completed && 'completed' }}\"\r\n >\r\n <span class=\"material-symbols-rounded\">{{ item.icon }}</span>\r\n </div>\r\n\r\n <div class=\"step-header-info\">\r\n <div class=\"step-header-step-number\">\r\n Etapa {{ $index + 1 }}/{{ steps().length }}\r\n </div>\r\n <div class=\"step-header-title\">{{ item.title }}</div>\r\n </div>\r\n </div>\r\n\r\n <!-- SEPARATOR -->\r\n @if($index != steps().length - 1) {\r\n <!-- <div class=\"step-header-separator-horizontal {{ currentStepIndex() > $index && 'fill'}}\"></div> -->\r\n <div\r\n class=\"step-header-separator-vertical {{\r\n currentStepIndex() > $index && 'fill'\r\n }}\"\r\n ></div>\r\n } }\r\n </div>\r\n <div class=\"step-content\">\r\n <div class=\"step-container\" #stepContainer></div>\r\n </div>\r\n </div>\r\n</kv-page-form>\r\n", styles: [".step-main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1rem}.step-header-separator-horizontal{position:relative;background-color:#e0e0e0;height:.1rem;width:3rem;overflow:hidden}.step-header-separator-horizontal:before{content:\"\";position:absolute;left:0;top:0;height:100%;width:0%;background-color:#000;transition:width .3s ease-in-out}.step-header-separator-horizontal.fill:before{width:100%}.step-header-separator-vertical{position:relative;background-color:#e0e0e0;width:.1rem;height:2rem;overflow:hidden}.step-header{display:flex;align-items:center;padding:.5rem 1rem;border-radius:.5rem;transition:width 1s ease-in-out;width:auto;gap:.5rem}.step-header .step-header-item{cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.2rem .5rem;border-radius:.5rem;transition:all .5s ease-in-out}.step-header .step-header-item .step-header-info{overflow:hidden;max-width:0;opacity:0;transition:max-width .5s ease-in-out,opacity .5s ease-in-out;white-space:nowrap}.step-header .step-header-item.active .step-header-info{max-width:200px;opacity:1}.step-header .step-header-item .step-header-step-number{font-size:.6rem;font-weight:500;color:rgba(var(--kv-color-text),.8)}.step-header .step-header-item .step-header-title{font-size:1.1rem;font-weight:600;color:rgba(var(--kv-color-system),1)}.step-header .step-header-icon{height:2rem;width:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:rgba(var(--kv-background-card),1);transition:all .5s ease-in-out}.step-header .step-header-icon.active{background-color:rgba(var(--kv-color-system),1);color:rgba(var(--kv-background-card),1)}.step-header .step-header-icon.completed{background-color:#dcfce7;color:#15803d}.step-header .step-header-icon span{font-size:1.25rem}.step-content{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: KvPageFormModule }, { kind: "component", type: i1.KvPageFormComponent, selector: "kv-page-form", inputs: ["formGroup", "TituloForm", "SubTituloForm", "isSaveLoading", "popup", "locationUseComponent", "iconBtnCancel", "showBtnCancel", "txtBtnCancel", "actionsCancelToogle", "iconBtnCancelToogle", "showBtnCancelToogle", "txtBtnCancelToogle", "iconBtnSave", "showBtnSave", "txtBtnSave", "disableBtnSave", "actionsSaveToogle", "iconBtnSaveToogle", "showBtnSaveToogle", "txtBtnSaveToogle", "iconBtnSecundary", "showBtnSecundary", "txtBtnSecundary", "colorBtnSecundary", "actionsToogle", "iconBtnToogle", "showBtnToogle", "txtBtnToogle", "classBtnToogle", "disableBtnSair", "showMessageCamposObrigatorios"], outputs: ["onSave", "onCancel", "onClickSecundary"] }] }); }
97
- }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvStepsComponent, decorators: [{
99
- type: Component,
100
- args: [{ selector: 'kv-steps', standalone: true, imports: [KvPageFormModule], template: "<kv-page-form\r\n [txtBtnSave]=\"steps()[currentStepIndex()]?.textNextButton || ''\"\r\n (onSave)=\"nextPage()\"\r\n iconBtnSave=\"\"\r\n (onCancel)=\"jumpPage()\"\r\n iconBtnCancel=\"\"\r\n [txtBtnCancel]=\"steps()[currentStepIndex()]?.textSkipButton || ''\"\r\n [showBtnCancel]=\"!steps()[currentStepIndex()]?.required || false\"\r\n [txtBtnSecundary]=\"steps()[currentStepIndex()]?.textCancelButton || ''\"\r\n (onClickSecundary)=\"previousPage()\"\r\n [showBtnSecundary]=\"currentStepIndex() > 0\"\r\n iconBtnSecundary=\"\"\r\n>\r\n <div class=\"step-main\">\r\n <div class=\"step-header\">\r\n @for (item of steps(); track $index) {\r\n\r\n <!-- \u00CDTEM DO HEADER -->\r\n <div\r\n class=\"step-header-item {{ currentStepIndex() == $index && 'active' }}\"\r\n (click)=\"goToStep($index)\"\r\n >\r\n <div\r\n class=\"step-header-icon {{\r\n currentStepIndex() == $index && 'active'\r\n }} {{ item.completed && 'completed' }}\"\r\n >\r\n <span class=\"material-symbols-rounded\">{{ item.icon }}</span>\r\n </div>\r\n\r\n <div class=\"step-header-info\">\r\n <div class=\"step-header-step-number\">\r\n Etapa {{ $index + 1 }}/{{ steps().length }}\r\n </div>\r\n <div class=\"step-header-title\">{{ item.title }}</div>\r\n </div>\r\n </div>\r\n\r\n <!-- SEPARATOR -->\r\n @if($index != steps().length - 1) {\r\n <!-- <div class=\"step-header-separator-horizontal {{ currentStepIndex() > $index && 'fill'}}\"></div> -->\r\n <div\r\n class=\"step-header-separator-vertical {{\r\n currentStepIndex() > $index && 'fill'\r\n }}\"\r\n ></div>\r\n } }\r\n </div>\r\n <div class=\"step-content\">\r\n <div class=\"step-container\" #stepContainer></div>\r\n </div>\r\n </div>\r\n</kv-page-form>\r\n", styles: [".step-main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1rem}.step-header-separator-horizontal{position:relative;background-color:#e0e0e0;height:.1rem;width:3rem;overflow:hidden}.step-header-separator-horizontal:before{content:\"\";position:absolute;left:0;top:0;height:100%;width:0%;background-color:#000;transition:width .3s ease-in-out}.step-header-separator-horizontal.fill:before{width:100%}.step-header-separator-vertical{position:relative;background-color:#e0e0e0;width:.1rem;height:2rem;overflow:hidden}.step-header{display:flex;align-items:center;padding:.5rem 1rem;border-radius:.5rem;transition:width 1s ease-in-out;width:auto;gap:.5rem}.step-header .step-header-item{cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.2rem .5rem;border-radius:.5rem;transition:all .5s ease-in-out}.step-header .step-header-item .step-header-info{overflow:hidden;max-width:0;opacity:0;transition:max-width .5s ease-in-out,opacity .5s ease-in-out;white-space:nowrap}.step-header .step-header-item.active .step-header-info{max-width:200px;opacity:1}.step-header .step-header-item .step-header-step-number{font-size:.6rem;font-weight:500;color:rgba(var(--kv-color-text),.8)}.step-header .step-header-item .step-header-title{font-size:1.1rem;font-weight:600;color:rgba(var(--kv-color-system),1)}.step-header .step-header-icon{height:2rem;width:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:rgba(var(--kv-background-card),1);transition:all .5s ease-in-out}.step-header .step-header-icon.active{background-color:rgba(var(--kv-color-system),1);color:rgba(var(--kv-background-card),1)}.step-header .step-header-icon.completed{background-color:#dcfce7;color:#15803d}.step-header .step-header-icon span{font-size:1.25rem}.step-content{width:100%}\n"] }]
101
- }], propDecorators: { stepContainer: [{
102
- type: ViewChild,
103
- args: ['stepContainer', { read: ViewContainerRef }]
104
- }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3Ytc3RlcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytc3RlcHMva3Ytc3RlcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3Ytc3RlcHMva3Ytc3RlcHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFTdkUsTUFBTSxPQUFPLGdCQUFnQjtJQVA3QjtRQVFVLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBSTFELFVBQUssR0FBRyxLQUFLLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBMENyQyxhQUFRLEdBQUcsTUFBTSxFQUFPLENBQUM7S0E2RDFCO0lBckdDLGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVB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QUFDLEtBQWE7UUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRTFDLElBQUksV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsOENBQThDLENBQUMsQ0FBQztZQUNwRixPQUFPO1FBQ1QsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDO2dCQUNoQyxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsT0FBTyxFQUFFLDRGQUE0RjtnQkFDckcsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTSxDQUFDLENBQUM7YUFDekIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUVILENBQUM7OEdBNUdVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHNVQUdTLGdCQUFnQiw2QkNmdEQsczREQXFEQSxxNEREN0NZLGdCQUFnQjs7MkZBSWYsZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsQ0FBQzs4QkFPNkIsYUFBYTtzQkFBcEUsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgS3ZTdGVwIH0gZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvc3RlcC9zdGVwLm1vZGVsJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEt2UGFnZUZvcm1Nb2R1bGUgfSBmcm9tICcuLi9rdi1wYWdlLWZvcm0va3YtcGFnZS1mb3JtLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LXN0ZXBzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtLdlBhZ2VGb3JtTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4va3Ytc3RlcHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1zdGVwcy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2U3RlcHNDb21wb25lbnQge1xyXG4gIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZSA9IGluamVjdChOb3RpZmljYXRpb25TZXJ2aWNlKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc3RlcENvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBzdGVwQ29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgc3RlcHMgPSBpbnB1dDxLdlN0ZXBbXT4oW10pO1xyXG4gIGN1cnJlbnRTdGVwSW5kZXggPSBzaWduYWw8bnVtYmVyPigwKTtcclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuc3RlcHMoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyQ3VycmVudFN0ZXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q3VycmVudFN0ZXAoKTogS3ZTdGVwIHwgbnVsbCB7XHJcbiAgICBjb25zdCBzdGVwc0FycmF5ID0gdGhpcy5zdGVwcygpO1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmN1cnJlbnRTdGVwSW5kZXgoKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHN0ZXBzQXJyYXkubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdGVwc0FycmF5W2luZGV4XTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyQ3VycmVudFN0ZXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjdXJyZW50U3RlcCA9IHRoaXMuZ2V0Q3VycmVudFN0ZXAoKTtcclxuICAgIGlmIChjdXJyZW50U3RlcCAmJiB0aGlzLnN0ZXBDb250YWluZXIpIHtcclxuICAgICAgdGhpcy5yZW5kZXJTdGVwKGN1cnJlbnRTdGVwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyU3RlcChzdGVwOiBLdlN0ZXApOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zdGVwQ29udGFpbmVyKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5zdGVwQ29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICBjb25zdCBjb21wUmVmID0gdGhpcy5zdGVwQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChzdGVwLmNvbXBvbmVudCk7XHJcbiAgICBzdGVwLmluc3RhbmNlID0gY29tcFJlZi5pbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU3RlcEluZGV4KG5ld0luZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0ZXBzQXJyYXkgPSB0aGlzLnN0ZXBzKCk7XHJcbiAgICBpZiAobmV3SW5kZXggPCAwIHx8IG5ld0luZGV4ID49IHN0ZXBzQXJyYXkubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5jdXJyZW50U3RlcEluZGV4LnNldChuZXdJbmRleCk7XHJcbiAgICB0aGlzLnJlbmRlckN1cnJlbnRTdGVwKCk7XHJcbiAgfVxyXG5cclxuICBlbWl0RGF0YSA9IG91dHB1dDxhbnk+KCk7XHJcblxyXG4gIGFzeW5jIG5leHRQYWdlKCkge1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRTdGVwID0gdGhpcy5nZXRDdXJyZW50U3RlcCgpO1xyXG5cclxuICAgIGlmICghY3VycmVudFN0ZXApIHJldHVybjtcclxuXHJcbiAgICBpZiAoY3VycmVudFN0ZXAuaW5zdGFuY2U/LmlzVmFsaWQoKSkge1xyXG5cclxuICAgICAgdGhpcy5lbWl0RGF0YS5lbWl0KGN1cnJlbnRTdGVwPy5pbnN0YW5jZT8uZ2V0RGF0YSgpKTtcclxuXHJcbiAgICAgIC8vYWd1YXJkYXIgbyBzYWx2YW1lbnRvIGRvIHN0ZXAgYXR1YWxcclxuICAgICAgaWYgKGN1cnJlbnRTdGVwLmluc3RhbmNlPy5pc1ZhbGlkKCkpIHtcclxuXHJcbiAgICAgICAgY3VycmVudFN0ZXAuaW5zdGFuY2U/LnNhdmUoKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKCkgPT4geyB9LFxyXG4gICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGVwLmluc3RhbmNlPy5pc0NvbXBsZXRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgY3VycmVudFN0ZXAuY29tcGxldGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVN0ZXBJbmRleCh0aGlzLmN1cnJlbnRTdGVwSW5kZXgoKSArIDEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoJ1ByZWVuY2hhIHRvZG9zIG9zIGNhbXBvcyBvYnJpZ2F0w7NyaW9zIScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAganVtcFBhZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjdXJyZW50U3RlcCA9IHRoaXMuZ2V0Q3VycmVudFN0ZXAoKTtcclxuICAgIGlmIChjdXJyZW50U3RlcCAmJiAhY3VycmVudFN0ZXAucmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGVTdGVwSW5kZXgodGhpcy5jdXJyZW50U3RlcEluZGV4KCkgKyAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByZXZpb3VzUGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwSW5kZXgoKSA+IDApIHtcclxuICAgICAgdGhpcy51cGRhdGVTdGVwSW5kZXgodGhpcy5jdXJyZW50U3RlcEluZGV4KCkgLSAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9TdGVwKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IGN1cnJlbnRTdGVwID0gdGhpcy5nZXRDdXJyZW50U3RlcCgpO1xyXG5cclxuICAgIGlmIChjdXJyZW50U3RlcD8ucmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoJ07Do28gw6kgcG9zc8OtdmVsIHNhaXIgZGUgdW0gcGFzc28gb2JyaWdhdMOzcmlvIScpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnF1ZXN0aW9uKHtcclxuICAgICAgICB0eXBlOiAncXVlc3Rpb24nLFxyXG4gICAgICAgIG1lc3NhZ2U6ICdBbyBzYWlyIGRvIHBhc3NvIGF0dWFsLCB0b2RhcyBhcyBpbmZvcm1hw6fDtWVzIHByZWVuY2hpZGFzIHNlcsOjbyBwZXJkaWRhcy4gRGVzZWphIGNvbnRpbnVhcj8nLFxyXG4gICAgICAgIGFjY2VwdDogKCkgPT4geyB0aGlzLnVwZGF0ZVN0ZXBJbmRleChpbmRleCkgfSxcclxuICAgICAgICByZWplY3Q6ICgpID0+IHsgcmV0dXJuIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG4iLCI8a3YtcGFnZS1mb3JtXHJcbiAgW3R4dEJ0blNhdmVdPVwic3RlcHMoKVtjdXJyZW50U3RlcEluZGV4KCldPy50ZXh0TmV4dEJ1dHRvbiB8fCAnJ1wiXHJcbiAgKG9uU2F2ZSk9XCJuZXh0UGFnZSgpXCJcclxuICBpY29uQnRuU2F2ZT1cIlwiXHJcbiAgKG9uQ2FuY2VsKT1cImp1bXBQYWdlKClcIlxyXG4gIGljb25CdG5DYW5jZWw9XCJcIlxyXG4gIFt0eHRCdG5DYW5jZWxdPVwic3RlcHMoKVtjdXJyZW50U3RlcEluZGV4KCldPy50ZXh0U2tpcEJ1dHRvbiB8fCAnJ1wiXHJcbiAgW3Nob3dCdG5DYW5jZWxdPVwiIXN0ZXBzKClbY3VycmVudFN0ZXBJbmRleCgpXT8ucmVxdWlyZWQgfHwgZmFsc2VcIlxyXG4gIFt0eHRCdG5TZWN1bmRhcnldPVwic3RlcHMoKVtjdXJyZW50U3RlcEluZGV4KCldPy50ZXh0Q2FuY2VsQnV0dG9uIHx8ICcnXCJcclxuICAob25DbGlja1NlY3VuZGFyeSk9XCJwcmV2aW91c1BhZ2UoKVwiXHJcbiAgW3Nob3dCdG5TZWN1bmRhcnldPVwiY3VycmVudFN0ZXBJbmRleCgpID4gMFwiXHJcbiAgaWNvbkJ0blNlY3VuZGFyeT1cIlwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwic3RlcC1tYWluXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1oZWFkZXJcIj5cclxuICAgICAgQGZvciAoaXRlbSBvZiBzdGVwcygpOyB0cmFjayAkaW5kZXgpIHtcclxuXHJcbiAgICAgIDwhLS0gw41URU0gRE8gSEVBREVSIC0tPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJzdGVwLWhlYWRlci1pdGVtIHt7IGN1cnJlbnRTdGVwSW5kZXgoKSA9PSAkaW5kZXggJiYgJ2FjdGl2ZScgfX1cIlxyXG4gICAgICAgIChjbGljayk9XCJnb1RvU3RlcCgkaW5kZXgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwic3RlcC1oZWFkZXItaWNvbiB7e1xyXG4gICAgICAgICAgICBjdXJyZW50U3RlcEluZGV4KCkgPT0gJGluZGV4ICYmICdhY3RpdmUnXHJcbiAgICAgICAgICB9fSB7eyBpdGVtLmNvbXBsZXRlZCAmJiAnY29tcGxldGVkJyB9fVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLXJvdW5kZWRcIj57eyBpdGVtLmljb24gfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLWhlYWRlci1pbmZvXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1oZWFkZXItc3RlcC1udW1iZXJcIj5cclxuICAgICAgICAgICAgRXRhcGEge3sgJGluZGV4ICsgMSB9fS97eyBzdGVwcygpLmxlbmd0aCB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1oZWFkZXItdGl0bGVcIj57eyBpdGVtLnRpdGxlIH19PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBTRVBBUkFUT1IgLS0+XHJcbiAgICAgIEBpZigkaW5kZXggIT0gc3RlcHMoKS5sZW5ndGggLSAxKSB7XHJcbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInN0ZXAtaGVhZGVyLXNlcGFyYXRvci1ob3Jpem9udGFsIHt7IGN1cnJlbnRTdGVwSW5kZXgoKSA+ICRpbmRleCAmJiAnZmlsbCd9fVwiPjwvZGl2PiAtLT5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwic3RlcC1oZWFkZXItc2VwYXJhdG9yLXZlcnRpY2FsIHt7XHJcbiAgICAgICAgICBjdXJyZW50U3RlcEluZGV4KCkgPiAkaW5kZXggJiYgJ2ZpbGwnXHJcbiAgICAgICAgfX1cIlxyXG4gICAgICA+PC9kaXY+XHJcbiAgICAgIH0gfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1jb250ZW50XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLWNvbnRhaW5lclwiICNzdGVwQ29udGFpbmVyPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwva3YtcGFnZS1mb3JtPlxyXG4iXX0=