@taiga-ui/core 4.52.0-canary.6043e8f → 4.52.0-canary.61fea47

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 (289) hide show
  1. package/README.md +1 -1
  2. package/classes/accessors.d.ts +1 -1
  3. package/components/button/button.directive.d.ts +2 -2
  4. package/components/calendar/calendar-sheet.options.d.ts +1 -3
  5. package/{pipes/calendar-sheet → components/calendar}/calendar-sheet.pipe.d.ts +1 -1
  6. package/components/calendar/calendar-spin.component.d.ts +1 -0
  7. package/components/calendar/calendar-year.component.d.ts +1 -1
  8. package/components/calendar/index.d.ts +2 -0
  9. package/components/cell/cell.directive.d.ts +9 -0
  10. package/components/cell/cell.options.d.ts +6 -0
  11. package/components/cell/index.d.ts +2 -0
  12. package/components/data-list/data-list.component.d.ts +8 -12
  13. package/components/data-list/data-list.d.ts +2 -4
  14. package/components/data-list/data-list.tokens.d.ts +1 -5
  15. package/components/data-list/index.d.ts +0 -2
  16. package/components/data-list/opt-group.directive.d.ts +2 -2
  17. package/components/data-list/option/option-content.d.ts +6 -8
  18. package/components/data-list/option/option.directive.d.ts +7 -8
  19. package/components/error/error.component.d.ts +1 -1
  20. package/components/expand/expand.component.d.ts +9 -28
  21. package/components/expand/index.d.ts +0 -2
  22. package/components/index.d.ts +2 -3
  23. package/components/link/link.directive.d.ts +2 -2
  24. package/components/link/link.options.d.ts +1 -3
  25. package/components/loader/loader.component.d.ts +7 -7
  26. package/components/loader/loader.options.d.ts +1 -3
  27. package/components/notification/index.d.ts +3 -0
  28. package/components/notification/notification.component.d.ts +14 -0
  29. package/components/notification/notification.d.ts +3 -0
  30. package/components/notification/notification.directive.d.ts +7 -12
  31. package/components/notification/notification.options.d.ts +10 -7
  32. package/components/notification/notification.service.d.ts +17 -0
  33. package/components/root/root.component.d.ts +2 -3
  34. package/components/scrollbar/scroll-into-view.directive.d.ts +3 -2
  35. package/components/scrollbar/scrollbar.component.d.ts +2 -2
  36. package/components/scrollbar/scrollbar.directive.d.ts +2 -2
  37. package/components/spin-button/spin-button.component.d.ts +8 -9
  38. package/components/textfield/index.d.ts +1 -3
  39. package/components/textfield/textfield-multi/textfield-item.component.d.ts +3 -2
  40. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +9 -14
  41. package/components/textfield/textfield.component.d.ts +23 -37
  42. package/components/textfield/textfield.d.ts +2 -3
  43. package/components/textfield/textfield.directive.d.ts +13 -20
  44. package/components/textfield/textfield.options.d.ts +8 -11
  45. package/{directives → components}/title/title.directive.d.ts +2 -3
  46. package/directives/appearance/appearance.directive.d.ts +1 -1
  47. package/directives/appearance/appearance.options.d.ts +1 -1
  48. package/directives/date-format/date-format.directive.d.ts +3 -7
  49. package/directives/group/group.directive.d.ts +7 -7
  50. package/directives/group/group.options.d.ts +1 -3
  51. package/directives/index.d.ts +0 -5
  52. package/directives/number-format/number-format.directive.d.ts +3 -7
  53. package/fesm2022/taiga-ui-core-classes.mjs +6 -8
  54. package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
  55. package/fesm2022/taiga-ui-core-components-button.mjs +11 -18
  56. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  57. package/fesm2022/taiga-ui-core-components-calendar.mjs +124 -26
  58. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  59. package/fesm2022/taiga-ui-core-components-cell.mjs +45 -0
  60. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -0
  61. package/fesm2022/taiga-ui-core-components-data-list.mjs +46 -206
  62. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  63. package/fesm2022/taiga-ui-core-components-error.mjs +4 -3
  64. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-core-components-expand.mjs +33 -131
  66. package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-core-components-icon.mjs +1 -2
  68. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-core-components-label.mjs +6 -9
  70. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-core-components-link.mjs +14 -23
  72. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-core-components-loader.mjs +14 -32
  74. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-core-components-notification.mjs +108 -66
  76. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-core-components-root.mjs +6 -20
  78. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +36 -45
  80. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-core-components-spin-button.mjs +14 -27
  82. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-core-components-textfield.mjs +171 -388
  84. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-core-components-title.mjs +37 -0
  86. package/fesm2022/taiga-ui-core-components-title.mjs.map +1 -0
  87. package/fesm2022/taiga-ui-core-components.mjs +2 -3
  88. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-core-directives-appearance.mjs +12 -15
  90. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-core-directives-date-format.mjs +24 -18
  92. package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-core-directives-group.mjs +23 -38
  94. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-core-directives-icons.mjs +8 -11
  96. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +3 -6
  98. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-core-directives-number-format.mjs +30 -18
  100. package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-core-directives.mjs +0 -5
  102. package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +19 -13
  104. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-core-pipes.mjs +0 -7
  106. package/fesm2022/taiga-ui-core-pipes.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-core-portals-alert.mjs +73 -0
  108. package/fesm2022/taiga-ui-core-portals-alert.mjs.map +1 -0
  109. package/fesm2022/taiga-ui-core-portals-dialog.mjs +158 -0
  110. package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -0
  111. package/fesm2022/{taiga-ui-core-directives-dropdown.mjs → taiga-ui-core-portals-dropdown.mjs} +135 -287
  112. package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -0
  113. package/fesm2022/{taiga-ui-core-directives-hint.mjs → taiga-ui-core-portals-hint.mjs} +118 -218
  114. package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -0
  115. package/fesm2022/taiga-ui-core-portals-modal.mjs +89 -0
  116. package/fesm2022/taiga-ui-core-portals-modal.mjs.map +1 -0
  117. package/fesm2022/taiga-ui-core-portals-popup.mjs +56 -0
  118. package/fesm2022/taiga-ui-core-portals-popup.mjs.map +1 -0
  119. package/fesm2022/taiga-ui-core-portals.mjs +11 -0
  120. package/fesm2022/taiga-ui-core-portals.mjs.map +1 -0
  121. package/fesm2022/taiga-ui-core-services.mjs +3 -23
  122. package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
  123. package/fesm2022/taiga-ui-core-tokens.mjs +22 -25
  124. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  125. package/fesm2022/taiga-ui-core-utils-format.mjs +1 -22
  126. package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
  127. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +8 -17
  128. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  129. package/fesm2022/taiga-ui-core.mjs +1 -0
  130. package/fesm2022/taiga-ui-core.mjs.map +1 -1
  131. package/index.d.ts +1 -0
  132. package/package.json +77 -98
  133. package/pipes/format-number/format-number.pipe.d.ts +6 -4
  134. package/pipes/index.d.ts +0 -7
  135. package/portals/alert/alert.directive.d.ts +11 -0
  136. package/portals/alert/alert.service.d.ts +12 -0
  137. package/portals/alert/index.d.ts +2 -0
  138. package/portals/dialog/dialog.component.d.ts +14 -0
  139. package/portals/dialog/dialog.directive.d.ts +8 -0
  140. package/{components → portals}/dialog/dialog.factory.d.ts +1 -1
  141. package/portals/dialog/dialog.options.d.ts +25 -0
  142. package/{components/dialog/dialog-close.service.d.ts → portals/dialog/dialog.providers.d.ts} +2 -0
  143. package/portals/dialog/dialog.service.d.ts +10 -0
  144. package/portals/dialog/index.d.ts +6 -0
  145. package/portals/dropdown/dropdown-content.directive.d.ts +9 -0
  146. package/{directives → portals}/dropdown/dropdown-hover.directive.d.ts +5 -10
  147. package/{directives → portals}/dropdown/dropdown-hover.options.d.ts +1 -3
  148. package/{directives → portals}/dropdown/dropdown-manual.directive.d.ts +2 -2
  149. package/portals/dropdown/dropdown-open.directive.d.ts +30 -0
  150. package/{directives → portals}/dropdown/dropdown-position-sided.directive.d.ts +3 -3
  151. package/{directives → portals}/dropdown/dropdown-position.directive.d.ts +5 -5
  152. package/{directives → portals}/dropdown/dropdown-selection.directive.d.ts +4 -5
  153. package/{directives → portals}/dropdown/dropdown.bindings.d.ts +0 -1
  154. package/{directives → portals}/dropdown/dropdown.d.ts +2 -3
  155. package/{directives → portals}/dropdown/dropdown.directive.d.ts +6 -8
  156. package/{directives → portals}/dropdown/index.d.ts +1 -4
  157. package/{directives → portals}/hint/hint-describe.directive.d.ts +4 -6
  158. package/{directives → portals}/hint/hint-host.directive.d.ts +2 -2
  159. package/{directives → portals}/hint/hint-hover.directive.d.ts +3 -4
  160. package/{directives → portals}/hint/hint-manual.directive.d.ts +2 -2
  161. package/{directives → portals}/hint/hint-options.directive.d.ts +3 -3
  162. package/{directives → portals}/hint/hint-overflow.directive.d.ts +2 -2
  163. package/{directives → portals}/hint/hint-position.directive.d.ts +4 -5
  164. package/{directives → portals}/hint/hint-unstyled.component.d.ts +2 -7
  165. package/portals/hint/hint.component.d.ts +29 -0
  166. package/portals/hint/hint.directive.d.ts +24 -0
  167. package/{directives → portals}/hint/index.d.ts +0 -2
  168. package/portals/index.d.ts +6 -0
  169. package/portals/modal/index.d.ts +2 -0
  170. package/portals/modal/modal.component.d.ts +17 -0
  171. package/portals/modal/modal.service.d.ts +13 -0
  172. package/portals/popup/popup.directive.d.ts +12 -0
  173. package/{directives → portals}/popup/popup.service.d.ts +1 -1
  174. package/{directives → portals}/popup/popups.component.d.ts +2 -2
  175. package/services/index.d.ts +0 -1
  176. package/styles/components/link.less +1 -0
  177. package/styles/mixins/appearance.less +1 -1
  178. package/styles/mixins/mixins.less +0 -5
  179. package/styles/mixins/mixins.scss +0 -5
  180. package/styles/mixins/slider.less +21 -16
  181. package/styles/mixins/slider.scss +1 -2
  182. package/styles/theme/variables.less +2 -4
  183. package/tokens/common-icons.d.ts +1 -3
  184. package/tokens/date-format.d.ts +2 -3
  185. package/tokens/i18n.d.ts +7 -7
  186. package/tokens/icon-resolver.d.ts +0 -4
  187. package/tokens/icons.d.ts +0 -4
  188. package/tokens/number-format.d.ts +2 -3
  189. package/types/index.d.ts +0 -3
  190. package/types/size.d.ts +0 -11
  191. package/utils/format/index.d.ts +0 -1
  192. package/utils/miscellaneous/get-duration.d.ts +2 -0
  193. package/utils/miscellaneous/index.d.ts +1 -1
  194. package/components/alert/alert.component.d.ts +0 -15
  195. package/components/alert/alert.directive.d.ts +0 -7
  196. package/components/alert/alert.interfaces.d.ts +0 -12
  197. package/components/alert/alert.service.d.ts +0 -7
  198. package/components/alert/alert.tokens.d.ts +0 -12
  199. package/components/alert/alerts.component.d.ts +0 -12
  200. package/components/alert/index.d.ts +0 -6
  201. package/components/data-list/data-list.directive.d.ts +0 -7
  202. package/components/data-list/option/option-legacy.component.d.ts +0 -24
  203. package/components/dialog/active-zone-adapter.directive.d.ts +0 -11
  204. package/components/dialog/dialog.component.d.ts +0 -20
  205. package/components/dialog/dialog.directive.d.ts +0 -7
  206. package/components/dialog/dialog.interfaces.d.ts +0 -34
  207. package/components/dialog/dialog.service.d.ts +0 -7
  208. package/components/dialog/dialog.tokens.d.ts +0 -15
  209. package/components/dialog/dialogs.component.d.ts +0 -8
  210. package/components/dialog/index.d.ts +0 -8
  211. package/components/expand/expand-content.directive.d.ts +0 -8
  212. package/components/expand/expand.d.ts +0 -6
  213. package/components/fullscreen/fullscreen.component.d.ts +0 -14
  214. package/components/fullscreen/index.d.ts +0 -1
  215. package/components/textfield/select.directive.d.ts +0 -19
  216. package/components/textfield/textfield-dropdown.directive.d.ts +0 -16
  217. package/directives/dropdown/dropdown-open-legacy.directive.d.ts +0 -12
  218. package/directives/dropdown/dropdown-open.directive.d.ts +0 -33
  219. package/directives/dropdown/dropdown-portal.directive.d.ts +0 -14
  220. package/directives/dropdown/dropdown.service.d.ts +0 -6
  221. package/directives/dropdown/dropdowns.component.d.ts +0 -9
  222. package/directives/hint/hint.component.d.ts +0 -30
  223. package/directives/hint/hint.directive.d.ts +0 -26
  224. package/directives/hint/hint.service.d.ts +0 -13
  225. package/directives/hint/hints.component.d.ts +0 -12
  226. package/directives/popup/popup.directive.d.ts +0 -11
  227. package/directives/surface/index.d.ts +0 -1
  228. package/directives/surface/surface.directive.d.ts +0 -8
  229. package/fesm2022/taiga-ui-core-components-alert.mjs +0 -149
  230. package/fesm2022/taiga-ui-core-components-alert.mjs.map +0 -1
  231. package/fesm2022/taiga-ui-core-components-dialog.mjs +0 -229
  232. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +0 -1
  233. package/fesm2022/taiga-ui-core-components-fullscreen.mjs +0 -77
  234. package/fesm2022/taiga-ui-core-components-fullscreen.mjs.map +0 -1
  235. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +0 -1
  236. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +0 -1
  237. package/fesm2022/taiga-ui-core-directives-popup.mjs +0 -63
  238. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +0 -1
  239. package/fesm2022/taiga-ui-core-directives-surface.mjs +0 -50
  240. package/fesm2022/taiga-ui-core-directives-surface.mjs.map +0 -1
  241. package/fesm2022/taiga-ui-core-directives-title.mjs +0 -43
  242. package/fesm2022/taiga-ui-core-directives-title.mjs.map +0 -1
  243. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +0 -25
  244. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +0 -1
  245. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +0 -94
  246. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +0 -1
  247. package/fesm2022/taiga-ui-core-pipes-flag.mjs +0 -32
  248. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +0 -1
  249. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +0 -28
  250. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +0 -1
  251. package/fesm2022/taiga-ui-core-pipes-initials.mjs +0 -29
  252. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +0 -1
  253. package/fesm2022/taiga-ui-core-pipes-month.mjs +0 -29
  254. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +0 -1
  255. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +0 -36
  256. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +0 -1
  257. package/pipes/auto-color/auto-color.pipe.d.ts +0 -7
  258. package/pipes/auto-color/index.d.ts +0 -1
  259. package/pipes/calendar-sheet/index.d.ts +0 -1
  260. package/pipes/calendar-sheet/utils.d.ts +0 -20
  261. package/pipes/flag/flag.pipe.d.ts +0 -14
  262. package/pipes/flag/index.d.ts +0 -1
  263. package/pipes/format-date/format-date.pipe.d.ts +0 -9
  264. package/pipes/format-date/index.d.ts +0 -1
  265. package/pipes/initials/index.d.ts +0 -1
  266. package/pipes/initials/initials.pipe.d.ts +0 -7
  267. package/pipes/month/index.d.ts +0 -1
  268. package/pipes/month/month.pipe.d.ts +0 -10
  269. package/pipes/order-week-days/index.d.ts +0 -1
  270. package/services/format-date.service.d.ts +0 -8
  271. package/types/portal-item.d.ts +0 -9
  272. package/types/range-state.d.ts +0 -4
  273. package/types/value-content-context.d.ts +0 -4
  274. package/utils/format/string-hash-to-hsl.d.ts +0 -6
  275. package/utils/miscellaneous/to-animation-options.d.ts +0 -4
  276. /package/{pipes/order-week-days → components/calendar}/order-week-days.pipe.d.ts +0 -0
  277. /package/{directives → components}/title/index.d.ts +0 -0
  278. /package/{directives → portals}/dropdown/dropdown-context.directive.d.ts +0 -0
  279. /package/{directives → portals}/dropdown/dropdown-limit-width.d.ts +0 -0
  280. /package/{directives → portals}/dropdown/dropdown-options.directive.d.ts +0 -0
  281. /package/{directives → portals}/dropdown/dropdown.component.d.ts +0 -0
  282. /package/{directives → portals}/dropdown/dropdown.driver.d.ts +0 -0
  283. /package/{directives → portals}/dropdown/dropdown.providers.d.ts +0 -0
  284. /package/{directives → portals}/dropdown/with-dropdown-open.directive.d.ts +0 -0
  285. /package/{directives → portals}/hint/hint-driver.directive.d.ts +0 -0
  286. /package/{directives → portals}/hint/hint-pointer.directive.d.ts +0 -0
  287. /package/{directives → portals}/hint/hint.d.ts +0 -0
  288. /package/{directives → portals}/hint/hint.providers.d.ts +0 -0
  289. /package/{directives → portals}/popup/index.d.ts +0 -0
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Input, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { inject, computed, input, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
4
4
  import { tuiIsSafari } from '@taiga-ui/cdk/utils/browser';
5
5
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
6
6
  import { tuiSizeBigger } from '@taiga-ui/core/utils/miscellaneous';
7
7
  import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
8
- import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
8
+ import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
9
9
 
10
10
  /** Default values for the loader options. */
11
11
  const TUI_LOADER_DEFAULT_OPTIONS = {
@@ -16,48 +16,30 @@ const TUI_LOADER_DEFAULT_OPTIONS = {
16
16
  /**
17
17
  * Default parameters for loader component
18
18
  */
19
- const TUI_LOADER_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_LOADER_OPTIONS' : '', {
20
- factory: () => TUI_LOADER_DEFAULT_OPTIONS,
21
- });
22
- function tuiLoaderOptionsProvider(options) {
23
- return tuiProvideOptions(TUI_LOADER_OPTIONS, options, TUI_LOADER_DEFAULT_OPTIONS);
24
- }
19
+ const [TUI_LOADER_OPTIONS, tuiLoaderOptionsProvider] = tuiCreateOptions(TUI_LOADER_DEFAULT_OPTIONS);
25
20
 
26
21
  class TuiLoader {
27
22
  constructor() {
28
23
  this.isIOS = inject(TUI_IS_IOS);
29
24
  this.options = inject(TUI_LOADER_OPTIONS);
30
25
  this.isApple = tuiIsSafari(tuiInjectElement()) || this.isIOS;
31
- this.size = this.options.size;
32
- this.inheritColor = this.options.inheritColor;
33
- this.overlay = this.options.overlay;
34
- // TODO: Drop alias in v5
35
- this.loading = true;
36
- }
37
- get isHorizontal() {
38
- return !tuiSizeBigger(this.size);
26
+ this.isHorizontal = computed(() => !tuiSizeBigger(this.size()));
27
+ this.size = input(this.options.size);
28
+ this.inheritColor = input(this.options.inheritColor);
29
+ this.overlay = input(this.options.overlay);
30
+ this.textContent = input();
31
+ this.loading = input(true);
39
32
  }
40
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiLoader, isStandalone: true, selector: "tui-loader", inputs: { size: "size", inheritColor: "inheritColor", overlay: "overlay", textContent: "textContent", loading: ["showLoader", "loading"] }, host: { properties: { "class._loading": "loading", "attr.data-size": "size" } }, ngImport: i0, template: "<fieldset\n class=\"t-content\"\n [attr.inert]=\"loading || null\"\n [class.t-content_has-overlay]=\"overlay && loading\"\n [class.t-content_loading]=\"loading\"\n [disabled]=\"loading && !isApple\"\n>\n <ng-content />\n</fieldset>\n\n@if (loading) {\n <div\n class=\"t-loader\"\n [class.t-loader_horizontal]=\"isHorizontal\"\n [class.t-loader_inherit-color]=\"inheritColor\"\n >\n <svg\n automation-id=\"tui-loader__loader\"\n focusable=\"false\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-icon\"\n >\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-circle\"\n />\n </svg>\n @if (textContent) {\n <div\n automation-id=\"tui-loader__text\"\n class=\"t-text\"\n [class.t-text_horizontal]=\"isHorizontal\"\n >\n <ng-container *polymorpheusOutlet=\"textContent as text\">\n {{ text }}\n </ng-container>\n </div>\n }\n </div>\n}\n", styles: [":host{position:relative;display:flex;min-inline-size:1.5rem;--tui-thickness: calc(var(--t-diameter) / 12)}:host._loading{overflow:hidden}:host[data-size=xs]{--t-diameter: .75em}:host[data-size=s]{--t-diameter: 1em}:host[data-size=m]{--t-diameter: 1.5em}:host[data-size=l]{--t-diameter: 2.5em}:host[data-size=xl]{--t-diameter: 3.5em}:host[data-size=xxl]{--t-diameter: 5em}.t-content{z-index:0;min-inline-size:100%;block-size:100%;padding:0;margin:0;border:none}.t-content_has-overlay{opacity:.3}.t-content_loading{pointer-events:none}.t-loader{position:relative;left:-100%;display:flex;inset-inline-start:-100%;flex-direction:column;align-items:center;justify-content:center;min-inline-size:100%;min-block-size:var(--t-diameter);flex-shrink:0;align-self:center;color:var(--tui-text-primary);stroke:var(--tui-background-accent-1);animation:tuiFadeIn var(--tui-duration);font-size:1rem}.t-loader.t-loader_horizontal{flex-direction:row}.t-loader.t-loader_inherit-color{color:inherit;stroke:currentColor}.t-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:var(--tui-font-text-s);margin-block-start:1rem;color:inherit;max-inline-size:100%;text-align:center;stroke-width:0}.t-text_horizontal{margin:0;margin-inline-start:1rem}@keyframes tuiLoaderRotate{0%{transform:rotate(-90deg)}50%{transform:rotate(-90deg) rotate(1turn)}to{transform:rotate(-90deg) rotate(3turn)}}.t-icon{display:block;inline-size:var(--t-diameter);block-size:var(--t-diameter);margin:.25rem calc(var(--t-diameter) / -2);border-radius:100%;overflow:hidden;animation:tuiLoaderRotate 4s linear infinite}@supports (-webkit-hyphens: none){.t-icon{overflow:visible}}@keyframes tuiLoaderDashOffset{0%{stroke-dashoffset:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)))}50%{stroke-dashoffset:calc(.05 * calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness))))}to{stroke-dashoffset:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)))}}.t-circle{r:calc(var(--t-diameter) / 2 - var(--tui-thickness));stroke-dasharray:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)));fill:none;stroke:inherit;stroke-width:max(var(--tui-thickness),1.5px);animation:tuiLoaderDashOffset 4s linear infinite}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiLoader, isStandalone: true, selector: "tui-loader", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, inheritColor: { classPropertyName: "inheritColor", publicName: "inheritColor", isSignal: true, isRequired: false, transformFunction: null }, overlay: { classPropertyName: "overlay", publicName: "overlay", isSignal: true, isRequired: false, transformFunction: null }, textContent: { classPropertyName: "textContent", publicName: "textContent", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class._loading": "loading()", "attr.data-size": "size()" } }, ngImport: i0, template: "<fieldset\n class=\"t-content\"\n [attr.inert]=\"loading() || null\"\n [class.t-content_has-overlay]=\"overlay() && loading()\"\n [class.t-content_loading]=\"loading()\"\n [disabled]=\"loading() && !isApple\"\n>\n <ng-content />\n</fieldset>\n\n@if (loading()) {\n <div\n class=\"t-loader\"\n [class.t-loader_horizontal]=\"isHorizontal()\"\n [class.t-loader_inherit-color]=\"inheritColor()\"\n >\n <svg\n automation-id=\"tui-loader__loader\"\n focusable=\"false\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-icon\"\n >\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-circle\"\n />\n </svg>\n @if (textContent()) {\n <div\n automation-id=\"tui-loader__text\"\n class=\"t-text\"\n [class.t-text_horizontal]=\"isHorizontal()\"\n >\n <ng-container *polymorpheusOutlet=\"textContent() as text\">\n {{ text }}\n </ng-container>\n </div>\n }\n </div>\n}\n", styles: [":host{position:relative;display:flex;min-inline-size:1.5rem;--tui-thickness: calc(var(--t-diameter) / 12)}:host._loading{overflow:hidden}:host[data-size=xs]{--t-diameter: .75em}:host[data-size=s]{--t-diameter: 1em}:host[data-size=m]{--t-diameter: 1.5em}:host[data-size=l]{--t-diameter: 2.5em}:host[data-size=xl]{--t-diameter: 3.5em}:host[data-size=xxl]{--t-diameter: 5em}.t-content{z-index:0;min-inline-size:100%;block-size:100%;padding:0;margin:0;border:none}.t-content_has-overlay{opacity:.3}.t-content_loading{pointer-events:none}.t-loader{position:relative;left:-100%;display:flex;inset-inline-start:-100%;flex-direction:column;align-items:center;justify-content:center;min-inline-size:100%;min-block-size:var(--t-diameter);flex-shrink:0;align-self:center;color:var(--tui-text-primary);stroke:var(--tui-background-accent-1);animation:tuiFadeIn var(--tui-duration);font-size:1rem}.t-loader.t-loader_horizontal{flex-direction:row}.t-loader.t-loader_inherit-color{color:inherit;stroke:currentColor}.t-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:var(--tui-font-text-s);margin-block-start:1rem;color:inherit;max-inline-size:100%;text-align:center;stroke-width:0}.t-text_horizontal{margin:0;margin-inline-start:1rem}@keyframes tuiLoaderRotate{0%{transform:rotate(-90deg)}50%{transform:rotate(-90deg) rotate(1turn)}to{transform:rotate(-90deg) rotate(3turn)}}.t-icon{display:block;inline-size:var(--t-diameter);block-size:var(--t-diameter);margin:0 calc(var(--t-diameter) / -2);border-radius:100%;overflow:hidden;animation:tuiLoaderRotate 4s linear infinite}@supports (-webkit-hyphens: none){.t-icon{overflow:visible}}@keyframes tuiLoaderDashOffset{0%{stroke-dashoffset:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)))}50%{stroke-dashoffset:calc(.05 * calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness))))}to{stroke-dashoffset:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)))}}.t-circle{r:calc(var(--t-diameter) / 2 - var(--tui-thickness));stroke-dasharray:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)));fill:none;stroke:inherit;stroke-width:max(var(--tui-thickness),1.5px);animation:tuiLoaderDashOffset 4s linear infinite}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
42
35
  }
43
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiLoader, decorators: [{
44
37
  type: Component,
45
38
  args: [{ selector: 'tui-loader', imports: [PolymorpheusOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: {
46
- '[class._loading]': 'loading',
47
- '[attr.data-size]': 'size',
48
- }, template: "<fieldset\n class=\"t-content\"\n [attr.inert]=\"loading || null\"\n [class.t-content_has-overlay]=\"overlay && loading\"\n [class.t-content_loading]=\"loading\"\n [disabled]=\"loading && !isApple\"\n>\n <ng-content />\n</fieldset>\n\n@if (loading) {\n <div\n class=\"t-loader\"\n [class.t-loader_horizontal]=\"isHorizontal\"\n [class.t-loader_inherit-color]=\"inheritColor\"\n >\n <svg\n automation-id=\"tui-loader__loader\"\n focusable=\"false\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-icon\"\n >\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-circle\"\n />\n </svg>\n @if (textContent) {\n <div\n automation-id=\"tui-loader__text\"\n class=\"t-text\"\n [class.t-text_horizontal]=\"isHorizontal\"\n >\n <ng-container *polymorpheusOutlet=\"textContent as text\">\n {{ text }}\n </ng-container>\n </div>\n }\n </div>\n}\n", styles: [":host{position:relative;display:flex;min-inline-size:1.5rem;--tui-thickness: calc(var(--t-diameter) / 12)}:host._loading{overflow:hidden}:host[data-size=xs]{--t-diameter: .75em}:host[data-size=s]{--t-diameter: 1em}:host[data-size=m]{--t-diameter: 1.5em}:host[data-size=l]{--t-diameter: 2.5em}:host[data-size=xl]{--t-diameter: 3.5em}:host[data-size=xxl]{--t-diameter: 5em}.t-content{z-index:0;min-inline-size:100%;block-size:100%;padding:0;margin:0;border:none}.t-content_has-overlay{opacity:.3}.t-content_loading{pointer-events:none}.t-loader{position:relative;left:-100%;display:flex;inset-inline-start:-100%;flex-direction:column;align-items:center;justify-content:center;min-inline-size:100%;min-block-size:var(--t-diameter);flex-shrink:0;align-self:center;color:var(--tui-text-primary);stroke:var(--tui-background-accent-1);animation:tuiFadeIn var(--tui-duration);font-size:1rem}.t-loader.t-loader_horizontal{flex-direction:row}.t-loader.t-loader_inherit-color{color:inherit;stroke:currentColor}.t-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:var(--tui-font-text-s);margin-block-start:1rem;color:inherit;max-inline-size:100%;text-align:center;stroke-width:0}.t-text_horizontal{margin:0;margin-inline-start:1rem}@keyframes tuiLoaderRotate{0%{transform:rotate(-90deg)}50%{transform:rotate(-90deg) rotate(1turn)}to{transform:rotate(-90deg) rotate(3turn)}}.t-icon{display:block;inline-size:var(--t-diameter);block-size:var(--t-diameter);margin:.25rem calc(var(--t-diameter) / -2);border-radius:100%;overflow:hidden;animation:tuiLoaderRotate 4s linear infinite}@supports (-webkit-hyphens: none){.t-icon{overflow:visible}}@keyframes tuiLoaderDashOffset{0%{stroke-dashoffset:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)))}50%{stroke-dashoffset:calc(.05 * calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness))))}to{stroke-dashoffset:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)))}}.t-circle{r:calc(var(--t-diameter) / 2 - var(--tui-thickness));stroke-dasharray:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)));fill:none;stroke:inherit;stroke-width:max(var(--tui-thickness),1.5px);animation:tuiLoaderDashOffset 4s linear infinite}\n"] }]
49
- }], propDecorators: { size: [{
50
- type: Input
51
- }], inheritColor: [{
52
- type: Input
53
- }], overlay: [{
54
- type: Input
55
- }], textContent: [{
56
- type: Input
57
- }], loading: [{
58
- type: Input,
59
- args: ['showLoader']
60
- }] } });
39
+ '[class._loading]': 'loading()',
40
+ '[attr.data-size]': 'size()',
41
+ }, template: "<fieldset\n class=\"t-content\"\n [attr.inert]=\"loading() || null\"\n [class.t-content_has-overlay]=\"overlay() && loading()\"\n [class.t-content_loading]=\"loading()\"\n [disabled]=\"loading() && !isApple\"\n>\n <ng-content />\n</fieldset>\n\n@if (loading()) {\n <div\n class=\"t-loader\"\n [class.t-loader_horizontal]=\"isHorizontal()\"\n [class.t-loader_inherit-color]=\"inheritColor()\"\n >\n <svg\n automation-id=\"tui-loader__loader\"\n focusable=\"false\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-icon\"\n >\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-circle\"\n />\n </svg>\n @if (textContent()) {\n <div\n automation-id=\"tui-loader__text\"\n class=\"t-text\"\n [class.t-text_horizontal]=\"isHorizontal()\"\n >\n <ng-container *polymorpheusOutlet=\"textContent() as text\">\n {{ text }}\n </ng-container>\n </div>\n }\n </div>\n}\n", styles: [":host{position:relative;display:flex;min-inline-size:1.5rem;--tui-thickness: calc(var(--t-diameter) / 12)}:host._loading{overflow:hidden}:host[data-size=xs]{--t-diameter: .75em}:host[data-size=s]{--t-diameter: 1em}:host[data-size=m]{--t-diameter: 1.5em}:host[data-size=l]{--t-diameter: 2.5em}:host[data-size=xl]{--t-diameter: 3.5em}:host[data-size=xxl]{--t-diameter: 5em}.t-content{z-index:0;min-inline-size:100%;block-size:100%;padding:0;margin:0;border:none}.t-content_has-overlay{opacity:.3}.t-content_loading{pointer-events:none}.t-loader{position:relative;left:-100%;display:flex;inset-inline-start:-100%;flex-direction:column;align-items:center;justify-content:center;min-inline-size:100%;min-block-size:var(--t-diameter);flex-shrink:0;align-self:center;color:var(--tui-text-primary);stroke:var(--tui-background-accent-1);animation:tuiFadeIn var(--tui-duration);font-size:1rem}.t-loader.t-loader_horizontal{flex-direction:row}.t-loader.t-loader_inherit-color{color:inherit;stroke:currentColor}.t-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:var(--tui-font-text-s);margin-block-start:1rem;color:inherit;max-inline-size:100%;text-align:center;stroke-width:0}.t-text_horizontal{margin:0;margin-inline-start:1rem}@keyframes tuiLoaderRotate{0%{transform:rotate(-90deg)}50%{transform:rotate(-90deg) rotate(1turn)}to{transform:rotate(-90deg) rotate(3turn)}}.t-icon{display:block;inline-size:var(--t-diameter);block-size:var(--t-diameter);margin:0 calc(var(--t-diameter) / -2);border-radius:100%;overflow:hidden;animation:tuiLoaderRotate 4s linear infinite}@supports (-webkit-hyphens: none){.t-icon{overflow:visible}}@keyframes tuiLoaderDashOffset{0%{stroke-dashoffset:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)))}50%{stroke-dashoffset:calc(.05 * calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness))))}to{stroke-dashoffset:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)))}}.t-circle{r:calc(var(--t-diameter) / 2 - var(--tui-thickness));stroke-dasharray:calc(2 * 3.14159265 * calc(var(--t-diameter) / 2 - var(--tui-thickness)));fill:none;stroke:inherit;stroke-width:max(var(--tui-thickness),1.5px);animation:tuiLoaderDashOffset 4s linear infinite}\n"] }]
42
+ }] });
61
43
 
62
44
  /**
63
45
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-loader.mjs","sources":["../../../projects/core/components/loader/loader.options.ts","../../../projects/core/components/loader/loader.component.ts","../../../projects/core/components/loader/loader.template.html","../../../projects/core/components/loader/taiga-ui-core-components-loader.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeXS, type TuiSizeXXL} from '@taiga-ui/core/types';\n\nexport interface TuiLoaderOptions {\n readonly inheritColor: boolean;\n readonly overlay: boolean;\n readonly size: TuiSizeXS | TuiSizeXXL;\n}\n\n/** Default values for the loader options. */\nexport const TUI_LOADER_DEFAULT_OPTIONS: TuiLoaderOptions = {\n size: 'm',\n inheritColor: false,\n overlay: false,\n};\n\n/**\n * Default parameters for loader component\n */\nexport const TUI_LOADER_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_LOADER_OPTIONS' : '',\n {\n factory: () => TUI_LOADER_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiLoaderOptionsProvider(options: Partial<TuiLoaderOptions>): Provider {\n return tuiProvideOptions(TUI_LOADER_OPTIONS, options, TUI_LOADER_DEFAULT_OPTIONS);\n}\n","import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiIsSafari} from '@taiga-ui/cdk/utils/browser';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiSizeBigger} from '@taiga-ui/core/utils/miscellaneous';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_LOADER_OPTIONS} from './loader.options';\n\n@Component({\n selector: 'tui-loader',\n imports: [PolymorpheusOutlet],\n templateUrl: './loader.template.html',\n styleUrls: ['./loader.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._loading]': 'loading',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiLoader {\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly options = inject(TUI_LOADER_OPTIONS);\n protected readonly isApple = tuiIsSafari(tuiInjectElement()) || this.isIOS;\n\n @Input()\n public size = this.options.size;\n\n @Input()\n public inheritColor = this.options.inheritColor;\n\n @Input()\n public overlay = this.options.overlay;\n\n @Input()\n public textContent: PolymorpheusContent;\n\n // TODO: Drop alias in v5\n @Input('showLoader')\n public loading = true;\n\n protected get isHorizontal(): boolean {\n return !tuiSizeBigger(this.size);\n }\n}\n","<fieldset\n class=\"t-content\"\n [attr.inert]=\"loading || null\"\n [class.t-content_has-overlay]=\"overlay && loading\"\n [class.t-content_loading]=\"loading\"\n [disabled]=\"loading && !isApple\"\n>\n <ng-content />\n</fieldset>\n\n@if (loading) {\n <div\n class=\"t-loader\"\n [class.t-loader_horizontal]=\"isHorizontal\"\n [class.t-loader_inherit-color]=\"inheritColor\"\n >\n <svg\n automation-id=\"tui-loader__loader\"\n focusable=\"false\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-icon\"\n >\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-circle\"\n />\n </svg>\n @if (textContent) {\n <div\n automation-id=\"tui-loader__text\"\n class=\"t-text\"\n [class.t-text_horizontal]=\"isHorizontal\"\n >\n <ng-container *polymorpheusOutlet=\"textContent as text\">\n {{ text }}\n </ng-container>\n </div>\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAUA;AACa,MAAA,0BAA0B,GAAqB;AACxD,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,OAAO,EAAE,KAAK;;AAGlB;;AAEG;AACU,MAAA,kBAAkB,GAAG,IAAI,cAAc,CAChD,SAAS,GAAG,oBAAoB,GAAG,EAAE,EACrC;AACI,IAAA,OAAO,EAAE,MAAM,0BAA0B;AAC5C,CAAA;AAGC,SAAU,wBAAwB,CAAC,OAAkC,EAAA;IACvE,OAAO,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,EAAE,0BAA0B,CAAC;AACrF;;MCTa,SAAS,CAAA;AAXtB,IAAA,WAAA,GAAA;AAYqB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAClC,IAAO,CAAA,OAAA,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK;AAGnE,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;AAGxB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;AAGxC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO;;QAO9B,IAAO,CAAA,OAAA,GAAG,IAAI;AAKxB;AAHG,IAAA,IAAc,YAAY,GAAA;AACtB,QAAA,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;+GAtB3B,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBtB,2oCA0CA,EAAA,MAAA,EAAA,CAAA,0sEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED/Bc,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FASnB,SAAS,EAAA,UAAA,EAAA,CAAA;kBAXrB,SAAS;+BACI,YAAY,EAAA,OAAA,EACb,CAAC,kBAAkB,CAAC,mBAGZ,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,SAAS;AAC7B,wBAAA,kBAAkB,EAAE,MAAM;AAC7B,qBAAA,EAAA,QAAA,EAAA,2oCAAA,EAAA,MAAA,EAAA,CAAA,0sEAAA,CAAA,EAAA;8BAQM,IAAI,EAAA,CAAA;sBADV;gBAIM,YAAY,EAAA,CAAA;sBADlB;gBAIM,OAAO,EAAA,CAAA;sBADb;gBAIM,WAAW,EAAA,CAAA;sBADjB;gBAKM,OAAO,EAAA,CAAA;sBADb,KAAK;uBAAC,YAAY;;;AEtCvB;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-components-loader.mjs","sources":["../../../projects/core/components/loader/loader.options.ts","../../../projects/core/components/loader/loader.component.ts","../../../projects/core/components/loader/loader.template.html","../../../projects/core/components/loader/taiga-ui-core-components-loader.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeXS, type TuiSizeXXL} from '@taiga-ui/core/types';\n\nexport interface TuiLoaderOptions {\n readonly inheritColor: boolean;\n readonly overlay: boolean;\n readonly size: TuiSizeXS | TuiSizeXXL;\n}\n\n/** Default values for the loader options. */\nexport const TUI_LOADER_DEFAULT_OPTIONS: TuiLoaderOptions = {\n size: 'm',\n inheritColor: false,\n overlay: false,\n};\n\n/**\n * Default parameters for loader component\n */\nexport const [TUI_LOADER_OPTIONS, tuiLoaderOptionsProvider] = tuiCreateOptions(\n TUI_LOADER_DEFAULT_OPTIONS,\n);\n","import {ChangeDetectionStrategy, Component, computed, inject, input} from '@angular/core';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiIsSafari} from '@taiga-ui/cdk/utils/browser';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiSizeBigger} from '@taiga-ui/core/utils/miscellaneous';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_LOADER_OPTIONS} from './loader.options';\n\n@Component({\n selector: 'tui-loader',\n imports: [PolymorpheusOutlet],\n templateUrl: './loader.template.html',\n styleUrl: './loader.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._loading]': 'loading()',\n '[attr.data-size]': 'size()',\n },\n})\nexport class TuiLoader {\n private readonly isIOS = inject(TUI_IS_IOS);\n private readonly options = inject(TUI_LOADER_OPTIONS);\n protected readonly isApple = tuiIsSafari(tuiInjectElement()) || this.isIOS;\n\n protected readonly isHorizontal = computed(() => !tuiSizeBigger(this.size()));\n\n public readonly size = input(this.options.size);\n\n public readonly inheritColor = input(this.options.inheritColor);\n\n public readonly overlay = input(this.options.overlay);\n\n public readonly textContent = input<PolymorpheusContent>();\n\n public readonly loading = input(true);\n}\n","<fieldset\n class=\"t-content\"\n [attr.inert]=\"loading() || null\"\n [class.t-content_has-overlay]=\"overlay() && loading()\"\n [class.t-content_loading]=\"loading()\"\n [disabled]=\"loading() && !isApple\"\n>\n <ng-content />\n</fieldset>\n\n@if (loading()) {\n <div\n class=\"t-loader\"\n [class.t-loader_horizontal]=\"isHorizontal()\"\n [class.t-loader_inherit-color]=\"inheritColor()\"\n >\n <svg\n automation-id=\"tui-loader__loader\"\n focusable=\"false\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-icon\"\n >\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-circle\"\n />\n </svg>\n @if (textContent()) {\n <div\n automation-id=\"tui-loader__text\"\n class=\"t-text\"\n [class.t-text_horizontal]=\"isHorizontal()\"\n >\n <ng-container *polymorpheusOutlet=\"textContent() as text\">\n {{ text }}\n </ng-container>\n </div>\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,13 +1,25 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, Input, Directive } from '@angular/core';
3
- import { tuiWithStyles, tuiSetSignal, tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous';
4
- import { tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
2
+ import { InjectionToken, ChangeDetectionStrategy, ViewEncapsulation, Component, inject, computed, input, Directive, Injectable } from '@angular/core';
3
+ import { tuiWithStyles, tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous';
4
+ import { tuiButtonOptionsProvider, TuiButton } from '@taiga-ui/core/components/button';
5
5
  import { tuiLinkOptionsProvider } from '@taiga-ui/core/components/link';
6
6
  import * as i2 from '@taiga-ui/core/directives/appearance';
7
7
  import { tuiAppearanceOptionsProvider, TuiWithAppearance } from '@taiga-ui/core/directives/appearance';
8
8
  import * as i1 from '@taiga-ui/core/directives/icons';
9
- import { TuiIcons, TuiWithIcons } from '@taiga-ui/core/directives/icons';
9
+ import { tuiIconStart, TuiWithIcons } from '@taiga-ui/core/directives/icons';
10
10
  import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
11
+ import * as i1$2 from '@taiga-ui/cdk/portals';
12
+ import { tuiAsPortal, TuiPortalDirective } from '@taiga-ui/cdk/portals';
13
+ import * as i2$1 from '@taiga-ui/core/portals/alert';
14
+ import { TuiAlertDirective, TuiAlertService } from '@taiga-ui/core/portals/alert';
15
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
16
+ import * as i1$1 from '@taiga-ui/cdk/directives/animated';
17
+ import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
18
+ import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
19
+ import { TuiTitle } from '@taiga-ui/core/components/title';
20
+ import { TUI_COMMON_ICONS, TUI_CLOSE_WORD } from '@taiga-ui/core/tokens';
21
+ import { injectContext, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
22
+ import { of, switchMap, timer, EMPTY, takeUntil, fromEvent, repeat } from 'rxjs';
11
23
 
12
24
  const ICONS = {
13
25
  info: '@tui.info',
@@ -15,96 +27,126 @@ const ICONS = {
15
27
  negative: '@tui.circle-x',
16
28
  warning: '@tui.circle-alert',
17
29
  neutral: '@tui.info',
18
- /* TODO @deprecated remove in v5 */
19
- success: '@tui.circle-check',
20
- /* TODO @deprecated remove in v5 */
21
- error: '@tui.circle-x',
22
30
  };
23
- /** Default values for the notification options. */
24
31
  const TUI_NOTIFICATION_DEFAULT_OPTIONS = {
25
32
  appearance: 'info',
26
33
  icon: (appearance) => ICONS[appearance] ?? '',
27
34
  size: 'l',
35
+ data: undefined,
36
+ autoClose: 3000,
37
+ label: '',
38
+ closable: true,
39
+ block: 'start',
40
+ inline: 'end',
28
41
  };
29
- /**
30
- * Default parameters for notification alert component
31
- */
32
42
  const [TUI_NOTIFICATION_OPTIONS, tuiNotificationOptionsProvider] = tuiCreateOptions(TUI_NOTIFICATION_DEFAULT_OPTIONS);
43
+ const TUI_NOTIFICATION_CONCURRENCY = new InjectionToken(ngDevMode ? 'TUI_NOTIFICATION_CONCURRENCY' : '', { factory: () => 5 });
33
44
 
34
- class TuiNotificationStyles {
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiNotificationStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-notification" }, ngImport: i0, template: '', isInline: true, styles: ["tui-notification,[tuiNotification]{-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:block;max-block-size:100%;color:var(--tui-text-primary);padding:1rem;font:var(--tui-font-text-m);line-height:1.5rem;border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-start: 0;--t-end: 0}tui-notification[style*=\"--t-icon-start:\"],[tuiNotification][style*=\"--t-icon-start:\"]{--t-start: 2rem}tui-notification[style*=\"--t-icon-end:\"],[tuiNotification][style*=\"--t-icon-end:\"]{--t-end: 1.5rem}tui-notification:before,[tuiNotification]:before{position:absolute;left:-1rem;inset-inline-start:-1rem}tui-notification:after,[tuiNotification]:after{position:absolute;top:50%;transform:translateY(-50%);right:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}@supports (inset-inline-end: 0){tui-notification:after,[tuiNotification]:after{right:unset;inset-inline-end:-.5rem}}tui-notification[data-size=s],[tuiNotification][data-size=s]{padding:.375rem .625rem;font:var(--tui-font-text-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}tui-notification[data-size=s][style*=\"--t-icon-start:\"],[tuiNotification][data-size=s][style*=\"--t-icon-start:\"]{--t-start: 1.5rem}tui-notification[data-size=s]:before,[tuiNotification][data-size=s]:before{top:.5rem;left:-.875rem;inset-inline-start:-.875rem;font-size:1rem}tui-notification[data-size=s]:after,[tuiNotification][data-size=s]:after{right:-.875rem}@supports (inset-inline-end: 0){tui-notification[data-size=s]:after,[tuiNotification][data-size=s]:after{right:unset;inset-inline-end:-.875rem}}tui-notification[data-size=s] tui-icon,[tuiNotification][data-size=s] tui-icon{font-size:1rem}tui-notification[data-size=s] [tuiTitle],[tuiNotification][data-size=s] [tuiTitle]{font:var(--tui-font-text-s);font-weight:700}tui-notification[data-size=s] [tuiSubtitle],[tuiNotification][data-size=s] [tuiSubtitle]{font:var(--tui-font-text-s)}tui-notification[data-size=s] [tuiSubtitle]+*,[tuiNotification][data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}tui-notification[data-size=s]>[tuiIconButton],[tuiNotification][data-size=s]>[tuiIconButton]{top:0;right:0}@supports (inset-inline-end: 0){tui-notification[data-size=s]>[tuiIconButton],[tuiNotification][data-size=s]>[tuiIconButton]{right:unset;inset-inline-end:0}}tui-notification[data-size=m],[tuiNotification][data-size=m]{padding:.75rem;font:var(--tui-font-text-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}tui-notification[data-size=m][style*=\"--t-icon-start:\"],[tuiNotification][data-size=m][style*=\"--t-icon-start:\"]{--t-start: 1.625rem}tui-notification[data-size=m]:before,[tuiNotification][data-size=m]:before{left:-.875rem;inset-inline-start:-.875rem;font-size:1.25rem}tui-notification[data-size=m]:after,[tuiNotification][data-size=m]:after{right:-.75rem}@supports (inset-inline-end: 0){tui-notification[data-size=m]:after,[tuiNotification][data-size=m]:after{right:unset;inset-inline-end:-.75rem}}tui-notification[data-size=m] tui-icon,[tuiNotification][data-size=m] tui-icon{font-size:1.25rem}tui-notification[data-size=m] [tuiTitle],[tuiNotification][data-size=m] [tuiTitle]{font:var(--tui-font-text-ui-m);font-weight:700}tui-notification[data-size=m] [tuiSubtitle],[tuiNotification][data-size=m] [tuiSubtitle]{font:var(--tui-font-text-s)}tui-notification[data-size=m] [tuiSubtitle]+*,[tuiNotification][data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}tui-notification[data-size=m]>[tuiIconButton],[tuiNotification][data-size=m]>[tuiIconButton]{top:.375rem;right:.5rem}@supports (inset-inline-end: 0){tui-notification[data-size=m]>[tuiIconButton],[tuiNotification][data-size=m]>[tuiIconButton]{right:unset;inset-inline-end:.5rem}}tui-notification [tuiTitle],[tuiNotification] [tuiTitle]{gap:.125rem;font:var(--tui-font-text-ui-l);font-weight:700}tui-notification [tuiSubtitle],[tuiNotification] [tuiSubtitle]{font:var(--tui-font-text-m)}tui-notification [tuiSubtitle]+*,[tuiNotification] [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-font-text-s)}tui-notification>[tuiIconButton],[tuiNotification]>[tuiIconButton]{position:absolute;top:.75rem;right:.75rem;box-shadow:none!important;background:transparent!important}@supports (inset-inline-end: 0){tui-notification>[tuiIconButton],[tuiNotification]>[tuiIconButton]{right:unset;inset-inline-end:.75rem}}[tuiNotification]{cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
45
+ class Styles {
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-notification" }, ngImport: i0, template: '', isInline: true, styles: ["tui-notification,[tuiNotification]{-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:block;max-block-size:100%;color:var(--tui-text-primary);padding:1rem;font:var(--tui-font-text-m);line-height:1.5rem;border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-start: 0;--t-end: 0}tui-notification[style*=\"--t-icon-start:\"],[tuiNotification][style*=\"--t-icon-start:\"]{--t-start: 2rem}tui-notification[style*=\"--t-icon-end:\"],[tuiNotification][style*=\"--t-icon-end:\"]{--t-end: 1.5rem}tui-notification:before,[tuiNotification]:before{position:absolute;left:-1rem;inset-inline-start:-1rem}tui-notification:after,[tuiNotification]:after{position:absolute;top:50%;transform:translateY(-50%);right:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}@supports (inset-inline-end: 0){tui-notification:after,[tuiNotification]:after{right:unset;inset-inline-end:-.5rem}}tui-notification[data-size=s],[tuiNotification][data-size=s]{padding:.375rem .625rem;font:var(--tui-font-text-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}tui-notification[data-size=s][style*=\"--t-icon-start:\"],[tuiNotification][data-size=s][style*=\"--t-icon-start:\"]{--t-start: 1.5rem}tui-notification[data-size=s]:before,[tuiNotification][data-size=s]:before{top:.5rem;left:-.875rem;inset-inline-start:-.875rem;font-size:1rem}tui-notification[data-size=s]:after,[tuiNotification][data-size=s]:after{right:-.875rem}@supports (inset-inline-end: 0){tui-notification[data-size=s]:after,[tuiNotification][data-size=s]:after{right:unset;inset-inline-end:-.875rem}}tui-notification[data-size=s] tui-icon,[tuiNotification][data-size=s] tui-icon{font-size:1rem}tui-notification[data-size=s] [tuiTitle],[tuiNotification][data-size=s] [tuiTitle]{font:var(--tui-font-text-s);font-weight:700}tui-notification[data-size=s] [tuiSubtitle],[tuiNotification][data-size=s] [tuiSubtitle]{font:var(--tui-font-text-s)}tui-notification[data-size=s] [tuiSubtitle]+*,[tuiNotification][data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}tui-notification[data-size=s]>[tuiIconButton],[tuiNotification][data-size=s]>[tuiIconButton]{top:0;right:0}@supports (inset-inline-end: 0){tui-notification[data-size=s]>[tuiIconButton],[tuiNotification][data-size=s]>[tuiIconButton]{right:unset;inset-inline-end:0}}tui-notification[data-size=m],[tuiNotification][data-size=m]{padding:.75rem;font:var(--tui-font-text-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}tui-notification[data-size=m][style*=\"--t-icon-start:\"],[tuiNotification][data-size=m][style*=\"--t-icon-start:\"]{--t-start: 1.625rem}tui-notification[data-size=m]:before,[tuiNotification][data-size=m]:before{left:-.875rem;inset-inline-start:-.875rem;font-size:1.25rem}tui-notification[data-size=m]:after,[tuiNotification][data-size=m]:after{right:-.75rem}@supports (inset-inline-end: 0){tui-notification[data-size=m]:after,[tuiNotification][data-size=m]:after{right:unset;inset-inline-end:-.75rem}}tui-notification[data-size=m] tui-icon,[tuiNotification][data-size=m] tui-icon{font-size:1.25rem}tui-notification[data-size=m] [tuiTitle],[tuiNotification][data-size=m] [tuiTitle]{font:var(--tui-font-text-ui-m);font-weight:700}tui-notification[data-size=m] [tuiSubtitle],[tuiNotification][data-size=m] [tuiSubtitle]{font:var(--tui-font-text-s)}tui-notification[data-size=m] [tuiSubtitle]+*,[tuiNotification][data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}tui-notification[data-size=m]>[tuiIconButton],[tuiNotification][data-size=m]>[tuiIconButton]{top:.375rem;right:.5rem}@supports (inset-inline-end: 0){tui-notification[data-size=m]>[tuiIconButton],[tuiNotification][data-size=m]>[tuiIconButton]{right:unset;inset-inline-end:.5rem}}tui-notification [tuiTitle],[tuiNotification] [tuiTitle]{gap:.125rem;font:var(--tui-font-text-ui-l);font-weight:700}tui-notification [tuiSubtitle],[tuiNotification] [tuiSubtitle]{font:var(--tui-font-text-m)}tui-notification [tuiSubtitle]+*,[tuiNotification] [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-font-text-s)}tui-notification>[tuiIconButton],[tuiNotification]>[tuiIconButton]{position:absolute;top:.75rem;right:.75rem;box-shadow:none!important;background:transparent!important}@supports (inset-inline-end: 0){tui-notification>[tuiIconButton],[tuiNotification]>[tuiIconButton]{right:unset;inset-inline-end:.75rem}}[tuiNotification]{cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
37
48
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationStyles, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, decorators: [{
39
50
  type: Component,
40
- args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
41
- class: 'tui-notification',
42
- }, styles: ["tui-notification,[tuiNotification]{-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:block;max-block-size:100%;color:var(--tui-text-primary);padding:1rem;font:var(--tui-font-text-m);line-height:1.5rem;border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-start: 0;--t-end: 0}tui-notification[style*=\"--t-icon-start:\"],[tuiNotification][style*=\"--t-icon-start:\"]{--t-start: 2rem}tui-notification[style*=\"--t-icon-end:\"],[tuiNotification][style*=\"--t-icon-end:\"]{--t-end: 1.5rem}tui-notification:before,[tuiNotification]:before{position:absolute;left:-1rem;inset-inline-start:-1rem}tui-notification:after,[tuiNotification]:after{position:absolute;top:50%;transform:translateY(-50%);right:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}@supports (inset-inline-end: 0){tui-notification:after,[tuiNotification]:after{right:unset;inset-inline-end:-.5rem}}tui-notification[data-size=s],[tuiNotification][data-size=s]{padding:.375rem .625rem;font:var(--tui-font-text-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}tui-notification[data-size=s][style*=\"--t-icon-start:\"],[tuiNotification][data-size=s][style*=\"--t-icon-start:\"]{--t-start: 1.5rem}tui-notification[data-size=s]:before,[tuiNotification][data-size=s]:before{top:.5rem;left:-.875rem;inset-inline-start:-.875rem;font-size:1rem}tui-notification[data-size=s]:after,[tuiNotification][data-size=s]:after{right:-.875rem}@supports (inset-inline-end: 0){tui-notification[data-size=s]:after,[tuiNotification][data-size=s]:after{right:unset;inset-inline-end:-.875rem}}tui-notification[data-size=s] tui-icon,[tuiNotification][data-size=s] tui-icon{font-size:1rem}tui-notification[data-size=s] [tuiTitle],[tuiNotification][data-size=s] [tuiTitle]{font:var(--tui-font-text-s);font-weight:700}tui-notification[data-size=s] [tuiSubtitle],[tuiNotification][data-size=s] [tuiSubtitle]{font:var(--tui-font-text-s)}tui-notification[data-size=s] [tuiSubtitle]+*,[tuiNotification][data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}tui-notification[data-size=s]>[tuiIconButton],[tuiNotification][data-size=s]>[tuiIconButton]{top:0;right:0}@supports (inset-inline-end: 0){tui-notification[data-size=s]>[tuiIconButton],[tuiNotification][data-size=s]>[tuiIconButton]{right:unset;inset-inline-end:0}}tui-notification[data-size=m],[tuiNotification][data-size=m]{padding:.75rem;font:var(--tui-font-text-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}tui-notification[data-size=m][style*=\"--t-icon-start:\"],[tuiNotification][data-size=m][style*=\"--t-icon-start:\"]{--t-start: 1.625rem}tui-notification[data-size=m]:before,[tuiNotification][data-size=m]:before{left:-.875rem;inset-inline-start:-.875rem;font-size:1.25rem}tui-notification[data-size=m]:after,[tuiNotification][data-size=m]:after{right:-.75rem}@supports (inset-inline-end: 0){tui-notification[data-size=m]:after,[tuiNotification][data-size=m]:after{right:unset;inset-inline-end:-.75rem}}tui-notification[data-size=m] tui-icon,[tuiNotification][data-size=m] tui-icon{font-size:1.25rem}tui-notification[data-size=m] [tuiTitle],[tuiNotification][data-size=m] [tuiTitle]{font:var(--tui-font-text-ui-m);font-weight:700}tui-notification[data-size=m] [tuiSubtitle],[tuiNotification][data-size=m] [tuiSubtitle]{font:var(--tui-font-text-s)}tui-notification[data-size=m] [tuiSubtitle]+*,[tuiNotification][data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}tui-notification[data-size=m]>[tuiIconButton],[tuiNotification][data-size=m]>[tuiIconButton]{top:.375rem;right:.5rem}@supports (inset-inline-end: 0){tui-notification[data-size=m]>[tuiIconButton],[tuiNotification][data-size=m]>[tuiIconButton]{right:unset;inset-inline-end:.5rem}}tui-notification [tuiTitle],[tuiNotification] [tuiTitle]{gap:.125rem;font:var(--tui-font-text-ui-l);font-weight:700}tui-notification [tuiSubtitle],[tuiNotification] [tuiSubtitle]{font:var(--tui-font-text-m)}tui-notification [tuiSubtitle]+*,[tuiNotification] [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-font-text-s)}tui-notification>[tuiIconButton],[tuiNotification]>[tuiIconButton]{position:absolute;top:.75rem;right:.75rem;box-shadow:none!important;background:transparent!important}@supports (inset-inline-end: 0){tui-notification>[tuiIconButton],[tuiNotification]>[tuiIconButton]{right:unset;inset-inline-end:.75rem}}[tuiNotification]{cursor:pointer}\n"] }]
51
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-notification' }, styles: ["tui-notification,[tuiNotification]{-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;position:relative;display:block;max-block-size:100%;color:var(--tui-text-primary);padding:1rem;font:var(--tui-font-text-m);line-height:1.5rem;border-radius:var(--tui-radius-l);box-sizing:border-box;text-align:start;text-decoration:none;border-inline-start:var(--t-start) solid transparent;border-inline-end:var(--t-end) solid transparent;--t-start: 0;--t-end: 0}tui-notification[style*=\"--t-icon-start:\"],[tuiNotification][style*=\"--t-icon-start:\"]{--t-start: 2rem}tui-notification[style*=\"--t-icon-end:\"],[tuiNotification][style*=\"--t-icon-end:\"]{--t-end: 1.5rem}tui-notification:before,[tuiNotification]:before{position:absolute;left:-1rem;inset-inline-start:-1rem}tui-notification:after,[tuiNotification]:after{position:absolute;top:50%;transform:translateY(-50%);right:-.5rem;font-size:1rem;margin:0;margin-inline-end:-.25rem;margin-inline-start:auto;color:var(--tui-text-tertiary)!important}@supports (inset-inline-end: 0){tui-notification:after,[tuiNotification]:after{right:unset;inset-inline-end:-.5rem}}tui-notification[data-size=s],[tuiNotification][data-size=s]{padding:.375rem .625rem;font:var(--tui-font-text-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}tui-notification[data-size=s][style*=\"--t-icon-start:\"],[tuiNotification][data-size=s][style*=\"--t-icon-start:\"]{--t-start: 1.5rem}tui-notification[data-size=s]:before,[tuiNotification][data-size=s]:before{top:.5rem;left:-.875rem;inset-inline-start:-.875rem;font-size:1rem}tui-notification[data-size=s]:after,[tuiNotification][data-size=s]:after{right:-.875rem}@supports (inset-inline-end: 0){tui-notification[data-size=s]:after,[tuiNotification][data-size=s]:after{right:unset;inset-inline-end:-.875rem}}tui-notification[data-size=s] tui-icon,[tuiNotification][data-size=s] tui-icon{font-size:1rem}tui-notification[data-size=s] [tuiTitle],[tuiNotification][data-size=s] [tuiTitle]{font:var(--tui-font-text-s);font-weight:700}tui-notification[data-size=s] [tuiSubtitle],[tuiNotification][data-size=s] [tuiSubtitle]{font:var(--tui-font-text-s)}tui-notification[data-size=s] [tuiSubtitle]+*,[tuiNotification][data-size=s] [tuiSubtitle]+*{gap:1rem;margin:.375rem 0 .25rem}tui-notification[data-size=s]>[tuiIconButton],[tuiNotification][data-size=s]>[tuiIconButton]{top:0;right:0}@supports (inset-inline-end: 0){tui-notification[data-size=s]>[tuiIconButton],[tuiNotification][data-size=s]>[tuiIconButton]{right:unset;inset-inline-end:0}}tui-notification[data-size=m],[tuiNotification][data-size=m]{padding:.75rem;font:var(--tui-font-text-s);line-height:1.25rem;border-radius:var(--tui-radius-m)}tui-notification[data-size=m][style*=\"--t-icon-start:\"],[tuiNotification][data-size=m][style*=\"--t-icon-start:\"]{--t-start: 1.625rem}tui-notification[data-size=m]:before,[tuiNotification][data-size=m]:before{left:-.875rem;inset-inline-start:-.875rem;font-size:1.25rem}tui-notification[data-size=m]:after,[tuiNotification][data-size=m]:after{right:-.75rem}@supports (inset-inline-end: 0){tui-notification[data-size=m]:after,[tuiNotification][data-size=m]:after{right:unset;inset-inline-end:-.75rem}}tui-notification[data-size=m] tui-icon,[tuiNotification][data-size=m] tui-icon{font-size:1.25rem}tui-notification[data-size=m] [tuiTitle],[tuiNotification][data-size=m] [tuiTitle]{font:var(--tui-font-text-ui-m);font-weight:700}tui-notification[data-size=m] [tuiSubtitle],[tuiNotification][data-size=m] [tuiSubtitle]{font:var(--tui-font-text-s)}tui-notification[data-size=m] [tuiSubtitle]+*,[tuiNotification][data-size=m] [tuiSubtitle]+*{gap:1rem;margin:.625rem 0 .25rem}tui-notification[data-size=m]>[tuiIconButton],[tuiNotification][data-size=m]>[tuiIconButton]{top:.375rem;right:.5rem}@supports (inset-inline-end: 0){tui-notification[data-size=m]>[tuiIconButton],[tuiNotification][data-size=m]>[tuiIconButton]{right:unset;inset-inline-end:.5rem}}tui-notification [tuiTitle],[tuiNotification] [tuiTitle]{gap:.125rem;font:var(--tui-font-text-ui-l);font-weight:700}tui-notification [tuiSubtitle],[tuiNotification] [tuiSubtitle]{font:var(--tui-font-text-m)}tui-notification [tuiSubtitle]+*,[tuiNotification] [tuiSubtitle]+*{display:flex;align-items:center;gap:1.25rem;margin-block-start:.625rem;font:var(--tui-font-text-s)}tui-notification>[tuiIconButton],[tuiNotification]>[tuiIconButton]{position:absolute;top:.75rem;right:.75rem;box-shadow:none!important;background:transparent!important}@supports (inset-inline-end: 0){tui-notification>[tuiIconButton],[tuiNotification]>[tuiIconButton]{right:unset;inset-inline-end:.75rem}}[tuiNotification]{cursor:pointer}\n"] }]
43
52
  }] });
44
- class TuiNotification {
53
+ class TuiNotificationDirective {
45
54
  constructor() {
46
55
  this.options = inject(TUI_NOTIFICATION_OPTIONS);
47
- this.nothing = tuiWithStyles(TuiNotificationStyles);
48
- this.icons = inject(TuiIcons);
49
- this.appearance = this.options.appearance;
50
- this.icon = this.options.icon;
51
- this.size = this.options.size;
52
- }
53
- ngOnInit() {
54
- this.refresh();
55
- }
56
- ngOnChanges() {
57
- this.refresh();
56
+ this.nothing = tuiWithStyles(Styles);
57
+ this.icons = tuiIconStart(computed((icon = this.icon()) => tuiIsString(icon) ? icon : icon(this.appearance())));
58
+ this.appearance = input(this.options.appearance);
59
+ this.size = input(this.options.size);
60
+ this.icon = input(this.options.icon);
58
61
  }
59
- refresh() {
60
- // TODO: Refactor to tuiDirectiveBinding
61
- tuiSetSignal(this.icons.iconStart, tuiIsString(this.icon) ? this.icon : this.icon(this.appearance));
62
- }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotification, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
64
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiNotification, isStandalone: true, selector: "tui-notification,a[tuiNotification],button[tuiNotification]", inputs: { appearance: "appearance", icon: "icon", size: "size" }, host: { properties: { "attr.data-size": "size" } }, providers: [
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
63
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiNotificationDirective, isStandalone: true, selector: "tui-notification,[tuiNotification]:not(ng-template)", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-size": "size()" } }, providers: [
65
64
  tuiAppearanceOptionsProvider(TUI_NOTIFICATION_OPTIONS),
66
- tuiLinkOptionsProvider({
67
- appearance: '',
68
- pseudo: true,
69
- }),
70
- tuiButtonOptionsProvider({
71
- appearance: 'outline-grayscale',
72
- size: 's',
73
- }),
74
- ], usesOnChanges: true, hostDirectives: [{ directive: i1.TuiWithIcons }, { directive: i2.TuiWithAppearance }], ngImport: i0 }); }
65
+ tuiLinkOptionsProvider({ appearance: '', pseudo: true }),
66
+ tuiButtonOptionsProvider({ appearance: 'outline-grayscale', size: 's' }),
67
+ ], hostDirectives: [{ directive: i1.TuiWithIcons }, { directive: i2.TuiWithAppearance }], ngImport: i0 }); }
75
68
  }
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotification, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationDirective, decorators: [{
77
70
  type: Directive,
78
71
  args: [{
79
- standalone: true,
80
- selector: 'tui-notification,a[tuiNotification],button[tuiNotification]',
72
+ selector: 'tui-notification,[tuiNotification]:not(ng-template)',
81
73
  providers: [
82
74
  tuiAppearanceOptionsProvider(TUI_NOTIFICATION_OPTIONS),
83
- tuiLinkOptionsProvider({
84
- appearance: '',
85
- pseudo: true,
86
- }),
87
- tuiButtonOptionsProvider({
88
- appearance: 'outline-grayscale',
89
- size: 's',
90
- }),
75
+ tuiLinkOptionsProvider({ appearance: '', pseudo: true }),
76
+ tuiButtonOptionsProvider({ appearance: 'outline-grayscale', size: 's' }),
91
77
  ],
92
78
  hostDirectives: [TuiWithIcons, TuiWithAppearance],
93
79
  host: {
94
- '[attr.data-size]': 'size',
80
+ '[attr.data-size]': 'size()',
95
81
  },
96
82
  }]
97
- }], propDecorators: { appearance: [{
98
- type: Input
99
- }], icon: [{
100
- type: Input
101
- }], size: [{
102
- type: Input
103
- }] } });
83
+ }] });
84
+
85
+ class TuiNotificationComponent {
86
+ constructor() {
87
+ this.el = tuiInjectElement();
88
+ this.icons = inject(TUI_COMMON_ICONS);
89
+ this.close = inject(TUI_CLOSE_WORD);
90
+ this.item = injectContext();
91
+ this.sub = of(typeof this.item.autoClose === 'function'
92
+ ? this.item.autoClose(this.item.appearance)
93
+ : this.item.autoClose)
94
+ .pipe(switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)), takeUntil(fromEvent(this.el, 'mouseenter')), repeat({ delay: () => fromEvent(this.el, 'mouseleave') }), takeUntilDestroyed())
95
+ .subscribe(() => this.item.$implicit.complete());
96
+ }
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiNotificationComponent, isStandalone: true, selector: "tui-notification-alert", host: { attributes: { "role": "alert" } }, hostDirectives: [{ directive: i1$1.TuiAnimated }, { directive: i2$1.TuiAlertDirective }], ngImport: i0, template: "<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closable]=\"item.closable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </tui-notification>\n</div>\n", styles: [":host{inline-size:18rem;margin:1.625rem 3rem;word-break:break-word;transform:translateZ(0);filter:drop-shadow(0 .375rem 1rem rgba(0,0,0,.12))}:host :host-context(tui-root._mobile){margin:.625rem 1rem}.t-wrapper{background:var(--tui-background-base);clip-path:inset(.375rem 0 round var(--tui-radius-m))}.t-closable{padding-inline-end:2.5rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiNotificationDirective, selector: "tui-notification,[tuiNotification]:not(ng-template)", inputs: ["appearance", "size", "icon"] }, { kind: "directive", type: TuiTitle, selector: "[tuiTitle]", inputs: ["tuiTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationComponent, decorators: [{
101
+ type: Component,
102
+ args: [{ selector: 'tui-notification-alert', imports: [PolymorpheusOutlet, TuiButton, TuiNotificationDirective, TuiTitle], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiAnimated, TuiAlertDirective], host: { role: 'alert' }, template: "<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closable]=\"item.closable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </tui-notification>\n</div>\n", styles: [":host{inline-size:18rem;margin:1.625rem 3rem;word-break:break-word;transform:translateZ(0);filter:drop-shadow(0 .375rem 1rem rgba(0,0,0,.12))}:host :host-context(tui-root._mobile){margin:.625rem 1rem}.t-wrapper{background:var(--tui-background-base);clip-path:inset(.375rem 0 round var(--tui-radius-m))}.t-closable{padding-inline-end:2.5rem}\n"] }]
103
+ }] });
104
+
105
+ class TuiNotificationService extends TuiAlertService {
106
+ constructor() {
107
+ super(inject(TUI_NOTIFICATION_CONCURRENCY));
108
+ this.options = inject(TUI_NOTIFICATION_OPTIONS);
109
+ this.component = TuiNotificationComponent;
110
+ }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
112
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationService, providedIn: 'root' }); }
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationService, decorators: [{
115
+ type: Injectable,
116
+ args: [{
117
+ providedIn: 'root',
118
+ }]
119
+ }], ctorParameters: () => [] });
120
+ class TuiNotificationTemplate {
121
+ constructor() {
122
+ this.tuiNotificationOptions = input({});
123
+ }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationTemplate, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
125
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiNotificationTemplate, isStandalone: true, selector: "ng-template[tuiNotification]", inputs: { tuiNotificationOptions: { classPropertyName: "tuiNotificationOptions", publicName: "tuiNotificationOptions", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsPortal(TuiNotificationService)], hostDirectives: [{ directive: i1$2.TuiPortalDirective, inputs: ["options", "tuiNotificationOptions", "open", "tuiNotification"], outputs: ["openChange", "tuiNotificationChange"] }], ngImport: i0 }); }
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationTemplate, decorators: [{
128
+ type: Directive,
129
+ args: [{
130
+ selector: 'ng-template[tuiNotification]',
131
+ providers: [tuiAsPortal(TuiNotificationService)],
132
+ hostDirectives: [
133
+ {
134
+ directive: TuiPortalDirective,
135
+ inputs: ['options: tuiNotificationOptions', 'open: tuiNotification'],
136
+ outputs: ['openChange: tuiNotificationChange'],
137
+ },
138
+ ],
139
+ }]
140
+ }] });
141
+
142
+ const TuiNotification = [
143
+ TuiNotificationDirective,
144
+ TuiNotificationTemplate,
145
+ ];
104
146
 
105
147
  /**
106
148
  * Generated bundle index. Do not edit.
107
149
  */
108
150
 
109
- export { TUI_NOTIFICATION_DEFAULT_OPTIONS, TUI_NOTIFICATION_OPTIONS, TuiNotification, tuiNotificationOptionsProvider };
151
+ export { TUI_NOTIFICATION_CONCURRENCY, TUI_NOTIFICATION_DEFAULT_OPTIONS, TUI_NOTIFICATION_OPTIONS, TuiNotification, TuiNotificationComponent, TuiNotificationDirective, TuiNotificationService, TuiNotificationTemplate, tuiNotificationOptionsProvider };
110
152
  //# sourceMappingURL=taiga-ui-core-components-notification.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-notification.mjs","sources":["../../../projects/core/components/notification/notification.options.ts","../../../projects/core/components/notification/notification.directive.ts","../../../projects/core/components/notification/taiga-ui-core-components-notification.ts"],"sourcesContent":["import {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiNotificationOptions extends TuiAppearanceOptions {\n readonly icon: TuiStringHandler<string> | string;\n readonly size: TuiSizeL | TuiSizeS;\n}\n\nconst ICONS: Record<string, string> = {\n info: '@tui.info',\n positive: '@tui.circle-check',\n negative: '@tui.circle-x',\n warning: '@tui.circle-alert',\n neutral: '@tui.info',\n /* TODO @deprecated remove in v5 */\n success: '@tui.circle-check',\n /* TODO @deprecated remove in v5 */\n error: '@tui.circle-x',\n};\n\n/** Default values for the notification options. */\nexport const TUI_NOTIFICATION_DEFAULT_OPTIONS: TuiNotificationOptions = {\n appearance: 'info',\n icon: (appearance) => ICONS[appearance] ?? '',\n size: 'l',\n};\n\n/**\n * Default parameters for notification alert component\n */\nexport const [TUI_NOTIFICATION_OPTIONS, tuiNotificationOptionsProvider] =\n tuiCreateOptions(TUI_NOTIFICATION_DEFAULT_OPTIONS);\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n Input,\n type OnChanges,\n type OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {\n tuiIsString,\n tuiSetSignal,\n tuiWithStyles,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiLinkOptionsProvider} from '@taiga-ui/core/components/link';\nimport {\n tuiAppearanceOptionsProvider,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiIcons, TuiWithIcons} from '@taiga-ui/core/directives/icons';\n\nimport {TUI_NOTIFICATION_OPTIONS} from './notification.options';\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/core/styles/components/notification.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-notification',\n },\n})\nclass TuiNotificationStyles {}\n\n@Directive({\n standalone: true,\n selector: 'tui-notification,a[tuiNotification],button[tuiNotification]',\n providers: [\n tuiAppearanceOptionsProvider(TUI_NOTIFICATION_OPTIONS),\n tuiLinkOptionsProvider({\n appearance: '',\n pseudo: true,\n }),\n tuiButtonOptionsProvider({\n appearance: 'outline-grayscale',\n size: 's',\n }),\n ],\n hostDirectives: [TuiWithIcons, TuiWithAppearance],\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiNotification implements OnChanges, OnInit {\n private readonly options = inject(TUI_NOTIFICATION_OPTIONS);\n\n protected readonly nothing = tuiWithStyles(TuiNotificationStyles);\n protected readonly icons = inject(TuiIcons);\n\n @Input()\n public appearance = this.options.appearance;\n\n @Input()\n public icon: TuiStringHandler<string> | string = this.options.icon;\n\n @Input()\n public size = this.options.size;\n\n public ngOnInit(): void {\n this.refresh();\n }\n\n public ngOnChanges(): void {\n this.refresh();\n }\n\n private refresh(): void {\n // TODO: Refactor to tuiDirectiveBinding\n tuiSetSignal(\n this.icons.iconStart,\n tuiIsString(this.icon) ? this.icon : this.icon(this.appearance),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-notification.mjs","sources":["../../../projects/core/components/notification/notification.options.ts","../../../projects/core/components/notification/notification.directive.ts","../../../projects/core/components/notification/notification.component.ts","../../../projects/core/components/notification/notification.template.html","../../../projects/core/components/notification/notification.service.ts","../../../projects/core/components/notification/notification.ts","../../../projects/core/components/notification/taiga-ui-core-components-notification.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\nimport {type TuiNumberHandler, type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\nimport {type TuiPositionOptions} from '@taiga-ui/core/portals/alert';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiNotificationOptions<I = undefined>\n extends TuiAppearanceOptions,\n TuiPositionOptions {\n readonly icon: TuiStringHandler<string> | string;\n readonly size: TuiSizeL | TuiSizeS;\n readonly autoClose: TuiNumberHandler<string> | number;\n readonly closable: boolean;\n readonly label: string;\n readonly data: I;\n}\n\nconst ICONS: Record<string, string> = {\n info: '@tui.info',\n positive: '@tui.circle-check',\n negative: '@tui.circle-x',\n warning: '@tui.circle-alert',\n neutral: '@tui.info',\n};\n\nexport const TUI_NOTIFICATION_DEFAULT_OPTIONS: TuiNotificationOptions = {\n appearance: 'info',\n icon: (appearance) => ICONS[appearance] ?? '',\n size: 'l',\n data: undefined,\n autoClose: 3000,\n label: '',\n closable: true,\n block: 'start',\n inline: 'end',\n};\n\nexport const [TUI_NOTIFICATION_OPTIONS, tuiNotificationOptionsProvider] =\n tuiCreateOptions(TUI_NOTIFICATION_DEFAULT_OPTIONS);\n\nexport const TUI_NOTIFICATION_CONCURRENCY = new InjectionToken(\n ngDevMode ? 'TUI_NOTIFICATION_CONCURRENCY' : '',\n {factory: () => 5},\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsString, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiLinkOptionsProvider} from '@taiga-ui/core/components/link';\nimport {\n tuiAppearanceOptionsProvider,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {tuiIconStart, TuiWithIcons} from '@taiga-ui/core/directives/icons';\n\nimport {TUI_NOTIFICATION_OPTIONS} from './notification.options';\n\n@Component({\n template: '',\n styles: '@import \"@taiga-ui/core/styles/components/notification.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-notification'},\n})\nclass Styles {}\n\n@Directive({\n selector: 'tui-notification,[tuiNotification]:not(ng-template)',\n providers: [\n tuiAppearanceOptionsProvider(TUI_NOTIFICATION_OPTIONS),\n tuiLinkOptionsProvider({appearance: '', pseudo: true}),\n tuiButtonOptionsProvider({appearance: 'outline-grayscale', size: 's'}),\n ],\n hostDirectives: [TuiWithIcons, TuiWithAppearance],\n host: {\n '[attr.data-size]': 'size()',\n },\n})\nexport class TuiNotificationDirective {\n private readonly options = inject(TUI_NOTIFICATION_OPTIONS);\n\n protected readonly nothing = tuiWithStyles(Styles);\n protected readonly icons = tuiIconStart(\n computed((icon = this.icon()) =>\n tuiIsString(icon) ? icon : icon(this.appearance()),\n ),\n );\n\n public readonly appearance = input(this.options.appearance);\n public readonly size = input(this.options.size);\n public readonly icon = input<TuiStringHandler<string> | string>(this.options.icon);\n}\n","import {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiTitle} from '@taiga-ui/core/components/title';\nimport {TuiAlertDirective} from '@taiga-ui/core/portals/alert';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {EMPTY, fromEvent, of, repeat, switchMap, takeUntil, timer} from 'rxjs';\n\nimport {TuiNotificationDirective} from './notification.directive';\nimport {type TuiNotificationOptions} from './notification.options';\n\n@Component({\n selector: 'tui-notification-alert',\n imports: [PolymorpheusOutlet, TuiButton, TuiNotificationDirective, TuiTitle],\n templateUrl: './notification.template.html',\n styleUrl: './notification.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated, TuiAlertDirective],\n host: {role: 'alert'},\n})\nexport class TuiNotificationComponent<O, I> {\n private readonly el = tuiInjectElement();\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly close = inject(TUI_CLOSE_WORD);\n protected readonly item =\n injectContext<TuiPortalContext<TuiNotificationOptions<I>, O>>();\n\n protected readonly sub = of(\n typeof this.item.autoClose === 'function'\n ? this.item.autoClose(this.item.appearance)\n : this.item.autoClose,\n )\n .pipe(\n switchMap((autoClose) => (autoClose ? timer(autoClose) : EMPTY)),\n takeUntil(fromEvent(this.el, 'mouseenter')),\n repeat({delay: () => fromEvent(this.el, 'mouseleave')}),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.item.$implicit.complete());\n}\n","<div class=\"t-wrapper\">\n <tui-notification\n size=\"m\"\n [appearance]=\"item.appearance\"\n [class.t-closable]=\"item.closable\"\n [icon]=\"item.icon\"\n >\n <span tuiTitle>\n <ng-container *polymorpheusOutlet=\"item.label as text; context: item\">\n {{ text }}\n </ng-container>\n <span tuiSubtitle>\n <span\n *polymorpheusOutlet=\"item.content as text; context: item\"\n [innerHTML]=\"text\"\n ></span>\n </span>\n </span>\n @if (item.closable) {\n <button\n tuiIconButton\n type=\"button\"\n [iconStart]=\"icons.close\"\n (click)=\"item.$implicit.complete()\"\n >\n {{ close() }}\n </button>\n }\n </tui-notification>\n</div>\n","import {Directive, inject, Injectable, input} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\nimport {TuiAlertService} from '@taiga-ui/core/portals/alert';\n\nimport {TuiNotificationComponent} from './notification.component';\nimport {\n TUI_NOTIFICATION_CONCURRENCY,\n TUI_NOTIFICATION_OPTIONS,\n type TuiNotificationOptions,\n} from './notification.options';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiNotificationService extends TuiAlertService<TuiNotificationOptions<any>> {\n protected override readonly options = inject(TUI_NOTIFICATION_OPTIONS);\n protected override readonly component = TuiNotificationComponent;\n\n constructor() {\n super(inject(TUI_NOTIFICATION_CONCURRENCY));\n }\n}\n\n@Directive({\n selector: 'ng-template[tuiNotification]',\n providers: [tuiAsPortal(TuiNotificationService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['options: tuiNotificationOptions', 'open: tuiNotification'],\n outputs: ['openChange: tuiNotificationChange'],\n },\n ],\n})\nexport class TuiNotificationTemplate<T> {\n public readonly tuiNotificationOptions = input<Partial<TuiNotificationOptions<T>>>(\n {},\n );\n}\n","import {TuiNotificationDirective} from './notification.directive';\nimport {TuiNotificationTemplate} from './notification.service';\n\nexport const TuiNotification = [\n TuiNotificationDirective,\n TuiNotificationTemplate,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -3,8 +3,6 @@ import * as i0 from '@angular/core';
3
3
  import { inject, signal, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
4
4
  import { toSignal } from '@angular/core/rxjs-interop';
5
5
  import { TUI_VERSION } from '@taiga-ui/cdk/constants';
6
- import * as i4 from '@taiga-ui/cdk/directives/active-zone';
7
- import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
8
6
  import * as i3 from '@taiga-ui/cdk/directives/font-size';
9
7
  import { TuiFontSize } from '@taiga-ui/cdk/directives/font-size';
10
8
  import * as i1 from '@taiga-ui/cdk/directives/platform';
@@ -13,16 +11,11 @@ import * as i2 from '@taiga-ui/cdk/directives/visual-viewport';
13
11
  import { TuiVisualViewport } from '@taiga-ui/cdk/directives/visual-viewport';
14
12
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
15
13
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
16
- import { TuiAlerts } from '@taiga-ui/core/components/alert';
17
- import { TuiDialogs } from '@taiga-ui/core/components/dialog';
18
14
  import { TUI_SCROLLBAR_OPTIONS, TuiScrollControls } from '@taiga-ui/core/components/scrollbar';
19
- import { TuiDropdowns } from '@taiga-ui/core/directives/dropdown';
20
- import { TuiHints } from '@taiga-ui/core/directives/hint';
21
- import { TuiPopups } from '@taiga-ui/core/directives/popup';
15
+ import { TuiPopups } from '@taiga-ui/core/portals/popup';
22
16
  import { TuiBreakpointService } from '@taiga-ui/core/services';
23
17
  import { TUI_REDUCED_MOTION, TUI_ANIMATIONS_SPEED } from '@taiga-ui/core/tokens';
24
18
  import { tuiGetDuration, TUI_OPTIONS } from '@taiga-ui/core/utils/miscellaneous';
25
- import { map } from 'rxjs';
26
19
 
27
20
  class TuiRoot {
28
21
  constructor() {
@@ -32,7 +25,7 @@ class TuiRoot {
32
25
  this.reducedMotion = inject(TUI_REDUCED_MOTION);
33
26
  this.duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));
34
27
  this.top = signal(this.parent);
35
- this.isMobileRes = toSignal(inject(TuiBreakpointService).pipe(map((breakpoint) => breakpoint === 'mobile')));
28
+ this.breakpoint = toSignal(inject(TuiBreakpointService));
36
29
  this.scrollbars = !inject(TUI_IS_MOBILE) &&
37
30
  !this.child &&
38
31
  inject(TUI_SCROLLBAR_OPTIONS).mode !== 'native' &&
@@ -42,26 +35,19 @@ class TuiRoot {
42
35
  return this.doc.fullscreenElement === this.el || !this.child;
43
36
  }
44
37
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "4.52.0-canary.6043e8f" }, listeners: { "touchstart.passive.zoneless": "0", "document:fullscreenchange": "top.set(parent)" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }, { directive: i4.TuiActiveZone }], ngImport: i0, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n@if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n}\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;z-index:0;top:0;right:0;bottom:0;left:0}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "component", type: TuiAlerts, selector: "tui-alerts" }, { kind: "component", type: TuiDialogs, selector: "tui-dialogs" }, { kind: "component", type: TuiDropdowns, selector: "tui-dropdowns" }, { kind: "component", type: TuiHints, selector: "tui-hints" }, { kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "4.52.0-canary.61fea47" }, listeners: { "touchstart.passive.zoneless": "0", "document:fullscreenchange": "top.set(parent)" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "breakpoint() === \"mobile\"" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n@if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups>\n <ng-content select=\"tuiOverContent\" />\n </tui-popups>\n}\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{opacity:.99999}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;z-index:0;inset:0}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
46
39
  }
47
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiRoot, decorators: [{
48
41
  type: Component,
49
- args: [{ selector: 'tui-root', imports: [
50
- TuiAlerts,
51
- TuiDialogs,
52
- TuiDropdowns,
53
- TuiHints,
54
- TuiPopups,
55
- TuiScrollControls,
56
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, hostDirectives: [TuiPlatform, TuiVisualViewport, TuiFontSize, TuiActiveZone], host: {
42
+ args: [{ selector: 'tui-root', imports: [TuiPopups, TuiScrollControls], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, hostDirectives: [TuiPlatform, TuiVisualViewport, TuiFontSize], host: {
57
43
  'data-tui-version': TUI_VERSION,
58
44
  '[style.--tui-duration.ms]': 'duration',
59
45
  '[style.--tui-scroll-behavior]': 'reducedMotion ? "auto" : "smooth"',
60
- '[class._mobile]': 'isMobileRes()',
46
+ '[class._mobile]': 'breakpoint() === "mobile"',
61
47
  // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490
62
48
  '(touchstart.passive.zoneless)': '0',
63
49
  '(document:fullscreenchange)': 'top.set(parent)',
64
- }, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n@if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n}\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;z-index:0;top:0;right:0;bottom:0;left:0}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"] }]
50
+ }, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n@if (top()) {\n @if (scrollbars) {\n <tui-scroll-controls class=\"t-root-scrollbar\" />\n }\n <tui-popups>\n <ng-content select=\"tuiOverContent\" />\n </tui-popups>\n}\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{opacity:.99999}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(var(--tui-scale, 0))}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;z-index:0;inset:0}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"] }]
65
51
  }] });
66
52
 
67
53
  /**