ngwr 6.0.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (696) hide show
  1. package/LICENSE +1 -3
  2. package/README.md +179 -32
  3. package/affix/styles/_index.scss +12 -0
  4. package/alert/styles/_index.scss +75 -32
  5. package/anchor/styles/_index.scss +59 -0
  6. package/aurora/aurora.scss +1 -0
  7. package/aurora/styles/_index.scss +30 -0
  8. package/avatar/styles/_index.scss +30 -14
  9. package/back-top/styles/_index.scss +42 -0
  10. package/badge/styles/_index.scss +80 -0
  11. package/badge/styles/_tag.scss +81 -0
  12. package/bar-chart/styles/_index.scss +56 -0
  13. package/blur-text/blur-text.scss +1 -0
  14. package/blur-text/styles/_index.scss +14 -0
  15. package/border-glow/border-glow.scss +4 -0
  16. package/border-glow/styles/_index.scss +228 -0
  17. package/breadcrumbs/breadcrumbs.scss +1 -0
  18. package/breadcrumbs/styles/_index.scss +76 -0
  19. package/button/styles/_index.scss +148 -125
  20. package/calendar/styles/_index.scss +252 -0
  21. package/calendar-heatmap/styles/_index.scss +69 -0
  22. package/card/card.scss +1 -0
  23. package/card/styles/_index.scss +96 -0
  24. package/carousel/styles/_index.scss +102 -0
  25. package/cascader/cascader.scss +1 -0
  26. package/cascader/styles/_index.scss +174 -0
  27. package/checkbox/styles/_index.scss +76 -60
  28. package/circular-text/circular-text.scss +1 -0
  29. package/circular-text/styles/_index.scss +45 -0
  30. package/click-spark/click-spark.scss +1 -0
  31. package/click-spark/styles/_index.scss +16 -0
  32. package/collapse/styles/_index.scss +92 -0
  33. package/color-picker/styles/_index.scss +247 -0
  34. package/command-palette/styles/_index.scss +188 -0
  35. package/compare/styles/_index.scss +100 -0
  36. package/context-menu/styles/_index.scss +112 -0
  37. package/counter/styles/_index.scss +44 -0
  38. package/date-picker/styles/_index.scss +204 -0
  39. package/decrypt-text/decrypt-text.scss +1 -0
  40. package/decrypt-text/styles/_index.scss +26 -0
  41. package/density/styles/_index.scss +37 -0
  42. package/descriptions/styles/_index.scss +104 -0
  43. package/dialog/styles/_index.scss +101 -27
  44. package/divider/styles/_index.scss +43 -24
  45. package/donut-chart/styles/_index.scss +76 -0
  46. package/drag-drop/sortable-list.scss +1 -0
  47. package/drag-drop/styles/_index.scss +99 -0
  48. package/drawer/styles/_index.scss +164 -0
  49. package/dropdown/styles/_index.scss +76 -56
  50. package/empty/styles/_index.scss +49 -0
  51. package/falling-text/falling-text.scss +1 -0
  52. package/falling-text/styles/_index.scss +30 -0
  53. package/fesm2022/ngwr-affix.mjs +102 -0
  54. package/fesm2022/ngwr-affix.mjs.map +1 -0
  55. package/fesm2022/ngwr-alert.mjs +70 -52
  56. package/fesm2022/ngwr-alert.mjs.map +1 -1
  57. package/fesm2022/ngwr-anchor.mjs +103 -0
  58. package/fesm2022/ngwr-anchor.mjs.map +1 -0
  59. package/fesm2022/ngwr-aurora.mjs +309 -0
  60. package/fesm2022/ngwr-aurora.mjs.map +1 -0
  61. package/fesm2022/ngwr-avatar.mjs +81 -71
  62. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  63. package/fesm2022/ngwr-back-top.mjs +81 -0
  64. package/fesm2022/ngwr-back-top.mjs.map +1 -0
  65. package/fesm2022/ngwr-badge.mjs +192 -0
  66. package/fesm2022/ngwr-badge.mjs.map +1 -0
  67. package/fesm2022/ngwr-bar-chart.mjs +69 -0
  68. package/fesm2022/ngwr-bar-chart.mjs.map +1 -0
  69. package/fesm2022/ngwr-blur-text.mjs +181 -0
  70. package/fesm2022/ngwr-blur-text.mjs.map +1 -0
  71. package/fesm2022/ngwr-border-glow.mjs +278 -0
  72. package/fesm2022/ngwr-border-glow.mjs.map +1 -0
  73. package/fesm2022/ngwr-breadcrumbs.mjs +101 -0
  74. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -0
  75. package/fesm2022/ngwr-button.mjs +179 -104
  76. package/fesm2022/ngwr-button.mjs.map +1 -1
  77. package/fesm2022/ngwr-calendar-heatmap.mjs +145 -0
  78. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -0
  79. package/fesm2022/ngwr-calendar.mjs +402 -0
  80. package/fesm2022/ngwr-calendar.mjs.map +1 -0
  81. package/fesm2022/ngwr-card.mjs +100 -0
  82. package/fesm2022/ngwr-card.mjs.map +1 -0
  83. package/fesm2022/ngwr-carousel.mjs +128 -0
  84. package/fesm2022/ngwr-carousel.mjs.map +1 -0
  85. package/fesm2022/ngwr-cascader.mjs +280 -0
  86. package/fesm2022/ngwr-cascader.mjs.map +1 -0
  87. package/fesm2022/ngwr-checkbox.mjs +214 -54
  88. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  89. package/fesm2022/ngwr-circular-text.mjs +168 -0
  90. package/fesm2022/ngwr-circular-text.mjs.map +1 -0
  91. package/fesm2022/ngwr-click-spark.mjs +163 -0
  92. package/fesm2022/ngwr-click-spark.mjs.map +1 -0
  93. package/fesm2022/ngwr-clipboard.mjs +130 -0
  94. package/fesm2022/ngwr-clipboard.mjs.map +1 -0
  95. package/fesm2022/ngwr-collapse.mjs +232 -0
  96. package/fesm2022/ngwr-collapse.mjs.map +1 -0
  97. package/fesm2022/ngwr-color-picker.mjs +646 -0
  98. package/fesm2022/ngwr-color-picker.mjs.map +1 -0
  99. package/fesm2022/ngwr-command-palette.mjs +259 -0
  100. package/fesm2022/ngwr-command-palette.mjs.map +1 -0
  101. package/fesm2022/ngwr-compare.mjs +137 -0
  102. package/fesm2022/ngwr-compare.mjs.map +1 -0
  103. package/fesm2022/ngwr-confetti.mjs +160 -0
  104. package/fesm2022/ngwr-confetti.mjs.map +1 -0
  105. package/fesm2022/ngwr-context-menu.mjs +653 -0
  106. package/fesm2022/ngwr-context-menu.mjs.map +1 -0
  107. package/fesm2022/ngwr-cookie.mjs +127 -0
  108. package/fesm2022/ngwr-cookie.mjs.map +1 -0
  109. package/fesm2022/ngwr-counter.mjs +415 -0
  110. package/fesm2022/ngwr-counter.mjs.map +1 -0
  111. package/fesm2022/ngwr-date-adapter-fns.mjs +180 -0
  112. package/fesm2022/ngwr-date-adapter-fns.mjs.map +1 -0
  113. package/fesm2022/ngwr-date-adapter-luxon.mjs +201 -0
  114. package/fesm2022/ngwr-date-adapter-luxon.mjs.map +1 -0
  115. package/fesm2022/ngwr-date-adapter.mjs +419 -0
  116. package/fesm2022/ngwr-date-adapter.mjs.map +1 -0
  117. package/fesm2022/ngwr-date-picker.mjs +624 -0
  118. package/fesm2022/ngwr-date-picker.mjs.map +1 -0
  119. package/fesm2022/ngwr-decrypt-text.mjs +396 -0
  120. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -0
  121. package/fesm2022/ngwr-density.mjs +157 -0
  122. package/fesm2022/ngwr-density.mjs.map +1 -0
  123. package/fesm2022/ngwr-descriptions.mjs +83 -0
  124. package/fesm2022/ngwr-descriptions.mjs.map +1 -0
  125. package/fesm2022/ngwr-dialog.mjs +249 -383
  126. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  127. package/fesm2022/ngwr-directives.mjs +315 -0
  128. package/fesm2022/ngwr-directives.mjs.map +1 -0
  129. package/fesm2022/ngwr-divider.mjs +74 -59
  130. package/fesm2022/ngwr-divider.mjs.map +1 -1
  131. package/fesm2022/ngwr-donut-chart.mjs +131 -0
  132. package/fesm2022/ngwr-donut-chart.mjs.map +1 -0
  133. package/fesm2022/ngwr-drag-drop.mjs +117 -0
  134. package/fesm2022/ngwr-drag-drop.mjs.map +1 -0
  135. package/fesm2022/ngwr-drawer.mjs +315 -0
  136. package/fesm2022/ngwr-drawer.mjs.map +1 -0
  137. package/fesm2022/ngwr-dropdown.mjs +276 -229
  138. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  139. package/fesm2022/ngwr-empty.mjs +57 -0
  140. package/fesm2022/ngwr-empty.mjs.map +1 -0
  141. package/fesm2022/ngwr-falling-text.mjs +316 -0
  142. package/fesm2022/ngwr-falling-text.mjs.map +1 -0
  143. package/fesm2022/ngwr-file-upload.mjs +260 -0
  144. package/fesm2022/ngwr-file-upload.mjs.map +1 -0
  145. package/fesm2022/ngwr-form.mjs +133 -48
  146. package/fesm2022/ngwr-form.mjs.map +1 -1
  147. package/fesm2022/ngwr-fuzzy-text.mjs +373 -0
  148. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -0
  149. package/fesm2022/ngwr-gauge.mjs +83 -0
  150. package/fesm2022/ngwr-gauge.mjs.map +1 -0
  151. package/fesm2022/ngwr-glitch-text.mjs +67 -0
  152. package/fesm2022/ngwr-glitch-text.mjs.map +1 -0
  153. package/fesm2022/ngwr-gradient-text.mjs +109 -0
  154. package/fesm2022/ngwr-gradient-text.mjs.map +1 -0
  155. package/fesm2022/ngwr-hotkey.mjs +263 -0
  156. package/fesm2022/ngwr-hotkey.mjs.map +1 -0
  157. package/fesm2022/ngwr-i18n-en.mjs +168 -0
  158. package/fesm2022/ngwr-i18n-en.mjs.map +1 -0
  159. package/fesm2022/ngwr-i18n-ru.mjs +156 -0
  160. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -0
  161. package/fesm2022/ngwr-i18n.mjs +478 -0
  162. package/fesm2022/ngwr-i18n.mjs.map +1 -0
  163. package/fesm2022/ngwr-icon-adapters-feather.mjs +74 -0
  164. package/fesm2022/ngwr-icon-adapters-feather.mjs.map +1 -0
  165. package/fesm2022/ngwr-icon-adapters-lucide.mjs +88 -0
  166. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -0
  167. package/fesm2022/ngwr-icon.mjs +189 -650
  168. package/fesm2022/ngwr-icon.mjs.map +1 -1
  169. package/fesm2022/ngwr-image-cropper.mjs +299 -0
  170. package/fesm2022/ngwr-image-cropper.mjs.map +1 -0
  171. package/fesm2022/ngwr-input-number.mjs +239 -0
  172. package/fesm2022/ngwr-input-number.mjs.map +1 -0
  173. package/fesm2022/ngwr-input-otp.mjs +216 -0
  174. package/fesm2022/ngwr-input-otp.mjs.map +1 -0
  175. package/fesm2022/ngwr-input.mjs +183 -104
  176. package/fesm2022/ngwr-input.mjs.map +1 -1
  177. package/fesm2022/ngwr-keyboard.mjs +47 -0
  178. package/fesm2022/ngwr-keyboard.mjs.map +1 -0
  179. package/fesm2022/ngwr-knob.mjs +227 -0
  180. package/fesm2022/ngwr-knob.mjs.map +1 -0
  181. package/fesm2022/ngwr-layout.mjs +197 -0
  182. package/fesm2022/ngwr-layout.mjs.map +1 -0
  183. package/fesm2022/ngwr-lightbox.mjs +131 -0
  184. package/fesm2022/ngwr-lightbox.mjs.map +1 -0
  185. package/fesm2022/ngwr-line-chart.mjs +176 -0
  186. package/fesm2022/ngwr-line-chart.mjs.map +1 -0
  187. package/fesm2022/ngwr-list.mjs +132 -0
  188. package/fesm2022/ngwr-list.mjs.map +1 -0
  189. package/fesm2022/ngwr-loading-bar.mjs +160 -0
  190. package/fesm2022/ngwr-loading-bar.mjs.map +1 -0
  191. package/fesm2022/ngwr-marquee.mjs +224 -0
  192. package/fesm2022/ngwr-marquee.mjs.map +1 -0
  193. package/fesm2022/ngwr-media.mjs +132 -0
  194. package/fesm2022/ngwr-media.mjs.map +1 -0
  195. package/fesm2022/ngwr-mention.mjs +374 -0
  196. package/fesm2022/ngwr-mention.mjs.map +1 -0
  197. package/fesm2022/ngwr-meta.mjs +266 -0
  198. package/fesm2022/ngwr-meta.mjs.map +1 -0
  199. package/fesm2022/ngwr-meter-group.mjs +73 -0
  200. package/fesm2022/ngwr-meter-group.mjs.map +1 -0
  201. package/fesm2022/ngwr-overlay.mjs +145 -0
  202. package/fesm2022/ngwr-overlay.mjs.map +1 -0
  203. package/fesm2022/ngwr-page-header.mjs +53 -0
  204. package/fesm2022/ngwr-page-header.mjs.map +1 -0
  205. package/fesm2022/ngwr-pagination.mjs +152 -96
  206. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  207. package/fesm2022/ngwr-pipes.mjs +290 -11
  208. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  209. package/fesm2022/ngwr-platform.mjs +63 -0
  210. package/fesm2022/ngwr-platform.mjs.map +1 -0
  211. package/fesm2022/ngwr-popconfirm.mjs +188 -0
  212. package/fesm2022/ngwr-popconfirm.mjs.map +1 -0
  213. package/fesm2022/ngwr-popover.mjs +361 -0
  214. package/fesm2022/ngwr-popover.mjs.map +1 -0
  215. package/fesm2022/ngwr-progress.mjs +47 -39
  216. package/fesm2022/ngwr-progress.mjs.map +1 -1
  217. package/fesm2022/ngwr-qr.mjs +168 -190
  218. package/fesm2022/ngwr-qr.mjs.map +1 -1
  219. package/fesm2022/ngwr-radio.mjs +204 -0
  220. package/fesm2022/ngwr-radio.mjs.map +1 -0
  221. package/fesm2022/ngwr-rating.mjs +180 -0
  222. package/fesm2022/ngwr-rating.mjs.map +1 -0
  223. package/fesm2022/ngwr-result.mjs +119 -0
  224. package/fesm2022/ngwr-result.mjs.map +1 -0
  225. package/fesm2022/ngwr-rotating-text.mjs +256 -0
  226. package/fesm2022/ngwr-rotating-text.mjs.map +1 -0
  227. package/fesm2022/ngwr-scramble-text.mjs +165 -0
  228. package/fesm2022/ngwr-scramble-text.mjs.map +1 -0
  229. package/fesm2022/ngwr-scroll.mjs +107 -0
  230. package/fesm2022/ngwr-scroll.mjs.map +1 -0
  231. package/fesm2022/ngwr-segmented.mjs +96 -0
  232. package/fesm2022/ngwr-segmented.mjs.map +1 -0
  233. package/fesm2022/ngwr-select.mjs +842 -307
  234. package/fesm2022/ngwr-select.mjs.map +1 -1
  235. package/fesm2022/ngwr-shiny-text.mjs +127 -0
  236. package/fesm2022/ngwr-shiny-text.mjs.map +1 -0
  237. package/fesm2022/ngwr-sidebar.mjs +134 -0
  238. package/fesm2022/ngwr-sidebar.mjs.map +1 -0
  239. package/fesm2022/ngwr-skeleton.mjs +59 -34
  240. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  241. package/fesm2022/ngwr-slider.mjs +234 -0
  242. package/fesm2022/ngwr-slider.mjs.map +1 -0
  243. package/fesm2022/ngwr-sparkline.mjs +104 -0
  244. package/fesm2022/ngwr-sparkline.mjs.map +1 -0
  245. package/fesm2022/ngwr-speed-dial.mjs +79 -0
  246. package/fesm2022/ngwr-speed-dial.mjs.map +1 -0
  247. package/fesm2022/ngwr-spinner.mjs +34 -28
  248. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  249. package/fesm2022/ngwr-splash-cursor.mjs +970 -0
  250. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -0
  251. package/fesm2022/ngwr-split-text.mjs +200 -0
  252. package/fesm2022/ngwr-split-text.mjs.map +1 -0
  253. package/fesm2022/ngwr-splitter.mjs +125 -0
  254. package/fesm2022/ngwr-splitter.mjs.map +1 -0
  255. package/fesm2022/ngwr-spotlight-card.mjs +138 -0
  256. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -0
  257. package/fesm2022/ngwr-squircle.mjs +320 -0
  258. package/fesm2022/ngwr-squircle.mjs.map +1 -0
  259. package/fesm2022/ngwr-star-border.mjs +72 -0
  260. package/fesm2022/ngwr-star-border.mjs.map +1 -0
  261. package/fesm2022/ngwr-statistic.mjs +220 -0
  262. package/fesm2022/ngwr-statistic.mjs.map +1 -0
  263. package/fesm2022/ngwr-stepper.mjs +186 -0
  264. package/fesm2022/ngwr-stepper.mjs.map +1 -0
  265. package/fesm2022/ngwr-storage.mjs +317 -0
  266. package/fesm2022/ngwr-storage.mjs.map +1 -0
  267. package/fesm2022/ngwr-switch.mjs +99 -0
  268. package/fesm2022/ngwr-switch.mjs.map +1 -0
  269. package/fesm2022/ngwr-table.mjs +218 -207
  270. package/fesm2022/ngwr-table.mjs.map +1 -1
  271. package/fesm2022/ngwr-tabs.mjs +217 -0
  272. package/fesm2022/ngwr-tabs.mjs.map +1 -0
  273. package/fesm2022/ngwr-textarea.mjs +106 -120
  274. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  275. package/fesm2022/ngwr-theme.mjs +152 -0
  276. package/fesm2022/ngwr-theme.mjs.map +1 -0
  277. package/fesm2022/ngwr-tilt-card.mjs +137 -0
  278. package/fesm2022/ngwr-tilt-card.mjs.map +1 -0
  279. package/fesm2022/ngwr-timeline.mjs +73 -0
  280. package/fesm2022/ngwr-timeline.mjs.map +1 -0
  281. package/fesm2022/ngwr-toast.mjs +446 -0
  282. package/fesm2022/ngwr-toast.mjs.map +1 -0
  283. package/fesm2022/ngwr-toolbar.mjs +46 -0
  284. package/fesm2022/ngwr-toolbar.mjs.map +1 -0
  285. package/fesm2022/ngwr-tree.mjs +483 -0
  286. package/fesm2022/ngwr-tree.mjs.map +1 -0
  287. package/fesm2022/ngwr-typewriter.mjs +229 -0
  288. package/fesm2022/ngwr-typewriter.mjs.map +1 -0
  289. package/fesm2022/ngwr-typography.mjs +79 -0
  290. package/fesm2022/ngwr-typography.mjs.map +1 -0
  291. package/fesm2022/ngwr-utils.mjs +535 -0
  292. package/fesm2022/ngwr-utils.mjs.map +1 -0
  293. package/fesm2022/ngwr-validators.mjs +214 -0
  294. package/fesm2022/ngwr-validators.mjs.map +1 -0
  295. package/fesm2022/ngwr-version.mjs +51 -0
  296. package/fesm2022/ngwr-version.mjs.map +1 -0
  297. package/fesm2022/ngwr-virtual-scroll.mjs +99 -0
  298. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -0
  299. package/fesm2022/ngwr-waves.mjs +356 -0
  300. package/fesm2022/ngwr-waves.mjs.map +1 -0
  301. package/fesm2022/ngwr-window.mjs +1141 -0
  302. package/fesm2022/ngwr-window.mjs.map +1 -0
  303. package/fesm2022/ngwr.mjs +0 -3
  304. package/fesm2022/ngwr.mjs.map +1 -1
  305. package/file-upload/styles/_index.scss +152 -0
  306. package/form/styles/_index.scss +85 -42
  307. package/gauge/styles/_index.scss +37 -0
  308. package/glitch-text/glitch-text.scss +1 -0
  309. package/glitch-text/styles/_index.scss +144 -0
  310. package/gradient-text/gradient-text.scss +1 -0
  311. package/gradient-text/styles/_index.scss +113 -0
  312. package/icon/styles/_index.scss +21 -15
  313. package/image-cropper/styles/_index.scss +114 -0
  314. package/input/styles/_index.scss +133 -93
  315. package/input-number/styles/_index.scss +75 -0
  316. package/input-otp/styles/_index.scss +53 -0
  317. package/keyboard/styles/_index.scss +55 -0
  318. package/knob/styles/_index.scss +54 -0
  319. package/layout/styles/_index.scss +65 -0
  320. package/lightbox/lightbox.scss +1 -0
  321. package/lightbox/styles/_index.scss +144 -0
  322. package/line-chart/styles/_index.scss +93 -0
  323. package/list/list.scss +1 -0
  324. package/list/styles/_index.scss +101 -0
  325. package/loading-bar/loading-bar.scss +1 -0
  326. package/loading-bar/styles/_index.scss +29 -0
  327. package/marquee/marquee.scss +1 -0
  328. package/marquee/styles/_index.scss +138 -0
  329. package/mention/styles/_index.scss +47 -0
  330. package/meter-group/styles/_index.scss +61 -0
  331. package/package.json +576 -99
  332. package/page-header/styles/_index.scss +78 -0
  333. package/pagination/styles/_index.scss +89 -34
  334. package/popconfirm/styles/_index.scss +32 -0
  335. package/popover/styles/_index.scss +83 -0
  336. package/progress/styles/_index.scss +29 -14
  337. package/qr/styles/_index.scss +6 -3
  338. package/radio/styles/_index.scss +111 -0
  339. package/rating/styles/_index.scss +63 -0
  340. package/result/styles/_index.scss +69 -0
  341. package/rotating-text/rotating-text.scss +1 -0
  342. package/rotating-text/styles/_index.scss +39 -0
  343. package/schematics/collection.json +37 -0
  344. package/schematics/component-style/index.js +49 -0
  345. package/{alert/alert-type.d.ts → schematics/component-style/schema.js} +2 -1
  346. package/schematics/component-style/schema.json +20 -0
  347. package/schematics/icon-set/index.js +96 -0
  348. package/{avatar/public-api.d.ts → schematics/icon-set/schema.js} +2 -1
  349. package/schematics/icon-set/schema.json +39 -0
  350. package/schematics/migrations/v7/index.js +187 -0
  351. package/schematics/migrations.json +10 -0
  352. package/schematics/ng-add/index.js +180 -0
  353. package/{cdk/public-api.d.ts → schematics/ng-add/schema.js} +2 -1
  354. package/schematics/ng-add/schema.json +80 -0
  355. package/schematics/page/index.js +63 -0
  356. package/{alert/public-api.d.ts → schematics/page/schema.js} +2 -2
  357. package/schematics/page/schema.json +39 -0
  358. package/schematics/page/templates.js +198 -0
  359. package/schematics/provider/index.js +126 -0
  360. package/schematics/provider/schema.js +8 -0
  361. package/schematics/provider/schema.json +52 -0
  362. package/schematics/use/index.js +143 -0
  363. package/schematics/use/schema.js +8 -0
  364. package/schematics/use/schema.json +25 -0
  365. package/schematics/use/symbol-map.json +356 -0
  366. package/scramble-text/scramble-text.scss +1 -0
  367. package/scramble-text/styles/_index.scss +8 -0
  368. package/segmented/styles/_index.scss +92 -0
  369. package/select/styles/_index.scss +245 -159
  370. package/shiny-text/shiny-text.scss +1 -0
  371. package/shiny-text/styles/_index.scss +101 -0
  372. package/sidebar/styles/_index.scss +208 -0
  373. package/skeleton/styles/_index.scss +33 -33
  374. package/slider/styles/_index.scss +77 -0
  375. package/sparkline/styles/_index.scss +9 -0
  376. package/speed-dial/styles/_index.scss +158 -0
  377. package/spinner/styles/_index.scss +38 -22
  378. package/splash-cursor/splash-cursor.scss +1 -0
  379. package/splash-cursor/styles/_index.scss +27 -0
  380. package/split-text/split-text.scss +1 -0
  381. package/split-text/styles/_index.scss +22 -0
  382. package/splitter/styles/_index.scss +85 -0
  383. package/spotlight-card/spotlight-card.scss +1 -0
  384. package/spotlight-card/styles/_index.scss +43 -0
  385. package/squircle/styles/_index.scss +34 -0
  386. package/star-border/star-border.scss +1 -0
  387. package/star-border/styles/_index.scss +118 -0
  388. package/statistic/styles/_index.scss +54 -0
  389. package/stepper/styles/_index.scss +162 -0
  390. package/styles/_animations.scss +198 -0
  391. package/styles/_breakpoints.scss +75 -0
  392. package/styles/_grid.scss +71 -0
  393. package/styles/_reset.scss +123 -0
  394. package/styles/_typography.scss +122 -0
  395. package/styles.scss +102 -13
  396. package/switch/styles/_index.scss +82 -0
  397. package/table/styles/_index.scss +255 -4
  398. package/tabs/styles/_index.scss +71 -0
  399. package/textarea/styles/_index.scss +47 -56
  400. package/theme/styles/_colors.scss +83 -0
  401. package/theme/styles/_dark.scss +85 -0
  402. package/theme/styles/_focus.scss +93 -0
  403. package/theme/styles/_index.scss +5 -0
  404. package/theme/styles/_mixins.scss +57 -0
  405. package/theme/styles/_variables.scss +118 -0
  406. package/tilt-card/styles/_index.scss +40 -0
  407. package/tilt-card/tilt-card.scss +1 -0
  408. package/timeline/styles/_index.scss +127 -0
  409. package/toast/styles/_index.scss +263 -0
  410. package/toolbar/styles/_index.scss +65 -0
  411. package/tree/styles/_index.scss +271 -0
  412. package/types/ngwr-affix.d.ts +43 -0
  413. package/types/ngwr-alert.d.ts +68 -0
  414. package/types/ngwr-anchor.d.ts +53 -0
  415. package/types/ngwr-aurora.d.ts +52 -0
  416. package/types/ngwr-avatar.d.ts +90 -0
  417. package/types/ngwr-back-top.d.ts +37 -0
  418. package/types/ngwr-badge.d.ts +158 -0
  419. package/types/ngwr-bar-chart.d.ts +47 -0
  420. package/types/ngwr-blur-text.d.ts +62 -0
  421. package/types/ngwr-border-glow.d.ts +66 -0
  422. package/types/ngwr-breadcrumbs.d.ts +61 -0
  423. package/types/ngwr-button.d.ts +176 -0
  424. package/types/ngwr-calendar-heatmap.d.ts +58 -0
  425. package/types/ngwr-calendar.d.ts +116 -0
  426. package/types/ngwr-card.d.ts +50 -0
  427. package/types/ngwr-carousel.d.ts +57 -0
  428. package/types/ngwr-cascader.d.ts +107 -0
  429. package/types/ngwr-checkbox.d.ts +139 -0
  430. package/types/ngwr-circular-text.d.ts +49 -0
  431. package/types/ngwr-click-spark.d.ts +52 -0
  432. package/types/ngwr-clipboard.d.ts +53 -0
  433. package/types/ngwr-collapse.d.ts +139 -0
  434. package/types/ngwr-color-picker.d.ts +302 -0
  435. package/types/ngwr-command-palette.d.ts +113 -0
  436. package/types/ngwr-compare.d.ts +55 -0
  437. package/types/ngwr-confetti.d.ts +70 -0
  438. package/types/ngwr-context-menu.d.ts +207 -0
  439. package/types/ngwr-cookie.d.ts +60 -0
  440. package/types/ngwr-counter.d.ts +182 -0
  441. package/types/ngwr-date-adapter-fns.d.ts +73 -0
  442. package/types/ngwr-date-adapter-luxon.d.ts +73 -0
  443. package/types/ngwr-date-adapter.d.ts +198 -0
  444. package/types/ngwr-date-picker.d.ts +117 -0
  445. package/types/ngwr-decrypt-text.d.ts +85 -0
  446. package/types/ngwr-density.d.ts +97 -0
  447. package/types/ngwr-descriptions.d.ts +41 -0
  448. package/types/ngwr-dialog.d.ts +210 -0
  449. package/types/ngwr-directives.d.ts +125 -0
  450. package/types/ngwr-divider.d.ts +73 -0
  451. package/types/ngwr-donut-chart.d.ts +53 -0
  452. package/types/ngwr-drag-drop.d.ts +83 -0
  453. package/types/ngwr-drawer.d.ts +155 -0
  454. package/types/ngwr-dropdown.d.ts +124 -0
  455. package/types/ngwr-empty.d.ts +38 -0
  456. package/types/ngwr-falling-text.d.ts +63 -0
  457. package/types/ngwr-file-upload.d.ts +94 -0
  458. package/types/ngwr-form.d.ts +95 -0
  459. package/types/ngwr-fuzzy-text.d.ts +74 -0
  460. package/types/ngwr-gauge.d.ts +39 -0
  461. package/types/ngwr-glitch-text.d.ts +31 -0
  462. package/types/ngwr-gradient-text.d.ts +46 -0
  463. package/types/ngwr-hotkey.d.ts +142 -0
  464. package/types/ngwr-i18n-en.d.ts +18 -0
  465. package/types/ngwr-i18n-ru.d.ts +6 -0
  466. package/types/ngwr-i18n.d.ts +336 -0
  467. package/types/ngwr-icon-adapters-feather.d.ts +44 -0
  468. package/types/ngwr-icon-adapters-lucide.d.ts +54 -0
  469. package/types/ngwr-icon.d.ts +180 -0
  470. package/types/ngwr-image-cropper.d.ts +110 -0
  471. package/types/ngwr-input-number.d.ts +77 -0
  472. package/types/ngwr-input-otp.d.ts +78 -0
  473. package/types/ngwr-input.d.ts +131 -0
  474. package/types/ngwr-keyboard.d.ts +34 -0
  475. package/types/ngwr-knob.d.ts +77 -0
  476. package/types/ngwr-layout.d.ts +89 -0
  477. package/types/ngwr-lightbox.d.ts +50 -0
  478. package/types/ngwr-line-chart.d.ts +90 -0
  479. package/types/ngwr-list.d.ts +71 -0
  480. package/types/ngwr-loading-bar.d.ts +79 -0
  481. package/types/ngwr-marquee.d.ts +95 -0
  482. package/types/ngwr-media.d.ts +74 -0
  483. package/types/ngwr-mention.d.ts +110 -0
  484. package/types/ngwr-meta.d.ts +164 -0
  485. package/types/ngwr-meter-group.d.ts +57 -0
  486. package/types/ngwr-overlay.d.ts +110 -0
  487. package/types/ngwr-page-header.d.ts +35 -0
  488. package/types/ngwr-pagination.d.ts +119 -0
  489. package/types/ngwr-pipes.d.ts +177 -0
  490. package/types/ngwr-platform.d.ts +38 -0
  491. package/types/ngwr-popconfirm.d.ts +79 -0
  492. package/types/ngwr-popover.d.ts +90 -0
  493. package/types/ngwr-progress.d.ts +33 -0
  494. package/types/ngwr-qr.d.ts +56 -0
  495. package/types/ngwr-radio.d.ts +120 -0
  496. package/types/ngwr-rating.d.ts +62 -0
  497. package/types/ngwr-result.d.ts +64 -0
  498. package/types/ngwr-rotating-text.d.ts +72 -0
  499. package/types/ngwr-scramble-text.d.ts +49 -0
  500. package/types/ngwr-scroll.d.ts +65 -0
  501. package/types/ngwr-segmented.d.ts +65 -0
  502. package/types/ngwr-select.d.ts +413 -0
  503. package/types/ngwr-shiny-text.d.ts +70 -0
  504. package/types/ngwr-sidebar.d.ts +83 -0
  505. package/types/ngwr-skeleton.d.ts +41 -0
  506. package/types/ngwr-slider.d.ts +86 -0
  507. package/types/ngwr-sparkline.d.ts +48 -0
  508. package/types/ngwr-speed-dial.d.ts +51 -0
  509. package/types/ngwr-spinner.d.ts +41 -0
  510. package/types/ngwr-splash-cursor.d.ts +94 -0
  511. package/types/ngwr-split-text.d.ts +83 -0
  512. package/types/ngwr-splitter.d.ts +52 -0
  513. package/types/ngwr-spotlight-card.d.ts +71 -0
  514. package/types/ngwr-squircle.d.ts +132 -0
  515. package/types/ngwr-star-border.d.ts +40 -0
  516. package/types/ngwr-statistic.d.ts +88 -0
  517. package/types/ngwr-stepper.d.ts +99 -0
  518. package/types/ngwr-storage.d.ts +178 -0
  519. package/types/ngwr-switch.d.ts +39 -0
  520. package/types/ngwr-table.d.ts +237 -0
  521. package/types/ngwr-tabs.d.ts +125 -0
  522. package/types/ngwr-textarea.d.ts +60 -0
  523. package/types/ngwr-theme.d.ts +124 -0
  524. package/types/ngwr-tilt-card.d.ts +63 -0
  525. package/types/ngwr-timeline.d.ts +40 -0
  526. package/types/ngwr-toast.d.ts +230 -0
  527. package/types/ngwr-toolbar.d.ts +30 -0
  528. package/types/ngwr-tree.d.ts +150 -0
  529. package/types/ngwr-typewriter.d.ts +84 -0
  530. package/types/ngwr-typography.d.ts +56 -0
  531. package/types/ngwr-utils.d.ts +447 -0
  532. package/types/ngwr-validators.d.ts +70 -0
  533. package/types/ngwr-version.d.ts +44 -0
  534. package/types/ngwr-virtual-scroll.d.ts +64 -0
  535. package/types/ngwr-waves.d.ts +71 -0
  536. package/types/ngwr-window.d.ts +437 -0
  537. package/types/ngwr.d.ts +2 -0
  538. package/typewriter/styles/_index.scss +33 -0
  539. package/typewriter/typewriter.scss +1 -0
  540. package/typography/styles/_index.scss +211 -0
  541. package/virtual-scroll/styles/_index.scss +27 -0
  542. package/virtual-scroll/virtual-scroll.scss +1 -0
  543. package/waves/styles/_index.scss +24 -0
  544. package/waves/waves.scss +1 -0
  545. package/window/styles/_index.scss +430 -0
  546. package/alert/alert.component.d.ts +0 -21
  547. package/alert/index.d.ts +0 -5
  548. package/alert/styles/theming.scss +0 -26
  549. package/alert/styles/vars.scss +0 -11
  550. package/avatar/avatar.component.d.ts +0 -27
  551. package/avatar/index.d.ts +0 -5
  552. package/button/button-group.component.d.ts +0 -12
  553. package/button/button.component.d.ts +0 -31
  554. package/button/index.d.ts +0 -5
  555. package/button/public-api.d.ts +0 -8
  556. package/button/styles/vars.scss +0 -13
  557. package/cdk/base.directive.d.ts +0 -20
  558. package/cdk/index.d.ts +0 -5
  559. package/cdk/rxjs/index.d.ts +0 -5
  560. package/cdk/rxjs/is-array.d.ts +0 -8
  561. package/cdk/rxjs/is-defined.d.ts +0 -8
  562. package/cdk/rxjs/is-not-empty-array.d.ts +0 -8
  563. package/cdk/rxjs/is-observable.d.ts +0 -9
  564. package/cdk/rxjs/public-api.d.ts +0 -10
  565. package/cdk/types/index.d.ts +0 -5
  566. package/cdk/types/maybe.d.ts +0 -7
  567. package/cdk/types/public-api.d.ts +0 -9
  568. package/cdk/types/safe-any.d.ts +0 -7
  569. package/cdk/types/theme-color.d.ts +0 -8
  570. package/cdk/utils/generate-random-id.d.ts +0 -12
  571. package/cdk/utils/index.d.ts +0 -5
  572. package/cdk/utils/public-api.d.ts +0 -7
  573. package/checkbox/checkbox.component.d.ts +0 -28
  574. package/checkbox/index.d.ts +0 -5
  575. package/checkbox/public-api.d.ts +0 -7
  576. package/checkbox/styles/vars.scss +0 -16
  577. package/dialog/dialog-animations.d.ts +0 -22
  578. package/dialog/dialog-base.directive.d.ts +0 -40
  579. package/dialog/dialog-close.directive.d.ts +0 -9
  580. package/dialog/dialog-content.directive.d.ts +0 -6
  581. package/dialog/dialog-data.token.d.ts +0 -8
  582. package/dialog/dialog-footer.directive.d.ts +0 -8
  583. package/dialog/dialog-options.d.ts +0 -19
  584. package/dialog/dialog-ref.d.ts +0 -26
  585. package/dialog/dialog-title.directive.d.ts +0 -6
  586. package/dialog/dialog.component.d.ts +0 -28
  587. package/dialog/dialog.module.d.ts +0 -6
  588. package/dialog/dialog.service.d.ts +0 -28
  589. package/dialog/index.d.ts +0 -5
  590. package/dialog/public-api.d.ts +0 -18
  591. package/dialog/styles/vars.scss +0 -7
  592. package/divider/divider.component.d.ts +0 -13
  593. package/divider/index.d.ts +0 -5
  594. package/divider/public-api.d.ts +0 -7
  595. package/dropdown/dropdown-menu-item.component.d.ts +0 -12
  596. package/dropdown/dropdown-menu.component.d.ts +0 -14
  597. package/dropdown/dropdown.directive.d.ts +0 -29
  598. package/dropdown/dropdown.types.d.ts +0 -9
  599. package/dropdown/index.d.ts +0 -5
  600. package/dropdown/public-api.d.ts +0 -10
  601. package/dropdown/styles/vars.scss +0 -18
  602. package/fesm2022/ngwr-cdk-rxjs.mjs +0 -53
  603. package/fesm2022/ngwr-cdk-rxjs.mjs.map +0 -1
  604. package/fesm2022/ngwr-cdk-types.mjs +0 -44
  605. package/fesm2022/ngwr-cdk-types.mjs.map +0 -1
  606. package/fesm2022/ngwr-cdk-utils.mjs +0 -30
  607. package/fesm2022/ngwr-cdk-utils.mjs.map +0 -1
  608. package/fesm2022/ngwr-cdk.mjs +0 -46
  609. package/fesm2022/ngwr-cdk.mjs.map +0 -1
  610. package/fesm2022/ngwr-tag.mjs +0 -87
  611. package/fesm2022/ngwr-tag.mjs.map +0 -1
  612. package/form/form-error.component.d.ts +0 -11
  613. package/form/form-item.component.d.ts +0 -14
  614. package/form/index.d.ts +0 -5
  615. package/form/public-api.d.ts +0 -8
  616. package/icon/icon.component.d.ts +0 -24
  617. package/icon/icon.service.d.ts +0 -23
  618. package/icon/icons.d.ts +0 -770
  619. package/icon/index.d.ts +0 -5
  620. package/icon/provide-wr-icons.d.ts +0 -9
  621. package/icon/public-api.d.ts +0 -10
  622. package/icon/styles/vars.scss +0 -3
  623. package/index.d.ts +0 -5
  624. package/input/index.d.ts +0 -5
  625. package/input/input-types.d.ts +0 -1
  626. package/input/input.component.d.ts +0 -38
  627. package/input/public-api.d.ts +0 -8
  628. package/input/styles/vars.scss +0 -17
  629. package/pagination/index.d.ts +0 -5
  630. package/pagination/pagination.component.d.ts +0 -23
  631. package/pagination/pagination.types.d.ts +0 -7
  632. package/pagination/public-api.d.ts +0 -8
  633. package/pagination/styles/vars.scss +0 -14
  634. package/pipes/index.d.ts +0 -5
  635. package/pipes/new-array.pipe.d.ts +0 -13
  636. package/pipes/public-api.d.ts +0 -7
  637. package/progress/index.d.ts +0 -5
  638. package/progress/progress.component.d.ts +0 -10
  639. package/progress/public-api.d.ts +0 -7
  640. package/progress/styles/theming.scss +0 -8
  641. package/progress/styles/vars.scss +0 -6
  642. package/public-api.d.ts +0 -2
  643. package/qr/generator.d.ts +0 -7
  644. package/qr/index.d.ts +0 -5
  645. package/qr/public-api.d.ts +0 -7
  646. package/qr/qr.component.d.ts +0 -31
  647. package/qr/qrcodegen.d.ts +0 -94
  648. package/select/index.d.ts +0 -5
  649. package/select/public-api.d.ts +0 -10
  650. package/select/select-option-group.component.d.ts +0 -19
  651. package/select/select-option.component.d.ts +0 -22
  652. package/select/select.component.d.ts +0 -63
  653. package/select/select.types.d.ts +0 -17
  654. package/select/styles/vars.scss +0 -32
  655. package/skeleton/index.d.ts +0 -1
  656. package/skeleton/skeleton.component.d.ts +0 -10
  657. package/spinner/index.d.ts +0 -1
  658. package/spinner/spinner.component.d.ts +0 -13
  659. package/spinner/spinner.types.d.ts +0 -7
  660. package/styles/animations.scss +0 -92
  661. package/styles/cdk.scss +0 -5
  662. package/styles/colors.scss +0 -72
  663. package/styles/grid.scss +0 -99
  664. package/styles/maps.scss +0 -31
  665. package/styles/reset.scss +0 -112
  666. package/styles/variables.scss +0 -72
  667. package/table/index.d.ts +0 -5
  668. package/table/public-api.d.ts +0 -11
  669. package/table/styles/table-filter.scss +0 -202
  670. package/table/styles/table-sort.scss +0 -47
  671. package/table/styles/table.scss +0 -232
  672. package/table/styles/vars.scss +0 -21
  673. package/table/table-cell/index.d.ts +0 -7
  674. package/table/table-cell/table-cell.directive.d.ts +0 -8
  675. package/table/table-filter/index.d.ts +0 -7
  676. package/table/table-filter/table-filter.component.d.ts +0 -18
  677. package/table/table-sort/index.d.ts +0 -7
  678. package/table/table-sort/table-sort.component.d.ts +0 -8
  679. package/table/table.component.d.ts +0 -33
  680. package/table/types/index.d.ts +0 -6
  681. package/table/types/table-cell-context.d.ts +0 -6
  682. package/table/types/table-columns.d.ts +0 -7
  683. package/table/types/table-filter-emit.d.ts +0 -5
  684. package/table/types/table-filter-item.d.ts +0 -6
  685. package/table/types/table-order-item.d.ts +0 -5
  686. package/table/types/table-order.enum.d.ts +0 -5
  687. package/tag/index.d.ts +0 -5
  688. package/tag/public-api.d.ts +0 -7
  689. package/tag/styles/_index.scss +0 -32
  690. package/tag/styles/theming.scss +0 -21
  691. package/tag/styles/vars.scss +0 -12
  692. package/tag/tag.component.d.ts +0 -21
  693. package/textarea/index.d.ts +0 -7
  694. package/textarea/public-api.d.ts +0 -7
  695. package/textarea/styles/vars.scss +0 -17
  696. package/textarea/textarea.component.d.ts +0 -44
@@ -0,0 +1,156 @@
1
+ /** Base Russian catalog for ngwr built-in component strings. */
2
+ const wrRu = {
3
+ common: {
4
+ ok: 'OK',
5
+ cancel: 'Отмена',
6
+ close: 'Закрыть',
7
+ confirm: 'Подтвердить',
8
+ delete: 'Удалить',
9
+ save: 'Сохранить',
10
+ edit: 'Изменить',
11
+ add: 'Добавить',
12
+ remove: 'Удалить',
13
+ clear: 'Очистить',
14
+ search: 'Поиск',
15
+ loading: 'Загрузка…',
16
+ select: 'Выбрать',
17
+ next: 'Далее',
18
+ previous: 'Назад',
19
+ back: 'Назад',
20
+ today: 'Сегодня',
21
+ yesterday: 'Вчера',
22
+ tomorrow: 'Завтра',
23
+ of: 'из',
24
+ },
25
+ pagination: {
26
+ prev: 'Предыдущая страница',
27
+ next: 'Следующая страница',
28
+ itemsPerPage: 'Записей на страницу',
29
+ pageOf: 'Страница {{current}} из {{total}}',
30
+ of: 'из',
31
+ },
32
+ table: {
33
+ empty: 'Нет данных',
34
+ loading: 'Загрузка…',
35
+ sort: 'Сортировать столбец',
36
+ filter: 'Фильтр столбца',
37
+ },
38
+ select: {
39
+ placeholder: 'Выберите…',
40
+ empty: 'Нет вариантов',
41
+ clearSelection: 'Очистить выбор',
42
+ removeItem: 'Удалить {{label}}',
43
+ noResults: 'Ничего не найдено',
44
+ loading: 'Загрузка…',
45
+ },
46
+ // `tree` covers both inline display and combobox-mode pickers
47
+ // (replaces the dropped `treeSelect` namespace).
48
+ tree: {
49
+ expand: 'Развернуть',
50
+ collapse: 'Свернуть',
51
+ placeholder: 'Выберите…',
52
+ clearSelection: 'Очистить выбор',
53
+ removeItem: 'Удалить {{label}}',
54
+ },
55
+ commandPalette: {
56
+ placeholder: 'Введите команду или поиск…',
57
+ noResults: 'Ничего не найдено',
58
+ },
59
+ empty: {
60
+ noData: 'Нет данных',
61
+ },
62
+ fileUpload: {
63
+ browse: 'Нажмите, чтобы выбрать',
64
+ dropZone: 'или перетащите файлы сюда',
65
+ dropZoneLabel: 'Зона загрузки файлов — нажмите или перетащите',
66
+ removeFile: 'Удалить файл',
67
+ invalid: 'Неподдерживаемый тип файла',
68
+ tooBig: 'Файл слишком большой',
69
+ },
70
+ upload: {
71
+ drop: 'Перетащите файлы или нажмите для выбора',
72
+ invalid: 'Неподдерживаемый тип файла',
73
+ tooBig: 'Файл слишком большой',
74
+ },
75
+ popconfirm: {
76
+ confirm: 'Подтвердить',
77
+ cancel: 'Отмена',
78
+ },
79
+ toast: {
80
+ close: 'Закрыть',
81
+ copy: 'Копировать',
82
+ copied: 'Скопировано',
83
+ closeAll: 'Закрыть все',
84
+ },
85
+ input: {
86
+ showPassword: 'Показать пароль',
87
+ hidePassword: 'Скрыть пароль',
88
+ },
89
+ inputNumber: {
90
+ increment: 'Увеличить',
91
+ decrement: 'Уменьшить',
92
+ },
93
+ backTop: {
94
+ label: 'Наверх',
95
+ },
96
+ calendar: {
97
+ prevMonth: 'Предыдущий месяц',
98
+ nextMonth: 'Следующий месяц',
99
+ prevYear: 'Предыдущий год',
100
+ nextYear: 'Следующий год',
101
+ },
102
+ carousel: {
103
+ prev: 'Предыдущий слайд',
104
+ next: 'Следующий слайд',
105
+ pagination: 'Пагинация карусели',
106
+ },
107
+ alert: {
108
+ close: 'Закрыть оповещение',
109
+ },
110
+ image: {
111
+ open: 'Открыть превью',
112
+ close: 'Закрыть превью',
113
+ },
114
+ window: {
115
+ close: 'Закрыть',
116
+ },
117
+ datePicker: {
118
+ open: 'Открыть календарь',
119
+ openTime: 'Открыть выбор времени',
120
+ openDateTime: 'Открыть выбор даты и времени',
121
+ },
122
+ spinner: {
123
+ label: 'Загрузка',
124
+ },
125
+ rating: {
126
+ label: 'Рейтинг',
127
+ },
128
+ result: {
129
+ notFound: 'Извините, страница не найдена.',
130
+ forbidden: 'Извините, доступ к этой странице ограничен.',
131
+ serverError: 'Извините, что-то пошло не так.',
132
+ },
133
+ date: {
134
+ months: {
135
+ jan: 'Январь',
136
+ feb: 'Февраль',
137
+ mar: 'Март',
138
+ apr: 'Апрель',
139
+ may: 'Май',
140
+ jun: 'Июнь',
141
+ jul: 'Июль',
142
+ aug: 'Август',
143
+ sep: 'Сентябрь',
144
+ oct: 'Октябрь',
145
+ nov: 'Ноябрь',
146
+ dec: 'Декабрь',
147
+ },
148
+ },
149
+ };
150
+
151
+ /**
152
+ * Generated bundle index. Do not edit.
153
+ */
154
+
155
+ export { wrRu };
156
+ //# sourceMappingURL=ngwr-i18n-ru.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngwr-i18n-ru.mjs","sources":["../../../projects/lib/i18n/ru/public-api.ts","../../../projects/lib/i18n/ru/ngwr-i18n-ru.ts"],"sourcesContent":["import { type WrI18nCatalog } from 'ngwr/i18n';\n\n/** Base Russian catalog for ngwr built-in component strings. */\nexport const wrRu: WrI18nCatalog = {\n common: {\n ok: 'OK',\n cancel: 'Отмена',\n close: 'Закрыть',\n confirm: 'Подтвердить',\n delete: 'Удалить',\n save: 'Сохранить',\n edit: 'Изменить',\n add: 'Добавить',\n remove: 'Удалить',\n clear: 'Очистить',\n search: 'Поиск',\n loading: 'Загрузка…',\n select: 'Выбрать',\n next: 'Далее',\n previous: 'Назад',\n back: 'Назад',\n today: 'Сегодня',\n yesterday: 'Вчера',\n tomorrow: 'Завтра',\n of: 'из',\n },\n pagination: {\n prev: 'Предыдущая страница',\n next: 'Следующая страница',\n itemsPerPage: 'Записей на страницу',\n pageOf: 'Страница {{current}} из {{total}}',\n of: 'из',\n },\n table: {\n empty: 'Нет данных',\n loading: 'Загрузка…',\n sort: 'Сортировать столбец',\n filter: 'Фильтр столбца',\n },\n select: {\n placeholder: 'Выберите…',\n empty: 'Нет вариантов',\n clearSelection: 'Очистить выбор',\n removeItem: 'Удалить {{label}}',\n noResults: 'Ничего не найдено',\n loading: 'Загрузка…',\n },\n // `tree` covers both inline display and combobox-mode pickers\n // (replaces the dropped `treeSelect` namespace).\n tree: {\n expand: 'Развернуть',\n collapse: 'Свернуть',\n placeholder: 'Выберите…',\n clearSelection: 'Очистить выбор',\n removeItem: 'Удалить {{label}}',\n },\n commandPalette: {\n placeholder: 'Введите команду или поиск…',\n noResults: 'Ничего не найдено',\n },\n empty: {\n noData: 'Нет данных',\n },\n fileUpload: {\n browse: 'Нажмите, чтобы выбрать',\n dropZone: 'или перетащите файлы сюда',\n dropZoneLabel: 'Зона загрузки файлов — нажмите или перетащите',\n removeFile: 'Удалить файл',\n invalid: 'Неподдерживаемый тип файла',\n tooBig: 'Файл слишком большой',\n },\n upload: {\n drop: 'Перетащите файлы или нажмите для выбора',\n invalid: 'Неподдерживаемый тип файла',\n tooBig: 'Файл слишком большой',\n },\n popconfirm: {\n confirm: 'Подтвердить',\n cancel: 'Отмена',\n },\n toast: {\n close: 'Закрыть',\n copy: 'Копировать',\n copied: 'Скопировано',\n closeAll: 'Закрыть все',\n },\n input: {\n showPassword: 'Показать пароль',\n hidePassword: 'Скрыть пароль',\n },\n inputNumber: {\n increment: 'Увеличить',\n decrement: 'Уменьшить',\n },\n backTop: {\n label: 'Наверх',\n },\n calendar: {\n prevMonth: 'Предыдущий месяц',\n nextMonth: 'Следующий месяц',\n prevYear: 'Предыдущий год',\n nextYear: 'Следующий год',\n },\n carousel: {\n prev: 'Предыдущий слайд',\n next: 'Следующий слайд',\n pagination: 'Пагинация карусели',\n },\n alert: {\n close: 'Закрыть оповещение',\n },\n image: {\n open: 'Открыть превью',\n close: 'Закрыть превью',\n },\n window: {\n close: 'Закрыть',\n },\n datePicker: {\n open: 'Открыть календарь',\n openTime: 'Открыть выбор времени',\n openDateTime: 'Открыть выбор даты и времени',\n },\n spinner: {\n label: 'Загрузка',\n },\n rating: {\n label: 'Рейтинг',\n },\n result: {\n notFound: 'Извините, страница не найдена.',\n forbidden: 'Извините, доступ к этой странице ограничен.',\n serverError: 'Извините, что-то пошло не так.',\n },\n date: {\n months: {\n jan: 'Январь',\n feb: 'Февраль',\n mar: 'Март',\n apr: 'Апрель',\n may: 'Май',\n jun: 'Июнь',\n jul: 'Июль',\n aug: 'Август',\n sep: 'Сентябрь',\n oct: 'Октябрь',\n nov: 'Ноябрь',\n dec: 'Декабрь',\n },\n },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,478 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, signal, effect, computed, Service, Pipe, input, ElementRef, Directive, makeEnvironmentProviders } from '@angular/core';
3
+ import { firstValueFrom, of, catchError } from 'rxjs';
4
+ import { WrStorage } from 'ngwr/storage';
5
+ import { HttpClient } from '@angular/common/http';
6
+
7
+ /**
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
+ const DEFAULT_WR_I18N_CONFIG = {
14
+ defaultLocale: 'en',
15
+ availableLocales: ['en'],
16
+ storageKey: 'wr:i18n:locale',
17
+ missingHandler: key => key,
18
+ };
19
+ const WR_I18N_CONFIG = new InjectionToken('WR_I18N_CONFIG', {
20
+ factory: () => DEFAULT_WR_I18N_CONFIG,
21
+ });
22
+
23
+ /**
24
+ * @license
25
+ *
26
+ * Use of this source code is governed by an MIT-style license that can be
27
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
28
+ */
29
+ const WR_I18N_LOADER = new InjectionToken('WR_I18N_LOADER');
30
+
31
+ /**
32
+ * @license
33
+ *
34
+ * Use of this source code is governed by an MIT-style license that can be
35
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
36
+ */
37
+ /** Cache key shape: `<locale>::<scope|''>`. @internal */
38
+ function cacheKey(locale, scope) {
39
+ return `${locale}::${scope ?? ''}`;
40
+ }
41
+ /** Walk a dotted path through a catalog tree. Returns string | null. @internal */
42
+ function walk(cat, key) {
43
+ if (!cat)
44
+ return null;
45
+ let node = cat;
46
+ for (const part of key.split('.')) {
47
+ if (node === undefined || typeof node === 'string')
48
+ return null;
49
+ node = node[part];
50
+ }
51
+ return typeof node === 'string' ? node : null;
52
+ }
53
+ /**
54
+ * `{{name}}` interpolation. Missing params resolve to `''`. Exported so
55
+ * helpers in `util.ts` can interpolate the fallback template when no
56
+ * `WrI18n` provider is wired up.
57
+ *
58
+ * @internal
59
+ */
60
+ function wrInterpolate(template, params) {
61
+ if (!params)
62
+ return template;
63
+ return template.replace(/\{\{\s*([\w.-]+)\s*\}\}/g, (_match, name) => {
64
+ const v = params[name];
65
+ if (v === undefined || v === null)
66
+ return '';
67
+ if (typeof v === 'string')
68
+ return v;
69
+ if (typeof v === 'number' || typeof v === 'boolean')
70
+ return String(v);
71
+ try {
72
+ return JSON.stringify(v);
73
+ }
74
+ catch {
75
+ return '';
76
+ }
77
+ });
78
+ }
79
+ /**
80
+ * Reactive i18n service. Holds:
81
+ *
82
+ * - the active locale as a `Signal<string>`
83
+ * - per-`(locale, scope)` catalogs in a `Map` (loaded once, then cached)
84
+ * - a per-locale signal counter so every `translate()` reading the signal
85
+ * re-evaluates the moment a new catalog finishes loading
86
+ *
87
+ * Translations are looked up scope-first, then root. `t('forms.save', { ... })`
88
+ * with `scope: 'forms'` will try the scoped catalog before falling back to
89
+ * `forms.save` in the root catalog — useful for per-feature overrides.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * const i18n = inject(WrI18n);
94
+ * i18n.use('ru'); // switch locale
95
+ * i18n.t('cart.checkout'); // → 'Оформить заказ'
96
+ * i18n.t('greeting', { name: 'Ada' }); // → 'Hello, Ada!'
97
+ *
98
+ * effect(() => console.log(i18n.translate('hi')())); // re-runs on locale change
99
+ * ```
100
+ *
101
+ * @see https://ngwr.dev/services/i18n
102
+ */
103
+ class WrI18n {
104
+ config = inject(WR_I18N_CONFIG);
105
+ loader = inject(WR_I18N_LOADER);
106
+ storage = inject(WrStorage);
107
+ /** Per-(locale,scope) catalogs, populated by `loadCatalog`. @internal */
108
+ catalogs = new Map();
109
+ /** Bumped after each catalog write so reactive translates recompute. @internal */
110
+ revision = signal(0, /* @ts-ignore */
111
+ ...(ngDevMode ? [{ debugName: "revision" }] : /* istanbul ignore next */ []));
112
+ /** In-flight load promises — dedupes parallel `t()` callers. @internal */
113
+ inflight = new Map();
114
+ /** Registered scopes — auto-loaded whenever the locale changes. @internal */
115
+ scopes = new Set();
116
+ /** Active locale. Writes go through `use()` so storage stays in sync. */
117
+ _locale = signal(this.initialLocale(), /* @ts-ignore */
118
+ ...(ngDevMode ? [{ debugName: "_locale" }] : /* istanbul ignore next */ []));
119
+ locale = this._locale.asReadonly();
120
+ constructor() {
121
+ // Eagerly load the root catalog + every registered scope for the
122
+ // current locale. Subsequent locale changes refire the same effect.
123
+ effect(() => {
124
+ const lc = this._locale();
125
+ void this.loadCatalog(lc, null);
126
+ for (const sc of this.scopes)
127
+ void this.loadCatalog(lc, sc);
128
+ });
129
+ }
130
+ // Locale
131
+ /** Switch active locale. Ignored when not whitelisted. */
132
+ use(locale) {
133
+ if (!this.config.availableLocales.includes(locale))
134
+ return;
135
+ this._locale.set(locale);
136
+ if (this.config.storageKey)
137
+ this.storage.set(this.config.storageKey, locale);
138
+ }
139
+ /** Available locales — pass-through from config. */
140
+ available() {
141
+ return this.config.availableLocales;
142
+ }
143
+ // Scopes
144
+ /**
145
+ * Register a scope so its catalog loads alongside the root one. Idempotent.
146
+ * Returns a promise resolving once the current locale's scope catalog is in
147
+ * the cache — handy for feature `canActivate` guards.
148
+ */
149
+ registerScope(scope) {
150
+ this.scopes.add(scope);
151
+ return this.loadCatalog(this._locale(), scope);
152
+ }
153
+ // Translate
154
+ /**
155
+ * Eager translate — returns the current value or the missing-handler
156
+ * fallback. Does NOT auto-load missing catalogs; combine with the
157
+ * reactive `translate(...)` if you want load-on-demand.
158
+ */
159
+ t(key, params, scope) {
160
+ // Read revision so callers inside computed/effect re-run on updates.
161
+ this.revision();
162
+ const lc = this._locale();
163
+ let hit = scope ? walk(this.catalogs.get(cacheKey(lc, scope)) ?? null, key) : null;
164
+ hit ??= walk(this.catalogs.get(cacheKey(lc, null)) ?? null, key);
165
+ if (hit === null) {
166
+ // Fire a background load so a future read can resolve it.
167
+ void this.loadCatalog(lc, scope ?? null);
168
+ return this.config.missingHandler(key, lc);
169
+ }
170
+ return wrInterpolate(hit, params);
171
+ }
172
+ /** Reactive translate — re-evaluates on locale or catalog updates. */
173
+ translate(key, params, scope) {
174
+ return computed(() => this.t(key, params, scope));
175
+ }
176
+ // Internals
177
+ initialLocale() {
178
+ if (this.config.storageKey) {
179
+ const saved = this.storage.get(this.config.storageKey);
180
+ if (saved && this.config.availableLocales.includes(saved))
181
+ return saved;
182
+ }
183
+ return this.config.defaultLocale;
184
+ }
185
+ loadCatalog(locale, scope) {
186
+ const ck = cacheKey(locale, scope);
187
+ const cached = this.catalogs.get(ck);
188
+ if (cached)
189
+ return Promise.resolve(cached);
190
+ const pending = this.inflight.get(ck);
191
+ if (pending)
192
+ return pending;
193
+ const stream = this.loader.load(locale, scope);
194
+ const promise = firstValueFrom(stream)
195
+ .then(catalog => {
196
+ this.catalogs.set(ck, catalog);
197
+ this.revision.update(v => v + 1);
198
+ return catalog;
199
+ })
200
+ .catch((err) => {
201
+ // eslint-disable-next-line no-console -- intentional diagnostic for missing catalog
202
+ console.warn(`[ngwr/i18n] failed to load (${locale}, ${scope ?? 'root'})`, err);
203
+ const empty = {};
204
+ this.catalogs.set(ck, empty);
205
+ return empty;
206
+ })
207
+ .finally(() => {
208
+ this.inflight.delete(ck);
209
+ });
210
+ this.inflight.set(ck, promise);
211
+ return promise;
212
+ }
213
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrI18n, deps: [], target: i0.ɵɵFactoryTarget.Service });
214
+ static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.0.1", ngImport: i0, type: WrI18n });
215
+ }
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrI18n, decorators: [{
217
+ type: Service
218
+ }], ctorParameters: () => [] });
219
+
220
+ /**
221
+ * @license
222
+ *
223
+ * Use of this source code is governed by an MIT-style license that can be
224
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
225
+ */
226
+ /**
227
+ * Translate a key. Impure — re-evaluates on every CD so locale switches
228
+ * and catalog loads propagate without a manual refresh.
229
+ *
230
+ * @example
231
+ * ```html
232
+ * <h1>{{ 'home.title' | wrT }}</h1>
233
+ * <p>{{ 'greeting' | wrT: { name: user().name } }}</p>
234
+ * <button>{{ 'forms.save' | wrT: null : 'checkout' }}</button>
235
+ * ```
236
+ */
237
+ // eslint-disable-next-line @angular-eslint/no-pipe-impure -- intentional: locale + catalog updates must propagate even when args are stable
238
+ class WrTPipe {
239
+ i18n = inject(WrI18n);
240
+ transform(key, params, scope) {
241
+ return this.i18n.t(key, params ?? undefined, scope);
242
+ }
243
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrTPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
244
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: WrTPipe, isStandalone: true, name: "wrT", pure: false });
245
+ }
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrTPipe, decorators: [{
247
+ type: Pipe,
248
+ args: [{ name: 'wrT', pure: false }]
249
+ }] });
250
+
251
+ /**
252
+ * @license
253
+ *
254
+ * Use of this source code is governed by an MIT-style license that can be
255
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
256
+ */
257
+ /**
258
+ * Attribute directive that sets `textContent` of its host to the translation
259
+ * of the bound key. Reactive — re-renders on locale + catalog changes.
260
+ *
261
+ * @example
262
+ * ```html
263
+ * <span [wrT]="'home.title'"></span>
264
+ * <span [wrT]="'greeting'" [wrTParams]="{ name: user().name }"></span>
265
+ * <span [wrT]="'forms.save'" wrTScope="checkout"></span>
266
+ * ```
267
+ */
268
+ class WrTDirective {
269
+ /** Translation key. Required. */
270
+ wrT = input.required(/* @ts-ignore */
271
+ ...(ngDevMode ? [{ debugName: "wrT" }] : /* istanbul ignore next */ []));
272
+ /** Interpolation params for `{{name}}` tokens. */
273
+ wrTParams = input(null, /* @ts-ignore */
274
+ ...(ngDevMode ? [{ debugName: "wrTParams" }] : /* istanbul ignore next */ []));
275
+ /** Optional scope — scoped lookup first, then root fallback. */
276
+ wrTScope = input(null, /* @ts-ignore */
277
+ ...(ngDevMode ? [{ debugName: "wrTScope" }] : /* istanbul ignore next */ []));
278
+ host = inject(ElementRef);
279
+ i18n = inject(WrI18n);
280
+ text = computed(() => this.i18n.t(this.wrT(), this.wrTParams() ?? undefined, this.wrTScope() ?? undefined), /* @ts-ignore */
281
+ ...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
282
+ constructor() {
283
+ effect(() => {
284
+ this.host.nativeElement.textContent = this.text();
285
+ });
286
+ }
287
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrTDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
288
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.1", type: WrTDirective, isStandalone: true, selector: "[wrT]", inputs: { wrT: { classPropertyName: "wrT", publicName: "wrT", isSignal: true, isRequired: true, transformFunction: null }, wrTParams: { classPropertyName: "wrTParams", publicName: "wrTParams", isSignal: true, isRequired: false, transformFunction: null }, wrTScope: { classPropertyName: "wrTScope", publicName: "wrTScope", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
289
+ }
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: WrTDirective, decorators: [{
291
+ type: Directive,
292
+ args: [{
293
+ selector: '[wrT]',
294
+ }]
295
+ }], ctorParameters: () => [], propDecorators: { wrT: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrT", required: true }] }], wrTParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrTParams", required: false }] }], wrTScope: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrTScope", required: false }] }] } });
296
+
297
+ /**
298
+ * @license
299
+ *
300
+ * Use of this source code is governed by an MIT-style license that can be
301
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
302
+ */
303
+ /**
304
+ * Loader for catalogs already in memory (imported from JSON or generated).
305
+ *
306
+ * - Pass `catalogs` for the root catalog of every locale.
307
+ * - Pass `scopes` if you ship per-feature catalogs the loader should serve
308
+ * to `WrI18n.registerScope(name)` calls.
309
+ *
310
+ * Missing locale or scope resolves to `{}` — the missing-key handler then
311
+ * decides what to render.
312
+ */
313
+ class WrI18nStaticLoader {
314
+ catalogs;
315
+ scopes;
316
+ constructor(catalogs, scopes = {}) {
317
+ this.catalogs = catalogs;
318
+ this.scopes = scopes;
319
+ }
320
+ load(locale, scope) {
321
+ if (scope === null)
322
+ return of(this.catalogs[locale] ?? {});
323
+ return of(this.scopes[scope]?.[locale] ?? {});
324
+ }
325
+ }
326
+
327
+ /**
328
+ * @license
329
+ *
330
+ * Use of this source code is governed by an MIT-style license that can be
331
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
332
+ */
333
+ /**
334
+ * Loader that fetches catalogs via `HttpClient`. Failures resolve to `{}`
335
+ * (logged once at the service layer) so a missing file never throws into
336
+ * user code.
337
+ */
338
+ class WrI18nHttpLoader {
339
+ config;
340
+ http = inject(HttpClient);
341
+ constructor(config) {
342
+ this.config = config;
343
+ }
344
+ load(locale, scope) {
345
+ const template = scope === null ? (this.config.rootPath ?? this.config.path) : this.config.path;
346
+ const url = template.replace('{locale}', locale).replace('{scope}', scope ?? '');
347
+ return this.http.get(url).pipe(catchError(() => of({})));
348
+ }
349
+ }
350
+
351
+ /**
352
+ * @license
353
+ *
354
+ * Use of this source code is governed by an MIT-style license that can be
355
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
356
+ */
357
+ function provideWrI18n(options = {}) {
358
+ const { loader, ...config } = options;
359
+ const merged = { ...DEFAULT_WR_I18N_CONFIG, ...config };
360
+ const providers = [{ provide: WR_I18N_CONFIG, useValue: merged }];
361
+ if (loader)
362
+ providers.push({ provide: WR_I18N_LOADER, useValue: loader });
363
+ return makeEnvironmentProviders(providers);
364
+ }
365
+ /**
366
+ * Provide a static loader — catalogs already in memory.
367
+ *
368
+ * @param catalogs Root catalogs keyed by locale.
369
+ * @param scopes Optional per-scope catalogs served to `registerScope(name)`.
370
+ */
371
+ function provideWrI18nStaticLoader(catalogs, scopes) {
372
+ return { provide: WR_I18N_LOADER, useValue: new WrI18nStaticLoader(catalogs, scopes) };
373
+ }
374
+ /** Provide an HTTP loader — catalogs fetched from URLs. Requires `provideHttpClient`. */
375
+ function provideWrI18nHttpLoader(config) {
376
+ return { provide: WR_I18N_LOADER, useFactory: () => new WrI18nHttpLoader(config) };
377
+ }
378
+
379
+ /**
380
+ * @license
381
+ *
382
+ * Use of this source code is governed by an MIT-style license that can be
383
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
384
+ */
385
+ /**
386
+ * Helper for component default text. Returns a reactive string that:
387
+ *
388
+ * 1. Prefers the consumer's override (an `input<string | null>()` value).
389
+ * 2. Falls back to the i18n catalog under `key` — re-renders on locale
390
+ * change so a switcher updates the DOM live.
391
+ * 3. Falls back to `fallback` when no `WrI18n` is provided OR the catalog
392
+ * is missing the key.
393
+ *
394
+ * Components don't need a hard dependency on `provideWrI18n` — without it,
395
+ * the fallback is returned and everything still works.
396
+ *
397
+ * @example
398
+ * ```ts
399
+ * readonly emptyText = input<string | null>(null);
400
+ * protected readonly empty = useI18nText(this.emptyText, 'table.empty', 'No data');
401
+ *
402
+ * // In template: <div>{{ empty() }}</div>
403
+ * ```
404
+ */
405
+ function useI18nText(binding, key, fallback) {
406
+ const i18n = inject(WrI18n, { optional: true });
407
+ if (!i18n) {
408
+ return computed(() => {
409
+ const v = binding();
410
+ return v ?? fallback;
411
+ });
412
+ }
413
+ return computed(() => {
414
+ const v = binding();
415
+ if (v !== null && v !== undefined && v !== '')
416
+ return v;
417
+ const translated = i18n.t(key);
418
+ // Default missing handler returns the key itself — treat that as "missing"
419
+ // and use our explicit fallback.
420
+ return translated === key ? fallback : translated;
421
+ });
422
+ }
423
+ /**
424
+ * Like {@link useI18nText} but takes a literal value (not a Signal) — for
425
+ * computed `aria-label`s that already mix a static piece with a dynamic
426
+ * value. Returns the resolved string once, at injection time.
427
+ */
428
+ function readI18nText(key, fallback) {
429
+ const i18n = inject(WrI18n, { optional: true });
430
+ if (!i18n)
431
+ return fallback;
432
+ const v = i18n.t(key);
433
+ return v === key ? fallback : v;
434
+ }
435
+ /** Tiny shim — useful when the caller doesn't have an `input` to forward. */
436
+ function nullSignal() {
437
+ return signal(null).asReadonly();
438
+ }
439
+ /**
440
+ * Build a per-call formatter for parametrized labels (e.g. ARIA labels
441
+ * that interpolate a per-row value: `"Remove {{label}}"`). Returns a
442
+ * function the template calls with the params for the current item.
443
+ *
444
+ * The returned function:
445
+ * - Re-resolves the i18n catalog on every call (live locale switches just
446
+ * work — re-rendered templates pick up new strings).
447
+ * - Falls back to the literal `fallback` template with the same
448
+ * `{{name}}` syntax when no `WrI18n` provider is present, or when the
449
+ * key is missing.
450
+ *
451
+ * Use this for labels that vary per row. For static labels, prefer
452
+ * {@link useI18nText} or {@link readI18nText}.
453
+ *
454
+ * @example
455
+ * ```ts
456
+ * protected readonly removeChipLabel = useI18nFormatter('select.removeItem', 'Remove {{label}}');
457
+ *
458
+ * // In template:
459
+ * // [attr.aria-label]="removeChipLabel({ label: chip.label })"
460
+ * ```
461
+ */
462
+ function useI18nFormatter(key, fallback) {
463
+ const i18n = inject(WrI18n, { optional: true });
464
+ if (!i18n) {
465
+ return (params) => wrInterpolate(fallback, params);
466
+ }
467
+ return (params) => {
468
+ const v = i18n.t(key, params);
469
+ return v === key ? wrInterpolate(fallback, params) : v;
470
+ };
471
+ }
472
+
473
+ /**
474
+ * Generated bundle index. Do not edit.
475
+ */
476
+
477
+ export { DEFAULT_WR_I18N_CONFIG, WR_I18N_CONFIG, WR_I18N_LOADER, WrI18n, WrI18nHttpLoader, WrI18nStaticLoader, WrTDirective, WrTPipe, provideWrI18n, provideWrI18nHttpLoader, provideWrI18nStaticLoader, readI18nText, useI18nFormatter, useI18nText };
478
+ //# sourceMappingURL=ngwr-i18n.mjs.map