ng-tailwind 6.2.0 → 6.4.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 (119) hide show
  1. package/components/ngt-checkbox/ngt-checkbox.component.d.ts +6 -6
  2. package/components/ngt-datatable/ngt-datatable.component.d.ts +24 -24
  3. package/components/ngt-date/ngt-date.component.d.ts +8 -8
  4. package/components/ngt-dropdown/ngt-dropdown.component.d.ts +6 -6
  5. package/components/ngt-floating-button/ngt-floating-button.component.d.ts +13 -13
  6. package/components/ngt-form/ngt-form.component.d.ts +4 -4
  7. package/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.d.ts +5 -5
  8. package/components/ngt-popover/ngt-popover.component.d.ts +6 -6
  9. package/components/ngt-select/ngt-select.component.d.ts +8 -8
  10. package/components/ngt-shining/ngt-shining.component.d.ts +6 -6
  11. package/components/ngt-slider/ngt-slider.component.d.ts +6 -6
  12. package/components/ngt-svg/ngt-svg.module.d.ts +2 -3
  13. package/fesm2022/ng-tailwind.mjs +464 -455
  14. package/fesm2022/ng-tailwind.mjs.map +1 -1
  15. package/package.json +1 -3
  16. package/services/http/ngt-http-validation.service.d.ts +3 -5
  17. package/esm2022/animations/ngt-angular-animations.mjs +0 -34
  18. package/esm2022/base/ngt-base-ng-model.mjs +0 -90
  19. package/esm2022/components/ngt-action/ngt-action.component.mjs +0 -96
  20. package/esm2022/components/ngt-action/ngt-action.module.mjs +0 -28
  21. package/esm2022/components/ngt-button/ngt-button.component.mjs +0 -142
  22. package/esm2022/components/ngt-button/ngt-button.module.mjs +0 -28
  23. package/esm2022/components/ngt-checkbox/ngt-checkbox.component.mjs +0 -192
  24. package/esm2022/components/ngt-checkbox/ngt-checkbox.module.mjs +0 -28
  25. package/esm2022/components/ngt-content/ngt-content.component.mjs +0 -32
  26. package/esm2022/components/ngt-content/ngt-content.module.mjs +0 -20
  27. package/esm2022/components/ngt-context-menu/ngt-context-menu.component.mjs +0 -25
  28. package/esm2022/components/ngt-context-menu/ngt-context-menu.directive.mjs +0 -89
  29. package/esm2022/components/ngt-context-menu/ngt-context-menu.module.mjs +0 -33
  30. package/esm2022/components/ngt-datatable/ngt-datatable.component.mjs +0 -470
  31. package/esm2022/components/ngt-datatable/ngt-datatable.module.mjs +0 -99
  32. package/esm2022/components/ngt-datatable/ngt-tbody/ngt-tbody.component.mjs +0 -57
  33. package/esm2022/components/ngt-datatable/ngt-td/ngt-td.component.mjs +0 -62
  34. package/esm2022/components/ngt-datatable/ngt-td-check/ngt-td-check.component.mjs +0 -113
  35. package/esm2022/components/ngt-datatable/ngt-th/ngt-th.component.mjs +0 -228
  36. package/esm2022/components/ngt-datatable/ngt-th-check/ngt-th-check.component.mjs +0 -127
  37. package/esm2022/components/ngt-datatable/ngt-thead/ngt-thead.component.mjs +0 -55
  38. package/esm2022/components/ngt-datatable/ngt-tr/ngt-tr.component.mjs +0 -86
  39. package/esm2022/components/ngt-date/ngt-date.component.mjs +0 -436
  40. package/esm2022/components/ngt-date/ngt-date.module.mjs +0 -40
  41. package/esm2022/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.mjs +0 -19
  42. package/esm2022/components/ngt-dropdown/ngt-dropdown.component.mjs +0 -205
  43. package/esm2022/components/ngt-dropdown/ngt-dropdown.module.mjs +0 -21
  44. package/esm2022/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.mjs +0 -54
  45. package/esm2022/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.mjs +0 -66
  46. package/esm2022/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.mjs +0 -94
  47. package/esm2022/components/ngt-dropzone/ngt-dropzone.component.mjs +0 -496
  48. package/esm2022/components/ngt-dropzone/ngt-dropzone.meta.mjs +0 -24
  49. package/esm2022/components/ngt-dropzone/ngt-dropzone.module.mjs +0 -55
  50. package/esm2022/components/ngt-floating-button/ngt-floating-button.component.mjs +0 -119
  51. package/esm2022/components/ngt-floating-button/ngt-floating-button.module.mjs +0 -28
  52. package/esm2022/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.mjs +0 -22
  53. package/esm2022/components/ngt-form/ngt-form.component.mjs +0 -207
  54. package/esm2022/components/ngt-form/ngt-form.module.mjs +0 -29
  55. package/esm2022/components/ngt-header-nav/ngt-header-nav.component.mjs +0 -39
  56. package/esm2022/components/ngt-header-nav/ngt-header-nav.module.mjs +0 -20
  57. package/esm2022/components/ngt-helper/ngt-helper.component.mjs +0 -69
  58. package/esm2022/components/ngt-helper/ngt-helper.module.mjs +0 -28
  59. package/esm2022/components/ngt-input/ngt-input.component.mjs +0 -844
  60. package/esm2022/components/ngt-input/ngt-input.module.mjs +0 -47
  61. package/esm2022/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.mjs +0 -46
  62. package/esm2022/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.mjs +0 -33
  63. package/esm2022/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.mjs +0 -40
  64. package/esm2022/components/ngt-modal/ngt-modal.component.mjs +0 -122
  65. package/esm2022/components/ngt-modal/ngt-modal.module.mjs +0 -39
  66. package/esm2022/components/ngt-multi-select/ngt-multi-select.component.mjs +0 -503
  67. package/esm2022/components/ngt-multi-select/ngt-multi-select.module.mjs +0 -52
  68. package/esm2022/components/ngt-pagination/ngt-pagination.component.mjs +0 -162
  69. package/esm2022/components/ngt-pagination/ngt-pagination.module.mjs +0 -36
  70. package/esm2022/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.mjs +0 -59
  71. package/esm2022/components/ngt-popover/ngt-popover.component.mjs +0 -85
  72. package/esm2022/components/ngt-popover/ngt-popover.directive.mjs +0 -130
  73. package/esm2022/components/ngt-popover/ngt-popover.module.mjs +0 -36
  74. package/esm2022/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.mjs +0 -34
  75. package/esm2022/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.mjs +0 -35
  76. package/esm2022/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.mjs +0 -57
  77. package/esm2022/components/ngt-portlet/ngt-portlet.component.mjs +0 -74
  78. package/esm2022/components/ngt-portlet/ngt-portlet.module.mjs +0 -47
  79. package/esm2022/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.mjs +0 -19
  80. package/esm2022/components/ngt-radio-button/ngt-radio-button.component.mjs +0 -153
  81. package/esm2022/components/ngt-radio-button/ngt-radio-button.module.mjs +0 -29
  82. package/esm2022/components/ngt-section/ngt-section.component.mjs +0 -151
  83. package/esm2022/components/ngt-section/ngt-section.module.mjs +0 -32
  84. package/esm2022/components/ngt-select/ngt-select.component.mjs +0 -670
  85. package/esm2022/components/ngt-select/ngt-select.directive.mjs +0 -36
  86. package/esm2022/components/ngt-select/ngt-select.module.mjs +0 -65
  87. package/esm2022/components/ngt-shining/ngt-shining.component.mjs +0 -40
  88. package/esm2022/components/ngt-shining/ngt-shining.module.mjs +0 -20
  89. package/esm2022/components/ngt-sidenav/ngt-sidenav.component.mjs +0 -132
  90. package/esm2022/components/ngt-sidenav/ngt-sidenav.module.mjs +0 -20
  91. package/esm2022/components/ngt-slider/ngt-slider.component.mjs +0 -100
  92. package/esm2022/components/ngt-slider/ngt-slider.module.mjs +0 -24
  93. package/esm2022/components/ngt-svg/ngt-svg.component.mjs +0 -53
  94. package/esm2022/components/ngt-svg/ngt-svg.module.mjs +0 -28
  95. package/esm2022/components/ngt-tag/ngt-tag.component.mjs +0 -37
  96. package/esm2022/components/ngt-tag/ngt-tag.module.mjs +0 -24
  97. package/esm2022/components/ngt-textarea/ngt-textarea.component.mjs +0 -238
  98. package/esm2022/components/ngt-textarea/ngt-textarea.module.mjs +0 -43
  99. package/esm2022/components/ngt-validation/ngt-validation.component.mjs +0 -26
  100. package/esm2022/components/ngt-validation/ngt-validation.module.mjs +0 -20
  101. package/esm2022/directives/ngt-stylizable/ngt-stylizable.directive.mjs +0 -299
  102. package/esm2022/directives/ngt-stylizable/ngt-stylizable.module.mjs +0 -20
  103. package/esm2022/enums/size.enum.mjs +0 -11
  104. package/esm2022/helpers/enum/enum.mjs +0 -7
  105. package/esm2022/helpers/form/form.mjs +0 -14
  106. package/esm2022/helpers/input-mask/input-mask.helper.mjs +0 -26
  107. package/esm2022/helpers/promise/promise-helper.mjs +0 -4
  108. package/esm2022/helpers/routing/route.mjs +0 -11
  109. package/esm2022/helpers/uuid.mjs +0 -10
  110. package/esm2022/ng-tailwind.mjs +0 -5
  111. package/esm2022/public-api.mjs +0 -127
  112. package/esm2022/services/http/ngt-attachment-http.service.mjs +0 -3
  113. package/esm2022/services/http/ngt-http-form.service.mjs +0 -3
  114. package/esm2022/services/http/ngt-http-resource.service.mjs +0 -3
  115. package/esm2022/services/http/ngt-http-validation.service.mjs +0 -3
  116. package/esm2022/services/http/ngt-http.service.mjs +0 -3
  117. package/esm2022/services/http/ngt-translate.service.mjs +0 -3
  118. package/esm2022/services/ngt-stylizable/ngt-stylizable.service.mjs +0 -279
  119. package/esm2022/services/validation/ngt-ability-validation.service.mjs +0 -3
@@ -1,40 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { NgtHelperModule } from '../ngt-helper/ngt-helper.module';
5
- import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
6
- import { NgtValidationModule } from '../ngt-validation/ngt-validation.module';
7
- import { NgtDateComponent } from './ngt-date.component';
8
- import { EvDatePickerModule } from 'ev-date-picker';
9
- import * as i0 from "@angular/core";
10
- export class NgtDateModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgtDateModule, declarations: [NgtDateComponent], imports: [CommonModule,
13
- FormsModule,
14
- EvDatePickerModule,
15
- NgtValidationModule,
16
- NgtShiningModule,
17
- NgtHelperModule], exports: [NgtDateComponent] }); }
18
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDateModule, imports: [CommonModule,
19
- FormsModule,
20
- EvDatePickerModule,
21
- NgtValidationModule,
22
- NgtShiningModule,
23
- NgtHelperModule] }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDateModule, decorators: [{
26
- type: NgModule,
27
- args: [{
28
- declarations: [NgtDateComponent],
29
- exports: [NgtDateComponent],
30
- imports: [
31
- CommonModule,
32
- FormsModule,
33
- EvDatePickerModule,
34
- NgtValidationModule,
35
- NgtShiningModule,
36
- NgtHelperModule,
37
- ]
38
- }]
39
- }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGUvbmd0LWRhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBY3BELE1BQU0sT0FBTyxhQUFhOytHQUFiLGFBQWE7Z0hBQWIsYUFBYSxpQkFYUCxnQkFBZ0IsYUFHM0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixlQUFlLGFBUFQsZ0JBQWdCO2dIQVVqQixhQUFhLFlBUmxCLFlBQVk7WUFDWixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsZUFBZTs7NEZBR1YsYUFBYTtrQkFaekIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDbEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBOZ3RIZWxwZXJNb2R1bGUgfSBmcm9tICcuLi9uZ3QtaGVscGVyL25ndC1oZWxwZXIubW9kdWxlJztcbmltcG9ydCB7IE5ndFNoaW5pbmdNb2R1bGUgfSBmcm9tICcuLi9uZ3Qtc2hpbmluZy9uZ3Qtc2hpbmluZy5tb2R1bGUnO1xuaW1wb3J0IHsgTmd0VmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJy4uL25ndC12YWxpZGF0aW9uL25ndC12YWxpZGF0aW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBOZ3REYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXZEYXRlUGlja2VyTW9kdWxlIH0gZnJvbSAnZXYtZGF0ZS1waWNrZXInO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW05ndERhdGVDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtOZ3REYXRlQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEV2RGF0ZVBpY2tlck1vZHVsZSxcbiAgICAgICAgTmd0VmFsaWRhdGlvbk1vZHVsZSxcbiAgICAgICAgTmd0U2hpbmluZ01vZHVsZSxcbiAgICAgICAgTmd0SGVscGVyTW9kdWxlLFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd0RGF0ZU1vZHVsZSB7IH1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { Component, EventEmitter, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class NgtDropdownContainerComponent {
4
- constructor() {
5
- this.onActiveDropdownChange = new EventEmitter();
6
- }
7
- setActiveDropdown(activeDropdown) {
8
- this.onActiveDropdownChange.emit(activeDropdown);
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDropdownContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgtDropdownContainerComponent, selector: "[ngt-dropdown-container]", outputs: { onActiveDropdownChange: "onActiveDropdownChange" }, ngImport: i0, template: "<ng-content></ng-content>" }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDropdownContainerComponent, decorators: [{
14
- type: Component,
15
- args: [{ selector: '[ngt-dropdown-container]', template: "<ng-content></ng-content>" }]
16
- }], propDecorators: { onActiveDropdownChange: [{
17
- type: Output
18
- }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3Bkb3duLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZHJvcGRvd24vbmd0LWRyb3Bkb3duLWNvbnRhaW5lci9uZ3QtZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wZG93bi9uZ3QtZHJvcGRvd24tY29udGFpbmVyL25ndC1kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1oRSxNQUFNLE9BQU8sNkJBQTZCO0lBSjFDO1FBS3FCLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0FLaEU7SUFIVSxpQkFBaUIsQ0FBQyxjQUFjO1FBQ25DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsQ0FBQzsrR0FMUSw2QkFBNkI7bUdBQTdCLDZCQUE2QiwrSENOMUMsMkJBQXlCOzs0RkRNWiw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0ksMEJBQTBCOzhCQUluQixzQkFBc0I7c0JBQXRDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW25ndC1kcm9wZG93bi1jb250YWluZXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWRyb3Bkb3duLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTmd0RHJvcGRvd25Db250YWluZXJDb21wb25lbnQge1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25BY3RpdmVEcm9wZG93bkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBzZXRBY3RpdmVEcm9wZG93bihhY3RpdmVEcm9wZG93bikge1xuICAgICAgICB0aGlzLm9uQWN0aXZlRHJvcGRvd25DaGFuZ2UuZW1pdChhY3RpdmVEcm9wZG93bik7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiJdfQ==
@@ -1,205 +0,0 @@
1
- import { animate, state, style, transition, trigger } from '@angular/animations';
2
- import { Component, EventEmitter, Input, Optional, Output, SkipSelf, ViewChild, } from '@angular/core';
3
- import { getEnumFromString } from '../../helpers/enum/enum';
4
- import { uuid } from '../../helpers/uuid';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./ngt-dropdown-container/ngt-dropdown-container.component";
7
- import * as i2 from "@angular/common";
8
- export class NgtDropdownComponent {
9
- constructor(ngtDropdownContainer, changeDetector) {
10
- this.ngtDropdownContainer = ngtDropdownContainer;
11
- this.changeDetector = changeDetector;
12
- this.autoYReverse = true;
13
- this.closeTimeout = 1000;
14
- this.openMethod = NgtDropdownOpenMethod.HOVER;
15
- this.onToggle = new EventEmitter();
16
- this.onHostClick = new EventEmitter();
17
- this.name = uuid();
18
- this.isBindingYPosition = true;
19
- this.isBindingXPosition = true;
20
- this.subscriptions = [];
21
- if (this.ngtDropdownContainer) {
22
- this.subscriptions.push(this.ngtDropdownContainer.onActiveDropdownChange.subscribe((activeDropdown) => {
23
- this.isOpen = (activeDropdown.name === this.name);
24
- }));
25
- }
26
- }
27
- ngOnChanges(changes) {
28
- if (changes.openMethod) {
29
- this.openMethod = getEnumFromString(changes.openMethod.currentValue, NgtDropdownOpenMethod);
30
- }
31
- }
32
- ngOnDestroy() {
33
- this.destroySubscriptions();
34
- }
35
- open() {
36
- this.isOpen = true;
37
- this.ngtDropdownContainer?.setActiveDropdown(this);
38
- this.changeDetector.detectChanges();
39
- this.bindContainerXPosition();
40
- this.bindContainerYPosition();
41
- this.onToggle.emit(this.isOpen);
42
- }
43
- closeOnSelectOption() {
44
- if (this.closeOnClick) {
45
- this.close();
46
- }
47
- }
48
- close() {
49
- this.isOpen = false;
50
- this.containerXPosition = null;
51
- this.containerYPosition = null;
52
- this.onToggle.emit(this.isOpen);
53
- }
54
- toggle() {
55
- setTimeout(() => {
56
- if (this.isOpen) {
57
- this.close();
58
- }
59
- else {
60
- this.open();
61
- }
62
- });
63
- }
64
- onHover(host, container) {
65
- if (this.openMethod == NgtDropdownOpenMethod.HOVER && host && container) {
66
- this.open();
67
- this.watchHover(host, container);
68
- }
69
- }
70
- onClick(event, host, container) {
71
- this.onHostClick?.emit();
72
- if (this.isClickMethod()) {
73
- event.preventDefault();
74
- event.stopPropagation();
75
- this.toggle();
76
- }
77
- if (this.openMethod == NgtDropdownOpenMethod.POPOVER_CLICK) {
78
- this.watchHover(host, container);
79
- }
80
- }
81
- onRightClick(event) {
82
- if (this.openMethod == NgtDropdownOpenMethod.RIGHT_CLICK) {
83
- event.preventDefault();
84
- event.stopPropagation();
85
- this.toggle();
86
- }
87
- }
88
- shouldReverseXPosition() {
89
- if (!this.autoXReverse || this.reverseXPosition !== undefined) {
90
- return this.reverseXPosition;
91
- }
92
- if (this.isOpen && !this.isBindingXPosition) {
93
- this.isXPositionReversed = !(this.containerXPosition > document.documentElement.clientWidth);
94
- return this.isXPositionReversed;
95
- }
96
- }
97
- shouldReverseYPosition() {
98
- if (!this.autoYReverse || this.reverseYPosition !== undefined) {
99
- return this.reverseYPosition;
100
- }
101
- if (this.isOpen && !this.isBindingYPosition) {
102
- this.isYPositionReversed = this.containerYPosition > (document.documentElement.clientHeight * 0.9);
103
- return this.isYPositionReversed;
104
- }
105
- }
106
- bindContainerXPosition() {
107
- if (!this.containerXPosition && this.containerRef.nativeElement.offsetWidth) {
108
- this.isBindingXPosition = true;
109
- setTimeout(() => {
110
- this.containerXPosition = this.containerRef.nativeElement.getBoundingClientRect().x
111
- + this.containerRef.nativeElement.offsetWidth;
112
- this.isBindingXPosition = false;
113
- this.changeDetector.detectChanges();
114
- });
115
- }
116
- }
117
- bindContainerYPosition() {
118
- if (!this.containerYPosition && this.containerRef?.nativeElement.offsetHeight) {
119
- this.isBindingYPosition = true;
120
- setTimeout(() => {
121
- this.containerYPosition = this.containerRef.nativeElement.getBoundingClientRect().y
122
- + this.containerRef.nativeElement.offsetHeight;
123
- this.isBindingYPosition = false;
124
- this.changeDetector.detectChanges();
125
- });
126
- }
127
- }
128
- watchHover(host, container) {
129
- const interval = setInterval(() => {
130
- if (!host || !container || !this.isInHover(host, container)) {
131
- this.close();
132
- clearInterval(interval);
133
- }
134
- }, this.closeTimeout);
135
- }
136
- isInHover(host, container) {
137
- return host.parentElement.querySelector(':hover') == host ||
138
- container.parentElement.querySelector(':hover') == container;
139
- }
140
- destroySubscriptions() {
141
- this.subscriptions.forEach(subscription => subscription.unsubscribe());
142
- this.subscriptions = [];
143
- }
144
- isClickMethod() {
145
- return this.openMethod == NgtDropdownOpenMethod.CLICK
146
- || this.openMethod == NgtDropdownOpenMethod.POPOVER_CLICK;
147
- }
148
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDropdownComponent, deps: [{ token: i1.NgtDropdownContainerComponent, optional: true, skipSelf: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
149
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgtDropdownComponent, selector: "ngt-dropdown", inputs: { scrollable: "scrollable", autoXReverse: "autoXReverse", autoYReverse: "autoYReverse", reverseXPosition: "reverseXPosition", reverseYPosition: "reverseYPosition", closeOnClick: "closeOnClick", closeTimeout: "closeTimeout", openMethod: "openMethod" }, outputs: { onToggle: "onToggle", onHostClick: "onHostClick" }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"sm:relative\">\n <div (mouseenter)=\"onHover(host, container)\" (click)=\"onClick($event, host, container)\"\n (contextmenu)=\"onRightClick($event)\" #host>\n <ng-content select='[host]'></ng-content>\n </div>\n\n <div [hidden]='!isOpen'\n class=\"{{ shouldReverseYPosition() ? 'mb-12 bottom-0' : 'mt-4' }} {{ shouldReverseXPosition() ? 'left-0': 'right-0' }} ngt-dropdown-container sm:mr-0 mr-3 max-w-xs absolute\"\n [@openClose]=\"isOpen ? 'open' : 'closed'\" (mouseenter)=\"onHover(host, container)\"\n (click)='closeOnSelectOption()' style=\"z-index: 1100 !important;\" #container>\n\n <div *ngIf=\"isOpen\" class=\"flex flex-col\" [ngClass]=\"{ 'h-52 overflow-auto':scrollable }\">\n <ng-content select='[container]'></ng-content>\n </div>\n </div>\n</div>\n\n<button *ngIf=\"isOpen && openMethod != 'HOVER'\" type=\"button\"\n class=\"fixed z-40 inset-0 h-full w-full opacity-0 cursor-default\" (click)='toggle()'>\n</button>", styles: [".ngt-dropdown-container{max-height:30rem;width:max-content}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
150
- trigger('openClose', [
151
- state('open', style({ opacity: 1, transform: 'translateY(0px)' })),
152
- state('closed', style({ opacity: 0, transform: 'translateY(-10px)' })),
153
- transition('closed => open', [
154
- animate(300)
155
- ]),
156
- ]),
157
- ] }); }
158
- }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDropdownComponent, decorators: [{
160
- type: Component,
161
- args: [{ selector: 'ngt-dropdown', animations: [
162
- trigger('openClose', [
163
- state('open', style({ opacity: 1, transform: 'translateY(0px)' })),
164
- state('closed', style({ opacity: 0, transform: 'translateY(-10px)' })),
165
- transition('closed => open', [
166
- animate(300)
167
- ]),
168
- ]),
169
- ], template: "<div class=\"sm:relative\">\n <div (mouseenter)=\"onHover(host, container)\" (click)=\"onClick($event, host, container)\"\n (contextmenu)=\"onRightClick($event)\" #host>\n <ng-content select='[host]'></ng-content>\n </div>\n\n <div [hidden]='!isOpen'\n class=\"{{ shouldReverseYPosition() ? 'mb-12 bottom-0' : 'mt-4' }} {{ shouldReverseXPosition() ? 'left-0': 'right-0' }} ngt-dropdown-container sm:mr-0 mr-3 max-w-xs absolute\"\n [@openClose]=\"isOpen ? 'open' : 'closed'\" (mouseenter)=\"onHover(host, container)\"\n (click)='closeOnSelectOption()' style=\"z-index: 1100 !important;\" #container>\n\n <div *ngIf=\"isOpen\" class=\"flex flex-col\" [ngClass]=\"{ 'h-52 overflow-auto':scrollable }\">\n <ng-content select='[container]'></ng-content>\n </div>\n </div>\n</div>\n\n<button *ngIf=\"isOpen && openMethod != 'HOVER'\" type=\"button\"\n class=\"fixed z-40 inset-0 h-full w-full opacity-0 cursor-default\" (click)='toggle()'>\n</button>", styles: [".ngt-dropdown-container{max-height:30rem;width:max-content}\n"] }]
170
- }], ctorParameters: () => [{ type: i1.NgtDropdownContainerComponent, decorators: [{
171
- type: Optional
172
- }, {
173
- type: SkipSelf
174
- }] }, { type: i0.ChangeDetectorRef }], propDecorators: { containerRef: [{
175
- type: ViewChild,
176
- args: ['container', { static: true }]
177
- }], scrollable: [{
178
- type: Input
179
- }], autoXReverse: [{
180
- type: Input
181
- }], autoYReverse: [{
182
- type: Input
183
- }], reverseXPosition: [{
184
- type: Input
185
- }], reverseYPosition: [{
186
- type: Input
187
- }], closeOnClick: [{
188
- type: Input
189
- }], closeTimeout: [{
190
- type: Input
191
- }], openMethod: [{
192
- type: Input
193
- }], onToggle: [{
194
- type: Output
195
- }], onHostClick: [{
196
- type: Output
197
- }] } });
198
- export var NgtDropdownOpenMethod;
199
- (function (NgtDropdownOpenMethod) {
200
- NgtDropdownOpenMethod["CLICK"] = "CLICK";
201
- NgtDropdownOpenMethod["POPOVER_CLICK"] = "POPOVER_CLICK";
202
- NgtDropdownOpenMethod["RIGHT_CLICK"] = "RIGHT_CLICK";
203
- NgtDropdownOpenMethod["HOVER"] = "HOVER";
204
- })(NgtDropdownOpenMethod || (NgtDropdownOpenMethod = {}));
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wZG93bi9uZ3QtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRyb3Bkb3duL25ndC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFFBQVEsRUFDUixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBaUIxQyxNQUFNLE9BQU8sb0JBQW9CO0lBMEI3QixZQUVZLG9CQUFtRCxFQUNuRCxjQUFpQztRQURqQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQStCO1FBQ25ELG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQXhCN0IsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFJN0IsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFDNUIsZUFBVSxHQUEwQixxQkFBcUIsQ0FBQyxLQUFLLENBQUM7UUFFL0QsYUFBUSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsU0FBSSxHQUFXLElBQUksRUFBRSxDQUFDO1FBSXRCLHVCQUFrQixHQUFZLElBQUksQ0FB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Q0FBQTtBQUNuQixDQUFDLEVBTFcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUtoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0RW51bUZyb21TdHJpbmcgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VudW0vZW51bSc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnLi4vLi4vaGVscGVycy91dWlkJztcbmltcG9ydCB7IE5ndERyb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtZHJvcGRvd24tY29udGFpbmVyL25ndC1kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtZHJvcGRvd24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25ndC1kcm9wZG93bi5jb21wb25lbnQuY3NzJ10sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdvcGVuQ2xvc2UnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnb3BlbicsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwcHgpJyB9KSksXG4gICAgICAgICAgICBzdGF0ZSgnY2xvc2VkJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMHB4KScgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgzMDApXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXSksXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3REcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGNvbnRhaW5lclJlZjogRWxlbWVudFJlZjtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzY3JvbGxhYmxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhdXRvWFJldmVyc2U6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGF1dG9ZUmV2ZXJzZTogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgcHVibGljIHJldmVyc2VYUG9zaXRpb246IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIHJldmVyc2VZUG9zaXRpb246IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGNsb3NlT25DbGljazogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgY2xvc2VUaW1lb3V0OiBudW1iZXIgPSAxMDAwO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvcGVuTWV0aG9kOiBOZ3REcm9wZG93bk9wZW5NZXRob2QgPSBOZ3REcm9wZG93bk9wZW5NZXRob2QuSE9WRVI7XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIG9uVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkhvc3RDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nID0gdXVpZCgpO1xuICAgIHB1YmxpYyBpc09wZW46IGJvb2xlYW47XG4gICAgcHVibGljIGlzWVBvc2l0aW9uUmV2ZXJzZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGlzWFBvc2l0aW9uUmV2ZXJzZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGlzQmluZGluZ1lQb3NpdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gICAgcHVibGljIGlzQmluZGluZ1hQb3NpdGlvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcbiAgICBwcml2YXRlIGNvbnRhaW5lclhQb3NpdGlvbjogbnVtYmVyO1xuICAgIHByaXZhdGUgY29udGFpbmVyWVBvc2l0aW9uOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpXG4gICAgICAgIHByaXZhdGUgbmd0RHJvcGRvd25Db250YWluZXI6IE5ndERyb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBpZiAodGhpcy5uZ3REcm9wZG93bkNvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5uZ3REcm9wZG93bkNvbnRhaW5lci5vbkFjdGl2ZURyb3Bkb3duQ2hhbmdlLnN1YnNjcmliZSgoYWN0aXZlRHJvcGRvd246IE5ndERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gKGFjdGl2ZURyb3Bkb3duLm5hbWUgPT09IHRoaXMubmFtZSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5vcGVuTWV0aG9kKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5NZXRob2QgPSBnZXRFbnVtRnJvbVN0cmluZyhjaGFuZ2VzLm9wZW5NZXRob2QuY3VycmVudFZhbHVlLCBOZ3REcm9wZG93bk9wZW5NZXRob2QpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5uZ3REcm9wZG93bkNvbnRhaW5lcj8uc2V0QWN0aXZlRHJvcGRvd24odGhpcyk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5iaW5kQ29udGFpbmVyWFBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuYmluZENvbnRhaW5lcllQb3NpdGlvbigpO1xuXG4gICAgICAgIHRoaXMub25Ub2dnbGUuZW1pdCh0aGlzLmlzT3Blbik7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlT25TZWxlY3RPcHRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25DbGljaykge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclhQb3NpdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY29udGFpbmVyWVBvc2l0aW9uID0gbnVsbDtcblxuICAgICAgICB0aGlzLm9uVG9nZ2xlLmVtaXQodGhpcy5pc09wZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uSG92ZXIoaG9zdDogYW55LCBjb250YWluZXI6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5vcGVuTWV0aG9kID09IE5ndERyb3Bkb3duT3Blbk1ldGhvZC5IT1ZFUiAmJiBob3N0ICYmIGNvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgICB0aGlzLndhdGNoSG92ZXIoaG9zdCwgY29udGFpbmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBFdmVudCwgaG9zdDogYW55LCBjb250YWluZXI6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uSG9zdENsaWNrPy5lbWl0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNDbGlja01ldGhvZCgpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcGVuTWV0aG9kID09IE5ndERyb3Bkb3duT3Blbk1ldGhvZC5QT1BPVkVSX0NMSUNLKSB7XG4gICAgICAgICAgICB0aGlzLndhdGNoSG92ZXIoaG9zdCwgY29udGFpbmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblJpZ2h0Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm9wZW5NZXRob2QgPT0gTmd0RHJvcGRvd25PcGVuTWV0aG9kLlJJR0hUX0NMSUNLKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNob3VsZFJldmVyc2VYUG9zaXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5hdXRvWFJldmVyc2UgfHwgdGhpcy5yZXZlcnNlWFBvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldmVyc2VYUG9zaXRpb247XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc09wZW4gJiYgIXRoaXMuaXNCaW5kaW5nWFBvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmlzWFBvc2l0aW9uUmV2ZXJzZWQgPSAhKHRoaXMuY29udGFpbmVyWFBvc2l0aW9uID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNYUG9zaXRpb25SZXZlcnNlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzaG91bGRSZXZlcnNlWVBvc2l0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuYXV0b1lSZXZlcnNlIHx8IHRoaXMucmV2ZXJzZVlQb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXZlcnNlWVBvc2l0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuICYmICF0aGlzLmlzQmluZGluZ1lQb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5pc1lQb3NpdGlvblJldmVyc2VkID0gdGhpcy5jb250YWluZXJZUG9zaXRpb24gPiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAqIDAuOSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzWVBvc2l0aW9uUmV2ZXJzZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJpbmRDb250YWluZXJYUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb250YWluZXJYUG9zaXRpb24gJiYgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5pc0JpbmRpbmdYUG9zaXRpb24gPSB0cnVlO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lclhQb3NpdGlvbiA9IHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueFxuICAgICAgICAgICAgICAgICAgICArIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmlzQmluZGluZ1hQb3NpdGlvbiA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYmluZENvbnRhaW5lcllQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lcllQb3NpdGlvbiAmJiB0aGlzLmNvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNCaW5kaW5nWVBvc2l0aW9uID0gdHJ1ZTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJZUG9zaXRpb24gPSB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnlcbiAgICAgICAgICAgICAgICAgICAgKyB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICAgICAgICAgICAgICAgIHRoaXMuaXNCaW5kaW5nWVBvc2l0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3YXRjaEhvdmVyKGhvc3Q6IGFueSwgY29udGFpbmVyOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWhvc3QgfHwgIWNvbnRhaW5lciB8fCAhdGhpcy5pc0luSG92ZXIoaG9zdCwgY29udGFpbmVyKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgdGhpcy5jbG9zZVRpbWVvdXQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNJbkhvdmVyKGhvc3Q6IGFueSwgY29udGFpbmVyOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGhvc3QucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCc6aG92ZXInKSA9PSBob3N0IHx8XG4gICAgICAgICAgICBjb250YWluZXIucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCc6aG92ZXInKSA9PSBjb250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95U3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0NsaWNrTWV0aG9kKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuTWV0aG9kID09IE5ndERyb3Bkb3duT3Blbk1ldGhvZC5DTElDS1xuICAgICAgICAgICAgfHwgdGhpcy5vcGVuTWV0aG9kID09IE5ndERyb3Bkb3duT3Blbk1ldGhvZC5QT1BPVkVSX0NMSUNLO1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gTmd0RHJvcGRvd25PcGVuTWV0aG9kIHtcbiAgICBDTElDSyA9ICdDTElDSycsXG4gICAgUE9QT1ZFUl9DTElDSyA9ICdQT1BPVkVSX0NMSUNLJyxcbiAgICBSSUdIVF9DTElDSyA9ICdSSUdIVF9DTElDSycsXG4gICAgSE9WRVIgPSAnSE9WRVInXG59XG4iLCI8ZGl2IGNsYXNzPVwic206cmVsYXRpdmVcIj5cbiAgICA8ZGl2IChtb3VzZWVudGVyKT1cIm9uSG92ZXIoaG9zdCwgY29udGFpbmVyKVwiIChjbGljayk9XCJvbkNsaWNrKCRldmVudCwgaG9zdCwgY29udGFpbmVyKVwiXG4gICAgICAgIChjb250ZXh0bWVudSk9XCJvblJpZ2h0Q2xpY2soJGV2ZW50KVwiICNob3N0PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9J1tob3N0XSc+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBbaGlkZGVuXT0nIWlzT3BlbidcbiAgICAgICAgY2xhc3M9XCJ7eyBzaG91bGRSZXZlcnNlWVBvc2l0aW9uKCkgPyAnbWItMTIgYm90dG9tLTAnIDogJ210LTQnIH19IHt7IHNob3VsZFJldmVyc2VYUG9zaXRpb24oKSA/ICdsZWZ0LTAnOiAncmlnaHQtMCcgfX0gbmd0LWRyb3Bkb3duLWNvbnRhaW5lciBzbTptci0wIG1yLTMgbWF4LXcteHMgYWJzb2x1dGVcIlxuICAgICAgICBbQG9wZW5DbG9zZV09XCJpc09wZW4gPyAnb3BlbicgOiAnY2xvc2VkJ1wiIChtb3VzZWVudGVyKT1cIm9uSG92ZXIoaG9zdCwgY29udGFpbmVyKVwiXG4gICAgICAgIChjbGljayk9J2Nsb3NlT25TZWxlY3RPcHRpb24oKScgc3R5bGU9XCJ6LWluZGV4OiAxMTAwICFpbXBvcnRhbnQ7XCIgI2NvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNPcGVuXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCIgW25nQ2xhc3NdPVwieyAnaC01MiBvdmVyZmxvdy1hdXRvJzpzY3JvbGxhYmxlIH1cIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0nW2NvbnRhaW5lcl0nPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGJ1dHRvbiAqbmdJZj1cImlzT3BlbiAmJiBvcGVuTWV0aG9kICE9ICdIT1ZFUidcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImZpeGVkIHotNDAgaW5zZXQtMCBoLWZ1bGwgdy1mdWxsIG9wYWNpdHktMCBjdXJzb3ItZGVmYXVsdFwiIChjbGljayk9J3RvZ2dsZSgpJz5cbjwvYnV0dG9uPiJdfQ==
@@ -1,21 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';
4
- import { NgtDropdownComponent } from './ngt-dropdown.component';
5
- import * as i0 from "@angular/core";
6
- export class NgtDropdownModule {
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgtDropdownModule, declarations: [NgtDropdownComponent, NgtDropdownContainerComponent], imports: [CommonModule], exports: [NgtDropdownComponent, NgtDropdownContainerComponent] }); }
9
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDropdownModule, imports: [CommonModule] }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDropdownModule, decorators: [{
12
- type: NgModule,
13
- args: [{
14
- declarations: [NgtDropdownComponent, NgtDropdownContainerComponent],
15
- exports: [NgtDropdownComponent, NgtDropdownContainerComponent],
16
- imports: [
17
- CommonModule
18
- ]
19
- }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3Bkb3duLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wZG93bi9uZ3QtZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVNoRSxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFOWCxvQkFBb0IsRUFBRSw2QkFBNkIsYUFHOUQsWUFBWSxhQUZOLG9CQUFvQixFQUFFLDZCQUE2QjtnSEFLcEQsaUJBQWlCLFlBSHRCLFlBQVk7OzRGQUdQLGlCQUFpQjtrQkFQN0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSw2QkFBNkIsQ0FBQztvQkFDbkUsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsNkJBQTZCLENBQUM7b0JBQzlELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3FCQUNmO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5ndERyb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtZHJvcGRvd24tY29udGFpbmVyL25ndC1kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5ndERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtZHJvcGRvd24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtOZ3REcm9wZG93bkNvbXBvbmVudCwgTmd0RHJvcGRvd25Db250YWluZXJDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtOZ3REcm9wZG93bkNvbXBvbmVudCwgTmd0RHJvcGRvd25Db250YWluZXJDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3REcm9wZG93bk1vZHVsZSB7IH1cbiJdfQ==
@@ -1,54 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { NgxDropzonePreviewComponent } from 'ngx-dropzone';
3
- import { NgtDropzoneFileTypeEnum } from '../ngt-dropzone.meta';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/platform-browser";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "ngx-dropzone";
8
- export class CustomDropzonePreviewComponent extends NgxDropzonePreviewComponent {
9
- constructor(sanitizer) {
10
- super(sanitizer);
11
- this.sanitizer = sanitizer;
12
- }
13
- ngOnInit() {
14
- if (!this.file) {
15
- console.error('No file to read. Please provide a file using the [file] Input property.');
16
- return;
17
- }
18
- this.bindFileType();
19
- }
20
- bindFileType() {
21
- if (this.file.type.includes('.sheet')) {
22
- this.fileType = NgtDropzoneFileTypeEnum.XLS;
23
- }
24
- else if (this.file.type.includes('pdf')) {
25
- this.fileType = NgtDropzoneFileTypeEnum.PDF;
26
- }
27
- else if (this.file.type.includes('.document')) {
28
- this.fileType = NgtDropzoneFileTypeEnum.DOC;
29
- }
30
- else if (this.file.type.includes('.dwg')) {
31
- this.fileType = NgtDropzoneFileTypeEnum.DWG;
32
- }
33
- else {
34
- this.fileType = NgtDropzoneFileTypeEnum.OTHER;
35
- }
36
- }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomDropzonePreviewComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomDropzonePreviewComponent, selector: "custom-dropzone-preview", providers: [
39
- {
40
- provide: NgxDropzonePreviewComponent,
41
- useExisting: CustomDropzonePreviewComponent
42
- }
43
- ], usesInheritance: true, ngImport: i0, 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>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NgxDropzoneRemoveBadgeComponent, selector: "ngx-dropzone-remove-badge" }] }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomDropzonePreviewComponent, decorators: [{
46
- type: Component,
47
- args: [{ selector: 'custom-dropzone-preview', providers: [
48
- {
49
- provide: NgxDropzonePreviewComponent,
50
- useExisting: CustomDropzonePreviewComponent
51
- }
52
- ], 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>" }]
53
- }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRyb3B6b25lLXByZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRyb3B6b25lL2N1c3RvbS1kcm9wem9uZS1wcmV2aWV3L2N1c3RvbS1kcm9wem9uZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wem9uZS9jdXN0b20tZHJvcHpvbmUtcHJldmlldy9jdXN0b20tZHJvcHpvbmUtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFZL0QsTUFBTSxPQUFPLDhCQUErQixTQUFRLDJCQUEyQjtJQUczRSxZQUEwQixTQUF1QjtRQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFESyxjQUFTLEdBQVQsU0FBUyxDQUFjO0lBRWpELENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztZQUV6RixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU8sWUFBWTtRQUNoQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDO1FBQ2hELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDO1FBQ2hELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDO1FBQ2hELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDO1FBQ2hELENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUM7UUFDbEQsQ0FBQztJQUNMLENBQUM7K0dBN0JRLDhCQUE4QjttR0FBOUIsOEJBQThCLGtEQVA1QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLFdBQVcsRUFBRSw4QkFBOEI7YUFDOUM7U0FDSixpRENkTCxpbUtBb0M0Qjs7NEZEcEJmLDhCQUE4QjtrQkFWMUMsU0FBUzsrQkFDSSx5QkFBeUIsYUFFeEI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLDJCQUEyQjs0QkFDcEMsV0FBVyxnQ0FBZ0M7eUJBQzlDO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTmd4RHJvcHpvbmVQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnbmd4LWRyb3B6b25lJztcblxuaW1wb3J0IHsgTmd0RHJvcHpvbmVGaWxlVHlwZUVudW0gfSBmcm9tICcuLi9uZ3QtZHJvcHpvbmUubWV0YSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VzdG9tLWRyb3B6b25lLXByZXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tZHJvcHpvbmUtcHJldmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5neERyb3B6b25lUHJldmlld0NvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBDdXN0b21Ecm9wem9uZVByZXZpZXdDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tRHJvcHpvbmVQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgTmd4RHJvcHpvbmVQcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgZmlsZVR5cGU6IE5ndERyb3B6b25lRmlsZVR5cGVFbnVtO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xuICAgICAgICBzdXBlcihzYW5pdGl6ZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIGZpbGUgdG8gcmVhZC4gUGxlYXNlIHByb3ZpZGUgYSBmaWxlIHVzaW5nIHRoZSBbZmlsZV0gSW5wdXQgcHJvcGVydHkuJyk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYmluZEZpbGVUeXBlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiaW5kRmlsZVR5cGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGUudHlwZS5pbmNsdWRlcygnLnNoZWV0JykpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZVR5cGUgPSBOZ3REcm9wem9uZUZpbGVUeXBlRW51bS5YTFM7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5maWxlLnR5cGUuaW5jbHVkZXMoJ3BkZicpKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVUeXBlID0gTmd0RHJvcHpvbmVGaWxlVHlwZUVudW0uUERGO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsZS50eXBlLmluY2x1ZGVzKCcuZG9jdW1lbnQnKSkge1xuICAgICAgICAgICAgdGhpcy5maWxlVHlwZSA9IE5ndERyb3B6b25lRmlsZVR5cGVFbnVtLkRPQztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbGUudHlwZS5pbmNsdWRlcygnLmR3ZycpKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVUeXBlID0gTmd0RHJvcHpvbmVGaWxlVHlwZUVudW0uRFdHO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWxlVHlwZSA9IE5ndERyb3B6b25lRmlsZVR5cGVFbnVtLk9USEVSO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHctNDggY3Vyc29yLXBvaW50ZXIgaG92ZXI6b3BhY2l0eS03NVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBqdXN0aWZ5LWNlbnRlciBib3JkZXItMiByb3VuZGVkIHB5LTQgdGV4dC02eGxcIj5cbiAgICAgICAgPHN2ZyAqbmdJZj1cImZpbGVUeXBlID09ICdPVEhFUidcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJoZXJvaWNvbi11aVwiIGZpbGw9XCIjNGE1NTY4XCJcbiAgICAgICAgICAgICAgICBkPVwiTTYgMmg5YTEgMSAwIDAgMSAuNy4zbDQgNGExIDEgMCAwIDEgLjMuN3YxM2EyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YzAtMS4xLjktMiAyLTJ6bTkgMi40MVY3aDIuNTlMMTUgNC40MXpNMTggOWgtM2EyIDIgMCAwIDEtMi0yVjRINnYxNmgxMlY5em0tMiA3YTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEgMC0yaDZhMSAxIDAgMCAxIDEgMXptMC00YTEgMSAwIDAgMS0xIDFIOWExIDEgMCAwIDEgMC0yaDZhMSAxIDAgMCAxIDEgMXptLTUtNGExIDEgMCAwIDEtMSAxSDlhMSAxIDAgMSAxIDAtMmgxYTEgMSAwIDAgMSAxIDF6XCIgLz5cbiAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgPHN2ZyAqbmdJZj1cImZpbGVUeXBlID09ICdET0MnXCIgZmlsbD1cIiM0YTU1NjhcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTE0LjQgMGwtOS42IDBjLTEuMzMsMCAtMi40LDEuMDggLTIuNCwyLjRsMCAxOS4yYzAsMS4zMyAxLjA3LDIuNCAyLjQsMi40bDE0LjQgMGMxLjMzLDAgMi40LC0xLjA3IDIuNCwtMi40bDAgLTE0LjQgLTcuMiAtNy4yIDAgMHptNC44IDIxLjZsLTE0LjQgMCAwIC0xOS4yIDguNCAwIDAgNiA2IDAgMCAxMy4yIDAgMHptLTAuNzggLTEybC0yLjUyIDEwLjggLTEuNjggMCAtMi4xNiAtOC4xNSAtMi4xNiA4LjE1IC0xLjY4IDAgLTIuNjQgLTEwLjggMS44IDAgMS42OCA4LjE3IDIuMTYgLTguMTcgMS41NiAwIDIuMTYgOC4xNyAxLjY4IC04LjE3IDEuOCAwelwiIC8+XG4gICAgICAgIDwvc3ZnPlxuXG4gICAgICAgIDxzdmcgKm5nSWY9XCJmaWxlVHlwZSA9PSAnWExTJ1wiIGZpbGw9XCIjNGE1NTY4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0xNC40IDBsLTkuNiAwYy0xLjMzLDAgLTIuNCwxLjA4IC0yLjQsMi40bDAgMTkuMmMwLDEuMzMgMS4wNywyLjQgMi40LDIuNGwxNC40IDBjMS4zMywwIDIuNCwtMS4wNyAyLjQsLTIuNGwwIC0xNC40IC03LjIgLTcuMiAwIDB6bTQuOCAyMS42bC0xNC40IDAgMCAtMTkuMiA4LjQgMCAwIDYgNiAwIDAgMTMuMiAwIDB6bS02LjEyIC02LjZsMy40OCA1LjQgLTIuMTYgMCAtMi40IC00LjA4IC0yLjQgNC4wOCAtMi4xNiAwIDMuNDggLTUuNCAtMy40OCAtNS40IDIuMTYgMCAyLjQgNC4wOCAyLjQgLTQuMDggMi4xNiAwIC0zLjQ4IDUuNHpcIiAvPlxuICAgICAgICA8L3N2Zz5cblxuICAgICAgICA8c3ZnICpuZ0lmPVwiZmlsZVR5cGUgPT0gJ1BERidcIiBmaWxsPVwiIzRhNTU2OFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNMTQuNCAwbDcuMiA3LjIgMCAxNC40YzAsMS4zMiAtMS4wOCwyLjQgLTIuNCwyLjRsLTE0LjQgMGMtMS4zMiwwIC0yLjQsLTEuMDggLTIuNCwtMi40bDAgLTE5LjJjMCwtMS4zMiAxLjA4LC0yLjQgMi40LC0yLjRsOS42IDAgMCAwem00LjggMjEuNmwwIC0xMy4yIC02IDAgMCAtNiAtOC40IDAgMCAxOS4yIDE0LjQgMCAwIDB6bS04LjUgLTkuMjNjLTAuMjgsLTAuOTIgLTAuOTIsLTMuODcgMC43NiwtMy45MiAxLjY4LC0wLjA1IDAuNTgsMy43NCAwLjU4LDMuNzQgMC40NiwxLjc5IDIuNDIsMy4wNyAyLjQyLDMuMDcgMC42LC0wLjE4IDQuMDIsLTAuNTcgMy41NCwxLjIxIC0wLjUyLDEuNzcgLTQuMiwwLjEgLTQuMiwwLjEgLTIuMzQsMC4xNyAtNC4wOSwwLjggLTQuMDksMC44IC0xLjM2LDIuNTMgLTIuOTQsMy42MyAtMy41OSwyLjU2IC0wLjgsLTEuMzMgMi41NiwtMy4wNCAyLjU2LC0zLjA0IDEuNzQsLTIuODMgMiwtNC40NyAyLjAyLC00LjUybDAgMHptMC43OCAxLjAxYy0wLjQ4LDEuNTYgLTEuNDQsMy4yMyAtMS40NCwzLjIzIDEuMDIsLTAuNDEgMy4yNiwtMC44OCAzLjI2LC0wLjg4IC0xLjM3LC0xLjIgLTEuNzksLTIuMzQgLTEuODIsLTIuMzVsMCAwem0zLjc3IDIuNmMwLDAgMi4xLDAuNzkgMi4xNSwwLjQ3IDAuMDgsLTAuMzIgLTEuNiwtMC42MSAtMi4xNSwtMC40N2wwIDB6bS02Ljc5IDEuNzljLTAuOTMsMC4zNiAtMS44MSwxLjkgLTEuNiwxLjkgMC4yMiwwLjAxIDEuMSwtMC43MiAxLjYsLTEuOWwwIDB6bTMuMDIgLTYuNjZjMCwtMC4wNiAwLjUyLC0yLjAxIDAsLTIuMDcgLTAuMzYsLTAuMDQgLTAuMDEsMi4wMiAwLDIuMDd6XCIgLz5cbiAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgPHN2ZyAqbmdJZj1cImZpbGVUeXBlID09ICdEV0cnXCIgdmVyc2lvbj1cIjEuMFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjUxMi4wMDAwMDBwdFwiIGhlaWdodD1cIjUxMi4wMDAwMDBwdFwiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUxMi4wMDAwMDAgNTEyLjAwMDAwMFwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCI+XG4gICAgICAgICAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4wMDAwMDAsNTEyLjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKVwiIGZpbGw9XCIjNGE1NTY4XCIgc3Ryb2tlPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNODMwIDUxMDQgYy00MiAtMTggLTg2IC01OCAtMTA4IC05OSAtMTUgLTI3IC0xNyAtMTA5IC0yMCAtODcxIGwtMyAtODQyIC05MiAtNCBjLTExMiAtNSAtMTc5IC0zMiAtMjM1IC05MiAtODEgLTg4IC03NyAtMzkgLTc3IC05NDYgMCAtODAxIDAgLTgwNSAyMSAtODUxIDU0IC0xMTYgMTQwIC0xNjkgMjkxIC0xNzcgbDkyIC01IDMgLTUzNiBjMyAtNTg4IDEgLTU2MiA2NSAtNjIzIDY1IC02MiAtNjEgLTU4IDE3OTMgLTU4IDE4NTQgMCAxNzI4IC00IDE3OTMgNTggNjQgNjEgNjIgMzUgNjUgNjIzIGwzIDUzNiA5MiA1IGMxNTEgOCAyMzcgNjEgMjkxIDE3NyAyMSA0NiAyMSA1MCAyMSA4NTEgMCA5MDcgNCA4NTggLTc3IDk0NiAtNTYgNjAgLTEyMyA4NyAtMjM1IDkyIGwtOTMgNCAtMSAzMDIgYy0xIDE2NSAtNCAzMTIgLTggMzI2IC04IDMwIC05OTQgMTE2MCAtMTAzMyAxMTg0IC0yNCAxNSAtMTM4IDE2IC0xMjcwIDE2IC0xMDg4IC0xIC0xMjQ3IC0zIC0xMjc4IC0xNnogbTI0MDAgLTcxNCBsMCAtNTMwIDI5IC0zMiAyOSAtMzMgNDY2IC0zIDQ2NiAtMyAwIC0yNDkgMCAtMjUwIC0xNjYwIDAgLTE2NjAgMCAwIDgxNSAwIDgxNSAxMTY1IDAgMTE2NSAwIDAgLTUzMHogbTEwOTMgLTE1MTYgYzg3IC0xNiAxMjcgLTMyIDEyNyAtNDggLTEgLTE3IC00OCAtMTk3IC01NCAtMjAzIC0yIC0zIC0yNyAyIC01NCAxMSAtMTMxIDQ0IC0zMjMgNDAgLTQyOSAtOSAtNzIgLTMzIC0xNDYgLTExMCAtMTc0IC0xODIgLTI3IC03MiAtMzYgLTIwNCAtMTkgLTI4MiAyNiAtMTIwIDExMCAtMjIxIDIxNyAtMjYxIDcwIC0yNiAxOTMgLTM2IDI1MSAtMjEgbDQyIDEyIDAgMTI0IDAgMTI1IC05NSAwIC05NSAwIDAgMTEwIDAgMTEwIDIzMCAwIDIzMCAwIDAgLTMyMCAwIC0zMjAgLTI3IC0xMSBjLTE2IC02IC03MSAtMjAgLTEyMyAtMzIgLTEyOSAtMjkgLTQwMSAtMzEgLTUwMCAtNCAtMTE2IDMzIC0xODkgNzQgLTI2NiAxNTEgLTExNCAxMTQgLTE2NCAyNDQgLTE2NCA0MjYgMCAyNjUgMTE1IDQ2MCAzMzEgNTYzIDUyIDI1IDExNyA1MCAxNDQgNTcgMTIyIDMwIDI4MyAzMSA0MjggNHogbS0zMDQyIC0xMiBjMzA0IC04MiA0NTcgLTMyMCA0MTkgLTY1MyAtMzUgLTMxMiAtMjE1IC00OTEgLTU0NSAtNTQ0IC05NCAtMTYgLTMxNyAtMjAgLTQ0OCAtOSBsLTc3IDcgMCA2MDIgMCA2MDMgODMgMTAgYzQ1IDYgMTc0IDkgMjg3IDcgMTcwIC0yIDIxOCAtNiAyODEgLTIzeiBtODA4IC0zNCBjMTYgLTgxIDk2IC01MjQgMTI3IC03MDUgMTUgLTkwIDI5IC0xNjEgMzEgLTE2MCAyIDIgMTQgNjYgMjggMTQzIDIwIDExNiAxMDEgNTE4IDE0NSA3MjIgbDEyIDUyIDE0NyAwIDE0NyAwIDI4IC0xNDcgYzY3IC0zNTYgMTA0IC01NjQgMTE2IC02NDggMTMgLTkyIDI5IC0xNDQgMzAgLTk1IDAgNDIgNDcgMzEwIDEwNyA2MDggbDU2IDI4MiAxMzggMCBjNzcgMCAxMzkgLTMgMTM5IC03IDAgLTUgLTIxNyAtODUzIC0zMDEgLTExNzUgbC0xMCAtMzggLTE0OSAwIGMtMTMzIDAgLTE0OSAyIC0xNTQgMTggLTEzIDQ0IC0xMjcgNjUzIC0xNDEgNzU5IC05IDY1IC0xOCAxMTkgLTE5IDEyMCAtMSAyIC0xMiAtNTUgLTI0IC0xMjUgLTEzIC03MCAtNTUgLTI3MiAtOTQgLTQ0OSBsLTcxIC0zMjMgLTE1MiAwIC0xNTEgMCAtMTQyIDU5OCBjLTc4IDMyOCAtMTQyIDYwMyAtMTQyIDYxMCAwIDkgMzYgMTIgMTQ0IDEyIGwxNDUgMCAxMCAtNTJ6IG0yMTMxIC0yMDg4IGwwIC00ODAgLTE2NjAgMCAtMTY2MCAwIDAgNDgwIDAgNDgwIDE2NjAgMCAxNjYwIDAgMCAtNDgwelwiIC8+XG5cbiAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBkPVwiTTkyMyAyNjczIGwtMjMgLTQgMCAtMzk5IDAgLTM5OSA0MyAtNiBjNjAgLTkgMjAwIDEyIDI2MSAzOSAxNDAgNjMgMjEyIDIwNyAyMDQgNDExIC0zIDg2IC04IDEwOSAtMzQgMTY1IC01MSAxMDggLTEyOCAxNjcgLTI0OSAxODkgLTU3IDExIC0xNTcgMTMgLTIwMiA0elwiIC8+XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZ3gtZHJvcHpvbmUtcmVtb3ZlLWJhZGdlICpuZ0lmPVwicmVtb3ZhYmxlXCIgKGNsaWNrKT1cIl9yZW1vdmUoJGV2ZW50KVwiIHN0eWxlPVwidG9wOiAtMTVweCAhaW1wb3J0YW50O1wiPlxuPC9uZ3gtZHJvcHpvbmUtcmVtb3ZlLWJhZGdlPiJdfQ==
@@ -1,66 +0,0 @@
1
- import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
- import { EloverdeDocViewerComponent } from 'eloverde-doc-viewer';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../../services/http/ngt-translate.service";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "eloverde-doc-viewer";
7
- export class NgtDropzoneFileViewerComponent {
8
- constructor(ngtTranslateService) {
9
- this.ngtTranslateService = ngtTranslateService;
10
- this.disableContent = 'none';
11
- this.canDownloadFile = true;
12
- this.onClose = new EventEmitter();
13
- this.maxFileSize = 30000000; /** 30 MB */
14
- }
15
- keyEvent(event) {
16
- if (event.code == 'Escape') {
17
- this.canShowViewer = false;
18
- setTimeout(() => this.onClose.emit(), 500);
19
- }
20
- }
21
- init() {
22
- if (this.fileSize < this.maxFileSize) {
23
- this.loading = true;
24
- this.canShowViewer = true;
25
- }
26
- }
27
- close() {
28
- this.canShowViewer = false;
29
- this.onClose.emit();
30
- }
31
- handleClose() {
32
- this.onClose.emit();
33
- }
34
- downloadFile() {
35
- let file = document.createElement("a");
36
- file.target = '_blank';
37
- file.href = this.url;
38
- file.setAttribute("download", this.fileName);
39
- file.click();
40
- }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDropzoneFileViewerComponent, deps: [{ token: i1.NgtTranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgtDropzoneFileViewerComponent, selector: "ngt-dropzone-file-viewer", inputs: { url: "url", fileName: "fileName", fileSize: "fileSize", disableContent: "disableContent", canDownloadFile: "canDownloadFile" }, outputs: { onClose: "onClose" }, host: { listeners: { "window:keydown": "keyEvent($event)" } }, viewQueries: [{ propertyName: "eloverdeDocViewer", first: true, predicate: EloverdeDocViewerComponent, descendants: true }], ngImport: i0, 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>", styles: [":host{background:#00000080;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"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EloverdeDocViewerComponent, selector: "eloverde-doc-viewer", inputs: ["url", "queryParams", "viewerUrl", "googleCheckInterval", "googleMaxChecks", "disableContent", "googleCheckContentLoaded", "viewer", "overrideLocalhost"], outputs: ["loaded", "onClose"] }] }); }
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDropzoneFileViewerComponent, decorators: [{
45
- type: Component,
46
- args: [{ selector: 'ngt-dropzone-file-viewer', 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>", styles: [":host{background:#00000080;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"] }]
47
- }], ctorParameters: () => [{ type: i1.NgtTranslateService }], propDecorators: { eloverdeDocViewer: [{
48
- type: ViewChild,
49
- args: [EloverdeDocViewerComponent]
50
- }], url: [{
51
- type: Input
52
- }], fileName: [{
53
- type: Input
54
- }], fileSize: [{
55
- type: Input
56
- }], disableContent: [{
57
- type: Input
58
- }], canDownloadFile: [{
59
- type: Input
60
- }], onClose: [{
61
- type: Output
62
- }], keyEvent: [{
63
- type: HostListener,
64
- args: ['window:keydown', ['$event']]
65
- }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wem9uZS9uZ3QtZHJvcHpvbmUtZmlsZS12aWV3ZXIvbmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wem9uZS9uZ3QtZHJvcHpvbmUtZmlsZS12aWV3ZXIvbmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFTakUsTUFBTSxPQUFPLDhCQUE4QjtJQWV2QyxZQUNXLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBVm5DLG1CQUFjLEdBQVcsTUFBTSxDQUFDO1FBQ2hDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBRS9CLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUkzRCxnQkFBVyxHQUFXLFFBQVEsQ0FBQyxDQUFDLFlBQVk7SUFJL0MsQ0FBQztJQUdFLFFBQVEsQ0FBQyxLQUFvQjtRQUNoQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFFM0IsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJO1FBQ1AsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUs7UUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sWUFBWTtRQUNmLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQzsrR0FuRFEsOEJBQThCO21HQUE5Qiw4QkFBOEIsNlZBQzVCLDBCQUEwQixnRENYekMsNm9GQXVETTs7NEZEN0NPLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDSSwwQkFBMEI7d0ZBS1UsaUJBQWlCO3NCQUE5RCxTQUFTO3VCQUFDLDBCQUEwQjtnQkFFckIsR0FBRztzQkFBbEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUVXLE9BQU87c0JBQXZCLE1BQU07Z0JBV0EsUUFBUTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbG92ZXJkZURvY1ZpZXdlckNvbXBvbmVudCB9IGZyb20gJ2Vsb3ZlcmRlLWRvYy12aWV3ZXInO1xuXG5pbXBvcnQgeyBOZ3RUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaHR0cC9uZ3QtdHJhbnNsYXRlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1kcm9wem9uZS1maWxlLXZpZXdlcicsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudC5jc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3REcm9wem9uZUZpbGVWaWV3ZXJDb21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoRWxvdmVyZGVEb2NWaWV3ZXJDb21wb25lbnQpIHB1YmxpYyBlbG92ZXJkZURvY1ZpZXdlcjogRWxvdmVyZGVEb2NWaWV3ZXJDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgdXJsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGZpbGVOYW1lOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGZpbGVTaXplOiBudW1iZXI7XG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVDb250ZW50OiBzdHJpbmcgPSAnbm9uZSc7XG4gICAgQElucHV0KCkgcHVibGljIGNhbkRvd25sb2FkRmlsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBjYW5TaG93Vmlld2VyOiBib29sZWFuO1xuICAgIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBtYXhGaWxlU2l6ZTogbnVtYmVyID0gMzAwMDAwMDA7IC8qKiAzMCBNQiAqL1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmd0VHJhbnNsYXRlU2VydmljZTogTmd0VHJhbnNsYXRlU2VydmljZVxuICAgICkgeyB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIGtleUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5jb2RlID09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICB0aGlzLmNhblNob3dWaWV3ZXIgPSBmYWxzZTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uQ2xvc2UuZW1pdCgpLCA1MDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVTaXplIDwgdGhpcy5tYXhGaWxlU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2FuU2hvd1ZpZXdlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FuU2hvd1ZpZXdlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlKCk6IHZvaWQge1xuICAgICAgICBsZXQgZmlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuXG4gICAgICAgIGZpbGUudGFyZ2V0ID0gJ19ibGFuayc7XG4gICAgICAgIGZpbGUuaHJlZiA9IHRoaXMudXJsO1xuICAgICAgICBmaWxlLnNldEF0dHJpYnV0ZShcImRvd25sb2FkXCIsIHRoaXMuZmlsZU5hbWUpO1xuICAgICAgICBmaWxlLmNsaWNrKCk7XG4gICAgfVxufVxuIiwiPGRpdiBzdHlsZT1cIndpZHRoOjEwMCU7IGhlaWdodDogMTAwJTtcIj5cbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6MTAwJTsgaGVpZ2h0OiAxMDAlO1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHB5LTUgcHItMTBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBqdXN0aWZ5LWVuZCB0ZXh0LTJ4bFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjYW5Eb3dubG9hZEZpbGVcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImRvd25sb2FkRmlsZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCIjZmZmXCIgZD1cIk0xMyA4VjJIN3Y2SDJsOCA4IDgtOGgtNXpNMCAxOGgyMHYySDB2LTJ6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDtcblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGw9XCIjZmZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTI0IDIuNDJsLTIuNDIgLTIuNDIgLTkuNTggOS41OCAtOS41OCAtOS41OCAtMi40MiAyLjQyIDkuNTggOS41OCAtOS41OCA5LjU4IDIuNDIgMi40MiA5LjU4IC05LjU4IDkuNTggOS41OCAyLjQyIC0yLjQyIC05LjU4IC05LjU4IDkuNTggLTkuNTh6XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGp1c3RpZnktY2VudGVyIHRleHQtY2VudGVyIHRleHQtMnhsIGZvbnQtbW9ubyB0ZXh0LXdoaXRlXCI+XG4gICAgICAgICAgICAgICAge3sgZmlsZU5hbWUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsZVNpemUgPiBtYXhGaWxlU2l6ZVwiIGNsYXNzPVwiZmxleCB3LWZ1bGwgaC1mdWxsIGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy1hdXRvIGJnLWdyYXktNzAwIHJvdW5kZWQtbGcgcC02XCIgc3R5bGU9XCJtYXgtd2lkdGg6IDgwJTtcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtd2hpdGUgZm9udC1tZWRpdW0gdGV4dC1jZW50ZXIgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIGNhbkRvd25sb2FkRmlsZVxuICAgICAgICAgICAgICAgICAgICA/IG5ndFRyYW5zbGF0ZVNlcnZpY2Uubmd0RmlsZVRvb0xhcmdlRm9yUHJldmlld1xuICAgICAgICAgICAgICAgICAgICA6IG5ndFRyYW5zbGF0ZVNlcnZpY2Uubmd0RmlsZVRvb0xhcmdlRm9yUHJldmlld05vRG93bmxvYWRQZXJtaXNzaW9uXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNhbkRvd25sb2FkRmlsZVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgbXQtNSB0ZXh0LTJ4bCBzZWxmLWNlbnRlciBib3JkZXIgcm91bmRlZCBwLTJcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRGaWxlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cIiNmZmZcIiBkPVwiTTEzIDhWMkg3djZIMmw4IDggOC04aC01ek0wIDE4aDIwdjJIMHYtMnpcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMTBcIiBzdHlsZT1cIndpZHRoOjEwMCU7IGhlaWdodDogODMlO1wiICpuZ0lmPVwiY2FuU2hvd1ZpZXdlclwiPlxuICAgICAgICAgICAgPGVsb3ZlcmRlLWRvYy12aWV3ZXIgY2xhc3M9XCJoLWZ1bGwgdy1mdWxsIGZsZXgganVzdGlmeS1jZW50ZXJcIiBbdXJsXT1cInVybFwiIFtkaXNhYmxlQ29udGVudF09XCJkaXNhYmxlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgKGxvYWRlZCk9XCJsb2FkaW5nID0gZmFsc2VcIiAob25DbG9zZSk9XCJoYW5kbGVDbG9zZSgpXCI+XG4gICAgICAgICAgICA8L2Vsb3ZlcmRlLWRvYy12aWV3ZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJmbGV4IGZpeGVkIGluc2V0LTAganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHctZnVsbCBoLWZ1bGwgY3Vyc29yLXdhaXQgei01MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkaXYtbG9hZGVyXCI+PC9kaXY+XG48L2Rpdj4iXX0=