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,25 +1,25 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { Ng2FlatpickrModule } from 'ng2-flatpickr';
5
- import { NgtHelperModule } from '../ngt-helper/ngt-helper.module';
6
- import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
7
- import { NgtValidationModule } from '../ngt-validation/ngt-validation.module';
8
- import { NgtDateComponent } from './ngt-date.component';
9
- export class NgtDateModule {
10
- }
11
- NgtDateModule.decorators = [
12
- { type: NgModule, args: [{
13
- declarations: [NgtDateComponent],
14
- exports: [NgtDateComponent],
15
- imports: [
16
- CommonModule,
17
- FormsModule,
18
- Ng2FlatpickrModule,
19
- NgtValidationModule,
20
- NgtShiningModule,
21
- NgtHelperModule,
22
- ]
23
- },] }
24
- ];
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGUvbmd0LWRhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBY3hELE1BQU0sT0FBTyxhQUFhOzs7WUFaekIsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUNoQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDM0IsT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxrQkFBa0I7b0JBQ2xCLG1CQUFtQjtvQkFDbkIsZ0JBQWdCO29CQUNoQixlQUFlO2lCQUNsQjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nMkZsYXRwaWNrck1vZHVsZSB9IGZyb20gJ25nMi1mbGF0cGlja3InO1xyXG5cclxuaW1wb3J0IHsgTmd0SGVscGVyTW9kdWxlIH0gZnJvbSAnLi4vbmd0LWhlbHBlci9uZ3QtaGVscGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5ndFNoaW5pbmdNb2R1bGUgfSBmcm9tICcuLi9uZ3Qtc2hpbmluZy9uZ3Qtc2hpbmluZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBOZ3RWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vbmd0LXZhbGlkYXRpb24vbmd0LXZhbGlkYXRpb24ubW9kdWxlJztcclxuaW1wb3J0IHsgTmd0RGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vbmd0LWRhdGUuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtOZ3REYXRlQ29tcG9uZW50XSxcclxuICAgIGV4cG9ydHM6IFtOZ3REYXRlQ29tcG9uZW50XSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgTmcyRmxhdHBpY2tyTW9kdWxlLFxyXG4gICAgICAgIE5ndFZhbGlkYXRpb25Nb2R1bGUsXHJcbiAgICAgICAgTmd0U2hpbmluZ01vZHVsZSxcclxuICAgICAgICBOZ3RIZWxwZXJNb2R1bGUsXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3REYXRlTW9kdWxlIHsgfVxyXG4iXX0=
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { Ng2FlatpickrModule } from 'ng2-flatpickr';
5
+ import { NgtHelperModule } from '../ngt-helper/ngt-helper.module';
6
+ import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
7
+ import { NgtValidationModule } from '../ngt-validation/ngt-validation.module';
8
+ import { NgtDateComponent } from './ngt-date.component';
9
+ export class NgtDateModule {
10
+ }
11
+ NgtDateModule.decorators = [
12
+ { type: NgModule, args: [{
13
+ declarations: [NgtDateComponent],
14
+ exports: [NgtDateComponent],
15
+ imports: [
16
+ CommonModule,
17
+ FormsModule,
18
+ Ng2FlatpickrModule,
19
+ NgtValidationModule,
20
+ NgtShiningModule,
21
+ NgtHelperModule,
22
+ ]
23
+ },] }
24
+ ];
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGUvbmd0LWRhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBY3hELE1BQU0sT0FBTyxhQUFhOzs7WUFaekIsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUNoQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDM0IsT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxrQkFBa0I7b0JBQ2xCLG1CQUFtQjtvQkFDbkIsZ0JBQWdCO29CQUNoQixlQUFlO2lCQUNsQjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nMkZsYXRwaWNrck1vZHVsZSB9IGZyb20gJ25nMi1mbGF0cGlja3InO1xuXG5pbXBvcnQgeyBOZ3RIZWxwZXJNb2R1bGUgfSBmcm9tICcuLi9uZ3QtaGVscGVyL25ndC1oZWxwZXIubW9kdWxlJztcbmltcG9ydCB7IE5ndFNoaW5pbmdNb2R1bGUgfSBmcm9tICcuLi9uZ3Qtc2hpbmluZy9uZ3Qtc2hpbmluZy5tb2R1bGUnO1xuaW1wb3J0IHsgTmd0VmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJy4uL25ndC12YWxpZGF0aW9uL25ndC12YWxpZGF0aW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBOZ3REYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtZGF0ZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW05ndERhdGVDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtOZ3REYXRlQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nMkZsYXRwaWNrck1vZHVsZSxcbiAgICAgICAgTmd0VmFsaWRhdGlvbk1vZHVsZSxcbiAgICAgICAgTmd0U2hpbmluZ01vZHVsZSxcbiAgICAgICAgTmd0SGVscGVyTW9kdWxlLFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd0RGF0ZU1vZHVsZSB7IH1cbiJdfQ==
@@ -1,20 +1,20 @@
1
- import { Component, EventEmitter, Output } from '@angular/core';
2
- export class NgtDropdownContainerComponent {
3
- constructor() {
4
- this.onActiveDropdownChange = new EventEmitter();
5
- }
6
- setActiveDropdown(activeDropdown) {
7
- this.onActiveDropdownChange.emit(activeDropdown);
8
- }
9
- }
10
- NgtDropdownContainerComponent.decorators = [
11
- { type: Component, args: [{
12
- selector: '[ngt-dropdown-container]',
13
- template: "<ng-content></ng-content>",
14
- styles: [""]
15
- },] }
16
- ];
17
- NgtDropdownContainerComponent.propDecorators = {
18
- onActiveDropdownChange: [{ type: Output }]
19
- };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3Bkb3duLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZHJvcGRvd24vbmd0LWRyb3Bkb3duLWNvbnRhaW5lci9uZ3QtZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPaEUsTUFBTSxPQUFPLDZCQUE2QjtJQUwxQztRQU1xQiwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBS2pFLENBQUM7SUFIVSxpQkFBaUIsQ0FBQyxjQUFjO1FBQ25DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7O1lBVkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLHFDQUFzRDs7YUFFekQ7OztxQ0FFSSxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ1tuZ3QtZHJvcGRvd24tY29udGFpbmVyXScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWRyb3Bkb3duLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9uZ3QtZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd0RHJvcGRvd25Db250YWluZXJDb21wb25lbnQge1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkFjdGl2ZURyb3Bkb3duQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIHB1YmxpYyBzZXRBY3RpdmVEcm9wZG93bihhY3RpdmVEcm9wZG93bikge1xyXG4gICAgICAgIHRoaXMub25BY3RpdmVEcm9wZG93bkNoYW5nZS5lbWl0KGFjdGl2ZURyb3Bkb3duKTtcclxuICAgIH1cclxufVxyXG4iXX0=
1
+ import { Component, EventEmitter, Output } from '@angular/core';
2
+ export class NgtDropdownContainerComponent {
3
+ constructor() {
4
+ this.onActiveDropdownChange = new EventEmitter();
5
+ }
6
+ setActiveDropdown(activeDropdown) {
7
+ this.onActiveDropdownChange.emit(activeDropdown);
8
+ }
9
+ }
10
+ NgtDropdownContainerComponent.decorators = [
11
+ { type: Component, args: [{
12
+ selector: '[ngt-dropdown-container]',
13
+ template: "<ng-content></ng-content>",
14
+ styles: [""]
15
+ },] }
16
+ ];
17
+ NgtDropdownContainerComponent.propDecorators = {
18
+ onActiveDropdownChange: [{ type: Output }]
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3Bkb3duLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZHJvcGRvd24vbmd0LWRyb3Bkb3duLWNvbnRhaW5lci9uZ3QtZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPaEUsTUFBTSxPQUFPLDZCQUE2QjtJQUwxQztRQU1xQiwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBS2pFLENBQUM7SUFIVSxpQkFBaUIsQ0FBQyxjQUFjO1FBQ25DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7O1lBVkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLHFDQUFzRDs7YUFFekQ7OztxQ0FFSSxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1tuZ3QtZHJvcGRvd24tY29udGFpbmVyXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25ndC1kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5ndERyb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50IHtcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uQWN0aXZlRHJvcGRvd25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgc2V0QWN0aXZlRHJvcGRvd24oYWN0aXZlRHJvcGRvd24pIHtcbiAgICAgICAgdGhpcy5vbkFjdGl2ZURyb3Bkb3duQ2hhbmdlLmVtaXQoYWN0aXZlRHJvcGRvd24pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,185 +1,185 @@
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 { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';
6
- export class NgtDropdownComponent {
7
- constructor(ngtDropdownContainer) {
8
- this.ngtDropdownContainer = ngtDropdownContainer;
9
- this.autoYReverse = true;
10
- this.closeTimeout = 1000;
11
- this.openMethod = NgtDropdownOpenMethod.HOVER;
12
- this.onToggle = new EventEmitter();
13
- this.onHostClick = new EventEmitter();
14
- this.name = uuid();
15
- this.isYPositionReversed = false;
16
- this.isXPositionReversed = false;
17
- this.isBindingYPosition = true;
18
- this.isBindingXPosition = true;
19
- this.subscriptions = [];
20
- if (this.ngtDropdownContainer) {
21
- this.subscriptions.push(this.ngtDropdownContainer.onActiveDropdownChange.subscribe((activeDropdown) => {
22
- this.isOpen = (activeDropdown.name === this.name);
23
- }));
24
- }
25
- }
26
- ngOnChanges(changes) {
27
- if (changes.openMethod) {
28
- this.openMethod = getEnumFromString(changes.openMethod.currentValue, NgtDropdownOpenMethod);
29
- }
30
- }
31
- ngOnDestroy() {
32
- this.destroySubscriptions();
33
- }
34
- open() {
35
- var _a;
36
- this.isOpen = true;
37
- (_a = this.ngtDropdownContainer) === null || _a === void 0 ? void 0 : _a.setActiveDropdown(this);
38
- }
39
- closeOnSelectOption() {
40
- if (this.closeOnClick) {
41
- this.close();
42
- }
43
- }
44
- close() {
45
- this.isOpen = false;
46
- this.containerXPosition = null;
47
- this.containerYPosition = null;
48
- }
49
- toggle() {
50
- setTimeout(() => {
51
- if (this.isOpen) {
52
- this.close();
53
- }
54
- else {
55
- this.open();
56
- }
57
- this.onToggle.emit(this.isOpen);
58
- });
59
- }
60
- onHover(host, container) {
61
- if (this.openMethod == NgtDropdownOpenMethod.HOVER && host && container) {
62
- this.open();
63
- this.watchHover(host, container);
64
- }
65
- }
66
- onClick(event, host, container) {
67
- var _a;
68
- (_a = this.onHostClick) === null || _a === void 0 ? void 0 : _a.emit();
69
- if (this.isClickMethod()) {
70
- event.preventDefault();
71
- event.stopPropagation();
72
- this.toggle();
73
- }
74
- if (this.openMethod == NgtDropdownOpenMethod.POPOVER_CLICK) {
75
- this.watchHover(host, container);
76
- }
77
- }
78
- onRightClick(event) {
79
- if (this.openMethod == NgtDropdownOpenMethod.RIGHT_CLICK) {
80
- event.preventDefault();
81
- event.stopPropagation();
82
- this.toggle();
83
- }
84
- }
85
- shouldReverseXPosition() {
86
- if (!this.autoXReverse || this.reverseXPosition !== undefined) {
87
- return this.reverseXPosition;
88
- }
89
- if (this.isOpen) {
90
- this.bindContainerXPosition();
91
- this.isXPositionReversed = !(this.containerXPosition > document.documentElement.clientWidth);
92
- return !this.isBindingXPosition && this.isXPositionReversed;
93
- }
94
- }
95
- shouldReverseYPosition() {
96
- if (!this.autoYReverse || this.reverseYPosition !== undefined) {
97
- return this.reverseYPosition;
98
- }
99
- if (this.isOpen) {
100
- this.bindContainerYPosition();
101
- this.isYPositionReversed = this.containerYPosition > (document.documentElement.clientHeight * 0.9);
102
- return !this.isBindingYPosition && this.isYPositionReversed;
103
- }
104
- }
105
- bindContainerXPosition() {
106
- if (!this.containerXPosition && this.containerRef.nativeElement.offsetWidth) {
107
- this.isBindingXPosition = true;
108
- setTimeout(() => {
109
- this.containerXPosition = this.containerRef.nativeElement.getBoundingClientRect().x
110
- + this.containerRef.nativeElement.offsetWidth;
111
- this.isBindingXPosition = false;
112
- });
113
- }
114
- }
115
- bindContainerYPosition() {
116
- var _a;
117
- if (!this.containerYPosition && ((_a = this.containerRef) === null || _a === void 0 ? void 0 : _a.nativeElement.offsetHeight)) {
118
- this.isBindingYPosition = true;
119
- setTimeout(() => {
120
- this.containerYPosition = this.containerRef.nativeElement.getBoundingClientRect().y
121
- + this.containerRef.nativeElement.offsetHeight;
122
- this.isBindingYPosition = false;
123
- });
124
- }
125
- }
126
- watchHover(host, container) {
127
- const interval = setInterval(() => {
128
- if (!host || !container || !this.isInHover(host, container)) {
129
- this.close();
130
- clearInterval(interval);
131
- }
132
- }, this.closeTimeout);
133
- }
134
- isInHover(host, container) {
135
- return host.parentElement.querySelector(':hover') == host ||
136
- container.parentElement.querySelector(':hover') == container;
137
- }
138
- destroySubscriptions() {
139
- this.subscriptions.forEach(subscription => subscription.unsubscribe());
140
- this.subscriptions = [];
141
- }
142
- isClickMethod() {
143
- return this.openMethod == NgtDropdownOpenMethod.CLICK
144
- || this.openMethod == NgtDropdownOpenMethod.POPOVER_CLICK;
145
- }
146
- }
147
- NgtDropdownComponent.decorators = [
148
- { type: Component, args: [{
149
- selector: 'ngt-dropdown',
150
- template: "<div class=\"sm:relative\">\r\n <div (mouseenter)=\"onHover(host, container)\" (click)=\"onClick($event, host, container)\" (contextmenu)=\"onRightClick($event)\" #host>\r\n <ng-content select='[host]'></ng-content>\r\n </div>\r\n\r\n <div [hidden]='!isOpen'\r\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\"\r\n [@openClose]=\"isOpen ? 'open' : 'closed'\" (mouseenter)=\"onHover(host, container)\"\r\n (click)='closeOnSelectOption()' style=\"z-index: 1100 !important;\" #container>\r\n\r\n <ng-content select='[container]'></ng-content>\r\n </div>\r\n</div>\r\n\r\n<button *ngIf=\"isOpen && openMethod != 'HOVER'\" class=\"fixed z-40 inset-0 h-full w-full opacity-0 cursor-default\"\r\n (click)='toggle()'>\r\n</button>\r\n",
151
- animations: [
152
- trigger('openClose', [
153
- state('open', style({ opacity: 1, transform: 'translateY(0px)' })),
154
- state('closed', style({ opacity: 0, transform: 'translateY(-10px)' })),
155
- transition('closed => open', [
156
- animate(300)
157
- ]),
158
- ]),
159
- ],
160
- styles: [".ngt-dropdown-container{max-height:30rem;width:-moz-max-content;width:max-content}\n"]
161
- },] }
162
- ];
163
- NgtDropdownComponent.ctorParameters = () => [
164
- { type: NgtDropdownContainerComponent, decorators: [{ type: Optional }, { type: SkipSelf }] }
165
- ];
166
- NgtDropdownComponent.propDecorators = {
167
- containerRef: [{ type: ViewChild, args: ['container', { static: true },] }],
168
- autoXReverse: [{ type: Input }],
169
- autoYReverse: [{ type: Input }],
170
- reverseXPosition: [{ type: Input }],
171
- reverseYPosition: [{ type: Input }],
172
- closeOnClick: [{ type: Input }],
173
- closeTimeout: [{ type: Input }],
174
- openMethod: [{ type: Input }],
175
- onToggle: [{ type: Output }],
176
- onHostClick: [{ type: Output }]
177
- };
178
- export var NgtDropdownOpenMethod;
179
- (function (NgtDropdownOpenMethod) {
180
- NgtDropdownOpenMethod["CLICK"] = "CLICK";
181
- NgtDropdownOpenMethod["POPOVER_CLICK"] = "POPOVER_CLICK";
182
- NgtDropdownOpenMethod["RIGHT_CLICK"] = "RIGHT_CLICK";
183
- NgtDropdownOpenMethod["HOVER"] = "HOVER";
184
- })(NgtDropdownOpenMethod || (NgtDropdownOpenMethod = {}));
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wZG93bi9uZ3QtZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFnQjFHLE1BQU0sT0FBTyxvQkFBb0I7SUF5QjdCLFlBRVksb0JBQW1EO1FBQW5ELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBK0I7UUF2Qi9DLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBSTdCLGlCQUFZLEdBQVcsSUFBSSxDQUFDO1FBQzVCLGVBQVUsR0FBMEIscUJBQXFCLENBQUMsS0FBSyxDQUFDO1FBRS9ELGFBQVEsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRCxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlELFNBQUksR0FBVyxJQUFJLEVBQUUsQ0FBQztRQUV0Qix3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUNuQyx1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFFbEMs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QUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUM3Qix3Q0FBZSxDQUFBO0lBQ2Ysd0RBQStCLENBQUE7SUFDL0Isb0RBQTJCLENBQUE7SUFDM0Isd0NBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTFcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUtoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgU2tpcFNlbGYsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgZ2V0RW51bUZyb21TdHJpbmcgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VudW0vZW51bSc7XHJcbmltcG9ydCB7IHV1aWQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3V1aWQnO1xyXG5pbXBvcnQgeyBOZ3REcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbmd0LWRyb3Bkb3duLWNvbnRhaW5lci9uZ3QtZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmd0LWRyb3Bkb3duJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbmd0LWRyb3Bkb3duLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKCdvcGVuQ2xvc2UnLCBbXHJcbiAgICAgICAgICAgIHN0YXRlKCdvcGVuJywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDBweCknIH0pKSxcclxuICAgICAgICAgICAgc3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtMTBweCknIH0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbXHJcbiAgICAgICAgICAgICAgICBhbmltYXRlKDMwMClcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgXSksXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3REcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgY29udGFpbmVyUmVmOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhdXRvWFJldmVyc2U6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYXV0b1lSZXZlcnNlOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyByZXZlcnNlWFBvc2l0aW9uOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcHVibGljIHJldmVyc2VZUG9zaXRpb246IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgY2xvc2VPbkNsaWNrOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcHVibGljIGNsb3NlVGltZW91dDogbnVtYmVyID0gMTAwMDtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBvcGVuTWV0aG9kOiBOZ3REcm9wZG93bk9wZW5NZXRob2QgPSBOZ3REcm9wZG93bk9wZW5NZXRob2QuSE9WRVI7XHJcblxyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvblRvZ2dsZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkhvc3RDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9IHV1aWQoKTtcclxuICAgIHB1YmxpYyBpc09wZW46IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgaXNZUG9zaXRpb25SZXZlcnNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlzWFBvc2l0aW9uUmV2ZXJzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc0JpbmRpbmdZUG9zaXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcHVibGljIGlzQmluZGluZ1hQb3NpdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XHJcbiAgICBwcml2YXRlIGNvbnRhaW5lclhQb3NpdGlvbjogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBjb250YWluZXJZUG9zaXRpb246IG51bWJlcjtcclxuXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKClcclxuICAgICAgICBwcml2YXRlIG5ndERyb3Bkb3duQ29udGFpbmVyOiBOZ3REcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubmd0RHJvcGRvd25Db250YWluZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ndERyb3Bkb3duQ29udGFpbmVyLm9uQWN0aXZlRHJvcGRvd25DaGFuZ2Uuc3Vic2NyaWJlKChhY3RpdmVEcm9wZG93bjogTmd0RHJvcGRvd25Db21wb25lbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IChhY3RpdmVEcm9wZG93bi5uYW1lID09PSB0aGlzLm5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5vcGVuTWV0aG9kKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbk1ldGhvZCA9IGdldEVudW1Gcm9tU3RyaW5nKGNoYW5nZXMub3Blbk1ldGhvZC5jdXJyZW50VmFsdWUsIE5ndERyb3Bkb3duT3Blbk1ldGhvZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9wZW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubmd0RHJvcGRvd25Db250YWluZXI/LnNldEFjdGl2ZURyb3Bkb3duKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbG9zZU9uU2VsZWN0T3B0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25DbGljaykge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVyWFBvc2l0aW9uID0gbnVsbDtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lcllQb3NpdGlvbiA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW4oKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5vblRvZ2dsZS5lbWl0KHRoaXMuaXNPcGVuKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Ib3Zlcihob3N0OiBhbnksIGNvbnRhaW5lcjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMub3Blbk1ldGhvZCA9PSBOZ3REcm9wZG93bk9wZW5NZXRob2QuSE9WRVIgJiYgaG9zdCAmJiBjb250YWluZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICAgICAgICAgIHRoaXMud2F0Y2hIb3Zlcihob3N0LCBjb250YWluZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25DbGljayhldmVudDogRXZlbnQsIGhvc3Q6IGFueSwgY29udGFpbmVyOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uSG9zdENsaWNrPy5lbWl0KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzQ2xpY2tNZXRob2QoKSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5vcGVuTWV0aG9kID09IE5ndERyb3Bkb3duT3Blbk1ldGhvZC5QT1BPVkVSX0NMSUNLKSB7XHJcbiAgICAgICAgICAgIHRoaXMud2F0Y2hIb3Zlcihob3N0LCBjb250YWluZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25SaWdodENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm9wZW5NZXRob2QgPT0gTmd0RHJvcGRvd25PcGVuTWV0aG9kLlJJR0hUX0NMSUNLKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvdWxkUmV2ZXJzZVhQb3NpdGlvbigpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRoaXMuYXV0b1hSZXZlcnNlIHx8IHRoaXMucmV2ZXJzZVhQb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldmVyc2VYUG9zaXRpb247XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcclxuICAgICAgICAgICAgdGhpcy5iaW5kQ29udGFpbmVyWFBvc2l0aW9uKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmlzWFBvc2l0aW9uUmV2ZXJzZWQgPSAhKHRoaXMuY29udGFpbmVyWFBvc2l0aW9uID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5pc0JpbmRpbmdYUG9zaXRpb24gJiYgdGhpcy5pc1hQb3NpdGlvblJldmVyc2VkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvdWxkUmV2ZXJzZVlQb3NpdGlvbigpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRoaXMuYXV0b1lSZXZlcnNlIHx8IHRoaXMucmV2ZXJzZVlQb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldmVyc2VZUG9zaXRpb247XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcclxuICAgICAgICAgICAgdGhpcy5iaW5kQ29udGFpbmVyWVBvc2l0aW9uKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmlzWVBvc2l0aW9uUmV2ZXJzZWQgPSB0aGlzLmNvbnRhaW5lcllQb3NpdGlvbiA+IChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ICogMC45KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5pc0JpbmRpbmdZUG9zaXRpb24gJiYgdGhpcy5pc1lQb3NpdGlvblJldmVyc2VkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGJpbmRDb250YWluZXJYUG9zaXRpb24oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lclhQb3NpdGlvbiAmJiB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNCaW5kaW5nWFBvc2l0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJYUG9zaXRpb24gPSB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnhcclxuICAgICAgICAgICAgICAgICAgICArIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0JpbmRpbmdYUG9zaXRpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYmluZENvbnRhaW5lcllQb3NpdGlvbigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuY29udGFpbmVyWVBvc2l0aW9uICYmIHRoaXMuY29udGFpbmVyUmVmPy5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkge1xyXG4gICAgICAgICAgICB0aGlzLmlzQmluZGluZ1lQb3NpdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyWVBvc2l0aW9uID0gdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55XHJcbiAgICAgICAgICAgICAgICAgICAgKyB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzQmluZGluZ1lQb3NpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB3YXRjaEhvdmVyKGhvc3Q6IGFueSwgY29udGFpbmVyOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCFob3N0IHx8ICFjb250YWluZXIgfHwgIXRoaXMuaXNJbkhvdmVyKGhvc3QsIGNvbnRhaW5lcikpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgdGhpcy5jbG9zZVRpbWVvdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNJbkhvdmVyKGhvc3Q6IGFueSwgY29udGFpbmVyOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gaG9zdC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJzpob3ZlcicpID09IGhvc3QgfHxcclxuICAgICAgICAgICAgY29udGFpbmVyLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignOmhvdmVyJykgPT0gY29udGFpbmVyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGVzdHJveVN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzQ2xpY2tNZXRob2QoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub3Blbk1ldGhvZCA9PSBOZ3REcm9wZG93bk9wZW5NZXRob2QuQ0xJQ0tcclxuICAgICAgICAgICAgfHwgdGhpcy5vcGVuTWV0aG9kID09IE5ndERyb3Bkb3duT3Blbk1ldGhvZC5QT1BPVkVSX0NMSUNLO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBOZ3REcm9wZG93bk9wZW5NZXRob2Qge1xyXG4gICAgQ0xJQ0sgPSAnQ0xJQ0snLFxyXG4gICAgUE9QT1ZFUl9DTElDSyA9ICdQT1BPVkVSX0NMSUNLJyxcclxuICAgIFJJR0hUX0NMSUNLID0gJ1JJR0hUX0NMSUNLJyxcclxuICAgIEhPVkVSID0gJ0hPVkVSJ1xyXG59XHJcbiJdfQ==
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 { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';
6
+ export class NgtDropdownComponent {
7
+ constructor(ngtDropdownContainer) {
8
+ this.ngtDropdownContainer = ngtDropdownContainer;
9
+ this.autoYReverse = true;
10
+ this.closeTimeout = 1000;
11
+ this.openMethod = NgtDropdownOpenMethod.HOVER;
12
+ this.onToggle = new EventEmitter();
13
+ this.onHostClick = new EventEmitter();
14
+ this.name = uuid();
15
+ this.isYPositionReversed = false;
16
+ this.isXPositionReversed = false;
17
+ this.isBindingYPosition = true;
18
+ this.isBindingXPosition = true;
19
+ this.subscriptions = [];
20
+ if (this.ngtDropdownContainer) {
21
+ this.subscriptions.push(this.ngtDropdownContainer.onActiveDropdownChange.subscribe((activeDropdown) => {
22
+ this.isOpen = (activeDropdown.name === this.name);
23
+ }));
24
+ }
25
+ }
26
+ ngOnChanges(changes) {
27
+ if (changes.openMethod) {
28
+ this.openMethod = getEnumFromString(changes.openMethod.currentValue, NgtDropdownOpenMethod);
29
+ }
30
+ }
31
+ ngOnDestroy() {
32
+ this.destroySubscriptions();
33
+ }
34
+ open() {
35
+ var _a;
36
+ this.isOpen = true;
37
+ (_a = this.ngtDropdownContainer) === null || _a === void 0 ? void 0 : _a.setActiveDropdown(this);
38
+ }
39
+ closeOnSelectOption() {
40
+ if (this.closeOnClick) {
41
+ this.close();
42
+ }
43
+ }
44
+ close() {
45
+ this.isOpen = false;
46
+ this.containerXPosition = null;
47
+ this.containerYPosition = null;
48
+ }
49
+ toggle() {
50
+ setTimeout(() => {
51
+ if (this.isOpen) {
52
+ this.close();
53
+ }
54
+ else {
55
+ this.open();
56
+ }
57
+ this.onToggle.emit(this.isOpen);
58
+ });
59
+ }
60
+ onHover(host, container) {
61
+ if (this.openMethod == NgtDropdownOpenMethod.HOVER && host && container) {
62
+ this.open();
63
+ this.watchHover(host, container);
64
+ }
65
+ }
66
+ onClick(event, host, container) {
67
+ var _a;
68
+ (_a = this.onHostClick) === null || _a === void 0 ? void 0 : _a.emit();
69
+ if (this.isClickMethod()) {
70
+ event.preventDefault();
71
+ event.stopPropagation();
72
+ this.toggle();
73
+ }
74
+ if (this.openMethod == NgtDropdownOpenMethod.POPOVER_CLICK) {
75
+ this.watchHover(host, container);
76
+ }
77
+ }
78
+ onRightClick(event) {
79
+ if (this.openMethod == NgtDropdownOpenMethod.RIGHT_CLICK) {
80
+ event.preventDefault();
81
+ event.stopPropagation();
82
+ this.toggle();
83
+ }
84
+ }
85
+ shouldReverseXPosition() {
86
+ if (!this.autoXReverse || this.reverseXPosition !== undefined) {
87
+ return this.reverseXPosition;
88
+ }
89
+ if (this.isOpen) {
90
+ this.bindContainerXPosition();
91
+ this.isXPositionReversed = !(this.containerXPosition > document.documentElement.clientWidth);
92
+ return !this.isBindingXPosition && this.isXPositionReversed;
93
+ }
94
+ }
95
+ shouldReverseYPosition() {
96
+ if (!this.autoYReverse || this.reverseYPosition !== undefined) {
97
+ return this.reverseYPosition;
98
+ }
99
+ if (this.isOpen) {
100
+ this.bindContainerYPosition();
101
+ this.isYPositionReversed = this.containerYPosition > (document.documentElement.clientHeight * 0.9);
102
+ return !this.isBindingYPosition && this.isYPositionReversed;
103
+ }
104
+ }
105
+ bindContainerXPosition() {
106
+ if (!this.containerXPosition && this.containerRef.nativeElement.offsetWidth) {
107
+ this.isBindingXPosition = true;
108
+ setTimeout(() => {
109
+ this.containerXPosition = this.containerRef.nativeElement.getBoundingClientRect().x
110
+ + this.containerRef.nativeElement.offsetWidth;
111
+ this.isBindingXPosition = false;
112
+ });
113
+ }
114
+ }
115
+ bindContainerYPosition() {
116
+ var _a;
117
+ if (!this.containerYPosition && ((_a = this.containerRef) === null || _a === void 0 ? void 0 : _a.nativeElement.offsetHeight)) {
118
+ this.isBindingYPosition = true;
119
+ setTimeout(() => {
120
+ this.containerYPosition = this.containerRef.nativeElement.getBoundingClientRect().y
121
+ + this.containerRef.nativeElement.offsetHeight;
122
+ this.isBindingYPosition = false;
123
+ });
124
+ }
125
+ }
126
+ watchHover(host, container) {
127
+ const interval = setInterval(() => {
128
+ if (!host || !container || !this.isInHover(host, container)) {
129
+ this.close();
130
+ clearInterval(interval);
131
+ }
132
+ }, this.closeTimeout);
133
+ }
134
+ isInHover(host, container) {
135
+ return host.parentElement.querySelector(':hover') == host ||
136
+ container.parentElement.querySelector(':hover') == container;
137
+ }
138
+ destroySubscriptions() {
139
+ this.subscriptions.forEach(subscription => subscription.unsubscribe());
140
+ this.subscriptions = [];
141
+ }
142
+ isClickMethod() {
143
+ return this.openMethod == NgtDropdownOpenMethod.CLICK
144
+ || this.openMethod == NgtDropdownOpenMethod.POPOVER_CLICK;
145
+ }
146
+ }
147
+ NgtDropdownComponent.decorators = [
148
+ { type: Component, args: [{
149
+ selector: 'ngt-dropdown',
150
+ template: "<div class=\"sm:relative\">\n <div (mouseenter)=\"onHover(host, container)\" (click)=\"onClick($event, host, container)\" (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 <ng-content select='[container]'></ng-content>\n </div>\n</div>\n\n<button *ngIf=\"isOpen && openMethod != 'HOVER'\" class=\"fixed z-40 inset-0 h-full w-full opacity-0 cursor-default\"\n (click)='toggle()'>\n</button>\n",
151
+ animations: [
152
+ trigger('openClose', [
153
+ state('open', style({ opacity: 1, transform: 'translateY(0px)' })),
154
+ state('closed', style({ opacity: 0, transform: 'translateY(-10px)' })),
155
+ transition('closed => open', [
156
+ animate(300)
157
+ ]),
158
+ ]),
159
+ ],
160
+ styles: [".ngt-dropdown-container{max-height:30rem;width:-moz-max-content;width:max-content}\n"]
161
+ },] }
162
+ ];
163
+ NgtDropdownComponent.ctorParameters = () => [
164
+ { type: NgtDropdownContainerComponent, decorators: [{ type: Optional }, { type: SkipSelf }] }
165
+ ];
166
+ NgtDropdownComponent.propDecorators = {
167
+ containerRef: [{ type: ViewChild, args: ['container', { static: true },] }],
168
+ autoXReverse: [{ type: Input }],
169
+ autoYReverse: [{ type: Input }],
170
+ reverseXPosition: [{ type: Input }],
171
+ reverseYPosition: [{ type: Input }],
172
+ closeOnClick: [{ type: Input }],
173
+ closeTimeout: [{ type: Input }],
174
+ openMethod: [{ type: Input }],
175
+ onToggle: [{ type: Output }],
176
+ onHostClick: [{ type: Output }]
177
+ };
178
+ export var NgtDropdownOpenMethod;
179
+ (function (NgtDropdownOpenMethod) {
180
+ NgtDropdownOpenMethod["CLICK"] = "CLICK";
181
+ NgtDropdownOpenMethod["POPOVER_CLICK"] = "POPOVER_CLICK";
182
+ NgtDropdownOpenMethod["RIGHT_CLICK"] = "RIGHT_CLICK";
183
+ NgtDropdownOpenMethod["HOVER"] = "HOVER";
184
+ })(NgtDropdownOpenMethod || (NgtDropdownOpenMethod = {}));
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wZG93bi9uZ3QtZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFnQjFHLE1BQU0sT0FBTyxvQkFBb0I7SUF5QjdCLFlBRVksb0JBQW1EO1FBQW5ELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBK0I7UUF2Qi9DLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBSTdCLGlCQUFZLEdBQVcsSUFBSSxDQUFDO1FBQzVCLGVBQVUsR0FBMEIscUJBQXFCLENBQUMsS0FBSyxDQUFDO1FBRS9ELGFBQVEsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRCxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlELFNBQUksR0FBVyxJQUFJLEVBQUUsQ0FBQztRQUV0Qix3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUNuQyx1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFFbEMsa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBUTVDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBb0MsRUFBRSxFQUFFO2dCQUNoRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1NBQy9GO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sSUFBSTs7UUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixNQUFBLElBQUksQ0FBQyxvQkFBb0IsMENBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hCO0lBQ0wsQ0FBQztJQUVNLEtBQUs7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUVNLE1BQU07UUFDVCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNoQjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDZjtZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBUyxFQUFFLFNBQWM7UUFDcEMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLHFCQUFxQixDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksU0FBUyxFQUFFO1lBQ3JFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUFZLEVBQUUsSUFBUyxFQUFFLFNBQWM7O1FBQ2xELE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsSUFBSSxFQUFFLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDdEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUV4QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakI7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUkscUJBQXFCLENBQUMsYUFBYSxFQUFFO1lBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFZO1FBQzVCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUU7WUFDdEQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakI7SUFDTCxDQUFDO0lBRU0sc0JBQXNCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7WUFDM0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDaEM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUU5QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRTdGLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDO1NBQy9EO0lBQ0wsQ0FBQztJQUVNLHNCQUFzQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQzNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQ2hDO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFFOUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBRW5HLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDO1NBQy9EO0lBQ0wsQ0FBQztJQUVPLHNCQUFzQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUN6RSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1lBRS9CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztzQkFDN0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO2dCQUVsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRU8sc0JBQXNCOztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixLQUFJLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsYUFBYSxDQUFDLFlBQVksQ0FBQSxFQUFFO1lBQzNFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFFL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO3NCQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7Z0JBRW5ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBUyxFQUFFLFNBQWM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDM0I7UUFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyxTQUFTLENBQUMsSUFBUyxFQUFFLFNBQWM7UUFDdkMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJO1lBQ3JELFNBQVMsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGFBQWE7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLHFCQUFxQixDQUFDLEtBQUs7ZUFDOUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxxQkFBcUIsQ0FBQyxhQUFhLENBQUM7SUFDbEUsQ0FBQzs7O1lBck1KLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsazNCQUE0QztnQkFFNUMsVUFBVSxFQUFFO29CQUNSLE9BQU8sQ0FBQyxXQUFXLEVBQUU7d0JBQ2pCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO3dCQUNsRSxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQzt3QkFDdEUsVUFBVSxDQUFDLGdCQUFnQixFQUFFOzRCQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDO3lCQUNmLENBQUM7cUJBQ0wsQ0FBQztpQkFDTDs7YUFDSjs7O1lBZlEsNkJBQTZCLHVCQTBDN0IsUUFBUSxZQUFJLFFBQVE7OzsyQkF6QnhCLFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOzJCQUV2QyxLQUFLOzJCQUNMLEtBQUs7K0JBQ0wsS0FBSzsrQkFDTCxLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsS0FBSzt5QkFDTCxLQUFLO3VCQUVMLE1BQU07MEJBQ04sTUFBTTs7QUE4S1gsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUM3Qix3Q0FBZSxDQUFBO0lBQ2Ysd0RBQStCLENBQUE7SUFDL0Isb0RBQTJCLENBQUE7SUFDM0Isd0NBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTFcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUtoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0RW51bUZyb21TdHJpbmcgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VudW0vZW51bSc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnLi4vLi4vaGVscGVycy91dWlkJztcbmltcG9ydCB7IE5ndERyb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtZHJvcGRvd24tY29udGFpbmVyL25ndC1kcm9wZG93bi1jb250YWluZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtZHJvcGRvd24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25ndC1kcm9wZG93bi5jb21wb25lbnQuY3NzJ10sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdvcGVuQ2xvc2UnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnb3BlbicsIHN0eWxlKHsgb3BhY2l0eTogMSwgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwcHgpJyB9KSksXG4gICAgICAgICAgICBzdGF0ZSgnY2xvc2VkJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMHB4KScgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgzMDApXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXSksXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3REcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGNvbnRhaW5lclJlZjogRWxlbWVudFJlZjtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBhdXRvWFJldmVyc2U6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGF1dG9ZUmV2ZXJzZTogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgcHVibGljIHJldmVyc2VYUG9zaXRpb246IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIHJldmVyc2VZUG9zaXRpb246IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGNsb3NlT25DbGljazogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgY2xvc2VUaW1lb3V0OiBudW1iZXIgPSAxMDAwO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvcGVuTWV0aG9kOiBOZ3REcm9wZG93bk9wZW5NZXRob2QgPSBOZ3REcm9wZG93bk9wZW5NZXRob2QuSE9WRVI7XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIG9uVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkhvc3RDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nID0gdXVpZCgpO1xuICAgIHB1YmxpYyBpc09wZW46IGJvb2xlYW47XG4gICAgcHVibGljIGlzWVBvc2l0aW9uUmV2ZXJzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNYUG9zaXRpb25SZXZlcnNlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0JpbmRpbmdZUG9zaXRpb246IGJvb2xlYW4gPSB0cnVlO1xuICAgIHB1YmxpYyBpc0JpbmRpbmdYUG9zaXRpb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG4gICAgcHJpdmF0ZSBjb250YWluZXJYUG9zaXRpb246IG51bWJlcjtcbiAgICBwcml2YXRlIGNvbnRhaW5lcllQb3NpdGlvbjogbnVtYmVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxuICAgICAgICBwcml2YXRlIG5ndERyb3Bkb3duQ29udGFpbmVyOiBOZ3REcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudFxuICAgICkge1xuICAgICAgICBpZiAodGhpcy5uZ3REcm9wZG93bkNvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5uZ3REcm9wZG93bkNvbnRhaW5lci5vbkFjdGl2ZURyb3Bkb3duQ2hhbmdlLnN1YnNjcmliZSgoYWN0aXZlRHJvcGRvd246IE5ndERyb3Bkb3duQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gKGFjdGl2ZURyb3Bkb3duLm5hbWUgPT09IHRoaXMubmFtZSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5vcGVuTWV0aG9kKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5NZXRob2QgPSBnZXRFbnVtRnJvbVN0cmluZyhjaGFuZ2VzLm9wZW5NZXRob2QuY3VycmVudFZhbHVlLCBOZ3REcm9wZG93bk9wZW5NZXRob2QpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5uZ3REcm9wZG93bkNvbnRhaW5lcj8uc2V0QWN0aXZlRHJvcGRvd24odGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlT25TZWxlY3RPcHRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25DbGljaykge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclhQb3NpdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY29udGFpbmVyWVBvc2l0aW9uID0gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMub25Ub2dnbGUuZW1pdCh0aGlzLmlzT3Blbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkhvdmVyKGhvc3Q6IGFueSwgY29udGFpbmVyOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMub3Blbk1ldGhvZCA9PSBOZ3REcm9wZG93bk9wZW5NZXRob2QuSE9WRVIgJiYgaG9zdCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgICAgdGhpcy53YXRjaEhvdmVyKGhvc3QsIGNvbnRhaW5lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGljayhldmVudDogRXZlbnQsIGhvc3Q6IGFueSwgY29udGFpbmVyOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkhvc3RDbGljaz8uZW1pdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzQ2xpY2tNZXRob2QoKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub3Blbk1ldGhvZCA9PSBOZ3REcm9wZG93bk9wZW5NZXRob2QuUE9QT1ZFUl9DTElDSykge1xuICAgICAgICAgICAgdGhpcy53YXRjaEhvdmVyKGhvc3QsIGNvbnRhaW5lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25SaWdodENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5vcGVuTWV0aG9kID09IE5ndERyb3Bkb3duT3Blbk1ldGhvZC5SSUdIVF9DTElDSykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzaG91bGRSZXZlcnNlWFBvc2l0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuYXV0b1hSZXZlcnNlIHx8IHRoaXMucmV2ZXJzZVhQb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXZlcnNlWFBvc2l0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmJpbmRDb250YWluZXJYUG9zaXRpb24oKTtcblxuICAgICAgICAgICAgdGhpcy5pc1hQb3NpdGlvblJldmVyc2VkID0gISh0aGlzLmNvbnRhaW5lclhQb3NpdGlvbiA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCk7XG5cbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5pc0JpbmRpbmdYUG9zaXRpb24gJiYgdGhpcy5pc1hQb3NpdGlvblJldmVyc2VkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNob3VsZFJldmVyc2VZUG9zaXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5hdXRvWVJldmVyc2UgfHwgdGhpcy5yZXZlcnNlWVBvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJldmVyc2VZUG9zaXRpb247XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuYmluZENvbnRhaW5lcllQb3NpdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmlzWVBvc2l0aW9uUmV2ZXJzZWQgPSB0aGlzLmNvbnRhaW5lcllQb3NpdGlvbiA+IChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ICogMC45KTtcblxuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmlzQmluZGluZ1lQb3NpdGlvbiAmJiB0aGlzLmlzWVBvc2l0aW9uUmV2ZXJzZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJpbmRDb250YWluZXJYUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb250YWluZXJYUG9zaXRpb24gJiYgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5pc0JpbmRpbmdYUG9zaXRpb24gPSB0cnVlO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lclhQb3NpdGlvbiA9IHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueFxuICAgICAgICAgICAgICAgICAgICArIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmlzQmluZGluZ1hQb3NpdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJpbmRDb250YWluZXJZUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb250YWluZXJZUG9zaXRpb24gJiYgdGhpcy5jb250YWluZXJSZWY/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLmlzQmluZGluZ1lQb3NpdGlvbiA9IHRydWU7XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyWVBvc2l0aW9uID0gdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55XG4gICAgICAgICAgICAgICAgICAgICsgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmlzQmluZGluZ1lQb3NpdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoSG92ZXIoaG9zdDogYW55LCBjb250YWluZXI6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghaG9zdCB8fCAhY29udGFpbmVyIHx8ICF0aGlzLmlzSW5Ib3Zlcihob3N0LCBjb250YWluZXIpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCB0aGlzLmNsb3NlVGltZW91dCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0luSG92ZXIoaG9zdDogYW55LCBjb250YWluZXI6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaG9zdC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJzpob3ZlcicpID09IGhvc3QgfHxcbiAgICAgICAgICAgIGNvbnRhaW5lci5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJzpob3ZlcicpID09IGNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQ2xpY2tNZXRob2QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW5NZXRob2QgPT0gTmd0RHJvcGRvd25PcGVuTWV0aG9kLkNMSUNLXG4gICAgICAgICAgICB8fCB0aGlzLm9wZW5NZXRob2QgPT0gTmd0RHJvcGRvd25PcGVuTWV0aG9kLlBPUE9WRVJfQ0xJQ0s7XG4gICAgfVxufVxuXG5leHBvcnQgZW51bSBOZ3REcm9wZG93bk9wZW5NZXRob2Qge1xuICAgIENMSUNLID0gJ0NMSUNLJyxcbiAgICBQT1BPVkVSX0NMSUNLID0gJ1BPUE9WRVJfQ0xJQ0snLFxuICAgIFJJR0hUX0NMSUNLID0gJ1JJR0hUX0NMSUNLJyxcbiAgICBIT1ZFUiA9ICdIT1ZFUidcbn1cbiJdfQ==
@@ -1,16 +1,16 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { NgtDropdownComponent } from './ngt-dropdown.component';
4
- import { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';
5
- export class NgtDropdownModule {
6
- }
7
- NgtDropdownModule.decorators = [
8
- { type: NgModule, args: [{
9
- declarations: [NgtDropdownComponent, NgtDropdownContainerComponent],
10
- exports: [NgtDropdownComponent, NgtDropdownContainerComponent],
11
- imports: [
12
- CommonModule
13
- ]
14
- },] }
15
- ];
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3Bkb3duLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wZG93bi9uZ3QtZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBUzFHLE1BQU0sT0FBTyxpQkFBaUI7OztZQVA3QixRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsNkJBQTZCLENBQUM7Z0JBQ25FLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLDZCQUE2QixDQUFDO2dCQUM5RCxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtpQkFDZjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmd0RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL25ndC1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ3REcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbmd0LWRyb3Bkb3duLWNvbnRhaW5lci9uZ3QtZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbTmd0RHJvcGRvd25Db21wb25lbnQsIE5ndERyb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50XSxcclxuICAgIGV4cG9ydHM6IFtOZ3REcm9wZG93bkNvbXBvbmVudCwgTmd0RHJvcGRvd25Db250YWluZXJDb21wb25lbnRdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd0RHJvcGRvd25Nb2R1bGUgeyB9XHJcbiJdfQ==
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgtDropdownComponent } from './ngt-dropdown.component';
4
+ import { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';
5
+ export class NgtDropdownModule {
6
+ }
7
+ NgtDropdownModule.decorators = [
8
+ { type: NgModule, args: [{
9
+ declarations: [NgtDropdownComponent, NgtDropdownContainerComponent],
10
+ exports: [NgtDropdownComponent, NgtDropdownContainerComponent],
11
+ imports: [
12
+ CommonModule
13
+ ]
14
+ },] }
15
+ ];
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3Bkb3duLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wZG93bi9uZ3QtZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBUzFHLE1BQU0sT0FBTyxpQkFBaUI7OztZQVA3QixRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsNkJBQTZCLENBQUM7Z0JBQ25FLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLDZCQUE2QixDQUFDO2dCQUM5RCxPQUFPLEVBQUU7b0JBQ0wsWUFBWTtpQkFDZjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ3REcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vbmd0LWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3REcm9wZG93bkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vbmd0LWRyb3Bkb3duLWNvbnRhaW5lci9uZ3QtZHJvcGRvd24tY29udGFpbmVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbTmd0RHJvcGRvd25Db21wb25lbnQsIE5ndERyb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbTmd0RHJvcGRvd25Db21wb25lbnQsIE5ndERyb3Bkb3duQ29udGFpbmVyQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd0RHJvcGRvd25Nb2R1bGUgeyB9XG4iXX0=