ng-tailwind 4.0.1 → 4.1.1

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 (273) hide show
  1. package/base/ngt-base-ng-model.d.ts +1 -1
  2. package/components/ngt-action/ngt-action.component.d.ts +3 -0
  3. package/components/ngt-action/ngt-action.module.d.ts +8 -0
  4. package/components/ngt-button/ngt-button.component.d.ts +3 -0
  5. package/components/ngt-button/ngt-button.module.d.ts +8 -0
  6. package/components/ngt-checkbox/ngt-checkbox.component.d.ts +3 -0
  7. package/components/ngt-checkbox/ngt-checkbox.module.d.ts +8 -0
  8. package/components/ngt-content/ngt-content.component.d.ts +3 -0
  9. package/components/ngt-content/ngt-content.module.d.ts +6 -0
  10. package/components/ngt-datatable/ngt-datatable.component.d.ts +3 -0
  11. package/components/ngt-datatable/ngt-datatable.module.d.ts +22 -0
  12. package/components/ngt-datatable/ngt-tbody/ngt-tbody.component.d.ts +3 -0
  13. package/components/ngt-datatable/ngt-td/ngt-td.component.d.ts +3 -0
  14. package/components/ngt-datatable/ngt-td-check/ngt-td-check.component.d.ts +3 -0
  15. package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +3 -0
  16. package/components/ngt-datatable/ngt-th-check/ngt-th-check.component.d.ts +3 -0
  17. package/components/ngt-datatable/ngt-thead/ngt-thead.component.d.ts +3 -0
  18. package/components/ngt-datatable/ngt-tr/ngt-tr.component.d.ts +3 -0
  19. package/components/ngt-date/ngt-date.component.d.ts +3 -0
  20. package/components/ngt-date/ngt-date.module.d.ts +11 -0
  21. package/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.d.ts +3 -0
  22. package/components/ngt-dropdown/ngt-dropdown.component.d.ts +3 -0
  23. package/components/ngt-dropdown/ngt-dropdown.module.d.ts +7 -0
  24. package/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.d.ts +4 -1
  25. package/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.d.ts +3 -0
  26. package/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.d.ts +21 -7
  27. package/components/ngt-dropzone/ngt-dropzone.component.d.ts +4 -27
  28. package/components/ngt-dropzone/ngt-dropzone.meta.d.ts +27 -0
  29. package/components/ngt-dropzone/ngt-dropzone.module.d.ts +15 -0
  30. package/components/ngt-floating-button/ngt-floating-button.component.d.ts +3 -0
  31. package/components/ngt-floating-button/ngt-floating-button.module.d.ts +8 -0
  32. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.d.ts +6 -3
  33. package/components/ngt-form/ngt-form.component.d.ts +3 -0
  34. package/components/ngt-form/ngt-form.module.d.ts +7 -0
  35. package/components/ngt-header-nav/ngt-header-nav.component.d.ts +3 -0
  36. package/components/ngt-header-nav/ngt-header-nav.module.d.ts +6 -0
  37. package/components/ngt-helper/ngt-helper.component.d.ts +3 -0
  38. package/components/ngt-helper/ngt-helper.module.d.ts +8 -0
  39. package/components/ngt-input/ngt-input.component.d.ts +4 -1
  40. package/components/ngt-input/ngt-input.module.d.ts +12 -0
  41. package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +3 -0
  42. package/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.d.ts +3 -0
  43. package/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.d.ts +7 -5
  44. package/components/ngt-modal/ngt-modal.component.d.ts +3 -0
  45. package/components/ngt-modal/ngt-modal.module.d.ts +9 -0
  46. package/components/ngt-multi-select/ngt-multi-select.component.d.ts +3 -0
  47. package/components/ngt-multi-select/ngt-multi-select.module.d.ts +13 -0
  48. package/components/ngt-pagination/ngt-pagination.component.d.ts +3 -0
  49. package/components/ngt-pagination/ngt-pagination.module.d.ts +10 -0
  50. package/components/ngt-popover/ngt-popover.component.d.ts +3 -0
  51. package/components/ngt-popover/ngt-popover.module.d.ts +7 -0
  52. package/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.d.ts +3 -0
  53. package/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.d.ts +3 -0
  54. package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +3 -0
  55. package/components/ngt-portlet/ngt-portlet.component.d.ts +3 -0
  56. package/components/ngt-portlet/ngt-portlet.module.d.ts +11 -0
  57. package/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.d.ts +3 -0
  58. package/components/ngt-radio-button/ngt-radio-button.component.d.ts +3 -0
  59. package/components/ngt-radio-button/ngt-radio-button.module.d.ts +9 -0
  60. package/components/ngt-section/ngt-section.component.d.ts +3 -0
  61. package/components/ngt-section/ngt-section.module.d.ts +9 -0
  62. package/components/ngt-select/ngt-select.component.d.ts +3 -0
  63. package/components/ngt-select/ngt-select.directive.d.ts +7 -0
  64. package/components/ngt-select/ngt-select.module.d.ts +14 -0
  65. package/components/ngt-shining/ngt-shining.component.d.ts +3 -0
  66. package/components/ngt-shining/ngt-shining.module.d.ts +6 -0
  67. package/components/ngt-sidenav/ngt-sidenav.component.d.ts +3 -0
  68. package/components/ngt-sidenav/ngt-sidenav.module.d.ts +6 -0
  69. package/components/ngt-slider/ngt-slider.component.d.ts +3 -0
  70. package/components/ngt-slider/ngt-slider.module.d.ts +7 -0
  71. package/components/ngt-svg/ngt-svg.component.d.ts +3 -0
  72. package/components/ngt-svg/ngt-svg.module.d.ts +8 -0
  73. package/components/ngt-tag/ngt-tag.component.d.ts +3 -0
  74. package/components/ngt-tag/ngt-tag.module.d.ts +7 -0
  75. package/components/ngt-textarea/ngt-textarea.component.d.ts +3 -0
  76. package/components/ngt-textarea/ngt-textarea.module.d.ts +11 -0
  77. package/components/ngt-validation/ngt-validation.component.d.ts +5 -2
  78. package/components/ngt-validation/ngt-validation.module.d.ts +6 -0
  79. package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +31 -28
  80. package/directives/ngt-stylizable/ngt-stylizable.module.d.ts +6 -0
  81. package/{esm2015/base/ngt-base-ng-model.js → esm2020/base/ngt-base-ng-model.mjs} +4 -4
  82. package/esm2020/components/ngt-action/ngt-action.component.mjs +54 -0
  83. package/esm2020/components/ngt-action/ngt-action.module.mjs +28 -0
  84. package/esm2020/components/ngt-button/ngt-button.component.mjs +115 -0
  85. package/esm2020/components/ngt-button/ngt-button.module.mjs +28 -0
  86. package/esm2020/components/ngt-checkbox/ngt-checkbox.component.mjs +175 -0
  87. package/esm2020/components/ngt-checkbox/ngt-checkbox.module.mjs +28 -0
  88. package/esm2020/components/ngt-content/ngt-content.component.mjs +32 -0
  89. package/esm2020/components/ngt-content/ngt-content.module.mjs +20 -0
  90. package/esm2020/components/ngt-datatable/ngt-datatable.component.mjs +431 -0
  91. package/esm2020/components/ngt-datatable/ngt-datatable.module.mjs +95 -0
  92. package/esm2020/components/ngt-datatable/ngt-tbody/ngt-tbody.component.mjs +57 -0
  93. package/esm2020/components/ngt-datatable/ngt-td/ngt-td.component.mjs +62 -0
  94. package/esm2020/components/ngt-datatable/ngt-td-check/ngt-td-check.component.mjs +113 -0
  95. package/esm2020/components/ngt-datatable/ngt-th/ngt-th.component.mjs +211 -0
  96. package/esm2020/components/ngt-datatable/ngt-th-check/ngt-th-check.component.mjs +91 -0
  97. package/esm2020/components/ngt-datatable/ngt-thead/ngt-thead.component.mjs +55 -0
  98. package/esm2020/components/ngt-datatable/ngt-tr/ngt-tr.component.mjs +86 -0
  99. package/esm2020/components/ngt-date/ngt-date.component.mjs +416 -0
  100. package/esm2020/components/ngt-date/ngt-date.module.mjs +40 -0
  101. package/esm2020/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.mjs +19 -0
  102. package/esm2020/components/ngt-dropdown/ngt-dropdown.component.mjs +200 -0
  103. package/esm2020/components/ngt-dropdown/ngt-dropdown.module.mjs +21 -0
  104. package/esm2020/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.mjs +54 -0
  105. package/esm2020/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.mjs +66 -0
  106. package/esm2020/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.mjs +94 -0
  107. package/esm2020/components/ngt-dropzone/ngt-dropzone.component.mjs +464 -0
  108. package/esm2020/components/ngt-dropzone/ngt-dropzone.meta.mjs +24 -0
  109. package/esm2020/components/ngt-dropzone/ngt-dropzone.module.mjs +55 -0
  110. package/esm2020/components/ngt-floating-button/ngt-floating-button.component.mjs +119 -0
  111. package/esm2020/components/ngt-floating-button/ngt-floating-button.module.mjs +28 -0
  112. package/esm2020/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.mjs +22 -0
  113. package/esm2020/components/ngt-form/ngt-form.component.mjs +193 -0
  114. package/esm2020/components/ngt-form/ngt-form.module.mjs +29 -0
  115. package/esm2020/components/ngt-header-nav/ngt-header-nav.component.mjs +39 -0
  116. package/esm2020/components/ngt-header-nav/ngt-header-nav.module.mjs +20 -0
  117. package/esm2020/components/ngt-helper/ngt-helper.component.mjs +63 -0
  118. package/esm2020/components/ngt-helper/ngt-helper.module.mjs +28 -0
  119. package/esm2020/components/ngt-input/ngt-input.component.mjs +729 -0
  120. package/esm2020/components/ngt-input/ngt-input.module.mjs +47 -0
  121. package/esm2020/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.mjs +11 -0
  122. package/esm2020/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.mjs +11 -0
  123. package/esm2020/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.mjs +37 -0
  124. package/esm2020/components/ngt-modal/ngt-modal.component.mjs +91 -0
  125. package/esm2020/components/ngt-modal/ngt-modal.module.mjs +39 -0
  126. package/esm2020/components/ngt-multi-select/ngt-multi-select.component.mjs +419 -0
  127. package/esm2020/components/ngt-multi-select/ngt-multi-select.module.mjs +52 -0
  128. package/esm2020/components/ngt-pagination/ngt-pagination.component.mjs +162 -0
  129. package/esm2020/components/ngt-pagination/ngt-pagination.module.mjs +36 -0
  130. package/esm2020/components/ngt-popover/ngt-popover.component.mjs +85 -0
  131. package/esm2020/components/ngt-popover/ngt-popover.module.mjs +24 -0
  132. package/esm2020/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.mjs +34 -0
  133. package/esm2020/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.mjs +33 -0
  134. package/esm2020/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.mjs +53 -0
  135. package/esm2020/components/ngt-portlet/ngt-portlet.component.mjs +74 -0
  136. package/esm2020/components/ngt-portlet/ngt-portlet.module.mjs +47 -0
  137. package/esm2020/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.mjs +19 -0
  138. package/esm2020/components/ngt-radio-button/ngt-radio-button.component.mjs +125 -0
  139. package/esm2020/components/ngt-radio-button/ngt-radio-button.module.mjs +29 -0
  140. package/esm2020/components/ngt-section/ngt-section.component.mjs +119 -0
  141. package/esm2020/components/ngt-section/ngt-section.module.mjs +32 -0
  142. package/esm2020/components/ngt-select/ngt-select.component.mjs +550 -0
  143. package/esm2020/components/ngt-select/ngt-select.directive.mjs +36 -0
  144. package/esm2020/components/ngt-select/ngt-select.module.mjs +65 -0
  145. package/esm2020/components/ngt-shining/ngt-shining.component.mjs +40 -0
  146. package/esm2020/components/ngt-shining/ngt-shining.module.mjs +20 -0
  147. package/esm2020/components/ngt-sidenav/ngt-sidenav.component.mjs +132 -0
  148. package/esm2020/components/ngt-sidenav/ngt-sidenav.module.mjs +20 -0
  149. package/esm2020/components/ngt-slider/ngt-slider.component.mjs +99 -0
  150. package/esm2020/components/ngt-slider/ngt-slider.module.mjs +24 -0
  151. package/esm2020/components/ngt-svg/ngt-svg.component.mjs +53 -0
  152. package/esm2020/components/ngt-svg/ngt-svg.module.mjs +28 -0
  153. package/esm2020/components/ngt-tag/ngt-tag.component.mjs +37 -0
  154. package/esm2020/components/ngt-tag/ngt-tag.module.mjs +24 -0
  155. package/esm2020/components/ngt-textarea/ngt-textarea.component.mjs +238 -0
  156. package/esm2020/components/ngt-textarea/ngt-textarea.module.mjs +43 -0
  157. package/esm2020/components/ngt-validation/ngt-validation.component.mjs +26 -0
  158. package/esm2020/components/ngt-validation/ngt-validation.module.mjs +20 -0
  159. package/esm2020/directives/ngt-stylizable/ngt-stylizable.directive.mjs +290 -0
  160. package/esm2020/directives/ngt-stylizable/ngt-stylizable.module.mjs +20 -0
  161. package/esm2020/helpers/routing/route.mjs +11 -0
  162. package/esm2020/ng-tailwind.mjs +5 -0
  163. package/{esm2015/public-api.js → esm2020/public-api.mjs} +2 -2
  164. package/esm2020/services/http/ngt-attachment-http.service.mjs +3 -0
  165. package/{esm2015/services/http/ngt-http-form.service.js → esm2020/services/http/ngt-http-form.service.mjs} +1 -1
  166. package/esm2020/services/http/ngt-http.service.mjs +3 -0
  167. package/{esm2015/services/ngt-stylizable/ngt-stylizable.service.js → esm2020/services/ngt-stylizable/ngt-stylizable.service.mjs} +82 -82
  168. package/fesm2015/ng-tailwind.mjs +7801 -0
  169. package/fesm2015/ng-tailwind.mjs.map +1 -0
  170. package/fesm2020/ng-tailwind.mjs +7668 -0
  171. package/fesm2020/ng-tailwind.mjs.map +1 -0
  172. package/index.d.ts +5 -0
  173. package/package.json +27 -16
  174. package/public-api.d.ts +1 -1
  175. package/services/ngt-stylizable/ngt-stylizable.service.d.ts +27 -27
  176. package/bundles/ng-tailwind.umd.js +0 -7961
  177. package/bundles/ng-tailwind.umd.js.map +0 -1
  178. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.d.ts +0 -2
  179. package/esm2015/components/ngt-action/ngt-action.component.js +0 -49
  180. package/esm2015/components/ngt-action/ngt-action.module.js +0 -19
  181. package/esm2015/components/ngt-button/ngt-button.component.js +0 -106
  182. package/esm2015/components/ngt-button/ngt-button.module.js +0 -19
  183. package/esm2015/components/ngt-checkbox/ngt-checkbox.component.js +0 -143
  184. package/esm2015/components/ngt-checkbox/ngt-checkbox.module.js +0 -19
  185. package/esm2015/components/ngt-content/ngt-content.component.js +0 -33
  186. package/esm2015/components/ngt-content/ngt-content.module.js +0 -15
  187. package/esm2015/components/ngt-datatable/ngt-datatable.component.js +0 -418
  188. package/esm2015/components/ngt-datatable/ngt-datatable.module.js +0 -58
  189. package/esm2015/components/ngt-datatable/ngt-tbody/ngt-tbody.component.js +0 -58
  190. package/esm2015/components/ngt-datatable/ngt-td/ngt-td.component.js +0 -63
  191. package/esm2015/components/ngt-datatable/ngt-td-check/ngt-td-check.component.js +0 -105
  192. package/esm2015/components/ngt-datatable/ngt-th/ngt-th.component.js +0 -195
  193. package/esm2015/components/ngt-datatable/ngt-th-check/ngt-th-check.component.js +0 -87
  194. package/esm2015/components/ngt-datatable/ngt-thead/ngt-thead.component.js +0 -56
  195. package/esm2015/components/ngt-datatable/ngt-tr/ngt-tr.component.js +0 -76
  196. package/esm2015/components/ngt-date/ngt-date.component.js +0 -380
  197. package/esm2015/components/ngt-date/ngt-date.module.js +0 -25
  198. package/esm2015/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.js +0 -20
  199. package/esm2015/components/ngt-dropdown/ngt-dropdown.component.js +0 -185
  200. package/esm2015/components/ngt-dropdown/ngt-dropdown.module.js +0 -16
  201. package/esm2015/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.js +0 -50
  202. package/esm2015/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.js +0 -59
  203. package/esm2015/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.js +0 -67
  204. package/esm2015/components/ngt-dropzone/ngt-dropzone.component.js +0 -447
  205. package/esm2015/components/ngt-dropzone/ngt-dropzone.module.js +0 -37
  206. package/esm2015/components/ngt-floating-button/ngt-floating-button.component.js +0 -94
  207. package/esm2015/components/ngt-floating-button/ngt-floating-button.module.js +0 -19
  208. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.js +0 -23
  209. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.js +0 -15
  210. package/esm2015/components/ngt-form/ngt-form.component.js +0 -181
  211. package/esm2015/components/ngt-form/ngt-form.module.js +0 -17
  212. package/esm2015/components/ngt-header-nav/ngt-header-nav.component.js +0 -38
  213. package/esm2015/components/ngt-header-nav/ngt-header-nav.module.js +0 -15
  214. package/esm2015/components/ngt-helper/ngt-helper.component.js +0 -51
  215. package/esm2015/components/ngt-helper/ngt-helper.module.js +0 -19
  216. package/esm2015/components/ngt-input/ngt-input.component.js +0 -680
  217. package/esm2015/components/ngt-input/ngt-input.module.js +0 -28
  218. package/esm2015/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.js +0 -11
  219. package/esm2015/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.js +0 -11
  220. package/esm2015/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.js +0 -40
  221. package/esm2015/components/ngt-modal/ngt-modal.component.js +0 -79
  222. package/esm2015/components/ngt-modal/ngt-modal.module.js +0 -28
  223. package/esm2015/components/ngt-multi-select/ngt-multi-select.component.js +0 -394
  224. package/esm2015/components/ngt-multi-select/ngt-multi-select.module.js +0 -33
  225. package/esm2015/components/ngt-pagination/ngt-pagination.component.js +0 -172
  226. package/esm2015/components/ngt-pagination/ngt-pagination.module.js +0 -23
  227. package/esm2015/components/ngt-popover/ngt-popover.component.js +0 -73
  228. package/esm2015/components/ngt-popover/ngt-popover.module.js +0 -17
  229. package/esm2015/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.js +0 -34
  230. package/esm2015/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.js +0 -33
  231. package/esm2015/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.js +0 -47
  232. package/esm2015/components/ngt-portlet/ngt-portlet.component.js +0 -58
  233. package/esm2015/components/ngt-portlet/ngt-portlet.module.js +0 -32
  234. package/esm2015/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.js +0 -19
  235. package/esm2015/components/ngt-radio-button/ngt-radio-button.component.js +0 -103
  236. package/esm2015/components/ngt-radio-button/ngt-radio-button.module.js +0 -20
  237. package/esm2015/components/ngt-section/ngt-section.component.js +0 -101
  238. package/esm2015/components/ngt-section/ngt-section.module.js +0 -21
  239. package/esm2015/components/ngt-select/ngt-select.component.js +0 -488
  240. package/esm2015/components/ngt-select/ngt-select.directive.js +0 -35
  241. package/esm2015/components/ngt-select/ngt-select.module.js +0 -40
  242. package/esm2015/components/ngt-shining/ngt-shining.component.js +0 -41
  243. package/esm2015/components/ngt-shining/ngt-shining.module.js +0 -15
  244. package/esm2015/components/ngt-sidenav/ngt-sidenav.component.js +0 -123
  245. package/esm2015/components/ngt-sidenav/ngt-sidenav.module.js +0 -15
  246. package/esm2015/components/ngt-slider/ngt-slider.component.js +0 -82
  247. package/esm2015/components/ngt-slider/ngt-slider.module.js +0 -17
  248. package/esm2015/components/ngt-svg/ngt-svg.component.js +0 -52
  249. package/esm2015/components/ngt-svg/ngt-svg.module.js +0 -19
  250. package/esm2015/components/ngt-tag/ngt-tag.component.js +0 -36
  251. package/esm2015/components/ngt-tag/ngt-tag.module.js +0 -17
  252. package/esm2015/components/ngt-textarea/ngt-textarea.component.js +0 -210
  253. package/esm2015/components/ngt-textarea/ngt-textarea.module.js +0 -26
  254. package/esm2015/components/ngt-validation/ngt-validation.component.js +0 -24
  255. package/esm2015/components/ngt-validation/ngt-validation.module.js +0 -15
  256. package/esm2015/directives/ngt-stylizable/ngt-stylizable.directive.js +0 -227
  257. package/esm2015/directives/ngt-stylizable/ngt-stylizable.module.js +0 -15
  258. package/esm2015/helpers/routing/route.js +0 -11
  259. package/esm2015/ng-tailwind.js +0 -11
  260. package/esm2015/services/http/ngt-attachment-http.service.js +0 -3
  261. package/esm2015/services/http/ngt-http.service.js +0 -3
  262. package/fesm2015/ng-tailwind.js +0 -6926
  263. package/fesm2015/ng-tailwind.js.map +0 -1
  264. package/ng-tailwind.d.ts +0 -10
  265. package/ng-tailwind.metadata.json +0 -1
  266. /package/{esm2015/animations/ngt-angular-animations.js → esm2020/animations/ngt-angular-animations.mjs} +0 -0
  267. /package/{esm2015/enums/size.enum.js → esm2020/enums/size.enum.mjs} +0 -0
  268. /package/{esm2015/helpers/enum/enum.js → esm2020/helpers/enum/enum.mjs} +0 -0
  269. /package/{esm2015/helpers/form/form.js → esm2020/helpers/form/form.mjs} +0 -0
  270. /package/{esm2015/helpers/uuid.js → esm2020/helpers/uuid.mjs} +0 -0
  271. /package/{esm2015/services/http/ngt-http-resource.service.js → esm2020/services/http/ngt-http-resource.service.mjs} +0 -0
  272. /package/{esm2015/services/http/ngt-http-validation.service.js → esm2020/services/http/ngt-http-validation.service.mjs} +0 -0
  273. /package/{esm2015/services/http/ngt-translate.service.js → esm2020/services/http/ngt-translate.service.mjs} +0 -0
@@ -0,0 +1,55 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { EloverdeDocViewerModule } from 'eloverde-doc-viewer';
5
+ import { NgxDropzoneModule } from 'ngx-dropzone';
6
+ import { NgtHelperModule } from '../ngt-helper/ngt-helper.module';
7
+ import { NgtSvgModule } from '../ngt-svg/ngt-svg.module';
8
+ import { NgtValidationModule } from '../ngt-validation/ngt-validation.module';
9
+ import { CustomDropzonePreviewComponent } from './custom-dropzone-preview/custom-dropzone-preview.component';
10
+ import { NgtDropzoneFileViewerComponent } from './ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component';
11
+ import { NgtDropzoneViewComponent } from './ngt-dropzone-view/ngt-dropzone-view.component';
12
+ import { NgtDropzoneComponent } from './ngt-dropzone.component';
13
+ import * as i0 from "@angular/core";
14
+ export class NgtDropzoneModule {
15
+ }
16
+ NgtDropzoneModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtDropzoneModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ NgtDropzoneModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: NgtDropzoneModule, declarations: [NgtDropzoneComponent,
18
+ NgtDropzoneFileViewerComponent,
19
+ NgtDropzoneViewComponent,
20
+ CustomDropzonePreviewComponent], imports: [CommonModule,
21
+ FormsModule,
22
+ NgtValidationModule,
23
+ NgxDropzoneModule,
24
+ NgtSvgModule,
25
+ EloverdeDocViewerModule,
26
+ NgtHelperModule], exports: [NgtDropzoneComponent] });
27
+ NgtDropzoneModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtDropzoneModule, imports: [CommonModule,
28
+ FormsModule,
29
+ NgtValidationModule,
30
+ NgxDropzoneModule,
31
+ NgtSvgModule,
32
+ EloverdeDocViewerModule,
33
+ NgtHelperModule] });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtDropzoneModule, decorators: [{
35
+ type: NgModule,
36
+ args: [{
37
+ exports: [NgtDropzoneComponent],
38
+ declarations: [
39
+ NgtDropzoneComponent,
40
+ NgtDropzoneFileViewerComponent,
41
+ NgtDropzoneViewComponent,
42
+ CustomDropzonePreviewComponent,
43
+ ],
44
+ imports: [
45
+ CommonModule,
46
+ FormsModule,
47
+ NgtValidationModule,
48
+ NgxDropzoneModule,
49
+ NgtSvgModule,
50
+ EloverdeDocViewerModule,
51
+ NgtHelperModule
52
+ ]
53
+ }]
54
+ }] });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRyb3B6b25lLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kcm9wem9uZS9uZ3QtZHJvcHpvbmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUMvRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFvQmhFLE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFmdEIsb0JBQW9CO1FBQ3BCLDhCQUE4QjtRQUM5Qix3QkFBd0I7UUFDeEIsOEJBQThCLGFBRzlCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osdUJBQXVCO1FBQ3ZCLGVBQWUsYUFkVCxvQkFBb0I7K0dBaUJyQixpQkFBaUIsWUFUdEIsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLFlBQVk7UUFDWix1QkFBdUI7UUFDdkIsZUFBZTsyRkFHVixpQkFBaUI7a0JBbEI3QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUMvQixZQUFZLEVBQUU7d0JBQ1Ysb0JBQW9CO3dCQUNwQiw4QkFBOEI7d0JBQzlCLHdCQUF3Qjt3QkFDeEIsOEJBQThCO3FCQUNqQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsZUFBZTtxQkFDbEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWxvdmVyZGVEb2NWaWV3ZXJNb2R1bGUgfSBmcm9tICdlbG92ZXJkZS1kb2Mtdmlld2VyJztcbmltcG9ydCB7IE5neERyb3B6b25lTW9kdWxlIH0gZnJvbSAnbmd4LWRyb3B6b25lJztcblxuaW1wb3J0IHsgTmd0SGVscGVyTW9kdWxlIH0gZnJvbSAnLi4vbmd0LWhlbHBlci9uZ3QtaGVscGVyLm1vZHVsZSc7XG5pbXBvcnQgeyBOZ3RTdmdNb2R1bGUgfSBmcm9tICcuLi9uZ3Qtc3ZnL25ndC1zdmcubW9kdWxlJztcbmltcG9ydCB7IE5ndFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICcuLi9uZ3QtdmFsaWRhdGlvbi9uZ3QtdmFsaWRhdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHsgQ3VzdG9tRHJvcHpvbmVQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jdXN0b20tZHJvcHpvbmUtcHJldmlldy9jdXN0b20tZHJvcHpvbmUtcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd0RHJvcHpvbmVGaWxlVmlld2VyQ29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtZHJvcHpvbmUtZmlsZS12aWV3ZXIvbmd0LWRyb3B6b25lLWZpbGUtdmlld2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3REcm9wem9uZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL25ndC1kcm9wem9uZS12aWV3L25ndC1kcm9wem9uZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3REcm9wem9uZUNvbXBvbmVudCB9IGZyb20gJy4vbmd0LWRyb3B6b25lLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZXhwb3J0czogW05ndERyb3B6b25lQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTmd0RHJvcHpvbmVDb21wb25lbnQsXG4gICAgICAgIE5ndERyb3B6b25lRmlsZVZpZXdlckNvbXBvbmVudCxcbiAgICAgICAgTmd0RHJvcHpvbmVWaWV3Q29tcG9uZW50LFxuICAgICAgICBDdXN0b21Ecm9wem9uZVByZXZpZXdDb21wb25lbnQsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5ndFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgICAgIE5neERyb3B6b25lTW9kdWxlLFxuICAgICAgICBOZ3RTdmdNb2R1bGUsXG4gICAgICAgIEVsb3ZlcmRlRG9jVmlld2VyTW9kdWxlLFxuICAgICAgICBOZ3RIZWxwZXJNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ndERyb3B6b25lTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,119 @@
1
+ import { animate, state, style, transition, trigger } from '@angular/animations';
2
+ import { Component, Input, Optional, Self } from '@angular/core';
3
+ import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../directives/ngt-stylizable/ngt-stylizable.directive";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/router";
8
+ import * as i4 from "../ngt-svg/ngt-svg.component";
9
+ export class NgtFloatingButtonComponent {
10
+ constructor(injector, ngtStylizableDirective) {
11
+ this.injector = injector;
12
+ this.ngtStylizableDirective = ngtStylizableDirective;
13
+ this.withAnimation = false;
14
+ this.isOpen = false;
15
+ if (this.ngtStylizableDirective) {
16
+ this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
17
+ }
18
+ else {
19
+ this.ngtStyle = new NgtStylizableService();
20
+ }
21
+ this.ngtStyle.load(this.injector, 'NgtFloatingButton', {
22
+ color: {
23
+ bg: 'bg-blue-500',
24
+ text: 'text-white',
25
+ },
26
+ px: 'px-4',
27
+ py: 'py-4',
28
+ h: 'h-12',
29
+ w: 'w-12'
30
+ });
31
+ }
32
+ toggleMenu() {
33
+ this.isOpen = !(this.isOpen);
34
+ }
35
+ openExternalLink(url) {
36
+ window.open(url, "_blank");
37
+ this.toggleMenu();
38
+ }
39
+ onClick(event, menu) {
40
+ event.stopPropagation();
41
+ this.toggleMenu();
42
+ if (typeof menu.action === 'function') {
43
+ return menu.action();
44
+ }
45
+ throw new Error('Action must be a function!');
46
+ }
47
+ isTypeAction(menu) {
48
+ return menu.type == NgtFloatingButtonType.ACTION;
49
+ }
50
+ isTypeNavigation(menu) {
51
+ return menu.type == NgtFloatingButtonType.NAVIGATION;
52
+ }
53
+ }
54
+ NgtFloatingButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFloatingButtonComponent, deps: [{ token: i0.Injector }, { token: i1.NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
55
+ NgtFloatingButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: NgtFloatingButtonComponent, selector: "ngt-floating-button", inputs: { menus: "menus", icon: "icon", label: "label", withAnimation: "withAnimation" }, ngImport: i0, template: "<button (click)=\"toggleMenu()\" *ngIf=\"isOpen\" tabindex=\"-1\"\n class=\"fixed z-10 inset-0 h-full w-full bg-black opacity-0 cursor-default\"></button>\n\n<div class=\"{{ ngtStyle.compile(['w']) }} rounded-full relative z-20\" *ngIf=\"isOpen\" @fadeY>\n <ng-container *ngFor=\"let menu of menus; let i = index\">\n <div class=\"my-2 rounded-full shadow-xl\">\n <a *ngIf=\"isTypeNavigation(menu)\" [routerLink]=\"menu.externalLink ? null : menu.url\"\n (click)='menu.externalLink ? openExternalLink(menu.url) : toggleMenu()' title=\"{{ menu.tooltip }}\"\n class=\"{{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text']) }} flex items-center justify-center rounded-full hover:opacity-75\">\n <span *ngIf=\"menu.name\"\n class=\"text-sm font-semibold {{ menu.icon ? 'pr-2' : '' }}\">{{ menu.name }}</span>\n <ngt-svg *ngIf=\"menu.icon\" [src]='menu.icon' class=\"fill-current\"></ngt-svg>\n </a>\n\n <div *ngIf=\"isTypeAction(menu)\" title=\"{{ menu.tooltip }}\" (click)='onClick($event, menu)'\n class=\"{{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text']) }} flex items-center justify-center rounded-full hover:opacity-75 cursor-pointer\">\n <span *ngIf=\"menu.name\"\n class=\"text-sm font-semibold {{ menu.icon ? 'pr-2' : '' }}\">{{ menu.name }}</span>\n <ngt-svg *ngIf=\"menu.icon\" [src]='menu.icon' class=\"fill-current\"></ngt-svg>\n </div>\n </div>\n </ng-container>\n</div>\n\n<!-- Abrir menu -->\n<div (click)=\"toggleMenu()\"\n class=\"flex z-20 justify-center {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py']) }} focus:outline-none hover:opacity-75 cursor-pointer rounded-full outline-none\">\n <span *ngIf=\"label\"\n class=\"{{ icon ? 'pr-2' : '' }} self-center text-center text-sm font-semibold w-full\">{{ label }}</span>\n <ngt-svg *ngIf=\"icon\" [@openClose]=\"withAnimation ? isOpen ? 'open' : 'closed' : ''\" [src]='icon'\n class=\"fill-current\"></ngt-svg>\n</div>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }], animations: [
56
+ trigger('fadeY', [
57
+ state('void', style({ opacity: 0, transform: 'translateY(10px)' })),
58
+ transition(':enter, :leave', [
59
+ animate(300)
60
+ ])
61
+ ]),
62
+ trigger('openClose', [
63
+ state('open', style({
64
+ transform: 'rotate(180deg)'
65
+ })),
66
+ state('closed', style({
67
+ transform: 'rotate(-180deg)'
68
+ })),
69
+ transition('open => closed', [
70
+ animate('0.5s ease-in')
71
+ ]),
72
+ transition('closed => open', [
73
+ animate('0.5s ease-in')
74
+ ]),
75
+ ]),
76
+ ] });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFloatingButtonComponent, decorators: [{
78
+ type: Component,
79
+ args: [{ selector: 'ngt-floating-button', animations: [
80
+ trigger('fadeY', [
81
+ state('void', style({ opacity: 0, transform: 'translateY(10px)' })),
82
+ transition(':enter, :leave', [
83
+ animate(300)
84
+ ])
85
+ ]),
86
+ trigger('openClose', [
87
+ state('open', style({
88
+ transform: 'rotate(180deg)'
89
+ })),
90
+ state('closed', style({
91
+ transform: 'rotate(-180deg)'
92
+ })),
93
+ transition('open => closed', [
94
+ animate('0.5s ease-in')
95
+ ]),
96
+ transition('closed => open', [
97
+ animate('0.5s ease-in')
98
+ ]),
99
+ ]),
100
+ ], template: "<button (click)=\"toggleMenu()\" *ngIf=\"isOpen\" tabindex=\"-1\"\n class=\"fixed z-10 inset-0 h-full w-full bg-black opacity-0 cursor-default\"></button>\n\n<div class=\"{{ ngtStyle.compile(['w']) }} rounded-full relative z-20\" *ngIf=\"isOpen\" @fadeY>\n <ng-container *ngFor=\"let menu of menus; let i = index\">\n <div class=\"my-2 rounded-full shadow-xl\">\n <a *ngIf=\"isTypeNavigation(menu)\" [routerLink]=\"menu.externalLink ? null : menu.url\"\n (click)='menu.externalLink ? openExternalLink(menu.url) : toggleMenu()' title=\"{{ menu.tooltip }}\"\n class=\"{{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text']) }} flex items-center justify-center rounded-full hover:opacity-75\">\n <span *ngIf=\"menu.name\"\n class=\"text-sm font-semibold {{ menu.icon ? 'pr-2' : '' }}\">{{ menu.name }}</span>\n <ngt-svg *ngIf=\"menu.icon\" [src]='menu.icon' class=\"fill-current\"></ngt-svg>\n </a>\n\n <div *ngIf=\"isTypeAction(menu)\" title=\"{{ menu.tooltip }}\" (click)='onClick($event, menu)'\n class=\"{{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text']) }} flex items-center justify-center rounded-full hover:opacity-75 cursor-pointer\">\n <span *ngIf=\"menu.name\"\n class=\"text-sm font-semibold {{ menu.icon ? 'pr-2' : '' }}\">{{ menu.name }}</span>\n <ngt-svg *ngIf=\"menu.icon\" [src]='menu.icon' class=\"fill-current\"></ngt-svg>\n </div>\n </div>\n </ng-container>\n</div>\n\n<!-- Abrir menu -->\n<div (click)=\"toggleMenu()\"\n class=\"flex z-20 justify-center {{ ngtStyle.compile(['h', 'w', 'color.bg', 'color.text', 'px', 'py']) }} focus:outline-none hover:opacity-75 cursor-pointer rounded-full outline-none\">\n <span *ngIf=\"label\"\n class=\"{{ icon ? 'pr-2' : '' }} self-center text-center text-sm font-semibold w-full\">{{ label }}</span>\n <ngt-svg *ngIf=\"icon\" [@openClose]=\"withAnimation ? isOpen ? 'open' : 'closed' : ''\" [src]='icon'\n class=\"fill-current\"></ngt-svg>\n</div>" }]
101
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NgtStylizableDirective, decorators: [{
102
+ type: Self
103
+ }, {
104
+ type: Optional
105
+ }] }]; }, propDecorators: { menus: [{
106
+ type: Input
107
+ }], icon: [{
108
+ type: Input
109
+ }], label: [{
110
+ type: Input
111
+ }], withAnimation: [{
112
+ type: Input
113
+ }] } });
114
+ export var NgtFloatingButtonType;
115
+ (function (NgtFloatingButtonType) {
116
+ NgtFloatingButtonType["NAVIGATION"] = "NAVIGATION";
117
+ NgtFloatingButtonType["ACTION"] = "ACTION";
118
+ })(NgtFloatingButtonType || (NgtFloatingButtonType = {}));
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWZsb2F0aW5nLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZmxvYXRpbmctYnV0dG9uL25ndC1mbG9hdGluZy1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWZsb2F0aW5nLWJ1dHRvbi9uZ3QtZmxvYXRpbmctYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBWSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7O0FBNkI1RixNQUFNLE9BQU8sMEJBQTBCO0lBU25DLFlBQ1ksUUFBa0IsRUFDRSxzQkFBOEM7UUFEbEUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNFLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFQOUQsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFeEMsV0FBTSxHQUFZLEtBQUssQ0FBQztRQU8zQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ3pFO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVB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QUFFO2dDQUN6QixPQUFPLENBQUMsY0FBYyxDQUFDOzZCQUMxQixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRTtnQ0FDekIsT0FBTyxDQUFDLGNBQWMsQ0FBQzs2QkFDMUIsQ0FBQzt5QkFDTCxDQUFDO3FCQUNMOzswQkFhSSxJQUFJOzswQkFBSSxRQUFROzRDQVZMLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7O0FBa0VWLE1BQU0sQ0FBTixJQUFZLHFCQUdYO0FBSEQsV0FBWSxxQkFBcUI7SUFDN0Isa0RBQXlCLENBQUE7SUFDekIsMENBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUhXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFHaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPcHRpb25hbCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtZmxvYXRpbmctYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWZsb2F0aW5nLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdmYWRlWScsIFtcbiAgICAgICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDEwcHgpJyB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXIsIDpsZWF2ZScsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKDMwMClcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuXG4gICAgICAgIHRyaWdnZXIoJ29wZW5DbG9zZScsIFtcbiAgICAgICAgICAgIHN0YXRlKCdvcGVuJywgc3R5bGUoe1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJ1xuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgc3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdyb3RhdGUoLTE4MGRlZyknXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IGNsb3NlZCcsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKCcwLjVzIGVhc2UtaW4nKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdjbG9zZWQgPT4gb3BlbicsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKCcwLjVzIGVhc2UtaW4nKVxuICAgICAgICAgICAgXSksXG4gICAgICAgIF0pLFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd0RmxvYXRpbmdCdXR0b25Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtZW51czogQXJyYXk8Tmd0RmxvYXRpbmdCdXR0b25NZW51PjtcbiAgICBASW5wdXQoKSBwdWJsaWMgaWNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB3aXRoQW5pbWF0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIG5ndFN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuZ3RTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlLFxuICAgICkge1xuICAgICAgICBpZiAodGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gdGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlLmdldE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndEZsb2F0aW5nQnV0dG9uJywge1xuICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICBiZzogJ2JnLWJsdWUtNTAwJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC13aGl0ZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHg6ICdweC00JyxcbiAgICAgICAgICAgIHB5OiAncHktNCcsXG4gICAgICAgICAgICBoOiAnaC0xMicsXG4gICAgICAgICAgICB3OiAndy0xMidcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZU1lbnUoKSB7XG4gICAgICAgIHRoaXMuaXNPcGVuID0gISh0aGlzLmlzT3Blbik7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5FeHRlcm5hbExpbmsodXJsOiBzdHJpbmcpIHtcbiAgICAgICAgd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wiKTtcbiAgICAgICAgdGhpcy50b2dnbGVNZW51KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IEV2ZW50LCBtZW51OiBOZ3RGbG9hdGluZ0J1dHRvbk1lbnUpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMudG9nZ2xlTWVudSgpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgbWVudS5hY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBtZW51LmFjdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBY3Rpb24gbXVzdCBiZSBhIGZ1bmN0aW9uIScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1R5cGVBY3Rpb24obWVudTogTmd0RmxvYXRpbmdCdXR0b25NZW51KSB7XG4gICAgICAgIHJldHVybiBtZW51LnR5cGUgPT0gTmd0RmxvYXRpbmdCdXR0b25UeXBlLkFDVElPTjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNUeXBlTmF2aWdhdGlvbihtZW51OiBOZ3RGbG9hdGluZ0J1dHRvbk1lbnUpIHtcbiAgICAgICAgcmV0dXJuIG1lbnUudHlwZSA9PSBOZ3RGbG9hdGluZ0J1dHRvblR5cGUuTkFWSUdBVElPTjtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0RmxvYXRpbmdCdXR0b25NZW51IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHR5cGU6IE5ndEZsb2F0aW5nQnV0dG9uVHlwZTtcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIHRvb2x0aXA/OiBzdHJpbmc7XG4gICAgZXh0ZXJuYWxMaW5rPzogYm9vbGVhbjtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgYWN0aW9uPzogRnVuY3Rpb247XG59XG5cbmV4cG9ydCBlbnVtIE5ndEZsb2F0aW5nQnV0dG9uVHlwZSB7XG4gICAgTkFWSUdBVElPTiA9ICdOQVZJR0FUSU9OJyxcbiAgICBBQ1RJT04gPSAnQUNUSU9OJ1xufVxuIiwiPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCIgKm5nSWY9XCJpc09wZW5cIiB0YWJpbmRleD1cIi0xXCJcbiAgICBjbGFzcz1cImZpeGVkIHotMTAgaW5zZXQtMCBoLWZ1bGwgdy1mdWxsIGJnLWJsYWNrIG9wYWNpdHktMCBjdXJzb3ItZGVmYXVsdFwiPjwvYnV0dG9uPlxuXG48ZGl2IGNsYXNzPVwie3sgbmd0U3R5bGUuY29tcGlsZShbJ3cnXSkgfX0gcm91bmRlZC1mdWxsIHJlbGF0aXZlIHotMjBcIiAqbmdJZj1cImlzT3BlblwiIEBmYWRlWT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW51IG9mIG1lbnVzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJteS0yIHJvdW5kZWQtZnVsbCBzaGFkb3cteGxcIj5cbiAgICAgICAgICAgIDxhICpuZ0lmPVwiaXNUeXBlTmF2aWdhdGlvbihtZW51KVwiIFtyb3V0ZXJMaW5rXT1cIm1lbnUuZXh0ZXJuYWxMaW5rID8gbnVsbCA6IG1lbnUudXJsXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPSdtZW51LmV4dGVybmFsTGluayA/IG9wZW5FeHRlcm5hbExpbmsobWVudS51cmwpIDogdG9nZ2xlTWVudSgpJyB0aXRsZT1cInt7IG1lbnUudG9vbHRpcCB9fVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBuZ3RTdHlsZS5jb21waWxlKFsnaCcsICd3JywgJ2NvbG9yLmJnJywgJ2NvbG9yLnRleHQnXSkgfX0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGhvdmVyOm9wYWNpdHktNzVcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1lbnUubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHt7IG1lbnUuaWNvbiA/ICdwci0yJyA6ICcnIH19XCI+e3sgbWVudS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxuZ3Qtc3ZnICpuZ0lmPVwibWVudS5pY29uXCIgW3NyY109J21lbnUuaWNvbicgY2xhc3M9XCJmaWxsLWN1cnJlbnRcIj48L25ndC1zdmc+XG4gICAgICAgICAgICA8L2E+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1R5cGVBY3Rpb24obWVudSlcIiB0aXRsZT1cInt7IG1lbnUudG9vbHRpcCB9fVwiIChjbGljayk9J29uQ2xpY2soJGV2ZW50LCBtZW51KSdcbiAgICAgICAgICAgICAgICBjbGFzcz1cInt7IG5ndFN0eWxlLmNvbXBpbGUoWydoJywgJ3cnLCAnY29sb3IuYmcnLCAnY29sb3IudGV4dCddKSB9fSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgaG92ZXI6b3BhY2l0eS03NSBjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibWVudS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQge3sgbWVudS5pY29uID8gJ3ByLTInIDogJycgfX1cIj57eyBtZW51Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPG5ndC1zdmcgKm5nSWY9XCJtZW51Lmljb25cIiBbc3JjXT0nbWVudS5pY29uJyBjbGFzcz1cImZpbGwtY3VycmVudFwiPjwvbmd0LXN2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48IS0tIEFicmlyIG1lbnUgLS0+XG48ZGl2IChjbGljayk9XCJ0b2dnbGVNZW51KClcIlxuICAgIGNsYXNzPVwiZmxleCB6LTIwIGp1c3RpZnktY2VudGVyIHt7IG5ndFN0eWxlLmNvbXBpbGUoWydoJywgJ3cnLCAnY29sb3IuYmcnLCAnY29sb3IudGV4dCcsICdweCcsICdweSddKSB9fSBmb2N1czpvdXRsaW5lLW5vbmUgaG92ZXI6b3BhY2l0eS03NSBjdXJzb3ItcG9pbnRlciByb3VuZGVkLWZ1bGwgb3V0bGluZS1ub25lXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJsYWJlbFwiXG4gICAgICAgIGNsYXNzPVwie3sgaWNvbiA/ICdwci0yJyA6ICcnIH19IHNlbGYtY2VudGVyIHRleHQtY2VudGVyIHRleHQtc20gZm9udC1zZW1pYm9sZCB3LWZ1bGxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICA8bmd0LXN2ZyAqbmdJZj1cImljb25cIiBbQG9wZW5DbG9zZV09XCJ3aXRoQW5pbWF0aW9uID8gaXNPcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCcgOiAnJ1wiIFtzcmNdPSdpY29uJ1xuICAgICAgICBjbGFzcz1cImZpbGwtY3VycmVudFwiPjwvbmd0LXN2Zz5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { RouterModule } from '@angular/router';
4
+ import { NgtSvgModule } from '../ngt-svg/ngt-svg.module';
5
+ import { NgtFloatingButtonComponent } from './ngt-floating-button.component';
6
+ import * as i0 from "@angular/core";
7
+ export class NgtFloatingButtonModule {
8
+ }
9
+ NgtFloatingButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFloatingButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ NgtFloatingButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: NgtFloatingButtonModule, declarations: [NgtFloatingButtonComponent], imports: [CommonModule,
11
+ RouterModule,
12
+ NgtSvgModule], exports: [NgtFloatingButtonComponent] });
13
+ NgtFloatingButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFloatingButtonModule, imports: [CommonModule,
14
+ RouterModule,
15
+ NgtSvgModule] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFloatingButtonModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [NgtFloatingButtonComponent],
20
+ exports: [NgtFloatingButtonComponent],
21
+ imports: [
22
+ CommonModule,
23
+ RouterModule,
24
+ NgtSvgModule
25
+ ]
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWZsb2F0aW5nLWJ1dHRvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZmxvYXRpbmctYnV0dG9uL25ndC1mbG9hdGluZy1idXR0b24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBVzdFLE1BQU0sT0FBTyx1QkFBdUI7O29IQUF2Qix1QkFBdUI7cUhBQXZCLHVCQUF1QixpQkFSakIsMEJBQTBCLGFBR3JDLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWSxhQUpOLDBCQUEwQjtxSEFPM0IsdUJBQXVCLFlBTDVCLFlBQVk7UUFDWixZQUFZO1FBQ1osWUFBWTsyRkFHUCx1QkFBdUI7a0JBVG5DLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUNyQyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFlBQVk7cUJBQ2Y7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IE5ndFN2Z01vZHVsZSB9IGZyb20gJy4uL25ndC1zdmcvbmd0LXN2Zy5tb2R1bGUnO1xuaW1wb3J0IHsgTmd0RmxvYXRpbmdCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL25ndC1mbG9hdGluZy1idXR0b24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtOZ3RGbG9hdGluZ0J1dHRvbkNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW05ndEZsb2F0aW5nQnV0dG9uQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBOZ3RTdmdNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ndEZsb2F0aW5nQnV0dG9uTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,22 @@
1
+ import { Component, Input, Optional } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../services/http/ngt-translate.service";
4
+ import * as i2 from "@angular/common";
5
+ export class NgtFormValidationMessageComponent {
6
+ constructor(ngtTranslateService) {
7
+ this.ngtTranslateService = ngtTranslateService;
8
+ }
9
+ }
10
+ NgtFormValidationMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFormValidationMessageComponent, deps: [{ token: i1.NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
11
+ NgtFormValidationMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: NgtFormValidationMessageComponent, selector: "ngt-form-validation-message", inputs: { canShowValidationMessage: "canShowValidationMessage", message: "message" }, ngImport: i0, template: "<div *ngIf=\"canShowValidationMessage\" class=\"mb-5 p-2 rounded bg-red-500 text-white\">\n {{ message || ngtTranslateService.ngtFormDefaultValidationMessage }}\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFormValidationMessageComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'ngt-form-validation-message', template: "<div *ngIf=\"canShowValidationMessage\" class=\"mb-5 p-2 rounded bg-red-500 text-white\">\n {{ message || ngtTranslateService.ngtFormDefaultValidationMessage }}\n</div>" }]
15
+ }], ctorParameters: function () { return [{ type: i1.NgtTranslateService, decorators: [{
16
+ type: Optional
17
+ }] }]; }, propDecorators: { canShowValidationMessage: [{
18
+ type: Input
19
+ }], message: [{
20
+ type: Input
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWZvcm0tdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1mb3JtL25ndC1mb3JtLXZhbGlkYXRpb24tbWVzc2FnZS9uZ3QtZm9ybS12YWxpZGF0aW9uLW1lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWZvcm0vbmd0LWZvcm0tdmFsaWRhdGlvbi1tZXNzYWdlL25ndC1mb3JtLXZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRM0QsTUFBTSxPQUFPLGlDQUFpQztJQUkxQyxZQUVXLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO0lBQy9DLENBQUM7OzhIQVBJLGlDQUFpQztrSEFBakMsaUNBQWlDLHlKQ1I5Qyw2S0FFTTsyRkRNTyxpQ0FBaUM7a0JBSjdDLFNBQVM7K0JBQ0ksNkJBQTZCOzswQkFRbEMsUUFBUTs0Q0FKRyx3QkFBd0I7c0JBQXZDLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5ndFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL25ndC10cmFuc2xhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LWZvcm0tdmFsaWRhdGlvbi1tZXNzYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWZvcm0tdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Rm9ybVZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBwdWJsaWMgY2FuU2hvd1ZhbGlkYXRpb25NZXNzYWdlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIHB1YmxpYyBuZ3RUcmFuc2xhdGVTZXJ2aWNlOiBOZ3RUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7IH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJjYW5TaG93VmFsaWRhdGlvbk1lc3NhZ2VcIiBjbGFzcz1cIm1iLTUgcC0yIHJvdW5kZWQgYmctcmVkLTUwMCB0ZXh0LXdoaXRlXCI+XG4gICAge3sgbWVzc2FnZSB8fCBuZ3RUcmFuc2xhdGVTZXJ2aWNlLm5ndEZvcm1EZWZhdWx0VmFsaWRhdGlvbk1lc3NhZ2UgfX1cbjwvZGl2PiJdfQ==
@@ -0,0 +1,193 @@
1
+ import { Component, EventEmitter, Host, Input, Optional, Output } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { isValidNgForm } from '../../helpers/form/form';
4
+ import { getIdFromUri } from '../../helpers/routing/route';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@angular/router";
8
+ import * as i3 from "../../services/http/ngt-http-form.service";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "./ngt-form-validation-message/ngt-form-validation-message.component";
11
+ export class NgtFormComponent {
12
+ constructor(formContainer, ngForm, router, route, ngtHttpFormService) {
13
+ this.formContainer = formContainer;
14
+ this.ngForm = ngForm;
15
+ this.router = router;
16
+ this.route = route;
17
+ this.ngtHttpFormService = ngtHttpFormService;
18
+ this.guessFormState = true;
19
+ this.message = '';
20
+ this.routeIdentifier = 'id';
21
+ this.onCreating = new EventEmitter;
22
+ this.onEditing = new EventEmitter;
23
+ this.onLoadingChange = new EventEmitter;
24
+ this.onShiningChange = new EventEmitter;
25
+ this.setupComponent = new EventEmitter;
26
+ this.onResourceLoadingError = new EventEmitter;
27
+ this.subscriptions = [];
28
+ }
29
+ ngOnInit() {
30
+ if (this.guessFormState) {
31
+ this.subscriptions.push(this.determineFormState().subscribe(() => {
32
+ this.setupComponent.emit();
33
+ }));
34
+ }
35
+ else {
36
+ this.setupComponent.emit();
37
+ }
38
+ this.subscriptions.push(this.ngForm.ngSubmit.subscribe(() => {
39
+ if (!this.ngForm.valid) {
40
+ NgtFormComponent.onSubmitInvalidForm.emit(this.ngForm);
41
+ }
42
+ }));
43
+ }
44
+ ngOnDestroy() {
45
+ this.destroySubscriptions();
46
+ }
47
+ isCreating() {
48
+ return this.formState === NgtFormState.CREATING;
49
+ }
50
+ isEditing() {
51
+ return this.formState === NgtFormState.EDITING;
52
+ }
53
+ isLoading() {
54
+ return this.loading;
55
+ }
56
+ isShining() {
57
+ return this.shining;
58
+ }
59
+ canShowValidationMessage() {
60
+ return this.formContainer &&
61
+ this.formContainer['submitted'] &&
62
+ this.formContainer.status != 'VALID' &&
63
+ this.formContainer.status != 'DISABLED';
64
+ }
65
+ setShining(shining) {
66
+ this.shining = shining;
67
+ this.onShiningChange.emit(this.shining);
68
+ }
69
+ setLoading(loading) {
70
+ this.loading = loading;
71
+ this.onLoadingChange.emit(this.loading);
72
+ }
73
+ setFormState(state, triggerChange = true) {
74
+ this.formState = state;
75
+ if (triggerChange) {
76
+ this.triggerFormStateChange();
77
+ }
78
+ }
79
+ getFormState() {
80
+ return this.formState;
81
+ }
82
+ triggerFormStateChange() {
83
+ if (this.isEditing()) {
84
+ this.triggerFormEditing();
85
+ }
86
+ else if (this.isCreating()) {
87
+ this.triggerFormCreating();
88
+ }
89
+ }
90
+ formHasChanges() {
91
+ return this.ngForm.dirty;
92
+ }
93
+ saveResource() {
94
+ return new Observable((observer) => {
95
+ if (isValidNgForm(this.ngForm)) {
96
+ this.setLoading(true);
97
+ this.subscriptions.push(this.ngtHttpFormService.saveResource(this.resource)
98
+ .subscribe((response) => {
99
+ this.setLoading(false);
100
+ observer.next(response);
101
+ observer.complete();
102
+ }));
103
+ }
104
+ else {
105
+ observer.error();
106
+ }
107
+ });
108
+ }
109
+ triggerFormCreating() {
110
+ this.onCreating.emit();
111
+ }
112
+ triggerFormEditing() {
113
+ if (this.uriId && this.resource) {
114
+ this.setLoading(true);
115
+ this.setShining(true);
116
+ this.subscriptions.push(this.ngtHttpFormService.loadResourceById(this.resource, this.uriId)
117
+ .subscribe((resource) => {
118
+ this.setLoading(false);
119
+ this.setShining(false);
120
+ this.onEditing.emit(resource);
121
+ setTimeout(() => this.ngForm.form.markAsPristine(), 1500);
122
+ }, (error) => {
123
+ this.setLoading(false);
124
+ this.setShining(false);
125
+ this.onResourceLoadingError.emit(error);
126
+ }));
127
+ return;
128
+ }
129
+ this.onEditing.emit(null);
130
+ }
131
+ determineFormState() {
132
+ return new Observable((observer) => {
133
+ this.subscriptions.push(getIdFromUri(this.route, this.routeIdentifier).subscribe((id) => {
134
+ this.uriId = id;
135
+ if (this.uriId) {
136
+ this.setFormState(NgtFormState.EDITING);
137
+ }
138
+ else {
139
+ this.setFormState(NgtFormState.CREATING);
140
+ }
141
+ observer.next();
142
+ }));
143
+ });
144
+ }
145
+ destroySubscriptions() {
146
+ this.subscriptions.forEach(subscription => subscription.unsubscribe());
147
+ this.subscriptions = [];
148
+ }
149
+ }
150
+ NgtFormComponent.onSubmitInvalidForm = new EventEmitter;
151
+ NgtFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFormComponent, deps: [{ token: i1.ControlContainer, host: true, optional: true }, { token: i1.NgForm, host: true, optional: true }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.NgtHttpFormService }], target: i0.ɵɵFactoryTarget.Component });
152
+ NgtFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: NgtFormComponent, selector: "ngt-form", inputs: { guessFormState: "guessFormState", message: "message", routeIdentifier: "routeIdentifier", resource: "resource", customLayout: "customLayout" }, outputs: { onCreating: "onCreating", onEditing: "onEditing", onLoadingChange: "onLoadingChange", onShiningChange: "onShiningChange", setupComponent: "setupComponent", onResourceLoadingError: "onResourceLoadingError" }, ngImport: i0, template: "<ngt-form-validation-message *ngIf='!customLayout' [canShowValidationMessage]=\"canShowValidationMessage()\"\n [message]=\"message\">\n</ngt-form-validation-message>\n\n<ng-content></ng-content>", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.NgtFormValidationMessageComponent, selector: "ngt-form-validation-message", inputs: ["canShowValidationMessage", "message"] }] });
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFormComponent, decorators: [{
154
+ type: Component,
155
+ args: [{ selector: 'ngt-form', template: "<ngt-form-validation-message *ngIf='!customLayout' [canShowValidationMessage]=\"canShowValidationMessage()\"\n [message]=\"message\">\n</ngt-form-validation-message>\n\n<ng-content></ng-content>" }]
156
+ }], ctorParameters: function () { return [{ type: i1.ControlContainer, decorators: [{
157
+ type: Optional
158
+ }, {
159
+ type: Host
160
+ }] }, { type: i1.NgForm, decorators: [{
161
+ type: Optional
162
+ }, {
163
+ type: Host
164
+ }] }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.NgtHttpFormService }]; }, propDecorators: { guessFormState: [{
165
+ type: Input
166
+ }], message: [{
167
+ type: Input
168
+ }], routeIdentifier: [{
169
+ type: Input
170
+ }], resource: [{
171
+ type: Input
172
+ }], customLayout: [{
173
+ type: Input
174
+ }], onCreating: [{
175
+ type: Output
176
+ }], onEditing: [{
177
+ type: Output
178
+ }], onLoadingChange: [{
179
+ type: Output
180
+ }], onShiningChange: [{
181
+ type: Output
182
+ }], setupComponent: [{
183
+ type: Output
184
+ }], onResourceLoadingError: [{
185
+ type: Output
186
+ }] } });
187
+ export var NgtFormState;
188
+ (function (NgtFormState) {
189
+ NgtFormState["CREATING"] = "CREATING";
190
+ NgtFormState["EDITING"] = "EDITING";
191
+ })(NgtFormState || (NgtFormState = {}));
192
+ ;
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWZvcm0vbmd0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWZvcm0vbmd0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4RyxPQUFPLEVBQUMsVUFBVSxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLGdCQUFnQjtJQXVCekIsWUFFVyxhQUErQixFQUUvQixNQUFjLEVBQ2QsTUFBYyxFQUNkLEtBQXFCLEVBQ3BCLGtCQUFzQztRQUx2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFFL0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNwQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBN0JsQyxtQkFBYyxHQUFZLElBQUksQ0FBQztRQUMvQixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLG9CQUFlLEdBQVcsSUFBSSxDQUFDO1FBTTlCLGVBQVUsR0FBc0IsSUFBSSxZQUFZLENBQUM7UUFDakQsY0FBUyxHQUFzQixJQUFJLFlBQVksQ0FBQztRQUNoRCxvQkFBZSxHQUEwQixJQUFJLFlBQVksQ0FBQztRQUMxRCxvQkFB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LENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7O0FBdkx1QixvQ0FBbUIsR0FBeUIsSUFBSSxZQUFZLENBQUM7NkdBUDVFLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLHFhQ2I3Qix1TUFJeUI7MkZEU1osZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNJLFVBQVU7OzBCQTJCZixRQUFROzswQkFBSSxJQUFJOzswQkFFaEIsUUFBUTs7MEJBQUksSUFBSTsrSEF6QkwsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUlXLFVBQVU7c0JBQTFCLE1BQU07Z0JBQ1UsU0FBUztzQkFBekIsTUFBTTtnQkFDVSxlQUFlO3NCQUEvQixNQUFNO2dCQUNVLGVBQWU7c0JBQS9CLE1BQU07Z0JBQ1UsY0FBYztzQkFBOUIsTUFBTTtnQkFDVSxzQkFBc0I7c0JBQXRDLE1BQU07O0FBbUxYLE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDcEIscUNBQXFCLENBQUE7SUFDckIsbUNBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xDb250YWluZXIsIE5nRm9ybX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge2lzVmFsaWROZ0Zvcm19IGZyb20gJy4uLy4uL2hlbHBlcnMvZm9ybS9mb3JtJztcbmltcG9ydCB7Z2V0SWRGcm9tVXJpfSBmcm9tICcuLi8uLi9oZWxwZXJzL3JvdXRpbmcvcm91dGUnO1xuaW1wb3J0IHtOZ3RIdHRwRm9ybVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvbmd0LWh0dHAtZm9ybS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTmd0Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBwdWJsaWMgZ3Vlc3NGb3JtU3RhdGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBwdWJsaWMgcm91dGVJZGVudGlmaWVyOiBzdHJpbmcgPSAnaWQnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyByZXNvdXJjZTogYW55O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21MYXlvdXQ6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIHN0YXRpYyBvblN1Ym1pdEludmFsaWRGb3JtOiBFdmVudEVtaXR0ZXI8TmdGb3JtPiA9IG5ldyBFdmVudEVtaXR0ZXI7XG5cbiAgICBAT3V0cHV0KCkgcHVibGljIG9uQ3JlYXRpbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjtcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uRWRpdGluZzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25Mb2FkaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25TaGluaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgc2V0dXBDb21wb25lbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjtcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uUmVzb3VyY2VMb2FkaW5nRXJyb3I6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjtcblxuICAgIHB1YmxpYyBmb3JtU3RhdGU6IE5ndEZvcm1TdGF0ZTtcbiAgICBwdWJsaWMgdXJpSWQ6IGFueTtcblxuICAgIHByaXZhdGUgbG9hZGluZzogYm9vbGVhbjtcbiAgICBwcml2YXRlIHNoaW5pbmc6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KClcbiAgICAgICAgcHVibGljIGZvcm1Db250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KClcbiAgICAgICAgcHVibGljIG5nRm9ybTogTmdGb3JtLFxuICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgbmd0SHR0cEZvcm1TZXJ2aWNlOiBOZ3RIdHRwRm9ybVNlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmd1ZXNzRm9ybVN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLmRldGVybWluZUZvcm1TdGF0ZSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBDb21wb25lbnQuZW1pdCgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudC5lbWl0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIHRoaXMubmdGb3JtLm5nU3VibWl0LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm5nRm9ybS52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICBOZ3RGb3JtQ29tcG9uZW50Lm9uU3VibWl0SW52YWxpZEZvcm0uZW1pdCh0aGlzLm5nRm9ybSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveVN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDcmVhdGluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVN0YXRlID09PSBOZ3RGb3JtU3RhdGUuQ1JFQVRJTkc7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRWRpdGluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVN0YXRlID09PSBOZ3RGb3JtU3RhdGUuRURJVElORztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNMb2FkaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkaW5nO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NoaW5pbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaW5pbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGNhblNob3dWYWxpZGF0aW9uTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUNvbnRhaW5lciAmJlxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udGFpbmVyWydzdWJtaXR0ZWQnXSAmJlxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udGFpbmVyLnN0YXR1cyAhPSAnVkFMSUQnICYmXG4gICAgICAgICAgICB0aGlzLmZvcm1Db250YWluZXIuc3RhdHVzICE9ICdESVNBQkxFRCc7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFNoaW5pbmcoc2hpbmluZzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNoaW5pbmcgPSBzaGluaW5nO1xuICAgICAgICB0aGlzLm9uU2hpbmluZ0NoYW5nZS5lbWl0KHRoaXMuc2hpbmluZyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBsb2FkaW5nO1xuICAgICAgICB0aGlzLm9uTG9hZGluZ0NoYW5nZS5lbWl0KHRoaXMubG9hZGluZyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZvcm1TdGF0ZShzdGF0ZTogTmd0Rm9ybVN0YXRlLCB0cmlnZ2VyQ2hhbmdlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLmZvcm1TdGF0ZSA9IHN0YXRlO1xuXG4gICAgICAgIGlmICh0cmlnZ2VyQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJGb3JtU3RhdGVDaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1TdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJpZ2dlckZvcm1TdGF0ZUNoYW5nZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFZGl0aW5nKCkpIHtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlckZvcm1FZGl0aW5nKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0NyZWF0aW5nKCkpIHtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlckZvcm1DcmVhdGluZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGZvcm1IYXNDaGFuZ2VzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0Zvcm0uZGlydHk7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVSZXNvdXJjZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWROZ0Zvcm0odGhpcy5uZ0Zvcm0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkaW5nKHRydWUpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmd0SHR0cEZvcm1TZXJ2aWNlLnNhdmVSZXNvdXJjZSh0aGlzLnJlc291cmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRyaWdnZXJGb3JtQ3JlYXRpbmcoKSB7XG4gICAgICAgIHRoaXMub25DcmVhdGluZy5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRyaWdnZXJGb3JtRWRpdGluZygpIHtcbiAgICAgICAgaWYgKHRoaXMudXJpSWQgJiYgdGhpcy5yZXNvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5zZXRTaGluaW5nKHRydWUpO1xuXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLm5ndEh0dHBGb3JtU2VydmljZS5sb2FkUmVzb3VyY2VCeUlkKHRoaXMucmVzb3VyY2UsIHRoaXMudXJpSWQpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzb3VyY2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTaGluaW5nKGZhbHNlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25FZGl0aW5nLmVtaXQocmVzb3VyY2UpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm5nRm9ybS5mb3JtLm1hcmtBc1ByaXN0aW5lKCksIDE1MDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTaGluaW5nKGZhbHNlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25SZXNvdXJjZUxvYWRpbmdFcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkVkaXRpbmcuZW1pdChudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRldGVybWluZUZvcm1TdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgZ2V0SWRGcm9tVXJpKHRoaXMucm91dGUsIHRoaXMucm91dGVJZGVudGlmaWVyKS5zdWJzY3JpYmUoKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cmlJZCA9IGlkO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnVyaUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEZvcm1TdGF0ZShOZ3RGb3JtU3RhdGUuRURJVElORyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEZvcm1TdGF0ZShOZ3RGb3JtU3RhdGUuQ1JFQVRJTkcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lTdWJzY3JpcHRpb25zKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIE5ndEZvcm1TdGF0ZSB7XG4gICAgQ1JFQVRJTkcgPSAnQ1JFQVRJTkcnLFxuICAgIEVESVRJTkcgPSAnRURJVElORydcbn07XG4iLCI8bmd0LWZvcm0tdmFsaWRhdGlvbi1tZXNzYWdlICpuZ0lmPSchY3VzdG9tTGF5b3V0JyBbY2FuU2hvd1ZhbGlkYXRpb25NZXNzYWdlXT1cImNhblNob3dWYWxpZGF0aW9uTWVzc2FnZSgpXCJcbiAgICBbbWVzc2FnZV09XCJtZXNzYWdlXCI+XG48L25ndC1mb3JtLXZhbGlkYXRpb24tbWVzc2FnZT5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { NgtFormValidationMessageComponent } from './ngt-form-validation-message/ngt-form-validation-message.component';
4
+ import { NgtFormComponent } from './ngt-form.component';
5
+ import * as i0 from "@angular/core";
6
+ export class NgtFormModule {
7
+ }
8
+ NgtFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ NgtFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: NgtFormModule, declarations: [NgtFormComponent,
10
+ NgtFormValidationMessageComponent], imports: [CommonModule], exports: [NgtFormComponent,
11
+ NgtFormValidationMessageComponent] });
12
+ NgtFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFormModule, imports: [CommonModule] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtFormModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [
17
+ CommonModule
18
+ ],
19
+ declarations: [
20
+ NgtFormComponent,
21
+ NgtFormValidationMessageComponent
22
+ ],
23
+ exports: [
24
+ NgtFormComponent,
25
+ NgtFormValidationMessageComponent
26
+ ]
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWZvcm0vbmd0LWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQWdCeEQsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxpQkFUbEIsZ0JBQWdCO1FBQ2hCLGlDQUFpQyxhQUpqQyxZQUFZLGFBT1osZ0JBQWdCO1FBQ2hCLGlDQUFpQzsyR0FJNUIsYUFBYSxZQVpsQixZQUFZOzJGQVlQLGFBQWE7a0JBZHpCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7cUJBQ2Y7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLGdCQUFnQjt3QkFDaEIsaUNBQWlDO3FCQUNwQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsZ0JBQWdCO3dCQUNoQixpQ0FBaUM7cUJBQ3BDO2lCQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5ndEZvcm1WYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vbmd0LWZvcm0tdmFsaWRhdGlvbi1tZXNzYWdlL25ndC1mb3JtLXZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4vbmd0LWZvcm0uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIE5ndEZvcm1Db21wb25lbnQsXG4gICAgICAgIE5ndEZvcm1WYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBOZ3RGb3JtQ29tcG9uZW50LFxuICAgICAgICBOZ3RGb3JtVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnRcbiAgICBdXG5cbn0pXG5leHBvcnQgY2xhc3MgTmd0Rm9ybU1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,39 @@
1
+ import { Component, Input, Optional, Self, ViewChild } from '@angular/core';
2
+ import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../directives/ngt-stylizable/ngt-stylizable.directive";
5
+ export class NgtHeaderNavComponent {
6
+ constructor(injector, ngtStylizableDirective) {
7
+ this.injector = injector;
8
+ this.ngtStylizableDirective = ngtStylizableDirective;
9
+ if (this.ngtStylizableDirective) {
10
+ this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
11
+ }
12
+ else {
13
+ this.ngtStyle = new NgtStylizableService();
14
+ }
15
+ this.ngtStyle.load(this.injector, 'HeaderNav', {
16
+ h: 'h-auto',
17
+ color: {}
18
+ });
19
+ }
20
+ ngAfterViewInit() {
21
+ this.element.nativeElement.classList.add('tail-animate-fade-up');
22
+ }
23
+ }
24
+ NgtHeaderNavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtHeaderNavComponent, deps: [{ token: i0.Injector }, { token: i1.NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
25
+ NgtHeaderNavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: NgtHeaderNavComponent, selector: "ngt-header-nav", inputs: { ngtStyle: "ngtStyle" }, viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], ngImport: i0, template: "<section class=\"flex\">\n <nav class=\"w-full relative {{ ngtStyle.compile(['color.bg']) }}\" #element>\n <div class=\"h-full\">\n <!-- Float Left -->\n <div class=\"float-left flex\">\n <ng-content select=\"[left-header]\"></ng-content>\n </div>\n \n <!-- Float Right -->\n <div class=\"float-right flex h-full\">\n <ng-content select=\"[right-header]\"></ng-content>\n </div>\n \n <!-- Fallback -->\n <ng-content></ng-content>\n </div>\n </nav>\n</section>" });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtHeaderNavComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'ngt-header-nav', template: "<section class=\"flex\">\n <nav class=\"w-full relative {{ ngtStyle.compile(['color.bg']) }}\" #element>\n <div class=\"h-full\">\n <!-- Float Left -->\n <div class=\"float-left flex\">\n <ng-content select=\"[left-header]\"></ng-content>\n </div>\n \n <!-- Float Right -->\n <div class=\"float-right flex h-full\">\n <ng-content select=\"[right-header]\"></ng-content>\n </div>\n \n <!-- Fallback -->\n <ng-content></ng-content>\n </div>\n </nav>\n</section>" }]
29
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.NgtStylizableDirective, decorators: [{
30
+ type: Self
31
+ }, {
32
+ type: Optional
33
+ }] }]; }, propDecorators: { element: [{
34
+ type: ViewChild,
35
+ args: ['element', { static: true }]
36
+ }], ngtStyle: [{
37
+ type: Input
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWhlYWRlci1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWhlYWRlci1uYXYvbmd0LWhlYWRlci1uYXYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWhlYWRlci1uYXYvbmd0LWhlYWRlci1uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2xHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7QUFNNUYsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QixZQUNZLFFBQWtCLEVBQ0Usc0JBQThDO1FBRGxFLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDRSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBRTFFLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDekU7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1NBQzlDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUU7WUFDM0MsQ0FBQyxFQUFFLFFBQVE7WUFDWCxLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRSxDQUFDOztrSEF2QlEscUJBQXFCO3NHQUFyQixxQkFBcUIsME1DVGxDLHlpQkFpQlU7MkZEUkcscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNJLGdCQUFnQjs7MEJBVXJCLElBQUk7OzBCQUFJLFFBQVE7NENBTjBCLE9BQU87c0JBQXJELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFdEIsUUFBUTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPcHRpb25hbCwgU2VsZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5ndFN0eWxpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1oZWFkZXItbmF2JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWhlYWRlci1uYXYuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5ndEhlYWRlck5hdkNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnZWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KCkgcHVibGljIG5ndFN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuZ3RTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSB0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUuZ2V0Tmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmd0U3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnSGVhZGVyTmF2Jywge1xuICAgICAgICAgICAgaDogJ2gtYXV0bycsXG4gICAgICAgICAgICBjb2xvcjoge31cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndGFpbC1hbmltYXRlLWZhZGUtdXAnKTtcbiAgICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cImZsZXhcIj5cbiAgICA8bmF2IGNsYXNzPVwidy1mdWxsIHJlbGF0aXZlIHt7IG5ndFN0eWxlLmNvbXBpbGUoWydjb2xvci5iZyddKSB9fVwiICNlbGVtZW50PlxuICAgICAgPGRpdiBjbGFzcz1cImgtZnVsbFwiPlxuICAgICAgICA8IS0tIEZsb2F0IExlZnQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1sZWZ0IGZsZXhcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGVmdC1oZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICAgIDwhLS0gRmxvYXQgUmlnaHQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1yaWdodCBmbGV4IGgtZnVsbFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyaWdodC1oZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICAgIDwhLS0gRmFsbGJhY2sgLS0+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmF2PlxuPC9zZWN0aW9uPiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { NgtHeaderNavComponent } from './ngt-header-nav.component';
4
+ import * as i0 from "@angular/core";
5
+ export class NgtHeaderNavModule {
6
+ }
7
+ NgtHeaderNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtHeaderNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ NgtHeaderNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: NgtHeaderNavModule, declarations: [NgtHeaderNavComponent], imports: [CommonModule], exports: [NgtHeaderNavComponent] });
9
+ NgtHeaderNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtHeaderNavModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: NgtHeaderNavModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [NgtHeaderNavComponent],
14
+ exports: [NgtHeaderNavComponent],
15
+ imports: [
16
+ CommonModule
17
+ ]
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWhlYWRlci1uYXYubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWhlYWRlci1uYXYvbmd0LWhlYWRlci1uYXYubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVNuRSxNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBTloscUJBQXFCLGFBR2hDLFlBQVksYUFGTixxQkFBcUI7Z0hBS3RCLGtCQUFrQixZQUh2QixZQUFZOzJGQUdQLGtCQUFrQjtrQkFQOUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3FCQUNmO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5ndEhlYWRlck5hdkNvbXBvbmVudCB9IGZyb20gJy4vbmd0LWhlYWRlci1uYXYuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtOZ3RIZWFkZXJOYXZDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtOZ3RIZWFkZXJOYXZDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3RIZWFkZXJOYXZNb2R1bGUgeyB9XG4iXX0=