keevo-components 2.0.296 → 2.0.297

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 (181) hide show
  1. package/esm2022/lib/api/base-components/base-component-button.mjs +4 -4
  2. package/esm2022/lib/api/base-components/base-component-chart.mjs +4 -4
  3. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +4 -4
  4. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +4 -4
  5. package/esm2022/lib/api/base-components/base-component-crud.mjs +4 -4
  6. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +4 -4
  7. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +4 -4
  8. package/esm2022/lib/api/base-components/base-component-input.mjs +4 -4
  9. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +4 -4
  10. package/esm2022/lib/api/base-components/base-component-table.mjs +4 -4
  11. package/esm2022/lib/api/base-components/base-component.mjs +4 -4
  12. package/esm2022/lib/api/directives/directives.module.mjs +5 -5
  13. package/esm2022/lib/api/directives/drag/drag.directive.mjs +4 -4
  14. package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +4 -4
  15. package/esm2022/lib/api/directives/template/template.directive.mjs +4 -4
  16. package/esm2022/lib/api/modules/primeng.module.mjs +5 -5
  17. package/esm2022/lib/api/pipes/capitalize.pipe.mjs +4 -4
  18. package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +4 -4
  19. package/esm2022/lib/api/pipes/mask.pipe.mjs +4 -4
  20. package/esm2022/lib/api/pipes/pipes.module.mjs +5 -5
  21. package/esm2022/lib/api/pipes/telefone.pipe.mjs +4 -4
  22. package/esm2022/lib/api/services/base.api.service.mjs +4 -4
  23. package/esm2022/lib/api/services/breadcrumbs.service.mjs +4 -4
  24. package/esm2022/lib/api/services/chat.service.mjs +4 -4
  25. package/esm2022/lib/api/services/component.service.mjs +4 -4
  26. package/esm2022/lib/api/services/docs.service.mjs +4 -4
  27. package/esm2022/lib/api/services/form.service.mjs +4 -4
  28. package/esm2022/lib/api/services/image.cutter.service.mjs +7 -7
  29. package/esm2022/lib/api/services/imagens.service.mjs +4 -4
  30. package/esm2022/lib/api/services/notification.service.mjs +4 -4
  31. package/esm2022/lib/api/services/object.service.mjs +4 -4
  32. package/esm2022/lib/api/services/orgchart.service.mjs +4 -4
  33. package/esm2022/lib/api/services/pdf.service.mjs +4 -4
  34. package/esm2022/lib/components/keevo-components.module.mjs +5 -5
  35. package/esm2022/lib/components/kv-accordion/kv-accordion.component.mjs +4 -4
  36. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +5 -5
  37. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +5 -5
  38. package/esm2022/lib/components/kv-button/kv-button.component.mjs +5 -5
  39. package/esm2022/lib/components/kv-button/kv-button.module.mjs +5 -5
  40. package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +4 -4
  41. package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +5 -5
  42. package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +4 -4
  43. package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +4 -4
  44. package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +5 -5
  45. package/esm2022/lib/components/kv-card-color/kv-card-color.component.mjs +4 -4
  46. package/esm2022/lib/components/kv-card-message/kv-card-message.component.mjs +4 -4
  47. package/esm2022/lib/components/kv-card-selection/kv-card-selection.component.mjs +4 -4
  48. package/esm2022/lib/components/kv-card-selection/kv-card-selection.module.mjs +5 -5
  49. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +4 -4
  50. package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +5 -5
  51. package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +5 -5
  52. package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +5 -5
  53. package/esm2022/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.mjs +4 -4
  54. package/esm2022/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.mjs +5 -5
  55. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.component.mjs +4 -4
  56. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.module.mjs +5 -5
  57. package/esm2022/lib/components/kv-detailed-list/kv-detailed-list.component.mjs +4 -4
  58. package/esm2022/lib/components/kv-error/kv-error.component.mjs +4 -4
  59. package/esm2022/lib/components/kv-error/kv-error.module.mjs +5 -5
  60. package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +4 -4
  61. package/esm2022/lib/components/kv-file-upload/kv-file-upload.module.mjs +5 -5
  62. package/esm2022/lib/components/kv-file-upload-new/kv-file-upload-new.component.mjs +4 -4
  63. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +4 -4
  64. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +5 -5
  65. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.mjs +4 -4
  66. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.mjs +5 -5
  67. package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +4 -4
  68. package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +5 -5
  69. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.component.mjs +4 -4
  70. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.module.mjs +5 -5
  71. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.pipe.mjs +4 -4
  72. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +4 -4
  73. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.mjs +5 -5
  74. package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +4 -4
  75. package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +5 -5
  76. package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +4 -4
  77. package/esm2022/lib/components/kv-home-card/kv-home-card.module.mjs +5 -5
  78. package/esm2022/lib/components/kv-icon/kv-icon.component.mjs +5 -5
  79. package/esm2022/lib/components/kv-icon/kv-icon.module.mjs +5 -5
  80. package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +4 -4
  81. package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +5 -5
  82. package/esm2022/lib/components/kv-image-upload-new/kv-image-upload-new.component.mjs +4 -4
  83. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +5 -5
  84. package/esm2022/lib/components/kv-inputs/kv-chips/kv-chips.component.mjs +4 -4
  85. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +5 -5
  86. package/esm2022/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.mjs +4 -4
  87. package/esm2022/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.mjs +4 -4
  88. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +33 -9
  89. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.mjs +31 -5
  90. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.mjs +5 -5
  91. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.mjs +4 -4
  92. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.mjs +22 -7
  93. package/esm2022/lib/components/kv-inputs/kv-editor/types/kv-editor.types.mjs +1 -1
  94. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +5 -5
  95. package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +5 -5
  96. package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +5 -5
  97. package/esm2022/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.mjs +5 -5
  98. package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +5 -5
  99. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +5 -5
  100. package/esm2022/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.mjs +5 -5
  101. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +5 -5
  102. package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +5 -5
  103. package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +5 -5
  104. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +5 -5
  105. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +5 -5
  106. package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +5 -5
  107. package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +4 -4
  108. package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +4 -4
  109. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +5 -5
  110. package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +5 -5
  111. package/esm2022/lib/components/kv-instruction-page/components/cards-instruction/kv-cards-instruction.component.mjs +4 -4
  112. package/esm2022/lib/components/kv-instruction-page/kv-instruction-page.component.mjs +4 -4
  113. package/esm2022/lib/components/kv-kanban/kv-kanban.component.mjs +4 -4
  114. package/esm2022/lib/components/kv-label/kv-label.component.mjs +4 -4
  115. package/esm2022/lib/components/kv-label/kv-label.module.mjs +5 -5
  116. package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +4 -4
  117. package/esm2022/lib/components/kv-layout/kv-layout.module.mjs +5 -5
  118. package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +5 -5
  119. package/esm2022/lib/components/kv-layout/top-icons/top-icons.component.mjs +4 -4
  120. package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +4 -4
  121. package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +5 -5
  122. package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +4 -4
  123. package/esm2022/lib/components/kv-login/kv-login.component.mjs +4 -4
  124. package/esm2022/lib/components/kv-login/kv-login.module.mjs +5 -5
  125. package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +4 -4
  126. package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +5 -5
  127. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +4 -4
  128. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +5 -5
  129. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +4 -4
  130. package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +5 -5
  131. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +5 -5
  132. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +5 -5
  133. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +5 -5
  134. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +5 -5
  135. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +4 -4
  136. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +5 -5
  137. package/esm2022/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.mjs +4 -4
  138. package/esm2022/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.mjs +5 -5
  139. package/esm2022/lib/components/kv-progress-bar-new/kv-progress-bar-new.component.mjs +4 -4
  140. package/esm2022/lib/components/kv-report/kv-report.component.mjs +4 -4
  141. package/esm2022/lib/components/kv-report/kv-report.module.mjs +5 -5
  142. package/esm2022/lib/components/kv-select-cards/kv-select-cards.component.mjs +4 -4
  143. package/esm2022/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.mjs +4 -4
  144. package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +5 -5
  145. package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +5 -5
  146. package/esm2022/lib/components/kv-steps/kv-steps.component.mjs +4 -4
  147. package/esm2022/lib/components/kv-table/kv-table.component.mjs +5 -5
  148. package/esm2022/lib/components/kv-table/kv-table.module.mjs +5 -5
  149. package/esm2022/lib/components/kv-table-draggable/kv-table-draggable.component.mjs +4 -4
  150. package/esm2022/lib/components/kv-table-draggable/kv-table-draggable.module.mjs +5 -5
  151. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +4 -4
  152. package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +5 -5
  153. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +4 -4
  154. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +5 -5
  155. package/esm2022/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.mjs +4 -4
  156. package/esm2022/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.mjs +4 -4
  157. package/esm2022/lib/components/kv-table-viewer/kv-table-viewer.component.mjs +4 -4
  158. package/esm2022/lib/components/kv-tag/kv-tag.component.mjs +4 -4
  159. package/esm2022/lib/components/kv-tag/kv-tag.module.mjs +5 -5
  160. package/esm2022/lib/components/kv-tags/kv-tags.component.mjs +4 -4
  161. package/esm2022/lib/components/kv-tags/kv-tags.module.mjs +5 -5
  162. package/esm2022/lib/components/kv-timeline/kv-timeline.component.mjs +4 -4
  163. package/esm2022/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.mjs +4 -4
  164. package/esm2022/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.mjs +4 -4
  165. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +4 -4
  166. package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +5 -5
  167. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +4 -4
  168. package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +5 -5
  169. package/esm2022/lib/components/kv-widget-card/kv-widget-card.component.mjs +5 -5
  170. package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +4 -4
  171. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +5 -5
  172. package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +4 -4
  173. package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +4 -4
  174. package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +4 -4
  175. package/fesm2022/keevo-components.mjs +671 -606
  176. package/fesm2022/keevo-components.mjs.map +1 -1
  177. package/lib/components/kv-inputs/kv-editor/kv-editor.component.d.ts +1 -0
  178. package/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.d.ts +4 -0
  179. package/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.d.ts +4 -0
  180. package/lib/components/kv-inputs/kv-editor/types/kv-editor.types.d.ts +4 -2
  181. package/package.json +1 -1
@@ -156,10 +156,10 @@ export class KvFileUploadComponent {
156
156
  }
157
157
  return types.slice(0, -2); // Remove a última vírgula e espaço
158
158
  }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFileUploadComponent, selector: "kv-file-upload", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: false, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: false, isRequired: false, transformFunction: null }, widthComponent: { classPropertyName: "widthComponent", publicName: "widthComponent", isSignal: false, isRequired: false, transformFunction: null }, heightComponent: { classPropertyName: "heightComponent", publicName: "heightComponent", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, validFileTypes: { classPropertyName: "validFileTypes", publicName: "validFileTypes", isSignal: false, isRequired: false, transformFunction: null }, tamanhoMaximoPermitido: { classPropertyName: "tamanhoMaximoPermitido", publicName: "tamanhoMaximoPermitido", isSignal: false, isRequired: false, transformFunction: null }, includeOfficeTypes: { classPropertyName: "includeOfficeTypes", publicName: "includeOfficeTypes", isSignal: false, isRequired: false, transformFunction: null }, maxSizeFile: { classPropertyName: "maxSizeFile", publicName: "maxSizeFile", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileEmit: "fileEmit", removeFileEmit: "removeFileEmit" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }], ngImport: i0, template: "<div\r\n *ngIf=\"formGroup\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup &&\r\n formControlName &&\r\n formGroup.controls[formControlName].invalid &&\r\n formGroup.controls[formControlName].touched\r\n }\"\r\n class=\"border-dashed border-2 border-round-lg border-gray-400 flex justify-content-end relative p-2\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [style.minWidth]=\"'20rem'\"\r\n [style.minHeight]=\"'10rem'\"\r\n [style.width]=\"widthComponent\"\r\n [style.height]=\"heightComponent\"\r\n>\r\n @if(formGroup && formControlName && formGroup.controls[formControlName].value)\r\n {\r\n <button\r\n style=\"background-color: transparent\"\r\n pButton\r\n (click)=\"deleteFile()\"\r\n class=\"absolute transition-colors transition-duration-500 text-red-700 hover:text-red-500 m-1 h-2rem w-2rem\"\r\n [text]=\"true\"\r\n [icon]=\"'pi pi-trash'\"\r\n ></button>\r\n }\r\n <div\r\n class=\"col-12 flex flex-column align-items-center justify-content-center\"\r\n >\r\n <div\r\n class=\"w-full align-items-center justify-content-center col-12\"\r\n style=\"cursor: pointer\"\r\n [style.display]=\"formGroup.controls[formControlName].value ? 'none' : 'flex'\"\r\n (click)=\"fileInput.click()\"\r\n >\r\n <input\r\n type=\"file\"\r\n (change)=\"onFileSelected($event)\"\r\n #fileInput\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n @if(formGroup && formControlName &&\r\n !formGroup.controls[formControlName].value) {\r\n <div class=\"flex flex-column align-items-center justify-content-center\">\r\n <!-- @if(tamanhoMaximoPermitido) {\r\n <p class=\"w-full text-start\">Tamanho maximo permitido ( {{tamanhoMaximoPermitido}} )*</p>\r\n } -->\r\n <span\r\n class=\"material-symbols-outlined mt-2 text-gray-700\"\r\n style=\"font-size: 2.5rem\"\r\n >\r\n cloud_upload\r\n </span>\r\n\r\n @if(description) {\r\n <span class=\"font-medium text-center text-sm text-gray-600\">\r\n {{ description }}\r\n </span>\r\n } @else {\r\n <span class=\"font-medium text-center text-sm text-gray-600\">\r\n Arraste e solte o arquivo aqui, ou<br />clique para selecion\u00E1-lo\r\n </span>\r\n }\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n @if(formGroup && formControlName && formGroup.controls[formControlName].value) {\r\n <div class=\"flex flex-column justify-content-between h-full w-full\">\r\n <div class=\"col-9 p-0 pt-1\">\r\n <kv-progress-bar\r\n [value]=\"\r\n progressValue()(formGroup.controls[formControlName].value?.size)\r\n \"\r\n [showValue]=\"false\"\r\n [barStyleClass]=\"\r\n progressValue()(formGroup.controls[formControlName].value?.size) ==\r\n 100\r\n ? 'bg-red-400'\r\n : ''\r\n \"\r\n [label]=\"\r\n returnProgressLabel()(\r\n formGroup.controls[formControlName].value?.size\r\n )\r\n \"\r\n ></kv-progress-bar>\r\n\r\n @if(progressValue()(formGroup.controls[formControlName].value?.size) ==\r\n 100) {\r\n <span class=\"text-red-600 text-xs\">Tamanho m\u00E1ximo excedido.</span>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-column gap-2\">\r\n <span class=\"font-medium text-gray-600 text-xs\"\r\n >Arquivo Selecionado:</span\r\n >\r\n\r\n <div class=\"flex flex-row justify-content-between\">\r\n <span class=\"text-gray-600 text-xs\">{{\r\n formGroup.controls[formControlName].value?.name\r\n }}</span>\r\n <span\r\n class=\"\r\n {{\r\n progressValue()(\r\n formGroup.controls[formControlName].value?.size\r\n ) == 100\r\n ? 'text-red-600'\r\n : 'text-green-600'\r\n }} \r\n text-xs\"\r\n >{{\r\n formatBytes(formGroup.controls[formControlName].value?.size)\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n@if (formGroup && formControlName && formGroup.controls[formControlName].invalid\r\n&& formGroup.controls[formControlName].touched) {\r\n<p class=\"error-message\">Campo obrigat\u00F3rio</p>\r\n}\r\n", styles: [".invalid-border{border:2px dashed red!important}.error-message{color:#ff0e0e;font-size:12px!important;margin-top:.1rem}.teste{background-color:red!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ProgressBarComponent, selector: "kv-progress-bar", inputs: ["value", "maxValue", "label", "showValue", "showLabel", "styleClass", "labelStyleClass", "barStyleClass", "style", "unit", "mode", "color"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileUploadComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: KvFileUploadComponent, selector: "kv-file-upload", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: false, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: false, isRequired: false, transformFunction: null }, widthComponent: { classPropertyName: "widthComponent", publicName: "widthComponent", isSignal: false, isRequired: false, transformFunction: null }, heightComponent: { classPropertyName: "heightComponent", publicName: "heightComponent", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, validFileTypes: { classPropertyName: "validFileTypes", publicName: "validFileTypes", isSignal: false, isRequired: false, transformFunction: null }, tamanhoMaximoPermitido: { classPropertyName: "tamanhoMaximoPermitido", publicName: "tamanhoMaximoPermitido", isSignal: false, isRequired: false, transformFunction: null }, includeOfficeTypes: { classPropertyName: "includeOfficeTypes", publicName: "includeOfficeTypes", isSignal: false, isRequired: false, transformFunction: null }, maxSizeFile: { classPropertyName: "maxSizeFile", publicName: "maxSizeFile", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileEmit: "fileEmit", removeFileEmit: "removeFileEmit" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }], ngImport: i0, template: "<div\r\n *ngIf=\"formGroup\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup &&\r\n formControlName &&\r\n formGroup.controls[formControlName].invalid &&\r\n formGroup.controls[formControlName].touched\r\n }\"\r\n class=\"border-dashed border-2 border-round-lg border-gray-400 flex justify-content-end relative p-2\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [style.minWidth]=\"'20rem'\"\r\n [style.minHeight]=\"'10rem'\"\r\n [style.width]=\"widthComponent\"\r\n [style.height]=\"heightComponent\"\r\n>\r\n @if(formGroup && formControlName && formGroup.controls[formControlName].value)\r\n {\r\n <button\r\n style=\"background-color: transparent\"\r\n pButton\r\n (click)=\"deleteFile()\"\r\n class=\"absolute transition-colors transition-duration-500 text-red-700 hover:text-red-500 m-1 h-2rem w-2rem\"\r\n [text]=\"true\"\r\n [icon]=\"'pi pi-trash'\"\r\n ></button>\r\n }\r\n <div\r\n class=\"col-12 flex flex-column align-items-center justify-content-center\"\r\n >\r\n <div\r\n class=\"w-full align-items-center justify-content-center col-12\"\r\n style=\"cursor: pointer\"\r\n [style.display]=\"formGroup.controls[formControlName].value ? 'none' : 'flex'\"\r\n (click)=\"fileInput.click()\"\r\n >\r\n <input\r\n type=\"file\"\r\n (change)=\"onFileSelected($event)\"\r\n #fileInput\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n @if(formGroup && formControlName &&\r\n !formGroup.controls[formControlName].value) {\r\n <div class=\"flex flex-column align-items-center justify-content-center\">\r\n <!-- @if(tamanhoMaximoPermitido) {\r\n <p class=\"w-full text-start\">Tamanho maximo permitido ( {{tamanhoMaximoPermitido}} )*</p>\r\n } -->\r\n <span\r\n class=\"material-symbols-outlined mt-2 text-gray-700\"\r\n style=\"font-size: 2.5rem\"\r\n >\r\n cloud_upload\r\n </span>\r\n\r\n @if(description) {\r\n <span class=\"font-medium text-center text-sm text-gray-600\">\r\n {{ description }}\r\n </span>\r\n } @else {\r\n <span class=\"font-medium text-center text-sm text-gray-600\">\r\n Arraste e solte o arquivo aqui, ou<br />clique para selecion\u00E1-lo\r\n </span>\r\n }\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n @if(formGroup && formControlName && formGroup.controls[formControlName].value) {\r\n <div class=\"flex flex-column justify-content-between h-full w-full\">\r\n <div class=\"col-9 p-0 pt-1\">\r\n <kv-progress-bar\r\n [value]=\"\r\n progressValue()(formGroup.controls[formControlName].value?.size)\r\n \"\r\n [showValue]=\"false\"\r\n [barStyleClass]=\"\r\n progressValue()(formGroup.controls[formControlName].value?.size) ==\r\n 100\r\n ? 'bg-red-400'\r\n : ''\r\n \"\r\n [label]=\"\r\n returnProgressLabel()(\r\n formGroup.controls[formControlName].value?.size\r\n )\r\n \"\r\n ></kv-progress-bar>\r\n\r\n @if(progressValue()(formGroup.controls[formControlName].value?.size) ==\r\n 100) {\r\n <span class=\"text-red-600 text-xs\">Tamanho m\u00E1ximo excedido.</span>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-column gap-2\">\r\n <span class=\"font-medium text-gray-600 text-xs\"\r\n >Arquivo Selecionado:</span\r\n >\r\n\r\n <div class=\"flex flex-row justify-content-between\">\r\n <span class=\"text-gray-600 text-xs\">{{\r\n formGroup.controls[formControlName].value?.name\r\n }}</span>\r\n <span\r\n class=\"\r\n {{\r\n progressValue()(\r\n formGroup.controls[formControlName].value?.size\r\n ) == 100\r\n ? 'text-red-600'\r\n : 'text-green-600'\r\n }} \r\n text-xs\"\r\n >{{\r\n formatBytes(formGroup.controls[formControlName].value?.size)\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n@if (formGroup && formControlName && formGroup.controls[formControlName].invalid\r\n&& formGroup.controls[formControlName].touched) {\r\n<p class=\"error-message\">Campo obrigat\u00F3rio</p>\r\n}\r\n", styles: [".invalid-border{border:2px dashed red!important}.error-message{color:#ff0e0e;font-size:12px!important;margin-top:.1rem}.teste{background-color:red!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ProgressBarComponent, selector: "kv-progress-bar", inputs: ["value", "maxValue", "label", "showValue", "showLabel", "styleClass", "labelStyleClass", "barStyleClass", "style", "unit", "mode", "color"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
161
161
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadComponent, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileUploadComponent, decorators: [{
163
163
  type: Component,
164
164
  args: [{ selector: 'kv-file-upload', template: "<div\r\n *ngIf=\"formGroup\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup &&\r\n formControlName &&\r\n formGroup.controls[formControlName].invalid &&\r\n formGroup.controls[formControlName].touched\r\n }\"\r\n class=\"border-dashed border-2 border-round-lg border-gray-400 flex justify-content-end relative p-2\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [style.minWidth]=\"'20rem'\"\r\n [style.minHeight]=\"'10rem'\"\r\n [style.width]=\"widthComponent\"\r\n [style.height]=\"heightComponent\"\r\n>\r\n @if(formGroup && formControlName && formGroup.controls[formControlName].value)\r\n {\r\n <button\r\n style=\"background-color: transparent\"\r\n pButton\r\n (click)=\"deleteFile()\"\r\n class=\"absolute transition-colors transition-duration-500 text-red-700 hover:text-red-500 m-1 h-2rem w-2rem\"\r\n [text]=\"true\"\r\n [icon]=\"'pi pi-trash'\"\r\n ></button>\r\n }\r\n <div\r\n class=\"col-12 flex flex-column align-items-center justify-content-center\"\r\n >\r\n <div\r\n class=\"w-full align-items-center justify-content-center col-12\"\r\n style=\"cursor: pointer\"\r\n [style.display]=\"formGroup.controls[formControlName].value ? 'none' : 'flex'\"\r\n (click)=\"fileInput.click()\"\r\n >\r\n <input\r\n type=\"file\"\r\n (change)=\"onFileSelected($event)\"\r\n #fileInput\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n @if(formGroup && formControlName &&\r\n !formGroup.controls[formControlName].value) {\r\n <div class=\"flex flex-column align-items-center justify-content-center\">\r\n <!-- @if(tamanhoMaximoPermitido) {\r\n <p class=\"w-full text-start\">Tamanho maximo permitido ( {{tamanhoMaximoPermitido}} )*</p>\r\n } -->\r\n <span\r\n class=\"material-symbols-outlined mt-2 text-gray-700\"\r\n style=\"font-size: 2.5rem\"\r\n >\r\n cloud_upload\r\n </span>\r\n\r\n @if(description) {\r\n <span class=\"font-medium text-center text-sm text-gray-600\">\r\n {{ description }}\r\n </span>\r\n } @else {\r\n <span class=\"font-medium text-center text-sm text-gray-600\">\r\n Arraste e solte o arquivo aqui, ou<br />clique para selecion\u00E1-lo\r\n </span>\r\n }\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n @if(formGroup && formControlName && formGroup.controls[formControlName].value) {\r\n <div class=\"flex flex-column justify-content-between h-full w-full\">\r\n <div class=\"col-9 p-0 pt-1\">\r\n <kv-progress-bar\r\n [value]=\"\r\n progressValue()(formGroup.controls[formControlName].value?.size)\r\n \"\r\n [showValue]=\"false\"\r\n [barStyleClass]=\"\r\n progressValue()(formGroup.controls[formControlName].value?.size) ==\r\n 100\r\n ? 'bg-red-400'\r\n : ''\r\n \"\r\n [label]=\"\r\n returnProgressLabel()(\r\n formGroup.controls[formControlName].value?.size\r\n )\r\n \"\r\n ></kv-progress-bar>\r\n\r\n @if(progressValue()(formGroup.controls[formControlName].value?.size) ==\r\n 100) {\r\n <span class=\"text-red-600 text-xs\">Tamanho m\u00E1ximo excedido.</span>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-column gap-2\">\r\n <span class=\"font-medium text-gray-600 text-xs\"\r\n >Arquivo Selecionado:</span\r\n >\r\n\r\n <div class=\"flex flex-row justify-content-between\">\r\n <span class=\"text-gray-600 text-xs\">{{\r\n formGroup.controls[formControlName].value?.name\r\n }}</span>\r\n <span\r\n class=\"\r\n {{\r\n progressValue()(\r\n formGroup.controls[formControlName].value?.size\r\n ) == 100\r\n ? 'text-red-600'\r\n : 'text-green-600'\r\n }} \r\n text-xs\"\r\n >{{\r\n formatBytes(formGroup.controls[formControlName].value?.size)\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n@if (formGroup && formControlName && formGroup.controls[formControlName].invalid\r\n&& formGroup.controls[formControlName].touched) {\r\n<p class=\"error-message\">Campo obrigat\u00F3rio</p>\r\n}\r\n", styles: [".invalid-border{border:2px dashed red!important}.error-message{color:#ff0e0e;font-size:12px!important;margin-top:.1rem}.teste{background-color:red!important}\n"] }]
165
165
  }], ctorParameters: () => [{ type: i1.NotificationService }], propDecorators: { formGroup: [{
@@ -189,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
189
189
  type: ViewChild,
190
190
  args: ['inputUpload']
191
191
  }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQva3YtZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQva3YtZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZILE1BQU0sT0FBTyxxQkFBcUI7SUFrQmhDLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBZm5ELG1CQUFjLEdBQVcsT0FBTyxDQUFDO1FBQ2pDLG9CQUFlLEdBQVcsTUFBTSxDQUFDO1FBRWpDLG1CQUFjLEdBQWEsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNuSCwyQkFBc0IsR0FBVyxFQUFFLENBQUM7UUFDcEMsdUJBQWtCLEdBQVksS0FBSyxDQUFDLENBQUMsZ0RBQWdEO1FBRTlGLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXJCLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBOENqRSxrREFBa0Q7UUFDbEQsaURBQWlEO1FBQ2pELHFCQUFxQjtRQUNyQixNQUFNO1FBRU4sMENBQTBDO1FBRTFDLHdD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O3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUlJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFFaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNJLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIGlucHV0LCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWZpbGUtdXBsb2FkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RmlsZVVwbG9hZENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSB3aWR0aENvbXBvbmVudDogc3RyaW5nID0gJzQwMHB4JztcclxuICBASW5wdXQoKSBoZWlnaHRDb21wb25lbnQ6IHN0cmluZyA9ICdhdXRvJztcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbiE6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWxpZEZpbGVUeXBlczogc3RyaW5nW10gPSBbJ2ltYWdlLycsICdhcHBsaWNhdGlvbi9wZGYnLCAndGV4dC9odG1sJywgJ3RleHQveG1sJywgJ2FwcGxpY2F0aW9uL3htbCcsICd0ZXh0L3BsYWluJ107XHJcbiAgQElucHV0KCkgdGFtYW5ob01heGltb1Blcm1pdGlkbzogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaW5jbHVkZU9mZmljZVR5cGVzOiBib29sZWFuID0gZmFsc2U7IC8vIFByb3ByaWVkYWRlIHBhcmEgY29udHJvbGFyIG9zIHRpcG9zIGRlIE9mZmljZVxyXG5cclxuICBtYXhTaXplRmlsZSA9IGlucHV0PG51bWJlcj4oMTApXHJcblxyXG4gIEBPdXRwdXQoKSBmaWxlRW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlbW92ZUZpbGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dFVwbG9hZCcpIGlucHV0VXBsb2FkITogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7IH1cclxuXHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgbGV0IHZhbGlkVHlwZXMgPSBbLi4udGhpcy52YWxpZEZpbGVUeXBlc107XHJcblxyXG4gICAgaWYgKHRoaXMuaW5jbHVkZU9mZmljZVR5cGVzKSB7XHJcblxyXG4gICAgICB2YWxpZFR5cGVzLnB1c2goXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL21zd29yZCcsIC8vIC5kb2NcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLCAvLyAuZG9jeFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsIC8vIC5wcHRcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicgLy8gLnBwdHhcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgaXNWYWxpZEZpbGVUeXBlID0gdmFsaWRUeXBlcy5zb21lKHR5cGUgPT4gZXZlbnQudGFyZ2V0LmZpbGVzWzBdLnR5cGUuc3RhcnRzV2l0aCh0eXBlKSB8fFxyXG4gICAgICAodHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3htbCcgJiYgZXZlbnQudGFyZ2V0LmZpbGVzWzBdLnR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnKSB8fFxyXG4gICAgICAodHlwZSA9PT0gJ3RleHQveG1sJyAmJiBldmVudC50YXJnZXQuZmlsZXNbMF0udHlwZSA9PT0gJ3RleHQveG1sJylcclxuICAgICk7XHJcbiAgICBcclxuICAgIGlmICghaXNWYWxpZEZpbGVUeXBlKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdEVycm9yKCdUaXBvIGRlIGFycXVpdm8gaW52w6FsaWRvJyk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgXHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnOyBcclxuICAgICAgXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZvcm1Db250cm9sTmFtZV0uc2V0VmFsdWUoZXZlbnQudGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgIHRoaXMuZmlsZUVtaXQuZW1pdChldmVudC50YXJnZXQuZmlsZXNbMF0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmlsZSgpIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIHRoaXMucmVtb3ZlRmlsZUVtaXQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gcmV0dXJuTWJTaXplID0gY29tcHV0ZWQoKCkgPT4gKGJ5dGVzOiBhbnkpID0+IHtcclxuICAvLyAgIGlmIChieXRlcyA9PT0gbnVsbCB8fCBieXRlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgLy8gICAgIHJldHVybiAnMCBNQic7XHJcbiAgLy8gICB9XHJcblxyXG4gIC8vICAgY29uc3QgbWJTaXplID0gYnl0ZXMgLyAoMTAyNCAqIDEwMjQpO1xyXG4gICAgXHJcbiAgLy8gICByZXR1cm4gdGhpcy5mb3JtYXRCeXRlcyhtYlNpemUsIDIpO1xyXG4gIC8vIH0pO1xyXG5cclxuICBwcm9ncmVzc1ZhbHVlID0gY29tcHV0ZWQoKCkgPT4gKGJ5dGVzOiBhbnkpID0+IHtcclxuICAgIGlmIChieXRlcyA9PT0gbnVsbCB8fCBieXRlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1iU2l6ZSA9IGJ5dGVzIC8gKDEwMjQgKiAxMDI0KTtcclxuICAgIGxldCBwcm9ncmVzc1ZhbHVlID0gKE51bWJlcihtYlNpemUpIC8gdGhpcy5tYXhTaXplRmlsZSgpKSAqIDEwMDtcclxuXHJcbiAgICAvLyBMaW1pdGEgbyB2YWxvciBkbyBwcm9ncmVzc28gZW50cmUgMCBlIDEwMFxyXG4gICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KHByb2dyZXNzVmFsdWUsIDApLCAxMDApO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm5Qcm9ncmVzc0xhYmVsID0gY29tcHV0ZWQoKCkgPT4gKGJ5dGVzOiBhbnkpID0+IHtcclxuICAgIGlmIChieXRlcyA9PT0gbnVsbCB8fCBieXRlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAnMCBNQic7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWJTaXplID0gYnl0ZXMgLyAoMTAyNCAqIDEwMjQpO1xyXG4gICAgLy8gbGV0IHByb2dyZXNzVmFsdWUgPSAoTnVtYmVyKG1iU2l6ZSkgLyB0aGlzLm1heFNpemVGaWxlKCkpICogMTAwO1xyXG4gICAgLy8gdGhpcy5wcm9ncmVzc1ZhbHVlLnNldChwcm9ncmVzc1ZhbHVlKTtcclxuICAgIC8vIHRoaXMucHJvZ3Jlc3NWYWx1ZS5zZXQoKG1iU2l6ZSAvIHRoaXMubWF4U2l6ZUZpbGUoKSkqMTAwKTtcclxuICAgIHJldHVybiBgJHttYlNpemUudG9GaXhlZCgyKX0vJHt0aGlzLm1heFNpemVGaWxlKCl9IE1CYDtcclxuICB9KVxyXG5cclxuICBmb3JtYXRCeXRlcyhieXRlczogYW55LCBkZWNpbWFscyA9IDIpIHtcclxuICAgIGlmICghYnl0ZXMpIHtcclxuICAgICAgcmV0dXJuIFwiMCBCeXRlc1wiO1xyXG4gICAgfVxyXG4gICAgY29uc3QgayA9IDEwMjQ7XHJcbiAgICBjb25zdCBkbSA9IGRlY2ltYWxzIDw9IDAgPyAwIDogZGVjaW1hbHM7XHJcbiAgICBjb25zdCBzaXplcyA9IFtcIkJ5dGVzXCIsIFwiS0JcIiwgXCJNQlwiLCBcIkdCXCIsIFwiVEJcIiwgXCJQQlwiLCBcIkVCXCIsIFwiWkJcIiwgXCJZQlwiXTtcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKGRtKSkgKyBcIiBcIiArIHNpemVzW2ldO1xyXG4gIH1cclxuXHJcbiAgYWRkRHJhZ092ZXJDbGFzcyhldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZHJhZ292ZXInKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWdvdmVyJyk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGaWxlKGZpbGU6IEZpbGUpIHtcclxuXHJcbiAgICBpZiAodGhpcy5pbmNsdWRlT2ZmaWNlVHlwZXMpIHtcclxuICAgICAgbGV0IHZhbGlkVHlwZXMgPSBbLi4udGhpcy52YWxpZEZpbGVUeXBlc107XHJcblxyXG4gICAgICB2YWxpZFR5cGVzLnB1c2goXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL21zd29yZCcsIC8vIC5kb2NcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLCAvLyAuZG9jeFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsIC8vIC5wcHRcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicgLy8gLnBwdHhcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpc1ZhbGlkRmlsZVR5cGUgPSB0aGlzLnZhbGlkRmlsZVR5cGVzLnNvbWUodHlwZSA9PlxyXG4gICAgICBmaWxlLnR5cGUuc3RhcnRzV2l0aCh0eXBlKSB8fFxyXG4gICAgICBmaWxlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnIHx8XHJcbiAgICAgIGZpbGUudHlwZSA9PT0gJ3RleHQveG1sJ1xyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoIWlzVmFsaWRGaWxlVHlwZSkge1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UudG9hc3RFcnJvcignVGlwbyBkZSBhcnF1aXZvIGludsOhbGlkbycpO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZvcm1Db250cm9sTmFtZV0uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZvcm1Db250cm9sTmFtZV0uc2V0VmFsdWUoZmlsZSk7XHJcblxyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgICBpZiAoZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSB7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgfSBlbHNlIGlmIChmaWxlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnIHx8IGZpbGUudHlwZSA9PT0gJ3RleHQveG1sJykge1xyXG4gICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbGVFbWl0LmVtaXQoZmlsZSk7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuYWRkRHJhZ092ZXJDbGFzcyhldmVudCk7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMucmVtb3ZlRHJhZ092ZXJDbGFzcyhldmVudCk7XHJcblxyXG4gICAgaWYgKGV2ZW50LmRhdGFUcmFuc2ZlciAmJiBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmhhbmRsZUZpbGUoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEFjY2VwdCgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHR5cGVzID0gJydcclxuXHJcbiAgICB0aGlzLnZhbGlkRmlsZVR5cGVzLmZvckVhY2godHlwZSA9PiB7XHJcbiAgICAgIGlmICh0eXBlLmluY2x1ZGVzKCdpbWFnZScpKSB0eXBlcyArPSAnLmpwZywgLnBuZywgLmJtcCwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ2h0bWwnKSkgdHlwZXMgKz0gJy5odG1sLCAnO1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygncGRmJykpIHR5cGVzICs9ICcucGRmLCAnO1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygneG1sJykpIHR5cGVzICs9ICcueG1sLCAnO1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygncGxhaW4nKSkgdHlwZXMgKz0gJy50eHQsICc7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBBZGljaW9uYSB0aXBvcyBkZSBhcnF1aXZvcyBkbyBPZmZpY2Ugc2UgaW5jbHVkZU9mZmljZVR5cGVzIGZvciB0cnVlXHJcbiAgICBpZiAodGhpcy5pbmNsdWRlT2ZmaWNlVHlwZXMpIHtcclxuICAgICAgdHlwZXMgKz0gJy5kb2MsIC5kb2N4LCAucHB0LCAucHB0eCwgJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHlwZXMuc2xpY2UoMCwgLTIpOyAvLyBSZW1vdmUgYSDDumx0aW1hIHbDrXJndWxhIGUgZXNwYcOnb1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgKm5nSWY9XCJmb3JtR3JvdXBcIlxyXG4gIFtuZ0NsYXNzXT1cIntcclxuICAgICdpbnZhbGlkLWJvcmRlcic6XHJcbiAgICAgIGZvcm1Hcm91cCAmJlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWUgJiZcclxuICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0uaW52YWxpZCAmJlxyXG4gICAgICBmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS50b3VjaGVkXHJcbiAgfVwiXHJcbiAgY2xhc3M9XCJib3JkZXItZGFzaGVkIGJvcmRlci0yIGJvcmRlci1yb3VuZC1sZyBib3JkZXItZ3JheS00MDAgZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIHJlbGF0aXZlIHAtMlwiXHJcbiAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXHJcbiAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXHJcbiAgW3N0eWxlLm1pbldpZHRoXT1cIicyMHJlbSdcIlxyXG4gIFtzdHlsZS5taW5IZWlnaHRdPVwiJzEwcmVtJ1wiXHJcbiAgW3N0eWxlLndpZHRoXT1cIndpZHRoQ29tcG9uZW50XCJcclxuICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodENvbXBvbmVudFwiXHJcbj5cclxuICBAaWYoZm9ybUdyb3VwICYmIGZvcm1Db250cm9sTmFtZSAmJiBmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS52YWx1ZSlcclxuICB7XHJcbiAgPGJ1dHRvblxyXG4gICAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFwiXHJcbiAgICBwQnV0dG9uXHJcbiAgICAoY2xpY2spPVwiZGVsZXRlRmlsZSgpXCJcclxuICAgIGNsYXNzPVwiYWJzb2x1dGUgdHJhbnNpdGlvbi1jb2xvcnMgdHJhbnNpdGlvbi1kdXJhdGlvbi01MDAgdGV4dC1yZWQtNzAwIGhvdmVyOnRleHQtcmVkLTUwMCBtLTEgaC0ycmVtIHctMnJlbVwiXHJcbiAgICBbdGV4dF09XCJ0cnVlXCJcclxuICAgIFtpY29uXT1cIidwaSBwaS10cmFzaCdcIlxyXG4gID48L2J1dHRvbj5cclxuICB9XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJjb2wtMTIgZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInctZnVsbCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBjb2wtMTJcIlxyXG4gICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXHJcbiAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlID8gJ25vbmUnIDogJ2ZsZXgnXCJcclxuICAgICAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCJcclxuICAgID5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgI2ZpbGVJbnB1dFxyXG4gICAgICAgIFthY2NlcHRdPVwic2V0QWNjZXB0KClcIlxyXG4gICAgICAgIGhpZGRlblxyXG4gICAgICAvPlxyXG5cclxuICAgICAgQGlmKGZvcm1Hcm91cCAmJiBmb3JtQ29udHJvbE5hbWUgJiZcclxuICAgICAgIWZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgPCEtLSBAaWYodGFtYW5ob01heGltb1Blcm1pdGlkbykge1xyXG4gICAgICAgICAgICA8cCBjbGFzcz1cInctZnVsbCB0ZXh0LXN0YXJ0XCI+VGFtYW5obyBtYXhpbW8gcGVybWl0aWRvICgge3t0YW1hbmhvTWF4aW1vUGVybWl0aWRvfX0gKSo8L3A+XHJcbiAgICAgICAgICB9IC0tPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbXQtMiB0ZXh0LWdyYXktNzAwXCJcclxuICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAyLjVyZW1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIGNsb3VkX3VwbG9hZFxyXG4gICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgQGlmKGRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWNlbnRlciB0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgIHt7IGRlc2NyaXB0aW9uIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+XHJcbiAgICAgICAgICBBcnJhc3RlIGUgc29sdGUgbyBhcnF1aXZvIGFxdWksIG91PGJyIC8+Y2xpcXVlIHBhcmEgc2VsZWNpb27DoS1sb1xyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmKGZvcm1Hcm91cCAmJiBmb3JtQ29udHJvbE5hbWUgJiYgZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGgtZnVsbCB3LWZ1bGxcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC05IHAtMCBwdC0xXCI+XHJcbiAgICAgICAgPGt2LXByb2dyZXNzLWJhclxyXG4gICAgICAgICAgW3ZhbHVlXT1cIlxyXG4gICAgICAgICAgICBwcm9ncmVzc1ZhbHVlKCkoZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWU/LnNpemUpXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgW3Nob3dWYWx1ZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbYmFyU3R5bGVDbGFzc109XCJcclxuICAgICAgICAgICAgcHJvZ3Jlc3NWYWx1ZSgpKGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlPy5zaXplKSA9PVxyXG4gICAgICAgICAgICAxMDBcclxuICAgICAgICAgICAgICA/ICdiZy1yZWQtNDAwJ1xyXG4gICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiXHJcbiAgICAgICAgICAgIHJldHVyblByb2dyZXNzTGFiZWwoKShcclxuICAgICAgICAgICAgICBmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS52YWx1ZT8uc2l6ZVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID48L2t2LXByb2dyZXNzLWJhcj5cclxuXHJcbiAgICAgICAgQGlmKHByb2dyZXNzVmFsdWUoKShmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS52YWx1ZT8uc2l6ZSkgPT1cclxuICAgICAgICAxMDApIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTYwMCB0ZXh0LXhzXCI+VGFtYW5obyBtw6F4aW1vIGV4Y2VkaWRvLjwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtZ3JheS02MDAgdGV4dC14c1wiXHJcbiAgICAgICAgICA+QXJxdWl2byBTZWxlY2lvbmFkbzo8L3NwYW5cclxuICAgICAgICA+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS02MDAgdGV4dC14c1wiPnt7XHJcbiAgICAgICAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlPy5uYW1lXHJcbiAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwiXHJcbiAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgIHByb2dyZXNzVmFsdWUoKShcclxuICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlPy5zaXplXHJcbiAgICAgICAgICAgICAgKSA9PSAxMDBcclxuICAgICAgICAgICAgICAgID8gJ3RleHQtcmVkLTYwMCdcclxuICAgICAgICAgICAgICAgIDogJ3RleHQtZ3JlZW4tNjAwJ1xyXG4gICAgICAgICAgICB9fSBcclxuICAgICAgICAgICB0ZXh0LXhzXCJcclxuICAgICAgICAgICAgPnt7XHJcbiAgICAgICAgICAgICAgZm9ybWF0Qnl0ZXMoZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWU/LnNpemUpXHJcbiAgICAgICAgICAgIH19PC9zcGFuXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuQGlmIChmb3JtR3JvdXAgJiYgZm9ybUNvbnRyb2xOYW1lICYmIGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLmludmFsaWRcclxuJiYgZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udG91Y2hlZCkge1xyXG48cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5DYW1wbyBvYnJpZ2F0w7NyaW88L3A+XHJcbn1cclxuIl19
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQva3YtZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQva3YtZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZILE1BQU0sT0FBTyxxQkFBcUI7SUFrQmhDLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBZm5ELG1CQUFjLEdBQVcsT0FBTyxDQUFDO1FBQ2pDLG9CQUFlLEdBQVcsTUFBTSxDQUFDO1FBRWpDLG1CQUFjLEdBQWEsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNuSCwyQkFBc0IsR0FBVyxFQUFFLENBQUM7UUFDcEMsdUJBQWtCLEdBQVksS0FBSyxDQUFDLENBQUMsZ0RBQWdEO1FBRTlGLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXJCLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBOENqRSxrREFBa0Q7UUFDbEQsaURBQWlEO1FBQ2pELHFCQUFxQjtRQUNyQixNQUFNO1FBRU4sMENBQTBDO1FBRTFDLHdD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O3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUlJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFFaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNJLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIGlucHV0LCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWZpbGUtdXBsb2FkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RmlsZVVwbG9hZENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSB3aWR0aENvbXBvbmVudDogc3RyaW5nID0gJzQwMHB4JztcclxuICBASW5wdXQoKSBoZWlnaHRDb21wb25lbnQ6IHN0cmluZyA9ICdhdXRvJztcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbiE6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWxpZEZpbGVUeXBlczogc3RyaW5nW10gPSBbJ2ltYWdlLycsICdhcHBsaWNhdGlvbi9wZGYnLCAndGV4dC9odG1sJywgJ3RleHQveG1sJywgJ2FwcGxpY2F0aW9uL3htbCcsICd0ZXh0L3BsYWluJ107XHJcbiAgQElucHV0KCkgdGFtYW5ob01heGltb1Blcm1pdGlkbzogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaW5jbHVkZU9mZmljZVR5cGVzOiBib29sZWFuID0gZmFsc2U7IC8vIFByb3ByaWVkYWRlIHBhcmEgY29udHJvbGFyIG9zIHRpcG9zIGRlIE9mZmljZVxyXG5cclxuICBtYXhTaXplRmlsZSA9IGlucHV0PG51bWJlcj4oMTApXHJcblxyXG4gIEBPdXRwdXQoKSBmaWxlRW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlbW92ZUZpbGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dFVwbG9hZCcpIGlucHV0VXBsb2FkITogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7IH1cclxuXHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgbGV0IHZhbGlkVHlwZXMgPSBbLi4udGhpcy52YWxpZEZpbGVUeXBlc107XHJcblxyXG4gICAgaWYgKHRoaXMuaW5jbHVkZU9mZmljZVR5cGVzKSB7XHJcblxyXG4gICAgICB2YWxpZFR5cGVzLnB1c2goXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL21zd29yZCcsIC8vIC5kb2NcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLCAvLyAuZG9jeFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsIC8vIC5wcHRcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicgLy8gLnBwdHhcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgaXNWYWxpZEZpbGVUeXBlID0gdmFsaWRUeXBlcy5zb21lKHR5cGUgPT4gZXZlbnQudGFyZ2V0LmZpbGVzWzBdLnR5cGUuc3RhcnRzV2l0aCh0eXBlKSB8fFxyXG4gICAgICAodHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3htbCcgJiYgZXZlbnQudGFyZ2V0LmZpbGVzWzBdLnR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnKSB8fFxyXG4gICAgICAodHlwZSA9PT0gJ3RleHQveG1sJyAmJiBldmVudC50YXJnZXQuZmlsZXNbMF0udHlwZSA9PT0gJ3RleHQveG1sJylcclxuICAgICk7XHJcbiAgICBcclxuICAgIGlmICghaXNWYWxpZEZpbGVUeXBlKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdEVycm9yKCdUaXBvIGRlIGFycXVpdm8gaW52w6FsaWRvJyk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgXHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnOyBcclxuICAgICAgXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZvcm1Db250cm9sTmFtZV0uc2V0VmFsdWUoZXZlbnQudGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgIHRoaXMuZmlsZUVtaXQuZW1pdChldmVudC50YXJnZXQuZmlsZXNbMF0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmlsZSgpIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIHRoaXMucmVtb3ZlRmlsZUVtaXQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gcmV0dXJuTWJTaXplID0gY29tcHV0ZWQoKCkgPT4gKGJ5dGVzOiBhbnkpID0+IHtcclxuICAvLyAgIGlmIChieXRlcyA9PT0gbnVsbCB8fCBieXRlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgLy8gICAgIHJldHVybiAnMCBNQic7XHJcbiAgLy8gICB9XHJcblxyXG4gIC8vICAgY29uc3QgbWJTaXplID0gYnl0ZXMgLyAoMTAyNCAqIDEwMjQpO1xyXG4gICAgXHJcbiAgLy8gICByZXR1cm4gdGhpcy5mb3JtYXRCeXRlcyhtYlNpemUsIDIpO1xyXG4gIC8vIH0pO1xyXG5cclxuICBwcm9ncmVzc1ZhbHVlID0gY29tcHV0ZWQoKCkgPT4gKGJ5dGVzOiBhbnkpID0+IHtcclxuICAgIGlmIChieXRlcyA9PT0gbnVsbCB8fCBieXRlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1iU2l6ZSA9IGJ5dGVzIC8gKDEwMjQgKiAxMDI0KTtcclxuICAgIGxldCBwcm9ncmVzc1ZhbHVlID0gKE51bWJlcihtYlNpemUpIC8gdGhpcy5tYXhTaXplRmlsZSgpKSAqIDEwMDtcclxuXHJcbiAgICAvLyBMaW1pdGEgbyB2YWxvciBkbyBwcm9ncmVzc28gZW50cmUgMCBlIDEwMFxyXG4gICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KHByb2dyZXNzVmFsdWUsIDApLCAxMDApO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm5Qcm9ncmVzc0xhYmVsID0gY29tcHV0ZWQoKCkgPT4gKGJ5dGVzOiBhbnkpID0+IHtcclxuICAgIGlmIChieXRlcyA9PT0gbnVsbCB8fCBieXRlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAnMCBNQic7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWJTaXplID0gYnl0ZXMgLyAoMTAyNCAqIDEwMjQpO1xyXG4gICAgLy8gbGV0IHByb2dyZXNzVmFsdWUgPSAoTnVtYmVyKG1iU2l6ZSkgLyB0aGlzLm1heFNpemVGaWxlKCkpICogMTAwO1xyXG4gICAgLy8gdGhpcy5wcm9ncmVzc1ZhbHVlLnNldChwcm9ncmVzc1ZhbHVlKTtcclxuICAgIC8vIHRoaXMucHJvZ3Jlc3NWYWx1ZS5zZXQoKG1iU2l6ZSAvIHRoaXMubWF4U2l6ZUZpbGUoKSkqMTAwKTtcclxuICAgIHJldHVybiBgJHttYlNpemUudG9GaXhlZCgyKX0vJHt0aGlzLm1heFNpemVGaWxlKCl9IE1CYDtcclxuICB9KVxyXG5cclxuICBmb3JtYXRCeXRlcyhieXRlczogYW55LCBkZWNpbWFscyA9IDIpIHtcclxuICAgIGlmICghYnl0ZXMpIHtcclxuICAgICAgcmV0dXJuIFwiMCBCeXRlc1wiO1xyXG4gICAgfVxyXG4gICAgY29uc3QgayA9IDEwMjQ7XHJcbiAgICBjb25zdCBkbSA9IGRlY2ltYWxzIDw9IDAgPyAwIDogZGVjaW1hbHM7XHJcbiAgICBjb25zdCBzaXplcyA9IFtcIkJ5dGVzXCIsIFwiS0JcIiwgXCJNQlwiLCBcIkdCXCIsIFwiVEJcIiwgXCJQQlwiLCBcIkVCXCIsIFwiWkJcIiwgXCJZQlwiXTtcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKE1hdGgubG9nKGJ5dGVzKSAvIE1hdGgubG9nKGspKTtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKGRtKSkgKyBcIiBcIiArIHNpemVzW2ldO1xyXG4gIH1cclxuXHJcbiAgYWRkRHJhZ092ZXJDbGFzcyhldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZHJhZ292ZXInKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWdvdmVyJyk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGaWxlKGZpbGU6IEZpbGUpIHtcclxuXHJcbiAgICBpZiAodGhpcy5pbmNsdWRlT2ZmaWNlVHlwZXMpIHtcclxuICAgICAgbGV0IHZhbGlkVHlwZXMgPSBbLi4udGhpcy52YWxpZEZpbGVUeXBlc107XHJcblxyXG4gICAgICB2YWxpZFR5cGVzLnB1c2goXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL21zd29yZCcsIC8vIC5kb2NcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLCAvLyAuZG9jeFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsIC8vIC5wcHRcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicgLy8gLnBwdHhcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpc1ZhbGlkRmlsZVR5cGUgPSB0aGlzLnZhbGlkRmlsZVR5cGVzLnNvbWUodHlwZSA9PlxyXG4gICAgICBmaWxlLnR5cGUuc3RhcnRzV2l0aCh0eXBlKSB8fFxyXG4gICAgICBmaWxlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnIHx8XHJcbiAgICAgIGZpbGUudHlwZSA9PT0gJ3RleHQveG1sJ1xyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoIWlzVmFsaWRGaWxlVHlwZSkge1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UudG9hc3RFcnJvcignVGlwbyBkZSBhcnF1aXZvIGludsOhbGlkbycpO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZvcm1Db250cm9sTmFtZV0uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZvcm1Db250cm9sTmFtZV0uc2V0VmFsdWUoZmlsZSk7XHJcblxyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgICBpZiAoZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSB7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgfSBlbHNlIGlmIChmaWxlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnIHx8IGZpbGUudHlwZSA9PT0gJ3RleHQveG1sJykge1xyXG4gICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbGVFbWl0LmVtaXQoZmlsZSk7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuYWRkRHJhZ092ZXJDbGFzcyhldmVudCk7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMucmVtb3ZlRHJhZ092ZXJDbGFzcyhldmVudCk7XHJcblxyXG4gICAgaWYgKGV2ZW50LmRhdGFUcmFuc2ZlciAmJiBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmhhbmRsZUZpbGUoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEFjY2VwdCgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHR5cGVzID0gJydcclxuXHJcbiAgICB0aGlzLnZhbGlkRmlsZVR5cGVzLmZvckVhY2godHlwZSA9PiB7XHJcbiAgICAgIGlmICh0eXBlLmluY2x1ZGVzKCdpbWFnZScpKSB0eXBlcyArPSAnLmpwZywgLnBuZywgLmJtcCwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ2h0bWwnKSkgdHlwZXMgKz0gJy5odG1sLCAnO1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygncGRmJykpIHR5cGVzICs9ICcucGRmLCAnO1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygneG1sJykpIHR5cGVzICs9ICcueG1sLCAnO1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygncGxhaW4nKSkgdHlwZXMgKz0gJy50eHQsICc7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBBZGljaW9uYSB0aXBvcyBkZSBhcnF1aXZvcyBkbyBPZmZpY2Ugc2UgaW5jbHVkZU9mZmljZVR5cGVzIGZvciB0cnVlXHJcbiAgICBpZiAodGhpcy5pbmNsdWRlT2ZmaWNlVHlwZXMpIHtcclxuICAgICAgdHlwZXMgKz0gJy5kb2MsIC5kb2N4LCAucHB0LCAucHB0eCwgJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHlwZXMuc2xpY2UoMCwgLTIpOyAvLyBSZW1vdmUgYSDDumx0aW1hIHbDrXJndWxhIGUgZXNwYcOnb1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgKm5nSWY9XCJmb3JtR3JvdXBcIlxyXG4gIFtuZ0NsYXNzXT1cIntcclxuICAgICdpbnZhbGlkLWJvcmRlcic6XHJcbiAgICAgIGZvcm1Hcm91cCAmJlxyXG4gICAgICBmb3JtQ29udHJvbE5hbWUgJiZcclxuICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0uaW52YWxpZCAmJlxyXG4gICAgICBmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS50b3VjaGVkXHJcbiAgfVwiXHJcbiAgY2xhc3M9XCJib3JkZXItZGFzaGVkIGJvcmRlci0yIGJvcmRlci1yb3VuZC1sZyBib3JkZXItZ3JheS00MDAgZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIHJlbGF0aXZlIHAtMlwiXHJcbiAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXHJcbiAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXHJcbiAgW3N0eWxlLm1pbldpZHRoXT1cIicyMHJlbSdcIlxyXG4gIFtzdHlsZS5taW5IZWlnaHRdPVwiJzEwcmVtJ1wiXHJcbiAgW3N0eWxlLndpZHRoXT1cIndpZHRoQ29tcG9uZW50XCJcclxuICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodENvbXBvbmVudFwiXHJcbj5cclxuICBAaWYoZm9ybUdyb3VwICYmIGZvcm1Db250cm9sTmFtZSAmJiBmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS52YWx1ZSlcclxuICB7XHJcbiAgPGJ1dHRvblxyXG4gICAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFwiXHJcbiAgICBwQnV0dG9uXHJcbiAgICAoY2xpY2spPVwiZGVsZXRlRmlsZSgpXCJcclxuICAgIGNsYXNzPVwiYWJzb2x1dGUgdHJhbnNpdGlvbi1jb2xvcnMgdHJhbnNpdGlvbi1kdXJhdGlvbi01MDAgdGV4dC1yZWQtNzAwIGhvdmVyOnRleHQtcmVkLTUwMCBtLTEgaC0ycmVtIHctMnJlbVwiXHJcbiAgICBbdGV4dF09XCJ0cnVlXCJcclxuICAgIFtpY29uXT1cIidwaSBwaS10cmFzaCdcIlxyXG4gID48L2J1dHRvbj5cclxuICB9XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJjb2wtMTIgZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInctZnVsbCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBjb2wtMTJcIlxyXG4gICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXHJcbiAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlID8gJ25vbmUnIDogJ2ZsZXgnXCJcclxuICAgICAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCJcclxuICAgID5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgI2ZpbGVJbnB1dFxyXG4gICAgICAgIFthY2NlcHRdPVwic2V0QWNjZXB0KClcIlxyXG4gICAgICAgIGhpZGRlblxyXG4gICAgICAvPlxyXG5cclxuICAgICAgQGlmKGZvcm1Hcm91cCAmJiBmb3JtQ29udHJvbE5hbWUgJiZcclxuICAgICAgIWZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgPCEtLSBAaWYodGFtYW5ob01heGltb1Blcm1pdGlkbykge1xyXG4gICAgICAgICAgICA8cCBjbGFzcz1cInctZnVsbCB0ZXh0LXN0YXJ0XCI+VGFtYW5obyBtYXhpbW8gcGVybWl0aWRvICgge3t0YW1hbmhvTWF4aW1vUGVybWl0aWRvfX0gKSo8L3A+XHJcbiAgICAgICAgICB9IC0tPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbXQtMiB0ZXh0LWdyYXktNzAwXCJcclxuICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAyLjVyZW1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIGNsb3VkX3VwbG9hZFxyXG4gICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgQGlmKGRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWNlbnRlciB0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgIHt7IGRlc2NyaXB0aW9uIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+XHJcbiAgICAgICAgICBBcnJhc3RlIGUgc29sdGUgbyBhcnF1aXZvIGFxdWksIG91PGJyIC8+Y2xpcXVlIHBhcmEgc2VsZWNpb27DoS1sb1xyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgQGlmKGZvcm1Hcm91cCAmJiBmb3JtQ29udHJvbE5hbWUgJiYgZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGgtZnVsbCB3LWZ1bGxcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC05IHAtMCBwdC0xXCI+XHJcbiAgICAgICAgPGt2LXByb2dyZXNzLWJhclxyXG4gICAgICAgICAgW3ZhbHVlXT1cIlxyXG4gICAgICAgICAgICBwcm9ncmVzc1ZhbHVlKCkoZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWU/LnNpemUpXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgW3Nob3dWYWx1ZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbYmFyU3R5bGVDbGFzc109XCJcclxuICAgICAgICAgICAgcHJvZ3Jlc3NWYWx1ZSgpKGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlPy5zaXplKSA9PVxyXG4gICAgICAgICAgICAxMDBcclxuICAgICAgICAgICAgICA/ICdiZy1yZWQtNDAwJ1xyXG4gICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiXHJcbiAgICAgICAgICAgIHJldHVyblByb2dyZXNzTGFiZWwoKShcclxuICAgICAgICAgICAgICBmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS52YWx1ZT8uc2l6ZVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgID48L2t2LXByb2dyZXNzLWJhcj5cclxuXHJcbiAgICAgICAgQGlmKHByb2dyZXNzVmFsdWUoKShmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS52YWx1ZT8uc2l6ZSkgPT1cclxuICAgICAgICAxMDApIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTYwMCB0ZXh0LXhzXCI+VGFtYW5obyBtw6F4aW1vIGV4Y2VkaWRvLjwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtZ3JheS02MDAgdGV4dC14c1wiXHJcbiAgICAgICAgICA+QXJxdWl2byBTZWxlY2lvbmFkbzo8L3NwYW5cclxuICAgICAgICA+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS02MDAgdGV4dC14c1wiPnt7XHJcbiAgICAgICAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlPy5uYW1lXHJcbiAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwiXHJcbiAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgIHByb2dyZXNzVmFsdWUoKShcclxuICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlPy5zaXplXHJcbiAgICAgICAgICAgICAgKSA9PSAxMDBcclxuICAgICAgICAgICAgICAgID8gJ3RleHQtcmVkLTYwMCdcclxuICAgICAgICAgICAgICAgIDogJ3RleHQtZ3JlZW4tNjAwJ1xyXG4gICAgICAgICAgICB9fSBcclxuICAgICAgICAgICB0ZXh0LXhzXCJcclxuICAgICAgICAgICAgPnt7XHJcbiAgICAgICAgICAgICAgZm9ybWF0Qnl0ZXMoZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWU/LnNpemUpXHJcbiAgICAgICAgICAgIH19PC9zcGFuXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuQGlmIChmb3JtR3JvdXAgJiYgZm9ybUNvbnRyb2xOYW1lICYmIGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLmludmFsaWRcclxuJiYgZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udG91Y2hlZCkge1xyXG48cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5DYW1wbyBvYnJpZ2F0w7NyaW88L3A+XHJcbn1cclxuIl19
@@ -5,13 +5,13 @@ import { KvProgressBarModule } from "../kv-progress-bar/kv-progress-bar.module";
5
5
  import { ButtonModule } from 'primeng/button';
6
6
  import * as i0 from "@angular/core";
7
7
  export class KvFileUploadModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadModule, declarations: [KvFileUploadComponent], imports: [CommonModule,
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: KvFileUploadModule, declarations: [KvFileUploadComponent], imports: [CommonModule,
10
10
  KvProgressBarModule, ButtonModule], exports: [KvFileUploadComponent] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadModule, imports: [CommonModule,
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileUploadModule, imports: [CommonModule,
12
12
  KvProgressBarModule, ButtonModule] }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadModule, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileUploadModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  declarations: [KvFileUploadComponent],
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
20
20
  exports: [KvFileUploadComponent]
21
21
  }]
22
22
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQva3YtZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFROUMsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsaUJBTGQscUJBQXFCLGFBQzFCLFlBQVk7WUFDcEIsbUJBQW1CLEVBQUUsWUFBWSxhQUN6QixxQkFBcUI7K0dBRXBCLGtCQUFrQixZQUpuQixZQUFZO1lBQ3BCLG1CQUFtQixFQUFFLFlBQVk7OzJGQUd4QixrQkFBa0I7a0JBTjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLFlBQVk7d0JBQ3BCLG1CQUFtQixFQUFFLFlBQVksQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgS3ZGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9rdi1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBLdlByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSBcIi4uL2t2LXByb2dyZXNzLWJhci9rdi1wcm9ncmVzcy1iYXIubW9kdWxlXCI7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbS3ZGaWxlVXBsb2FkQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLFxyXG4gICAgS3ZQcm9ncmVzc0Jhck1vZHVsZSwgQnV0dG9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbS3ZGaWxlVXBsb2FkQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZGaWxlVXBsb2FkTW9kdWxlIHsgfVxyXG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQva3YtZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFROUMsTUFBTSxPQUFPLGtCQUFrQjsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBTGQscUJBQXFCLGFBQzFCLFlBQVk7WUFDcEIsbUJBQW1CLEVBQUUsWUFBWSxhQUN6QixxQkFBcUI7Z0hBRXBCLGtCQUFrQixZQUpuQixZQUFZO1lBQ3BCLG1CQUFtQixFQUFFLFlBQVk7OzRGQUd4QixrQkFBa0I7a0JBTjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLFlBQVk7d0JBQ3BCLG1CQUFtQixFQUFFLFlBQVksQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgS3ZGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9rdi1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBLdlByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSBcIi4uL2t2LXByb2dyZXNzLWJhci9rdi1wcm9ncmVzcy1iYXIubW9kdWxlXCI7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbS3ZGaWxlVXBsb2FkQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLFxyXG4gICAgS3ZQcm9ncmVzc0Jhck1vZHVsZSwgQnV0dG9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbS3ZGaWxlVXBsb2FkQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZGaWxlVXBsb2FkTW9kdWxlIHsgfVxyXG4iXX0=
@@ -166,10 +166,10 @@ export class KvFileUploadNewComponent {
166
166
  }
167
167
  return types.slice(0, -2); // Remove a última vírgula e espaço
168
168
  }
169
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadNewComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
170
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFileUploadNewComponent, isStandalone: true, selector: "kv-file-upload-new", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: false, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: false, isRequired: false, transformFunction: null }, widthComponent: { classPropertyName: "widthComponent", publicName: "widthComponent", isSignal: false, isRequired: false, transformFunction: null }, heightComponent: { classPropertyName: "heightComponent", publicName: "heightComponent", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, validFileTypes: { classPropertyName: "validFileTypes", publicName: "validFileTypes", isSignal: false, isRequired: false, transformFunction: null }, tamanhoMaximoPermitido: { classPropertyName: "tamanhoMaximoPermitido", publicName: "tamanhoMaximoPermitido", isSignal: false, isRequired: false, transformFunction: null }, includeOfficeTypes: { classPropertyName: "includeOfficeTypes", publicName: "includeOfficeTypes", isSignal: false, isRequired: false, transformFunction: null }, maxSizeFile: { classPropertyName: "maxSizeFile", publicName: "maxSizeFile", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileEmit: "fileEmit", removeFileEmit: "removeFileEmit" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }], ngImport: i0, template: "<div\r\n *ngIf=\"formGroup\"\r\n class=\"file-upload-container w-full\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched,\r\n 'has-file': formGroup.get(formControlName)?.value,\r\n }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"triggerClick()\"\r\n [style.width]=\"widthComponent\"\r\n>\r\n <input\r\n type=\"file\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n <div *ngIf=\"!formGroup.get(formControlName)?.value\" class=\"dropzone-content\">\r\n <div class=\"cloud-icon-wrapper\">\r\n <span class=\"material-symbols-outlined\">cloud_upload</span>\r\n </div>\r\n <div class=\"text-center\">\r\n <p class=\"main-text\">\r\n <span class=\"blue-text\">Clique para selecionar</span> ou arraste aqui\r\n </p>\r\n\r\n @if(subtitle()) {\r\n <p class=\"sub-text\">{{ subtitle() }} (max. {{ maxSizeFile() }}MB)</p>\r\n } @else {\r\n <p class=\"sub-text\">PDF, Imagens (max. {{ maxSizeFile() }}MB)</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formGroup.get(formControlName)?.value as file\"\r\n class=\"selected-file-card\"\r\n >\r\n <div class=\"card-header\">\r\n <div class=\"file-info\">\r\n <span class=\"material-symbols-outlined file-icon\">description</span>\r\n <span class=\"file-name\" [title]=\"file.name\">{{ file.name }}</span>\r\n </div>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger close-btn\"\r\n (click)=\"deleteFile(); $event.stopPropagation()\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"card-footer\">\r\n <div class=\"progress-container\">\r\n <div\r\n class=\"progress-bar\"\r\n [style.width.%]=\"progressValue()(file.size)\"\r\n [class.limit-exceeded]=\"progressValue()(file.size) >= 100\"\r\n ></div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mt-1\">\r\n <small class=\"error-text\" *ngIf=\"progressValue()(file.size) >= 100\"\r\n >Limite excedido</small\r\n >\r\n <span class=\"file-size-label ml-auto\">{{\r\n formatBytes(file.size)\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p\r\n *ngIf=\"\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched\r\n \"\r\n class=\"error-message\"\r\n>\r\n Campo obrigat\u00F3rio\r\n</p>\r\n", styles: [".file-upload-container{border:1px dashed #cbd5e1;border-radius:.75rem;background-color:#f8fafc;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease-in-out;position:relative;height:100%}.file-upload-container:hover,.file-upload-container.dragover{border-color:#3b82f6;background-color:#eff6ff}.file-upload-container.has-file{cursor:default;background-color:#f1f5f9;padding:0;border-style:solid}.selected-file-card{background:#fff;border-radius:.75rem;padding:1.5rem;width:100%;height:100%;min-height:160px;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;animation:fadeIn .3s ease-out;box-sizing:border-box}.selected-file-card .card-header{display:flex;justify-content:space-between;align-items:center}.selected-file-card .card-header .file-info{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-file-card .card-header .file-info .file-icon{color:#64748b;font-size:24px}.selected-file-card .card-header .file-info .file-name{font-size:1rem;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .card-header .close-btn{width:32px!important;height:32px!important;padding:0!important}.selected-file-card .card-header .close-btn ::ng-deep .p-button-icon{font-size:1rem}.selected-file-card .card-footer .progress-container{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.selected-file-card .card-footer .progress-container .progress-bar{height:100%;background:#3b82f6;transition:width .4s cubic-bezier(.4,0,.2,1)}.selected-file-card .card-footer .progress-container .progress-bar.limit-exceeded{background:#ef4444}.selected-file-card .card-footer .file-size-label{font-size:.85rem;color:#94a3b8;font-weight:500}.selected-file-card .card-footer .error-text{color:#ef4444;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::ng-deep .file-upload-container .p-button.p-button-text{background-color:transparent!important;border:none}::ng-deep .file-upload-container .p-button.p-button-text:hover{background-color:#fee2e2!important}.cloud-icon-wrapper{background-color:#e0f2fe;color:#3b82f6;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.cloud-icon-wrapper span{font-size:24px}.main-text{font-size:.9rem;color:#334155}.main-text .blue-text{color:#3b82f6;font-weight:600}.sub-text{color:#64748b;font-size:.8rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: KvProgressBarModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
169
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileUploadNewComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: KvFileUploadNewComponent, isStandalone: true, selector: "kv-file-upload-new", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: false, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: false, isRequired: false, transformFunction: null }, widthComponent: { classPropertyName: "widthComponent", publicName: "widthComponent", isSignal: false, isRequired: false, transformFunction: null }, heightComponent: { classPropertyName: "heightComponent", publicName: "heightComponent", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, validFileTypes: { classPropertyName: "validFileTypes", publicName: "validFileTypes", isSignal: false, isRequired: false, transformFunction: null }, tamanhoMaximoPermitido: { classPropertyName: "tamanhoMaximoPermitido", publicName: "tamanhoMaximoPermitido", isSignal: false, isRequired: false, transformFunction: null }, includeOfficeTypes: { classPropertyName: "includeOfficeTypes", publicName: "includeOfficeTypes", isSignal: false, isRequired: false, transformFunction: null }, maxSizeFile: { classPropertyName: "maxSizeFile", publicName: "maxSizeFile", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileEmit: "fileEmit", removeFileEmit: "removeFileEmit" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }], ngImport: i0, template: "<div\r\n *ngIf=\"formGroup\"\r\n class=\"file-upload-container w-full\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched,\r\n 'has-file': formGroup.get(formControlName)?.value,\r\n }\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n (click)=\"triggerClick()\"\r\n [style.width]=\"widthComponent\"\r\n>\r\n <input\r\n type=\"file\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n <div *ngIf=\"!formGroup.get(formControlName)?.value\" class=\"dropzone-content\">\r\n <div class=\"cloud-icon-wrapper\">\r\n <span class=\"material-symbols-outlined\">cloud_upload</span>\r\n </div>\r\n <div class=\"text-center\">\r\n <p class=\"main-text\">\r\n <span class=\"blue-text\">Clique para selecionar</span> ou arraste aqui\r\n </p>\r\n\r\n @if(subtitle()) {\r\n <p class=\"sub-text\">{{ subtitle() }} (max. {{ maxSizeFile() }}MB)</p>\r\n } @else {\r\n <p class=\"sub-text\">PDF, Imagens (max. {{ maxSizeFile() }}MB)</p>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"formGroup.get(formControlName)?.value as file\"\r\n class=\"selected-file-card\"\r\n >\r\n <div class=\"card-header\">\r\n <div class=\"file-info\">\r\n <span class=\"material-symbols-outlined file-icon\">description</span>\r\n <span class=\"file-name\" [title]=\"file.name\">{{ file.name }}</span>\r\n </div>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-danger close-btn\"\r\n (click)=\"deleteFile(); $event.stopPropagation()\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"card-footer\">\r\n <div class=\"progress-container\">\r\n <div\r\n class=\"progress-bar\"\r\n [style.width.%]=\"progressValue()(file.size)\"\r\n [class.limit-exceeded]=\"progressValue()(file.size) >= 100\"\r\n ></div>\r\n </div>\r\n <div class=\"flex justify-content-between align-items-center mt-1\">\r\n <small class=\"error-text\" *ngIf=\"progressValue()(file.size) >= 100\"\r\n >Limite excedido</small\r\n >\r\n <span class=\"file-size-label ml-auto\">{{\r\n formatBytes(file.size)\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<p\r\n *ngIf=\"\r\n formGroup.get(formControlName)?.invalid &&\r\n formGroup.get(formControlName)?.touched\r\n \"\r\n class=\"error-message\"\r\n>\r\n Campo obrigat\u00F3rio\r\n</p>\r\n", styles: [".file-upload-container{border:1px dashed #cbd5e1;border-radius:.75rem;background-color:#f8fafc;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease-in-out;position:relative;height:100%}.file-upload-container:hover,.file-upload-container.dragover{border-color:#3b82f6;background-color:#eff6ff}.file-upload-container.has-file{cursor:default;background-color:#f1f5f9;padding:0;border-style:solid}.selected-file-card{background:#fff;border-radius:.75rem;padding:1.5rem;width:100%;height:100%;min-height:160px;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;animation:fadeIn .3s ease-out;box-sizing:border-box}.selected-file-card .card-header{display:flex;justify-content:space-between;align-items:center}.selected-file-card .card-header .file-info{display:flex;align-items:center;gap:.75rem;overflow:hidden}.selected-file-card .card-header .file-info .file-icon{color:#64748b;font-size:24px}.selected-file-card .card-header .file-info .file-name{font-size:1rem;font-weight:500;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-file-card .card-header .close-btn{width:32px!important;height:32px!important;padding:0!important}.selected-file-card .card-header .close-btn ::ng-deep .p-button-icon{font-size:1rem}.selected-file-card .card-footer .progress-container{height:8px;background:#e2e8f0;border-radius:10px;overflow:hidden}.selected-file-card .card-footer .progress-container .progress-bar{height:100%;background:#3b82f6;transition:width .4s cubic-bezier(.4,0,.2,1)}.selected-file-card .card-footer .progress-container .progress-bar.limit-exceeded{background:#ef4444}.selected-file-card .card-footer .file-size-label{font-size:.85rem;color:#94a3b8;font-weight:500}.selected-file-card .card-footer .error-text{color:#ef4444;font-size:.75rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}::ng-deep .file-upload-container .p-button.p-button-text{background-color:transparent!important;border:none}::ng-deep .file-upload-container .p-button.p-button-text:hover{background-color:#fee2e2!important}.cloud-icon-wrapper{background-color:#e0f2fe;color:#3b82f6;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.cloud-icon-wrapper span{font-size:24px}.main-text{font-size:.9rem;color:#334155}.main-text .blue-text{color:#3b82f6;font-weight:600}.sub-text{color:#64748b;font-size:.8rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: KvProgressBarModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
171
171
  }
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadNewComponent, decorators: [{
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileUploadNewComponent, decorators: [{
173
173
  type: Component,
174
174
  args: [{ selector: 'kv-file-upload-new', standalone: true, imports: [
175
175
  CommonModule,
@@ -203,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
203
203
  type: ViewChild,
204
204
  args: ['inputUpload']
205
205
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS11cGxvYWQtbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdXBsb2FkLW5ldy9rdi1maWxlLXVwbG9hZC1uZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQtbmV3L2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3ZILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7O0FBYWhGLE1BQU0sT0FBTyx3QkFBd0I7SUFrQm5DLG9CQUFvQjtJQUVwQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWpCbkQsbUJBQWMsR0FBVyxPQUFPLENBQUM7UUFDakMsb0JBQWUsR0FBVyxNQUFNLENBQUM7UUFFakMsbUJBQWMsR0FBYSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25ILDJCQUFzQixHQUFXLEVBQUUsQ0FBQztRQUNwQyx1QkFBa0IsR0FBWSxLQUFLLENBQUMsQ0FBQyxnREFBZ0Q7UUFFOUYsZ0JBQVcsR0FBRyxLQUFLLENB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Q0FBQztnQkFBRSxLQUFLLElBQUksUUFBUSxDQUFDO1lBQzVDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQUUsS0FBSyxJQUFJLFFBQVEsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztRQUVILHNFQUFzRTtRQUN0RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLEtBQUssSUFBSSw0QkFBNEIsQ0FBQztRQUN4QyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQ2hFLENBQUM7OEdBMU1VLHdCQUF3QjtrR0FBeEIsd0JBQXdCLGl5RENsQnJDLDJyRkFzRkEscWhGRDNFSSxZQUFZLGdPQUNaLG1CQUFtQiw4QkFDbkIsWUFBWTs7MkZBS0gsd0JBQXdCO2tCQVhwQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFlBQVk7cUJBQ2I7d0ZBS1EsU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFLSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBRWlCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBpbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IEt2UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICcuLi9rdi1wcm9ncmVzcy1iYXIva3YtcHJvZ3Jlc3MtYmFyLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWZpbGUtdXBsb2FkLW5ldycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBLdlByb2dyZXNzQmFyTW9kdWxlLCBcclxuICAgIEJ1dHRvbk1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RmlsZVVwbG9hZE5ld0NvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSB3aWR0aENvbXBvbmVudDogc3RyaW5nID0gJzQwMHB4JztcclxuICBASW5wdXQoKSBoZWlnaHRDb21wb25lbnQ6IHN0cmluZyA9ICdhdXRvJztcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbiE6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWxpZEZpbGVUeXBlczogc3RyaW5nW10gPSBbJ2ltYWdlLycsICdhcHBsaWNhdGlvbi9wZGYnLCAndGV4dC9odG1sJywgJ3RleHQveG1sJywgJ2FwcGxpY2F0aW9uL3htbCcsICd0ZXh0L3BsYWluJ107XHJcbiAgQElucHV0KCkgdGFtYW5ob01heGltb1Blcm1pdGlkbzogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaW5jbHVkZU9mZmljZVR5cGVzOiBib29sZWFuID0gZmFsc2U7IC8vIFByb3ByaWVkYWRlIHBhcmEgY29udHJvbGFyIG9zIHRpcG9zIGRlIE9mZmljZVxyXG4gIFxyXG4gIG1heFNpemVGaWxlID0gaW5wdXQ8bnVtYmVyPigxMClcclxuICBzdWJ0aXRsZSA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpXHJcblxyXG4gIEBPdXRwdXQoKSBmaWxlRW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlbW92ZUZpbGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdpbnB1dFVwbG9hZCcpIGlucHV0VXBsb2FkITogRWxlbWVudFJlZjtcclxuICAvLyBObyB0b3BvIGRhIGNsYXNzZVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHsgfVxyXG5cclxuICAvLyBNw6l0b2RvIHBhcmEgZGlzcGFyYXIgbyBjbGlxdWUgc2VtIGVycm8gZGUgcHJvcHJpZWRhZGVcclxuICB0cmlnZ2VyQ2xpY2soKSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSk/LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCB2YWxpZFR5cGVzID0gWy4uLnRoaXMudmFsaWRGaWxlVHlwZXNdO1xyXG5cclxuICAgIGlmICh0aGlzLmluY2x1ZGVPZmZpY2VUeXBlcykge1xyXG5cclxuICAgICAgdmFsaWRUeXBlcy5wdXNoKFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi9tc3dvcmQnLCAvLyAuZG9jXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JywgLy8gLmRvY3hcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLCAvLyAucHB0XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nIC8vIC5wcHR4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5maWxlcy5sZW5ndGggPT0gMCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGlzVmFsaWRGaWxlVHlwZSA9IHZhbGlkVHlwZXMuc29tZSh0eXBlID0+IGV2ZW50LnRhcmdldC5maWxlc1swXS50eXBlLnN0YXJ0c1dpdGgodHlwZSkgfHxcclxuICAgICAgKHR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnICYmIGV2ZW50LnRhcmdldC5maWxlc1swXS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJykgfHxcclxuICAgICAgKHR5cGUgPT09ICd0ZXh0L3htbCcgJiYgZXZlbnQudGFyZ2V0LmZpbGVzWzBdLnR5cGUgPT09ICd0ZXh0L3htbCcpXHJcbiAgICApO1xyXG5cclxuICAgIGlmICghaXNWYWxpZEZpbGVUeXBlKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdEVycm9yKCdUaXBvIGRlIGFycXVpdm8gaW52w6FsaWRvJyk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuXHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShldmVudC50YXJnZXQuZmlsZXNbMF0pO1xyXG4gICAgdGhpcy5maWxlRW1pdC5lbWl0KGV2ZW50LnRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKCkge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5yZW1vdmVGaWxlRW1pdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5NYlNpemUgPSBjb21wdXRlZCgoKSA9PiAoYnl0ZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgaWYgKGJ5dGVzID09PSBudWxsIHx8IGJ5dGVzID09PSB1bmRlZmluZWQpIHtcclxuICAvLyAgICAgcmV0dXJuICcwIE1CJztcclxuICAvLyAgIH1cclxuXHJcbiAgLy8gICBjb25zdCBtYlNpemUgPSBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcblxyXG4gIC8vICAgcmV0dXJuIHRoaXMuZm9ybWF0Qnl0ZXMobWJTaXplLCAyKTtcclxuICAvLyB9KTtcclxuXHJcbiAgcHJvZ3Jlc3NWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IChieXRlczogYW55KSA9PiB7XHJcbiAgICBpZiAoYnl0ZXMgPT09IG51bGwgfHwgYnl0ZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYlNpemUgPSBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcbiAgICBsZXQgcHJvZ3Jlc3NWYWx1ZSA9IChOdW1iZXIobWJTaXplKSAvIHRoaXMubWF4U2l6ZUZpbGUoKSkgKiAxMDA7XHJcblxyXG4gICAgLy8gTGltaXRhIG8gdmFsb3IgZG8gcHJvZ3Jlc3NvIGVudHJlIDAgZSAxMDBcclxuICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChwcm9ncmVzc1ZhbHVlLCAwKSwgMTAwKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuUHJvZ3Jlc3NMYWJlbCA9IGNvbXB1dGVkKCgpID0+IChieXRlczogYW55KSA9PiB7XHJcbiAgICBpZiAoYnl0ZXMgPT09IG51bGwgfHwgYnl0ZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gJzAgTUInO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1iU2l6ZSA9IGJ5dGVzIC8gKDEwMjQgKiAxMDI0KTtcclxuICAgIC8vIGxldCBwcm9ncmVzc1ZhbHVlID0gKE51bWJlcihtYlNpemUpIC8gdGhpcy5tYXhTaXplRmlsZSgpKSAqIDEwMDtcclxuICAgIC8vIHRoaXMucHJvZ3Jlc3NWYWx1ZS5zZXQocHJvZ3Jlc3NWYWx1ZSk7XHJcbiAgICAvLyB0aGlzLnByb2dyZXNzVmFsdWUuc2V0KChtYlNpemUgLyB0aGlzLm1heFNpemVGaWxlKCkpKjEwMCk7XHJcbiAgICByZXR1cm4gYCR7bWJTaXplLnRvRml4ZWQoMil9LyR7dGhpcy5tYXhTaXplRmlsZSgpfSBNQmA7XHJcbiAgfSlcclxuXHJcbiAgZm9ybWF0Qnl0ZXMoYnl0ZXM6IGFueSwgZGVjaW1hbHMgPSAyKSB7XHJcbiAgICBpZiAoIWJ5dGVzKSB7XHJcbiAgICAgIHJldHVybiBcIjAgQnl0ZXNcIjtcclxuICAgIH1cclxuICAgIGNvbnN0IGsgPSAxMDI0O1xyXG4gICAgY29uc3QgZG0gPSBkZWNpbWFscyA8PSAwID8gMCA6IGRlY2ltYWxzO1xyXG4gICAgY29uc3Qgc2l6ZXMgPSBbXCJCeXRlc1wiLCBcIktCXCIsIFwiTUJcIiwgXCJHQlwiLCBcIlRCXCIsIFwiUEJcIiwgXCJFQlwiLCBcIlpCXCIsIFwiWUJcIl07XHJcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChkbSkpICsgXCIgXCIgKyBzaXplc1tpXTtcclxuICB9XHJcblxyXG4gIGFkZERyYWdPdmVyQ2xhc3MoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2RyYWdvdmVyJyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnb3ZlcicpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsZShmaWxlOiBGaWxlKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5jbHVkZU9mZmljZVR5cGVzKSB7XHJcbiAgICAgIGxldCB2YWxpZFR5cGVzID0gWy4uLnRoaXMudmFsaWRGaWxlVHlwZXNdO1xyXG5cclxuICAgICAgdmFsaWRUeXBlcy5wdXNoKFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi9tc3dvcmQnLCAvLyAuZG9jXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JywgLy8gLmRvY3hcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLCAvLyAucHB0XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nIC8vIC5wcHR4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNWYWxpZEZpbGVUeXBlID0gdGhpcy52YWxpZEZpbGVUeXBlcy5zb21lKHR5cGUgPT5cclxuICAgICAgZmlsZS50eXBlLnN0YXJ0c1dpdGgodHlwZSkgfHxcclxuICAgICAgZmlsZS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJyB8fFxyXG4gICAgICBmaWxlLnR5cGUgPT09ICd0ZXh0L3htbCdcclxuICAgICk7XHJcblxyXG4gICAgaWYgKCFpc1ZhbGlkRmlsZVR5cGUpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoJ1RpcG8gZGUgYXJxdWl2byBpbnbDoWxpZG8nKTtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKGZpbGUpO1xyXG5cclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG4gICAgaWYgKGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xyXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgIH0gZWxzZSBpZiAoZmlsZS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJyB8fCBmaWxlLnR5cGUgPT09ICd0ZXh0L3htbCcpIHtcclxuICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWxlRW1pdC5lbWl0KGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmFkZERyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5yZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG5cclxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVGaWxlKGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBY2NlcHQoKTogc3RyaW5nIHtcclxuICAgIGxldCB0eXBlcyA9ICcnXHJcblxyXG4gICAgdGhpcy52YWxpZEZpbGVUeXBlcy5mb3JFYWNoKHR5cGUgPT4ge1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygnaW1hZ2UnKSkgdHlwZXMgKz0gJy5qcGcsIC5wbmcsIC5ibXAsICc7XHJcbiAgICAgIGlmICh0eXBlLmluY2x1ZGVzKCdodG1sJykpIHR5cGVzICs9ICcuaHRtbCwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3BkZicpKSB0eXBlcyArPSAnLnBkZiwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3htbCcpKSB0eXBlcyArPSAnLnhtbCwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3BsYWluJykpIHR5cGVzICs9ICcudHh0LCAnO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQWRpY2lvbmEgdGlwb3MgZGUgYXJxdWl2b3MgZG8gT2ZmaWNlIHNlIGluY2x1ZGVPZmZpY2VUeXBlcyBmb3IgdHJ1ZVxyXG4gICAgaWYgKHRoaXMuaW5jbHVkZU9mZmljZVR5cGVzKSB7XHJcbiAgICAgIHR5cGVzICs9ICcuZG9jLCAuZG9jeCwgLnBwdCwgLnBwdHgsICc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHR5cGVzLnNsaWNlKDAsIC0yKTsgLy8gUmVtb3ZlIGEgw7psdGltYSB2w61yZ3VsYSBlIGVzcGHDp29cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICpuZ0lmPVwiZm9ybUdyb3VwXCJcclxuICBjbGFzcz1cImZpbGUtdXBsb2FkLWNvbnRhaW5lciB3LWZ1bGxcIlxyXG4gIFtuZ0NsYXNzXT1cIntcclxuICAgICdpbnZhbGlkLWJvcmRlcic6XHJcbiAgICAgIGZvcm1Hcm91cC5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uaW52YWxpZCAmJlxyXG4gICAgICBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWQsXHJcbiAgICAnaGFzLWZpbGUnOiBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlLFxyXG4gIH1cIlxyXG4gIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxyXG4gIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXHJcbiAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxyXG4gIChjbGljayk9XCJ0cmlnZ2VyQ2xpY2soKVwiXHJcbiAgW3N0eWxlLndpZHRoXT1cIndpZHRoQ29tcG9uZW50XCJcclxuPlxyXG4gIDxpbnB1dFxyXG4gICAgdHlwZT1cImZpbGVcIlxyXG4gICAgI2ZpbGVJbnB1dFxyXG4gICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgIFthY2NlcHRdPVwic2V0QWNjZXB0KClcIlxyXG4gICAgaGlkZGVuXHJcbiAgLz5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlXCIgY2xhc3M9XCJkcm9wem9uZS1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2xvdWQtaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmNsb3VkX3VwbG9hZDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxwIGNsYXNzPVwibWFpbi10ZXh0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJibHVlLXRleHRcIj5DbGlxdWUgcGFyYSBzZWxlY2lvbmFyPC9zcGFuPiBvdSBhcnJhc3RlIGFxdWlcclxuICAgICAgPC9wPlxyXG5cclxuICAgICAgQGlmKHN1YnRpdGxlKCkpIHtcclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10ZXh0XCI+e3sgc3VidGl0bGUoKSB9fSAobWF4LiB7eyBtYXhTaXplRmlsZSgpIH19TUIpPC9wPlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10ZXh0XCI+UERGLCBJbWFnZW5zIChtYXguIHt7IG1heFNpemVGaWxlKCkgfX1NQik8L3A+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImZvcm1Hcm91cC5nZXQoZm9ybUNvbnRyb2xOYW1lKT8udmFsdWUgYXMgZmlsZVwiXHJcbiAgICBjbGFzcz1cInNlbGVjdGVkLWZpbGUtY2FyZFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWluZm9cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgZmlsZS1pY29uXCI+ZGVzY3JpcHRpb248L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIiBbdGl0bGVdPVwiZmlsZS5uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBpY29uPVwicGkgcGktdGltZXNcIlxyXG4gICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLWRhbmdlciBjbG9zZS1idG5cIlxyXG4gICAgICAgIChjbGljayk9XCJkZWxldGVGaWxlKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgID48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIlxyXG4gICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwicHJvZ3Jlc3NWYWx1ZSgpKGZpbGUuc2l6ZSlcIlxyXG4gICAgICAgICAgW2NsYXNzLmxpbWl0LWV4Y2VlZGVkXT1cInByb2dyZXNzVmFsdWUoKShmaWxlLnNpemUpID49IDEwMFwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTFcIj5cclxuICAgICAgICA8c21hbGwgY2xhc3M9XCJlcnJvci10ZXh0XCIgKm5nSWY9XCJwcm9ncmVzc1ZhbHVlKCkoZmlsZS5zaXplKSA+PSAxMDBcIlxyXG4gICAgICAgICAgPkxpbWl0ZSBleGNlZGlkbzwvc21hbGxcclxuICAgICAgICA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXNpemUtbGFiZWwgbWwtYXV0b1wiPnt7XHJcbiAgICAgICAgICBmb3JtYXRCeXRlcyhmaWxlLnNpemUpXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHBcclxuICAqbmdJZj1cIlxyXG4gICAgZm9ybUdyb3VwLmdldChmb3JtQ29udHJvbE5hbWUpPy5pbnZhbGlkICYmXHJcbiAgICBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWRcclxuICBcIlxyXG4gIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXHJcbj5cclxuICBDYW1wbyBvYnJpZ2F0w7NyaW9cclxuPC9wPlxyXG4iXX0=
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS11cGxvYWQtbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWZpbGUtdXBsb2FkLW5ldy9rdi1maWxlLXVwbG9hZC1uZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQtbmV3L2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3ZILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7O0FBYWhGLE1BQU0sT0FBTyx3QkFBd0I7SUFrQm5DLG9CQUFvQjtJQUVwQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWpCbkQsbUJBQWMsR0FBVyxPQUFPLENBQUM7UUFDakMsb0JBQWUsR0FBVyxNQUFNLENBQUM7UUFFakMsbUJBQWMsR0FBYSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25ILDJCQUFzQixHQUFXLEVBQUUsQ0FBQztRQUNwQyx1QkFBa0IsR0FBWSxLQUFLLENBQUMsQ0FBQyxnREFBZ0Q7UUFFOUYsZ0JBQVcsR0FBRyxLQUFLLENB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Q0FBQztnQkFBRSxLQUFLLElBQUksUUFBUSxDQUFDO1lBQzVDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQUUsS0FBSyxJQUFJLFFBQVEsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztRQUVILHNFQUFzRTtRQUN0RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLEtBQUssSUFBSSw0QkFBNEIsQ0FBQztRQUN4QyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQ2hFLENBQUM7K0dBMU1VLHdCQUF3QjttR0FBeEIsd0JBQXdCLGl5RENsQnJDLDJyRkFzRkEscWhGRDNFSSxZQUFZLGdPQUNaLG1CQUFtQiw4QkFDbkIsWUFBWTs7NEZBS0gsd0JBQXdCO2tCQVhwQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFlBQVk7cUJBQ2I7d0ZBS1EsU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFLSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBRWlCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBpbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcGkvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IEt2UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICcuLi9rdi1wcm9ncmVzcy1iYXIva3YtcHJvZ3Jlc3MtYmFyLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWZpbGUtdXBsb2FkLW5ldycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBLdlByb2dyZXNzQmFyTW9kdWxlLCBcclxuICAgIEJ1dHRvbk1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWZpbGUtdXBsb2FkLW5ldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RmlsZVVwbG9hZE5ld0NvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSB3aWR0aENvbXBvbmVudDogc3RyaW5nID0gJzQwMHB4JztcclxuICBASW5wdXQoKSBoZWlnaHRDb21wb25lbnQ6IHN0cmluZyA9ICdhdXRvJztcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbiE6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWxpZEZpbGVUeXBlczogc3RyaW5nW10gPSBbJ2ltYWdlLycsICdhcHBsaWNhdGlvbi9wZGYnLCAndGV4dC9odG1sJywgJ3RleHQveG1sJywgJ2FwcGxpY2F0aW9uL3htbCcsICd0ZXh0L3BsYWluJ107XHJcbiAgQElucHV0KCkgdGFtYW5ob01heGltb1Blcm1pdGlkbzogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaW5jbHVkZU9mZmljZVR5cGVzOiBib29sZWFuID0gZmFsc2U7IC8vIFByb3ByaWVkYWRlIHBhcmEgY29udHJvbGFyIG9zIHRpcG9zIGRlIE9mZmljZVxyXG4gIFxyXG4gIG1heFNpemVGaWxlID0gaW5wdXQ8bnVtYmVyPigxMClcclxuICBzdWJ0aXRsZSA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpXHJcblxyXG4gIEBPdXRwdXQoKSBmaWxlRW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlbW92ZUZpbGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdpbnB1dFVwbG9hZCcpIGlucHV0VXBsb2FkITogRWxlbWVudFJlZjtcclxuICAvLyBObyB0b3BvIGRhIGNsYXNzZVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHsgfVxyXG5cclxuICAvLyBNw6l0b2RvIHBhcmEgZGlzcGFyYXIgbyBjbGlxdWUgc2VtIGVycm8gZGUgcHJvcHJpZWRhZGVcclxuICB0cmlnZ2VyQ2xpY2soKSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSk/LnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCB2YWxpZFR5cGVzID0gWy4uLnRoaXMudmFsaWRGaWxlVHlwZXNdO1xyXG5cclxuICAgIGlmICh0aGlzLmluY2x1ZGVPZmZpY2VUeXBlcykge1xyXG5cclxuICAgICAgdmFsaWRUeXBlcy5wdXNoKFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi9tc3dvcmQnLCAvLyAuZG9jXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JywgLy8gLmRvY3hcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLCAvLyAucHB0XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nIC8vIC5wcHR4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5maWxlcy5sZW5ndGggPT0gMCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGlzVmFsaWRGaWxlVHlwZSA9IHZhbGlkVHlwZXMuc29tZSh0eXBlID0+IGV2ZW50LnRhcmdldC5maWxlc1swXS50eXBlLnN0YXJ0c1dpdGgodHlwZSkgfHxcclxuICAgICAgKHR5cGUgPT09ICdhcHBsaWNhdGlvbi94bWwnICYmIGV2ZW50LnRhcmdldC5maWxlc1swXS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJykgfHxcclxuICAgICAgKHR5cGUgPT09ICd0ZXh0L3htbCcgJiYgZXZlbnQudGFyZ2V0LmZpbGVzWzBdLnR5cGUgPT09ICd0ZXh0L3htbCcpXHJcbiAgICApO1xyXG5cclxuICAgIGlmICghaXNWYWxpZEZpbGVUeXBlKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdEVycm9yKCdUaXBvIGRlIGFycXVpdm8gaW52w6FsaWRvJyk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuXHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShldmVudC50YXJnZXQuZmlsZXNbMF0pO1xyXG4gICAgdGhpcy5maWxlRW1pdC5lbWl0KGV2ZW50LnRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKCkge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5yZW1vdmVGaWxlRW1pdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5NYlNpemUgPSBjb21wdXRlZCgoKSA9PiAoYnl0ZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgaWYgKGJ5dGVzID09PSBudWxsIHx8IGJ5dGVzID09PSB1bmRlZmluZWQpIHtcclxuICAvLyAgICAgcmV0dXJuICcwIE1CJztcclxuICAvLyAgIH1cclxuXHJcbiAgLy8gICBjb25zdCBtYlNpemUgPSBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcblxyXG4gIC8vICAgcmV0dXJuIHRoaXMuZm9ybWF0Qnl0ZXMobWJTaXplLCAyKTtcclxuICAvLyB9KTtcclxuXHJcbiAgcHJvZ3Jlc3NWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IChieXRlczogYW55KSA9PiB7XHJcbiAgICBpZiAoYnl0ZXMgPT09IG51bGwgfHwgYnl0ZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYlNpemUgPSBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcbiAgICBsZXQgcHJvZ3Jlc3NWYWx1ZSA9IChOdW1iZXIobWJTaXplKSAvIHRoaXMubWF4U2l6ZUZpbGUoKSkgKiAxMDA7XHJcblxyXG4gICAgLy8gTGltaXRhIG8gdmFsb3IgZG8gcHJvZ3Jlc3NvIGVudHJlIDAgZSAxMDBcclxuICAgIHJldHVybiBNYXRoLm1pbihNYXRoLm1heChwcm9ncmVzc1ZhbHVlLCAwKSwgMTAwKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuUHJvZ3Jlc3NMYWJlbCA9IGNvbXB1dGVkKCgpID0+IChieXRlczogYW55KSA9PiB7XHJcbiAgICBpZiAoYnl0ZXMgPT09IG51bGwgfHwgYnl0ZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gJzAgTUInO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1iU2l6ZSA9IGJ5dGVzIC8gKDEwMjQgKiAxMDI0KTtcclxuICAgIC8vIGxldCBwcm9ncmVzc1ZhbHVlID0gKE51bWJlcihtYlNpemUpIC8gdGhpcy5tYXhTaXplRmlsZSgpKSAqIDEwMDtcclxuICAgIC8vIHRoaXMucHJvZ3Jlc3NWYWx1ZS5zZXQocHJvZ3Jlc3NWYWx1ZSk7XHJcbiAgICAvLyB0aGlzLnByb2dyZXNzVmFsdWUuc2V0KChtYlNpemUgLyB0aGlzLm1heFNpemVGaWxlKCkpKjEwMCk7XHJcbiAgICByZXR1cm4gYCR7bWJTaXplLnRvRml4ZWQoMil9LyR7dGhpcy5tYXhTaXplRmlsZSgpfSBNQmA7XHJcbiAgfSlcclxuXHJcbiAgZm9ybWF0Qnl0ZXMoYnl0ZXM6IGFueSwgZGVjaW1hbHMgPSAyKSB7XHJcbiAgICBpZiAoIWJ5dGVzKSB7XHJcbiAgICAgIHJldHVybiBcIjAgQnl0ZXNcIjtcclxuICAgIH1cclxuICAgIGNvbnN0IGsgPSAxMDI0O1xyXG4gICAgY29uc3QgZG0gPSBkZWNpbWFscyA8PSAwID8gMCA6IGRlY2ltYWxzO1xyXG4gICAgY29uc3Qgc2l6ZXMgPSBbXCJCeXRlc1wiLCBcIktCXCIsIFwiTUJcIiwgXCJHQlwiLCBcIlRCXCIsIFwiUEJcIiwgXCJFQlwiLCBcIlpCXCIsIFwiWUJcIl07XHJcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChkbSkpICsgXCIgXCIgKyBzaXplc1tpXTtcclxuICB9XHJcblxyXG4gIGFkZERyYWdPdmVyQ2xhc3MoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2RyYWdvdmVyJyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnb3ZlcicpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsZShmaWxlOiBGaWxlKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5jbHVkZU9mZmljZVR5cGVzKSB7XHJcbiAgICAgIGxldCB2YWxpZFR5cGVzID0gWy4uLnRoaXMudmFsaWRGaWxlVHlwZXNdO1xyXG5cclxuICAgICAgdmFsaWRUeXBlcy5wdXNoKFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi9tc3dvcmQnLCAvLyAuZG9jXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JywgLy8gLmRvY3hcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLCAvLyAucHB0XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nIC8vIC5wcHR4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNWYWxpZEZpbGVUeXBlID0gdGhpcy52YWxpZEZpbGVUeXBlcy5zb21lKHR5cGUgPT5cclxuICAgICAgZmlsZS50eXBlLnN0YXJ0c1dpdGgodHlwZSkgfHxcclxuICAgICAgZmlsZS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJyB8fFxyXG4gICAgICBmaWxlLnR5cGUgPT09ICd0ZXh0L3htbCdcclxuICAgICk7XHJcblxyXG4gICAgaWYgKCFpc1ZhbGlkRmlsZVR5cGUpIHtcclxuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnRvYXN0RXJyb3IoJ1RpcG8gZGUgYXJxdWl2byBpbnbDoWxpZG8nKTtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKGZpbGUpO1xyXG5cclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG4gICAgaWYgKGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xyXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgIH0gZWxzZSBpZiAoZmlsZS50eXBlID09PSAnYXBwbGljYXRpb24veG1sJyB8fCBmaWxlLnR5cGUgPT09ICd0ZXh0L3htbCcpIHtcclxuICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWxlRW1pdC5lbWl0KGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmFkZERyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5yZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZURyYWdPdmVyQ2xhc3MoZXZlbnQpO1xyXG5cclxuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIgJiYgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVGaWxlKGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBY2NlcHQoKTogc3RyaW5nIHtcclxuICAgIGxldCB0eXBlcyA9ICcnXHJcblxyXG4gICAgdGhpcy52YWxpZEZpbGVUeXBlcy5mb3JFYWNoKHR5cGUgPT4ge1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygnaW1hZ2UnKSkgdHlwZXMgKz0gJy5qcGcsIC5wbmcsIC5ibXAsICc7XHJcbiAgICAgIGlmICh0eXBlLmluY2x1ZGVzKCdodG1sJykpIHR5cGVzICs9ICcuaHRtbCwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3BkZicpKSB0eXBlcyArPSAnLnBkZiwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3htbCcpKSB0eXBlcyArPSAnLnhtbCwgJztcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3BsYWluJykpIHR5cGVzICs9ICcudHh0LCAnO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gQWRpY2lvbmEgdGlwb3MgZGUgYXJxdWl2b3MgZG8gT2ZmaWNlIHNlIGluY2x1ZGVPZmZpY2VUeXBlcyBmb3IgdHJ1ZVxyXG4gICAgaWYgKHRoaXMuaW5jbHVkZU9mZmljZVR5cGVzKSB7XHJcbiAgICAgIHR5cGVzICs9ICcuZG9jLCAuZG9jeCwgLnBwdCwgLnBwdHgsICc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHR5cGVzLnNsaWNlKDAsIC0yKTsgLy8gUmVtb3ZlIGEgw7psdGltYSB2w61yZ3VsYSBlIGVzcGHDp29cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICpuZ0lmPVwiZm9ybUdyb3VwXCJcclxuICBjbGFzcz1cImZpbGUtdXBsb2FkLWNvbnRhaW5lciB3LWZ1bGxcIlxyXG4gIFtuZ0NsYXNzXT1cIntcclxuICAgICdpbnZhbGlkLWJvcmRlcic6XHJcbiAgICAgIGZvcm1Hcm91cC5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uaW52YWxpZCAmJlxyXG4gICAgICBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWQsXHJcbiAgICAnaGFzLWZpbGUnOiBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlLFxyXG4gIH1cIlxyXG4gIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxyXG4gIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXHJcbiAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxyXG4gIChjbGljayk9XCJ0cmlnZ2VyQ2xpY2soKVwiXHJcbiAgW3N0eWxlLndpZHRoXT1cIndpZHRoQ29tcG9uZW50XCJcclxuPlxyXG4gIDxpbnB1dFxyXG4gICAgdHlwZT1cImZpbGVcIlxyXG4gICAgI2ZpbGVJbnB1dFxyXG4gICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgIFthY2NlcHRdPVwic2V0QWNjZXB0KClcIlxyXG4gICAgaGlkZGVuXHJcbiAgLz5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnZhbHVlXCIgY2xhc3M9XCJkcm9wem9uZS1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2xvdWQtaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmNsb3VkX3VwbG9hZDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxwIGNsYXNzPVwibWFpbi10ZXh0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJibHVlLXRleHRcIj5DbGlxdWUgcGFyYSBzZWxlY2lvbmFyPC9zcGFuPiBvdSBhcnJhc3RlIGFxdWlcclxuICAgICAgPC9wPlxyXG5cclxuICAgICAgQGlmKHN1YnRpdGxlKCkpIHtcclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10ZXh0XCI+e3sgc3VidGl0bGUoKSB9fSAobWF4LiB7eyBtYXhTaXplRmlsZSgpIH19TUIpPC9wPlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10ZXh0XCI+UERGLCBJbWFnZW5zIChtYXguIHt7IG1heFNpemVGaWxlKCkgfX1NQik8L3A+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImZvcm1Hcm91cC5nZXQoZm9ybUNvbnRyb2xOYW1lKT8udmFsdWUgYXMgZmlsZVwiXHJcbiAgICBjbGFzcz1cInNlbGVjdGVkLWZpbGUtY2FyZFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWluZm9cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgZmlsZS1pY29uXCI+ZGVzY3JpcHRpb248L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIiBbdGl0bGVdPVwiZmlsZS5uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBpY29uPVwicGkgcGktdGltZXNcIlxyXG4gICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLWRhbmdlciBjbG9zZS1idG5cIlxyXG4gICAgICAgIChjbGljayk9XCJkZWxldGVGaWxlKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgID48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIlxyXG4gICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwicHJvZ3Jlc3NWYWx1ZSgpKGZpbGUuc2l6ZSlcIlxyXG4gICAgICAgICAgW2NsYXNzLmxpbWl0LWV4Y2VlZGVkXT1cInByb2dyZXNzVmFsdWUoKShmaWxlLnNpemUpID49IDEwMFwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTFcIj5cclxuICAgICAgICA8c21hbGwgY2xhc3M9XCJlcnJvci10ZXh0XCIgKm5nSWY9XCJwcm9ncmVzc1ZhbHVlKCkoZmlsZS5zaXplKSA+PSAxMDBcIlxyXG4gICAgICAgICAgPkxpbWl0ZSBleGNlZGlkbzwvc21hbGxcclxuICAgICAgICA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXNpemUtbGFiZWwgbWwtYXV0b1wiPnt7XHJcbiAgICAgICAgICBmb3JtYXRCeXRlcyhmaWxlLnNpemUpXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHBcclxuICAqbmdJZj1cIlxyXG4gICAgZm9ybUdyb3VwLmdldChmb3JtQ29udHJvbE5hbWUpPy5pbnZhbGlkICYmXHJcbiAgICBmb3JtR3JvdXAuZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWRcclxuICBcIlxyXG4gIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXHJcbj5cclxuICBDYW1wbyBvYnJpZ2F0w7NyaW9cclxuPC9wPlxyXG4iXX0=
@@ -26,10 +26,10 @@ export class KvFileViewerComponent {
26
26
  const text = await new Response(this.blob).text();
27
27
  this.xmlFormat = vkbeautify.xml(text);
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvFileViewerComponent, selector: "kv-file-viewer", inputs: { arquivo: "arquivo", type: "type", blob: "blob", width: "width", height: "height" }, usesOnChanges: true, ngImport: i0, template: "<img class=\"img\" *ngIf=\"type.match('image')\" [src]=\"sanitizedPdfSrc\" />\r\n\r\n<iframe\r\n class=\"txt-pdf\"\r\n *ngIf=\"type == 'text/plain' || type == 'application/pdf'\"\r\n [src]=\"sanitizedPdfSrc\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n>\r\n</iframe>\r\n\r\n<div *ngIf=\"xmlFormat\" class=\"txt-pdf xml-viewer\">\r\n <pre lang=\"xml\">\r\n {{ xmlFormat }}\r\n </pre>\r\n</div>\r\n", styles: [".img{width:100%;height:100%;overflow:auto}.xml-viewer{overflow:auto;font-size:13px}.xml-viewer .tag{color:#6f517e}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvFileViewerComponent, selector: "kv-file-viewer", inputs: { arquivo: "arquivo", type: "type", blob: "blob", width: "width", height: "height" }, usesOnChanges: true, ngImport: i0, template: "<img class=\"img\" *ngIf=\"type.match('image')\" [src]=\"sanitizedPdfSrc\" />\r\n\r\n<iframe\r\n class=\"txt-pdf\"\r\n *ngIf=\"type == 'text/plain' || type == 'application/pdf'\"\r\n [src]=\"sanitizedPdfSrc\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n>\r\n</iframe>\r\n\r\n<div *ngIf=\"xmlFormat\" class=\"txt-pdf xml-viewer\">\r\n <pre lang=\"xml\">\r\n {{ xmlFormat }}\r\n </pre>\r\n</div>\r\n", styles: [".img{width:100%;height:100%;overflow:auto}.xml-viewer{overflow:auto;font-size:13px}.xml-viewer .tag{color:#6f517e}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{ selector: 'kv-file-viewer', template: "<img class=\"img\" *ngIf=\"type.match('image')\" [src]=\"sanitizedPdfSrc\" />\r\n\r\n<iframe\r\n class=\"txt-pdf\"\r\n *ngIf=\"type == 'text/plain' || type == 'application/pdf'\"\r\n [src]=\"sanitizedPdfSrc\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n>\r\n</iframe>\r\n\r\n<div *ngIf=\"xmlFormat\" class=\"txt-pdf xml-viewer\">\r\n <pre lang=\"xml\">\r\n {{ xmlFormat }}\r\n </pre>\r\n</div>\r\n", styles: [".img{width:100%;height:100%;overflow:auto}.xml-viewer{overflow:auto;font-size:13px}.xml-viewer .tag{color:#6f517e}\n"] }]
35
35
  }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { arquivo: [{
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
43
43
  }], height: [{
44
44
  type: Input
45
45
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS12aWV3ZXIva3YtZmlsZS12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS12aWV3ZXIva3YtZmlsZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDOzs7O0FBT3pDLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQVBsQyxVQUFLLEdBQVUsTUFBTSxDQUFDO1FBQ3RCLFdBQU0sR0FBVyxPQUFPLENBQUM7UUFJbEMsb0JBQWUsR0FBb0IsRUFBRSxDQUFDO0lBRVEsQ0FBQztJQUUvQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLGlCQUFpQjtZQUMzRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWE7UUFDakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OEdBL0JVLHFCQUFxQjtrR0FBckIscUJBQXFCLHlLQ1RsQyw4WkFnQkE7OzJGRFBhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxnQkFBZ0I7aUZBS2pCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgKiBhcyB2a2JlYXV0aWZ5IGZyb20gJ3ZrYmVhdXRpZnknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1maWxlLXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWZpbGUtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4va3YtZmlsZS12aWV3ZXIuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZGaWxlVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGFycXVpdm8hOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBibG9iITogQmxvYjtcclxuICBASW5wdXQoKSB3aWR0aDpzdHJpbmcgPSAnMTAwJSc7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnNzAwcHgnO1xyXG4gIFxyXG4gIHhtbEJlYXV0aWZpZWQ6IGFueTtcclxuICB4bWxGb3JtYXQ6IGFueTtcclxuICBzYW5pdGl6ZWRQZGZTcmM6IFNhZmVSZXNvdXJjZVVybCA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT0gJ3RleHQveG1sJyB8fCB0aGlzLnR5cGUgPT0gJ2FwcGxpY2F0aW9uL3htbCcpXHJcbiAgICAgIHRoaXMudmlzdWFsaXphclhtbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2FycXVpdm8nXSAmJiB0aGlzLmFycXVpdm8pIHtcclxuICAgICAgdGhpcy5zYW5pdGl6ZWRQZGZTcmMgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodGhpcy5hcnF1aXZvKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNhbml0aXplcih1cmw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgdmlzdWFsaXphclhtbCgpIHtcclxuICAgIGNvbnN0IHRleHQgPSBhd2FpdCBuZXcgUmVzcG9uc2UodGhpcy5ibG9iKS50ZXh0KCk7XHJcbiAgICB0aGlzLnhtbEZvcm1hdCA9IHZrYmVhdXRpZnkueG1sKHRleHQpO1xyXG4gIH1cclxufVxyXG4iLCI8aW1nIGNsYXNzPVwiaW1nXCIgKm5nSWY9XCJ0eXBlLm1hdGNoKCdpbWFnZScpXCIgW3NyY109XCJzYW5pdGl6ZWRQZGZTcmNcIiAvPlxyXG5cclxuPGlmcmFtZVxyXG4gIGNsYXNzPVwidHh0LXBkZlwiXHJcbiAgKm5nSWY9XCJ0eXBlID09ICd0ZXh0L3BsYWluJyB8fCB0eXBlID09ICdhcHBsaWNhdGlvbi9wZGYnXCJcclxuICBbc3JjXT1cInNhbml0aXplZFBkZlNyY1wiXHJcbiAgW3dpZHRoXT1cIndpZHRoXCJcclxuICBbaGVpZ2h0XT1cImhlaWdodFwiXHJcbj5cclxuPC9pZnJhbWU+XHJcblxyXG48ZGl2ICpuZ0lmPVwieG1sRm9ybWF0XCIgY2xhc3M9XCJ0eHQtcGRmIHhtbC12aWV3ZXJcIj5cclxuICA8cHJlIGxhbmc9XCJ4bWxcIj5cclxuICAgIHt7IHhtbEZvcm1hdCB9fVxyXG4gIDwvcHJlPlxyXG48L2Rpdj5cclxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS12aWV3ZXIva3YtZmlsZS12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS12aWV3ZXIva3YtZmlsZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDOzs7O0FBT3pDLE1BQU0sT0FBTyxxQkFBcUI7SUFXaEMsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQVBsQyxVQUFLLEdBQVUsTUFBTSxDQUFDO1FBQ3RCLFdBQU0sR0FBVyxPQUFPLENBQUM7UUFJbEMsb0JBQWUsR0FBb0IsRUFBRSxDQUFDO0lBRVEsQ0FBQztJQUUvQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLGlCQUFpQjtZQUMzRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWE7UUFDakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBL0JVLHFCQUFxQjttR0FBckIscUJBQXFCLHlLQ1RsQyw4WkFnQkE7OzRGRFBhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxnQkFBZ0I7aUZBS2pCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgKiBhcyB2a2JlYXV0aWZ5IGZyb20gJ3ZrYmVhdXRpZnknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1maWxlLXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWZpbGUtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4va3YtZmlsZS12aWV3ZXIuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZGaWxlVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGFycXVpdm8hOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBibG9iITogQmxvYjtcclxuICBASW5wdXQoKSB3aWR0aDpzdHJpbmcgPSAnMTAwJSc7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgPSAnNzAwcHgnO1xyXG4gIFxyXG4gIHhtbEJlYXV0aWZpZWQ6IGFueTtcclxuICB4bWxGb3JtYXQ6IGFueTtcclxuICBzYW5pdGl6ZWRQZGZTcmM6IFNhZmVSZXNvdXJjZVVybCA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT0gJ3RleHQveG1sJyB8fCB0aGlzLnR5cGUgPT0gJ2FwcGxpY2F0aW9uL3htbCcpXHJcbiAgICAgIHRoaXMudmlzdWFsaXphclhtbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2FycXVpdm8nXSAmJiB0aGlzLmFycXVpdm8pIHtcclxuICAgICAgdGhpcy5zYW5pdGl6ZWRQZGZTcmMgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodGhpcy5hcnF1aXZvKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNhbml0aXplcih1cmw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgdmlzdWFsaXphclhtbCgpIHtcclxuICAgIGNvbnN0IHRleHQgPSBhd2FpdCBuZXcgUmVzcG9uc2UodGhpcy5ibG9iKS50ZXh0KCk7XHJcbiAgICB0aGlzLnhtbEZvcm1hdCA9IHZrYmVhdXRpZnkueG1sKHRleHQpO1xyXG4gIH1cclxufVxyXG4iLCI8aW1nIGNsYXNzPVwiaW1nXCIgKm5nSWY9XCJ0eXBlLm1hdGNoKCdpbWFnZScpXCIgW3NyY109XCJzYW5pdGl6ZWRQZGZTcmNcIiAvPlxyXG5cclxuPGlmcmFtZVxyXG4gIGNsYXNzPVwidHh0LXBkZlwiXHJcbiAgKm5nSWY9XCJ0eXBlID09ICd0ZXh0L3BsYWluJyB8fCB0eXBlID09ICdhcHBsaWNhdGlvbi9wZGYnXCJcclxuICBbc3JjXT1cInNhbml0aXplZFBkZlNyY1wiXHJcbiAgW3dpZHRoXT1cIndpZHRoXCJcclxuICBbaGVpZ2h0XT1cImhlaWdodFwiXHJcbj5cclxuPC9pZnJhbWU+XHJcblxyXG48ZGl2ICpuZ0lmPVwieG1sRm9ybWF0XCIgY2xhc3M9XCJ0eHQtcGRmIHhtbC12aWV3ZXJcIj5cclxuICA8cHJlIGxhbmc9XCJ4bWxcIj5cclxuICAgIHt7IHhtbEZvcm1hdCB9fVxyXG4gIDwvcHJlPlxyXG48L2Rpdj5cclxuIl19
@@ -3,11 +3,11 @@ import { CommonModule } from '@angular/common';
3
3
  import { KvFileViewerComponent } from './kv-file-viewer.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class KvFileViewerModule {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerModule, declarations: [KvFileViewerComponent], imports: [CommonModule], exports: [KvFileViewerComponent] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerModule, imports: [CommonModule] }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerModule, declarations: [KvFileViewerComponent], imports: [CommonModule], exports: [KvFileViewerComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerModule, imports: [CommonModule] }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [KvFileViewerComponent],
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
17
17
  exports: [KvFileViewerComponent]
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS12aWV3ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS12aWV3ZXIva3YtZmlsZS12aWV3ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVduRSxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixpQkFOZCxxQkFBcUIsYUFFbEMsWUFBWSxhQUVKLHFCQUFxQjsrR0FFcEIsa0JBQWtCLFlBSjNCLFlBQVk7OzJGQUlILGtCQUFrQjtrQkFQOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgS3ZGaWxlVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9rdi1maWxlLXZpZXdlci5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0t2RmlsZVZpZXdlckNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbS3ZGaWxlVmlld2VyQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZGaWxlVmlld2VyTW9kdWxlIHsgfVxyXG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS12aWV3ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS12aWV3ZXIva3YtZmlsZS12aWV3ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVduRSxNQUFNLE9BQU8sa0JBQWtCOytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFOZCxxQkFBcUIsYUFFbEMsWUFBWSxhQUVKLHFCQUFxQjtnSEFFcEIsa0JBQWtCLFlBSjNCLFlBQVk7OzRGQUlILGtCQUFrQjtrQkFQOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgS3ZGaWxlVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9rdi1maWxlLXZpZXdlci5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0t2RmlsZVZpZXdlckNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbS3ZGaWxlVmlld2VyQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZGaWxlVmlld2VyTW9kdWxlIHsgfVxyXG4iXX0=
@@ -48,10 +48,10 @@ export class KvFileViewerNovoComponent {
48
48
  const text = await new Response(this.blob).text();
49
49
  this.xmlFormat = vkbeautify.xml(text);
50
50
  }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerNovoComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvFileViewerNovoComponent, selector: "kv-file-viewer-novo", inputs: { arquivo: "arquivo", type: "type", blob: "blob", width: "width", height: "height" }, usesOnChanges: true, ngImport: i0, template: "<img class=\"img\" *ngIf=\"type.match('image')\" [src]=\"sanitizedPdfSrc\" />\r\n\r\n<iframe\r\n class=\"txt-pdf\"\r\n *ngIf=\"type == 'text/plain'\"\r\n [src]=\"sanitizedPdfSrc\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n>\r\n</iframe>\r\n\r\n<div *ngIf=\"xmlFormat\" class=\"txt-pdf xml-viewer\">\r\n <pre lang=\"xml\">\r\n {{ xmlFormat }}\r\n </pre>\r\n</div>\r\n\r\n<pdf-viewer\r\n class=\"txt-pdf-viewer\"\r\n [src]=\"pdffile\"\r\n *ngIf=\"type == 'application/pdf'\"\r\n [rotation]=\"0\"\r\n [original-size]=\"true\"\r\n [show-all]=\"true\"\r\n [fit-to-page]=\"true\"\r\n [zoom]=\"1\" \r\n [stick-to-page]=\"false\"\r\n [render-text]=\"true\"\r\n [external-link-target]=\"'blank'\"\r\n [autoresize]=\"true\"\r\n [show-borders]=\"false\"\r\n [ngStyle]=\"{ width: width, height: height }\"\r\n></pdf-viewer>\r\n\r\n", styles: [".img{width:100%;height:100%;overflow:auto}.txt-pdf-viewer{overflow:auto}.xml-viewer{overflow:auto;font-size:13px}.xml-viewer .tag{color:#6f517e}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }] }); }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerNovoComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KvFileViewerNovoComponent, selector: "kv-file-viewer-novo", inputs: { arquivo: "arquivo", type: "type", blob: "blob", width: "width", height: "height" }, usesOnChanges: true, ngImport: i0, template: "<img class=\"img\" *ngIf=\"type.match('image')\" [src]=\"sanitizedPdfSrc\" />\r\n\r\n<iframe\r\n class=\"txt-pdf\"\r\n *ngIf=\"type == 'text/plain'\"\r\n [src]=\"sanitizedPdfSrc\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n>\r\n</iframe>\r\n\r\n<div *ngIf=\"xmlFormat\" class=\"txt-pdf xml-viewer\">\r\n <pre lang=\"xml\">\r\n {{ xmlFormat }}\r\n </pre>\r\n</div>\r\n\r\n<pdf-viewer\r\n class=\"txt-pdf-viewer\"\r\n [src]=\"pdffile\"\r\n *ngIf=\"type == 'application/pdf'\"\r\n [rotation]=\"0\"\r\n [original-size]=\"true\"\r\n [show-all]=\"true\"\r\n [fit-to-page]=\"true\"\r\n [zoom]=\"1\" \r\n [stick-to-page]=\"false\"\r\n [render-text]=\"true\"\r\n [external-link-target]=\"'blank'\"\r\n [autoresize]=\"true\"\r\n [show-borders]=\"false\"\r\n [ngStyle]=\"{ width: width, height: height }\"\r\n></pdf-viewer>\r\n\r\n", styles: [".img{width:100%;height:100%;overflow:auto}.txt-pdf-viewer{overflow:auto}.xml-viewer{overflow:auto;font-size:13px}.xml-viewer .tag{color:#6f517e}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }] }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerNovoComponent, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerNovoComponent, decorators: [{
55
55
  type: Component,
56
56
  args: [{ selector: 'kv-file-viewer-novo', template: "<img class=\"img\" *ngIf=\"type.match('image')\" [src]=\"sanitizedPdfSrc\" />\r\n\r\n<iframe\r\n class=\"txt-pdf\"\r\n *ngIf=\"type == 'text/plain'\"\r\n [src]=\"sanitizedPdfSrc\"\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n>\r\n</iframe>\r\n\r\n<div *ngIf=\"xmlFormat\" class=\"txt-pdf xml-viewer\">\r\n <pre lang=\"xml\">\r\n {{ xmlFormat }}\r\n </pre>\r\n</div>\r\n\r\n<pdf-viewer\r\n class=\"txt-pdf-viewer\"\r\n [src]=\"pdffile\"\r\n *ngIf=\"type == 'application/pdf'\"\r\n [rotation]=\"0\"\r\n [original-size]=\"true\"\r\n [show-all]=\"true\"\r\n [fit-to-page]=\"true\"\r\n [zoom]=\"1\" \r\n [stick-to-page]=\"false\"\r\n [render-text]=\"true\"\r\n [external-link-target]=\"'blank'\"\r\n [autoresize]=\"true\"\r\n [show-borders]=\"false\"\r\n [ngStyle]=\"{ width: width, height: height }\"\r\n></pdf-viewer>\r\n\r\n", styles: [".img{width:100%;height:100%;overflow:auto}.txt-pdf-viewer{overflow:auto}.xml-viewer{overflow:auto;font-size:13px}.xml-viewer .tag{color:#6f517e}\n"] }]
57
57
  }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { arquivo: [{
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
65
65
  }], height: [{
66
66
  type: Input
67
67
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS12aWV3ZXItbm92by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1maWxlLXZpZXdlci1ub3ZvL2t2LWZpbGUtdmlld2VyLW5vdm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS12aWV3ZXItbm92by9rdi1maWxlLXZpZXdlci1ub3ZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDOzs7OztBQU96QyxNQUFNLE9BQU8seUJBQXlCO0lBWXBDLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFSbEMsVUFBSyxHQUFXLE1BQU0sQ0FBQztRQUN2QixXQUFNLEdBQVcsT0FBTyxDQUFDO1FBS2xDLG9CQUFlLEdBQW9CLEVBQUUsQ0FBQztJQUVRLENBQUM7SUFFL0MsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxpQkFBaUI7WUFDM0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUVsRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksaUJBQWlCO2dCQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzs7Z0JBQ3BELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBR0QsZ0JBQWdCO1FBQ2QsNkVBQTZFO1FBQzdFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWhFLCtCQUErQjtRQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQ2xFLG9CQUFvQixDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUdELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsYUFBYTtRQUNYLDZFQUE2RTtRQUM3RSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVoRSx1Q0FBdUM7UUFDdkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU5QixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxDQUFDLENBQUM7UUFFRixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFHRCxLQUFLLENBQUMsYUFBYTtRQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs4R0EvRFUseUJBQXlCO2tHQUF6Qix5QkFBeUIsOEtDZnRDLHExQkFrQ0E7OzJGRG5CYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UscUJBQXFCO2lGQUt0QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgKiBhcyB2a2JlYXV0aWZ5IGZyb20gJ3ZrYmVhdXRpZnknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1maWxlLXZpZXdlci1ub3ZvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtZmlsZS12aWV3ZXItbm92by5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWZpbGUtdmlld2VyLW5vdm8uY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZGaWxlVmlld2VyTm92b0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBhcnF1aXZvITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHR5cGUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYmxvYiE6IEJsb2I7XHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICcxMDAlJztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9ICc1MDBweCc7XHJcblxyXG4gIHBkZmZpbGU6IGFueTtcclxuICB4bWxCZWF1dGlmaWVkOiBhbnk7XHJcbiAgeG1sRm9ybWF0OiBhbnk7XHJcbiAgc2FuaXRpemVkUGRmU3JjOiBTYWZlUmVzb3VyY2VVcmwgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50eXBlID09ICd0ZXh0L3htbCcgfHwgdGhpcy50eXBlID09ICdhcHBsaWNhdGlvbi94bWwnKVxyXG4gICAgICB0aGlzLnZpc3VhbGl6YXJYbWwoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzWydhcnF1aXZvJ10gJiYgdGhpcy5hcnF1aXZvKSB7XHJcbiAgICAgIC8vIENvcnJpZ2UgcXVhbHF1ZXIgb2NvcnLDqm5jaWEgZGUgXCIuLlwiIG5vIG5vbWUgZG8gYXJxdWl2b1xyXG4gICAgICB0aGlzLmFycXVpdm8gPSB0aGlzLmFycXVpdm8ucmVwbGFjZSgvXFwuXFwuL2csICcuJyk7XHJcbiAgXHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ2FwcGxpY2F0aW9uL3BkZicpIHRoaXMudmlzdWFsaXphclBERigpO1xyXG4gICAgICBlbHNlIHRoaXMudmlzdWFsaXphcklmcmFtZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgdmlzdWFsaXphcklmcmFtZSgpIHtcclxuICAgIC8vIENvcnJpZ2UgcXVhbHF1ZXIgb2NvcnLDqm5jaWEgZGUgZG9pcyBwb250b3MgY29uc2VjdXRpdm9zIG5vIG5vbWUgZG8gYXJxdWl2b1xyXG4gICAgY29uc3Qgbm9tZUFycXVpdm9Db3JyaWdpZG8gPSB0aGlzLmFycXVpdm8ucmVwbGFjZSgvXFwuXFwuL2csICcuJyk7XHJcbiAgXHJcbiAgICAvLyBTYW5pdGl6YSBvIGNhbWluaG8gY29ycmlnaWRvXHJcbiAgICB0aGlzLnNhbml0aXplZFBkZlNyYyA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcclxuICAgICAgbm9tZUFycXVpdm9Db3JyaWdpZG9cclxuICAgICk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICBnZXRTYW5pdGl6ZXIodXJsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodXJsKTtcclxuICB9XHJcblxyXG4gIHZpc3VhbGl6YXJQREYoKSB7XHJcbiAgICAvLyBDb3JyaWdlIHF1YWxxdWVyIG9jb3Jyw6puY2lhIGRlIGRvaXMgcG9udG9zIGNvbnNlY3V0aXZvcyBubyBub21lIGRvIGFycXVpdm9cclxuICAgIGNvbnN0IG5vbWVBcnF1aXZvQ29ycmlnaWRvID0gdGhpcy5hcnF1aXZvLnJlcGxhY2UoL1xcLlxcLi9nLCAnLicpO1xyXG4gIFxyXG4gICAgLy8gQ29udGludWEgbyBwcm9jZXNzYW1lbnRvIG5vcm1hbG1lbnRlXHJcbiAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICBcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucGRmZmlsZSA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgIH07XHJcbiAgXHJcbiAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIodGhpcy5ibG9iKTtcclxuICB9XHJcbiAgXHJcblxyXG4gIGFzeW5jIHZpc3VhbGl6YXJYbWwoKSB7XHJcbiAgICBjb25zdCB0ZXh0ID0gYXdhaXQgbmV3IFJlc3BvbnNlKHRoaXMuYmxvYikudGV4dCgpO1xyXG4gICAgdGhpcy54bWxGb3JtYXQgPSB2a2JlYXV0aWZ5LnhtbCh0ZXh0KTtcclxuICB9XHJcbn1cclxuIiwiPGltZyBjbGFzcz1cImltZ1wiICpuZ0lmPVwidHlwZS5tYXRjaCgnaW1hZ2UnKVwiIFtzcmNdPVwic2FuaXRpemVkUGRmU3JjXCIgLz5cclxuXHJcbjxpZnJhbWVcclxuICBjbGFzcz1cInR4dC1wZGZcIlxyXG4gICpuZ0lmPVwidHlwZSA9PSAndGV4dC9wbGFpbidcIlxyXG4gIFtzcmNdPVwic2FuaXRpemVkUGRmU3JjXCJcclxuICBbd2lkdGhdPVwid2lkdGhcIlxyXG4gIFtoZWlnaHRdPVwiaGVpZ2h0XCJcclxuPlxyXG48L2lmcmFtZT5cclxuXHJcbjxkaXYgKm5nSWY9XCJ4bWxGb3JtYXRcIiBjbGFzcz1cInR4dC1wZGYgeG1sLXZpZXdlclwiPlxyXG4gIDxwcmUgbGFuZz1cInhtbFwiPlxyXG4gICAge3sgeG1sRm9ybWF0IH19XHJcbiAgPC9wcmU+XHJcbjwvZGl2PlxyXG5cclxuPHBkZi12aWV3ZXJcclxuICBjbGFzcz1cInR4dC1wZGYtdmlld2VyXCJcclxuICBbc3JjXT1cInBkZmZpbGVcIlxyXG4gICpuZ0lmPVwidHlwZSA9PSAnYXBwbGljYXRpb24vcGRmJ1wiXHJcbiAgW3JvdGF0aW9uXT1cIjBcIlxyXG4gIFtvcmlnaW5hbC1zaXplXT1cInRydWVcIlxyXG4gIFtzaG93LWFsbF09XCJ0cnVlXCJcclxuICBbZml0LXRvLXBhZ2VdPVwidHJ1ZVwiXHJcbiAgW3pvb21dPVwiMVwiICBcclxuICBbc3RpY2stdG8tcGFnZV09XCJmYWxzZVwiXHJcbiAgW3JlbmRlci10ZXh0XT1cInRydWVcIlxyXG4gIFtleHRlcm5hbC1saW5rLXRhcmdldF09XCInYmxhbmsnXCJcclxuICBbYXV0b3Jlc2l6ZV09XCJ0cnVlXCJcclxuICBbc2hvdy1ib3JkZXJzXT1cImZhbHNlXCJcclxuICBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQgfVwiXHJcbj48L3BkZi12aWV3ZXI+XHJcblxyXG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS12aWV3ZXItbm92by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1maWxlLXZpZXdlci1ub3ZvL2t2LWZpbGUtdmlld2VyLW5vdm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS12aWV3ZXItbm92by9rdi1maWxlLXZpZXdlci1ub3ZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDOzs7OztBQU96QyxNQUFNLE9BQU8seUJBQXlCO0lBWXBDLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFSbEMsVUFBSyxHQUFXLE1BQU0sQ0FBQztRQUN2QixXQUFNLEdBQVcsT0FBTyxDQUFDO1FBS2xDLG9CQUFlLEdBQW9CLEVBQUUsQ0FBQztJQUVRLENBQUM7SUFFL0MsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxpQkFBaUI7WUFDM0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUVsRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksaUJBQWlCO2dCQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzs7Z0JBQ3BELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBR0QsZ0JBQWdCO1FBQ2QsNkVBQTZFO1FBQzdFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWhFLCtCQUErQjtRQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQ2xFLG9CQUFvQixDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUdELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsYUFBYTtRQUNYLDZFQUE2RTtRQUM3RSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVoRSx1Q0FBdUM7UUFDdkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU5QixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxDQUFDLENBQUM7UUFFRixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFHRCxLQUFLLENBQUMsYUFBYTtRQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0EvRFUseUJBQXlCO21HQUF6Qix5QkFBeUIsOEtDZnRDLHExQkFrQ0E7OzRGRG5CYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UscUJBQXFCO2lGQUt0QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgKiBhcyB2a2JlYXV0aWZ5IGZyb20gJ3ZrYmVhdXRpZnknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1maWxlLXZpZXdlci1ub3ZvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtZmlsZS12aWV3ZXItbm92by5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWZpbGUtdmlld2VyLW5vdm8uY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZGaWxlVmlld2VyTm92b0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBhcnF1aXZvITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHR5cGUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYmxvYiE6IEJsb2I7XHJcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICcxMDAlJztcclxuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyA9ICc1MDBweCc7XHJcblxyXG4gIHBkZmZpbGU6IGFueTtcclxuICB4bWxCZWF1dGlmaWVkOiBhbnk7XHJcbiAgeG1sRm9ybWF0OiBhbnk7XHJcbiAgc2FuaXRpemVkUGRmU3JjOiBTYWZlUmVzb3VyY2VVcmwgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50eXBlID09ICd0ZXh0L3htbCcgfHwgdGhpcy50eXBlID09ICdhcHBsaWNhdGlvbi94bWwnKVxyXG4gICAgICB0aGlzLnZpc3VhbGl6YXJYbWwoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzWydhcnF1aXZvJ10gJiYgdGhpcy5hcnF1aXZvKSB7XHJcbiAgICAgIC8vIENvcnJpZ2UgcXVhbHF1ZXIgb2NvcnLDqm5jaWEgZGUgXCIuLlwiIG5vIG5vbWUgZG8gYXJxdWl2b1xyXG4gICAgICB0aGlzLmFycXVpdm8gPSB0aGlzLmFycXVpdm8ucmVwbGFjZSgvXFwuXFwuL2csICcuJyk7XHJcbiAgXHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT0gJ2FwcGxpY2F0aW9uL3BkZicpIHRoaXMudmlzdWFsaXphclBERigpO1xyXG4gICAgICBlbHNlIHRoaXMudmlzdWFsaXphcklmcmFtZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgdmlzdWFsaXphcklmcmFtZSgpIHtcclxuICAgIC8vIENvcnJpZ2UgcXVhbHF1ZXIgb2NvcnLDqm5jaWEgZGUgZG9pcyBwb250b3MgY29uc2VjdXRpdm9zIG5vIG5vbWUgZG8gYXJxdWl2b1xyXG4gICAgY29uc3Qgbm9tZUFycXVpdm9Db3JyaWdpZG8gPSB0aGlzLmFycXVpdm8ucmVwbGFjZSgvXFwuXFwuL2csICcuJyk7XHJcbiAgXHJcbiAgICAvLyBTYW5pdGl6YSBvIGNhbWluaG8gY29ycmlnaWRvXHJcbiAgICB0aGlzLnNhbml0aXplZFBkZlNyYyA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcclxuICAgICAgbm9tZUFycXVpdm9Db3JyaWdpZG9cclxuICAgICk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICBnZXRTYW5pdGl6ZXIodXJsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodXJsKTtcclxuICB9XHJcblxyXG4gIHZpc3VhbGl6YXJQREYoKSB7XHJcbiAgICAvLyBDb3JyaWdlIHF1YWxxdWVyIG9jb3Jyw6puY2lhIGRlIGRvaXMgcG9udG9zIGNvbnNlY3V0aXZvcyBubyBub21lIGRvIGFycXVpdm9cclxuICAgIGNvbnN0IG5vbWVBcnF1aXZvQ29ycmlnaWRvID0gdGhpcy5hcnF1aXZvLnJlcGxhY2UoL1xcLlxcLi9nLCAnLicpO1xyXG4gIFxyXG4gICAgLy8gQ29udGludWEgbyBwcm9jZXNzYW1lbnRvIG5vcm1hbG1lbnRlXHJcbiAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICBcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucGRmZmlsZSA9IGUudGFyZ2V0LnJlc3VsdDtcclxuICAgIH07XHJcbiAgXHJcbiAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIodGhpcy5ibG9iKTtcclxuICB9XHJcbiAgXHJcblxyXG4gIGFzeW5jIHZpc3VhbGl6YXJYbWwoKSB7XHJcbiAgICBjb25zdCB0ZXh0ID0gYXdhaXQgbmV3IFJlc3BvbnNlKHRoaXMuYmxvYikudGV4dCgpO1xyXG4gICAgdGhpcy54bWxGb3JtYXQgPSB2a2JlYXV0aWZ5LnhtbCh0ZXh0KTtcclxuICB9XHJcbn1cclxuIiwiPGltZyBjbGFzcz1cImltZ1wiICpuZ0lmPVwidHlwZS5tYXRjaCgnaW1hZ2UnKVwiIFtzcmNdPVwic2FuaXRpemVkUGRmU3JjXCIgLz5cclxuXHJcbjxpZnJhbWVcclxuICBjbGFzcz1cInR4dC1wZGZcIlxyXG4gICpuZ0lmPVwidHlwZSA9PSAndGV4dC9wbGFpbidcIlxyXG4gIFtzcmNdPVwic2FuaXRpemVkUGRmU3JjXCJcclxuICBbd2lkdGhdPVwid2lkdGhcIlxyXG4gIFtoZWlnaHRdPVwiaGVpZ2h0XCJcclxuPlxyXG48L2lmcmFtZT5cclxuXHJcbjxkaXYgKm5nSWY9XCJ4bWxGb3JtYXRcIiBjbGFzcz1cInR4dC1wZGYgeG1sLXZpZXdlclwiPlxyXG4gIDxwcmUgbGFuZz1cInhtbFwiPlxyXG4gICAge3sgeG1sRm9ybWF0IH19XHJcbiAgPC9wcmU+XHJcbjwvZGl2PlxyXG5cclxuPHBkZi12aWV3ZXJcclxuICBjbGFzcz1cInR4dC1wZGYtdmlld2VyXCJcclxuICBbc3JjXT1cInBkZmZpbGVcIlxyXG4gICpuZ0lmPVwidHlwZSA9PSAnYXBwbGljYXRpb24vcGRmJ1wiXHJcbiAgW3JvdGF0aW9uXT1cIjBcIlxyXG4gIFtvcmlnaW5hbC1zaXplXT1cInRydWVcIlxyXG4gIFtzaG93LWFsbF09XCJ0cnVlXCJcclxuICBbZml0LXRvLXBhZ2VdPVwidHJ1ZVwiXHJcbiAgW3pvb21dPVwiMVwiICBcclxuICBbc3RpY2stdG8tcGFnZV09XCJmYWxzZVwiXHJcbiAgW3JlbmRlci10ZXh0XT1cInRydWVcIlxyXG4gIFtleHRlcm5hbC1saW5rLXRhcmdldF09XCInYmxhbmsnXCJcclxuICBbYXV0b3Jlc2l6ZV09XCJ0cnVlXCJcclxuICBbc2hvdy1ib3JkZXJzXT1cImZhbHNlXCJcclxuICBbbmdTdHlsZV09XCJ7IHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQgfVwiXHJcbj48L3BkZi12aWV3ZXI+XHJcblxyXG4iXX0=
@@ -4,13 +4,13 @@ import { KvFileViewerNovoComponent } from './kv-file-viewer-novo.component';
4
4
  import { PdfViewerModule } from 'ng2-pdf-viewer';
5
5
  import * as i0 from "@angular/core";
6
6
  export class KvFileViewerNovoModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerNovoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerNovoModule, declarations: [KvFileViewerNovoComponent], imports: [CommonModule,
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerNovoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerNovoModule, declarations: [KvFileViewerNovoComponent], imports: [CommonModule,
9
9
  PdfViewerModule], exports: [KvFileViewerNovoComponent] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerNovoModule, imports: [CommonModule,
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerNovoModule, imports: [CommonModule,
11
11
  PdfViewerModule] }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileViewerNovoModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KvFileViewerNovoModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  declarations: [KvFileViewerNovoComponent],
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
21
21
  exports: [KvFileViewerNovoComponent]
22
22
  }]
23
23
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS12aWV3ZXItbm92by5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1maWxlLXZpZXdlci1ub3ZvL2t2LWZpbGUtdmlld2VyLW5vdm8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFXakQsTUFBTSxPQUFPLHNCQUFzQjs4R0FBdEIsc0JBQXNCOytHQUF0QixzQkFBc0IsaUJBUGxCLHlCQUF5QixhQUV0QyxZQUFZO1lBQ1osZUFBZSxhQUVQLHlCQUF5QjsrR0FFeEIsc0JBQXNCLFlBTC9CLFlBQVk7WUFDWixlQUFlOzsyRkFJTixzQkFBc0I7a0JBUmxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEt2RmlsZVZpZXdlck5vdm9Db21wb25lbnQgfSBmcm9tICcuL2t2LWZpbGUtdmlld2VyLW5vdm8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGRmVmlld2VyTW9kdWxlIH0gZnJvbSAnbmcyLXBkZi12aWV3ZXInO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbS3ZGaWxlVmlld2VyTm92b0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUGRmVmlld2VyTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbS3ZGaWxlVmlld2VyTm92b0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RmlsZVZpZXdlck5vdm9Nb2R1bGUgeyB9XHJcbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS12aWV3ZXItbm92by5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1maWxlLXZpZXdlci1ub3ZvL2t2LWZpbGUtdmlld2VyLW5vdm8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFXakQsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO2dIQUF0QixzQkFBc0IsaUJBUGxCLHlCQUF5QixhQUV0QyxZQUFZO1lBQ1osZUFBZSxhQUVQLHlCQUF5QjtnSEFFeEIsc0JBQXNCLFlBTC9CLFlBQVk7WUFDWixlQUFlOzs0RkFJTixzQkFBc0I7a0JBUmxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEt2RmlsZVZpZXdlck5vdm9Db21wb25lbnQgfSBmcm9tICcuL2t2LWZpbGUtdmlld2VyLW5vdm8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGRmVmlld2VyTW9kdWxlIH0gZnJvbSAnbmcyLXBkZi12aWV3ZXInO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbS3ZGaWxlVmlld2VyTm92b0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUGRmVmlld2VyTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbS3ZGaWxlVmlld2VyTm92b0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEt2RmlsZVZpZXdlck5vdm9Nb2R1bGUgeyB9XHJcbiJdfQ==