ngwr 14.10.0 → 14.11.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 (694) hide show
  1. package/fesm2022/ngwr-action-sheet-testing.mjs +111 -310
  2. package/fesm2022/ngwr-action-sheet-testing.mjs.map +1 -1
  3. package/fesm2022/ngwr-action-sheet.mjs +209 -89
  4. package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
  5. package/fesm2022/ngwr-affix.mjs +122 -140
  6. package/fesm2022/ngwr-affix.mjs.map +1 -1
  7. package/fesm2022/ngwr-alert.mjs +204 -107
  8. package/fesm2022/ngwr-alert.mjs.map +1 -1
  9. package/fesm2022/ngwr-anchor.mjs +171 -113
  10. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  11. package/fesm2022/ngwr-aurora.mjs +278 -198
  12. package/fesm2022/ngwr-aurora.mjs.map +1 -1
  13. package/fesm2022/ngwr-avatar.mjs +191 -190
  14. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  15. package/fesm2022/ngwr-back-top.mjs +140 -95
  16. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  17. package/fesm2022/ngwr-badge.mjs +339 -204
  18. package/fesm2022/ngwr-badge.mjs.map +1 -1
  19. package/fesm2022/ngwr-bar-chart-testing.mjs +56 -120
  20. package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -1
  21. package/fesm2022/ngwr-bar-chart.mjs +204 -113
  22. package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
  23. package/fesm2022/ngwr-blur-text-testing.mjs +44 -198
  24. package/fesm2022/ngwr-blur-text-testing.mjs.map +1 -1
  25. package/fesm2022/ngwr-blur-text.mjs +322 -202
  26. package/fesm2022/ngwr-blur-text.mjs.map +1 -1
  27. package/fesm2022/ngwr-border-glow-testing.mjs +134 -318
  28. package/fesm2022/ngwr-border-glow-testing.mjs.map +1 -1
  29. package/fesm2022/ngwr-border-glow.mjs +440 -277
  30. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  31. package/fesm2022/ngwr-breadcrumbs.mjs +256 -120
  32. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  33. package/fesm2022/ngwr-burger.mjs +115 -63
  34. package/fesm2022/ngwr-burger.mjs.map +1 -1
  35. package/fesm2022/ngwr-button-testing.mjs +39 -94
  36. package/fesm2022/ngwr-button-testing.mjs.map +1 -1
  37. package/fesm2022/ngwr-button.mjs +404 -354
  38. package/fesm2022/ngwr-button.mjs.map +1 -1
  39. package/fesm2022/ngwr-calendar-heatmap-testing.mjs +50 -96
  40. package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -1
  41. package/fesm2022/ngwr-calendar-heatmap.mjs +360 -264
  42. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  43. package/fesm2022/ngwr-calendar-testing.mjs +181 -378
  44. package/fesm2022/ngwr-calendar-testing.mjs.map +1 -1
  45. package/fesm2022/ngwr-calendar.mjs +612 -790
  46. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  47. package/fesm2022/ngwr-card.mjs +216 -98
  48. package/fesm2022/ngwr-card.mjs.map +1 -1
  49. package/fesm2022/ngwr-carousel-testing.mjs +131 -374
  50. package/fesm2022/ngwr-carousel-testing.mjs.map +1 -1
  51. package/fesm2022/ngwr-carousel.mjs +459 -332
  52. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  53. package/fesm2022/ngwr-cascader-testing.mjs +227 -600
  54. package/fesm2022/ngwr-cascader-testing.mjs.map +1 -1
  55. package/fesm2022/ngwr-cascader.mjs +479 -418
  56. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  57. package/fesm2022/ngwr-checkbox-testing.mjs +45 -99
  58. package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -1
  59. package/fesm2022/ngwr-checkbox.mjs +442 -354
  60. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  61. package/fesm2022/ngwr-circular-text-testing.mjs +56 -223
  62. package/fesm2022/ngwr-circular-text-testing.mjs.map +1 -1
  63. package/fesm2022/ngwr-circular-text.mjs +226 -186
  64. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  65. package/fesm2022/ngwr-click-spark.mjs +303 -199
  66. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  67. package/fesm2022/ngwr-clipboard.mjs +95 -163
  68. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  69. package/fesm2022/ngwr-collapse-testing.mjs +118 -365
  70. package/fesm2022/ngwr-collapse-testing.mjs.map +1 -1
  71. package/fesm2022/ngwr-collapse.mjs +287 -227
  72. package/fesm2022/ngwr-collapse.mjs.map +1 -1
  73. package/fesm2022/ngwr-color-picker-testing.mjs +223 -461
  74. package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -1
  75. package/fesm2022/ngwr-color-picker.mjs +937 -976
  76. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  77. package/fesm2022/ngwr-command-palette-testing.mjs +236 -585
  78. package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -1
  79. package/fesm2022/ngwr-command-palette.mjs +512 -443
  80. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  81. package/fesm2022/ngwr-compare.mjs +252 -225
  82. package/fesm2022/ngwr-compare.mjs.map +1 -1
  83. package/fesm2022/ngwr-confetti.mjs +163 -181
  84. package/fesm2022/ngwr-confetti.mjs.map +1 -1
  85. package/fesm2022/ngwr-config.mjs +31 -106
  86. package/fesm2022/ngwr-config.mjs.map +1 -1
  87. package/fesm2022/ngwr-context-menu-testing.mjs +233 -642
  88. package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -1
  89. package/fesm2022/ngwr-context-menu.mjs +837 -1167
  90. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  91. package/fesm2022/ngwr-cookie.mjs +103 -140
  92. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  93. package/fesm2022/ngwr-counter.mjs +646 -460
  94. package/fesm2022/ngwr-counter.mjs.map +1 -1
  95. package/fesm2022/ngwr-date-adapters-fns.mjs +173 -266
  96. package/fesm2022/ngwr-date-adapters-fns.mjs.map +1 -1
  97. package/fesm2022/ngwr-date-adapters-luxon.mjs +164 -236
  98. package/fesm2022/ngwr-date-adapters-luxon.mjs.map +1 -1
  99. package/fesm2022/ngwr-date-picker-testing.mjs +340 -700
  100. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
  101. package/fesm2022/ngwr-date-picker.mjs +2575 -2416
  102. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  103. package/fesm2022/ngwr-date.mjs +606 -861
  104. package/fesm2022/ngwr-date.mjs.map +1 -1
  105. package/fesm2022/ngwr-decrypt-text-testing.mjs +57 -256
  106. package/fesm2022/ngwr-decrypt-text-testing.mjs.map +1 -1
  107. package/fesm2022/ngwr-decrypt-text.mjs +489 -409
  108. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
  109. package/fesm2022/ngwr-density.mjs +157 -154
  110. package/fesm2022/ngwr-density.mjs.map +1 -1
  111. package/fesm2022/ngwr-descriptions.mjs +188 -90
  112. package/fesm2022/ngwr-descriptions.mjs.map +1 -1
  113. package/fesm2022/ngwr-dialog-testing.mjs +44 -87
  114. package/fesm2022/ngwr-dialog-testing.mjs.map +1 -1
  115. package/fesm2022/ngwr-dialog.mjs +391 -522
  116. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  117. package/fesm2022/ngwr-directives.mjs +354 -271
  118. package/fesm2022/ngwr-directives.mjs.map +1 -1
  119. package/fesm2022/ngwr-divider.mjs +151 -133
  120. package/fesm2022/ngwr-divider.mjs.map +1 -1
  121. package/fesm2022/ngwr-donut-chart-testing.mjs +48 -111
  122. package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -1
  123. package/fesm2022/ngwr-donut-chart.mjs +295 -190
  124. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  125. package/fesm2022/ngwr-drag-drop.mjs +411 -301
  126. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  127. package/fesm2022/ngwr-drawer-testing.mjs +97 -248
  128. package/fesm2022/ngwr-drawer-testing.mjs.map +1 -1
  129. package/fesm2022/ngwr-drawer.mjs +862 -889
  130. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  131. package/fesm2022/ngwr-dropdown-testing.mjs +125 -288
  132. package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -1
  133. package/fesm2022/ngwr-dropdown.mjs +613 -641
  134. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  135. package/fesm2022/ngwr-editor-testing.mjs +194 -640
  136. package/fesm2022/ngwr-editor-testing.mjs.map +1 -1
  137. package/fesm2022/ngwr-editor.mjs +2062 -2541
  138. package/fesm2022/ngwr-editor.mjs.map +1 -1
  139. package/fesm2022/ngwr-empty.mjs +117 -72
  140. package/fesm2022/ngwr-empty.mjs.map +1 -1
  141. package/fesm2022/ngwr-event-calendar-testing.mjs +215 -439
  142. package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -1
  143. package/fesm2022/ngwr-event-calendar.mjs +906 -822
  144. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  145. package/fesm2022/ngwr-falling-text-testing.mjs +52 -216
  146. package/fesm2022/ngwr-falling-text-testing.mjs.map +1 -1
  147. package/fesm2022/ngwr-falling-text.mjs +375 -342
  148. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  149. package/fesm2022/ngwr-file-upload-testing.mjs +133 -320
  150. package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -1
  151. package/fesm2022/ngwr-file-upload.mjs +457 -328
  152. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  153. package/fesm2022/ngwr-form-testing.mjs +145 -452
  154. package/fesm2022/ngwr-form-testing.mjs.map +1 -1
  155. package/fesm2022/ngwr-form.mjs +512 -590
  156. package/fesm2022/ngwr-form.mjs.map +1 -1
  157. package/fesm2022/ngwr-fuzzy-text-testing.mjs +36 -132
  158. package/fesm2022/ngwr-fuzzy-text-testing.mjs.map +1 -1
  159. package/fesm2022/ngwr-fuzzy-text.mjs +635 -421
  160. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  161. package/fesm2022/ngwr-gauge-testing.mjs +49 -98
  162. package/fesm2022/ngwr-gauge-testing.mjs.map +1 -1
  163. package/fesm2022/ngwr-gauge.mjs +297 -129
  164. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  165. package/fesm2022/ngwr-glitch-text-testing.mjs +61 -213
  166. package/fesm2022/ngwr-glitch-text-testing.mjs.map +1 -1
  167. package/fesm2022/ngwr-glitch-text.mjs +170 -73
  168. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  169. package/fesm2022/ngwr-gradient-text-testing.mjs +82 -251
  170. package/fesm2022/ngwr-gradient-text-testing.mjs.map +1 -1
  171. package/fesm2022/ngwr-gradient-text.mjs +215 -114
  172. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  173. package/fesm2022/ngwr-graph-testing.mjs +65 -233
  174. package/fesm2022/ngwr-graph-testing.mjs.map +1 -1
  175. package/fesm2022/ngwr-graph.mjs +882 -1046
  176. package/fesm2022/ngwr-graph.mjs.map +1 -1
  177. package/fesm2022/ngwr-hotkey.mjs +307 -285
  178. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  179. package/fesm2022/ngwr-i18n-ar.mjs +375 -464
  180. package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
  181. package/fesm2022/ngwr-i18n-cs.mjs +375 -434
  182. package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
  183. package/fesm2022/ngwr-i18n-de.mjs +375 -453
  184. package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
  185. package/fesm2022/ngwr-i18n-en.mjs +375 -561
  186. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  187. package/fesm2022/ngwr-i18n-es.mjs +375 -434
  188. package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
  189. package/fesm2022/ngwr-i18n-fr.mjs +375 -458
  190. package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
  191. package/fesm2022/ngwr-i18n-he.mjs +375 -457
  192. package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
  193. package/fesm2022/ngwr-i18n-hi.mjs +375 -434
  194. package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
  195. package/fesm2022/ngwr-i18n-id.mjs +375 -434
  196. package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
  197. package/fesm2022/ngwr-i18n-it.mjs +375 -453
  198. package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
  199. package/fesm2022/ngwr-i18n-ja.mjs +375 -438
  200. package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
  201. package/fesm2022/ngwr-i18n-ko.mjs +375 -446
  202. package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
  203. package/fesm2022/ngwr-i18n-nl.mjs +375 -450
  204. package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
  205. package/fesm2022/ngwr-i18n-pl.mjs +375 -460
  206. package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
  207. package/fesm2022/ngwr-i18n-pt.mjs +375 -443
  208. package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
  209. package/fesm2022/ngwr-i18n-ru.mjs +375 -447
  210. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  211. package/fesm2022/ngwr-i18n-sv.mjs +375 -434
  212. package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
  213. package/fesm2022/ngwr-i18n-tr.mjs +375 -458
  214. package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
  215. package/fesm2022/ngwr-i18n-uk.mjs +375 -455
  216. package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
  217. package/fesm2022/ngwr-i18n-vi.mjs +375 -451
  218. package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
  219. package/fesm2022/ngwr-i18n-zh-TW.mjs +375 -442
  220. package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
  221. package/fesm2022/ngwr-i18n-zh.mjs +375 -433
  222. package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
  223. package/fesm2022/ngwr-i18n.mjs +415 -683
  224. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  225. package/fesm2022/ngwr-icon-adapters-feather.mjs +28 -77
  226. package/fesm2022/ngwr-icon-adapters-feather.mjs.map +1 -1
  227. package/fesm2022/ngwr-icon-adapters-lucide.mjs +32 -94
  228. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -1
  229. package/fesm2022/ngwr-icon.mjs +371 -690
  230. package/fesm2022/ngwr-icon.mjs.map +1 -1
  231. package/fesm2022/ngwr-image-cropper-testing.mjs +84 -227
  232. package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -1
  233. package/fesm2022/ngwr-image-cropper.mjs +577 -639
  234. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  235. package/fesm2022/ngwr-input-number-testing.mjs +108 -305
  236. package/fesm2022/ngwr-input-number-testing.mjs.map +1 -1
  237. package/fesm2022/ngwr-input-number.mjs +496 -361
  238. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  239. package/fesm2022/ngwr-input-otp-testing.mjs +172 -420
  240. package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -1
  241. package/fesm2022/ngwr-input-otp.mjs +396 -352
  242. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  243. package/fesm2022/ngwr-input-testing.mjs +52 -100
  244. package/fesm2022/ngwr-input-testing.mjs.map +1 -1
  245. package/fesm2022/ngwr-input.mjs +356 -303
  246. package/fesm2022/ngwr-input.mjs.map +1 -1
  247. package/fesm2022/ngwr-keyboard.mjs +63 -45
  248. package/fesm2022/ngwr-keyboard.mjs.map +1 -1
  249. package/fesm2022/ngwr-knob-testing.mjs +101 -223
  250. package/fesm2022/ngwr-knob-testing.mjs.map +1 -1
  251. package/fesm2022/ngwr-knob.mjs +421 -303
  252. package/fesm2022/ngwr-knob.mjs.map +1 -1
  253. package/fesm2022/ngwr-layout.mjs +362 -207
  254. package/fesm2022/ngwr-layout.mjs.map +1 -1
  255. package/fesm2022/ngwr-lightbox-testing.mjs +100 -221
  256. package/fesm2022/ngwr-lightbox-testing.mjs.map +1 -1
  257. package/fesm2022/ngwr-lightbox.mjs +335 -268
  258. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  259. package/fesm2022/ngwr-line-chart-testing.mjs +65 -133
  260. package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -1
  261. package/fesm2022/ngwr-line-chart.mjs +356 -281
  262. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  263. package/fesm2022/ngwr-list.mjs +251 -134
  264. package/fesm2022/ngwr-list.mjs.map +1 -1
  265. package/fesm2022/ngwr-loading-bar-router.mjs +26 -68
  266. package/fesm2022/ngwr-loading-bar-router.mjs.map +1 -1
  267. package/fesm2022/ngwr-loading-bar.mjs +173 -186
  268. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  269. package/fesm2022/ngwr-markdown-testing.mjs +174 -505
  270. package/fesm2022/ngwr-markdown-testing.mjs.map +1 -1
  271. package/fesm2022/ngwr-markdown.mjs +1578 -2219
  272. package/fesm2022/ngwr-markdown.mjs.map +1 -1
  273. package/fesm2022/ngwr-marquee-testing.mjs +118 -331
  274. package/fesm2022/ngwr-marquee-testing.mjs.map +1 -1
  275. package/fesm2022/ngwr-marquee.mjs +411 -230
  276. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  277. package/fesm2022/ngwr-media.mjs +100 -127
  278. package/fesm2022/ngwr-media.mjs.map +1 -1
  279. package/fesm2022/ngwr-mention-testing.mjs +179 -506
  280. package/fesm2022/ngwr-mention-testing.mjs.map +1 -1
  281. package/fesm2022/ngwr-mention.mjs +668 -732
  282. package/fesm2022/ngwr-mention.mjs.map +1 -1
  283. package/fesm2022/ngwr-meta.mjs +257 -329
  284. package/fesm2022/ngwr-meta.mjs.map +1 -1
  285. package/fesm2022/ngwr-meter-group-testing.mjs +56 -101
  286. package/fesm2022/ngwr-meter-group-testing.mjs.map +1 -1
  287. package/fesm2022/ngwr-meter-group.mjs +206 -114
  288. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  289. package/fesm2022/ngwr-overlay.mjs +264 -576
  290. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  291. package/fesm2022/ngwr-page-header.mjs +107 -67
  292. package/fesm2022/ngwr-page-header.mjs.map +1 -1
  293. package/fesm2022/ngwr-pagination-testing.mjs +125 -388
  294. package/fesm2022/ngwr-pagination-testing.mjs.map +1 -1
  295. package/fesm2022/ngwr-pagination.mjs +505 -335
  296. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  297. package/fesm2022/ngwr-pipes.mjs +343 -382
  298. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  299. package/fesm2022/ngwr-platform.mjs +182 -221
  300. package/fesm2022/ngwr-platform.mjs.map +1 -1
  301. package/fesm2022/ngwr-popconfirm-testing.mjs +112 -307
  302. package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -1
  303. package/fesm2022/ngwr-popconfirm.mjs +474 -277
  304. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  305. package/fesm2022/ngwr-popover-testing.mjs +114 -332
  306. package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
  307. package/fesm2022/ngwr-popover.mjs +1106 -1311
  308. package/fesm2022/ngwr-popover.mjs.map +1 -1
  309. package/fesm2022/ngwr-progress.mjs +124 -68
  310. package/fesm2022/ngwr-progress.mjs.map +1 -1
  311. package/fesm2022/ngwr-pull-to-refresh.mjs +198 -185
  312. package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
  313. package/fesm2022/ngwr-qr.mjs +1179 -1100
  314. package/fesm2022/ngwr-qr.mjs.map +1 -1
  315. package/fesm2022/ngwr-radio-testing.mjs +138 -389
  316. package/fesm2022/ngwr-radio-testing.mjs.map +1 -1
  317. package/fesm2022/ngwr-radio.mjs +346 -239
  318. package/fesm2022/ngwr-radio.mjs.map +1 -1
  319. package/fesm2022/ngwr-rating-testing.mjs +153 -390
  320. package/fesm2022/ngwr-rating-testing.mjs.map +1 -1
  321. package/fesm2022/ngwr-rating.mjs +281 -247
  322. package/fesm2022/ngwr-rating.mjs.map +1 -1
  323. package/fesm2022/ngwr-result.mjs +353 -114
  324. package/fesm2022/ngwr-result.mjs.map +1 -1
  325. package/fesm2022/ngwr-rotating-text-testing.mjs +45 -215
  326. package/fesm2022/ngwr-rotating-text-testing.mjs.map +1 -1
  327. package/fesm2022/ngwr-rotating-text.mjs +402 -272
  328. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  329. package/fesm2022/ngwr-schema-form.mjs +384 -213
  330. package/fesm2022/ngwr-schema-form.mjs.map +1 -1
  331. package/fesm2022/ngwr-scroll.mjs +95 -105
  332. package/fesm2022/ngwr-scroll.mjs.map +1 -1
  333. package/fesm2022/ngwr-segmented-testing.mjs +184 -593
  334. package/fesm2022/ngwr-segmented-testing.mjs.map +1 -1
  335. package/fesm2022/ngwr-segmented.mjs +235 -251
  336. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  337. package/fesm2022/ngwr-select-testing.mjs +139 -284
  338. package/fesm2022/ngwr-select-testing.mjs.map +1 -1
  339. package/fesm2022/ngwr-select.mjs +1784 -2098
  340. package/fesm2022/ngwr-select.mjs.map +1 -1
  341. package/fesm2022/ngwr-shiny-text-testing.mjs +83 -228
  342. package/fesm2022/ngwr-shiny-text-testing.mjs.map +1 -1
  343. package/fesm2022/ngwr-shiny-text.mjs +304 -131
  344. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  345. package/fesm2022/ngwr-sidebar.mjs +256 -205
  346. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  347. package/fesm2022/ngwr-skeleton.mjs +101 -72
  348. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  349. package/fesm2022/ngwr-slider-testing.mjs +191 -473
  350. package/fesm2022/ngwr-slider-testing.mjs.map +1 -1
  351. package/fesm2022/ngwr-slider.mjs +430 -443
  352. package/fesm2022/ngwr-slider.mjs.map +1 -1
  353. package/fesm2022/ngwr-sparkline-testing.mjs +37 -74
  354. package/fesm2022/ngwr-sparkline-testing.mjs.map +1 -1
  355. package/fesm2022/ngwr-sparkline.mjs +311 -196
  356. package/fesm2022/ngwr-sparkline.mjs.map +1 -1
  357. package/fesm2022/ngwr-speed-dial-testing.mjs +135 -278
  358. package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -1
  359. package/fesm2022/ngwr-speed-dial.mjs +242 -140
  360. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  361. package/fesm2022/ngwr-spinner.mjs +97 -60
  362. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  363. package/fesm2022/ngwr-splash-cursor-testing.mjs +23 -87
  364. package/fesm2022/ngwr-splash-cursor-testing.mjs.map +1 -1
  365. package/fesm2022/ngwr-splash-cursor.mjs +980 -725
  366. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
  367. package/fesm2022/ngwr-split-text-testing.mjs +48 -218
  368. package/fesm2022/ngwr-split-text-testing.mjs.map +1 -1
  369. package/fesm2022/ngwr-split-text.mjs +365 -220
  370. package/fesm2022/ngwr-split-text.mjs.map +1 -1
  371. package/fesm2022/ngwr-splitter-testing.mjs +107 -241
  372. package/fesm2022/ngwr-splitter-testing.mjs.map +1 -1
  373. package/fesm2022/ngwr-splitter.mjs +222 -184
  374. package/fesm2022/ngwr-splitter.mjs.map +1 -1
  375. package/fesm2022/ngwr-spotlight-card-testing.mjs +105 -360
  376. package/fesm2022/ngwr-spotlight-card-testing.mjs.map +1 -1
  377. package/fesm2022/ngwr-spotlight-card.mjs +217 -135
  378. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  379. package/fesm2022/ngwr-squircle.mjs +410 -326
  380. package/fesm2022/ngwr-squircle.mjs.map +1 -1
  381. package/fesm2022/ngwr-star-border-testing.mjs +53 -168
  382. package/fesm2022/ngwr-star-border-testing.mjs.map +1 -1
  383. package/fesm2022/ngwr-star-border.mjs +160 -70
  384. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  385. package/fesm2022/ngwr-statistic.mjs +570 -389
  386. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  387. package/fesm2022/ngwr-stepper-testing.mjs +158 -471
  388. package/fesm2022/ngwr-stepper-testing.mjs.map +1 -1
  389. package/fesm2022/ngwr-stepper.mjs +336 -215
  390. package/fesm2022/ngwr-stepper.mjs.map +1 -1
  391. package/fesm2022/ngwr-storage.mjs +217 -330
  392. package/fesm2022/ngwr-storage.mjs.map +1 -1
  393. package/fesm2022/ngwr-switch-testing.mjs +42 -75
  394. package/fesm2022/ngwr-switch-testing.mjs.map +1 -1
  395. package/fesm2022/ngwr-switch.mjs +197 -114
  396. package/fesm2022/ngwr-switch.mjs.map +1 -1
  397. package/fesm2022/ngwr-table-testing.mjs +238 -572
  398. package/fesm2022/ngwr-table-testing.mjs.map +1 -1
  399. package/fesm2022/ngwr-table.mjs +1875 -1446
  400. package/fesm2022/ngwr-table.mjs.map +1 -1
  401. package/fesm2022/ngwr-tabs-router.mjs +84 -153
  402. package/fesm2022/ngwr-tabs-router.mjs.map +1 -1
  403. package/fesm2022/ngwr-tabs-testing.mjs +217 -617
  404. package/fesm2022/ngwr-tabs-testing.mjs.map +1 -1
  405. package/fesm2022/ngwr-tabs.mjs +402 -425
  406. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  407. package/fesm2022/ngwr-textarea-testing.mjs +84 -236
  408. package/fesm2022/ngwr-textarea-testing.mjs.map +1 -1
  409. package/fesm2022/ngwr-textarea.mjs +385 -264
  410. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  411. package/fesm2022/ngwr-theme.mjs +247 -443
  412. package/fesm2022/ngwr-theme.mjs.map +1 -1
  413. package/fesm2022/ngwr-tilt-card-testing.mjs +79 -186
  414. package/fesm2022/ngwr-tilt-card-testing.mjs.map +1 -1
  415. package/fesm2022/ngwr-tilt-card.mjs +257 -168
  416. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  417. package/fesm2022/ngwr-timeline.mjs +157 -70
  418. package/fesm2022/ngwr-timeline.mjs.map +1 -1
  419. package/fesm2022/ngwr-toast-testing.mjs +59 -99
  420. package/fesm2022/ngwr-toast-testing.mjs.map +1 -1
  421. package/fesm2022/ngwr-toast.mjs +769 -691
  422. package/fesm2022/ngwr-toast.mjs.map +1 -1
  423. package/fesm2022/ngwr-toolbar.mjs +73 -58
  424. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  425. package/fesm2022/ngwr-tour-testing.mjs +75 -171
  426. package/fesm2022/ngwr-tour-testing.mjs.map +1 -1
  427. package/fesm2022/ngwr-tour.mjs +333 -347
  428. package/fesm2022/ngwr-tour.mjs.map +1 -1
  429. package/fesm2022/ngwr-transfer-testing.mjs +195 -534
  430. package/fesm2022/ngwr-transfer-testing.mjs.map +1 -1
  431. package/fesm2022/ngwr-transfer.mjs +441 -322
  432. package/fesm2022/ngwr-transfer.mjs.map +1 -1
  433. package/fesm2022/ngwr-tree-testing.mjs +277 -754
  434. package/fesm2022/ngwr-tree-testing.mjs.map +1 -1
  435. package/fesm2022/ngwr-tree.mjs +876 -906
  436. package/fesm2022/ngwr-tree.mjs.map +1 -1
  437. package/fesm2022/ngwr-typewriter-testing.mjs +50 -237
  438. package/fesm2022/ngwr-typewriter-testing.mjs.map +1 -1
  439. package/fesm2022/ngwr-typewriter.mjs +461 -242
  440. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  441. package/fesm2022/ngwr-typography.mjs +142 -81
  442. package/fesm2022/ngwr-typography.mjs.map +1 -1
  443. package/fesm2022/ngwr-utils.mjs +304 -613
  444. package/fesm2022/ngwr-utils.mjs.map +1 -1
  445. package/fesm2022/ngwr-validators.mjs +179 -361
  446. package/fesm2022/ngwr-validators.mjs.map +1 -1
  447. package/fesm2022/ngwr-version.mjs +17 -47
  448. package/fesm2022/ngwr-version.mjs.map +1 -1
  449. package/fesm2022/ngwr-virtual-scroll.mjs +259 -125
  450. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  451. package/fesm2022/ngwr-waves-testing.mjs +34 -125
  452. package/fesm2022/ngwr-waves-testing.mjs.map +1 -1
  453. package/fesm2022/ngwr-waves.mjs +816 -373
  454. package/fesm2022/ngwr-waves.mjs.map +1 -1
  455. package/fesm2022/ngwr-window-testing.mjs +171 -366
  456. package/fesm2022/ngwr-window-testing.mjs.map +1 -1
  457. package/fesm2022/ngwr-window.mjs +1437 -1351
  458. package/fesm2022/ngwr-window.mjs.map +1 -1
  459. package/fesm2022/ngwr.mjs +0 -4
  460. package/input-number/styles/_index.scss +33 -35
  461. package/llms-full.txt +2 -2
  462. package/package.json +1 -1
  463. package/segmented/styles/_index.scss +10 -3
  464. package/types/ngwr-action-sheet-testing.d.ts +174 -200
  465. package/types/ngwr-action-sheet.d.ts +83 -45
  466. package/types/ngwr-affix.d.ts +27 -22
  467. package/types/ngwr-alert.d.ts +93 -59
  468. package/types/ngwr-anchor.d.ts +52 -35
  469. package/types/ngwr-aurora.d.ts +53 -35
  470. package/types/ngwr-avatar.d.ts +97 -81
  471. package/types/ngwr-back-top.d.ts +36 -23
  472. package/types/ngwr-badge.d.ts +160 -105
  473. package/types/ngwr-bar-chart-testing.d.ts +40 -58
  474. package/types/ngwr-bar-chart.d.ts +86 -60
  475. package/types/ngwr-blur-text-testing.d.ts +103 -121
  476. package/types/ngwr-blur-text.d.ts +99 -60
  477. package/types/ngwr-border-glow-testing.d.ts +155 -173
  478. package/types/ngwr-border-glow.d.ts +93 -45
  479. package/types/ngwr-breadcrumbs.d.ts +60 -32
  480. package/types/ngwr-burger.d.ts +38 -23
  481. package/types/ngwr-button-testing.d.ts +41 -59
  482. package/types/ngwr-button.d.ts +213 -163
  483. package/types/ngwr-calendar-heatmap-testing.d.ts +38 -56
  484. package/types/ngwr-calendar-heatmap.d.ts +151 -105
  485. package/types/ngwr-calendar-testing.d.ts +198 -224
  486. package/types/ngwr-calendar.d.ts +285 -246
  487. package/types/ngwr-card.d.ts +41 -23
  488. package/types/ngwr-carousel-testing.d.ts +196 -214
  489. package/types/ngwr-carousel.d.ts +173 -122
  490. package/types/ngwr-cascader-testing.d.ts +338 -372
  491. package/types/ngwr-cascader.d.ts +230 -161
  492. package/types/ngwr-checkbox-testing.d.ts +45 -63
  493. package/types/ngwr-checkbox.d.ts +238 -183
  494. package/types/ngwr-circular-text-testing.d.ts +108 -126
  495. package/types/ngwr-circular-text.d.ts +53 -41
  496. package/types/ngwr-click-spark.d.ts +82 -50
  497. package/types/ngwr-clipboard.d.ts +40 -44
  498. package/types/ngwr-collapse-testing.d.ts +193 -219
  499. package/types/ngwr-collapse.d.ts +82 -71
  500. package/types/ngwr-color-picker-testing.d.ts +211 -237
  501. package/types/ngwr-color-picker.d.ts +343 -300
  502. package/types/ngwr-command-palette-testing.d.ts +311 -345
  503. package/types/ngwr-command-palette.d.ts +257 -197
  504. package/types/ngwr-compare.d.ts +102 -67
  505. package/types/ngwr-confetti.d.ts +51 -55
  506. package/types/ngwr-config.d.ts +44 -71
  507. package/types/ngwr-context-menu-testing.d.ts +301 -327
  508. package/types/ngwr-context-menu.d.ts +350 -310
  509. package/types/ngwr-cookie.d.ts +37 -41
  510. package/types/ngwr-counter.d.ts +223 -128
  511. package/types/ngwr-date-adapters-fns.d.ts +40 -59
  512. package/types/ngwr-date-adapters-luxon.d.ts +61 -72
  513. package/types/ngwr-date-picker-testing.d.ts +295 -339
  514. package/types/ngwr-date-picker.d.ts +759 -583
  515. package/types/ngwr-date.d.ts +229 -258
  516. package/types/ngwr-decrypt-text-testing.d.ts +140 -158
  517. package/types/ngwr-decrypt-text.d.ts +104 -62
  518. package/types/ngwr-density.d.ts +42 -57
  519. package/types/ngwr-descriptions.d.ts +50 -27
  520. package/types/ngwr-dialog-testing.d.ts +36 -54
  521. package/types/ngwr-dialog.d.ts +166 -190
  522. package/types/ngwr-directives.d.ts +82 -60
  523. package/types/ngwr-divider.d.ts +78 -62
  524. package/types/ngwr-donut-chart-testing.d.ts +36 -54
  525. package/types/ngwr-donut-chart.d.ts +102 -66
  526. package/types/ngwr-drag-drop.d.ts +139 -106
  527. package/types/ngwr-drawer-testing.d.ts +141 -159
  528. package/types/ngwr-drawer.d.ts +374 -316
  529. package/types/ngwr-dropdown-testing.d.ts +128 -154
  530. package/types/ngwr-dropdown.d.ts +260 -166
  531. package/types/ngwr-editor-testing.d.ts +312 -330
  532. package/types/ngwr-editor.d.ts +435 -344
  533. package/types/ngwr-empty.d.ts +41 -28
  534. package/types/ngwr-event-calendar-testing.d.ts +217 -243
  535. package/types/ngwr-event-calendar.d.ts +340 -298
  536. package/types/ngwr-falling-text-testing.d.ts +108 -126
  537. package/types/ngwr-falling-text.d.ts +57 -35
  538. package/types/ngwr-file-upload-testing.d.ts +133 -151
  539. package/types/ngwr-file-upload.d.ts +193 -128
  540. package/types/ngwr-form-testing.d.ts +255 -282
  541. package/types/ngwr-form.d.ts +324 -306
  542. package/types/ngwr-fuzzy-text-testing.d.ts +63 -81
  543. package/types/ngwr-fuzzy-text.d.ts +152 -65
  544. package/types/ngwr-gauge-testing.d.ts +43 -61
  545. package/types/ngwr-gauge.d.ts +113 -61
  546. package/types/ngwr-glitch-text-testing.d.ts +125 -143
  547. package/types/ngwr-glitch-text.d.ts +47 -24
  548. package/types/ngwr-gradient-text-testing.d.ts +114 -132
  549. package/types/ngwr-gradient-text.d.ts +51 -24
  550. package/types/ngwr-graph-testing.d.ts +89 -115
  551. package/types/ngwr-graph.d.ts +137 -124
  552. package/types/ngwr-hotkey.d.ts +85 -75
  553. package/types/ngwr-i18n-ar.d.ts +2 -5
  554. package/types/ngwr-i18n-cs.d.ts +2 -5
  555. package/types/ngwr-i18n-de.d.ts +2 -5
  556. package/types/ngwr-i18n-en.d.ts +2 -5
  557. package/types/ngwr-i18n-es.d.ts +2 -5
  558. package/types/ngwr-i18n-fr.d.ts +2 -5
  559. package/types/ngwr-i18n-he.d.ts +2 -5
  560. package/types/ngwr-i18n-hi.d.ts +2 -5
  561. package/types/ngwr-i18n-id.d.ts +2 -5
  562. package/types/ngwr-i18n-it.d.ts +2 -5
  563. package/types/ngwr-i18n-ja.d.ts +2 -5
  564. package/types/ngwr-i18n-ko.d.ts +2 -5
  565. package/types/ngwr-i18n-nl.d.ts +2 -5
  566. package/types/ngwr-i18n-pl.d.ts +2 -5
  567. package/types/ngwr-i18n-pt.d.ts +2 -5
  568. package/types/ngwr-i18n-ru.d.ts +2 -5
  569. package/types/ngwr-i18n-sv.d.ts +2 -5
  570. package/types/ngwr-i18n-tr.d.ts +2 -5
  571. package/types/ngwr-i18n-uk.d.ts +2 -5
  572. package/types/ngwr-i18n-vi.d.ts +2 -5
  573. package/types/ngwr-i18n-zh-TW.d.ts +2 -5
  574. package/types/ngwr-i18n-zh.d.ts +2 -5
  575. package/types/ngwr-i18n.d.ts +202 -246
  576. package/types/ngwr-icon-adapters-feather.d.ts +2 -11
  577. package/types/ngwr-icon-adapters-lucide.d.ts +2 -12
  578. package/types/ngwr-icon.d.ts +62 -84
  579. package/types/ngwr-image-cropper-testing.d.ts +116 -134
  580. package/types/ngwr-image-cropper.d.ts +287 -252
  581. package/types/ngwr-input-number-testing.d.ts +164 -182
  582. package/types/ngwr-input-number.d.ts +231 -150
  583. package/types/ngwr-input-otp-testing.d.ts +210 -244
  584. package/types/ngwr-input-otp.d.ts +167 -123
  585. package/types/ngwr-input-testing.d.ts +42 -60
  586. package/types/ngwr-input.d.ts +118 -94
  587. package/types/ngwr-keyboard.d.ts +14 -12
  588. package/types/ngwr-knob-testing.d.ts +106 -124
  589. package/types/ngwr-knob.d.ts +194 -129
  590. package/types/ngwr-layout.d.ts +57 -40
  591. package/types/ngwr-lightbox-testing.d.ts +101 -119
  592. package/types/ngwr-lightbox.d.ts +140 -87
  593. package/types/ngwr-line-chart-testing.d.ts +51 -69
  594. package/types/ngwr-line-chart.d.ts +171 -134
  595. package/types/ngwr-list.d.ts +55 -27
  596. package/types/ngwr-loading-bar-router.d.ts +2 -12
  597. package/types/ngwr-loading-bar.d.ts +45 -39
  598. package/types/ngwr-markdown-testing.d.ts +323 -350
  599. package/types/ngwr-markdown.d.ts +432 -318
  600. package/types/ngwr-marquee-testing.d.ts +190 -216
  601. package/types/ngwr-marquee.d.ts +127 -75
  602. package/types/ngwr-media.d.ts +25 -39
  603. package/types/ngwr-mention-testing.d.ts +274 -300
  604. package/types/ngwr-mention.d.ts +249 -164
  605. package/types/ngwr-meta.d.ts +93 -108
  606. package/types/ngwr-meter-group-testing.d.ts +33 -51
  607. package/types/ngwr-meter-group.d.ts +86 -60
  608. package/types/ngwr-overlay.d.ts +57 -132
  609. package/types/ngwr-page-header.d.ts +32 -19
  610. package/types/ngwr-pagination-testing.d.ts +215 -233
  611. package/types/ngwr-pagination.d.ts +213 -141
  612. package/types/ngwr-pipes.d.ts +67 -84
  613. package/types/ngwr-platform.d.ts +52 -57
  614. package/types/ngwr-popconfirm-testing.d.ts +181 -199
  615. package/types/ngwr-popconfirm.d.ts +151 -82
  616. package/types/ngwr-popover-testing.d.ts +183 -201
  617. package/types/ngwr-popover.d.ts +291 -207
  618. package/types/ngwr-progress.d.ts +38 -25
  619. package/types/ngwr-pull-to-refresh.d.ts +55 -40
  620. package/types/ngwr-qr.d.ts +79 -37
  621. package/types/ngwr-radio-testing.d.ts +208 -234
  622. package/types/ngwr-radio.d.ts +162 -125
  623. package/types/ngwr-rating-testing.d.ts +218 -244
  624. package/types/ngwr-rating.d.ts +146 -111
  625. package/types/ngwr-result.d.ts +85 -41
  626. package/types/ngwr-rotating-text-testing.d.ts +107 -125
  627. package/types/ngwr-rotating-text.d.ts +96 -52
  628. package/types/ngwr-schema-form.d.ts +57 -49
  629. package/types/ngwr-scroll.d.ts +27 -31
  630. package/types/ngwr-segmented-testing.d.ts +333 -359
  631. package/types/ngwr-segmented.d.ts +183 -165
  632. package/types/ngwr-select-testing.d.ts +128 -154
  633. package/types/ngwr-select.d.ts +1083 -906
  634. package/types/ngwr-shiny-text-testing.d.ts +82 -100
  635. package/types/ngwr-shiny-text.d.ts +83 -36
  636. package/types/ngwr-sidebar.d.ts +108 -93
  637. package/types/ngwr-skeleton.d.ts +34 -26
  638. package/types/ngwr-slider-testing.d.ts +228 -254
  639. package/types/ngwr-slider.d.ts +236 -186
  640. package/types/ngwr-sparkline-testing.d.ts +29 -47
  641. package/types/ngwr-sparkline.d.ts +130 -88
  642. package/types/ngwr-speed-dial-testing.d.ts +129 -155
  643. package/types/ngwr-speed-dial.d.ts +92 -57
  644. package/types/ngwr-spinner.d.ts +30 -23
  645. package/types/ngwr-splash-cursor-testing.d.ts +42 -60
  646. package/types/ngwr-splash-cursor.d.ts +129 -61
  647. package/types/ngwr-split-text-testing.d.ts +119 -137
  648. package/types/ngwr-split-text.d.ts +120 -71
  649. package/types/ngwr-splitter-testing.d.ts +114 -132
  650. package/types/ngwr-splitter.d.ts +85 -55
  651. package/types/ngwr-spotlight-card-testing.d.ts +177 -203
  652. package/types/ngwr-spotlight-card.d.ts +50 -32
  653. package/types/ngwr-squircle.d.ts +112 -70
  654. package/types/ngwr-star-border-testing.d.ts +74 -92
  655. package/types/ngwr-star-border.d.ts +42 -20
  656. package/types/ngwr-statistic.d.ts +210 -130
  657. package/types/ngwr-stepper-testing.d.ts +258 -284
  658. package/types/ngwr-stepper.d.ts +112 -75
  659. package/types/ngwr-storage.d.ts +96 -118
  660. package/types/ngwr-switch-testing.d.ts +26 -44
  661. package/types/ngwr-switch.d.ts +92 -62
  662. package/types/ngwr-table-testing.d.ts +291 -333
  663. package/types/ngwr-table.d.ts +922 -707
  664. package/types/ngwr-tabs-router.d.ts +21 -24
  665. package/types/ngwr-tabs-testing.d.ts +354 -380
  666. package/types/ngwr-tabs.d.ts +169 -155
  667. package/types/ngwr-textarea-testing.d.ts +123 -141
  668. package/types/ngwr-textarea.d.ts +160 -105
  669. package/types/ngwr-theme.d.ts +81 -163
  670. package/types/ngwr-tilt-card-testing.d.ts +94 -112
  671. package/types/ngwr-tilt-card.d.ts +64 -35
  672. package/types/ngwr-timeline.d.ts +36 -19
  673. package/types/ngwr-toast-testing.d.ts +37 -55
  674. package/types/ngwr-toast.d.ts +165 -209
  675. package/types/ngwr-toolbar.d.ts +17 -14
  676. package/types/ngwr-tour-testing.d.ts +84 -102
  677. package/types/ngwr-tour.d.ts +142 -144
  678. package/types/ngwr-transfer-testing.d.ts +293 -328
  679. package/types/ngwr-transfer.d.ts +217 -159
  680. package/types/ngwr-tree-testing.d.ts +428 -454
  681. package/types/ngwr-tree.d.ts +400 -296
  682. package/types/ngwr-typewriter-testing.d.ts +125 -143
  683. package/types/ngwr-typewriter.d.ts +137 -63
  684. package/types/ngwr-typography.d.ts +49 -27
  685. package/types/ngwr-utils.d.ts +100 -107
  686. package/types/ngwr-validators.d.ts +94 -104
  687. package/types/ngwr-version.d.ts +3 -14
  688. package/types/ngwr-virtual-scroll.d.ts +86 -58
  689. package/types/ngwr-waves-testing.d.ts +61 -79
  690. package/types/ngwr-waves.d.ts +116 -63
  691. package/types/ngwr-window-testing.d.ts +178 -204
  692. package/types/ngwr-window.d.ts +299 -325
  693. package/types/ngwr.d.ts +1 -2
  694. package/fesm2022/ngwr.mjs.map +0 -1
@@ -1,91 +1,211 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, model, input, output, computed, ViewEncapsulation, Component } from '@angular/core';
3
- import { WrDrawer, WrDrawerTitle } from 'ngwr/drawer';
4
- import { useI18nText } from 'ngwr/i18n';
5
- import { WrIcon } from 'ngwr/icon';
6
- import { WrHaptics } from 'ngwr/platform';
7
-
8
- /**
9
- * @license
10
- *
11
- * Use of this source code is governed by an MIT-style license that can be
12
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
13
- */
14
- /**
15
- * iOS-style action sheet — a bottom sheet offering a short list of choices.
16
- * A thin preset over {@link WrDrawer} (bottom position, rounded, grab handle,
17
- * safe-area padding), driven by data rather than projected content.
18
- *
19
- * Pass `actions`; picking one emits `action` and closes the sheet. Rows with
20
- * `role: 'destructive'` are painted in the danger colour, and `role: 'cancel'`
21
- * rows drop to a separate group at the bottom. Dismissing via the backdrop,
22
- * `Escape`, or a swipe-down closes without emitting. Picking fires a light
23
- * {@link WrHaptics} tick.
24
- *
25
- * @example
26
- * ```html
27
- * <wr-action-sheet
28
- * [(open)]="sheetOpen"
29
- * title="Photo"
30
- * [actions]="[
31
- * { label: 'Take Photo', icon: 'camera', value: 'camera' },
32
- * { label: 'Choose from Library', icon: 'image', value: 'library' },
33
- * { label: 'Delete', role: 'destructive', value: 'delete' },
34
- * { label: 'Cancel', role: 'cancel' },
35
- * ]"
36
- * (action)="onPick($event)"
37
- * />
38
- * ```
39
- *
40
- * @see https://ngwr.dev/reference/components/action-sheet
41
- */
42
- class WrActionSheet {
43
- haptics = inject(WrHaptics);
44
- /** Whether the sheet is open. Two-way. @default false */
45
- open = model(false, /* @ts-ignore */
46
- ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
47
- /** The rows to offer. */
48
- actions = input([], /* @ts-ignore */
49
- ...(ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []));
50
- /** Optional bold heading above the rows. */
51
- title = input('', /* @ts-ignore */
52
- ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
53
- /**
54
- * Name announced for the dialog when there is no visible `title`. Falls back to
55
- * `actionSheet.label`, then `'Actions'` — it used to be that English string,
56
- * written into the template of a component whose every other string comes from
57
- * the caller.
58
- */
59
- titleFallback = input(null, /* @ts-ignore */
60
- ...(ngDevMode ? [{ debugName: "titleFallback" }] : /* istanbul ignore next */ []));
61
- resolvedTitleFallback = useI18nText(this.titleFallback, 'actionSheet.label', 'Actions');
62
- /** Optional muted sub-heading under the title. */
63
- message = input('', /* @ts-ignore */
64
- ...(ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []));
65
- /** Fires with the chosen row (never fires on a dismiss). */
66
- action = output();
67
- mainActions = computed(() => this.actions().filter(a => a.role !== 'cancel'), /* @ts-ignore */
68
- ...(ngDevMode ? [{ debugName: "mainActions" }] : /* istanbul ignore next */ []));
69
- cancelActions = computed(() => this.actions().filter(a => a.role === 'cancel'), /* @ts-ignore */
70
- ...(ngDevMode ? [{ debugName: "cancelActions" }] : /* istanbul ignore next */ []));
71
- select(item) {
72
- if (item.disabled)
73
- return;
74
- this.haptics.selection();
75
- this.action.emit(item);
76
- this.open.set(false);
77
- }
78
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: WrActionSheet, deps: [], target: i0.ɵɵFactoryTarget.Component });
79
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: WrActionSheet, isStandalone: true, selector: "wr-action-sheet", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, titleFallback: { classPropertyName: "titleFallback", publicName: "titleFallback", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", action: "action" }, ngImport: i0, template: "<wr-drawer [(open)]=\"open\" position=\"bottom\" height=\"auto\" rounded showHandle safeArea maxHeight=\"90dvh\">\n <div class=\"wr-action-sheet\">\n @if (title() || message()) {\n <div class=\"wr-action-sheet__header\">\n @if (title()) {\n <div class=\"wr-action-sheet__title\" wrDrawerTitle>{{ title() }}</div>\n }\n @if (message()) {\n <div class=\"wr-action-sheet__message\">{{ message() }}</div>\n }\n </div>\n }\n <!-- The drawer opens as an aria-modal dialog; name it via wrDrawerTitle.\n When there is no visible title, a screen-reader-only fallback keeps the\n dialog from being announced as unnamed. -->\n @if (!title()) {\n <span class=\"wr-action-sheet__sr-only\" wrDrawerTitle>{{ resolvedTitleFallback() }}</span>\n }\n\n <div class=\"wr-action-sheet__group\">\n @for (item of mainActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action\"\n [class.wr-action-sheet__action--destructive]=\"item.role === 'destructive'\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n @if (item.icon) {\n <wr-icon class=\"wr-action-sheet__icon\" [name]=\"item.icon\" />\n }\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n\n @if (cancelActions().length) {\n <div class=\"wr-action-sheet__group wr-action-sheet__group--cancel\">\n @for (item of cancelActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action wr-action-sheet__action--cancel\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n</wr-drawer>\n", dependencies: [{ kind: "component", type: WrDrawer, selector: "wr-drawer", inputs: ["open", "position", "width", "height", "maxHeight", "rounded", "showHandle", "safeArea", "hasBackdrop", "closeOnBackdropClick", "closeOnEscape", "closable", "closeLabel"], outputs: ["openChange"] }, { kind: "directive", type: WrDrawerTitle, selector: "[wrDrawerTitle]" }, { kind: "component", type: WrIcon, selector: "wr-icon", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None });
80
- }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: WrActionSheet, decorators: [{
82
- type: Component,
83
- args: [{ selector: 'wr-action-sheet', encapsulation: ViewEncapsulation.None, imports: [WrDrawer, WrDrawerTitle, WrIcon], template: "<wr-drawer [(open)]=\"open\" position=\"bottom\" height=\"auto\" rounded showHandle safeArea maxHeight=\"90dvh\">\n <div class=\"wr-action-sheet\">\n @if (title() || message()) {\n <div class=\"wr-action-sheet__header\">\n @if (title()) {\n <div class=\"wr-action-sheet__title\" wrDrawerTitle>{{ title() }}</div>\n }\n @if (message()) {\n <div class=\"wr-action-sheet__message\">{{ message() }}</div>\n }\n </div>\n }\n <!-- The drawer opens as an aria-modal dialog; name it via wrDrawerTitle.\n When there is no visible title, a screen-reader-only fallback keeps the\n dialog from being announced as unnamed. -->\n @if (!title()) {\n <span class=\"wr-action-sheet__sr-only\" wrDrawerTitle>{{ resolvedTitleFallback() }}</span>\n }\n\n <div class=\"wr-action-sheet__group\">\n @for (item of mainActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action\"\n [class.wr-action-sheet__action--destructive]=\"item.role === 'destructive'\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n @if (item.icon) {\n <wr-icon class=\"wr-action-sheet__icon\" [name]=\"item.icon\" />\n }\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n\n @if (cancelActions().length) {\n <div class=\"wr-action-sheet__group wr-action-sheet__group--cancel\">\n @for (item of cancelActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action wr-action-sheet__action--cancel\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n</wr-drawer>\n" }]
84
- }], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], titleFallback: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleFallback", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], action: [{ type: i0.Output, args: ["action"] }] } });
85
-
1
+ import * as i0 from "@angular/core";
2
+ import { Component, ViewEncapsulation, computed, inject, input, model, output } from "@angular/core";
3
+ import { WrDrawer, WrDrawerTitle } from "ngwr/drawer";
4
+ import { useI18nText } from "ngwr/i18n";
5
+ import { WrIcon } from "ngwr/icon";
6
+ import { WrHaptics } from "ngwr/platform";
86
7
  /**
87
- * Generated bundle index. Do not edit.
88
- */
89
-
8
+ * @license
9
+ *
10
+ * Use of this source code is governed by an MIT-style license that can be
11
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
12
+ */
13
+ var WrActionSheet = class WrActionSheet {
14
+ haptics = inject(WrHaptics);
15
+ open = model(false, ...ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []);
16
+ actions = input([], ...ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []);
17
+ title = input("", ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
18
+ titleFallback = input(null, ...ngDevMode ? [{ debugName: "titleFallback" }] : /* istanbul ignore next */ []);
19
+ resolvedTitleFallback = useI18nText(this.titleFallback, "actionSheet.label", "Actions");
20
+ message = input("", ...ngDevMode ? [{ debugName: "message" }] : /* istanbul ignore next */ []);
21
+ panelClass = input(null, ...ngDevMode ? [{ debugName: "panelClass" }] : /* istanbul ignore next */ []);
22
+ action = output();
23
+ mainActions = computed(() => this.actions().filter((a) => a.role !== "cancel"), ...ngDevMode ? [{ debugName: "mainActions" }] : /* istanbul ignore next */ []);
24
+ cancelActions = computed(() => this.actions().filter((a) => a.role === "cancel"), ...ngDevMode ? [{ debugName: "cancelActions" }] : /* istanbul ignore next */ []);
25
+ select(item) {
26
+ if (item.disabled) return;
27
+ this.haptics.selection();
28
+ this.action.emit(item);
29
+ this.open.set(false);
30
+ }
31
+ static ɵfac = i0.ɵɵngDeclareFactory({
32
+ minVersion: "12.0.0",
33
+ version: "22.2.0",
34
+ ngImport: i0,
35
+ type: WrActionSheet,
36
+ deps: [],
37
+ target: i0.ɵɵFactoryTarget.Component
38
+ });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({
40
+ minVersion: "17.0.0",
41
+ version: "22.2.0",
42
+ type: WrActionSheet,
43
+ isStandalone: true,
44
+ selector: "wr-action-sheet",
45
+ inputs: {
46
+ open: {
47
+ classPropertyName: "open",
48
+ publicName: "open",
49
+ isSignal: true,
50
+ isRequired: false,
51
+ transformFunction: null
52
+ },
53
+ actions: {
54
+ classPropertyName: "actions",
55
+ publicName: "actions",
56
+ isSignal: true,
57
+ isRequired: false,
58
+ transformFunction: null
59
+ },
60
+ title: {
61
+ classPropertyName: "title",
62
+ publicName: "title",
63
+ isSignal: true,
64
+ isRequired: false,
65
+ transformFunction: null
66
+ },
67
+ titleFallback: {
68
+ classPropertyName: "titleFallback",
69
+ publicName: "titleFallback",
70
+ isSignal: true,
71
+ isRequired: false,
72
+ transformFunction: null
73
+ },
74
+ message: {
75
+ classPropertyName: "message",
76
+ publicName: "message",
77
+ isSignal: true,
78
+ isRequired: false,
79
+ transformFunction: null
80
+ },
81
+ panelClass: {
82
+ classPropertyName: "panelClass",
83
+ publicName: "panelClass",
84
+ isSignal: true,
85
+ isRequired: false,
86
+ transformFunction: null
87
+ }
88
+ },
89
+ outputs: {
90
+ open: "openChange",
91
+ action: "action"
92
+ },
93
+ ngImport: i0,
94
+ template: "<wr-drawer\n [(open)]=\"open\"\n position=\"bottom\"\n height=\"auto\"\n rounded\n showHandle\n safeArea\n maxHeight=\"90dvh\"\n [panelClass]=\"panelClass()\"\n>\n <div class=\"wr-action-sheet\">\n @if (title() || message()) {\n <div class=\"wr-action-sheet__header\">\n @if (title()) {\n <div class=\"wr-action-sheet__title\" wrDrawerTitle>{{ title() }}</div>\n }\n @if (message()) {\n <div class=\"wr-action-sheet__message\">{{ message() }}</div>\n }\n </div>\n }\n <!-- The drawer opens as an aria-modal dialog; name it via wrDrawerTitle.\n When there is no visible title, a screen-reader-only fallback keeps the\n dialog from being announced as unnamed. -->\n @if (!title()) {\n <span class=\"wr-action-sheet__sr-only\" wrDrawerTitle>{{ resolvedTitleFallback() }}</span>\n }\n\n <div class=\"wr-action-sheet__group\">\n @for (item of mainActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action\"\n [class.wr-action-sheet__action--destructive]=\"item.role === 'destructive'\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n @if (item.icon) {\n <wr-icon class=\"wr-action-sheet__icon\" [name]=\"item.icon\" />\n }\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n\n @if (cancelActions().length) {\n <div class=\"wr-action-sheet__group wr-action-sheet__group--cancel\">\n @for (item of cancelActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action wr-action-sheet__action--cancel\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n</wr-drawer>\n",
95
+ dependencies: [
96
+ {
97
+ kind: "component",
98
+ type: WrDrawer,
99
+ selector: "wr-drawer",
100
+ inputs: [
101
+ "open",
102
+ "position",
103
+ "width",
104
+ "height",
105
+ "maxHeight",
106
+ "rounded",
107
+ "showHandle",
108
+ "safeArea",
109
+ "hasBackdrop",
110
+ "closeOnBackdropClick",
111
+ "closeOnEscape",
112
+ "closable",
113
+ "closeLabel",
114
+ "panelClass"
115
+ ],
116
+ outputs: ["openChange"]
117
+ },
118
+ {
119
+ kind: "directive",
120
+ type: WrDrawerTitle,
121
+ selector: "[wrDrawerTitle]"
122
+ },
123
+ {
124
+ kind: "component",
125
+ type: WrIcon,
126
+ selector: "wr-icon",
127
+ inputs: ["name"]
128
+ }
129
+ ],
130
+ encapsulation: i0.ViewEncapsulation.None
131
+ });
132
+ };
133
+ i0.ɵɵngDeclareClassMetadata({
134
+ minVersion: "12.0.0",
135
+ version: "22.2.0",
136
+ ngImport: i0,
137
+ type: WrActionSheet,
138
+ decorators: [{
139
+ type: Component,
140
+ args: [{
141
+ selector: "wr-action-sheet",
142
+ encapsulation: ViewEncapsulation.None,
143
+ imports: [
144
+ WrDrawer,
145
+ WrDrawerTitle,
146
+ WrIcon
147
+ ],
148
+ template: "<wr-drawer\n [(open)]=\"open\"\n position=\"bottom\"\n height=\"auto\"\n rounded\n showHandle\n safeArea\n maxHeight=\"90dvh\"\n [panelClass]=\"panelClass()\"\n>\n <div class=\"wr-action-sheet\">\n @if (title() || message()) {\n <div class=\"wr-action-sheet__header\">\n @if (title()) {\n <div class=\"wr-action-sheet__title\" wrDrawerTitle>{{ title() }}</div>\n }\n @if (message()) {\n <div class=\"wr-action-sheet__message\">{{ message() }}</div>\n }\n </div>\n }\n <!-- The drawer opens as an aria-modal dialog; name it via wrDrawerTitle.\n When there is no visible title, a screen-reader-only fallback keeps the\n dialog from being announced as unnamed. -->\n @if (!title()) {\n <span class=\"wr-action-sheet__sr-only\" wrDrawerTitle>{{ resolvedTitleFallback() }}</span>\n }\n\n <div class=\"wr-action-sheet__group\">\n @for (item of mainActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action\"\n [class.wr-action-sheet__action--destructive]=\"item.role === 'destructive'\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n @if (item.icon) {\n <wr-icon class=\"wr-action-sheet__icon\" [name]=\"item.icon\" />\n }\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n\n @if (cancelActions().length) {\n <div class=\"wr-action-sheet__group wr-action-sheet__group--cancel\">\n @for (item of cancelActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action wr-action-sheet__action--cancel\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n</wr-drawer>\n"
149
+ }]
150
+ }],
151
+ propDecorators: {
152
+ open: [{
153
+ type: i0.Input,
154
+ args: [{
155
+ isSignal: true,
156
+ alias: "open",
157
+ required: false
158
+ }]
159
+ }, {
160
+ type: i0.Output,
161
+ args: ["openChange"]
162
+ }],
163
+ actions: [{
164
+ type: i0.Input,
165
+ args: [{
166
+ isSignal: true,
167
+ alias: "actions",
168
+ required: false
169
+ }]
170
+ }],
171
+ title: [{
172
+ type: i0.Input,
173
+ args: [{
174
+ isSignal: true,
175
+ alias: "title",
176
+ required: false
177
+ }]
178
+ }],
179
+ titleFallback: [{
180
+ type: i0.Input,
181
+ args: [{
182
+ isSignal: true,
183
+ alias: "titleFallback",
184
+ required: false
185
+ }]
186
+ }],
187
+ message: [{
188
+ type: i0.Input,
189
+ args: [{
190
+ isSignal: true,
191
+ alias: "message",
192
+ required: false
193
+ }]
194
+ }],
195
+ panelClass: [{
196
+ type: i0.Input,
197
+ args: [{
198
+ isSignal: true,
199
+ alias: "panelClass",
200
+ required: false
201
+ }]
202
+ }],
203
+ action: [{
204
+ type: i0.Output,
205
+ args: ["action"]
206
+ }]
207
+ }
208
+ });
90
209
  export { WrActionSheet };
91
- //# sourceMappingURL=ngwr-action-sheet.mjs.map
210
+
211
+ //# sourceMappingURL=ngwr-action-sheet.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngwr-action-sheet.mjs","sources":["../../../projects/lib/action-sheet/action-sheet.ts","../../../projects/lib/action-sheet/action-sheet.html","../../../projects/lib/action-sheet/ngwr-action-sheet.ts"],"sourcesContent":["/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { Component, ViewEncapsulation, computed, inject, input, model, output } from '@angular/core';\n\nimport { WrDrawer, WrDrawerTitle } from 'ngwr/drawer';\nimport { useI18nText } from 'ngwr/i18n';\nimport { WrIcon } from 'ngwr/icon';\nimport { WrHaptics } from 'ngwr/platform';\n\nimport type { WrActionSheetAction } from './interfaces';\n\n/**\n * iOS-style action sheet — a bottom sheet offering a short list of choices.\n * A thin preset over {@link WrDrawer} (bottom position, rounded, grab handle,\n * safe-area padding), driven by data rather than projected content.\n *\n * Pass `actions`; picking one emits `action` and closes the sheet. Rows with\n * `role: 'destructive'` are painted in the danger colour, and `role: 'cancel'`\n * rows drop to a separate group at the bottom. Dismissing via the backdrop,\n * `Escape`, or a swipe-down closes without emitting. Picking fires a light\n * {@link WrHaptics} tick.\n *\n * @example\n * ```html\n * <wr-action-sheet\n * [(open)]=\"sheetOpen\"\n * title=\"Photo\"\n * [actions]=\"[\n * { label: 'Take Photo', icon: 'camera', value: 'camera' },\n * { label: 'Choose from Library', icon: 'image', value: 'library' },\n * { label: 'Delete', role: 'destructive', value: 'delete' },\n * { label: 'Cancel', role: 'cancel' },\n * ]\"\n * (action)=\"onPick($event)\"\n * />\n * ```\n *\n * @see https://ngwr.dev/reference/components/action-sheet\n */\n@Component({\n selector: 'wr-action-sheet',\n templateUrl: './action-sheet.html',\n encapsulation: ViewEncapsulation.None,\n imports: [WrDrawer, WrDrawerTitle, WrIcon],\n})\nexport class WrActionSheet {\n private readonly haptics = inject(WrHaptics);\n\n /** Whether the sheet is open. Two-way. @default false */\n readonly open = model<boolean>(false);\n\n /** The rows to offer. */\n readonly actions = input<readonly WrActionSheetAction[]>([]);\n\n /** Optional bold heading above the rows. */\n readonly title = input<string>('');\n\n /**\n * Name announced for the dialog when there is no visible `title`. Falls back to\n * `actionSheet.label`, then `'Actions'` — it used to be that English string,\n * written into the template of a component whose every other string comes from\n * the caller.\n */\n readonly titleFallback = input<string | null>(null);\n\n protected readonly resolvedTitleFallback = useI18nText(this.titleFallback, 'actionSheet.label', 'Actions');\n\n /** Optional muted sub-heading under the title. */\n readonly message = input<string>('');\n\n /** Fires with the chosen row (never fires on a dismiss). */\n readonly action = output<WrActionSheetAction>();\n\n protected readonly mainActions = computed(() => this.actions().filter(a => a.role !== 'cancel'));\n protected readonly cancelActions = computed(() => this.actions().filter(a => a.role === 'cancel'));\n\n protected select(item: WrActionSheetAction): void {\n if (item.disabled) return;\n this.haptics.selection();\n this.action.emit(item);\n this.open.set(false);\n }\n}\n","<wr-drawer [(open)]=\"open\" position=\"bottom\" height=\"auto\" rounded showHandle safeArea maxHeight=\"90dvh\">\n <div class=\"wr-action-sheet\">\n @if (title() || message()) {\n <div class=\"wr-action-sheet__header\">\n @if (title()) {\n <div class=\"wr-action-sheet__title\" wrDrawerTitle>{{ title() }}</div>\n }\n @if (message()) {\n <div class=\"wr-action-sheet__message\">{{ message() }}</div>\n }\n </div>\n }\n <!-- The drawer opens as an aria-modal dialog; name it via wrDrawerTitle.\n When there is no visible title, a screen-reader-only fallback keeps the\n dialog from being announced as unnamed. -->\n @if (!title()) {\n <span class=\"wr-action-sheet__sr-only\" wrDrawerTitle>{{ resolvedTitleFallback() }}</span>\n }\n\n <div class=\"wr-action-sheet__group\">\n @for (item of mainActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action\"\n [class.wr-action-sheet__action--destructive]=\"item.role === 'destructive'\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n @if (item.icon) {\n <wr-icon class=\"wr-action-sheet__icon\" [name]=\"item.icon\" />\n }\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n\n @if (cancelActions().length) {\n <div class=\"wr-action-sheet__group wr-action-sheet__group--cancel\">\n @for (item of cancelActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action wr-action-sheet__action--cancel\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n</wr-drawer>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAAA;;;;;AAKG;AAWH;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;MAOU,aAAa,CAAA;AACP,IAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;;IAGnC,IAAI,GAAG,KAAK,CAAU,KAAK;6EAAC;;IAG5B,OAAO,GAAG,KAAK,CAAiC,EAAE;gFAAC;;IAGnD,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;AAElC;;;;;AAKG;IACM,aAAa,GAAG,KAAK,CAAgB,IAAI;sFAAC;IAEhC,qBAAqB,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,mBAAmB,EAAE,SAAS,CAAC;;IAGjG,OAAO,GAAG,KAAK,CAAS,EAAE;gFAAC;;IAG3B,MAAM,GAAG,MAAM,EAAuB;IAE5B,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;oFAAC;IAC7E,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;sFAAC;AAExF,IAAA,MAAM,CAAC,IAAyB,EAAA;QACxC,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACtB;uGApCW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,mwBClD1B,+6DAoDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDJY,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,4DAAE,MAAM,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAE9B,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;+BACE,iBAAiB,EAAA,aAAA,EAEZ,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,EAAA,QAAA,EAAA,+6DAAA,EAAA;;;AEhD5C;;AAEG;;"}
1
+ {"version":3,"file":"ngwr-action-sheet.mjs","names":[],"sources":["../../../projects/lib/action-sheet/action-sheet.ts","../../../projects/lib/action-sheet/action-sheet.html"],"sourcesContent":["/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { Component, ViewEncapsulation, computed, inject, input, model, output } from '@angular/core';\n\nimport { WrDrawer, WrDrawerTitle } from 'ngwr/drawer';\nimport { useI18nText } from 'ngwr/i18n';\nimport { WrIcon } from 'ngwr/icon';\nimport { WrHaptics } from 'ngwr/platform';\nimport type { WrClassInput } from 'ngwr/utils';\n\nimport type { WrActionSheetAction } from './interfaces';\n\n/**\n * iOS-style action sheet — a bottom sheet offering a short list of choices.\n * A thin preset over {@link WrDrawer} (bottom position, rounded, grab handle,\n * safe-area padding), driven by data rather than projected content.\n *\n * Pass `actions`; picking one emits `action` and closes the sheet. Rows with\n * `role: 'destructive'` are painted in the danger colour, and `role: 'cancel'`\n * rows drop to a separate group at the bottom. Dismissing via the backdrop,\n * `Escape`, or a swipe-down closes without emitting. Picking fires a light\n * {@link WrHaptics} tick.\n *\n * @example\n * ```html\n * <wr-action-sheet\n * [(open)]=\"sheetOpen\"\n * title=\"Photo\"\n * [actions]=\"[\n * { label: 'Take Photo', icon: 'camera', value: 'camera' },\n * { label: 'Choose from Library', icon: 'image', value: 'library' },\n * { label: 'Delete', role: 'destructive', value: 'delete' },\n * { label: 'Cancel', role: 'cancel' },\n * ]\"\n * (action)=\"onPick($event)\"\n * />\n * ```\n *\n * @see https://ngwr.dev/reference/components/action-sheet\n */\n@Component({\n selector: 'wr-action-sheet',\n templateUrl: './action-sheet.html',\n encapsulation: ViewEncapsulation.None,\n imports: [WrDrawer, WrDrawerTitle, WrIcon],\n})\nexport class WrActionSheet {\n private readonly haptics = inject(WrHaptics);\n\n /** Whether the sheet is open. Two-way. @default false */\n readonly open = model<boolean>(false);\n\n /** The rows to offer. */\n readonly actions = input<readonly WrActionSheetAction[]>([]);\n\n /** Optional bold heading above the rows. */\n readonly title = input<string>('');\n\n /**\n * Name announced for the dialog when there is no visible `title`. Falls back to\n * `actionSheet.label`, then `'Actions'` — it used to be that English string,\n * written into the template of a component whose every other string comes from\n * the caller.\n */\n readonly titleFallback = input<string | null>(null);\n\n protected readonly resolvedTitleFallback = useI18nText(this.titleFallback, 'actionSheet.label', 'Actions');\n\n /** Optional muted sub-heading under the title. */\n readonly message = input<string>('');\n\n /**\n * Extra CSS classes for the sheet's panel, forwarded to the `<wr-drawer>` this\n * renders. The drawer is in THIS component's template rather than in the\n * consumer's, so a class on `<wr-action-sheet>` lands on a host that only\n * wraps it — the panel itself is reachable no other way.\n */\n readonly panelClass = input<WrClassInput>(null);\n\n /** Fires with the chosen row (never fires on a dismiss). */\n readonly action = output<WrActionSheetAction>();\n\n protected readonly mainActions = computed(() => this.actions().filter(a => a.role !== 'cancel'));\n protected readonly cancelActions = computed(() => this.actions().filter(a => a.role === 'cancel'));\n\n protected select(item: WrActionSheetAction): void {\n if (item.disabled) return;\n this.haptics.selection();\n this.action.emit(item);\n this.open.set(false);\n }\n}\n","<wr-drawer\n [(open)]=\"open\"\n position=\"bottom\"\n height=\"auto\"\n rounded\n showHandle\n safeArea\n maxHeight=\"90dvh\"\n [panelClass]=\"panelClass()\"\n>\n <div class=\"wr-action-sheet\">\n @if (title() || message()) {\n <div class=\"wr-action-sheet__header\">\n @if (title()) {\n <div class=\"wr-action-sheet__title\" wrDrawerTitle>{{ title() }}</div>\n }\n @if (message()) {\n <div class=\"wr-action-sheet__message\">{{ message() }}</div>\n }\n </div>\n }\n <!-- The drawer opens as an aria-modal dialog; name it via wrDrawerTitle.\n When there is no visible title, a screen-reader-only fallback keeps the\n dialog from being announced as unnamed. -->\n @if (!title()) {\n <span class=\"wr-action-sheet__sr-only\" wrDrawerTitle>{{ resolvedTitleFallback() }}</span>\n }\n\n <div class=\"wr-action-sheet__group\">\n @for (item of mainActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action\"\n [class.wr-action-sheet__action--destructive]=\"item.role === 'destructive'\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n @if (item.icon) {\n <wr-icon class=\"wr-action-sheet__icon\" [name]=\"item.icon\" />\n }\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n\n @if (cancelActions().length) {\n <div class=\"wr-action-sheet__group wr-action-sheet__group--cancel\">\n @for (item of cancelActions(); track $index) {\n <button\n type=\"button\"\n class=\"wr-action-sheet__action wr-action-sheet__action--cancel\"\n [disabled]=\"item.disabled\"\n (click)=\"select(item)\"\n >\n <span class=\"wr-action-sheet__label\">{{ item.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n</wr-drawer>\n"],"mappings":";;;;;;;;;;;;AAmDA,IAAa,gBAAb,MAAa,cAAa;CACP,UAAU,OAAO,SAAS;CAGlC,OAAO,MAAe,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAG5B,UAAU,MAAsC,CAAA,GAAG,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CAGnD,QAAQ,MAAc,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAQzB,gBAAgB,MAAqB,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,gBAAA,CAAA,+BAAA,CAAA,CAAA;CAEhC,wBAAwB,YAAY,KAAK,eAAe,qBAAqB,SAAS;CAGhG,UAAU,MAAc,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CAQ3B,aAAa,MAAoB,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,aAAA,CAAA,+BAAA,CAAA,CAAA;CAGtC,SAAS,OAAM;CAEL,cAAc,eAAe,KAAK,QAAO,CAAE,CAAC,QAAO,MAAK,EAAE,SAAS,QAAQ,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,+BAAA,CAAA,CAAA;CAC7E,gBAAgB,eAAe,KAAK,QAAO,CAAE,CAAC,QAAO,MAAK,EAAE,SAAS,QAAQ,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,gBAAA,CAAA,+BAAA,CAAA,CAAA;CAExF,OAAO,MAAyB;EACxC,IAAI,KAAK,UAAU;EACnB,KAAK,QAAQ,UAAS;EACtB,KAAK,OAAO,KAAK,IAAI;EACrB,KAAK,KAAK,IAAI,KAAK;CACrB;CA5CW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAa,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAb,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAa,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,eAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,YAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,SAAA;GAAA,MAAA;GAAA,QAAA;EAAA;EAAA,UAAA;EAAA,UCnD1B;EA6DA,cAAA;GAAA;IAAA,MAAA;IAAA,MDZY;IAAQ,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;KAAA;IAAA;IAAA,SAAA,CAAA,YAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAa,UAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAM,UAAA;IAAA,QAAA,CAAA,MAAA;GAAA;EAAA;EAAA,eAAA,GAAA,kBAAA;CAAA,CAAA;;AAE9B,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAa,YAAA,CAAA;EANzB,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAiB,eAEZ,kBAAkB;GAAI,SAC5B;IAAC;IAAU;IAAe;GAAM;GAAC,UAAA;EAAA,CAAA"}
@@ -1,142 +1,124 @@
1
- import { coerceNumberProperty } from '@angular/cdk/coercion';
2
- import { isPlatformBrowser } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { input, output, inject, ElementRef, DestroyRef, PLATFORM_ID, Injector, afterNextRender, effect, Directive } from '@angular/core';
5
-
6
- /**
7
- * @license
8
- *
9
- * Use of this source code is governed by an MIT-style license that can be
10
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
11
- */
12
- /**
13
- * Stick-on-scroll directive. Combines native CSS `position: sticky` with
14
- * an `IntersectionObserver`-driven `wr-affix--active` state class, so consumers
15
- * can style the element differently while it's pinned (e.g. add a
16
- * shadow, change the background, shrink the height).
17
- *
18
- * The host gets `position: sticky; top: ${offsetTop}px;` inline. A tiny
19
- * sentinel `<div>` is inserted just before the host — when the sentinel
20
- * scrolls out of view, the host is "stuck" and gets `wr-affix--active`
21
- * + an `(wrAffixChange)` emission.
22
- *
23
- * Works inside any scroll container without configuration — CSS sticky
24
- * picks the nearest scrollable ancestor automatically.
25
- *
26
- * @example
27
- * ```html
28
- * <header wrAffix [wrAffixOffsetTop]="0">
29
- * <!-- adds a shadow once stuck -->
30
- * </header>
31
- * ```
32
- *
33
- * ```scss
34
- * header.wr-affix.wr-affix--active {
35
- * box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
36
- * }
37
- * ```
38
- */
39
- class WrAffix {
40
- /** Pixels from the top of the scroll container when stuck. @default 0 */
41
- offsetTop = input(0, { ...(ngDevMode ? { debugName: "offsetTop" } : /* istanbul ignore next */ {}), alias: 'wrAffixOffsetTop',
42
- transform: (v) => coerceNumberProperty(v, 0) });
43
- /** Emits `true` when the element becomes affixed, `false` when it unsticks. */
44
- // eslint-disable-next-line @angular-eslint/no-output-rename -- keep wr-prefixed binding to match `[wrAffix]`
45
- affixChange = output({ alias: 'wrAffixChange' });
46
- host = inject(ElementRef);
47
- destroyRef = inject(DestroyRef);
48
- isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
49
- /**
50
- * `afterNextRender`'s callback is not an injection context, and the observer
51
- * cannot exist before the sentinel it watches — so the effect that rebuilds it
52
- * is handed the injector explicitly.
53
- */
54
- injector = inject(Injector);
55
- constructor() {
56
- if (!this.isBrowser)
57
- return;
58
- afterNextRender(() => {
59
- const el = this.host.nativeElement;
60
- const parent = el.parentElement;
61
- if (!parent)
62
- return;
63
- // Sentinel: an empty zero-height block placed immediately before
64
- // the host. When the sentinel scrolls out of view, the host is
65
- // necessarily "stuck" at the configured offset.
66
- const sentinel = el.ownerDocument.createElement('div');
67
- sentinel.className = 'wr-affix__sentinel';
68
- sentinel.setAttribute('aria-hidden', 'true');
69
- sentinel.style.cssText = 'height:0;width:100%;margin:0;padding:0;pointer-events:none;';
70
- parent.insertBefore(sentinel, el);
71
- // The observer reports STATE, not transitions: it delivers an entry for the
72
- // sentinel as soon as it starts watching it — before anything has scrolled —
73
- // and can repeat a state the host is already in (a resize, another crossing of
74
- // the same threshold). `affixChange` is documented as the transition, so it
75
- // only fires on one. The starting state is "not affixed", which is what the
76
- // element already renders as, so that first entry is silent.
77
- let affixed = false;
78
- let observer = null;
79
- // `rootMargin` is fixed for an observer's lifetime, so a changed offset means
80
- // a NEW observer. Without this the two halves of the offset drifted apart:
81
- // `[style.top.px]` is a live binding, so a header that animates its offset
82
- // pinned at the new line while still flipping state at the old one.
83
- // Re-observing re-delivers the current state, which the transition guard
84
- // above absorbs when nothing has actually changed.
85
- effect(onCleanup => {
86
- const offset = this.offsetTop();
87
- observer = new IntersectionObserver(([entry]) => {
88
- // NOT `!entry.isIntersecting` on its own. A sentinel is outside
89
- // the root in TWO directions, and only one of them means the
90
- // header has stuck: above the line because the page scrolled past
91
- // it, or below it because the host simply starts further down the
92
- // page than the first screen. The bare negation called both
93
- // "affixed", so any sticky element below the fold reported
94
- // `affixed = true` and painted `.wr-affix--active` on its very
95
- // first observer callback — before a pixel had scrolled — and
96
- // emitted a transition that never happened.
97
- //
98
- // `rootBounds.top` is the offset line (the negative `rootMargin`
99
- // above moves it), so a sentinel above it has genuinely gone by.
100
- const rootTop = entry.rootBounds?.top ?? offset;
101
- const next = !entry.isIntersecting && entry.boundingClientRect.top < rootTop;
102
- if (next === affixed)
103
- return;
104
- affixed = next;
105
- el.classList.toggle('wr-affix--active', next);
106
- this.affixChange.emit(next);
107
- }, {
108
- // Trigger when the sentinel's top crosses the offset line.
109
- rootMargin: `-${offset}px 0px 0px 0px`,
110
- threshold: [0],
111
- });
112
- observer.observe(sentinel);
113
- onCleanup(() => observer?.disconnect());
114
- }, { injector: this.injector });
115
- this.destroyRef.onDestroy(() => {
116
- observer?.disconnect();
117
- sentinel.remove();
118
- el.classList.remove('wr-affix--active');
119
- });
120
- });
121
- }
122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: WrAffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
123
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: WrAffix, isStandalone: true, selector: "[wrAffix]", inputs: { offsetTop: { classPropertyName: "offsetTop", publicName: "wrAffixOffsetTop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { affixChange: "wrAffixChange" }, host: { properties: { "style.position": "\"sticky\"", "style.top.px": "offsetTop()" }, classAttribute: "wr-affix" }, ngImport: i0 });
124
- }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: WrAffix, decorators: [{
126
- type: Directive,
127
- args: [{
128
- selector: '[wrAffix]',
129
- host: {
130
- class: 'wr-affix',
131
- '[style.position]': '"sticky"',
132
- '[style.top.px]': 'offsetTop()',
133
- },
134
- }]
135
- }], ctorParameters: () => [], propDecorators: { offsetTop: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrAffixOffsetTop", required: false }] }], affixChange: [{ type: i0.Output, args: ["wrAffixChange"] }] } });
136
-
1
+ import { coerceNumberProperty } from "@angular/cdk/coercion";
2
+ import { isPlatformBrowser } from "@angular/common";
3
+ import * as i0 from "@angular/core";
4
+ import { DestroyRef, Directive, ElementRef, Injector, PLATFORM_ID, afterNextRender, effect, inject, input, output } from "@angular/core";
137
5
  /**
138
- * Generated bundle index. Do not edit.
139
- */
140
-
6
+ * @license
7
+ *
8
+ * Use of this source code is governed by an MIT-style license that can be
9
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
10
+ */
11
+ var WrAffix = class WrAffix {
12
+ offsetTop = input(0, {
13
+ ...ngDevMode ? { debugName: "offsetTop" } : /* istanbul ignore next */ {},
14
+ alias: "wrAffixOffsetTop",
15
+ transform: (v) => coerceNumberProperty(v, 0)
16
+ });
17
+ affixChange = output({ alias: "wrAffixChange" });
18
+ host = inject(ElementRef);
19
+ destroyRef = inject(DestroyRef);
20
+ isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
21
+ injector = inject(Injector);
22
+ constructor() {
23
+ if (!this.isBrowser) return;
24
+ afterNextRender(() => {
25
+ const el = this.host.nativeElement;
26
+ const parent = el.parentElement;
27
+ if (!parent) return;
28
+ const sentinel = el.ownerDocument.createElement("div");
29
+ sentinel.className = "wr-affix__sentinel";
30
+ sentinel.setAttribute("aria-hidden", "true");
31
+ sentinel.style.cssText = "height:0;width:100%;margin:0;padding:0;pointer-events:none;";
32
+ parent.insertBefore(sentinel, el);
33
+ let affixed = false;
34
+ let observer = null;
35
+ effect((onCleanup) => {
36
+ const offset = this.offsetTop();
37
+ observer = new IntersectionObserver(([entry]) => {
38
+ const rootTop = entry.rootBounds?.top ?? offset;
39
+ const next = !entry.isIntersecting && entry.boundingClientRect.top < rootTop;
40
+ if (next === affixed) return;
41
+ affixed = next;
42
+ el.classList.toggle("wr-affix--active", next);
43
+ this.affixChange.emit(next);
44
+ }, {
45
+ rootMargin: `-${offset}px 0px 0px 0px`,
46
+ threshold: [0]
47
+ });
48
+ observer.observe(sentinel);
49
+ onCleanup(() => observer?.disconnect());
50
+ }, { injector: this.injector });
51
+ this.destroyRef.onDestroy(() => {
52
+ observer?.disconnect();
53
+ sentinel.remove();
54
+ el.classList.remove("wr-affix--active");
55
+ });
56
+ });
57
+ }
58
+ static ɵfac = i0.ɵɵngDeclareFactory({
59
+ minVersion: "12.0.0",
60
+ version: "22.2.0",
61
+ ngImport: i0,
62
+ type: WrAffix,
63
+ deps: [],
64
+ target: i0.ɵɵFactoryTarget.Directive
65
+ });
66
+ static ɵdir = i0.ɵɵngDeclareDirective({
67
+ minVersion: "17.1.0",
68
+ version: "22.2.0",
69
+ type: WrAffix,
70
+ isStandalone: true,
71
+ selector: "[wrAffix]",
72
+ inputs: { offsetTop: {
73
+ classPropertyName: "offsetTop",
74
+ publicName: "wrAffixOffsetTop",
75
+ isSignal: true,
76
+ isRequired: false,
77
+ transformFunction: null
78
+ } },
79
+ outputs: { affixChange: "wrAffixChange" },
80
+ host: {
81
+ properties: {
82
+ "style.position": "\"sticky\"",
83
+ "style.top.px": "offsetTop()"
84
+ },
85
+ classAttribute: "wr-affix"
86
+ },
87
+ ngImport: i0
88
+ });
89
+ };
90
+ i0.ɵɵngDeclareClassMetadata({
91
+ minVersion: "12.0.0",
92
+ version: "22.2.0",
93
+ ngImport: i0,
94
+ type: WrAffix,
95
+ decorators: [{
96
+ type: Directive,
97
+ args: [{
98
+ selector: "[wrAffix]",
99
+ host: {
100
+ class: "wr-affix",
101
+ "[style.position]": "\"sticky\"",
102
+ "[style.top.px]": "offsetTop()"
103
+ }
104
+ }]
105
+ }],
106
+ ctorParameters: () => [],
107
+ propDecorators: {
108
+ offsetTop: [{
109
+ type: i0.Input,
110
+ args: [{
111
+ isSignal: true,
112
+ alias: "wrAffixOffsetTop",
113
+ required: false
114
+ }]
115
+ }],
116
+ affixChange: [{
117
+ type: i0.Output,
118
+ args: ["wrAffixChange"]
119
+ }]
120
+ }
121
+ });
141
122
  export { WrAffix };
142
- //# sourceMappingURL=ngwr-affix.mjs.map
123
+
124
+ //# sourceMappingURL=ngwr-affix.mjs.map