keevo-components 2.0.36 → 2.0.38

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 (156) hide show
  1. package/esm2022/keevo-components.mjs +5 -0
  2. package/esm2022/lib/api/base-components/base-component-button.mjs +39 -0
  3. package/esm2022/lib/api/base-components/base-component-chart.mjs +104 -0
  4. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +308 -0
  5. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +91 -0
  6. package/esm2022/lib/api/base-components/base-component-crud.mjs +80 -0
  7. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +31 -0
  8. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +238 -0
  9. package/esm2022/lib/api/base-components/base-component-input.mjs +101 -0
  10. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +174 -0
  11. package/esm2022/lib/api/base-components/base-component-table.mjs +354 -0
  12. package/esm2022/lib/api/base-components/base-component.mjs +51 -0
  13. package/esm2022/lib/api/components/chart/chart.config.mjs +2 -0
  14. package/esm2022/lib/api/components/chart/chart.model.mjs +2 -0
  15. package/esm2022/lib/api/components/chart/orchart.config.mjs +2 -0
  16. package/esm2022/lib/api/components/chart/orchartnode.mjs +2 -0
  17. package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +2 -0
  18. package/esm2022/lib/api/components/stepper/kv-stepperpanel.mjs +2 -0
  19. package/esm2022/lib/api/components/table/action-item.mjs +2 -0
  20. package/esm2022/lib/api/components/table/kv-menuitem.mjs +46 -0
  21. package/esm2022/lib/api/components/table/table-dropdown-control.mjs +2 -0
  22. package/esm2022/lib/api/components/table/table.config.column.mjs +2 -0
  23. package/esm2022/lib/api/components/table/table.config.mjs +2 -0
  24. package/esm2022/lib/api/components/table/table.paginate.mjs +10 -0
  25. package/esm2022/lib/api/components/table/tabledit.config.mjs +2 -0
  26. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +2 -0
  27. package/esm2022/lib/api/components/tree-table/tree-table-keys.mjs +2 -0
  28. package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +3 -0
  29. package/esm2022/lib/api/directives/directives.module.mjs +30 -0
  30. package/esm2022/lib/api/directives/drag/drag.directive.mjs +52 -0
  31. package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +31 -0
  32. package/esm2022/lib/api/directives/template/template.directive.mjs +24 -0
  33. package/esm2022/lib/api/helpers/component-providers.mjs +16 -0
  34. package/esm2022/lib/api/helpers/keevo-validators.mjs +144 -0
  35. package/esm2022/lib/api/helpers/translate-primeng.mjs +23 -0
  36. package/esm2022/lib/api/modules/primeng.module.mjs +283 -0
  37. package/esm2022/lib/api/pipes/capitalize.pipe.mjs +47 -0
  38. package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +25 -0
  39. package/esm2022/lib/api/pipes/mask.pipe.mjs +29 -0
  40. package/esm2022/lib/api/pipes/pipes.module.mjs +39 -0
  41. package/esm2022/lib/api/pipes/telefone.pipe.mjs +45 -0
  42. package/esm2022/lib/api/services/base.api.service.mjs +74 -0
  43. package/esm2022/lib/api/services/breadcrumbs.service.mjs +62 -0
  44. package/esm2022/lib/api/services/chat.service.mjs +37 -0
  45. package/esm2022/lib/api/services/component.service.mjs +37 -0
  46. package/esm2022/lib/api/services/docs.service.mjs +129 -0
  47. package/esm2022/lib/api/services/form.service.mjs +95 -0
  48. package/esm2022/lib/api/services/image.cutter.service.mjs +191 -0
  49. package/esm2022/lib/api/services/imagens.service.mjs +28 -0
  50. package/esm2022/lib/api/services/notification.service.mjs +69 -0
  51. package/esm2022/lib/api/services/object.service.mjs +39 -0
  52. package/esm2022/lib/api/services/orgchart.service.mjs +64 -0
  53. package/esm2022/lib/api/types/breadcrumb.model.mjs +2 -0
  54. package/esm2022/lib/components/keevo-components.module.mjs +214 -0
  55. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +133 -0
  56. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +55 -0
  57. package/esm2022/lib/components/kv-button/kv-button.component.mjs +51 -0
  58. package/esm2022/lib/components/kv-button/kv-button.module.mjs +28 -0
  59. package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +25 -0
  60. package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +39 -0
  61. package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +17 -0
  62. package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +17 -0
  63. package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +39 -0
  64. package/esm2022/lib/components/kv-card-selection/kv-card-selection.component.mjs +60 -0
  65. package/esm2022/lib/components/kv-card-selection/kv-card-selection.module.mjs +31 -0
  66. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +34 -0
  67. package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +28 -0
  68. package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +166 -0
  69. package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +32 -0
  70. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.component.mjs +185 -0
  71. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.module.mjs +44 -0
  72. package/esm2022/lib/components/kv-error/kv-error.component.mjs +26 -0
  73. package/esm2022/lib/components/kv-error/kv-error.module.mjs +35 -0
  74. package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +162 -0
  75. package/esm2022/lib/components/kv-file-upload/kv-file-upload.module.mjs +18 -0
  76. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +46 -0
  77. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +20 -0
  78. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.mjs +68 -0
  79. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.mjs +24 -0
  80. package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +29 -0
  81. package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +34 -0
  82. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +26 -0
  83. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.mjs +28 -0
  84. package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +11 -0
  85. package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +19 -0
  86. package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +27 -0
  87. package/esm2022/lib/components/kv-home-card/kv-home-card.module.mjs +32 -0
  88. package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +135 -0
  89. package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +18 -0
  90. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +29 -0
  91. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +102 -0
  92. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +150 -0
  93. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +168 -0
  94. package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +30 -0
  95. package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +59 -0
  96. package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +33 -0
  97. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +38 -0
  98. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +50 -0
  99. package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +43 -0
  100. package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +24 -0
  101. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +131 -0
  102. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +60 -0
  103. package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +60 -0
  104. package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +46 -0
  105. package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +37 -0
  106. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +42 -0
  107. package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +58 -0
  108. package/esm2022/lib/components/kv-label/kv-label.component.mjs +15 -0
  109. package/esm2022/lib/components/kv-label/kv-label.module.mjs +24 -0
  110. package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +28 -0
  111. package/esm2022/lib/components/kv-layout/kv-layout.module.mjs +72 -0
  112. package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +430 -0
  113. package/esm2022/lib/components/kv-layout/top-icons/top-icons.component.mjs +15 -0
  114. package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +16 -0
  115. package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +28 -0
  116. package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +29 -0
  117. package/esm2022/lib/components/kv-login/kv-login.component.mjs +62 -0
  118. package/esm2022/lib/components/kv-login/kv-login.module.mjs +47 -0
  119. package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +98 -0
  120. package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +20 -0
  121. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +225 -0
  122. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +59 -0
  123. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +215 -0
  124. package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +41 -0
  125. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +205 -0
  126. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +51 -0
  127. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +144 -0
  128. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +39 -0
  129. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +62 -0
  130. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +28 -0
  131. package/esm2022/lib/components/kv-report/kv-report.component.mjs +44 -0
  132. package/esm2022/lib/components/kv-report/kv-report.module.mjs +24 -0
  133. package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +74 -0
  134. package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +47 -0
  135. package/esm2022/lib/components/kv-table/kv-table.component.mjs +673 -0
  136. package/esm2022/lib/components/kv-table/kv-table.module.mjs +40 -0
  137. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +323 -0
  138. package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +45 -0
  139. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +516 -0
  140. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +40 -0
  141. package/esm2022/lib/components/kv-tag/kv-tag.component.mjs +18 -0
  142. package/esm2022/lib/components/kv-tag/kv-tag.module.mjs +24 -0
  143. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +331 -0
  144. package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +39 -0
  145. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +70 -0
  146. package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +28 -0
  147. package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +40 -0
  148. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +68 -0
  149. package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +22 -0
  150. package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +78 -0
  151. package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +87 -0
  152. package/esm2022/public-api.mjs +261 -0
  153. package/fesm2022/keevo-components.mjs +5 -5
  154. package/fesm2022/keevo-components.mjs.map +1 -1
  155. package/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.d.ts +2 -0
  156. package/package.json +3 -1
@@ -0,0 +1,191 @@
1
+ import { Component, Injectable, signal } from '@angular/core';
2
+ import { DialogModule } from 'primeng/dialog';
3
+ import { ImageCropperComponent } from 'ngx-image-cropper';
4
+ // ? Componente de modal usado no cutter
5
+ import { CommonModule } from '@angular/common';
6
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import { KvLabelModule } from '../../components/kv-label/kv-label.module';
8
+ import { FormService } from './form.service';
9
+ import { KvModalModule } from '../../components/kv-modal/kv-modal.module';
10
+ import { KvButtonModule } from '../../components/kv-button/kv-button.module';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "primeng/dynamicdialog";
13
+ import * as i2 from "../../components/kv-button/kv-button.component";
14
+ export class ImageCutterService {
15
+ constructor(dialogservice) {
16
+ this.dialogservice = dialogservice;
17
+ }
18
+ cut(imageBase64, width, height, indCircle = false, avatar) {
19
+ const cutConfig = { imageBase64, width, height, indCircle };
20
+ this.abrirModal(cutConfig, avatar);
21
+ return new Promise((resolve, reject) => {
22
+ window.addEventListener('cropImage', (event) => {
23
+ if (event.detail.status == true) {
24
+ resolve(event.detail.result);
25
+ }
26
+ else {
27
+ reject('Operacao cancelada.');
28
+ }
29
+ });
30
+ });
31
+ }
32
+ abrirModal(cutConfig, avatar) {
33
+ let quality = 100;
34
+ if (avatar) {
35
+ quality = 80;
36
+ }
37
+ const params = {
38
+ closable: true,
39
+ maximizable: false,
40
+ popup: true,
41
+ width: '75vw',
42
+ header: `Cortar`,
43
+ id: { imagem: cutConfig.imageBase64, width: cutConfig.width, height: cutConfig.height, indCircle: cutConfig.indCircle, quality: quality },
44
+ styleClass: 'modal',
45
+ };
46
+ const dialogRef = FormService.openDialog(this.dialogservice, SimpleComponent, () => { }, params);
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ImageCutterService, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
49
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ImageCutterService, providedIn: 'root' }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ImageCutterService, decorators: [{
52
+ type: Injectable,
53
+ args: [{ providedIn: 'root' }]
54
+ }], ctorParameters: () => [{ type: i1.DialogService }] });
55
+ class SimpleComponent {
56
+ constructor(dynamicDialogRef, dialogService, dynamicDialogConfig) {
57
+ this.dynamicDialogRef = dynamicDialogRef;
58
+ this.dialogService = dialogService;
59
+ this.dynamicDialogConfig = dynamicDialogConfig;
60
+ this.imageChangedEvent = null;
61
+ this.croppedImage = '';
62
+ this.quality = this.dynamicDialogConfig.data.id.quality;
63
+ //#region Variáveis de controle
64
+ this._variaviesDialog = signal(null);
65
+ this.aspectRatio = signal(1 / 1);
66
+ }
67
+ fileChangeEvent(event) {
68
+ this.imageChangedEvent = event;
69
+ }
70
+ imageCropped(event) {
71
+ this.croppedImage = event.base64;
72
+ }
73
+ imageLoaded(image) { }
74
+ cropperReady() { }
75
+ loadImageFailed() { }
76
+ //#endregion
77
+ ngAfterContentInit() {
78
+ this.recuperarVariaviesDialog();
79
+ this.recuperaInstanciaDialog();
80
+ this.setAspectRatio();
81
+ }
82
+ setAspectRatio(width = this._variaviesDialog()?.width, height = this._variaviesDialog()?.height) {
83
+ const gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));
84
+ const divisor = gcd(width, height);
85
+ const aspectWidth = width / divisor;
86
+ const aspectHeight = height / divisor;
87
+ this.aspectRatio.set(aspectWidth / aspectHeight);
88
+ }
89
+ //#region Métodos de recuperação de dados
90
+ recuperaInstanciaDialog() {
91
+ const arr = this.dialogService.dialogComponentRefMap;
92
+ const entries = arr.entries();
93
+ const firstEntry = entries.next().value;
94
+ const [firstKey, firstValue] = firstEntry;
95
+ const instance = this.dialogService.getInstance(firstKey);
96
+ this.dialogInstance = instance;
97
+ return instance;
98
+ }
99
+ recuperarVariaviesDialog() {
100
+ this._variaviesDialog.set(this.recuperaInstanciaDialog().data.id);
101
+ }
102
+ //#endregion
103
+ //#region Métodos de corte e fechamento do modal
104
+ cropImage() {
105
+ window.dispatchEvent(new CustomEvent('cropImage', { detail: {
106
+ result: this.croppedImage,
107
+ status: true
108
+ } }));
109
+ this.closeCropModal();
110
+ }
111
+ closeCropModal() {
112
+ this.dialogInstance.close();
113
+ }
114
+ cancel() {
115
+ window.dispatchEvent(new CustomEvent('cropImage', { detail: {
116
+ result: Promise.resolve('cancel'),
117
+ status: false
118
+ } }));
119
+ this.closeCropModal();
120
+ }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SimpleComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i1.DialogService }, { token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: SimpleComponent, isStandalone: true, selector: "app-simple-component", ngImport: i0, template: `
123
+ <div class="modal-content">
124
+
125
+ <image-cropper
126
+ [imageBase64]="_variaviesDialog()?.imagem"
127
+ (imageCropped)="imageCropped($event)"
128
+ [aspectRatio]="aspectRatio()"
129
+ (imageLoaded)="imageLoaded($event)"
130
+ (cropperReady)="cropperReady()"
131
+ (loadImageFailed)="loadImageFailed()"
132
+ [roundCropper]="this._variaviesDialog()?.indCircle"
133
+ [maintainAspectRatio]="true"
134
+ [imageQuality]="quality"
135
+ format="jpeg"
136
+ output='base64'
137
+ alignImage="center"
138
+ />
139
+
140
+
141
+ </div>
142
+ <div class="button-container">
143
+ <kv-button label="Cancelar" severity="tertiary" icon="close" (click)="cancel()"></kv-button>
144
+ <kv-button label="Recortar" severity="primary" icon="crop" (click)="cropImage()" class="ml-2"></kv-button>
145
+ </div>
146
+
147
+
148
+
149
+ `, isInline: true, styles: ["img{border-style:solid;border-width:2px;border-radius:50%;object-fit:cover}i{font-size:22px}.botao-alterar-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-alterar-foto i{color:#fff}.botao-excluir-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-excluir-foto i{color:#fff}.btn{position:absolute;top:87%;left:87%;transform:translate(-50%,-50%)}.image-container{display:inline-block;position:relative}.modal-content{height:60vh;position:relative;background-color:#fefefe;margin:1% auto;padding:20px;width:80%;max-width:fit-content;text-align:center;border-radius:12px;display:flex;align-items:center;justify-content:center}.crop-container{display:flex;justify-content:center;align-items:center}.crop-canvas{border:1px solid #d1d5db;border-radius:12px;width:100%;height:auto}.crop-border{position:absolute;border:2px dashed #9ca3af;pointer-events:none}.zoom-container{padding-top:20px;padding-bottom:20px}.button-container{display:flex;align-items:center;justify-content:flex-end;flex-direction:row;margin-top:24px;position:fixed;bottom:0;background:#fff;width:90%;padding:15px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DialogModule }, { kind: "ngmodule", type: KvModalModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: KvButtonModule }, { kind: "component", type: i2.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "iconPosition", "label", "disabled", "items", "popup"], outputs: ["iconChange", "onClick"] }, { kind: "ngmodule", type: KvLabelModule }, { kind: "component", type: ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "imageAltText", "options", "cropperFrameAriaLabel", "output", "format", "autoCrop", "cropper", "transform", "maintainAspectRatio", "aspectRatio", "resetCropOnAspectRatioChange", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "checkImageType", "alignImage", "disabled", "hidden"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange", "cropperChange"] }] }); }
150
+ }
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: SimpleComponent, decorators: [{
152
+ type: Component,
153
+ args: [{ selector: 'app-simple-component', template: `
154
+ <div class="modal-content">
155
+
156
+ <image-cropper
157
+ [imageBase64]="_variaviesDialog()?.imagem"
158
+ (imageCropped)="imageCropped($event)"
159
+ [aspectRatio]="aspectRatio()"
160
+ (imageLoaded)="imageLoaded($event)"
161
+ (cropperReady)="cropperReady()"
162
+ (loadImageFailed)="loadImageFailed()"
163
+ [roundCropper]="this._variaviesDialog()?.indCircle"
164
+ [maintainAspectRatio]="true"
165
+ [imageQuality]="quality"
166
+ format="jpeg"
167
+ output='base64'
168
+ alignImage="center"
169
+ />
170
+
171
+
172
+ </div>
173
+ <div class="button-container">
174
+ <kv-button label="Cancelar" severity="tertiary" icon="close" (click)="cancel()"></kv-button>
175
+ <kv-button label="Recortar" severity="primary" icon="crop" (click)="cropImage()" class="ml-2"></kv-button>
176
+ </div>
177
+
178
+
179
+
180
+ `, standalone: true, imports: [
181
+ CommonModule,
182
+ DialogModule,
183
+ KvModalModule,
184
+ FormsModule,
185
+ ReactiveFormsModule,
186
+ KvButtonModule,
187
+ KvLabelModule,
188
+ ImageCropperComponent
189
+ ], styles: ["img{border-style:solid;border-width:2px;border-radius:50%;object-fit:cover}i{font-size:22px}.botao-alterar-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-alterar-foto i{color:#fff}.botao-excluir-foto{border-style:none;width:max-content;background-color:#002542;color:#000;font-weight:700;cursor:pointer;padding:7px 9px}.botao-excluir-foto i{color:#fff}.btn{position:absolute;top:87%;left:87%;transform:translate(-50%,-50%)}.image-container{display:inline-block;position:relative}.modal-content{height:60vh;position:relative;background-color:#fefefe;margin:1% auto;padding:20px;width:80%;max-width:fit-content;text-align:center;border-radius:12px;display:flex;align-items:center;justify-content:center}.crop-container{display:flex;justify-content:center;align-items:center}.crop-canvas{border:1px solid #d1d5db;border-radius:12px;width:100%;height:auto}.crop-border{position:absolute;border:2px dashed #9ca3af;pointer-events:none}.zoom-container{padding-top:20px;padding-bottom:20px}.button-container{display:flex;align-items:center;justify-content:flex-end;flex-direction:row;margin-top:24px;position:fixed;bottom:0;background:#fff;width:90%;padding:15px}\n"] }]
190
+ }], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i1.DialogService }, { type: i1.DynamicDialogConfig }] });
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY3V0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL2ltYWdlLmN1dHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBcUIscUJBQXFCLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQTBDMUYsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7O0FBN0M3RSxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFlBQTZCLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUcsQ0FBQztJQUU3RCxHQUFHLENBQUMsV0FBbUIsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLFlBQXFCLEtBQUssRUFBRSxNQUFnQjtRQUNsRyxNQUFNLFNBQVMsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRW5D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R1osZ0RBQWdEO0lBQ2hELFNBQVM7UUFDRCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRTtnQkFDMUQsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUN6QixNQUFNLEVBQUUsSUFBSTthQUNiLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUM7Z0JBQ3pELE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDakMsTUFBTSxFQUFFLEtBQUs7YUFDZCxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRU4sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7OEdBakZHLGVBQWU7a0dBQWYsZUFBZSxnRkFySlQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVCxreUNBK0dDLFlBQVksOEJBQ1osWUFBWSw4QkFDWixhQUFhLDhCQUNiLFdBQVcsOEJBQ1gsbUJBQW1CLDhCQUNuQixjQUFjLHlRQUNkLGFBQWEsK0JBQ2IscUJBQXFCOzsyRkFJbkIsZUFBZTtrQkF2SnBCLFNBQVM7K0JBQ0Usc0JBQXNCLFlBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsY0E2R1csSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IscUJBQXFCO3FCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ0NvbXBvbmVudCwgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcclxuaW1wb3J0IHsgSW1hZ2VDcm9wcGVkRXZlbnQsIEltYWdlQ3JvcHBlckNvbXBvbmVudCwgTG9hZGVkSW1hZ2UgfSBmcm9tICduZ3gtaW1hZ2UtY3JvcHBlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuZXhwb3J0IGNsYXNzIEltYWdlQ3V0dGVyU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nc2VydmljZTogRGlhbG9nU2VydmljZSkge31cclxuXHJcbiAgY3V0KGltYWdlQmFzZTY0OiBzdHJpbmcsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBpbmRDaXJjbGU6IGJvb2xlYW4gPSBmYWxzZSwgYXZhdGFyPzogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBjdXRDb25maWcgPSB7IGltYWdlQmFzZTY0LCB3aWR0aCwgaGVpZ2h0LCBpbmRDaXJjbGUgfTtcclxuICAgIHRoaXMuYWJyaXJNb2RhbChjdXRDb25maWcsIGF2YXRhcik7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY3JvcEltYWdlJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICBpZihldmVudC5kZXRhaWwuc3RhdHVzID09IHRydWUgKSB7XHJcbiAgICAgICAgICByZXNvbHZlKGV2ZW50LmRldGFpbC5yZXN1bHQpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgcmVqZWN0KCdPcGVyYWNhbyBjYW5jZWxhZGEuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWJyaXJNb2RhbChjdXRDb25maWc6IHsgaW1hZ2VCYXNlNjQ6IHN0cmluZywgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIGluZENpcmNsZTogYm9vbGVhbiB9LCBhdmF0YXI/OiBib29sZWFuKSB7XHJcbiAgICBsZXQgcXVhbGl0eSA9IDEwMFxyXG4gICAgaWYoYXZhdGFyKSB7XHJcbiAgICAgIHF1YWxpdHkgPSA4MFxyXG4gICAgfVxyXG4gICAgY29uc3QgcGFyYW1zID0gICAgICAge1xyXG4gICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgbWF4aW1pemFibGU6IGZhbHNlLFxyXG4gICAgICBwb3B1cDogdHJ1ZSxcclxuICAgICAgd2lkdGg6ICc3NXZ3JyxcclxuICAgICAgaGVhZGVyOiBgQ29ydGFyYCAsXHJcbiAgICAgIGlkOiB7IGltYWdlbTogY3V0Q29uZmlnLmltYWdlQmFzZTY0LCB3aWR0aDogY3V0Q29uZmlnLndpZHRoLCBoZWlnaHQ6IGN1dENvbmZpZy5oZWlnaHQsIGluZENpcmNsZTogY3V0Q29uZmlnLmluZENpcmNsZSwgcXVhbGl0eTogcXVhbGl0eSB9LFxyXG4gICAgICBzdHlsZUNsYXNzOiAnbW9kYWwnLFxyXG4gICAgfVxyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBEeW5hbWljRGlhbG9nUmVmID0gRm9ybVNlcnZpY2Uub3BlbkRpYWxvZyh0aGlzLmRpYWxvZ3NlcnZpY2UsIFNpbXBsZUNvbXBvbmVudCwgKCk9Pnt9LCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4vLyA/IENvbXBvbmVudGUgZGUgbW9kYWwgdXNhZG8gbm8gY3V0dGVyXHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBLdkxhYmVsTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9rdi1sYWJlbC9rdi1sYWJlbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4vZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS3ZNb2RhbE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMva3YtbW9kYWwva3YtbW9kYWwubW9kdWxlJztcclxuaW1wb3J0IHsgS3ZCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2t2LWJ1dHRvbi9rdi1idXR0b24ubW9kdWxlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zaW1wbGUtY29tcG9uZW50JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG5cclxuICAgICAgICAgIDxpbWFnZS1jcm9wcGVyXHJcbiAgICAgICAgICAgIFtpbWFnZUJhc2U2NF09XCJfdmFyaWF2aWVzRGlhbG9nKCk/LmltYWdlbVwiXHJcbiAgICAgICAgICAgIChpbWFnZUNyb3BwZWQpPVwiaW1hZ2VDcm9wcGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICBbYXNwZWN0UmF0aW9dPVwiYXNwZWN0UmF0aW8oKVwiXHJcbiAgICAgICAgICAgIChpbWFnZUxvYWRlZCk9XCJpbWFnZUxvYWRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGNyb3BwZXJSZWFkeSk9XCJjcm9wcGVyUmVhZHkoKVwiXHJcbiAgICAgICAgICAgIChsb2FkSW1hZ2VGYWlsZWQpPVwibG9hZEltYWdlRmFpbGVkKClcIlxyXG4gICAgICAgICAgICBbcm91bmRDcm9wcGVyXT1cInRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5pbmRDaXJjbGVcIlxyXG4gICAgICAgICAgICBbbWFpbnRhaW5Bc3BlY3RSYXRpb109XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2ltYWdlUXVhbGl0eV09XCJxdWFsaXR5XCJcclxuICAgICAgICAgICAgZm9ybWF0PVwianBlZ1wiXHJcbiAgICAgICAgICAgIG91dHB1dD0nYmFzZTY0J1xyXG4gICAgICAgICAgICBhbGlnbkltYWdlPVwiY2VudGVyXCJcclxuICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxrdi1idXR0b24gbGFiZWw9XCJDYW5jZWxhclwiIHNldmVyaXR5PVwidGVydGlhcnlcIiBpY29uPVwiY2xvc2VcIiAoY2xpY2spPVwiY2FuY2VsKClcIj48L2t2LWJ1dHRvbj5cclxuICAgICAgICAgIDxrdi1idXR0b24gbGFiZWw9XCJSZWNvcnRhclwiIHNldmVyaXR5PVwicHJpbWFyeVwiIGljb249XCJjcm9wXCIgKGNsaWNrKT1cImNyb3BJbWFnZSgpXCIgY2xhc3M9XCJtbC0yXCI+PC9rdi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgYm9yZGVyLXdpZHRoOiAycHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGkge1xyXG4gICAgICBmb250LXNpemU6IDIycHg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5ib3Rhby1hbHRlcmFyLWZvdG8ge1xyXG4gICAgICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbiAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMjU0MjtcclxuICAgICAgY29sb3I6IGJsYWNrO1xyXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBwYWRkaW5nOiA3cHggOXB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuYm90YW8tYWx0ZXJhci1mb3RvIGkge1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmJvdGFvLWV4Y2x1aXItZm90byB7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcclxuICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAyNTQyO1xyXG4gICAgICBjb2xvcjogYmxhY2s7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIHBhZGRpbmc6IDdweCA5cHg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5ib3Rhby1leGNsdWlyLWZvdG8gaSB7XHJcbiAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuYnRuIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDg3JTtcclxuICAgICAgbGVmdDogODclO1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmltYWdlLWNvbnRhaW5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubW9kYWwtY29udGVudCB7XHJcbiAgICAgIGhlaWdodDogNjB2aDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xyXG4gICAgICBtYXJnaW46IDElIGF1dG87XHJcbiAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgIHdpZHRoOiA4MCU7XHJcbiAgICAgIG1heC13aWR0aDogZml0LWNvbnRlbnQ7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5jcm9wLWNvbnRhaW5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY3JvcC1jYW52YXMge1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkNWRiO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY3JvcC1ib3JkZXIge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjOWNhM2FmO1xyXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLnpvb20tY29udGFpbmVyIHtcclxuICAgICAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuYnV0dG9uLWNvbnRhaW5lciB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgIG1hcmdpbi10b3A6IDI0cHg7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICAgIHdpZHRoOiA5MCU7XHJcbiAgICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFxyXG4gICAgXHJcbiAgICAgIGBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRGlhbG9nTW9kdWxlLFxyXG4gICAgS3ZNb2RhbE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEt2QnV0dG9uTW9kdWxlLFxyXG4gICAgS3ZMYWJlbE1vZHVsZSxcclxuICAgIEltYWdlQ3JvcHBlckNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuXHJcbmNsYXNzIFNpbXBsZUNvbXBvbmVudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZHluYW1pY0RpYWxvZ1JlZjogRHluYW1pY0RpYWxvZ1JlZiwgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLCBwcml2YXRlIGR5bmFtaWNEaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcpIHt9XHJcbiAgaW1hZ2VDaGFuZ2VkRXZlbnQ6IEV2ZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgY3JvcHBlZEltYWdlOiBTYWZlVXJsICA9ICcnO1xyXG4gIFxyXG4gIHF1YWxpdHk6IG51bWJlciA9IHRoaXMuZHluYW1pY0RpYWxvZ0NvbmZpZy5kYXRhLmlkLnF1YWxpdHk7XHJcbiAgICBcclxuICAgIGZpbGVDaGFuZ2VFdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgdGhpcy5pbWFnZUNoYW5nZWRFdmVudCA9IGV2ZW50O1xyXG4gICAgfVxyXG4gICAgaW1hZ2VDcm9wcGVkKGV2ZW50OiBJbWFnZUNyb3BwZWRFdmVudCkge1xyXG4gICAgICB0aGlzLmNyb3BwZWRJbWFnZSA9IGV2ZW50LmJhc2U2NCE7XHJcbiAgICB9XHJcbiAgICBpbWFnZUxvYWRlZChpbWFnZTogTG9hZGVkSW1hZ2UpIHt9XHJcbiAgICBjcm9wcGVyUmVhZHkoKSB7fVxyXG4gICAgbG9hZEltYWdlRmFpbGVkKCkge31cclxuXHJcblxyXG5cclxuICAvLyNyZWdpb24gVmFyacOhdmVpcyBkZSBjb250cm9sZVxyXG4gICAgX3Zhcmlhdmllc0RpYWxvZyA9IHNpZ25hbDx7IGltYWdlbTogc3RyaW5nLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgaW5kQ2lyY2xlOiBib29sZWFuIH18bnVsbD4obnVsbClcclxuICAgIHByaXZhdGUgZGlhbG9nSW5zdGFuY2UhOkR5bmFtaWNEaWFsb2dDb21wb25lbnQ7XHJcbiAgICBhc3BlY3RSYXRpbyA9IHNpZ25hbDxhbnk+KDEvMSlcclxuICAvLyNlbmRyZWdpb25cclxuXHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVjdXBlcmFyVmFyaWF2aWVzRGlhbG9nKClcclxuICAgIHRoaXMucmVjdXBlcmFJbnN0YW5jaWFEaWFsb2coKVxyXG4gICAgdGhpcy5zZXRBc3BlY3RSYXRpbygpXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHNldEFzcGVjdFJhdGlvKHdpZHRoOiBudW1iZXIgPSB0aGlzLl92YXJpYXZpZXNEaWFsb2coKT8ud2lkdGghLCBoZWlnaHQ6IG51bWJlciA9IHRoaXMuX3Zhcmlhdmllc0RpYWxvZygpPy5oZWlnaHQhKSB7XHJcbiAgICBjb25zdCBnY2QgPSAoYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIgPT4gKGIgPT09IDAgPyBhIDogZ2NkKGIsIGEgJSBiKSk7XHJcbiAgICBjb25zdCBkaXZpc29yID0gZ2NkKHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgY29uc3QgYXNwZWN0V2lkdGggPSB3aWR0aCAvIGRpdmlzb3I7XHJcbiAgICBjb25zdCBhc3BlY3RIZWlnaHQgPSBoZWlnaHQgLyBkaXZpc29yO1xyXG4gICAgdGhpcy5hc3BlY3RSYXRpby5zZXQoYXNwZWN0V2lkdGgvYXNwZWN0SGVpZ2h0KVxyXG5cclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBNw6l0b2RvcyBkZSByZWN1cGVyYcOnw6NvIGRlIGRhZG9zXHJcbiAgcmVjdXBlcmFJbnN0YW5jaWFEaWFsb2coKTogRHluYW1pY0RpYWxvZ0NvbXBvbmVudCB7XHJcbiAgICBjb25zdCBhcnI6IE1hcDxEeW5hbWljRGlhbG9nUmVmPGFueT4sIENvbXBvbmVudFJlZjxhbnk+PiA9IHRoaXMuZGlhbG9nU2VydmljZS5kaWFsb2dDb21wb25lbnRSZWZNYXBcclxuICAgIGNvbnN0IGVudHJpZXMgPSBhcnIuZW50cmllcygpO1xyXG4gICAgY29uc3QgZmlyc3RFbnRyeSA9IGVudHJpZXMubmV4dCgpLnZhbHVlO1xyXG4gICAgY29uc3QgW2ZpcnN0S2V5LCBmaXJzdFZhbHVlXSA9IGZpcnN0RW50cnkhO1xyXG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZ2V0SW5zdGFuY2UoZmlyc3RLZXkpXHJcbiAgICB0aGlzLmRpYWxvZ0luc3RhbmNlID0gaW5zdGFuY2VcclxuICAgIHJldHVybiBpbnN0YW5jZVxyXG4gIH1cclxuXHJcbiAgcmVjdXBlcmFyVmFyaWF2aWVzRGlhbG9nKCk6IHZvaWR7XHJcbiAgICB0aGlzLl92YXJpYXZpZXNEaWFsb2cuc2V0KHRoaXMucmVjdXBlcmFJbnN0YW5jaWFEaWFsb2coKS5kYXRhLmlkKVxyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcblxyXG4gIC8vI3JlZ2lvbiBNw6l0b2RvcyBkZSBjb3J0ZSBlIGZlY2hhbWVudG8gZG8gbW9kYWxcclxuICBjcm9wSW1hZ2UoKSB7XHJcbiAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ2Nyb3BJbWFnZScsIHsgZGV0YWlsOiB7XHJcbiAgICAgICAgICAgIHJlc3VsdDogdGhpcy5jcm9wcGVkSW1hZ2UsXHJcbiAgICAgICAgICAgIHN0YXR1czogdHJ1ZVxyXG4gICAgICAgICAgfSB9KSk7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlQ3JvcE1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZUNyb3BNb2RhbCgpIHtcclxuICAgIHRoaXMuZGlhbG9nSW5zdGFuY2UuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpe1xyXG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdjcm9wSW1hZ2UnLCB7IGRldGFpbDp7XHJcbiAgICAgIHJlc3VsdDogUHJvbWlzZS5yZXNvbHZlKCdjYW5jZWwnKSxcclxuICAgICAgc3RhdHVzOiBmYWxzZVxyXG4gICAgfSB9KSk7XHJcblxyXG4gICAgdGhpcy5jbG9zZUNyb3BNb2RhbCgpXHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxufVxyXG4iXX0=