ng-tailwind 2.24.310 → 2.24.314

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 (193) 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 +7318 -7271
  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 +112 -112
  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 +24 -24
  19. package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +47 -47
  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 +71 -71
  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 +42 -42
  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 +12 -12
  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 +103 -103
  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 +15 -10
  42. package/components/ngt-helper/ngt-helper.module.d.ts +2 -2
  43. package/components/ngt-input/ngt-input.component.d.ts +92 -92
  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-portlet/ngt-portlet-body/ngt-portlet-body.component.d.ts +9 -9
  55. package/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.d.ts +9 -9
  56. package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +14 -14
  57. package/components/ngt-portlet/ngt-portlet.component.d.ts +17 -17
  58. package/components/ngt-portlet/ngt-portlet.module.d.ts +2 -2
  59. package/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.d.ts +6 -6
  60. package/components/ngt-radio-button/ngt-radio-button.component.d.ts +27 -27
  61. package/components/ngt-radio-button/ngt-radio-button.module.d.ts +2 -2
  62. package/components/ngt-section/ngt-section.component.d.ts +23 -23
  63. package/components/ngt-section/ngt-section.module.d.ts +2 -2
  64. package/components/ngt-select/ngt-select.component.d.ts +122 -122
  65. package/components/ngt-select/ngt-select.directive.d.ts +13 -13
  66. package/components/ngt-select/ngt-select.module.d.ts +2 -2
  67. package/components/ngt-shining/ngt-shining.component.d.ts +16 -16
  68. package/components/ngt-shining/ngt-shining.module.d.ts +2 -2
  69. package/components/ngt-sidenav/ngt-sidenav.component.d.ts +29 -29
  70. package/components/ngt-sidenav/ngt-sidenav.module.d.ts +2 -2
  71. package/components/ngt-slider/ngt-slider.component.d.ts +31 -31
  72. package/components/ngt-slider/ngt-slider.module.d.ts +2 -2
  73. package/components/ngt-svg/ngt-svg.component.d.ts +10 -10
  74. package/components/ngt-svg/ngt-svg.module.d.ts +2 -2
  75. package/components/ngt-tag/ngt-tag.component.d.ts +10 -10
  76. package/components/ngt-tag/ngt-tag.module.d.ts +2 -2
  77. package/components/ngt-textarea/ngt-textarea.component.d.ts +46 -46
  78. package/components/ngt-textarea/ngt-textarea.module.d.ts +2 -2
  79. package/components/ngt-validation/ngt-validation.component.d.ts +10 -10
  80. package/components/ngt-validation/ngt-validation.module.d.ts +2 -2
  81. package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +65 -63
  82. package/directives/ngt-stylizable/ngt-stylizable.module.d.ts +2 -2
  83. package/enums/size.enum.d.ts +8 -8
  84. package/esm2015/animations/ngt-angular-animations.js +34 -34
  85. package/esm2015/base/ngt-base-ng-model.js +90 -90
  86. package/esm2015/components/ngt-action/ngt-action.component.js +49 -49
  87. package/esm2015/components/ngt-action/ngt-action.module.js +19 -19
  88. package/esm2015/components/ngt-button/ngt-button.component.js +106 -106
  89. package/esm2015/components/ngt-button/ngt-button.module.js +19 -19
  90. package/esm2015/components/ngt-checkbox/ngt-checkbox.component.js +137 -137
  91. package/esm2015/components/ngt-checkbox/ngt-checkbox.module.js +19 -19
  92. package/esm2015/components/ngt-content/ngt-content.component.js +33 -33
  93. package/esm2015/components/ngt-content/ngt-content.module.js +15 -15
  94. package/esm2015/components/ngt-datatable/ngt-datatable.component.js +400 -400
  95. package/esm2015/components/ngt-datatable/ngt-datatable.module.js +58 -58
  96. package/esm2015/components/ngt-datatable/ngt-tbody/ngt-tbody.component.js +58 -60
  97. package/esm2015/components/ngt-datatable/ngt-td/ngt-td.component.js +63 -63
  98. package/esm2015/components/ngt-datatable/ngt-td-check/ngt-td-check.component.js +102 -102
  99. package/esm2015/components/ngt-datatable/ngt-th/ngt-th.component.js +192 -192
  100. package/esm2015/components/ngt-datatable/ngt-th-check/ngt-th-check.component.js +87 -87
  101. package/esm2015/components/ngt-datatable/ngt-thead/ngt-thead.component.js +56 -58
  102. package/esm2015/components/ngt-datatable/ngt-tr/ngt-tr.component.js +76 -76
  103. package/esm2015/components/ngt-date/ngt-date.component.js +354 -352
  104. package/esm2015/components/ngt-date/ngt-date.module.js +25 -25
  105. package/esm2015/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.js +20 -20
  106. package/esm2015/components/ngt-dropdown/ngt-dropdown.component.js +165 -165
  107. package/esm2015/components/ngt-dropdown/ngt-dropdown.module.js +16 -16
  108. package/esm2015/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.js +47 -47
  109. package/esm2015/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.js +46 -45
  110. package/esm2015/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.js +67 -67
  111. package/esm2015/components/ngt-dropzone/ngt-dropzone.component.js +411 -411
  112. package/esm2015/components/ngt-dropzone/ngt-dropzone.module.js +37 -37
  113. package/esm2015/components/ngt-floating-button/ngt-floating-button.component.js +94 -94
  114. package/esm2015/components/ngt-floating-button/ngt-floating-button.module.js +19 -19
  115. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.js +23 -23
  116. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.js +15 -15
  117. package/esm2015/components/ngt-form/ngt-form.component.js +181 -181
  118. package/esm2015/components/ngt-form/ngt-form.module.js +17 -17
  119. package/esm2015/components/ngt-header-nav/ngt-header-nav.component.js +38 -38
  120. package/esm2015/components/ngt-header-nav/ngt-header-nav.module.js +15 -15
  121. package/esm2015/components/ngt-helper/ngt-helper.component.js +44 -24
  122. package/esm2015/components/ngt-helper/ngt-helper.module.js +19 -19
  123. package/esm2015/components/ngt-input/ngt-input.component.js +610 -608
  124. package/esm2015/components/ngt-input/ngt-input.module.js +28 -28
  125. package/esm2015/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.js +11 -11
  126. package/esm2015/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.js +11 -11
  127. package/esm2015/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.js +40 -40
  128. package/esm2015/components/ngt-modal/ngt-modal.component.js +79 -79
  129. package/esm2015/components/ngt-modal/ngt-modal.module.js +28 -28
  130. package/esm2015/components/ngt-multi-select/ngt-multi-select.component.js +392 -392
  131. package/esm2015/components/ngt-multi-select/ngt-multi-select.module.js +33 -33
  132. package/esm2015/components/ngt-pagination/ngt-pagination.component.js +172 -172
  133. package/esm2015/components/ngt-pagination/ngt-pagination.module.js +23 -23
  134. package/esm2015/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.js +32 -32
  135. package/esm2015/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.js +33 -33
  136. package/esm2015/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.js +47 -45
  137. package/esm2015/components/ngt-portlet/ngt-portlet.component.js +58 -58
  138. package/esm2015/components/ngt-portlet/ngt-portlet.module.js +32 -32
  139. package/esm2015/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.js +19 -19
  140. package/esm2015/components/ngt-radio-button/ngt-radio-button.component.js +97 -97
  141. package/esm2015/components/ngt-radio-button/ngt-radio-button.module.js +18 -18
  142. package/esm2015/components/ngt-section/ngt-section.component.js +98 -98
  143. package/esm2015/components/ngt-section/ngt-section.module.js +21 -21
  144. package/esm2015/components/ngt-select/ngt-select.component.js +467 -465
  145. package/esm2015/components/ngt-select/ngt-select.directive.js +35 -35
  146. package/esm2015/components/ngt-select/ngt-select.module.js +40 -40
  147. package/esm2015/components/ngt-shining/ngt-shining.component.js +41 -41
  148. package/esm2015/components/ngt-shining/ngt-shining.module.js +15 -15
  149. package/esm2015/components/ngt-sidenav/ngt-sidenav.component.js +123 -123
  150. package/esm2015/components/ngt-sidenav/ngt-sidenav.module.js +15 -15
  151. package/esm2015/components/ngt-slider/ngt-slider.component.js +82 -82
  152. package/esm2015/components/ngt-slider/ngt-slider.module.js +17 -17
  153. package/esm2015/components/ngt-svg/ngt-svg.component.js +52 -52
  154. package/esm2015/components/ngt-svg/ngt-svg.module.js +19 -19
  155. package/esm2015/components/ngt-tag/ngt-tag.component.js +36 -36
  156. package/esm2015/components/ngt-tag/ngt-tag.module.js +17 -17
  157. package/esm2015/components/ngt-textarea/ngt-textarea.component.js +211 -209
  158. package/esm2015/components/ngt-textarea/ngt-textarea.module.js +24 -24
  159. package/esm2015/components/ngt-validation/ngt-validation.component.js +24 -24
  160. package/esm2015/components/ngt-validation/ngt-validation.module.js +15 -15
  161. package/esm2015/directives/ngt-stylizable/ngt-stylizable.directive.js +227 -220
  162. package/esm2015/directives/ngt-stylizable/ngt-stylizable.module.js +15 -15
  163. package/esm2015/enums/size.enum.js +11 -11
  164. package/esm2015/helpers/enum/enum.js +7 -7
  165. package/esm2015/helpers/form/form.js +14 -14
  166. package/esm2015/helpers/routing/route.js +11 -11
  167. package/esm2015/helpers/uuid.js +10 -10
  168. package/esm2015/ng-tailwind.js +10 -10
  169. package/esm2015/public-api.js +117 -117
  170. package/esm2015/services/http/ngt-attachment-http.service.js +3 -3
  171. package/esm2015/services/http/ngt-http-form.service.js +3 -3
  172. package/esm2015/services/http/ngt-http-resource.service.js +3 -3
  173. package/esm2015/services/http/ngt-http-validation.service.js +4 -4
  174. package/esm2015/services/http/ngt-http.service.js +3 -3
  175. package/esm2015/services/http/ngt-translate.service.js +3 -3
  176. package/esm2015/services/ngt-stylizable/ngt-stylizable.service.js +273 -266
  177. package/fesm2015/ng-tailwind.js +6404 -6365
  178. package/fesm2015/ng-tailwind.js.map +1 -1
  179. package/helpers/enum/enum.d.ts +1 -1
  180. package/helpers/form/form.d.ts +4 -4
  181. package/helpers/routing/route.d.ts +2 -2
  182. package/helpers/uuid.d.ts +1 -1
  183. package/ng-tailwind.d.ts +10 -10
  184. package/ng-tailwind.metadata.json +1 -1
  185. package/package.json +1 -1
  186. package/public-api.d.ts +80 -80
  187. package/services/http/ngt-attachment-http.service.d.ts +10 -10
  188. package/services/http/ngt-http-form.service.d.ts +5 -5
  189. package/services/http/ngt-http-resource.service.d.ts +12 -12
  190. package/services/http/ngt-http-validation.service.d.ts +10 -10
  191. package/services/http/ngt-http.service.d.ts +27 -27
  192. package/services/http/ngt-translate.service.d.ts +27 -27
  193. package/services/ngt-stylizable/ngt-stylizable.service.d.ts +96 -93
@@ -1 +1 @@
1
- {"version":3,"file":"ng-tailwind.js","sources":["../../../projects/ng-tailwind/src/services/http/ngt-translate.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-validation.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-resource.service.ts","../../../projects/ng-tailwind/src/services/ngt-stylizable/ngt-stylizable.service.ts","../../../projects/ng-tailwind/src/directives/ngt-stylizable/ngt-stylizable.directive.ts","../../../projects/ng-tailwind/src/directives/ngt-stylizable/ngt-stylizable.module.ts","../../../projects/ng-tailwind/src/components/ngt-shining/ngt-shining.component.ts","../../../projects/ng-tailwind/src/components/ngt-shining/ngt-shining.module.ts","../../../projects/ng-tailwind/src/base/ngt-base-ng-model.ts","../../../projects/ng-tailwind/src/helpers/enum/enum.ts","../../../projects/ng-tailwind/src/helpers/form/form.ts","../../../projects/ng-tailwind/src/helpers/routing/route.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-form.service.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form.component.ts","../../../projects/ng-tailwind/src/components/ngt-checkbox/ngt-checkbox.component.ts","../../../projects/ng-tailwind/src/components/ngt-svg/ngt-svg.component.ts","../../../projects/ng-tailwind/src/components/ngt-svg/ngt-svg.module.ts","../../../projects/ng-tailwind/src/components/ngt-helper/ngt-helper.component.ts","../../../projects/ng-tailwind/src/helpers/uuid.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown.module.ts","../../../projects/ng-tailwind/src/components/ngt-helper/ngt-helper.module.ts","../../../projects/ng-tailwind/src/components/ngt-checkbox/ngt-checkbox.module.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form.module.ts","../../../projects/ng-tailwind/src/components/ngt-validation/ngt-validation.component.ts","../../../projects/ng-tailwind/src/components/ngt-validation/ngt-validation.module.ts","../../../projects/ng-tailwind/src/components/ngt-input/ngt-input.component.ts","../../../projects/ng-tailwind/src/components/ngt-input/ngt-input.module.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal.module.ts","../../../projects/ng-tailwind/src/components/ngt-action/ngt-action.component.ts","../../../projects/ng-tailwind/src/components/ngt-action/ngt-action.module.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.directive.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.component.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.module.ts","../../../projects/ng-tailwind/src/components/ngt-pagination/ngt-pagination.component.ts","../../../projects/ng-tailwind/src/components/ngt-pagination/ngt-pagination.module.ts","../../../projects/ng-tailwind/src/components/ngt-tag/ngt-tag.component.ts","../../../projects/ng-tailwind/src/components/ngt-tag/ngt-tag.module.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-datatable.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-tbody/ngt-tbody.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-td-check/ngt-td-check.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-td/ngt-td.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-th-check/ngt-th-check.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-th/ngt-th.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-thead/ngt-thead.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-tr/ngt-tr.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-datatable.module.ts","../../../projects/ng-tailwind/src/components/ngt-floating-button/ngt-floating-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-floating-button/ngt-floating-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-slider/ngt-slider.component.ts","../../../projects/ng-tailwind/src/components/ngt-slider/ngt-slider.module.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-textarea/ngt-textarea.component.ts","../../../projects/ng-tailwind/src/components/ngt-textarea/ngt-textarea.module.ts","../../../projects/ng-tailwind/src/components/ngt-date/ngt-date.component.ts","../../../projects/ng-tailwind/src/components/ngt-date/ngt-date.module.ts","../../../projects/ng-tailwind/src/components/ngt-button/ngt-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-button/ngt-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet.module.ts","../../../projects/ng-tailwind/src/enums/size.enum.ts","../../../projects/ng-tailwind/src/animations/ngt-angular-animations.ts","../../../projects/ng-tailwind/src/components/ngt-sidenav/ngt-sidenav.component.ts","../../../projects/ng-tailwind/src/components/ngt-sidenav/ngt-sidenav.module.ts","../../../projects/ng-tailwind/src/components/ngt-header-nav/ngt-header-nav.component.ts","../../../projects/ng-tailwind/src/components/ngt-header-nav/ngt-header-nav.module.ts","../../../projects/ng-tailwind/src/components/ngt-content/ngt-content.component.ts","../../../projects/ng-tailwind/src/components/ngt-content/ngt-content.module.ts","../../../projects/ng-tailwind/src/components/ngt-section/ngt-section.component.ts","../../../projects/ng-tailwind/src/components/ngt-section/ngt-section.module.ts","../../../projects/ng-tailwind/src/components/ngt-multi-select/ngt-multi-select.component.ts","../../../projects/ng-tailwind/src/components/ngt-multi-select/ngt-multi-select.module.ts","../../../projects/ng-tailwind/src/services/http/ngt-attachment-http.service.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone.module.ts","../../../projects/ng-tailwind/src/public-api.ts","../../../projects/ng-tailwind/src/ng-tailwind.ts"],"sourcesContent":["export abstract class NgtTranslateService {\n public abstract ngtFormDefaultValidationMessage: string;\n\n public abstract ngtDatatableNoDataFound: string;\n public abstract ngtMultiSelectNoDataFound: string;\n\n public abstract ngtSelectLoadingText: string;\n public abstract ngtSelectNotFoundText: string;\n public abstract ngtSelectTypeToSearchText: string;\n public abstract ngtSelectClearAllTooltip: string;\n public abstract ngtSelectPlaceholder: string;\n public abstract ngtSelectCreateText: string;\n\n public abstract ngtTextAreaRemainingCharacters: string;\n\n public abstract ngtStandardHelperTitle: string;\n\n public abstract ngtValidationMaxCharactersExceded: string;\n public abstract ngtValidationRequiredField: string;\n public abstract ngtValidationInvalidEmail: string;\n public abstract ngtValidationAlreadyExists: string;\n public abstract ngtValidationInvalidCnpj: string;\n public abstract ngtValidationInvalidCpf: string;\n public abstract ngtValidationPasswordRequiredMinCharacters: string;\n public abstract ngtValidationFieldsNotMatch: string;\n public abstract ngtValidationInvalidDate: string;\n public abstract ngtValidationInvalidPrevision: string;\n public abstract ngtValidationExternalServerUnavailable: string;\n public abstract ngtValidationValueMustBeGreaterThan(minValue?: number | string): string;\n public abstract ngtValidationMinLengthField(minLenth?: number | string): string;\n\n public abstract ngtPagination(from: number | string, to: number | string, total: number | string): string;\n}\n","import { Observable } from 'rxjs';\n\nexport abstract class NgtHttpService {\n abstract get(connector: any, filters: any, pagination: NgtHttpPagination, sort?: NgtHttpSort): Observable<NgtHttpResponse>;\n\n abstract post(data: any): Observable<any>;\n\n abstract put(data: any): Observable<any>;\n\n abstract delete(data: any): Observable<any>;\n}\n\nexport interface NgtHttpResponse {\n data?: any;\n meta: NgtHttpMeta;\n}\n\nexport interface NgtHttpMeta {\n pagination: NgtHttpPagination;\n}\n\nexport interface NgtHttpPagination {\n count: number;\n page: number;\n pages: number;\n total: number;\n from: number;\n to: number;\n per_page: number;\n}\n\nexport interface NgtHttpSort {\n field: string;\n direction: string;\n}\n","export interface NgtHttpValidationService {\n emailValidation(email: string): Promise<NgtHttpValidationResponse>;\n}\n\nexport abstract class NgtHttpValidationService {\n public abstract unique(validationResource: any, value: any): Promise<NgtHttpValidationResponse>;\n\n public abstract exists(validationResource: any, value: any): Promise<NgtHttpValidationResponse>;\n}\n\nexport interface NgtHttpValidationResponse {\n valid: boolean;\n};\n","export interface NgtHttpFindExistingResourceInterface {\n table: string;\n column: string;\n value?: string;\n ignore_id?: string;\n}\n\nexport interface NgtHttpFindExistingResourceResponse {\n id: string;\n}\n\nexport abstract class NgtHttpResourceService {\n public abstract findExisting(findExistingResource: NgtHttpFindExistingResourceInterface): Promise<NgtHttpFindExistingResourceResponse>;\n}\n","import { Injector } from '@angular/core';\n\nexport class NgtStylizableService {\n private _color: any;\n private _h: string;\n private _w: string;\n private _p: string;\n private _px: string;\n private _py: string;\n private _pt: string;\n private _pr: string;\n private _pb: string;\n private _pl: string;\n private _m: string;\n private _mx: string;\n private _my: string;\n private _mt: string;\n private _mr: string;\n private _mb: string;\n private _ml: string;\n private _border: string;\n private _shadow: string;\n private _rounded: string;\n private _font: string;\n private _text: string;\n private _breakWords: string;\n private _overflow: string;\n private _position: string;\n private _justifyContent: string;\n private _cursor: string;\n\n public get color() {\n return this._color;\n }\n\n public set color(color) {\n if (color.bg) {\n color.bg = this.getQualifiedValue('bg-', color.bg);\n }\n\n if (color.text) {\n color.text = this.getQualifiedValue('text-', color.text);\n }\n\n if (color.border) {\n color.border = this.getQualifiedValue('border-', color.border);\n }\n\n this._color = color;\n }\n\n public set textColor(textColor) {\n this._color = this._color ? this._color : {};\n this._color.text = this.getQualifiedValue('text-', textColor);\n }\n\n public set bgColor(bgColor) {\n this._color = this._color ? this._color : {};\n this._color.bg = this.getQualifiedValue('bg-', bgColor);\n }\n\n public set borderColor(borderColor) {\n this._color = this._color ? this._color : {};\n this._color.border = this.getQualifiedValue('border-', borderColor);\n }\n\n public get h(): string {\n return this._h;\n }\n\n public set h(h: string) {\n this._h = this.getQualifiedValue('h-', h);\n }\n\n public get w(): string {\n return this._w;\n }\n\n public set w(w: string) {\n this._w = this.getQualifiedValue('w-', w);\n }\n\n public get p(): string {\n return this._p;\n }\n\n public set p(p: string) {\n this._p = this.getQualifiedValue('p-', p);\n }\n\n public get px(): string {\n return this._px;\n }\n\n public set px(px: string) {\n this._px = this.getQualifiedValue('px-', px);\n }\n\n public get py(): string {\n return this._py;\n }\n\n public set py(py: string) {\n this._py = this.getQualifiedValue('py-', py);\n }\n\n public get pt(): string {\n return this._pt;\n }\n\n public set pt(pt: string) {\n this._pt = this.getQualifiedValue('pt-', pt);\n }\n\n public get pr(): string {\n return this._pr;\n }\n\n public set pr(pr: string) {\n this._pr = this.getQualifiedValue('pr-', pr);\n }\n\n public get pb(): string {\n return this._pb;\n }\n\n public set pb(pb: string) {\n this._pb = this.getQualifiedValue('pb-', pb);\n }\n\n public get pl(): string {\n return this._pl;\n }\n\n public set pl(pl: string) {\n this._pl = this.getQualifiedValue('pl-', pl);\n }\n\n public get m(): string {\n return this._m;\n }\n\n public set m(m: string) {\n this._m = this.getQualifiedValue('m-', m);\n }\n\n public get mx(): string {\n return this._mx;\n }\n\n public set mx(mx: string) {\n this._mx = this.getQualifiedValue('mx-', mx);\n }\n\n public get my(): string {\n return this._my;\n }\n\n public set my(my: string) {\n this._my = this.getQualifiedValue('my-', my);\n }\n\n public get mt(): string {\n return this._mt;\n }\n\n public set mt(mt: string) {\n this._mt = this.getQualifiedValue('mt-', mt);\n }\n\n public get mr(): string {\n return this._mr;\n }\n\n public set mr(mr: string) {\n this._mr = this.getQualifiedValue('mr-', mr);\n }\n\n public get mb(): string {\n return this._mb;\n }\n\n public set mb(mb: string) {\n this._mb = this.getQualifiedValue('mb-', mb);\n }\n\n public get ml(): string {\n return this._ml;\n }\n\n public set ml(ml: string) {\n this._ml = this.getQualifiedValue('ml-', ml);\n }\n\n public get border(): string {\n return this._border;\n }\n\n public set border(border: string) {\n this._border = this.getQualifiedValue('border', border);\n }\n\n public get shadow(): string {\n return this._shadow;\n }\n\n public set shadow(shadow: string) {\n this._shadow = this.getQualifiedValue('shadow', shadow);\n }\n\n public get rounded(): string {\n return this._rounded;\n }\n\n public set rounded(rounded: string) {\n this._rounded = this.getQualifiedValue('rounded', rounded);\n }\n\n public get font(): string {\n return this._font;\n }\n\n public set font(font: string) {\n this._font = this.getQualifiedValue('font', font);\n }\n\n public get text(): string {\n return this._text;\n }\n\n public set text(text: string) {\n this._text = this.getQualifiedValue('text', text);\n }\n\n public get breakWords(): string {\n return this._breakWords;\n }\n\n public set breakWords(breakWords: string) {\n this._breakWords = this.getQualifiedValue('break', breakWords);\n }\n\n public get overflow(): string {\n return this._overflow;\n }\n\n public set overflow(overflow: string) {\n this._overflow = this.getQualifiedValue('overflow', overflow);\n }\n\n public get position(): string {\n return this._position;\n }\n\n public set position(position: string) {\n this._position = position;\n }\n\n public get justifyContent(): string {\n return this._justifyContent;\n }\n\n public set justifyContent(justifyContent: string) {\n this._justifyContent = this.getQualifiedValue('justify', justifyContent);\n }\n\n public get cursor(): string {\n return this._cursor;\n }\n\n public set cursor(cursor: string) {\n this._cursor = this.getQualifiedValue('cursor', cursor);\n }\n\n public load(injector: Injector, style: string, defaultValue = null, inheritanceStyles = []) {\n let ngtGlobalStyle = injector.get('NgtStyleGlobal', {});\n\n defaultValue = defaultValue ? defaultValue : {};\n\n let requestedStyle = <NgtStylizableService>injector.get(style + 'Style', defaultValue);\n\n this.loadObjectProperties(this, ngtGlobalStyle, this.getAllowedKeys(ngtGlobalStyle));\n\n inheritanceStyles.forEach(style => {\n let requestedStyle = <NgtStylizableService>injector.get(style, {});\n\n this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));\n });\n\n this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));\n }\n\n public compile(styles: Array<string>) {\n return styles\n .map((style: string) => this.getQualifiedStyle(style))\n .join(' ');\n }\n\n private loadObjectProperties(targetObject, object, properties: Array<string>) {\n properties.forEach((key) => {\n if (typeof (object[key]) === 'object') {\n targetObject[key] = targetObject[key] ? targetObject[key] : {};\n targetObject[key] = this.loadObjectProperties(targetObject[key], object[key], Object.keys(object[key]));\n } else {\n targetObject[key] = object[key];\n }\n });\n\n return targetObject;\n }\n\n private getQualifiedStyle(style: string) {\n if (!style.includes('color')) {\n return this['_' + style];\n }\n\n switch (style) {\n case 'color.bg': return this._color.bg;\n case 'color.text': return this._color.text;\n case 'color.border': return this._color.border;\n }\n }\n\n private getAllowedKeys(style: NgtStylizableService) {\n let keys = Object.keys(style);\n\n if (Array.isArray(keys)) {\n return keys.filter(key => [\n 'color',\n 'h',\n 'w',\n 'p',\n 'px',\n 'py',\n 'pt',\n 'pr',\n 'pb',\n 'pl',\n 'm',\n 'mx',\n 'my',\n 'mt',\n 'mr',\n 'mb',\n 'ml',\n 'border',\n 'shadow',\n 'rounded',\n 'font',\n 'text',\n 'breakWords',\n 'overflow',\n 'position',\n 'justifyContent',\n 'cursor',\n ].includes(key));\n }\n }\n\n private getQualifiedValue(requiredPrefix: string, value: string) {\n value.split(' ').forEach((item) => {\n if (!item.includes(requiredPrefix)) {\n throw new Error('Invalid class [' + item + '], must have [' + requiredPrefix + ']');\n }\n });\n\n return value;\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Directive({\n selector: '[ngt-stylizable]'\n})\nexport class NgtStylizableDirective {\n private ngtStylizableService: NgtStylizableService;\n\n public constructor() {\n this.ngtStylizableService = new NgtStylizableService();\n }\n\n public getNgtStylizableService() {\n return this.ngtStylizableService;\n }\n\n public get color() {\n return this.ngtStylizableService.color;\n }\n\n @Input('color')\n public set color(color) {\n this.ngtStylizableService.color = color;\n }\n\n @Input('color.text')\n public set textColor(textColor: string) {\n this.ngtStylizableService.textColor = textColor;\n }\n\n @Input('color.bg')\n public set bgColor(bgColor: string) {\n this.ngtStylizableService.bgColor = bgColor;\n }\n\n @Input('color.border')\n public set borderColor(borderColor) {\n this.ngtStylizableService.borderColor = borderColor;\n }\n\n public get h(): string {\n return this.ngtStylizableService.h;\n }\n\n @Input('h')\n public set h(h: string) {\n this.ngtStylizableService.h = h;\n }\n\n public get w(): string {\n return this.ngtStylizableService.w;\n }\n\n @Input('w')\n public set w(w: string) {\n this.ngtStylizableService.w = w;\n }\n\n public get p(): string {\n return this.ngtStylizableService.p;\n }\n\n @Input('p')\n public set p(p: string) {\n this.ngtStylizableService.p = p;\n }\n\n public get px(): string {\n return this.ngtStylizableService.px;\n }\n\n @Input('px')\n public set px(px: string) {\n this.ngtStylizableService.px = px;\n }\n\n public get py(): string {\n return this.ngtStylizableService.py;\n }\n\n @Input('py')\n public set py(py: string) {\n this.ngtStylizableService.py = py;\n }\n\n public get pt(): string {\n return this.ngtStylizableService.pt;\n }\n\n @Input('pt')\n public set pt(pt: string) {\n this.ngtStylizableService.pt = pt;\n }\n\n public get pr(): string {\n return this.ngtStylizableService.pr;\n }\n\n @Input('pr')\n public set pr(pr: string) {\n this.ngtStylizableService.pr = pr;\n }\n\n public get pb(): string {\n return this.ngtStylizableService.pb;\n }\n\n @Input('pb')\n public set pb(pb: string) {\n this.ngtStylizableService.pb = pb;\n }\n\n public get pl(): string {\n return this.ngtStylizableService.pl;\n }\n\n @Input('pl')\n public set pl(pl: string) {\n this.pl = this.ngtStylizableService.pl;\n }\n\n public get m(): string {\n return this.ngtStylizableService.m;\n }\n\n @Input('m')\n public set m(m: string) {\n this.ngtStylizableService.m = m;\n }\n\n public get mx(): string {\n return this.ngtStylizableService.mx;\n }\n\n @Input('mx')\n public set mx(mx: string) {\n this.ngtStylizableService.mx = mx;\n }\n\n public get my(): string {\n return this.ngtStylizableService.my;\n }\n\n @Input('my')\n public set my(my: string) {\n this.ngtStylizableService.my = my;\n }\n\n public get mt(): string {\n return this.ngtStylizableService.mt;\n }\n\n @Input('mt')\n public set mt(mt: string) {\n this.ngtStylizableService.mt = mt;\n }\n\n public get mr(): string {\n return this.ngtStylizableService.mr;\n }\n\n @Input('mr')\n public set mr(mr: string) {\n this.ngtStylizableService.mr = mr;\n }\n\n public get mb(): string {\n return this.ngtStylizableService.mb;\n }\n\n @Input('mb')\n public set mb(mb: string) {\n this.ngtStylizableService.mb = mb;\n }\n\n public get ml(): string {\n return this.ngtStylizableService.ml;\n }\n\n @Input('ml')\n public set ml(ml: string) {\n this.ngtStylizableService.ml = ml;\n }\n\n public get border(): string {\n return this.ngtStylizableService.border;\n }\n\n @Input('border')\n public set border(border: string) {\n this.ngtStylizableService.border = border;\n }\n\n public get shadow(): string {\n return this.ngtStylizableService.shadow;\n }\n\n @Input('shadow')\n public set shadow(shadow: string) {\n this.ngtStylizableService.shadow = shadow;\n }\n\n public get rounded(): string {\n return this.ngtStylizableService.rounded;\n }\n\n @Input('rounded')\n public set rounded(rounded: string) {\n this.ngtStylizableService.rounded = rounded;\n }\n\n public get font(): string {\n return this.ngtStylizableService.font;\n }\n\n @Input('font')\n public set font(font: string) {\n this.ngtStylizableService.font = font;\n }\n\n public get text(): string {\n return this.ngtStylizableService.text;\n }\n\n @Input('text')\n public set text(text: string) {\n this.ngtStylizableService.text = text;\n }\n\n public get breakWords(): string {\n return this.ngtStylizableService.breakWords;\n }\n\n @Input('breakWords')\n public set breakWords(breakWords: string) {\n this.ngtStylizableService.breakWords = breakWords;\n }\n\n public get overflow(): string {\n return this.ngtStylizableService.overflow;\n }\n\n @Input('overflow')\n public set overflow(overflow: string) {\n this.ngtStylizableService.overflow = overflow;\n }\n\n public get position(): string {\n return this.ngtStylizableService.position;\n }\n\n @Input('position')\n public set position(position: string) {\n this.ngtStylizableService.position = position;\n }\n\n public get justifyContent(): string {\n return this.ngtStylizableService.justifyContent;\n }\n\n @Input('justifyContent')\n public set justifyContent(justifyContent: string) {\n this.ngtStylizableService.justifyContent = justifyContent;\n }\n\n public get cursor(): string {\n return this.ngtStylizableService.cursor;\n }\n\n @Input('cursor')\n public set cursor(cursor: string) {\n this.ngtStylizableService.cursor = cursor;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtStylizableDirective } from './ngt-stylizable.directive';\n\n@NgModule({\n declarations: [NgtStylizableDirective],\n exports: [NgtStylizableDirective],\n imports: [\n CommonModule\n ]\n})\nexport class NgtStylizableModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-shining',\n templateUrl: './ngt-shining.component.html',\n styleUrls: ['./ngt-shining.component.css']\n})\nexport class NgtShiningComponent {\n @Input() public shiningWidth: NgtShiningWidth = NgtShiningWidth.xs;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtShining', {\n rounded: 'rounded-none',\n });\n }\n}\n\nexport enum NgtShiningWidth {\n xs = 'xs',\n sm = 'sm',\n lg = 'lg',\n xl = 'xl',\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtShiningComponent } from './ngt-shining.component';\n\n@NgModule({\n declarations: [NgtShiningComponent],\n exports: [NgtShiningComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtShiningModule { }\n","import { EventEmitter, forwardRef } from '@angular/core';\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Based on https://stackoverflow.com/a/37786142/8055997\n */\nexport abstract class NgtBaseNgModel implements ControlValueAccessor {\n public formControl: AbstractControl;\n public formContainer: ControlContainer;\n\n public onValueChangeEvent = new EventEmitter;\n\n private ignore = '{{{{INITIAL_VALUE_IGNORE}}}}';\n private _value: any = this.ignore;\n\n public constructor() {\n this.registerOnTouched(this.onTouched);\n }\n\n public onValueChange() {\n return this.onValueChangeEvent;\n }\n\n public get value(): any {\n return this._value != this.ignore ? this._value : null;\n };\n\n public set value(v: any) {\n if (!this.valuesAreEquals(v, this._value)) {\n this._value = v;\n this.onChange(v);\n\n if (this.formControl) {\n this.formControl.markAsDirty();\n }\n\n this.change(v);\n }\n }\n\n public writeValue(value: any) {\n if (value == this.ignore || this.valuesAreEquals(value, this._value)) {\n return;\n }\n\n this._value = value;\n this.onChange(value);\n this.change(value);\n }\n\n public onChange = (_) => { };\n\n public change(v) { };\n\n public onTouched = () => {\n if (this.formControl) {\n this.formControl.markAsTouched();\n }\n };\n\n public registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public isValid(): boolean {\n if (this.formControl) {\n this.formControl.markAsDirty();\n\n return this.formControl.valid;\n }\n }\n\n public markAsPristine() {\n if (this.formControl) {\n this.formControl.markAsPristine();\n }\n }\n\n public markAsDirty() {\n if (this.formControl) {\n this.formControl.markAsDirty();\n }\n }\n\n public setSubmitted(submitted: boolean) {\n if (this.formContainer) {\n this.formContainer['submitted'] = submitted;\n }\n }\n\n private valuesAreEquals(value1, value2) {\n if (Array.isArray(value1)) {\n value1 = JSON.stringify(value1);\n }\n\n if (Array.isArray(value2)) {\n value2 = JSON.stringify(value2);\n }\n\n return value1 === value2;\n }\n}\n\nexport function NgtMakeProvider(type: any) {\n return {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => type),\n multi: true\n };\n}\n","export function getEnumFromString(string: string, enumClass: any) {\n if (string && enumClass && enumClass[string.toUpperCase()]) {\n return enumClass[string.toUpperCase()];\n }\n\n throw new Error('Invalid enum [' + string + ']!');\n}\n","import { NgForm } from '@angular/forms';\n\nexport function resetNgForm(ngForm: NgForm) {\n ngForm.resetForm();\n setTimeout(() => {\n ngForm.reset();\n }, 500);\n}\n\nexport function triggerNgFormSubmit(ngForm: NgForm) {\n ngForm.onSubmit(new Event(\"submit\"));\n}\n\nexport function isValidNgForm(ngForm: NgForm) {\n triggerNgFormSubmit(ngForm);\n\n return ngForm.valid;\n}\n","import { ActivatedRoute } from '@angular/router';\nimport { Observable, zip } from 'rxjs';\n\nexport function getIdFromUri(route: ActivatedRoute, routeIdentifier: string) {\n return Observable.create((observer) => {\n zip(route.parent.params, route.params)\n .subscribe((results) => {\n let params = { ...results[0], ...results[1] };\n\n observer.next(params[routeIdentifier]);\n });\n });\n}\n","import { Observable } from 'rxjs';\n\nexport abstract class NgtHttpFormService {\n abstract loadResourceById(resource: any, resourceId: any): Observable<any>;\n\n abstract saveResource(resource: any): Observable<any>;\n}\n","import {Component, EventEmitter, Host, Input, OnDestroy, OnInit, Optional, Output} from '@angular/core';\nimport {ControlContainer, NgForm} from '@angular/forms';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Observable, Subscription} from 'rxjs';\n\nimport {isValidNgForm} from '../../helpers/form/form';\nimport {getIdFromUri} from '../../helpers/routing/route';\nimport {NgtHttpFormService} from '../../services/http/ngt-http-form.service';\n\n@Component({\n selector: 'ngt-form',\n templateUrl: './ngt-form.component.html',\n})\nexport class NgtFormComponent implements OnInit, OnDestroy {\n @Input() public guessFormState: boolean = true;\n @Input() public message: string = '';\n @Input() public routeIdentifier: string = 'id';\n @Input() public resource: any;\n @Input() public customLayout: boolean;\n\n @Output() public static onSubmitInvalidForm: EventEmitter<NgForm> = new EventEmitter;\n\n @Output() public onCreating: EventEmitter<any> = new EventEmitter;\n @Output() public onEditing: EventEmitter<any> = new EventEmitter;\n @Output() public onLoadingChange: EventEmitter<boolean> = new EventEmitter;\n @Output() public onShiningChange: EventEmitter<boolean> = new EventEmitter;\n @Output() public setupComponent: EventEmitter<any> = new EventEmitter;\n @Output() public onResourceLoadingError: EventEmitter<string> = new EventEmitter;\n\n public formState: NgtFormState;\n public uriId: any;\n\n private loading: boolean;\n private shining: boolean;\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @Host()\n public ngForm: NgForm,\n public router: Router,\n public route: ActivatedRoute,\n private ngtHttpFormService: NgtHttpFormService\n ) {\n }\n\n public ngOnInit() {\n if (this.guessFormState) {\n this.subscriptions.push(\n this.determineFormState().subscribe(() => {\n this.setupComponent.emit();\n })\n );\n } else {\n this.setupComponent.emit();\n }\n\n this.subscriptions.push(\n this.ngForm.ngSubmit.subscribe(() => {\n if (!this.ngForm.valid) {\n NgtFormComponent.onSubmitInvalidForm.emit(this.ngForm);\n }\n })\n );\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public isCreating() {\n return this.formState === NgtFormState.CREATING;\n }\n\n public isEditing() {\n return this.formState === NgtFormState.EDITING;\n }\n\n public isLoading() {\n return this.loading;\n }\n\n public isShining() {\n return this.shining;\n }\n\n public canShowValidationMessage() {\n return this.formContainer &&\n this.formContainer['submitted'] &&\n this.formContainer.status != 'VALID' &&\n this.formContainer.status != 'DISABLED';\n }\n\n public setShining(shining: boolean) {\n this.shining = shining;\n this.onShiningChange.emit(this.shining);\n }\n\n public setLoading(loading: boolean) {\n this.loading = loading;\n this.onLoadingChange.emit(this.loading);\n }\n\n public setFormState(state: NgtFormState, triggerChange: boolean = true) {\n this.formState = state;\n\n if (triggerChange) {\n this.triggerFormStateChange();\n }\n }\n\n public getFormState() {\n return this.formState;\n }\n\n public triggerFormStateChange() {\n if (this.isEditing()) {\n this.triggerFormEditing();\n } else if (this.isCreating()) {\n this.triggerFormCreating();\n }\n }\n\n public formHasChanges() {\n return this.ngForm.dirty;\n }\n\n public saveResource() {\n return new Observable((observer) => {\n if (isValidNgForm(this.ngForm)) {\n this.setLoading(true);\n\n this.subscriptions.push(\n this.ngtHttpFormService.saveResource(this.resource)\n .subscribe((response: any) => {\n this.setLoading(false);\n observer.next(response);\n observer.complete();\n })\n );\n } else {\n observer.error();\n }\n });\n }\n\n protected triggerFormCreating() {\n this.onCreating.emit();\n }\n\n protected triggerFormEditing() {\n if (this.uriId && this.resource) {\n this.setLoading(true);\n this.setShining(true);\n\n this.subscriptions.push(\n this.ngtHttpFormService.loadResourceById(this.resource, this.uriId)\n .subscribe(\n (resource: any) => {\n this.setLoading(false);\n this.setShining(false);\n\n this.onEditing.emit(resource);\n\n setTimeout(() => this.ngForm.form.markAsPristine(), 1500);\n },\n (error) => {\n this.setLoading(false);\n this.setShining(false);\n\n this.onResourceLoadingError.emit(error);\n }\n )\n );\n\n return;\n }\n\n this.onEditing.emit(null);\n }\n\n private determineFormState() {\n return new Observable((observer) => {\n this.subscriptions.push(\n getIdFromUri(this.route, this.routeIdentifier).subscribe((id: string) => {\n this.uriId = id;\n\n if (this.uriId) {\n this.setFormState(NgtFormState.EDITING);\n } else {\n this.setFormState(NgtFormState.CREATING);\n }\n\n observer.next();\n })\n );\n });\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtFormState {\n CREATING = 'CREATING',\n EDITING = 'EDITING'\n};\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n Injector,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n Self,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-checkbox',\n templateUrl: './ngt-checkbox.component.html',\n styleUrls: ['./ngt-checkbox.component.css'],\n providers: [\n NgtMakeProvider(NgtCheckboxComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ],\n animations: [\n trigger('slideLeftToRight', [\n state('void', style({ transform: 'translateX(-4px) rotate(45deg)', opacity: 0 })),\n transition(':enter', [\n animate(200)\n ])\n ]),\n\n trigger('slideRightToLeft', [\n state('void', style({ transform: 'translateX(4px) rotate(45deg)', opacity: 0 })),\n transition(':enter', [\n animate(200)\n ])\n ]),\n ]\n})\nexport class NgtCheckboxComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\n @ViewChild('element', { static: true }) public element: ElementRef;\n\n @Input() public label: string;\n @Input() public shining: boolean = false;\n @Input() public isDisabled: boolean = false;\n @Input() public isClickDisabled: boolean = false;\n @Input() public name: string;\n @Input() public mode: NgtCheckboxMode = NgtCheckboxMode.DEFAULT;\n @Input() public helpTitle: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Optional() @Host()\n public formContainer: ControlContainer,\n private renderer: Renderer2,\n @Self() @Optional()\n private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtCheckbox', {\n h: 'h-6',\n w: 'w-6',\n color: {\n bg: 'bg-gray-500',\n text: 'text-gray-500',\n border: 'border-gray-500',\n }\n });\n }\n\n public ngAfterViewInit() {\n this.renderer.listen(this.element.nativeElement, 'change', (value) => {\n this.onNativeChange(this.element.nativeElement.checked);\n });\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value) {\n if (this.hasChangesBetweenModels()) {\n this.element.nativeElement.checked = value;\n }\n }\n\n public onNativeChange(value) {\n if (this.hasChangesBetweenModels()) {\n this.value = value;\n }\n }\n\n public hasChangesBetweenModels() {\n return this.element.nativeElement.checked !== this.value;\n }\n\n public isToggleMode() {\n return this.mode === NgtCheckboxMode.TOGGLE;\n }\n\n public isDefaultMode() {\n return this.mode === NgtCheckboxMode.DEFAULT;\n }\n\n public isRadioMode() {\n return this.mode === NgtCheckboxMode.RADIO;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.mode) {\n this.mode = getEnumFromString(changes.mode.currentValue, NgtCheckboxMode);\n }\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtCheckboxMode {\n DEFAULT = 'DEFAULT',\n TOGGLE = 'TOGGLE',\n RADIO = 'RADIO',\n}\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SvgIconComponent } from 'angular-svg-icon';\n\n@Component({\n selector: 'ngt-svg',\n templateUrl: './ngt-svg.component.html',\n styleUrls: ['./ngt-svg.component.css'],\n host: {\n class: 'flex justify-center'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtSvgComponent implements AfterViewChecked, OnChanges {\n @Input() public src: string;\n @Input() public class: string = '';\n\n @ViewChild(SvgIconComponent, { static: true, read: ElementRef }) private svgIconElement: ElementRef;\n\n private appliedClass = null;\n\n public ngAfterViewChecked() {\n this.checkClassChange();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n this.appliedClass = null;\n this.checkClassChange();\n }\n\n private checkClassChange() {\n if (this.appliedClass !== this.class) {\n if (this.svgIconElement && this.svgIconElement.nativeElement) {\n let svgElement = <SVGAElement>this.svgIconElement.nativeElement.querySelector('svg');\n\n if (svgElement) {\n while (svgElement.classList.length > 0) {\n svgElement.classList.remove(svgElement.classList.item(0));\n }\n\n svgElement.classList.add('fill-current');\n svgElement.classList.add('self-center');\n\n new String(this.class).trim().split(' ').forEach(className => {\n if (className) {\n svgElement.classList.add(className);\n }\n });\n\n this.appliedClass = this.class;\n }\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtSvgComponent } from './ngt-svg.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\n@NgModule({\n declarations: [NgtSvgComponent],\n exports: [NgtSvgComponent],\n imports: [\n CommonModule,\n HttpClientModule,\n AngularSvgIconModule\n ]\n})\nexport class NgtSvgModule { }\n","import { Component, ElementRef, Input, Optional, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\n\n@Component({\n selector: 'ngt-helper',\n templateUrl: './ngt-helper.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtHelperComponent {\n @ViewChild('dropdownRef', { static: true }) public dropdownRef: ElementRef;\n\n @Input() public icon: string;\n @Input() public helpTitle: string;\n @Input() public iconColor: string;\n\n public constructor(\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) { }\n}\n","export function uuid() {\n return [\n Math.random().toString(36).substr(2, 9),\n Math.random().toString(36).substr(2, 9),\n Math.random().toString(36).substr(2, 9),\n Math.random().toString(36).substr(2, 9)\n ].join('_');\n};\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: '[ngt-dropdown-container]',\n templateUrl: './ngt-dropdown-container.component.html',\n styleUrls: ['./ngt-dropdown-container.component.css']\n})\nexport class NgtDropdownContainerComponent {\n @Output() public onActiveDropdownChange = new EventEmitter();\n\n public setActiveDropdown(activeDropdown) {\n this.onActiveDropdownChange.emit(activeDropdown);\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';\n\n@Component({\n selector: 'ngt-dropdown',\n templateUrl: './ngt-dropdown.component.html',\n styleUrls: ['./ngt-dropdown.component.css'],\n animations: [\n trigger('openClose', [\n state('open', style({ opacity: 1, transform: 'translateY(0px)' })),\n state('closed', style({ opacity: 0, transform: 'translateY(-10px)' })),\n transition('closed => open', [\n animate(300)\n ]),\n ]),\n ]\n})\nexport class NgtDropdownComponent implements OnDestroy {\n @ViewChild('container', { static: true }) public containerRef: ElementRef;\n\n @Input() public autoXReverse: boolean;\n @Input() public autoYReverse: boolean = true;\n @Input() public reverseXPosition: boolean;\n @Input() public reverseYPosition: boolean;\n @Input() public closeOnClick: boolean;\n @Input() public openMethod: NgtDropdownOpenMethod = NgtDropdownOpenMethod.HOVER;\n\n @Output() public onToggle: EventEmitter<boolean> = new EventEmitter();\n\n public name: string = uuid();\n public isOpen: boolean;\n public isYPositionReversed: boolean = false;\n public isXPositionReversed: boolean = false;\n\n private subscriptions: Array<Subscription> = [];\n private containerXPosition: number;\n private containerYPosition: number;\n\n public constructor(\n @Optional() @SkipSelf()\n private ngtDropdownContainer: NgtDropdownContainerComponent\n ) {\n if (this.ngtDropdownContainer) {\n this.subscriptions.push(\n this.ngtDropdownContainer.onActiveDropdownChange.subscribe((activeDropdown: NgtDropdownComponent) => {\n this.isOpen = (activeDropdown.name === this.name);\n })\n );\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.openMethod) {\n this.openMethod = getEnumFromString(changes.openMethod.currentValue, NgtDropdownOpenMethod);\n }\n }\n\n public ngOnDestroy(): void {\n this.destroySubscriptions();\n }\n\n public open(): void {\n this.isOpen = true;\n this.ngtDropdownContainer?.setActiveDropdown(this);\n }\n\n public closeOnSelectOption(): void {\n if (this.closeOnClick) {\n this.close();\n }\n }\n\n public close(): void {\n this.isOpen = false;\n\n this.containerXPosition = null;\n this.containerYPosition = null;\n }\n\n public toggle(): void {\n setTimeout(() => {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n\n this.onToggle.emit(this.isOpen);\n });\n }\n\n public onHover(host: any, container: any): void {\n if (this.openMethod == NgtDropdownOpenMethod.HOVER && host && container) {\n this.open();\n this.watchHover(host, container);\n }\n }\n\n public onClick(event: Event): void {\n if (this.openMethod == NgtDropdownOpenMethod.CLICK) {\n event.preventDefault();\n event.stopPropagation();\n this.toggle();\n }\n }\n\n public onRightClick(event: Event): void {\n if (this.openMethod == NgtDropdownOpenMethod.RIGHT_CLICK) {\n event.preventDefault();\n event.stopPropagation();\n this.toggle();\n }\n }\n\n public shouldReverseXPosition(): boolean {\n if (!this.autoXReverse || this.reverseXPosition !== undefined) {\n return this.reverseXPosition;\n }\n\n if (this.isOpen) {\n this.bindContainerXPosition();\n this.isXPositionReversed = !(this.containerXPosition > document.documentElement.clientWidth);\n\n return this.isXPositionReversed;\n }\n }\n\n public shouldReverseYPosition(): boolean {\n if (!this.autoYReverse || this.reverseYPosition !== undefined) {\n return this.reverseYPosition;\n }\n\n if (this.isOpen) {\n this.bindContainerYPosition();\n this.isYPositionReversed = this.containerYPosition > (document.documentElement.clientHeight * 0.9);\n\n return this.isYPositionReversed;\n }\n }\n\n private bindContainerXPosition(): void {\n if (!this.containerXPosition && this.containerRef.nativeElement.offsetWidth) {\n setTimeout(() => {\n this.containerXPosition = this.containerRef.nativeElement.getBoundingClientRect().x\n + this.containerRef.nativeElement.offsetWidth;\n });\n }\n }\n\n private bindContainerYPosition(): void {\n if (!this.containerYPosition && this.containerRef?.nativeElement.offsetHeight) {\n setTimeout(() => {\n this.containerYPosition = this.containerRef.nativeElement.getBoundingClientRect().y\n + this.containerRef.nativeElement.offsetHeight;\n });\n }\n }\n\n private watchHover(host: any, container: any): void {\n const interval = setInterval(() => {\n if (!host || !container || !this.isInHover(host, container)) {\n this.close();\n clearInterval(interval);\n }\n }, 1000);\n }\n\n private isInHover(host: any, container: any): boolean {\n return host.parentElement.querySelector(':hover') == host ||\n container.parentElement.querySelector(':hover') == container;\n }\n\n private destroySubscriptions(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtDropdownOpenMethod {\n CLICK = 'CLICK',\n RIGHT_CLICK = 'RIGHT_CLICK',\n HOVER = 'HOVER'\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtDropdownComponent } from './ngt-dropdown.component';\nimport { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';\n\n@NgModule({\n declarations: [NgtDropdownComponent, NgtDropdownContainerComponent],\n exports: [NgtDropdownComponent, NgtDropdownContainerComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtDropdownModule { }\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NgtSvgModule } from \"../ngt-svg/ngt-svg.module\";\nimport { NgtHelperComponent } from \"./ngt-helper.component\";\nimport { NgtDropdownModule } from '../ngt-dropdown/ngt-dropdown.module';\n\n@NgModule({\n declarations: [NgtHelperComponent],\n exports: [NgtHelperComponent],\n imports: [\n CommonModule,\n NgtSvgModule,\n NgtDropdownModule\n ]\n})\nexport class NgtHelperModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtCheckboxComponent } from './ngt-checkbox.component';\nimport {NgtHelperModule} from \"../ngt-helper/ngt-helper.module\";\n\n@NgModule({\n declarations: [NgtCheckboxComponent],\n exports: [NgtCheckboxComponent],\n imports: [\n CommonModule,\n NgtShiningModule,\n NgtHelperModule,\n ]\n})\nexport class NgtCheckboxModule { }\n","import { Component, Optional, SkipSelf } from '@angular/core';\nimport { NgtTranslateService } from '../../../services/http/ngt-translate.service';\nimport { NgtFormComponent } from '../ngt-form.component';\n\n@Component({\n selector: 'ngt-form-validation-message',\n templateUrl: './ngt-form-validation-message.component.html',\n})\nexport class NgtFormValidationMessageComponent {\n public constructor(\n @Optional() @SkipSelf()\n public ngtForm: NgtFormComponent,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n if (!ngtForm) {\n console.error('The ngt-form-validation-message must be inside a ngt-form!');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtFormValidationMessageComponent } from './ngt-form-validation-message.component';\n\n@NgModule({\n declarations: [NgtFormValidationMessageComponent],\n exports: [NgtFormValidationMessageComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtFormValidationMessageModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtFormValidationMessageModule } from './ngt-form-validation-message/ngt-form-validation-message.module';\nimport { NgtFormComponent } from './ngt-form.component';\n\n@NgModule({\n declarations: [NgtFormComponent],\n exports: [NgtFormComponent],\n imports: [\n CommonModule,\n NgtFormValidationMessageModule\n ]\n})\nexport class NgtFormModule { }\n","import { Component, Input, Optional } from '@angular/core';\nimport { ControlContainer, FormControl } from '@angular/forms';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\n\n@Component({\n selector: 'ngt-validation',\n templateUrl: './ngt-validation.component.html',\n styleUrls: ['./ngt-validation.component.css']\n})\nexport class NgtValidationComponent {\n @Input() public control: FormControl;\n @Input() public container: ControlContainer;\n @Input() public minValue: number;\n @Input() public minLength: number;\n\n public constructor(\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) { }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtValidationComponent } from './ngt-validation.component';\n\n@NgModule({\n declarations: [NgtValidationComponent],\n exports: [NgtValidationComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtValidationModule { }\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef, EventEmitter,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional, Output,\n Renderer2,\n Self,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { AbstractControl, AsyncValidatorFn, ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport {\n NgtHttpFindExistingResourceInterface,\n NgtHttpFindExistingResourceResponse,\n NgtHttpResourceService,\n} from '../../services/http/ngt-http-resource.service';\nimport { NgtHttpValidationResponse, NgtHttpValidationService } from '../../services/http/ngt-http-validation.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\nlet Inputmask = require('inputmask');\n\n@Component({\n selector: 'ngt-input',\n templateUrl: './ngt-input.component.html',\n styleUrls: ['./ngt-input.component.css'],\n providers: [\n NgtMakeProvider(NgtInputComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtInputComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\n @ViewChild(\"element\", { static: true }) public element: ElementRef;\n\n // Visual\n @Input() public label: string;\n @Input() public placeholder: string = '';\n @Input() public shining: boolean;\n @Input() public loading: boolean;\n @Input() public helpTitle: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n @Input() public innerLeftIcon: string;\n @Input() public innerLeftIconColor: string;\n @Input() public innerRightIcon: string;\n @Input() public innerRightIconColor: string;\n @Input() public decimalMaskPrecision: number = 2;\n\n //Behavior\n @Input() public isDisabled: boolean;\n @Input() public isReadonly: boolean;\n @Input() public type: string = 'text';\n @Input() public name: string;\n @Input() public mask: string;\n @Input() public focus: boolean;\n @Input() public allowClear: boolean;\n @Input() public jit: boolean;\n\n //Validations\n @Input() public findExistingResource: NgtHttpFindExistingResourceInterface;\n @Input() public isRequired: boolean;\n @Input() public uniqueResource: any;\n @Input() public minValue: number;\n @Input() public maxValue: number;\n @Input() public maxLength: number;\n @Input() public minLength: number;\n @Input() public match: string;\n @Input() public multipleOf: number;\n @Input() public externalServerDependency: boolean;\n\n @Output() public onClickLeftIcon: EventEmitter<any> = new EventEmitter<any>();\n @Output() public onClickRightIcon: EventEmitter<any> = new EventEmitter<any>();\n\n public existingResourceId: string;\n public componentReady: boolean;\n public inputProperties: {\n htmlType?: string;\n length?: number;\n } = {};\n\n public ngtStyle: NgtStylizableService;\n\n private emailValidatorTimeout: any;\n private uniqueValidatorTimeout: any;\n private searchExistingResourceTimeout: any;\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n private renderer: Renderer2,\n @Optional() @SkipSelf()\n private ngtValidationService: NgtHttpValidationService,\n @Optional() @SkipSelf()\n private ngtResourceService: NgtHttpResourceService,\n private changeDetector: ChangeDetectorRef\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtInput', {\n h: 'h-12',\n rounded: 'rounded',\n color: {\n border: 'border-gray-400 focus:border-gray-700',\n bg: 'bg-bg-white focus:bg-white',\n text: 'text-gray-800'\n }\n });\n }\n\n public setFocus() {\n setTimeout(() => {\n this.element.nativeElement.focus();\n }, 200);\n }\n\n public clearInput(event?: Event) {\n if (event) {\n event.stopPropagation();\n }\n\n this.element.nativeElement.value = '';\n this.value = '';\n\n this.markAsPristine();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n this.setupMasks(changes.mask ? changes.mask.previousValue : null);\n\n if (changes.match || changes.isRequired || changes.type || changes.mask || changes.minValue) {\n this.updateValidations();\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value: any) {\n if (value && typeof value === 'string' && this.mask == 'decimal') {\n value = parseFloat(value);\n }\n\n if (!this.getNativeValue()) {\n this.element.nativeElement.value = value;\n }\n\n if (!value && value !== 0) {\n this.clearInput();\n }\n\n let nativeValue = this.getNativeValue();\n\n if (this.mask) {\n let ngModelValue = this.removeMasks(nativeValue);\n\n if (nativeValue && ngModelValue != this.value) {\n this.value = ngModelValue;\n }\n } else {\n let ngModelValue = this.removeMasks(value);\n\n if (value && ngModelValue != value) {\n this.value = ngModelValue;\n }\n\n if (this.value != nativeValue) {\n this.element.nativeElement.value = ngModelValue;\n }\n }\n\n if (this.componentReady) {\n this.onValueChangeEvent.emit(this.value);\n }\n\n if (this.ngtResourceService && this.findExistingResource && this.value) {\n this.searchExistingResource();\n }\n }\n\n public ngOnInit() {\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\", this.element.nativeElement);\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\", this.element.nativeElement);\n } else {\n setTimeout(() => {\n this.componentReady = true;\n setTimeout(() => {\n this.initComponent();\n\n if (!this.getElementTitle() || this.getElementTitle() === 'null') {\n this.element.nativeElement.parentElement.parentElement.title = '';\n }\n });\n }, 500);\n }\n }\n\n public getInputPaddings() {\n let paddingClass: string = '';\n\n if (this.innerLeftIcon) {\n paddingClass += 'pl-8 pr-4 ';\n } else {\n paddingClass += 'px-4 ';\n }\n\n if (this.innerRightIcon || this.allowClear || this.type == 'password') {\n if (this.allowClear && this.value && (this.innerRightIcon || this.type == 'password')) {\n paddingClass += 'pr-16 ';\n } else {\n paddingClass += 'pr-8 ';\n }\n }\n\n return paddingClass;\n }\n\n public showPassword() {\n this.element.nativeElement.type = 'text';\n this.changeDetector.detectChanges();\n }\n\n public hidePassword() {\n this.element.nativeElement.type = 'password';\n this.changeDetector.detectChanges();\n }\n\n private initComponent() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n if (this.focus) {\n this.setFocus();\n }\n\n let watch = \"change\";\n\n if (this.jit) {\n watch += \" keyup keydown keypress\";\n }\n\n watch.split(' ').forEach((evt) => {\n this.renderer.listen(this.element.nativeElement, evt, () => {\n let nativeValue = this.removeMasks(this.getNativeValue());\n\n if (this.value != nativeValue) {\n this.value = nativeValue;\n }\n });\n });\n\n this.renderer.listen(this.element.nativeElement, \"keydown\", (event) => {\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length >= this.maxLength) {\n // Backspace and delete\n if (event.keyCode != 8 && event.keyCode != 46) {\n event.preventDefault();\n\n return false;\n }\n }\n });\n\n this.updateValidations();\n\n if (this.match) {\n this.renderer.listen(this.element.nativeElement, \"keypress\", () => {\n this.matchValidator();\n });\n }\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n }\n\n this.setupProperties();\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n const syncValidators = [];\n\n if (this.type == 'email') {\n syncValidators.push(Validators.email);\n }\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n if (this.maxLength) {\n syncValidators.push(Validators.maxLength(this.maxLength));\n }\n\n if (this.minLength) {\n syncValidators.push(Validators.minLength(this.minLength));\n }\n\n if (this.mask == 'cnpj-cpf') {\n syncValidators.push(this.cnpjCpfValidator());\n }\n\n if (this.mask == 'time') {\n syncValidators.push(this.timeValidator());\n }\n\n if (this.match) {\n syncValidators.push(this.matchValidator());\n }\n\n if (this.minValue !== undefined) {\n syncValidators.push(this.minValueValidator());\n }\n\n if (this.multipleOf) {\n syncValidators.push(this.multipleOfValidator());\n }\n\n if (this.externalServerDependency) {\n syncValidators.push(this.externalServerDependencyValidator());\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n\n const asyncValidators = [];\n\n if (this.uniqueResource) {\n asyncValidators.push(this.uniqueValidator());\n }\n\n if (this.type == 'email' && this.hasEmailServiceValidation()) {\n asyncValidators.push(this.emailValidator());\n }\n\n this.formControl.setAsyncValidators(asyncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private setupMasks(previousMask?: string) {\n if (this.mask != previousMask && !this.mask) {\n Inputmask.remove(this.element.nativeElement);\n\n return this.clearInput();\n }\n\n let masks = {\n 'cpf': '999.999.999-99',\n 'cnpj': '99.999.999/9999-99',\n 'decimal': {\n digits: this.decimalMaskPrecision,\n groupSeparator: '.',\n radixPoint: ',',\n autoGroup: true,\n repeat: 16,\n rightAlign: false,\n max: this.maxValue,\n },\n 'cnpj-cpf': {\n mask: ['999.999.999-99', '99.999.999/9999-99'],\n keepStatic: true\n },\n 'cellphone': {\n mask: ['(99) 9999-9999', '(99) 99999-9999'],\n keepStatic: true\n },\n 'plate': {\n mask: ['AAA-9999', 'AAA9A99'],\n keepStatic: true\n },\n 'cep': '99999-999',\n 'integer': {\n max: this.maxValue,\n rightAlign: false\n },\n 'time': '99:99',\n };\n\n if (this.mask == \"decimal\") {\n Inputmask('decimal', masks[this.mask]).mask(this.element.nativeElement);\n } else if (this.mask == \"integer\") {\n Inputmask(\"integer\", masks[this.mask]).mask(this.element.nativeElement);\n } else {\n Inputmask(masks[this.mask]).mask(this.element.nativeElement);\n }\n }\n\n private setupProperties() {\n let props = {\n shortText: {\n htmlType: \"text\",\n length: 20\n },\n text: {\n htmlType: \"text\",\n length: 100\n },\n longText: {\n htmlType: \"text\",\n length: 150\n },\n extraLongText: {\n htmlType: \"text\",\n length: 300\n },\n password: {\n htmlType: \"password\",\n length: 150\n },\n email: {\n htmlType: \"text\",\n length: 100,\n },\n decimal: {\n htmlType: \"text\",\n length: 9,\n }\n };\n\n if (this.type in props) {\n this.inputProperties = props[this.type];\n this.maxLength = this.inputProperties.length;\n } else {\n console.warn(\"Type [\" + this.type + \"] is not a valid tail-form-input type!\", this.element.nativeElement);\n }\n }\n\n private minValueValidator() {\n return (control: AbstractControl) => parseFloat(control.value) < this.minValue ? { 'minValue': true } : null;\n }\n\n private multipleOfValidator() {\n return (control: AbstractControl) => {\n if (control.value) {\n return (control.value % this.multipleOf !== 0) ? { 'multipleOf': true } : null;\n }\n };\n }\n\n private externalServerDependencyValidator() {\n // TODO: Validar tempo de requisição\n return (control: AbstractControl) => !control.value ? { 'externalServerDependency': true } : null;\n }\n\n private timeValidator() {\n const regexExp = new RegExp('^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$');\n\n return (control: AbstractControl) => {\n if (control.value) {\n if (regexExp.test(control.value)) {\n return null;\n } else {\n return { 'time': true };\n }\n }\n };\n }\n\n private cnpjCpfValidator() {\n return (control: AbstractControl) => {\n if (!control.value) {\n return null;\n }\n\n if (control.value && control.value.length <= 11) {\n if (this.validatorCPF(control.value)) {\n return null;\n } else {\n return { 'cpf': true };\n }\n } else {\n if (control.value && this.validatorCNPJ(control.value)) {\n return null;\n } else {\n return { 'cnpj': true };\n }\n }\n };\n }\n\n private matchValidator() {\n return (control: AbstractControl) => {\n if (this.value != this.match) {\n return { 'match': true };\n } else {\n return null;\n }\n };\n }\n\n private emailValidator(): AsyncValidatorFn {\n if (!this.ngtValidationService) {\n throw new Error(\"In order to use email validation you must provide a implementation for NgtHttpValidationService class!\");\n }\n\n return (control: AbstractControl) => {\n if (this.emailValidatorTimeout) {\n clearTimeout(this.emailValidatorTimeout);\n }\n\n if (this.value) {\n return new Promise((resolve) => {\n this.emailValidatorTimeout = setTimeout(() => {\n this.loading = true;\n\n this.ngtValidationService.emailValidation(this.value).then((response: NgtHttpValidationResponse) => {\n this.loading = false;\n resolve(response.valid ? null : { 'email': true });\n }).catch(() => {\n this.loading = false;\n resolve(null);\n });\n }, 500);\n });\n }\n\n return Promise.resolve(null);\n };\n }\n\n private async searchExistingResource(): Promise<void> {\n if (this.searchExistingResourceTimeout) {\n clearTimeout(this.searchExistingResourceTimeout);\n }\n\n this.searchExistingResourceTimeout = setTimeout(() => {\n this.loading = true;\n this.findExistingResource.value = this.value;\n\n this.ngtResourceService.findExisting(this.findExistingResource)\n .then((response: NgtHttpFindExistingResourceResponse) => this.existingResourceId = response.id)\n .catch(() => this.existingResourceId = null)\n .finally(() => this.loading = false);\n }, 500);\n }\n\n private uniqueValidator(): AsyncValidatorFn {\n if (!this.ngtValidationService) {\n throw new Error(\"In order to use unique validation you must provide a implementation for NgtHttpValidationService class!\");\n }\n\n return (control: AbstractControl) => {\n if (this.uniqueValidatorTimeout) {\n clearTimeout(this.uniqueValidatorTimeout);\n }\n\n if (this.value && this.uniqueResource) {\n return new Promise((resolve) => {\n this.uniqueValidatorTimeout = setTimeout(() => {\n this.loading = true;\n\n this.ngtValidationService.unique(this.uniqueResource, this.value).then((response: NgtHttpValidationResponse) => {\n this.loading = false;\n\n resolve(response.valid ? null : { 'unique': true });\n }).catch(() => {\n this.loading = false;\n resolve(null);\n });\n }, 500);\n });\n }\n\n return Promise.resolve(null);\n };\n }\n\n private validatorCNPJ(value) {\n let b = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\n\n if ((value = value.replace(/[^\\d]/g, \"\")).length != 14) {\n return false;\n }\n\n if (/0{14}/.test(value)) {\n return false;\n }\n\n let n = 0;\n\n for (let i = 0; i < 12; n += value[i] * b[++i]) {\n ;\n }\n\n if (value[12] != (((n %= 11) < 2) ? 0 : 11 - n)) {\n return false;\n }\n\n n = 0;\n\n for (let i = 0; i <= 12; n += value[i] * b[i++]) {\n ;\n }\n\n if (value[13] != (((n %= 11) < 2) ? 0 : 11 - n)) {\n return false;\n }\n\n return true;\n };\n\n private validatorCPF(value) {\n let numeros, digitos, soma, i, resultado, digitos_iguais;\n\n digitos_iguais = 1;\n\n if (value.length < 11) {\n return false;\n }\n\n for (i = 0; i < value.length - 1; i++) {\n if (value.charAt(i) != value.charAt(i + 1)) {\n digitos_iguais = 0;\n break;\n }\n }\n\n if (!digitos_iguais) {\n numeros = value.substring(0, 9);\n digitos = value.substring(9);\n soma = 0;\n\n for (i = 10; i > 1; i--) {\n soma += numeros.charAt(10 - i) * i;\n }\n\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\n\n if (resultado != digitos.charAt(0)) {\n return false;\n }\n\n numeros = value.substring(0, 10);\n soma = 0;\n\n for (i = 11; i > 1; i--) {\n soma += numeros.charAt(11 - i) * i;\n }\n\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\n\n if (resultado != digitos.charAt(1)) {\n return false;\n }\n\n return true;\n } else {\n return false;\n }\n }\n\n private getNativeValue() {\n return this.element.nativeElement.value;\n }\n\n private getElementTitle(): string {\n return this.element.nativeElement.parentElement.parentElement.title;\n }\n\n private removeMasks(value: string) {\n if (this.mask == \"decimal\") {\n value = (value + \"\")\n .replace(/\\./g, '')\n .replace(',', '.');\n } else if (this.mask == \"cnpj-cpf\" || this.mask == \"cpf\" || this.mask == \"cnpj\") {\n value = (value + \"\")\n .replace('.', '')\n .replace('.', '')\n .replace('-', '')\n .replace('/', '');\n } else if (this.mask == \"cellphone\") {\n value = (value + \"\")\n .replace('(', '')\n .replace(')', '')\n .replace(' ', '')\n .replace('-', '');\n }\n\n return value;\n }\n\n private hasEmailServiceValidation(): boolean {\n return typeof this.ngtValidationService.emailValidation === 'function';\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtInputComponent } from './ngt-input.component';\n\n@NgModule({\n declarations: [NgtInputComponent],\n exports: [NgtInputComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtSvgModule,\n NgtFormModule,\n NgtHelperModule\n ]\n})\nexport class NgtInputModule { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngt-modal-body',\n templateUrl: './ngt-modal-body.component.html',\n styleUrls: ['./ngt-modal-body.component.css']\n})\nexport class NgtModalBodyComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngt-modal-footer',\n templateUrl: './ngt-modal-footer.component.html',\n styleUrls: ['./ngt-modal-footer.component.css']\n})\nexport class NgtModalFooterComponent { }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectorRef, Component, EventEmitter, Injector, Input, Optional, Output, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-modal',\n templateUrl: './ngt-modal.component.html',\n styleUrls: ['./ngt-modal.component.css'],\n animations: [\n trigger('fade', [\n state('void', style({ opacity: 0 })),\n transition(':enter, :leave', [\n animate(300)\n ])\n ])\n ]\n})\nexport class NgtModalComponent {\n @Input() public customLayout: boolean = false;\n @Input() public disableDefaultCloses: boolean = false;\n @Input() public ngtStyle: NgtStylizableService;\n\n @Output() public onCloseModal: EventEmitter<any> = new EventEmitter();\n @Output() public onOpenModal: EventEmitter<any> = new EventEmitter();\n\n public isOpen: boolean = false;\n\n private keydownEventWasAdded: boolean = false;\n\n public constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private injector: Injector,\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.tailStylizableDirective) {\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtModal', {\n w: 'md:max-w-md',\n py: 'py-4',\n px: 'px-6',\n overflow: 'overflow-visible',\n color: {}\n });\n }\n\n public close() {\n this.isOpen = false;\n this.changeDetectorRef.detectChanges();\n this.onCloseModal.emit();\n }\n\n public open() {\n this.isOpen = true;\n this.changeDetectorRef.detectChanges();\n this.addKeydownEventListener();\n this.onOpenModal.emit();\n }\n\n private addKeydownEventListener() {\n if (!this.disableDefaultCloses && !this.keydownEventWasAdded) {\n this.keydownEventWasAdded = true;\n\n window.addEventListener('keydown', (event: any) => {\n if (event.keyCode == 27) {\n this.close();\n }\n }, true);\n }\n }\n}\n","import { Component, Injector, Input, Optional, Self, SkipSelf } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtModalComponent } from '../ngt-modal.component';\n\n@Component({\n selector: 'ngt-modal-header',\n templateUrl: './ngt-modal-header.component.html',\n styleUrls: ['./ngt-modal-header.component.css']\n})\nexport class NgtModalHeaderComponent {\n @Input() public ngtModal: NgtModalComponent;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n @Optional() @SkipSelf()\n private ngtModalInstance: NgtModalComponent,\n private injector: Injector,\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective,\n ) {\n if (ngtModalInstance) {\n this.ngtModal = ngtModalInstance;\n }\n\n if (this.tailStylizableDirective) {\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtModalHeader', {\n pb: 'pb-3',\n color: {}\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { NgtModalBodyComponent } from './ngt-modal-body/ngt-modal-body.component';\nimport { NgtModalFooterComponent } from './ngt-modal-footer/ngt-modal-footer.component';\nimport { NgtModalHeaderComponent } from './ngt-modal-header/ngt-modal-header.component';\nimport { NgtModalComponent } from './ngt-modal.component';\n\n@NgModule({\n declarations: [\n NgtModalComponent,\n NgtModalHeaderComponent,\n NgtModalBodyComponent,\n NgtModalFooterComponent\n ],\n exports: [\n NgtModalComponent,\n NgtModalHeaderComponent,\n NgtModalBodyComponent,\n NgtModalFooterComponent\n ],\n imports: [\n CommonModule\n ]\n})\nexport class NgtModalModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-action',\n templateUrl: './ngt-action.component.html',\n styleUrls: ['./ngt-action.component.css']\n})\nexport class NgtActionComponent {\n @Input() public href: string;\n @Input() public icon: string;\n @Input() public ngtStyle: NgtStylizableService;\n @Input() public isDisabled: boolean;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtAction', {\n h: 'h-full',\n w: 'w-full',\n color: {\n bg: 'bg-gray-500',\n text: 'text-white',\n border: '',\n },\n text: 'text-xl',\n border: '',\n });\n }\n\n public onClick(event: Event) {\n if (this.isDisabled) {\n event.stopPropagation();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NgtActionComponent } from './ngt-action.component';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\n\n@NgModule({\n declarations: [NgtActionComponent],\n exports: [NgtActionComponent],\n imports: [\n CommonModule,\n RouterModule,\n NgtSvgModule\n ]\n})\nexport class NgtActionModule { }\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[ngt-select-option]' })\nexport class NgtSelectOptionTmp {\n public constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ngt-select-option-selected]' })\nexport class NgtSelectOptionSelectedTmp {\n public constructor(public template: TemplateRef<any>) { }\n}\n\n@Directive({ selector: '[ngt-select-header]' })\nexport class NgtSelectHeaderTmp {\n public constructor(public template: TemplateRef<any>) { }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n DoCheck,\n EventEmitter,\n Host,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, ControlContainer, NgForm } from '@angular/forms';\nimport { NgOption, NgSelectComponent } from '@ng-select/ng-select';\nimport { Observable, Observer, Subject, Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\nimport { NgtSelectHeaderTmp, NgtSelectOptionSelectedTmp, NgtSelectOptionTmp } from './ngt-select.directive';\n\n@Component({\n selector: 'ngt-select',\n templateUrl: './ngt-select.component.html',\n styleUrls: ['./ngt-select.component.css'],\n providers: [\n NgtMakeProvider(NgtSelectComponent)\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtSelectComponent extends NgtBaseNgModel implements OnChanges, OnDestroy, OnInit, DoCheck {\n @ViewChild(NgSelectComponent, { static: true }) public ngSelectComponent: NgSelectComponent;\n @ContentChild(NgtSelectOptionTmp, { read: TemplateRef }) public ngtOptionTemplate: TemplateRef<any>;\n @ContentChild(NgtSelectOptionSelectedTmp, { read: TemplateRef }) public ngtOptionSelectedTemplate: TemplateRef<any>;\n @ContentChild(NgtSelectHeaderTmp, { read: TemplateRef }) public ngtSelectHeaderTemplate: TemplateRef<any>;\n\n /** Visual */\n @Input() public label: string = '';\n @Input() public labelIcon: string;\n @Input() public labelIconColor: string;\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining = false;\n @Input() public loading: boolean = false;\n @Input() public loadingText: string = '';\n @Input() public notFoundText: string = '';\n @Input() public dropdownPosition = 'auto';\n @Input() public typeToSearchText: string = '';\n @Input() public clearAllTooltip: string = '';\n @Input() public placeholder: string = '';\n @Input() public createText: string = '';\n @Input() public labelForId: string = '';\n @Input() public dropdownPanelMinHeight: NgtSelectDropdownPanelHeight = NgtSelectDropdownPanelHeight.AUTO;\n\n /** Behavior */\n @Input() public name: string;\n @Input() public allowCreate: boolean | Promise<any> | Function = false;\n @Input() public allowOriginalItemsUnselect: boolean = true;\n @Input() public isDisabled: boolean = false;\n @Input() public remoteResource: any;\n @Input() public hideSelected: boolean;\n @Input() public bindLabel: string = 'name';\n @Input() public bindValue: string;\n @Input() public items: Array<any> | Observable<any> = [];\n @Input() public closeOnSelect: boolean = true;\n @Input() public clearable: boolean = true;\n @Input() public groupBy: string | Function = null;\n @Input() public maxSelectedItems: number;\n @Input() public multiple: boolean = false;\n @Input() public searchable: boolean = true;\n @Input() public clearSearchOnAdd: boolean = true;\n @Input() public virtualScroll: boolean = true;\n @Input() public tabIndex: number;\n @Input() public typeahead: Subject<any>;\n @Input() public groupValue: (groupKey: string, cildren: any[]) => Object;\n @Input() public trackBy: (item: any) => any;\n\n /** Validation */\n @Input() public isRequired: boolean = false;\n\n @Output() public onLoadRemoteResource: EventEmitter<any> = new EventEmitter<any>();\n\n public nativeName = uuid();\n public ngtStyle: NgtStylizableService;\n public ngSelectItems: any = [];\n public nativeValue: any;\n public componentReady: boolean = false;\n\n private ngSearchObserver: Observer<any>;\n private originalPerPage = 15;\n private subscriptions: Array<Subscription> = [];\n private originalItems: Array<any>;\n\n private currentState = {\n filters: {},\n sort: {\n field: '',\n direction: ''\n },\n pagination: {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n }\n };\n\n private searchTimeout: any;\n private becameVisible: boolean;\n\n public constructor(\n @Optional() @Self()\n public ngtStylizableDirective: NgtStylizableDirective,\n private injector: Injector,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n public ngtFormComponent: NgtFormComponent,\n private ngtHttp: NgtHttpService,\n private changeDetector: ChangeDetectorRef,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtSelect', {\n h: 'h-12',\n color: {\n bg: 'bg-white'\n }\n });\n }\n\n @Input() public compareWith = (a: any, b: any) => a === b;\n\n public ngOnInit() {\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\");\n }\n\n if (!this.multiple && this.isRequired) {\n this.clearable = false;\n }\n\n if (this.multiple) {\n this.closeOnSelect = false;\n }\n\n setTimeout(() => {\n this.componentReady = true;\n this.initComponentValidation();\n }, 500);\n\n this.ngSelectItems = new Observable((observer) => {\n this.ngSearchObserver = observer;\n observer.next([]);\n });\n }\n\n public ngAfterViewInit() {\n this.bindInnerInputUniqueId();\n }\n\n public ngDoCheck() {\n if (!this.becameVisible && !this.isHidden()) {\n this.becameVisible = true;\n\n this.initNgSelectItems();\n\n setTimeout(() => {\n this.replaceShowAddTag();\n\n this.ngSelectComponent.itemsList.mapSelectedItems();\n\n if (!this.getElementTitle() || this.getElementTitle() === 'null') {\n this.ngSelectComponent.element.parentElement.parentElement.parentElement.title = '';\n }\n\n this.originalItems = this.ngSelectComponent.selectedItems?.map((element) => element.value);\n\n this.changeDetector.detectChanges();\n }, 500);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public removeItem(event: Event, item: any) {\n event.preventDefault();\n event.stopPropagation();\n\n return this.ngSelectComponent.clearItem(item);\n }\n\n public refresh() {\n this.initNgSelectItems();\n this.initComponentValidation();\n }\n\n public reset() {\n this.value = undefined;\n this.nativeValue = undefined;\n this.refresh();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.isRequired) {\n this.updateValidations();\n }\n\n if ((changes.remoteResource && this.becameVisible) || changes.items) {\n this.initNgSelectItems();\n }\n\n if (changes.dropdownPanelMinHeight) {\n this.dropdownPanelMinHeight = getEnumFromString(changes.dropdownPanelMinHeight.currentValue, NgtSelectDropdownPanelHeight);\n }\n }\n\n public setFocus() {\n setTimeout(() => {\n this.ngSelectComponent.focus();\n });\n }\n\n public onClearSelect() {\n if (!this.nativeValue) {\n this.markAsPristine();\n }\n\n this.currentState.filters = {};\n }\n\n public onRemoveSelectedItem(item: NgOption) {\n if (!this.allowOriginalItemsUnselect && this.hadPreviousSelection(item.value)) {\n setTimeout(() => this.ngSelectComponent.select(item));\n }\n }\n\n public getFilterInputValue() {\n let inputField = this.ngSelectComponent.searchInput ?\n this.ngSelectComponent.searchInput :\n this.ngSelectComponent['searchInput'];\n\n if (\n inputField &&\n inputField.nativeElement\n ) {\n return inputField.nativeElement.value;\n }\n }\n\n public search(filters: any) {\n this.currentState.filters = { ...this.currentState.filters, ...filters };\n\n if (!this.remoteResource) {\n return;\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.loading = true;\n this.changeDetector.detectChanges();\n\n this.searchTimeout = setTimeout(() => {\n this.subscriptions.push(\n this.ngtHttp\n .get(this.remoteResource, this.currentState.filters, this.currentState.pagination)\n .subscribe(\n (response: NgtHttpResponse) => {\n this.loading = false;\n this.ngSearchObserver.next(response.data);\n this.onLoadRemoteResource.emit(response.data);\n this.currentState.pagination = response.meta.pagination;\n this.changeDetector.detectChanges();\n },\n (error) => {\n this.loading = false;\n this.changeDetector.detectChanges();\n console.error(error);\n this.ngSearchObserver.next([]);\n }\n )\n );\n }, 500);\n }\n\n public onNativeChange(value) {\n if (this.hasChangesBetweenModels(this.value, value)) {\n this.value = value;\n }\n }\n\n public change(value) {\n if (this.hasChangesBetweenModels(value, this.nativeValue)) {\n if (Array.isArray(value)) {\n value = value.map((val) => val);\n }\n\n this.nativeValue = value;\n\n if (!value) {\n this.markAsPristine();\n }\n }\n }\n\n public onScroll({ end }) {\n let currentPerPage = this.currentState.pagination.per_page;\n let maxItensInBackend = this.currentState.pagination.total;\n\n if (end >= currentPerPage && end <= maxItensInBackend) {\n this.currentState.pagination.per_page = parseInt(this.currentState.pagination.per_page) + this.originalPerPage;\n this.search({});\n }\n }\n\n public hasSelectedValue() {\n return this.value && JSON.stringify(this.value);\n }\n\n public getSelectClass() {\n let selectClass = this.dropdownPanelMinHeight ? 'ng-select-dropdown-panel-' + this.dropdownPanelMinHeight : 'ng-select-dropdown-panel-auto';\n\n if (this.isDisabled) {\n selectClass += ' select-border-disabled';\n } else if (this.formControl && this.formControl.errors && (this.formControl.dirty || (this.formContainer && this.formContainer['submitted']))) {\n selectClass += ' select-border-error';\n } else {\n selectClass += ' select-border-normal';\n }\n\n if (this.multiple) {\n selectClass += ` h-auto ${this.ngtStyle.compile(['color.bg', 'color.text'])}`;\n } else {\n selectClass += ` ${this.ngtStyle.compile(['h', 'color.bg', 'color.text'])}`;\n }\n\n return selectClass;\n }\n\n private initNgSelectItems() {\n if (this.remoteResource && this.becameVisible) {\n this.ngSelectItems = new Observable(observer => {\n this.ngSearchObserver = observer;\n this.search({});\n });\n\n this.typeahead = new Subject();\n\n this.subscriptions.push(\n this.typeahead.subscribe((term) => {\n this.search({ term: term });\n })\n );\n } else if (this.items instanceof Observable) {\n this.ngSelectItems = this.items;\n } else {\n if (!this.items) {\n this.items = [];\n }\n\n this.ngSelectItems = new Observable((observer) => {\n this.ngSearchObserver = observer;\n observer.next(this.items);\n });\n }\n }\n\n private initComponentValidation() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n this.formControl = this.formContainer.control.get(this.name);\n this.markAsPristine();\n this.updateValidations();\n }\n }\n\n private getElementTitle(): string {\n return this.ngSelectComponent.element.parentElement.parentElement.parentElement.title;\n }\n\n private hasChangesBetweenModels(value, nativeValue) {\n return JSON.stringify(value) !== JSON.stringify(nativeValue);\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(this.isRequiredValidator());\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private isRequiredValidator() {\n return (control: AbstractControl) => {\n if (this.multiple) {\n if (Array.isArray(this.value) && this.value.length > 0) {\n return null;\n }\n } else if (control.value && JSON.stringify(control.value)) {\n return null;\n }\n\n return { 'required': true };\n };\n }\n\n private replaceShowAddTag() {\n Object.defineProperty(this.ngSelectComponent, 'showAddTag', {\n get: () => {\n if (!this.ngSelectComponent['searchTerm']) {\n return false;\n }\n\n const term = this.ngSelectComponent['searchTerm'].toLocaleLowerCase();\n\n return this.ngSelectComponent.addTag && !this.ngSelectComponent.loading\n && (!this.hasTermInFilteredItems(term) && (!this.hasTermInSelectedItems(term)\n || !this.ngSelectComponent.hideSelected && this.ngSelectComponent.isOpen));\n }\n });\n }\n\n private bindInnerInputUniqueId() {\n const childInputs = this.ngSelectComponent.element.getElementsByTagName('input');\n\n if (childInputs?.length) {\n const innerInput = childInputs[0];\n\n innerInput.id = uuid();\n }\n }\n\n private hasTermInFilteredItems(term: string) {\n const filteredItems = this.ngSelectComponent.itemsList.filteredItems;\n\n if (this.isColoquentResource()) {\n return filteredItems.some((element: any) => {\n const elementValue = (<any>element.value).getAttribute(this.bindLabel);\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n return filteredItems.some((element: any) => {\n const elementValue = (<any>element.value)[this.bindLabel];\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n private hasTermInSelectedItems(term: string) {\n const selectedItems = this.ngSelectComponent.selectedItems;\n\n if (this.isColoquentResource()) {\n return selectedItems.some((element: any) => {\n const elementValue = (<any>element.value).getAttribute(this.bindLabel);\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n return selectedItems.some((element: any) => {\n const elementValue = (<any>element.value)[this.bindLabel];\n\n return elementValue && elementValue.toLocaleLowerCase() === term;\n });\n }\n\n private hadPreviousSelection(item: any): boolean {\n return !!this.originalItems?.find(element => this.compareWith(element, item));\n }\n\n private isColoquentResource() {\n const filteredItems = this.ngSelectComponent.itemsList.filteredItems;\n\n return filteredItems && filteredItems.length && typeof filteredItems[0].value['getAttribute'] === 'function';\n }\n\n private isHidden(): boolean {\n return this.ngSelectComponent.element.offsetParent === null;\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtSelectDropdownPanelHeight {\n AUTO = 'auto',\n XS = 'xs',\n MD = 'md',\n SM = 'sm',\n LG = 'lg',\n XL = 'xl'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtSelectComponent } from './ngt-select.component';\nimport { NgtSelectHeaderTmp, NgtSelectOptionSelectedTmp, NgtSelectOptionTmp } from './ngt-select.directive';\nimport {NgtSvgModule} from \"../ngt-svg/ngt-svg.module\";\n\n@NgModule({\n declarations: [\n NgtSelectComponent,\n NgtSelectOptionTmp,\n NgtSelectOptionSelectedTmp,\n NgtSelectHeaderTmp\n ],\n exports: [\n NgtSelectComponent,\n NgtSelectOptionTmp,\n NgtSelectOptionSelectedTmp,\n NgtSelectHeaderTmp\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgSelectModule,\n NgtValidationModule,\n NgtFormModule,\n NgtShiningModule,\n NgtHelperModule,\n NgtSvgModule\n ]\n})\nexport class NgtSelectModule { }\n","import { Component, EventEmitter, Injector, Input, Optional, Output } from '@angular/core';\n\nimport { NgtHttpMeta, NgtHttpPagination } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-pagination',\n templateUrl: './ngt-pagination.component.html',\n styleUrls: ['./ngt-pagination.component.css']\n})\nexport class NgtPaginationComponent {\n @Input() public pagesInterval: number;\n\n @Output() public onPageChange: EventEmitter<number> = new EventEmitter();\n @Output() public onPerPageChange: EventEmitter<number> = new EventEmitter();\n\n /** Styles */\n public ngtPaginationActivePageButtonStyle: NgtStylizableService;\n public ngtPaginationNextPreviousButtonStyle: NgtStylizableService;\n public ngtPaginationNextPreviousSectionButtonStyle: NgtStylizableService;\n public ngtPaginationFirstLastButtonStyle: NgtStylizableService;\n public ngtPaginationPageButtonStyle: NgtStylizableService;\n\n public sectionStartPage: number;\n public sectionEndPage: number;\n public displayNextSectionButton: boolean;\n public displayPreviousSectionButton: boolean;\n public displayPagination: boolean = true;\n\n public pagination: NgtHttpPagination = {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n };\n\n public pages = [];\n\n public registersPerPageOptions = [\n 5, 10, 15, 30, 50, 100\n ];\n\n public currentRegistersPerPage: number = 15;\n\n public constructor(\n private injector: Injector,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n this.ngtPaginationNextPreviousButtonStyle = new NgtStylizableService();\n this.ngtPaginationNextPreviousSectionButtonStyle = new NgtStylizableService();\n this.ngtPaginationFirstLastButtonStyle = new NgtStylizableService();\n this.ngtPaginationActivePageButtonStyle = new NgtStylizableService();\n this.ngtPaginationPageButtonStyle = new NgtStylizableService();\n\n this.ngtPaginationNextPreviousButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-700'\n }\n });\n\n this.ngtPaginationNextPreviousSectionButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-300'\n }\n });\n\n this.ngtPaginationFirstLastButtonStyle.load(this.injector, 'NgtPaginationFirstLastButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-900'\n }\n });\n\n this.ngtPaginationActivePageButtonStyle.load(this.injector, 'NgtPaginationActivePageButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-500'\n }\n });\n\n this.ngtPaginationPageButtonStyle.load(this.injector, 'NgtPaginationPageButton', {\n h: 'h-8',\n w: 'w-8',\n color: {\n text: 'text-white',\n bg: 'bg-gray-300'\n }\n });\n }\n\n public onRegistersPerPageChange(value: any) {\n if (value && this.pagination.per_page != value) {\n this.pagination.per_page = value;\n this.currentRegistersPerPage = value;\n\n this.onPerPageChange.emit(value);\n }\n }\n\n public async goToPage(page: number) {\n this.onPageChange.emit(page);\n }\n\n public async goToPreviousPage() {\n if ((this.pagination.page - 1) > 0) {\n return this.goToPage(this.pagination.page - 1);\n }\n }\n\n public async goToNextPage() {\n if ((this.pagination.page + 1) <= this.pagination.pages) {\n return this.goToPage(this.pagination.page + 1);\n }\n }\n\n public async goToPreviousSection() {\n return this.goToPage(this.sectionStartPage - 1);\n }\n\n public async goToNextSection() {\n return this.goToPage(this.sectionEndPage + 1);\n }\n\n public async goToFirstPage() {\n if (this.pagination.page != 1) {\n return this.goToPage(1);\n }\n }\n\n public async goToLastPage() {\n if (this.pagination.page != this.pagination.pages) {\n return this.goToPage(this.pagination.pages);\n }\n }\n\n public getCurrentPage() {\n return this.pagination.page;\n }\n\n public getPagination() {\n return this.pagination;\n }\n\n public proccessPagination(meta: NgtHttpMeta) {\n this.pages = [];\n this.pagination = meta.pagination;\n\n this.sectionStartPage = Math.floor((this.pagination.page - 1) / this.pagesInterval) * this.pagesInterval + 1;\n this.sectionEndPage = this.sectionStartPage + (this.pagesInterval - 1);\n\n const totalPages = this.pagination.pages;\n\n for (let i = this.sectionStartPage; i <= this.sectionEndPage && i <= totalPages; i++) {\n this.pages.push(i);\n }\n\n this.bindDisplayedButtonSections(this.sectionStartPage, this.sectionEndPage, totalPages);\n this.displayPagination = true;\n }\n\n public resetPagination() {\n this.pagination = {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n };\n }\n\n private bindDisplayedButtonSections(sectionStartPage: number, sectionEndPage: number, totalPages: number) {\n this.displayPreviousSectionButton = sectionStartPage > 1 ? true : false;\n this.displayNextSectionButton = sectionEndPage < totalPages ? true : false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtActionModule } from '../ngt-action/ngt-action.module';\nimport { NgtSelectModule } from '../ngt-select/ngt-select.module';\nimport { NgtPaginationComponent } from './ngt-pagination.component';\n\n@NgModule({\n declarations: [NgtPaginationComponent],\n exports: [NgtPaginationComponent],\n imports: [\n CommonModule,\n FormsModule,\n NgtStylizableModule,\n NgtActionModule,\n NgtSelectModule,\n ]\n})\nexport class NgtPaginationModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-tag',\n templateUrl: './ngt-tag.component.html',\n styleUrls: ['./ngt-tag.component.css']\n})\nexport class NgtTagComponent {\n @Input() public icon: string;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'Tag', {\n color: {\n bg: 'bg-gray-500',\n text: 'text-white'\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtTagComponent } from './ngt-tag.component';\n\n@NgModule({\n declarations: [NgtTagComponent],\n exports: [NgtTagComponent],\n imports: [\n CommonModule,\n NgtSvgModule\n ]\n})\nexport class NgtTagModule { }\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { NgtHttpPagination, NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtInputComponent } from '../ngt-input/ngt-input.component';\nimport { NgtModalComponent } from '../ngt-modal/ngt-modal.component';\nimport { NgtPaginationComponent } from '../ngt-pagination/ngt-pagination.component';\n\n@Component({\n selector: 'ngt-datatable',\n templateUrl: './ngt-datatable.component.html',\n styleUrls: ['./ngt-datatable.component.css']\n})\nexport class NgtDatatableComponent implements OnInit, OnDestroy {\n @ViewChild('table', { static: true }) public table: ElementRef;\n @ViewChild('ngtPagination', { static: true }) public ngtPagination: NgtPaginationComponent;\n @ViewChild('searchModal', { static: true }) public searchModal: NgtModalComponent;\n\n @Input() public remoteResource: any;\n @Input() public type: NgtDatatableType = NgtDatatableType.REMOTE;\n @Input() public filterTagBgColor: string = 'bg-blue-500';\n @Input() public inputSearch: NgtInputComponent;\n @Input() public searchDelay: number = 500;\n @Input() public searchTermMinLength: number = 1;\n @Input() public searchTermOnEnter: boolean = true;\n @Input() public defaultFilters: any = {};\n @Input() public filtersDescription = {};\n\n @Output() public onDataChange: EventEmitter<any> = new EventEmitter();\n @Output() public onClearFilter: EventEmitter<any> = new EventEmitter();\n @Output() public onClearSelectedElements: EventEmitter<any> = new EventEmitter();\n @Output() public onSelectedElementsChange: EventEmitter<Array<NgtCheckedElement>> = new EventEmitter();\n @Output() public onToogleAllCheckboxes: EventEmitter<any> = new EventEmitter();\n @Output() public onToogleCheckbox: EventEmitter<NgtCheckedElement> = new EventEmitter();\n @Output() public onOpenSearchModal: EventEmitter<string> = new EventEmitter();\n @Output() public onSearch: EventEmitter<any> = new EventEmitter();\n\n public searchModalTemplate: TemplateRef<any>;\n public data = [];\n public loading = false;\n public cleaningFilter = false;\n public componentReady = false;\n public filtersTranslated = [];\n public emptyStateVisible: boolean;\n public columnCount = [];\n public selectedElements: Array<NgtCheckedElement> = [];\n\n private searching: boolean;\n private searchTimeout: any;\n private subscriptions: Array<Subscription> = [];\n private currentState = {\n filters: {\n defaultFilters: {},\n silentFilters: {},\n qualifiedFilters: {},\n },\n sort: {\n field: '',\n direction: ''\n }\n };\n\n public constructor(\n private injector: Injector,\n private ngtHttpService: NgtHttpService,\n private changeDetector: ChangeDetectorRef,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) { }\n\n public ngOnInit() {\n if (this.table && this.table.nativeElement && this.table.nativeElement.rows\n && this.table.nativeElement.rows[0] && this.table.nativeElement.rows[0].cells) {\n this.columnCount = this.table.nativeElement.rows[0].cells;\n }\n\n if (this.inputSearch) {\n this.initSearchWithInput();\n }\n\n this.initCheckboxEvent();\n\n if (this.searchDelay == 500) {\n this.searchDelay = this.injector.get('NgtDatatableSearchDelay', 500);\n }\n\n if (this.searchTermMinLength == 1) {\n this.searchTermMinLength = this.injector.get('NgtDatatableSearchTermMinLength', 1);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public setSearchModalTemplate(template: TemplateRef<any>) {\n this.searchModalTemplate = template;\n }\n\n public openSearchModal(reference?: string) {\n this.searchModal.open();\n this.onOpenSearchModal.emit(reference);\n }\n\n public clearSelectedElements() {\n this.selectedElements = [];\n this.onClearSelectedElements.emit();\n }\n\n public getCurrentState() {\n return this.currentState;\n }\n\n public init() {\n this.componentReady = true;\n }\n\n public async search(\n filters: Object,\n searchType: NgtDatatableSearchType = NgtDatatableSearchType.DEFAULT,\n applyDelayOnSearch: boolean = true\n ) {\n if (this.canApplyFilters(filters)) {\n this.onSearch.emit(filters);\n\n if (searchType == NgtDatatableSearchType.DEFAULT) {\n this.currentState.filters.defaultFilters = { ...this.currentState.filters.defaultFilters, ...filters };\n } else {\n this.currentState.filters.silentFilters = { ...this.currentState.filters.silentFilters, ...filters };\n }\n\n this.applyFiltersDescription();\n\n return this.apply(1, applyDelayOnSearch);\n }\n }\n\n public async sort(field: any, direction: any) {\n this.currentState.sort = {\n field: field,\n direction: direction\n };\n\n return this.apply(this.ngtPagination.getCurrentPage());\n }\n\n public async refresh(stayInPage: NgtDatatableParam = NgtDatatableParam.RESET_PAGE, loader: NgtDatatableParam = NgtDatatableParam.ENABLE_LOADER) {\n return this.apply(\n stayInPage ? this.ngtPagination.getCurrentPage() : 1,\n false,\n loader\n ).then(() => !this.data?.length ? this.apply(1, false) : null);\n }\n\n public getData() {\n return this.data;\n }\n\n public getCurrentSort() {\n return this.currentState.sort;\n }\n\n public setPerPage(perPage: number) {\n this.ngtPagination.onRegistersPerPageChange(perPage);\n }\n\n public applyFiltersDescription() {\n if (!this.cleaningFilter) {\n this.filtersTranslated = [];\n\n for (let reference in this.currentState.filters.defaultFilters) {\n if (this.filtersDescription[reference] && this.currentState.filters.defaultFilters[reference]) {\n this.filtersTranslated.push({\n reference: reference,\n value: this.currentState.filters.defaultFilters[reference],\n translation: this.filtersDescription[reference]\n });\n }\n }\n }\n }\n\n public setFilterDescription(reference: string, description: string) {\n this.filtersDescription[reference] = description;\n }\n\n public removeFilter(reference?: any) {\n this.cleaningFilter = true;\n\n if (!reference) {\n this.currentState.filters.defaultFilters = {};\n this.currentState.filters.silentFilters = {};\n this.filtersTranslated = [];\n } else {\n delete this.currentState.filters.defaultFilters[reference];\n delete this.currentState.filters.silentFilters[reference];\n\n this.filtersTranslated = this.filtersTranslated.filter(element => element && element.reference !== reference);\n }\n\n this.onClearFilter.emit(reference);\n\n if (this.inputSearch && (reference === 'term' || !reference)) {\n this.inputSearch.clearInput();\n }\n\n this.apply(this.ngtPagination.getCurrentPage(), false).then(() => this.cleaningFilter = false);\n }\n\n public hasAppliedFilter(filter: Object | NgtCustomFilter | string): boolean {\n const reference: string = typeof filter === 'string' ? filter : Object.keys(filter ?? {})[0];\n const appliedFilters = this.currentState.filters.qualifiedFilters;\n\n return !!Object.keys(appliedFilters).find(key => key == reference);\n }\n\n public hasAppliedFilters(searchType: NgtDatatableSearchType = NgtDatatableSearchType.DEFAULT) {\n let appliedFilters = {};\n\n if (searchType == NgtDatatableSearchType.DEFAULT) {\n appliedFilters = this.currentState.filters.defaultFilters;\n } else if (searchType == NgtDatatableSearchType.SILENT) {\n appliedFilters = this.currentState.filters.silentFilters;\n } else {\n appliedFilters = { ...this.currentState.filters.defaultFilters, ...this.currentState.filters.silentFilters };\n }\n\n return !!Object.values(appliedFilters)?.find(filter => !!filter);\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.inputSearch) {\n if (changes.inputSearch.currentValue) {\n this.initSearchWithInput();\n }\n }\n\n if (changes.type) {\n this.type = getEnumFromString(changes.type.currentValue, NgtDatatableType);\n }\n }\n\n public async apply(page = 1, applyDelayOnSearch: boolean = true, loader: NgtDatatableParam = NgtDatatableParam.ENABLE_LOADER) {\n return new Promise<void>(resolve => {\n if (!this.componentReady) {\n return resolve();\n } else if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.ngtPagination.displayPagination = false;\n this.selectedElements = [];\n\n if (this.type === NgtDatatableType.REMOTE) {\n if (this.remoteResource) {\n if (loader) {\n this.loading = true;\n this.bindVisibilityAttributes();\n }\n\n if (applyDelayOnSearch) {\n this.searchTimeout = setTimeout(() => {\n this.loadData(page).then(() => resolve());\n }, this.searchDelay);\n } else {\n this.loadData(page).then(() => resolve());\n }\n } else {\n console.error('The property [remoteResource] needs to be present to be able to make remote search');\n }\n } else if (this.type == NgtDatatableType.FIXED) {\n this.bindVisibilityAttributes();\n\n resolve();\n }\n });\n }\n\n private loadData(page: number) {\n return new Promise<void>((resolve, reject) => {\n const pagination: NgtHttpPagination = { ...this.ngtPagination.getPagination(), ...{ page: page } };\n\n this.currentState.filters.qualifiedFilters = this.getQualifiedFilters();\n this.searching = true;\n\n if (this.inputSearch) {\n this.inputSearch.isDisabled = true;\n }\n\n this.subscriptions.push(\n this.ngtHttpService.get(\n this.remoteResource, this.currentState.filters.qualifiedFilters, pagination, this.currentState.sort\n ).subscribe(\n (response: NgtHttpResponse) => {\n this.proccessRemoteResponse(response.data);\n this.ngtPagination.proccessPagination(response.meta);\n\n this.searching = false;\n this.loading = false;\n\n if (this.inputSearch) {\n this.inputSearch.isDisabled = false;\n }\n\n this.onDataChange.emit(this.data);\n this.bindVisibilityAttributes();\n\n resolve();\n },\n (error) => {\n console.error(error);\n this.loading = false;\n this.inputSearch.isDisabled = false;\n this.changeDetector.detectChanges();\n\n reject();\n }\n )\n );\n });\n }\n\n private getQualifiedFilters() {\n const qualifiedFilters = {};\n const requestedFilters = { ...this.currentState.filters.defaultFilters, ...this.currentState.filters.silentFilters };\n\n if (requestedFilters) {\n for (const reference in requestedFilters) {\n const filter = requestedFilters[reference];\n\n if (this.isValidFilter(filter)) {\n if (filter instanceof NgtCustomFilter) {\n if (filter.tagLabel) {\n this.filtersDescription[reference] = filter.tagLabel;\n this.applyFiltersDescription();\n }\n\n qualifiedFilters[reference] = filter.term;\n } else {\n qualifiedFilters[reference] = filter;\n }\n }\n }\n }\n\n return qualifiedFilters;\n }\n\n private bindVisibilityAttributes() {\n this.changeDetector.detectChanges();\n\n if (this.type == NgtDatatableType.REMOTE && !this.data.length && !this.loading) {\n this.emptyStateVisible = true;\n } else if (this.type == NgtDatatableType.FIXED) {\n this.emptyStateVisible = false;\n } else {\n this.emptyStateVisible = false;\n }\n\n this.changeDetector.detectChanges();\n }\n\n private proccessRemoteResponse(response: any) {\n this.data = response;\n }\n\n private initSearchWithInput() {\n this.subscriptions.push(\n this.inputSearch.onValueChange().subscribe((value: string) => {\n if (this.currentState.filters.defaultFilters['term']) {\n if (!value) {\n this.removeFilter('term');\n } else if (value.length < this.searchTermMinLength) {\n delete this.currentState.filters.defaultFilters['term'];\n\n this.search({ term: '' });\n }\n }\n\n if (value.length >= this.searchTermMinLength) {\n this.search({ term: value });\n }\n })\n );\n\n if (this.searchTermOnEnter) {\n this.inputSearch.element.nativeElement.addEventListener('keydown', (event: any) => {\n event.stopImmediatePropagation();\n\n if (event.keyCode == 13) {\n if (this.inputSearch.value && this.inputSearch.value.length >= this.searchTermMinLength) {\n this.apply(1, false);\n }\n }\n });\n }\n }\n\n private initCheckboxEvent() {\n this.subscriptions.push(\n this.onToogleCheckbox.subscribe((checkedElement: NgtCheckedElement) => {\n this.selectedElements = this.selectedElements.filter(item => item.id !== checkedElement.id);\n\n if (checkedElement.checked) {\n this.selectedElements.push(checkedElement);\n }\n\n this.onSelectedElementsChange.emit(this.selectedElements);\n })\n );\n }\n\n private canApplyFilters(filters: Object): boolean {\n if (!this.searching) {\n for (const reference in filters) {\n if (this.isValidFilter(filters[reference])) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n private isValidFilter(filter: Object | NgtCustomFilter): boolean {\n const value: string | NgtCustomFilter = Object.values(filter ?? {})[0];\n const hasValue: boolean = !!((value instanceof NgtCustomFilter && value.term) || value);\n const isApplied: boolean = this.hasAppliedFilter(filter);\n\n return isApplied || (!isApplied && hasValue);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtDatatableType {\n REMOTE = 'REMOTE',\n FIXED = 'FIXED'\n}\n\nexport enum NgtDatatableSearchType {\n DEFAULT = 'DEFAULT',\n SILENT = 'SILENT',\n}\n\nexport enum NgtDatatableParam {\n STAY_IN_PAGE = 1,\n RESET_PAGE = 0,\n ENABLE_LOADER = 1,\n DISABLE_LOADER = 0\n}\n\nexport class NgtCheckedElement {\n public id: string;\n public checked: boolean;\n public reference: any;\n}\n\nexport class NgtCustomFilter {\n public term: string;\n public tagValue: string;\n public tagLabel?: string;\n}\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: '[ngt-tbody]',\n templateUrl: './ngt-tbody.component.html',\n styleUrls: ['./ngt-tbody.component.css'],\n})\nexport class NgtTbodyComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n this.bindNgtStyle();\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTbody', {\n color: {\n bg: 'bg-white',\n text: '',\n border: ''\n },\n my: '',\n border: '',\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n ]);\n }\n}\n","import { Component, ElementRef, Injector, Input, OnDestroy, Optional, Output, Self, SkipSelf, ViewChild, EventEmitter } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { uuid } from '../../../helpers/uuid';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtCheckboxComponent } from '../../ngt-checkbox/ngt-checkbox.component';\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\n\n@Component({\n selector: '[ngt-td-check]',\n templateUrl: './ngt-td-check.component.html',\n styleUrls: ['./ngt-td-check.component.css'],\n})\nexport class NgtTdCheckComponent implements OnDestroy {\n @ViewChild(NgtCheckboxComponent, { static: true }) public checkbox: NgtCheckboxComponent;\n @Input() public reference: any;\n @Input() public checked: boolean = false;\n @Output() public onCheckboxInit: EventEmitter<any> = new EventEmitter();\n\n public ngtStyle: NgtStylizableService;\n\n private id = uuid();\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtDataTable: NgtDatatableComponent\n ) {\n this.bindNgtStyle();\n }\n\n public ngAfterContentInit() {\n if (this.ngtDataTable) {\n this.subscriptions.push(\n this.ngtDataTable.onToogleAllCheckboxes.subscribe((checked: boolean) => {\n this.checked = checked;\n })\n );\n\n this.subscriptions.push(\n this.ngtDataTable.onClearSelectedElements.subscribe(() => {\n this.checked = false;\n })\n );\n\n this.onCheckboxInit.emit({\n id: this.id,\n checked: this.checked,\n reference: this.reference\n });\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public onCheckboxChange(checked: boolean) {\n if (this.ngtDataTable) {\n this.ngtDataTable.onToogleCheckbox.emit({\n id: this.id,\n checked: checked,\n reference: this.reference\n });\n }\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTdCheck', {\n py: 'py-4',\n px: 'px-6',\n text: 'text-center',\n border: 'border-b',\n color: {\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.border',\n ]);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: '[ngt-td]',\n templateUrl: './ngt-td.component.html',\n styleUrls: ['./ngt-td.component.css'],\n})\nexport class NgtTdComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n this.bindNgtStyle();\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTd', {\n py: 'py-4',\n px: 'px-6',\n border: 'border-b',\n break: 'break-words',\n color: {\n bg: '',\n text: '',\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n 'break'\n ]);\n }\n}\n","import { AfterContentInit, Component, ElementRef, Injector, OnDestroy, Optional, Self, SkipSelf } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\n\n@Component({\n selector: '[ngt-th-check]',\n templateUrl: './ngt-th-check.component.html',\n styleUrls: ['./ngt-th-check.component.css'],\n})\nexport class NgtThCheckComponent implements AfterContentInit, OnDestroy {\n public checked = false;\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtDataTable: NgtDatatableComponent\n ) {\n this.bindNgtStyle();\n }\n\n public ngAfterContentInit() {\n if (this.ngtDataTable) {\n this.subscriptions.push(\n this.ngtDataTable.onDataChange.subscribe(() => {\n this.checked = false;\n })\n );\n\n this.subscriptions.push(\n this.ngtDataTable.onClearSelectedElements.subscribe(() => {\n this.checked = false;\n })\n );\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public onCheckboxChange(checked: boolean) {\n if (this.ngtDataTable) {\n this.ngtDataTable.onToogleAllCheckboxes.emit(checked);\n }\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtThCheck', {\n py: 'py-4',\n px: 'px-6',\n text: 'text-center',\n border: 'border-b',\n color: {\n border: '',\n bg: 'bg-gray-500',\n text: 'text-white'\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.border',\n 'color.bg',\n 'color.text'\n ]);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n Self,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtInputComponent } from '../../ngt-input/ngt-input.component';\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\n\n@Component({\n selector: '[ngt-th]',\n templateUrl: './ngt-th.component.html',\n styleUrls: ['./ngt-th.component.css'],\n})\nexport class NgtThComponent implements OnChanges, OnDestroy {\n @ViewChild('searchInput') public searchInput: NgtInputComponent;\n @ViewChild('modal', { static: true }) public modal: TemplateRef<any>;\n\n @Input() public reference: string;\n @Input() public sortReference: string;\n @Input() public sortable: boolean;\n @Input() public searchable: boolean;\n @Input() public hasCustomSearch: boolean = false;\n @Input() public searchLabel: string;\n @Input() public sortableTooltip: NgtSortableTooltip = {\n ascending: 'Ordenar de Z a A',\n descending: 'Limpar ordenação',\n unordered: 'Ordenar de A a Z'\n };\n\n @Output() public onEnableSearch = new EventEmitter();\n\n public inputFocused: boolean = false;\n public isCurrentSort = false;\n public sortDirection = '';\n public searchTerm: any;\n public customSearchTerm: any;\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n public ngtDataTable: NgtDatatableComponent\n ) {\n if (this.checkDataTable()) {\n this.subscriptions.push(\n this.ngtDataTable.onDataChange.subscribe(() => {\n this.isCurrentSort = this.ngtDataTable.getCurrentSort().field == this.getSortReference();\n\n if (this.isCurrentSort) {\n this.sortDirection = this.ngtDataTable.getCurrentSort().direction;\n }\n })\n );\n\n this.subscriptions.push(\n this.ngtDataTable.onClearFilter.subscribe((reference) => {\n if (reference == this.reference || !reference) {\n this.searchTerm = '';\n this.customSearchTerm = null;\n }\n })\n );\n }\n\n this.bindNgtStyle();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.searchLabel && this.checkDataTable) {\n this.ngtDataTable.setFilterDescription(this.reference, this.searchLabel);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public async sort() {\n if (this.sortable && this.checkDataTable() && this.checkReference()) {\n let sortDirection = this.getNextSortDirection();\n\n if (sortDirection) {\n await this.ngtDataTable.sort(this.getSortReference(), sortDirection);\n } else {\n this.ngtDataTable.sort('', '');\n }\n\n this.sortDirection = sortDirection;\n }\n }\n\n public enableSearch(event: any) {\n event.stopPropagation();\n\n this.ngtDataTable.setSearchModalTemplate(this.modal);\n this.ngtDataTable.openSearchModal(this.reference);\n\n setTimeout(() => {\n if (this.searchInput) {\n this.searchInput.setFocus();\n }\n }, 100);\n\n this.onEnableSearch.emit();\n }\n\n public search(term: any) {\n if (!this.hasCustomSearch && this.searchTerm === undefined\n && this.customSearchTerm === undefined && !term) {\n return;\n }\n\n if (this.searchable && this.reference) {\n let filter = {};\n\n filter[this.reference] = term;\n this.ngtDataTable.search(filter);\n }\n }\n\n public customSearch(term: any) {\n this.customSearchTerm = term;\n }\n\n public getTooltip() {\n if (this.sortable && this.sortableTooltip) {\n if (this.sortDirection == 'asc') {\n return this.sortableTooltip.ascending;\n } else if (this.sortDirection == 'desc') {\n return this.sortableTooltip.descending;\n }\n\n return this.sortableTooltip.unordered;\n }\n\n return '';\n }\n\n private getSortReference() {\n return this.sortReference ? this.sortReference : this.reference;\n }\n\n private checkDataTable() {\n if (!this.ngtDataTable) {\n console.error('The [ngt-th] must be inside of a [ngt-datatable]');\n\n return false;\n }\n\n return true;\n }\n\n private checkReference() {\n if (!this.reference && !this.sortReference) {\n console.error('The [ngt-th] must have a [reference] or a [sortReference] property to be able to sort');\n\n return false;\n }\n\n return true;\n }\n\n private getNextSortDirection() {\n switch (this.sortDirection) {\n case 'asc': return 'desc';\n case 'desc': return '';\n case '': return 'asc';\n }\n }\n\n private bindNgtStyle() {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTh', {\n py: 'py-4',\n px: 'px-6',\n font: 'font-bold',\n text: 'text-sm',\n border: 'border-b',\n justifyContent: 'justify-center',\n color: {\n bg: '',\n text: '',\n border: ''\n }\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n ]);\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport interface NgtSortableTooltip {\n ascending: string;\n descending: string;\n unordered: string;\n}\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: '[ngt-thead]',\n templateUrl: './ngt-thead.component.html',\n styleUrls: ['./ngt-thead.component.css'],\n})\nexport class NgtTheadComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtThead', {\n color: {\n bg: 'bg-gray-200',\n text: '',\n border: ''\n },\n my: '',\n border: '',\n });\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n 'rounded'\n ]);\n }\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n Optional,\n Self,\n SkipSelf,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtTbodyComponent } from '../ngt-tbody/ngt-tbody.component';\nimport { NgtTheadComponent } from '../ngt-thead/ngt-thead.component';\n\n@Component({\n selector: '[ngt-tr]',\n templateUrl: './ngt-tr.component.html',\n styleUrls: ['./ngt-tr.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtTrComponent {\n @HostBinding('class.evenStripped') @Input() public evenStripped: boolean;\n @HostBinding('class.oddStripped') @Input() public oddStripped: boolean;\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n private hostElement: ElementRef,\n @SkipSelf() @Optional() private ngtThead: NgtTheadComponent,\n @SkipSelf() @Optional() private ngtTbody: NgtTbodyComponent,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTr', {\n border: 'border-r border-t md:border-r-0 md:border-t-0',\n color: {\n bg: '',\n text: '',\n border: ''\n }\n }, [this.getInheritanceStyles()]);\n\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\n 'h',\n 'px',\n 'py',\n 'pb',\n 'pl',\n 'pr',\n 'pt',\n 'mb',\n 'ml',\n 'mr',\n 'mt',\n 'border',\n 'color.bg',\n 'color.text',\n 'color.border',\n 'text',\n 'font',\n ]);\n }\n\n private getInheritanceStyles() {\n if (this.ngtThead) {\n return 'NgtTheadStyle';\n } else if (this.ngtTbody) {\n return 'NgtTbodyStyle';\n }\n\n return '';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';\nimport { NgtInputModule } from '../ngt-input/ngt-input.module';\nimport { NgtModalModule } from '../ngt-modal/ngt-modal.module';\nimport { NgtPaginationModule } from '../ngt-pagination/ngt-pagination.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtTagModule } from '../ngt-tag/ngt-tag.module';\nimport { NgtDatatableComponent } from './ngt-datatable.component';\nimport { NgtTbodyComponent } from './ngt-tbody/ngt-tbody.component';\nimport { NgtTdCheckComponent } from './ngt-td-check/ngt-td-check.component';\nimport { NgtTdComponent } from './ngt-td/ngt-td.component';\nimport { NgtThCheckComponent } from './ngt-th-check/ngt-th-check.component';\nimport { NgtThComponent } from './ngt-th/ngt-th.component';\nimport { NgtTheadComponent } from './ngt-thead/ngt-thead.component';\nimport { NgtTrComponent } from './ngt-tr/ngt-tr.component';\nimport { NgtActionModule } from '../ngt-action/ngt-action.module';\n\n@NgModule({\n declarations: [\n NgtDatatableComponent,\n NgtTbodyComponent,\n NgtTdComponent,\n NgtTdCheckComponent,\n NgtThComponent,\n NgtThCheckComponent,\n NgtTheadComponent,\n NgtTrComponent\n ],\n exports: [\n NgtDatatableComponent,\n NgtTbodyComponent,\n NgtTdComponent,\n NgtTdCheckComponent,\n NgtThComponent,\n NgtThCheckComponent,\n NgtTheadComponent,\n NgtTrComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgtShiningModule,\n NgtPaginationModule,\n NgtCheckboxModule,\n NgtInputModule,\n NgtModalModule,\n NgtTagModule,\n NgtActionModule,\n NgtStylizableModule\n ]\n})\nexport class NgtDatatableModule { }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-floating-button',\n templateUrl: './ngt-floating-button.component.html',\n styleUrls: ['./ngt-floating-button.component.css'],\n animations: [\n trigger('fadeY', [\n state('void', style({ opacity: 0, transform: 'translateY(10px)' })),\n transition(':enter, :leave', [\n animate(300)\n ])\n ]),\n\n trigger('openClose', [\n state('open', style({\n transform: 'rotate(180deg)'\n })),\n state('closed', style({\n transform: 'rotate(-180deg)'\n })),\n transition('open => closed', [\n animate('0.5s ease-in')\n ]),\n transition('closed => open', [\n animate('0.5s ease-in')\n ]),\n ]),\n ]\n})\nexport class NgtFloatingButtonComponent {\n @Input() public menus: Array<NgtFloatingButtonMenu>;\n @Input() public icon: string;\n @Input() public label: string;\n @Input() public withAnimation: boolean = false;\n\n public isOpen: boolean = false;\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtFloatingButton', {\n color: {\n bg: 'bg-blue-500',\n text: 'text-white',\n },\n px: 'px-4',\n py: 'py-4',\n h: 'h-12',\n w: 'w-12'\n });\n }\n\n public toggleMenu() {\n this.isOpen = !(this.isOpen);\n }\n\n public openExternalLink(url: string) {\n window.open(url, \"_blank\");\n this.toggleMenu();\n }\n\n public onClick(event: Event, menu: NgtFloatingButtonMenu) {\n event.stopPropagation();\n this.toggleMenu();\n\n if (typeof menu.action === 'function') {\n return menu.action();\n }\n\n throw new Error('Action must be a function!');\n }\n\n public isTypeAction(menu: NgtFloatingButtonMenu) {\n return menu.type == NgtFloatingButtonType.ACTION;\n }\n\n public isTypeNavigation(menu: NgtFloatingButtonMenu) {\n return menu.type == NgtFloatingButtonType.NAVIGATION;\n }\n}\n\nexport interface NgtFloatingButtonMenu {\n name?: string;\n type: NgtFloatingButtonType;\n icon?: string;\n tooltip?: string;\n externalLink?: boolean;\n url?: string;\n action?: Function;\n}\n\nexport enum NgtFloatingButtonType {\n NAVIGATION = 'NAVIGATION',\n ACTION = 'ACTION'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtFloatingButtonComponent } from './ngt-floating-button.component';\n\n@NgModule({\n declarations: [NgtFloatingButtonComponent],\n exports: [NgtFloatingButtonComponent],\n imports: [\n CommonModule,\n RouterModule,\n NgtSvgModule\n ]\n})\nexport class NgtFloatingButtonModule { }\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-slider',\n templateUrl: './ngt-slider.component.html',\n styleUrls: ['./ngt-slider.component.css'],\n providers: [\n NgtMakeProvider(NgtSliderComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtSliderComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\n @ViewChild('element', { static: true }) public element: ElementRef;\n @ViewChild('display', { static: true }) public display: ElementRef;\n\n @Input() public label: string;\n @Input() public shining: boolean;\n @Input() public name: string;\n @Input() public min: string = '0';\n @Input() public max: string = '100';\n @Input() public step: string = '1';\n @Input() public color: NgtSliderColorSchemeEnum = NgtSliderColorSchemeEnum.PRIMARY;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @Host()\n public formContainer: ControlContainer,\n private renderer: Renderer2,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n }\n\n public ngAfterViewInit() {\n setTimeout(() => {\n this.display.nativeElement.innerHTML = this.value;\n }, 500);\n\n this.renderer.listen(this.element.nativeElement, 'change', () => {\n this.onNativeChange(this.element.nativeElement.value);\n });\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value: boolean) {\n this.element.nativeElement.value = value;\n }\n\n public onNativeChange(value: boolean) {\n this.value = value;\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtSliderColorSchemeEnum {\n PRIMARY = 'primary',\n SUCCESS = 'success',\n WARNING = 'warning',\n DANGER = 'danger'\n};\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtSliderComponent } from './ngt-slider.component';\n\n@NgModule({\n declarations: [NgtSliderComponent],\n exports: [NgtSliderComponent],\n imports: [\n CommonModule,\n NgtShiningModule,\n ]\n})\nexport class NgtSliderModule { }\n","import { Component, EventEmitter, Output } from '@angular/core';\n\nimport { NgtRadioButtonComponent } from '../ngt-radio-button.component';\n\n@Component({\n selector: '[ngt-radio-button-container]',\n templateUrl: './ngt-radio-button-container.component.html',\n})\nexport class NgtRadioButtonContainerComponent {\n @Output() public onActiveRadioButtonChange = new EventEmitter();\n\n public setActiveRadioButton(activeRadioButton: NgtRadioButtonComponent) {\n this.onActiveRadioButtonChange.emit(activeRadioButton);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n Injector,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n Self,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\nimport { NgtRadioButtonContainerComponent } from './ngt-radio-button-container/ngt-radio-button-container.component';\n\n@Component({\n selector: 'ngt-radio-button',\n templateUrl: './ngt-radio-button.component.html',\n styleUrls: ['./ngt-radio-button.component.css'],\n providers: [\n NgtMakeProvider(NgtRadioButtonComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtRadioButtonComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\n @ViewChild('element', { static: true }) public element: ElementRef;\n\n @Input() public label: string;\n @Input() public shining: boolean = false;\n @Input() public name: string;\n\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Optional() @Host()\n public formContainer: ControlContainer,\n private renderer: Renderer2,\n @Self() @Optional()\n private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n @Optional() @SkipSelf()\n private ngtRadioButtonContainer: NgtRadioButtonContainerComponent\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtRadioButtonContainer) {\n this.subscriptions.push(\n this.ngtRadioButtonContainer.onActiveRadioButtonChange.subscribe((activeRadioButton: NgtRadioButtonComponent) => {\n this.value = (activeRadioButton.name === this.name);\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtCheckbox', {\n color: {\n text: 'text-gray-500',\n border: 'border-gray-500',\n }\n });\n }\n\n public ngAfterViewInit() {\n this.renderer.listen(this.element.nativeElement, 'change', (value) => {\n this.onNativeChange(this.element.nativeElement.checked);\n });\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public change(value: boolean) {\n if (value) {\n this.element.nativeElement.checked = value;\n\n if (this.ngtRadioButtonContainer) {\n this.ngtRadioButtonContainer.setActiveRadioButton(this);\n }\n }\n }\n\n public onNativeChange(value: boolean) {\n this.value = value ? value : !value;\n\n if (this.ngtRadioButtonContainer) {\n this.ngtRadioButtonContainer.setActiveRadioButton(this);\n }\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtRadioButtonContainerComponent } from './ngt-radio-button-container/ngt-radio-button-container.component';\nimport { NgtRadioButtonComponent } from './ngt-radio-button.component';\n\n@NgModule({\n declarations: [NgtRadioButtonComponent, NgtRadioButtonContainerComponent],\n exports: [NgtRadioButtonComponent, NgtRadioButtonContainerComponent],\n imports: [\n CommonModule,\n NgtShiningModule,\n ]\n})\nexport class NgtRadioButtonModule { }\n","import {\n Component,\n ElementRef,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self,\n SkipSelf,\n ViewChild,\n} from '@angular/core';\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-textarea',\n templateUrl: './ngt-textarea.component.html',\n styleUrls: ['./ngt-textarea.component.css'],\n providers: [\n NgtMakeProvider(NgtTextareaComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtTextareaComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\n @ViewChild(\"element\", { static: true }) public element: ElementRef;\n\n // Visual\n @Input() public label: string = \"\";\n @Input() public placeholder: string = \"\";\n @Input() public rows: string = \"3\";\n @Input() public helpTitle: string;\n @Input() public showCharactersLength: boolean = false;\n @Input() public helpText: boolean = false;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining: boolean = false;\n\n // Behavior\n @Input() public name: string;\n @Input() public isDisabled: boolean = false;\n @Input() public isReadonly: boolean = false;\n @Input() public jit: boolean = false;\n @Input() public focus: boolean = false;\n\n // Validation\n @Input() public isRequired: boolean = false;\n @Input() public maxLength: number = 300;\n\n public componentReady = false;\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n private renderer: Renderer2,\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtTextarea', {\n color: {\n border: 'border-gray-400 focus:border-gray-700',\n bg: 'bg-bg-white focus:bg-white',\n text: 'text-gray-800'\n }\n });\n }\n\n public ngOnChanges(changes) {\n if (changes.isRequired) {\n this.updateValidations();\n }\n }\n\n public ngOnInit() {\n if (!this.formContainer) {\n console.warn(\"The element must be inside a <form #form='ngForm'> tag!\", this.element.nativeElement);\n }\n\n if (!this.name) {\n console.warn(\"The element must contain a name attribute!\", this.element.nativeElement);\n } else {\n setTimeout(() => {\n this.componentReady = true;\n\n setTimeout(() => {\n this.initComponent();\n });\n }, 500);\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public setFocus() {\n setTimeout(() => {\n this.element.nativeElement.focus();\n }, 200);\n }\n\n public clear() {\n this.element.nativeElement.value = '';\n this.value = '';\n }\n\n public change(value) {\n let nativeValue = this.getNativeValue();\n let ngModelValue = value ? value : '';\n\n if (this.componentReady) {\n this.onValueChangeEvent.emit(this.value);\n }\n\n if (this.value != nativeValue) {\n this.element.nativeElement.value = ngModelValue;\n }\n }\n\n public getRemainingCharacters() {\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length) {\n if ((this.maxLength - this.element.nativeElement.value.length) > 0) {\n return this.maxLength - this.element.nativeElement.value.length;\n } else {\n return 0;\n }\n }\n\n return this.maxLength;\n }\n\n private initComponent() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n if (this.focus) {\n this.setFocus();\n }\n\n let watch = \"change\";\n\n if (this.jit) {\n watch += \" keyup keydown keypress\";\n }\n\n watch.split(' ').forEach((evt) => {\n this.renderer.listen(this.element.nativeElement, evt, () => {\n let nativeValue = this.getNativeValue();\n\n if (this.value != nativeValue) {\n this.value = nativeValue;\n }\n });\n });\n\n this.renderer.listen(this.element.nativeElement, \"keydown\", (event) => {\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length >= this.maxLength) {\n // Backspace and delete\n if (event.keyCode != 8 && event.keyCode != 46) {\n event.preventDefault();\n\n return false;\n }\n }\n });\n\n this.updateValidations();\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n } else {\n console.warn(\"The element must contain a ngModel property\", this.element.nativeElement);\n }\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n if (this.maxLength) {\n syncValidators.push(Validators.maxLength(this.maxLength));\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private getNativeValue() {\n return this.element.nativeElement.value;\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtTextareaComponent } from './ngt-textarea.component';\n\n@NgModule({\n declarations: [NgtTextareaComponent],\n exports: [NgtTextareaComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtFormModule\n ]\n})\nexport class NgtTextareaModule { }\n","import {\n Component,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { FlatpickrOptions, Ng2FlatpickrComponent } from 'ng2-flatpickr';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\nconst Brazil = require(\"flatpickr/dist/l10n/pt.js\").default.pt;\nconst US = require(\"flatpickr/dist/l10n/default.js\").default;\nlet moment = require('moment');\n\n@Component({\n selector: 'ngt-date',\n templateUrl: './ngt-date.component.html',\n styleUrls: ['./ngt-date.component.css'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n NgtMakeProvider(NgtDateComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtDateComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\n @ViewChild(\"ng2FlatpickrComponent\", { static: true }) public ng2FlatpickrComponent: Ng2FlatpickrComponent;\n\n // Visual\n @Input() public label: string = \"\";\n @Input() public placeholder: string = \"\";\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining = false;\n @Input() public dateFormat: string = 'd/m/Y H:i';\n @Input() public dateFormatNgModel = 'YYYY-MM-DD HH:mm:00';\n\n // Behavior\n @Input() public name: string;\n @Input() public isDisabled: boolean = false;\n @Input() public isReadonly: boolean = false;\n @Input() public mode: NgtDateMode;\n @Input() public time_24hr: boolean = true;\n @Input() public enableTime: boolean = true;\n @Input() public noCalendar: boolean = false;\n @Input() public minuteIncrement: number = 1;\n @Input() public allowInput: boolean = false;\n @Input() public locale: NgtDateLocale;\n @Input() public allowClear: boolean = true;\n @Input() public minDate: string;\n @Input() public maxDate: string;\n @Input() public defaultDate: string;\n\n // Validation\n @Input() public isRequired: boolean = false;\n\n public ngtStyle: NgtStylizableService;\n public dateConfig: FlatpickrOptions;\n public nativeValue: any;\n public componentReady = false;\n public nativeName = uuid();\n public inputProperties: {\n htmlType?: string;\n length?: number;\n } = {};\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtDate', {\n h: 'h-12',\n color: {\n text: 'text-gray-800'\n }\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.isRequired) {\n this.updateValidations();\n }\n\n if (changes.mode) {\n this.mode = getEnumFromString(changes.mode.currentValue, NgtDateMode);\n }\n\n if (changes.locale) {\n this.locale = getEnumFromString(changes.locale.currentValue, NgtDateLocale);\n }\n }\n\n public ngOnInit() {\n this.dateConfig = {\n dateFormat: this.dateFormat,\n mode: this.getDateMode(),\n minuteIncrement: this.minuteIncrement,\n minDate: this.minDate,\n maxDate: this.maxDate,\n time_24hr: this.time_24hr,\n enableTime: this.enableTime,\n noCalendar: this.noCalendar,\n allowInput: this.allowInput,\n locale: this.getLocale(),\n onChange: (selectedDates, dateStr, instance) => this.onNativeChange(selectedDates, instance, true),\n onClose: (selectedDates, dateStr, instance) => this.onNativeChange(selectedDates, instance, false),\n };\n\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\");\n } else {\n setTimeout(() => {\n this.componentReady = true;\n setTimeout(() => {\n this.initComponent();\n });\n }, 500);\n }\n }\n\n public ngOnDestroy() {\n const flatpickrElement = document.getElementsByClassName('flatpickr-calendar');\n\n if (flatpickrElement?.length) {\n flatpickrElement[flatpickrElement.length - 1].remove();\n }\n\n this.destroySubscriptions();\n }\n\n public clearInput(clearInstance = false) {\n this.value = '';\n this.nativeValue = '';\n\n if (this.ng2FlatpickrComponent && clearInstance) {\n this.ng2FlatpickrComponent.setDateFromInput('');\n }\n }\n\n public change(value: any) {\n if (this.componentReady) {\n this.onValueChangeEvent.emit(this.value);\n }\n\n if (!value || (value instanceof Object && !Object.keys(value).length)) {\n return this.clearInput();\n }\n\n if (value && value != this.nativeValue) {\n let firstValue = moment(value);\n\n if ((value instanceof Object && Object.keys(value).length) || (value instanceof Array && value.length)) {\n firstValue = moment(value[0]);\n\n if (value.length == 2) {\n firstValue = firstValue;\n\n let secondValue = moment(value[1]);\n\n if (firstValue.isValid() && secondValue.isValid()) {\n return (<any>this.ng2FlatpickrComponent.flatpickr).setDate([\n firstValue.format(this.getMomentDateFormat()),\n secondValue.format(this.getMomentDateFormat())\n ], true, this.dateFormat);\n }\n }\n }\n\n if (firstValue.isValid()) {\n return (<any>this.ng2FlatpickrComponent.flatpickr).setDate(firstValue.format(this.getMomentDateFormat()), true, this.dateFormat);\n }\n\n this.ng2FlatpickrComponent.setDateFromInput('');\n this.clearInput();\n }\n }\n\n public onNativeChange(value: any, instance: any, triggerClose: boolean) {\n if (!value || (value instanceof Object && !Object.keys(value).length)) {\n if (triggerClose) {\n instance.close();\n }\n\n return this.clearInput();\n }\n\n if (this.mode == NgtDateMode.RANGE) {\n this.nativeValue = [];\n\n value.forEach(element => {\n element = moment(element);\n\n if (element && element.isValid()) {\n this.nativeValue.push(element.format(this.dateFormatNgModel));\n }\n });\n } else if (value[0]) {\n value = moment(value[0]);\n\n if (value && value.isValid()) {\n this.nativeValue = value.format(this.dateFormatNgModel);\n }\n }\n\n if (this.value != this.nativeValue) {\n this.value = this.nativeValue;\n }\n }\n\n public getNativeValue() {\n let nativeValue: any = this.nativeValue;\n\n if (nativeValue && nativeValue.format) {\n nativeValue = nativeValue.format(this.dateFormatNgModel);\n }\n\n return nativeValue;\n }\n\n public getFormattedNativeValue() {\n let nativeValue: any = this.nativeValue;\n\n if (nativeValue && Array.isArray(nativeValue)) {\n let formattedNativeValue: string = '';\n\n nativeValue.forEach(element => {\n element = moment(element);\n\n if (element.format && !this.enableTime) {\n formattedNativeValue += element.format('DD/MM/YYYY') + ' ';\n } else if (element.format && this.enableTime) {\n formattedNativeValue += element.format('DD/MM/YYYY HH:mm:00') + ' ';\n }\n });\n\n return formattedNativeValue;\n } else if (nativeValue) {\n nativeValue = moment(nativeValue);\n\n if (nativeValue.format && !this.enableTime) {\n return nativeValue.format('DD/MM/YYYY') + ' ';\n } else if (nativeValue.format && this.enableTime) {\n return nativeValue.format('DD/MM/YYYY HH:mm:00') + ' ';\n }\n }\n\n return this.placeholder;\n }\n\n public hasErrors(): boolean {\n return this.formControl?.errors && (this.formControl?.dirty || (this.formContainer && this.formContainer['submitted']));\n }\n\n private initComponent() {\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\n if (this.defaultDate) {\n this.value = moment(this.defaultDate).format(this.dateFormatNgModel);\n }\n\n this.updateValidations();\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n }\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private getLocale() {\n if (this.locale) {\n if (this.locale == NgtDateLocale.BRAZIL) {\n return Brazil;\n }\n }\n\n return US;\n }\n\n private getDateMode() {\n if (this.mode) {\n if (this.mode == NgtDateMode.RANGE) {\n return 'range';\n }\n }\n\n return 'single';\n }\n\n private getMomentDateFormat() {\n let dateFormat = '';\n\n for (let i = 0; i < this.dateFormat.length; i++) {\n switch (this.dateFormat.charAt(i)) {\n case 'd':\n dateFormat += 'DD';\n break;\n case 'm':\n dateFormat += 'MM';\n break;\n case 'M':\n dateFormat += 'MMM';\n break;\n case 'Y':\n dateFormat += 'YYYY';\n break;\n case '/':\n dateFormat += '/';\n break;\n case '-':\n dateFormat += '-';\n break;\n case ':':\n dateFormat += ':';\n break;\n case 'H':\n dateFormat += 'HH';\n break;\n case 'i':\n dateFormat += 'mm';\n break;\n case 's':\n dateFormat += 'ss';\n break;\n default:\n if (this.dateFormat.charAt(i) != '.') {\n dateFormat += this.dateFormat.charAt(i);\n }\n }\n }\n\n return dateFormat ? dateFormat : 'DD/MM/YYYY HH:mm:00';\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport enum NgtDateLocale {\n BRAZIL = 'BRAZIL',\n US = 'US'\n}\n\nexport enum NgtDateMode {\n SINGLE = 'SINGLE',\n RANGE = 'RANGE'\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Ng2FlatpickrModule } from 'ng2-flatpickr';\n\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtDateComponent } from './ngt-date.component';\n\n@NgModule({\n declarations: [NgtDateComponent],\n exports: [NgtDateComponent],\n imports: [\n CommonModule,\n FormsModule,\n Ng2FlatpickrModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtHelperModule,\n ]\n})\nexport class NgtDateModule { }\n","import { Component, Injector, Input, OnChanges, OnDestroy, Optional, Self, SimpleChanges, SkipSelf } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\n\n@Component({\n selector: 'ngt-button',\n templateUrl: './ngt-button.component.html',\n styleUrls: ['./ngt-button.component.css'],\n})\nexport class NgtButtonComponent implements OnChanges, OnDestroy {\n @Input() public link: boolean = false;\n @Input() public href: string;\n @Input() public type: string = 'success';\n @Input() public loading: boolean = false;\n @Input() public isDisabled: boolean = false;\n @Input() public noSubmit: boolean = false;\n\n public ngtStyle: NgtStylizableService;\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @SkipSelf()\n private ngtFormComponent: NgtFormComponent,\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n if (this.ngtFormComponent) {\n this.subscriptions.push(\n this.ngtFormComponent.onLoadingChange.subscribe((loading: boolean) => {\n this.loading = loading;\n })\n );\n }\n }\n\n public onClick(event: Event) {\n if (this.isDisabled || this.loading) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.type) {\n if (changes.type.currentValue == 'success') {\n this.ngtStyle.load(this.injector, 'NgtSuccessButton', {\n color: {\n bg: 'bg-green-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n } else if (changes.type.currentValue == 'warning') {\n this.ngtStyle.load(this.injector, 'NgtWarningButton', {\n color: {\n bg: 'bg-orange-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n } else if (changes.type.currentValue == 'danger') {\n this.ngtStyle.load(this.injector, 'NgtDangerButton', {\n color: {\n bg: 'bg-red-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n } else {\n this.ngtStyle.load(this.injector, 'NgtInfoButton', {\n color: {\n bg: 'bg-blue-500',\n text: 'text-white text-sm',\n },\n px: 'px-4',\n py: 'py-2'\n });\n }\n }\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\nimport { NgtButtonComponent } from './ngt-button.component';\n\n@NgModule({\n declarations: [NgtButtonComponent],\n exports: [NgtButtonComponent],\n imports: [\n CommonModule,\n RouterModule,\n NgtFormModule\n ]\n})\nexport class NgtButtonModule { }\n","import { Component, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet-body',\n templateUrl: './ngt-portlet-body.component.html',\n styleUrls: ['./ngt-portlet-body.component.css']\n})\nexport class NgtPortletBodyComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortletBody', {\n color: {\n text: 'text-black'\n }\n }, ['NgtPortletStyle']);\n }\n}\n","import { Component, Injector, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet-footer',\n templateUrl: './ngt-portlet-footer.component.html',\n styleUrls: ['./ngt-portlet-footer.component.css']\n})\nexport class NgtPortletFooterComponent {\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortletFooter', {\n color: {\n bg: 'bg-gray-200',\n text: 'text-black'\n }\n }, ['NgtPortletStyle']);\n }\n}\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet-header',\n templateUrl: './ngt-portlet-header.component.html',\n styleUrls: ['./ngt-portlet-header.component.css']\n})\nexport class NgtPortletHeaderComponent {\n @Input() public caption: string = '';\n @Input() public icon: string = '';\n @Input() public helperTitle: string = '';\n @Input() public helperText: string = '';\n @Input() public helperIconColor: string = '';\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortletHeader', {\n h: 'h-auto',\n w: 'w-auto',\n border: 'border-b',\n color: {}\n }, ['NgtPortletStyle']);\n }\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-portlet',\n templateUrl: './ngt-portlet.component.html',\n styleUrls: ['./ngt-portlet.component.css'],\n animations: [\n trigger('fadeUp', [\n state('void', style({ transform: 'translateY(20px)', opacity: 0 })),\n transition(':enter', [\n animate(500)\n ])\n ])\n ]\n})\nexport class NgtPortletComponent {\n @Input() public caption: string;\n @Input() public icon: string = null;\n @Input() public customLayout: boolean = false;\n @Input() public withFooter: boolean = false;\n @Input() public withBody: boolean = true;\n @Input() public helpTitle: string = '';\n @Input() public helpText: string = '';\n @Input() public helpIconColor: string = '';\n\n public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtPortlet', {\n h: 'h-auto',\n shadow: 'shadow',\n color: {}\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtPortletBodyComponent } from './ngt-portlet-body/ngt-portlet-body.component';\nimport { NgtPortletFooterComponent } from './ngt-portlet-footer/ngt-portlet-footer.component';\nimport { NgtPortletHeaderComponent } from './ngt-portlet-header/ngt-portlet-header.component';\nimport { NgtPortletComponent } from './ngt-portlet.component';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\n\n@NgModule({\n declarations: [\n NgtPortletComponent,\n NgtPortletHeaderComponent,\n NgtPortletBodyComponent,\n NgtPortletFooterComponent\n ],\n exports: [\n NgtPortletComponent,\n NgtPortletHeaderComponent,\n NgtPortletBodyComponent,\n NgtPortletFooterComponent\n ],\n imports: [\n CommonModule,\n NgtSvgModule,\n NgtHelperModule\n ]\n})\nexport class NgtPortletModule { }\n","export enum Size {\n AUTO = 'AUTO',\n XS = 'XS',\n SM = 'SM',\n MD = 'MD',\n XL = 'XL',\n FULL = 'FULL'\n};\n","import { animate, AnimationStyleMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport function slideLeftToRightAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateX(-50px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n\nexport function slideRightToLeftAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateX(50px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n\nexport function fadeDownAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateY(-20px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n\nexport function fadeUpAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\n return trigger(name, [\n state('void', customStyle ? customStyle : style({ transform: 'translateY(20px)', opacity: 0 })),\n transition(':enter, :leave', [\n animate(duration)\n ])\n ]);\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostListener,\n Injector,\n Input,\n Optional,\n Self,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\n\nimport { fadeDownAnimation } from '../../animations/ngt-angular-animations';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { Size } from '../../enums/size.enum';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-sidenav',\n templateUrl: './ngt-sidenav.component.html',\n styleUrls: ['./ngt-sidenav.component.css'],\n animations: [\n fadeDownAnimation('fadeDownAnimation', 600)\n ],\n})\n\nexport class NgtSidenavComponent implements AfterViewInit {\n @ViewChild('sideMenu', { static: true }) public sideMenuRef: ElementRef;\n @ViewChild('container', { static: true }) public containerRef: ElementRef;\n\n @Input() public size: Size = Size.XS;\n @Input() public initVisible: boolean = false;\n @Input() public closeMenuOnMobileView: boolean = true;\n\n public visible: boolean = false;\n public open: boolean = false;\n public isMenuContracted: boolean = false;\n public ngtStyle: NgtStylizableService;\n\n private screenWidth: number;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStyleDirective: NgtStylizableDirective,\n ) {\n if (this.ngtStyleDirective) {\n this.ngtStyle = this.ngtStyleDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'Sidenav', {\n h: 'md:h-auto h-screen',\n color: {}\n });\n\n this.bindScreenSize();\n }\n\n @HostListener('window:resize', ['$event'])\n public bindScreenSize(event?) {\n this.screenWidth = window.innerWidth;\n }\n\n public ngAfterViewInit() {\n if (this.initVisible) {\n setTimeout(() => {\n this.visible = true;\n });\n }\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.size) {\n this.size = getEnumFromString(changes.size.currentValue, Size);\n }\n }\n\n public toggleMenu() {\n if (this.open) {\n this.closeMenu();\n } else {\n this.openMenu();\n }\n }\n\n public closeMenu() {\n this.open = false;\n }\n\n public openMenu() {\n this.open = true;\n }\n\n public getNavSize() {\n switch (this.size) {\n case Size.AUTO: return 'md:w-auto w-4/12';\n case Size.XS: return 'md:w-1/12 w-4/12';\n case Size.SM: return 'md:w-2/12 w-5/12';\n case Size.MD: return 'md:w-4/12 w-6/12';\n case Size.XL: return 'md:w-6/12 w-full';\n case Size.FULL: return 'w-full';\n }\n }\n\n public getContainerSize() {\n if (!this.visible) {\n return 'w-full';\n }\n\n if (this.isMobileView()) {\n return 'w-full';\n }\n\n switch (this.size) {\n case Size.AUTO: return 'w-full';\n case Size.XS: return 'md:w-11/12 w-full';\n case Size.SM: return 'md:w-10/12 w-full';\n case Size.MD: return 'md:w-8/12 w-full';\n case Size.XL: return 'md:w-6/12 w-full';\n case Size.FULL: return 'w-full';\n }\n }\n\n public toggleMenuSize(size: Size) {\n if (this.isMenuContracted) {\n this.size = size;\n this.isMenuContracted = false;\n } else {\n this.size = Size.AUTO;\n this.isMenuContracted = true;\n }\n }\n\n public isMobileView() {\n if (!this.closeMenuOnMobileView) {\n return false;\n }\n\n return this.screenWidth < 1024;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtSidenavComponent } from './ngt-sidenav.component';\n\n@NgModule({\n declarations: [NgtSidenavComponent],\n exports: [NgtSidenavComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtSidenavModule { }\n","import { Component, ElementRef, Injector, Input, Optional, Self, ViewChild } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-header-nav',\n templateUrl: './ngt-header-nav.component.html',\n styleUrls: ['./ngt-header-nav.component.css']\n})\nexport class NgtHeaderNavComponent {\n @ViewChild('element', { static: true }) public element: ElementRef;\n\n @Input() public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective\n ) {\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'HeaderNav', {\n h: 'h-auto',\n color: {}\n });\n }\n\n public ngAfterViewInit() {\n this.element.nativeElement.classList.add('tail-animate-fade-up');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtHeaderNavComponent } from './ngt-header-nav.component';\n\n@NgModule({\n declarations: [NgtHeaderNavComponent],\n exports: [NgtHeaderNavComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtHeaderNavModule { }\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-content',\n templateUrl: './ngt-content.component.html',\n styleUrls: ['./ngt-content.component.css']\n})\nexport class NgtContentComponent {\n @Input() public ngtStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective\n ) {\n if (this.tailStylizableDirective) {\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'Content', {\n color: {}\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgtContentComponent } from './ngt-content.component';\n\n@NgModule({\n declarations: [NgtContentComponent],\n exports: [NgtContentComponent],\n imports: [\n CommonModule\n ]\n})\nexport class NgtContentModule { }\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, Injector, Input, Optional, Output, Self } from '@angular/core';\n\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\n\n@Component({\n selector: 'ngt-section',\n templateUrl: './ngt-section.component.html',\n styleUrls: ['./ngt-section.component.css'],\n animations: [\n trigger('enterAnimation', [\n state('void', style({ transform: 'translateY(-20px)', opacity: 0 })),\n transition(':enter', [\n animate(400)\n ])\n ]),\n ]\n})\nexport class NgtSectionComponent {\n @Input() public icon: string;\n @Input() public caption: string;\n @Input() public subtitle: string;\n @Input() public accordion = false;\n @Input() public showSection = true;\n @Input() public helpTitle: string = '';\n @Input() public helpText: string = '';\n @Input() public helpIconColor: string = '';\n\n @Output() public onToggleSection: EventEmitter<any> = new EventEmitter();\n\n public ngtSectionStyle: NgtStylizableService;\n public ngtCaptionStyle: NgtStylizableService;\n public ngtSubtitleStyle: NgtStylizableService;\n\n public constructor(\n private injector: Injector,\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective\n ) {\n this.ngtCaptionStyle = new NgtStylizableService();\n this.ngtSubtitleStyle = new NgtStylizableService();\n\n if (this.ngtStylizableDirective) {\n this.ngtSectionStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtSectionStyle = new NgtStylizableService();\n }\n\n this.ngtSectionStyle.load(this.injector, 'NgtSection', {\n h: 'h-12',\n w: 'w-12',\n my: 'my-1',\n pr: 'pr-1',\n px: 'md:px-5',\n color: {\n text: 'text-gray-800'\n }\n });\n\n this.ngtCaptionStyle.load(this.injector, 'NgtSectionCaption', {\n text: 'text-sm',\n font: 'font-normal',\n ml: 'ml-2',\n pb: 'pb-2',\n border: 'border-none',\n color: {\n text: 'text-gray-800',\n border: ''\n }\n });\n\n this.ngtSubtitleStyle.load(this.injector, 'NgtSectionSubtitle', {\n text: 'text-xs',\n font: 'font-normal',\n border: 'border-none',\n ml: 'ml-2',\n color: {\n text: 'text-gray-500',\n border: ''\n }\n });\n }\n\n public open() {\n this.showSection = true;\n this.onToggleSection.emit(this.showSection);\n }\n\n public close() {\n this.showSection = false;\n this.onToggleSection.emit(this.showSection);\n }\n\n public toggle() {\n this.showSection = !this.showSection;\n this.onToggleSection.emit(this.showSection);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtSectionComponent } from './ngt-section.component';\n\n@NgModule({\n declarations: [NgtSectionComponent],\n exports: [NgtSectionComponent],\n imports: [\n CommonModule,\n NgtStylizableModule,\n NgtSvgModule,\n NgtHelperModule\n ]\n})\nexport class NgtSectionModule { }\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, ControlContainer, NgForm } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\nimport { uuid } from '../../helpers/uuid';\nimport { NgtHttpPagination, NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\nimport { NgtInputComponent } from '../ngt-input/ngt-input.component';\n\n@Component({\n selector: 'ngt-multi-select',\n templateUrl: './ngt-multi-select.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./ngt-multi-select.component.css'],\n providers: [\n NgtMakeProvider(NgtMultiSelectComponent)\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtMultiSelectComponent extends NgtBaseNgModel implements OnInit, OnDestroy, OnChanges {\n @ViewChild('containerRef') public containerRef: ElementRef;\n @ViewChild('inputSearch') public inputSearch: NgtInputComponent;\n @ViewChild('elementCheckboxTemplate') public elementCheckboxTemplate: TemplateRef<any>;\n\n /** Visual */\n @Input() public customOptionTemplate: TemplateRef<any>;\n @Input() public customHeaderTemplate: TemplateRef<any>;\n @Input() public label: string;\n @Input() public helpTitle: string;\n @Input() public helpText: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public shining: boolean = false;\n @Input() public loading: boolean = false;\n\n /** Behavior */\n @Input() public bindLabel: string | Function = 'name';\n @Input() public bindSearch: string = 'name';\n @Input() public itemsPerPage: number = 15;\n @Input() public name: string;\n @Input() public remoteResource: any;\n @Input() public items: Array<any> = [];\n @Input() public searchable: boolean = true;\n\n /** Validation */\n @Input() public isRequired: boolean;\n @Input() public isDisabled: boolean;\n\n @Output() public onDataChange: EventEmitter<Array<NgtSelectContainerSelectableElementInterface>> = new EventEmitter();\n\n public searchTerm: string = '';\n public searchInputName: string = uuid();\n\n public selectAllCheckboxName: string = uuid();\n public displayOnlySelectedName: string = uuid();\n\n public selectedElements: Array<NgtSelectContainerSelectableElementInterface> = [];\n public itemsTotal: number;\n public selectAllCheckbox: boolean;\n public displayOnlySelected: boolean;\n\n public nativeName: string = uuid();\n public nativeValue: any;\n\n public ngtStyle: NgtStylizableService;\n public selectableElements: Array<NgtSelectContainerSelectableElementInterface> = [];\n public selectableElementsOnSearch: Array<NgtSelectContainerSelectableElementInterface> = [];\n public componentReady: boolean;\n\n private pagination: NgtHttpPagination = {\n count: null,\n page: 1,\n pages: null,\n total: null,\n from: null,\n to: null,\n per_page: null\n };\n\n private subscriptions: Array<Subscription> = [];\n private inSearch: boolean;\n private searchTimeout: any;\n private previousSearchTerm: string = '';\n private becameVisible: boolean;\n\n public constructor(\n private ngtHttpService: NgtHttpService,\n private injector: Injector,\n private changeDetector: ChangeDetectorRef,\n\n @Optional() @Self()\n public ngtStylizableDirective: NgtStylizableDirective,\n\n @Optional() @Host()\n public formContainer: ControlContainer,\n\n @Optional() @SkipSelf()\n public ngtFormComponent: NgtFormComponent,\n\n @Optional()\n public ngtTranslateService: NgtTranslateService\n ) {\n super();\n\n if (this.ngtFormComponent) {\n this.shining = this.ngtFormComponent.isShining();\n\n this.subscriptions.push(\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\n this.shining = shining;\n })\n );\n }\n\n if (this.ngtStylizableDirective) {\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\n } else {\n this.ngtStyle = new NgtStylizableService();\n }\n\n this.ngtStyle.load(this.injector, 'NgtMultiSelect', { h: 'h-64' });\n }\n\n @HostListener('scroll', ['$event'])\n public onScroll(event: any): void {\n const isScrollEnd = event.target.scrollTop && event.target.offsetHeight + event.target.scrollTop >= (event.target.scrollHeight - 30);\n\n if (isScrollEnd && !this.loading && !this.displayOnlySelected && this.selectableElements?.length\n && this.pagination.per_page < this.pagination.total) {\n const currentPerPage = typeof this.pagination.per_page === 'string'\n ? Number.parseInt(this.pagination.per_page)\n : this.pagination.per_page;\n\n setTimeout(() => this.loadData(currentPerPage + this.itemsPerPage, this.searchTerm));\n }\n }\n\n public ngOnInit(): void {\n if (!this.formContainer) {\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\n }\n\n if (!this.name) {\n console.error(\"The element must contain a name attribute!\");\n }\n }\n\n public ngDoCheck(): void {\n if (!this.becameVisible && !this.isHidden()) {\n this.becameVisible = true;\n\n this.loadData().then(() => this.initComponentValidation());\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.isRequired && this.componentReady) {\n this.updateValidations();\n }\n\n if (changes.isDisabled) {\n this.displayOnlySelected = changes.isDisabled.currentValue;\n }\n\n if (changes.items) {\n this.bindSelectableElements(changes.items.currentValue);\n this.componentReady = true;\n }\n\n if (changes.remoteResource && this.becameVisible) {\n this.loadData().then(() => this.initComponentValidation());\n }\n\n if (changes.itemsPerPage) {\n this.pagination.per_page = changes.itemsPerPage.currentValue;\n }\n }\n\n public ngOnDestroy(): void {\n this.destroySubscriptions();\n }\n\n public setFocus(): void {\n setTimeout(() => this.inputSearch.setFocus());\n }\n\n public refresh(): void {\n this.loadData(this.itemsPerPage, this.searchTerm);\n }\n\n public reset(): void {\n this.value = [];\n this.nativeValue = [];\n this.selectedElements = [];\n this.refresh();\n }\n\n public selectAll(): void {\n if (!this.loading && !this.isDisabled) {\n this.selectAllCheckbox = !this.selectAllCheckbox;\n\n this.value = [];\n this.nativeValue = [];\n this.selectedElements = [];\n\n this.loadData(this.selectAllCheckbox ? this.pagination.total : this.itemsPerPage)\n .then(() => {\n this.containerRef?.nativeElement?.scrollTo({ top: 0 });\n this.selectableElements.forEach(element => element.isSelected = this.selectAllCheckbox);\n\n if (this.selectAllCheckbox) {\n this.selectedElements = this.selectableElements;\n }\n });\n }\n }\n\n public onNativeChange(selectableElement: NgtSelectContainerSelectableElementInterface): void {\n if (this.componentReady) {\n this.handleElementSelection(selectableElement);\n\n if (this.hasChangesBetweenBindings(this.value, this.selectedElements)) {\n this.value = this.selectedElements.map(e => e.value);\n }\n }\n }\n\n public change(selectedElements: Array<any>): void {\n if (this.hasChangesBetweenBindings(selectedElements, this.selectedElements)) {\n if (this.selectableElements?.length) {\n this.bindSelectedElements(selectedElements);\n\n this.selectableElements.filter(element => this.isSelectedElement(element))\n .forEach(element => element.isSelected = true);\n\n this.selectableElementsOnSearch.filter(element => this.isSelectedElement(element))\n .forEach(element => element.isSelected = true);\n } else {\n this.selectedElements = selectedElements?.map(\n element => ({ uuid: uuid(), isSelected: true, value: element })\n ) ?? [];\n\n this.changeDetector.detectChanges();\n }\n\n if (!selectedElements?.length) {\n this.markAsPristine();\n }\n }\n }\n\n public toggleItem(event: Event, selectableElement: NgtSelectContainerSelectableElementInterface): void {\n event.stopImmediatePropagation();\n\n if (!this.isDisabled) {\n selectableElement.isSelected = !selectableElement.isSelected;\n\n this.handleElementSelection(selectableElement);\n }\n }\n\n public search(term: string): void {\n if (!this.componentReady || term === undefined || term === null || term === this.previousSearchTerm) {\n return;\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.previousSearchTerm = term;\n\n if (!term) {\n this.inSearch = false;\n\n if (this.items?.length) {\n return;\n }\n }\n\n this.inSearch = true;\n\n if (this.items?.length) {\n this.selectableElementsOnSearch = this.selectableElements.filter(\n item => this.getSelectableElementValue(item).includes(term)\n );\n } else {\n this.loadData(this.itemsPerPage, term);\n }\n }, 500);\n }\n\n public getSelectableElements(): Array<any> {\n if (this.inSearch && this.items?.length) {\n return this.selectableElementsOnSearch;\n } else if (this.displayOnlySelected) {\n return this.selectedElements;\n }\n\n return this.selectableElements;\n }\n\n public getSelectableElementValue(selectableItem: any): string {\n if (typeof this.bindLabel === 'function') {\n return this.bindLabel(selectableItem.value);\n } else if (typeof selectableItem.value['getAttribute'] === 'function') {\n return selectableItem.value.getAttribute(this.bindLabel);\n }\n\n return selectableItem.value[this.bindLabel];\n }\n\n public hasValidationErrors(): boolean {\n return this.formControl?.errors && (\n this.formControl.dirty || (this.formContainer && this.formContainer['submitted'])\n );\n }\n\n private handleElementSelection(selectableElement: NgtSelectContainerSelectableElementInterface): void {\n if (selectableElement.isSelected && !this.isSelectedElement(selectableElement)) {\n this.selectedElements.push(selectableElement);\n } else if (!selectableElement.isSelected && this.isSelectedElement(selectableElement)) {\n this.selectedElements = this.selectedElements.filter(\n selectedElement => selectedElement.uuid !== selectableElement.uuid\n );\n\n if (this.displayOnlySelected && !this.selectedElements.length) {\n this.displayOnlySelected = false;\n }\n }\n }\n\n private async loadData(perpage: number = this.itemsPerPage, searchTerm?: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (this.remoteResource) {\n if (perpage == this.itemsPerPage) {\n this.containerRef?.nativeElement?.scrollTo({ top: 0 });\n }\n\n this.selectableElements = [];\n this.loading = true;\n\n const pagination: NgtHttpPagination = { ...this.pagination, ...{ per_page: perpage } };\n const filters = searchTerm ? { [this.bindSearch]: searchTerm } : null;\n\n this.subscriptions.push(\n this.ngtHttpService.get(\n this.remoteResource, filters, pagination\n ).subscribe(\n (response: NgtHttpResponse) => {\n this.bindSelectableElements(response.data);\n this.pagination = response.meta.pagination;\n\n this.itemsTotal = this.pagination.total;\n this.loading = false;\n\n this.onDataChange.emit(this.selectableElements);\n this.componentReady = true;\n this.changeDetector.detectChanges();\n\n setTimeout(() => this.displayOnlySelected = this.isDisabled);\n\n resolve();\n },\n (error) => {\n console.error(error);\n this.loading = false;\n this.changeDetector.detectChanges();\n\n reject();\n }\n )\n );\n } else {\n console.error('The property [remoteResource] needs to be present to be able to make remote search');\n }\n });\n }\n\n private bindSelectableElements(data: Array<any>): void {\n const formattedElements: Array<NgtSelectContainerSelectableElementInterface> = [];\n\n data.forEach(item => {\n const alreadySelected = this.findSelectedElement(item);\n\n if (alreadySelected) {\n formattedElements.push(alreadySelected);\n } else {\n formattedElements.push({ uuid: uuid(), isSelected: false, value: item });\n }\n });\n\n this.selectableElements = formattedElements;\n }\n\n private bindSelectedElements(selectedElements: Array<any>): void {\n this.selectableElements.forEach(selectableElement => {\n const shouldBeSelected: boolean = !!selectedElements?.find(\n selectedElement => this.compareWith(selectedElement, selectableElement.value)\n );\n\n if (shouldBeSelected) {\n selectableElement.isSelected = true;\n this.handleElementSelection(selectableElement);\n }\n });\n }\n\n private initComponentValidation(): void {\n if (this.formContainer?.control && (this.formControl = this.formContainer.control.get(this.name))) {\n this.formControl = this.formContainer.control.get(this.name);\n this.markAsPristine();\n this.updateValidations();\n }\n }\n\n private updateValidations(): void {\n const syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(this.isRequiredValidator());\n }\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private isRequiredValidator(): any {\n return (control: AbstractControl) => {\n if (Array.isArray(this.value) && this.value.length > 0) {\n return null;\n }\n\n return { 'required': true };\n };\n }\n\n private findSelectedElement(item: any): any {\n return this.selectedElements.find(selectedElement => this.compareWith(selectedElement.value, item));\n }\n\n private compareWith(a: any, b: any): boolean {\n if (typeof a['getApiId'] === 'function' && typeof b['getApiId'] === 'function') {\n return a.getApiId() == b.getApiId();\n } else if (a.id && b.id) {\n return a.id == b.id;\n }\n\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n private hasChangesBetweenBindings(value: Array<any>, nativeValue: Array<any>): boolean {\n if (value?.length && !value[0].uuid) {\n nativeValue = nativeValue.map(element => element.value);\n }\n\n return JSON.stringify(value) !== JSON.stringify(nativeValue);\n }\n\n private isSelectedElement(selectableElement: NgtSelectContainerSelectableElementInterface): boolean {\n return !!this.selectedElements.find(selectedElement => selectedElement.uuid === selectableElement.uuid);\n }\n\n private isHidden(): boolean {\n return !this.containerRef?.nativeElement.offsetParent;\n }\n\n private destroySubscriptions(): void {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n\nexport interface NgtSelectContainerSelectableElementInterface {\n uuid: string;\n isSelected: boolean;\n value: any;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\nimport { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtInputModule } from '../ngt-input/ngt-input.module';\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { NgtMultiSelectComponent } from './ngt-multi-select.component';\n\n@NgModule({\n declarations: [\n NgtMultiSelectComponent\n ],\n exports: [\n NgtMultiSelectComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgtValidationModule,\n NgtShiningModule,\n NgtHelperModule,\n NgtInputModule,\n NgtCheckboxModule,\n NgtStylizableModule\n ]\n})\nexport class NgtMultiSelectModule { }\n","import { Observable } from 'rxjs';\n\nexport abstract class NgtAttachmentHttpService {\n abstract preview(attachment: any): Observable<NgtAttachmentHttpResponse>;\n\n abstract thumbnail(attachment: any): Observable<NgtAttachmentHttpResponse>;\n\n abstract download(attachment: any): Observable<any>;\n\n abstract upload(remoteResource: any, file: any): Observable<any>;\n}\n\nexport interface NgtAttachmentHttpResponse {\n data?: any;\n}\n","import { Component, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\n\n@Component({\n selector: 'ngt-dropzone-file-viewer',\n styleUrls: ['./ngt-dropzone-file-viewer.component.css'],\n templateUrl: './ngt-dropzone-file-viewer.component.html'\n})\nexport class NgtDropzoneFileViewerComponent {\n @Input() public url: string = '';\n @Input() public fileName: string = '';\n @Output() public onClose: EventEmitter<any> = new EventEmitter();\n\n public canShowViewer: boolean = false;\n\n public constructor() { }\n\n @HostListener('window:keydown', ['$event'])\n public keyEvent(event: KeyboardEvent) {\n if (event.code == 'Escape') {\n this.canShowViewer = false;\n setTimeout(() => {\n this.onClose.emit();\n }, 500);\n }\n }\n\n public init() {\n this.canShowViewer = true;\n }\n\n public close() {\n this.canShowViewer = false;\n this.onClose.emit();\n }\n\n public downloadFile() {\n let file = document.createElement(\"a\");\n\n file.href = this.url;\n file.setAttribute(\"download\", this.fileName);\n file.click();\n }\n}\n","import {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n SkipSelf,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\nimport { NgxDropzoneChangeEvent, NgxDropzoneComponent } from 'ngx-dropzone';\nimport { forkJoin, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport Viewer from 'viewerjs';\n\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\nimport { getEnumFromString } from '../../helpers/enum/enum';\nimport { NgtAttachmentHttpService } from '../../services/http/ngt-attachment-http.service';\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\nimport { NgtDropzoneFileViewerComponent } from './ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\n\nexport interface NgtDropzoneFile {\n downloadUrl: string;\n previewUrl: string;\n thumbnailUrl: string;\n name: string;\n mimeType: string;\n fileSize: any;\n};\n\nexport enum NgtDropzoneFileTypeEnum {\n DOC = 'DOC',\n PDF = 'PDF',\n XLS = 'XLS',\n OTHER = 'OTHER'\n}\n\nexport enum NgtDropzonePreviewType {\n DEFAULT = 'DEFAULT',\n IMAGE = 'IMAGE',\n VIDEO = 'VIDEO'\n}\n\nexport enum NgtDropzoneErrorType {\n DEFAULT = 'DEFAULT',\n SIZE = 'SIZE',\n NO_MULTIPLE = 'NO_MULTIPLE',\n ITEMS_LIMIT = 'ITEMS_LIMIT',\n TYPE = 'TYPE'\n}\n\n@Component({\n selector: 'ngt-dropzone',\n templateUrl: './ngt-dropzone.component.html',\n styleUrls: ['./ngt-dropzone.component.css'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n NgtMakeProvider(NgtDropzoneComponent),\n ],\n viewProviders: [\n { provide: ControlContainer, useExisting: NgForm }\n ]\n})\nexport class NgtDropzoneComponent extends NgtBaseNgModel implements OnInit, OnDestroy, AfterContentChecked {\n @ViewChild('container') public container: ElementRef;\n @ViewChild('ngxDropzone', { static: true }) public ngxDropzone: NgxDropzoneComponent;\n @ViewChild(NgtDropzoneFileViewerComponent, { static: true }) public ngtDropzoneFileViewer: NgtDropzoneFileViewerComponent;\n\n // Visual\n @Input() public label: string;\n @Input() public placeholder: string;\n @Input() public helpTextColor: string = 'text-green-500';\n @Input() public helpText: string;\n @Input() public helpTitle: string;\n\n // Behavior\n @Input() public resources: Array<NgtDropzoneFile> = [];\n @Input() public multipleSelection: boolean = false;\n @Input() public itemsLimit: number;\n @Input() public showFileName: boolean = false;\n @Input() public disableClick: boolean = false;\n @Input() public disabled: boolean = false;\n @Input() public viewMode: boolean = false;\n @Input() public removable: boolean = false;\n @Input() public verticalExpandable: boolean = false;\n @Input() public acceptedFiles: string = '*' /** Mime type */;\n @Input() public maxFileSize: number; /** Bytes */\n @Input() public previewType: NgtDropzonePreviewType = NgtDropzonePreviewType.DEFAULT;\n @Input() public isRequired: boolean = false;\n @Input() public name: string;\n @Input() public remoteResource: any;\n\n @Output() public onFileSelected: EventEmitter<NgxDropzoneChangeEvent> = new EventEmitter();\n @Output() public onFileSelectError: EventEmitter<NgtDropzoneErrorType> = new EventEmitter();\n @Output() public onFileUploadFail: EventEmitter<any> = new EventEmitter();\n @Output() public onFileRemoved = new EventEmitter();\n @Output() public onFileUploaded = new EventEmitter();\n @Output() public onFilePreviewLoaded = new EventEmitter();\n\n public dropzoneHeight: string = '180px';\n public uploadedResources = [];\n public forceDisableClick: boolean = false;\n public nativeValue = [];\n public showNgtDropzoneFileViewer: boolean = false;\n public componentReady = false;\n public loading: boolean = false;\n public ngtDropzoneLoaderStyle: NgtStylizableService;\n public imageViewerOptions: any = {\n navbar: true,\n toolbar: {\n zoomIn: true,\n zoomOut: true,\n reset: true,\n rotateLeft: true,\n rotateRight: true,\n prev: true,\n next: true,\n }\n };\n\n private subscriptions: Array<Subscription> = [];\n\n public constructor(\n @Optional() @Host()\n public formContainer: ControlContainer,\n @Optional() @SkipSelf()\n private ngtAttachmentHttpService: NgtAttachmentHttpService,\n private injector: Injector,\n private changeDetector: ChangeDetectorRef,\n ) {\n super();\n\n this.ngtDropzoneLoaderStyle = new NgtStylizableService();\n\n this.ngtDropzoneLoaderStyle.load(this.injector, 'NgtDropzoneLoader', {\n h: 'h-8',\n color: {\n text: 'text-gray-600'\n }\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.previewType) {\n this.previewType = getEnumFromString(changes.previewType.currentValue, NgtDropzonePreviewType);\n }\n }\n\n public ngAfterContentChecked() {\n if (this.container && this.container.nativeElement) {\n this.dropzoneHeight = `${this.container.nativeElement.parentElement.offsetHeight}px`;\n\n this.changeDetector.detectChanges();\n }\n }\n\n public ngOnInit() {\n setTimeout(() => {\n this.componentReady = true;\n\n setTimeout(() => {\n this.initComponent();\n });\n }, 500);\n }\n\n public ngOnDestroy() {\n this.destroySubscriptions();\n }\n\n public onImageClick(element, index?) {\n if (!this.viewMode) {\n this.forceDisableClick = true;\n }\n\n const ngtDropzoneComponent = this;\n\n if (index) {\n this.imageViewerOptions = { ...this.imageViewerOptions, ...{ initialViewIndex: index } };\n }\n\n const viewer = new Viewer(element, {\n ...this.imageViewerOptions, ...{\n hidden() {\n ngtDropzoneComponent.forceDisableClick = false;\n viewer.destroy();\n }\n }\n });\n\n viewer.show();\n }\n\n public onFileClick(url, name) {\n this.forceDisableClick = true;\n this.showNgtDropzoneFileViewer = true;\n this.ngtDropzoneFileViewer.url = url;\n this.ngtDropzoneFileViewer.fileName = name;\n this.ngtDropzoneFileViewer.init();\n\n this.subscriptions.push(this.ngtDropzoneFileViewer.onClose.subscribe(() => {\n this.showNgtDropzoneFileViewer = false;\n this.forceDisableClick = false;\n }));\n }\n\n public async onSelect(event: NgxDropzoneChangeEvent) {\n if (event.rejectedFiles.length) {\n for (const rejectedFile of <any>event.rejectedFiles) {\n if (rejectedFile.reason == 'size') {\n this.onFileSelectError.emit(NgtDropzoneErrorType.SIZE);\n break;\n } else if (rejectedFile.reason == 'no_multiple') {\n this.onFileSelectError.emit(NgtDropzoneErrorType.NO_MULTIPLE);\n break;\n } else if (rejectedFile.reason == 'type') {\n this.onFileSelectError.emit(NgtDropzoneErrorType.TYPE);\n break;\n } else {\n this.onFileSelectError.emit(NgtDropzoneErrorType.DEFAULT);\n break;\n }\n }\n }\n\n if (this.itemsLimit) {\n if (this.itemsLimit == 1 && event.addedFiles\n && event.addedFiles.length == this.itemsLimit && this.uploadedResources.length == this.itemsLimit) {\n this.uploadedResources = [];\n }\n\n if (event.addedFiles\n && event.addedFiles.length + this.uploadedResources.length <= this.itemsLimit) {\n this.onFileSelected.emit(event);\n this.uploadFiles(event.addedFiles);\n } else {\n this.onFileSelectError.emit(NgtDropzoneErrorType.ITEMS_LIMIT);\n }\n } else {\n this.onFileSelected.emit(event);\n this.uploadFiles(event.addedFiles);\n }\n }\n\n public async uploadFiles(files: Array<File>) {\n if (files && files.length) {\n let temporaryFiles = [];\n let temporaryAttachments = [];\n let observables = [];\n\n this.loading = true;\n\n files.forEach(file => {\n observables.push(this.ngtAttachmentHttpService.upload(this.remoteResource, file).pipe(\n map((response: any) => {\n if (response && response.data) {\n if (response.data.attributes && response.data.attributes.data) {\n file['url'] = response.data.attributes.data.url;\n }\n\n temporaryFiles.push({\n id: response.data.id,\n size: file.size,\n file: file\n });\n response.data['loaded'] = true;\n temporaryAttachments.push(response.data);\n }\n })\n ));\n });\n\n this.subscriptions.push(\n forkJoin(observables).subscribe(\n (response) => {\n this.uploadedResources.push(...temporaryFiles);\n\n if (this.itemsLimit == 1) {\n this.onNativeChange([...temporaryAttachments]);\n } else {\n this.onNativeChange([...temporaryAttachments, ...this.nativeValue]);\n }\n\n this.onFileUploaded.emit();\n this.loading = false;\n },\n (error) => {\n this.onFileUploadFail.emit(error);\n this.loading = false;\n })\n );\n }\n }\n\n public async loadFilePreview(attachments: any) {\n if (attachments && attachments.length && attachments[0]) {\n let temporaryResource = [];\n let observables = [];\n\n attachments.forEach(attachment => {\n if (!(attachment instanceof File) && !attachment.loaded) {\n this.loading = true;\n attachment['loaded'] = true;\n observables.push(this.ngtAttachmentHttpService.thumbnail(attachment).pipe(\n map((response: any) => {\n temporaryResource.push({\n id: response.data.getApiId(),\n file: response.data.getAttribute('file')\n });\n })\n ));\n }\n });\n\n this.subscriptions.push(\n forkJoin(observables).subscribe(\n (response) => {\n this.uploadedResources.push(...temporaryResource);\n this.onNativeChange(attachments);\n this.onFilePreviewLoaded.emit();\n this.loading = false;\n },\n (error) => {\n this.loading = false;\n })\n );\n }\n }\n\n public onRemove(resource: any) {\n this.uploadedResources.splice(this.uploadedResources.indexOf(resource), 1);\n this.nativeValue = this.nativeValue.filter(element => element.id != resource.id);\n this.onNativeChange(this.nativeValue);\n this.onFileRemoved.emit(resource);\n }\n\n public isImage(resource: any) {\n return this.previewType == 'IMAGE' || (resource.file && resource.file.type && resource.file.type.includes('image'));\n }\n\n public isVideo(resource: any) {\n return this.previewType == 'VIDEO' || (resource.file && resource.file.type && resource.file.type.includes('video'));\n }\n\n public isAudio(resource: any) {\n return (resource.file && resource.file.type && resource.file.type.includes('audio'));\n }\n\n public isFile(resource: any) {\n return !this.isImage(resource) && !this.isAudio(resource) && !this.isVideo(resource);\n }\n\n public getFormattedFileSize(resource: any) {\n if (resource) {\n let size = resource.size || resource.fileSize;\n\n if (!size) {\n if (resource.file && resource.file.size) {\n size = resource.file.size;\n } else {\n size = 0;\n }\n }\n\n if (parseFloat(size) > 1000000) {\n return (parseFloat(size) / 1000000).toFixed(2) + ' Mb';\n }\n\n return Math.round(parseFloat(size) / 1000) + ' Kb';\n }\n }\n\n public onNativeChange(value: any) {\n if (value === undefined) {\n this.value = [];\n this.nativeValue = [];\n } else {\n this.nativeValue = value;\n\n if (JSON.stringify(this.value) != JSON.stringify(this.nativeValue)) {\n this.value = this.nativeValue;\n }\n }\n }\n\n public change(value: any) {\n if (value && !this.viewMode) {\n this.onNativeChange(Array.isArray(value) ? value : [value]);\n\n if (this.componentReady) {\n this.loadFilePreview(Array.isArray(value) ? value : [value]);\n }\n }\n }\n\n public downloadFile(attachment: any) {\n this.ngtAttachmentHttpService.download(attachment).subscribe(() => { });\n }\n\n public reset() {\n this.uploadedResources = [];\n this.value = [];\n this.nativeValue = [];\n this.initComponent();\n }\n\n public openFileSelector() {\n document.getElementById('ngxDropzone').click();\n }\n\n private initComponent() {\n if (this.viewMode) {\n this.previewType = NgtDropzonePreviewType.DEFAULT;\n\n return;\n }\n\n if (this.formContainer && this.formContainer.control\n && (this.formControl = this.formContainer.control.get(this.name))) {\n this.resetFilesLoad();\n this.loadFilePreview(Array.isArray(this.value) ? this.value : [this.value]);\n this.updateValidations();\n\n if (this.value) {\n this.formControl.markAsDirty();\n } else {\n this.formControl.markAsPristine();\n }\n }\n }\n\n private resetFilesLoad() {\n if (Array.isArray(this.value)) {\n this.value.forEach(element => {\n if (element) {\n element['loaded'] = false;\n }\n });\n }\n }\n\n private updateValidations() {\n if (!this.formControl) {\n return;\n }\n\n let syncValidators = [];\n\n if (this.isRequired) {\n syncValidators.push(Validators.required);\n }\n\n syncValidators.push();\n\n setTimeout(() => {\n this.formControl.setValidators(syncValidators);\n this.formControl.updateValueAndValidity();\n });\n }\n\n private destroySubscriptions() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n this.subscriptions = [];\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { NgxDropzonePreviewComponent } from 'ngx-dropzone';\n\nimport { NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';\n\n@Component({\n selector: 'custom-dropzone-preview',\n templateUrl: './custom-dropzone-preview.component.html',\n providers: [\n {\n provide: NgxDropzonePreviewComponent,\n useExisting: CustomDropzonePreviewComponent\n }\n ]\n})\nexport class CustomDropzonePreviewComponent extends NgxDropzonePreviewComponent implements OnInit {\n public fileType: NgtDropzoneFileTypeEnum;\n\n public constructor(public sanitizer: DomSanitizer) {\n super(sanitizer);\n }\n\n public ngOnInit(): void {\n if (!this.file) {\n console.error('No file to read. Please provide a file using the [file] Input property.');\n\n return;\n }\n\n this.bindFileType();\n }\n\n private bindFileType(): void {\n if (this.file.type.includes('.sheet')) {\n this.fileType = NgtDropzoneFileTypeEnum.XLS;\n } else if (this.file.type.includes('pdf')) {\n this.fileType = NgtDropzoneFileTypeEnum.PDF;\n } else if (this.file.type.includes('.document')) {\n this.fileType = NgtDropzoneFileTypeEnum.DOC;\n } else {\n this.fileType = NgtDropzoneFileTypeEnum.OTHER;\n }\n }\n}\n","import { AfterViewInit, Component, Input, SimpleChanges, SkipSelf, ViewEncapsulation } from '@angular/core';\n\nimport { NgtDropzoneComponent, NgtDropzoneFile, NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';\n\n@Component({\n selector: 'ngt-dropzone-view',\n templateUrl: './ngt-dropzone-view.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class NgtDropzoneViewComponent implements AfterViewInit {\n @Input() public resources: Array<any>;\n\n public images: Array<NgtDropzoneFile>;\n public audios: Array<NgtDropzoneFile>;\n public videos: Array<NgtDropzoneFile>;\n public files: Array<NgtDropzoneFile>;\n\n public ngtDropzoneViewFileTypeEnum = NgtDropzoneFileTypeEnum;\n\n public constructor(\n @SkipSelf()\n public ngtDropzoneComponent: NgtDropzoneComponent\n ) { }\n\n public ngAfterViewInit() { }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.resources) {\n this.loadFiles();\n }\n }\n\n public loadFiles() {\n this.images = this.resources.filter((resource) => this.isImage(resource));\n this.audios = this.resources.filter((resource) => this.isAudio(resource));\n this.videos = this.resources.filter((resource) => this.isVideo(resource));\n this.files = this.resources.filter((resource) => this.isFile(resource));\n }\n\n public onImageClick(index) {\n const imagesDiv = document.createElement(\"div\");\n\n this.images.forEach((image: NgtDropzoneFile) => {\n let imageElement = document.createElement(\"img\");\n\n imageElement.src = image.previewUrl;\n\n imagesDiv.appendChild(imageElement);\n });\n\n this.ngtDropzoneComponent.onImageClick(imagesDiv, index);\n }\n\n public getFileType(resource: NgtDropzoneFile): NgtDropzoneFileTypeEnum {\n if (resource.mimeType.includes('.sheet')) {\n return NgtDropzoneFileTypeEnum.XLS;\n }\n\n if (resource.mimeType.includes('pdf')) {\n return NgtDropzoneFileTypeEnum.PDF;\n }\n\n if (resource.mimeType.includes('.document')) {\n return NgtDropzoneFileTypeEnum.DOC;\n }\n\n return NgtDropzoneFileTypeEnum.OTHER;\n }\n\n private isImage(resource: NgtDropzoneFile) {\n return resource.mimeType.includes('image');\n }\n\n private isAudio(resource: NgtDropzoneFile) {\n return resource.mimeType.includes('audio');\n }\n\n private isVideo(resource: NgtDropzoneFile) {\n return resource.mimeType.includes('video');\n }\n\n private isFile(resource: NgtDropzoneFile) {\n return !this.isImage(resource) && !this.isAudio(resource) && !this.isVideo(resource);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\nimport { NgxDropzoneModule } from 'ngx-dropzone';\nimport { NgxViewerModule } from 'ngx-viewer';\n\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\nimport { CustomDropzonePreviewComponent } from './custom-dropzone-preview/custom-dropzone-preview.component';\nimport { NgtDropzoneFileViewerComponent } from './ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\nimport { NgtDropzoneViewComponent } from './ngt-dropzone-view/ngt-dropzone-view.component';\nimport { NgtDropzoneComponent } from './ngt-dropzone.component';\n\n@NgModule({\n exports: [NgtDropzoneComponent],\n declarations: [\n NgtDropzoneComponent,\n NgtDropzoneFileViewerComponent,\n NgtDropzoneViewComponent,\n CustomDropzonePreviewComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgtValidationModule,\n NgxDropzoneModule,\n NgxViewerModule,\n NgtSvgModule,\n NgxDocViewerModule,\n NgtHelperModule,\n ]\n})\nexport class NgtDropzoneModule { }\n","/*\n * Public API Surface of ng-tailwind\n */\n\n//Translate\nexport * from './services/http/ngt-translate.service';\n\n//NgtHttpService\nexport * from './services/http/ngt-http.service';\n\n//NgtHttpValidationService\nexport * from './services/http/ngt-http-validation.service';\n\n//NgtHttpResourceService\nexport * from './services/http/ngt-http-resource.service';\n\n//NgtDatatable\nexport * from './components/ngt-datatable/ngt-datatable.module';\nexport * from './components/ngt-datatable/ngt-datatable.component';\nexport * from './components/ngt-datatable/ngt-tbody/ngt-tbody.component';\nexport * from './components/ngt-datatable/ngt-td/ngt-td.component';\nexport * from './components/ngt-datatable/ngt-td-check/ngt-td-check.component';\nexport * from './components/ngt-datatable/ngt-th/ngt-th.component';\nexport * from './components/ngt-datatable/ngt-th-check/ngt-th-check.component';\nexport * from './components/ngt-datatable/ngt-thead/ngt-thead.component';\nexport * from './components/ngt-datatable/ngt-tr/ngt-tr.component';\n\n//NgtPagination\nexport * from './components/ngt-pagination/ngt-pagination.module';\nexport * from './components/ngt-pagination/ngt-pagination.component';\n\n//NgtDropdown\nexport * from './components/ngt-dropdown/ngt-dropdown.module';\nexport * from './components/ngt-dropdown/ngt-dropdown.component';\nexport * from './components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component';\n\n//NgtFloatingButton\nexport * from './components/ngt-floating-button/ngt-floating-button.module';\nexport * from './components/ngt-floating-button/ngt-floating-button.component';\n\n//NgtTag\nexport * from './components/ngt-tag/ngt-tag.module';\nexport * from './components/ngt-tag/ngt-tag.component';\n\n//NgtAction\nexport * from './components/ngt-action/ngt-action.module';\nexport * from './components/ngt-action/ngt-action.component';\n\n//NgtCheckbox\nexport * from './components/ngt-checkbox/ngt-checkbox.module';\nexport * from './components/ngt-checkbox/ngt-checkbox.component';\n\n//NgtSlider\nexport * from './components/ngt-slider/ngt-slider.module';\nexport * from './components/ngt-slider/ngt-slider.component';\n\n//NgtRadioButton\nexport * from './components/ngt-radio-button/ngt-radio-button.module';\nexport * from './components/ngt-radio-button/ngt-radio-button.component';\nexport * from './components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component';\n\n//NgtTextarea\nexport * from './components/ngt-textarea/ngt-textarea.module';\nexport * from './components/ngt-textarea/ngt-textarea.component';\n\n//NgtModal\nexport * from './components/ngt-modal/ngt-modal.module';\nexport * from './components/ngt-modal/ngt-modal.component';\nexport * from './components/ngt-modal/ngt-modal-header/ngt-modal-header.component';\nexport * from './components/ngt-modal/ngt-modal-body/ngt-modal-body.component';\nexport * from './components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component';\n\n//NgtDate\nexport * from './components/ngt-date/ngt-date.module';\nexport * from './components/ngt-date/ngt-date.component';\n\n//NgtButton\nexport * from './components/ngt-button/ngt-button.module';\nexport * from './components/ngt-button/ngt-button.component';\n\n//NgtPortlet\nexport * from './components/ngt-portlet/ngt-portlet.module';\nexport * from './components/ngt-portlet/ngt-portlet.component';\nexport * from './components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component';\nexport * from './components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component';\nexport * from './components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component';\nexport * from './enums/size.enum';\n\n//NgtSidenav\nexport * from './components/ngt-sidenav/ngt-sidenav.module';\nexport * from './components/ngt-sidenav/ngt-sidenav.component';\n\n//NgtHeader\nexport * from './components/ngt-header-nav/ngt-header-nav.module';\nexport * from './components/ngt-header-nav/ngt-header-nav.component';\n\n//NgtContent\nexport * from './components/ngt-content/ngt-content.module';\nexport * from './components/ngt-content/ngt-content.component';\n\n// NgtSection\nexport * from './components/ngt-section/ngt-section.module';\nexport * from './components/ngt-section/ngt-section.component';\n\n//NgtInput\nexport * from './components/ngt-input/ngt-input.module';\nexport * from './components/ngt-input/ngt-input.component';\n\n//NgtStylizable\nexport * from './directives/ngt-stylizable/ngt-stylizable.module';\nexport * from './directives/ngt-stylizable/ngt-stylizable.directive';\n\n//NgtSelect\nexport * from './components/ngt-select/ngt-select.module';\nexport * from './components/ngt-select/ngt-select.component';\nexport * from './components/ngt-select/ngt-select.directive';\n\n//NgtSelectContainer\nexport * from './components/ngt-multi-select/ngt-multi-select.module';\nexport * from './components/ngt-multi-select/ngt-multi-select.component';\n\n//NgtSvg\nexport * from './components/ngt-svg/ngt-svg.module';\nexport * from './components/ngt-svg/ngt-svg.component';\n\n//NgtShining\nexport * from './components/ngt-shining/ngt-shining.module';\nexport * from './components/ngt-shining/ngt-shining.component';\n\n//NgtForm\nexport * from './components/ngt-form/ngt-form.module';\nexport * from './components/ngt-form/ngt-form.component';\nexport * from './components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module';\nexport * from './components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component';\n\n//NgtHttpFormService\nexport * from './services/http/ngt-http-form.service';\n\n//NgtDropzone\nexport * from './components/ngt-dropzone/ngt-dropzone.module';\nexport * from './components/ngt-dropzone/ngt-dropzone.component';\nexport * from './services/http/ngt-attachment-http.service';\n\n//NgtAnimations\nexport * from './animations/ngt-angular-animations';\n\n// NgtHelper\nexport * from './components/ngt-helper/ngt-helper.module';\nexport * from './components/ngt-helper/ngt-helper.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {NgtBaseNgModel as ɵa,NgtMakeProvider as ɵb} from './base/ngt-base-ng-model';\nexport {CustomDropzonePreviewComponent as ɵg} from './components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component';\nexport {NgtDropzoneFileViewerComponent as ɵe} from './components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\nexport {NgtDropzoneViewComponent as ɵf} from './components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component';\nexport {NgtValidationComponent as ɵd} from './components/ngt-validation/ngt-validation.component';\nexport {NgtValidationModule as ɵc} from './components/ngt-validation/ngt-validation.module';"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;MAAsB,mBAAmB;;;MCEnB,cAAc;;;MCEd,wBAAwB;CAI7C;AAIA;;MCDqB,sBAAsB;;;MCT/B,oBAAoB;IA6B7B,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IAED,IAAW,KAAK,CAAC,KAAK;QAClB,IAAI,KAAK,CAAC,EAAE,EAAE;YACV,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;SACtD;QAED,IAAI,KAAK,CAAC,IAAI,EAAE;YACZ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;SAC5D;QAED,IAAI,KAAK,CAAC,MAAM,EAAE;YACd,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;SAClE;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACvB;IAED,IAAW,SAAS,CAAC,SAAS;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KACjE;IAED,IAAW,OAAO,CAAC,OAAO;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC3D;IAED,IAAW,WAAW,CAAC,WAAW;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;KACvE;IAED,IAAW,CAAC;QACR,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;IAED,IAAW,CAAC,CAAC,CAAS;QAClB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC7C;IAED,IAAW,CAAC;QACR,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;IAED,IAAW,CAAC,CAAC,CAAS;QAClB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC7C;IAED,IAAW,CAAC;QACR,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;IAED,IAAW,CAAC,CAAC,CAAS;QAClB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC7C;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,CAAC;QACR,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;IAED,IAAW,CAAC,CAAC,CAAS;QAClB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC7C;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IAED,IAAW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAChD;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAED,IAAW,MAAM,CAAC,MAAc;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KAC3D;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAED,IAAW,MAAM,CAAC,MAAc;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KAC3D;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAED,IAAW,OAAO,CAAC,OAAe;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KAC9D;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAED,IAAW,IAAI,CAAC,IAAY;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KACrD;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAED,IAAW,IAAI,CAAC,IAAY;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KACrD;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IAED,IAAW,UAAU,CAAC,UAAkB;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;KAClE;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAED,IAAW,QAAQ,CAAC,QAAgB;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;KACjE;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAED,IAAW,QAAQ,CAAC,QAAgB;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC7B;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IAED,IAAW,cAAc,CAAC,cAAsB;QAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;KAC5E;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAED,IAAW,MAAM,CAAC,MAAc;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KAC3D;IAEM,IAAI,CAAC,QAAkB,EAAE,KAAa,EAAE,YAAY,GAAG,IAAI,EAAE,iBAAiB,GAAG,EAAE;QACtF,IAAI,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAExD,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,EAAE,CAAC;QAEhD,IAAI,cAAc,GAAyB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;QAEvF,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;QAErF,iBAAiB,CAAC,OAAO,CAAC,KAAK;YAC3B,IAAI,cAAc,GAAyB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAEnE,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;SACxF,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;KACxF;IAEM,OAAO,CAAC,MAAqB;QAChC,OAAO,MAAM;aACR,GAAG,CAAC,CAAC,KAAa,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;aACrD,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IAEO,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAyB;QACxE,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG;YACnB,IAAI,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACnC,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBAC/D,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC3G;iBAAM;gBACH,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;aACnC;SACJ,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;KACvB;IAEO,iBAAiB,CAAC,KAAa;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;SAC5B;QAED,QAAQ,KAAK;YACT,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,KAAK,YAAY,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3C,KAAK,cAAc,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;SAClD;KACJ;IAEO,cAAc,CAAC,KAA2B;QAC9C,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI;gBACtB,OAAO;gBACP,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,GAAG;gBACH,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,IAAI;gBACJ,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,MAAM;gBACN,MAAM;gBACN,YAAY;gBACZ,UAAU;gBACV,UAAU;gBACV,gBAAgB;gBAChB,QAAQ;aACX,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SACpB;KACJ;IAEO,iBAAiB,CAAC,cAAsB,EAAE,KAAa;QAC3D,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;YAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,IAAI,GAAG,gBAAgB,GAAG,cAAc,GAAG,GAAG,CAAC,CAAC;aACvF;SACJ,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;KAChB;;;MCxWQ,sBAAsB;IAG/B;QACI,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAC;KAC1D;IAEM,uBAAuB;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC;KACpC;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;KAC1C;IAED,IACW,KAAK,CAAC,KAAK;QAClB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,KAAK,CAAC;KAC3C;IAED,IACW,SAAS,CAAC,SAAiB;QAClC,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,SAAS,CAAC;KACnD;IAED,IACW,OAAO,CAAC,OAAe;QAC9B,IAAI,CAAC,oBAAoB,CAAC,OAAO,GAAG,OAAO,CAAC;KAC/C;IAED,IACW,WAAW,CAAC,WAAW;QAC9B,IAAI,CAAC,oBAAoB,CAAC,WAAW,GAAG,WAAW,CAAC;KACvD;IAED,IAAW,CAAC;QACR,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;KACtC;IAED,IACW,CAAC,CAAC,CAAS;QAClB,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;KACnC;IAED,IAAW,CAAC;QACR,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;KACtC;IAED,IACW,CAAC,CAAC,CAAS;QAClB,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;KACnC;IAED,IAAW,CAAC;QACR,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;KACtC;IAED,IACW,CAAC,CAAC,CAAS;QAClB,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;KACnC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KAC1C;IAED,IAAW,CAAC;QACR,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;KACtC;IAED,IACW,CAAC,CAAC,CAAS;QAClB,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;KACnC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;KACvC;IAED,IACW,EAAE,CAAC,EAAU;QACpB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAC;KACrC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;KAC3C;IAED,IACW,MAAM,CAAC,MAAc;QAC5B,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,MAAM,CAAC;KAC7C;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;KAC3C;IAED,IACW,MAAM,CAAC,MAAc;QAC5B,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,MAAM,CAAC;KAC7C;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;KAC5C;IAED,IACW,OAAO,CAAC,OAAe;QAC9B,IAAI,CAAC,oBAAoB,CAAC,OAAO,GAAG,OAAO,CAAC;KAC/C;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;KACzC;IAED,IACW,IAAI,CAAC,IAAY;QACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC;KACzC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;KACzC;IAED,IACW,IAAI,CAAC,IAAY;QACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC;KACzC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;KAC/C;IAED,IACW,UAAU,CAAC,UAAkB;QACpC,IAAI,CAAC,oBAAoB,CAAC,UAAU,GAAG,UAAU,CAAC;KACrD;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;KAC7C;IAED,IACW,QAAQ,CAAC,QAAgB;QAChC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,QAAQ,CAAC;KACjD;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;KAC7C;IAED,IACW,QAAQ,CAAC,QAAgB;QAChC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,GAAG,QAAQ,CAAC;KACjD;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;KACnD;IAED,IACW,cAAc,CAAC,cAAsB;QAC5C,IAAI,CAAC,oBAAoB,CAAC,cAAc,GAAG,cAAc,CAAC;KAC7D;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;KAC3C;IAED,IACW,MAAM,CAAC,MAAc;QAC5B,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,MAAM,CAAC;KAC7C;;;YA9QJ,SAAS,SAAC;gBACP,QAAQ,EAAE,kBAAkB;aAC/B;;;;oBAgBI,KAAK,SAAC,OAAO;wBAKb,KAAK,SAAC,YAAY;sBAKlB,KAAK,SAAC,UAAU;0BAKhB,KAAK,SAAC,cAAc;gBASpB,KAAK,SAAC,GAAG;gBAST,KAAK,SAAC,GAAG;gBAST,KAAK,SAAC,GAAG;iBAST,KAAK,SAAC,IAAI;iBASV,KAAK,SAAC,IAAI;iBASV,KAAK,SAAC,IAAI;iBASV,KAAK,SAAC,IAAI;iBASV,KAAK,SAAC,IAAI;iBASV,KAAK,SAAC,IAAI;gBASV,KAAK,SAAC,GAAG;iBAST,KAAK,SAAC,IAAI;iBASV,KAAK,SAAC,IAAI;iBASV,KAAK,SAAC,IAAI;iBASV,KAAK,SAAC,IAAI;iBASV,KAAK,SAAC,IAAI;iBASV,KAAK,SAAC,IAAI;qBASV,KAAK,SAAC,QAAQ;qBASd,KAAK,SAAC,QAAQ;sBASd,KAAK,SAAC,SAAS;mBASf,KAAK,SAAC,MAAM;mBASZ,KAAK,SAAC,MAAM;yBASZ,KAAK,SAAC,YAAY;uBASlB,KAAK,SAAC,UAAU;uBAShB,KAAK,SAAC,UAAU;6BAShB,KAAK,SAAC,gBAAgB;qBAStB,KAAK,SAAC,QAAQ;;;MCnQN,mBAAmB;;;YAP/B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;gBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;gBACjC,OAAO,EAAE;oBACL,YAAY;iBACf;aACJ;;;MCDY,mBAAmB;IAK5B,YACY,QAAkB,EACE,sBAA8C;QADlE,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAN9D,iBAAY,GAAoB,eAAe,CAAC,EAAE,CAAC;QAQ/D,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE;YAC5C,OAAO,EAAE,cAAc;SAC1B,CAAC,CAAC;KACN;;;YAvBJ,SAAS,SAAC;gBACP,QAAQ,EAAE,aAAa;gBACvB,8HAA2C;;aAE9C;;;YATmB,QAAQ;YAEnB,sBAAsB,uBAetB,IAAI,YAAI,QAAQ;;;2BANpB,KAAK;;IAoBE;AAAZ,WAAY,eAAe;IACvB,4BAAS,CAAA;IACT,4BAAS,CAAA;IACT,4BAAS,CAAA;IACT,4BAAS,CAAA;AACb,CAAC,EALW,eAAe,KAAf,eAAe;;MCnBd,gBAAgB;;;YAP5B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;gBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;gBAC9B,OAAO,EAAE;oBACL,YAAY;iBACf;aACJ;;;ACRD;;;MAGsB,cAAc;IAShC;QALO,uBAAkB,GAAG,IAAI,YAAY,CAAC;QAErC,WAAM,GAAG,8BAA8B,CAAC;QACxC,WAAM,GAAQ,IAAI,CAAC,MAAM,CAAC;QAqC3B,aAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;QAItB,cAAS,GAAG;YACf,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;aACpC;SACJ,CAAC;QA1CE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC1C;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAClC;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KAC1D;;IAED,IAAW,KAAK,CAAC,CAAM;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YACvC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEjB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;aAClC;YAED,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;KACJ;IAEM,UAAU,CAAC,KAAU;QACxB,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YAClE,OAAO;SACV;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACtB;IAIM,MAAM,CAAC,CAAC,KAAK;;IAQb,gBAAgB,CAAC,EAAoB;QACxC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;IAEM,iBAAiB,CAAC,EAAc;QACnC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAE/B,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;SACjC;KACJ;IAEM,cAAc;QACjB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;SACrC;KACJ;IAEM,WAAW;QACd,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;SAClC;KACJ;IAEM,YAAY,CAAC,SAAkB;QAClC,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;SAC/C;KACJ;IAEO,eAAe,CAAC,MAAM,EAAE,MAAM;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACnC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACnC;QAED,OAAO,MAAM,KAAK,MAAM,CAAC;KAC5B;CACJ;SAEe,eAAe,CAAC,IAAS;IACrC,OAAO;QACH,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,UAAU,CAAC,MAAM,IAAI,CAAC;QACnC,KAAK,EAAE,IAAI;KACd,CAAC;AACN;;SCjHgB,iBAAiB,CAAC,MAAc,EAAE,SAAc;IAC5D,IAAI,MAAM,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE;QACxD,OAAO,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;KAC1C;IAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AACtD;;SCJgB,WAAW,CAAC,MAAc;IACtC,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,UAAU,CAAC;QACP,MAAM,CAAC,KAAK,EAAE,CAAC;KAClB,EAAE,GAAG,CAAC,CAAC;AACZ,CAAC;SAEe,mBAAmB,CAAC,MAAc;IAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzC,CAAC;SAEe,aAAa,CAAC,MAAc;IACxC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE5B,OAAO,MAAM,CAAC,KAAK,CAAC;AACxB;;SCdgB,YAAY,CAAC,KAAqB,EAAE,eAAuB;IACvE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ;QAC9B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;aACjC,SAAS,CAAC,CAAC,OAAO;YACf,IAAI,MAAM,mCAAQ,OAAO,CAAC,CAAC,CAAC,GAAK,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC;YAE9C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;SAC1C,CAAC,CAAC;KACV,CAAC,CAAC;AACP;;MCVsB,kBAAkB;;;MCW3B,gBAAgB;IAuBzB,YAEW,aAA+B,EAE/B,MAAc,EACd,MAAc,EACd,KAAqB,EACpB,kBAAsC;QALvC,kBAAa,GAAb,aAAa,CAAkB;QAE/B,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAgB;QACpB,uBAAkB,GAAlB,kBAAkB,CAAoB;QA7BlC,mBAAc,GAAY,IAAI,CAAC;QAC/B,YAAO,GAAW,EAAE,CAAC;QACrB,oBAAe,GAAW,IAAI,CAAC;QAM9B,eAAU,GAAsB,IAAI,YAAY,CAAC;QACjD,cAAS,GAAsB,IAAI,YAAY,CAAC;QAChD,oBAAe,GAA0B,IAAI,YAAY,CAAC;QAC1D,oBAAe,GAA0B,IAAI,YAAY,CAAC;QAC1D,mBAAc,GAAsB,IAAI,YAAY,CAAC;QACrD,2BAAsB,GAAyB,IAAI,YAAY,CAAC;QAOzE,kBAAa,GAAwB,EAAE,CAAC;KAW/C;IAEM,QAAQ;QACX,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;aAC9B,CAAC,CACL,CAAC;SACL;aAAM;YACH,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SAC9B;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACpB,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC1D;SACJ,CAAC,CACL,CAAC;KACL;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,QAAQ,CAAC;KACnD;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,OAAO,CAAC;KAClD;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAEM,wBAAwB;QAC3B,OAAO,IAAI,CAAC,aAAa;YACrB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,OAAO;YACpC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,UAAU,CAAC;KAC/C;IAEM,UAAU,CAAC,OAAgB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC3C;IAEM,UAAU,CAAC,OAAgB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC3C;IAEM,YAAY,CAAC,KAAmB,EAAE,gBAAyB,IAAI;QAClE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC;KACJ;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAEM,sBAAsB;QACzB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;KACJ;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;KAC5B;IAEM,YAAY;QACf,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ;YAC3B,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAEtB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;qBAC9C,SAAS,CAAC,CAAC,QAAa;oBACrB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBACvB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC;iBACvB,CAAC,CACT,CAAC;aACL;iBAAM;gBACH,QAAQ,CAAC,KAAK,EAAE,CAAC;aACpB;SACJ,CAAC,CAAC;KACN;IAES,mBAAmB;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KAC1B;IAES,kBAAkB;QACxB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEtB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;iBAC9D,SAAS,CACN,CAAC,QAAa;gBACV,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAEvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAE9B,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;aAC7D,EACD,CAAC,KAAK;gBACF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAEvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC3C,CACJ,CACR,CAAC;YAEF,OAAO;SACV;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAEO,kBAAkB;QACtB,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,EAAU;gBAChE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAEhB,IAAI,IAAI,CAAC,KAAK,EAAE;oBACZ,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;iBAC3C;qBAAM;oBACH,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;iBAC5C;gBAED,QAAQ,CAAC,IAAI,EAAE,CAAC;aACnB,CAAC,CACL,CAAC;SACL,CAAC,CAAC;KACN;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;AAvLuB,oCAAmB,GAAyB,IAAI,YAAY,CAAC;;YAXxF,SAAS,SAAC;gBACP,QAAQ,EAAE,UAAU;gBACpB,wHAAwC;aAC3C;;;YAXO,gBAAgB,uBAoCf,QAAQ,YAAI,IAAI;YApCC,MAAM,uBAsCvB,QAAQ,YAAI,IAAI;YArCD,MAAM;YAAtB,cAAc;YAKd,kBAAkB;;;6BAOrB,KAAK;sBACL,KAAK;8BACL,KAAK;uBACL,KAAK;2BACL,KAAK;kCAEL,MAAM;yBAEN,MAAM;wBACN,MAAM;8BACN,MAAM;8BACN,MAAM;6BACN,MAAM;qCACN,MAAM;;IAmLC;AAAZ,WAAY,YAAY;IACpB,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;AACvB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAAA;;MC9JY,oBAAqB,SAAQ,cAAc;IAiBpD,YACY,QAAkB,EAEnB,aAA+B,EAC9B,QAAmB,EAEnB,sBAA8C,EAE9C,gBAAkC;QAE1C,KAAK,EAAE,CAAC;QATA,aAAQ,GAAR,QAAQ,CAAU;QAEnB,kBAAa,GAAb,aAAa,CAAkB;QAC9B,aAAQ,GAAR,QAAQ,CAAW;QAEnB,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE9C,qBAAgB,GAAhB,gBAAgB,CAAkB;QArB9B,YAAO,GAAY,KAAK,CAAC;QACzB,eAAU,GAAY,KAAK,CAAC;QAC5B,oBAAe,GAAY,KAAK,CAAC;QAEjC,SAAI,GAAoB,eAAe,CAAC,OAAO,CAAC;QAEhD,kBAAa,GAAW,gBAAgB,CAAC;QAKjD,kBAAa,GAAwB,EAAE,CAAC;QAc5C,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAEjD,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAgB;gBAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B,CAAC,CACL,CAAC;SACL;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;YAC7C,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;YACR,KAAK,EAAE;gBACH,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,iBAAiB;aAC5B;SACJ,CAAC,CAAC;KACN;IAEM,eAAe;QAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,KAAK;YAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC3D,CAAC,CAAC;KACN;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,MAAM,CAAC,KAAK;QACf,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;SAC9C;KACJ;IAEM,cAAc,CAAC,KAAK;QACvB,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;YAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;KACJ;IAEM,uBAAuB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC;KAC5D;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,MAAM,CAAC;KAC/C;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,OAAO,CAAC;KAChD;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,CAAC;KAC9C;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;SAC7E;KACJ;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAjIJ,SAAS,SAAC;gBACP,QAAQ,EAAE,cAAc;gBACxB,mpIAA4C;gBAE5C,SAAS,EAAE;oBACP,eAAe,CAAC,oBAAoB,CAAC;iBACxC;gBACD,aAAa,EAAE;oBACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE;iBACrD;gBACD,UAAU,EAAE;oBACR,OAAO,CAAC,kBAAkB,EAAE;wBACxB,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,gCAAgC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;wBACjF,UAAU,CAAC,QAAQ,EAAE;4BACjB,OAAO,CAAC,GAAG,CAAC;yBACf,CAAC;qBACL,CAAC;oBAEF,OAAO,CAAC,kBAAkB,EAAE;wBACxB,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;wBAChF,UAAU,CAAC,QAAQ,EAAE;4BACjB,OAAO,CAAC,GAAG,CAAC;yBACf,CAAC;qBACL,CAAC;iBACL;;aACJ;;;YA5CG,QAAQ;YAUH,gBAAgB,uBAsDhB,QAAQ,YAAI,IAAI;YA5DrB,SAAS;YAUJ,sBAAsB,uBAqDtB,IAAI,YAAI,QAAQ;YAlDhB,gBAAgB,uBAoDhB,QAAQ,YAAI,QAAQ;;;sBAvBxB,SAAS,SAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;oBAErC,KAAK;sBACL,KAAK;yBACL,KAAK;8BACL,KAAK;mBACL,KAAK;mBACL,KAAK;wBACL,KAAK;4BACL,KAAK;uBACL,KAAK;;IA+FE;AAAZ,WAAY,eAAe;IACvB,sCAAmB,CAAA;IACnB,oCAAiB,CAAA;IACjB,kCAAe,CAAA;AACnB,CAAC,EAJW,eAAe,KAAf,eAAe;;MCxId,eAAe;IAT5B;QAWoB,UAAK,GAAW,EAAE,CAAC;QAI3B,iBAAY,GAAG,IAAI,CAAC;KAmC/B;IAjCU,kBAAkB;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAEO,gBAAgB;QACpB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,EAAE;YAClC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;gBAC1D,IAAI,UAAU,GAAgB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAErF,IAAI,UAAU,EAAE;oBACZ,OAAO,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBACpC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC7D;oBAED,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBACzC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAExC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS;wBACtD,IAAI,SAAS,EAAE;4BACX,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;yBACvC;qBACJ,CAAC,CAAC;oBAEH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;iBAClC;aACJ;SACJ;KACJ;;;YAjDJ,SAAS,SAAC;gBACP,QAAQ,EAAE,SAAS;gBACnB,0EAAuC;gBAEvC,IAAI,EAAE;oBACF,KAAK,EAAE,qBAAqB;iBAC/B;gBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;;aACxC;;;kBAEI,KAAK;oBACL,KAAK;6BAEL,SAAS,SAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;;;MCVtD,YAAY;;;YATxB,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,eAAe,CAAC;gBAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;gBAC1B,OAAO,EAAE;oBACL,YAAY;oBACZ,gBAAgB;oBAChB,oBAAoB;iBACvB;aACJ;;;MCLY,kBAAkB;IAO3B,YAEW,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;KAC9C;;;YAfR,SAAS,SAAC;gBACP,QAAQ,EAAE,YAAY;gBACtB,0xDAA0C;gBAC1C,aAAa,EAAE,iBAAiB,CAAC,IAAI;aACxC;;;YANQ,mBAAmB,uBAenB,QAAQ;;;0BAPZ,SAAS,SAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;mBAEzC,KAAK;wBACL,KAAK;wBACL,KAAK;;;SCdM,IAAI;IAChB,OAAO;QACH,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAAA;;MCAY,6BAA6B;IAL1C;QAMqB,2BAAsB,GAAG,IAAI,YAAY,EAAE,CAAC;KAKhE;IAHU,iBAAiB,CAAC,cAAc;QACnC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACpD;;;YAVJ,SAAS,SAAC;gBACP,QAAQ,EAAE,0BAA0B;gBACpC,qCAAsD;;aAEzD;;;qCAEI,MAAM;;;MCyBE,oBAAoB;IAqB7B,YAEY,oBAAmD;QAAnD,yBAAoB,GAApB,oBAAoB,CAA+B;QAnB/C,iBAAY,GAAY,IAAI,CAAC;QAI7B,eAAU,GAA0B,qBAAqB,CAAC,KAAK,CAAC;QAE/D,aAAQ,GAA0B,IAAI,YAAY,EAAE,CAAC;QAE/D,SAAI,GAAW,IAAI,EAAE,CAAC;QAEtB,wBAAmB,GAAY,KAAK,CAAC;QACrC,wBAAmB,GAAY,KAAK,CAAC;QAEpC,kBAAa,GAAwB,EAAE,CAAC;QAQ5C,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,cAAoC;gBAC5F,IAAI,CAAC,MAAM,IAAI,cAAc,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;aACrD,CAAC,CACL,CAAC;SACL;KACJ;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;SAC/F;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,IAAI;;QACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAA,IAAI,CAAC,oBAAoB,0CAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;KACtD;IAEM,mBAAmB;QACtB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;KACJ;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAClC;IAEM,MAAM;QACT,UAAU,CAAC;YACP,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,KAAK,EAAE,CAAC;aAChB;iBAAM;gBACH,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC,CAAC,CAAC;KACN;IAEM,OAAO,CAAC,IAAS,EAAE,SAAc;QACpC,IAAI,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE;YACrE,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SACpC;KACJ;IAEM,OAAO,CAAC,KAAY;QACvB,IAAI,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,KAAK,EAAE;YAChD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB;KACJ;IAEM,YAAY,CAAC,KAAY;QAC5B,IAAI,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,WAAW,EAAE;YACtD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB;KACJ;IAEM,sBAAsB;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YAC3D,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAChC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,EAAE,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAE7F,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACnC;KACJ;IAEM,sBAAsB;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YAC3D,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAChC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;YAEnG,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACnC;KACJ;IAEO,sBAAsB;QAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,EAAE;YACzE,UAAU,CAAC;gBACP,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,CAAC;sBAC7E,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;aACrD,CAAC,CAAC;SACN;KACJ;IAEO,sBAAsB;;QAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAI,MAAA,IAAI,CAAC,YAAY,0CAAE,aAAa,CAAC,YAAY,CAAA,EAAE;YAC3E,UAAU,CAAC;gBACP,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,CAAC;sBAC7E,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC;aACtD,CAAC,CAAC;SACN;KACJ;IAEO,UAAU,CAAC,IAAS,EAAE,SAAc;QACxC,MAAM,QAAQ,GAAG,WAAW,CAAC;YACzB,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;gBACzD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,aAAa,CAAC,QAAQ,CAAC,CAAC;aAC3B;SACJ,EAAE,IAAI,CAAC,CAAC;KACZ;IAEO,SAAS,CAAC,IAAS,EAAE,SAAc;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,IAAI;YACrD,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;KACpE;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YA5KJ,SAAS,SAAC;gBACP,QAAQ,EAAE,cAAc;gBACxB,+1BAA4C;gBAE5C,UAAU,EAAE;oBACR,OAAO,CAAC,WAAW,EAAE;wBACjB,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;wBAClE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;wBACtE,UAAU,CAAC,gBAAgB,EAAE;4BACzB,OAAO,CAAC,GAAG,CAAC;yBACf,CAAC;qBACL,CAAC;iBACL;;aACJ;;;YAfQ,6BAA6B,uBAsC7B,QAAQ,YAAI,QAAQ;;;2BArBxB,SAAS,SAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;2BAEvC,KAAK;2BACL,KAAK;+BACL,KAAK;+BACL,KAAK;2BACL,KAAK;yBACL,KAAK;uBAEL,MAAM;;IAuJC;AAAZ,WAAY,qBAAqB;IAC7B,wCAAe,CAAA;IACf,oDAA2B,CAAA;IAC3B,wCAAe,CAAA;AACnB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB;;MCtLpB,iBAAiB;;;YAP7B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;gBACnE,OAAO,EAAE,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;gBAC9D,OAAO,EAAE;oBACL,YAAY;iBACf;aACJ;;;MCIY,eAAe;;;YAT3B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;gBAC7B,OAAO,EAAE;oBACL,YAAY;oBACZ,YAAY;oBACZ,iBAAiB;iBACpB;aACJ;;;MCEY,iBAAiB;;;YAT7B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,oBAAoB,CAAC;gBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;gBAC/B,OAAO,EAAE;oBACL,YAAY;oBACZ,gBAAgB;oBAChB,eAAe;iBAClB;aACJ;;;MCPY,iCAAiC;IAC1C,YAEW,OAAyB,EAEzB,mBAAwC;QAFxC,YAAO,GAAP,OAAO,CAAkB;QAEzB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAE/C,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;SAC/E;KACJ;;;YAdJ,SAAS,SAAC;gBACP,QAAQ,EAAE,6BAA6B;gBACvC,0QAA2D;aAC9D;;;YALQ,gBAAgB,uBAQhB,QAAQ,YAAI,QAAQ;YATpB,mBAAmB,uBAWnB,QAAQ;;;MCAJ,8BAA8B;;;YAP1C,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,iCAAiC,CAAC;gBACjD,OAAO,EAAE,CAAC,iCAAiC,CAAC;gBAC5C,OAAO,EAAE;oBACL,YAAY;iBACf;aACJ;;;MCGY,aAAa;;;YARzB,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;gBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;gBAC3B,OAAO,EAAE;oBACL,YAAY;oBACZ,8BAA8B;iBACjC;aACJ;;;MCJY,sBAAsB;IAM/B,YAEW,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;KAC9C;;;YAdR,SAAS,SAAC;gBACP,QAAQ,EAAE,gBAAgB;gBAC1B,k8FAA8C;;aAEjD;;;YANQ,mBAAmB,uBAcnB,QAAQ;;;sBANZ,KAAK;wBACL,KAAK;uBACL,KAAK;wBACL,KAAK;;;MCDG,mBAAmB;;;YAP/B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;gBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;gBACjC,OAAO,EAAE;oBACL,YAAY;iBACf;aACJ;;;ACmBD,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;MAaxB,iBAAkB,SAAQ,cAAc;IAwDjD,YACY,QAAkB,EACE,sBAA8C,EAEnE,aAA+B,EAE9B,gBAAkC,EAClC,QAAmB,EAEnB,oBAA8C,EAE9C,kBAA0C,EAC1C,cAAiC;QAEzC,KAAK,EAAE,CAAC;QAbA,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAEnE,kBAAa,GAAb,aAAa,CAAkB;QAE9B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,aAAQ,GAAR,QAAQ,CAAW;QAEnB,yBAAoB,GAApB,oBAAoB,CAA0B;QAE9C,uBAAkB,GAAlB,kBAAkB,CAAwB;QAC1C,mBAAc,GAAd,cAAc,CAAmB;QA/D7B,gBAAW,GAAW,EAAE,CAAC;QAIzB,kBAAa,GAAW,gBAAgB,CAAC;QAMzC,yBAAoB,GAAW,CAAC,CAAC;QAKjC,SAAI,GAAW,MAAM,CAAC;QAmBrB,oBAAe,GAAsB,IAAI,YAAY,EAAO,CAAC;QAC7D,qBAAgB,GAAsB,IAAI,YAAY,EAAO,CAAC;QAIxE,oBAAe,GAGlB,EAAE,CAAC;QAOC,kBAAa,GAAwB,EAAE,CAAC;QAkB5C,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAEjD,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAgB;gBAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B,CAAC,CACL,CAAC;SACL;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC1C,CAAC,EAAE,MAAM;YACT,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE;gBACH,MAAM,EAAE,uCAAuC;gBAC/C,EAAE,EAAE,4BAA4B;gBAChC,IAAI,EAAE,eAAe;aACxB;SACJ,CAAC,CAAC;KACN;IAEM,QAAQ;QACX,UAAU,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACtC,EAAE,GAAG,CAAC,CAAC;KACX;IAEM,UAAU,CAAC,KAAa;QAC3B,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;QAElE,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;YACzF,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,MAAM,CAAC,KAAU;QACpB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;YAC9D,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;SAC5C;QAED,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAExC,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAEjD,IAAI,WAAW,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC3C,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;aAC7B;SACJ;aAAM;YACH,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAE3C,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,EAAE;gBAChC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;aAC7B;YAED,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW,EAAE;gBAC3B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,YAAY,CAAC;aACnD;SACJ;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5C;QAED,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,KAAK,EAAE;YACpE,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC;KACJ;IAEM,QAAQ;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SACxG;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC3F;aAAM;YACH,UAAU,CAAC;gBACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,UAAU,CAAC;oBACP,IAAI,CAAC,aAAa,EAAE,CAAC;oBAErB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,MAAM,EAAE;wBAC9D,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;qBACrE;iBACJ,CAAC,CAAC;aACN,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;IAEM,gBAAgB;QACnB,IAAI,YAAY,GAAW,EAAE,CAAC;QAE9B,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,YAAY,IAAI,YAAY,CAAC;SAChC;aAAM;YACH,YAAY,IAAI,OAAO,CAAC;SAC3B;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE;YACnE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE;gBACnF,YAAY,IAAI,QAAQ,CAAC;aAC5B;iBAAM;gBACH,YAAY,IAAI,OAAO,CAAC;aAC3B;SACJ;QAED,OAAO,YAAY,CAAC;KACvB;IAEM,YAAY;QACf,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,MAAM,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;KACvC;IAEM,YAAY;QACf,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;KACvC;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACpH,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;aACnB;YAED,IAAI,KAAK,GAAG,QAAQ,CAAC;YAErB,IAAI,IAAI,CAAC,GAAG,EAAE;gBACV,KAAK,IAAI,yBAAyB,CAAC;aACtC;YAED,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG;gBACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE;oBAClD,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;oBAE1D,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW,EAAE;wBAC3B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;qBAC5B;iBACJ,CAAC,CAAC;aACN,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,KAAK;gBAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;;oBAE7H,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE;wBAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;wBAEvB,OAAO,KAAK,CAAC;qBAChB;iBACJ;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE;oBACzD,IAAI,CAAC,cAAc,EAAE,CAAC;iBACzB,CAAC,CAAC;aACN;YAED,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;aAClC;iBAAM;gBACH,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;aACrC;SACJ;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;SACV;QAED,MAAM,cAAc,GAAG,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE;YACtB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACzC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC5C;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC7D;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC7D;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE;YACzB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;SAChD;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE;YACrB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SAC7C;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;SAC9C;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAC7B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;SACjD;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;SACnD;QAED,IAAI,IAAI,CAAC,wBAAwB,EAAE;YAC/B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC;SACjE;QAED,UAAU,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAE/C,MAAM,eAAe,GAAG,EAAE,CAAC;YAE3B,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;aAChD;YAED,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE;gBAC1D,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;aAC/C;YAED,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;SAC7C,CAAC,CAAC;KACN;IAEO,UAAU,CAAC,YAAqB;QACpC,IAAI,IAAI,CAAC,IAAI,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACzC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE7C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;SAC5B;QAED,IAAI,KAAK,GAAG;YACR,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,oBAAoB;YAC5B,SAAS,EAAE;gBACP,MAAM,EAAE,IAAI,CAAC,oBAAoB;gBACjC,cAAc,EAAE,GAAG;gBACnB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,KAAK;gBACjB,GAAG,EAAE,IAAI,CAAC,QAAQ;aACrB;YACD,UAAU,EAAE;gBACR,IAAI,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;gBAC9C,UAAU,EAAE,IAAI;aACnB;YACD,WAAW,EAAE;gBACT,IAAI,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;gBAC3C,UAAU,EAAE,IAAI;aACnB;YACD,OAAO,EAAE;gBACL,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;gBAC7B,UAAU,EAAE,IAAI;aACnB;YACD,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE;gBACP,GAAG,EAAE,IAAI,CAAC,QAAQ;gBAClB,UAAU,EAAE,KAAK;aACpB;YACD,MAAM,EAAE,OAAO;SAClB,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;YACxB,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC3E;aAAM,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;YAC/B,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC3E;aAAM;YACH,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAChE;KACJ;IAEO,eAAe;QACnB,IAAI,KAAK,GAAG;YACR,SAAS,EAAE;gBACP,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,EAAE;aACb;YACD,IAAI,EAAE;gBACF,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,GAAG;aACd;YACD,QAAQ,EAAE;gBACN,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,GAAG;aACd;YACD,aAAa,EAAE;gBACX,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,GAAG;aACd;YACD,QAAQ,EAAE;gBACN,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,GAAG;aACd;YACD,KAAK,EAAE;gBACH,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,GAAG;aACd;YACD,OAAO,EAAE;gBACL,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,CAAC;aACZ;SACJ,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE;YACpB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;SAChD;aAAM;YACH,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,wCAAwC,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC7G;KACJ;IAEO,iBAAiB;QACrB,OAAO,CAAC,OAAwB,KAAK,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;KAChH;IAEO,mBAAmB;QACvB,OAAO,CAAC,OAAwB;YAC5B,IAAI,OAAO,CAAC,KAAK,EAAE;gBACf,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;aAClF;SACJ,CAAC;KACL;IAEO,iCAAiC;;QAErC,OAAO,CAAC,OAAwB,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,0BAA0B,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;KACrG;IAEO,aAAa;QACjB,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,qCAAqC,CAAC,CAAC;QAEnE,OAAO,CAAC,OAAwB;YAC5B,IAAI,OAAO,CAAC,KAAK,EAAE;gBACf,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC9B,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iBAC3B;aACJ;SACJ,CAAC;KACL;IAEO,gBAAgB;QACpB,OAAO,CAAC,OAAwB;YAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAChB,OAAO,IAAI,CAAC;aACf;YAED,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAClC,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;iBAC1B;aACJ;iBAAM;gBACH,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACpD,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iBAC3B;aACJ;SACJ,CAAC;KACL;IAEO,cAAc;QAClB,OAAO,CAAC,OAAwB;YAC5B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aAC5B;iBAAM;gBACH,OAAO,IAAI,CAAC;aACf;SACJ,CAAC;KACL;IAEO,cAAc;QAClB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC;SAC7H;QAED,OAAO,CAAC,OAAwB;YAC5B,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC5B,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;aAC5C;YAED,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO;oBACvB,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC;wBACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBAEpB,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,QAAmC;4BAC3F,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;4BACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtD,CAAC,CAAC,KAAK,CAAC;4BACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;4BACrB,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB,CAAC,CAAC;qBACN,EAAE,GAAG,CAAC,CAAC;iBACX,CAAC,CAAC;aACN;YAED,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC,CAAC;KACL;IAEa,sBAAsB;;YAChC,IAAI,IAAI,CAAC,6BAA6B,EAAE;gBACpC,YAAY,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;aACpD;YAED,IAAI,CAAC,6BAA6B,GAAG,UAAU,CAAC;gBAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAE7C,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;qBAC1D,IAAI,CAAC,CAAC,QAA6C,KAAK,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,EAAE,CAAC;qBAC9F,KAAK,CAAC,MAAM,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;qBAC3C,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;aAC5C,EAAE,GAAG,CAAC,CAAC;SACX;KAAA;IAEO,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,yGAAyG,CAAC,CAAC;SAC9H;QAED,OAAO,CAAC,OAAwB;YAC5B,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC7B,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;aAC7C;YAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE;gBACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO;oBACvB,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC;wBACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBAEpB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,QAAmC;4BACvG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;4BAErB,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;yBACvD,CAAC,CAAC,KAAK,CAAC;4BACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;4BACrB,OAAO,CAAC,IAAI,CAAC,CAAC;yBACjB,CAAC,CAAC;qBACN,EAAE,GAAG,CAAC,CAAC;iBACX,CAAC,CAAC;aACN;YAED,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC,CAAC;KACL;IAEO,aAAa,CAAC,KAAK;QACvB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE,EAAE;YACpD,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACrB,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YAC5C,CAAC;SACJ;QAED,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;YAC7C,OAAO,KAAK,CAAC;SAChB;QAED,CAAC,GAAG,CAAC,CAAC;QAEN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YAC7C,CAAC;SACJ;QAED,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE;YAC7C,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;KACf;;IAEO,YAAY,CAAC,KAAK;QACtB,IAAI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC;QAEzD,cAAc,GAAG,CAAC,CAAC;QAEnB,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;YACnB,OAAO,KAAK,CAAC;SAChB;QAED,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;gBACxC,cAAc,GAAG,CAAC,CAAC;gBACnB,MAAM;aACT;SACJ;QAED,IAAI,CAAC,cAAc,EAAE;YACjB,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,GAAG,CAAC,CAAC;YAET,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aACtC;YAED,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;YAE/C,IAAI,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAChC,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,GAAG,CAAC,CAAC;YAET,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aACtC;YAED,SAAS,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC;YAE/C,IAAI,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAChC,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,IAAI,CAAC;SACf;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;KACJ;IAEO,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;KAC3C;IAEO,eAAe;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC;KACvE;IAEO,WAAW,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE;YACxB,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE;iBACd,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;iBAClB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAC1B;aAAM,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE;YAC7E,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE;iBACd,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;iBAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;iBAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;iBAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACzB;aAAM,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,EAAE;YACjC,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE;iBACd,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;iBAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;iBAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;iBAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACzB;QAED,OAAO,KAAK,CAAC;KAChB;IAEO,yBAAyB;QAC7B,OAAO,OAAO,IAAI,CAAC,oBAAoB,CAAC,eAAe,KAAK,UAAU,CAAC;KAC1E;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAzrBJ,SAAS,SAAC;gBACP,QAAQ,EAAE,WAAW;gBACrB,kqHAAyC;gBAEzC,SAAS,EAAE;oBACP,eAAe,CAAC,iBAAiB,CAAC;iBACrC;gBACD,aAAa,EAAE;oBACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE;iBACrD;;aACJ;;;YArCG,QAAQ;YAeH,sBAAsB,uBAiFtB,IAAI,YAAI,QAAQ;YArFmB,gBAAgB,uBAsFnD,QAAQ,YAAI,IAAI;YA1EhB,gBAAgB,uBA4EhB,QAAQ,YAAI,QAAQ;YA9FzB,SAAS;YAgBuB,wBAAwB,uBAiFnD,QAAQ,YAAI,QAAQ;YAnFzB,sBAAsB,uBAqFjB,QAAQ,YAAI,QAAQ;YA5GzB,iBAAiB;;;sBA2ChB,SAAS,SAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;oBAGrC,KAAK;0BACL,KAAK;sBACL,KAAK;sBACL,KAAK;wBACL,KAAK;4BACL,KAAK;uBACL,KAAK;4BACL,KAAK;iCACL,KAAK;6BACL,KAAK;kCACL,KAAK;mCACL,KAAK;yBAGL,KAAK;yBACL,KAAK;mBACL,KAAK;mBACL,KAAK;mBACL,KAAK;oBACL,KAAK;yBACL,KAAK;kBACL,KAAK;mCAGL,KAAK;yBACL,KAAK;6BACL,KAAK;uBACL,KAAK;uBACL,KAAK;wBACL,KAAK;wBACL,KAAK;oBACL,KAAK;yBACL,KAAK;uCACL,KAAK;8BAEL,MAAM;+BACN,MAAM;;;MC1DE,cAAc;;;YAd1B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,iBAAiB,CAAC;gBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;gBAC5B,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,mBAAmB;oBACnB,gBAAgB;oBAChB,YAAY;oBACZ,aAAa;oBACb,eAAe;iBAClB;aACJ;;;MCjBY,qBAAqB;;;YALjC,SAAS,SAAC;gBACP,QAAQ,EAAE,gBAAgB;gBAC1B,qCAA8C;;aAEjD;;;MCCY,uBAAuB;;;YALnC,SAAS,SAAC;gBACP,QAAQ,EAAE,kBAAkB;gBAC5B,mFAAgD;;aAEnD;;;MCaY,iBAAiB;IAY1B,YACY,iBAAoC,EACpC,QAAkB,EACE,uBAA+C;QAFnE,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,aAAQ,GAAR,QAAQ,CAAU;QACE,4BAAuB,GAAvB,uBAAuB,CAAwB;QAd/D,iBAAY,GAAY,KAAK,CAAC;QAC9B,yBAAoB,GAAY,KAAK,CAAC;QAGrC,iBAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;QACrD,gBAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;QAE9D,WAAM,GAAY,KAAK,CAAC;QAEvB,yBAAoB,GAAY,KAAK,CAAC;QAO1C,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC;SAC1E;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC1C,CAAC,EAAE,aAAa;YAChB,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,QAAQ,EAAE,kBAAkB;YAC5B,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;KACN;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC5B;IAEM,IAAI;QACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KAC3B;IAEO,uBAAuB;QAC3B,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC1D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YAEjC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAU;gBAC1C,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,CAAC,KAAK,EAAE,CAAC;iBAChB;aACJ,EAAE,IAAI,CAAC,CAAC;SACZ;KACJ;;;YApEJ,SAAS,SAAC;gBACP,QAAQ,EAAE,WAAW;gBACrB,2nDAAyC;gBAEzC,UAAU,EAAE;oBACR,OAAO,CAAC,MAAM,EAAE;wBACZ,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;wBACpC,UAAU,CAAC,gBAAgB,EAAE;4BACzB,OAAO,CAAC,GAAG,CAAC;yBACf,CAAC;qBACL,CAAC;iBACL;;aACJ;;;YAjBQ,iBAAiB;YAA2B,QAAQ;YAEpD,sBAAsB,uBA+BtB,IAAI,YAAI,QAAQ;;;2BAdpB,KAAK;mCACL,KAAK;uBACL,KAAK;2BAEL,MAAM;0BACN,MAAM;;;MCdE,uBAAuB;IAKhC,YAEY,gBAAmC,EACnC,QAAkB,EACE,uBAA+C;QAFnE,qBAAgB,GAAhB,gBAAgB,CAAmB;QACnC,aAAQ,GAAR,QAAQ,CAAU;QACE,4BAAuB,GAAvB,uBAAuB,CAAwB;QAE3E,IAAI,gBAAgB,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;SACpC;QAED,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC;SAC1E;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE;YAChD,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;KACN;;;YA9BJ,SAAS,SAAC;gBACP,QAAQ,EAAE,kBAAkB;gBAC5B,stBAAgD;;aAEnD;;;YANQ,iBAAiB,uBAajB,QAAQ,YAAI,QAAQ;YAjBT,QAAQ;YAEnB,sBAAsB,uBAkBtB,IAAI,YAAI,QAAQ;;;uBARpB,KAAK;;;MCcG,cAAc;;;YAjB1B,QAAQ,SAAC;gBACN,YAAY,EAAE;oBACV,iBAAiB;oBACjB,uBAAuB;oBACvB,qBAAqB;oBACrB,uBAAuB;iBAC1B;gBACD,OAAO,EAAE;oBACL,iBAAiB;oBACjB,uBAAuB;oBACvB,qBAAqB;oBACrB,uBAAuB;iBAC1B;gBACD,OAAO,EAAE;oBACL,YAAY;iBACf;aACJ;;;MCfY,kBAAkB;IAM3B,YACY,QAAkB,EACE,sBAA8C;QADlE,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1E,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;YAC3C,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,QAAQ;YACX,KAAK,EAAE;gBACH,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,EAAE;aACb;YACD,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,EAAE;SACb,CAAC,CAAC;KACN;IAEM,OAAO,CAAC,KAAY;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;KACJ;;;YAtCJ,SAAS,SAAC;gBACP,QAAQ,EAAE,YAAY;gBACtB,6nCAA0C;;aAE7C;;;YATmB,QAAQ;YAEnB,sBAAsB,uBAgBtB,IAAI,YAAI,QAAQ;;;mBAPpB,KAAK;mBACL,KAAK;uBACL,KAAK;yBACL,KAAK;;;MCEG,eAAe;;;YAT3B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;gBAC7B,OAAO,EAAE;oBACL,YAAY;oBACZ,YAAY;oBACZ,YAAY;iBACf;aACJ;;;MCZY,kBAAkB;IAC3B,YAA0B,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;KAAK;;;YAF5D,SAAS,SAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE;;;YAF1B,WAAW;;MAQlB,0BAA0B;IACnC,YAA0B,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;KAAK;;;YAF5D,SAAS,SAAC,EAAE,QAAQ,EAAE,8BAA8B,EAAE;;;YAPnC,WAAW;;MAalB,kBAAkB;IAC3B,YAA0B,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;KAAK;;;YAF5D,SAAS,SAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE;;;YAZ1B,WAAW;;;MC+ClB,kBAAmB,SAAQ,cAAc;IAoFlD,YAEW,sBAA8C,EAC7C,QAAkB,EAEnB,aAA+B,EAE/B,gBAAkC,EACjC,OAAuB,EACvB,cAAiC,EAElC,mBAAwC;QAE/C,KAAK,EAAE,CAAC;QAXD,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC7C,aAAQ,GAAR,QAAQ,CAAU;QAEnB,kBAAa,GAAb,aAAa,CAAkB;QAE/B,qBAAgB,GAAhB,gBAAgB,CAAkB;QACjC,YAAO,GAAP,OAAO,CAAgB;QACvB,mBAAc,GAAd,cAAc,CAAmB;QAElC,wBAAmB,GAAnB,mBAAmB,CAAqB;;QAxFnC,UAAK,GAAW,EAAE,CAAC;QAKnB,kBAAa,GAAW,gBAAgB,CAAC;QACzC,YAAO,GAAG,KAAK,CAAC;QAChB,YAAO,GAAY,KAAK,CAAC;QACzB,gBAAW,GAAW,EAAE,CAAC;QACzB,iBAAY,GAAW,EAAE,CAAC;QAC1B,qBAAgB,GAAG,MAAM,CAAC;QAC1B,qBAAgB,GAAW,EAAE,CAAC;QAC9B,oBAAe,GAAW,EAAE,CAAC;QAC7B,gBAAW,GAAW,EAAE,CAAC;QACzB,eAAU,GAAW,EAAE,CAAC;QACxB,eAAU,GAAW,EAAE,CAAC;QACxB,2BAAsB,GAAiC,4BAA4B,CAAC,IAAI,CAAC;QAIzF,gBAAW,GAAsC,KAAK,CAAC;QACvD,+BAA0B,GAAY,IAAI,CAAC;QAC3C,eAAU,GAAY,KAAK,CAAC;QAG5B,cAAS,GAAW,MAAM,CAAC;QAE3B,UAAK,GAAiC,EAAE,CAAC;QACzC,kBAAa,GAAY,IAAI,CAAC;QAC9B,cAAS,GAAY,IAAI,CAAC;QAC1B,YAAO,GAAsB,IAAI,CAAC;QAElC,aAAQ,GAAY,KAAK,CAAC;QAC1B,eAAU,GAAY,IAAI,CAAC;QAC3B,qBAAgB,GAAY,IAAI,CAAC;QACjC,kBAAa,GAAY,IAAI,CAAC;;QAO9B,eAAU,GAAY,KAAK,CAAC;QAE3B,yBAAoB,GAAsB,IAAI,YAAY,EAAO,CAAC;QAE5E,eAAU,GAAG,IAAI,EAAE,CAAC;QAEpB,kBAAa,GAAQ,EAAE,CAAC;QAExB,mBAAc,GAAY,KAAK,CAAC;QAG/B,oBAAe,GAAG,EAAE,CAAC;QACrB,kBAAa,GAAwB,EAAE,CAAC;QAGxC,iBAAY,GAAG;YACnB,OAAO,EAAE,EAAE;YACX,IAAI,EAAE;gBACF,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,EAAE;aAChB;YACD,UAAU,EAAE;gBACR,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,IAAI;gBACV,EAAE,EAAE,IAAI;gBACR,QAAQ,EAAE,IAAI;aACjB;SACJ,CAAC;QA4Cc,gBAAW,GAAG,CAAC,CAAM,EAAE,CAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QAxBtD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAEjD,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAgB;gBAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B,CAAC,CACL,CAAC;SACL;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;YAC3C,CAAC,EAAE,MAAM;YACT,KAAK,EAAE;gBACH,EAAE,EAAE,UAAU;aACjB;SACJ,CAAC,CAAC;KACN;IAIM,QAAQ;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC5E;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;YACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC9B;QAED,UAAU,CAAC;YACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAClC,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,CAAC,QAAQ;YACzC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACrB,CAAC,CAAC;KACN;IAEM,eAAe;QAClB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;IAEM,SAAS;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAE1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,UAAU,CAAC;;gBACP,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAEzB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBAEpD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,MAAM,EAAE;oBAC9D,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;iBACvF;gBAED,IAAI,CAAC,aAAa,GAAG,MAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,0CAAE,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;gBAE3F,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;aACvC,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,UAAU,CAAC,KAAY,EAAE,IAAS;QACrC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACjD;IAEM,OAAO;QACV,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAClC;IAEM,KAAK;QACR,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;QAED,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,KAAK,EAAE;YACjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;QAED,IAAI,OAAO,CAAC,sBAAsB,EAAE;YAChC,IAAI,CAAC,sBAAsB,GAAG,iBAAiB,CAAC,OAAO,CAAC,sBAAsB,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;SAC9H;KACJ;IAEM,QAAQ;QACX,UAAU,CAAC;YACP,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;SAClC,CAAC,CAAC;KACN;IAEM,aAAa;QAChB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;KAClC;IAEM,oBAAoB,CAAC,IAAc;QACtC,IAAI,CAAC,IAAI,CAAC,0BAA0B,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC3E,UAAU,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SACzD;KACJ;IAEM,mBAAmB;QACtB,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW;YAC/C,IAAI,CAAC,iBAAiB,CAAC,WAAW;YAClC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAE1C,IACI,UAAU;YACV,UAAU,CAAC,aAAa,EAC1B;YACE,OAAO,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;SACzC;KACJ;IAEM,MAAM,CAAC,OAAY;QACtB,IAAI,CAAC,YAAY,CAAC,OAAO,mCAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,GAAK,OAAO,CAAE,CAAC;QAEzE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACpC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,OAAO;iBACP,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;iBACjF,SAAS,CACN,CAAC,QAAyB;gBACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;gBACxD,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;aACvC,EACD,CAAC,KAAK;gBACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAClC,CACJ,CACR,CAAC;SACL,EAAE,GAAG,CAAC,CAAC;KACX;IAEM,cAAc,CAAC,KAAK;QACvB,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YACjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;KACJ;IAEM,MAAM,CAAC,KAAK;QACf,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;YACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;aACnC;YAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAEzB,IAAI,CAAC,KAAK,EAAE;gBACR,IAAI,CAAC,cAAc,EAAE,CAAC;aACzB;SACJ;KACJ;IAEM,QAAQ,CAAC,EAAE,GAAG,EAAE;QACnB,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC3D,IAAI,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;QAE3D,IAAI,GAAG,IAAI,cAAc,IAAI,GAAG,IAAI,iBAAiB,EAAE;YACnD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;YAC/G,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACnB;KACJ;IAEM,gBAAgB;QACnB,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnD;IAEM,cAAc;QACjB,IAAI,WAAW,GAAG,IAAI,CAAC,sBAAsB,GAAG,2BAA2B,GAAG,IAAI,CAAC,sBAAsB,GAAG,+BAA+B,CAAC;QAE5I,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,WAAW,IAAI,yBAAyB,CAAC;SAC5C;aAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YAC3I,WAAW,IAAI,sBAAsB,CAAC;SACzC;aAAM;YACH,WAAW,IAAI,uBAAuB,CAAC;SAC1C;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,WAAW,IAAI,WAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;SACjF;aAAM;YACH,WAAW,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;SAC/E;QAED,OAAO,WAAW,CAAC;KACtB;IAEO,iBAAiB;QACrB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,QAAQ;gBACxC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aACnB,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;YAE/B,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI;gBAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aAC/B,CAAC,CACL,CAAC;SACL;aAAM,IAAI,IAAI,CAAC,KAAK,YAAY,UAAU,EAAE;YACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;SACnC;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACb,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;aACnB;YAED,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,CAAC,QAAQ;gBACzC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC7B,CAAC,CAAC;SACN;KACJ;IAEO,uBAAuB;QAC3B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACpH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAEO,eAAe;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC;KACzF;IAEO,uBAAuB,CAAC,KAAK,EAAE,WAAW;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;KAChE;IAEO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;SACV;QAED,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;SACnD;QAED,UAAU,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;SAC7C,CAAC,CAAC;KACN;IAEO,mBAAmB;QACvB,OAAO,CAAC,OAAwB;YAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpD,OAAO,IAAI,CAAC;iBACf;aACJ;iBAAM,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACvD,OAAO,IAAI,CAAC;aACf;YAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;SAC/B,CAAC;KACL;IAEO,iBAAiB;QACrB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,EAAE;YACxD,GAAG,EAAE;gBACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE;oBACvC,OAAO,KAAK,CAAC;iBAChB;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,iBAAiB,EAAE,CAAC;gBAEtE,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO;wBAC/D,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;2BACtE,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;aACtF;SACJ,CAAC,CAAC;KACN;IAEO,sBAAsB;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEjF,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE;YACrB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAElC,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;SAC1B;KACJ;IAEO,sBAAsB,CAAC,IAAY;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC;QAErE,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;YAC5B,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,OAAY;gBACnC,MAAM,YAAY,GAAS,OAAO,CAAC,KAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAEvE,OAAO,YAAY,IAAI,YAAY,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;aACpE,CAAC,CAAC;SACN;QAED,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,OAAY;YACnC,MAAM,YAAY,GAAS,OAAO,CAAC,KAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE1D,OAAO,YAAY,IAAI,YAAY,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;SACpE,CAAC,CAAC;KACN;IAEO,sBAAsB,CAAC,IAAY;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;QAE3D,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;YAC5B,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,OAAY;gBACnC,MAAM,YAAY,GAAS,OAAO,CAAC,KAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAEvE,OAAO,YAAY,IAAI,YAAY,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;aACpE,CAAC,CAAC;SACN;QAED,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,OAAY;YACnC,MAAM,YAAY,GAAS,OAAO,CAAC,KAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE1D,OAAO,YAAY,IAAI,YAAY,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC;SACpE,CAAC,CAAC;KACN;IAEO,oBAAoB,CAAC,IAAS;;QAClC,OAAO,CAAC,EAAC,MAAA,IAAI,CAAC,aAAa,0CAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA,CAAC;KACjF;IAEO,mBAAmB;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC;QAErE,OAAO,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,UAAU,CAAC;KAChH;IAEO,QAAQ;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC;KAC/D;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAzfJ,SAAS,SAAC;gBACP,QAAQ,EAAE,YAAY;gBACtB,ynIAA0C;gBAE1C,SAAS,EAAE;oBACP,eAAe,CAAC,kBAAkB,CAAC;iBACtC;gBACD,aAAa,EAAE;oBACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE;iBACrD;gBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;;aACxC;;;YApBQ,sBAAsB,uBA0GtB,QAAQ,YAAI,IAAI;YA7HrB,QAAQ;YAcc,gBAAgB,uBAkHjC,QAAQ,YAAI,IAAI;YAvGhB,gBAAgB,uBAyGhB,QAAQ,YAAI,QAAQ;YA5GH,cAAc;YA5BpC,iBAAiB;YA6BZ,mBAAmB,uBA+GnB,QAAQ;;;gCA7FZ,SAAS,SAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gCAC7C,YAAY,SAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;wCACtD,YAAY,SAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;sCAC9D,YAAY,SAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;oBAGtD,KAAK;wBACL,KAAK;6BACL,KAAK;wBACL,KAAK;uBACL,KAAK;4BACL,KAAK;sBACL,KAAK;sBACL,KAAK;0BACL,KAAK;2BACL,KAAK;+BACL,KAAK;+BACL,KAAK;8BACL,KAAK;0BACL,KAAK;yBACL,KAAK;yBACL,KAAK;qCACL,KAAK;mBAGL,KAAK;0BACL,KAAK;yCACL,KAAK;yBACL,KAAK;6BACL,KAAK;2BACL,KAAK;wBACL,KAAK;wBACL,KAAK;oBACL,KAAK;4BACL,KAAK;wBACL,KAAK;sBACL,KAAK;+BACL,KAAK;uBACL,KAAK;yBACL,KAAK;+BACL,KAAK;4BACL,KAAK;uBACL,KAAK;wBACL,KAAK;yBACL,KAAK;sBACL,KAAK;yBAGL,KAAK;mCAEL,MAAM;0BAwEN,KAAK;;IAqXE;AAAZ,WAAY,4BAA4B;IACpC,6CAAa,CAAA;IACb,yCAAS,CAAA;IACT,yCAAS,CAAA;IACT,yCAAS,CAAA;IACT,yCAAS,CAAA;IACT,yCAAS,CAAA;AACb,CAAC,EAPW,4BAA4B,KAA5B,4BAA4B;;MC1f3B,eAAe;;;YAxB3B,QAAQ,SAAC;gBACN,YAAY,EAAE;oBACV,kBAAkB;oBAClB,kBAAkB;oBAClB,0BAA0B;oBAC1B,kBAAkB;iBACrB;gBACD,OAAO,EAAE;oBACL,kBAAkB;oBAClB,kBAAkB;oBAClB,0BAA0B;oBAC1B,kBAAkB;iBACrB;gBACD,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACX,cAAc;oBACd,mBAAmB;oBACnB,aAAa;oBACb,gBAAgB;oBAChB,eAAe;oBACf,YAAY;iBACf;aACJ;;;MCzBY,sBAAsB;IAqC/B,YACY,QAAkB,EAEnB,mBAAwC;QAFvC,aAAQ,GAAR,QAAQ,CAAU;QAEnB,wBAAmB,GAAnB,mBAAmB,CAAqB;QArClC,iBAAY,GAAyB,IAAI,YAAY,EAAE,CAAC;QACxD,oBAAe,GAAyB,IAAI,YAAY,EAAE,CAAC;QAarE,sBAAiB,GAAY,IAAI,CAAC;QAElC,eAAU,GAAsB;YACnC,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI;SACjB,CAAC;QAEK,UAAK,GAAG,EAAE,CAAC;QAEX,4BAAuB,GAAG;YAC7B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG;SACzB,CAAC;QAEK,4BAAuB,GAAW,EAAE,CAAC;QAOxC,IAAI,CAAC,oCAAoC,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACvE,IAAI,CAAC,2CAA2C,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC9E,IAAI,CAAC,iCAAiC,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACpE,IAAI,CAAC,kCAAkC,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACrE,IAAI,CAAC,4BAA4B,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAE/D,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iCAAiC,EAAE;YAC7F,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;YACR,KAAK,EAAE;gBACH,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,aAAa;aACpB;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iCAAiC,EAAE;YACpG,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;YACR,KAAK,EAAE;gBACH,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,aAAa;aACpB;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,8BAA8B,EAAE;YACvF,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;YACR,KAAK,EAAE;gBACH,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,aAAa;aACpB;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,+BAA+B,EAAE;YACzF,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;YACR,KAAK,EAAE;gBACH,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,aAAa;aACpB;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,yBAAyB,EAAE;YAC7E,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;YACR,KAAK,EAAE;gBACH,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,aAAa;aACpB;SACJ,CAAC,CAAC;KACN;IAEM,wBAAwB,CAAC,KAAU;QACtC,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,EAAE;YAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YAErC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpC;KACJ;IAEY,QAAQ,CAAC,IAAY;;YAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC;KAAA;IAEY,gBAAgB;;YACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;aAClD;SACJ;KAAA;IAEY,YAAY;;YACrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;aAClD;SACJ;KAAA;IAEY,mBAAmB;;YAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;SACnD;KAAA;IAEY,eAAe;;YACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;SACjD;KAAA;IAEY,aAAa;;YACtB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,EAAE;gBAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC3B;SACJ;KAAA;IAEY,YAAY;;YACrB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAC/C;SACJ;KAAA;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;KAC/B;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IAEM,kBAAkB,CAAC,IAAiB;QACvC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAC7G,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAEzC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE;YAClF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACtB;QAED,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACzF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KACjC;IAEM,eAAe;QAClB,IAAI,CAAC,UAAU,GAAG;YACd,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI;SACjB,CAAC;KACL;IAEO,2BAA2B,CAAC,gBAAwB,EAAE,cAAsB,EAAE,UAAkB;QACpG,IAAI,CAAC,4BAA4B,GAAG,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;QACxE,IAAI,CAAC,wBAAwB,GAAG,cAAc,GAAG,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;KAC9E;;;YAxLJ,SAAS,SAAC;gBACP,QAAQ,EAAE,gBAAgB;gBAC1B,02KAA8C;;aAEjD;;;YAViC,QAAQ;YAGjC,mBAAmB,uBA+CnB,QAAQ;;;4BAtCZ,KAAK;2BAEL,MAAM;8BACN,MAAM;;;MCKE,mBAAmB;;;YAX/B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;gBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;gBACjC,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,eAAe;oBACf,eAAe;iBAClB;aACJ;;;MCTY,eAAe;IAKxB,YACY,QAAkB,EACE,sBAA8C;QADlE,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1E,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;YACrC,KAAK,EAAE;gBACH,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,YAAY;aACrB;SACJ,CAAC,CAAC;KACN;;;YA1BJ,SAAS,SAAC;gBACP,QAAQ,EAAE,SAAS;gBACnB,27BAAuC;;aAE1C;;;YATmB,QAAQ;YAEnB,sBAAsB,uBAetB,IAAI,YAAI,QAAQ;;;mBANpB,KAAK;;;MCGG,YAAY;;;YARxB,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,eAAe,CAAC;gBAC/B,OAAO,EAAE,CAAC,eAAe,CAAC;gBAC1B,OAAO,EAAE;oBACL,YAAY;oBACZ,YAAY;iBACf;aACJ;;;MCgBY,qBAAqB;IAiD9B,YACY,QAAkB,EAClB,cAA8B,EAC9B,cAAiC,EAElC,mBAAwC;QAJvC,aAAQ,GAAR,QAAQ,CAAU;QAClB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,mBAAc,GAAd,cAAc,CAAmB;QAElC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAhDnC,SAAI,GAAqB,gBAAgB,CAAC,MAAM,CAAC;QACjD,qBAAgB,GAAW,aAAa,CAAC;QAEzC,gBAAW,GAAW,GAAG,CAAC;QAC1B,wBAAmB,GAAW,CAAC,CAAC;QAChC,sBAAiB,GAAY,IAAI,CAAC;QAClC,mBAAc,GAAQ,EAAE,CAAC;QACzB,uBAAkB,GAAG,EAAE,CAAC;QAEvB,iBAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;QACrD,kBAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;QACtD,4BAAuB,GAAsB,IAAI,YAAY,EAAE,CAAC;QAChE,6BAAwB,GAA2C,IAAI,YAAY,EAAE,CAAC;QACtF,0BAAqB,GAAsB,IAAI,YAAY,EAAE,CAAC;QAC9D,qBAAgB,GAAoC,IAAI,YAAY,EAAE,CAAC;QACvE,sBAAiB,GAAyB,IAAI,YAAY,EAAE,CAAC;QAC7D,aAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;QAG3D,SAAI,GAAG,EAAE,CAAC;QACV,YAAO,GAAG,KAAK,CAAC;QAChB,mBAAc,GAAG,KAAK,CAAC;QACvB,mBAAc,GAAG,KAAK,CAAC;QACvB,sBAAiB,GAAG,EAAE,CAAC;QAEvB,gBAAW,GAAG,EAAE,CAAC;QACjB,qBAAgB,GAA6B,EAAE,CAAC;QAI/C,kBAAa,GAAwB,EAAE,CAAC;QACxC,iBAAY,GAAG;YACnB,OAAO,EAAE;gBACL,cAAc,EAAE,EAAE;gBAClB,aAAa,EAAE,EAAE;gBACjB,gBAAgB,EAAE,EAAE;aACvB;YACD,IAAI,EAAE;gBACF,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,EAAE;aAChB;SACJ,CAAC;KAQG;IAEE,QAAQ;QACX,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI;eACpE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;YAC/E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAC7D;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;SACxE;QAED,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;SACtF;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,sBAAsB,CAAC,QAA0B;QACpD,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;KACvC;IAEM,eAAe,CAAC,SAAkB;QACrC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC1C;IAEM,qBAAqB;QACxB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;KACvC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IAEM,IAAI;QACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC9B;IAEY,MAAM,CACf,OAAe,EACf,aAAqC,sBAAsB,CAAC,OAAO,EACnE,qBAA8B,IAAI;;YAElC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;gBAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE5B,IAAI,UAAU,IAAI,sBAAsB,CAAC,OAAO,EAAE;oBAC9C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,mCAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,GAAK,OAAO,CAAE,CAAC;iBAC1G;qBAAM;oBACH,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,mCAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,GAAK,OAAO,CAAE,CAAC;iBACxG;gBAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAE/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;aAC5C;SACJ;KAAA;IAEY,IAAI,CAAC,KAAU,EAAE,SAAc;;YACxC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG;gBACrB,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,SAAS;aACvB,CAAC;YAEF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;SAC1D;KAAA;IAEY,OAAO,CAAC,aAAgC,iBAAiB,CAAC,UAAU,EAAE,SAA4B,iBAAiB,CAAC,aAAa;;YAC1I,OAAO,IAAI,CAAC,KAAK,CACb,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,GAAG,CAAC,EACpD,KAAK,EACL,MAAM,CACT,CAAC,IAAI,CAAC,gBAAM,OAAA,EAAC,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAA,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAA,EAAA,CAAC,CAAC;SAClE;KAAA;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;KACjC;IAEM,UAAU,CAAC,OAAe;QAC7B,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;KACxD;IAEM,uBAAuB;QAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAE5B,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC5D,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBAC3F,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;wBACxB,SAAS,EAAE,SAAS;wBACpB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC;wBAC1D,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;qBAClD,CAAC,CAAC;iBACN;aACJ;SACJ;KACJ;IAEM,oBAAoB,CAAC,SAAiB,EAAE,WAAmB;QAC9D,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;KACpD;IAEM,YAAY,CAAC,SAAe;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,SAAS,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,GAAG,EAAE,CAAC;YAC9C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC/B;aAAM;YACH,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC3D,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAE1D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;SACjH;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE;YAC1D,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;SACjC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;KAClG;IAEM,gBAAgB,CAAC,MAAyC;QAC7D,MAAM,SAAS,GAAW,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAElE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC;KACtE;IAEM,iBAAiB,CAAC,aAAqC,sBAAsB,CAAC,OAAO;;QACxF,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,IAAI,UAAU,IAAI,sBAAsB,CAAC,OAAO,EAAE;YAC9C,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;SAC7D;aAAM,IAAI,UAAU,IAAI,sBAAsB,CAAC,MAAM,EAAE;YACpD,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC;SAC5D;aAAM;YACH,cAAc,mCAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,GAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAE,CAAC;SAChH;QAED,OAAO,CAAC,EAAC,MAAA,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,0CAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA,CAAC;KACpE;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,WAAW,EAAE;YACrB,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE;gBAClC,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC9B;SACJ;QAED,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;SAC9E;KACJ;IAEY,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,qBAA8B,IAAI,EAAE,SAA4B,iBAAiB,CAAC,aAAa;;YACxH,OAAO,IAAI,OAAO,CAAO,OAAO;gBAC5B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;oBACtB,OAAO,OAAO,EAAE,CAAC;iBACpB;qBAAM,IAAI,IAAI,CAAC,aAAa,EAAE;oBAC3B,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACpC;gBAED,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC7C,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;gBAE3B,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,MAAM,EAAE;oBACvC,IAAI,IAAI,CAAC,cAAc,EAAE;wBACrB,IAAI,MAAM,EAAE;4BACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;4BACpB,IAAI,CAAC,wBAAwB,EAAE,CAAC;yBACnC;wBAED,IAAI,kBAAkB,EAAE;4BACpB,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;gCAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;6BAC7C,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;yBACxB;6BAAM;4BACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;yBAC7C;qBACJ;yBAAM;wBACH,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;qBACvG;iBACJ;qBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC,KAAK,EAAE;oBAC5C,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBAEhC,OAAO,EAAE,CAAC;iBACb;aACJ,CAAC,CAAC;SACN;KAAA;IAEO,QAAQ,CAAC,IAAY;QACzB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM;YACrC,MAAM,UAAU,mCAA2B,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,GAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE,CAAC;YAEnG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACxE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;aACtC;YAED,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CACtG,CAAC,SAAS,CACP,CAAC,QAAyB;gBACtB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAErD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBAErB,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;iBACvC;gBAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAEhC,OAAO,EAAE,CAAC;aACb,EACD,CAAC,KAAK;gBACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;gBACpC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;gBAEpC,MAAM,EAAE,CAAC;aACZ,CACJ,CACJ,CAAC;SACL,CAAC,CAAC;KACN;IAEO,mBAAmB;QACvB,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,MAAM,gBAAgB,mCAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,GAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAE,CAAC;QAErH,IAAI,gBAAgB,EAAE;YAClB,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE;gBACtC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAE3C,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;oBAC5B,IAAI,MAAM,YAAY,eAAe,EAAE;wBACnC,IAAI,MAAM,CAAC,QAAQ,EAAE;4BACjB,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;4BACrD,IAAI,CAAC,uBAAuB,EAAE,CAAC;yBAClC;wBAED,gBAAgB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;qBAC7C;yBAAM;wBACH,gBAAgB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;qBACxC;iBACJ;aACJ;SACJ;QAED,OAAO,gBAAgB,CAAC;KAC3B;IAEO,wBAAwB;QAC5B,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC5E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SACjC;aAAM,IAAI,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC,KAAK,EAAE;YAC5C,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SAClC;aAAM;YACH,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SAClC;QAED,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;KACvC;IAEO,sBAAsB,CAAC,QAAa;QACxC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;KACxB;IAEO,mBAAmB;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,KAAa;YACrD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;gBAClD,IAAI,CAAC,KAAK,EAAE;oBACR,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;iBAC7B;qBAAM,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE;oBAChD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAExD,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;iBAC7B;aACJ;YAED,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1C,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;aAChC;SACJ,CAAC,CACL,CAAC;QAEF,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAU;gBAC1E,KAAK,CAAC,wBAAwB,EAAE,CAAC;gBAEjC,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE;oBACrB,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;wBACrF,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;qBACxB;iBACJ;aACJ,CAAC,CAAC;SACN;KACJ;IAEO,iBAAiB;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,cAAiC;YAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC,CAAC;YAE5F,IAAI,cAAc,CAAC,OAAO,EAAE;gBACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC9C;YAED,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC7D,CAAC,CACL,CAAC;KACL;IAEO,eAAe,CAAC,OAAe;QACnC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE;gBAC7B,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE;oBACxC,OAAO,IAAI,CAAC;iBACf;aACJ;SACJ;QAED,OAAO,KAAK,CAAC;KAChB;IAEO,aAAa,CAAC,MAAgC;QAClD,MAAM,KAAK,GAA6B,MAAM,CAAC,MAAM,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAY,CAAC,EAAE,CAAC,KAAK,YAAY,eAAe,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QACxF,MAAM,SAAS,GAAY,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzD,OAAO,SAAS,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC;KAChD;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YA3aJ,SAAS,SAAC;gBACP,QAAQ,EAAE,eAAe;gBACzB,87EAA6C;;aAEhD;;;YAvBG,QAAQ;YAaiC,cAAc;YAjBvD,iBAAiB;YAkBZ,mBAAmB,uBA+DnB,QAAQ;;;oBApDZ,SAAS,SAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;4BACnC,SAAS,SAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;0BAC3C,SAAS,SAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;6BAEzC,KAAK;mBACL,KAAK;+BACL,KAAK;0BACL,KAAK;0BACL,KAAK;kCACL,KAAK;gCACL,KAAK;6BACL,KAAK;iCACL,KAAK;2BAEL,MAAM;4BACN,MAAM;sCACN,MAAM;uCACN,MAAM;oCACN,MAAM;+BACN,MAAM;gCACN,MAAM;uBACN,MAAM;;IAmZC;AAAZ,WAAY,gBAAgB;IACxB,qCAAiB,CAAA;IACjB,mCAAe,CAAA;AACnB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;IAEW;AAAZ,WAAY,sBAAsB;IAC9B,6CAAmB,CAAA;IACnB,2CAAiB,CAAA;AACrB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;IAEW;AAAZ,WAAY,iBAAiB;IACzB,yEAAgB,CAAA;IAChB,qEAAc,CAAA;IACd,2EAAiB,CAAA;IACjB,6EAAkB,CAAA;AACtB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;MAEY,iBAAiB;CAI7B;MAEY,eAAe;;;MCndf,iBAAiB;IAG1B,YACY,QAAkB,EAClB,WAAuB,EACH,sBAA8C;QAFlE,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAY;QACH,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1E,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC1C,KAAK,EAAE;gBACH,EAAE,EAAE,UAAU;gBACd,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,EAAE;aACb;YACD,EAAE,EAAE,EAAE;YACN,MAAM,EAAE,EAAE;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9D,GAAG;YACH,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,cAAc;YACd,MAAM;YACN,MAAM;SACT,CAAC,CAAC;KACN;;;YApDJ,SAAS,SAAC;gBACP,QAAQ,EAAE,aAAa;gBACvB,qCAAyC;;aAE5C;;;YAT+B,QAAQ;YAApB,UAAU;YAErB,sBAAsB,uBActB,IAAI,YAAI,QAAQ;;;MCFZ,mBAAmB;IAW5B,YACY,QAAkB,EAClB,WAAuB,EACH,sBAA8C,EAElE,YAAmC;QAJnC,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAY;QACH,2BAAsB,GAAtB,sBAAsB,CAAwB;QAElE,iBAAY,GAAZ,YAAY,CAAuB;QAb/B,YAAO,GAAY,KAAK,CAAC;QACxB,mBAAc,GAAsB,IAAI,YAAY,EAAE,CAAC;QAIhE,OAAE,GAAG,IAAI,EAAE,CAAC;QACZ,kBAAa,GAAwB,EAAE,CAAC;QAS5C,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAEM,kBAAkB;QACrB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,OAAgB;gBAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B,CAAC,CACL,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,SAAS,CAAC;gBAChD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACxB,CAAC,CACL,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACrB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC5B,CAAC,CAAC;SACN;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,gBAAgB,CAAC,OAAgB;QACpC,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACpC,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC5B,CAAC,CAAC;SACN;KACJ;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE;YAC5C,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE;gBACH,MAAM,EAAE,EAAE;aACb;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9D,GAAG;YACH,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,cAAc;SACjB,CAAC,CAAC;KACN;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAnGJ,SAAS,SAAC;gBACP,QAAQ,EAAE,gBAAgB;gBAC1B,qIAA4C;;aAE/C;;;YAb+B,QAAQ;YAApB,UAAU;YAGrB,sBAAsB,uBAyBtB,IAAI,YAAI,QAAQ;YArBhB,qBAAqB,uBAsBrB,QAAQ,YAAI,QAAQ;;;uBAdxB,SAAS,SAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;wBAChD,KAAK;sBACL,KAAK;6BACL,MAAM;;;MCRE,cAAc;IAGvB,YACY,QAAkB,EAClB,WAAuB,EACH,sBAA8C;QAFlE,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAY;QACH,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1E,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YACvC,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE;gBACH,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,EAAE;aACb;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9D,GAAG;YACH,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,cAAc;YACd,MAAM;YACN,MAAM;YACN,OAAO;SACV,CAAC,CAAC;KACN;;;YAvDJ,SAAS,SAAC;gBACP,QAAQ,EAAE,UAAU;gBACpB,qCAAsC;;aAEzC;;;YAT+B,QAAQ;YAApB,UAAU;YAErB,sBAAsB,uBActB,IAAI,YAAI,QAAQ;;;MCJZ,mBAAmB;IAM5B,YACY,QAAkB,EAClB,WAAuB,EACH,sBAA8C,EAElE,YAAmC;QAJnC,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAY;QACH,2BAAsB,GAAtB,sBAAsB,CAAwB;QAElE,iBAAY,GAAZ,YAAY,CAAuB;QAVxC,YAAO,GAAG,KAAK,CAAC;QAGf,kBAAa,GAAwB,EAAE,CAAC;QAS5C,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAEM,kBAAkB;QACrB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC;gBACrC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACxB,CAAC,CACL,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,SAAS,CAAC;gBAChD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACxB,CAAC,CACL,CAAC;SACL;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,gBAAgB,CAAC,OAAgB;QACpC,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzD;KACJ;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE;YAC5C,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE;gBACH,MAAM,EAAE,EAAE;gBACV,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,YAAY;aACrB;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9D,GAAG;YACH,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,cAAc;YACd,UAAU;YACV,YAAY;SACf,CAAC,CAAC;KACN;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAxFJ,SAAS,SAAC;gBACP,QAAQ,EAAE,gBAAgB;gBAC1B,qIAA4C;;aAE/C;;;YAXiD,QAAQ;YAApB,UAAU;YAGvC,sBAAsB,uBAkBtB,IAAI,YAAI,QAAQ;YAhBhB,qBAAqB,uBAiBrB,QAAQ,YAAI,QAAQ;;;MCMhB,cAAc;IA2BvB,YACY,QAAkB,EAClB,WAAuB,EACH,sBAA8C,EAEnE,YAAmC;QAJlC,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAY;QACH,2BAAsB,GAAtB,sBAAsB,CAAwB;QAEnE,iBAAY,GAAZ,YAAY,CAAuB;QAxB9B,oBAAe,GAAY,KAAK,CAAC;QAEjC,oBAAe,GAAuB;YAClD,SAAS,EAAE,kBAAkB;YAC7B,UAAU,EAAE,kBAAkB;YAC9B,SAAS,EAAE,kBAAkB;SAChC,CAAC;QAEe,mBAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QAE9C,iBAAY,GAAY,KAAK,CAAC;QAC9B,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,EAAE,CAAC;QAKlB,kBAAa,GAAwB,EAAE,CAAC;QAS5C,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC;gBACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAEzF,IAAI,IAAI,CAAC,aAAa,EAAE;oBACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC;iBACrE;aACJ,CAAC,CACL,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,SAAS;gBAChD,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE;oBAC3C,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;iBAChC;aACJ,CAAC,CACL,CAAC;SACL;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;YAC5C,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5E;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEY,IAAI;;YACb,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;gBACjE,IAAI,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAEhD,IAAI,aAAa,EAAE;oBACf,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,aAAa,CAAC,CAAC;iBACxE;qBAAM;oBACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;iBAClC;gBAED,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;aACtC;SACJ;KAAA;IAEM,YAAY,CAAC,KAAU;QAC1B,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAElD,UAAU,CAAC;YACP,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;aAC/B;SACJ,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;KAC9B;IAEM,MAAM,CAAC,IAAS;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;eACnD,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,IAAI,EAAE;YACjD,OAAO;SACV;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;YACnC,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACpC;KACJ;IAEM,YAAY,CAAC,IAAS;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAChC;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;YACvC,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE;gBAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;aACzC;iBAAM,IAAI,IAAI,CAAC,aAAa,IAAI,MAAM,EAAE;gBACrC,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;aAC1C;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;SACzC;QAED,OAAO,EAAE,CAAC;KACb;IAEO,gBAAgB;QACpB,OAAO,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;KACnE;IAEO,cAAc;QAClB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAElE,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;KACf;IAEO,cAAc;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACxC,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;YAEvG,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;KACf;IAEO,oBAAoB;QACxB,QAAQ,IAAI,CAAC,aAAa;YACtB,KAAK,KAAK,EAAE,OAAO,MAAM,CAAC;YAC1B,KAAK,MAAM,EAAE,OAAO,EAAE,CAAC;YACvB,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC;SACzB;KACJ;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YACvC,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,gBAAgB;YAChC,KAAK,EAAE;gBACH,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,EAAE;aACb;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9D,GAAG;YACH,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,cAAc;YACd,MAAM;YACN,MAAM;SACT,CAAC,CAAC;KACN;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAnNJ,SAAS,SAAC;gBACP,QAAQ,EAAE,UAAU;gBACpB,opEAAsC;;aAEzC;;;YAvBG,QAAQ;YAFR,UAAU;YAgBL,sBAAsB,uBAwCtB,IAAI,YAAI,QAAQ;YArChB,qBAAqB,uBAsCrB,QAAQ,YAAI,QAAQ;;;0BA9BxB,SAAS,SAAC,aAAa;oBACvB,SAAS,SAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;wBAEnC,KAAK;4BACL,KAAK;uBACL,KAAK;yBACL,KAAK;8BACL,KAAK;0BACL,KAAK;8BACL,KAAK;6BAML,MAAM;;;MClCE,iBAAiB;IAG1B,YACY,QAAkB,EAClB,WAAuB,EACH,sBAA8C;QAFlE,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAY;QACH,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1E,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC1C,KAAK,EAAE;gBACH,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,EAAE;aACb;YACD,EAAE,EAAE,EAAE;YACN,MAAM,EAAE,EAAE;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9D,GAAG;YACH,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,cAAc;YACd,MAAM;YACN,MAAM;YACN,SAAS;SACZ,CAAC,CAAC;KACN;;;YAjDJ,SAAS,SAAC;gBACP,QAAQ,EAAE,aAAa;gBACvB,qCAAyC;;aAE5C;;;YAT+B,QAAQ;YAApB,UAAU;YAErB,sBAAsB,uBActB,IAAI,YAAI,QAAQ;;;MCOZ,cAAc;IAMvB,YACY,QAAkB,EAClB,WAAuB,EACC,QAA2B,EAC3B,QAA2B,EAC/B,sBAA8C;QAJlE,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAY;QACC,aAAQ,GAAR,QAAQ,CAAmB;QAC3B,aAAQ,GAAR,QAAQ,CAAmB;QAC/B,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1E,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YACvC,MAAM,EAAE,+CAA+C;YACvD,KAAK,EAAE;gBACH,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,EAAE;aACb;SACJ,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAElC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9D,GAAG;YACH,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,cAAc;YACd,MAAM;YACN,MAAM;SACT,CAAC,CAAC;KACN;IAEO,oBAAoB;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,eAAe,CAAC;SAC1B;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtB,OAAO,eAAe,CAAC;SAC1B;QAED,OAAO,EAAE,CAAC;KACb;;;YA/DJ,SAAS,SAAC;gBACP,QAAQ,EAAE,UAAU;gBACpB,qCAAsC;gBAEtC,aAAa,EAAE,iBAAiB,CAAC,IAAI;;aACxC;;;YAlBG,QAAQ;YAFR,UAAU;YAaL,iBAAiB,uBAiBjB,QAAQ,YAAI,QAAQ;YAlBpB,iBAAiB,uBAmBjB,QAAQ,YAAI,QAAQ;YArBpB,sBAAsB,uBAsBtB,IAAI,YAAI,QAAQ;;;2BAVpB,WAAW,SAAC,oBAAoB,cAAG,KAAK;0BACxC,WAAW,SAAC,mBAAmB,cAAG,KAAK;;;MC8B/B,kBAAkB;;;YAlC9B,QAAQ,SAAC;gBACN,YAAY,EAAE;oBACV,qBAAqB;oBACrB,iBAAiB;oBACjB,cAAc;oBACd,mBAAmB;oBACnB,cAAc;oBACd,mBAAmB;oBACnB,iBAAiB;oBACjB,cAAc;iBACjB;gBACD,OAAO,EAAE;oBACL,qBAAqB;oBACrB,iBAAiB;oBACjB,cAAc;oBACd,mBAAmB;oBACnB,cAAc;oBACd,mBAAmB;oBACnB,iBAAiB;oBACjB,cAAc;iBACjB;gBACD,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACX,gBAAgB;oBAChB,mBAAmB;oBACnB,iBAAiB;oBACjB,cAAc;oBACd,cAAc;oBACd,YAAY;oBACZ,eAAe;oBACf,mBAAmB;iBACtB;aACJ;;;MCpBY,0BAA0B;IASnC,YACY,QAAkB,EACE,sBAA8C;QADlE,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAP9D,kBAAa,GAAY,KAAK,CAAC;QAExC,WAAM,GAAY,KAAK,CAAC;QAO3B,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE;YACnD,KAAK,EAAE;gBACH,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,YAAY;aACrB;YACD,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,MAAM;SACZ,CAAC,CAAC;KACN;IAEM,UAAU;QACb,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KAChC;IAEM,gBAAgB,CAAC,GAAW;QAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEM,OAAO,CAAC,KAAY,EAAE,IAA2B;QACpD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;YACnC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;SACxB;QAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;KACjD;IAEM,YAAY,CAAC,IAA2B;QAC3C,OAAO,IAAI,CAAC,IAAI,IAAI,qBAAqB,CAAC,MAAM,CAAC;KACpD;IAEM,gBAAgB,CAAC,IAA2B;QAC/C,OAAO,IAAI,CAAC,IAAI,IAAI,qBAAqB,CAAC,UAAU,CAAC;KACxD;;;YArFJ,SAAS,SAAC;gBACP,QAAQ,EAAE,qBAAqB;gBAC/B,8mEAAmD;gBAEnD,UAAU,EAAE;oBACR,OAAO,CAAC,OAAO,EAAE;wBACb,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;wBACnE,UAAU,CAAC,gBAAgB,EAAE;4BACzB,OAAO,CAAC,GAAG,CAAC;yBACf,CAAC;qBACL,CAAC;oBAEF,OAAO,CAAC,WAAW,EAAE;wBACjB,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;4BAChB,SAAS,EAAE,gBAAgB;yBAC9B,CAAC,CAAC;wBACH,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;4BAClB,SAAS,EAAE,iBAAiB;yBAC/B,CAAC,CAAC;wBACH,UAAU,CAAC,gBAAgB,EAAE;4BACzB,OAAO,CAAC,cAAc,CAAC;yBAC1B,CAAC;wBACF,UAAU,CAAC,gBAAgB,EAAE;4BACzB,OAAO,CAAC,cAAc,CAAC;yBAC1B,CAAC;qBACL,CAAC;iBACL;;aACJ;;;YAhCmB,QAAQ;YAEnB,sBAAsB,uBA0CtB,IAAI,YAAI,QAAQ;;;oBAVpB,KAAK;mBACL,KAAK;oBACL,KAAK;4BACL,KAAK;;IAkEE;AAAZ,WAAY,qBAAqB;IAC7B,kDAAyB,CAAA;IACzB,0CAAiB,CAAA;AACrB,CAAC,EAHW,qBAAqB,KAArB,qBAAqB;;MCxFpB,uBAAuB;;;YATnC,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,0BAA0B,CAAC;gBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;gBACrC,OAAO,EAAE;oBACL,YAAY;oBACZ,YAAY;oBACZ,YAAY;iBACf;aACJ;;;MCcY,kBAAmB,SAAQ,cAAc;IAclD,YAEW,aAA+B,EAC9B,QAAmB,EAEnB,gBAAkC;QAE1C,KAAK,EAAE,CAAC;QALD,kBAAa,GAAb,aAAa,CAAkB;QAC9B,aAAQ,GAAR,QAAQ,CAAW;QAEnB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAZ9B,QAAG,GAAW,GAAG,CAAC;QAClB,QAAG,GAAW,KAAK,CAAC;QACpB,SAAI,GAAW,GAAG,CAAC;QACnB,UAAK,GAA6B,wBAAwB,CAAC,OAAO,CAAC;QAE3E,kBAAa,GAAwB,EAAE,CAAC;QAW5C,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAEjD,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAgB;gBAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B,CAAC,CACL,CAAC;SACL;KACJ;IAEM,eAAe;QAClB,UAAU,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;SACrD,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE;YACvD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACzD,CAAC,CAAC;KACN;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,MAAM,CAAC,KAAc;QACxB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;KAC5C;IAEM,cAAc,CAAC,KAAc;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAtEJ,SAAS,SAAC;gBACP,QAAQ,EAAE,YAAY;gBACtB,4uBAA0C;gBAE1C,SAAS,EAAE;oBACP,eAAe,CAAC,kBAAkB,CAAC;iBACtC;gBACD,aAAa,EAAE;oBACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE;iBACrD;;aACJ;;;YAhBQ,gBAAgB,uBAgChB,QAAQ,YAAI,IAAI;YApCrB,SAAS;YAQJ,gBAAgB,uBA+BhB,QAAQ,YAAI,QAAQ;;;sBAjBxB,SAAS,SAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;sBACrC,SAAS,SAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;oBAErC,KAAK;sBACL,KAAK;mBACL,KAAK;kBACL,KAAK;kBACL,KAAK;mBACL,KAAK;oBACL,KAAK;;IAoDE;AAAZ,WAAY,wBAAwB;IAChC,+CAAmB,CAAA;IACnB,+CAAmB,CAAA;IACnB,+CAAmB,CAAA;IACnB,6CAAiB,CAAA;AACrB,CAAC,EALW,wBAAwB,KAAxB,wBAAwB,QAKnC;AAAA;;MClFY,eAAe;;;YAR3B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;gBAC7B,OAAO,EAAE;oBACL,YAAY;oBACZ,gBAAgB;iBACnB;aACJ;;;MCLY,gCAAgC;IAJ7C;QAKqB,8BAAyB,GAAG,IAAI,YAAY,EAAE,CAAC;KAKnE;IAHU,oBAAoB,CAAC,iBAA0C;QAClE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC1D;;;YATJ,SAAS,SAAC;gBACP,QAAQ,EAAE,8BAA8B;gBACxC,qCAA0D;aAC7D;;;wCAEI,MAAM;;;MCyBE,uBAAwB,SAAQ,cAAc;IAWvD,YACY,QAAkB,EAEnB,aAA+B,EAC9B,QAAmB,EAEnB,sBAA8C,EAE9C,gBAAkC,EAElC,uBAAyD;QAEjE,KAAK,EAAE,CAAC;QAXA,aAAQ,GAAR,QAAQ,CAAU;QAEnB,kBAAa,GAAb,aAAa,CAAkB;QAC9B,aAAQ,GAAR,QAAQ,CAAW;QAEnB,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE9C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAElC,4BAAuB,GAAvB,uBAAuB,CAAkC;QAjBrD,YAAO,GAAY,KAAK,CAAC;QAKjC,kBAAa,GAAwB,EAAE,CAAC;QAgB5C,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAEjD,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAgB;gBAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B,CAAC,CACL,CAAC;SACL;QAED,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,iBAA0C;gBACxG,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;aACvD,CAAC,CACL,CAAC;SACL;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;YAC7C,KAAK,EAAE;gBACH,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,iBAAiB;aAC5B;SACJ,CAAC,CAAC;KACN;IAEM,eAAe;QAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,KAAK;YAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC3D,CAAC,CAAC;KACN;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,MAAM,CAAC,KAAc;QACxB,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;YAE3C,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBAC9B,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;aAC3D;SACJ;KACJ;IAEM,cAAc,CAAC,KAAc;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;QAEpC,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;SAC3D;KACJ;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAnGJ,SAAS,SAAC;gBACP,QAAQ,EAAE,kBAAkB;gBAC5B,g/BAAgD;gBAEhD,SAAS,EAAE;oBACP,eAAe,CAAC,uBAAuB,CAAC;iBAC3C;gBACD,aAAa,EAAE;oBACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE;iBACrD;;aACJ;;;YA5BG,QAAQ;YASH,gBAAgB,uBAiChB,QAAQ,YAAI,IAAI;YAtCrB,SAAS;YASJ,sBAAsB,uBAgCtB,IAAI,YAAI,QAAQ;YA9BhB,gBAAgB,uBAgChB,QAAQ,YAAI,QAAQ;YA/BpB,gCAAgC,uBAiChC,QAAQ,YAAI,QAAQ;;;sBAnBxB,SAAS,SAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;oBAErC,KAAK;sBACL,KAAK;mBACL,KAAK;;;MCxBG,oBAAoB;;;YARhC,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,uBAAuB,EAAE,gCAAgC,CAAC;gBACzE,OAAO,EAAE,CAAC,uBAAuB,EAAE,gCAAgC,CAAC;gBACpE,OAAO,EAAE;oBACL,YAAY;oBACZ,gBAAgB;iBACnB;aACJ;;;MCoBY,oBAAqB,SAAQ,cAAc;IA6BpD,YACY,QAAkB,EACE,sBAA8C,EAEnE,aAA+B,EAE9B,gBAAkC,EAClC,QAAmB,EAEpB,mBAAwC;QAE/C,KAAK,EAAE,CAAC;QAVA,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAEnE,kBAAa,GAAb,aAAa,CAAkB;QAE9B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,aAAQ,GAAR,QAAQ,CAAW;QAEpB,wBAAmB,GAAnB,mBAAmB,CAAqB;;QAlCnC,UAAK,GAAW,EAAE,CAAC;QACnB,gBAAW,GAAW,EAAE,CAAC;QACzB,SAAI,GAAW,GAAG,CAAC;QAEnB,yBAAoB,GAAY,KAAK,CAAC;QACtC,aAAQ,GAAY,KAAK,CAAC;QAC1B,kBAAa,GAAW,gBAAgB,CAAC;QACzC,YAAO,GAAY,KAAK,CAAC;QAIzB,eAAU,GAAY,KAAK,CAAC;QAC5B,eAAU,GAAY,KAAK,CAAC;QAC5B,QAAG,GAAY,KAAK,CAAC;QACrB,UAAK,GAAY,KAAK,CAAC;;QAGvB,eAAU,GAAY,KAAK,CAAC;QAC5B,cAAS,GAAW,GAAG,CAAC;QAEjC,mBAAc,GAAG,KAAK,CAAC;QAGtB,kBAAa,GAAwB,EAAE,CAAC;QAe5C,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAEjD,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAgB;gBAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B,CAAC,CACL,CAAC;SACL;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;YAC7C,KAAK,EAAE;gBACH,MAAM,EAAE,uCAAuC;gBAC/C,EAAE,EAAE,4BAA4B;gBAChC,IAAI,EAAE,eAAe;aACxB;SACJ,CAAC,CAAC;KACN;IAEM,WAAW,CAAC,OAAO;QACtB,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAEM,QAAQ;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SACvG;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC1F;aAAM;YACH,UAAU,CAAC;gBACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAE3B,UAAU,CAAC;oBACP,IAAI,CAAC,aAAa,EAAE,CAAC;iBACxB,CAAC,CAAC;aACN,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,QAAQ;QACX,UAAU,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACtC,EAAE,GAAG,CAAC,CAAC;KACX;IAEM,KAAK;QACR,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACnB;IAEM,MAAM,CAAC,KAAK;QACf,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,IAAI,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;QAEtC,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5C;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,YAAY,CAAC;SACnD;KACJ;IAEM,sBAAsB;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE;YAC3G,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;gBAChE,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;aACnE;iBAAM;gBACH,OAAO,CAAC,CAAC;aACZ;SACJ;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACpH,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;aACnB;YAED,IAAI,KAAK,GAAG,QAAQ,CAAC;YAErB,IAAI,IAAI,CAAC,GAAG,EAAE;gBACV,KAAK,IAAI,yBAAyB,CAAC;aACtC;YAED,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG;gBACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE;oBAClD,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;oBAExC,IAAI,IAAI,CAAC,KAAK,IAAI,WAAW,EAAE;wBAC3B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;qBAC5B;iBACJ,CAAC,CAAC;aACN,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,KAAK;gBAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;;oBAE7H,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE;wBAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;wBAEvB,OAAO,KAAK,CAAC;qBAChB;iBACJ;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;aAClC;iBAAM;gBACH,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;aACrC;SACJ;aAAM;YACH,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SAC3F;KACJ;IAEO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;SACV;QAED,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC5C;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC7D;QAED,UAAU,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;SAC7C,CAAC,CAAC;KACN;IAEO,cAAc;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;KAC3C;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAvNJ,SAAS,SAAC;gBACP,QAAQ,EAAE,cAAc;gBACxB,ukEAA4C;gBAE5C,SAAS,EAAE;oBACP,eAAe,CAAC,oBAAoB,CAAC;iBACxC;gBACD,aAAa,EAAE;oBACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE;iBACrD;;aACJ;;;YA7BG,QAAQ;YAcH,sBAAsB,uBA+CtB,IAAI,YAAI,QAAQ;YAnDhB,gBAAgB,uBAoDhB,QAAQ,YAAI,IAAI;YA7ChB,gBAAgB,uBA+ChB,QAAQ,YAAI,QAAQ;YA3DzB,SAAS;YAUJ,mBAAmB,uBAoDnB,QAAQ;;;sBApCZ,SAAS,SAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;oBAGrC,KAAK;0BACL,KAAK;mBACL,KAAK;wBACL,KAAK;mCACL,KAAK;uBACL,KAAK;4BACL,KAAK;sBACL,KAAK;mBAGL,KAAK;yBACL,KAAK;yBACL,KAAK;kBACL,KAAK;oBACL,KAAK;yBAGL,KAAK;wBACL,KAAK;;;MCnCG,iBAAiB;;;YAZ7B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,oBAAoB,CAAC;gBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;gBAC/B,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,mBAAmB;oBACnB,gBAAgB;oBAChB,aAAa;iBAChB;aACJ;;;ACKD,MAAM,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;AAC/D,MAAM,EAAE,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC,OAAO,CAAC;AAC7D,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;MAclB,gBAAiB,SAAQ,cAAc;IA4ChD,YACY,QAAkB,EACE,sBAA8C,EAEnE,aAA+B,EAE9B,gBAAkC;QAE1C,KAAK,EAAE,CAAC;QAPA,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAEnE,kBAAa,GAAb,aAAa,CAAkB;QAE9B,qBAAgB,GAAhB,gBAAgB,CAAkB;;QA9C9B,UAAK,GAAW,EAAE,CAAC;QACnB,gBAAW,GAAW,EAAE,CAAC;QAGzB,kBAAa,GAAW,gBAAgB,CAAC;QACzC,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAW,WAAW,CAAC;QACjC,sBAAiB,GAAG,qBAAqB,CAAC;QAI1C,eAAU,GAAY,KAAK,CAAC;QAC5B,eAAU,GAAY,KAAK,CAAC;QAE5B,cAAS,GAAY,IAAI,CAAC;QAC1B,eAAU,GAAY,IAAI,CAAC;QAC3B,eAAU,GAAY,KAAK,CAAC;QAC5B,oBAAe,GAAW,CAAC,CAAC;QAC5B,eAAU,GAAY,KAAK,CAAC;QAE5B,eAAU,GAAY,IAAI,CAAC;;QAM3B,eAAU,GAAY,KAAK,CAAC;QAKrC,mBAAc,GAAG,KAAK,CAAC;QACvB,eAAU,GAAG,IAAI,EAAE,CAAC;QACpB,oBAAe,GAGlB,EAAE,CAAC;QAEC,kBAAa,GAAwB,EAAE,CAAC;QAY5C,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAEjD,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAgB;gBAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B,CAAC,CACL,CAAC;SACL;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE;YACzC,CAAC,EAAE,MAAM;YACT,KAAK,EAAE;gBACH,IAAI,EAAE,eAAe;aACxB;SACJ,CAAC,CAAC;KACN;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;QAED,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;SACzE;QAED,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;SAC/E;KACJ;IAEM,QAAQ;QACX,IAAI,CAAC,UAAU,GAAG;YACd,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;YACxB,QAAQ,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC;YAClG,OAAO,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC;SACrG,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC5E;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;aAAM;YACH,UAAU,CAAC;gBACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,UAAU,CAAC;oBACP,IAAI,CAAC,aAAa,EAAE,CAAC;iBACxB,CAAC,CAAC;aACN,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;IAEM,WAAW;QACd,MAAM,gBAAgB,GAAG,QAAQ,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QAE/E,IAAI,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,EAAE;YAC1B,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC1D;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,UAAU,CAAC,aAAa,GAAG,KAAK;QACnC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,qBAAqB,IAAI,aAAa,EAAE;YAC7C,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;SACnD;KACJ;IAEM,MAAM,CAAC,KAAU;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5C;QAED,IAAI,CAAC,KAAK,KAAK,KAAK,YAAY,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE;YACnE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;SAC5B;QAED,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE;YACpC,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAE/B,IAAI,CAAC,KAAK,YAAY,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,MAAM,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;gBACpG,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;oBACnB,UAAU,GAAG,UAAU,CAAC;oBAExB,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEnC,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE;wBAC/C,OAAa,IAAI,CAAC,qBAAqB,CAAC,SAAU,CAAC,OAAO,CAAC;4BACvD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;4BAC7C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;yBACjD,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC7B;iBACJ;aACJ;YAED,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE;gBACtB,OAAa,IAAI,CAAC,qBAAqB,CAAC,SAAU,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aACpI;YAED,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;KACJ;IAEM,cAAc,CAAC,KAAU,EAAE,QAAa,EAAE,YAAqB;QAClE,IAAI,CAAC,KAAK,KAAK,KAAK,YAAY,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE;YACnE,IAAI,YAAY,EAAE;gBACd,QAAQ,CAAC,KAAK,EAAE,CAAC;aACpB;YAED,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;SAC5B;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE;YAChC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YAEtB,KAAK,CAAC,OAAO,CAAC,OAAO;gBACjB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAE1B,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;oBAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;iBACjE;aACJ,CAAC,CAAC;SACN;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACjB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;gBAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAC3D;SACJ;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE;YAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SACjC;KACJ;IAEM,cAAc;QACjB,IAAI,WAAW,GAAQ,IAAI,CAAC,WAAW,CAAC;QAExC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE;YACnC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC5D;QAED,OAAO,WAAW,CAAC;KACtB;IAEM,uBAAuB;QAC1B,IAAI,WAAW,GAAQ,IAAI,CAAC,WAAW,CAAC;QAExC,IAAI,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC3C,IAAI,oBAAoB,GAAW,EAAE,CAAC;YAEtC,WAAW,CAAC,OAAO,CAAC,OAAO;gBACvB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAE1B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;oBACpC,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;iBAC9D;qBAAM,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;oBAC1C,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,GAAG,CAAC;iBACvE;aACJ,CAAC,CAAC;YAEH,OAAO,oBAAoB,CAAC;SAC/B;aAAM,IAAI,WAAW,EAAE;YACpB,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAElC,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACxC,OAAO,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;aACjD;iBAAM,IAAI,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;gBAC9C,OAAO,WAAW,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,GAAG,CAAC;aAC1D;SACJ;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IAEM,SAAS;;QACZ,OAAO,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,MAAK,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,MAAK,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KAC3H;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACpH,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACxE;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;aAClC;iBAAM;gBACH,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;aACrC;SACJ;KACJ;IAEO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;SACV;QAED,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC5C;QAED,UAAU,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;SAC7C,CAAC,CAAC;KACN;IAEO,SAAS;QACb,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE;gBACrC,OAAO,MAAM,CAAC;aACjB;SACJ;QAED,OAAO,EAAE,CAAC;KACb;IAEO,WAAW;QACf,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE;gBAChC,OAAO,OAAO,CAAC;aAClB;SACJ;QAED,OAAO,QAAQ,CAAC;KACnB;IAEO,mBAAmB;QACvB,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC7B,KAAK,GAAG;oBACJ,UAAU,IAAI,IAAI,CAAC;oBACnB,MAAM;gBACV,KAAK,GAAG;oBACJ,UAAU,IAAI,IAAI,CAAC;oBACnB,MAAM;gBACV,KAAK,GAAG;oBACJ,UAAU,IAAI,KAAK,CAAC;oBACpB,MAAM;gBACV,KAAK,GAAG;oBACJ,UAAU,IAAI,MAAM,CAAC;oBACrB,MAAM;gBACV,KAAK,GAAG;oBACJ,UAAU,IAAI,GAAG,CAAC;oBAClB,MAAM;gBACV,KAAK,GAAG;oBACJ,UAAU,IAAI,GAAG,CAAC;oBAClB,MAAM;gBACV,KAAK,GAAG;oBACJ,UAAU,IAAI,GAAG,CAAC;oBAClB,MAAM;gBACV,KAAK,GAAG;oBACJ,UAAU,IAAI,IAAI,CAAC;oBACnB,MAAM;gBACV,KAAK,GAAG;oBACJ,UAAU,IAAI,IAAI,CAAC;oBACnB,MAAM;gBACV,KAAK,GAAG;oBACJ,UAAU,IAAI,IAAI,CAAC;oBACnB,MAAM;gBACV;oBACI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBAClC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;qBAC3C;aACR;SACJ;QAED,OAAO,UAAU,GAAG,UAAU,GAAG,qBAAqB,CAAC;KAC1D;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAlXJ,SAAS,SAAC;gBACP,QAAQ,EAAE,UAAU;gBACpB,40DAAwC;gBAExC,aAAa,EAAE,iBAAiB,CAAC,IAAI;gBACrC,SAAS,EAAE;oBACP,eAAe,CAAC,gBAAgB,CAAC;iBACpC;gBACD,aAAa,EAAE;oBACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE;iBACrD;;aACJ;;;YArCG,QAAQ;YAgBH,sBAAsB,uBAoEtB,IAAI,YAAI,QAAQ;YAzEhB,gBAAgB,uBA0EhB,QAAQ,YAAI,IAAI;YAjEhB,gBAAgB,uBAmEhB,QAAQ,YAAI,QAAQ;;;oCAhDxB,SAAS,SAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;oBAGnD,KAAK;0BACL,KAAK;wBACL,KAAK;uBACL,KAAK;4BACL,KAAK;sBACL,KAAK;yBACL,KAAK;gCACL,KAAK;mBAGL,KAAK;yBACL,KAAK;yBACL,KAAK;mBACL,KAAK;wBACL,KAAK;yBACL,KAAK;yBACL,KAAK;8BACL,KAAK;yBACL,KAAK;qBACL,KAAK;yBACL,KAAK;sBACL,KAAK;sBACL,KAAK;0BACL,KAAK;yBAGL,KAAK;;IA2UE;AAAZ,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,0BAAS,CAAA;AACb,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;IAEW;AAAZ,WAAY,WAAW;IACnB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;AACnB,CAAC,EAHW,WAAW,KAAX,WAAW;;MCjYV,aAAa;;;YAZzB,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;gBAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;gBAC3B,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACX,kBAAkB;oBAClB,mBAAmB;oBACnB,gBAAgB;oBAChB,eAAe;iBAClB;aACJ;;;MCTY,kBAAkB;IAY3B,YAEY,gBAAkC,EAClC,QAAkB,EACE,sBAA8C;QAFlE,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAf9D,SAAI,GAAY,KAAK,CAAC;QAEtB,SAAI,GAAW,SAAS,CAAC;QACzB,YAAO,GAAY,KAAK,CAAC;QACzB,eAAU,GAAY,KAAK,CAAC;QAC5B,aAAQ,GAAY,KAAK,CAAC;QAIlC,kBAAa,GAAwB,EAAE,CAAC;QAQ5C,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAgB;gBAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B,CAAC,CACL,CAAC;SACL;KACJ;IAEM,OAAO,CAAC,KAAY;QACvB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE;YACjC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;KACJ;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE;gBACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE;oBAClD,KAAK,EAAE;wBACH,EAAE,EAAE,cAAc;wBAClB,IAAI,EAAE,oBAAoB;qBAC7B;oBACD,EAAE,EAAE,MAAM;oBACV,EAAE,EAAE,MAAM;iBACb,CAAC,CAAC;aACN;iBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE;gBAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE;oBAClD,KAAK,EAAE;wBACH,EAAE,EAAE,eAAe;wBACnB,IAAI,EAAE,oBAAoB;qBAC7B;oBACD,EAAE,EAAE,MAAM;oBACV,EAAE,EAAE,MAAM;iBACb,CAAC,CAAC;aACN;iBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,QAAQ,EAAE;gBAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE;oBACjD,KAAK,EAAE;wBACH,EAAE,EAAE,YAAY;wBAChB,IAAI,EAAE,oBAAoB;qBAC7B;oBACD,EAAE,EAAE,MAAM;oBACV,EAAE,EAAE,MAAM;iBACb,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE;oBAC/C,KAAK,EAAE;wBACH,EAAE,EAAE,aAAa;wBACjB,IAAI,EAAE,oBAAoB;qBAC7B;oBACD,EAAE,EAAE,MAAM;oBACV,EAAE,EAAE,MAAM;iBACb,CAAC,CAAC;aACN;SACJ;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YA9FJ,SAAS,SAAC;gBACP,QAAQ,EAAE,YAAY;gBACtB,68CAA0C;;aAE7C;;;YANQ,gBAAgB,uBAoBhB,QAAQ,YAAI,QAAQ;YAzBT,QAAQ;YAGnB,sBAAsB,uBAyBtB,IAAI,YAAI,QAAQ;;;mBAfpB,KAAK;mBACL,KAAK;mBACL,KAAK;sBACL,KAAK;yBACL,KAAK;uBACL,KAAK;;;MCFG,eAAe;;;YAT3B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;gBAC7B,OAAO,EAAE;oBACL,YAAY;oBACZ,YAAY;oBACZ,aAAa;iBAChB;aACJ;;;MCLY,uBAAuB;IAGhC,YACY,QAAkB,EACE,sBAA8C;QADlE,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1E,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE;YAChD,KAAK,EAAE;gBACH,IAAI,EAAE,YAAY;aACrB;SACJ,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;KAC3B;;;YAvBJ,SAAS,SAAC;gBACP,QAAQ,EAAE,kBAAkB;gBAC5B,uIAAgD;;aAEnD;;;YATmB,QAAQ;YAEnB,sBAAsB,uBAatB,IAAI,YAAI,QAAQ;;;MCLZ,yBAAyB;IAGlC,YACY,QAAkB,EACE,sBAA8C;QADlE,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1E,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE;YAClD,KAAK,EAAE;gBACH,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,YAAY;aACrB;SACJ,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;KAC3B;;;YAxBJ,SAAS,SAAC;gBACP,QAAQ,EAAE,oBAAoB;gBAC9B,wgBAAkD;;aAErD;;;YATmB,QAAQ;YAEnB,sBAAsB,uBAatB,IAAI,YAAI,QAAQ;;;MCLZ,yBAAyB;IASlC,YACY,QAAkB,EACE,sBAA8C;QADlE,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAV9D,YAAO,GAAW,EAAE,CAAC;QACrB,SAAI,GAAW,EAAE,CAAC;QAClB,gBAAW,GAAW,EAAE,CAAC;QACzB,eAAU,GAAW,EAAE,CAAC;QACxB,oBAAe,GAAW,EAAE,CAAC;QAQzC,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE;YAClD,CAAC,EAAE,QAAQ;YACX,CAAC,EAAE,QAAQ;YACX,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,EAAE;SACZ,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;KAC3B;;;YA9BJ,SAAS,SAAC;gBACP,QAAQ,EAAE,oBAAoB;gBAC9B,q+CAAkD;;aAErD;;;YATmB,QAAQ;YAEnB,sBAAsB,uBAmBtB,IAAI,YAAI,QAAQ;;;sBAVpB,KAAK;mBACL,KAAK;0BACL,KAAK;yBACL,KAAK;8BACL,KAAK;;;MCIG,mBAAmB;IAY5B,YACY,QAAkB,EACE,sBAA8C;QADlE,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAZ9D,SAAI,GAAW,IAAI,CAAC;QACpB,iBAAY,GAAY,KAAK,CAAC;QAC9B,eAAU,GAAY,KAAK,CAAC;QAC5B,aAAQ,GAAY,IAAI,CAAC;QACzB,cAAS,GAAW,EAAE,CAAC;QACvB,aAAQ,GAAW,EAAE,CAAC;QACtB,kBAAa,GAAW,EAAE,CAAC;QAQvC,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE;YAC5C,CAAC,EAAE,QAAQ;YACX,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;KACN;;;YAxCJ,SAAS,SAAC;gBACP,QAAQ,EAAE,aAAa;gBACvB,mtDAA2C;gBAE3C,UAAU,EAAE;oBACR,OAAO,CAAC,QAAQ,EAAE;wBACd,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;wBACnE,UAAU,CAAC,QAAQ,EAAE;4BACjB,OAAO,CAAC,GAAG,CAAC;yBACf,CAAC;qBACL,CAAC;iBACL;;aACJ;;;YAjBmB,QAAQ;YAEnB,sBAAsB,uBA8BtB,IAAI,YAAI,QAAQ;;;sBAbpB,KAAK;mBACL,KAAK;2BACL,KAAK;yBACL,KAAK;uBACL,KAAK;wBACL,KAAK;uBACL,KAAK;4BACL,KAAK;;;MCEG,gBAAgB;;;YAnB5B,QAAQ,SAAC;gBACN,YAAY,EAAE;oBACV,mBAAmB;oBACnB,yBAAyB;oBACzB,uBAAuB;oBACvB,yBAAyB;iBAC5B;gBACD,OAAO,EAAE;oBACL,mBAAmB;oBACnB,yBAAyB;oBACzB,uBAAuB;oBACvB,yBAAyB;iBAC5B;gBACD,OAAO,EAAE;oBACL,YAAY;oBACZ,YAAY;oBACZ,eAAe;iBAClB;aACJ;;;IC5BW;AAAZ,WAAY,IAAI;IACZ,qBAAa,CAAA;IACb,iBAAS,CAAA;IACT,iBAAS,CAAA;IACT,iBAAS,CAAA;IACT,iBAAS,CAAA;IACT,qBAAa,CAAA;AACjB,CAAC,EAPW,IAAI,KAAJ,IAAI,QAOf;AAAA;;SCLe,yBAAyB,CAAC,IAAY,EAAE,QAAa,EAAE,WAAoC;IACvG,OAAO,OAAO,CAAC,IAAI,EAAE;QACjB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAChG,UAAU,CAAC,gBAAgB,EAAE;YACzB,OAAO,CAAC,QAAQ,CAAC;SACpB,CAAC;KACL,CAAC,CAAC;AACP,CAAC;SAEe,yBAAyB,CAAC,IAAY,EAAE,QAAa,EAAE,WAAoC;IACvG,OAAO,OAAO,CAAC,IAAI,EAAE;QACjB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/F,UAAU,CAAC,gBAAgB,EAAE;YACzB,OAAO,CAAC,QAAQ,CAAC;SACpB,CAAC;KACL,CAAC,CAAC;AACP,CAAC;SAEe,iBAAiB,CAAC,IAAY,EAAE,QAAa,EAAE,WAAoC;IAC/F,OAAO,OAAO,CAAC,IAAI,EAAE;QACjB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAChG,UAAU,CAAC,gBAAgB,EAAE;YACzB,OAAO,CAAC,QAAQ,CAAC;SACpB,CAAC;KACL,CAAC,CAAC;AACP,CAAC;SAEe,eAAe,CAAC,IAAY,EAAE,QAAa,EAAE,WAAoC;IAC7F,OAAO,OAAO,CAAC,IAAI,EAAE;QACjB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/F,UAAU,CAAC,gBAAgB,EAAE;YACzB,OAAO,CAAC,QAAQ,CAAC;SACpB,CAAC;KACL,CAAC,CAAC;AACP;;MCRa,mBAAmB;IAe5B,YACY,QAAkB,EACE,iBAAyC;QAD7D,aAAQ,GAAR,QAAQ,CAAU;QACE,sBAAiB,GAAjB,iBAAiB,CAAwB;QAbzD,SAAI,GAAS,IAAI,CAAC,EAAE,CAAC;QACrB,gBAAW,GAAY,KAAK,CAAC;QAC7B,0BAAqB,GAAY,IAAI,CAAC;QAE/C,YAAO,GAAY,KAAK,CAAC;QACzB,SAAI,GAAY,KAAK,CAAC;QACtB,qBAAgB,GAAY,KAAK,CAAC;QASrC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;SACpE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE;YACzC,CAAC,EAAE,oBAAoB;YACvB,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAGM,cAAc,CAAC,KAAM;QACxB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;KACxC;IAEM,eAAe;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,UAAU,CAAC;gBACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACvB,CAAC,CAAC;SACN;KACJ;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAClE;KACJ;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;aAAM;YACH,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;KACJ;IAEM,SAAS;QACZ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;IAEM,QAAQ;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;IAEM,UAAU;QACb,QAAQ,IAAI,CAAC,IAAI;YACb,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,kBAAkB,CAAC;YAC1C,KAAK,IAAI,CAAC,EAAE,EAAE,OAAO,kBAAkB,CAAC;YACxC,KAAK,IAAI,CAAC,EAAE,EAAE,OAAO,kBAAkB,CAAC;YACxC,KAAK,IAAI,CAAC,EAAE,EAAE,OAAO,kBAAkB,CAAC;YACxC,KAAK,IAAI,CAAC,EAAE,EAAE,OAAO,kBAAkB,CAAC;YACxC,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,QAAQ,CAAC;SACnC;KACJ;IAEM,gBAAgB;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAO,QAAQ,CAAC;SACnB;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACrB,OAAO,QAAQ,CAAC;SACnB;QAED,QAAQ,IAAI,CAAC,IAAI;YACb,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,QAAQ,CAAC;YAChC,KAAK,IAAI,CAAC,EAAE,EAAE,OAAO,mBAAmB,CAAC;YACzC,KAAK,IAAI,CAAC,EAAE,EAAE,OAAO,mBAAmB,CAAC;YACzC,KAAK,IAAI,CAAC,EAAE,EAAE,OAAO,kBAAkB,CAAC;YACxC,KAAK,IAAI,CAAC,EAAE,EAAE,OAAO,kBAAkB,CAAC;YACxC,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO,QAAQ,CAAC;SACnC;KACJ;IAEM,cAAc,CAAC,IAAU;QAC5B,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SACjC;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAChC;KACJ;IAEM,YAAY;QACf,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC7B,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAClC;;;YA3HJ,SAAS,SAAC;gBACP,QAAQ,EAAE,aAAa;gBACvB,kxBAA2C;gBAE3C,UAAU,EAAE;oBACR,iBAAiB,CAAC,mBAAmB,EAAE,GAAG,CAAC;iBAC9C;;aACJ;;;YArBG,QAAQ;YASH,sBAAsB,uBA+BtB,IAAI,YAAI,QAAQ;;;0BAhBpB,SAAS,SAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;2BACtC,SAAS,SAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;mBAEvC,KAAK;0BACL,KAAK;oCACL,KAAK;6BA2BL,YAAY,SAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;;;MCjDhC,gBAAgB;;;YAP5B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;gBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;gBAC9B,OAAO,EAAE;oBACL,YAAY;iBACf;aACJ;;;MCDY,qBAAqB;IAK9B,YACY,QAAkB,EACE,sBAA8C;QADlE,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAE1E,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;YAC3C,CAAC,EAAE,QAAQ;YACX,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;KACN;IAEM,eAAe;QAClB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;KACpE;;;YA5BJ,SAAS,SAAC;gBACP,QAAQ,EAAE,gBAAgB;gBAC1B,mjBAA8C;;aAEjD;;;YAT+B,QAAQ;YAE/B,sBAAsB,uBAetB,IAAI,YAAI,QAAQ;;;sBANpB,SAAS,SAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;uBAErC,KAAK;;;MCFG,kBAAkB;;;YAP9B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;gBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;gBAChC,OAAO,EAAE;oBACL,YAAY;iBACf;aACJ;;;MCAY,mBAAmB;IAG5B,YACY,QAAkB,EACE,uBAA+C;QADnE,aAAQ,GAAR,QAAQ,CAAU;QACE,4BAAuB,GAAvB,uBAAuB,CAAwB;QAE3E,IAAI,IAAI,CAAC,uBAAuB,EAAE;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC;SAC1E;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE;YACzC,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;KACN;;;YArBJ,SAAS,SAAC;gBACP,QAAQ,EAAE,aAAa;gBACvB,oKAA2C;;aAE9C;;;YATmB,QAAQ;YAEnB,sBAAsB,uBAatB,IAAI,YAAI,QAAQ;;;uBAJpB,KAAK;;;MCAG,gBAAgB;;;YAP5B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;gBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;gBAC9B,OAAO,EAAE;oBACL,YAAY;iBACf;aACJ;;;MCSY,mBAAmB;IAgB5B,YACY,QAAkB,EACE,sBAA8C;QADlE,aAAQ,GAAR,QAAQ,CAAU;QACE,2BAAsB,GAAtB,sBAAsB,CAAwB;QAd9D,cAAS,GAAG,KAAK,CAAC;QAClB,gBAAW,GAAG,IAAI,CAAC;QACnB,cAAS,GAAW,EAAE,CAAC;QACvB,aAAQ,GAAW,EAAE,CAAC;QACtB,kBAAa,GAAW,EAAE,CAAC;QAE1B,oBAAe,GAAsB,IAAI,YAAY,EAAE,CAAC;QAUrE,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAEnD,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SAChF;aAAM;YACH,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAoB,EAAE,CAAC;SACrD;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE;YACnD,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,MAAM;YACT,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,SAAS;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,eAAe;aACxB;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE;YAC1D,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,aAAa;YACnB,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE;gBACH,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,EAAE;aACb;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,EAAE;YAC5D,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,aAAa;YACrB,EAAE,EAAE,MAAM;YACV,KAAK,EAAE;gBACH,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,EAAE;aACb;SACJ,CAAC,CAAC;KACN;IAEM,IAAI;QACP,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/C;IAEM,KAAK;QACR,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/C;IAEM,MAAM;QACT,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC/C;;;YA1FJ,SAAS,SAAC;gBACP,QAAQ,EAAE,aAAa;gBACvB,gmGAA2C;gBAE3C,UAAU,EAAE;oBACR,OAAO,CAAC,gBAAgB,EAAE;wBACtB,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;wBACpE,UAAU,CAAC,QAAQ,EAAE;4BACjB,OAAO,CAAC,GAAG,CAAC;yBACf,CAAC;qBACL,CAAC;iBACL;;aACJ;;;YAjBiC,QAAQ;YAEjC,sBAAsB,uBAkCtB,IAAI,YAAI,QAAQ;;;mBAjBpB,KAAK;sBACL,KAAK;uBACL,KAAK;wBACL,KAAK;0BACL,KAAK;wBACL,KAAK;uBACL,KAAK;4BACL,KAAK;8BAEL,MAAM;;;MCXE,gBAAgB;;;YAV5B,QAAQ,SAAC;gBACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;gBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;gBAC9B,OAAO,EAAE;oBACL,YAAY;oBACZ,mBAAmB;oBACnB,YAAY;oBACZ,eAAe;iBAClB;aACJ;;;MC4BY,uBAAwB,SAAQ,cAAc;IAiEvD,YACY,cAA8B,EAC9B,QAAkB,EAClB,cAAiC,EAGlC,sBAA8C,EAG9C,aAA+B,EAG/B,gBAAkC,EAGlC,mBAAwC;QAE/C,KAAK,EAAE,CAAC;QAhBA,mBAAc,GAAd,cAAc,CAAgB;QAC9B,aAAQ,GAAR,QAAQ,CAAU;QAClB,mBAAc,GAAd,cAAc,CAAmB;QAGlC,2BAAsB,GAAtB,sBAAsB,CAAwB;QAG9C,kBAAa,GAAb,aAAa,CAAkB;QAG/B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAGlC,wBAAmB,GAAnB,mBAAmB,CAAqB;QArEnC,kBAAa,GAAW,gBAAgB,CAAC;QACzC,YAAO,GAAY,KAAK,CAAC;QACzB,YAAO,GAAY,KAAK,CAAC;;QAGzB,cAAS,GAAsB,MAAM,CAAC;QACtC,eAAU,GAAW,MAAM,CAAC;QAC5B,iBAAY,GAAW,EAAE,CAAC;QAG1B,UAAK,GAAe,EAAE,CAAC;QACvB,eAAU,GAAY,IAAI,CAAC;QAM1B,iBAAY,GAAsE,IAAI,YAAY,EAAE,CAAC;QAE/G,eAAU,GAAW,EAAE,CAAC;QACxB,oBAAe,GAAW,IAAI,EAAE,CAAC;QAEjC,0BAAqB,GAAW,IAAI,EAAE,CAAC;QACvC,4BAAuB,GAAW,IAAI,EAAE,CAAC;QAEzC,qBAAgB,GAAwD,EAAE,CAAC;QAK3E,eAAU,GAAW,IAAI,EAAE,CAAC;QAI5B,uBAAkB,GAAwD,EAAE,CAAC;QAC7E,+BAA0B,GAAwD,EAAE,CAAC;QAGpF,eAAU,GAAsB;YACpC,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI;SACjB,CAAC;QAEM,kBAAa,GAAwB,EAAE,CAAC;QAGxC,uBAAkB,GAAW,EAAE,CAAC;QAsBpC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAEjD,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,OAAgB;gBAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B,CAAC,CACL,CAAC;SACL;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,CAAC;SACzE;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACtE;IAGM,QAAQ,CAAC,KAAU;;QACtB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;QAErI,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,KAAI,MAAA,IAAI,CAAC,kBAAkB,0CAAE,MAAM,CAAA;eACzF,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACrD,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ;kBAC7D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;kBACzC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAE/B,UAAU,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SACxF;KACJ;IAEM,QAAQ;QACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC5E;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;KACJ;IAEM,SAAS;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAE1B,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;SAC9D;KACJ;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE;YAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;QAED,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;SAC9D;QAED,IAAI,OAAO,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACxD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B;QAED,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE;YAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;SAC9D;QAED,IAAI,OAAO,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;SAChE;KACJ;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,QAAQ;QACX,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;KACjD;IAEM,OAAO;QACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACrD;IAEM,KAAK;QACR,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAEM,SAAS;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACnC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAEjD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAE3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;iBAC5E,IAAI,CAAC;;gBACF,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,aAAa,0CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAExF,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC;iBACnD;aACJ,CAAC,CAAC;SACV;KACJ;IAEM,cAAc,CAAC,iBAA+D;QACjF,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;YAE/C,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBACnE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;aACxD;SACJ;KACJ;IAEM,MAAM,CAAC,gBAA4B;;QACtC,IAAI,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACzE,IAAI,MAAA,IAAI,CAAC,kBAAkB,0CAAE,MAAM,EAAE;gBACjC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;gBAE5C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;qBACrE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;gBAEnD,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;qBAC7E,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;aACtD;iBAAM;gBACH,IAAI,CAAC,gBAAgB,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,CACzC,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAClE,mCAAI,EAAE,CAAC;gBAER,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;aACvC;YAED,IAAI,EAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAA,EAAE;gBAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;aACzB;SACJ;KACJ;IAEM,UAAU,CAAC,KAAY,EAAE,iBAA+D;QAC3F,KAAK,CAAC,wBAAwB,EAAE,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,iBAAiB,CAAC,UAAU,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC;YAE7D,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;SAClD;KACJ;IAEM,MAAM,CAAC,IAAY;QACtB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,kBAAkB,EAAE;YACjG,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACpC;QAED,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;;YAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAE/B,IAAI,CAAC,IAAI,EAAE;gBACP,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAEtB,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,EAAE;oBACpB,OAAO;iBACV;aACJ;YAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YAErB,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,EAAE;gBACpB,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAC5D,IAAI,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC9D,CAAC;aACL;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;aAC1C;SACJ,EAAE,GAAG,CAAC,CAAC;KACX;IAEM,qBAAqB;;QACxB,IAAI,IAAI,CAAC,QAAQ,KAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,CAAA,EAAE;YACrC,OAAO,IAAI,CAAC,0BAA0B,CAAC;SAC1C;aAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACjC,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAClC;IAEM,yBAAyB,CAAC,cAAmB;QAChD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE;YACtC,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC/C;aAAM,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,UAAU,EAAE;YACnE,OAAO,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC5D;QAED,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/C;IAEM,mBAAmB;;QACtB,OAAO,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,MAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CACpF,CAAC;KACL;IAEO,sBAAsB,CAAC,iBAA+D;QAC1F,IAAI,iBAAiB,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE;YAC5E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACjD;aAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE;YACnF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAChD,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,CACrE,CAAC;YAEF,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBAC3D,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;aACpC;SACJ;KACJ;IAEa,QAAQ,CAAC,UAAkB,IAAI,CAAC,YAAY,EAAE,UAAmB;;YAC3E,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM;;gBACrC,IAAI,IAAI,CAAC,cAAc,EAAE;oBACrB,IAAI,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE;wBAC9B,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,aAAa,0CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;qBAC1D;oBAED,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;oBAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBAEpB,MAAM,UAAU,mCAA2B,IAAI,CAAC,UAAU,GAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAE,CAAC;oBACvF,MAAM,OAAO,GAAG,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;oBAEtE,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,UAAU,CAC3C,CAAC,SAAS,CACP,CAAC,QAAyB;wBACtB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAC3C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;wBAE3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;wBACxC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;wBAErB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;wBAChD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;wBAC3B,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;wBAEpC,UAAU,CAAC,MAAM,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;wBAE7D,OAAO,EAAE,CAAC;qBACb,EACD,CAAC,KAAK;wBACF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;wBACrB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;wBAEpC,MAAM,EAAE,CAAC;qBACZ,CACJ,CACJ,CAAC;iBACL;qBAAM;oBACH,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;iBACvG;aACJ,CAAC,CAAC;SACN;KAAA;IAEO,sBAAsB,CAAC,IAAgB;QAC3C,MAAM,iBAAiB,GAAwD,EAAE,CAAC;QAElF,IAAI,CAAC,OAAO,CAAC,IAAI;YACb,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAEvD,IAAI,eAAe,EAAE;gBACjB,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAC3C;iBAAM;gBACH,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;aAC5E;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;KAC/C;IAEO,oBAAoB,CAAC,gBAA4B;QACrD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,iBAAiB;YAC7C,MAAM,gBAAgB,GAAY,CAAC,EAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CACtD,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAChF,CAAA,CAAC;YAEF,IAAI,gBAAgB,EAAE;gBAClB,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;gBACpC,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;aAClD;SACJ,CAAC,CAAC;KACN;IAEO,uBAAuB;;QAC3B,IAAI,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,MAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YAC/F,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAEO,iBAAiB;QACrB,MAAM,cAAc,GAAG,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;SACnD;QAED,UAAU,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;SAC7C,CAAC,CAAC;KACN;IAEO,mBAAmB;QACvB,OAAO,CAAC,OAAwB;YAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpD,OAAO,IAAI,CAAC;aACf;YAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;SAC/B,CAAC;KACL;IAEO,mBAAmB,CAAC,IAAS;QACjC,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KACvG;IAEO,WAAW,CAAC,CAAM,EAAE,CAAM;QAC9B,IAAI,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE;YAC5E,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;SACvC;aAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE;YACrB,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;SACvB;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAClD;IAEO,yBAAyB,CAAC,KAAiB,EAAE,WAAuB;QACxE,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,KAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YACjC,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;SAC3D;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;KAChE;IAEO,iBAAiB,CAAC,iBAA+D;QACrF,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,CAAC,CAAC;KAC3G;IAEO,QAAQ;;QACZ,OAAO,EAAC,MAAA,IAAI,CAAC,YAAY,0CAAE,aAAa,CAAC,YAAY,CAAA,CAAC;KACzD;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YAjdJ,SAAS,SAAC;gBACP,QAAQ,EAAE,kBAAkB;gBAC5B,woIAAgD;gBAChD,aAAa,EAAE,iBAAiB,CAAC,IAAI;gBAErC,SAAS,EAAE;oBACP,eAAe,CAAC,uBAAuB,CAAC;iBAC3C;gBACD,aAAa,EAAE;oBACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE;iBACrD;;aACJ;;;YAjB4C,cAAc;YApBvD,QAAQ;YANR,iBAAiB;YAwBZ,sBAAsB,uBA0FtB,QAAQ,YAAI,IAAI;YA9FC,gBAAgB,uBAiGjC,QAAQ,YAAI,IAAI;YAxFhB,gBAAgB,uBA2FhB,QAAQ,YAAI,QAAQ;YA7FpB,mBAAmB,uBAgGnB,QAAQ;;;2BA9EZ,SAAS,SAAC,cAAc;0BACxB,SAAS,SAAC,aAAa;sCACvB,SAAS,SAAC,yBAAyB;mCAGnC,KAAK;mCACL,KAAK;oBACL,KAAK;wBACL,KAAK;uBACL,KAAK;4BACL,KAAK;sBACL,KAAK;sBACL,KAAK;wBAGL,KAAK;yBACL,KAAK;2BACL,KAAK;mBACL,KAAK;6BACL,KAAK;oBACL,KAAK;yBACL,KAAK;yBAGL,KAAK;yBACL,KAAK;2BAEL,MAAM;uBA2EN,YAAY,SAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;;;MCtHzB,oBAAoB;;;YAlBhC,QAAQ,SAAC;gBACN,YAAY,EAAE;oBACV,uBAAuB;iBAC1B;gBACD,OAAO,EAAE;oBACL,uBAAuB;iBAC1B;gBACD,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,gBAAgB;oBAChB,eAAe;oBACf,cAAc;oBACd,iBAAiB;oBACjB,mBAAmB;iBACtB;aACJ;;;MC3BqB,wBAAwB;;;MCKjC,8BAA8B;IAOvC;QANgB,QAAG,GAAW,EAAE,CAAC;QACjB,aAAQ,GAAW,EAAE,CAAC;QACrB,YAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;QAE1D,kBAAa,GAAY,KAAK,CAAC;KAEd;IAGjB,QAAQ,CAAC,KAAoB;QAChC,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE;YACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,UAAU,CAAC;gBACP,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aACvB,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;IAEM,IAAI;QACP,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC7B;IAEM,KAAK;QACR,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACvB;IAEM,YAAY;QACf,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;;;YAvCJ,SAAS,SAAC;gBACP,QAAQ,EAAE,0BAA0B;gBAEpC,62CAAwD;;aAC3D;;;;kBAEI,KAAK;uBACL,KAAK;sBACL,MAAM;uBAMN,YAAY,SAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;ACqB7C,CAAC;IAEU;AAAZ,WAAY,uBAAuB;IAC/B,sCAAW,CAAA;IACX,sCAAW,CAAA;IACX,sCAAW,CAAA;IACX,0CAAe,CAAA;AACnB,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC;IAEW;AAAZ,WAAY,sBAAsB;IAC9B,6CAAmB,CAAA;IACnB,yCAAe,CAAA;IACf,yCAAe,CAAA;AACnB,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;IAEW;AAAZ,WAAY,oBAAoB;IAC5B,2CAAmB,CAAA;IACnB,qCAAa,CAAA;IACb,mDAA2B,CAAA;IAC3B,mDAA2B,CAAA;IAC3B,qCAAa,CAAA;AACjB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;MAcY,oBAAqB,SAAQ,cAAc;IA2DpD,YAEW,aAA+B,EAE9B,wBAAkD,EAClD,QAAkB,EAClB,cAAiC;QAEzC,KAAK,EAAE,CAAC;QAND,kBAAa,GAAb,aAAa,CAAkB;QAE9B,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,aAAQ,GAAR,QAAQ,CAAU;QAClB,mBAAc,GAAd,cAAc,CAAmB;QAzD7B,kBAAa,GAAW,gBAAgB,CAAC;;QAKzC,cAAS,GAA2B,EAAE,CAAC;QACvC,sBAAiB,GAAY,KAAK,CAAC;QAEnC,iBAAY,GAAY,KAAK,CAAC;QAC9B,iBAAY,GAAY,KAAK,CAAC;QAC9B,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAY,KAAK,CAAC;QAC3B,uBAAkB,GAAY,KAAK,CAAC;QACpC,kBAAa,GAAW,GAAG,kBAAkB;QAE7C,gBAAW,GAA2B,sBAAsB,CAAC,OAAO,CAAC;QACrE,eAAU,GAAY,KAAK,CAAC;QAI3B,mBAAc,GAAyC,IAAI,YAAY,EAAE,CAAC;QAC1E,sBAAiB,GAAuC,IAAI,YAAY,EAAE,CAAC;QAC3E,qBAAgB,GAAsB,IAAI,YAAY,EAAE,CAAC;QACzD,kBAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QACnC,mBAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QACpC,wBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;QAEnD,mBAAc,GAAW,OAAO,CAAC;QACjC,sBAAiB,GAAG,EAAE,CAAC;QACvB,sBAAiB,GAAY,KAAK,CAAC;QACnC,gBAAW,GAAG,EAAE,CAAC;QACjB,8BAAyB,GAAY,KAAK,CAAC;QAC3C,mBAAc,GAAG,KAAK,CAAC;QACvB,YAAO,GAAY,KAAK,CAAC;QAEzB,uBAAkB,GAAQ;YAC7B,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;aACb;SACJ,CAAC;QAEM,kBAAa,GAAwB,EAAE,CAAC;QAY5C,IAAI,CAAC,sBAAsB,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAEzD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE;YACjE,CAAC,EAAE,KAAK;YACR,KAAK,EAAE;gBACH,IAAI,EAAE,eAAe;aACxB;SACJ,CAAC,CAAC;KACN;IAEM,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;SAClG;KACJ;IAEM,qBAAqB;QACxB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YAChD,IAAI,CAAC,cAAc,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC;YAErF,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;SACvC;KACJ;IAEM,QAAQ;QACX,UAAU,CAAC;YACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAE3B,UAAU,CAAC;gBACP,IAAI,CAAC,aAAa,EAAE,CAAC;aACxB,CAAC,CAAC;SACN,EAAE,GAAG,CAAC,CAAC;KACX;IAEM,WAAW;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,YAAY,CAAC,OAAO,EAAE,KAAM;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SACjC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC;QAElC,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,kBAAkB,mCAAQ,IAAI,CAAC,kBAAkB,GAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAE,CAAC;SAC5F;QAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,kCAC1B,IAAI,CAAC,kBAAkB,GAAK;YAC3B,MAAM;gBACF,oBAAoB,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAC/C,MAAM,CAAC,OAAO,EAAE,CAAC;aACpB;SACJ,EACH,CAAC;QAEH,MAAM,CAAC,IAAI,EAAE,CAAC;KACjB;IAEM,WAAW,CAAC,GAAG,EAAE,IAAI;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,GAAG,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC;YACjE,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SAClC,CAAC,CAAC,CAAC;KACP;IAEY,QAAQ,CAAC,KAA6B;;YAC/C,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;gBAC5B,KAAK,MAAM,YAAY,IAAS,KAAK,CAAC,aAAa,EAAE;oBACjD,IAAI,YAAY,CAAC,MAAM,IAAI,MAAM,EAAE;wBAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;wBACvD,MAAM;qBACT;yBAAM,IAAI,YAAY,CAAC,MAAM,IAAI,aAAa,EAAE;wBAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;wBAC9D,MAAM;qBACT;yBAAM,IAAI,YAAY,CAAC,MAAM,IAAI,MAAM,EAAE;wBACtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;wBACvD,MAAM;qBACT;yBAAM;wBACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;wBAC1D,MAAM;qBACT;iBACJ;aACJ;YAED,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU;uBACrC,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnG,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;iBAC/B;gBAED,IAAI,KAAK,CAAC,UAAU;uBACb,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;oBAC/E,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;iBACtC;qBAAM;oBACH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;iBACjE;aACJ;iBAAM;gBACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aACtC;SACJ;KAAA;IAEY,WAAW,CAAC,KAAkB;;YACvC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;gBACvB,IAAI,cAAc,GAAG,EAAE,CAAC;gBACxB,IAAI,oBAAoB,GAAG,EAAE,CAAC;gBAC9B,IAAI,WAAW,GAAG,EAAE,CAAC;gBAErB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBAEpB,KAAK,CAAC,OAAO,CAAC,IAAI;oBACd,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,IAAI,CACjF,GAAG,CAAC,CAAC,QAAa;wBACd,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;4BAC3B,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;gCAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;6BACnD;4BAED,cAAc,CAAC,IAAI,CAAC;gCAChB,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;gCACpB,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,IAAI,EAAE,IAAI;6BACb,CAAC,CAAC;4BACH,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;4BAC/B,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;yBAC5C;qBACJ,CAAC,CACL,CAAC,CAAC;iBACN,CAAC,CAAC;gBAEH,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAC3B,CAAC,QAAQ;oBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;oBAE/C,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE;wBACtB,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;qBAClD;yBAAM;wBACH,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,oBAAoB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;qBACvE;oBAED,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;oBAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;iBACxB,EACD,CAAC,KAAK;oBACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;iBACxB,CAAC,CACT,CAAC;aACL;SACJ;KAAA;IAEY,eAAe,CAAC,WAAgB;;YACzC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;gBACrD,IAAI,iBAAiB,GAAG,EAAE,CAAC;gBAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;gBAErB,WAAW,CAAC,OAAO,CAAC,UAAU;oBAC1B,IAAI,EAAE,UAAU,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;wBACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBACpB,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;wBAC5B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CACrE,GAAG,CAAC,CAAC,QAAa;4BACd,iBAAiB,CAAC,IAAI,CAAC;gCACnB,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;gCAC5B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;6BAC3C,CAAC,CAAC;yBACN,CAAC,CACL,CAAC,CAAC;qBACN;iBACJ,CAAC,CAAC;gBAEH,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAC3B,CAAC,QAAQ;oBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;oBAClD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;oBACjC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;oBAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;iBACxB,EACD,CAAC,KAAK;oBACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;iBACxB,CAAC,CACT,CAAC;aACL;SACJ;KAAA;IAEM,QAAQ,CAAC,QAAa;QACzB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrC;IAEM,OAAO,CAAC,QAAa;QACxB,OAAO,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;KACvH;IAEM,OAAO,CAAC,QAAa;QACxB,OAAO,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;KACvH;IAEM,OAAO,CAAC,QAAa;QACxB,QAAQ,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;KACxF;IAEM,MAAM,CAAC,QAAa;QACvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KACxF;IAEM,oBAAoB,CAAC,QAAa;QACrC,IAAI,QAAQ,EAAE;YACV,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC;YAE9C,IAAI,CAAC,IAAI,EAAE;gBACP,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;oBACrC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC7B;qBAAM;oBACH,IAAI,GAAG,CAAC,CAAC;iBACZ;aACJ;YAED,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE;gBAC5B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aAC1D;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;SACtD;KACJ;IAEM,cAAc,CAAC,KAAU;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACzB;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAEzB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAChE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;aACjC;SACJ;KACJ;IAEM,MAAM,CAAC,KAAU;QACpB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAE5D,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;aAChE;SACJ;KACJ;IAEM,YAAY,CAAC,UAAe;QAC/B,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KAC3E;IAEM,KAAK;QACR,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAEM,gBAAgB;QACnB,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;KAClD;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC;YAElD,OAAO;SACV;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO;gBAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACnE,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;aAClC;iBAAM;gBACH,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;aACrC;SACJ;KACJ;IAEO,cAAc;QAClB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO;gBACtB,IAAI,OAAO,EAAE;oBACT,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;iBAC7B;aACJ,CAAC,CAAC;SACN;KACJ;IAEO,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;SACV;QAED,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC5C;QAED,cAAc,CAAC,IAAI,EAAE,CAAC;QAEtB,UAAU,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;SAC7C,CAAC,CAAC;KACN;IAEO,oBAAoB;QACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;;;YA5ZJ,SAAS,SAAC;gBACP,QAAQ,EAAE,cAAc;gBACxB,i8GAA4C;gBAE5C,aAAa,EAAE,iBAAiB,CAAC,IAAI;gBACrC,SAAS,EAAE;oBACP,eAAe,CAAC,oBAAoB,CAAC;iBACxC;gBACD,aAAa,EAAE;oBACX,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE;iBACrD;;aACJ;;;YArDQ,gBAAgB,uBAkHhB,QAAQ,YAAI,IAAI;YA1GhB,wBAAwB,uBA4GxB,QAAQ,YAAI,QAAQ;YA/HzB,QAAQ;YALR,iBAAiB;;;wBAuEhB,SAAS,SAAC,WAAW;0BACrB,SAAS,SAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;oCACzC,SAAS,SAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;oBAG1D,KAAK;0BACL,KAAK;4BACL,KAAK;uBACL,KAAK;wBACL,KAAK;wBAGL,KAAK;gCACL,KAAK;yBACL,KAAK;2BACL,KAAK;2BACL,KAAK;uBACL,KAAK;uBACL,KAAK;wBACL,KAAK;iCACL,KAAK;4BACL,KAAK;0BACL,KAAK;0BACL,KAAK;yBACL,KAAK;mBACL,KAAK;6BACL,KAAK;6BAEL,MAAM;gCACN,MAAM;+BACN,MAAM;4BACN,MAAM;6BACN,MAAM;kCACN,MAAM;;;MC1FE,8BAA+B,SAAQ,2BAA2B;IAG3E,YAA0B,SAAuB;QAC7C,KAAK,CAAC,SAAS,CAAC,CAAC;QADK,cAAS,GAAT,SAAS,CAAc;KAEhD;IAEM,QAAQ;QACX,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAEzF,OAAO;SACV;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACnC,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC;SAC/C;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACvC,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC;SAC/C;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC7C,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC;SAC/C;aAAM;YACH,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC;SACjD;KACJ;;;YArCJ,SAAS,SAAC;gBACP,QAAQ,EAAE,yBAAyB;gBACnC,iwFAAuD;gBACvD,SAAS,EAAE;oBACP;wBACI,OAAO,EAAE,2BAA2B;wBACpC,WAAW,EAAE,8BAA8B;qBAC9C;iBACJ;aACJ;;;YAdQ,YAAY;;;MCQR,wBAAwB;IAUjC,YAEW,oBAA0C;QAA1C,yBAAoB,GAApB,oBAAoB,CAAsB;QAJ9C,gCAA2B,GAAG,uBAAuB,CAAC;KAKxD;IAEE,eAAe,MAAM;IAErB,WAAW,CAAC,OAAsB;QACrC,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;KACJ;IAEM,SAAS;QACZ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC3E;IAEM,YAAY,CAAC,KAAK;QACrB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAsB;YACvC,IAAI,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAEjD,YAAY,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;YAEpC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;SACvC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;KAC5D;IAEM,WAAW,CAAC,QAAyB;QACxC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACtC,OAAO,uBAAuB,CAAC,GAAG,CAAC;SACtC;QAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACnC,OAAO,uBAAuB,CAAC,GAAG,CAAC;SACtC;QAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACzC,OAAO,uBAAuB,CAAC,GAAG,CAAC;SACtC;QAED,OAAO,uBAAuB,CAAC,KAAK,CAAC;KACxC;IAEO,OAAO,CAAC,QAAyB;QACrC,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC9C;IAEO,OAAO,CAAC,QAAyB;QACrC,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC9C;IAEO,OAAO,CAAC,QAAyB;QACrC,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC9C;IAEO,MAAM,CAAC,QAAyB;QACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KACxF;;;YA/EJ,SAAS,SAAC;gBACP,QAAQ,EAAE,mBAAmB;gBAC7B,0mMAAiD;gBACjD,aAAa,EAAE,iBAAiB,CAAC,IAAI;aACxC;;;YANQ,oBAAoB,uBAkBpB,QAAQ;;;wBAVZ,KAAK;;;MCwBG,iBAAiB;;;YAnB7B,QAAQ,SAAC;gBACN,OAAO,EAAE,CAAC,oBAAoB,CAAC;gBAC/B,YAAY,EAAE;oBACV,oBAAoB;oBACpB,8BAA8B;oBAC9B,wBAAwB;oBACxB,8BAA8B;iBACjC;gBACD,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACX,mBAAmB;oBACnB,iBAAiB;oBACjB,eAAe;oBACf,YAAY;oBACZ,kBAAkB;oBAClB,eAAe;iBAClB;aACJ;;;ACjCD;;;;ACAA;;;;;;"}
1
+ {"version":3,"file":"ng-tailwind.js","sources":["../../../projects/ng-tailwind/src/services/http/ngt-translate.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-validation.service.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-resource.service.ts","../../../projects/ng-tailwind/src/services/ngt-stylizable/ngt-stylizable.service.ts","../../../projects/ng-tailwind/src/directives/ngt-stylizable/ngt-stylizable.directive.ts","../../../projects/ng-tailwind/src/directives/ngt-stylizable/ngt-stylizable.module.ts","../../../projects/ng-tailwind/src/components/ngt-shining/ngt-shining.component.ts","../../../projects/ng-tailwind/src/components/ngt-shining/ngt-shining.module.ts","../../../projects/ng-tailwind/src/base/ngt-base-ng-model.ts","../../../projects/ng-tailwind/src/helpers/enum/enum.ts","../../../projects/ng-tailwind/src/helpers/form/form.ts","../../../projects/ng-tailwind/src/helpers/routing/route.ts","../../../projects/ng-tailwind/src/services/http/ngt-http-form.service.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form.component.ts","../../../projects/ng-tailwind/src/components/ngt-checkbox/ngt-checkbox.component.ts","../../../projects/ng-tailwind/src/components/ngt-svg/ngt-svg.component.ts","../../../projects/ng-tailwind/src/components/ngt-svg/ngt-svg.module.ts","../../../projects/ng-tailwind/src/components/ngt-helper/ngt-helper.component.ts","../../../projects/ng-tailwind/src/helpers/uuid.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropdown/ngt-dropdown.module.ts","../../../projects/ng-tailwind/src/components/ngt-helper/ngt-helper.module.ts","../../../projects/ng-tailwind/src/components/ngt-checkbox/ngt-checkbox.module.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.ts","../../../projects/ng-tailwind/src/components/ngt-form/ngt-form.module.ts","../../../projects/ng-tailwind/src/components/ngt-validation/ngt-validation.component.ts","../../../projects/ng-tailwind/src/components/ngt-validation/ngt-validation.module.ts","../../../projects/ng-tailwind/src/components/ngt-input/ngt-input.component.ts","../../../projects/ng-tailwind/src/components/ngt-input/ngt-input.module.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.ts","../../../projects/ng-tailwind/src/components/ngt-modal/ngt-modal.module.ts","../../../projects/ng-tailwind/src/components/ngt-action/ngt-action.component.ts","../../../projects/ng-tailwind/src/components/ngt-action/ngt-action.module.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.directive.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.component.ts","../../../projects/ng-tailwind/src/components/ngt-select/ngt-select.module.ts","../../../projects/ng-tailwind/src/components/ngt-pagination/ngt-pagination.component.ts","../../../projects/ng-tailwind/src/components/ngt-pagination/ngt-pagination.module.ts","../../../projects/ng-tailwind/src/components/ngt-tag/ngt-tag.component.ts","../../../projects/ng-tailwind/src/components/ngt-tag/ngt-tag.module.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-datatable.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-tbody/ngt-tbody.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-td-check/ngt-td-check.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-td/ngt-td.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-th-check/ngt-th-check.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-th/ngt-th.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-thead/ngt-thead.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-tr/ngt-tr.component.ts","../../../projects/ng-tailwind/src/components/ngt-datatable/ngt-datatable.module.ts","../../../projects/ng-tailwind/src/components/ngt-floating-button/ngt-floating-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-floating-button/ngt-floating-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-slider/ngt-slider.component.ts","../../../projects/ng-tailwind/src/components/ngt-slider/ngt-slider.module.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-radio-button/ngt-radio-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-textarea/ngt-textarea.component.ts","../../../projects/ng-tailwind/src/components/ngt-textarea/ngt-textarea.module.ts","../../../projects/ng-tailwind/src/components/ngt-date/ngt-date.component.ts","../../../projects/ng-tailwind/src/components/ngt-date/ngt-date.module.ts","../../../projects/ng-tailwind/src/components/ngt-button/ngt-button.component.ts","../../../projects/ng-tailwind/src/components/ngt-button/ngt-button.module.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet.component.ts","../../../projects/ng-tailwind/src/components/ngt-portlet/ngt-portlet.module.ts","../../../projects/ng-tailwind/src/enums/size.enum.ts","../../../projects/ng-tailwind/src/animations/ngt-angular-animations.ts","../../../projects/ng-tailwind/src/components/ngt-sidenav/ngt-sidenav.component.ts","../../../projects/ng-tailwind/src/components/ngt-sidenav/ngt-sidenav.module.ts","../../../projects/ng-tailwind/src/components/ngt-header-nav/ngt-header-nav.component.ts","../../../projects/ng-tailwind/src/components/ngt-header-nav/ngt-header-nav.module.ts","../../../projects/ng-tailwind/src/components/ngt-content/ngt-content.component.ts","../../../projects/ng-tailwind/src/components/ngt-content/ngt-content.module.ts","../../../projects/ng-tailwind/src/components/ngt-section/ngt-section.component.ts","../../../projects/ng-tailwind/src/components/ngt-section/ngt-section.module.ts","../../../projects/ng-tailwind/src/components/ngt-multi-select/ngt-multi-select.component.ts","../../../projects/ng-tailwind/src/components/ngt-multi-select/ngt-multi-select.module.ts","../../../projects/ng-tailwind/src/services/http/ngt-attachment-http.service.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.ts","../../../projects/ng-tailwind/src/components/ngt-dropzone/ngt-dropzone.module.ts","../../../projects/ng-tailwind/src/public-api.ts","../../../projects/ng-tailwind/src/ng-tailwind.ts"],"sourcesContent":["export abstract class NgtTranslateService {\r\n public abstract ngtFormDefaultValidationMessage: string;\r\n\r\n public abstract ngtDatatableNoDataFound: string;\r\n public abstract ngtMultiSelectNoDataFound: string;\r\n\r\n public abstract ngtSelectLoadingText: string;\r\n public abstract ngtSelectNotFoundText: string;\r\n public abstract ngtSelectTypeToSearchText: string;\r\n public abstract ngtSelectClearAllTooltip: string;\r\n public abstract ngtSelectPlaceholder: string;\r\n public abstract ngtSelectCreateText: string;\r\n\r\n public abstract ngtTextAreaRemainingCharacters: string;\r\n\r\n public abstract ngtStandardHelperTitle: string;\r\n\r\n public abstract ngtValidationMaxCharactersExceded: string;\r\n public abstract ngtValidationRequiredField: string;\r\n public abstract ngtValidationInvalidEmail: string;\r\n public abstract ngtValidationAlreadyExists: string;\r\n public abstract ngtValidationInvalidCnpj: string;\r\n public abstract ngtValidationInvalidCpf: string;\r\n public abstract ngtValidationPasswordRequiredMinCharacters: string;\r\n public abstract ngtValidationFieldsNotMatch: string;\r\n public abstract ngtValidationInvalidDate: string;\r\n public abstract ngtValidationInvalidPrevision: string;\r\n public abstract ngtValidationExternalServerUnavailable: string;\r\n public abstract ngtValidationValueMustBeGreaterThan(minValue?: number | string): string;\r\n public abstract ngtValidationMinLengthField(minLenth?: number | string): string;\r\n\r\n public abstract ngtPagination(from: number | string, to: number | string, total: number | string): string;\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\nexport abstract class NgtHttpService {\r\n abstract get(connector: any, filters: any, pagination: NgtHttpPagination, sort?: NgtHttpSort): Observable<NgtHttpResponse>;\r\n\r\n abstract post(data: any): Observable<any>;\r\n\r\n abstract put(data: any): Observable<any>;\r\n\r\n abstract delete(data: any): Observable<any>;\r\n}\r\n\r\nexport interface NgtHttpResponse {\r\n data?: any;\r\n meta: NgtHttpMeta;\r\n}\r\n\r\nexport interface NgtHttpMeta {\r\n pagination: NgtHttpPagination;\r\n}\r\n\r\nexport interface NgtHttpPagination {\r\n count: number;\r\n page: number;\r\n pages: number;\r\n total: number;\r\n from: number;\r\n to: number;\r\n per_page: number;\r\n}\r\n\r\nexport interface NgtHttpSort {\r\n field: string;\r\n direction: string;\r\n}\r\n","export interface NgtHttpValidationService {\r\n emailValidation(email: string): Promise<NgtHttpValidationResponse>;\r\n}\r\n\r\nexport abstract class NgtHttpValidationService {\r\n public abstract unique(validationResource: any, value: any): Promise<NgtHttpValidationResponse>;\r\n\r\n public abstract exists(validationResource: any, value: any): Promise<NgtHttpValidationResponse>;\r\n}\r\n\r\nexport interface NgtHttpValidationResponse {\r\n valid: boolean;\r\n};\r\n","export interface NgtHttpFindExistingResourceInterface {\r\n table: string;\r\n column: string;\r\n value?: string;\r\n ignore_id?: string;\r\n}\r\n\r\nexport interface NgtHttpFindExistingResourceResponse {\r\n id: string;\r\n}\r\n\r\nexport abstract class NgtHttpResourceService {\r\n public abstract findExisting(findExistingResource: NgtHttpFindExistingResourceInterface): Promise<NgtHttpFindExistingResourceResponse>;\r\n}\r\n","import { Injector } from '@angular/core';\r\n\r\nexport class NgtStylizableService {\r\n private _color: any;\r\n private _h: string;\r\n private _w: string;\r\n private _p: string;\r\n private _px: string;\r\n private _py: string;\r\n private _pt: string;\r\n private _pr: string;\r\n private _pb: string;\r\n private _pl: string;\r\n private _m: string;\r\n private _mx: string;\r\n private _my: string;\r\n private _mt: string;\r\n private _mr: string;\r\n private _mb: string;\r\n private _ml: string;\r\n private _border: string;\r\n private _shadow: string;\r\n private _rounded: string;\r\n private _font: string;\r\n private _text: string;\r\n private _breakWords: string;\r\n private _overflow: string;\r\n private _position: string;\r\n private _justifyContent: string;\r\n private _cursor: string;\r\n private _fontCase: string;\r\n\r\n public get color() {\r\n return this._color;\r\n }\r\n\r\n public set color(color) {\r\n if (color.bg) {\r\n color.bg = this.getQualifiedValue('bg-', color.bg);\r\n }\r\n\r\n if (color.text) {\r\n color.text = this.getQualifiedValue('text-', color.text);\r\n }\r\n\r\n if (color.border) {\r\n color.border = this.getQualifiedValue('border-', color.border);\r\n }\r\n\r\n this._color = color;\r\n }\r\n\r\n public set textColor(textColor) {\r\n this._color = this._color ? this._color : {};\r\n this._color.text = this.getQualifiedValue('text-', textColor);\r\n }\r\n\r\n public set bgColor(bgColor) {\r\n this._color = this._color ? this._color : {};\r\n this._color.bg = this.getQualifiedValue('bg-', bgColor);\r\n }\r\n\r\n public set borderColor(borderColor) {\r\n this._color = this._color ? this._color : {};\r\n this._color.border = this.getQualifiedValue('border-', borderColor);\r\n }\r\n\r\n public get h(): string {\r\n return this._h;\r\n }\r\n\r\n public set h(h: string) {\r\n this._h = this.getQualifiedValue('h-', h);\r\n }\r\n\r\n public get w(): string {\r\n return this._w;\r\n }\r\n\r\n public set w(w: string) {\r\n this._w = this.getQualifiedValue('w-', w);\r\n }\r\n\r\n public get p(): string {\r\n return this._p;\r\n }\r\n\r\n public set p(p: string) {\r\n this._p = this.getQualifiedValue('p-', p);\r\n }\r\n\r\n public get px(): string {\r\n return this._px;\r\n }\r\n\r\n public set px(px: string) {\r\n this._px = this.getQualifiedValue('px-', px);\r\n }\r\n\r\n public get py(): string {\r\n return this._py;\r\n }\r\n\r\n public set py(py: string) {\r\n this._py = this.getQualifiedValue('py-', py);\r\n }\r\n\r\n public get pt(): string {\r\n return this._pt;\r\n }\r\n\r\n public set pt(pt: string) {\r\n this._pt = this.getQualifiedValue('pt-', pt);\r\n }\r\n\r\n public get pr(): string {\r\n return this._pr;\r\n }\r\n\r\n public set pr(pr: string) {\r\n this._pr = this.getQualifiedValue('pr-', pr);\r\n }\r\n\r\n public get pb(): string {\r\n return this._pb;\r\n }\r\n\r\n public set pb(pb: string) {\r\n this._pb = this.getQualifiedValue('pb-', pb);\r\n }\r\n\r\n public get pl(): string {\r\n return this._pl;\r\n }\r\n\r\n public set pl(pl: string) {\r\n this._pl = this.getQualifiedValue('pl-', pl);\r\n }\r\n\r\n public get m(): string {\r\n return this._m;\r\n }\r\n\r\n public set m(m: string) {\r\n this._m = this.getQualifiedValue('m-', m);\r\n }\r\n\r\n public get mx(): string {\r\n return this._mx;\r\n }\r\n\r\n public set mx(mx: string) {\r\n this._mx = this.getQualifiedValue('mx-', mx);\r\n }\r\n\r\n public get my(): string {\r\n return this._my;\r\n }\r\n\r\n public set my(my: string) {\r\n this._my = this.getQualifiedValue('my-', my);\r\n }\r\n\r\n public get mt(): string {\r\n return this._mt;\r\n }\r\n\r\n public set mt(mt: string) {\r\n this._mt = this.getQualifiedValue('mt-', mt);\r\n }\r\n\r\n public get mr(): string {\r\n return this._mr;\r\n }\r\n\r\n public set mr(mr: string) {\r\n this._mr = this.getQualifiedValue('mr-', mr);\r\n }\r\n\r\n public get mb(): string {\r\n return this._mb;\r\n }\r\n\r\n public set mb(mb: string) {\r\n this._mb = this.getQualifiedValue('mb-', mb);\r\n }\r\n\r\n public get ml(): string {\r\n return this._ml;\r\n }\r\n\r\n public set ml(ml: string) {\r\n this._ml = this.getQualifiedValue('ml-', ml);\r\n }\r\n\r\n public get border(): string {\r\n return this._border;\r\n }\r\n\r\n public set border(border: string) {\r\n this._border = this.getQualifiedValue('border', border);\r\n }\r\n\r\n public get shadow(): string {\r\n return this._shadow;\r\n }\r\n\r\n public set shadow(shadow: string) {\r\n this._shadow = this.getQualifiedValue('shadow', shadow);\r\n }\r\n\r\n public get rounded(): string {\r\n return this._rounded;\r\n }\r\n\r\n public set rounded(rounded: string) {\r\n this._rounded = this.getQualifiedValue('rounded', rounded);\r\n }\r\n\r\n public get font(): string {\r\n return this._font;\r\n }\r\n\r\n public set font(font: string) {\r\n this._font = this.getQualifiedValue('font', font);\r\n }\r\n\r\n public get text(): string {\r\n return this._text;\r\n }\r\n\r\n public set text(text: string) {\r\n this._text = this.getQualifiedValue('text', text);\r\n }\r\n\r\n public get breakWords(): string {\r\n return this._breakWords;\r\n }\r\n\r\n public set breakWords(breakWords: string) {\r\n this._breakWords = this.getQualifiedValue('break', breakWords);\r\n }\r\n\r\n public get overflow(): string {\r\n return this._overflow;\r\n }\r\n\r\n public set overflow(overflow: string) {\r\n this._overflow = this.getQualifiedValue('overflow', overflow);\r\n }\r\n\r\n public get position(): string {\r\n return this._position;\r\n }\r\n\r\n public set position(position: string) {\r\n this._position = position;\r\n }\r\n\r\n public get justifyContent(): string {\r\n return this._justifyContent;\r\n }\r\n\r\n public set justifyContent(justifyContent: string) {\r\n this._justifyContent = this.getQualifiedValue('justify', justifyContent);\r\n }\r\n\r\n public get cursor(): string {\r\n return this._cursor;\r\n }\r\n\r\n public set cursor(cursor: string) {\r\n this._cursor = this.getQualifiedValue('cursor', cursor);\r\n }\r\n\r\n public get fontCase(): string {\r\n return this._fontCase;\r\n }\r\n\r\n public set fontCase(fontCase: string) {\r\n this._fontCase = this.getQualifiedValue('', fontCase);\r\n }\r\n\r\n public load(injector: Injector, style: string, defaultValue = null, inheritanceStyles = []) {\r\n let ngtGlobalStyle = injector.get('NgtStyleGlobal', {});\r\n\r\n defaultValue = defaultValue ? defaultValue : {};\r\n\r\n let requestedStyle = <NgtStylizableService>injector.get(style + 'Style', defaultValue);\r\n\r\n this.loadObjectProperties(this, ngtGlobalStyle, this.getAllowedKeys(ngtGlobalStyle));\r\n\r\n inheritanceStyles.forEach(style => {\r\n let requestedStyle = <NgtStylizableService>injector.get(style, {});\r\n\r\n this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));\r\n });\r\n\r\n this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));\r\n }\r\n\r\n public compile(styles: Array<string>) {\r\n return styles\r\n .map((style: string) => this.getQualifiedStyle(style))\r\n .join(' ');\r\n }\r\n\r\n private loadObjectProperties(targetObject, object, properties: Array<string>) {\r\n properties.forEach((key) => {\r\n if (typeof (object[key]) === 'object') {\r\n targetObject[key] = targetObject[key] ? targetObject[key] : {};\r\n targetObject[key] = this.loadObjectProperties(targetObject[key], object[key], Object.keys(object[key]));\r\n } else {\r\n targetObject[key] = object[key];\r\n }\r\n });\r\n\r\n return targetObject;\r\n }\r\n\r\n private getQualifiedStyle(style: string) {\r\n if (!style.includes('color')) {\r\n return this['_' + style];\r\n }\r\n\r\n switch (style) {\r\n case 'color.bg': return this._color.bg;\r\n case 'color.text': return this._color.text;\r\n case 'color.border': return this._color.border;\r\n }\r\n }\r\n\r\n private getAllowedKeys(style: NgtStylizableService) {\r\n let keys = Object.keys(style);\r\n\r\n if (Array.isArray(keys)) {\r\n return keys.filter(key => [\r\n 'color',\r\n 'h',\r\n 'w',\r\n 'p',\r\n 'px',\r\n 'py',\r\n 'pt',\r\n 'pr',\r\n 'pb',\r\n 'pl',\r\n 'm',\r\n 'mx',\r\n 'my',\r\n 'mt',\r\n 'mr',\r\n 'mb',\r\n 'ml',\r\n 'border',\r\n 'shadow',\r\n 'rounded',\r\n 'font',\r\n 'text',\r\n 'breakWords',\r\n 'overflow',\r\n 'position',\r\n 'justifyContent',\r\n 'cursor',\r\n 'fontCase'\r\n ].includes(key));\r\n }\r\n }\r\n\r\n private getQualifiedValue(requiredPrefix: string, value: string) {\r\n value.split(' ').forEach((item) => {\r\n if (!item.includes(requiredPrefix)) {\r\n throw new Error('Invalid class [' + item + '], must have [' + requiredPrefix + ']');\r\n }\r\n });\r\n\r\n return value;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\n\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Directive({\r\n selector: '[ngt-stylizable]'\r\n})\r\nexport class NgtStylizableDirective {\r\n private ngtStylizableService: NgtStylizableService;\r\n\r\n public constructor() {\r\n this.ngtStylizableService = new NgtStylizableService();\r\n }\r\n\r\n public getNgtStylizableService() {\r\n return this.ngtStylizableService;\r\n }\r\n\r\n public get color() {\r\n return this.ngtStylizableService.color;\r\n }\r\n\r\n @Input('color')\r\n public set color(color) {\r\n this.ngtStylizableService.color = color;\r\n }\r\n\r\n @Input('color.text')\r\n public set textColor(textColor: string) {\r\n this.ngtStylizableService.textColor = textColor;\r\n }\r\n\r\n @Input('color.bg')\r\n public set bgColor(bgColor: string) {\r\n this.ngtStylizableService.bgColor = bgColor;\r\n }\r\n\r\n @Input('color.border')\r\n public set borderColor(borderColor) {\r\n this.ngtStylizableService.borderColor = borderColor;\r\n }\r\n\r\n public get h(): string {\r\n return this.ngtStylizableService.h;\r\n }\r\n\r\n @Input('h')\r\n public set h(h: string) {\r\n this.ngtStylizableService.h = h;\r\n }\r\n\r\n public get w(): string {\r\n return this.ngtStylizableService.w;\r\n }\r\n\r\n @Input('w')\r\n public set w(w: string) {\r\n this.ngtStylizableService.w = w;\r\n }\r\n\r\n public get p(): string {\r\n return this.ngtStylizableService.p;\r\n }\r\n\r\n @Input('p')\r\n public set p(p: string) {\r\n this.ngtStylizableService.p = p;\r\n }\r\n\r\n public get px(): string {\r\n return this.ngtStylizableService.px;\r\n }\r\n\r\n @Input('px')\r\n public set px(px: string) {\r\n this.ngtStylizableService.px = px;\r\n }\r\n\r\n public get py(): string {\r\n return this.ngtStylizableService.py;\r\n }\r\n\r\n @Input('py')\r\n public set py(py: string) {\r\n this.ngtStylizableService.py = py;\r\n }\r\n\r\n public get pt(): string {\r\n return this.ngtStylizableService.pt;\r\n }\r\n\r\n @Input('pt')\r\n public set pt(pt: string) {\r\n this.ngtStylizableService.pt = pt;\r\n }\r\n\r\n public get pr(): string {\r\n return this.ngtStylizableService.pr;\r\n }\r\n\r\n @Input('pr')\r\n public set pr(pr: string) {\r\n this.ngtStylizableService.pr = pr;\r\n }\r\n\r\n public get pb(): string {\r\n return this.ngtStylizableService.pb;\r\n }\r\n\r\n @Input('pb')\r\n public set pb(pb: string) {\r\n this.ngtStylizableService.pb = pb;\r\n }\r\n\r\n public get pl(): string {\r\n return this.ngtStylizableService.pl;\r\n }\r\n\r\n @Input('pl')\r\n public set pl(pl: string) {\r\n this.ngtStylizableService.pl = pl;\r\n }\r\n\r\n public get m(): string {\r\n return this.ngtStylizableService.m;\r\n }\r\n\r\n @Input('m')\r\n public set m(m: string) {\r\n this.ngtStylizableService.m = m;\r\n }\r\n\r\n public get mx(): string {\r\n return this.ngtStylizableService.mx;\r\n }\r\n\r\n @Input('mx')\r\n public set mx(mx: string) {\r\n this.ngtStylizableService.mx = mx;\r\n }\r\n\r\n public get my(): string {\r\n return this.ngtStylizableService.my;\r\n }\r\n\r\n @Input('my')\r\n public set my(my: string) {\r\n this.ngtStylizableService.my = my;\r\n }\r\n\r\n public get mt(): string {\r\n return this.ngtStylizableService.mt;\r\n }\r\n\r\n @Input('mt')\r\n public set mt(mt: string) {\r\n this.ngtStylizableService.mt = mt;\r\n }\r\n\r\n public get mr(): string {\r\n return this.ngtStylizableService.mr;\r\n }\r\n\r\n @Input('mr')\r\n public set mr(mr: string) {\r\n this.ngtStylizableService.mr = mr;\r\n }\r\n\r\n public get mb(): string {\r\n return this.ngtStylizableService.mb;\r\n }\r\n\r\n @Input('mb')\r\n public set mb(mb: string) {\r\n this.ngtStylizableService.mb = mb;\r\n }\r\n\r\n public get ml(): string {\r\n return this.ngtStylizableService.ml;\r\n }\r\n\r\n @Input('ml')\r\n public set ml(ml: string) {\r\n this.ngtStylizableService.ml = ml;\r\n }\r\n\r\n public get border(): string {\r\n return this.ngtStylizableService.border;\r\n }\r\n\r\n @Input('border')\r\n public set border(border: string) {\r\n this.ngtStylizableService.border = border;\r\n }\r\n\r\n public get shadow(): string {\r\n return this.ngtStylizableService.shadow;\r\n }\r\n\r\n @Input('shadow')\r\n public set shadow(shadow: string) {\r\n this.ngtStylizableService.shadow = shadow;\r\n }\r\n\r\n public get rounded(): string {\r\n return this.ngtStylizableService.rounded;\r\n }\r\n\r\n @Input('rounded')\r\n public set rounded(rounded: string) {\r\n this.ngtStylizableService.rounded = rounded;\r\n }\r\n\r\n public get font(): string {\r\n return this.ngtStylizableService.font;\r\n }\r\n\r\n @Input('font')\r\n public set font(font: string) {\r\n this.ngtStylizableService.font = font;\r\n }\r\n\r\n public get text(): string {\r\n return this.ngtStylizableService.text;\r\n }\r\n\r\n @Input('text')\r\n public set text(text: string) {\r\n this.ngtStylizableService.text = text;\r\n }\r\n\r\n public get breakWords(): string {\r\n return this.ngtStylizableService.breakWords;\r\n }\r\n\r\n @Input('breakWords')\r\n public set breakWords(breakWords: string) {\r\n this.ngtStylizableService.breakWords = breakWords;\r\n }\r\n\r\n public get overflow(): string {\r\n return this.ngtStylizableService.overflow;\r\n }\r\n\r\n @Input('overflow')\r\n public set overflow(overflow: string) {\r\n this.ngtStylizableService.overflow = overflow;\r\n }\r\n\r\n public get position(): string {\r\n return this.ngtStylizableService.position;\r\n }\r\n\r\n @Input('position')\r\n public set position(position: string) {\r\n this.ngtStylizableService.position = position;\r\n }\r\n\r\n public get justifyContent(): string {\r\n return this.ngtStylizableService.justifyContent;\r\n }\r\n\r\n @Input('justifyContent')\r\n public set justifyContent(justifyContent: string) {\r\n this.ngtStylizableService.justifyContent = justifyContent;\r\n }\r\n\r\n public get cursor(): string {\r\n return this.ngtStylizableService.cursor;\r\n }\r\n\r\n @Input('cursor')\r\n public set cursor(cursor: string) {\r\n this.ngtStylizableService.cursor = cursor;\r\n }\r\n\r\n public get fontCase(): string {\r\n return this.ngtStylizableService.fontCase;\r\n }\r\n\r\n @Input('fontCase')\r\n public set fontCase(fontCase: string) {\r\n this.ngtStylizableService.fontCase = fontCase;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from './ngt-stylizable.directive';\r\n\r\n@NgModule({\r\n declarations: [NgtStylizableDirective],\r\n exports: [NgtStylizableDirective],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class NgtStylizableModule { }\r\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-shining',\r\n templateUrl: './ngt-shining.component.html',\r\n styleUrls: ['./ngt-shining.component.css']\r\n})\r\nexport class NgtShiningComponent {\r\n @Input() public shiningWidth: NgtShiningWidth = NgtShiningWidth.xs;\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtShining', {\r\n rounded: 'rounded-none',\r\n });\r\n }\r\n}\r\n\r\nexport enum NgtShiningWidth {\r\n xs = 'xs',\r\n sm = 'sm',\r\n lg = 'lg',\r\n xl = 'xl',\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtShiningComponent } from './ngt-shining.component';\r\n\r\n@NgModule({\r\n declarations: [NgtShiningComponent],\r\n exports: [NgtShiningComponent],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class NgtShiningModule { }\r\n","import { EventEmitter, forwardRef } from '@angular/core';\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n/**\r\n * Based on https://stackoverflow.com/a/37786142/8055997\r\n */\r\nexport abstract class NgtBaseNgModel implements ControlValueAccessor {\r\n public formControl: AbstractControl;\r\n public formContainer: ControlContainer;\r\n\r\n public onValueChangeEvent = new EventEmitter;\r\n\r\n private ignore = '{{{{INITIAL_VALUE_IGNORE}}}}';\r\n private _value: any = this.ignore;\r\n\r\n public constructor() {\r\n this.registerOnTouched(this.onTouched);\r\n }\r\n\r\n public onValueChange() {\r\n return this.onValueChangeEvent;\r\n }\r\n\r\n public get value(): any {\r\n return this._value != this.ignore ? this._value : null;\r\n };\r\n\r\n public set value(v: any) {\r\n if (!this.valuesAreEquals(v, this._value)) {\r\n this._value = v;\r\n this.onChange(v);\r\n\r\n if (this.formControl) {\r\n this.formControl.markAsDirty();\r\n }\r\n\r\n this.change(v);\r\n }\r\n }\r\n\r\n public writeValue(value: any) {\r\n if (value == this.ignore || this.valuesAreEquals(value, this._value)) {\r\n return;\r\n }\r\n\r\n this._value = value;\r\n this.onChange(value);\r\n this.change(value);\r\n }\r\n\r\n public onChange = (_) => { };\r\n\r\n public change(v) { };\r\n\r\n public onTouched = () => {\r\n if (this.formControl) {\r\n this.formControl.markAsTouched();\r\n }\r\n };\r\n\r\n public registerOnChange(fn: (_: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n public isValid(): boolean {\r\n if (this.formControl) {\r\n this.formControl.markAsDirty();\r\n\r\n return this.formControl.valid;\r\n }\r\n }\r\n\r\n public markAsPristine() {\r\n if (this.formControl) {\r\n this.formControl.markAsPristine();\r\n }\r\n }\r\n\r\n public markAsDirty() {\r\n if (this.formControl) {\r\n this.formControl.markAsDirty();\r\n }\r\n }\r\n\r\n public setSubmitted(submitted: boolean) {\r\n if (this.formContainer) {\r\n this.formContainer['submitted'] = submitted;\r\n }\r\n }\r\n\r\n private valuesAreEquals(value1, value2) {\r\n if (Array.isArray(value1)) {\r\n value1 = JSON.stringify(value1);\r\n }\r\n\r\n if (Array.isArray(value2)) {\r\n value2 = JSON.stringify(value2);\r\n }\r\n\r\n return value1 === value2;\r\n }\r\n}\r\n\r\nexport function NgtMakeProvider(type: any) {\r\n return {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => type),\r\n multi: true\r\n };\r\n}\r\n","export function getEnumFromString(string: string, enumClass: any) {\r\n if (string && enumClass && enumClass[string.toUpperCase()]) {\r\n return enumClass[string.toUpperCase()];\r\n }\r\n\r\n throw new Error('Invalid enum [' + string + ']!');\r\n}\r\n","import { NgForm } from '@angular/forms';\r\n\r\nexport function resetNgForm(ngForm: NgForm) {\r\n ngForm.resetForm();\r\n setTimeout(() => {\r\n ngForm.reset();\r\n }, 500);\r\n}\r\n\r\nexport function triggerNgFormSubmit(ngForm: NgForm) {\r\n ngForm.onSubmit(new Event(\"submit\"));\r\n}\r\n\r\nexport function isValidNgForm(ngForm: NgForm) {\r\n triggerNgFormSubmit(ngForm);\r\n\r\n return ngForm.valid;\r\n}\r\n","import { ActivatedRoute } from '@angular/router';\r\nimport { Observable, zip } from 'rxjs';\r\n\r\nexport function getIdFromUri(route: ActivatedRoute, routeIdentifier: string) {\r\n return Observable.create((observer) => {\r\n zip(route.parent.params, route.params)\r\n .subscribe((results) => {\r\n let params = { ...results[0], ...results[1] };\r\n\r\n observer.next(params[routeIdentifier]);\r\n });\r\n });\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\nexport abstract class NgtHttpFormService {\r\n abstract loadResourceById(resource: any, resourceId: any): Observable<any>;\r\n\r\n abstract saveResource(resource: any): Observable<any>;\r\n}\r\n","import {Component, EventEmitter, Host, Input, OnDestroy, OnInit, Optional, Output} from '@angular/core';\r\nimport {ControlContainer, NgForm} from '@angular/forms';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {Observable, Subscription} from 'rxjs';\r\n\r\nimport {isValidNgForm} from '../../helpers/form/form';\r\nimport {getIdFromUri} from '../../helpers/routing/route';\r\nimport {NgtHttpFormService} from '../../services/http/ngt-http-form.service';\r\n\r\n@Component({\r\n selector: 'ngt-form',\r\n templateUrl: './ngt-form.component.html',\r\n})\r\nexport class NgtFormComponent implements OnInit, OnDestroy {\r\n @Input() public guessFormState: boolean = true;\r\n @Input() public message: string = '';\r\n @Input() public routeIdentifier: string = 'id';\r\n @Input() public resource: any;\r\n @Input() public customLayout: boolean;\r\n\r\n @Output() public static onSubmitInvalidForm: EventEmitter<NgForm> = new EventEmitter;\r\n\r\n @Output() public onCreating: EventEmitter<any> = new EventEmitter;\r\n @Output() public onEditing: EventEmitter<any> = new EventEmitter;\r\n @Output() public onLoadingChange: EventEmitter<boolean> = new EventEmitter;\r\n @Output() public onShiningChange: EventEmitter<boolean> = new EventEmitter;\r\n @Output() public setupComponent: EventEmitter<any> = new EventEmitter;\r\n @Output() public onResourceLoadingError: EventEmitter<string> = new EventEmitter;\r\n\r\n public formState: NgtFormState;\r\n public uriId: any;\r\n\r\n private loading: boolean;\r\n private shining: boolean;\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n @Optional() @Host()\r\n public formContainer: ControlContainer,\r\n @Optional() @Host()\r\n public ngForm: NgForm,\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n private ngtHttpFormService: NgtHttpFormService\r\n ) {\r\n }\r\n\r\n public ngOnInit() {\r\n if (this.guessFormState) {\r\n this.subscriptions.push(\r\n this.determineFormState().subscribe(() => {\r\n this.setupComponent.emit();\r\n })\r\n );\r\n } else {\r\n this.setupComponent.emit();\r\n }\r\n\r\n this.subscriptions.push(\r\n this.ngForm.ngSubmit.subscribe(() => {\r\n if (!this.ngForm.valid) {\r\n NgtFormComponent.onSubmitInvalidForm.emit(this.ngForm);\r\n }\r\n })\r\n );\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public isCreating() {\r\n return this.formState === NgtFormState.CREATING;\r\n }\r\n\r\n public isEditing() {\r\n return this.formState === NgtFormState.EDITING;\r\n }\r\n\r\n public isLoading() {\r\n return this.loading;\r\n }\r\n\r\n public isShining() {\r\n return this.shining;\r\n }\r\n\r\n public canShowValidationMessage() {\r\n return this.formContainer &&\r\n this.formContainer['submitted'] &&\r\n this.formContainer.status != 'VALID' &&\r\n this.formContainer.status != 'DISABLED';\r\n }\r\n\r\n public setShining(shining: boolean) {\r\n this.shining = shining;\r\n this.onShiningChange.emit(this.shining);\r\n }\r\n\r\n public setLoading(loading: boolean) {\r\n this.loading = loading;\r\n this.onLoadingChange.emit(this.loading);\r\n }\r\n\r\n public setFormState(state: NgtFormState, triggerChange: boolean = true) {\r\n this.formState = state;\r\n\r\n if (triggerChange) {\r\n this.triggerFormStateChange();\r\n }\r\n }\r\n\r\n public getFormState() {\r\n return this.formState;\r\n }\r\n\r\n public triggerFormStateChange() {\r\n if (this.isEditing()) {\r\n this.triggerFormEditing();\r\n } else if (this.isCreating()) {\r\n this.triggerFormCreating();\r\n }\r\n }\r\n\r\n public formHasChanges() {\r\n return this.ngForm.dirty;\r\n }\r\n\r\n public saveResource() {\r\n return new Observable((observer) => {\r\n if (isValidNgForm(this.ngForm)) {\r\n this.setLoading(true);\r\n\r\n this.subscriptions.push(\r\n this.ngtHttpFormService.saveResource(this.resource)\r\n .subscribe((response: any) => {\r\n this.setLoading(false);\r\n observer.next(response);\r\n observer.complete();\r\n })\r\n );\r\n } else {\r\n observer.error();\r\n }\r\n });\r\n }\r\n\r\n protected triggerFormCreating() {\r\n this.onCreating.emit();\r\n }\r\n\r\n protected triggerFormEditing() {\r\n if (this.uriId && this.resource) {\r\n this.setLoading(true);\r\n this.setShining(true);\r\n\r\n this.subscriptions.push(\r\n this.ngtHttpFormService.loadResourceById(this.resource, this.uriId)\r\n .subscribe(\r\n (resource: any) => {\r\n this.setLoading(false);\r\n this.setShining(false);\r\n\r\n this.onEditing.emit(resource);\r\n\r\n setTimeout(() => this.ngForm.form.markAsPristine(), 1500);\r\n },\r\n (error) => {\r\n this.setLoading(false);\r\n this.setShining(false);\r\n\r\n this.onResourceLoadingError.emit(error);\r\n }\r\n )\r\n );\r\n\r\n return;\r\n }\r\n\r\n this.onEditing.emit(null);\r\n }\r\n\r\n private determineFormState() {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(\r\n getIdFromUri(this.route, this.routeIdentifier).subscribe((id: string) => {\r\n this.uriId = id;\r\n\r\n if (this.uriId) {\r\n this.setFormState(NgtFormState.EDITING);\r\n } else {\r\n this.setFormState(NgtFormState.CREATING);\r\n }\r\n\r\n observer.next();\r\n })\r\n );\r\n });\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n\r\nexport enum NgtFormState {\r\n CREATING = 'CREATING',\r\n EDITING = 'EDITING'\r\n};\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Host,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n Optional,\r\n Renderer2,\r\n Self,\r\n SimpleChanges,\r\n SkipSelf,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { getEnumFromString } from '../../helpers/enum/enum';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\r\n\r\n@Component({\r\n selector: 'ngt-checkbox',\r\n templateUrl: './ngt-checkbox.component.html',\r\n styleUrls: ['./ngt-checkbox.component.css'],\r\n providers: [\r\n NgtMakeProvider(NgtCheckboxComponent),\r\n ],\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: NgForm }\r\n ],\r\n animations: [\r\n trigger('slideLeftToRight', [\r\n state('void', style({ transform: 'translateX(-4px) rotate(45deg)', opacity: 0 })),\r\n transition(':enter', [\r\n animate(200)\r\n ])\r\n ]),\r\n\r\n trigger('slideRightToLeft', [\r\n state('void', style({ transform: 'translateX(4px) rotate(45deg)', opacity: 0 })),\r\n transition(':enter', [\r\n animate(200)\r\n ])\r\n ]),\r\n ]\r\n})\r\nexport class NgtCheckboxComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\r\n @ViewChild('element', { static: true }) public element: ElementRef;\r\n\r\n @Input() public label: string;\r\n @Input() public shining: boolean = false;\r\n @Input() public isDisabled: boolean = false;\r\n @Input() public isClickDisabled: boolean = false;\r\n @Input() public name: string;\r\n @Input() public mode: NgtCheckboxMode = NgtCheckboxMode.DEFAULT;\r\n @Input() public helpTitle: string;\r\n @Input() public helpTextColor: string = 'text-green-500';\r\n @Input() public helpText: string;\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Optional() @Host()\r\n public formContainer: ControlContainer,\r\n private renderer: Renderer2,\r\n @Self() @Optional()\r\n private ngtStylizableDirective: NgtStylizableDirective,\r\n @Optional() @SkipSelf()\r\n private ngtFormComponent: NgtFormComponent,\r\n ) {\r\n super();\r\n\r\n if (this.ngtFormComponent) {\r\n this.shining = this.ngtFormComponent.isShining();\r\n\r\n this.subscriptions.push(\r\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\r\n this.shining = shining;\r\n })\r\n );\r\n }\r\n\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtCheckbox', {\r\n h: 'h-6',\r\n w: 'w-6',\r\n color: {\r\n bg: 'bg-gray-500',\r\n text: 'text-gray-500',\r\n border: 'border-gray-500',\r\n }\r\n });\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this.renderer.listen(this.element.nativeElement, 'change', (value) => {\r\n this.onNativeChange(this.element.nativeElement.checked);\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public change(value) {\r\n if (this.hasChangesBetweenModels()) {\r\n this.element.nativeElement.checked = value;\r\n }\r\n }\r\n\r\n public onNativeChange(value) {\r\n if (this.hasChangesBetweenModels()) {\r\n this.value = value;\r\n }\r\n }\r\n\r\n public hasChangesBetweenModels() {\r\n return this.element.nativeElement.checked !== this.value;\r\n }\r\n\r\n public isToggleMode() {\r\n return this.mode === NgtCheckboxMode.TOGGLE;\r\n }\r\n\r\n public isDefaultMode() {\r\n return this.mode === NgtCheckboxMode.DEFAULT;\r\n }\r\n\r\n public isRadioMode() {\r\n return this.mode === NgtCheckboxMode.RADIO;\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.mode) {\r\n this.mode = getEnumFromString(changes.mode.currentValue, NgtCheckboxMode);\r\n }\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n\r\nexport enum NgtCheckboxMode {\r\n DEFAULT = 'DEFAULT',\r\n TOGGLE = 'TOGGLE',\r\n RADIO = 'RADIO',\r\n}\r\n","import {\r\n AfterViewChecked,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { SvgIconComponent } from 'angular-svg-icon';\r\n\r\n@Component({\r\n selector: 'ngt-svg',\r\n templateUrl: './ngt-svg.component.html',\r\n styleUrls: ['./ngt-svg.component.css'],\r\n host: {\r\n class: 'flex justify-center'\r\n },\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NgtSvgComponent implements AfterViewChecked, OnChanges {\r\n @Input() public src: string;\r\n @Input() public class: string = '';\r\n\r\n @ViewChild(SvgIconComponent, { static: true, read: ElementRef }) private svgIconElement: ElementRef;\r\n\r\n private appliedClass = null;\r\n\r\n public ngAfterViewChecked() {\r\n this.checkClassChange();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n this.appliedClass = null;\r\n this.checkClassChange();\r\n }\r\n\r\n private checkClassChange() {\r\n if (this.appliedClass !== this.class) {\r\n if (this.svgIconElement && this.svgIconElement.nativeElement) {\r\n let svgElement = <SVGAElement>this.svgIconElement.nativeElement.querySelector('svg');\r\n\r\n if (svgElement) {\r\n while (svgElement.classList.length > 0) {\r\n svgElement.classList.remove(svgElement.classList.item(0));\r\n }\r\n\r\n svgElement.classList.add('fill-current');\r\n svgElement.classList.add('self-center');\r\n\r\n new String(this.class).trim().split(' ').forEach(className => {\r\n if (className) {\r\n svgElement.classList.add(className);\r\n }\r\n });\r\n\r\n this.appliedClass = this.class;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgtSvgComponent } from './ngt-svg.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { AngularSvgIconModule } from 'angular-svg-icon';\r\n\r\n@NgModule({\r\n declarations: [NgtSvgComponent],\r\n exports: [NgtSvgComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n AngularSvgIconModule\r\n ]\r\n})\r\nexport class NgtSvgModule { }\r\n","import {Component, ElementRef, Injector, Input, Optional, Self, ViewChild, ViewEncapsulation} from '@angular/core';\r\n\r\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\r\nimport {NgtStylizableService} from \"../../services/ngt-stylizable/ngt-stylizable.service\";\r\nimport {NgtStylizableDirective} from \"../../directives/ngt-stylizable/ngt-stylizable.directive\";\r\n\r\n@Component({\r\n selector: 'ngt-helper',\r\n templateUrl: './ngt-helper.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NgtHelperComponent {\r\n @ViewChild('dropdownRef', { static: true }) public dropdownRef: ElementRef;\r\n\r\n @Input() public icon: string;\r\n @Input() public helpTitle: string;\r\n @Input() public iconColor: string;\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n @Optional() @Self()\r\n public ngtStylizableDirective: NgtStylizableDirective,\r\n @Optional()\r\n public ngtTranslateService: NgtTranslateService,\r\n private injector: Injector,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtHelper', {\r\n text: 'text-sm',\r\n fontCase: '',\r\n color: {\r\n text: 'text-black',\r\n bg: 'bg-gray-200'\r\n }\r\n });\r\n }\r\n}\r\n","export function uuid() {\r\n return [\r\n Math.random().toString(36).substr(2, 9),\r\n Math.random().toString(36).substr(2, 9),\r\n Math.random().toString(36).substr(2, 9),\r\n Math.random().toString(36).substr(2, 9)\r\n ].join('_');\r\n};\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: '[ngt-dropdown-container]',\r\n templateUrl: './ngt-dropdown-container.component.html',\r\n styleUrls: ['./ngt-dropdown-container.component.css']\r\n})\r\nexport class NgtDropdownContainerComponent {\r\n @Output() public onActiveDropdownChange = new EventEmitter();\r\n\r\n public setActiveDropdown(activeDropdown) {\r\n this.onActiveDropdownChange.emit(activeDropdown);\r\n }\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n SimpleChanges,\r\n SkipSelf,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { getEnumFromString } from '../../helpers/enum/enum';\r\nimport { uuid } from '../../helpers/uuid';\r\nimport { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';\r\n\r\n@Component({\r\n selector: 'ngt-dropdown',\r\n templateUrl: './ngt-dropdown.component.html',\r\n styleUrls: ['./ngt-dropdown.component.css'],\r\n animations: [\r\n trigger('openClose', [\r\n state('open', style({ opacity: 1, transform: 'translateY(0px)' })),\r\n state('closed', style({ opacity: 0, transform: 'translateY(-10px)' })),\r\n transition('closed => open', [\r\n animate(300)\r\n ]),\r\n ]),\r\n ]\r\n})\r\nexport class NgtDropdownComponent implements OnDestroy {\r\n @ViewChild('container', { static: true }) public containerRef: ElementRef;\r\n\r\n @Input() public autoXReverse: boolean;\r\n @Input() public autoYReverse: boolean = true;\r\n @Input() public reverseXPosition: boolean;\r\n @Input() public reverseYPosition: boolean;\r\n @Input() public closeOnClick: boolean;\r\n @Input() public openMethod: NgtDropdownOpenMethod = NgtDropdownOpenMethod.HOVER;\r\n\r\n @Output() public onToggle: EventEmitter<boolean> = new EventEmitter();\r\n\r\n public name: string = uuid();\r\n public isOpen: boolean;\r\n public isYPositionReversed: boolean = false;\r\n public isXPositionReversed: boolean = false;\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n private containerXPosition: number;\r\n private containerYPosition: number;\r\n\r\n public constructor(\r\n @Optional() @SkipSelf()\r\n private ngtDropdownContainer: NgtDropdownContainerComponent\r\n ) {\r\n if (this.ngtDropdownContainer) {\r\n this.subscriptions.push(\r\n this.ngtDropdownContainer.onActiveDropdownChange.subscribe((activeDropdown: NgtDropdownComponent) => {\r\n this.isOpen = (activeDropdown.name === this.name);\r\n })\r\n );\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.openMethod) {\r\n this.openMethod = getEnumFromString(changes.openMethod.currentValue, NgtDropdownOpenMethod);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public open(): void {\r\n this.isOpen = true;\r\n this.ngtDropdownContainer?.setActiveDropdown(this);\r\n }\r\n\r\n public closeOnSelectOption(): void {\r\n if (this.closeOnClick) {\r\n this.close();\r\n }\r\n }\r\n\r\n public close(): void {\r\n this.isOpen = false;\r\n\r\n this.containerXPosition = null;\r\n this.containerYPosition = null;\r\n }\r\n\r\n public toggle(): void {\r\n setTimeout(() => {\r\n if (this.isOpen) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n\r\n this.onToggle.emit(this.isOpen);\r\n });\r\n }\r\n\r\n public onHover(host: any, container: any): void {\r\n if (this.openMethod == NgtDropdownOpenMethod.HOVER && host && container) {\r\n this.open();\r\n this.watchHover(host, container);\r\n }\r\n }\r\n\r\n public onClick(event: Event): void {\r\n if (this.openMethod == NgtDropdownOpenMethod.CLICK) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.toggle();\r\n }\r\n }\r\n\r\n public onRightClick(event: Event): void {\r\n if (this.openMethod == NgtDropdownOpenMethod.RIGHT_CLICK) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.toggle();\r\n }\r\n }\r\n\r\n public shouldReverseXPosition(): boolean {\r\n if (!this.autoXReverse || this.reverseXPosition !== undefined) {\r\n return this.reverseXPosition;\r\n }\r\n\r\n if (this.isOpen) {\r\n this.bindContainerXPosition();\r\n this.isXPositionReversed = !(this.containerXPosition > document.documentElement.clientWidth);\r\n\r\n return this.isXPositionReversed;\r\n }\r\n }\r\n\r\n public shouldReverseYPosition(): boolean {\r\n if (!this.autoYReverse || this.reverseYPosition !== undefined) {\r\n return this.reverseYPosition;\r\n }\r\n\r\n if (this.isOpen) {\r\n this.bindContainerYPosition();\r\n this.isYPositionReversed = this.containerYPosition > (document.documentElement.clientHeight * 0.9);\r\n\r\n return this.isYPositionReversed;\r\n }\r\n }\r\n\r\n private bindContainerXPosition(): void {\r\n if (!this.containerXPosition && this.containerRef.nativeElement.offsetWidth) {\r\n setTimeout(() => {\r\n this.containerXPosition = this.containerRef.nativeElement.getBoundingClientRect().x\r\n + this.containerRef.nativeElement.offsetWidth;\r\n });\r\n }\r\n }\r\n\r\n private bindContainerYPosition(): void {\r\n if (!this.containerYPosition && this.containerRef?.nativeElement.offsetHeight) {\r\n setTimeout(() => {\r\n this.containerYPosition = this.containerRef.nativeElement.getBoundingClientRect().y\r\n + this.containerRef.nativeElement.offsetHeight;\r\n });\r\n }\r\n }\r\n\r\n private watchHover(host: any, container: any): void {\r\n const interval = setInterval(() => {\r\n if (!host || !container || !this.isInHover(host, container)) {\r\n this.close();\r\n clearInterval(interval);\r\n }\r\n }, 1000);\r\n }\r\n\r\n private isInHover(host: any, container: any): boolean {\r\n return host.parentElement.querySelector(':hover') == host ||\r\n container.parentElement.querySelector(':hover') == container;\r\n }\r\n\r\n private destroySubscriptions(): void {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n\r\nexport enum NgtDropdownOpenMethod {\r\n CLICK = 'CLICK',\r\n RIGHT_CLICK = 'RIGHT_CLICK',\r\n HOVER = 'HOVER'\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgtDropdownComponent } from './ngt-dropdown.component';\r\nimport { NgtDropdownContainerComponent } from './ngt-dropdown-container/ngt-dropdown-container.component';\r\n\r\n@NgModule({\r\n declarations: [NgtDropdownComponent, NgtDropdownContainerComponent],\r\n exports: [NgtDropdownComponent, NgtDropdownContainerComponent],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class NgtDropdownModule { }\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { NgtSvgModule } from \"../ngt-svg/ngt-svg.module\";\r\nimport { NgtHelperComponent } from \"./ngt-helper.component\";\r\nimport { NgtDropdownModule } from '../ngt-dropdown/ngt-dropdown.module';\r\n\r\n@NgModule({\r\n declarations: [NgtHelperComponent],\r\n exports: [NgtHelperComponent],\r\n imports: [\r\n CommonModule,\r\n NgtSvgModule,\r\n NgtDropdownModule\r\n ]\r\n})\r\nexport class NgtHelperModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\r\nimport { NgtCheckboxComponent } from './ngt-checkbox.component';\r\nimport {NgtHelperModule} from \"../ngt-helper/ngt-helper.module\";\r\n\r\n@NgModule({\r\n declarations: [NgtCheckboxComponent],\r\n exports: [NgtCheckboxComponent],\r\n imports: [\r\n CommonModule,\r\n NgtShiningModule,\r\n NgtHelperModule,\r\n ]\r\n})\r\nexport class NgtCheckboxModule { }\r\n","import { Component, Optional, SkipSelf } from '@angular/core';\r\nimport { NgtTranslateService } from '../../../services/http/ngt-translate.service';\r\nimport { NgtFormComponent } from '../ngt-form.component';\r\n\r\n@Component({\r\n selector: 'ngt-form-validation-message',\r\n templateUrl: './ngt-form-validation-message.component.html',\r\n})\r\nexport class NgtFormValidationMessageComponent {\r\n public constructor(\r\n @Optional() @SkipSelf()\r\n public ngtForm: NgtFormComponent,\r\n @Optional()\r\n public ngtTranslateService: NgtTranslateService\r\n ) {\r\n if (!ngtForm) {\r\n console.error('The ngt-form-validation-message must be inside a ngt-form!');\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtFormValidationMessageComponent } from './ngt-form-validation-message.component';\r\n\r\n@NgModule({\r\n declarations: [NgtFormValidationMessageComponent],\r\n exports: [NgtFormValidationMessageComponent],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class NgtFormValidationMessageModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtFormValidationMessageModule } from './ngt-form-validation-message/ngt-form-validation-message.module';\r\nimport { NgtFormComponent } from './ngt-form.component';\r\n\r\n@NgModule({\r\n declarations: [NgtFormComponent],\r\n exports: [NgtFormComponent],\r\n imports: [\r\n CommonModule,\r\n NgtFormValidationMessageModule\r\n ]\r\n})\r\nexport class NgtFormModule { }\r\n","import { Component, Input, Optional } from '@angular/core';\r\nimport { ControlContainer, FormControl } from '@angular/forms';\r\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\r\n\r\n@Component({\r\n selector: 'ngt-validation',\r\n templateUrl: './ngt-validation.component.html',\r\n styleUrls: ['./ngt-validation.component.css']\r\n})\r\nexport class NgtValidationComponent {\r\n @Input() public control: FormControl;\r\n @Input() public container: ControlContainer;\r\n @Input() public minValue: number;\r\n @Input() public minLength: number;\r\n\r\n public constructor(\r\n @Optional()\r\n public ngtTranslateService: NgtTranslateService\r\n ) { }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtValidationComponent } from './ngt-validation.component';\r\n\r\n@NgModule({\r\n declarations: [NgtValidationComponent],\r\n exports: [NgtValidationComponent],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class NgtValidationModule { }\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef, EventEmitter,\r\n Host,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional, Output,\r\n Renderer2,\r\n Self,\r\n SimpleChanges,\r\n SkipSelf,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, AsyncValidatorFn, ControlContainer, NgForm, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport {\r\n NgtHttpFindExistingResourceInterface,\r\n NgtHttpFindExistingResourceResponse,\r\n NgtHttpResourceService,\r\n} from '../../services/http/ngt-http-resource.service';\r\nimport { NgtHttpValidationResponse, NgtHttpValidationService } from '../../services/http/ngt-http-validation.service';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\r\n\r\nlet Inputmask = require('inputmask');\r\n\r\n@Component({\r\n selector: 'ngt-input',\r\n templateUrl: './ngt-input.component.html',\r\n styleUrls: ['./ngt-input.component.css'],\r\n providers: [\r\n NgtMakeProvider(NgtInputComponent),\r\n ],\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: NgForm }\r\n ]\r\n})\r\nexport class NgtInputComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\r\n @ViewChild(\"element\", { static: true }) public element: ElementRef;\r\n\r\n // Visual\r\n @Input() public label: string;\r\n @Input() public placeholder: string = '';\r\n @Input() public shining: boolean;\r\n @Input() public loading: boolean;\r\n @Input() public helpTitle: string;\r\n @Input() public helpTextColor: string = 'text-green-500';\r\n @Input() public helpText: string;\r\n @Input() public innerLeftIcon: string;\r\n @Input() public innerLeftIconColor: string;\r\n @Input() public innerRightIcon: string;\r\n @Input() public innerRightIconColor: string;\r\n @Input() public decimalMaskPrecision: number = 2;\r\n\r\n //Behavior\r\n @Input() public isDisabled: boolean;\r\n @Input() public isReadonly: boolean;\r\n @Input() public type: string = 'text';\r\n @Input() public name: string;\r\n @Input() public mask: string;\r\n @Input() public focus: boolean;\r\n @Input() public allowClear: boolean;\r\n @Input() public jit: boolean;\r\n\r\n //Validations\r\n @Input() public findExistingResource: NgtHttpFindExistingResourceInterface;\r\n @Input() public isRequired: boolean;\r\n @Input() public uniqueResource: any;\r\n @Input() public minValue: number;\r\n @Input() public maxValue: number;\r\n @Input() public maxLength: number;\r\n @Input() public minLength: number;\r\n @Input() public match: string;\r\n @Input() public multipleOf: number;\r\n @Input() public externalServerDependency: boolean;\r\n\r\n @Output() public onClickLeftIcon: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() public onClickRightIcon: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public existingResourceId: string;\r\n public componentReady: boolean;\r\n public inputProperties: {\r\n htmlType?: string;\r\n length?: number;\r\n } = {};\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n private emailValidatorTimeout: any;\r\n private uniqueValidatorTimeout: any;\r\n private searchExistingResourceTimeout: any;\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n @Optional() @Host()\r\n public formContainer: ControlContainer,\r\n @Optional() @SkipSelf()\r\n private ngtFormComponent: NgtFormComponent,\r\n private renderer: Renderer2,\r\n @Optional() @SkipSelf()\r\n private ngtValidationService: NgtHttpValidationService,\r\n @Optional() @SkipSelf()\r\n private ngtResourceService: NgtHttpResourceService,\r\n private changeDetector: ChangeDetectorRef\r\n ) {\r\n super();\r\n\r\n if (this.ngtFormComponent) {\r\n this.shining = this.ngtFormComponent.isShining();\r\n\r\n this.subscriptions.push(\r\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\r\n this.shining = shining;\r\n })\r\n );\r\n }\r\n\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtInput', {\r\n h: 'h-12',\r\n rounded: 'rounded',\r\n text: 'text-sm',\r\n fontCase: '',\r\n color: {\r\n border: 'border-gray-400 focus:border-gray-700',\r\n bg: 'bg-bg-white focus:bg-white',\r\n text: 'text-gray-800'\r\n }\r\n });\r\n }\r\n\r\n public setFocus() {\r\n setTimeout(() => {\r\n this.element.nativeElement.focus();\r\n }, 200);\r\n }\r\n\r\n public clearInput(event?: Event) {\r\n if (event) {\r\n event.stopPropagation();\r\n }\r\n\r\n this.element.nativeElement.value = '';\r\n this.value = '';\r\n\r\n this.markAsPristine();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n this.setupMasks(changes.mask ? changes.mask.previousValue : null);\r\n\r\n if (changes.match || changes.isRequired || changes.type || changes.mask || changes.minValue) {\r\n this.updateValidations();\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public change(value: any) {\r\n if (value && typeof value === 'string' && this.mask == 'decimal') {\r\n value = parseFloat(value);\r\n }\r\n\r\n if (!this.getNativeValue()) {\r\n this.element.nativeElement.value = value;\r\n }\r\n\r\n if (!value && value !== 0) {\r\n this.clearInput();\r\n }\r\n\r\n let nativeValue = this.getNativeValue();\r\n\r\n if (this.mask) {\r\n let ngModelValue = this.removeMasks(nativeValue);\r\n\r\n if (nativeValue && ngModelValue != this.value) {\r\n this.value = ngModelValue;\r\n }\r\n } else {\r\n let ngModelValue = this.removeMasks(value);\r\n\r\n if (value && ngModelValue != value) {\r\n this.value = ngModelValue;\r\n }\r\n\r\n if (this.value != nativeValue) {\r\n this.element.nativeElement.value = ngModelValue;\r\n }\r\n }\r\n\r\n if (this.componentReady) {\r\n this.onValueChangeEvent.emit(this.value);\r\n }\r\n\r\n if (this.ngtResourceService && this.findExistingResource && this.value) {\r\n this.searchExistingResource();\r\n }\r\n }\r\n\r\n public ngOnInit() {\r\n if (!this.formContainer) {\r\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\", this.element.nativeElement);\r\n }\r\n\r\n if (!this.name) {\r\n console.error(\"The element must contain a name attribute!\", this.element.nativeElement);\r\n } else {\r\n setTimeout(() => {\r\n this.componentReady = true;\r\n setTimeout(() => {\r\n this.initComponent();\r\n\r\n if (!this.getElementTitle() || this.getElementTitle() === 'null') {\r\n this.element.nativeElement.parentElement.parentElement.title = '';\r\n }\r\n });\r\n }, 500);\r\n }\r\n }\r\n\r\n public getInputPaddings() {\r\n let paddingClass: string = '';\r\n\r\n if (this.innerLeftIcon) {\r\n paddingClass += 'pl-8 pr-4 ';\r\n } else {\r\n paddingClass += 'px-4 ';\r\n }\r\n\r\n if (this.innerRightIcon || this.allowClear || this.type == 'password') {\r\n if (this.allowClear && this.value && (this.innerRightIcon || this.type == 'password')) {\r\n paddingClass += 'pr-16 ';\r\n } else {\r\n paddingClass += 'pr-8 ';\r\n }\r\n }\r\n\r\n return paddingClass;\r\n }\r\n\r\n public showPassword() {\r\n this.element.nativeElement.type = 'text';\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n public hidePassword() {\r\n this.element.nativeElement.type = 'password';\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n private initComponent() {\r\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\r\n if (this.focus) {\r\n this.setFocus();\r\n }\r\n\r\n let watch = \"change\";\r\n\r\n if (this.jit) {\r\n watch += \" keyup keydown keypress\";\r\n }\r\n\r\n watch.split(' ').forEach((evt) => {\r\n this.renderer.listen(this.element.nativeElement, evt, () => {\r\n let nativeValue = this.removeMasks(this.getNativeValue());\r\n\r\n if (this.value != nativeValue) {\r\n this.value = nativeValue;\r\n }\r\n });\r\n });\r\n\r\n this.renderer.listen(this.element.nativeElement, \"keydown\", (event) => {\r\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length >= this.maxLength) {\r\n // Backspace and delete\r\n if (event.keyCode != 8 && event.keyCode != 46) {\r\n event.preventDefault();\r\n\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n this.updateValidations();\r\n\r\n if (this.match) {\r\n this.renderer.listen(this.element.nativeElement, \"keypress\", () => {\r\n this.matchValidator();\r\n });\r\n }\r\n\r\n if (this.value) {\r\n this.formControl.markAsDirty();\r\n } else {\r\n this.formControl.markAsPristine();\r\n }\r\n }\r\n\r\n this.setupProperties();\r\n }\r\n\r\n private updateValidations() {\r\n if (!this.formControl) {\r\n return;\r\n }\r\n\r\n const syncValidators = [];\r\n\r\n if (this.type == 'email') {\r\n syncValidators.push(Validators.email);\r\n }\r\n\r\n if (this.isRequired) {\r\n syncValidators.push(Validators.required);\r\n }\r\n\r\n if (this.maxLength) {\r\n syncValidators.push(Validators.maxLength(this.maxLength));\r\n }\r\n\r\n if (this.minLength) {\r\n syncValidators.push(Validators.minLength(this.minLength));\r\n }\r\n\r\n if (this.mask == 'cnpj-cpf') {\r\n syncValidators.push(this.cnpjCpfValidator());\r\n }\r\n\r\n if (this.mask == 'time') {\r\n syncValidators.push(this.timeValidator());\r\n }\r\n\r\n if (this.match) {\r\n syncValidators.push(this.matchValidator());\r\n }\r\n\r\n if (this.minValue !== undefined) {\r\n syncValidators.push(this.minValueValidator());\r\n }\r\n\r\n if (this.multipleOf) {\r\n syncValidators.push(this.multipleOfValidator());\r\n }\r\n\r\n if (this.externalServerDependency) {\r\n syncValidators.push(this.externalServerDependencyValidator());\r\n }\r\n\r\n setTimeout(() => {\r\n this.formControl.setValidators(syncValidators);\r\n\r\n const asyncValidators = [];\r\n\r\n if (this.uniqueResource) {\r\n asyncValidators.push(this.uniqueValidator());\r\n }\r\n\r\n if (this.type == 'email' && this.hasEmailServiceValidation()) {\r\n asyncValidators.push(this.emailValidator());\r\n }\r\n\r\n this.formControl.setAsyncValidators(asyncValidators);\r\n this.formControl.updateValueAndValidity();\r\n });\r\n }\r\n\r\n private setupMasks(previousMask?: string) {\r\n if (this.mask != previousMask && !this.mask) {\r\n Inputmask.remove(this.element.nativeElement);\r\n\r\n return this.clearInput();\r\n }\r\n\r\n let masks = {\r\n 'cpf': '999.999.999-99',\r\n 'cnpj': '99.999.999/9999-99',\r\n 'decimal': {\r\n digits: this.decimalMaskPrecision,\r\n groupSeparator: '.',\r\n radixPoint: ',',\r\n autoGroup: true,\r\n repeat: 16,\r\n rightAlign: false,\r\n max: this.maxValue,\r\n },\r\n 'cnpj-cpf': {\r\n mask: ['999.999.999-99', '99.999.999/9999-99'],\r\n keepStatic: true\r\n },\r\n 'cellphone': {\r\n mask: ['(99) 9999-9999', '(99) 99999-9999'],\r\n keepStatic: true\r\n },\r\n 'plate': {\r\n mask: ['AAA-9999', 'AAA9A99'],\r\n keepStatic: true\r\n },\r\n 'cep': '99999-999',\r\n 'integer': {\r\n max: this.maxValue,\r\n rightAlign: false\r\n },\r\n 'time': '99:99',\r\n };\r\n\r\n if (this.mask == \"decimal\") {\r\n Inputmask('decimal', masks[this.mask]).mask(this.element.nativeElement);\r\n } else if (this.mask == \"integer\") {\r\n Inputmask(\"integer\", masks[this.mask]).mask(this.element.nativeElement);\r\n } else {\r\n Inputmask(masks[this.mask]).mask(this.element.nativeElement);\r\n }\r\n }\r\n\r\n private setupProperties() {\r\n let props = {\r\n shortText: {\r\n htmlType: \"text\",\r\n length: 20\r\n },\r\n text: {\r\n htmlType: \"text\",\r\n length: 100\r\n },\r\n longText: {\r\n htmlType: \"text\",\r\n length: 150\r\n },\r\n extraLongText: {\r\n htmlType: \"text\",\r\n length: 300\r\n },\r\n password: {\r\n htmlType: \"password\",\r\n length: 150\r\n },\r\n email: {\r\n htmlType: \"text\",\r\n length: 100,\r\n },\r\n decimal: {\r\n htmlType: \"text\",\r\n length: 9,\r\n }\r\n };\r\n\r\n if (this.type in props) {\r\n this.inputProperties = props[this.type];\r\n this.maxLength = this.inputProperties.length;\r\n } else {\r\n console.warn(\"Type [\" + this.type + \"] is not a valid tail-form-input type!\", this.element.nativeElement);\r\n }\r\n }\r\n\r\n private minValueValidator() {\r\n return (control: AbstractControl) => parseFloat(control.value) < this.minValue ? { 'minValue': true } : null;\r\n }\r\n\r\n private multipleOfValidator() {\r\n return (control: AbstractControl) => {\r\n if (control.value) {\r\n return (control.value % this.multipleOf !== 0) ? { 'multipleOf': true } : null;\r\n }\r\n };\r\n }\r\n\r\n private externalServerDependencyValidator() {\r\n // TODO: Validar tempo de requisição\r\n return (control: AbstractControl) => !control.value ? { 'externalServerDependency': true } : null;\r\n }\r\n\r\n private timeValidator() {\r\n const regexExp = new RegExp('^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$');\r\n\r\n return (control: AbstractControl) => {\r\n if (control.value) {\r\n if (regexExp.test(control.value)) {\r\n return null;\r\n } else {\r\n return { 'time': true };\r\n }\r\n }\r\n };\r\n }\r\n\r\n private cnpjCpfValidator() {\r\n return (control: AbstractControl) => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n if (control.value && control.value.length <= 11) {\r\n if (this.validatorCPF(control.value)) {\r\n return null;\r\n } else {\r\n return { 'cpf': true };\r\n }\r\n } else {\r\n if (control.value && this.validatorCNPJ(control.value)) {\r\n return null;\r\n } else {\r\n return { 'cnpj': true };\r\n }\r\n }\r\n };\r\n }\r\n\r\n private matchValidator() {\r\n return (control: AbstractControl) => {\r\n if (this.value != this.match) {\r\n return { 'match': true };\r\n } else {\r\n return null;\r\n }\r\n };\r\n }\r\n\r\n private emailValidator(): AsyncValidatorFn {\r\n if (!this.ngtValidationService) {\r\n throw new Error(\"In order to use email validation you must provide a implementation for NgtHttpValidationService class!\");\r\n }\r\n\r\n return (control: AbstractControl) => {\r\n if (this.emailValidatorTimeout) {\r\n clearTimeout(this.emailValidatorTimeout);\r\n }\r\n\r\n if (this.value) {\r\n return new Promise((resolve) => {\r\n this.emailValidatorTimeout = setTimeout(() => {\r\n this.loading = true;\r\n\r\n this.ngtValidationService.emailValidation(this.value).then((response: NgtHttpValidationResponse) => {\r\n this.loading = false;\r\n resolve(response.valid ? null : { 'email': true });\r\n }).catch(() => {\r\n this.loading = false;\r\n resolve(null);\r\n });\r\n }, 500);\r\n });\r\n }\r\n\r\n return Promise.resolve(null);\r\n };\r\n }\r\n\r\n private async searchExistingResource(): Promise<void> {\r\n if (this.searchExistingResourceTimeout) {\r\n clearTimeout(this.searchExistingResourceTimeout);\r\n }\r\n\r\n this.searchExistingResourceTimeout = setTimeout(() => {\r\n this.loading = true;\r\n this.findExistingResource.value = this.value;\r\n\r\n this.ngtResourceService.findExisting(this.findExistingResource)\r\n .then((response: NgtHttpFindExistingResourceResponse) => this.existingResourceId = response.id)\r\n .catch(() => this.existingResourceId = null)\r\n .finally(() => this.loading = false);\r\n }, 500);\r\n }\r\n\r\n private uniqueValidator(): AsyncValidatorFn {\r\n if (!this.ngtValidationService) {\r\n throw new Error(\"In order to use unique validation you must provide a implementation for NgtHttpValidationService class!\");\r\n }\r\n\r\n return (control: AbstractControl) => {\r\n if (this.uniqueValidatorTimeout) {\r\n clearTimeout(this.uniqueValidatorTimeout);\r\n }\r\n\r\n if (this.value && this.uniqueResource) {\r\n return new Promise((resolve) => {\r\n this.uniqueValidatorTimeout = setTimeout(() => {\r\n this.loading = true;\r\n\r\n this.ngtValidationService.unique(this.uniqueResource, this.value).then((response: NgtHttpValidationResponse) => {\r\n this.loading = false;\r\n\r\n resolve(response.valid ? null : { 'unique': true });\r\n }).catch(() => {\r\n this.loading = false;\r\n resolve(null);\r\n });\r\n }, 500);\r\n });\r\n }\r\n\r\n return Promise.resolve(null);\r\n };\r\n }\r\n\r\n private validatorCNPJ(value) {\r\n let b = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n\r\n if ((value = value.replace(/[^\\d]/g, \"\")).length != 14) {\r\n return false;\r\n }\r\n\r\n if (/0{14}/.test(value)) {\r\n return false;\r\n }\r\n\r\n let n = 0;\r\n\r\n for (let i = 0; i < 12; n += value[i] * b[++i]) {\r\n ;\r\n }\r\n\r\n if (value[12] != (((n %= 11) < 2) ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n\r\n n = 0;\r\n\r\n for (let i = 0; i <= 12; n += value[i] * b[i++]) {\r\n ;\r\n }\r\n\r\n if (value[13] != (((n %= 11) < 2) ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n private validatorCPF(value) {\r\n let numeros, digitos, soma, i, resultado, digitos_iguais;\r\n\r\n digitos_iguais = 1;\r\n\r\n if (value.length < 11) {\r\n return false;\r\n }\r\n\r\n for (i = 0; i < value.length - 1; i++) {\r\n if (value.charAt(i) != value.charAt(i + 1)) {\r\n digitos_iguais = 0;\r\n break;\r\n }\r\n }\r\n\r\n if (!digitos_iguais) {\r\n numeros = value.substring(0, 9);\r\n digitos = value.substring(9);\r\n soma = 0;\r\n\r\n for (i = 10; i > 1; i--) {\r\n soma += numeros.charAt(10 - i) * i;\r\n }\r\n\r\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n\r\n if (resultado != digitos.charAt(0)) {\r\n return false;\r\n }\r\n\r\n numeros = value.substring(0, 10);\r\n soma = 0;\r\n\r\n for (i = 11; i > 1; i--) {\r\n soma += numeros.charAt(11 - i) * i;\r\n }\r\n\r\n resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n\r\n if (resultado != digitos.charAt(1)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private getNativeValue() {\r\n return this.element.nativeElement.value;\r\n }\r\n\r\n private getElementTitle(): string {\r\n return this.element.nativeElement.parentElement.parentElement.title;\r\n }\r\n\r\n private removeMasks(value: string) {\r\n if (this.mask == \"decimal\") {\r\n value = (value + \"\")\r\n .replace(/\\./g, '')\r\n .replace(',', '.');\r\n } else if (this.mask == \"cnpj-cpf\" || this.mask == \"cpf\" || this.mask == \"cnpj\") {\r\n value = (value + \"\")\r\n .replace('.', '')\r\n .replace('.', '')\r\n .replace('-', '')\r\n .replace('/', '');\r\n } else if (this.mask == \"cellphone\") {\r\n value = (value + \"\")\r\n .replace('(', '')\r\n .replace(')', '')\r\n .replace(' ', '')\r\n .replace('-', '');\r\n }\r\n\r\n return value;\r\n }\r\n\r\n private hasEmailServiceValidation(): boolean {\r\n return typeof this.ngtValidationService.emailValidation === 'function';\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\r\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\r\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\r\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\r\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\r\nimport { NgtInputComponent } from './ngt-input.component';\r\n\r\n@NgModule({\r\n declarations: [NgtInputComponent],\r\n exports: [NgtInputComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgtValidationModule,\r\n NgtShiningModule,\r\n NgtSvgModule,\r\n NgtFormModule,\r\n NgtHelperModule\r\n ]\r\n})\r\nexport class NgtInputModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ngt-modal-body',\r\n templateUrl: './ngt-modal-body.component.html',\r\n styleUrls: ['./ngt-modal-body.component.css']\r\n})\r\nexport class NgtModalBodyComponent { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ngt-modal-footer',\r\n templateUrl: './ngt-modal-footer.component.html',\r\n styleUrls: ['./ngt-modal-footer.component.css']\r\n})\r\nexport class NgtModalFooterComponent { }\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Injector, Input, Optional, Output, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-modal',\r\n templateUrl: './ngt-modal.component.html',\r\n styleUrls: ['./ngt-modal.component.css'],\r\n animations: [\r\n trigger('fade', [\r\n state('void', style({ opacity: 0 })),\r\n transition(':enter, :leave', [\r\n animate(300)\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class NgtModalComponent {\r\n @Input() public customLayout: boolean = false;\r\n @Input() public disableDefaultCloses: boolean = false;\r\n @Input() public ngtStyle: NgtStylizableService;\r\n\r\n @Output() public onCloseModal: EventEmitter<any> = new EventEmitter();\r\n @Output() public onOpenModal: EventEmitter<any> = new EventEmitter();\r\n\r\n public isOpen: boolean = false;\r\n\r\n private keydownEventWasAdded: boolean = false;\r\n\r\n public constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private injector: Injector,\r\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.tailStylizableDirective) {\r\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtModal', {\r\n w: 'md:max-w-md',\r\n py: 'py-4',\r\n px: 'px-6',\r\n overflow: 'overflow-visible',\r\n color: {}\r\n });\r\n }\r\n\r\n public close() {\r\n this.isOpen = false;\r\n this.changeDetectorRef.detectChanges();\r\n this.onCloseModal.emit();\r\n }\r\n\r\n public open() {\r\n this.isOpen = true;\r\n this.changeDetectorRef.detectChanges();\r\n this.addKeydownEventListener();\r\n this.onOpenModal.emit();\r\n }\r\n\r\n private addKeydownEventListener() {\r\n if (!this.disableDefaultCloses && !this.keydownEventWasAdded) {\r\n this.keydownEventWasAdded = true;\r\n\r\n window.addEventListener('keydown', (event: any) => {\r\n if (event.keyCode == 27) {\r\n this.close();\r\n }\r\n }, true);\r\n }\r\n }\r\n}\r\n","import { Component, Injector, Input, Optional, Self, SkipSelf } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtModalComponent } from '../ngt-modal.component';\r\n\r\n@Component({\r\n selector: 'ngt-modal-header',\r\n templateUrl: './ngt-modal-header.component.html',\r\n styleUrls: ['./ngt-modal-header.component.css']\r\n})\r\nexport class NgtModalHeaderComponent {\r\n @Input() public ngtModal: NgtModalComponent;\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n @Optional() @SkipSelf()\r\n private ngtModalInstance: NgtModalComponent,\r\n private injector: Injector,\r\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (ngtModalInstance) {\r\n this.ngtModal = ngtModalInstance;\r\n }\r\n\r\n if (this.tailStylizableDirective) {\r\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtModalHeader', {\r\n pb: 'pb-3',\r\n color: {}\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { NgtModalBodyComponent } from './ngt-modal-body/ngt-modal-body.component';\r\nimport { NgtModalFooterComponent } from './ngt-modal-footer/ngt-modal-footer.component';\r\nimport { NgtModalHeaderComponent } from './ngt-modal-header/ngt-modal-header.component';\r\nimport { NgtModalComponent } from './ngt-modal.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n NgtModalComponent,\r\n NgtModalHeaderComponent,\r\n NgtModalBodyComponent,\r\n NgtModalFooterComponent\r\n ],\r\n exports: [\r\n NgtModalComponent,\r\n NgtModalHeaderComponent,\r\n NgtModalBodyComponent,\r\n NgtModalFooterComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class NgtModalModule { }\r\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-action',\r\n templateUrl: './ngt-action.component.html',\r\n styleUrls: ['./ngt-action.component.css']\r\n})\r\nexport class NgtActionComponent {\r\n @Input() public href: string;\r\n @Input() public icon: string;\r\n @Input() public ngtStyle: NgtStylizableService;\r\n @Input() public isDisabled: boolean;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtAction', {\r\n h: 'h-full',\r\n w: 'w-full',\r\n color: {\r\n bg: 'bg-gray-500',\r\n text: 'text-white',\r\n border: '',\r\n },\r\n text: 'text-xl',\r\n border: 'border-0',\r\n });\r\n }\r\n\r\n public onClick(event: Event) {\r\n if (this.isDisabled) {\r\n event.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { NgtActionComponent } from './ngt-action.component';\r\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\r\n\r\n@NgModule({\r\n declarations: [NgtActionComponent],\r\n exports: [NgtActionComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n NgtSvgModule\r\n ]\r\n})\r\nexport class NgtActionModule { }\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({ selector: '[ngt-select-option]' })\r\nexport class NgtSelectOptionTmp {\r\n public constructor(public template: TemplateRef<any>) { }\r\n}\r\n\r\n@Directive({ selector: '[ngt-select-option-selected]' })\r\nexport class NgtSelectOptionSelectedTmp {\r\n public constructor(public template: TemplateRef<any>) { }\r\n}\r\n\r\n@Directive({ selector: '[ngt-select-header]' })\r\nexport class NgtSelectHeaderTmp {\r\n public constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n DoCheck,\r\n EventEmitter,\r\n Host,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n SimpleChanges,\r\n SkipSelf,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { AbstractControl, ControlContainer, NgForm } from '@angular/forms';\r\nimport { NgOption, NgSelectComponent } from '@ng-select/ng-select';\r\nimport { Observable, Observer, Subject, Subscription } from 'rxjs';\r\n\r\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { getEnumFromString } from '../../helpers/enum/enum';\r\nimport { uuid } from '../../helpers/uuid';\r\nimport { NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\r\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\r\nimport { NgtSelectHeaderTmp, NgtSelectOptionSelectedTmp, NgtSelectOptionTmp } from './ngt-select.directive';\r\n\r\n@Component({\r\n selector: 'ngt-select',\r\n templateUrl: './ngt-select.component.html',\r\n styleUrls: ['./ngt-select.component.css'],\r\n providers: [\r\n NgtMakeProvider(NgtSelectComponent)\r\n ],\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: NgForm }\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NgtSelectComponent extends NgtBaseNgModel implements OnChanges, OnDestroy, OnInit, DoCheck {\r\n @ViewChild(NgSelectComponent, { static: true }) public ngSelectComponent: NgSelectComponent;\r\n @ContentChild(NgtSelectOptionTmp, { read: TemplateRef }) public ngtOptionTemplate: TemplateRef<any>;\r\n @ContentChild(NgtSelectOptionSelectedTmp, { read: TemplateRef }) public ngtOptionSelectedTemplate: TemplateRef<any>;\r\n @ContentChild(NgtSelectHeaderTmp, { read: TemplateRef }) public ngtSelectHeaderTemplate: TemplateRef<any>;\r\n\r\n /** Visual */\r\n @Input() public label: string = '';\r\n @Input() public labelIcon: string;\r\n @Input() public labelIconColor: string;\r\n @Input() public helpTitle: string;\r\n @Input() public helpText: string;\r\n @Input() public helpTextColor: string = 'text-green-500';\r\n @Input() public shining = false;\r\n @Input() public loading: boolean = false;\r\n @Input() public loadingText: string = '';\r\n @Input() public notFoundText: string = '';\r\n @Input() public dropdownPosition = 'auto';\r\n @Input() public typeToSearchText: string = '';\r\n @Input() public clearAllTooltip: string = '';\r\n @Input() public placeholder: string = '';\r\n @Input() public createText: string = '';\r\n @Input() public labelForId: string = '';\r\n @Input() public dropdownPanelMinHeight: NgtSelectDropdownPanelHeight = NgtSelectDropdownPanelHeight.AUTO;\r\n\r\n /** Behavior */\r\n @Input() public name: string;\r\n @Input() public allowCreate: boolean | Promise<any> | Function = false;\r\n @Input() public allowOriginalItemsUnselect: boolean = true;\r\n @Input() public isDisabled: boolean = false;\r\n @Input() public remoteResource: any;\r\n @Input() public hideSelected: boolean;\r\n @Input() public bindLabel: string = 'name';\r\n @Input() public bindValue: string;\r\n @Input() public items: Array<any> | Observable<any> = [];\r\n @Input() public closeOnSelect: boolean = true;\r\n @Input() public clearable: boolean = true;\r\n @Input() public groupBy: string | Function = null;\r\n @Input() public maxSelectedItems: number;\r\n @Input() public multiple: boolean = false;\r\n @Input() public searchable: boolean = true;\r\n @Input() public clearSearchOnAdd: boolean = true;\r\n @Input() public virtualScroll: boolean = true;\r\n @Input() public tabIndex: number;\r\n @Input() public typeahead: Subject<any>;\r\n @Input() public groupValue: (groupKey: string, cildren: any[]) => Object;\r\n @Input() public trackBy: (item: any) => any;\r\n\r\n /** Validation */\r\n @Input() public isRequired: boolean = false;\r\n\r\n @Output() public onLoadRemoteResource: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public nativeName = uuid();\r\n public ngtStyle: NgtStylizableService;\r\n public ngSelectItems: any = [];\r\n public nativeValue: any;\r\n public componentReady: boolean = false;\r\n\r\n private ngSearchObserver: Observer<any>;\r\n private originalPerPage = 15;\r\n private subscriptions: Array<Subscription> = [];\r\n private originalItems: Array<any>;\r\n\r\n private currentState = {\r\n filters: {},\r\n sort: {\r\n field: '',\r\n direction: ''\r\n },\r\n pagination: {\r\n count: null,\r\n page: 1,\r\n pages: null,\r\n total: null,\r\n from: null,\r\n to: null,\r\n per_page: null\r\n }\r\n };\r\n\r\n private searchTimeout: any;\r\n private becameVisible: boolean;\r\n\r\n public constructor(\r\n @Optional() @Self()\r\n public ngtStylizableDirective: NgtStylizableDirective,\r\n private injector: Injector,\r\n @Optional() @Host()\r\n public formContainer: ControlContainer,\r\n @Optional() @SkipSelf()\r\n public ngtFormComponent: NgtFormComponent,\r\n private ngtHttp: NgtHttpService,\r\n private changeDetector: ChangeDetectorRef,\r\n @Optional()\r\n public ngtTranslateService: NgtTranslateService\r\n ) {\r\n super();\r\n\r\n if (this.ngtFormComponent) {\r\n this.shining = this.ngtFormComponent.isShining();\r\n\r\n this.subscriptions.push(\r\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\r\n this.shining = shining;\r\n })\r\n );\r\n }\r\n\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtSelect', {\r\n h: 'h-12',\r\n text: 'text-sm',\r\n fontCase: '',\r\n color: {\r\n bg: 'bg-white'\r\n }\r\n });\r\n }\r\n\r\n @Input() public compareWith = (a: any, b: any) => a === b;\r\n\r\n public ngOnInit() {\r\n if (!this.formContainer) {\r\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\r\n }\r\n\r\n if (!this.name) {\r\n console.error(\"The element must contain a name attribute!\");\r\n }\r\n\r\n if (!this.multiple && this.isRequired) {\r\n this.clearable = false;\r\n }\r\n\r\n if (this.multiple) {\r\n this.closeOnSelect = false;\r\n }\r\n\r\n setTimeout(() => {\r\n this.componentReady = true;\r\n this.initComponentValidation();\r\n }, 500);\r\n\r\n this.ngSelectItems = new Observable((observer) => {\r\n this.ngSearchObserver = observer;\r\n observer.next([]);\r\n });\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this.bindInnerInputUniqueId();\r\n }\r\n\r\n public ngDoCheck() {\r\n if (!this.becameVisible && !this.isHidden()) {\r\n this.becameVisible = true;\r\n\r\n this.initNgSelectItems();\r\n\r\n setTimeout(() => {\r\n this.replaceShowAddTag();\r\n\r\n this.ngSelectComponent.itemsList.mapSelectedItems();\r\n\r\n if (!this.getElementTitle() || this.getElementTitle() === 'null') {\r\n this.ngSelectComponent.element.parentElement.parentElement.parentElement.title = '';\r\n }\r\n\r\n this.originalItems = this.ngSelectComponent.selectedItems?.map((element) => element.value);\r\n\r\n this.changeDetector.detectChanges();\r\n }, 500);\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public removeItem(event: Event, item: any) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n return this.ngSelectComponent.clearItem(item);\r\n }\r\n\r\n public refresh() {\r\n this.initNgSelectItems();\r\n this.initComponentValidation();\r\n }\r\n\r\n public reset() {\r\n this.value = undefined;\r\n this.nativeValue = undefined;\r\n this.refresh();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.isRequired) {\r\n this.updateValidations();\r\n }\r\n\r\n if ((changes.remoteResource && this.becameVisible) || changes.items) {\r\n this.initNgSelectItems();\r\n }\r\n\r\n if (changes.dropdownPanelMinHeight) {\r\n this.dropdownPanelMinHeight = getEnumFromString(changes.dropdownPanelMinHeight.currentValue, NgtSelectDropdownPanelHeight);\r\n }\r\n }\r\n\r\n public setFocus() {\r\n setTimeout(() => {\r\n this.ngSelectComponent.focus();\r\n });\r\n }\r\n\r\n public onClearSelect() {\r\n if (!this.nativeValue) {\r\n this.markAsPristine();\r\n }\r\n\r\n this.currentState.filters = {};\r\n }\r\n\r\n public onRemoveSelectedItem(item: NgOption) {\r\n if (!this.allowOriginalItemsUnselect && this.hadPreviousSelection(item.value)) {\r\n setTimeout(() => this.ngSelectComponent.select(item));\r\n }\r\n }\r\n\r\n public getFilterInputValue() {\r\n let inputField = this.ngSelectComponent.searchInput ?\r\n this.ngSelectComponent.searchInput :\r\n this.ngSelectComponent['searchInput'];\r\n\r\n if (\r\n inputField &&\r\n inputField.nativeElement\r\n ) {\r\n return inputField.nativeElement.value;\r\n }\r\n }\r\n\r\n public search(filters: any) {\r\n this.currentState.filters = { ...this.currentState.filters, ...filters };\r\n\r\n if (!this.remoteResource) {\r\n return;\r\n }\r\n\r\n if (this.searchTimeout) {\r\n clearTimeout(this.searchTimeout);\r\n }\r\n\r\n this.loading = true;\r\n this.changeDetector.detectChanges();\r\n\r\n this.searchTimeout = setTimeout(() => {\r\n this.subscriptions.push(\r\n this.ngtHttp\r\n .get(this.remoteResource, this.currentState.filters, this.currentState.pagination)\r\n .subscribe(\r\n (response: NgtHttpResponse) => {\r\n this.loading = false;\r\n this.ngSearchObserver.next(response.data);\r\n this.onLoadRemoteResource.emit(response.data);\r\n this.currentState.pagination = response.meta.pagination;\r\n this.changeDetector.detectChanges();\r\n },\r\n (error) => {\r\n this.loading = false;\r\n this.changeDetector.detectChanges();\r\n console.error(error);\r\n this.ngSearchObserver.next([]);\r\n }\r\n )\r\n );\r\n }, 500);\r\n }\r\n\r\n public onNativeChange(value) {\r\n if (this.hasChangesBetweenModels(this.value, value)) {\r\n this.value = value;\r\n }\r\n }\r\n\r\n public change(value) {\r\n if (this.hasChangesBetweenModels(value, this.nativeValue)) {\r\n if (Array.isArray(value)) {\r\n value = value.map((val) => val);\r\n }\r\n\r\n this.nativeValue = value;\r\n\r\n if (!value) {\r\n this.markAsPristine();\r\n }\r\n }\r\n }\r\n\r\n public onScroll({ end }) {\r\n let currentPerPage = this.currentState.pagination.per_page;\r\n let maxItensInBackend = this.currentState.pagination.total;\r\n\r\n if (end >= currentPerPage && end <= maxItensInBackend) {\r\n this.currentState.pagination.per_page = parseInt(this.currentState.pagination.per_page) + this.originalPerPage;\r\n this.search({});\r\n }\r\n }\r\n\r\n public hasSelectedValue() {\r\n return this.value && JSON.stringify(this.value);\r\n }\r\n\r\n public getSelectClass() {\r\n let selectClass = this.dropdownPanelMinHeight ? 'ng-select-dropdown-panel-' + this.dropdownPanelMinHeight : 'ng-select-dropdown-panel-auto';\r\n\r\n if (this.isDisabled) {\r\n selectClass += ' select-border-disabled';\r\n } else if (this.formControl && this.formControl.errors && (this.formControl.dirty || (this.formContainer && this.formContainer['submitted']))) {\r\n selectClass += ' select-border-error';\r\n } else {\r\n selectClass += ' select-border-normal';\r\n }\r\n\r\n if (this.multiple) {\r\n selectClass += ` h-auto ${this.ngtStyle.compile(['color.bg', 'color.text'])}`;\r\n } else {\r\n selectClass += ` ${this.ngtStyle.compile(['h', 'color.bg', 'color.text'])}`;\r\n }\r\n\r\n return selectClass;\r\n }\r\n\r\n private initNgSelectItems() {\r\n if (this.remoteResource && this.becameVisible) {\r\n this.ngSelectItems = new Observable(observer => {\r\n this.ngSearchObserver = observer;\r\n this.search({});\r\n });\r\n\r\n this.typeahead = new Subject();\r\n\r\n this.subscriptions.push(\r\n this.typeahead.subscribe((term) => {\r\n this.search({ term: term });\r\n })\r\n );\r\n } else if (this.items instanceof Observable) {\r\n this.ngSelectItems = this.items;\r\n } else {\r\n if (!this.items) {\r\n this.items = [];\r\n }\r\n\r\n this.ngSelectItems = new Observable((observer) => {\r\n this.ngSearchObserver = observer;\r\n observer.next(this.items);\r\n });\r\n }\r\n }\r\n\r\n private initComponentValidation() {\r\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\r\n this.formControl = this.formContainer.control.get(this.name);\r\n this.markAsPristine();\r\n this.updateValidations();\r\n }\r\n }\r\n\r\n private getElementTitle(): string {\r\n return this.ngSelectComponent.element.parentElement.parentElement.parentElement.title;\r\n }\r\n\r\n private hasChangesBetweenModels(value, nativeValue) {\r\n return JSON.stringify(value) !== JSON.stringify(nativeValue);\r\n }\r\n\r\n private updateValidations() {\r\n if (!this.formControl) {\r\n return;\r\n }\r\n\r\n let syncValidators = [];\r\n\r\n if (this.isRequired) {\r\n syncValidators.push(this.isRequiredValidator());\r\n }\r\n\r\n setTimeout(() => {\r\n this.formControl.setValidators(syncValidators);\r\n this.formControl.updateValueAndValidity();\r\n });\r\n }\r\n\r\n private isRequiredValidator() {\r\n return (control: AbstractControl) => {\r\n if (this.multiple) {\r\n if (Array.isArray(this.value) && this.value.length > 0) {\r\n return null;\r\n }\r\n } else if (control.value && JSON.stringify(control.value)) {\r\n return null;\r\n }\r\n\r\n return { 'required': true };\r\n };\r\n }\r\n\r\n private replaceShowAddTag() {\r\n Object.defineProperty(this.ngSelectComponent, 'showAddTag', {\r\n get: () => {\r\n if (!this.ngSelectComponent['searchTerm']) {\r\n return false;\r\n }\r\n\r\n const term = this.ngSelectComponent['searchTerm'].toLocaleLowerCase();\r\n\r\n return this.ngSelectComponent.addTag && !this.ngSelectComponent.loading\r\n && (!this.hasTermInFilteredItems(term) && (!this.hasTermInSelectedItems(term)\r\n || !this.ngSelectComponent.hideSelected && this.ngSelectComponent.isOpen));\r\n }\r\n });\r\n }\r\n\r\n private bindInnerInputUniqueId() {\r\n const childInputs = this.ngSelectComponent.element.getElementsByTagName('input');\r\n\r\n if (childInputs?.length) {\r\n const innerInput = childInputs[0];\r\n\r\n innerInput.id = uuid();\r\n }\r\n }\r\n\r\n private hasTermInFilteredItems(term: string) {\r\n const filteredItems = this.ngSelectComponent.itemsList.filteredItems;\r\n\r\n if (this.isColoquentResource()) {\r\n return filteredItems.some((element: any) => {\r\n const elementValue = (<any>element.value).getAttribute(this.bindLabel);\r\n\r\n return elementValue && elementValue.toLocaleLowerCase() === term;\r\n });\r\n }\r\n\r\n return filteredItems.some((element: any) => {\r\n const elementValue = (<any>element.value)[this.bindLabel];\r\n\r\n return elementValue && elementValue.toLocaleLowerCase() === term;\r\n });\r\n }\r\n\r\n private hasTermInSelectedItems(term: string) {\r\n const selectedItems = this.ngSelectComponent.selectedItems;\r\n\r\n if (this.isColoquentResource()) {\r\n return selectedItems.some((element: any) => {\r\n const elementValue = (<any>element.value).getAttribute(this.bindLabel);\r\n\r\n return elementValue && elementValue.toLocaleLowerCase() === term;\r\n });\r\n }\r\n\r\n return selectedItems.some((element: any) => {\r\n const elementValue = (<any>element.value)[this.bindLabel];\r\n\r\n return elementValue && elementValue.toLocaleLowerCase() === term;\r\n });\r\n }\r\n\r\n private hadPreviousSelection(item: any): boolean {\r\n return !!this.originalItems?.find(element => this.compareWith(element, item));\r\n }\r\n\r\n private isColoquentResource() {\r\n const filteredItems = this.ngSelectComponent.itemsList.filteredItems;\r\n\r\n return filteredItems && filteredItems.length && typeof filteredItems[0].value['getAttribute'] === 'function';\r\n }\r\n\r\n private isHidden(): boolean {\r\n return this.ngSelectComponent.element.offsetParent === null;\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n\r\nexport enum NgtSelectDropdownPanelHeight {\r\n AUTO = 'auto',\r\n XS = 'xs',\r\n MD = 'md',\r\n SM = 'sm',\r\n LG = 'lg',\r\n XL = 'xl'\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\n\r\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\r\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\r\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\r\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\r\nimport { NgtSelectComponent } from './ngt-select.component';\r\nimport { NgtSelectHeaderTmp, NgtSelectOptionSelectedTmp, NgtSelectOptionTmp } from './ngt-select.directive';\r\nimport {NgtSvgModule} from \"../ngt-svg/ngt-svg.module\";\r\n\r\n@NgModule({\r\n declarations: [\r\n NgtSelectComponent,\r\n NgtSelectOptionTmp,\r\n NgtSelectOptionSelectedTmp,\r\n NgtSelectHeaderTmp\r\n ],\r\n exports: [\r\n NgtSelectComponent,\r\n NgtSelectOptionTmp,\r\n NgtSelectOptionSelectedTmp,\r\n NgtSelectHeaderTmp\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgSelectModule,\r\n NgtValidationModule,\r\n NgtFormModule,\r\n NgtShiningModule,\r\n NgtHelperModule,\r\n NgtSvgModule\r\n ]\r\n})\r\nexport class NgtSelectModule { }\r\n","import { Component, EventEmitter, Injector, Input, Optional, Output } from '@angular/core';\r\n\r\nimport { NgtHttpMeta, NgtHttpPagination } from '../../services/http/ngt-http.service';\r\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-pagination',\r\n templateUrl: './ngt-pagination.component.html',\r\n styleUrls: ['./ngt-pagination.component.css']\r\n})\r\nexport class NgtPaginationComponent {\r\n @Input() public pagesInterval: number;\r\n\r\n @Output() public onPageChange: EventEmitter<number> = new EventEmitter();\r\n @Output() public onPerPageChange: EventEmitter<number> = new EventEmitter();\r\n\r\n /** Styles */\r\n public ngtPaginationActivePageButtonStyle: NgtStylizableService;\r\n public ngtPaginationNextPreviousButtonStyle: NgtStylizableService;\r\n public ngtPaginationNextPreviousSectionButtonStyle: NgtStylizableService;\r\n public ngtPaginationFirstLastButtonStyle: NgtStylizableService;\r\n public ngtPaginationPageButtonStyle: NgtStylizableService;\r\n\r\n public sectionStartPage: number;\r\n public sectionEndPage: number;\r\n public displayNextSectionButton: boolean;\r\n public displayPreviousSectionButton: boolean;\r\n public displayPagination: boolean = true;\r\n\r\n public pagination: NgtHttpPagination = {\r\n count: null,\r\n page: 1,\r\n pages: null,\r\n total: null,\r\n from: null,\r\n to: null,\r\n per_page: null\r\n };\r\n\r\n public pages = [];\r\n\r\n public registersPerPageOptions = [\r\n 5, 10, 15, 30, 50, 100\r\n ];\r\n\r\n public currentRegistersPerPage: number = 15;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Optional()\r\n public ngtTranslateService: NgtTranslateService\r\n ) {\r\n this.ngtPaginationNextPreviousButtonStyle = new NgtStylizableService();\r\n this.ngtPaginationNextPreviousSectionButtonStyle = new NgtStylizableService();\r\n this.ngtPaginationFirstLastButtonStyle = new NgtStylizableService();\r\n this.ngtPaginationActivePageButtonStyle = new NgtStylizableService();\r\n this.ngtPaginationPageButtonStyle = new NgtStylizableService();\r\n\r\n this.ngtPaginationNextPreviousButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {\r\n h: 'h-8',\r\n w: 'w-8',\r\n color: {\r\n text: 'text-white',\r\n bg: 'bg-gray-700'\r\n }\r\n });\r\n\r\n this.ngtPaginationNextPreviousSectionButtonStyle.load(this.injector, 'NgtPaginationNextPreviousButton', {\r\n h: 'h-8',\r\n w: 'w-8',\r\n color: {\r\n text: 'text-white',\r\n bg: 'bg-gray-300'\r\n }\r\n });\r\n\r\n this.ngtPaginationFirstLastButtonStyle.load(this.injector, 'NgtPaginationFirstLastButton', {\r\n h: 'h-8',\r\n w: 'w-8',\r\n color: {\r\n text: 'text-white',\r\n bg: 'bg-gray-900'\r\n }\r\n });\r\n\r\n this.ngtPaginationActivePageButtonStyle.load(this.injector, 'NgtPaginationActivePageButton', {\r\n h: 'h-8',\r\n w: 'w-8',\r\n color: {\r\n text: 'text-white',\r\n bg: 'bg-gray-500'\r\n }\r\n });\r\n\r\n this.ngtPaginationPageButtonStyle.load(this.injector, 'NgtPaginationPageButton', {\r\n h: 'h-8',\r\n w: 'w-8',\r\n color: {\r\n text: 'text-white',\r\n bg: 'bg-gray-300'\r\n }\r\n });\r\n }\r\n\r\n public onRegistersPerPageChange(value: any) {\r\n if (value && this.pagination.per_page != value) {\r\n this.pagination.per_page = value;\r\n this.currentRegistersPerPage = value;\r\n\r\n this.onPerPageChange.emit(value);\r\n }\r\n }\r\n\r\n public async goToPage(page: number) {\r\n this.onPageChange.emit(page);\r\n }\r\n\r\n public async goToPreviousPage() {\r\n if ((this.pagination.page - 1) > 0) {\r\n return this.goToPage(this.pagination.page - 1);\r\n }\r\n }\r\n\r\n public async goToNextPage() {\r\n if ((this.pagination.page + 1) <= this.pagination.pages) {\r\n return this.goToPage(this.pagination.page + 1);\r\n }\r\n }\r\n\r\n public async goToPreviousSection() {\r\n return this.goToPage(this.sectionStartPage - 1);\r\n }\r\n\r\n public async goToNextSection() {\r\n return this.goToPage(this.sectionEndPage + 1);\r\n }\r\n\r\n public async goToFirstPage() {\r\n if (this.pagination.page != 1) {\r\n return this.goToPage(1);\r\n }\r\n }\r\n\r\n public async goToLastPage() {\r\n if (this.pagination.page != this.pagination.pages) {\r\n return this.goToPage(this.pagination.pages);\r\n }\r\n }\r\n\r\n public getCurrentPage() {\r\n return this.pagination.page;\r\n }\r\n\r\n public getPagination() {\r\n return this.pagination;\r\n }\r\n\r\n public proccessPagination(meta: NgtHttpMeta) {\r\n this.pages = [];\r\n this.pagination = meta.pagination;\r\n\r\n this.sectionStartPage = Math.floor((this.pagination.page - 1) / this.pagesInterval) * this.pagesInterval + 1;\r\n this.sectionEndPage = this.sectionStartPage + (this.pagesInterval - 1);\r\n\r\n const totalPages = this.pagination.pages;\r\n\r\n for (let i = this.sectionStartPage; i <= this.sectionEndPage && i <= totalPages; i++) {\r\n this.pages.push(i);\r\n }\r\n\r\n this.bindDisplayedButtonSections(this.sectionStartPage, this.sectionEndPage, totalPages);\r\n this.displayPagination = true;\r\n }\r\n\r\n public resetPagination() {\r\n this.pagination = {\r\n count: null,\r\n page: 1,\r\n pages: null,\r\n total: null,\r\n from: null,\r\n to: null,\r\n per_page: null\r\n };\r\n }\r\n\r\n private bindDisplayedButtonSections(sectionStartPage: number, sectionEndPage: number, totalPages: number) {\r\n this.displayPreviousSectionButton = sectionStartPage > 1 ? true : false;\r\n this.displayNextSectionButton = sectionEndPage < totalPages ? true : false;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\r\nimport { NgtActionModule } from '../ngt-action/ngt-action.module';\r\nimport { NgtSelectModule } from '../ngt-select/ngt-select.module';\r\nimport { NgtPaginationComponent } from './ngt-pagination.component';\r\n\r\n@NgModule({\r\n declarations: [NgtPaginationComponent],\r\n exports: [NgtPaginationComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgtStylizableModule,\r\n NgtActionModule,\r\n NgtSelectModule,\r\n ]\r\n})\r\nexport class NgtPaginationModule { }\r\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-tag',\r\n templateUrl: './ngt-tag.component.html',\r\n styleUrls: ['./ngt-tag.component.css']\r\n})\r\nexport class NgtTagComponent {\r\n @Input() public icon: string;\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'Tag', {\r\n color: {\r\n bg: 'bg-gray-500',\r\n text: 'text-white'\r\n }\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\r\nimport { NgtTagComponent } from './ngt-tag.component';\r\n\r\n@NgModule({\r\n declarations: [NgtTagComponent],\r\n exports: [NgtTagComponent],\r\n imports: [\r\n CommonModule,\r\n NgtSvgModule\r\n ]\r\n})\r\nexport class NgtTagModule { }\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { getEnumFromString } from '../../helpers/enum/enum';\r\nimport { NgtHttpPagination, NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\r\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\r\nimport { NgtInputComponent } from '../ngt-input/ngt-input.component';\r\nimport { NgtModalComponent } from '../ngt-modal/ngt-modal.component';\r\nimport { NgtPaginationComponent } from '../ngt-pagination/ngt-pagination.component';\r\n\r\n@Component({\r\n selector: 'ngt-datatable',\r\n templateUrl: './ngt-datatable.component.html',\r\n styleUrls: ['./ngt-datatable.component.css']\r\n})\r\nexport class NgtDatatableComponent implements OnInit, OnDestroy {\r\n @ViewChild('table', { static: true }) public table: ElementRef;\r\n @ViewChild('ngtPagination', { static: true }) public ngtPagination: NgtPaginationComponent;\r\n @ViewChild('searchModal', { static: true }) public searchModal: NgtModalComponent;\r\n\r\n @Input() public remoteResource: any;\r\n @Input() public type: NgtDatatableType = NgtDatatableType.REMOTE;\r\n @Input() public filterTagBgColor: string = 'bg-blue-500';\r\n @Input() public inputSearch: NgtInputComponent;\r\n @Input() public searchDelay: number = 500;\r\n @Input() public searchTermMinLength: number = 1;\r\n @Input() public searchTermOnEnter: boolean = true;\r\n @Input() public defaultFilters: any = {};\r\n @Input() public filtersDescription = {};\r\n\r\n @Output() public onDataChange: EventEmitter<any> = new EventEmitter();\r\n @Output() public onClearFilter: EventEmitter<any> = new EventEmitter();\r\n @Output() public onClearSelectedElements: EventEmitter<any> = new EventEmitter();\r\n @Output() public onSelectedElementsChange: EventEmitter<Array<NgtCheckedElement>> = new EventEmitter();\r\n @Output() public onToogleAllCheckboxes: EventEmitter<any> = new EventEmitter();\r\n @Output() public onToogleCheckbox: EventEmitter<NgtCheckedElement> = new EventEmitter();\r\n @Output() public onOpenSearchModal: EventEmitter<string> = new EventEmitter();\r\n @Output() public onSearch: EventEmitter<any> = new EventEmitter();\r\n\r\n public searchModalTemplate: TemplateRef<any>;\r\n public data = [];\r\n public loading = false;\r\n public cleaningFilter = false;\r\n public componentReady = false;\r\n public filtersTranslated = [];\r\n public emptyStateVisible: boolean;\r\n public columnCount = [];\r\n public selectedElements: Array<NgtCheckedElement> = [];\r\n\r\n private searching: boolean;\r\n private searchTimeout: any;\r\n private subscriptions: Array<Subscription> = [];\r\n private currentState = {\r\n filters: {\r\n defaultFilters: {},\r\n silentFilters: {},\r\n qualifiedFilters: {},\r\n },\r\n sort: {\r\n field: '',\r\n direction: ''\r\n }\r\n };\r\n\r\n public constructor(\r\n private injector: Injector,\r\n private ngtHttpService: NgtHttpService,\r\n private changeDetector: ChangeDetectorRef,\r\n @Optional()\r\n public ngtTranslateService: NgtTranslateService\r\n ) { }\r\n\r\n public ngOnInit() {\r\n if (this.table && this.table.nativeElement && this.table.nativeElement.rows\r\n && this.table.nativeElement.rows[0] && this.table.nativeElement.rows[0].cells) {\r\n this.columnCount = this.table.nativeElement.rows[0].cells;\r\n }\r\n\r\n if (this.inputSearch) {\r\n this.initSearchWithInput();\r\n }\r\n\r\n this.initCheckboxEvent();\r\n\r\n if (this.searchDelay == 500) {\r\n this.searchDelay = this.injector.get('NgtDatatableSearchDelay', 500);\r\n }\r\n\r\n if (this.searchTermMinLength == 1) {\r\n this.searchTermMinLength = this.injector.get('NgtDatatableSearchTermMinLength', 1);\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public setSearchModalTemplate(template: TemplateRef<any>) {\r\n this.searchModalTemplate = template;\r\n }\r\n\r\n public openSearchModal(reference?: string) {\r\n this.searchModal.open();\r\n this.onOpenSearchModal.emit(reference);\r\n }\r\n\r\n public clearSelectedElements() {\r\n this.selectedElements = [];\r\n this.onClearSelectedElements.emit();\r\n }\r\n\r\n public getCurrentState() {\r\n return this.currentState;\r\n }\r\n\r\n public init() {\r\n this.componentReady = true;\r\n }\r\n\r\n public async search(\r\n filters: Object,\r\n searchType: NgtDatatableSearchType = NgtDatatableSearchType.DEFAULT,\r\n applyDelayOnSearch: boolean = true\r\n ) {\r\n if (this.canApplyFilters(filters)) {\r\n this.onSearch.emit(filters);\r\n\r\n if (searchType == NgtDatatableSearchType.DEFAULT) {\r\n this.currentState.filters.defaultFilters = { ...this.currentState.filters.defaultFilters, ...filters };\r\n } else {\r\n this.currentState.filters.silentFilters = { ...this.currentState.filters.silentFilters, ...filters };\r\n }\r\n\r\n this.applyFiltersDescription();\r\n\r\n return this.apply(1, applyDelayOnSearch);\r\n }\r\n }\r\n\r\n public async sort(field: any, direction: any) {\r\n this.currentState.sort = {\r\n field: field,\r\n direction: direction\r\n };\r\n\r\n return this.apply(this.ngtPagination.getCurrentPage());\r\n }\r\n\r\n public async refresh(stayInPage: NgtDatatableParam = NgtDatatableParam.RESET_PAGE, loader: NgtDatatableParam = NgtDatatableParam.ENABLE_LOADER) {\r\n return this.apply(\r\n stayInPage ? this.ngtPagination.getCurrentPage() : 1,\r\n false,\r\n loader\r\n ).then(() => !this.data?.length ? this.apply(1, false) : null);\r\n }\r\n\r\n public getData() {\r\n return this.data;\r\n }\r\n\r\n public getCurrentSort() {\r\n return this.currentState.sort;\r\n }\r\n\r\n public setPerPage(perPage: number) {\r\n this.ngtPagination.onRegistersPerPageChange(perPage);\r\n }\r\n\r\n public applyFiltersDescription() {\r\n if (!this.cleaningFilter) {\r\n this.filtersTranslated = [];\r\n\r\n for (let reference in this.currentState.filters.defaultFilters) {\r\n if (this.filtersDescription[reference] && this.currentState.filters.defaultFilters[reference]) {\r\n this.filtersTranslated.push({\r\n reference: reference,\r\n value: this.currentState.filters.defaultFilters[reference],\r\n translation: this.filtersDescription[reference]\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n public setFilterDescription(reference: string, description: string) {\r\n this.filtersDescription[reference] = description;\r\n }\r\n\r\n public removeFilter(reference?: any) {\r\n this.cleaningFilter = true;\r\n\r\n if (!reference) {\r\n this.currentState.filters.defaultFilters = {};\r\n this.currentState.filters.silentFilters = {};\r\n this.filtersTranslated = [];\r\n } else {\r\n delete this.currentState.filters.defaultFilters[reference];\r\n delete this.currentState.filters.silentFilters[reference];\r\n\r\n this.filtersTranslated = this.filtersTranslated.filter(element => element && element.reference !== reference);\r\n }\r\n\r\n this.onClearFilter.emit(reference);\r\n\r\n if (this.inputSearch && (reference === 'term' || !reference)) {\r\n this.inputSearch.clearInput();\r\n }\r\n\r\n this.apply(this.ngtPagination.getCurrentPage(), false).then(() => this.cleaningFilter = false);\r\n }\r\n\r\n public hasAppliedFilter(filter: Object | NgtCustomFilter | string): boolean {\r\n const reference: string = typeof filter === 'string' ? filter : Object.keys(filter ?? {})[0];\r\n const appliedFilters = this.currentState.filters.qualifiedFilters;\r\n\r\n return !!Object.keys(appliedFilters).find(key => key == reference);\r\n }\r\n\r\n public hasAppliedFilters(searchType: NgtDatatableSearchType = NgtDatatableSearchType.DEFAULT) {\r\n let appliedFilters = {};\r\n\r\n if (searchType == NgtDatatableSearchType.DEFAULT) {\r\n appliedFilters = this.currentState.filters.defaultFilters;\r\n } else if (searchType == NgtDatatableSearchType.SILENT) {\r\n appliedFilters = this.currentState.filters.silentFilters;\r\n } else {\r\n appliedFilters = { ...this.currentState.filters.defaultFilters, ...this.currentState.filters.silentFilters };\r\n }\r\n\r\n return !!Object.values(appliedFilters)?.find(filter => !!filter);\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.inputSearch) {\r\n if (changes.inputSearch.currentValue) {\r\n this.initSearchWithInput();\r\n }\r\n }\r\n\r\n if (changes.type) {\r\n this.type = getEnumFromString(changes.type.currentValue, NgtDatatableType);\r\n }\r\n }\r\n\r\n public async apply(page = 1, applyDelayOnSearch: boolean = true, loader: NgtDatatableParam = NgtDatatableParam.ENABLE_LOADER) {\r\n return new Promise<void>(resolve => {\r\n if (!this.componentReady) {\r\n return resolve();\r\n } else if (this.searchTimeout) {\r\n clearTimeout(this.searchTimeout);\r\n }\r\n\r\n this.ngtPagination.displayPagination = false;\r\n this.selectedElements = [];\r\n\r\n if (this.type === NgtDatatableType.REMOTE) {\r\n if (this.remoteResource) {\r\n if (loader) {\r\n this.loading = true;\r\n this.bindVisibilityAttributes();\r\n }\r\n\r\n if (applyDelayOnSearch) {\r\n this.searchTimeout = setTimeout(() => {\r\n this.loadData(page).then(() => resolve());\r\n }, this.searchDelay);\r\n } else {\r\n this.loadData(page).then(() => resolve());\r\n }\r\n } else {\r\n console.error('The property [remoteResource] needs to be present to be able to make remote search');\r\n }\r\n } else if (this.type == NgtDatatableType.FIXED) {\r\n this.bindVisibilityAttributes();\r\n\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n private loadData(page: number) {\r\n return new Promise<void>((resolve, reject) => {\r\n const pagination: NgtHttpPagination = { ...this.ngtPagination.getPagination(), ...{ page: page } };\r\n\r\n this.currentState.filters.qualifiedFilters = this.getQualifiedFilters();\r\n this.searching = true;\r\n\r\n if (this.inputSearch) {\r\n this.inputSearch.isDisabled = true;\r\n }\r\n\r\n this.subscriptions.push(\r\n this.ngtHttpService.get(\r\n this.remoteResource, this.currentState.filters.qualifiedFilters, pagination, this.currentState.sort\r\n ).subscribe(\r\n (response: NgtHttpResponse) => {\r\n this.proccessRemoteResponse(response.data);\r\n this.ngtPagination.proccessPagination(response.meta);\r\n\r\n this.searching = false;\r\n this.loading = false;\r\n\r\n if (this.inputSearch) {\r\n this.inputSearch.isDisabled = false;\r\n }\r\n\r\n this.onDataChange.emit(this.data);\r\n this.bindVisibilityAttributes();\r\n\r\n resolve();\r\n },\r\n (error) => {\r\n console.error(error);\r\n this.loading = false;\r\n this.inputSearch.isDisabled = false;\r\n this.changeDetector.detectChanges();\r\n\r\n reject();\r\n }\r\n )\r\n );\r\n });\r\n }\r\n\r\n private getQualifiedFilters() {\r\n const qualifiedFilters = {};\r\n const requestedFilters = { ...this.currentState.filters.defaultFilters, ...this.currentState.filters.silentFilters };\r\n\r\n if (requestedFilters) {\r\n for (const reference in requestedFilters) {\r\n const filter = requestedFilters[reference];\r\n\r\n if (this.isValidFilter(filter)) {\r\n if (filter instanceof NgtCustomFilter) {\r\n if (filter.tagLabel) {\r\n this.filtersDescription[reference] = filter.tagLabel;\r\n this.applyFiltersDescription();\r\n }\r\n\r\n qualifiedFilters[reference] = filter.term;\r\n } else {\r\n qualifiedFilters[reference] = filter;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return qualifiedFilters;\r\n }\r\n\r\n private bindVisibilityAttributes() {\r\n this.changeDetector.detectChanges();\r\n\r\n if (this.type == NgtDatatableType.REMOTE && !this.data.length && !this.loading) {\r\n this.emptyStateVisible = true;\r\n } else if (this.type == NgtDatatableType.FIXED) {\r\n this.emptyStateVisible = false;\r\n } else {\r\n this.emptyStateVisible = false;\r\n }\r\n\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n private proccessRemoteResponse(response: any) {\r\n this.data = response;\r\n }\r\n\r\n private initSearchWithInput() {\r\n this.subscriptions.push(\r\n this.inputSearch.onValueChange().subscribe((value: string) => {\r\n if (this.currentState.filters.defaultFilters['term']) {\r\n if (!value) {\r\n this.removeFilter('term');\r\n } else if (value.length < this.searchTermMinLength) {\r\n delete this.currentState.filters.defaultFilters['term'];\r\n\r\n this.search({ term: '' });\r\n }\r\n }\r\n\r\n if (value.length >= this.searchTermMinLength) {\r\n this.search({ term: value });\r\n }\r\n })\r\n );\r\n\r\n if (this.searchTermOnEnter) {\r\n this.inputSearch.element.nativeElement.addEventListener('keydown', (event: any) => {\r\n event.stopImmediatePropagation();\r\n\r\n if (event.keyCode == 13) {\r\n if (this.inputSearch.value && this.inputSearch.value.length >= this.searchTermMinLength) {\r\n this.apply(1, false);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n private initCheckboxEvent() {\r\n this.subscriptions.push(\r\n this.onToogleCheckbox.subscribe((checkedElement: NgtCheckedElement) => {\r\n this.selectedElements = this.selectedElements.filter(item => item.id !== checkedElement.id);\r\n\r\n if (checkedElement.checked) {\r\n this.selectedElements.push(checkedElement);\r\n }\r\n\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n })\r\n );\r\n }\r\n\r\n private canApplyFilters(filters: Object): boolean {\r\n if (!this.searching) {\r\n for (const reference in filters) {\r\n if (this.isValidFilter(filters[reference])) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private isValidFilter(filter: Object | NgtCustomFilter): boolean {\r\n const value: string | NgtCustomFilter = Object.values(filter ?? {})[0];\r\n const hasValue: boolean = !!((value instanceof NgtCustomFilter && value.term) || value);\r\n const isApplied: boolean = this.hasAppliedFilter(filter);\r\n\r\n return isApplied || (!isApplied && hasValue);\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n\r\nexport enum NgtDatatableType {\r\n REMOTE = 'REMOTE',\r\n FIXED = 'FIXED'\r\n}\r\n\r\nexport enum NgtDatatableSearchType {\r\n DEFAULT = 'DEFAULT',\r\n SILENT = 'SILENT',\r\n}\r\n\r\nexport enum NgtDatatableParam {\r\n STAY_IN_PAGE = 1,\r\n RESET_PAGE = 0,\r\n ENABLE_LOADER = 1,\r\n DISABLE_LOADER = 0\r\n}\r\n\r\nexport class NgtCheckedElement {\r\n public id: string;\r\n public checked: boolean;\r\n public reference: any;\r\n}\r\n\r\nexport class NgtCustomFilter {\r\n public term: string;\r\n public tagValue: string;\r\n public tagLabel?: string;\r\n}\r\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: '[ngt-tbody]',\r\n templateUrl: './ngt-tbody.component.html',\r\n styleUrls: ['./ngt-tbody.component.css'],\r\n})\r\nexport class NgtTbodyComponent {\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n private hostElement: ElementRef,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n this.bindNgtStyle();\r\n }\r\n\r\n private bindNgtStyle() {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtTbody', {\r\n color: {\r\n bg: 'bg-white',\r\n text: '',\r\n border: ''\r\n }\r\n });\r\n\r\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\r\n 'h',\r\n 'px',\r\n 'py',\r\n 'pb',\r\n 'pl',\r\n 'pr',\r\n 'pt',\r\n 'mb',\r\n 'ml',\r\n 'mr',\r\n 'mt',\r\n 'border',\r\n 'color.bg',\r\n 'color.text',\r\n 'color.border',\r\n 'text',\r\n 'font',\r\n ]);\r\n }\r\n}\r\n","import { Component, ElementRef, Injector, Input, OnDestroy, Optional, Output, Self, SkipSelf, ViewChild, EventEmitter } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { uuid } from '../../../helpers/uuid';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtCheckboxComponent } from '../../ngt-checkbox/ngt-checkbox.component';\r\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\r\n\r\n@Component({\r\n selector: '[ngt-td-check]',\r\n templateUrl: './ngt-td-check.component.html',\r\n styleUrls: ['./ngt-td-check.component.css'],\r\n})\r\nexport class NgtTdCheckComponent implements OnDestroy {\r\n @ViewChild(NgtCheckboxComponent, { static: true }) public checkbox: NgtCheckboxComponent;\r\n @Input() public reference: any;\r\n @Input() public checked: boolean = false;\r\n @Output() public onCheckboxInit: EventEmitter<any> = new EventEmitter();\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n private id = uuid();\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n private injector: Injector,\r\n private hostElement: ElementRef,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n @Optional() @SkipSelf()\r\n private ngtDataTable: NgtDatatableComponent\r\n ) {\r\n this.bindNgtStyle();\r\n }\r\n\r\n public ngAfterContentInit() {\r\n if (this.ngtDataTable) {\r\n this.subscriptions.push(\r\n this.ngtDataTable.onToogleAllCheckboxes.subscribe((checked: boolean) => {\r\n this.checked = checked;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.ngtDataTable.onClearSelectedElements.subscribe(() => {\r\n this.checked = false;\r\n })\r\n );\r\n\r\n this.onCheckboxInit.emit({\r\n id: this.id,\r\n checked: this.checked,\r\n reference: this.reference\r\n });\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public onCheckboxChange(checked: boolean) {\r\n if (this.ngtDataTable) {\r\n this.ngtDataTable.onToogleCheckbox.emit({\r\n id: this.id,\r\n checked: checked,\r\n reference: this.reference\r\n });\r\n }\r\n }\r\n\r\n private bindNgtStyle() {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtTdCheck', {\r\n py: 'py-4',\r\n px: 'px-6',\r\n text: 'text-center',\r\n border: 'border-b',\r\n color: {\r\n border: ''\r\n }\r\n });\r\n\r\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\r\n 'h',\r\n 'px',\r\n 'py',\r\n 'pb',\r\n 'pl',\r\n 'pr',\r\n 'pt',\r\n 'mb',\r\n 'ml',\r\n 'mr',\r\n 'mt',\r\n 'border',\r\n 'color.border',\r\n ]);\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: '[ngt-td]',\r\n templateUrl: './ngt-td.component.html',\r\n styleUrls: ['./ngt-td.component.css'],\r\n})\r\nexport class NgtTdComponent {\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n private hostElement: ElementRef,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n this.bindNgtStyle();\r\n }\r\n\r\n private bindNgtStyle() {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtTd', {\r\n py: 'py-4',\r\n px: 'px-6',\r\n border: 'border-b',\r\n break: 'break-words',\r\n color: {\r\n bg: '',\r\n text: '',\r\n border: ''\r\n }\r\n });\r\n\r\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\r\n 'h',\r\n 'px',\r\n 'py',\r\n 'pb',\r\n 'pl',\r\n 'pr',\r\n 'pt',\r\n 'mb',\r\n 'ml',\r\n 'mr',\r\n 'mt',\r\n 'border',\r\n 'color.bg',\r\n 'color.text',\r\n 'color.border',\r\n 'text',\r\n 'font',\r\n 'break'\r\n ]);\r\n }\r\n}\r\n","import { AfterContentInit, Component, ElementRef, Injector, OnDestroy, Optional, Self, SkipSelf } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\r\n\r\n@Component({\r\n selector: '[ngt-th-check]',\r\n templateUrl: './ngt-th-check.component.html',\r\n styleUrls: ['./ngt-th-check.component.css'],\r\n})\r\nexport class NgtThCheckComponent implements AfterContentInit, OnDestroy {\r\n public checked = false;\r\n public ngtStyle: NgtStylizableService;\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n private injector: Injector,\r\n private hostElement: ElementRef,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n @Optional() @SkipSelf()\r\n private ngtDataTable: NgtDatatableComponent\r\n ) {\r\n this.bindNgtStyle();\r\n }\r\n\r\n public ngAfterContentInit() {\r\n if (this.ngtDataTable) {\r\n this.subscriptions.push(\r\n this.ngtDataTable.onDataChange.subscribe(() => {\r\n this.checked = false;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.ngtDataTable.onClearSelectedElements.subscribe(() => {\r\n this.checked = false;\r\n })\r\n );\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public onCheckboxChange(checked: boolean) {\r\n if (this.ngtDataTable) {\r\n this.ngtDataTable.onToogleAllCheckboxes.emit(checked);\r\n }\r\n }\r\n\r\n private bindNgtStyle() {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtThCheck', {\r\n py: 'py-4',\r\n px: 'px-6',\r\n text: 'text-center',\r\n border: 'border-b',\r\n color: {\r\n border: '',\r\n bg: 'bg-gray-500',\r\n text: 'text-white'\r\n }\r\n });\r\n\r\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\r\n 'h',\r\n 'px',\r\n 'py',\r\n 'pb',\r\n 'pl',\r\n 'pr',\r\n 'pt',\r\n 'mb',\r\n 'ml',\r\n 'mr',\r\n 'mt',\r\n 'border',\r\n 'color.border',\r\n 'color.bg',\r\n 'color.text'\r\n ]);\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n Self,\r\n SimpleChanges,\r\n SkipSelf,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtInputComponent } from '../../ngt-input/ngt-input.component';\r\nimport { NgtDatatableComponent } from '../ngt-datatable.component';\r\n\r\n@Component({\r\n selector: '[ngt-th]',\r\n templateUrl: './ngt-th.component.html',\r\n styleUrls: ['./ngt-th.component.css'],\r\n})\r\nexport class NgtThComponent implements OnChanges, OnDestroy {\r\n @ViewChild('searchInput') public searchInput: NgtInputComponent;\r\n @ViewChild('modal', { static: true }) public modal: TemplateRef<any>;\r\n\r\n @Input() public reference: string;\r\n @Input() public sortReference: string;\r\n @Input() public sortable: boolean;\r\n @Input() public searchable: boolean;\r\n @Input() public hasCustomSearch: boolean = false;\r\n @Input() public searchLabel: string;\r\n @Input() public sortableTooltip: NgtSortableTooltip = {\r\n ascending: 'Ordenar de Z a A',\r\n descending: 'Limpar ordenação',\r\n unordered: 'Ordenar de A a Z'\r\n };\r\n\r\n @Output() public onEnableSearch = new EventEmitter();\r\n\r\n public inputFocused: boolean = false;\r\n public isCurrentSort = false;\r\n public sortDirection = '';\r\n public searchTerm: any;\r\n public customSearchTerm: any;\r\n public ngtStyle: NgtStylizableService;\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n private injector: Injector,\r\n private hostElement: ElementRef,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n @Optional() @SkipSelf()\r\n public ngtDataTable: NgtDatatableComponent\r\n ) {\r\n if (this.checkDataTable()) {\r\n this.subscriptions.push(\r\n this.ngtDataTable.onDataChange.subscribe(() => {\r\n this.isCurrentSort = this.ngtDataTable.getCurrentSort().field == this.getSortReference();\r\n\r\n if (this.isCurrentSort) {\r\n this.sortDirection = this.ngtDataTable.getCurrentSort().direction;\r\n }\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.ngtDataTable.onClearFilter.subscribe((reference) => {\r\n if (reference == this.reference || !reference) {\r\n this.searchTerm = '';\r\n this.customSearchTerm = null;\r\n }\r\n })\r\n );\r\n }\r\n\r\n this.bindNgtStyle();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.searchLabel && this.checkDataTable) {\r\n this.ngtDataTable.setFilterDescription(this.reference, this.searchLabel);\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public async sort() {\r\n if (this.sortable && this.checkDataTable() && this.checkReference()) {\r\n let sortDirection = this.getNextSortDirection();\r\n\r\n if (sortDirection) {\r\n await this.ngtDataTable.sort(this.getSortReference(), sortDirection);\r\n } else {\r\n this.ngtDataTable.sort('', '');\r\n }\r\n\r\n this.sortDirection = sortDirection;\r\n }\r\n }\r\n\r\n public enableSearch(event: any) {\r\n event.stopPropagation();\r\n\r\n this.ngtDataTable.setSearchModalTemplate(this.modal);\r\n this.ngtDataTable.openSearchModal(this.reference);\r\n\r\n setTimeout(() => {\r\n if (this.searchInput) {\r\n this.searchInput.setFocus();\r\n }\r\n }, 100);\r\n\r\n this.onEnableSearch.emit();\r\n }\r\n\r\n public search(term: any) {\r\n if (!this.hasCustomSearch && this.searchTerm === undefined\r\n && this.customSearchTerm === undefined && !term) {\r\n return;\r\n }\r\n\r\n if (this.searchable && this.reference) {\r\n let filter = {};\r\n\r\n filter[this.reference] = term;\r\n this.ngtDataTable.search(filter);\r\n }\r\n }\r\n\r\n public customSearch(term: any) {\r\n this.customSearchTerm = term;\r\n }\r\n\r\n public getTooltip() {\r\n if (this.sortable && this.sortableTooltip) {\r\n if (this.sortDirection == 'asc') {\r\n return this.sortableTooltip.ascending;\r\n } else if (this.sortDirection == 'desc') {\r\n return this.sortableTooltip.descending;\r\n }\r\n\r\n return this.sortableTooltip.unordered;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n private getSortReference() {\r\n return this.sortReference ? this.sortReference : this.reference;\r\n }\r\n\r\n private checkDataTable() {\r\n if (!this.ngtDataTable) {\r\n console.error('The [ngt-th] must be inside of a [ngt-datatable]');\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private checkReference() {\r\n if (!this.reference && !this.sortReference) {\r\n console.error('The [ngt-th] must have a [reference] or a [sortReference] property to be able to sort');\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private getNextSortDirection() {\r\n switch (this.sortDirection) {\r\n case 'asc': return 'desc';\r\n case 'desc': return '';\r\n case '': return 'asc';\r\n }\r\n }\r\n\r\n private bindNgtStyle() {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtTh', {\r\n py: 'py-4',\r\n px: 'px-6',\r\n font: 'font-bold',\r\n text: 'text-sm',\r\n border: 'border-b',\r\n justifyContent: 'justify-center',\r\n color: {\r\n bg: '',\r\n text: '',\r\n border: ''\r\n }\r\n });\r\n\r\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\r\n 'h',\r\n 'px',\r\n 'py',\r\n 'pb',\r\n 'pl',\r\n 'pr',\r\n 'pt',\r\n 'mb',\r\n 'ml',\r\n 'mr',\r\n 'mt',\r\n 'border',\r\n 'color.bg',\r\n 'color.text',\r\n 'color.border',\r\n 'text',\r\n 'font',\r\n ]);\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n\r\nexport interface NgtSortableTooltip {\r\n ascending: string;\r\n descending: string;\r\n unordered: string;\r\n}\r\n","import { Component, ElementRef, Injector, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: '[ngt-thead]',\r\n templateUrl: './ngt-thead.component.html',\r\n styleUrls: ['./ngt-thead.component.css'],\r\n})\r\nexport class NgtTheadComponent {\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n private hostElement: ElementRef,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtThead', {\r\n color: {\r\n bg: 'bg-gray-200',\r\n text: '',\r\n border: ''\r\n }\r\n });\r\n\r\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\r\n 'h',\r\n 'px',\r\n 'py',\r\n 'pb',\r\n 'pl',\r\n 'pr',\r\n 'pt',\r\n 'mb',\r\n 'ml',\r\n 'mr',\r\n 'mt',\r\n 'border',\r\n 'color.bg',\r\n 'color.text',\r\n 'color.border',\r\n 'text',\r\n 'font',\r\n 'rounded'\r\n ]);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n Injector,\r\n Input,\r\n Optional,\r\n Self,\r\n SkipSelf,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtTbodyComponent } from '../ngt-tbody/ngt-tbody.component';\r\nimport { NgtTheadComponent } from '../ngt-thead/ngt-thead.component';\r\n\r\n@Component({\r\n selector: '[ngt-tr]',\r\n templateUrl: './ngt-tr.component.html',\r\n styleUrls: ['./ngt-tr.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NgtTrComponent {\r\n @HostBinding('class.evenStripped') @Input() public evenStripped: boolean;\r\n @HostBinding('class.oddStripped') @Input() public oddStripped: boolean;\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n private hostElement: ElementRef,\r\n @SkipSelf() @Optional() private ngtThead: NgtTheadComponent,\r\n @SkipSelf() @Optional() private ngtTbody: NgtTbodyComponent,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtTr', {\r\n border: 'border-r border-t md:border-r-0 md:border-t-0',\r\n color: {\r\n bg: '',\r\n text: '',\r\n border: ''\r\n }\r\n }, [this.getInheritanceStyles()]);\r\n\r\n this.hostElement.nativeElement.classList += this.ngtStyle.compile([\r\n 'h',\r\n 'px',\r\n 'py',\r\n 'pb',\r\n 'pl',\r\n 'pr',\r\n 'pt',\r\n 'mb',\r\n 'ml',\r\n 'mr',\r\n 'mt',\r\n 'border',\r\n 'color.bg',\r\n 'color.text',\r\n 'color.border',\r\n 'text',\r\n 'font',\r\n ]);\r\n }\r\n\r\n private getInheritanceStyles() {\r\n if (this.ngtThead) {\r\n return 'NgtTheadStyle';\r\n } else if (this.ngtTbody) {\r\n return 'NgtTbodyStyle';\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\r\nimport { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';\r\nimport { NgtInputModule } from '../ngt-input/ngt-input.module';\r\nimport { NgtModalModule } from '../ngt-modal/ngt-modal.module';\r\nimport { NgtPaginationModule } from '../ngt-pagination/ngt-pagination.module';\r\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\r\nimport { NgtTagModule } from '../ngt-tag/ngt-tag.module';\r\nimport { NgtDatatableComponent } from './ngt-datatable.component';\r\nimport { NgtTbodyComponent } from './ngt-tbody/ngt-tbody.component';\r\nimport { NgtTdCheckComponent } from './ngt-td-check/ngt-td-check.component';\r\nimport { NgtTdComponent } from './ngt-td/ngt-td.component';\r\nimport { NgtThCheckComponent } from './ngt-th-check/ngt-th-check.component';\r\nimport { NgtThComponent } from './ngt-th/ngt-th.component';\r\nimport { NgtTheadComponent } from './ngt-thead/ngt-thead.component';\r\nimport { NgtTrComponent } from './ngt-tr/ngt-tr.component';\r\nimport { NgtActionModule } from '../ngt-action/ngt-action.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n NgtDatatableComponent,\r\n NgtTbodyComponent,\r\n NgtTdComponent,\r\n NgtTdCheckComponent,\r\n NgtThComponent,\r\n NgtThCheckComponent,\r\n NgtTheadComponent,\r\n NgtTrComponent\r\n ],\r\n exports: [\r\n NgtDatatableComponent,\r\n NgtTbodyComponent,\r\n NgtTdComponent,\r\n NgtTdCheckComponent,\r\n NgtThComponent,\r\n NgtThCheckComponent,\r\n NgtTheadComponent,\r\n NgtTrComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgtShiningModule,\r\n NgtPaginationModule,\r\n NgtCheckboxModule,\r\n NgtInputModule,\r\n NgtModalModule,\r\n NgtTagModule,\r\n NgtActionModule,\r\n NgtStylizableModule\r\n ]\r\n})\r\nexport class NgtDatatableModule { }\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, Injector, Input, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-floating-button',\r\n templateUrl: './ngt-floating-button.component.html',\r\n styleUrls: ['./ngt-floating-button.component.css'],\r\n animations: [\r\n trigger('fadeY', [\r\n state('void', style({ opacity: 0, transform: 'translateY(10px)' })),\r\n transition(':enter, :leave', [\r\n animate(300)\r\n ])\r\n ]),\r\n\r\n trigger('openClose', [\r\n state('open', style({\r\n transform: 'rotate(180deg)'\r\n })),\r\n state('closed', style({\r\n transform: 'rotate(-180deg)'\r\n })),\r\n transition('open => closed', [\r\n animate('0.5s ease-in')\r\n ]),\r\n transition('closed => open', [\r\n animate('0.5s ease-in')\r\n ]),\r\n ]),\r\n ]\r\n})\r\nexport class NgtFloatingButtonComponent {\r\n @Input() public menus: Array<NgtFloatingButtonMenu>;\r\n @Input() public icon: string;\r\n @Input() public label: string;\r\n @Input() public withAnimation: boolean = false;\r\n\r\n public isOpen: boolean = false;\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtFloatingButton', {\r\n color: {\r\n bg: 'bg-blue-500',\r\n text: 'text-white',\r\n },\r\n px: 'px-4',\r\n py: 'py-4',\r\n h: 'h-12',\r\n w: 'w-12'\r\n });\r\n }\r\n\r\n public toggleMenu() {\r\n this.isOpen = !(this.isOpen);\r\n }\r\n\r\n public openExternalLink(url: string) {\r\n window.open(url, \"_blank\");\r\n this.toggleMenu();\r\n }\r\n\r\n public onClick(event: Event, menu: NgtFloatingButtonMenu) {\r\n event.stopPropagation();\r\n this.toggleMenu();\r\n\r\n if (typeof menu.action === 'function') {\r\n return menu.action();\r\n }\r\n\r\n throw new Error('Action must be a function!');\r\n }\r\n\r\n public isTypeAction(menu: NgtFloatingButtonMenu) {\r\n return menu.type == NgtFloatingButtonType.ACTION;\r\n }\r\n\r\n public isTypeNavigation(menu: NgtFloatingButtonMenu) {\r\n return menu.type == NgtFloatingButtonType.NAVIGATION;\r\n }\r\n}\r\n\r\nexport interface NgtFloatingButtonMenu {\r\n name?: string;\r\n type: NgtFloatingButtonType;\r\n icon?: string;\r\n tooltip?: string;\r\n externalLink?: boolean;\r\n url?: string;\r\n action?: Function;\r\n}\r\n\r\nexport enum NgtFloatingButtonType {\r\n NAVIGATION = 'NAVIGATION',\r\n ACTION = 'ACTION'\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\r\nimport { NgtFloatingButtonComponent } from './ngt-floating-button.component';\r\n\r\n@NgModule({\r\n declarations: [NgtFloatingButtonComponent],\r\n exports: [NgtFloatingButtonComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n NgtSvgModule\r\n ]\r\n})\r\nexport class NgtFloatingButtonModule { }\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Host,\r\n Input,\r\n OnDestroy,\r\n Optional,\r\n Renderer2,\r\n SkipSelf,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\r\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\r\n\r\n@Component({\r\n selector: 'ngt-slider',\r\n templateUrl: './ngt-slider.component.html',\r\n styleUrls: ['./ngt-slider.component.css'],\r\n providers: [\r\n NgtMakeProvider(NgtSliderComponent),\r\n ],\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: NgForm }\r\n ]\r\n})\r\nexport class NgtSliderComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\r\n @ViewChild('element', { static: true }) public element: ElementRef;\r\n @ViewChild('display', { static: true }) public display: ElementRef;\r\n\r\n @Input() public label: string;\r\n @Input() public shining: boolean;\r\n @Input() public name: string;\r\n @Input() public min: string = '0';\r\n @Input() public max: string = '100';\r\n @Input() public step: string = '1';\r\n @Input() public color: NgtSliderColorSchemeEnum = NgtSliderColorSchemeEnum.PRIMARY;\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n @Optional() @Host()\r\n public formContainer: ControlContainer,\r\n private renderer: Renderer2,\r\n @Optional() @SkipSelf()\r\n private ngtFormComponent: NgtFormComponent,\r\n ) {\r\n super();\r\n\r\n if (this.ngtFormComponent) {\r\n this.shining = this.ngtFormComponent.isShining();\r\n\r\n this.subscriptions.push(\r\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\r\n this.shining = shining;\r\n })\r\n );\r\n }\r\n }\r\n\r\n public ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.display.nativeElement.innerHTML = this.value;\r\n }, 500);\r\n\r\n this.renderer.listen(this.element.nativeElement, 'change', () => {\r\n this.onNativeChange(this.element.nativeElement.value);\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public change(value: boolean) {\r\n this.element.nativeElement.value = value;\r\n }\r\n\r\n public onNativeChange(value: boolean) {\r\n this.value = value;\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n\r\nexport enum NgtSliderColorSchemeEnum {\r\n PRIMARY = 'primary',\r\n SUCCESS = 'success',\r\n WARNING = 'warning',\r\n DANGER = 'danger'\r\n};\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\r\nimport { NgtSliderComponent } from './ngt-slider.component';\r\n\r\n@NgModule({\r\n declarations: [NgtSliderComponent],\r\n exports: [NgtSliderComponent],\r\n imports: [\r\n CommonModule,\r\n NgtShiningModule,\r\n ]\r\n})\r\nexport class NgtSliderModule { }\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\n\r\nimport { NgtRadioButtonComponent } from '../ngt-radio-button.component';\r\n\r\n@Component({\r\n selector: '[ngt-radio-button-container]',\r\n templateUrl: './ngt-radio-button-container.component.html',\r\n})\r\nexport class NgtRadioButtonContainerComponent {\r\n @Output() public onActiveRadioButtonChange = new EventEmitter();\r\n\r\n public setActiveRadioButton(activeRadioButton: NgtRadioButtonComponent) {\r\n this.onActiveRadioButtonChange.emit(activeRadioButton);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Host,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n Optional,\r\n Renderer2,\r\n Self,\r\n SkipSelf,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\r\nimport { NgtRadioButtonContainerComponent } from './ngt-radio-button-container/ngt-radio-button-container.component';\r\n\r\n@Component({\r\n selector: 'ngt-radio-button',\r\n templateUrl: './ngt-radio-button.component.html',\r\n styleUrls: ['./ngt-radio-button.component.css'],\r\n providers: [\r\n NgtMakeProvider(NgtRadioButtonComponent),\r\n ],\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: NgForm }\r\n ]\r\n})\r\nexport class NgtRadioButtonComponent extends NgtBaseNgModel implements AfterViewInit, OnDestroy {\r\n @ViewChild('element', { static: true }) public element: ElementRef;\r\n\r\n @Input() public label: string;\r\n @Input() public shining: boolean = false;\r\n @Input() public name: string;\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Optional() @Host()\r\n public formContainer: ControlContainer,\r\n private renderer: Renderer2,\r\n @Self() @Optional()\r\n private ngtStylizableDirective: NgtStylizableDirective,\r\n @Optional() @SkipSelf()\r\n private ngtFormComponent: NgtFormComponent,\r\n @Optional() @SkipSelf()\r\n private ngtRadioButtonContainer: NgtRadioButtonContainerComponent\r\n ) {\r\n super();\r\n\r\n if (this.ngtFormComponent) {\r\n this.shining = this.ngtFormComponent.isShining();\r\n\r\n this.subscriptions.push(\r\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\r\n this.shining = shining;\r\n })\r\n );\r\n }\r\n\r\n if (this.ngtRadioButtonContainer) {\r\n this.subscriptions.push(\r\n this.ngtRadioButtonContainer.onActiveRadioButtonChange.subscribe((activeRadioButton: NgtRadioButtonComponent) => {\r\n this.value = (activeRadioButton.name === this.name);\r\n })\r\n );\r\n }\r\n\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtCheckbox', {\r\n color: {\r\n text: 'text-gray-500',\r\n border: 'border-gray-500',\r\n }\r\n });\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this.renderer.listen(this.element.nativeElement, 'change', (value) => {\r\n this.onNativeChange(this.element.nativeElement.checked);\r\n });\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public change(value: boolean) {\r\n if (value) {\r\n this.element.nativeElement.checked = value;\r\n\r\n if (this.ngtRadioButtonContainer) {\r\n this.ngtRadioButtonContainer.setActiveRadioButton(this);\r\n }\r\n }\r\n }\r\n\r\n public onNativeChange(value: boolean) {\r\n this.value = value ? value : !value;\r\n\r\n if (this.ngtRadioButtonContainer) {\r\n this.ngtRadioButtonContainer.setActiveRadioButton(this);\r\n }\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\r\nimport { NgtRadioButtonContainerComponent } from './ngt-radio-button-container/ngt-radio-button-container.component';\r\nimport { NgtRadioButtonComponent } from './ngt-radio-button.component';\r\n\r\n@NgModule({\r\n declarations: [NgtRadioButtonComponent, NgtRadioButtonContainerComponent],\r\n exports: [NgtRadioButtonComponent, NgtRadioButtonContainerComponent],\r\n imports: [\r\n CommonModule,\r\n NgtShiningModule,\r\n ]\r\n})\r\nexport class NgtRadioButtonModule { }\r\n","import {\r\n Component,\r\n ElementRef,\r\n Host,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Renderer2,\r\n Self,\r\n SkipSelf,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\r\n\r\n@Component({\r\n selector: 'ngt-textarea',\r\n templateUrl: './ngt-textarea.component.html',\r\n styleUrls: ['./ngt-textarea.component.css'],\r\n providers: [\r\n NgtMakeProvider(NgtTextareaComponent),\r\n ],\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: NgForm }\r\n ]\r\n})\r\nexport class NgtTextareaComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\r\n @ViewChild(\"element\", { static: true }) public element: ElementRef;\r\n\r\n // Visual\r\n @Input() public label: string = \"\";\r\n @Input() public placeholder: string = \"\";\r\n @Input() public rows: string = \"3\";\r\n @Input() public helpTitle: string;\r\n @Input() public showCharactersLength: boolean = false;\r\n @Input() public helpText: boolean = false;\r\n @Input() public helpTextColor: string = 'text-green-500';\r\n @Input() public shining: boolean = false;\r\n\r\n // Behavior\r\n @Input() public name: string;\r\n @Input() public isDisabled: boolean = false;\r\n @Input() public isReadonly: boolean = false;\r\n @Input() public jit: boolean = false;\r\n @Input() public focus: boolean = false;\r\n\r\n // Validation\r\n @Input() public isRequired: boolean = false;\r\n @Input() public maxLength: number = 300;\r\n\r\n public componentReady = false;\r\n public ngtStyle: NgtStylizableService;\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n @Optional() @Host()\r\n public formContainer: ControlContainer,\r\n @Optional() @SkipSelf()\r\n private ngtFormComponent: NgtFormComponent,\r\n private renderer: Renderer2,\r\n @Optional()\r\n public ngtTranslateService: NgtTranslateService\r\n ) {\r\n super();\r\n\r\n if (this.ngtFormComponent) {\r\n this.shining = this.ngtFormComponent.isShining();\r\n\r\n this.subscriptions.push(\r\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\r\n this.shining = shining;\r\n })\r\n );\r\n }\r\n\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtTextarea', {\r\n text: 'text-sm',\r\n fontCase: '',\r\n color: {\r\n border: 'border-gray-400 focus:border-gray-700',\r\n bg: 'bg-bg-white focus:bg-white',\r\n text: 'text-gray-800'\r\n }\r\n });\r\n }\r\n\r\n public ngOnChanges(changes) {\r\n if (changes.isRequired) {\r\n this.updateValidations();\r\n }\r\n }\r\n\r\n public ngOnInit() {\r\n if (!this.formContainer) {\r\n console.warn(\"The element must be inside a <form #form='ngForm'> tag!\", this.element.nativeElement);\r\n }\r\n\r\n if (!this.name) {\r\n console.warn(\"The element must contain a name attribute!\", this.element.nativeElement);\r\n } else {\r\n setTimeout(() => {\r\n this.componentReady = true;\r\n\r\n setTimeout(() => {\r\n this.initComponent();\r\n });\r\n }, 500);\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public setFocus() {\r\n setTimeout(() => {\r\n this.element.nativeElement.focus();\r\n }, 200);\r\n }\r\n\r\n public clear() {\r\n this.element.nativeElement.value = '';\r\n this.value = '';\r\n }\r\n\r\n public change(value) {\r\n let nativeValue = this.getNativeValue();\r\n let ngModelValue = value ? value : '';\r\n\r\n if (this.componentReady) {\r\n this.onValueChangeEvent.emit(this.value);\r\n }\r\n\r\n if (this.value != nativeValue) {\r\n this.element.nativeElement.value = ngModelValue;\r\n }\r\n }\r\n\r\n public getRemainingCharacters() {\r\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length) {\r\n if ((this.maxLength - this.element.nativeElement.value.length) > 0) {\r\n return this.maxLength - this.element.nativeElement.value.length;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n return this.maxLength;\r\n }\r\n\r\n private initComponent() {\r\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\r\n if (this.focus) {\r\n this.setFocus();\r\n }\r\n\r\n let watch = \"change\";\r\n\r\n if (this.jit) {\r\n watch += \" keyup keydown keypress\";\r\n }\r\n\r\n watch.split(' ').forEach((evt) => {\r\n this.renderer.listen(this.element.nativeElement, evt, () => {\r\n let nativeValue = this.getNativeValue();\r\n\r\n if (this.value != nativeValue) {\r\n this.value = nativeValue;\r\n }\r\n });\r\n });\r\n\r\n this.renderer.listen(this.element.nativeElement, \"keydown\", (event) => {\r\n if (this.element.nativeElement && this.element.nativeElement.value && this.element.nativeElement.value.length >= this.maxLength) {\r\n // Backspace and delete\r\n if (event.keyCode != 8 && event.keyCode != 46) {\r\n event.preventDefault();\r\n\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n this.updateValidations();\r\n\r\n if (this.value) {\r\n this.formControl.markAsDirty();\r\n } else {\r\n this.formControl.markAsPristine();\r\n }\r\n } else {\r\n console.warn(\"The element must contain a ngModel property\", this.element.nativeElement);\r\n }\r\n }\r\n\r\n private updateValidations() {\r\n if (!this.formControl) {\r\n return;\r\n }\r\n\r\n let syncValidators = [];\r\n\r\n if (this.isRequired) {\r\n syncValidators.push(Validators.required);\r\n }\r\n\r\n if (this.maxLength) {\r\n syncValidators.push(Validators.maxLength(this.maxLength));\r\n }\r\n\r\n setTimeout(() => {\r\n this.formControl.setValidators(syncValidators);\r\n this.formControl.updateValueAndValidity();\r\n });\r\n }\r\n\r\n private getNativeValue() {\r\n return this.element.nativeElement.value;\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\r\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\r\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\r\nimport { NgtTextareaComponent } from './ngt-textarea.component';\r\n\r\n@NgModule({\r\n declarations: [NgtTextareaComponent],\r\n exports: [NgtTextareaComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgtValidationModule,\r\n NgtShiningModule,\r\n NgtFormModule\r\n ]\r\n})\r\nexport class NgtTextareaModule { }\r\n","import {\r\n Component,\r\n Host,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Self,\r\n SimpleChanges,\r\n SkipSelf,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\r\nimport { FlatpickrOptions, Ng2FlatpickrComponent } from 'ng2-flatpickr';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { getEnumFromString } from '../../helpers/enum/enum';\r\nimport { uuid } from '../../helpers/uuid';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\r\n\r\nconst Brazil = require(\"flatpickr/dist/l10n/pt.js\").default.pt;\r\nconst US = require(\"flatpickr/dist/l10n/default.js\").default;\r\nlet moment = require('moment');\r\n\r\n@Component({\r\n selector: 'ngt-date',\r\n templateUrl: './ngt-date.component.html',\r\n styleUrls: ['./ngt-date.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n NgtMakeProvider(NgtDateComponent),\r\n ],\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: NgForm }\r\n ]\r\n})\r\nexport class NgtDateComponent extends NgtBaseNgModel implements OnInit, OnDestroy {\r\n @ViewChild(\"ng2FlatpickrComponent\", { static: true }) public ng2FlatpickrComponent: Ng2FlatpickrComponent;\r\n\r\n // Visual\r\n @Input() public label: string = \"\";\r\n @Input() public placeholder: string = \"dd/mm/yyyy\";\r\n @Input() public helpTitle: string;\r\n @Input() public helpText: string;\r\n @Input() public helpTextColor: string = 'text-green-500';\r\n @Input() public shining = false;\r\n @Input() public dateFormat: string = 'd/m/Y H:i';\r\n @Input() public dateFormatNgModel = 'YYYY-MM-DD HH:mm:00';\r\n\r\n // Behavior\r\n @Input() public name: string;\r\n @Input() public isDisabled: boolean = false;\r\n @Input() public isReadonly: boolean = false;\r\n @Input() public mode: NgtDateMode;\r\n @Input() public time_24hr: boolean = true;\r\n @Input() public enableTime: boolean = true;\r\n @Input() public noCalendar: boolean = false;\r\n @Input() public minuteIncrement: number = 1;\r\n @Input() public allowInput: boolean = false;\r\n @Input() public locale: NgtDateLocale;\r\n @Input() public allowClear: boolean = true;\r\n @Input() public minDate: string;\r\n @Input() public maxDate: string;\r\n @Input() public defaultDate: string;\r\n\r\n // Validation\r\n @Input() public isRequired: boolean = false;\r\n\r\n public ngtStyle: NgtStylizableService;\r\n public dateConfig: FlatpickrOptions;\r\n public nativeValue: any;\r\n public componentReady = false;\r\n public nativeName = uuid();\r\n public inputProperties: {\r\n htmlType?: string;\r\n length?: number;\r\n } = {};\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n @Optional() @Host()\r\n public formContainer: ControlContainer,\r\n @Optional() @SkipSelf()\r\n private ngtFormComponent: NgtFormComponent\r\n ) {\r\n super();\r\n\r\n if (this.ngtFormComponent) {\r\n this.shining = this.ngtFormComponent.isShining();\r\n\r\n this.subscriptions.push(\r\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\r\n this.shining = shining;\r\n })\r\n );\r\n }\r\n\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtDate', {\r\n h: 'h-12',\r\n text: 'text-sm',\r\n fontCase: '',\r\n color: {\r\n text: 'text-gray-800'\r\n }\r\n });\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.isRequired) {\r\n this.updateValidations();\r\n }\r\n\r\n if (changes.mode) {\r\n this.mode = getEnumFromString(changes.mode.currentValue, NgtDateMode);\r\n }\r\n\r\n if (changes.locale) {\r\n this.locale = getEnumFromString(changes.locale.currentValue, NgtDateLocale);\r\n }\r\n }\r\n\r\n public ngOnInit() {\r\n this.dateConfig = {\r\n dateFormat: this.dateFormat,\r\n mode: this.getDateMode(),\r\n minuteIncrement: this.minuteIncrement,\r\n minDate: this.minDate,\r\n maxDate: this.maxDate,\r\n time_24hr: this.time_24hr,\r\n enableTime: this.enableTime,\r\n noCalendar: this.noCalendar,\r\n allowInput: this.allowInput,\r\n locale: this.getLocale(),\r\n onChange: (selectedDates, dateStr, instance) => this.onNativeChange(selectedDates, instance, true),\r\n onClose: (selectedDates, dateStr, instance) => this.onNativeChange(selectedDates, instance, false),\r\n };\r\n\r\n if (!this.formContainer) {\r\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\r\n }\r\n\r\n if (!this.name) {\r\n console.error(\"The element must contain a name attribute!\");\r\n } else {\r\n setTimeout(() => {\r\n this.componentReady = true;\r\n setTimeout(() => {\r\n this.initComponent();\r\n });\r\n }, 500);\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n const flatpickrElement = document.getElementsByClassName('flatpickr-calendar');\r\n\r\n if (flatpickrElement?.length) {\r\n flatpickrElement[flatpickrElement.length - 1].remove();\r\n }\r\n\r\n this.destroySubscriptions();\r\n }\r\n\r\n public clearInput(clearInstance = false) {\r\n this.value = '';\r\n this.nativeValue = '';\r\n\r\n if (this.ng2FlatpickrComponent && clearInstance) {\r\n this.ng2FlatpickrComponent.setDateFromInput('');\r\n }\r\n }\r\n\r\n public change(value: any) {\r\n if (this.componentReady) {\r\n this.onValueChangeEvent.emit(this.value);\r\n }\r\n\r\n if (!value || (value instanceof Object && !Object.keys(value).length)) {\r\n return this.clearInput();\r\n }\r\n\r\n if (value && value != this.nativeValue) {\r\n let firstValue = moment(value);\r\n\r\n if ((value instanceof Object && Object.keys(value).length) || (value instanceof Array && value.length)) {\r\n firstValue = moment(value[0]);\r\n\r\n if (value.length == 2) {\r\n firstValue = firstValue;\r\n\r\n let secondValue = moment(value[1]);\r\n\r\n if (firstValue.isValid() && secondValue.isValid()) {\r\n return (<any>this.ng2FlatpickrComponent.flatpickr).setDate([\r\n firstValue.format(this.getMomentDateFormat()),\r\n secondValue.format(this.getMomentDateFormat())\r\n ], true, this.dateFormat);\r\n }\r\n }\r\n }\r\n\r\n if (firstValue.isValid()) {\r\n return (<any>this.ng2FlatpickrComponent.flatpickr).setDate(firstValue.format(this.getMomentDateFormat()), true, this.dateFormat);\r\n }\r\n\r\n this.ng2FlatpickrComponent.setDateFromInput('');\r\n this.clearInput();\r\n }\r\n }\r\n\r\n public onNativeChange(value: any, instance: any, triggerClose: boolean) {\r\n if (!value || (value instanceof Object && !Object.keys(value).length)) {\r\n if (triggerClose) {\r\n instance.close();\r\n }\r\n\r\n return this.clearInput();\r\n }\r\n\r\n if (this.mode == NgtDateMode.RANGE) {\r\n this.nativeValue = [];\r\n\r\n value.forEach(element => {\r\n element = moment(element);\r\n\r\n if (element && element.isValid()) {\r\n this.nativeValue.push(element.format(this.dateFormatNgModel));\r\n }\r\n });\r\n } else if (value[0]) {\r\n value = moment(value[0]);\r\n\r\n if (value && value.isValid()) {\r\n this.nativeValue = value.format(this.dateFormatNgModel);\r\n }\r\n }\r\n\r\n if (this.value != this.nativeValue) {\r\n this.value = this.nativeValue;\r\n }\r\n }\r\n\r\n public getNativeValue() {\r\n let nativeValue: any = this.nativeValue;\r\n\r\n if (nativeValue && nativeValue.format) {\r\n nativeValue = nativeValue.format(this.dateFormatNgModel);\r\n }\r\n\r\n return nativeValue;\r\n }\r\n\r\n public getFormattedNativeValue() {\r\n let nativeValue: any = this.nativeValue;\r\n\r\n if (nativeValue && Array.isArray(nativeValue)) {\r\n let formattedNativeValue: string = '';\r\n\r\n nativeValue.forEach(element => {\r\n element = moment(element);\r\n\r\n if (element.format && !this.enableTime) {\r\n formattedNativeValue += element.format('DD/MM/YYYY') + ' ';\r\n } else if (element.format && this.enableTime) {\r\n formattedNativeValue += element.format('DD/MM/YYYY HH:mm:00') + ' ';\r\n }\r\n });\r\n\r\n return formattedNativeValue;\r\n } else if (nativeValue) {\r\n nativeValue = moment(nativeValue);\r\n\r\n if (nativeValue.format && !this.enableTime) {\r\n return nativeValue.format('DD/MM/YYYY') + ' ';\r\n } else if (nativeValue.format && this.enableTime) {\r\n return nativeValue.format('DD/MM/YYYY HH:mm:00') + ' ';\r\n }\r\n }\r\n\r\n return this.placeholder;\r\n }\r\n\r\n public hasErrors(): boolean {\r\n return this.formControl?.errors && (this.formControl?.dirty || (this.formContainer && this.formContainer['submitted']));\r\n }\r\n\r\n private initComponent() {\r\n if (this.formContainer && this.formContainer.control && (this.formControl = this.formContainer.control.get(this.name))) {\r\n if (this.defaultDate) {\r\n this.value = moment(this.defaultDate).format(this.dateFormatNgModel);\r\n }\r\n\r\n this.updateValidations();\r\n\r\n if (this.value) {\r\n this.formControl.markAsDirty();\r\n } else {\r\n this.formControl.markAsPristine();\r\n }\r\n }\r\n }\r\n\r\n private updateValidations() {\r\n if (!this.formControl) {\r\n return;\r\n }\r\n\r\n let syncValidators = [];\r\n\r\n if (this.isRequired) {\r\n syncValidators.push(Validators.required);\r\n }\r\n\r\n setTimeout(() => {\r\n this.formControl.setValidators(syncValidators);\r\n this.formControl.updateValueAndValidity();\r\n });\r\n }\r\n\r\n private getLocale() {\r\n if (this.locale) {\r\n if (this.locale == NgtDateLocale.BRAZIL) {\r\n return Brazil;\r\n }\r\n }\r\n\r\n return US;\r\n }\r\n\r\n private getDateMode() {\r\n if (this.mode) {\r\n if (this.mode == NgtDateMode.RANGE) {\r\n return 'range';\r\n }\r\n }\r\n\r\n return 'single';\r\n }\r\n\r\n private getMomentDateFormat() {\r\n let dateFormat = '';\r\n\r\n for (let i = 0; i < this.dateFormat.length; i++) {\r\n switch (this.dateFormat.charAt(i)) {\r\n case 'd':\r\n dateFormat += 'DD';\r\n break;\r\n case 'm':\r\n dateFormat += 'MM';\r\n break;\r\n case 'M':\r\n dateFormat += 'MMM';\r\n break;\r\n case 'Y':\r\n dateFormat += 'YYYY';\r\n break;\r\n case '/':\r\n dateFormat += '/';\r\n break;\r\n case '-':\r\n dateFormat += '-';\r\n break;\r\n case ':':\r\n dateFormat += ':';\r\n break;\r\n case 'H':\r\n dateFormat += 'HH';\r\n break;\r\n case 'i':\r\n dateFormat += 'mm';\r\n break;\r\n case 's':\r\n dateFormat += 'ss';\r\n break;\r\n default:\r\n if (this.dateFormat.charAt(i) != '.') {\r\n dateFormat += this.dateFormat.charAt(i);\r\n }\r\n }\r\n }\r\n\r\n return dateFormat ? dateFormat : 'DD/MM/YYYY HH:mm:00';\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n\r\nexport enum NgtDateLocale {\r\n BRAZIL = 'BRAZIL',\r\n US = 'US'\r\n}\r\n\r\nexport enum NgtDateMode {\r\n SINGLE = 'SINGLE',\r\n RANGE = 'RANGE'\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { Ng2FlatpickrModule } from 'ng2-flatpickr';\r\n\r\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\r\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\r\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\r\nimport { NgtDateComponent } from './ngt-date.component';\r\n\r\n@NgModule({\r\n declarations: [NgtDateComponent],\r\n exports: [NgtDateComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n Ng2FlatpickrModule,\r\n NgtValidationModule,\r\n NgtShiningModule,\r\n NgtHelperModule,\r\n ]\r\n})\r\nexport class NgtDateModule { }\r\n","import { Component, Injector, Input, OnChanges, OnDestroy, Optional, Self, SimpleChanges, SkipSelf } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\r\n\r\n@Component({\r\n selector: 'ngt-button',\r\n templateUrl: './ngt-button.component.html',\r\n styleUrls: ['./ngt-button.component.css'],\r\n})\r\nexport class NgtButtonComponent implements OnChanges, OnDestroy {\r\n @Input() public link: boolean = false;\r\n @Input() public href: string;\r\n @Input() public type: string = 'success';\r\n @Input() public loading: boolean = false;\r\n @Input() public isDisabled: boolean = false;\r\n @Input() public noSubmit: boolean = false;\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n @Optional() @SkipSelf()\r\n private ngtFormComponent: NgtFormComponent,\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n if (this.ngtFormComponent) {\r\n this.subscriptions.push(\r\n this.ngtFormComponent.onLoadingChange.subscribe((loading: boolean) => {\r\n this.loading = loading;\r\n })\r\n );\r\n }\r\n }\r\n\r\n public onClick(event: Event) {\r\n if (this.isDisabled || this.loading) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.type) {\r\n if (changes.type.currentValue == 'success') {\r\n this.ngtStyle.load(this.injector, 'NgtSuccessButton', {\r\n color: {\r\n bg: 'bg-green-500',\r\n text: 'text-white text-sm',\r\n },\r\n px: 'px-4',\r\n py: 'py-2'\r\n });\r\n } else if (changes.type.currentValue == 'warning') {\r\n this.ngtStyle.load(this.injector, 'NgtWarningButton', {\r\n color: {\r\n bg: 'bg-orange-500',\r\n text: 'text-white text-sm',\r\n },\r\n px: 'px-4',\r\n py: 'py-2'\r\n });\r\n } else if (changes.type.currentValue == 'danger') {\r\n this.ngtStyle.load(this.injector, 'NgtDangerButton', {\r\n color: {\r\n bg: 'bg-red-500',\r\n text: 'text-white text-sm',\r\n },\r\n px: 'px-4',\r\n py: 'py-2'\r\n });\r\n } else {\r\n this.ngtStyle.load(this.injector, 'NgtInfoButton', {\r\n color: {\r\n bg: 'bg-blue-500',\r\n text: 'text-white text-sm',\r\n },\r\n px: 'px-4',\r\n py: 'py-2'\r\n });\r\n }\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { NgtFormModule } from '../ngt-form/ngt-form.module';\r\nimport { NgtButtonComponent } from './ngt-button.component';\r\n\r\n@NgModule({\r\n declarations: [NgtButtonComponent],\r\n exports: [NgtButtonComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n NgtFormModule\r\n ]\r\n})\r\nexport class NgtButtonModule { }\r\n","import { Component, Injector, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-portlet-body',\r\n templateUrl: './ngt-portlet-body.component.html',\r\n styleUrls: ['./ngt-portlet-body.component.css']\r\n})\r\nexport class NgtPortletBodyComponent {\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtPortletBody', {\r\n color: {\r\n text: 'text-black'\r\n }\r\n }, ['NgtPortletStyle']);\r\n }\r\n}\r\n","import { Component, Injector, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-portlet-footer',\r\n templateUrl: './ngt-portlet-footer.component.html',\r\n styleUrls: ['./ngt-portlet-footer.component.css']\r\n})\r\nexport class NgtPortletFooterComponent {\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtPortletFooter', {\r\n color: {\r\n bg: 'bg-gray-200',\r\n text: 'text-black'\r\n }\r\n }, ['NgtPortletStyle']);\r\n }\r\n}\r\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-portlet-header',\r\n templateUrl: './ngt-portlet-header.component.html',\r\n styleUrls: ['./ngt-portlet-header.component.css']\r\n})\r\nexport class NgtPortletHeaderComponent {\r\n @Input() public caption: string = '';\r\n @Input() public icon: string = '';\r\n @Input() public helperTitle: string = '';\r\n @Input() public helperText: string = '';\r\n @Input() public helperIconColor: string = '';\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtPortletHeader', {\r\n h: 'h-auto',\r\n w: 'w-auto',\r\n text: 'text-xl',\r\n fontCase: '',\r\n border: 'border-b',\r\n color: {}\r\n }, ['NgtPortletStyle']);\r\n }\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, Injector, Input, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-portlet',\r\n templateUrl: './ngt-portlet.component.html',\r\n styleUrls: ['./ngt-portlet.component.css'],\r\n animations: [\r\n trigger('fadeUp', [\r\n state('void', style({ transform: 'translateY(20px)', opacity: 0 })),\r\n transition(':enter', [\r\n animate(500)\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class NgtPortletComponent {\r\n @Input() public caption: string;\r\n @Input() public icon: string = null;\r\n @Input() public customLayout: boolean = false;\r\n @Input() public withFooter: boolean = false;\r\n @Input() public withBody: boolean = true;\r\n @Input() public helpTitle: string = '';\r\n @Input() public helpText: string = '';\r\n @Input() public helpIconColor: string = '';\r\n\r\n public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtPortlet', {\r\n h: 'h-auto',\r\n shadow: 'shadow',\r\n color: {}\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtPortletBodyComponent } from './ngt-portlet-body/ngt-portlet-body.component';\r\nimport { NgtPortletFooterComponent } from './ngt-portlet-footer/ngt-portlet-footer.component';\r\nimport { NgtPortletHeaderComponent } from './ngt-portlet-header/ngt-portlet-header.component';\r\nimport { NgtPortletComponent } from './ngt-portlet.component';\r\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\r\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n NgtPortletComponent,\r\n NgtPortletHeaderComponent,\r\n NgtPortletBodyComponent,\r\n NgtPortletFooterComponent\r\n ],\r\n exports: [\r\n NgtPortletComponent,\r\n NgtPortletHeaderComponent,\r\n NgtPortletBodyComponent,\r\n NgtPortletFooterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgtSvgModule,\r\n NgtHelperModule\r\n ]\r\n})\r\nexport class NgtPortletModule { }\r\n","export enum Size {\r\n AUTO = 'AUTO',\r\n XS = 'XS',\r\n SM = 'SM',\r\n MD = 'MD',\r\n XL = 'XL',\r\n FULL = 'FULL'\r\n};\r\n","import { animate, AnimationStyleMetadata, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport function slideLeftToRightAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\r\n return trigger(name, [\r\n state('void', customStyle ? customStyle : style({ transform: 'translateX(-50px)', opacity: 0 })),\r\n transition(':enter, :leave', [\r\n animate(duration)\r\n ])\r\n ]);\r\n}\r\n\r\nexport function slideRightToLeftAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\r\n return trigger(name, [\r\n state('void', customStyle ? customStyle : style({ transform: 'translateX(50px)', opacity: 0 })),\r\n transition(':enter, :leave', [\r\n animate(duration)\r\n ])\r\n ]);\r\n}\r\n\r\nexport function fadeDownAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\r\n return trigger(name, [\r\n state('void', customStyle ? customStyle : style({ transform: 'translateY(-20px)', opacity: 0 })),\r\n transition(':enter, :leave', [\r\n animate(duration)\r\n ])\r\n ]);\r\n}\r\n\r\nexport function fadeUpAnimation(name: string, duration: any, customStyle?: AnimationStyleMetadata) {\r\n return trigger(name, [\r\n state('void', customStyle ? customStyle : style({ transform: 'translateY(20px)', opacity: 0 })),\r\n transition(':enter, :leave', [\r\n animate(duration)\r\n ])\r\n ]);\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Injector,\r\n Input,\r\n Optional,\r\n Self,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { fadeDownAnimation } from '../../animations/ngt-angular-animations';\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { Size } from '../../enums/size.enum';\r\nimport { getEnumFromString } from '../../helpers/enum/enum';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-sidenav',\r\n templateUrl: './ngt-sidenav.component.html',\r\n styleUrls: ['./ngt-sidenav.component.css'],\r\n animations: [\r\n fadeDownAnimation('fadeDownAnimation', 600)\r\n ],\r\n})\r\n\r\nexport class NgtSidenavComponent implements AfterViewInit {\r\n @ViewChild('sideMenu', { static: true }) public sideMenuRef: ElementRef;\r\n @ViewChild('container', { static: true }) public containerRef: ElementRef;\r\n\r\n @Input() public size: Size = Size.XS;\r\n @Input() public initVisible: boolean = false;\r\n @Input() public closeMenuOnMobileView: boolean = true;\r\n\r\n public visible: boolean = false;\r\n public open: boolean = false;\r\n public isMenuContracted: boolean = false;\r\n public ngtStyle: NgtStylizableService;\r\n\r\n private screenWidth: number;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStyleDirective: NgtStylizableDirective,\r\n ) {\r\n if (this.ngtStyleDirective) {\r\n this.ngtStyle = this.ngtStyleDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'Sidenav', {\r\n h: 'md:h-auto h-screen',\r\n color: {}\r\n });\r\n\r\n this.bindScreenSize();\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n public bindScreenSize(event?) {\r\n this.screenWidth = window.innerWidth;\r\n }\r\n\r\n public ngAfterViewInit() {\r\n if (this.initVisible) {\r\n setTimeout(() => {\r\n this.visible = true;\r\n });\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.size) {\r\n this.size = getEnumFromString(changes.size.currentValue, Size);\r\n }\r\n }\r\n\r\n public toggleMenu() {\r\n if (this.open) {\r\n this.closeMenu();\r\n } else {\r\n this.openMenu();\r\n }\r\n }\r\n\r\n public closeMenu() {\r\n this.open = false;\r\n }\r\n\r\n public openMenu() {\r\n this.open = true;\r\n }\r\n\r\n public getNavSize() {\r\n switch (this.size) {\r\n case Size.AUTO: return 'md:w-auto w-4/12';\r\n case Size.XS: return 'md:w-1/12 w-4/12';\r\n case Size.SM: return 'md:w-2/12 w-5/12';\r\n case Size.MD: return 'md:w-4/12 w-6/12';\r\n case Size.XL: return 'md:w-6/12 w-full';\r\n case Size.FULL: return 'w-full';\r\n }\r\n }\r\n\r\n public getContainerSize() {\r\n if (!this.visible) {\r\n return 'w-full';\r\n }\r\n\r\n if (this.isMobileView()) {\r\n return 'w-full';\r\n }\r\n\r\n switch (this.size) {\r\n case Size.AUTO: return 'w-full';\r\n case Size.XS: return 'md:w-11/12 w-full';\r\n case Size.SM: return 'md:w-10/12 w-full';\r\n case Size.MD: return 'md:w-8/12 w-full';\r\n case Size.XL: return 'md:w-6/12 w-full';\r\n case Size.FULL: return 'w-full';\r\n }\r\n }\r\n\r\n public toggleMenuSize(size: Size) {\r\n if (this.isMenuContracted) {\r\n this.size = size;\r\n this.isMenuContracted = false;\r\n } else {\r\n this.size = Size.AUTO;\r\n this.isMenuContracted = true;\r\n }\r\n }\r\n\r\n public isMobileView() {\r\n if (!this.closeMenuOnMobileView) {\r\n return false;\r\n }\r\n\r\n return this.screenWidth < 1024;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtSidenavComponent } from './ngt-sidenav.component';\r\n\r\n@NgModule({\r\n declarations: [NgtSidenavComponent],\r\n exports: [NgtSidenavComponent],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class NgtSidenavModule { }\r\n","import { Component, ElementRef, Injector, Input, Optional, Self, ViewChild } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-header-nav',\r\n templateUrl: './ngt-header-nav.component.html',\r\n styleUrls: ['./ngt-header-nav.component.css']\r\n})\r\nexport class NgtHeaderNavComponent {\r\n @ViewChild('element', { static: true }) public element: ElementRef;\r\n\r\n @Input() public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective\r\n ) {\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'HeaderNav', {\r\n h: 'h-auto',\r\n color: {}\r\n });\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this.element.nativeElement.classList.add('tail-animate-fade-up');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgtHeaderNavComponent } from './ngt-header-nav.component';\r\n\r\n@NgModule({\r\n declarations: [NgtHeaderNavComponent],\r\n exports: [NgtHeaderNavComponent],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class NgtHeaderNavModule { }\r\n","import { Component, Injector, Input, Optional, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-content',\r\n templateUrl: './ngt-content.component.html',\r\n styleUrls: ['./ngt-content.component.css']\r\n})\r\nexport class NgtContentComponent {\r\n @Input() public ngtStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private tailStylizableDirective: NgtStylizableDirective\r\n ) {\r\n if (this.tailStylizableDirective) {\r\n this.ngtStyle = this.tailStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'Content', {\r\n color: {}\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgtContentComponent } from './ngt-content.component';\r\n\r\n@NgModule({\r\n declarations: [NgtContentComponent],\r\n exports: [NgtContentComponent],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class NgtContentModule { }\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, EventEmitter, Injector, Input, Optional, Output, Self } from '@angular/core';\r\n\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\n\r\n@Component({\r\n selector: 'ngt-section',\r\n templateUrl: './ngt-section.component.html',\r\n styleUrls: ['./ngt-section.component.css'],\r\n animations: [\r\n trigger('enterAnimation', [\r\n state('void', style({ transform: 'translateY(-20px)', opacity: 0 })),\r\n transition(':enter', [\r\n animate(400)\r\n ])\r\n ]),\r\n ]\r\n})\r\nexport class NgtSectionComponent {\r\n @Input() public icon: string;\r\n @Input() public caption: string;\r\n @Input() public subtitle: string;\r\n @Input() public accordion = false;\r\n @Input() public showSection = true;\r\n @Input() public helpTitle: string = '';\r\n @Input() public helpText: string = '';\r\n @Input() public helpIconColor: string = '';\r\n\r\n @Output() public onToggleSection: EventEmitter<any> = new EventEmitter();\r\n\r\n public ngtSectionStyle: NgtStylizableService;\r\n public ngtCaptionStyle: NgtStylizableService;\r\n public ngtSubtitleStyle: NgtStylizableService;\r\n\r\n public constructor(\r\n private injector: Injector,\r\n @Self() @Optional() private ngtStylizableDirective: NgtStylizableDirective\r\n ) {\r\n this.ngtCaptionStyle = new NgtStylizableService();\r\n this.ngtSubtitleStyle = new NgtStylizableService();\r\n\r\n if (this.ngtStylizableDirective) {\r\n this.ngtSectionStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtSectionStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtSectionStyle.load(this.injector, 'NgtSection', {\r\n h: 'h-12',\r\n w: 'w-12',\r\n my: 'my-1',\r\n pr: 'pr-1',\r\n px: 'md:px-5',\r\n color: {\r\n text: 'text-gray-800'\r\n }\r\n });\r\n\r\n this.ngtCaptionStyle.load(this.injector, 'NgtSectionCaption', {\r\n text: 'text-sm',\r\n font: 'font-normal',\r\n ml: 'ml-2',\r\n pb: 'pb-2',\r\n border: 'border-none',\r\n color: {\r\n text: 'text-gray-800',\r\n border: ''\r\n }\r\n });\r\n\r\n this.ngtSubtitleStyle.load(this.injector, 'NgtSectionSubtitle', {\r\n text: 'text-xs',\r\n font: 'font-normal',\r\n border: 'border-none',\r\n ml: 'ml-2',\r\n color: {\r\n text: 'text-gray-500',\r\n border: ''\r\n }\r\n });\r\n }\r\n\r\n public open() {\r\n this.showSection = true;\r\n this.onToggleSection.emit(this.showSection);\r\n }\r\n\r\n public close() {\r\n this.showSection = false;\r\n this.onToggleSection.emit(this.showSection);\r\n }\r\n\r\n public toggle() {\r\n this.showSection = !this.showSection;\r\n this.onToggleSection.emit(this.showSection);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\r\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\r\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\r\nimport { NgtSectionComponent } from './ngt-section.component';\r\n\r\n@NgModule({\r\n declarations: [NgtSectionComponent],\r\n exports: [NgtSectionComponent],\r\n imports: [\r\n CommonModule,\r\n NgtStylizableModule,\r\n NgtSvgModule,\r\n NgtHelperModule\r\n ]\r\n})\r\nexport class NgtSectionModule { }\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Host,\r\n HostListener,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n Self,\r\n SimpleChanges,\r\n SkipSelf,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { AbstractControl, ControlContainer, NgForm } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\r\nimport { NgtStylizableDirective } from '../../directives/ngt-stylizable/ngt-stylizable.directive';\r\nimport { uuid } from '../../helpers/uuid';\r\nimport { NgtHttpPagination, NgtHttpResponse, NgtHttpService } from '../../services/http/ngt-http.service';\r\nimport { NgtTranslateService } from '../../services/http/ngt-translate.service';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtFormComponent } from '../ngt-form/ngt-form.component';\r\nimport { NgtInputComponent } from '../ngt-input/ngt-input.component';\r\n\r\n@Component({\r\n selector: 'ngt-multi-select',\r\n templateUrl: './ngt-multi-select.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n styleUrls: ['./ngt-multi-select.component.css'],\r\n providers: [\r\n NgtMakeProvider(NgtMultiSelectComponent)\r\n ],\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: NgForm }\r\n ]\r\n})\r\nexport class NgtMultiSelectComponent extends NgtBaseNgModel implements OnInit, OnDestroy, OnChanges {\r\n @ViewChild('containerRef') public containerRef: ElementRef;\r\n @ViewChild('inputSearch') public inputSearch: NgtInputComponent;\r\n @ViewChild('elementCheckboxTemplate') public elementCheckboxTemplate: TemplateRef<any>;\r\n\r\n /** Visual */\r\n @Input() public customOptionTemplate: TemplateRef<any>;\r\n @Input() public customHeaderTemplate: TemplateRef<any>;\r\n @Input() public label: string;\r\n @Input() public helpTitle: string;\r\n @Input() public helpText: string;\r\n @Input() public helpTextColor: string = 'text-green-500';\r\n @Input() public shining: boolean = false;\r\n @Input() public loading: boolean = false;\r\n\r\n /** Behavior */\r\n @Input() public bindLabel: string | Function = 'name';\r\n @Input() public bindSearch: string = 'name';\r\n @Input() public itemsPerPage: number = 15;\r\n @Input() public name: string;\r\n @Input() public remoteResource: any;\r\n @Input() public items: Array<any> = [];\r\n @Input() public searchable: boolean = true;\r\n\r\n /** Validation */\r\n @Input() public isRequired: boolean;\r\n @Input() public isDisabled: boolean;\r\n\r\n @Output() public onDataChange: EventEmitter<Array<NgtSelectContainerSelectableElementInterface>> = new EventEmitter();\r\n\r\n public searchTerm: string = '';\r\n public searchInputName: string = uuid();\r\n\r\n public selectAllCheckboxName: string = uuid();\r\n public displayOnlySelectedName: string = uuid();\r\n\r\n public selectedElements: Array<NgtSelectContainerSelectableElementInterface> = [];\r\n public itemsTotal: number;\r\n public selectAllCheckbox: boolean;\r\n public displayOnlySelected: boolean;\r\n\r\n public nativeName: string = uuid();\r\n public nativeValue: any;\r\n\r\n public ngtStyle: NgtStylizableService;\r\n public selectableElements: Array<NgtSelectContainerSelectableElementInterface> = [];\r\n public selectableElementsOnSearch: Array<NgtSelectContainerSelectableElementInterface> = [];\r\n public componentReady: boolean;\r\n\r\n private pagination: NgtHttpPagination = {\r\n count: null,\r\n page: 1,\r\n pages: null,\r\n total: null,\r\n from: null,\r\n to: null,\r\n per_page: null\r\n };\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n private inSearch: boolean;\r\n private searchTimeout: any;\r\n private previousSearchTerm: string = '';\r\n private becameVisible: boolean;\r\n\r\n public constructor(\r\n private ngtHttpService: NgtHttpService,\r\n private injector: Injector,\r\n private changeDetector: ChangeDetectorRef,\r\n\r\n @Optional() @Self()\r\n public ngtStylizableDirective: NgtStylizableDirective,\r\n\r\n @Optional() @Host()\r\n public formContainer: ControlContainer,\r\n\r\n @Optional() @SkipSelf()\r\n public ngtFormComponent: NgtFormComponent,\r\n\r\n @Optional()\r\n public ngtTranslateService: NgtTranslateService\r\n ) {\r\n super();\r\n\r\n if (this.ngtFormComponent) {\r\n this.shining = this.ngtFormComponent.isShining();\r\n\r\n this.subscriptions.push(\r\n this.ngtFormComponent.onShiningChange.subscribe((shining: boolean) => {\r\n this.shining = shining;\r\n })\r\n );\r\n }\r\n\r\n if (this.ngtStylizableDirective) {\r\n this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();\r\n } else {\r\n this.ngtStyle = new NgtStylizableService();\r\n }\r\n\r\n this.ngtStyle.load(this.injector, 'NgtMultiSelect', { h: 'h-64' });\r\n }\r\n\r\n @HostListener('scroll', ['$event'])\r\n public onScroll(event: any): void {\r\n const isScrollEnd = event.target.scrollTop && event.target.offsetHeight + event.target.scrollTop >= (event.target.scrollHeight - 30);\r\n\r\n if (isScrollEnd && !this.loading && !this.displayOnlySelected && this.selectableElements?.length\r\n && this.pagination.per_page < this.pagination.total) {\r\n const currentPerPage = typeof this.pagination.per_page === 'string'\r\n ? Number.parseInt(this.pagination.per_page)\r\n : this.pagination.per_page;\r\n\r\n setTimeout(() => this.loadData(currentPerPage + this.itemsPerPage, this.searchTerm));\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (!this.formContainer) {\r\n console.error(\"The element must be inside a <form #form='ngForm'> tag!\");\r\n }\r\n\r\n if (!this.name) {\r\n console.error(\"The element must contain a name attribute!\");\r\n }\r\n }\r\n\r\n public ngDoCheck(): void {\r\n if (!this.becameVisible && !this.isHidden()) {\r\n this.becameVisible = true;\r\n\r\n this.loadData().then(() => this.initComponentValidation());\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.isRequired && this.componentReady) {\r\n this.updateValidations();\r\n }\r\n\r\n if (changes.isDisabled) {\r\n this.displayOnlySelected = changes.isDisabled.currentValue;\r\n }\r\n\r\n if (changes.items) {\r\n this.bindSelectableElements(changes.items.currentValue);\r\n this.componentReady = true;\r\n }\r\n\r\n if (changes.remoteResource && this.becameVisible) {\r\n this.loadData().then(() => this.initComponentValidation());\r\n }\r\n\r\n if (changes.itemsPerPage) {\r\n this.pagination.per_page = changes.itemsPerPage.currentValue;\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public setFocus(): void {\r\n setTimeout(() => this.inputSearch.setFocus());\r\n }\r\n\r\n public refresh(): void {\r\n this.loadData(this.itemsPerPage, this.searchTerm);\r\n }\r\n\r\n public reset(): void {\r\n this.value = [];\r\n this.nativeValue = [];\r\n this.selectedElements = [];\r\n this.refresh();\r\n }\r\n\r\n public selectAll(): void {\r\n if (!this.loading && !this.isDisabled) {\r\n this.selectAllCheckbox = !this.selectAllCheckbox;\r\n\r\n this.value = [];\r\n this.nativeValue = [];\r\n this.selectedElements = [];\r\n\r\n this.loadData(this.selectAllCheckbox ? this.pagination.total : this.itemsPerPage)\r\n .then(() => {\r\n this.containerRef?.nativeElement?.scrollTo({ top: 0 });\r\n this.selectableElements.forEach(element => element.isSelected = this.selectAllCheckbox);\r\n\r\n if (this.selectAllCheckbox) {\r\n this.selectedElements = this.selectableElements;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onNativeChange(selectableElement: NgtSelectContainerSelectableElementInterface): void {\r\n if (this.componentReady) {\r\n this.handleElementSelection(selectableElement);\r\n\r\n if (this.hasChangesBetweenBindings(this.value, this.selectedElements)) {\r\n this.value = this.selectedElements.map(e => e.value);\r\n }\r\n }\r\n }\r\n\r\n public change(selectedElements: Array<any>): void {\r\n if (this.hasChangesBetweenBindings(selectedElements, this.selectedElements)) {\r\n if (this.selectableElements?.length) {\r\n this.bindSelectedElements(selectedElements);\r\n\r\n this.selectableElements.filter(element => this.isSelectedElement(element))\r\n .forEach(element => element.isSelected = true);\r\n\r\n this.selectableElementsOnSearch.filter(element => this.isSelectedElement(element))\r\n .forEach(element => element.isSelected = true);\r\n } else {\r\n this.selectedElements = selectedElements?.map(\r\n element => ({ uuid: uuid(), isSelected: true, value: element })\r\n ) ?? [];\r\n\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n if (!selectedElements?.length) {\r\n this.markAsPristine();\r\n }\r\n }\r\n }\r\n\r\n public toggleItem(event: Event, selectableElement: NgtSelectContainerSelectableElementInterface): void {\r\n event.stopImmediatePropagation();\r\n\r\n if (!this.isDisabled) {\r\n selectableElement.isSelected = !selectableElement.isSelected;\r\n\r\n this.handleElementSelection(selectableElement);\r\n }\r\n }\r\n\r\n public search(term: string): void {\r\n if (!this.componentReady || term === undefined || term === null || term === this.previousSearchTerm) {\r\n return;\r\n }\r\n\r\n if (this.searchTimeout) {\r\n clearTimeout(this.searchTimeout);\r\n }\r\n\r\n this.searchTimeout = setTimeout(() => {\r\n this.previousSearchTerm = term;\r\n\r\n if (!term) {\r\n this.inSearch = false;\r\n\r\n if (this.items?.length) {\r\n return;\r\n }\r\n }\r\n\r\n this.inSearch = true;\r\n\r\n if (this.items?.length) {\r\n this.selectableElementsOnSearch = this.selectableElements.filter(\r\n item => this.getSelectableElementValue(item).includes(term)\r\n );\r\n } else {\r\n this.loadData(this.itemsPerPage, term);\r\n }\r\n }, 500);\r\n }\r\n\r\n public getSelectableElements(): Array<any> {\r\n if (this.inSearch && this.items?.length) {\r\n return this.selectableElementsOnSearch;\r\n } else if (this.displayOnlySelected) {\r\n return this.selectedElements;\r\n }\r\n\r\n return this.selectableElements;\r\n }\r\n\r\n public getSelectableElementValue(selectableItem: any): string {\r\n if (typeof this.bindLabel === 'function') {\r\n return this.bindLabel(selectableItem.value);\r\n } else if (typeof selectableItem.value['getAttribute'] === 'function') {\r\n return selectableItem.value.getAttribute(this.bindLabel);\r\n }\r\n\r\n return selectableItem.value[this.bindLabel];\r\n }\r\n\r\n public hasValidationErrors(): boolean {\r\n return this.formControl?.errors && (\r\n this.formControl.dirty || (this.formContainer && this.formContainer['submitted'])\r\n );\r\n }\r\n\r\n private handleElementSelection(selectableElement: NgtSelectContainerSelectableElementInterface): void {\r\n if (selectableElement.isSelected && !this.isSelectedElement(selectableElement)) {\r\n this.selectedElements.push(selectableElement);\r\n } else if (!selectableElement.isSelected && this.isSelectedElement(selectableElement)) {\r\n this.selectedElements = this.selectedElements.filter(\r\n selectedElement => selectedElement.uuid !== selectableElement.uuid\r\n );\r\n\r\n if (this.displayOnlySelected && !this.selectedElements.length) {\r\n this.displayOnlySelected = false;\r\n }\r\n }\r\n }\r\n\r\n private async loadData(perpage: number = this.itemsPerPage, searchTerm?: string): Promise<void> {\r\n return new Promise<void>((resolve, reject) => {\r\n if (this.remoteResource) {\r\n if (perpage == this.itemsPerPage) {\r\n this.containerRef?.nativeElement?.scrollTo({ top: 0 });\r\n }\r\n\r\n this.selectableElements = [];\r\n this.loading = true;\r\n\r\n const pagination: NgtHttpPagination = { ...this.pagination, ...{ per_page: perpage } };\r\n const filters = searchTerm ? { [this.bindSearch]: searchTerm } : null;\r\n\r\n this.subscriptions.push(\r\n this.ngtHttpService.get(\r\n this.remoteResource, filters, pagination\r\n ).subscribe(\r\n (response: NgtHttpResponse) => {\r\n this.bindSelectableElements(response.data);\r\n this.pagination = response.meta.pagination;\r\n\r\n this.itemsTotal = this.pagination.total;\r\n this.loading = false;\r\n\r\n this.onDataChange.emit(this.selectableElements);\r\n this.componentReady = true;\r\n this.changeDetector.detectChanges();\r\n\r\n setTimeout(() => this.displayOnlySelected = this.isDisabled);\r\n\r\n resolve();\r\n },\r\n (error) => {\r\n console.error(error);\r\n this.loading = false;\r\n this.changeDetector.detectChanges();\r\n\r\n reject();\r\n }\r\n )\r\n );\r\n } else {\r\n console.error('The property [remoteResource] needs to be present to be able to make remote search');\r\n }\r\n });\r\n }\r\n\r\n private bindSelectableElements(data: Array<any>): void {\r\n const formattedElements: Array<NgtSelectContainerSelectableElementInterface> = [];\r\n\r\n data.forEach(item => {\r\n const alreadySelected = this.findSelectedElement(item);\r\n\r\n if (alreadySelected) {\r\n formattedElements.push(alreadySelected);\r\n } else {\r\n formattedElements.push({ uuid: uuid(), isSelected: false, value: item });\r\n }\r\n });\r\n\r\n this.selectableElements = formattedElements;\r\n }\r\n\r\n private bindSelectedElements(selectedElements: Array<any>): void {\r\n this.selectableElements.forEach(selectableElement => {\r\n const shouldBeSelected: boolean = !!selectedElements?.find(\r\n selectedElement => this.compareWith(selectedElement, selectableElement.value)\r\n );\r\n\r\n if (shouldBeSelected) {\r\n selectableElement.isSelected = true;\r\n this.handleElementSelection(selectableElement);\r\n }\r\n });\r\n }\r\n\r\n private initComponentValidation(): void {\r\n if (this.formContainer?.control && (this.formControl = this.formContainer.control.get(this.name))) {\r\n this.formControl = this.formContainer.control.get(this.name);\r\n this.markAsPristine();\r\n this.updateValidations();\r\n }\r\n }\r\n\r\n private updateValidations(): void {\r\n const syncValidators = [];\r\n\r\n if (this.isRequired) {\r\n syncValidators.push(this.isRequiredValidator());\r\n }\r\n\r\n setTimeout(() => {\r\n this.formControl.setValidators(syncValidators);\r\n this.formControl.updateValueAndValidity();\r\n });\r\n }\r\n\r\n private isRequiredValidator(): any {\r\n return (control: AbstractControl) => {\r\n if (Array.isArray(this.value) && this.value.length > 0) {\r\n return null;\r\n }\r\n\r\n return { 'required': true };\r\n };\r\n }\r\n\r\n private findSelectedElement(item: any): any {\r\n return this.selectedElements.find(selectedElement => this.compareWith(selectedElement.value, item));\r\n }\r\n\r\n private compareWith(a: any, b: any): boolean {\r\n if (typeof a['getApiId'] === 'function' && typeof b['getApiId'] === 'function') {\r\n return a.getApiId() == b.getApiId();\r\n } else if (a.id && b.id) {\r\n return a.id == b.id;\r\n }\r\n\r\n return JSON.stringify(a) === JSON.stringify(b);\r\n }\r\n\r\n private hasChangesBetweenBindings(value: Array<any>, nativeValue: Array<any>): boolean {\r\n if (value?.length && !value[0].uuid) {\r\n nativeValue = nativeValue.map(element => element.value);\r\n }\r\n\r\n return JSON.stringify(value) !== JSON.stringify(nativeValue);\r\n }\r\n\r\n private isSelectedElement(selectableElement: NgtSelectContainerSelectableElementInterface): boolean {\r\n return !!this.selectedElements.find(selectedElement => selectedElement.uuid === selectableElement.uuid);\r\n }\r\n\r\n private isHidden(): boolean {\r\n return !this.containerRef?.nativeElement.offsetParent;\r\n }\r\n\r\n private destroySubscriptions(): void {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n\r\nexport interface NgtSelectContainerSelectableElementInterface {\r\n uuid: string;\r\n isSelected: boolean;\r\n value: any;\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { NgtStylizableModule } from '../../directives/ngt-stylizable/ngt-stylizable.module';\r\nimport { NgtCheckboxModule } from '../ngt-checkbox/ngt-checkbox.module';\r\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\r\nimport { NgtInputModule } from '../ngt-input/ngt-input.module';\r\nimport { NgtShiningModule } from '../ngt-shining/ngt-shining.module';\r\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\r\nimport { NgtMultiSelectComponent } from './ngt-multi-select.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n NgtMultiSelectComponent\r\n ],\r\n exports: [\r\n NgtMultiSelectComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgtValidationModule,\r\n NgtShiningModule,\r\n NgtHelperModule,\r\n NgtInputModule,\r\n NgtCheckboxModule,\r\n NgtStylizableModule\r\n ]\r\n})\r\nexport class NgtMultiSelectModule { }\r\n","import { Observable } from 'rxjs';\r\n\r\nexport abstract class NgtAttachmentHttpService {\r\n abstract preview(attachment: any): Observable<NgtAttachmentHttpResponse>;\r\n\r\n abstract thumbnail(attachment: any): Observable<NgtAttachmentHttpResponse>;\r\n\r\n abstract download(attachment: any): Observable<any>;\r\n\r\n abstract upload(remoteResource: any, file: any): Observable<any>;\r\n}\r\n\r\nexport interface NgtAttachmentHttpResponse {\r\n data?: any;\r\n}\r\n","import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ngt-dropzone-file-viewer',\r\n styleUrls: ['./ngt-dropzone-file-viewer.component.css'],\r\n templateUrl: './ngt-dropzone-file-viewer.component.html'\r\n})\r\nexport class NgtDropzoneFileViewerComponent {\r\n @Input() public url: string = '';\r\n @Input() public fileName: string = '';\r\n @Output() public onClose: EventEmitter<any> = new EventEmitter();\r\n\r\n public canShowViewer: boolean = false;\r\n\r\n public constructor() { }\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n public keyEvent(event: KeyboardEvent) {\r\n if (event.code == 'Escape') {\r\n this.canShowViewer = false;\r\n setTimeout(() => {\r\n this.onClose.emit();\r\n }, 500);\r\n }\r\n }\r\n\r\n public init() {\r\n this.canShowViewer = true;\r\n }\r\n\r\n public close() {\r\n this.canShowViewer = false;\r\n this.onClose.emit();\r\n }\r\n\r\n public downloadFile() {\r\n let file = document.createElement(\"a\");\r\n\r\n file.target = '_blank';\r\n file.href = this.url;\r\n file.setAttribute(\"download\", this.fileName);\r\n file.click();\r\n }\r\n}\r\n","import {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Host,\r\n Injector,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n SimpleChanges,\r\n SkipSelf,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { ControlContainer, NgForm, Validators } from '@angular/forms';\r\nimport { NgxDropzoneChangeEvent, NgxDropzoneComponent } from 'ngx-dropzone';\r\nimport { forkJoin, Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport Viewer from 'viewerjs';\r\n\r\nimport { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';\r\nimport { getEnumFromString } from '../../helpers/enum/enum';\r\nimport { NgtAttachmentHttpService } from '../../services/http/ngt-attachment-http.service';\r\nimport { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';\r\nimport { NgtDropzoneFileViewerComponent } from './ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\r\n\r\nexport interface NgtDropzoneFile {\r\n downloadUrl: string;\r\n previewUrl: string;\r\n thumbnailUrl: string;\r\n name: string;\r\n mimeType: string;\r\n fileSize: any;\r\n};\r\n\r\nexport enum NgtDropzoneFileTypeEnum {\r\n DOC = 'DOC',\r\n PDF = 'PDF',\r\n XLS = 'XLS',\r\n OTHER = 'OTHER'\r\n}\r\n\r\nexport enum NgtDropzonePreviewType {\r\n DEFAULT = 'DEFAULT',\r\n IMAGE = 'IMAGE',\r\n VIDEO = 'VIDEO'\r\n}\r\n\r\nexport enum NgtDropzoneErrorType {\r\n DEFAULT = 'DEFAULT',\r\n SIZE = 'SIZE',\r\n NO_MULTIPLE = 'NO_MULTIPLE',\r\n ITEMS_LIMIT = 'ITEMS_LIMIT',\r\n TYPE = 'TYPE'\r\n}\r\n\r\n@Component({\r\n selector: 'ngt-dropzone',\r\n templateUrl: './ngt-dropzone.component.html',\r\n styleUrls: ['./ngt-dropzone.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n NgtMakeProvider(NgtDropzoneComponent),\r\n ],\r\n viewProviders: [\r\n { provide: ControlContainer, useExisting: NgForm }\r\n ]\r\n})\r\nexport class NgtDropzoneComponent extends NgtBaseNgModel implements OnInit, OnDestroy, AfterContentChecked {\r\n @ViewChild('container') public container: ElementRef;\r\n @ViewChild('ngxDropzone', { static: true }) public ngxDropzone: NgxDropzoneComponent;\r\n @ViewChild(NgtDropzoneFileViewerComponent, { static: true }) public ngtDropzoneFileViewer: NgtDropzoneFileViewerComponent;\r\n\r\n // Visual\r\n @Input() public label: string;\r\n @Input() public placeholder: string;\r\n @Input() public helpTextColor: string = 'text-green-500';\r\n @Input() public helpText: string;\r\n @Input() public helpTitle: string;\r\n\r\n // Behavior\r\n @Input() public resources: Array<NgtDropzoneFile> = [];\r\n @Input() public multipleSelection: boolean = false;\r\n @Input() public itemsLimit: number;\r\n @Input() public showFileName: boolean = false;\r\n @Input() public disableClick: boolean = false;\r\n @Input() public disabled: boolean = false;\r\n @Input() public viewMode: boolean = false;\r\n @Input() public removable: boolean = false;\r\n @Input() public verticalExpandable: boolean = false;\r\n @Input() public acceptedFiles: string = '*' /** Mime type */;\r\n @Input() public maxFileSize: number; /** Bytes */\r\n @Input() public previewType: NgtDropzonePreviewType = NgtDropzonePreviewType.DEFAULT;\r\n @Input() public isRequired: boolean = false;\r\n @Input() public name: string;\r\n @Input() public remoteResource: any;\r\n\r\n @Output() public onFileSelected: EventEmitter<NgxDropzoneChangeEvent> = new EventEmitter();\r\n @Output() public onFileSelectError: EventEmitter<NgtDropzoneErrorType> = new EventEmitter();\r\n @Output() public onFileUploadFail: EventEmitter<any> = new EventEmitter();\r\n @Output() public onFileRemoved = new EventEmitter();\r\n @Output() public onFileUploaded = new EventEmitter();\r\n @Output() public onFilePreviewLoaded = new EventEmitter();\r\n\r\n public dropzoneHeight: string = '180px';\r\n public uploadedResources = [];\r\n public forceDisableClick: boolean = false;\r\n public nativeValue = [];\r\n public showNgtDropzoneFileViewer: boolean = false;\r\n public componentReady = false;\r\n public loading: boolean = false;\r\n public ngtDropzoneLoaderStyle: NgtStylizableService;\r\n public imageViewerOptions: any = {\r\n navbar: true,\r\n toolbar: {\r\n zoomIn: true,\r\n zoomOut: true,\r\n reset: true,\r\n rotateLeft: true,\r\n rotateRight: true,\r\n prev: true,\r\n next: true,\r\n }\r\n };\r\n\r\n private subscriptions: Array<Subscription> = [];\r\n\r\n public constructor(\r\n @Optional() @Host()\r\n public formContainer: ControlContainer,\r\n @Optional() @SkipSelf()\r\n private ngtAttachmentHttpService: NgtAttachmentHttpService,\r\n private injector: Injector,\r\n private changeDetector: ChangeDetectorRef,\r\n ) {\r\n super();\r\n\r\n this.ngtDropzoneLoaderStyle = new NgtStylizableService();\r\n\r\n this.ngtDropzoneLoaderStyle.load(this.injector, 'NgtDropzoneLoader', {\r\n h: 'h-8',\r\n color: {\r\n text: 'text-gray-600'\r\n }\r\n });\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.previewType) {\r\n this.previewType = getEnumFromString(changes.previewType.currentValue, NgtDropzonePreviewType);\r\n }\r\n }\r\n\r\n public ngAfterContentChecked() {\r\n if (this.container && this.container.nativeElement) {\r\n this.dropzoneHeight = `${this.container.nativeElement.parentElement.offsetHeight}px`;\r\n\r\n this.changeDetector.detectChanges();\r\n }\r\n }\r\n\r\n public ngOnInit() {\r\n setTimeout(() => {\r\n this.componentReady = true;\r\n\r\n setTimeout(() => {\r\n this.initComponent();\r\n });\r\n }, 500);\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.destroySubscriptions();\r\n }\r\n\r\n public onImageClick(element, index?) {\r\n if (!this.viewMode) {\r\n this.forceDisableClick = true;\r\n }\r\n\r\n const ngtDropzoneComponent = this;\r\n\r\n if (index) {\r\n this.imageViewerOptions = { ...this.imageViewerOptions, ...{ initialViewIndex: index } };\r\n }\r\n\r\n const viewer = new Viewer(element, {\r\n ...this.imageViewerOptions, ...{\r\n hidden() {\r\n ngtDropzoneComponent.forceDisableClick = false;\r\n viewer.destroy();\r\n }\r\n }\r\n });\r\n\r\n viewer.show();\r\n }\r\n\r\n public onFileClick(url, name) {\r\n this.forceDisableClick = true;\r\n this.showNgtDropzoneFileViewer = true;\r\n this.ngtDropzoneFileViewer.url = url;\r\n this.ngtDropzoneFileViewer.fileName = name;\r\n this.ngtDropzoneFileViewer.init();\r\n\r\n this.subscriptions.push(this.ngtDropzoneFileViewer.onClose.subscribe(() => {\r\n this.showNgtDropzoneFileViewer = false;\r\n this.forceDisableClick = false;\r\n }));\r\n }\r\n\r\n public async onSelect(event: NgxDropzoneChangeEvent) {\r\n if (event.rejectedFiles.length) {\r\n for (const rejectedFile of <any>event.rejectedFiles) {\r\n if (rejectedFile.reason == 'size') {\r\n this.onFileSelectError.emit(NgtDropzoneErrorType.SIZE);\r\n break;\r\n } else if (rejectedFile.reason == 'no_multiple') {\r\n this.onFileSelectError.emit(NgtDropzoneErrorType.NO_MULTIPLE);\r\n break;\r\n } else if (rejectedFile.reason == 'type') {\r\n this.onFileSelectError.emit(NgtDropzoneErrorType.TYPE);\r\n break;\r\n } else {\r\n this.onFileSelectError.emit(NgtDropzoneErrorType.DEFAULT);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (this.itemsLimit) {\r\n if (this.itemsLimit == 1 && event.addedFiles\r\n && event.addedFiles.length == this.itemsLimit && this.uploadedResources.length == this.itemsLimit) {\r\n this.uploadedResources = [];\r\n }\r\n\r\n if (event.addedFiles\r\n && event.addedFiles.length + this.uploadedResources.length <= this.itemsLimit) {\r\n this.onFileSelected.emit(event);\r\n this.uploadFiles(event.addedFiles);\r\n } else {\r\n this.onFileSelectError.emit(NgtDropzoneErrorType.ITEMS_LIMIT);\r\n }\r\n } else {\r\n this.onFileSelected.emit(event);\r\n this.uploadFiles(event.addedFiles);\r\n }\r\n }\r\n\r\n public async uploadFiles(files: Array<File>) {\r\n if (files && files.length) {\r\n let temporaryFiles = [];\r\n let temporaryAttachments = [];\r\n let observables = [];\r\n\r\n this.loading = true;\r\n\r\n files.forEach(file => {\r\n observables.push(this.ngtAttachmentHttpService.upload(this.remoteResource, file).pipe(\r\n map((response: any) => {\r\n if (response && response.data) {\r\n if (response.data.attributes && response.data.attributes.data) {\r\n file['url'] = response.data.attributes.data.url;\r\n }\r\n\r\n temporaryFiles.push({\r\n id: response.data.id,\r\n size: file.size,\r\n file: file\r\n });\r\n response.data['loaded'] = true;\r\n temporaryAttachments.push(response.data);\r\n }\r\n })\r\n ));\r\n });\r\n\r\n this.subscriptions.push(\r\n forkJoin(observables).subscribe(\r\n (response) => {\r\n this.uploadedResources.push(...temporaryFiles);\r\n\r\n if (this.itemsLimit == 1) {\r\n this.onNativeChange([...temporaryAttachments]);\r\n } else {\r\n this.onNativeChange([...temporaryAttachments, ...this.nativeValue]);\r\n }\r\n\r\n this.onFileUploaded.emit();\r\n this.loading = false;\r\n },\r\n (error) => {\r\n this.onFileUploadFail.emit(error);\r\n this.loading = false;\r\n })\r\n );\r\n }\r\n }\r\n\r\n public async loadFilePreview(attachments: any) {\r\n if (attachments && attachments.length && attachments[0]) {\r\n let temporaryResource = [];\r\n let observables = [];\r\n\r\n attachments.forEach(attachment => {\r\n if (!(attachment instanceof File) && !attachment.loaded) {\r\n this.loading = true;\r\n attachment['loaded'] = true;\r\n observables.push(this.ngtAttachmentHttpService.thumbnail(attachment).pipe(\r\n map((response: any) => {\r\n temporaryResource.push({\r\n id: response.data.getApiId(),\r\n file: response.data.getAttribute('file')\r\n });\r\n })\r\n ));\r\n }\r\n });\r\n\r\n this.subscriptions.push(\r\n forkJoin(observables).subscribe(\r\n (response) => {\r\n this.uploadedResources.push(...temporaryResource);\r\n this.onNativeChange(attachments);\r\n this.onFilePreviewLoaded.emit();\r\n this.loading = false;\r\n },\r\n (error) => {\r\n this.loading = false;\r\n })\r\n );\r\n }\r\n }\r\n\r\n public onRemove(resource: any) {\r\n this.uploadedResources.splice(this.uploadedResources.indexOf(resource), 1);\r\n this.nativeValue = this.nativeValue.filter(element => element.id != resource.id);\r\n this.onNativeChange(this.nativeValue);\r\n this.onFileRemoved.emit(resource);\r\n }\r\n\r\n public isImage(resource: any) {\r\n return this.previewType == 'IMAGE' || (resource.file && resource.file.type && resource.file.type.includes('image'));\r\n }\r\n\r\n public isVideo(resource: any) {\r\n return this.previewType == 'VIDEO' || (resource.file && resource.file.type && resource.file.type.includes('video'));\r\n }\r\n\r\n public isAudio(resource: any) {\r\n return (resource.file && resource.file.type && resource.file.type.includes('audio'));\r\n }\r\n\r\n public isFile(resource: any) {\r\n return !this.isImage(resource) && !this.isAudio(resource) && !this.isVideo(resource);\r\n }\r\n\r\n public getFormattedFileSize(resource: any) {\r\n if (resource) {\r\n let size = resource.size || resource.fileSize;\r\n\r\n if (!size) {\r\n if (resource.file && resource.file.size) {\r\n size = resource.file.size;\r\n } else {\r\n size = 0;\r\n }\r\n }\r\n\r\n if (parseFloat(size) > 1000000) {\r\n return (parseFloat(size) / 1000000).toFixed(2) + ' Mb';\r\n }\r\n\r\n return Math.round(parseFloat(size) / 1000) + ' Kb';\r\n }\r\n }\r\n\r\n public onNativeChange(value: any) {\r\n if (value === undefined) {\r\n this.value = [];\r\n this.nativeValue = [];\r\n } else {\r\n this.nativeValue = value;\r\n\r\n if (JSON.stringify(this.value) != JSON.stringify(this.nativeValue)) {\r\n this.value = this.nativeValue;\r\n }\r\n }\r\n }\r\n\r\n public change(value: any) {\r\n if (value && !this.viewMode) {\r\n this.onNativeChange(Array.isArray(value) ? value : [value]);\r\n\r\n if (this.componentReady) {\r\n this.loadFilePreview(Array.isArray(value) ? value : [value]);\r\n }\r\n }\r\n }\r\n\r\n public downloadFile(attachment: any) {\r\n this.ngtAttachmentHttpService.download(attachment).subscribe(() => { });\r\n }\r\n\r\n public reset() {\r\n this.uploadedResources = [];\r\n this.value = [];\r\n this.nativeValue = [];\r\n this.initComponent();\r\n }\r\n\r\n public openFileSelector() {\r\n document.getElementById('ngxDropzone').click();\r\n }\r\n\r\n private initComponent() {\r\n if (this.viewMode) {\r\n this.previewType = NgtDropzonePreviewType.DEFAULT;\r\n\r\n return;\r\n }\r\n\r\n if (this.formContainer && this.formContainer.control\r\n && (this.formControl = this.formContainer.control.get(this.name))) {\r\n this.resetFilesLoad();\r\n this.loadFilePreview(Array.isArray(this.value) ? this.value : [this.value]);\r\n this.updateValidations();\r\n\r\n if (this.value) {\r\n this.formControl.markAsDirty();\r\n } else {\r\n this.formControl.markAsPristine();\r\n }\r\n }\r\n }\r\n\r\n private resetFilesLoad() {\r\n if (Array.isArray(this.value)) {\r\n this.value.forEach(element => {\r\n if (element) {\r\n element['loaded'] = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private updateValidations() {\r\n if (!this.formControl) {\r\n return;\r\n }\r\n\r\n let syncValidators = [];\r\n\r\n if (this.isRequired) {\r\n syncValidators.push(Validators.required);\r\n }\r\n\r\n syncValidators.push();\r\n\r\n setTimeout(() => {\r\n this.formControl.setValidators(syncValidators);\r\n this.formControl.updateValueAndValidity();\r\n });\r\n }\r\n\r\n private destroySubscriptions() {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n this.subscriptions = [];\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { NgxDropzonePreviewComponent } from 'ngx-dropzone';\r\n\r\nimport { NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';\r\n\r\n@Component({\r\n selector: 'custom-dropzone-preview',\r\n templateUrl: './custom-dropzone-preview.component.html',\r\n providers: [\r\n {\r\n provide: NgxDropzonePreviewComponent,\r\n useExisting: CustomDropzonePreviewComponent\r\n }\r\n ]\r\n})\r\nexport class CustomDropzonePreviewComponent extends NgxDropzonePreviewComponent implements OnInit {\r\n public fileType: NgtDropzoneFileTypeEnum;\r\n\r\n public constructor(public sanitizer: DomSanitizer) {\r\n super(sanitizer);\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (!this.file) {\r\n console.error('No file to read. Please provide a file using the [file] Input property.');\r\n\r\n return;\r\n }\r\n\r\n this.bindFileType();\r\n }\r\n\r\n private bindFileType(): void {\r\n if (this.file.type.includes('.sheet')) {\r\n this.fileType = NgtDropzoneFileTypeEnum.XLS;\r\n } else if (this.file.type.includes('pdf')) {\r\n this.fileType = NgtDropzoneFileTypeEnum.PDF;\r\n } else if (this.file.type.includes('.document')) {\r\n this.fileType = NgtDropzoneFileTypeEnum.DOC;\r\n } else {\r\n this.fileType = NgtDropzoneFileTypeEnum.OTHER;\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Component, Input, SimpleChanges, SkipSelf, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { NgtDropzoneComponent, NgtDropzoneFile, NgtDropzoneFileTypeEnum } from '../ngt-dropzone.component';\r\n\r\n@Component({\r\n selector: 'ngt-dropzone-view',\r\n templateUrl: './ngt-dropzone-view.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class NgtDropzoneViewComponent implements AfterViewInit {\r\n @Input() public resources: Array<any>;\r\n\r\n public images: Array<NgtDropzoneFile>;\r\n public audios: Array<NgtDropzoneFile>;\r\n public videos: Array<NgtDropzoneFile>;\r\n public files: Array<NgtDropzoneFile>;\r\n\r\n public ngtDropzoneViewFileTypeEnum = NgtDropzoneFileTypeEnum;\r\n\r\n public constructor(\r\n @SkipSelf()\r\n public ngtDropzoneComponent: NgtDropzoneComponent\r\n ) { }\r\n\r\n public ngAfterViewInit() { }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.resources) {\r\n this.loadFiles();\r\n }\r\n }\r\n\r\n public loadFiles() {\r\n this.images = this.resources.filter((resource) => this.isImage(resource));\r\n this.audios = this.resources.filter((resource) => this.isAudio(resource));\r\n this.videos = this.resources.filter((resource) => this.isVideo(resource));\r\n this.files = this.resources.filter((resource) => this.isFile(resource));\r\n }\r\n\r\n public onImageClick(index) {\r\n const imagesDiv = document.createElement(\"div\");\r\n\r\n this.images.forEach((image: NgtDropzoneFile) => {\r\n let imageElement = document.createElement(\"img\");\r\n\r\n imageElement.src = image.previewUrl;\r\n\r\n imagesDiv.appendChild(imageElement);\r\n });\r\n\r\n this.ngtDropzoneComponent.onImageClick(imagesDiv, index);\r\n }\r\n\r\n public getFileType(resource: NgtDropzoneFile): NgtDropzoneFileTypeEnum {\r\n if (resource.mimeType.includes('.sheet')) {\r\n return NgtDropzoneFileTypeEnum.XLS;\r\n }\r\n\r\n if (resource.mimeType.includes('pdf')) {\r\n return NgtDropzoneFileTypeEnum.PDF;\r\n }\r\n\r\n if (resource.mimeType.includes('.document')) {\r\n return NgtDropzoneFileTypeEnum.DOC;\r\n }\r\n\r\n return NgtDropzoneFileTypeEnum.OTHER;\r\n }\r\n\r\n private isImage(resource: NgtDropzoneFile) {\r\n return resource.mimeType.includes('image');\r\n }\r\n\r\n private isAudio(resource: NgtDropzoneFile) {\r\n return resource.mimeType.includes('audio');\r\n }\r\n\r\n private isVideo(resource: NgtDropzoneFile) {\r\n return resource.mimeType.includes('video');\r\n }\r\n\r\n private isFile(resource: NgtDropzoneFile) {\r\n return !this.isImage(resource) && !this.isAudio(resource) && !this.isVideo(resource);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\r\nimport { NgxDropzoneModule } from 'ngx-dropzone';\r\nimport { NgxViewerModule } from 'ngx-viewer';\r\n\r\nimport { NgtHelperModule } from '../ngt-helper/ngt-helper.module';\r\nimport { NgtSvgModule } from '../ngt-svg/ngt-svg.module';\r\nimport { NgtValidationModule } from '../ngt-validation/ngt-validation.module';\r\nimport { CustomDropzonePreviewComponent } from './custom-dropzone-preview/custom-dropzone-preview.component';\r\nimport { NgtDropzoneFileViewerComponent } from './ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\r\nimport { NgtDropzoneViewComponent } from './ngt-dropzone-view/ngt-dropzone-view.component';\r\nimport { NgtDropzoneComponent } from './ngt-dropzone.component';\r\n\r\n@NgModule({\r\n exports: [NgtDropzoneComponent],\r\n declarations: [\r\n NgtDropzoneComponent,\r\n NgtDropzoneFileViewerComponent,\r\n NgtDropzoneViewComponent,\r\n CustomDropzonePreviewComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgtValidationModule,\r\n NgxDropzoneModule,\r\n NgxViewerModule,\r\n NgtSvgModule,\r\n NgxDocViewerModule,\r\n NgtHelperModule,\r\n ]\r\n})\r\nexport class NgtDropzoneModule { }\r\n","/*\r\n * Public API Surface of ng-tailwind\r\n */\r\n\r\n//Translate\r\nexport * from './services/http/ngt-translate.service';\r\n\r\n//NgtHttpService\r\nexport * from './services/http/ngt-http.service';\r\n\r\n//NgtHttpValidationService\r\nexport * from './services/http/ngt-http-validation.service';\r\n\r\n//NgtHttpResourceService\r\nexport * from './services/http/ngt-http-resource.service';\r\n\r\n//NgtDatatable\r\nexport * from './components/ngt-datatable/ngt-datatable.module';\r\nexport * from './components/ngt-datatable/ngt-datatable.component';\r\nexport * from './components/ngt-datatable/ngt-tbody/ngt-tbody.component';\r\nexport * from './components/ngt-datatable/ngt-td/ngt-td.component';\r\nexport * from './components/ngt-datatable/ngt-td-check/ngt-td-check.component';\r\nexport * from './components/ngt-datatable/ngt-th/ngt-th.component';\r\nexport * from './components/ngt-datatable/ngt-th-check/ngt-th-check.component';\r\nexport * from './components/ngt-datatable/ngt-thead/ngt-thead.component';\r\nexport * from './components/ngt-datatable/ngt-tr/ngt-tr.component';\r\n\r\n//NgtPagination\r\nexport * from './components/ngt-pagination/ngt-pagination.module';\r\nexport * from './components/ngt-pagination/ngt-pagination.component';\r\n\r\n//NgtDropdown\r\nexport * from './components/ngt-dropdown/ngt-dropdown.module';\r\nexport * from './components/ngt-dropdown/ngt-dropdown.component';\r\nexport * from './components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component';\r\n\r\n//NgtFloatingButton\r\nexport * from './components/ngt-floating-button/ngt-floating-button.module';\r\nexport * from './components/ngt-floating-button/ngt-floating-button.component';\r\n\r\n//NgtTag\r\nexport * from './components/ngt-tag/ngt-tag.module';\r\nexport * from './components/ngt-tag/ngt-tag.component';\r\n\r\n//NgtAction\r\nexport * from './components/ngt-action/ngt-action.module';\r\nexport * from './components/ngt-action/ngt-action.component';\r\n\r\n//NgtCheckbox\r\nexport * from './components/ngt-checkbox/ngt-checkbox.module';\r\nexport * from './components/ngt-checkbox/ngt-checkbox.component';\r\n\r\n//NgtSlider\r\nexport * from './components/ngt-slider/ngt-slider.module';\r\nexport * from './components/ngt-slider/ngt-slider.component';\r\n\r\n//NgtRadioButton\r\nexport * from './components/ngt-radio-button/ngt-radio-button.module';\r\nexport * from './components/ngt-radio-button/ngt-radio-button.component';\r\nexport * from './components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component';\r\n\r\n//NgtTextarea\r\nexport * from './components/ngt-textarea/ngt-textarea.module';\r\nexport * from './components/ngt-textarea/ngt-textarea.component';\r\n\r\n//NgtModal\r\nexport * from './components/ngt-modal/ngt-modal.module';\r\nexport * from './components/ngt-modal/ngt-modal.component';\r\nexport * from './components/ngt-modal/ngt-modal-header/ngt-modal-header.component';\r\nexport * from './components/ngt-modal/ngt-modal-body/ngt-modal-body.component';\r\nexport * from './components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component';\r\n\r\n//NgtDate\r\nexport * from './components/ngt-date/ngt-date.module';\r\nexport * from './components/ngt-date/ngt-date.component';\r\n\r\n//NgtButton\r\nexport * from './components/ngt-button/ngt-button.module';\r\nexport * from './components/ngt-button/ngt-button.component';\r\n\r\n//NgtPortlet\r\nexport * from './components/ngt-portlet/ngt-portlet.module';\r\nexport * from './components/ngt-portlet/ngt-portlet.component';\r\nexport * from './components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component';\r\nexport * from './components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component';\r\nexport * from './components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component';\r\nexport * from './enums/size.enum';\r\n\r\n//NgtSidenav\r\nexport * from './components/ngt-sidenav/ngt-sidenav.module';\r\nexport * from './components/ngt-sidenav/ngt-sidenav.component';\r\n\r\n//NgtHeader\r\nexport * from './components/ngt-header-nav/ngt-header-nav.module';\r\nexport * from './components/ngt-header-nav/ngt-header-nav.component';\r\n\r\n//NgtContent\r\nexport * from './components/ngt-content/ngt-content.module';\r\nexport * from './components/ngt-content/ngt-content.component';\r\n\r\n// NgtSection\r\nexport * from './components/ngt-section/ngt-section.module';\r\nexport * from './components/ngt-section/ngt-section.component';\r\n\r\n//NgtInput\r\nexport * from './components/ngt-input/ngt-input.module';\r\nexport * from './components/ngt-input/ngt-input.component';\r\n\r\n//NgtStylizable\r\nexport * from './directives/ngt-stylizable/ngt-stylizable.module';\r\nexport * from './directives/ngt-stylizable/ngt-stylizable.directive';\r\n\r\n//NgtSelect\r\nexport * from './components/ngt-select/ngt-select.module';\r\nexport * from './components/ngt-select/ngt-select.component';\r\nexport * from './components/ngt-select/ngt-select.directive';\r\n\r\n//NgtSelectContainer\r\nexport * from './components/ngt-multi-select/ngt-multi-select.module';\r\nexport * from './components/ngt-multi-select/ngt-multi-select.component';\r\n\r\n//NgtSvg\r\nexport * from './components/ngt-svg/ngt-svg.module';\r\nexport * from './components/ngt-svg/ngt-svg.component';\r\n\r\n//NgtShining\r\nexport * from './components/ngt-shining/ngt-shining.module';\r\nexport * from './components/ngt-shining/ngt-shining.component';\r\n\r\n//NgtForm\r\nexport * from './components/ngt-form/ngt-form.module';\r\nexport * from './components/ngt-form/ngt-form.component';\r\nexport * from './components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module';\r\nexport * from './components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component';\r\n\r\n//NgtHttpFormService\r\nexport * from './services/http/ngt-http-form.service';\r\n\r\n//NgtDropzone\r\nexport * from './components/ngt-dropzone/ngt-dropzone.module';\r\nexport * from './components/ngt-dropzone/ngt-dropzone.component';\r\nexport * from './services/http/ngt-attachment-http.service';\r\n\r\n//NgtAnimations\r\nexport * from './animations/ngt-angular-animations';\r\n\r\n// NgtHelper\r\nexport * from './components/ngt-helper/ngt-helper.module';\r\nexport * from './components/ngt-helper/ngt-helper.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {NgtBaseNgModel as ɵa,NgtMakeProvider as ɵb} from './base/ngt-base-ng-model';\nexport {CustomDropzonePreviewComponent as ɵg} from './components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component';\nexport {NgtDropzoneFileViewerComponent as ɵe} from './components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';\nexport {NgtDropzoneViewComponent as ɵf} from './components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component';\nexport {NgtValidationComponent as ɵd} from './components/ngt-validation/ngt-validation.component';\nexport {NgtValidationModule as ɵc} from './components/ngt-validation/ngt-validation.module';"],"names":[],"mappings":"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"}