ng-tailwind 3.30.368 → 4.0.0

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 (197) hide show
  1. package/README.md +24 -24
  2. package/animations/ngt-angular-animations.d.ts +5 -5
  3. package/base/ngt-base-ng-model.d.ts +32 -32
  4. package/bundles/ng-tailwind.umd.js +7689 -7631
  5. package/bundles/ng-tailwind.umd.js.map +1 -1
  6. package/components/ngt-action/ngt-action.component.d.ts +13 -13
  7. package/components/ngt-action/ngt-action.module.d.ts +2 -2
  8. package/components/ngt-button/ngt-button.component.d.ts +22 -22
  9. package/components/ngt-button/ngt-button.module.d.ts +2 -2
  10. package/components/ngt-checkbox/ngt-checkbox.component.d.ts +41 -41
  11. package/components/ngt-checkbox/ngt-checkbox.module.d.ts +2 -2
  12. package/components/ngt-content/ngt-content.component.d.ts +9 -9
  13. package/components/ngt-content/ngt-content.module.d.ts +2 -2
  14. package/components/ngt-datatable/ngt-datatable.component.d.ts +114 -114
  15. package/components/ngt-datatable/ngt-datatable.module.d.ts +2 -2
  16. package/components/ngt-datatable/ngt-tbody/ngt-tbody.component.d.ts +11 -11
  17. package/components/ngt-datatable/ngt-td/ngt-td.component.d.ts +11 -11
  18. package/components/ngt-datatable/ngt-td-check/ngt-td-check.component.d.ts +26 -26
  19. package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +48 -48
  20. package/components/ngt-datatable/ngt-th-check/ngt-th-check.component.d.ts +19 -19
  21. package/components/ngt-datatable/ngt-thead/ngt-thead.component.d.ts +10 -10
  22. package/components/ngt-datatable/ngt-tr/ngt-tr.component.d.ts +17 -17
  23. package/components/ngt-date/ngt-date.component.d.ts +75 -75
  24. package/components/ngt-date/ngt-date.module.d.ts +2 -2
  25. package/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.d.ts +5 -5
  26. package/components/ngt-dropdown/ngt-dropdown.component.d.ts +48 -48
  27. package/components/ngt-dropdown/ngt-dropdown.module.d.ts +2 -2
  28. package/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.d.ts +11 -11
  29. package/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.d.ts +22 -22
  30. package/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.d.ts +21 -21
  31. package/components/ngt-dropzone/ngt-dropzone.component.d.ts +108 -108
  32. package/components/ngt-dropzone/ngt-dropzone.module.d.ts +2 -2
  33. package/components/ngt-floating-button/ngt-floating-button.component.d.ts +32 -32
  34. package/components/ngt-floating-button/ngt-floating-button.module.d.ts +2 -2
  35. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.d.ts +7 -7
  36. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.d.ts +2 -2
  37. package/components/ngt-form/ngt-form.component.d.ts +52 -52
  38. package/components/ngt-form/ngt-form.module.d.ts +2 -2
  39. package/components/ngt-header-nav/ngt-header-nav.component.d.ts +11 -11
  40. package/components/ngt-header-nav/ngt-header-nav.module.d.ts +2 -2
  41. package/components/ngt-helper/ngt-helper.component.d.ts +20 -20
  42. package/components/ngt-helper/ngt-helper.module.d.ts +2 -2
  43. package/components/ngt-input/ngt-input.component.d.ts +116 -116
  44. package/components/ngt-input/ngt-input.module.d.ts +2 -2
  45. package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +2 -2
  46. package/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.d.ts +2 -2
  47. package/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.d.ts +12 -12
  48. package/components/ngt-modal/ngt-modal.component.d.ts +19 -19
  49. package/components/ngt-modal/ngt-modal.module.d.ts +2 -2
  50. package/components/ngt-multi-select/ngt-multi-select.component.d.ts +97 -97
  51. package/components/ngt-multi-select/ngt-multi-select.module.d.ts +2 -2
  52. package/components/ngt-pagination/ngt-pagination.component.d.ts +40 -40
  53. package/components/ngt-pagination/ngt-pagination.module.d.ts +2 -2
  54. package/components/ngt-popover/ngt-popover.component.d.ts +28 -28
  55. package/components/ngt-popover/ngt-popover.module.d.ts +2 -2
  56. package/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.d.ts +9 -9
  57. package/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.d.ts +9 -9
  58. package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +14 -14
  59. package/components/ngt-portlet/ngt-portlet.component.d.ts +17 -17
  60. package/components/ngt-portlet/ngt-portlet.module.d.ts +2 -2
  61. package/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.d.ts +6 -6
  62. package/components/ngt-radio-button/ngt-radio-button.component.d.ts +32 -32
  63. package/components/ngt-radio-button/ngt-radio-button.module.d.ts +2 -2
  64. package/components/ngt-section/ngt-section.component.d.ts +26 -26
  65. package/components/ngt-section/ngt-section.module.d.ts +2 -2
  66. package/components/ngt-select/ngt-select.component.d.ts +131 -131
  67. package/components/ngt-select/ngt-select.directive.d.ts +13 -13
  68. package/components/ngt-select/ngt-select.module.d.ts +2 -2
  69. package/components/ngt-shining/ngt-shining.component.d.ts +16 -16
  70. package/components/ngt-shining/ngt-shining.module.d.ts +2 -2
  71. package/components/ngt-sidenav/ngt-sidenav.component.d.ts +29 -29
  72. package/components/ngt-sidenav/ngt-sidenav.module.d.ts +2 -2
  73. package/components/ngt-slider/ngt-slider.component.d.ts +31 -31
  74. package/components/ngt-slider/ngt-slider.module.d.ts +2 -2
  75. package/components/ngt-svg/ngt-svg.component.d.ts +10 -10
  76. package/components/ngt-svg/ngt-svg.module.d.ts +2 -2
  77. package/components/ngt-tag/ngt-tag.component.d.ts +10 -10
  78. package/components/ngt-tag/ngt-tag.module.d.ts +2 -2
  79. package/components/ngt-textarea/ngt-textarea.component.d.ts +46 -46
  80. package/components/ngt-textarea/ngt-textarea.module.d.ts +2 -2
  81. package/components/ngt-validation/ngt-validation.component.d.ts +10 -10
  82. package/components/ngt-validation/ngt-validation.module.d.ts +2 -2
  83. package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +65 -65
  84. package/directives/ngt-stylizable/ngt-stylizable.module.d.ts +2 -2
  85. package/enums/size.enum.d.ts +8 -8
  86. package/esm2015/animations/ngt-angular-animations.js +34 -34
  87. package/esm2015/base/ngt-base-ng-model.js +90 -90
  88. package/esm2015/components/ngt-action/ngt-action.component.js +49 -49
  89. package/esm2015/components/ngt-action/ngt-action.module.js +19 -19
  90. package/esm2015/components/ngt-button/ngt-button.component.js +106 -106
  91. package/esm2015/components/ngt-button/ngt-button.module.js +19 -19
  92. package/esm2015/components/ngt-checkbox/ngt-checkbox.component.js +139 -139
  93. package/esm2015/components/ngt-checkbox/ngt-checkbox.module.js +19 -19
  94. package/esm2015/components/ngt-content/ngt-content.component.js +33 -33
  95. package/esm2015/components/ngt-content/ngt-content.module.js +15 -15
  96. package/esm2015/components/ngt-datatable/ngt-datatable.component.js +409 -409
  97. package/esm2015/components/ngt-datatable/ngt-datatable.module.js +58 -58
  98. package/esm2015/components/ngt-datatable/ngt-tbody/ngt-tbody.component.js +58 -58
  99. package/esm2015/components/ngt-datatable/ngt-td/ngt-td.component.js +63 -63
  100. package/esm2015/components/ngt-datatable/ngt-td-check/ngt-td-check.component.js +105 -105
  101. package/esm2015/components/ngt-datatable/ngt-th/ngt-th.component.js +195 -195
  102. package/esm2015/components/ngt-datatable/ngt-th-check/ngt-th-check.component.js +87 -87
  103. package/esm2015/components/ngt-datatable/ngt-thead/ngt-thead.component.js +56 -56
  104. package/esm2015/components/ngt-datatable/ngt-tr/ngt-tr.component.js +76 -76
  105. package/esm2015/components/ngt-date/ngt-date.component.js +380 -380
  106. package/esm2015/components/ngt-date/ngt-date.module.js +25 -25
  107. package/esm2015/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.js +20 -20
  108. package/esm2015/components/ngt-dropdown/ngt-dropdown.component.js +185 -185
  109. package/esm2015/components/ngt-dropdown/ngt-dropdown.module.js +16 -16
  110. package/esm2015/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.js +50 -50
  111. package/esm2015/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.js +59 -59
  112. package/esm2015/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.js +67 -67
  113. package/esm2015/components/ngt-dropzone/ngt-dropzone.component.js +434 -434
  114. package/esm2015/components/ngt-dropzone/ngt-dropzone.module.js +37 -37
  115. package/esm2015/components/ngt-floating-button/ngt-floating-button.component.js +94 -94
  116. package/esm2015/components/ngt-floating-button/ngt-floating-button.module.js +19 -19
  117. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.js +23 -23
  118. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.js +15 -15
  119. package/esm2015/components/ngt-form/ngt-form.component.js +181 -181
  120. package/esm2015/components/ngt-form/ngt-form.module.js +17 -17
  121. package/esm2015/components/ngt-header-nav/ngt-header-nav.component.js +38 -38
  122. package/esm2015/components/ngt-header-nav/ngt-header-nav.module.js +15 -15
  123. package/esm2015/components/ngt-helper/ngt-helper.component.js +51 -51
  124. package/esm2015/components/ngt-helper/ngt-helper.module.js +19 -19
  125. package/esm2015/components/ngt-input/ngt-input.component.js +680 -680
  126. package/esm2015/components/ngt-input/ngt-input.module.js +28 -28
  127. package/esm2015/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.js +11 -11
  128. package/esm2015/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.js +11 -11
  129. package/esm2015/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.js +40 -40
  130. package/esm2015/components/ngt-modal/ngt-modal.component.js +79 -79
  131. package/esm2015/components/ngt-modal/ngt-modal.module.js +28 -28
  132. package/esm2015/components/ngt-multi-select/ngt-multi-select.component.js +394 -394
  133. package/esm2015/components/ngt-multi-select/ngt-multi-select.module.js +33 -33
  134. package/esm2015/components/ngt-pagination/ngt-pagination.component.js +172 -172
  135. package/esm2015/components/ngt-pagination/ngt-pagination.module.js +23 -23
  136. package/esm2015/components/ngt-popover/ngt-popover.component.js +73 -73
  137. package/esm2015/components/ngt-popover/ngt-popover.module.js +17 -17
  138. package/esm2015/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.js +34 -34
  139. package/esm2015/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.js +33 -33
  140. package/esm2015/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.js +47 -47
  141. package/esm2015/components/ngt-portlet/ngt-portlet.component.js +58 -58
  142. package/esm2015/components/ngt-portlet/ngt-portlet.module.js +32 -32
  143. package/esm2015/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.js +19 -19
  144. package/esm2015/components/ngt-radio-button/ngt-radio-button.component.js +103 -103
  145. package/esm2015/components/ngt-radio-button/ngt-radio-button.module.js +20 -20
  146. package/esm2015/components/ngt-section/ngt-section.component.js +101 -101
  147. package/esm2015/components/ngt-section/ngt-section.module.js +21 -21
  148. package/esm2015/components/ngt-select/ngt-select.component.js +488 -488
  149. package/esm2015/components/ngt-select/ngt-select.directive.js +35 -35
  150. package/esm2015/components/ngt-select/ngt-select.module.js +40 -40
  151. package/esm2015/components/ngt-shining/ngt-shining.component.js +41 -41
  152. package/esm2015/components/ngt-shining/ngt-shining.module.js +15 -15
  153. package/esm2015/components/ngt-sidenav/ngt-sidenav.component.js +123 -123
  154. package/esm2015/components/ngt-sidenav/ngt-sidenav.module.js +15 -15
  155. package/esm2015/components/ngt-slider/ngt-slider.component.js +82 -82
  156. package/esm2015/components/ngt-slider/ngt-slider.module.js +17 -17
  157. package/esm2015/components/ngt-svg/ngt-svg.component.js +52 -52
  158. package/esm2015/components/ngt-svg/ngt-svg.module.js +19 -19
  159. package/esm2015/components/ngt-tag/ngt-tag.component.js +36 -36
  160. package/esm2015/components/ngt-tag/ngt-tag.module.js +17 -17
  161. package/esm2015/components/ngt-textarea/ngt-textarea.component.js +210 -210
  162. package/esm2015/components/ngt-textarea/ngt-textarea.module.js +26 -26
  163. package/esm2015/components/ngt-validation/ngt-validation.component.js +24 -24
  164. package/esm2015/components/ngt-validation/ngt-validation.module.js +15 -15
  165. package/esm2015/directives/ngt-stylizable/ngt-stylizable.directive.js +227 -227
  166. package/esm2015/directives/ngt-stylizable/ngt-stylizable.module.js +15 -15
  167. package/esm2015/enums/size.enum.js +11 -11
  168. package/esm2015/helpers/enum/enum.js +7 -7
  169. package/esm2015/helpers/form/form.js +14 -14
  170. package/esm2015/helpers/routing/route.js +11 -11
  171. package/esm2015/helpers/uuid.js +10 -10
  172. package/esm2015/ng-tailwind.js +10 -10
  173. package/esm2015/public-api.js +120 -120
  174. package/esm2015/services/http/ngt-attachment-http.service.js +3 -3
  175. package/esm2015/services/http/ngt-http-form.service.js +3 -3
  176. package/esm2015/services/http/ngt-http-resource.service.js +3 -3
  177. package/esm2015/services/http/ngt-http-validation.service.js +3 -3
  178. package/esm2015/services/http/ngt-http.service.js +3 -3
  179. package/esm2015/services/http/ngt-translate.service.js +3 -3
  180. package/esm2015/services/ngt-stylizable/ngt-stylizable.service.js +273 -273
  181. package/fesm2015/ng-tailwind.js +6690 -6690
  182. package/fesm2015/ng-tailwind.js.map +1 -1
  183. package/helpers/enum/enum.d.ts +1 -1
  184. package/helpers/form/form.d.ts +4 -4
  185. package/helpers/routing/route.d.ts +2 -2
  186. package/helpers/uuid.d.ts +1 -1
  187. package/ng-tailwind.d.ts +10 -10
  188. package/ng-tailwind.metadata.json +1 -1
  189. package/package.json +2 -2
  190. package/public-api.d.ts +82 -82
  191. package/services/http/ngt-attachment-http.service.d.ts +10 -10
  192. package/services/http/ngt-http-form.service.d.ts +5 -5
  193. package/services/http/ngt-http-resource.service.d.ts +12 -12
  194. package/services/http/ngt-http-validation.service.d.ts +11 -11
  195. package/services/http/ngt-http.service.d.ts +27 -27
  196. package/services/http/ngt-translate.service.d.ts +29 -29
  197. package/services/ngt-stylizable/ngt-stylizable.service.d.ts +96 -96
@@ -1,50 +1,50 @@
1
- import { Component } from '@angular/core';
2
- import { DomSanitizer } from '@angular/platform-browser';
3
- import { NgxDropzonePreviewComponent } from 'ngx-dropzone';
4
- import { NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';
5
- export class CustomDropzonePreviewComponent extends NgxDropzonePreviewComponent {
6
- constructor(sanitizer) {
7
- super(sanitizer);
8
- this.sanitizer = sanitizer;
9
- }
10
- ngOnInit() {
11
- if (!this.file) {
12
- console.error('No file to read. Please provide a file using the [file] Input property.');
13
- return;
14
- }
15
- this.bindFileType();
16
- }
17
- bindFileType() {
18
- if (this.file.type.includes('.sheet')) {
19
- this.fileType = NgtDropzoneFileTypeEnum.XLS;
20
- }
21
- else if (this.file.type.includes('pdf')) {
22
- this.fileType = NgtDropzoneFileTypeEnum.PDF;
23
- }
24
- else if (this.file.type.includes('.document')) {
25
- this.fileType = NgtDropzoneFileTypeEnum.DOC;
26
- }
27
- else if (this.file.type.includes('.dwg')) {
28
- this.fileType = NgtDropzoneFileTypeEnum.DWG;
29
- }
30
- else {
31
- this.fileType = NgtDropzoneFileTypeEnum.OTHER;
32
- }
33
- }
34
- }
35
- CustomDropzonePreviewComponent.decorators = [
36
- { type: Component, args: [{
37
- selector: 'custom-dropzone-preview',
38
- template: "<div class=\"flex flex-col items-center w-48 cursor-pointer hover:opacity-75\">\r\n <div class=\"w-full flex justify-center border-2 rounded py-4 text-6xl\">\r\n <svg *ngIf=\"fileType == 'OTHER'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path class=\"heroicon-ui\" fill=\"#4a5568\"\r\n d=\"M6 2h9a1 1 0 0 1 .7.3l4 4a1 1 0 0 1 .3.7v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.1.9-2 2-2zm9 2.41V7h2.59L15 4.41zM18 9h-3a2 2 0 0 1-2-2V4H6v16h12V9zm-2 7a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm0-4a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm-5-4a1 1 0 0 1-1 1H9a1 1 0 1 1 0-2h1a1 1 0 0 1 1 1z\" />\r\n </svg>\r\n\r\n <svg *ngIf=\"fileType == 'DOC'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-0.78 -12l-2.52 10.8 -1.68 0 -2.16 -8.15 -2.16 8.15 -1.68 0 -2.64 -10.8 1.8 0 1.68 8.17 2.16 -8.17 1.56 0 2.16 8.17 1.68 -8.17 1.8 0z\" />\r\n </svg>\r\n\r\n <svg *ngIf=\"fileType == 'XLS'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-6.12 -6.6l3.48 5.4 -2.16 0 -2.4 -4.08 -2.4 4.08 -2.16 0 3.48 -5.4 -3.48 -5.4 2.16 0 2.4 4.08 2.4 -4.08 2.16 0 -3.48 5.4z\" />\r\n </svg>\r\n\r\n <svg *ngIf=\"fileType == 'PDF'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M14.4 0l7.2 7.2 0 14.4c0,1.32 -1.08,2.4 -2.4,2.4l-14.4 0c-1.32,0 -2.4,-1.08 -2.4,-2.4l0 -19.2c0,-1.32 1.08,-2.4 2.4,-2.4l9.6 0 0 0zm4.8 21.6l0 -13.2 -6 0 0 -6 -8.4 0 0 19.2 14.4 0 0 0zm-8.5 -9.23c-0.28,-0.92 -0.92,-3.87 0.76,-3.92 1.68,-0.05 0.58,3.74 0.58,3.74 0.46,1.79 2.42,3.07 2.42,3.07 0.6,-0.18 4.02,-0.57 3.54,1.21 -0.52,1.77 -4.2,0.1 -4.2,0.1 -2.34,0.17 -4.09,0.8 -4.09,0.8 -1.36,2.53 -2.94,3.63 -3.59,2.56 -0.8,-1.33 2.56,-3.04 2.56,-3.04 1.74,-2.83 2,-4.47 2.02,-4.52l0 0zm0.78 1.01c-0.48,1.56 -1.44,3.23 -1.44,3.23 1.02,-0.41 3.26,-0.88 3.26,-0.88 -1.37,-1.2 -1.79,-2.34 -1.82,-2.35l0 0zm3.77 2.6c0,0 2.1,0.79 2.15,0.47 0.08,-0.32 -1.6,-0.61 -2.15,-0.47l0 0zm-6.79 1.79c-0.93,0.36 -1.81,1.9 -1.6,1.9 0.22,0.01 1.1,-0.72 1.6,-1.9l0 0zm3.02 -6.66c0,-0.06 0.52,-2.01 0,-2.07 -0.36,-0.04 -0.01,2.02 0,2.07z\" />\r\n </svg>\r\n\r\n <svg *ngIf=\"fileType == 'DWG'\" version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" width=\"512.000000pt\" height=\"512.000000pt\"\r\n viewBox=\"0 0 512.000000 512.000000\" preserveAspectRatio=\"xMidYMid meet\">\r\n <g transform=\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\" fill=\"#4a5568\" stroke=\"none\">\r\n <path\r\n d=\"M830 5104 c-42 -18 -86 -58 -108 -99 -15 -27 -17 -109 -20 -871 l-3 -842 -92 -4 c-112 -5 -179 -32 -235 -92 -81 -88 -77 -39 -77 -946 0 -801 0 -805 21 -851 54 -116 140 -169 291 -177 l92 -5 3 -536 c3 -588 1 -562 65 -623 65 -62 -61 -58 1793 -58 1854 0 1728 -4 1793 58 64 61 62 35 65 623 l3 536 92 5 c151 8 237 61 291 177 21 46 21 50 21 851 0 907 4 858 -77 946 -56 60 -123 87 -235 92 l-93 4 -1 302 c-1 165 -4 312 -8 326 -8 30 -994 1160 -1033 1184 -24 15 -138 16 -1270 16 -1088 -1 -1247 -3 -1278 -16z m2400 -714 l0 -530 29 -32 29 -33 466 -3 466 -3 0 -249 0 -250 -1660 0 -1660 0 0 815 0 815 1165 0 1165 0 0 -530z m1093 -1516 c87 -16 127 -32 127 -48 -1 -17 -48 -197 -54 -203 -2 -3 -27 2 -54 11 -131 44 -323 40 -429 -9 -72 -33 -146 -110 -174 -182 -27 -72 -36 -204 -19 -282 26 -120 110 -221 217 -261 70 -26 193 -36 251 -21 l42 12 0 124 0 125 -95 0 -95 0 0 110 0 110 230 0 230 0 0 -320 0 -320 -27 -11 c-16 -6 -71 -20 -123 -32 -129 -29 -401 -31 -500 -4 -116 33 -189 74 -266 151 -114 114 -164 244 -164 426 0 265 115 460 331 563 52 25 117 50 144 57 122 30 283 31 428 4z m-3042 -12 c304 -82 457 -320 419 -653 -35 -312 -215 -491 -545 -544 -94 -16 -317 -20 -448 -9 l-77 7 0 602 0 603 83 10 c45 6 174 9 287 7 170 -2 218 -6 281 -23z m808 -34 c16 -81 96 -524 127 -705 15 -90 29 -161 31 -160 2 2 14 66 28 143 20 116 101 518 145 722 l12 52 147 0 147 0 28 -147 c67 -356 104 -564 116 -648 13 -92 29 -144 30 -95 0 42 47 310 107 608 l56 282 138 0 c77 0 139 -3 139 -7 0 -5 -217 -853 -301 -1175 l-10 -38 -149 0 c-133 0 -149 2 -154 18 -13 44 -127 653 -141 759 -9 65 -18 119 -19 120 -1 2 -12 -55 -24 -125 -13 -70 -55 -272 -94 -449 l-71 -323 -152 0 -151 0 -142 598 c-78 328 -142 603 -142 610 0 9 36 12 144 12 l145 0 10 -52z m2131 -2088 l0 -480 -1660 0 -1660 0 0 480 0 480 1660 0 1660 0 0 -480z\" />\r\n\r\n <path\r\n d=\"M923 2673 l-23 -4 0 -399 0 -399 43 -6 c60 -9 200 12 261 39 140 63 212 207 204 411 -3 86 -8 109 -34 165 -51 108 -128 167 -249 189 -57 11 -157 13 -202 4z\" />\r\n </g>\r\n </svg>\r\n </div>\r\n</div>\r\n\r\n<ngx-dropzone-remove-badge *ngIf=\"removable\" (click)=\"_remove($event)\" style=\"top: -15px !important;\">\r\n</ngx-dropzone-remove-badge>",
39
- providers: [
40
- {
41
- provide: NgxDropzonePreviewComponent,
42
- useExisting: CustomDropzonePreviewComponent
43
- }
44
- ]
45
- },] }
46
- ];
47
- CustomDropzonePreviewComponent.ctorParameters = () => [
48
- { type: DomSanitizer }
49
- ];
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3B6b25lLXByZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRyb3B6b25lL2N1c3RvbS1kcm9wem9uZS1wcmV2aWV3L2N1c3RvbS1kcm9wem9uZS1wcmV2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFZcEUsTUFBTSxPQUFPLDhCQUErQixTQUFRLDJCQUEyQjtJQUczRSxZQUEwQixTQUF1QjtRQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFESyxjQUFTLEdBQVQsU0FBUyxDQUFjO0lBRWpELENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7WUFFekYsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDO1NBQy9DO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUM7U0FDL0M7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFDLEdBQUcsQ0FBQztTQUMvQzthQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDO1NBQy9DO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQztTQUNqRDtJQUNMLENBQUM7OztZQXZDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsbXJLQUF1RDtnQkFDdkQsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSwyQkFBMkI7d0JBQ3BDLFdBQVcsRUFBRSw4QkFBOEI7cUJBQzlDO2lCQUNKO2FBQ0o7OztZQWRRLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgTmd4RHJvcHpvbmVQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnbmd4LWRyb3B6b25lJztcclxuXHJcbmltcG9ydCB7IE5ndERyb3B6b25lRmlsZVR5cGVFbnVtIH0gZnJvbSAnLi4vbmd0LWRyb3B6b25lLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3VzdG9tLWRyb3B6b25lLXByZXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1kcm9wem9uZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTmd4RHJvcHpvbmVQcmV2aWV3Q29tcG9uZW50LFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ3VzdG9tRHJvcHpvbmVQcmV2aWV3Q29tcG9uZW50XHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tRHJvcHpvbmVQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgTmd4RHJvcHpvbmVQcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHB1YmxpYyBmaWxlVHlwZTogTmd0RHJvcHpvbmVGaWxlVHlwZUVudW07XHJcblxyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xyXG4gICAgICAgIHN1cGVyKHNhbml0aXplcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5maWxlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIGZpbGUgdG8gcmVhZC4gUGxlYXNlIHByb3ZpZGUgYSBmaWxlIHVzaW5nIHRoZSBbZmlsZV0gSW5wdXQgcHJvcGVydHkuJyk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmJpbmRGaWxlVHlwZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYmluZEZpbGVUeXBlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZpbGUudHlwZS5pbmNsdWRlcygnLnNoZWV0JykpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlVHlwZSA9IE5ndERyb3B6b25lRmlsZVR5cGVFbnVtLlhMUztcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsZS50eXBlLmluY2x1ZGVzKCdwZGYnKSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVUeXBlID0gTmd0RHJvcHpvbmVGaWxlVHlwZUVudW0uUERGO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5maWxlLnR5cGUuaW5jbHVkZXMoJy5kb2N1bWVudCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZVR5cGUgPSBOZ3REcm9wem9uZUZpbGVUeXBlRW51bS5ET0M7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbGUudHlwZS5pbmNsdWRlcygnLmR3ZycpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZVR5cGUgPSBOZ3REcm9wem9uZUZpbGVUeXBlRW51bS5EV0c7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlVHlwZSA9IE5ndERyb3B6b25lRmlsZVR5cGVFbnVtLk9USEVSO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
1
+ import { Component } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import { NgxDropzonePreviewComponent } from 'ngx-dropzone';
4
+ import { NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';
5
+ export class CustomDropzonePreviewComponent extends NgxDropzonePreviewComponent {
6
+ constructor(sanitizer) {
7
+ super(sanitizer);
8
+ this.sanitizer = sanitizer;
9
+ }
10
+ ngOnInit() {
11
+ if (!this.file) {
12
+ console.error('No file to read. Please provide a file using the [file] Input property.');
13
+ return;
14
+ }
15
+ this.bindFileType();
16
+ }
17
+ bindFileType() {
18
+ if (this.file.type.includes('.sheet')) {
19
+ this.fileType = NgtDropzoneFileTypeEnum.XLS;
20
+ }
21
+ else if (this.file.type.includes('pdf')) {
22
+ this.fileType = NgtDropzoneFileTypeEnum.PDF;
23
+ }
24
+ else if (this.file.type.includes('.document')) {
25
+ this.fileType = NgtDropzoneFileTypeEnum.DOC;
26
+ }
27
+ else if (this.file.type.includes('.dwg')) {
28
+ this.fileType = NgtDropzoneFileTypeEnum.DWG;
29
+ }
30
+ else {
31
+ this.fileType = NgtDropzoneFileTypeEnum.OTHER;
32
+ }
33
+ }
34
+ }
35
+ CustomDropzonePreviewComponent.decorators = [
36
+ { type: Component, args: [{
37
+ selector: 'custom-dropzone-preview',
38
+ template: "<div class=\"flex flex-col items-center w-48 cursor-pointer hover:opacity-75\">\n <div class=\"w-full flex justify-center border-2 rounded py-4 text-6xl\">\n <svg *ngIf=\"fileType == 'OTHER'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\" fill=\"#4a5568\"\n d=\"M6 2h9a1 1 0 0 1 .7.3l4 4a1 1 0 0 1 .3.7v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.1.9-2 2-2zm9 2.41V7h2.59L15 4.41zM18 9h-3a2 2 0 0 1-2-2V4H6v16h12V9zm-2 7a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm0-4a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm-5-4a1 1 0 0 1-1 1H9a1 1 0 1 1 0-2h1a1 1 0 0 1 1 1z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'DOC'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-0.78 -12l-2.52 10.8 -1.68 0 -2.16 -8.15 -2.16 8.15 -1.68 0 -2.64 -10.8 1.8 0 1.68 8.17 2.16 -8.17 1.56 0 2.16 8.17 1.68 -8.17 1.8 0z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'XLS'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-6.12 -6.6l3.48 5.4 -2.16 0 -2.4 -4.08 -2.4 4.08 -2.16 0 3.48 -5.4 -3.48 -5.4 2.16 0 2.4 4.08 2.4 -4.08 2.16 0 -3.48 5.4z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'PDF'\" fill=\"#4a5568\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l7.2 7.2 0 14.4c0,1.32 -1.08,2.4 -2.4,2.4l-14.4 0c-1.32,0 -2.4,-1.08 -2.4,-2.4l0 -19.2c0,-1.32 1.08,-2.4 2.4,-2.4l9.6 0 0 0zm4.8 21.6l0 -13.2 -6 0 0 -6 -8.4 0 0 19.2 14.4 0 0 0zm-8.5 -9.23c-0.28,-0.92 -0.92,-3.87 0.76,-3.92 1.68,-0.05 0.58,3.74 0.58,3.74 0.46,1.79 2.42,3.07 2.42,3.07 0.6,-0.18 4.02,-0.57 3.54,1.21 -0.52,1.77 -4.2,0.1 -4.2,0.1 -2.34,0.17 -4.09,0.8 -4.09,0.8 -1.36,2.53 -2.94,3.63 -3.59,2.56 -0.8,-1.33 2.56,-3.04 2.56,-3.04 1.74,-2.83 2,-4.47 2.02,-4.52l0 0zm0.78 1.01c-0.48,1.56 -1.44,3.23 -1.44,3.23 1.02,-0.41 3.26,-0.88 3.26,-0.88 -1.37,-1.2 -1.79,-2.34 -1.82,-2.35l0 0zm3.77 2.6c0,0 2.1,0.79 2.15,0.47 0.08,-0.32 -1.6,-0.61 -2.15,-0.47l0 0zm-6.79 1.79c-0.93,0.36 -1.81,1.9 -1.6,1.9 0.22,0.01 1.1,-0.72 1.6,-1.9l0 0zm3.02 -6.66c0,-0.06 0.52,-2.01 0,-2.07 -0.36,-0.04 -0.01,2.02 0,2.07z\" />\n </svg>\n\n <svg *ngIf=\"fileType == 'DWG'\" version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" width=\"512.000000pt\" height=\"512.000000pt\"\n viewBox=\"0 0 512.000000 512.000000\" preserveAspectRatio=\"xMidYMid meet\">\n <g transform=\"translate(0.000000,512.000000) scale(0.100000,-0.100000)\" fill=\"#4a5568\" stroke=\"none\">\n <path\n d=\"M830 5104 c-42 -18 -86 -58 -108 -99 -15 -27 -17 -109 -20 -871 l-3 -842 -92 -4 c-112 -5 -179 -32 -235 -92 -81 -88 -77 -39 -77 -946 0 -801 0 -805 21 -851 54 -116 140 -169 291 -177 l92 -5 3 -536 c3 -588 1 -562 65 -623 65 -62 -61 -58 1793 -58 1854 0 1728 -4 1793 58 64 61 62 35 65 623 l3 536 92 5 c151 8 237 61 291 177 21 46 21 50 21 851 0 907 4 858 -77 946 -56 60 -123 87 -235 92 l-93 4 -1 302 c-1 165 -4 312 -8 326 -8 30 -994 1160 -1033 1184 -24 15 -138 16 -1270 16 -1088 -1 -1247 -3 -1278 -16z m2400 -714 l0 -530 29 -32 29 -33 466 -3 466 -3 0 -249 0 -250 -1660 0 -1660 0 0 815 0 815 1165 0 1165 0 0 -530z m1093 -1516 c87 -16 127 -32 127 -48 -1 -17 -48 -197 -54 -203 -2 -3 -27 2 -54 11 -131 44 -323 40 -429 -9 -72 -33 -146 -110 -174 -182 -27 -72 -36 -204 -19 -282 26 -120 110 -221 217 -261 70 -26 193 -36 251 -21 l42 12 0 124 0 125 -95 0 -95 0 0 110 0 110 230 0 230 0 0 -320 0 -320 -27 -11 c-16 -6 -71 -20 -123 -32 -129 -29 -401 -31 -500 -4 -116 33 -189 74 -266 151 -114 114 -164 244 -164 426 0 265 115 460 331 563 52 25 117 50 144 57 122 30 283 31 428 4z m-3042 -12 c304 -82 457 -320 419 -653 -35 -312 -215 -491 -545 -544 -94 -16 -317 -20 -448 -9 l-77 7 0 602 0 603 83 10 c45 6 174 9 287 7 170 -2 218 -6 281 -23z m808 -34 c16 -81 96 -524 127 -705 15 -90 29 -161 31 -160 2 2 14 66 28 143 20 116 101 518 145 722 l12 52 147 0 147 0 28 -147 c67 -356 104 -564 116 -648 13 -92 29 -144 30 -95 0 42 47 310 107 608 l56 282 138 0 c77 0 139 -3 139 -7 0 -5 -217 -853 -301 -1175 l-10 -38 -149 0 c-133 0 -149 2 -154 18 -13 44 -127 653 -141 759 -9 65 -18 119 -19 120 -1 2 -12 -55 -24 -125 -13 -70 -55 -272 -94 -449 l-71 -323 -152 0 -151 0 -142 598 c-78 328 -142 603 -142 610 0 9 36 12 144 12 l145 0 10 -52z m2131 -2088 l0 -480 -1660 0 -1660 0 0 480 0 480 1660 0 1660 0 0 -480z\" />\n\n <path\n d=\"M923 2673 l-23 -4 0 -399 0 -399 43 -6 c60 -9 200 12 261 39 140 63 212 207 204 411 -3 86 -8 109 -34 165 -51 108 -128 167 -249 189 -57 11 -157 13 -202 4z\" />\n </g>\n </svg>\n </div>\n</div>\n\n<ngx-dropzone-remove-badge *ngIf=\"removable\" (click)=\"_remove($event)\" style=\"top: -15px !important;\">\n</ngx-dropzone-remove-badge>",
39
+ providers: [
40
+ {
41
+ provide: NgxDropzonePreviewComponent,
42
+ useExisting: CustomDropzonePreviewComponent
43
+ }
44
+ ]
45
+ },] }
46
+ ];
47
+ CustomDropzonePreviewComponent.ctorParameters = () => [
48
+ { type: DomSanitizer }
49
+ ];
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3B6b25lLXByZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRyb3B6b25lL2N1c3RvbS1kcm9wem9uZS1wcmV2aWV3L2N1c3RvbS1kcm9wem9uZS1wcmV2aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFZcEUsTUFBTSxPQUFPLDhCQUErQixTQUFRLDJCQUEyQjtJQUczRSxZQUEwQixTQUF1QjtRQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFESyxjQUFTLEdBQVQsU0FBUyxDQUFjO0lBRWpELENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7WUFFekYsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDO1NBQy9DO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUM7U0FDL0M7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFDLEdBQUcsQ0FBQztTQUMvQzthQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDO1NBQy9DO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQztTQUNqRDtJQUNMLENBQUM7OztZQXZDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsMm1LQUF1RDtnQkFDdkQsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSwyQkFBMkI7d0JBQ3BDLFdBQVcsRUFBRSw4QkFBOEI7cUJBQzlDO2lCQUNKO2FBQ0o7OztZQWRRLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBOZ3hEcm9wem9uZVByZXZpZXdDb21wb25lbnQgfSBmcm9tICduZ3gtZHJvcHpvbmUnO1xuXG5pbXBvcnQgeyBOZ3REcm9wem9uZUZpbGVUeXBlRW51bSB9IGZyb20gJy4uL25ndC1kcm9wem9uZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1c3RvbS1kcm9wem9uZS1wcmV2aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLWRyb3B6b25lLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOZ3hEcm9wem9uZVByZXZpZXdDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQ3VzdG9tRHJvcHpvbmVQcmV2aWV3Q29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbURyb3B6b25lUHJldmlld0NvbXBvbmVudCBleHRlbmRzIE5neERyb3B6b25lUHJldmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHVibGljIGZpbGVUeXBlOiBOZ3REcm9wem9uZUZpbGVUeXBlRW51bTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHtcbiAgICAgICAgc3VwZXIoc2FuaXRpemVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5maWxlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyBmaWxlIHRvIHJlYWQuIFBsZWFzZSBwcm92aWRlIGEgZmlsZSB1c2luZyB0aGUgW2ZpbGVdIElucHV0IHByb3BlcnR5LicpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJpbmRGaWxlVHlwZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmluZEZpbGVUeXBlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5maWxlLnR5cGUuaW5jbHVkZXMoJy5zaGVldCcpKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVUeXBlID0gTmd0RHJvcHpvbmVGaWxlVHlwZUVudW0uWExTO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsZS50eXBlLmluY2x1ZGVzKCdwZGYnKSkge1xuICAgICAgICAgICAgdGhpcy5maWxlVHlwZSA9IE5ndERyb3B6b25lRmlsZVR5cGVFbnVtLlBERjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbGUudHlwZS5pbmNsdWRlcygnLmRvY3VtZW50JykpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZVR5cGUgPSBOZ3REcm9wem9uZUZpbGVUeXBlRW51bS5ET0M7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5maWxlLnR5cGUuaW5jbHVkZXMoJy5kd2cnKSkge1xuICAgICAgICAgICAgdGhpcy5maWxlVHlwZSA9IE5ndERyb3B6b25lRmlsZVR5cGVFbnVtLkRXRztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZVR5cGUgPSBOZ3REcm9wem9uZUZpbGVUeXBlRW51bS5PVEhFUjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,59 +1,59 @@
1
- import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
- import { EloverdeDocViewerComponent } from 'eloverde-doc-viewer';
3
- import { NgtTranslateService } from '../../../services/http/ngt-translate.service';
4
- export class NgtDropzoneFileViewerComponent {
5
- constructor(ngtTranslateService) {
6
- this.ngtTranslateService = ngtTranslateService;
7
- this.disableContent = 'none';
8
- this.canDownloadFile = true;
9
- this.onClose = new EventEmitter();
10
- this.maxFileSize = 10000000; /** 10 MB */
11
- }
12
- keyEvent(event) {
13
- if (event.code == 'Escape') {
14
- this.canShowViewer = false;
15
- setTimeout(() => this.onClose.emit(), 500);
16
- }
17
- }
18
- init() {
19
- if (this.fileSize < this.maxFileSize) {
20
- this.loading = true;
21
- this.canShowViewer = true;
22
- }
23
- }
24
- close() {
25
- this.canShowViewer = false;
26
- this.onClose.emit();
27
- }
28
- handleClose() {
29
- this.onClose.emit();
30
- }
31
- downloadFile() {
32
- let file = document.createElement("a");
33
- file.target = '_blank';
34
- file.href = this.url;
35
- file.setAttribute("download", this.fileName);
36
- file.click();
37
- }
38
- }
39
- NgtDropzoneFileViewerComponent.decorators = [
40
- { type: Component, args: [{
41
- selector: 'ngt-dropzone-file-viewer',
42
- template: "<div style=\"width:100%; height: 100%;\">\r\n <div style=\"width:100%; height: 100%;\">\r\n <div class=\"w-full py-5 pr-10\">\r\n <div class=\"w-full flex justify-end text-2xl\">\r\n <div *ngIf=\"canDownloadFile\" class=\"cursor-pointer\" (click)=\"downloadFile()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path fill=\"#fff\" d=\"M13 8V2H7v6H2l8 8 8-8h-5zM0 18h20v2H0v-2z\" />\r\n </svg>\r\n </div>\r\n\r\n &nbsp;&nbsp;&nbsp;\r\n\r\n <div class=\"cursor-pointer\" (click)=\"close()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path fill=\"#fff\"\r\n d=\"M24 2.42l-2.42 -2.42 -9.58 9.58 -9.58 -9.58 -2.42 2.42 9.58 9.58 -9.58 9.58 2.42 2.42 9.58 -9.58 9.58 9.58 2.42 -2.42 -9.58 -9.58 9.58 -9.58z\" />\r\n </svg>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"w-full justify-center text-center text-2xl font-mono text-white\">\r\n {{ fileName }}\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"fileSize > maxFileSize\" class=\"flex w-full h-full justify-center items-center\">\r\n <div class=\"flex flex-col w-auto bg-gray-700 rounded-lg p-6\" style=\"max-width: 80%;\">\r\n <p class=\"text-white font-medium text-center w-full\">\r\n {{\r\n canDownloadFile\r\n ? ngtTranslateService.ngtFileTooLargeForPreview\r\n : ngtTranslateService.ngtFileTooLargeForPreviewNoDownloadPermission\r\n }}\r\n </p>\r\n\r\n <div *ngIf=\"canDownloadFile\" class=\"cursor-pointer mt-5 text-2xl self-center border rounded p-2\"\r\n (click)=\"downloadFile()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path fill=\"#fff\" d=\"M13 8V2H7v6H2l8 8 8-8h-5zM0 18h20v2H0v-2z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"px-10\" style=\"width:100%; height: 83%;\" *ngIf=\"canShowViewer\">\r\n <eloverde-doc-viewer class=\"h-full w-full flex justify-center\" [url]=\"url\" [disableContent]=\"disableContent\"\r\n (loaded)=\"loading = false\" (onClose)=\"handleClose()\">\r\n </eloverde-doc-viewer>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"loading\" class=\"flex fixed inset-0 justify-center items-center w-full h-full cursor-wait z-50\">\r\n <div class=\"div-loader\"></div>\r\n</div>",
43
- styles: [":host{background:rgba(0,0,0,.5);color:#fff;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:10000000}.div-loader{width:5rem;height:5rem;border:5px solid #89C43F38;border-top-color:#89c43f;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"]
44
- },] }
45
- ];
46
- NgtDropzoneFileViewerComponent.ctorParameters = () => [
47
- { type: NgtTranslateService }
48
- ];
49
- NgtDropzoneFileViewerComponent.propDecorators = {
50
- eloverdeDocViewer: [{ type: ViewChild, args: [EloverdeDocViewerComponent,] }],
51
- url: [{ type: Input }],
52
- fileName: [{ type: Input }],
53
- fileSize: [{ type: Input }],
54
- disableContent: [{ type: Input }],
55
- canDownloadFile: [{ type: Input }],
56
- onClose: [{ type: Output }],
57
- keyEvent: [{ type: HostListener, args: ['window:keydown', ['$event'],] }]
58
- };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wem9uZS9uZ3QtZHJvcHpvbmUtZmlsZS12aWV3ZXIvbmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFPbkYsTUFBTSxPQUFPLDhCQUE4QjtJQWV2QyxZQUNXLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBVm5DLG1CQUFjLEdBQVcsTUFBTSxDQUFDO1FBQ2hDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBRS9CLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUkzRCxnQkFBVyxHQUFXLFFBQVEsQ0FBQyxDQUFDLFlBQVk7SUFJL0MsQ0FBQztJQUdFLFFBQVEsQ0FBQyxLQUFvQjtRQUNoQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksUUFBUSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBRTNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzlDO0lBQ0wsQ0FBQztJQUVNLElBQUk7UUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUM3QjtJQUNMLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLFlBQVk7UUFDZixJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7OztZQXhESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtnQkFFcEMscXdGQUF3RDs7YUFDM0Q7OztZQU5RLG1CQUFtQjs7O2dDQVF2QixTQUFTLFNBQUMsMEJBQTBCO2tCQUVwQyxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSzs2QkFDTCxLQUFLOzhCQUNMLEtBQUs7c0JBRUwsTUFBTTt1QkFVTixZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRWxvdmVyZGVEb2NWaWV3ZXJDb21wb25lbnQgfSBmcm9tICdlbG92ZXJkZS1kb2Mtdmlld2VyJztcclxuXHJcbmltcG9ydCB7IE5ndFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL25ndC10cmFuc2xhdGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmd0LWRyb3B6b25lLWZpbGUtdmlld2VyJyxcclxuICAgIHN0eWxlVXJsczogWycuL25ndC1kcm9wem9uZS1maWxlLXZpZXdlci5jb21wb25lbnQuY3NzJ10sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd0RHJvcHpvbmVGaWxlVmlld2VyQ29tcG9uZW50IHtcclxuICAgIEBWaWV3Q2hpbGQoRWxvdmVyZGVEb2NWaWV3ZXJDb21wb25lbnQpIHB1YmxpYyBlbG92ZXJkZURvY1ZpZXdlcjogRWxvdmVyZGVEb2NWaWV3ZXJDb21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIHVybDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcHVibGljIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlsZVNpemU6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlQ29udGVudDogc3RyaW5nID0gJ25vbmUnO1xyXG4gICAgQElucHV0KCkgcHVibGljIGNhbkRvd25sb2FkRmlsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgcHVibGljIGNhblNob3dWaWV3ZXI6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBtYXhGaWxlU2l6ZTogbnVtYmVyID0gMTAwMDAwMDA7IC8qKiAxMCBNQiAqL1xyXG5cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgbmd0VHJhbnNsYXRlU2VydmljZTogTmd0VHJhbnNsYXRlU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgICBwdWJsaWMga2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQuY29kZSA9PSAnRXNjYXBlJykge1xyXG4gICAgICAgICAgICB0aGlzLmNhblNob3dWaWV3ZXIgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vbkNsb3NlLmVtaXQoKSwgNTAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsZVNpemUgPCB0aGlzLm1heEZpbGVTaXplKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuU2hvd1ZpZXdlciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNhblNob3dWaWV3ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVDbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkb3dubG9hZEZpbGUoKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IGZpbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuXHJcbiAgICAgICAgZmlsZS50YXJnZXQgPSAnX2JsYW5rJztcclxuICAgICAgICBmaWxlLmhyZWYgPSB0aGlzLnVybDtcclxuICAgICAgICBmaWxlLnNldEF0dHJpYnV0ZShcImRvd25sb2FkXCIsIHRoaXMuZmlsZU5hbWUpO1xyXG4gICAgICAgIGZpbGUuY2xpY2soKTtcclxuICAgIH1cclxufVxyXG4iXX0=
1
+ import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
+ import { EloverdeDocViewerComponent } from 'eloverde-doc-viewer';
3
+ import { NgtTranslateService } from '../../../services/http/ngt-translate.service';
4
+ export class NgtDropzoneFileViewerComponent {
5
+ constructor(ngtTranslateService) {
6
+ this.ngtTranslateService = ngtTranslateService;
7
+ this.disableContent = 'none';
8
+ this.canDownloadFile = true;
9
+ this.onClose = new EventEmitter();
10
+ this.maxFileSize = 10000000; /** 10 MB */
11
+ }
12
+ keyEvent(event) {
13
+ if (event.code == 'Escape') {
14
+ this.canShowViewer = false;
15
+ setTimeout(() => this.onClose.emit(), 500);
16
+ }
17
+ }
18
+ init() {
19
+ if (this.fileSize < this.maxFileSize) {
20
+ this.loading = true;
21
+ this.canShowViewer = true;
22
+ }
23
+ }
24
+ close() {
25
+ this.canShowViewer = false;
26
+ this.onClose.emit();
27
+ }
28
+ handleClose() {
29
+ this.onClose.emit();
30
+ }
31
+ downloadFile() {
32
+ let file = document.createElement("a");
33
+ file.target = '_blank';
34
+ file.href = this.url;
35
+ file.setAttribute("download", this.fileName);
36
+ file.click();
37
+ }
38
+ }
39
+ NgtDropzoneFileViewerComponent.decorators = [
40
+ { type: Component, args: [{
41
+ selector: 'ngt-dropzone-file-viewer',
42
+ template: "<div style=\"width:100%; height: 100%;\">\n <div style=\"width:100%; height: 100%;\">\n <div class=\"w-full py-5 pr-10\">\n <div class=\"w-full flex justify-end text-2xl\">\n <div *ngIf=\"canDownloadFile\" class=\"cursor-pointer\" (click)=\"downloadFile()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path fill=\"#fff\" d=\"M13 8V2H7v6H2l8 8 8-8h-5zM0 18h20v2H0v-2z\" />\n </svg>\n </div>\n\n &nbsp;&nbsp;&nbsp;\n\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path fill=\"#fff\"\n d=\"M24 2.42l-2.42 -2.42 -9.58 9.58 -9.58 -9.58 -2.42 2.42 9.58 9.58 -9.58 9.58 2.42 2.42 9.58 -9.58 9.58 9.58 2.42 -2.42 -9.58 -9.58 9.58 -9.58z\" />\n </svg>\n </div>\n\n </div>\n\n <div class=\"w-full justify-center text-center text-2xl font-mono text-white\">\n {{ fileName }}\n </div>\n </div>\n\n <div *ngIf=\"fileSize > maxFileSize\" class=\"flex w-full h-full justify-center items-center\">\n <div class=\"flex flex-col w-auto bg-gray-700 rounded-lg p-6\" style=\"max-width: 80%;\">\n <p class=\"text-white font-medium text-center w-full\">\n {{\n canDownloadFile\n ? ngtTranslateService.ngtFileTooLargeForPreview\n : ngtTranslateService.ngtFileTooLargeForPreviewNoDownloadPermission\n }}\n </p>\n\n <div *ngIf=\"canDownloadFile\" class=\"cursor-pointer mt-5 text-2xl self-center border rounded p-2\"\n (click)=\"downloadFile()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path fill=\"#fff\" d=\"M13 8V2H7v6H2l8 8 8-8h-5zM0 18h20v2H0v-2z\" />\n </svg>\n </div>\n </div>\n </div>\n\n <div class=\"px-10\" style=\"width:100%; height: 83%;\" *ngIf=\"canShowViewer\">\n <eloverde-doc-viewer class=\"h-full w-full flex justify-center\" [url]=\"url\" [disableContent]=\"disableContent\"\n (loaded)=\"loading = false\" (onClose)=\"handleClose()\">\n </eloverde-doc-viewer>\n </div>\n </div>\n</div>\n\n<div *ngIf=\"loading\" class=\"flex fixed inset-0 justify-center items-center w-full h-full cursor-wait z-50\">\n <div class=\"div-loader\"></div>\n</div>",
43
+ styles: [":host{background:rgba(0,0,0,.5);color:#fff;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:10000000}.div-loader{width:5rem;height:5rem;border:5px solid #89C43F38;border-top-color:#89c43f;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}\n"]
44
+ },] }
45
+ ];
46
+ NgtDropzoneFileViewerComponent.ctorParameters = () => [
47
+ { type: NgtTranslateService }
48
+ ];
49
+ NgtDropzoneFileViewerComponent.propDecorators = {
50
+ eloverdeDocViewer: [{ type: ViewChild, args: [EloverdeDocViewerComponent,] }],
51
+ url: [{ type: Input }],
52
+ fileName: [{ type: Input }],
53
+ fileSize: [{ type: Input }],
54
+ disableContent: [{ type: Input }],
55
+ canDownloadFile: [{ type: Input }],
56
+ onClose: [{ type: Output }],
57
+ keyEvent: [{ type: HostListener, args: ['window:keydown', ['$event'],] }]
58
+ };
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wem9uZS9uZ3QtZHJvcHpvbmUtZmlsZS12aWV3ZXIvbmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFPbkYsTUFBTSxPQUFPLDhCQUE4QjtJQWV2QyxZQUNXLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBVm5DLG1CQUFjLEdBQVcsTUFBTSxDQUFDO1FBQ2hDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBRS9CLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUkzRCxnQkFBVyxHQUFXLFFBQVEsQ0FBQyxDQUFDLFlBQVk7SUFJL0MsQ0FBQztJQUdFLFFBQVEsQ0FBQyxLQUFvQjtRQUNoQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksUUFBUSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBRTNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzlDO0lBQ0wsQ0FBQztJQUVNLElBQUk7UUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUM3QjtJQUNMLENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLFlBQVk7UUFDZixJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7OztZQXhESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtnQkFFcEMsdXBGQUF3RDs7YUFDM0Q7OztZQU5RLG1CQUFtQjs7O2dDQVF2QixTQUFTLFNBQUMsMEJBQTBCO2tCQUVwQyxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSzs2QkFDTCxLQUFLOzhCQUNMLEtBQUs7c0JBRUwsTUFBTTt1QkFVTixZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVsb3ZlcmRlRG9jVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnZWxvdmVyZGUtZG9jLXZpZXdlcic7XG5cbmltcG9ydCB7IE5ndFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL25ndC10cmFuc2xhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LWRyb3B6b25lLWZpbGUtdmlld2VyJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZ3QtZHJvcHpvbmUtZmlsZS12aWV3ZXIuY29tcG9uZW50LmNzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtZHJvcHpvbmUtZmlsZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5ndERyb3B6b25lRmlsZVZpZXdlckNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZChFbG92ZXJkZURvY1ZpZXdlckNvbXBvbmVudCkgcHVibGljIGVsb3ZlcmRlRG9jVmlld2VyOiBFbG92ZXJkZURvY1ZpZXdlckNvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyB1cmw6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlsZU5hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlsZVNpemU6IG51bWJlcjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZUNvbnRlbnQ6IHN0cmluZyA9ICdub25lJztcbiAgICBASW5wdXQoKSBwdWJsaWMgY2FuRG93bmxvYWRGaWxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25DbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGNhblNob3dWaWV3ZXI6IGJvb2xlYW47XG4gICAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgcHVibGljIG1heEZpbGVTaXplOiBudW1iZXIgPSAxMDAwMDAwMDsgLyoqIDEwIE1CICovXG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBuZ3RUcmFuc2xhdGVTZXJ2aWNlOiBOZ3RUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMga2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmNvZGUgPT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2FuU2hvd1ZpZXdlciA9IGZhbHNlO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub25DbG9zZS5lbWl0KCksIDUwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsZVNpemUgPCB0aGlzLm1heEZpbGVTaXplKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jYW5TaG93Vmlld2VyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYW5TaG93Vmlld2VyID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkb3dubG9hZEZpbGUoKTogdm9pZCB7XG4gICAgICAgIGxldCBmaWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG5cbiAgICAgICAgZmlsZS50YXJnZXQgPSAnX2JsYW5rJztcbiAgICAgICAgZmlsZS5ocmVmID0gdGhpcy51cmw7XG4gICAgICAgIGZpbGUuc2V0QXR0cmlidXRlKFwiZG93bmxvYWRcIiwgdGhpcy5maWxlTmFtZSk7XG4gICAgICAgIGZpbGUuY2xpY2soKTtcbiAgICB9XG59XG4iXX0=
@@ -1,67 +1,67 @@
1
- import { Component, Input, SkipSelf, ViewEncapsulation } from '@angular/core';
2
- import { NgtDropzoneComponent, NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';
3
- export class NgtDropzoneViewComponent {
4
- constructor(ngtDropzoneComponent) {
5
- this.ngtDropzoneComponent = ngtDropzoneComponent;
6
- this.ngtDropzoneViewFileTypeEnum = NgtDropzoneFileTypeEnum;
7
- }
8
- ngAfterViewInit() { }
9
- ngOnChanges(changes) {
10
- if (changes.resources) {
11
- this.loadFiles();
12
- }
13
- }
14
- loadFiles() {
15
- this.images = this.resources.filter((resource) => this.isImage(resource));
16
- this.audios = this.resources.filter((resource) => this.isAudio(resource));
17
- this.videos = this.resources.filter((resource) => this.isVideo(resource));
18
- this.files = this.resources.filter((resource) => this.isFile(resource));
19
- }
20
- onImageClick(index) {
21
- const imagesDiv = document.createElement("div");
22
- this.images.forEach((image) => {
23
- let imageElement = document.createElement("img");
24
- imageElement.src = image.previewUrl;
25
- imagesDiv.appendChild(imageElement);
26
- });
27
- this.ngtDropzoneComponent.onImageClick(imagesDiv, index);
28
- }
29
- getFileType(resource) {
30
- if (resource.mimeType.includes('.sheet')) {
31
- return NgtDropzoneFileTypeEnum.XLS;
32
- }
33
- if (resource.mimeType.includes('pdf')) {
34
- return NgtDropzoneFileTypeEnum.PDF;
35
- }
36
- if (resource.mimeType.includes('.document')) {
37
- return NgtDropzoneFileTypeEnum.DOC;
38
- }
39
- return NgtDropzoneFileTypeEnum.OTHER;
40
- }
41
- isImage(resource) {
42
- return resource.mimeType.includes('image');
43
- }
44
- isAudio(resource) {
45
- return resource.mimeType.includes('audio');
46
- }
47
- isVideo(resource) {
48
- return resource.mimeType.includes('video');
49
- }
50
- isFile(resource) {
51
- return !this.isImage(resource) && !this.isAudio(resource) && !this.isVideo(resource);
52
- }
53
- }
54
- NgtDropzoneViewComponent.decorators = [
55
- { type: Component, args: [{
56
- selector: 'ngt-dropzone-view',
57
- template: "<div class=\"border-2 border-dotted border-gray-400 rounded p-2 flex items-center overflow-x-auto\"\r\n [ngStyle]=\"{ 'height': ngtDropzoneComponent.dropzoneHeight }\">\r\n <div *ngIf=\"ngtDropzoneComponent.loading\"\r\n class=\"flex absolute justify-center items-center w-full h-full cursor-wait z-10\">\r\n <div class=\"div-loader\"></div>\r\n </div>\r\n\r\n <div [class]=\"ngtDropzoneComponent.loading ? 'hidden' : 'flex items-center'\">\r\n <ng-container *ngIf=\"images?.length\">\r\n <div class=\"flex py-5\">\r\n <div *ngFor=\"let image of images; let index = index\" class=\"w-48 mr-8\">\r\n <div class=\"flex flex-col w-48 mx-4 cursor-pointer\"\r\n title=\"{{ image.name || '' }} ({{ ngtDropzoneComponent.getFormattedFileSize(image) }})\"\r\n (click)=\"onImageClick(index)\">\r\n <img [src]=\"image.thumbnailUrl\" [alt]=\"image.name\" class=\"w-full h-32\">\r\n\r\n <p class=\"w-full truncate text-gray-500 text-center text-sm font-mono\">\r\n {{ image.name || '' }}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"audios?.length\">\r\n <ng-container *ngFor=\"let audio of audios\">\r\n <div class=\"flex flex-col w-48 mx-4 py-5\">\r\n <audio controls>\r\n <source [src]=\"audio.previewUrl\">\r\n </audio>\r\n\r\n <p class=\"w-full truncate text-gray-500 text-center text-sm font-mono\">\r\n {{ audio.name || '' }}\r\n </p>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"videos?.length\">\r\n <ng-container *ngFor=\"let video of videos\">\r\n <div class=\"flex flex-col w-48 mx-4 py-5\">\r\n <video width=\"240\" controls>\r\n <source [src]=\"video.previewUrl\">\r\n </video>\r\n\r\n <p class=\"w-full truncate text-gray-500 text-center text-sm font-mono\">\r\n {{ video.name || '' }}\r\n </p>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"files?.length\">\r\n <ng-container *ngFor=\"let file of files\">\r\n <div class=\"flex flex-col w-48 mr-6 cursor-pointer\"\r\n (click)=\"ngtDropzoneComponent.onFileClick(file.previewUrl, file.name, file.fileSize)\">\r\n <div class=\"w-full flex justify-center border-2 rounded py-4 text-6xl\">\r\n <svg *ngIf=\"getFileType(file) == ngtDropzoneViewFileTypeEnum.OTHER\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path class=\"heroicon-ui\" fill=\"#4a5568\"\r\n d=\"M6 2h9a1 1 0 0 1 .7.3l4 4a1 1 0 0 1 .3.7v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.1.9-2 2-2zm9 2.41V7h2.59L15 4.41zM18 9h-3a2 2 0 0 1-2-2V4H6v16h12V9zm-2 7a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm0-4a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm-5-4a1 1 0 0 1-1 1H9a1 1 0 1 1 0-2h1a1 1 0 0 1 1 1z\" />\r\n </svg>\r\n\r\n <svg *ngIf=\"getFileType(file) == ngtDropzoneViewFileTypeEnum.DOC\" fill=\"#4a5568\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-0.78 -12l-2.52 10.8 -1.68 0 -2.16 -8.15 -2.16 8.15 -1.68 0 -2.64 -10.8 1.8 0 1.68 8.17 2.16 -8.17 1.56 0 2.16 8.17 1.68 -8.17 1.8 0z\" />\r\n </svg>\r\n\r\n <svg *ngIf=\"getFileType(file) == ngtDropzoneViewFileTypeEnum.XLS\" fill=\"#4a5568\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-6.12 -6.6l3.48 5.4 -2.16 0 -2.4 -4.08 -2.4 4.08 -2.16 0 3.48 -5.4 -3.48 -5.4 2.16 0 2.4 4.08 2.4 -4.08 2.16 0 -3.48 5.4z\" />\r\n </svg>\r\n\r\n <svg *ngIf=\"getFileType(file) == ngtDropzoneViewFileTypeEnum.PDF\" fill=\"#4a5568\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M14.4 0l7.2 7.2 0 14.4c0,1.32 -1.08,2.4 -2.4,2.4l-14.4 0c-1.32,0 -2.4,-1.08 -2.4,-2.4l0 -19.2c0,-1.32 1.08,-2.4 2.4,-2.4l9.6 0 0 0zm4.8 21.6l0 -13.2 -6 0 0 -6 -8.4 0 0 19.2 14.4 0 0 0zm-8.5 -9.23c-0.28,-0.92 -0.92,-3.87 0.76,-3.92 1.68,-0.05 0.58,3.74 0.58,3.74 0.46,1.79 2.42,3.07 2.42,3.07 0.6,-0.18 4.02,-0.57 3.54,1.21 -0.52,1.77 -4.2,0.1 -4.2,0.1 -2.34,0.17 -4.09,0.8 -4.09,0.8 -1.36,2.53 -2.94,3.63 -3.59,2.56 -0.8,-1.33 2.56,-3.04 2.56,-3.04 1.74,-2.83 2,-4.47 2.02,-4.52l0 0zm0.78 1.01c-0.48,1.56 -1.44,3.23 -1.44,3.23 1.02,-0.41 3.26,-0.88 3.26,-0.88 -1.37,-1.2 -1.79,-2.34 -1.82,-2.35l0 0zm3.77 2.6c0,0 2.1,0.79 2.15,0.47 0.08,-0.32 -1.6,-0.61 -2.15,-0.47l0 0zm-6.79 1.79c-0.93,0.36 -1.81,1.9 -1.6,1.9 0.22,0.01 1.1,-0.72 1.6,-1.9l0 0zm3.02 -6.66c0,-0.06 0.52,-2.01 0,-2.07 -0.36,-0.04 -0.01,2.02 0,2.07z\" />\r\n </svg>\r\n </div>\r\n\r\n <p class=\"w-full truncate text-gray-500 text-center text-sm font-mono\">\r\n {{ file.name || '' }}\r\n </p>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"!ngtDropzoneComponent.loading && !ngtDropzoneComponent.resources?.length\"\r\n class=\"px-2 text-center w-full\">\r\n {{ ngtDropzoneComponent.placeholder }}\r\n </div>\r\n</div>",
58
- encapsulation: ViewEncapsulation.None
59
- },] }
60
- ];
61
- NgtDropzoneViewComponent.ctorParameters = () => [
62
- { type: NgtDropzoneComponent, decorators: [{ type: SkipSelf }] }
63
- ];
64
- NgtDropzoneViewComponent.propDecorators = {
65
- resources: [{ type: Input }]
66
- };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3B6b25lLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRyb3B6b25lL25ndC1kcm9wem9uZS12aWV3L25ndC1kcm9wem9uZS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQWlCLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPM0csTUFBTSxPQUFPLHdCQUF3QjtJQVVqQyxZQUVXLG9CQUEwQztRQUExQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBSjlDLGdDQUEyQixHQUFHLHVCQUF1QixDQUFDO0lBS3pELENBQUM7SUFFRSxlQUFlLEtBQUssQ0FBQztJQUVyQixXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwQjtJQUNMLENBQUM7SUFFTSxTQUFTO1FBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBSztRQUNyQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBc0IsRUFBRSxFQUFFO1lBQzNDLElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFakQsWUFBWSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBRXBDLFNBQVMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQXlCO1FBQ3hDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEMsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLENBQUM7U0FDdEM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25DLE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN6QyxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQztTQUN0QztRQUVELE9BQU8sdUJBQXVCLENBQUMsS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxPQUFPLENBQUMsUUFBeUI7UUFDckMsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sT0FBTyxDQUFDLFFBQXlCO1FBQ3JDLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVPLE9BQU8sQ0FBQyxRQUF5QjtRQUNyQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxNQUFNLENBQUMsUUFBeUI7UUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RixDQUFDOzs7WUEvRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLHF6TUFBaUQ7Z0JBQ2pELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUFOUSxvQkFBb0IsdUJBa0JwQixRQUFROzs7d0JBVlosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIFNraXBTZWxmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTmd0RHJvcHpvbmVDb21wb25lbnQsIE5ndERyb3B6b25lRmlsZSwgTmd0RHJvcHpvbmVGaWxlVHlwZUVudW0gfSBmcm9tICcuLi9uZ3QtZHJvcHpvbmUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICduZ3QtZHJvcHpvbmUtdmlldycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWRyb3B6b25lLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd0RHJvcHpvbmVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgcmVzb3VyY2VzOiBBcnJheTxhbnk+O1xyXG5cclxuICAgIHB1YmxpYyBpbWFnZXM6IEFycmF5PE5ndERyb3B6b25lRmlsZT47XHJcbiAgICBwdWJsaWMgYXVkaW9zOiBBcnJheTxOZ3REcm9wem9uZUZpbGU+O1xyXG4gICAgcHVibGljIHZpZGVvczogQXJyYXk8Tmd0RHJvcHpvbmVGaWxlPjtcclxuICAgIHB1YmxpYyBmaWxlczogQXJyYXk8Tmd0RHJvcHpvbmVGaWxlPjtcclxuXHJcbiAgICBwdWJsaWMgbmd0RHJvcHpvbmVWaWV3RmlsZVR5cGVFbnVtID0gTmd0RHJvcHpvbmVGaWxlVHlwZUVudW07XHJcblxyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBTa2lwU2VsZigpXHJcbiAgICAgICAgcHVibGljIG5ndERyb3B6b25lQ29tcG9uZW50OiBOZ3REcm9wem9uZUNvbXBvbmVudFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkgeyB9XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5yZXNvdXJjZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkRmlsZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGxvYWRGaWxlcygpIHtcclxuICAgICAgICB0aGlzLmltYWdlcyA9IHRoaXMucmVzb3VyY2VzLmZpbHRlcigocmVzb3VyY2UpID0+IHRoaXMuaXNJbWFnZShyZXNvdXJjZSkpO1xyXG4gICAgICAgIHRoaXMuYXVkaW9zID0gdGhpcy5yZXNvdXJjZXMuZmlsdGVyKChyZXNvdXJjZSkgPT4gdGhpcy5pc0F1ZGlvKHJlc291cmNlKSk7XHJcbiAgICAgICAgdGhpcy52aWRlb3MgPSB0aGlzLnJlc291cmNlcy5maWx0ZXIoKHJlc291cmNlKSA9PiB0aGlzLmlzVmlkZW8ocmVzb3VyY2UpKTtcclxuICAgICAgICB0aGlzLmZpbGVzID0gdGhpcy5yZXNvdXJjZXMuZmlsdGVyKChyZXNvdXJjZSkgPT4gdGhpcy5pc0ZpbGUocmVzb3VyY2UpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25JbWFnZUNsaWNrKGluZGV4KSB7XHJcbiAgICAgICAgY29uc3QgaW1hZ2VzRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbWFnZXMuZm9yRWFjaCgoaW1hZ2U6IE5ndERyb3B6b25lRmlsZSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgaW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImltZ1wiKTtcclxuXHJcbiAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSBpbWFnZS5wcmV2aWV3VXJsO1xyXG5cclxuICAgICAgICAgICAgaW1hZ2VzRGl2LmFwcGVuZENoaWxkKGltYWdlRWxlbWVudCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMubmd0RHJvcHpvbmVDb21wb25lbnQub25JbWFnZUNsaWNrKGltYWdlc0RpdiwgaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRGaWxlVHlwZShyZXNvdXJjZTogTmd0RHJvcHpvbmVGaWxlKTogTmd0RHJvcHpvbmVGaWxlVHlwZUVudW0ge1xyXG4gICAgICAgIGlmIChyZXNvdXJjZS5taW1lVHlwZS5pbmNsdWRlcygnLnNoZWV0JykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE5ndERyb3B6b25lRmlsZVR5cGVFbnVtLlhMUztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXNvdXJjZS5taW1lVHlwZS5pbmNsdWRlcygncGRmJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE5ndERyb3B6b25lRmlsZVR5cGVFbnVtLlBERjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXNvdXJjZS5taW1lVHlwZS5pbmNsdWRlcygnLmRvY3VtZW50JykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE5ndERyb3B6b25lRmlsZVR5cGVFbnVtLkRPQztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBOZ3REcm9wem9uZUZpbGVUeXBlRW51bS5PVEhFUjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzSW1hZ2UocmVzb3VyY2U6IE5ndERyb3B6b25lRmlsZSkge1xyXG4gICAgICAgIHJldHVybiByZXNvdXJjZS5taW1lVHlwZS5pbmNsdWRlcygnaW1hZ2UnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzQXVkaW8ocmVzb3VyY2U6IE5ndERyb3B6b25lRmlsZSkge1xyXG4gICAgICAgIHJldHVybiByZXNvdXJjZS5taW1lVHlwZS5pbmNsdWRlcygnYXVkaW8nKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzVmlkZW8ocmVzb3VyY2U6IE5ndERyb3B6b25lRmlsZSkge1xyXG4gICAgICAgIHJldHVybiByZXNvdXJjZS5taW1lVHlwZS5pbmNsdWRlcygndmlkZW8nKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzRmlsZShyZXNvdXJjZTogTmd0RHJvcHpvbmVGaWxlKSB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzSW1hZ2UocmVzb3VyY2UpICYmICF0aGlzLmlzQXVkaW8ocmVzb3VyY2UpICYmICF0aGlzLmlzVmlkZW8ocmVzb3VyY2UpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
1
+ import { Component, Input, SkipSelf, ViewEncapsulation } from '@angular/core';
2
+ import { NgtDropzoneComponent, NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';
3
+ export class NgtDropzoneViewComponent {
4
+ constructor(ngtDropzoneComponent) {
5
+ this.ngtDropzoneComponent = ngtDropzoneComponent;
6
+ this.ngtDropzoneViewFileTypeEnum = NgtDropzoneFileTypeEnum;
7
+ }
8
+ ngAfterViewInit() { }
9
+ ngOnChanges(changes) {
10
+ if (changes.resources) {
11
+ this.loadFiles();
12
+ }
13
+ }
14
+ loadFiles() {
15
+ this.images = this.resources.filter((resource) => this.isImage(resource));
16
+ this.audios = this.resources.filter((resource) => this.isAudio(resource));
17
+ this.videos = this.resources.filter((resource) => this.isVideo(resource));
18
+ this.files = this.resources.filter((resource) => this.isFile(resource));
19
+ }
20
+ onImageClick(index) {
21
+ const imagesDiv = document.createElement("div");
22
+ this.images.forEach((image) => {
23
+ let imageElement = document.createElement("img");
24
+ imageElement.src = image.previewUrl;
25
+ imagesDiv.appendChild(imageElement);
26
+ });
27
+ this.ngtDropzoneComponent.onImageClick(imagesDiv, index);
28
+ }
29
+ getFileType(resource) {
30
+ if (resource.mimeType.includes('.sheet')) {
31
+ return NgtDropzoneFileTypeEnum.XLS;
32
+ }
33
+ if (resource.mimeType.includes('pdf')) {
34
+ return NgtDropzoneFileTypeEnum.PDF;
35
+ }
36
+ if (resource.mimeType.includes('.document')) {
37
+ return NgtDropzoneFileTypeEnum.DOC;
38
+ }
39
+ return NgtDropzoneFileTypeEnum.OTHER;
40
+ }
41
+ isImage(resource) {
42
+ return resource.mimeType.includes('image');
43
+ }
44
+ isAudio(resource) {
45
+ return resource.mimeType.includes('audio');
46
+ }
47
+ isVideo(resource) {
48
+ return resource.mimeType.includes('video');
49
+ }
50
+ isFile(resource) {
51
+ return !this.isImage(resource) && !this.isAudio(resource) && !this.isVideo(resource);
52
+ }
53
+ }
54
+ NgtDropzoneViewComponent.decorators = [
55
+ { type: Component, args: [{
56
+ selector: 'ngt-dropzone-view',
57
+ template: "<div class=\"border-2 border-dotted border-gray-400 rounded p-2 flex items-center overflow-x-auto\"\n [ngStyle]=\"{ 'height': ngtDropzoneComponent.dropzoneHeight }\">\n <div *ngIf=\"ngtDropzoneComponent.loading\"\n class=\"flex absolute justify-center items-center w-full h-full cursor-wait z-10\">\n <div class=\"div-loader\"></div>\n </div>\n\n <div [class]=\"ngtDropzoneComponent.loading ? 'hidden' : 'flex items-center'\">\n <ng-container *ngIf=\"images?.length\">\n <div class=\"flex py-5\">\n <div *ngFor=\"let image of images; let index = index\" class=\"w-48 mr-8\">\n <div class=\"flex flex-col w-48 mx-4 cursor-pointer\"\n title=\"{{ image.name || '' }} ({{ ngtDropzoneComponent.getFormattedFileSize(image) }})\"\n (click)=\"onImageClick(index)\">\n <img [src]=\"image.thumbnailUrl\" [alt]=\"image.name\" class=\"w-full h-32\">\n\n <p class=\"w-full truncate text-gray-500 text-center text-sm font-mono\">\n {{ image.name || '' }}\n </p>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"audios?.length\">\n <ng-container *ngFor=\"let audio of audios\">\n <div class=\"flex flex-col w-48 mx-4 py-5\">\n <audio controls>\n <source [src]=\"audio.previewUrl\">\n </audio>\n\n <p class=\"w-full truncate text-gray-500 text-center text-sm font-mono\">\n {{ audio.name || '' }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"videos?.length\">\n <ng-container *ngFor=\"let video of videos\">\n <div class=\"flex flex-col w-48 mx-4 py-5\">\n <video width=\"240\" controls>\n <source [src]=\"video.previewUrl\">\n </video>\n\n <p class=\"w-full truncate text-gray-500 text-center text-sm font-mono\">\n {{ video.name || '' }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"files?.length\">\n <ng-container *ngFor=\"let file of files\">\n <div class=\"flex flex-col w-48 mr-6 cursor-pointer\"\n (click)=\"ngtDropzoneComponent.onFileClick(file.previewUrl, file.name, file.fileSize)\">\n <div class=\"w-full flex justify-center border-2 rounded py-4 text-6xl\">\n <svg *ngIf=\"getFileType(file) == ngtDropzoneViewFileTypeEnum.OTHER\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\" fill=\"#4a5568\"\n d=\"M6 2h9a1 1 0 0 1 .7.3l4 4a1 1 0 0 1 .3.7v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.1.9-2 2-2zm9 2.41V7h2.59L15 4.41zM18 9h-3a2 2 0 0 1-2-2V4H6v16h12V9zm-2 7a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm0-4a1 1 0 0 1-1 1H9a1 1 0 0 1 0-2h6a1 1 0 0 1 1 1zm-5-4a1 1 0 0 1-1 1H9a1 1 0 1 1 0-2h1a1 1 0 0 1 1 1z\" />\n </svg>\n\n <svg *ngIf=\"getFileType(file) == ngtDropzoneViewFileTypeEnum.DOC\" fill=\"#4a5568\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-0.78 -12l-2.52 10.8 -1.68 0 -2.16 -8.15 -2.16 8.15 -1.68 0 -2.64 -10.8 1.8 0 1.68 8.17 2.16 -8.17 1.56 0 2.16 8.17 1.68 -8.17 1.8 0z\" />\n </svg>\n\n <svg *ngIf=\"getFileType(file) == ngtDropzoneViewFileTypeEnum.XLS\" fill=\"#4a5568\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l-9.6 0c-1.33,0 -2.4,1.08 -2.4,2.4l0 19.2c0,1.33 1.07,2.4 2.4,2.4l14.4 0c1.33,0 2.4,-1.07 2.4,-2.4l0 -14.4 -7.2 -7.2 0 0zm4.8 21.6l-14.4 0 0 -19.2 8.4 0 0 6 6 0 0 13.2 0 0zm-6.12 -6.6l3.48 5.4 -2.16 0 -2.4 -4.08 -2.4 4.08 -2.16 0 3.48 -5.4 -3.48 -5.4 2.16 0 2.4 4.08 2.4 -4.08 2.16 0 -3.48 5.4z\" />\n </svg>\n\n <svg *ngIf=\"getFileType(file) == ngtDropzoneViewFileTypeEnum.PDF\" fill=\"#4a5568\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path\n d=\"M14.4 0l7.2 7.2 0 14.4c0,1.32 -1.08,2.4 -2.4,2.4l-14.4 0c-1.32,0 -2.4,-1.08 -2.4,-2.4l0 -19.2c0,-1.32 1.08,-2.4 2.4,-2.4l9.6 0 0 0zm4.8 21.6l0 -13.2 -6 0 0 -6 -8.4 0 0 19.2 14.4 0 0 0zm-8.5 -9.23c-0.28,-0.92 -0.92,-3.87 0.76,-3.92 1.68,-0.05 0.58,3.74 0.58,3.74 0.46,1.79 2.42,3.07 2.42,3.07 0.6,-0.18 4.02,-0.57 3.54,1.21 -0.52,1.77 -4.2,0.1 -4.2,0.1 -2.34,0.17 -4.09,0.8 -4.09,0.8 -1.36,2.53 -2.94,3.63 -3.59,2.56 -0.8,-1.33 2.56,-3.04 2.56,-3.04 1.74,-2.83 2,-4.47 2.02,-4.52l0 0zm0.78 1.01c-0.48,1.56 -1.44,3.23 -1.44,3.23 1.02,-0.41 3.26,-0.88 3.26,-0.88 -1.37,-1.2 -1.79,-2.34 -1.82,-2.35l0 0zm3.77 2.6c0,0 2.1,0.79 2.15,0.47 0.08,-0.32 -1.6,-0.61 -2.15,-0.47l0 0zm-6.79 1.79c-0.93,0.36 -1.81,1.9 -1.6,1.9 0.22,0.01 1.1,-0.72 1.6,-1.9l0 0zm3.02 -6.66c0,-0.06 0.52,-2.01 0,-2.07 -0.36,-0.04 -0.01,2.02 0,2.07z\" />\n </svg>\n </div>\n\n <p class=\"w-full truncate text-gray-500 text-center text-sm font-mono\">\n {{ file.name || '' }}\n </p>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div *ngIf=\"!ngtDropzoneComponent.loading && !ngtDropzoneComponent.resources?.length\"\n class=\"px-2 text-center w-full\">\n {{ ngtDropzoneComponent.placeholder }}\n </div>\n</div>",
58
+ encapsulation: ViewEncapsulation.None
59
+ },] }
60
+ ];
61
+ NgtDropzoneViewComponent.ctorParameters = () => [
62
+ { type: NgtDropzoneComponent, decorators: [{ type: SkipSelf }] }
63
+ ];
64
+ NgtDropzoneViewComponent.propDecorators = {
65
+ resources: [{ type: Input }]
66
+ };
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3B6b25lLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRyb3B6b25lL25ndC1kcm9wem9uZS12aWV3L25ndC1kcm9wem9uZS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQWlCLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPM0csTUFBTSxPQUFPLHdCQUF3QjtJQVVqQyxZQUVXLG9CQUEwQztRQUExQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBSjlDLGdDQUEyQixHQUFHLHVCQUF1QixDQUFDO0lBS3pELENBQUM7SUFFRSxlQUFlLEtBQUssQ0FBQztJQUVyQixXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwQjtJQUNMLENBQUM7SUFFTSxTQUFTO1FBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBSztRQUNyQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBc0IsRUFBRSxFQUFFO1lBQzNDLElBQUksWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFakQsWUFBWSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBRXBDLFNBQVMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQXlCO1FBQ3hDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEMsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLENBQUM7U0FDdEM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25DLE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN6QyxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQztTQUN0QztRQUVELE9BQU8sdUJBQXVCLENBQUMsS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxPQUFPLENBQUMsUUFBeUI7UUFDckMsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sT0FBTyxDQUFDLFFBQXlCO1FBQ3JDLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVPLE9BQU8sQ0FBQyxRQUF5QjtRQUNyQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxNQUFNLENBQUMsUUFBeUI7UUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RixDQUFDOzs7WUEvRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLHluTUFBaUQ7Z0JBQ2pELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUFOUSxvQkFBb0IsdUJBa0JwQixRQUFROzs7d0JBVlosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIFNraXBTZWxmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ3REcm9wem9uZUNvbXBvbmVudCwgTmd0RHJvcHpvbmVGaWxlLCBOZ3REcm9wem9uZUZpbGVUeXBlRW51bSB9IGZyb20gJy4uL25ndC1kcm9wem9uZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1kcm9wem9uZS12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWRyb3B6b25lLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTmd0RHJvcHpvbmVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgcHVibGljIHJlc291cmNlczogQXJyYXk8YW55PjtcblxuICAgIHB1YmxpYyBpbWFnZXM6IEFycmF5PE5ndERyb3B6b25lRmlsZT47XG4gICAgcHVibGljIGF1ZGlvczogQXJyYXk8Tmd0RHJvcHpvbmVGaWxlPjtcbiAgICBwdWJsaWMgdmlkZW9zOiBBcnJheTxOZ3REcm9wem9uZUZpbGU+O1xuICAgIHB1YmxpYyBmaWxlczogQXJyYXk8Tmd0RHJvcHpvbmVGaWxlPjtcblxuICAgIHB1YmxpYyBuZ3REcm9wem9uZVZpZXdGaWxlVHlwZUVudW0gPSBOZ3REcm9wem9uZUZpbGVUeXBlRW51bTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgQFNraXBTZWxmKClcbiAgICAgICAgcHVibGljIG5ndERyb3B6b25lQ29tcG9uZW50OiBOZ3REcm9wem9uZUNvbXBvbmVudFxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5yZXNvdXJjZXMpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZEZpbGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZEZpbGVzKCkge1xuICAgICAgICB0aGlzLmltYWdlcyA9IHRoaXMucmVzb3VyY2VzLmZpbHRlcigocmVzb3VyY2UpID0+IHRoaXMuaXNJbWFnZShyZXNvdXJjZSkpO1xuICAgICAgICB0aGlzLmF1ZGlvcyA9IHRoaXMucmVzb3VyY2VzLmZpbHRlcigocmVzb3VyY2UpID0+IHRoaXMuaXNBdWRpbyhyZXNvdXJjZSkpO1xuICAgICAgICB0aGlzLnZpZGVvcyA9IHRoaXMucmVzb3VyY2VzLmZpbHRlcigocmVzb3VyY2UpID0+IHRoaXMuaXNWaWRlbyhyZXNvdXJjZSkpO1xuICAgICAgICB0aGlzLmZpbGVzID0gdGhpcy5yZXNvdXJjZXMuZmlsdGVyKChyZXNvdXJjZSkgPT4gdGhpcy5pc0ZpbGUocmVzb3VyY2UpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25JbWFnZUNsaWNrKGluZGV4KSB7XG4gICAgICAgIGNvbnN0IGltYWdlc0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG5cbiAgICAgICAgdGhpcy5pbWFnZXMuZm9yRWFjaCgoaW1hZ2U6IE5ndERyb3B6b25lRmlsZSkgPT4ge1xuICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIik7XG5cbiAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSBpbWFnZS5wcmV2aWV3VXJsO1xuXG4gICAgICAgICAgICBpbWFnZXNEaXYuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5uZ3REcm9wem9uZUNvbXBvbmVudC5vbkltYWdlQ2xpY2soaW1hZ2VzRGl2LCBpbmRleCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpbGVUeXBlKHJlc291cmNlOiBOZ3REcm9wem9uZUZpbGUpOiBOZ3REcm9wem9uZUZpbGVUeXBlRW51bSB7XG4gICAgICAgIGlmIChyZXNvdXJjZS5taW1lVHlwZS5pbmNsdWRlcygnLnNoZWV0JykpIHtcbiAgICAgICAgICAgIHJldHVybiBOZ3REcm9wem9uZUZpbGVUeXBlRW51bS5YTFM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzb3VyY2UubWltZVR5cGUuaW5jbHVkZXMoJ3BkZicpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmd0RHJvcHpvbmVGaWxlVHlwZUVudW0uUERGO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJlc291cmNlLm1pbWVUeXBlLmluY2x1ZGVzKCcuZG9jdW1lbnQnKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5ndERyb3B6b25lRmlsZVR5cGVFbnVtLkRPQztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBOZ3REcm9wem9uZUZpbGVUeXBlRW51bS5PVEhFUjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzSW1hZ2UocmVzb3VyY2U6IE5ndERyb3B6b25lRmlsZSkge1xuICAgICAgICByZXR1cm4gcmVzb3VyY2UubWltZVR5cGUuaW5jbHVkZXMoJ2ltYWdlJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0F1ZGlvKHJlc291cmNlOiBOZ3REcm9wem9uZUZpbGUpIHtcbiAgICAgICAgcmV0dXJuIHJlc291cmNlLm1pbWVUeXBlLmluY2x1ZGVzKCdhdWRpbycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWaWRlbyhyZXNvdXJjZTogTmd0RHJvcHpvbmVGaWxlKSB7XG4gICAgICAgIHJldHVybiByZXNvdXJjZS5taW1lVHlwZS5pbmNsdWRlcygndmlkZW8nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmlsZShyZXNvdXJjZTogTmd0RHJvcHpvbmVGaWxlKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0ltYWdlKHJlc291cmNlKSAmJiAhdGhpcy5pc0F1ZGlvKHJlc291cmNlKSAmJiAhdGhpcy5pc1ZpZGVvKHJlc291cmNlKTtcbiAgICB9XG59XG4iXX0=