@tailng-ui/components 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/package.json +16 -5
  2. package/src/lib/feedback/empty/tng-empty.component.d.ts +16 -1
  3. package/src/lib/feedback/empty/tng-empty.component.d.ts.map +1 -1
  4. package/src/lib/feedback/empty/tng-empty.component.js +47 -57
  5. package/src/lib/feedback/empty/tng-empty.component.js.map +1 -1
  6. package/src/lib/feedback/index.d.ts +0 -5
  7. package/src/lib/feedback/index.d.ts.map +1 -1
  8. package/src/lib/feedback/index.js +4 -5
  9. package/src/lib/feedback/index.js.map +1 -1
  10. package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts +4 -0
  11. package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts.map +1 -1
  12. package/src/lib/feedback/progress-bar/tng-progress-bar.component.js +16 -26
  13. package/src/lib/feedback/progress-bar/tng-progress-bar.component.js.map +1 -1
  14. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts +4 -0
  15. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts.map +1 -1
  16. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js +18 -32
  17. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js.map +1 -1
  18. package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts +4 -0
  19. package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts.map +1 -1
  20. package/src/lib/feedback/skeleton/tng-skeleton.component.js +14 -20
  21. package/src/lib/feedback/skeleton/tng-skeleton.component.js.map +1 -1
  22. package/src/lib/feedback/toast/tng-toast.component.d.ts +4 -1
  23. package/src/lib/feedback/toast/tng-toast.component.d.ts.map +1 -1
  24. package/src/lib/feedback/toast/tng-toast.component.js +17 -19
  25. package/src/lib/feedback/toast/tng-toast.component.js.map +1 -1
  26. package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts +4 -0
  27. package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts.map +1 -1
  28. package/src/lib/form/autocomplete/tng-autocomplete.component.js +46 -49
  29. package/src/lib/form/autocomplete/tng-autocomplete.component.js.map +1 -1
  30. package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts +3 -0
  31. package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts.map +1 -1
  32. package/src/lib/form/button-toggle/tng-button-toggle-group.component.js +33 -58
  33. package/src/lib/form/button-toggle/tng-button-toggle-group.component.js.map +1 -1
  34. package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts +3 -0
  35. package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts.map +1 -1
  36. package/src/lib/form/button-toggle/tng-button-toggle.component.js +15 -26
  37. package/src/lib/form/button-toggle/tng-button-toggle.component.js.map +1 -1
  38. package/src/lib/form/checkbox/tng-checkbox.component.d.ts +3 -0
  39. package/src/lib/form/checkbox/tng-checkbox.component.d.ts.map +1 -1
  40. package/src/lib/form/checkbox/tng-checkbox.component.js +32 -42
  41. package/src/lib/form/checkbox/tng-checkbox.component.js.map +1 -1
  42. package/src/lib/form/chips/tng-chips.component.d.ts +3 -0
  43. package/src/lib/form/chips/tng-chips.component.d.ts.map +1 -1
  44. package/src/lib/form/chips/tng-chips.component.js +14 -19
  45. package/src/lib/form/chips/tng-chips.component.js.map +1 -1
  46. package/src/lib/form/combobox/tng-combobox.component.d.ts +3 -0
  47. package/src/lib/form/combobox/tng-combobox.component.d.ts.map +1 -1
  48. package/src/lib/form/combobox/tng-combobox.component.js +10 -13
  49. package/src/lib/form/combobox/tng-combobox.component.js.map +1 -1
  50. package/src/lib/form/datepicker/tng-datepicker.component.d.ts +4 -1
  51. package/src/lib/form/datepicker/tng-datepicker.component.d.ts.map +1 -1
  52. package/src/lib/form/datepicker/tng-datepicker.component.js +58 -98
  53. package/src/lib/form/datepicker/tng-datepicker.component.js.map +1 -1
  54. package/src/lib/form/form-field/tng-form-field.component.d.ts +3 -0
  55. package/src/lib/form/form-field/tng-form-field.component.d.ts.map +1 -1
  56. package/src/lib/form/form-field/tng-form-field.component.js +28 -33
  57. package/src/lib/form/form-field/tng-form-field.component.js.map +1 -1
  58. package/src/lib/form/index.d.ts +0 -20
  59. package/src/lib/form/index.d.ts.map +1 -1
  60. package/src/lib/form/index.js +4 -20
  61. package/src/lib/form/index.js.map +1 -1
  62. package/src/lib/form/input/tng-input.component.d.ts +3 -0
  63. package/src/lib/form/input/tng-input.component.d.ts.map +1 -1
  64. package/src/lib/form/input/tng-input.component.js +49 -60
  65. package/src/lib/form/input/tng-input.component.js.map +1 -1
  66. package/src/lib/form/input-otp/tng-input-otp.component.d.ts +3 -0
  67. package/src/lib/form/input-otp/tng-input-otp.component.d.ts.map +1 -1
  68. package/src/lib/form/input-otp/tng-input-otp.component.js +55 -69
  69. package/src/lib/form/input-otp/tng-input-otp.component.js.map +1 -1
  70. package/src/lib/form/label/tng-label.component.d.ts +3 -0
  71. package/src/lib/form/label/tng-label.component.d.ts.map +1 -1
  72. package/src/lib/form/label/tng-label.component.js +12 -19
  73. package/src/lib/form/label/tng-label.component.js.map +1 -1
  74. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts +4 -0
  75. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts.map +1 -1
  76. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js +40 -43
  77. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js.map +1 -1
  78. package/src/lib/form/multiselect/tng-multiselect.component.d.ts +4 -0
  79. package/src/lib/form/multiselect/tng-multiselect.component.d.ts.map +1 -1
  80. package/src/lib/form/multiselect/tng-multiselect.component.js +49 -52
  81. package/src/lib/form/multiselect/tng-multiselect.component.js.map +1 -1
  82. package/src/lib/form/radio/tng-radio.component.d.ts +3 -0
  83. package/src/lib/form/radio/tng-radio.component.d.ts.map +1 -1
  84. package/src/lib/form/radio/tng-radio.component.js +18 -33
  85. package/src/lib/form/radio/tng-radio.component.js.map +1 -1
  86. package/src/lib/form/select/tng-select.component.d.ts +4 -0
  87. package/src/lib/form/select/tng-select.component.d.ts.map +1 -1
  88. package/src/lib/form/select/tng-select.component.js +52 -53
  89. package/src/lib/form/select/tng-select.component.js.map +1 -1
  90. package/src/lib/form/select/tng-select.slots.d.ts +5 -0
  91. package/src/lib/form/select/tng-select.slots.d.ts.map +1 -1
  92. package/src/lib/form/select/tng-select.slots.js +21 -17
  93. package/src/lib/form/select/tng-select.slots.js.map +1 -1
  94. package/src/lib/form/slider/tng-slider.component.d.ts +3 -0
  95. package/src/lib/form/slider/tng-slider.component.d.ts.map +1 -1
  96. package/src/lib/form/slider/tng-slider.component.js +14 -27
  97. package/src/lib/form/slider/tng-slider.component.js.map +1 -1
  98. package/src/lib/form/switch/tng-switch.component.d.ts +3 -0
  99. package/src/lib/form/switch/tng-switch.component.d.ts.map +1 -1
  100. package/src/lib/form/switch/tng-switch.component.js +15 -24
  101. package/src/lib/form/switch/tng-switch.component.js.map +1 -1
  102. package/src/lib/form/textarea/tng-textarea.component.d.ts +3 -0
  103. package/src/lib/form/textarea/tng-textarea.component.d.ts.map +1 -1
  104. package/src/lib/form/textarea/tng-textarea.component.js +19 -36
  105. package/src/lib/form/textarea/tng-textarea.component.js.map +1 -1
  106. package/src/lib/form/toggle/tng-toggle.component.d.ts +3 -0
  107. package/src/lib/form/toggle/tng-toggle.component.d.ts.map +1 -1
  108. package/src/lib/form/toggle/tng-toggle.component.js +41 -41
  109. package/src/lib/form/toggle/tng-toggle.component.js.map +1 -1
  110. package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts +4 -0
  111. package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts.map +1 -1
  112. package/src/lib/form/toggle-group/tng-toggle-group.component.js +28 -31
  113. package/src/lib/form/toggle-group/tng-toggle-group.component.js.map +1 -1
  114. package/src/lib/layout/accordion/tng-accordion.component.d.ts +10 -0
  115. package/src/lib/layout/accordion/tng-accordion.component.d.ts.map +1 -1
  116. package/src/lib/layout/accordion/tng-accordion.component.js +49 -148
  117. package/src/lib/layout/accordion/tng-accordion.component.js.map +1 -1
  118. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts +3 -0
  119. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts.map +1 -1
  120. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js +10 -13
  121. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js.map +1 -1
  122. package/src/lib/layout/card/tng-card.component.d.ts +21 -0
  123. package/src/lib/layout/card/tng-card.component.d.ts.map +1 -1
  124. package/src/lib/layout/card/tng-card.component.js +92 -136
  125. package/src/lib/layout/card/tng-card.component.js.map +1 -1
  126. package/src/lib/layout/collapsible/tng-collapsible.component.d.ts +3 -0
  127. package/src/lib/layout/collapsible/tng-collapsible.component.d.ts.map +1 -1
  128. package/src/lib/layout/collapsible/tng-collapsible.component.js +17 -24
  129. package/src/lib/layout/collapsible/tng-collapsible.component.js.map +1 -1
  130. package/src/lib/layout/drawer/tng-drawer.component.d.ts +4 -0
  131. package/src/lib/layout/drawer/tng-drawer.component.d.ts.map +1 -1
  132. package/src/lib/layout/drawer/tng-drawer.component.js +48 -51
  133. package/src/lib/layout/drawer/tng-drawer.component.js.map +1 -1
  134. package/src/lib/layout/grid/tng-grid.component.d.ts +8 -0
  135. package/src/lib/layout/grid/tng-grid.component.d.ts.map +1 -1
  136. package/src/lib/layout/grid/tng-grid.component.js +48 -110
  137. package/src/lib/layout/grid/tng-grid.component.js.map +1 -1
  138. package/src/lib/layout/index.d.ts +1 -8
  139. package/src/lib/layout/index.d.ts.map +1 -1
  140. package/src/lib/layout/index.js +5 -8
  141. package/src/lib/layout/index.js.map +1 -1
  142. package/src/lib/layout/separator/tng-separator.component.d.ts +3 -0
  143. package/src/lib/layout/separator/tng-separator.component.d.ts.map +1 -1
  144. package/src/lib/layout/separator/tng-separator.component.js +11 -16
  145. package/src/lib/layout/separator/tng-separator.component.js.map +1 -1
  146. package/src/lib/layout/stepper/tng-stepper.component.d.ts +3 -0
  147. package/src/lib/layout/stepper/tng-stepper.component.d.ts.map +1 -1
  148. package/src/lib/layout/stepper/tng-stepper.component.js +10 -13
  149. package/src/lib/layout/stepper/tng-stepper.component.js.map +1 -1
  150. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts +4 -0
  151. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts.map +1 -1
  152. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js +47 -49
  153. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js.map +1 -1
  154. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts +4 -0
  155. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts.map +1 -1
  156. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js +16 -18
  157. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js.map +1 -1
  158. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts +4 -0
  159. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts.map +1 -1
  160. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js +10 -12
  161. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js.map +1 -1
  162. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts +3 -0
  163. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts.map +1 -1
  164. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js +12 -10
  165. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js.map +1 -1
  166. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts +4 -0
  167. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts.map +1 -1
  168. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js +12 -14
  169. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js.map +1 -1
  170. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts +4 -0
  171. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts.map +1 -1
  172. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js +23 -25
  173. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js.map +1 -1
  174. package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts +5 -0
  175. package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts.map +1 -1
  176. package/src/lib/navigation/context-menu/tng-context-menu.component.js +24 -26
  177. package/src/lib/navigation/context-menu/tng-context-menu.component.js.map +1 -1
  178. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts +4 -0
  179. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts.map +1 -1
  180. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js +19 -23
  181. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js.map +1 -1
  182. package/src/lib/navigation/index.d.ts +0 -12
  183. package/src/lib/navigation/index.d.ts.map +1 -1
  184. package/src/lib/navigation/index.js +4 -12
  185. package/src/lib/navigation/index.js.map +1 -1
  186. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts +3 -0
  187. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts.map +1 -1
  188. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js +22 -20
  189. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js.map +1 -1
  190. package/src/lib/navigation/menu/tng-menu.component.d.ts +5 -0
  191. package/src/lib/navigation/menu/tng-menu.component.d.ts.map +1 -1
  192. package/src/lib/navigation/menu/tng-menu.component.js +21 -23
  193. package/src/lib/navigation/menu/tng-menu.component.js.map +1 -1
  194. package/src/lib/navigation/menubar/tng-menubar.component.d.ts +5 -0
  195. package/src/lib/navigation/menubar/tng-menubar.component.d.ts.map +1 -1
  196. package/src/lib/navigation/menubar/tng-menubar.component.js +20 -22
  197. package/src/lib/navigation/menubar/tng-menubar.component.js.map +1 -1
  198. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts +4 -0
  199. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts.map +1 -1
  200. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js +11 -13
  201. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js.map +1 -1
  202. package/src/lib/navigation/tabs/tng-tabs.component.d.ts +5 -0
  203. package/src/lib/navigation/tabs/tng-tabs.component.d.ts.map +1 -1
  204. package/src/lib/navigation/tabs/tng-tabs.component.js +32 -34
  205. package/src/lib/navigation/tabs/tng-tabs.component.js.map +1 -1
  206. package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts +4 -0
  207. package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts.map +1 -1
  208. package/src/lib/navigation/toolbar/tng-toolbar.component.js +11 -13
  209. package/src/lib/navigation/toolbar/tng-toolbar.component.js.map +1 -1
  210. package/src/lib/overlay/dialog/tng-dialog.component.d.ts +4 -0
  211. package/src/lib/overlay/dialog/tng-dialog.component.d.ts.map +1 -1
  212. package/src/lib/overlay/dialog/tng-dialog.component.js +18 -25
  213. package/src/lib/overlay/dialog/tng-dialog.component.js.map +1 -1
  214. package/src/lib/overlay/index.d.ts +0 -3
  215. package/src/lib/overlay/index.d.ts.map +1 -1
  216. package/src/lib/overlay/index.js +4 -3
  217. package/src/lib/overlay/index.js.map +1 -1
  218. package/src/lib/overlay/popover/tng-popover.component.d.ts +4 -0
  219. package/src/lib/overlay/popover/tng-popover.component.d.ts.map +1 -1
  220. package/src/lib/overlay/popover/tng-popover.component.js +23 -37
  221. package/src/lib/overlay/popover/tng-popover.component.js.map +1 -1
  222. package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts +4 -0
  223. package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts.map +1 -1
  224. package/src/lib/overlay/tooltip/tng-tooltip.component.js +17 -21
  225. package/src/lib/overlay/tooltip/tng-tooltip.component.js.map +1 -1
  226. package/src/lib/utility/avatar/tng-avatar.component.d.ts +4 -1
  227. package/src/lib/utility/avatar/tng-avatar.component.d.ts.map +1 -1
  228. package/src/lib/utility/avatar/tng-avatar.component.js +20 -22
  229. package/src/lib/utility/avatar/tng-avatar.component.js.map +1 -1
  230. package/src/lib/utility/badge/tng-badge.component.d.ts +4 -0
  231. package/src/lib/utility/badge/tng-badge.component.d.ts.map +1 -1
  232. package/src/lib/utility/badge/tng-badge.component.js +13 -10
  233. package/src/lib/utility/badge/tng-badge.component.js.map +1 -1
  234. package/src/lib/utility/button/tng-button.component.d.ts +4 -1
  235. package/src/lib/utility/button/tng-button.component.d.ts.map +1 -1
  236. package/src/lib/utility/button/tng-button.component.js +19 -29
  237. package/src/lib/utility/button/tng-button.component.js.map +1 -1
  238. package/src/lib/utility/code-block/tng-code-block.component.d.ts +4 -0
  239. package/src/lib/utility/code-block/tng-code-block.component.d.ts.map +1 -1
  240. package/src/lib/utility/code-block/tng-code-block.component.js +73 -103
  241. package/src/lib/utility/code-block/tng-code-block.component.js.map +1 -1
  242. package/src/lib/utility/copy-button/tng-copy-button.component.d.ts +4 -1
  243. package/src/lib/utility/copy-button/tng-copy-button.component.d.ts.map +1 -1
  244. package/src/lib/utility/copy-button/tng-copy-button.component.js +28 -36
  245. package/src/lib/utility/copy-button/tng-copy-button.component.js.map +1 -1
  246. package/src/lib/utility/index.d.ts +1 -9
  247. package/src/lib/utility/index.d.ts.map +1 -1
  248. package/src/lib/utility/index.js +5 -8
  249. package/src/lib/utility/index.js.map +1 -1
  250. package/src/lib/utility/tag/tng-tag.component.d.ts +4 -1
  251. package/src/lib/utility/tag/tng-tag.component.d.ts.map +1 -1
  252. package/src/lib/utility/tag/tng-tag.component.js +18 -24
  253. package/src/lib/utility/tag/tng-tag.component.js.map +1 -1
  254. package/src/lib/utility/tree/tng-tree.component.d.ts +4 -1
  255. package/src/lib/utility/tree/tng-tree.component.d.ts.map +1 -1
  256. package/src/lib/utility/tree/tng-tree.component.js +23 -25
  257. package/src/lib/utility/tree/tng-tree.component.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tng-datepicker.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/datepicker/tng-datepicker.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ElementRef,\n HostBinding,\n LOCALE_ID,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { booleanAttribute } from '@angular/core';\nimport type { OnDestroy } from '@angular/core';\nimport {\n computeOverlayPosition,\n type TngOverlayCollisionOptions,\n type TngOverlayOffset,\n type TngOverlayPlacement,\n} from '@tailng-ui/cdk';\nimport {\n createDatepickerController,\n type TngCalendarView,\n type TngDateCell,\n type TngDateAdapter,\n type TngDateInputValue,\n type TngDateSelectionInput,\n type TngDateValue,\n type TngDatepickerCloseReason,\n type TngDatepickerDirection,\n type TngDatepickerOutputs,\n type TngDatepickerSelectionMode,\n type TngMonthOption,\n type TngWeekdayIndex,\n type TngYearOption,\n} from '@tailng-ui/primitives';\n\ntype OptionalBooleanInput = boolean | null | string | undefined;\ntype TngDatepickerPlacement = 'auto' | 'bottom' | 'top';\n\ntype MaybeRect = Readonly<{\n height: number;\n left: number;\n top: number;\n width: number;\n}>;\n\nconst OVERLAY_VIEWPORT_MARGIN = 12;\nconst OVERLAY_OFFSET = 9;\n\nfunction rectFromClientRect(rect: DOMRect | ClientRect): MaybeRect {\n return {\n height: rect.height,\n left: rect.left,\n top: rect.top,\n width: rect.width,\n };\n}\n\nfunction viewportRect(windowRef: Window): MaybeRect {\n return {\n height: windowRef.innerHeight || 768,\n left: 0,\n top: 0,\n width: windowRef.innerWidth || 1024,\n };\n}\n\nfunction normalizeOptionalBooleanInput(value: OptionalBooleanInput): boolean | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n return booleanAttribute(value);\n}\n\nfunction normalizeNumberInput(value: number | string): number {\n return typeof value === 'number' ? value : Number(value);\n}\n\nfunction normalizeWeekdayInput(value: TngWeekdayIndex | number | string): TngWeekdayIndex {\n const normalized = Math.max(0, Math.min(6, Math.trunc(normalizeNumberInput(value))));\n return normalized as TngWeekdayIndex;\n}\n\nfunction isKeyboardEventTarget(value: EventTarget | null): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\nlet nextDatepickerInputId = 0;\n\nfunction createDatepickerInputId(): string {\n nextDatepickerInputId += 1;\n return `tng-datepicker-input-${nextDatepickerInputId}`;\n}\n\n@Component({\n selector: 'tng-datepicker',\n templateUrl: './tng-datepicker.component.html',\n styleUrl: './tng-datepicker.component.css',\n})\nexport class TngDatepickerComponent<TDate = Date> implements OnDestroy {\n private readonly hostElement = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly defaultLocale = inject(LOCALE_ID);\n private readonly fallbackInputId = createDatepickerInputId();\n private readonly ownerDocument = this.hostElement.nativeElement.ownerDocument ?? null;\n private readonly ownerWindow = this.ownerDocument?.defaultView ?? null;\n private readonly renderVersion = signal(0);\n private readonly overlayOpen = signal(false);\n private readonly resolvedOverlayPlacement = signal<'bottom' | 'top'>('bottom');\n private readonly anchorRef = viewChild<ElementRef<HTMLElement>>('anchorShell');\n private readonly triggerRef = viewChild<ElementRef<HTMLElement>>('triggerButton');\n private readonly overlayRef = viewChild<ElementRef<HTMLElement>>('overlayPanel');\n private overlayPlaceholder: Comment | null = null;\n private overlayOriginalParent: Node | null = null;\n private removeResizeListener: (() => void) | null = null;\n private removeScrollListener: (() => void) | null = null;\n private resizeObserver: ResizeObserver | null = null;\n private overlayLayoutFrame: number | null = null;\n private appliedInitialState = false;\n private readonly controller = createDatepickerController<TDate>({\n allowManualInput: true,\n autoCommitView: false,\n closeOnEscape: true,\n closeOnOutsideClick: true,\n closeOnSelect: true,\n locale: this.defaultLocale,\n ownerDocument: this.ownerDocument,\n restoreFocus: true,\n showOutsideDays: true,\n trapFocus: true,\n value: null,\n });\n private readonly unsubscribe = this.controller.subscribe((event) => {\n this.renderVersion.update((value) => value + 1);\n\n switch (event.type) {\n case 'activeChange':\n this.activeDateChange.emit(event.activeDate);\n break;\n case 'closed':\n this.overlayOpen.set(false);\n this.openChange.emit(false);\n this.closed.emit(event.reason);\n break;\n case 'monthChange':\n this.monthChange.emit(event.visibleMonth);\n break;\n case 'opened':\n this.overlayOpen.set(true);\n this.openChange.emit(true);\n this.queueOverlayFocusSync();\n break;\n case 'valueChange':\n this.valueChange.emit(event.value);\n break;\n case 'viewChange':\n this.viewChange.emit(event.view);\n break;\n case 'yearChange':\n this.yearChange.emit(event.year);\n break;\n }\n });\n\n public readonly adapter = input<TngDateAdapter<TDate> | undefined>(undefined);\n public readonly allowDeselect = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly allowManualInput = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaLabel = input<string | null>(null);\n public readonly ariaLabelledBy = input<string | null>(null);\n public readonly autoCommitView = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly closeOnEscape = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly closeOnOutsideClick = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly closeOnSelect = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly closeOthersOnOpen = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly defaultOpen = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly defaultValue = input<TngDateSelectionInput<TDate> | undefined>(undefined);\n public readonly direction = input<TngDatepickerDirection>('ltr');\n public readonly disableDate = input<((date: TDate) => boolean) | null>(null);\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly fullWidth = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly id = input<string | null>(null);\n public readonly inputAriaLabel = input<string>('Date input');\n public readonly invalid = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly locale = input<string>(this.defaultLocale);\n public readonly maxDate = input<TngDateInputValue<TDate> | undefined>(undefined);\n public readonly minDate = input<TngDateInputValue<TDate> | undefined>(undefined);\n public readonly open = input<boolean | undefined, OptionalBooleanInput>(undefined, {\n transform: normalizeOptionalBooleanInput,\n });\n public readonly overlaySize = input<number, number | string>(320, {\n transform: normalizeNumberInput,\n });\n public readonly placement = input<TngDatepickerPlacement>('auto');\n public readonly placeholder = input<string>('MM-DD-YYYY');\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly restoreFocus = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly selectionMode = input<TngDatepickerSelectionMode>('single');\n public readonly showOutsideDays = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly today = input<TngDateInputValue<TDate> | undefined>(undefined);\n public readonly trapFocus = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly value = input<TngDateSelectionInput<TDate> | undefined>(undefined);\n public readonly weekStartsOn = input<TngWeekdayIndex, TngWeekdayIndex | number | string>(0, {\n transform: normalizeWeekdayInput,\n });\n public readonly yearPageSize = input<number, number | string>(24, {\n transform: normalizeNumberInput,\n });\n\n public readonly activeDateChange = output<TDate>();\n public readonly closed = output<TngDatepickerCloseReason>();\n public readonly monthChange = output<TDate>();\n public readonly openChange = output<boolean>();\n public readonly valueChange = output<TngDateValue<TDate>>();\n public readonly viewChange = output<TngCalendarView>();\n public readonly yearChange = output<number>();\n\n protected readonly outputs = computed(() => {\n this.renderVersion();\n return this.controller.getOutputs();\n });\n\n protected readonly invalidState = computed(\n () => this.invalid() || this.outputs().validationError !== null,\n );\n protected readonly currentOverlayPlacement = computed(() => this.resolvedOverlayPlacement());\n\n protected readonly materialPeriodLabel = computed(() => {\n const outputs = this.outputs();\n if (outputs.view === 'year') {\n const startYear = outputs.yearOptions[0]?.year;\n const endYear = outputs.yearOptions[outputs.yearOptions.length - 1]?.year;\n if (startYear !== undefined && endYear !== undefined) {\n return `${startYear} - ${endYear}`;\n }\n }\n\n if (outputs.view === 'month') {\n return this.controller.formatDate(outputs.visibleMonth, 'year-label');\n }\n\n return outputs.labelMonthYear;\n });\n\n @HostBinding('attr.data-full-width')\n protected get dataFullWidth(): '' | null {\n return this.fullWidth() ? '' : null;\n }\n\n public constructor() {\n effect(() => {\n const trigger = this.triggerRef()?.nativeElement ?? null;\n this.controller.registerTrigger(trigger);\n });\n\n effect(() => {\n const overlay = this.overlayRef()?.nativeElement ?? null;\n this.controller.registerOverlay(overlay);\n this.initializeOverlayPortal(overlay);\n this.renderVersion.update((value) => value + 1);\n });\n\n effect(() => {\n const overlay = this.overlayRef()?.nativeElement;\n if (overlay === undefined) {\n return;\n }\n\n if (this.overlayOpen()) {\n this.mountOverlayToBodyAndPosition();\n return;\n }\n\n this.restoreOverlayToPlaceholder();\n });\n\n effect(() => {\n this.placement();\n this.direction();\n this.overlaySize();\n\n if (!this.overlayOpen()) {\n return;\n }\n\n this.scheduleOverlayLayoutSync();\n });\n\n effect(() => {\n this.controller.setConfig({\n adapter: this.adapter(),\n allowDeselect: this.allowDeselect(),\n allowManualInput: this.allowManualInput(),\n ariaDescribedBy: this.ariaDescribedBy(),\n ariaLabel: this.ariaLabel(),\n ariaLabelledBy: this.ariaLabelledBy(),\n autoCommitView: this.autoCommitView(),\n closeOnEscape: this.closeOnEscape(),\n closeOnOutsideClick: this.closeOnOutsideClick(),\n closeOnSelect: this.closeOnSelect(),\n closeOthersOnOpen: this.closeOthersOnOpen(),\n direction: this.direction(),\n disableDate: this.disableDate() ?? undefined,\n disabled: this.disabled(),\n id: this.id() ?? undefined,\n locale: this.locale(),\n maxDate: this.maxDate(),\n minDate: this.minDate(),\n overlaySize: this.overlaySize(),\n ownerDocument: this.ownerDocument,\n restoreFocus: this.restoreFocus(),\n selectionMode: this.selectionMode(),\n showOutsideDays: this.showOutsideDays(),\n today: this.today(),\n trapFocus: this.trapFocus(),\n weekStartsOn: this.weekStartsOn(),\n yearPageSize: this.yearPageSize(),\n });\n\n const controlledValue = this.value();\n if (controlledValue !== undefined) {\n this.controller.setValue(controlledValue);\n }\n\n const controlledOpen = this.open();\n const currentOpen = this.controller.getOutputs().open;\n if (controlledOpen !== undefined) {\n this.controller.setOpen(controlledOpen);\n }\n\n if (!this.appliedInitialState) {\n if (controlledValue === undefined && this.defaultValue() !== undefined) {\n this.controller.setValue(this.defaultValue() as TngDateSelectionInput<TDate>);\n }\n\n if (controlledOpen === undefined && this.defaultOpen()) {\n this.controller.setOpen(true);\n }\n\n this.appliedInitialState = true;\n }\n });\n }\n\n public ngOnDestroy(): void {\n if (this.overlayLayoutFrame !== null && this.ownerWindow !== null) {\n this.ownerWindow.cancelAnimationFrame(this.overlayLayoutFrame);\n this.overlayLayoutFrame = null;\n }\n\n this.teardownOverlayRepositionListeners();\n this.restoreOverlayToPlaceholder(true);\n this.unsubscribe();\n this.controller.destroy();\n }\n\n public clear(): void {\n this.controller.clear();\n this.controller.showDaysPanel();\n this.queueOverlayFocusSync();\n }\n\n public close(reason: TngDatepickerCloseReason = 'programmatic'): void {\n this.controller.close(reason);\n }\n\n public openDatepicker(): void {\n this.controller.open();\n }\n\n public showDaysPanel(): void {\n this.controller.showDaysPanel();\n this.queueOverlayFocusSync();\n }\n\n public showMonthsPanel(): void {\n this.controller.showMonthsPanel();\n this.queueOverlayFocusSync();\n }\n\n public showYearsPanel(): void {\n this.controller.showYearsPanel();\n this.queueOverlayFocusSync();\n }\n\n public toggleOpen(): void {\n this.controller.toggleOpen();\n }\n\n protected resolveInputId(): string {\n const id = this.id()?.trim();\n if (id !== undefined && id !== '') {\n return `${id}-input`;\n }\n\n return this.fallbackInputId;\n }\n\n protected isDayView(): boolean {\n return this.outputs().view === 'day';\n }\n\n protected isMonthView(): boolean {\n return this.outputs().view === 'month';\n }\n\n protected isYearView(): boolean {\n return this.outputs().view === 'year';\n }\n\n protected onDayCellClick(cell: Readonly<TngDateCell<TDate>>): void {\n if (cell.disabled || cell.hidden) {\n return;\n }\n\n this.controller.handleCellClick(cell.date);\n }\n\n protected onInputBlur(): void {\n if (!this.allowManualInput()) {\n return;\n }\n\n this.controller.commitInputText();\n this.renderVersion.update((value) => value + 1);\n }\n\n protected onInputChange(event: Event): void {\n if (!this.allowManualInput()) {\n return;\n }\n\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) {\n return;\n }\n\n this.controller.setInputText(target.value);\n this.renderVersion.update((value) => value + 1);\n }\n\n protected onInputKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' && this.allowManualInput()) {\n event.preventDefault();\n this.controller.commitInputText();\n this.renderVersion.update((value) => value + 1);\n return;\n }\n\n if (event.key === 'ArrowDown' && !this.outputs().open) {\n event.preventDefault();\n this.controller.open();\n }\n }\n\n protected onGridKeydown(event: KeyboardEvent): void {\n this.controller.handleGridKeyDown(event);\n if (this.shouldSyncOverlayFocusAfterPickerKey(event.key)) {\n this.queueOverlayFocusSync();\n }\n }\n\n protected onMonthKeydown(event: KeyboardEvent): void {\n this.controller.handleMonthGridKeyDown(event);\n if (this.isPickerActivationKey(event.key)) {\n this.controller.showDaysPanel();\n }\n if (this.shouldSyncOverlayFocusAfterPickerKey(event.key)) {\n this.queueOverlayFocusSync();\n }\n }\n\n protected onMonthOptionClick(option: Readonly<TngMonthOption<TDate>>): void {\n if (option.disabled) {\n return;\n }\n\n this.controller.selectMonth(option.index);\n this.controller.showDaysPanel();\n this.queueOverlayFocusSync();\n }\n\n protected onOverlayKeydown(event: KeyboardEvent): void {\n this.controller.handleOverlayKeyDown(event);\n }\n\n protected onTriggerClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.controller.toggleOpen();\n }\n\n protected onTriggerKeydown(event: KeyboardEvent): void {\n this.controller.handleTriggerKeyDown(event);\n }\n\n protected onPeriodButtonClick(): void {\n if (this.isYearView()) {\n return;\n }\n\n this.controller.showYearsPanel();\n this.queueOverlayFocusSync();\n }\n\n protected onYearKeydown(event: KeyboardEvent): void {\n this.controller.handleYearGridKeyDown(event);\n if (this.isPickerActivationKey(event.key)) {\n this.controller.showMonthsPanel();\n }\n if (this.shouldSyncOverlayFocusAfterPickerKey(event.key)) {\n this.queueOverlayFocusSync();\n }\n }\n\n protected onYearOptionClick(option: Readonly<TngYearOption<TDate>>): void {\n if (option.disabled) {\n return;\n }\n\n this.controller.selectYear(option.year);\n this.controller.showMonthsPanel();\n this.queueOverlayFocusSync();\n }\n\n protected pageBackward(): void {\n if (this.isDayView()) {\n this.controller.prevMonth();\n this.queueOverlayFocusSync();\n return;\n }\n\n if (this.isMonthView() || this.isYearView()) {\n this.controller.prevYear();\n this.queueOverlayFocusSync();\n return;\n }\n }\n\n protected pageForward(): void {\n if (this.isDayView()) {\n this.controller.nextMonth();\n this.queueOverlayFocusSync();\n return;\n }\n\n if (this.isMonthView() || this.isYearView()) {\n this.controller.nextYear();\n this.queueOverlayFocusSync();\n return;\n }\n }\n\n private queueOverlayFocusSync(): void {\n this.scheduleOverlayLayoutSync();\n\n queueMicrotask(() => {\n const focusActiveTarget = (): void => {\n const outputs = this.outputs();\n if (!outputs.open || this.ownerDocument === null) {\n return;\n }\n\n const targetId = this.resolveCurrentFocusTargetId(outputs);\n if (targetId === null) {\n return;\n }\n\n const target = this.ownerDocument.getElementById(targetId);\n if (!isKeyboardEventTarget(target)) {\n return;\n }\n\n target.focus();\n };\n\n if (typeof requestAnimationFrame === 'function') {\n requestAnimationFrame(() => {\n focusActiveTarget();\n });\n return;\n }\n\n setTimeout(() => {\n focusActiveTarget();\n }, 0);\n });\n }\n\n private resolveCurrentFocusTargetId(outputs: TngDatepickerOutputs<TDate>): string | null {\n if (outputs.view === 'day') {\n return outputs.cells.find((cell) => cell.active)?.id ?? null;\n }\n\n if (outputs.view === 'month') {\n return outputs.monthOptions.find((option) => option.active)?.id ?? null;\n }\n\n if (outputs.view === 'year') {\n return outputs.yearOptions.find((option) => option.active)?.id ?? null;\n }\n\n return null;\n }\n\n private shouldSyncOverlayFocusAfterPickerKey(key: string): boolean {\n return (\n key === 'ArrowUp' ||\n key === 'ArrowDown' ||\n key === 'ArrowLeft' ||\n key === 'ArrowRight' ||\n key === 'Home' ||\n key === 'End' ||\n key === 'PageUp' ||\n key === 'PageDown' ||\n key === 'Enter' ||\n key === ' ' ||\n key === 'Escape'\n );\n }\n\n private isPickerActivationKey(key: string): boolean {\n return key === 'Enter' || key === ' ';\n }\n\n private scheduleOverlayLayoutSync(): void {\n if (!this.overlayOpen() || this.ownerWindow === null) {\n return;\n }\n\n if (this.overlayLayoutFrame !== null) {\n this.ownerWindow.cancelAnimationFrame(this.overlayLayoutFrame);\n }\n\n this.overlayLayoutFrame = this.ownerWindow.requestAnimationFrame(() => {\n this.overlayLayoutFrame = null;\n this.positionOverlay();\n });\n }\n\n private initializeOverlayPortal(overlay: HTMLElement | null): void {\n if (overlay === null || this.overlayPlaceholder !== null) {\n return;\n }\n\n const placeholderDocument = this.ownerDocument ?? document;\n this.overlayPlaceholder = placeholderDocument.createComment('tng-datepicker-overlay-anchor');\n this.overlayOriginalParent = overlay.parentNode;\n this.overlayOriginalParent?.insertBefore(this.overlayPlaceholder, overlay);\n }\n\n private positionOverlay(): void {\n const overlay = this.overlayRef()?.nativeElement;\n const anchor = this.anchorRef()?.nativeElement;\n if (overlay === undefined || anchor === undefined || this.ownerWindow === null) {\n return;\n }\n\n const anchorRect = rectFromClientRect(anchor.getBoundingClientRect());\n const viewport = viewportRect(this.ownerWindow);\n const width = Math.max(\n 0,\n Math.min(anchorRect.width, viewport.width - OVERLAY_VIEWPORT_MARGIN * 2),\n );\n\n overlay.style.width = `${width}px`;\n overlay.style.maxWidth = `${Math.max(0, viewport.width - OVERLAY_VIEWPORT_MARGIN * 2)}px`;\n overlay.style.maxHeight = '';\n\n const overlayRect = rectFromClientRect(overlay.getBoundingClientRect());\n const result = computeOverlayPosition({\n anchorRect,\n collision: this.resolveOverlayCollision(this.placement()),\n direction: this.direction(),\n offset: this.resolveOverlayOffset(),\n overlayRect,\n placement: this.resolveOverlayPlacement(this.placement()),\n viewportRect: viewport,\n });\n\n overlay.style.left = `${result.x}px`;\n overlay.style.top = `${result.y}px`;\n\n const anchorBottom = anchorRect.top + anchorRect.height;\n const availableHeight =\n result.side === 'top'\n ? Math.max(0, Math.floor(anchorRect.top - OVERLAY_VIEWPORT_MARGIN - OVERLAY_OFFSET))\n : Math.max(\n 0,\n Math.floor(viewport.height - anchorBottom - OVERLAY_VIEWPORT_MARGIN - OVERLAY_OFFSET),\n );\n\n if (availableHeight > 0) {\n overlay.style.maxHeight = `${availableHeight}px`;\n }\n\n this.resolvedOverlayPlacement.set(result.side === 'top' ? 'top' : 'bottom');\n overlay.style.visibility = '';\n }\n\n private mountOverlayToBodyAndPosition(): void {\n const overlay = this.overlayRef()?.nativeElement;\n if (overlay === undefined || this.ownerDocument === null) {\n return;\n }\n\n this.initializeOverlayPortal(overlay);\n this.setupOverlayRepositionListeners();\n\n if (overlay.parentNode !== this.ownerDocument.body) {\n this.ownerDocument.body.appendChild(overlay);\n }\n\n overlay.style.position = 'fixed';\n overlay.style.left = '0px';\n overlay.style.top = '0px';\n overlay.style.visibility = 'hidden';\n overlay.style.zIndex = '1000';\n\n queueMicrotask(() => {\n if (!this.overlayOpen()) {\n return;\n }\n\n this.positionOverlay();\n });\n }\n\n private restoreOverlayToPlaceholder(force = false): void {\n const overlay = this.overlayRef()?.nativeElement;\n if (overlay === undefined) {\n return;\n }\n\n if (!force && overlay.parentNode !== this.ownerDocument?.body) {\n return;\n }\n\n const placeholder = this.overlayPlaceholder;\n if (placeholder?.parentNode !== null && placeholder !== null) {\n placeholder.parentNode.insertBefore(overlay, placeholder);\n } else if (this.overlayOriginalParent !== null) {\n this.overlayOriginalParent.appendChild(overlay);\n }\n\n this.teardownOverlayRepositionListeners();\n this.resolvedOverlayPlacement.set(this.placement() === 'top' ? 'top' : 'bottom');\n overlay.style.left = '';\n overlay.style.maxHeight = '';\n overlay.style.maxWidth = '';\n overlay.style.position = '';\n overlay.style.top = '';\n overlay.style.visibility = '';\n overlay.style.width = '';\n overlay.style.zIndex = '';\n }\n\n private setupOverlayRepositionListeners(): void {\n if (this.ownerWindow === null || this.removeResizeListener !== null || this.removeScrollListener !== null) {\n return;\n }\n\n const schedule = (): void => {\n this.scheduleOverlayLayoutSync();\n };\n\n this.ownerWindow.addEventListener('resize', schedule);\n this.ownerWindow.addEventListener('scroll', schedule, true);\n this.removeResizeListener = () => this.ownerWindow?.removeEventListener('resize', schedule);\n this.removeScrollListener = () => this.ownerWindow?.removeEventListener('scroll', schedule, true);\n\n if ('ResizeObserver' in this.ownerWindow) {\n this.resizeObserver = new this.ownerWindow.ResizeObserver(() => {\n this.scheduleOverlayLayoutSync();\n });\n\n const anchor = this.anchorRef()?.nativeElement;\n if (anchor !== undefined) {\n this.resizeObserver.observe(anchor);\n }\n\n const overlay = this.overlayRef()?.nativeElement;\n if (overlay !== undefined) {\n this.resizeObserver.observe(overlay);\n }\n }\n }\n\n private teardownOverlayRepositionListeners(): void {\n this.removeResizeListener?.();\n this.removeScrollListener?.();\n this.removeResizeListener = null;\n this.removeScrollListener = null;\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n private resolveOverlayCollision(\n placement: TngDatepickerPlacement,\n ): TngOverlayCollisionOptions {\n return {\n flip: placement === 'auto',\n padding: OVERLAY_VIEWPORT_MARGIN,\n shift: true,\n };\n }\n\n private resolveOverlayOffset(): TngOverlayOffset {\n return { side: OVERLAY_OFFSET };\n }\n\n private resolveOverlayPlacement(placement: TngDatepickerPlacement): TngOverlayPlacement {\n return {\n align: 'start',\n side: placement === 'top' ? 'top' : 'bottom',\n };\n }\n}\n"]}
1
+ {"version":3,"file":"tng-datepicker.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/datepicker/tng-datepicker.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/form/datepicker/tng-datepicker.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EACL,sBAAsB,GAIvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,GAc3B,MAAM,uBAAuB,CAAC;;AAY/B,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,SAAS,kBAAkB,CAAC,IAA0B;IACpD,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB;IACrC,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,WAAW,IAAI,GAAG;QACpC,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,SAAS,CAAC,UAAU,IAAI,IAAI;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,KAA2B;IAChE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAsB;IAClD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAwC;IACrE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,UAA6B,CAAC;AACvC,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAyB;IACtD,OAAO,KAAK,YAAY,WAAW,CAAC;AACtC,CAAC;AAED,IAAI,qBAAqB,GAAG,CAAC,CAAC;AAE9B,SAAS,uBAAuB;IAC9B,qBAAqB,IAAI,CAAC,CAAC;IAC3B,OAAO,wBAAwB,qBAAqB,EAAE,CAAC;AACzD,CAAC;AAOD,MAAM,OAAO,sBAAsB;IAChB,WAAW,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;IAC1D,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,eAAe,GAAG,uBAAuB,EAAE,CAAC;IAC5C,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,CAAC;IACrE,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,IAAI,IAAI,CAAC;IACtD,aAAa,GAAG,MAAM,CAAC,CAAC,yDAAC,CAAC;IAC1B,WAAW,GAAG,MAAM,CAAC,KAAK,uDAAC,CAAC;IAC5B,wBAAwB,GAAG,MAAM,CAAmB,QAAQ,oEAAC,CAAC;IAC9D,SAAS,GAAG,SAAS,CAA0B,aAAa,qDAAC,CAAC;IAC9D,UAAU,GAAG,SAAS,CAA0B,eAAe,sDAAC,CAAC;IACjE,UAAU,GAAG,SAAS,CAA0B,cAAc,sDAAC,CAAC;IACzE,kBAAkB,GAAmB,IAAI,CAAC;IAC1C,qBAAqB,GAAgB,IAAI,CAAC;IAC1C,oBAAoB,GAAwB,IAAI,CAAC;IACjD,oBAAoB,GAAwB,IAAI,CAAC;IACjD,cAAc,GAA0B,IAAI,CAAC;IAC7C,kBAAkB,GAAkB,IAAI,CAAC;IACzC,mBAAmB,GAAG,KAAK,CAAC;IACnB,UAAU,GAAG,0BAA0B,CAAQ;QAC9D,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,IAAI;QACnB,mBAAmB,EAAE,IAAI;QACzB,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,IAAI,CAAC,aAAa;QAC1B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IACc,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACjE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAEhD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,cAAc;gBACjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,aAAa;gBAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,MAAM;YACR,KAAK,aAAa;gBAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEa,OAAO,GAAG,KAAK,CAAoC,SAAS,mDAAC,CAAC;IAC9D,aAAa,GAAG,KAAK,CAA4B,KAAK,0DACpE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,gBAAgB,GAAG,KAAK,CAA4B,IAAI,6DACtE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,eAAe,GAAG,KAAK,CAAgB,IAAI,2DAAC,CAAC;IAC7C,SAAS,GAAG,KAAK,CAAgB,IAAI,qDAAC,CAAC;IACvC,cAAc,GAAG,KAAK,CAAgB,IAAI,0DAAC,CAAC;IAC5C,cAAc,GAAG,KAAK,CAA4B,KAAK,2DACrE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,aAAa,GAAG,KAAK,CAA4B,IAAI,0DACnE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,mBAAmB,GAAG,KAAK,CAA4B,IAAI,gEACzE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,aAAa,GAAG,KAAK,CAA4B,IAAI,0DACnE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,iBAAiB,GAAG,KAAK,CAA4B,KAAK,8DACxE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,WAAW,GAAG,KAAK,CAA4B,KAAK,wDAClE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,YAAY,GAAG,KAAK,CAA2C,SAAS,wDAAC,CAAC;IAC1E,SAAS,GAAG,KAAK,CAAyB,KAAK,qDAAC,CAAC;IACjD,WAAW,GAAG,KAAK,CAAoC,IAAI,uDAAC,CAAC;IAC7D,QAAQ,GAAG,KAAK,CAA4B,KAAK,qDAC/D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,SAAS,GAAG,KAAK,CAA4B,IAAI,sDAC/D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,EAAE,GAAG,KAAK,CAAgB,IAAI,8CAAC,CAAC;IAChC,cAAc,GAAG,KAAK,CAAS,YAAY,0DAAC,CAAC;IAC7C,OAAO,GAAG,KAAK,CAA4B,KAAK,oDAC9D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,MAAM,GAAG,KAAK,CAAS,IAAI,CAAC,aAAa,kDAAC,CAAC;IAC3C,OAAO,GAAG,KAAK,CAAuC,SAAS,mDAAC,CAAC;IACjE,OAAO,GAAG,KAAK,CAAuC,SAAS,mDAAC,CAAC;IACjE,IAAI,GAAG,KAAK,CAA4C,SAAS,iDAC/E,SAAS,EAAE,6BAA6B,GACxC,CAAC;IACa,WAAW,GAAG,KAAK,CAA0B,GAAG,wDAC9D,SAAS,EAAE,oBAAoB,GAC/B,CAAC;IACa,SAAS,GAAG,KAAK,CAAyB,MAAM,qDAAC,CAAC;IAClD,WAAW,GAAG,KAAK,CAAS,YAAY,uDAAC,CAAC;IAC1C,QAAQ,GAAG,KAAK,CAA4B,KAAK,qDAC/D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,YAAY,GAAG,KAAK,CAA4B,IAAI,yDAClE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,aAAa,GAAG,KAAK,CAA6B,QAAQ,yDAAC,CAAC;IAC5D,eAAe,GAAG,KAAK,CAA4B,IAAI,4DACrE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,KAAK,GAAG,KAAK,CAAuC,SAAS,iDAAC,CAAC;IAC/D,SAAS,GAAG,KAAK,CAA4B,IAAI,sDAC/D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,KAAK,GAAG,KAAK,CAA2C,SAAS,iDAAC,CAAC;IACnE,YAAY,GAAG,KAAK,CAAqD,CAAC,yDACxF,SAAS,EAAE,qBAAqB,GAChC,CAAC;IACa,YAAY,GAAG,KAAK,CAA0B,EAAE,yDAC9D,SAAS,EAAE,oBAAoB,GAC/B,CAAC;IAEa,gBAAgB,GAAG,MAAM,EAAS,CAAC;IACnC,MAAM,GAAG,MAAM,EAA4B,CAAC;IAC5C,WAAW,GAAG,MAAM,EAAS,CAAC;IAC9B,UAAU,GAAG,MAAM,EAAW,CAAC;IAC/B,WAAW,GAAG,MAAM,EAAuB,CAAC;IAC5C,UAAU,GAAG,MAAM,EAAmB,CAAC;IACvC,UAAU,GAAG,MAAM,EAAU,CAAC;IAE3B,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE;QACzC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC,mDAAC,CAAC;IAEgB,YAAY,GAAG,QAAQ,CACxC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,eAAe,KAAK,IAAI,wDAChE,CAAC;IACiB,uBAAuB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,mEAAC,CAAC;IAE1E,mBAAmB,GAAG,QAAQ,CAAC,GAAG,EAAE;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;YAC1E,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACrD,OAAO,GAAG,SAAS,MAAM,OAAO,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,OAAO,CAAC,cAAc,CAAC;IAChC,CAAC,+DAAC,CAAC;IAEH,IACc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;IAED;QACE,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,IAAI,IAAI,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,IAAI,IAAI,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC;YACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,EAAE,CAAC;YAEnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBACxB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;gBACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;gBACzC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;gBACvC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;gBAC3B,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;gBACrC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;gBACrC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;gBACnC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBAC/C,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;gBACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBAC3C,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS;gBAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;gBACzB,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,SAAS;gBAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;gBACjC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;gBACnC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;gBACvC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;gBACjC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;aAClC,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;YACtD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC9B,IAAI,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,SAAS,EAAE,CAAC;oBACvE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAkC,CAAC,CAAC;gBAChF,CAAC;gBAED,IAAI,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACvD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,WAAW;QAChB,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAClE,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,kCAAkC,EAAE,CAAC;QAC1C,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,SAAmC,cAAc;QAC5D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEM,cAAc;QACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAEM,aAAa;QAClB,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEM,cAAc;QACnB,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC;IAES,cAAc;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAC7B,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAClC,OAAO,GAAG,EAAE,QAAQ,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAES,SAAS;QACjB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;IACvC,CAAC;IAES,WAAW;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC;IACzC,CAAC;IAES,UAAU;QAClB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;IACxC,CAAC;IAES,cAAc,CAAC,IAAkC;QACzD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAES,aAAa,CAAC,KAAY;QAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,CAAC,MAAM,YAAY,gBAAgB,CAAC,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAES,cAAc,CAAC,KAAoB;QAC3C,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;YACtD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAES,aAAa,CAAC,KAAoB;QAC1C,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,oCAAoC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAES,cAAc,CAAC,KAAoB;QAC3C,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,oCAAoC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAES,kBAAkB,CAAC,MAAuC;QAClE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,gBAAgB,CAAC,KAAoB;QAC7C,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAES,cAAc;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC;IAES,gBAAgB,CAAC,KAAoB;QAC7C,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAES,mBAAmB;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,aAAa,CAAC,KAAoB;QAC1C,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,oCAAoC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAES,iBAAiB,CAAC,MAAsC;QAChE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAES,YAAY;QACpB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;IACH,CAAC;IAES,WAAW;QACnB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,cAAc,CAAC,GAAG,EAAE;YAClB,MAAM,iBAAiB,GAAG,GAAS,EAAE;gBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;oBACjD,OAAO;gBACT,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBAC3D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,OAAO;gBACT,CAAC;gBAED,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC,CAAC;YAEF,IAAI,OAAO,qBAAqB,KAAK,UAAU,EAAE,CAAC;gBAChD,qBAAqB,CAAC,GAAG,EAAE;oBACzB,iBAAiB,EAAE,CAAC;gBACtB,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,UAAU,CAAC,GAAG,EAAE;gBACd,iBAAiB,EAAE,CAAC;YACtB,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,2BAA2B,CAAC,OAAoC;QACtE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;QAC/D,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;QAC1E,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,oCAAoC,CAAC,GAAW;QACtD,OAAO,CACL,GAAG,KAAK,SAAS;YACjB,GAAG,KAAK,WAAW;YACnB,GAAG,KAAK,WAAW;YACnB,GAAG,KAAK,YAAY;YACpB,GAAG,KAAK,MAAM;YACd,GAAG,KAAK,KAAK;YACb,GAAG,KAAK,QAAQ;YAChB,GAAG,KAAK,UAAU;YAClB,GAAG,KAAK,OAAO;YACf,GAAG,KAAK,GAAG;YACX,GAAG,KAAK,QAAQ,CACjB,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,GAAW;QACvC,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG,CAAC;IACxC,CAAC;IAEO,yBAAyB;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,EAAE;YACpE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAAC,OAA2B;QACzD,IAAI,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC;QAC3D,IAAI,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;QAC7F,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAEO,eAAe;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC;QAC/C,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,uBAAuB,GAAG,CAAC,CAAC,CACzE,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC;QAC1F,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;QAE7B,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,sBAAsB,CAAC;YACpC,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzD,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;YAC3B,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACnC,WAAW;YACX,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzD,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;QAEpC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC;QACxD,MAAM,eAAe,GACnB,MAAM,CAAC,IAAI,KAAK,KAAK;YACnB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,uBAAuB,GAAG,cAAc,CAAC,CAAC;YACpF,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,GAAG,uBAAuB,GAAG,cAAc,CAAC,CACtF,CAAC;QAER,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,eAAe,IAAI,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IAChC,CAAC;IAEO,6BAA6B;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC;QACjD,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEvC,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAE9B,cAAc,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,2BAA2B,CAAC,KAAK,GAAG,KAAK;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC;QACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC5C,IAAI,WAAW,EAAE,UAAU,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAC7D,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,kCAAkC,EAAE,CAAC;QAC1C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjF,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;IAC5B,CAAC;IAEO,+BAA+B;QACrC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAAE,CAAC;YAC1G,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5F,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAElG,IAAI,gBAAgB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE;gBAC7D,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC;YAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC;YACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kCAAkC;QACxC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEO,uBAAuB,CAC7B,SAAiC;QAEjC,OAAO;YACL,IAAI,EAAE,SAAS,KAAK,MAAM;YAC1B,OAAO,EAAE,uBAAuB;YAChC,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IAClC,CAAC;IAEO,uBAAuB,CAAC,SAAiC;QAC/D,OAAO;YACL,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;SAC7C,CAAC;IACJ,CAAC;uGA5uBU,sBAAsB;2FAAtB,sBAAsB,m/KCtGnC,6iYAsNA;;2FDhHa,sBAAsB;kBALlC,SAAS;+BACE,gBAAgB;iGAasC,aAAa,oEACZ,eAAe,oEACf,cAAc;sBAmK9E,WAAW;uBAAC,sBAAsB","sourcesContent":["import {\n Component,\n ElementRef,\n HostBinding,\n LOCALE_ID,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { booleanAttribute } from '@angular/core';\nimport type { OnDestroy } from '@angular/core';\nimport {\n computeOverlayPosition,\n type TngOverlayCollisionOptions,\n type TngOverlayOffset,\n type TngOverlayPlacement,\n} from '@tailng-ui/cdk';\nimport {\n createDatepickerController,\n type TngCalendarView,\n type TngDateCell,\n type TngDateAdapter,\n type TngDateInputValue,\n type TngDateSelectionInput,\n type TngDateValue,\n type TngDatepickerCloseReason,\n type TngDatepickerDirection,\n type TngDatepickerOutputs,\n type TngDatepickerSelectionMode,\n type TngMonthOption,\n type TngWeekdayIndex,\n type TngYearOption,\n} from '@tailng-ui/primitives';\n\ntype OptionalBooleanInput = boolean | null | string | undefined;\ntype TngDatepickerPlacement = 'auto' | 'bottom' | 'top';\n\ntype MaybeRect = Readonly<{\n height: number;\n left: number;\n top: number;\n width: number;\n}>;\n\nconst OVERLAY_VIEWPORT_MARGIN = 12;\nconst OVERLAY_OFFSET = 9;\n\nfunction rectFromClientRect(rect: DOMRect | ClientRect): MaybeRect {\n return {\n height: rect.height,\n left: rect.left,\n top: rect.top,\n width: rect.width,\n };\n}\n\nfunction viewportRect(windowRef: Window): MaybeRect {\n return {\n height: windowRef.innerHeight || 768,\n left: 0,\n top: 0,\n width: windowRef.innerWidth || 1024,\n };\n}\n\nfunction normalizeOptionalBooleanInput(value: OptionalBooleanInput): boolean | undefined {\n if (value === null || value === undefined) {\n return undefined;\n }\n\n return booleanAttribute(value);\n}\n\nfunction normalizeNumberInput(value: number | string): number {\n return typeof value === 'number' ? value : Number(value);\n}\n\nfunction normalizeWeekdayInput(value: TngWeekdayIndex | number | string): TngWeekdayIndex {\n const normalized = Math.max(0, Math.min(6, Math.trunc(normalizeNumberInput(value))));\n return normalized as TngWeekdayIndex;\n}\n\nfunction isKeyboardEventTarget(value: EventTarget | null): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\nlet nextDatepickerInputId = 0;\n\nfunction createDatepickerInputId(): string {\n nextDatepickerInputId += 1;\n return `tng-datepicker-input-${nextDatepickerInputId}`;\n}\n\n@Component({\n selector: 'tng-datepicker',\n templateUrl: './tng-datepicker.component.html',\n styleUrl: './tng-datepicker.component.css',\n})\nexport class TngDatepickerComponent<TDate = Date> implements OnDestroy {\n private readonly hostElement = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly defaultLocale = inject(LOCALE_ID);\n private readonly fallbackInputId = createDatepickerInputId();\n private readonly ownerDocument = this.hostElement.nativeElement.ownerDocument ?? null;\n private readonly ownerWindow = this.ownerDocument?.defaultView ?? null;\n private readonly renderVersion = signal(0);\n private readonly overlayOpen = signal(false);\n private readonly resolvedOverlayPlacement = signal<'bottom' | 'top'>('bottom');\n private readonly anchorRef = viewChild<ElementRef<HTMLElement>>('anchorShell');\n private readonly triggerRef = viewChild<ElementRef<HTMLElement>>('triggerButton');\n private readonly overlayRef = viewChild<ElementRef<HTMLElement>>('overlayPanel');\n private overlayPlaceholder: Comment | null = null;\n private overlayOriginalParent: Node | null = null;\n private removeResizeListener: (() => void) | null = null;\n private removeScrollListener: (() => void) | null = null;\n private resizeObserver: ResizeObserver | null = null;\n private overlayLayoutFrame: number | null = null;\n private appliedInitialState = false;\n private readonly controller = createDatepickerController<TDate>({\n allowManualInput: true,\n autoCommitView: false,\n closeOnEscape: true,\n closeOnOutsideClick: true,\n closeOnSelect: true,\n locale: this.defaultLocale,\n ownerDocument: this.ownerDocument,\n restoreFocus: true,\n showOutsideDays: true,\n trapFocus: true,\n value: null,\n });\n private readonly unsubscribe = this.controller.subscribe((event) => {\n this.renderVersion.update((value) => value + 1);\n\n switch (event.type) {\n case 'activeChange':\n this.activeDateChange.emit(event.activeDate);\n break;\n case 'closed':\n this.overlayOpen.set(false);\n this.openChange.emit(false);\n this.closed.emit(event.reason);\n break;\n case 'monthChange':\n this.monthChange.emit(event.visibleMonth);\n break;\n case 'opened':\n this.overlayOpen.set(true);\n this.openChange.emit(true);\n this.queueOverlayFocusSync();\n break;\n case 'valueChange':\n this.valueChange.emit(event.value);\n break;\n case 'viewChange':\n this.viewChange.emit(event.view);\n break;\n case 'yearChange':\n this.yearChange.emit(event.year);\n break;\n }\n });\n\n public readonly adapter = input<TngDateAdapter<TDate> | undefined>(undefined);\n public readonly allowDeselect = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly allowManualInput = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaLabel = input<string | null>(null);\n public readonly ariaLabelledBy = input<string | null>(null);\n public readonly autoCommitView = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly closeOnEscape = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly closeOnOutsideClick = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly closeOnSelect = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly closeOthersOnOpen = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly defaultOpen = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly defaultValue = input<TngDateSelectionInput<TDate> | undefined>(undefined);\n public readonly direction = input<TngDatepickerDirection>('ltr');\n public readonly disableDate = input<((date: TDate) => boolean) | null>(null);\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly fullWidth = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly id = input<string | null>(null);\n public readonly inputAriaLabel = input<string>('Date input');\n public readonly invalid = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly locale = input<string>(this.defaultLocale);\n public readonly maxDate = input<TngDateInputValue<TDate> | undefined>(undefined);\n public readonly minDate = input<TngDateInputValue<TDate> | undefined>(undefined);\n public readonly open = input<boolean | undefined, OptionalBooleanInput>(undefined, {\n transform: normalizeOptionalBooleanInput,\n });\n public readonly overlaySize = input<number, number | string>(320, {\n transform: normalizeNumberInput,\n });\n public readonly placement = input<TngDatepickerPlacement>('auto');\n public readonly placeholder = input<string>('MM-DD-YYYY');\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly restoreFocus = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly selectionMode = input<TngDatepickerSelectionMode>('single');\n public readonly showOutsideDays = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly today = input<TngDateInputValue<TDate> | undefined>(undefined);\n public readonly trapFocus = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly value = input<TngDateSelectionInput<TDate> | undefined>(undefined);\n public readonly weekStartsOn = input<TngWeekdayIndex, TngWeekdayIndex | number | string>(0, {\n transform: normalizeWeekdayInput,\n });\n public readonly yearPageSize = input<number, number | string>(24, {\n transform: normalizeNumberInput,\n });\n\n public readonly activeDateChange = output<TDate>();\n public readonly closed = output<TngDatepickerCloseReason>();\n public readonly monthChange = output<TDate>();\n public readonly openChange = output<boolean>();\n public readonly valueChange = output<TngDateValue<TDate>>();\n public readonly viewChange = output<TngCalendarView>();\n public readonly yearChange = output<number>();\n\n protected readonly outputs = computed(() => {\n this.renderVersion();\n return this.controller.getOutputs();\n });\n\n protected readonly invalidState = computed(\n () => this.invalid() || this.outputs().validationError !== null,\n );\n protected readonly currentOverlayPlacement = computed(() => this.resolvedOverlayPlacement());\n\n protected readonly materialPeriodLabel = computed(() => {\n const outputs = this.outputs();\n if (outputs.view === 'year') {\n const startYear = outputs.yearOptions[0]?.year;\n const endYear = outputs.yearOptions[outputs.yearOptions.length - 1]?.year;\n if (startYear !== undefined && endYear !== undefined) {\n return `${startYear} - ${endYear}`;\n }\n }\n\n if (outputs.view === 'month') {\n return this.controller.formatDate(outputs.visibleMonth, 'year-label');\n }\n\n return outputs.labelMonthYear;\n });\n\n @HostBinding('attr.data-full-width')\n protected get dataFullWidth(): '' | null {\n return this.fullWidth() ? '' : null;\n }\n\n public constructor() {\n effect(() => {\n const trigger = this.triggerRef()?.nativeElement ?? null;\n this.controller.registerTrigger(trigger);\n });\n\n effect(() => {\n const overlay = this.overlayRef()?.nativeElement ?? null;\n this.controller.registerOverlay(overlay);\n this.initializeOverlayPortal(overlay);\n this.renderVersion.update((value) => value + 1);\n });\n\n effect(() => {\n const overlay = this.overlayRef()?.nativeElement;\n if (overlay === undefined) {\n return;\n }\n\n if (this.overlayOpen()) {\n this.mountOverlayToBodyAndPosition();\n return;\n }\n\n this.restoreOverlayToPlaceholder();\n });\n\n effect(() => {\n this.placement();\n this.direction();\n this.overlaySize();\n\n if (!this.overlayOpen()) {\n return;\n }\n\n this.scheduleOverlayLayoutSync();\n });\n\n effect(() => {\n this.controller.setConfig({\n adapter: this.adapter(),\n allowDeselect: this.allowDeselect(),\n allowManualInput: this.allowManualInput(),\n ariaDescribedBy: this.ariaDescribedBy(),\n ariaLabel: this.ariaLabel(),\n ariaLabelledBy: this.ariaLabelledBy(),\n autoCommitView: this.autoCommitView(),\n closeOnEscape: this.closeOnEscape(),\n closeOnOutsideClick: this.closeOnOutsideClick(),\n closeOnSelect: this.closeOnSelect(),\n closeOthersOnOpen: this.closeOthersOnOpen(),\n direction: this.direction(),\n disableDate: this.disableDate() ?? undefined,\n disabled: this.disabled(),\n id: this.id() ?? undefined,\n locale: this.locale(),\n maxDate: this.maxDate(),\n minDate: this.minDate(),\n overlaySize: this.overlaySize(),\n ownerDocument: this.ownerDocument,\n restoreFocus: this.restoreFocus(),\n selectionMode: this.selectionMode(),\n showOutsideDays: this.showOutsideDays(),\n today: this.today(),\n trapFocus: this.trapFocus(),\n weekStartsOn: this.weekStartsOn(),\n yearPageSize: this.yearPageSize(),\n });\n\n const controlledValue = this.value();\n if (controlledValue !== undefined) {\n this.controller.setValue(controlledValue);\n }\n\n const controlledOpen = this.open();\n const currentOpen = this.controller.getOutputs().open;\n if (controlledOpen !== undefined) {\n this.controller.setOpen(controlledOpen);\n }\n\n if (!this.appliedInitialState) {\n if (controlledValue === undefined && this.defaultValue() !== undefined) {\n this.controller.setValue(this.defaultValue() as TngDateSelectionInput<TDate>);\n }\n\n if (controlledOpen === undefined && this.defaultOpen()) {\n this.controller.setOpen(true);\n }\n\n this.appliedInitialState = true;\n }\n });\n }\n\n public ngOnDestroy(): void {\n if (this.overlayLayoutFrame !== null && this.ownerWindow !== null) {\n this.ownerWindow.cancelAnimationFrame(this.overlayLayoutFrame);\n this.overlayLayoutFrame = null;\n }\n\n this.teardownOverlayRepositionListeners();\n this.restoreOverlayToPlaceholder(true);\n this.unsubscribe();\n this.controller.destroy();\n }\n\n public clear(): void {\n this.controller.clear();\n this.controller.showDaysPanel();\n this.queueOverlayFocusSync();\n }\n\n public close(reason: TngDatepickerCloseReason = 'programmatic'): void {\n this.controller.close(reason);\n }\n\n public openDatepicker(): void {\n this.controller.open();\n }\n\n public showDaysPanel(): void {\n this.controller.showDaysPanel();\n this.queueOverlayFocusSync();\n }\n\n public showMonthsPanel(): void {\n this.controller.showMonthsPanel();\n this.queueOverlayFocusSync();\n }\n\n public showYearsPanel(): void {\n this.controller.showYearsPanel();\n this.queueOverlayFocusSync();\n }\n\n public toggleOpen(): void {\n this.controller.toggleOpen();\n }\n\n protected resolveInputId(): string {\n const id = this.id()?.trim();\n if (id !== undefined && id !== '') {\n return `${id}-input`;\n }\n\n return this.fallbackInputId;\n }\n\n protected isDayView(): boolean {\n return this.outputs().view === 'day';\n }\n\n protected isMonthView(): boolean {\n return this.outputs().view === 'month';\n }\n\n protected isYearView(): boolean {\n return this.outputs().view === 'year';\n }\n\n protected onDayCellClick(cell: Readonly<TngDateCell<TDate>>): void {\n if (cell.disabled || cell.hidden) {\n return;\n }\n\n this.controller.handleCellClick(cell.date);\n }\n\n protected onInputBlur(): void {\n if (!this.allowManualInput()) {\n return;\n }\n\n this.controller.commitInputText();\n this.renderVersion.update((value) => value + 1);\n }\n\n protected onInputChange(event: Event): void {\n if (!this.allowManualInput()) {\n return;\n }\n\n const target = event.target;\n if (!(target instanceof HTMLInputElement)) {\n return;\n }\n\n this.controller.setInputText(target.value);\n this.renderVersion.update((value) => value + 1);\n }\n\n protected onInputKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' && this.allowManualInput()) {\n event.preventDefault();\n this.controller.commitInputText();\n this.renderVersion.update((value) => value + 1);\n return;\n }\n\n if (event.key === 'ArrowDown' && !this.outputs().open) {\n event.preventDefault();\n this.controller.open();\n }\n }\n\n protected onGridKeydown(event: KeyboardEvent): void {\n this.controller.handleGridKeyDown(event);\n if (this.shouldSyncOverlayFocusAfterPickerKey(event.key)) {\n this.queueOverlayFocusSync();\n }\n }\n\n protected onMonthKeydown(event: KeyboardEvent): void {\n this.controller.handleMonthGridKeyDown(event);\n if (this.isPickerActivationKey(event.key)) {\n this.controller.showDaysPanel();\n }\n if (this.shouldSyncOverlayFocusAfterPickerKey(event.key)) {\n this.queueOverlayFocusSync();\n }\n }\n\n protected onMonthOptionClick(option: Readonly<TngMonthOption<TDate>>): void {\n if (option.disabled) {\n return;\n }\n\n this.controller.selectMonth(option.index);\n this.controller.showDaysPanel();\n this.queueOverlayFocusSync();\n }\n\n protected onOverlayKeydown(event: KeyboardEvent): void {\n this.controller.handleOverlayKeyDown(event);\n }\n\n protected onTriggerClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.controller.toggleOpen();\n }\n\n protected onTriggerKeydown(event: KeyboardEvent): void {\n this.controller.handleTriggerKeyDown(event);\n }\n\n protected onPeriodButtonClick(): void {\n if (this.isYearView()) {\n return;\n }\n\n this.controller.showYearsPanel();\n this.queueOverlayFocusSync();\n }\n\n protected onYearKeydown(event: KeyboardEvent): void {\n this.controller.handleYearGridKeyDown(event);\n if (this.isPickerActivationKey(event.key)) {\n this.controller.showMonthsPanel();\n }\n if (this.shouldSyncOverlayFocusAfterPickerKey(event.key)) {\n this.queueOverlayFocusSync();\n }\n }\n\n protected onYearOptionClick(option: Readonly<TngYearOption<TDate>>): void {\n if (option.disabled) {\n return;\n }\n\n this.controller.selectYear(option.year);\n this.controller.showMonthsPanel();\n this.queueOverlayFocusSync();\n }\n\n protected pageBackward(): void {\n if (this.isDayView()) {\n this.controller.prevMonth();\n this.queueOverlayFocusSync();\n return;\n }\n\n if (this.isMonthView() || this.isYearView()) {\n this.controller.prevYear();\n this.queueOverlayFocusSync();\n return;\n }\n }\n\n protected pageForward(): void {\n if (this.isDayView()) {\n this.controller.nextMonth();\n this.queueOverlayFocusSync();\n return;\n }\n\n if (this.isMonthView() || this.isYearView()) {\n this.controller.nextYear();\n this.queueOverlayFocusSync();\n return;\n }\n }\n\n private queueOverlayFocusSync(): void {\n this.scheduleOverlayLayoutSync();\n\n queueMicrotask(() => {\n const focusActiveTarget = (): void => {\n const outputs = this.outputs();\n if (!outputs.open || this.ownerDocument === null) {\n return;\n }\n\n const targetId = this.resolveCurrentFocusTargetId(outputs);\n if (targetId === null) {\n return;\n }\n\n const target = this.ownerDocument.getElementById(targetId);\n if (!isKeyboardEventTarget(target)) {\n return;\n }\n\n target.focus();\n };\n\n if (typeof requestAnimationFrame === 'function') {\n requestAnimationFrame(() => {\n focusActiveTarget();\n });\n return;\n }\n\n setTimeout(() => {\n focusActiveTarget();\n }, 0);\n });\n }\n\n private resolveCurrentFocusTargetId(outputs: TngDatepickerOutputs<TDate>): string | null {\n if (outputs.view === 'day') {\n return outputs.cells.find((cell) => cell.active)?.id ?? null;\n }\n\n if (outputs.view === 'month') {\n return outputs.monthOptions.find((option) => option.active)?.id ?? null;\n }\n\n if (outputs.view === 'year') {\n return outputs.yearOptions.find((option) => option.active)?.id ?? null;\n }\n\n return null;\n }\n\n private shouldSyncOverlayFocusAfterPickerKey(key: string): boolean {\n return (\n key === 'ArrowUp' ||\n key === 'ArrowDown' ||\n key === 'ArrowLeft' ||\n key === 'ArrowRight' ||\n key === 'Home' ||\n key === 'End' ||\n key === 'PageUp' ||\n key === 'PageDown' ||\n key === 'Enter' ||\n key === ' ' ||\n key === 'Escape'\n );\n }\n\n private isPickerActivationKey(key: string): boolean {\n return key === 'Enter' || key === ' ';\n }\n\n private scheduleOverlayLayoutSync(): void {\n if (!this.overlayOpen() || this.ownerWindow === null) {\n return;\n }\n\n if (this.overlayLayoutFrame !== null) {\n this.ownerWindow.cancelAnimationFrame(this.overlayLayoutFrame);\n }\n\n this.overlayLayoutFrame = this.ownerWindow.requestAnimationFrame(() => {\n this.overlayLayoutFrame = null;\n this.positionOverlay();\n });\n }\n\n private initializeOverlayPortal(overlay: HTMLElement | null): void {\n if (overlay === null || this.overlayPlaceholder !== null) {\n return;\n }\n\n const placeholderDocument = this.ownerDocument ?? document;\n this.overlayPlaceholder = placeholderDocument.createComment('tng-datepicker-overlay-anchor');\n this.overlayOriginalParent = overlay.parentNode;\n this.overlayOriginalParent?.insertBefore(this.overlayPlaceholder, overlay);\n }\n\n private positionOverlay(): void {\n const overlay = this.overlayRef()?.nativeElement;\n const anchor = this.anchorRef()?.nativeElement;\n if (overlay === undefined || anchor === undefined || this.ownerWindow === null) {\n return;\n }\n\n const anchorRect = rectFromClientRect(anchor.getBoundingClientRect());\n const viewport = viewportRect(this.ownerWindow);\n const width = Math.max(\n 0,\n Math.min(anchorRect.width, viewport.width - OVERLAY_VIEWPORT_MARGIN * 2),\n );\n\n overlay.style.width = `${width}px`;\n overlay.style.maxWidth = `${Math.max(0, viewport.width - OVERLAY_VIEWPORT_MARGIN * 2)}px`;\n overlay.style.maxHeight = '';\n\n const overlayRect = rectFromClientRect(overlay.getBoundingClientRect());\n const result = computeOverlayPosition({\n anchorRect,\n collision: this.resolveOverlayCollision(this.placement()),\n direction: this.direction(),\n offset: this.resolveOverlayOffset(),\n overlayRect,\n placement: this.resolveOverlayPlacement(this.placement()),\n viewportRect: viewport,\n });\n\n overlay.style.left = `${result.x}px`;\n overlay.style.top = `${result.y}px`;\n\n const anchorBottom = anchorRect.top + anchorRect.height;\n const availableHeight =\n result.side === 'top'\n ? Math.max(0, Math.floor(anchorRect.top - OVERLAY_VIEWPORT_MARGIN - OVERLAY_OFFSET))\n : Math.max(\n 0,\n Math.floor(viewport.height - anchorBottom - OVERLAY_VIEWPORT_MARGIN - OVERLAY_OFFSET),\n );\n\n if (availableHeight > 0) {\n overlay.style.maxHeight = `${availableHeight}px`;\n }\n\n this.resolvedOverlayPlacement.set(result.side === 'top' ? 'top' : 'bottom');\n overlay.style.visibility = '';\n }\n\n private mountOverlayToBodyAndPosition(): void {\n const overlay = this.overlayRef()?.nativeElement;\n if (overlay === undefined || this.ownerDocument === null) {\n return;\n }\n\n this.initializeOverlayPortal(overlay);\n this.setupOverlayRepositionListeners();\n\n if (overlay.parentNode !== this.ownerDocument.body) {\n this.ownerDocument.body.appendChild(overlay);\n }\n\n overlay.style.position = 'fixed';\n overlay.style.left = '0px';\n overlay.style.top = '0px';\n overlay.style.visibility = 'hidden';\n overlay.style.zIndex = '1000';\n\n queueMicrotask(() => {\n if (!this.overlayOpen()) {\n return;\n }\n\n this.positionOverlay();\n });\n }\n\n private restoreOverlayToPlaceholder(force = false): void {\n const overlay = this.overlayRef()?.nativeElement;\n if (overlay === undefined) {\n return;\n }\n\n if (!force && overlay.parentNode !== this.ownerDocument?.body) {\n return;\n }\n\n const placeholder = this.overlayPlaceholder;\n if (placeholder?.parentNode !== null && placeholder !== null) {\n placeholder.parentNode.insertBefore(overlay, placeholder);\n } else if (this.overlayOriginalParent !== null) {\n this.overlayOriginalParent.appendChild(overlay);\n }\n\n this.teardownOverlayRepositionListeners();\n this.resolvedOverlayPlacement.set(this.placement() === 'top' ? 'top' : 'bottom');\n overlay.style.left = '';\n overlay.style.maxHeight = '';\n overlay.style.maxWidth = '';\n overlay.style.position = '';\n overlay.style.top = '';\n overlay.style.visibility = '';\n overlay.style.width = '';\n overlay.style.zIndex = '';\n }\n\n private setupOverlayRepositionListeners(): void {\n if (this.ownerWindow === null || this.removeResizeListener !== null || this.removeScrollListener !== null) {\n return;\n }\n\n const schedule = (): void => {\n this.scheduleOverlayLayoutSync();\n };\n\n this.ownerWindow.addEventListener('resize', schedule);\n this.ownerWindow.addEventListener('scroll', schedule, true);\n this.removeResizeListener = () => this.ownerWindow?.removeEventListener('resize', schedule);\n this.removeScrollListener = () => this.ownerWindow?.removeEventListener('scroll', schedule, true);\n\n if ('ResizeObserver' in this.ownerWindow) {\n this.resizeObserver = new this.ownerWindow.ResizeObserver(() => {\n this.scheduleOverlayLayoutSync();\n });\n\n const anchor = this.anchorRef()?.nativeElement;\n if (anchor !== undefined) {\n this.resizeObserver.observe(anchor);\n }\n\n const overlay = this.overlayRef()?.nativeElement;\n if (overlay !== undefined) {\n this.resizeObserver.observe(overlay);\n }\n }\n }\n\n private teardownOverlayRepositionListeners(): void {\n this.removeResizeListener?.();\n this.removeScrollListener?.();\n this.removeResizeListener = null;\n this.removeScrollListener = null;\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n private resolveOverlayCollision(\n placement: TngDatepickerPlacement,\n ): TngOverlayCollisionOptions {\n return {\n flip: placement === 'auto',\n padding: OVERLAY_VIEWPORT_MARGIN,\n shift: true,\n };\n }\n\n private resolveOverlayOffset(): TngOverlayOffset {\n return { side: OVERLAY_OFFSET };\n }\n\n private resolveOverlayPlacement(placement: TngDatepickerPlacement): TngOverlayPlacement {\n return {\n align: 'start',\n side: placement === 'top' ? 'top' : 'bottom',\n };\n }\n}\n","<div\n class=\"tng-datepicker-root\"\n [attr.aria-describedby]=\"outputs().getHostAttributes()['aria-describedby']\"\n [attr.aria-label]=\"outputs().getHostAttributes()['aria-label']\"\n [attr.aria-labelledby]=\"outputs().getHostAttributes()['aria-labelledby']\"\n [attr.data-disabled]=\"outputs().getHostAttributes()['data-disabled']\"\n [attr.data-open]=\"outputs().getHostAttributes()['data-open']\"\n [attr.data-slot]=\"outputs().getHostAttributes()['data-slot']\"\n [attr.data-view]=\"outputs().getHostAttributes()['data-view']\"\n [attr.dir]=\"outputs().getHostAttributes()['dir']\"\n [attr.role]=\"outputs().getHostAttributes()['role']\"\n>\n <div class=\"tng-datepicker-field\" data-slot=\"datepicker-field\">\n <div class=\"tng-datepicker-anchor\">\n <div\n #anchorShell\n class=\"tng-datepicker-input-shell\"\n data-slot=\"datepicker-input-shell\"\n [attr.data-invalid]=\"invalidState() ? 'true' : null\"\n [attr.data-open]=\"outputs().getTriggerAttributes()['data-open']\"\n >\n <input\n [id]=\"resolveInputId()\"\n class=\"tng-datepicker-input\"\n data-slot=\"datepicker-input\"\n type=\"text\"\n inputmode=\"numeric\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly() || !allowManualInput()\"\n [required]=\"false\"\n [value]=\"outputs().inputText\"\n [attr.aria-invalid]=\"invalidState() ? 'true' : null\"\n [attr.aria-label]=\"inputAriaLabel()\"\n [attr.placeholder]=\"placeholder()\"\n (blur)=\"onInputBlur()\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeydown($event)\"\n />\n\n <button\n #triggerButton\n type=\"button\"\n class=\"tng-datepicker-trigger\"\n [disabled]=\"disabled()\"\n [attr.aria-controls]=\"outputs().getTriggerAttributes()['aria-controls']\"\n [attr.aria-expanded]=\"outputs().getTriggerAttributes()['aria-expanded']\"\n [attr.aria-haspopup]=\"outputs().getTriggerAttributes()['aria-haspopup']\"\n [attr.data-open]=\"outputs().getTriggerAttributes()['data-open']\"\n [attr.data-slot]=\"outputs().getTriggerAttributes()['data-slot']\"\n [attr.aria-label]=\"'Open calendar'\"\n (click)=\"onTriggerClick()\"\n (keydown)=\"onTriggerKeydown($event)\"\n >\n <svg aria-hidden=\"true\" class=\"tng-datepicker-trigger-calendar\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path d=\"M6 2.5V5\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.8\" />\n <path d=\"M14 2.5V5\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.8\" />\n <rect x=\"3.25\" y=\"4.25\" width=\"13.5\" height=\"12.5\" rx=\"2.25\" stroke=\"currentColor\" stroke-width=\"1.8\" />\n <path d=\"M3.75 7.5H16.25\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"1.8\" />\n <path d=\"M6.75 10.5H7.25\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"1.8\" />\n <path d=\"M9.75 10.5H10.25\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"1.8\" />\n <path d=\"M12.75 10.5H13.25\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"1.8\" />\n <path d=\"M6.75 13.5H7.25\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"1.8\" />\n <path d=\"M9.75 13.5H10.25\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"1.8\" />\n </svg>\n <svg aria-hidden=\"true\" class=\"tng-datepicker-trigger-chevron\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M4.5 6.25L8 9.75L11.5 6.25\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.6\" />\n </svg>\n </button>\n </div>\n\n <section\n #overlayPanel\n class=\"tng-datepicker-overlay\"\n [attr.aria-labelledby]=\"outputs().getOverlayAttributes()['aria-labelledby']\"\n [attr.aria-modal]=\"outputs().getOverlayAttributes()['aria-modal']\"\n [attr.data-open]=\"outputs().getOverlayAttributes()['data-open']\"\n [attr.data-placement]=\"currentOverlayPlacement()\"\n [attr.data-position]=\"outputs().getOverlayAttributes()['data-position']\"\n [attr.data-slot]=\"outputs().getOverlayAttributes()['data-slot']\"\n [attr.hidden]=\"outputs().open ? null : ''\"\n [attr.id]=\"outputs().getOverlayAttributes()['id']\"\n [attr.role]=\"outputs().getOverlayAttributes()['role']\"\n [style.display]=\"outputs().open ? null : 'none'\"\n (keydown)=\"onOverlayKeydown($event)\"\n >\n <header class=\"tng-datepicker-header tng-datepicker-header-material\" data-slot=\"datepicker-header\">\n <div class=\"tng-datepicker-header-row tng-datepicker-header-row-material\">\n <button type=\"button\" class=\"tng-datepicker-nav-button\" data-slot=\"datepicker-nav-button\" (click)=\"pageBackward()\">\n <span aria-hidden=\"true\">&lsaquo;</span>\n </button>\n\n <button\n type=\"button\"\n class=\"tng-datepicker-period-button\"\n [attr.aria-haspopup]=\"!isYearView() ? 'grid' : null\"\n data-slot=\"datepicker-period-button\"\n [attr.id]=\"outputs().getGridAttributes()['aria-labelledby']\"\n [attr.data-interactive]=\"!isYearView() ? 'true' : null\"\n (click)=\"onPeriodButtonClick()\"\n >\n <span class=\"tng-datepicker-period-button-title-row\">\n <span class=\"tng-datepicker-period-button-title\">{{ materialPeriodLabel() }}</span>\n @if (!isYearView()) {\n <svg aria-hidden=\"true\" class=\"tng-datepicker-period-button-chevron\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M4.5 6.25L8 9.75L11.5 6.25\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.6\" />\n </svg>\n }\n </span>\n </button>\n\n <button type=\"button\" class=\"tng-datepicker-nav-button\" data-slot=\"datepicker-nav-button\" (click)=\"pageForward()\">\n <span aria-hidden=\"true\">&rsaquo;</span>\n </button>\n </div>\n </header>\n\n @if (isDayView()) {\n <div class=\"tng-datepicker-weekdays\" data-slot=\"datepicker-weekdays\" aria-hidden=\"true\">\n @for (label of outputs().weekdayLabels; track label) {\n <span class=\"tng-datepicker-weekday\" data-slot=\"datepicker-weekday\">{{ label }}</span>\n }\n </div>\n\n <div\n class=\"tng-datepicker-grid tng-datepicker-grid-days\"\n [attr.aria-activedescendant]=\"outputs().getGridAttributes()['aria-activedescendant']\"\n [attr.aria-labelledby]=\"outputs().getGridAttributes()['aria-labelledby']\"\n [attr.data-slot]=\"outputs().getGridAttributes()['data-slot']\"\n [attr.id]=\"outputs().getGridAttributes()['id']\"\n [attr.role]=\"outputs().getGridAttributes()['role']\"\n (keydown)=\"onGridKeydown($event)\"\n >\n @for (cell of outputs().cells; track cell.id) {\n <button\n type=\"button\"\n class=\"tng-datepicker-cell\"\n [disabled]=\"cell.disabled\"\n [attr.aria-current]=\"cell.today ? 'date' : null\"\n [attr.aria-disabled]=\"cell.disabled ? 'true' : null\"\n [attr.aria-selected]=\"cell.selected ? 'true' : 'false'\"\n [attr.data-active]=\"outputs().getCellAttributes(cell)['data-active']\"\n [attr.data-disabled]=\"outputs().getCellAttributes(cell)['data-disabled']\"\n [attr.data-focus-visible]=\"outputs().getCellAttributes(cell)['data-focus-visible']\"\n [attr.data-hidden]=\"outputs().getCellAttributes(cell)['data-hidden']\"\n [attr.data-in-month]=\"outputs().getCellAttributes(cell)['data-in-month']\"\n [attr.data-in-range]=\"outputs().getCellAttributes(cell)['data-in-range']\"\n [attr.data-range-end]=\"outputs().getCellAttributes(cell)['data-range-end']\"\n [attr.data-range-start]=\"outputs().getCellAttributes(cell)['data-range-start']\"\n [attr.data-selected]=\"outputs().getCellAttributes(cell)['data-selected']\"\n [attr.data-slot]=\"outputs().getCellAttributes(cell)['data-slot']\"\n [attr.id]=\"cell.id\"\n [attr.role]=\"'gridcell'\"\n [attr.tabindex]=\"outputs().getCellAttributes(cell)['tabindex']\"\n (click)=\"onDayCellClick(cell)\"\n >\n {{ cell.label }}\n </button>\n }\n </div>\n }\n\n @if (isMonthView()) {\n <div class=\"tng-datepicker-grid tng-datepicker-grid-picker\" data-slot=\"datepicker-grid\" role=\"grid\" (keydown)=\"onMonthKeydown($event)\">\n @for (option of outputs().monthOptions; track option.id) {\n <button\n type=\"button\"\n class=\"tng-datepicker-picker-cell\"\n [disabled]=\"option.disabled\"\n [attr.aria-disabled]=\"outputs().getMonthAttributes(option)['aria-disabled']\"\n [attr.aria-selected]=\"outputs().getMonthAttributes(option)['aria-selected']\"\n [attr.data-active]=\"outputs().getMonthAttributes(option)['data-active']\"\n [attr.data-disabled]=\"outputs().getMonthAttributes(option)['data-disabled']\"\n [attr.data-focus-visible]=\"outputs().getMonthAttributes(option)['data-focus-visible']\"\n [attr.data-selected]=\"outputs().getMonthAttributes(option)['data-selected']\"\n [attr.data-slot]=\"outputs().getMonthAttributes(option)['data-slot']\"\n [attr.id]=\"option.id\"\n [attr.role]=\"outputs().getMonthAttributes(option)['role']\"\n [attr.tabindex]=\"outputs().getMonthAttributes(option)['tabindex']\"\n (click)=\"onMonthOptionClick(option)\"\n >\n {{ option.label }}\n </button>\n }\n </div>\n }\n\n @if (isYearView()) {\n <div class=\"tng-datepicker-grid tng-datepicker-grid-picker\" data-slot=\"datepicker-grid\" role=\"grid\" (keydown)=\"onYearKeydown($event)\">\n @for (option of outputs().yearOptions; track option.id) {\n <button\n type=\"button\"\n class=\"tng-datepicker-picker-cell\"\n [disabled]=\"option.disabled\"\n [attr.aria-disabled]=\"outputs().getYearAttributes(option)['aria-disabled']\"\n [attr.aria-selected]=\"outputs().getYearAttributes(option)['aria-selected']\"\n [attr.data-active]=\"outputs().getYearAttributes(option)['data-active']\"\n [attr.data-disabled]=\"outputs().getYearAttributes(option)['data-disabled']\"\n [attr.data-focus-visible]=\"outputs().getYearAttributes(option)['data-focus-visible']\"\n [attr.data-selected]=\"outputs().getYearAttributes(option)['data-selected']\"\n [attr.data-slot]=\"outputs().getYearAttributes(option)['data-slot']\"\n [attr.id]=\"option.id\"\n [attr.role]=\"outputs().getYearAttributes(option)['role']\"\n [attr.tabindex]=\"outputs().getYearAttributes(option)['tabindex']\"\n (click)=\"onYearOptionClick(option)\"\n >\n {{ option.label }}\n </button>\n }\n </div>\n }\n </section>\n </div>\n </div>\n</div>\n"]}
@@ -1,3 +1,4 @@
1
+ import * as i0 from "@angular/core";
1
2
  export type TngFormFieldAppearance = 'outline' | 'solid' | 'ghost';
2
3
  export type TngFormFieldSize = 'sm' | 'md' | 'lg';
3
4
  export type TngFormFieldTone = 'neutral' | 'primary' | 'success' | 'danger';
@@ -11,5 +12,7 @@ export declare class TngFormFieldComponent {
11
12
  protected get dataSize(): TngFormFieldSize;
12
13
  protected get dataTone(): TngFormFieldTone;
13
14
  protected get dataFullWidth(): '' | null;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngFormFieldComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngFormFieldComponent, "tng-form-field", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; }, {}, never, ["[tngPrefix], [tngInputLeading]", "input[tngInput], textarea[tngInput]", "[tngSuffix], [tngInputTrailing]"], true, never>;
14
17
  }
15
18
  //# sourceMappingURL=tng-form-field.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-form-field.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/form-field/tng-form-field.component.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5E,qBAMa,qBAAqB;IAChC,SAAgB,UAAU,8DAA4C;IACtE,SAAgB,IAAI,wDAAiC;IACrD,SAAgB,IAAI,wDAAsC;IAE1D,SAAgB,SAAS,8EAEtB;IAGH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,oBAAoB,CAAU;IAG5D,SAAS,KAAK,cAAc,IAAI,sBAAsB,CAErD;IAGD,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAEzC;IAGD,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAEzC;IAGD,SAAS,KAAK,aAAa,IAAI,EAAE,GAAG,IAAI,CAEvC;CACF"}
1
+ {"version":3,"file":"tng-form-field.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/form-field/tng-form-field.component.ts"],"names":[],"mappings":";AAKA,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5E,qBAMa,qBAAqB;IAChC,SAAgB,UAAU,8DAA4C;IACtE,SAAgB,IAAI,wDAAiC;IACrD,SAAgB,IAAI,wDAAsC;IAE1D,SAAgB,SAAS,8EAEtB;IAGH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,oBAAoB,CAAU;IAG5D,SAAS,KAAK,cAAc,IAAI,sBAAsB,CAErD;IAGD,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAEzC;IAGD,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAEzC;IAGD,SAAS,KAAK,aAAa,IAAI,EAAE,GAAG,IAAI,CAEvC;yCA9BU,qBAAqB;2CAArB,qBAAqB;CA+BjC"}
@@ -1,14 +1,12 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, HostBinding, input } from '@angular/core';
3
2
  import { booleanAttribute } from '@angular/core';
4
3
  import { TngInputGroup, TngPrefix, TngSuffix } from '@tailng-ui/primitives';
5
- let TngFormFieldComponent = class TngFormFieldComponent {
6
- appearance = input('outline');
7
- size = input('md');
8
- tone = input('neutral');
9
- fullWidth = input(true, {
10
- transform: booleanAttribute,
11
- });
4
+ import * as i0 from "@angular/core";
5
+ export class TngFormFieldComponent {
6
+ appearance = input('outline', ...(ngDevMode ? [{ debugName: "appearance" }] : []));
7
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : []));
8
+ tone = input('neutral', ...(ngDevMode ? [{ debugName: "tone" }] : []));
9
+ fullWidth = input(true, { ...(ngDevMode ? { debugName: "fullWidth" } : {}), transform: booleanAttribute });
12
10
  dataSlot = 'form-field-wrapper';
13
11
  get dataAppearance() {
14
12
  return this.appearance();
@@ -22,29 +20,26 @@ let TngFormFieldComponent = class TngFormFieldComponent {
22
20
  get dataFullWidth() {
23
21
  return this.fullWidth() ? '' : null;
24
22
  }
25
- };
26
- __decorate([
27
- HostBinding('attr.data-slot')
28
- ], TngFormFieldComponent.prototype, "dataSlot", void 0);
29
- __decorate([
30
- HostBinding('attr.data-appearance')
31
- ], TngFormFieldComponent.prototype, "dataAppearance", null);
32
- __decorate([
33
- HostBinding('attr.data-size')
34
- ], TngFormFieldComponent.prototype, "dataSize", null);
35
- __decorate([
36
- HostBinding('attr.data-tone')
37
- ], TngFormFieldComponent.prototype, "dataTone", null);
38
- __decorate([
39
- HostBinding('attr.data-full-width')
40
- ], TngFormFieldComponent.prototype, "dataFullWidth", null);
41
- TngFormFieldComponent = __decorate([
42
- Component({
43
- selector: 'tng-form-field',
44
- imports: [TngInputGroup, TngPrefix, TngSuffix],
45
- templateUrl: './tng-form-field.component.html',
46
- styleUrl: './tng-form-field.component.css',
47
- })
48
- ], TngFormFieldComponent);
49
- export { TngFormFieldComponent };
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: TngFormFieldComponent, isStandalone: true, selector: "tng-form-field", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-slot": "this.dataSlot", "attr.data-appearance": "this.dataAppearance", "attr.data-size": "this.dataSize", "attr.data-tone": "this.dataTone", "attr.data-full-width": "this.dataFullWidth" } }, ngImport: i0, template: "<tng-input-group class=\"tng-form-field\">\n <span tngPrefix class=\"tng-form-field-slot-proxy\" data-tng-input-prefix-proxy>\n <ng-content select=\"[tngPrefix], [tngInputLeading]\"></ng-content>\n </span>\n\n <span class=\"tng-form-field-control-proxy\" data-tng-input-control-proxy>\n <ng-content select=\"input[tngInput], textarea[tngInput]\"></ng-content>\n </span>\n\n <span tngSuffix class=\"tng-form-field-slot-proxy\" data-tng-input-suffix-proxy>\n <ng-content select=\"[tngSuffix], [tngInputTrailing]\"></ng-content>\n </span>\n</tng-input-group>\n", styles: ["/*\n * Visual styling lives in the theme contract:\n * libs/tailng-ui/theme/src/lib/component-contracts/form/form-field/form-field.css\n */\n"], dependencies: [{ kind: "component", type: TngInputGroup, selector: "tng-input-group, [tngInputGroup]", inputs: ["hasLeading", "hasTrailing", "disabled", "invalid", "readonly", "controlCount"], exportAs: ["tngInputGroup"] }, { kind: "directive", type: TngPrefix, selector: "[tngPrefix], [tngInputLeading]", exportAs: ["tngPrefix"] }, { kind: "directive", type: TngSuffix, selector: "[tngSuffix], [tngInputTrailing]", exportAs: ["tngSuffix"] }] });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngFormFieldComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'tng-form-field', imports: [TngInputGroup, TngPrefix, TngSuffix], template: "<tng-input-group class=\"tng-form-field\">\n <span tngPrefix class=\"tng-form-field-slot-proxy\" data-tng-input-prefix-proxy>\n <ng-content select=\"[tngPrefix], [tngInputLeading]\"></ng-content>\n </span>\n\n <span class=\"tng-form-field-control-proxy\" data-tng-input-control-proxy>\n <ng-content select=\"input[tngInput], textarea[tngInput]\"></ng-content>\n </span>\n\n <span tngSuffix class=\"tng-form-field-slot-proxy\" data-tng-input-suffix-proxy>\n <ng-content select=\"[tngSuffix], [tngInputTrailing]\"></ng-content>\n </span>\n</tng-input-group>\n", styles: ["/*\n * Visual styling lives in the theme contract:\n * libs/tailng-ui/theme/src/lib/component-contracts/form/form-field/form-field.css\n */\n"] }]
29
+ }], propDecorators: { appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], dataSlot: [{
30
+ type: HostBinding,
31
+ args: ['attr.data-slot']
32
+ }], dataAppearance: [{
33
+ type: HostBinding,
34
+ args: ['attr.data-appearance']
35
+ }], dataSize: [{
36
+ type: HostBinding,
37
+ args: ['attr.data-size']
38
+ }], dataTone: [{
39
+ type: HostBinding,
40
+ args: ['attr.data-tone']
41
+ }], dataFullWidth: [{
42
+ type: HostBinding,
43
+ args: ['attr.data-full-width']
44
+ }] } });
50
45
  //# sourceMappingURL=tng-form-field.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-form-field.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/form-field/tng-form-field.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAYrE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChB,UAAU,GAAG,KAAK,CAAyB,SAAS,CAAC,CAAC;IACtD,IAAI,GAAG,KAAK,CAAmB,IAAI,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,CAAmB,SAAS,CAAC,CAAC;IAE1C,SAAS,GAAG,KAAK,CAA4B,IAAI,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IAGgB,QAAQ,GAAG,oBAA6B,CAAC;IAG5D,IAAc,cAAc;QAC1B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAGD,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAGD,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAGD,IAAc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;CACF,CAAA;AArBoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;uDAC8B;AAG5D;IADC,WAAW,CAAC,sBAAsB,CAAC;2DAGnC;AAGD;IADC,WAAW,CAAC,gBAAgB,CAAC;qDAG7B;AAGD;IADC,WAAW,CAAC,gBAAgB,CAAC;qDAG7B;AAGD;IADC,WAAW,CAAC,sBAAsB,CAAC;0DAGnC;AA9BU,qBAAqB;IANjC,SAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC;QAC9C,WAAW,EAAE,iCAAiC;QAC9C,QAAQ,EAAE,gCAAgC;KAC3C,CAAC;GACW,qBAAqB,CA+BjC","sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\nimport { booleanAttribute } from '@angular/core';\n\nimport { TngInputGroup, TngPrefix, TngSuffix } from '@tailng-ui/primitives';\n\nexport type TngFormFieldAppearance = 'outline' | 'solid' | 'ghost';\nexport type TngFormFieldSize = 'sm' | 'md' | 'lg';\nexport type TngFormFieldTone = 'neutral' | 'primary' | 'success' | 'danger';\n\n@Component({\n selector: 'tng-form-field',\n imports: [TngInputGroup, TngPrefix, TngSuffix],\n templateUrl: './tng-form-field.component.html',\n styleUrl: './tng-form-field.component.css',\n})\nexport class TngFormFieldComponent {\n public readonly appearance = input<TngFormFieldAppearance>('outline');\n public readonly size = input<TngFormFieldSize>('md');\n public readonly tone = input<TngFormFieldTone>('neutral');\n\n public readonly fullWidth = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'form-field-wrapper' as const;\n\n @HostBinding('attr.data-appearance')\n protected get dataAppearance(): TngFormFieldAppearance {\n return this.appearance();\n }\n\n @HostBinding('attr.data-size')\n protected get dataSize(): TngFormFieldSize {\n return this.size();\n }\n\n @HostBinding('attr.data-tone')\n protected get dataTone(): TngFormFieldTone {\n return this.tone();\n }\n\n @HostBinding('attr.data-full-width')\n protected get dataFullWidth(): '' | null {\n return this.fullWidth() ? '' : null;\n }\n}\n"]}
1
+ {"version":3,"file":"tng-form-field.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/form-field/tng-form-field.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/form/form-field/tng-form-field.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;;AAY5E,MAAM,OAAO,qBAAqB;IAChB,UAAU,GAAG,KAAK,CAAyB,SAAS,sDAAC,CAAC;IACtD,IAAI,GAAG,KAAK,CAAmB,IAAI,gDAAC,CAAC;IACrC,IAAI,GAAG,KAAK,CAAmB,SAAS,gDAAC,CAAC;IAE1C,SAAS,GAAG,KAAK,CAA4B,IAAI,sDAC/D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IAGgB,QAAQ,GAAG,oBAA6B,CAAC;IAE5D,IACc,cAAc;QAC1B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,IACc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;uGA9BU,qBAAqB;2FAArB,qBAAqB,2yBCflC,8jBAaA,uMDFY,aAAa,oMAAE,SAAS,oGAAE,SAAS;;2FAIlC,qBAAqB;kBANjC,SAAS;+BACE,gBAAgB,WACjB,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC;;sBAa7C,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,sBAAsB;;sBAKlC,WAAW;uBAAC,gBAAgB;;sBAK5B,WAAW;uBAAC,gBAAgB;;sBAK5B,WAAW;uBAAC,sBAAsB","sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\nimport { booleanAttribute } from '@angular/core';\n\nimport { TngInputGroup, TngPrefix, TngSuffix } from '@tailng-ui/primitives';\n\nexport type TngFormFieldAppearance = 'outline' | 'solid' | 'ghost';\nexport type TngFormFieldSize = 'sm' | 'md' | 'lg';\nexport type TngFormFieldTone = 'neutral' | 'primary' | 'success' | 'danger';\n\n@Component({\n selector: 'tng-form-field',\n imports: [TngInputGroup, TngPrefix, TngSuffix],\n templateUrl: './tng-form-field.component.html',\n styleUrl: './tng-form-field.component.css',\n})\nexport class TngFormFieldComponent {\n public readonly appearance = input<TngFormFieldAppearance>('outline');\n public readonly size = input<TngFormFieldSize>('md');\n public readonly tone = input<TngFormFieldTone>('neutral');\n\n public readonly fullWidth = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'form-field-wrapper' as const;\n\n @HostBinding('attr.data-appearance')\n protected get dataAppearance(): TngFormFieldAppearance {\n return this.appearance();\n }\n\n @HostBinding('attr.data-size')\n protected get dataSize(): TngFormFieldSize {\n return this.size();\n }\n\n @HostBinding('attr.data-tone')\n protected get dataTone(): TngFormFieldTone {\n return this.tone();\n }\n\n @HostBinding('attr.data-full-width')\n protected get dataFullWidth(): '' | null {\n return this.fullWidth() ? '' : null;\n }\n}\n","<tng-input-group class=\"tng-form-field\">\n <span tngPrefix class=\"tng-form-field-slot-proxy\" data-tng-input-prefix-proxy>\n <ng-content select=\"[tngPrefix], [tngInputLeading]\"></ng-content>\n </span>\n\n <span class=\"tng-form-field-control-proxy\" data-tng-input-control-proxy>\n <ng-content select=\"input[tngInput], textarea[tngInput]\"></ng-content>\n </span>\n\n <span tngSuffix class=\"tng-form-field-slot-proxy\" data-tng-input-suffix-proxy>\n <ng-content select=\"[tngSuffix], [tngInputTrailing]\"></ng-content>\n </span>\n</tng-input-group>\n"]}
@@ -1,41 +1,21 @@
1
1
  export * from './autocomplete/tng-autocomplete.component';
2
- export { TngAutocompleteComponent } from './autocomplete/tng-autocomplete.component';
3
2
  export * from './button-toggle/tng-button-toggle.component';
4
- export { TngButtonToggleComponent } from './button-toggle/tng-button-toggle.component';
5
3
  export * from './button-toggle/tng-button-toggle-group.component';
6
- export { TngButtonToggleGroupComponent } from './button-toggle/tng-button-toggle-group.component';
7
4
  export * from './checkbox/tng-checkbox.component';
8
- export { TngCheckboxComponent } from './checkbox/tng-checkbox.component';
9
5
  export * from './chips/tng-chips.component';
10
- export { TngChipsComponent } from './chips/tng-chips.component';
11
6
  export * from './combobox/tng-combobox.component';
12
- export { TngComboboxComponent } from './combobox/tng-combobox.component';
13
7
  export * from './datepicker/tng-datepicker.component';
14
- export { TngDatepickerComponent } from './datepicker/tng-datepicker.component';
15
8
  export * from './form-field/tng-form-field.component';
16
- export { TngFormFieldComponent } from './form-field/tng-form-field.component';
17
9
  export * from './input/tng-input.component';
18
- export { TngInputComponent } from './input/tng-input.component';
19
10
  export * from './input-otp';
20
- export { TngInputOtpComponent } from './input-otp';
21
11
  export * from './label/tng-label.component';
22
- export { TngLabelComponent } from './label/tng-label.component';
23
12
  export * from './multi-autocomplete/tng-multi-autocomplete.component';
24
- export { TngMultiAutocompleteComponent } from './multi-autocomplete/tng-multi-autocomplete.component';
25
13
  export * from './multiselect/tng-multiselect.component';
26
- export { TngMultiSelectComponent } from './multiselect/tng-multiselect.component';
27
14
  export * from './radio/tng-radio.component';
28
- export { TngRadioComponent } from './radio/tng-radio.component';
29
15
  export * from './select/tng-select.component';
30
- export { TngSelectComponent } from './select/tng-select.component';
31
16
  export * from './slider/tng-slider.component';
32
- export { TngSliderComponent } from './slider/tng-slider.component';
33
17
  export * from './switch/tng-switch.component';
34
- export { TngSwitchComponent } from './switch/tng-switch.component';
35
18
  export * from './textarea/tng-textarea.component';
36
- export { TngTextareaComponent } from './textarea/tng-textarea.component';
37
19
  export * from './toggle/tng-toggle.component';
38
- export { TngToggleComponent } from './toggle/tng-toggle.component';
39
20
  export * from './toggle-group/tng-toggle-group.component';
40
- export { TngToggleGroupComponent } from './toggle-group/tng-toggle-group.component';
41
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../libs/tailng-ui/components/src/lib/form/index.ts"],"names":[],"mappings":"AAAA,cAAc,2CAA2C,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,cAAc,6CAA6C,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,cAAc,mDAAmD,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAClG,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,cAAc,uCAAuC,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,cAAc,uCAAuC,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,cAAc,uDAAuD,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uDAAuD,CAAC;AACtG,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,cAAc,2CAA2C,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../libs/tailng-ui/components/src/lib/form/index.ts"],"names":[],"mappings":"AAKA,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mDAAmD,CAAC;AAClE,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uDAAuD,CAAC;AACtE,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC"}
@@ -1,41 +1,25 @@
1
+ // Form components
2
+ //
3
+ // Note: keep exports aligned with `src/index.ts` (root barrel) so the public API stays stable.
4
+ // The root barrel will re-export this file.
1
5
  export * from './autocomplete/tng-autocomplete.component';
2
- export { TngAutocompleteComponent } from './autocomplete/tng-autocomplete.component';
3
6
  export * from './button-toggle/tng-button-toggle.component';
4
- export { TngButtonToggleComponent } from './button-toggle/tng-button-toggle.component';
5
7
  export * from './button-toggle/tng-button-toggle-group.component';
6
- export { TngButtonToggleGroupComponent } from './button-toggle/tng-button-toggle-group.component';
7
8
  export * from './checkbox/tng-checkbox.component';
8
- export { TngCheckboxComponent } from './checkbox/tng-checkbox.component';
9
9
  export * from './chips/tng-chips.component';
10
- export { TngChipsComponent } from './chips/tng-chips.component';
11
10
  export * from './combobox/tng-combobox.component';
12
- export { TngComboboxComponent } from './combobox/tng-combobox.component';
13
11
  export * from './datepicker/tng-datepicker.component';
14
- export { TngDatepickerComponent } from './datepicker/tng-datepicker.component';
15
12
  export * from './form-field/tng-form-field.component';
16
- export { TngFormFieldComponent } from './form-field/tng-form-field.component';
17
13
  export * from './input/tng-input.component';
18
- export { TngInputComponent } from './input/tng-input.component';
19
14
  export * from './input-otp';
20
- export { TngInputOtpComponent } from './input-otp';
21
15
  export * from './label/tng-label.component';
22
- export { TngLabelComponent } from './label/tng-label.component';
23
16
  export * from './multi-autocomplete/tng-multi-autocomplete.component';
24
- export { TngMultiAutocompleteComponent } from './multi-autocomplete/tng-multi-autocomplete.component';
25
17
  export * from './multiselect/tng-multiselect.component';
26
- export { TngMultiSelectComponent } from './multiselect/tng-multiselect.component';
27
18
  export * from './radio/tng-radio.component';
28
- export { TngRadioComponent } from './radio/tng-radio.component';
29
19
  export * from './select/tng-select.component';
30
- export { TngSelectComponent } from './select/tng-select.component';
31
20
  export * from './slider/tng-slider.component';
32
- export { TngSliderComponent } from './slider/tng-slider.component';
33
21
  export * from './switch/tng-switch.component';
34
- export { TngSwitchComponent } from './switch/tng-switch.component';
35
22
  export * from './textarea/tng-textarea.component';
36
- export { TngTextareaComponent } from './textarea/tng-textarea.component';
37
23
  export * from './toggle/tng-toggle.component';
38
- export { TngToggleComponent } from './toggle/tng-toggle.component';
39
24
  export * from './toggle-group/tng-toggle-group.component';
40
- export { TngToggleGroupComponent } from './toggle-group/tng-toggle-group.component';
41
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/tailng-ui/components/src/lib/form/index.ts"],"names":[],"mappings":"AAAA,cAAc,2CAA2C,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,cAAc,6CAA6C,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,cAAc,mDAAmD,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAClG,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,cAAc,uCAAuC,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,cAAc,uCAAuC,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,cAAc,uDAAuD,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uDAAuD,CAAC;AACtG,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,cAAc,2CAA2C,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC","sourcesContent":["export * from './autocomplete/tng-autocomplete.component';\nexport { TngAutocompleteComponent } from './autocomplete/tng-autocomplete.component';\nexport * from './button-toggle/tng-button-toggle.component';\nexport { TngButtonToggleComponent } from './button-toggle/tng-button-toggle.component';\nexport * from './button-toggle/tng-button-toggle-group.component';\nexport { TngButtonToggleGroupComponent } from './button-toggle/tng-button-toggle-group.component';\nexport * from './checkbox/tng-checkbox.component';\nexport { TngCheckboxComponent } from './checkbox/tng-checkbox.component';\nexport * from './chips/tng-chips.component';\nexport { TngChipsComponent } from './chips/tng-chips.component';\nexport * from './combobox/tng-combobox.component';\nexport { TngComboboxComponent } from './combobox/tng-combobox.component';\nexport * from './datepicker/tng-datepicker.component';\nexport { TngDatepickerComponent } from './datepicker/tng-datepicker.component';\nexport * from './form-field/tng-form-field.component';\nexport { TngFormFieldComponent } from './form-field/tng-form-field.component';\nexport * from './input/tng-input.component';\nexport { TngInputComponent } from './input/tng-input.component';\nexport * from './input-otp';\nexport { TngInputOtpComponent } from './input-otp';\nexport * from './label/tng-label.component';\nexport { TngLabelComponent } from './label/tng-label.component';\nexport * from './multi-autocomplete/tng-multi-autocomplete.component';\nexport { TngMultiAutocompleteComponent } from './multi-autocomplete/tng-multi-autocomplete.component';\nexport * from './multiselect/tng-multiselect.component';\nexport { TngMultiSelectComponent } from './multiselect/tng-multiselect.component';\nexport * from './radio/tng-radio.component';\nexport { TngRadioComponent } from './radio/tng-radio.component';\nexport * from './select/tng-select.component';\nexport { TngSelectComponent } from './select/tng-select.component';\nexport * from './slider/tng-slider.component';\nexport { TngSliderComponent } from './slider/tng-slider.component';\nexport * from './switch/tng-switch.component';\nexport { TngSwitchComponent } from './switch/tng-switch.component';\nexport * from './textarea/tng-textarea.component';\nexport { TngTextareaComponent } from './textarea/tng-textarea.component';\nexport * from './toggle/tng-toggle.component';\nexport { TngToggleComponent } from './toggle/tng-toggle.component';\nexport * from './toggle-group/tng-toggle-group.component';\nexport { TngToggleGroupComponent } from './toggle-group/tng-toggle-group.component';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/tailng-ui/components/src/lib/form/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,EAAE;AACF,+FAA+F;AAC/F,4CAA4C;AAE5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,mDAAmD,CAAC;AAClE,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uDAAuD,CAAC;AACtE,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC","sourcesContent":["// Form components\n//\n// Note: keep exports aligned with `src/index.ts` (root barrel) so the public API stays stable.\n// The root barrel will re-export this file.\n\nexport * from './autocomplete/tng-autocomplete.component';\nexport * from './button-toggle/tng-button-toggle.component';\nexport * from './button-toggle/tng-button-toggle-group.component';\nexport * from './checkbox/tng-checkbox.component';\nexport * from './chips/tng-chips.component';\nexport * from './combobox/tng-combobox.component';\nexport * from './datepicker/tng-datepicker.component';\nexport * from './form-field/tng-form-field.component';\nexport * from './input/tng-input.component';\nexport * from './input-otp';\nexport * from './label/tng-label.component';\nexport * from './multi-autocomplete/tng-multi-autocomplete.component';\nexport * from './multiselect/tng-multiselect.component';\nexport * from './radio/tng-radio.component';\nexport * from './select/tng-select.component';\nexport * from './slider/tng-slider.component';\nexport * from './switch/tng-switch.component';\nexport * from './textarea/tng-textarea.component';\nexport * from './toggle/tng-toggle.component';\nexport * from './toggle-group/tng-toggle-group.component';\n"]}
@@ -1,6 +1,7 @@
1
1
  import type { ControlValueAccessor } from '@angular/forms';
2
2
  import { type TngInputType } from '@tailng-ui/primitives';
3
3
  import { type TngFormFieldAppearance, type TngFormFieldSize, type TngFormFieldTone } from '../form-field/tng-form-field.component';
4
+ import * as i0 from "@angular/core";
4
5
  type NullableBooleanInput = boolean | null | string | undefined;
5
6
  export declare class TngInputComponent implements ControlValueAccessor {
6
7
  readonly appearance: import("@angular/core").InputSignal<TngFormFieldAppearance>;
@@ -47,6 +48,8 @@ export declare class TngInputComponent implements ControlValueAccessor {
47
48
  onInput(event: unknown): void;
48
49
  onBlur(event: FocusEvent): void;
49
50
  protected normalizeAttrValue(value: string | null | undefined): string | null;
51
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngInputComponent, never>;
52
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngInputComponent, "tng-input", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "ariaInvalid": { "alias": "ariaInvalid"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "ariaRequired": { "alias": "ariaRequired"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "inputEvent": "input"; "blurEvent": "blur"; }, never, never, true, never>;
50
53
  }
51
54
  export {};
52
55
  //# sourceMappingURL=tng-input.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-input.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/input/tng-input.component.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAG1D,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,wCAAwC,CAAC;AAEhD,KAAK,oBAAoB,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAehE,qBAca,iBAAkB,YAAW,oBAAoB;IAE5D,SAAgB,UAAU,8DAA4C;IACtE,SAAgB,IAAI,wDAAiC;IACrD,SAAgB,IAAI,wDAAsC;IAC1D,SAAgB,SAAS,8EAEtB;IAGH,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,WAAW,yFAExB;IACH,SAAgB,SAAS,qDAA8B;IACvD,SAAgB,cAAc,qDAA8B;IAC5D,SAAgB,YAAY,yFAEzB;IAEH,SAAgB,YAAY,qDAA8B;IAC1D,SAAgB,QAAQ,8EAErB;IACH,SAAgB,EAAE,qDAA8B;IAChD,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,WAAW,qDAA8B;IACzD,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,IAAI,oDAA+B;IAEnD;;;OAGG;IACH,SAAgB,KAAK,qDAA8B;IAGnD,SAAgB,WAAW,mDAAoB;IAC/C,SAAgB,UAAU,kDAAqC;IAC/D,SAAgB,SAAS,uDAAyC;IAGlE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,SAAS,CAA+B;IAIhD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,iBAAiB,CAAU;IAGzD,SAAS,KAAK,cAAc,IAAI,sBAAsB,CAErD;IAGD,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAEzC;IAGD,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAEzC;IAGD,SAAS,KAAK,aAAa,IAAI,EAAE,GAAG,IAAI,CAEvC;IAGD,SAAS,KAAK,cAAc,IAAI,MAAM,CAGrC;IAED,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAEzC;IAGM,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAUhC,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAInD,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAK3C,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IA0B7B,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAKtC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;CAG9E"}
1
+ {"version":3,"file":"tng-input.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/form/input/tng-input.component.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAG1D,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,wCAAwC,CAAC;;AAEhD,KAAK,oBAAoB,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAehE,qBAca,iBAAkB,YAAW,oBAAoB;IAE5D,SAAgB,UAAU,8DAA4C;IACtE,SAAgB,IAAI,wDAAiC;IACrD,SAAgB,IAAI,wDAAsC;IAC1D,SAAgB,SAAS,8EAEtB;IAGH,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,WAAW,yFAExB;IACH,SAAgB,SAAS,qDAA8B;IACvD,SAAgB,cAAc,qDAA8B;IAC5D,SAAgB,YAAY,yFAEzB;IAEH,SAAgB,YAAY,qDAA8B;IAC1D,SAAgB,QAAQ,8EAErB;IACH,SAAgB,EAAE,qDAA8B;IAChD,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,WAAW,qDAA8B;IACzD,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,IAAI,oDAA+B;IAEnD;;;OAGG;IACH,SAAgB,KAAK,qDAA8B;IAGnD,SAAgB,WAAW,mDAAoB;IAC/C,SAAgB,UAAU,kDAAqC;IAC/D,SAAgB,SAAS,uDAAyC;IAGlE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,SAAS,CAA+B;IAIhD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,iBAAiB,CAAU;IAGzD,SAAS,KAAK,cAAc,IAAI,sBAAsB,CAErD;IAGD,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAEzC;IAGD,SAAS,KAAK,QAAQ,IAAI,gBAAgB,CAEzC;IAGD,SAAS,KAAK,aAAa,IAAI,EAAE,GAAG,IAAI,CAEvC;IAGD,SAAS,KAAK,cAAc,IAAI,MAAM,CAGrC;IAED,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAEzC;IAGM,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAUhC,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAInD,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAK3C,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IA0B7B,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAKtC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;yCA/IlE,iBAAiB;2CAAjB,iBAAiB;CAkJ7B"}