@taiga-ui/kit 4.52.0-canary.eb5ffe3 → 4.52.0-canary.ec0802b

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 (212) hide show
  1. package/README.md +1 -1
  2. package/components/badge/badge.options.d.ts +1 -3
  3. package/components/badge-notification/badge-notification.options.d.ts +1 -3
  4. package/components/block/block.options.d.ts +1 -3
  5. package/components/breadcrumbs/breadcrumbs.options.d.ts +1 -3
  6. package/components/chip/chip.options.d.ts +1 -3
  7. package/components/confirm/confirm.component.d.ts +1 -1
  8. package/components/copy/copy.component.d.ts +1 -1
  9. package/components/data-list-wrapper/data-list-wrapper.component.d.ts +1 -1
  10. package/components/files/file/file.options.d.ts +1 -1
  11. package/components/files/input-files/input-files.options.d.ts +1 -3
  12. package/components/input-number/input-number.directive.d.ts +5 -9
  13. package/components/input-phone-international/input-phone-international.options.d.ts +1 -3
  14. package/components/input-range/input-range.component.d.ts +1 -1
  15. package/components/input-time/input-time.directive.d.ts +5 -8
  16. package/components/line-clamp/line-clamp.options.d.ts +1 -3
  17. package/components/notification-middle/notification-middle.component.d.ts +2 -2
  18. package/components/notification-middle/notification-middle.directive.d.ts +4 -3
  19. package/components/notification-middle/notification-middle.service.d.ts +7 -3
  20. package/components/pagination/index.d.ts +1 -0
  21. package/components/pagination/pagination.component.d.ts +2 -1
  22. package/components/pagination/pagination.options.d.ts +10 -0
  23. package/components/preview/dialog/preview-dialog.component.d.ts +2 -2
  24. package/components/preview/dialog/preview-dialog.directive.d.ts +3 -3
  25. package/components/preview/dialog/preview-dialog.service.d.ts +5 -2
  26. package/components/preview/preview.d.ts +2 -1
  27. package/components/progress/progress-bar/progress-color-segments.directive.d.ts +4 -4
  28. package/components/progress/progress.options.d.ts +1 -3
  29. package/components/push/push-alert.component.d.ts +2 -2
  30. package/components/push/push.options.d.ts +1 -1
  31. package/components/push/push.service.d.ts +2 -2
  32. package/components/range/range-change.directive.d.ts +1 -2
  33. package/components/range/range.component.d.ts +16 -19
  34. package/components/rating/rating.options.d.ts +1 -3
  35. package/components/select/native-select/native-select.component.d.ts +4 -5
  36. package/components/slider/slider.options.d.ts +1 -6
  37. package/components/stepper/step.component.d.ts +6 -8
  38. package/components/stepper/stepper.component.d.ts +6 -11
  39. package/components/tabs/tabs.options.d.ts +1 -6
  40. package/components/toast/toast.component.d.ts +4 -4
  41. package/components/toast/toast.options.d.ts +1 -1
  42. package/components/toast/toast.service.d.ts +2 -2
  43. package/components/tree/components/tree-item-content/tree-item-content.component.d.ts +7 -0
  44. package/components/tree/misc/tree.constants.d.ts +0 -3
  45. package/components/tree/misc/tree.tokens.d.ts +1 -6
  46. package/directives/button-close/button-close.directive.d.ts +2 -1
  47. package/directives/button-select/button-select.directive.d.ts +2 -1
  48. package/directives/fluid-typography/fluid-typography.directive.d.ts +3 -6
  49. package/directives/fluid-typography/fluid-typography.options.d.ts +1 -3
  50. package/fesm2022/taiga-ui-kit-components-accordion.mjs +1 -2
  51. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-kit-components-avatar.mjs +3 -3
  53. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +4 -9
  55. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-kit-components-badge.mjs +4 -8
  57. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-kit-components-badged-content.mjs +0 -1
  59. package/fesm2022/taiga-ui-kit-components-badged-content.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-kit-components-block.mjs +4 -8
  61. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +3 -8
  63. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  64. package/fesm2022/taiga-ui-kit-components-button-loading.mjs +3 -3
  65. package/fesm2022/taiga-ui-kit-components-button-loading.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +2 -4
  67. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-kit-components-carousel.mjs +1 -7
  69. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  70. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +1 -1
  71. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-kit-components-chip.mjs +6 -10
  73. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  74. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +0 -1
  75. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-kit-components-compass.mjs +3 -3
  77. package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-kit-components-confirm.mjs +2 -3
  79. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  80. package/fesm2022/taiga-ui-kit-components-copy.mjs +0 -1
  81. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -1
  82. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +2 -2
  83. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  84. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +0 -1
  85. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +1 -1
  86. package/fesm2022/taiga-ui-kit-components-files.mjs +7 -15
  87. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  88. package/fesm2022/taiga-ui-kit-components-floating-container.mjs +2 -2
  89. package/fesm2022/taiga-ui-kit-components-floating-container.mjs.map +1 -1
  90. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +0 -2
  91. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +2 -6
  93. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +0 -1
  95. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +2 -3
  97. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-kit-components-input-date.mjs +6 -13
  99. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +2 -3
  101. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +0 -1
  103. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  104. package/fesm2022/taiga-ui-kit-components-input-month.mjs +0 -1
  105. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-kit-components-input-number.mjs +19 -43
  107. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +6 -10
  109. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +1 -2
  111. package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-kit-components-input-range.mjs +2 -2
  113. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-kit-components-input-time.mjs +13 -35
  115. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-kit-components-input-year.mjs +0 -1
  117. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  118. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +0 -2
  119. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-kit-components-like.mjs +1 -1
  121. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  122. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +4 -9
  123. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  124. package/fesm2022/taiga-ui-kit-components-message.mjs +0 -1
  125. package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
  126. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +5 -5
  127. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  128. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs +31 -20
  129. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs.map +1 -1
  130. package/fesm2022/taiga-ui-kit-components-pagination.mjs +19 -8
  131. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  132. package/fesm2022/taiga-ui-kit-components-pin.mjs +2 -2
  133. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  134. package/fesm2022/taiga-ui-kit-components-preview.mjs +27 -19
  135. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  136. package/fesm2022/taiga-ui-kit-components-progress.mjs +41 -33
  137. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  138. package/fesm2022/taiga-ui-kit-components-pulse.mjs +1 -1
  139. package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
  140. package/fesm2022/taiga-ui-kit-components-push.mjs +5 -5
  141. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  142. package/fesm2022/taiga-ui-kit-components-radio.mjs +3 -4
  143. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  144. package/fesm2022/taiga-ui-kit-components-range.mjs +35 -70
  145. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  146. package/fesm2022/taiga-ui-kit-components-rating.mjs +3 -8
  147. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  148. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs +7 -3
  149. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs.map +1 -1
  150. package/fesm2022/taiga-ui-kit-components-segmented.mjs +3 -4
  151. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  152. package/fesm2022/taiga-ui-kit-components-select.mjs +10 -22
  153. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  154. package/fesm2022/taiga-ui-kit-components-slider.mjs +5 -15
  155. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  156. package/fesm2022/taiga-ui-kit-components-stepper.mjs +41 -75
  157. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  158. package/fesm2022/taiga-ui-kit-components-switch.mjs +1 -1
  159. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  160. package/fesm2022/taiga-ui-kit-components-tabs.mjs +4 -14
  161. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  162. package/fesm2022/taiga-ui-kit-components-textarea.mjs +3 -5
  163. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  164. package/fesm2022/taiga-ui-kit-components-tiles.mjs +2 -3
  165. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  166. package/fesm2022/taiga-ui-kit-components-toast.mjs +12 -12
  167. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -1
  168. package/fesm2022/taiga-ui-kit-components-tree.mjs +34 -39
  169. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  170. package/fesm2022/taiga-ui-kit-directives-button-close.mjs +13 -5
  171. package/fesm2022/taiga-ui-kit-directives-button-close.mjs.map +1 -1
  172. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +12 -4
  173. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
  174. package/fesm2022/taiga-ui-kit-directives-connected.mjs +0 -1
  175. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  176. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs +0 -1
  177. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs.map +1 -1
  178. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +12 -25
  179. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  180. package/fesm2022/taiga-ui-kit-directives-highlight.mjs +0 -1
  181. package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
  182. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +0 -1
  183. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +1 -1
  184. package/fesm2022/taiga-ui-kit-directives-password.mjs +0 -1
  185. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  186. package/fesm2022/taiga-ui-kit-directives-present.mjs +0 -1
  187. package/fesm2022/taiga-ui-kit-directives-present.mjs.map +1 -1
  188. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +2 -2
  189. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  190. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +0 -1
  191. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  192. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs +0 -1
  193. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs.map +1 -1
  194. package/fesm2022/taiga-ui-kit-pipes-emails.mjs +0 -1
  195. package/fesm2022/taiga-ui-kit-pipes-emails.mjs.map +1 -1
  196. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +0 -1
  197. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
  198. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +0 -1
  199. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -1
  200. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs +0 -1
  201. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs.map +1 -1
  202. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs +0 -1
  203. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs.map +1 -1
  204. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs +0 -1
  205. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs.map +1 -1
  206. package/fesm2022/taiga-ui-kit-tokens.mjs +2 -17
  207. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  208. package/package.json +30 -31
  209. package/tokens/items-handlers.d.ts +1 -7
  210. package/tokens/preview-icons.d.ts +1 -3
  211. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs +0 -64
  212. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-preview.mjs","sources":["../../../projects/kit/components/preview/action/preview-action.directive.ts","../../../projects/kit/components/preview/dialog/preview-dialog.component.ts","../../../projects/kit/components/preview/dialog/preview-dialog.service.ts","../../../projects/kit/components/preview/dialog/preview-dialog.directive.ts","../../../projects/kit/components/preview/pagination/preview-pagination.component.ts","../../../projects/kit/components/preview/pagination/preview-pagination.template.html","../../../projects/kit/components/preview/zoom/preview-zoom.component.ts","../../../projects/kit/components/preview/zoom/preview-zoom.template.html","../../../projects/kit/components/preview/preview.component.ts","../../../projects/kit/components/preview/preview.template.html","../../../projects/kit/components/preview/title/preview-title.component.ts","../../../projects/kit/components/preview/preview.ts","../../../projects/kit/components/preview/taiga-ui-kit-components-preview.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\n\n@Directive({\n standalone: true,\n selector: '[tuiPreviewAction]',\n providers: [\n tuiButtonOptionsProvider({\n appearance: 'preview-action',\n size: 's',\n }),\n ],\n host: {\n '[style.border-radius.rem]': '100',\n },\n})\nexport class TuiPreviewAction {}\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'tui-preview-dialog',\n imports: [PolymorpheusOutlet],\n template: `\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n `,\n styleUrl: './preview-dialog.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n '(document:keydown.esc.prevent)': 'context.$implicit.complete()',\n },\n})\nexport class TuiPreviewDialog {\n protected readonly context = injectContext<TuiPopover<void, void>>();\n}\n","import {Injectable} from '@angular/core';\nimport {TuiPopoverService} from '@taiga-ui/cdk/services';\nimport {TUI_DIALOGS} from '@taiga-ui/core/components/dialog';\n\nimport {TuiPreviewDialog} from './preview-dialog.component';\n\n@Injectable({\n providedIn: 'root',\n useFactory: () => new TuiPreviewDialogService(TUI_DIALOGS, TuiPreviewDialog),\n})\nexport class TuiPreviewDialogService extends TuiPopoverService<unknown> {}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {TuiPreviewDialogService} from './preview-dialog.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiPreviewDialog]',\n inputs: ['open: tuiPreviewDialog'],\n outputs: ['openChange: tuiPreviewDialogChange'],\n providers: [tuiAsPopover(TuiPreviewDialogService)],\n})\nexport class TuiPreviewDialogDirective extends TuiPopoverDirective<unknown> {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_PAGINATION_TEXTS, TUI_PREVIEW_ICONS} from '@taiga-ui/kit/tokens';\n\nimport {TuiPreviewAction} from '../action/preview-action.directive';\n\n@Component({\n selector: 'tui-preview-pagination',\n imports: [TuiButton, TuiPreviewAction],\n templateUrl: './preview-pagination.template.html',\n styleUrl: './preview-pagination.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(document:keydown.arrowRight.prevent)': 'onArrowClick(1)',\n '(document:keydown.arrowLeft.prevent)': 'onArrowClick(-1)',\n },\n})\nexport class TuiPreviewPagination {\n protected readonly icons = inject(TUI_PREVIEW_ICONS);\n protected readonly paginationTexts = inject(TUI_PAGINATION_TEXTS);\n\n @Input()\n public length = 1;\n\n @Input()\n public index = 0;\n\n @Output()\n public readonly indexChange = new EventEmitter<number>();\n\n public onArrowClick(step: number): void {\n this.updateIndex(tuiClamp(this.index + step, 0, this.length - 1));\n }\n\n protected get leftButtonDisabled(): boolean {\n return this.index === 0;\n }\n\n protected get rightButtonDisabled(): boolean {\n return this.index === this.length - 1;\n }\n\n private updateIndex(index: number): void {\n if (this.index === index) {\n return;\n }\n\n this.index = index;\n this.indexChange.emit(index);\n }\n}\n","@let texts = paginationTexts();\n<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_left\"\n [disabled]=\"leftButtonDisabled\"\n [iconStart]=\"icons.prev\"\n (click)=\"onArrowClick(-1)\"\n>\n {{ texts[0] }}\n</button>\n{{ index + 1 }}/{{ length }}\n<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_right\"\n [disabled]=\"rightButtonDisabled\"\n [iconStart]=\"icons.next\"\n (click)=\"onArrowClick(1)\"\n>\n {{ texts[1] }}\n</button>\n","import {AsyncPipe, PercentPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiHint} from '@taiga-ui/core/directives/hint';\nimport {TuiSlider} from '@taiga-ui/kit/components/slider';\nimport {TUI_PREVIEW_ICONS, TUI_PREVIEW_ZOOM_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, merge, of, startWith, switchMap, timer} from 'rxjs';\n\nimport {TuiPreviewAction} from '../action/preview-action.directive';\n\nconst STEP = 0.5;\n\n@Component({\n selector: 'tui-preview-zoom',\n imports: [\n AsyncPipe,\n FormsModule,\n PercentPipe,\n TuiButton,\n TuiHint,\n TuiPreviewAction,\n TuiSlider,\n ],\n templateUrl: './preview-zoom.template.html',\n styleUrl: './preview-zoom.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewZoom {\n protected readonly icons = inject(TUI_PREVIEW_ICONS);\n protected readonly zoomTexts = inject(TUI_PREVIEW_ZOOM_TEXTS);\n\n @Input()\n public min = 0.5;\n\n @Input()\n public max = 2;\n\n @Input()\n public value = 1;\n\n @Output()\n public readonly valueChange = new EventEmitter<number>();\n\n @Output()\n public readonly reset = new EventEmitter<void>();\n\n public readonly hintShow$ = this.valueChange.pipe(\n switchMap(() => merge(of(true), timer(1000).pipe(map(TUI_FALSE_HANDLER)))),\n startWith(false),\n );\n\n protected get leftButtonDisabled(): boolean {\n return this.value === this.min;\n }\n\n protected get rightButtonDisabled(): boolean {\n return this.value === this.max;\n }\n\n protected get collapseVisible(): boolean {\n return this.value > this.min;\n }\n\n protected onModelChange(value: number): void {\n const clamped = tuiClamp(value, this.min, this.max);\n\n if (clamped === this.value) {\n return;\n }\n\n this.value = clamped;\n this.valueChange.emit(clamped);\n }\n\n protected onReset(): void {\n this.reset.emit();\n }\n\n protected onMinus(): void {\n this.onModelChange(this.value - STEP);\n }\n\n protected onPlus(): void {\n this.onModelChange(this.value < 1 ? 1 : this.value + STEP);\n }\n}\n","@let texts = zoomTexts();\n<section class=\"t-zoom\">\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-sign_minus\"\n [disabled]=\"leftButtonDisabled\"\n [iconStart]=\"icons.zoomOut\"\n (click)=\"onMinus()\"\n >\n {{ texts.zoomOut }}\n </button>\n <label tuiSliderThumbLabel>\n <div\n [tuiHint]=\"hint\"\n [tuiHintManual]=\"!!(hintShow$ | async)\"\n ></div>\n <ng-template #hint>\n {{ (valueChange | async) || value | percent }}\n </ng-template>\n <input\n step=\"any\"\n tuiSlider\n tuiTheme=\"dark\"\n type=\"range\"\n class=\"t-slider\"\n [max]=\"max\"\n [min]=\"min\"\n [ngModel]=\"value\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n </label>\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-sign_plus\"\n [disabled]=\"rightButtonDisabled\"\n [iconStart]=\"icons.zoomIn\"\n (click)=\"onPlus()\"\n >\n {{ texts.zoomIn }}\n </button>\n</section>\n<button\n tuiHintAppearance=\"dark\"\n tuiHintDescribe\n tuiHintDirection=\"top-right\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-reset-button\"\n [class.t-invisible]=\"!collapseVisible\"\n [iconStart]=\"icons.zoomReset\"\n [tuiHint]=\"texts.reset\"\n (click)=\"onReset()\"\n></button>\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n} from '@angular/core';\nimport {WaMutationObserver} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiPan} from '@taiga-ui/cdk/directives/pan';\nimport {TuiZoom, type TuiZoomEvent} from '@taiga-ui/cdk/directives/zoom';\nimport {tuiDragAndDropFrom, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp, tuiRound} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiHint} from '@taiga-ui/core/directives/hint';\nimport {TUI_PREVIEW_ICONS, TUI_PREVIEW_TEXTS} from '@taiga-ui/kit/tokens';\nimport {BehaviorSubject, combineLatest, map, merge, startWith} from 'rxjs';\n\nimport {TuiPreviewAction} from './action/preview-action.directive';\nimport {TuiPreviewZoom} from './zoom/preview-zoom.component';\n\nconst EMPTY_COORDINATES: [number, number] = [0, 0];\nconst ROTATION_ANGLE = 90;\n\n@Component({\n selector: 'tui-preview',\n imports: [\n AsyncPipe,\n TuiButton,\n TuiHint,\n TuiPan,\n TuiPreviewAction,\n TuiPreviewZoom,\n TuiZoom,\n WaMutationObserver,\n WaResizeObserver,\n ],\n templateUrl: './preview.template.html',\n styleUrl: './preview.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewComponent {\n private readonly el = tuiInjectElement();\n\n protected minZoom = 1;\n protected width = 0;\n protected height = 0;\n protected readonly previewTexts = inject(TUI_PREVIEW_TEXTS);\n protected readonly icons = inject(TUI_PREVIEW_ICONS);\n protected readonly cdr = inject(ChangeDetectorRef);\n protected readonly zoom$ = new BehaviorSubject<number>(this.minZoom);\n protected readonly rotation$ = new BehaviorSubject<number>(0);\n protected readonly coordinates$ = new BehaviorSubject<readonly [number, number]>(\n EMPTY_COORDINATES,\n );\n\n protected readonly transitioned$ = merge(\n tuiDragAndDropFrom(this.el).pipe(map(({stage}) => stage !== 'continues')),\n tuiTypedFromEvent(this.el, 'touchmove', {\n passive: true,\n }).pipe(map(TUI_FALSE_HANDLER)),\n tuiTypedFromEvent(this.el, 'wheel', {passive: true}).pipe(map(TUI_FALSE_HANDLER)),\n );\n\n protected readonly cursor$ = tuiDragAndDropFrom(this.el).pipe(\n map(({stage}) => (stage === 'continues' ? 'grabbing' : 'initial')),\n startWith('initial'),\n );\n\n protected readonly wrapperTransform$ = combineLatest([\n this.coordinates$.pipe(map(([x, y]) => `${tuiPx(x)}, ${tuiPx(y)}`)),\n this.zoom$,\n this.rotation$,\n ]).pipe(\n map(\n ([translate, zoom, rotation]) =>\n `translate(${translate}) scale(${zoom}) rotate(${rotation}deg)`,\n ),\n );\n\n @Input()\n public zoomable = true;\n\n @Input()\n public rotatable = false;\n\n @Input()\n public initialScale = 0.8;\n\n protected rotate(): void {\n this.rotation$.next(this.rotation$.value - ROTATION_ANGLE);\n }\n\n protected onPan(delta: readonly [number, number]): void {\n this.coordinates$.next(\n this.getGuardedCoordinates(\n this.coordinates$.value[0] + delta[0],\n this.coordinates$.value[1] + delta[1],\n ),\n );\n }\n\n protected onMutation(contentWrapper: HTMLElement): void {\n const {clientWidth, clientHeight} = contentWrapper;\n\n this.refresh(clientWidth, clientHeight);\n }\n\n protected onZoom({clientX, clientY, delta}: TuiZoomEvent): void {\n if (this.zoomable) {\n this.processZoom(clientX, clientY, delta);\n }\n }\n\n protected onResize([entry]: readonly ResizeObserverEntry[]): void {\n if (entry?.contentRect) {\n this.refresh(entry.contentRect.width, entry.contentRect.height);\n this.cdr.detectChanges();\n }\n }\n\n protected reset(): void {\n this.zoom$.next(this.minZoom);\n this.coordinates$.next(EMPTY_COORDINATES);\n }\n\n protected setZoom(zoom: number): void {\n this.zoom$.next(zoom);\n const [x, y] = this.coordinates$.value;\n\n this.coordinates$.next(this.getGuardedCoordinates(x, y));\n }\n\n private get offsets(): {offsetX: number; offsetY: number} {\n const offsetX = ((this.zoom$.value - this.minZoom) * this.width) / 2;\n const offsetY = ((this.zoom$.value - this.minZoom) * this.height) / 2;\n\n return {offsetX, offsetY};\n }\n\n private calculateMinZoom(\n contentHeight: number,\n contentWidth: number,\n boxHeight: number,\n boxWidth: number,\n ): number {\n const bigSize =\n contentHeight > boxHeight * this.initialScale ||\n contentWidth > boxWidth * this.initialScale;\n const {clientHeight, clientWidth} = this.el;\n\n return bigSize\n ? tuiRound(\n Math.min(\n (clientHeight * this.initialScale) / contentHeight,\n (clientWidth * this.initialScale) / contentWidth,\n ),\n 2,\n )\n : 1;\n }\n\n private refresh(width: number, height: number): void {\n this.width = width;\n this.height = height;\n this.minZoom = this.calculateMinZoom(\n height,\n width,\n this.el.clientHeight,\n this.el.clientWidth,\n );\n this.zoom$.next(this.minZoom);\n this.coordinates$.next(EMPTY_COORDINATES);\n this.rotation$.next(0);\n }\n\n private processZoom(clientX: number, clientY: number, delta: number): void {\n const oldScale = this.zoom$.value;\n const newScale = tuiClamp(oldScale + delta, this.minZoom, 2);\n\n const center = this.getScaleCenter(\n {clientX, clientY},\n this.coordinates$.value,\n this.zoom$.value,\n );\n\n const moveX = center[0] * oldScale - center[0] * newScale;\n const moveY = center[1] * oldScale - center[1] * newScale;\n\n this.zoom$.next(newScale);\n this.coordinates$.next(\n this.getGuardedCoordinates(\n this.coordinates$.value[0] + moveX,\n this.coordinates$.value[1] + moveY,\n ),\n );\n }\n\n private getGuardedCoordinates(x: number, y: number): readonly [number, number] {\n const {offsetX, offsetY} = this.offsets;\n\n return [tuiClamp(x, -offsetX, offsetX), tuiClamp(y, -offsetY, offsetY)];\n }\n\n private getScaleCenter(\n {clientX, clientY}: {clientX: number; clientY: number},\n [x, y]: readonly [number, number],\n scale: number,\n ): [number, number] {\n return [\n (clientX - x - this.el.offsetWidth / 2) / scale,\n (clientY - y - this.el.offsetHeight / 2) / scale,\n ];\n }\n}\n","@let texts = previewTexts();\n<section\n #contentWrapper\n attributeFilter=\"src\"\n characterData\n childList\n subtree\n class=\"t-wrapper\"\n [class.t-not-interactive-content]=\"zoomable\"\n [class.t-transitive]=\"transitioned$ | async\"\n [style.cursor]=\"cursor$ | async\"\n [style.transform]=\"wrapperTransform$ | async\"\n (tuiPan)=\"onPan($event)\"\n (tuiZoom)=\"onZoom($event)\"\n (waMutationObserver)=\"onMutation(contentWrapper)\"\n (waResizeObserver)=\"onResize($event)\"\n>\n <ng-content />\n</section>\n<header class=\"t-header\">\n <div class=\"t-title\">\n <ng-content select=\"tui-preview-title\" />\n </div>\n <ng-content select=\"tui-preview-pagination\" />\n <div class=\"t-actions\">\n <ng-content select=\"[tuiPreviewAction]\" />\n </div>\n</header>\n<footer class=\"t-footer\">\n @if (rotatable) {\n <button\n tuiHintAppearance=\"dark\"\n tuiHintDescribe\n tuiHintDirection=\"top-right\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-rotate-button\"\n [iconStart]=\"icons.rotate\"\n [tuiHint]=\"texts.rotate\"\n (click)=\"rotate()\"\n ></button>\n }\n @if (zoomable) {\n <tui-preview-zoom\n [min]=\"minZoom\"\n [value]=\"(zoom$ | async) || 1\"\n (reset)=\"reset()\"\n (valueChange)=\"setZoom($event)\"\n />\n }\n</footer>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'tui-preview-title',\n template: `\n <ng-content />\n `,\n styleUrl: './preview-title.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewTitle {}\n","import {TuiPreviewAction} from './action/preview-action.directive';\nimport {TuiPreviewPagination} from './pagination/preview-pagination.component';\nimport {TuiPreviewComponent} from './preview.component';\nimport {TuiPreviewTitle} from './title/preview-title.component';\nimport {TuiPreviewZoom} from './zoom/preview-zoom.component';\n\nexport const TuiPreview = [\n TuiPreviewComponent,\n TuiPreviewTitle,\n TuiPreviewPagination,\n TuiPreviewAction,\n TuiPreviewZoom,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-preview.mjs","sources":["../../../projects/kit/components/preview/action/preview-action.directive.ts","../../../projects/kit/components/preview/dialog/preview-dialog.component.ts","../../../projects/kit/components/preview/dialog/preview-dialog.service.ts","../../../projects/kit/components/preview/dialog/preview-dialog.directive.ts","../../../projects/kit/components/preview/pagination/preview-pagination.component.ts","../../../projects/kit/components/preview/pagination/preview-pagination.template.html","../../../projects/kit/components/preview/zoom/preview-zoom.component.ts","../../../projects/kit/components/preview/zoom/preview-zoom.template.html","../../../projects/kit/components/preview/preview.component.ts","../../../projects/kit/components/preview/preview.template.html","../../../projects/kit/components/preview/title/preview-title.component.ts","../../../projects/kit/components/preview/preview.ts","../../../projects/kit/components/preview/taiga-ui-kit-components-preview.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\n\n@Directive({\n selector: '[tuiPreviewAction]',\n providers: [\n tuiButtonOptionsProvider({\n appearance: 'preview-action',\n size: 's',\n }),\n ],\n host: {\n '[style.border-radius.rem]': '100',\n },\n})\nexport class TuiPreviewAction {}\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'tui-preview-dialog',\n imports: [PolymorpheusOutlet],\n template: `\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n {{ text }}\n </ng-container>\n `,\n styleUrl: './preview-dialog.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated],\n host: {\n '(document:keydown.esc.prevent)': 'context.$implicit.complete()',\n },\n})\nexport class TuiPreviewDialog {\n protected readonly context = injectContext<TuiPortalContext<void>>();\n}\n","import {Injectable} from '@angular/core';\nimport {TuiModalService} from '@taiga-ui/core/components/modal';\n\nimport {TuiPreviewDialog} from './preview-dialog.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiPreviewDialogService extends TuiModalService<unknown> {\n protected readonly options = {};\n protected readonly content = TuiPreviewDialog;\n}\n","import {Directive} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {TuiPreviewDialogService} from './preview-dialog.service';\n\n@Directive({\n selector: 'ng-template[tuiPreviewDialog]',\n providers: [tuiAsPortal(TuiPreviewDialogService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['open: tuiPreviewDialog'],\n outputs: ['openChange: tuiPreviewDialogChange'],\n },\n ],\n})\nexport class TuiPreviewDialogDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_PAGINATION_TEXTS, TUI_PREVIEW_ICONS} from '@taiga-ui/kit/tokens';\n\nimport {TuiPreviewAction} from '../action/preview-action.directive';\n\n@Component({\n selector: 'tui-preview-pagination',\n imports: [TuiButton, TuiPreviewAction],\n templateUrl: './preview-pagination.template.html',\n styleUrl: './preview-pagination.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(document:keydown.arrowRight.prevent)': 'onArrowClick(1)',\n '(document:keydown.arrowLeft.prevent)': 'onArrowClick(-1)',\n },\n})\nexport class TuiPreviewPagination {\n protected readonly icons = inject(TUI_PREVIEW_ICONS);\n protected readonly paginationTexts = inject(TUI_PAGINATION_TEXTS);\n\n @Input()\n public length = 1;\n\n @Input()\n public index = 0;\n\n @Output()\n public readonly indexChange = new EventEmitter<number>();\n\n public onArrowClick(step: number): void {\n this.updateIndex(tuiClamp(this.index + step, 0, this.length - 1));\n }\n\n protected get leftButtonDisabled(): boolean {\n return this.index === 0;\n }\n\n protected get rightButtonDisabled(): boolean {\n return this.index === this.length - 1;\n }\n\n private updateIndex(index: number): void {\n if (this.index === index) {\n return;\n }\n\n this.index = index;\n this.indexChange.emit(index);\n }\n}\n","@let texts = paginationTexts();\n<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_left\"\n [disabled]=\"leftButtonDisabled\"\n [iconStart]=\"icons.prev\"\n (click)=\"onArrowClick(-1)\"\n>\n {{ texts[0] }}\n</button>\n{{ index + 1 }}/{{ length }}\n<button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-arrow t-arrow_right\"\n [disabled]=\"rightButtonDisabled\"\n [iconStart]=\"icons.next\"\n (click)=\"onArrowClick(1)\"\n>\n {{ texts[1] }}\n</button>\n","import {AsyncPipe, PercentPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiHint} from '@taiga-ui/core/directives/hint';\nimport {TuiSlider} from '@taiga-ui/kit/components/slider';\nimport {TUI_PREVIEW_ICONS, TUI_PREVIEW_ZOOM_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, merge, of, startWith, switchMap, timer} from 'rxjs';\n\nimport {TuiPreviewAction} from '../action/preview-action.directive';\n\nconst STEP = 0.5;\n\n@Component({\n selector: 'tui-preview-zoom',\n imports: [\n AsyncPipe,\n FormsModule,\n PercentPipe,\n TuiButton,\n TuiHint,\n TuiPreviewAction,\n TuiSlider,\n ],\n templateUrl: './preview-zoom.template.html',\n styleUrl: './preview-zoom.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewZoom {\n protected readonly icons = inject(TUI_PREVIEW_ICONS);\n protected readonly zoomTexts = inject(TUI_PREVIEW_ZOOM_TEXTS);\n\n @Input()\n public min = 0.5;\n\n @Input()\n public max = 2;\n\n @Input()\n public value = 1;\n\n @Output()\n public readonly valueChange = new EventEmitter<number>();\n\n @Output()\n public readonly reset = new EventEmitter<void>();\n\n public readonly hintShow$ = this.valueChange.pipe(\n switchMap(() => merge(of(true), timer(1000).pipe(map(TUI_FALSE_HANDLER)))),\n startWith(false),\n );\n\n protected get leftButtonDisabled(): boolean {\n return this.value === this.min;\n }\n\n protected get rightButtonDisabled(): boolean {\n return this.value === this.max;\n }\n\n protected get collapseVisible(): boolean {\n return this.value > this.min;\n }\n\n protected onModelChange(value: number): void {\n const clamped = tuiClamp(value, this.min, this.max);\n\n if (clamped === this.value) {\n return;\n }\n\n this.value = clamped;\n this.valueChange.emit(clamped);\n }\n\n protected onReset(): void {\n this.reset.emit();\n }\n\n protected onMinus(): void {\n this.onModelChange(this.value - STEP);\n }\n\n protected onPlus(): void {\n this.onModelChange(this.value < 1 ? 1 : this.value + STEP);\n }\n}\n","@let texts = zoomTexts();\n<section class=\"t-zoom\">\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-sign_minus\"\n [disabled]=\"leftButtonDisabled\"\n [iconStart]=\"icons.zoomOut\"\n (click)=\"onMinus()\"\n >\n {{ texts.zoomOut }}\n </button>\n <label tuiSliderThumbLabel>\n <div\n [tuiHint]=\"hint\"\n [tuiHintManual]=\"!!(hintShow$ | async)\"\n ></div>\n <ng-template #hint>\n {{ (valueChange | async) || value | percent }}\n </ng-template>\n <input\n step=\"any\"\n tuiSlider\n tuiTheme=\"dark\"\n type=\"range\"\n class=\"t-slider\"\n [max]=\"max\"\n [min]=\"min\"\n [ngModel]=\"value\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n </label>\n <button\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-sign_plus\"\n [disabled]=\"rightButtonDisabled\"\n [iconStart]=\"icons.zoomIn\"\n (click)=\"onPlus()\"\n >\n {{ texts.zoomIn }}\n </button>\n</section>\n<button\n tuiHintAppearance=\"dark\"\n tuiHintDescribe\n tuiHintDirection=\"top-right\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-reset-button\"\n [class.t-invisible]=\"!collapseVisible\"\n [iconStart]=\"icons.zoomReset\"\n [tuiHint]=\"texts.reset\"\n (click)=\"onReset()\"\n></button>\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n} from '@angular/core';\nimport {WaMutationObserver} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiPan} from '@taiga-ui/cdk/directives/pan';\nimport {TuiZoom, type TuiZoomEvent} from '@taiga-ui/cdk/directives/zoom';\nimport {tuiDragAndDropFrom, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiClamp, tuiRound} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiHint} from '@taiga-ui/core/directives/hint';\nimport {TUI_PREVIEW_ICONS, TUI_PREVIEW_TEXTS} from '@taiga-ui/kit/tokens';\nimport {BehaviorSubject, combineLatest, map, merge, startWith} from 'rxjs';\n\nimport {TuiPreviewAction} from './action/preview-action.directive';\nimport {TuiPreviewZoom} from './zoom/preview-zoom.component';\n\nconst EMPTY_COORDINATES: [number, number] = [0, 0];\nconst ROTATION_ANGLE = 90;\n\n@Component({\n selector: 'tui-preview',\n imports: [\n AsyncPipe,\n TuiButton,\n TuiHint,\n TuiPan,\n TuiPreviewAction,\n TuiPreviewZoom,\n TuiZoom,\n WaMutationObserver,\n WaResizeObserver,\n ],\n templateUrl: './preview.template.html',\n styleUrl: './preview.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewComponent {\n private readonly el = tuiInjectElement();\n\n protected minZoom = 1;\n protected width = 0;\n protected height = 0;\n protected readonly previewTexts = inject(TUI_PREVIEW_TEXTS);\n protected readonly icons = inject(TUI_PREVIEW_ICONS);\n protected readonly cdr = inject(ChangeDetectorRef);\n protected readonly zoom$ = new BehaviorSubject<number>(this.minZoom);\n protected readonly rotation$ = new BehaviorSubject<number>(0);\n protected readonly coordinates$ = new BehaviorSubject<readonly [number, number]>(\n EMPTY_COORDINATES,\n );\n\n protected readonly transitioned$ = merge(\n tuiDragAndDropFrom(this.el).pipe(map(({stage}) => stage !== 'continues')),\n tuiTypedFromEvent(this.el, 'touchmove', {\n passive: true,\n }).pipe(map(TUI_FALSE_HANDLER)),\n tuiTypedFromEvent(this.el, 'wheel', {passive: true}).pipe(map(TUI_FALSE_HANDLER)),\n );\n\n protected readonly cursor$ = tuiDragAndDropFrom(this.el).pipe(\n map(({stage}) => (stage === 'continues' ? 'grabbing' : 'initial')),\n startWith('initial'),\n );\n\n protected readonly wrapperTransform$ = combineLatest([\n this.coordinates$.pipe(map(([x, y]) => `${tuiPx(x)}, ${tuiPx(y)}`)),\n this.zoom$,\n this.rotation$,\n ]).pipe(\n map(\n ([translate, zoom, rotation]) =>\n `translate(${translate}) scale(${zoom}) rotate(${rotation}deg)`,\n ),\n );\n\n @Input()\n public zoomable = true;\n\n @Input()\n public rotatable = false;\n\n @Input()\n public initialScale = 0.8;\n\n protected rotate(): void {\n this.rotation$.next(this.rotation$.value - ROTATION_ANGLE);\n }\n\n protected onPan(delta: readonly [number, number]): void {\n this.coordinates$.next(\n this.getGuardedCoordinates(\n this.coordinates$.value[0] + delta[0],\n this.coordinates$.value[1] + delta[1],\n ),\n );\n }\n\n protected onMutation(contentWrapper: HTMLElement): void {\n const {clientWidth, clientHeight} = contentWrapper;\n\n this.refresh(clientWidth, clientHeight);\n }\n\n protected onZoom({clientX, clientY, delta}: TuiZoomEvent): void {\n if (this.zoomable) {\n this.processZoom(clientX, clientY, delta);\n }\n }\n\n protected onResize([entry]: readonly ResizeObserverEntry[]): void {\n if (entry?.contentRect) {\n this.refresh(entry.contentRect.width, entry.contentRect.height);\n this.cdr.detectChanges();\n }\n }\n\n protected reset(): void {\n this.zoom$.next(this.minZoom);\n this.coordinates$.next(EMPTY_COORDINATES);\n }\n\n protected setZoom(zoom: number): void {\n this.zoom$.next(zoom);\n const [x, y] = this.coordinates$.value;\n\n this.coordinates$.next(this.getGuardedCoordinates(x, y));\n }\n\n private get offsets(): {offsetX: number; offsetY: number} {\n const offsetX = ((this.zoom$.value - this.minZoom) * this.width) / 2;\n const offsetY = ((this.zoom$.value - this.minZoom) * this.height) / 2;\n\n return {offsetX, offsetY};\n }\n\n private calculateMinZoom(\n contentHeight: number,\n contentWidth: number,\n boxHeight: number,\n boxWidth: number,\n ): number {\n const bigSize =\n contentHeight > boxHeight * this.initialScale ||\n contentWidth > boxWidth * this.initialScale;\n const {clientHeight, clientWidth} = this.el;\n\n return bigSize\n ? tuiRound(\n Math.min(\n (clientHeight * this.initialScale) / contentHeight,\n (clientWidth * this.initialScale) / contentWidth,\n ),\n 2,\n )\n : 1;\n }\n\n private refresh(width: number, height: number): void {\n this.width = width;\n this.height = height;\n this.minZoom = this.calculateMinZoom(\n height,\n width,\n this.el.clientHeight,\n this.el.clientWidth,\n );\n this.zoom$.next(this.minZoom);\n this.coordinates$.next(EMPTY_COORDINATES);\n this.rotation$.next(0);\n }\n\n private processZoom(clientX: number, clientY: number, delta: number): void {\n const oldScale = this.zoom$.value;\n const newScale = tuiClamp(oldScale + delta, this.minZoom, 2);\n\n const center = this.getScaleCenter(\n {clientX, clientY},\n this.coordinates$.value,\n this.zoom$.value,\n );\n\n const moveX = center[0] * oldScale - center[0] * newScale;\n const moveY = center[1] * oldScale - center[1] * newScale;\n\n this.zoom$.next(newScale);\n this.coordinates$.next(\n this.getGuardedCoordinates(\n this.coordinates$.value[0] + moveX,\n this.coordinates$.value[1] + moveY,\n ),\n );\n }\n\n private getGuardedCoordinates(x: number, y: number): readonly [number, number] {\n const {offsetX, offsetY} = this.offsets;\n\n return [tuiClamp(x, -offsetX, offsetX), tuiClamp(y, -offsetY, offsetY)];\n }\n\n private getScaleCenter(\n {clientX, clientY}: {clientX: number; clientY: number},\n [x, y]: readonly [number, number],\n scale: number,\n ): [number, number] {\n return [\n (clientX - x - this.el.offsetWidth / 2) / scale,\n (clientY - y - this.el.offsetHeight / 2) / scale,\n ];\n }\n}\n","@let texts = previewTexts();\n<section\n #contentWrapper\n attributeFilter=\"src\"\n characterData\n childList\n subtree\n class=\"t-wrapper\"\n [class.t-not-interactive-content]=\"zoomable\"\n [class.t-transitive]=\"transitioned$ | async\"\n [style.cursor]=\"cursor$ | async\"\n [style.transform]=\"wrapperTransform$ | async\"\n (tuiPan)=\"onPan($event)\"\n (tuiZoom)=\"onZoom($event)\"\n (waMutationObserver)=\"onMutation(contentWrapper)\"\n (waResizeObserver)=\"onResize($event)\"\n>\n <ng-content />\n</section>\n<header class=\"t-header\">\n <div class=\"t-title\">\n <ng-content select=\"tui-preview-title\" />\n </div>\n <ng-content select=\"tui-preview-pagination\" />\n <div class=\"t-actions\">\n <ng-content select=\"[tuiPreviewAction]\" />\n </div>\n</header>\n<footer class=\"t-footer\">\n @if (rotatable) {\n <button\n tuiHintAppearance=\"dark\"\n tuiHintDescribe\n tuiHintDirection=\"top-right\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n class=\"t-rotate-button\"\n [iconStart]=\"icons.rotate\"\n [tuiHint]=\"texts.rotate\"\n (click)=\"rotate()\"\n ></button>\n }\n @if (zoomable) {\n <tui-preview-zoom\n [min]=\"minZoom\"\n [value]=\"(zoom$ | async) || 1\"\n (reset)=\"reset()\"\n (valueChange)=\"setZoom($event)\"\n />\n }\n</footer>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'tui-preview-title',\n template: `\n <ng-content />\n `,\n styleUrl: './preview-title.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPreviewTitle {}\n","import {TuiPreviewAction} from './action/preview-action.directive';\nimport {TuiPreviewDialogDirective} from './dialog/preview-dialog.directive';\nimport {TuiPreviewPagination} from './pagination/preview-pagination.component';\nimport {TuiPreviewComponent} from './preview.component';\nimport {TuiPreviewTitle} from './title/preview-title.component';\nimport {TuiPreviewZoom} from './zoom/preview-zoom.component';\n\nexport const TuiPreview = [\n TuiPreviewComponent,\n TuiPreviewDialogDirective,\n TuiPreviewTitle,\n TuiPreviewPagination,\n TuiPreviewAction,\n TuiPreviewZoom,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, InjectionToken, inject, Input, input } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, inject, Input, computed, input } from '@angular/core';
3
3
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
4
- import { tuiWithStyles, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
4
+ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
5
+ import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
5
6
  import { toSignal } from '@angular/core/rxjs-interop';
6
- import { ResizeObserverService } from '@ng-web-apis/resize-observer';
7
- import { tuiZonefull, tuiWatch } from '@taiga-ui/cdk/observables';
8
- import { BehaviorSubject, combineLatest, map, distinctUntilChanged, of, delay } from 'rxjs';
7
+ import { MutationObserverService, WA_MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
8
+ import { map, of, delay } from 'rxjs';
9
9
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
10
10
 
11
11
  let Styles$1 = class Styles {
@@ -36,12 +36,7 @@ const TUI_PROGRESS_DEFAULT_OPTIONS = {
36
36
  color: null,
37
37
  size: 'm',
38
38
  };
39
- const TUI_PROGRESS_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_PROGRESS_OPTIONS' : '', {
40
- factory: () => TUI_PROGRESS_DEFAULT_OPTIONS,
41
- });
42
- function tuiProgressOptionsProvider(options) {
43
- return tuiProvideOptions(TUI_PROGRESS_OPTIONS, options, TUI_PROGRESS_DEFAULT_OPTIONS);
44
- }
39
+ const [TUI_PROGRESS_OPTIONS, tuiProgressOptionsProvider] = tuiCreateOptions(TUI_PROGRESS_DEFAULT_OPTIONS);
45
40
 
46
41
  class TuiProgressBar {
47
42
  constructor() {
@@ -54,7 +49,7 @@ class TuiProgressBar {
54
49
  }
55
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiProgressBar, decorators: [{
56
51
  type: Component,
57
- args: [{ standalone: true, selector: 'progress[tuiProgressBar]', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
52
+ args: [{ selector: 'progress[tuiProgressBar]', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
58
53
  '[style.--tui-progress-color]': 'color',
59
54
  '[attr.data-size]': 'size',
60
55
  }, styles: ["@keyframes tuiIndeterminateAnimation{50%{background-position:left}}[tuiProgressBar]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;--t-height: .75rem;display:block;inline-size:100%;block-size:var(--t-height);color:var(--tui-background-accent-1);background:var(--tui-background-neutral-2);clip-path:inset(0 .5px round var(--tui-radius-m));overflow:hidden;border-radius:1rem;flex-shrink:0}[tuiProgressBar]::-webkit-progress-value{transition:inline-size var(--tui-duration) linear}[tuiProgressBar]::-webkit-progress-value{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar]::-moz-progress-bar{background:var(--tui-progress-color, currentColor);border-radius:inherit}[tuiProgressBar][data-size=xxs]{--t-height: .125rem}[tuiProgressBar][data-size=xs]{--t-height: .25rem}[tuiProgressBar][data-size=s]{--t-height: .5rem}[tuiProgressBar][data-size=l]{--t-height: 1rem}[tuiProgressBar][data-size=xl]{--t-height: 1.25rem}[tuiProgressBar][data-size=xxl]{--t-height: 1.5rem}[tuiProgressBar]:indeterminate{background:linear-gradient(to right,var(--tui-background-neutral-2) 0 45%,var(--tui-progress-color, currentColor) 45% 55%,var(--tui-background-neutral-2) 55% 100%) right;background-size:225%;animation:tuiIndeterminateAnimation 3s infinite ease-in-out}[tuiProgressBar]:indeterminate::-webkit-progress-value{background:transparent}[tuiProgressBar]:indeterminate::-moz-progress-bar{background:transparent}[tuiProgressBar]::-webkit-progress-inner-element{border-radius:inherit}[tuiProgressBar]::-webkit-progress-bar{background:transparent;border-radius:inherit}label[tuiProgressLabel] [tuiProgressBar]:not(:first-child){position:absolute;top:0;left:0;inline-size:100%;block-size:100%;background:transparent}\n"] }]
@@ -66,35 +61,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
66
61
 
67
62
  class TuiProgressColorSegments {
68
63
  constructor() {
69
- this.colors$ = new BehaviorSubject([]);
70
64
  this.el = tuiInjectElement();
71
- this.color = toSignal(combineLatest([
72
- this.colors$,
73
- inject(ResizeObserverService, { self: true }).pipe(map(() => this.el.offsetWidth), distinctUntilChanged()),
74
- ]).pipe(map(([colors, width]) => {
75
- const segmentWidth = Math.ceil(width / colors.length);
76
- const colorsString = colors.reduce((acc, color, i) => `${acc}, ${color} ${i * segmentWidth}px ${(i + 1) * segmentWidth}px`, '');
77
- return `linear-gradient(to right ${colorsString})`;
78
- }), tuiZonefull(), tuiWatch()));
79
- }
80
- set colors(colors) {
81
- this.colors$.next(colors);
65
+ this.position = toSignal(inject(MutationObserverService, { self: true }).pipe(map(() => this.el.position)), { initialValue: this.el.position });
66
+ this.color = computed(() => {
67
+ const colors = this.colors();
68
+ const position = this.position();
69
+ if (!colors.length || position <= 0) {
70
+ return null;
71
+ }
72
+ const colorsString = colors.reduce((acc, color, i) => `${acc}, ${color} calc(${i} / ${colors.length} * 100% / ${position}) calc(${i + 1} / ${colors.length} * 100% / ${position})`, '');
73
+ return `linear-gradient(to right${colorsString})`;
74
+ });
75
+ this.colors = input([], {
76
+ alias: 'tuiProgressColorSegments',
77
+ });
82
78
  }
83
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiProgressColorSegments, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
84
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiProgressColorSegments, isStandalone: true, selector: "progress[tuiProgressBar][tuiProgressColorSegments]", inputs: { colors: ["tuiProgressColorSegments", "colors"] }, host: { properties: { "style.--tui-progress-color": "color()" } }, providers: [ResizeObserverService], ngImport: i0 }); }
80
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiProgressColorSegments, isStandalone: true, selector: "progress[tuiProgressBar][tuiProgressColorSegments]", inputs: { colors: { classPropertyName: "colors", publicName: "tuiProgressColorSegments", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--tui-progress-color": "color()" } }, providers: [
81
+ MutationObserverService,
82
+ {
83
+ provide: WA_MUTATION_OBSERVER_INIT,
84
+ useValue: {
85
+ attributeOldValue: true,
86
+ },
87
+ },
88
+ ], ngImport: i0 }); }
85
89
  }
86
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiProgressColorSegments, decorators: [{
87
91
  type: Directive,
88
92
  args: [{
89
- standalone: true,
90
93
  selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',
91
- providers: [ResizeObserverService],
94
+ providers: [
95
+ MutationObserverService,
96
+ {
97
+ provide: WA_MUTATION_OBSERVER_INIT,
98
+ useValue: {
99
+ attributeOldValue: true,
100
+ },
101
+ },
102
+ ],
92
103
  host: { '[style.--tui-progress-color]': 'color()' },
93
104
  }]
94
- }], propDecorators: { colors: [{
95
- type: Input,
96
- args: ['tuiProgressColorSegments']
97
- }] } });
105
+ }] });
98
106
 
99
107
  class TuiProgressCircle {
100
108
  constructor() {
@@ -115,7 +123,7 @@ class TuiProgressCircle {
115
123
  }
116
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiProgressCircle, decorators: [{
117
125
  type: Component,
118
- args: [{ standalone: true, selector: 'tui-progress-circle', changeDetection: ChangeDetectionStrategy.OnPush, host: {
126
+ args: [{ selector: 'tui-progress-circle', changeDetection: ChangeDetectionStrategy.OnPush, host: {
119
127
  '[attr.data-size]': 'size',
120
128
  '[style.--tui-progress-color]': 'color',
121
129
  '[style.--t-progress-ratio]': 'progressRatio',
@@ -140,7 +148,7 @@ class TuiProgressLabel {
140
148
  }
141
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiProgressLabel, decorators: [{
142
150
  type: Component,
143
- args: [{ standalone: true, selector: 'label[tuiProgressLabel]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n", styles: [":host{position:relative;display:inline-block;color:var(--tui-text-primary)}.t-label{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;font:var(--tui-font-text-s);flex-direction:column;justify-content:center;align-items:center}\n"] }]
151
+ args: [{ selector: 'label[tuiProgressLabel]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n", styles: [":host{position:relative;display:inline-block;color:var(--tui-text-primary)}.t-label{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;font:var(--tui-font-text-s);flex-direction:column;justify-content:center;align-items:center}\n"] }]
144
152
  }] });
145
153
 
146
154
  class Styles {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-progress.mjs","sources":["../../../projects/kit/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.ts","../../../projects/kit/components/progress/progress.options.ts","../../../projects/kit/components/progress/progress-bar/progress-bar.component.ts","../../../projects/kit/components/progress/progress-bar/progress-color-segments.directive.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.component.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.template.html","../../../projects/kit/components/progress/progress-label/progress-label.component.ts","../../../projects/kit/components/progress/progress-label/progress-label.template.html","../../../projects/kit/components/progress/progress-segmented/progress-segmented.directive.ts","../../../projects/kit/components/progress/progress.ts","../../../projects/kit/components/progress/taiga-ui-kit-components-progress.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styleUrl: './progress-fixed-gradient.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-fixed-gradient'},\n})\nclass Styles {}\n\n@Directive({\n selector: 'progress[tuiProgressBar][tuiProgressFixedGradient]',\n host: {'[style.--tui-progress-percent.%]': 'el.position * 100'},\n})\nexport class TuiProgressFixedGradientDirective {\n protected readonly nothing = tuiWithStyles(Styles);\n protected readonly el = tuiInjectElement<HTMLProgressElement>();\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nexport interface TuiProgressOptions {\n readonly color: string | null;\n readonly size: TuiSizeXXL | TuiSizeXXS;\n}\n\nexport const TUI_PROGRESS_DEFAULT_OPTIONS: TuiProgressOptions = {\n color: null,\n size: 'm',\n};\n\nexport const TUI_PROGRESS_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_PROGRESS_OPTIONS' : '',\n {\n factory: () => TUI_PROGRESS_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiProgressOptionsProvider(\n options: Partial<TuiProgressOptions>,\n): Provider {\n return tuiProvideOptions(TUI_PROGRESS_OPTIONS, options, TUI_PROGRESS_DEFAULT_OPTIONS);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n standalone: true,\n selector: 'progress[tuiProgressBar]',\n template: '',\n styles: '@import \"@taiga-ui/kit/styles/components/progress-bar.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.--tui-progress-color]': 'color',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiProgressBar {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiWatch, tuiZonefull} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, combineLatest, distinctUntilChanged, map} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',\n providers: [ResizeObserverService],\n host: {'[style.--tui-progress-color]': 'color()'},\n})\nexport class TuiProgressColorSegments {\n private readonly colors$ = new BehaviorSubject<string[]>([]);\n private readonly el = tuiInjectElement<HTMLProgressElement>();\n\n protected readonly color = toSignal(\n combineLatest([\n this.colors$,\n inject(ResizeObserverService, {self: true}).pipe(\n map(() => this.el.offsetWidth),\n distinctUntilChanged(),\n ),\n ]).pipe(\n map(([colors, width]) => {\n const segmentWidth = Math.ceil(width / colors.length);\n const colorsString = colors.reduce(\n (acc, color, i) =>\n `${acc}, ${color} ${i * segmentWidth}px ${(i + 1) * segmentWidth}px`,\n '',\n );\n\n return `linear-gradient(to right ${colorsString})`;\n }),\n tuiZonefull(),\n tuiWatch(),\n ),\n );\n\n @Input('tuiProgressColorSegments')\n public set colors(colors: string[]) {\n this.colors$.next(colors);\n }\n}\n","import {type BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\nimport {delay, of} from 'rxjs';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n standalone: true,\n selector: 'tui-progress-circle',\n templateUrl: './progress-circle.template.html',\n styleUrl: './progress-circle.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size',\n '[style.--tui-progress-color]': 'color',\n '[style.--t-progress-ratio]': 'progressRatio',\n '[class._arc]': 'arc',\n },\n})\nexport class TuiProgressCircle {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n protected readonly animationDelay = toSignal(of(true).pipe(delay(0)));\n\n @Input()\n public value = 0;\n\n @Input()\n public max = 1;\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n\n @Input({transform: coerceBooleanProperty})\n public arc: BooleanInput = false;\n\n protected get progressRatio(): number {\n const ratio = this.value / this.max;\n\n return Number.isFinite(ratio) ? ratio : 0;\n }\n}\n","<progress\n class=\"t-hidden-progress\"\n [max]=\"max\"\n [value]=\"value\"\n></progress>\n\n<svg\n aria-hidden=\"true\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-svg\"\n>\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-track\"\n />\n\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-progress\"\n [class.t-progress_filled]=\"animationDelay()\"\n />\n</svg>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'label[tuiProgressLabel]',\n templateUrl: './progress-label.template.html',\n styleUrl: './progress-label.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressLabel {}\n","<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styleUrl: './progress-segmented.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-progress-segmented'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiProgressBar][segments]',\n host: {\n class: '_segmented',\n '[style.--t-segment-width]': '1 / segments()',\n },\n})\nexport class TuiProgressSegmented {\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly segments = input(1);\n}\n","import {TuiProgressFixedGradientDirective} from './progress-bar/fixed-gradient/progress-fixed-gradient.directive';\nimport {TuiProgressBar} from './progress-bar/progress-bar.component';\nimport {TuiProgressColorSegments} from './progress-bar/progress-color-segments.directive';\nimport {TuiProgressCircle} from './progress-circle/progress-circle.component';\nimport {TuiProgressLabel} from './progress-label/progress-label.component';\nimport {TuiProgressSegmented} from './progress-segmented/progress-segmented.directive';\n\nexport const TuiProgress = [\n TuiProgressBar,\n TuiProgressCircle,\n TuiProgressColorSegments,\n TuiProgressFixedGradientDirective,\n TuiProgressLabel,\n TuiProgressSegmented,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Styles"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-progress.mjs","sources":["../../../projects/kit/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.ts","../../../projects/kit/components/progress/progress.options.ts","../../../projects/kit/components/progress/progress-bar/progress-bar.component.ts","../../../projects/kit/components/progress/progress-bar/progress-color-segments.directive.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.component.ts","../../../projects/kit/components/progress/progress-circle/progress-circle.template.html","../../../projects/kit/components/progress/progress-label/progress-label.component.ts","../../../projects/kit/components/progress/progress-label/progress-label.template.html","../../../projects/kit/components/progress/progress-segmented/progress-segmented.directive.ts","../../../projects/kit/components/progress/progress.ts","../../../projects/kit/components/progress/taiga-ui-kit-components-progress.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styleUrl: './progress-fixed-gradient.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-fixed-gradient'},\n})\nclass Styles {}\n\n@Directive({\n selector: 'progress[tuiProgressBar][tuiProgressFixedGradient]',\n host: {'[style.--tui-progress-percent.%]': 'el.position * 100'},\n})\nexport class TuiProgressFixedGradientDirective {\n protected readonly nothing = tuiWithStyles(Styles);\n protected readonly el = tuiInjectElement<HTMLProgressElement>();\n}\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nexport interface TuiProgressOptions {\n readonly color: string | null;\n readonly size: TuiSizeXXL | TuiSizeXXS;\n}\n\nexport const TUI_PROGRESS_DEFAULT_OPTIONS: TuiProgressOptions = {\n color: null,\n size: 'm',\n};\n\nexport const [TUI_PROGRESS_OPTIONS, tuiProgressOptionsProvider] = tuiCreateOptions(\n TUI_PROGRESS_DEFAULT_OPTIONS,\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n selector: 'progress[tuiProgressBar]',\n template: '',\n styles: '@import \"@taiga-ui/kit/styles/components/progress-bar.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.--tui-progress-color]': 'color',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiProgressBar {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n}\n","import {computed, Directive, inject, input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {map} from 'rxjs';\n\n@Directive({\n selector: 'progress[tuiProgressBar][tuiProgressColorSegments]',\n providers: [\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n attributeOldValue: true,\n },\n },\n ],\n host: {'[style.--tui-progress-color]': 'color()'},\n})\nexport class TuiProgressColorSegments {\n private readonly el = tuiInjectElement<HTMLProgressElement>();\n private readonly position = toSignal(\n inject(MutationObserverService, {self: true}).pipe(map(() => this.el.position)),\n {initialValue: this.el.position},\n );\n\n protected readonly color = computed(() => {\n const colors = this.colors();\n const position = this.position();\n\n if (!colors.length || position <= 0) {\n return null;\n }\n\n const colorsString = colors.reduce(\n (acc, color, i) =>\n `${acc}, ${color} calc(${i} / ${colors.length} * 100% / ${position}) calc(${i + 1} / ${colors.length} * 100% / ${position})`,\n '',\n );\n\n return `linear-gradient(to right${colorsString})`;\n });\n\n public readonly colors = input<readonly string[]>([], {\n alias: 'tuiProgressColorSegments',\n });\n}\n","import {type BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\nimport {delay, of} from 'rxjs';\n\nimport {TUI_PROGRESS_OPTIONS} from '../progress.options';\n\n@Component({\n selector: 'tui-progress-circle',\n templateUrl: './progress-circle.template.html',\n styleUrl: './progress-circle.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size',\n '[style.--tui-progress-color]': 'color',\n '[style.--t-progress-ratio]': 'progressRatio',\n '[class._arc]': 'arc',\n },\n})\nexport class TuiProgressCircle {\n private readonly options = inject(TUI_PROGRESS_OPTIONS);\n\n protected readonly animationDelay = toSignal(of(true).pipe(delay(0)));\n\n @Input()\n public value = 0;\n\n @Input()\n public max = 1;\n\n @Input()\n public color: string | null = this.options.color;\n\n @Input()\n public size: TuiSizeXXL | TuiSizeXXS = this.options.size;\n\n @Input({transform: coerceBooleanProperty})\n public arc: BooleanInput = false;\n\n protected get progressRatio(): number {\n const ratio = this.value / this.max;\n\n return Number.isFinite(ratio) ? ratio : 0;\n }\n}\n","<progress\n class=\"t-hidden-progress\"\n [max]=\"max\"\n [value]=\"value\"\n></progress>\n\n<svg\n aria-hidden=\"true\"\n height=\"100%\"\n width=\"100%\"\n class=\"t-svg\"\n>\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-track\"\n />\n\n <circle\n cx=\"50%\"\n cy=\"50%\"\n class=\"t-progress\"\n [class.t-progress_filled]=\"animationDelay()\"\n />\n</svg>\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\n\n@Component({\n selector: 'label[tuiProgressLabel]',\n templateUrl: './progress-label.template.html',\n styleUrl: './progress-label.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiProgressLabel {}\n","<ng-content select=\"progress\" />\n<ng-content select=\"tui-progress-circle\" />\n<span class=\"t-label\">\n <ng-content />\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styleUrl: './progress-segmented.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-progress-segmented'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiProgressBar][segments]',\n host: {\n class: '_segmented',\n '[style.--t-segment-width]': '1 / segments()',\n },\n})\nexport class TuiProgressSegmented {\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly segments = input(1);\n}\n","import {TuiProgressFixedGradientDirective} from './progress-bar/fixed-gradient/progress-fixed-gradient.directive';\nimport {TuiProgressBar} from './progress-bar/progress-bar.component';\nimport {TuiProgressColorSegments} from './progress-bar/progress-color-segments.directive';\nimport {TuiProgressCircle} from './progress-circle/progress-circle.component';\nimport {TuiProgressLabel} from './progress-label/progress-label.component';\nimport {TuiProgressSegmented} from './progress-segmented/progress-segmented.directive';\n\nexport const TuiProgress = [\n TuiProgressBar,\n TuiProgressCircle,\n TuiProgressColorSegments,\n TuiProgressFixedGradientDirective,\n TuiProgressLabel,\n TuiProgressSegmented,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Styles"],"mappings":"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"}
@@ -25,7 +25,7 @@ class TuiPulse extends TuiRectAccessor {
25
25
  }
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPulse, decorators: [{
27
27
  type: Component,
28
- args: [{ standalone: true, selector: 'tui-pulse', template: '', changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsRectAccessor(TuiPulse)], hostDirectives: [TuiAnimated], host: {
28
+ args: [{ selector: 'tui-pulse', template: '', changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsRectAccessor(TuiPulse)], hostDirectives: [TuiAnimated], host: {
29
29
  '[class._playing]': 'playing',
30
30
  }, styles: ["@keyframes tuiPulse{to{opacity:0;transform:scale(2.5)}}:host{position:relative;color:var(--tui-background-accent-1)}:host.tui-enter,:host.tui-leave{animation-name:tuiScale}:host:before,:host:after{transition-property:box-shadow;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;inline-size:.5rem;block-size:.5rem;border-radius:100%;margin:-.25rem;background:currentColor}:host:before{opacity:1;transform:scale(0)}:host._playing:before{animation:tuiPulse 1s 1s ease-in-out infinite}:host._playing:after{box-shadow:0 0 .5rem}\n"] }]
31
31
  }], propDecorators: { playing: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-pulse.mjs","sources":["../../../projects/kit/components/pulse/pulse.component.ts","../../../projects/kit/components/pulse/taiga-ui-kit-components-pulse.ts"],"sourcesContent":["import {isPlatformBrowser} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n PLATFORM_ID,\n} from '@angular/core';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\n\n@Component({\n standalone: true,\n selector: 'tui-pulse',\n template: '',\n styleUrl: './pulse.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsRectAccessor(TuiPulse)],\n hostDirectives: [TuiAnimated],\n host: {\n '[class._playing]': 'playing',\n },\n})\nexport class TuiPulse extends TuiRectAccessor {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly el = tuiInjectElement();\n\n @Input()\n public playing = true;\n\n public readonly type = 'hint';\n\n public getClientRect(): DOMRect {\n const rect = this.el.getBoundingClientRect();\n\n return this.isBrowser\n ? new DOMRect(rect.x - 4, rect.y - 4, rect.width + 8, rect.height + 8)\n : rect;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAwBM,MAAO,QAAS,SAAQ,eAAe,CAAA;AAZ7C,IAAA,WAAA,GAAA;;QAaqB,IAAS,CAAA,SAAA,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;QAGjC,IAAO,CAAA,OAAA,GAAG,IAAI;QAEL,IAAI,CAAA,IAAA,GAAG,MAAM;AAShC;IAPU,aAAa,GAAA;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE;QAE5C,OAAO,IAAI,CAAC;cACN,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;cACnE,IAAI;;+GAdL,QAAQ,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EANN,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,kGAH9B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,glBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FASH,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAZpB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,WAAW,EAAA,QAAA,EACX,EAAE,EAAA,eAAA,EAEK,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,iBAAiB,CAAU,QAAA,CAAA,CAAC,kBACxB,CAAC,WAAW,CAAC,EACvB,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,SAAS;AAChC,qBAAA,EAAA,MAAA,EAAA,CAAA,glBAAA,CAAA,EAAA;8BAOM,OAAO,EAAA,CAAA;sBADb;;;AC5BL;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-pulse.mjs","sources":["../../../projects/kit/components/pulse/pulse.component.ts","../../../projects/kit/components/pulse/taiga-ui-kit-components-pulse.ts"],"sourcesContent":["import {isPlatformBrowser} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n PLATFORM_ID,\n} from '@angular/core';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/classes';\n\n@Component({\n selector: 'tui-pulse',\n template: '',\n styleUrl: './pulse.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsRectAccessor(TuiPulse)],\n hostDirectives: [TuiAnimated],\n host: {\n '[class._playing]': 'playing',\n },\n})\nexport class TuiPulse extends TuiRectAccessor {\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly el = tuiInjectElement();\n\n @Input()\n public playing = true;\n\n public readonly type = 'hint';\n\n public getClientRect(): DOMRect {\n const rect = this.el.getBoundingClientRect();\n\n return this.isBrowser\n ? new DOMRect(rect.x - 4, rect.y - 4, rect.width + 8, rect.height + 8)\n : rect;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAuBM,MAAO,QAAS,SAAQ,eAAe,CAAA;AAX7C,IAAA,WAAA,GAAA;;QAYqB,IAAS,CAAA,SAAA,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;QAGjC,IAAO,CAAA,OAAA,GAAG,IAAI;QAEL,IAAI,CAAA,IAAA,GAAG,MAAM;AAShC;IAPU,aAAa,GAAA;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE;QAE5C,OAAO,IAAI,CAAC;cACN,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC;cACnE,IAAI;;+GAdL,QAAQ,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EANN,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,kGAH9B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,glBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FASH,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAXpB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACX,QAAA,EAAA,EAAE,EAEK,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,iBAAiB,UAAU,CAAC,EAAA,cAAA,EACxB,CAAC,WAAW,CAAC,EACvB,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,SAAS;AAChC,qBAAA,EAAA,MAAA,EAAA,CAAA,glBAAA,CAAA,EAAA;8BAOM,OAAO,EAAA,CAAA;sBADb;;;AC3BL;;AAEG;;;;"}
@@ -7,8 +7,8 @@ import { TuiFormatDatePipe } from '@taiga-ui/core/pipes/format-date';
7
7
  import { TUI_CLOSE_WORD, TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
8
8
  import * as i1$1 from '@taiga-ui/cdk/portals';
9
9
  import { TuiPortalDirective, tuiAsPortal } from '@taiga-ui/cdk/portals';
10
- import * as i2 from '@taiga-ui/core/directives/notification';
11
- import { TuiNotificationDirective, TuiNotificationService } from '@taiga-ui/core/directives/notification';
10
+ import * as i2 from '@taiga-ui/core/directives/alert';
11
+ import { TuiAlertDirective, TuiAlertService } from '@taiga-ui/core/directives/alert';
12
12
  import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
13
13
  import * as i1 from '@taiga-ui/cdk/directives/animated';
14
14
  import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
@@ -68,14 +68,14 @@ class TuiPushAlert {
68
68
  return this.context.content instanceof TuiPortalDirective;
69
69
  }
70
70
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPushAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiPushAlert, isStandalone: true, selector: "tui-push-alert", hostDirectives: [{ directive: i1.TuiAnimated }, { directive: i2.TuiNotificationDirective }], ngImport: i0, template: "<div class=\"t-wrapper\">\n @if (!isDirective) {\n <tui-push\n [heading]=\"context.heading\"\n [timestamp]=\"context.timestamp\"\n [type]=\"context.type\"\n (close)=\"context.$implicit.complete()\"\n >\n @if (context.image) {\n <img\n alt=\"\"\n [src]=\"context.image\"\n />\n }\n @if (context.icon) {\n <tui-icon\n [icon]=\"context.icon\"\n [style.color]=\"context.iconColor\"\n />\n }\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n [innerHTML]=\"text\"\n ></div>\n @if (context.buttons.length > 1) {\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[0] || '')\"\n >\n {{ context.buttons[0] }}\n </button>\n }\n @if (context.buttons.length) {\n <button\n tuiLink\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[context.buttons.length - 1] || '')\"\n >\n {{ context.buttons[context.buttons.length - 1] }}\n </button>\n }\n </tui-push>\n } @else {\n <ng-container *polymorpheusOutlet=\"context.content\" />\n }\n</div>\n", styles: [":host{max-inline-size:calc(100% - 2rem);margin:.625rem 1rem}\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: "component", type: TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "component", type: TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "lines", "timestamp"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiPushAlert, isStandalone: true, selector: "tui-push-alert", hostDirectives: [{ directive: i1.TuiAnimated }, { directive: i2.TuiAlertDirective }], ngImport: i0, template: "<div class=\"t-wrapper\">\n @if (!isDirective) {\n <tui-push\n [heading]=\"context.heading\"\n [timestamp]=\"context.timestamp\"\n [type]=\"context.type\"\n (close)=\"context.$implicit.complete()\"\n >\n @if (context.image) {\n <img\n alt=\"\"\n [src]=\"context.image\"\n />\n }\n @if (context.icon) {\n <tui-icon\n [icon]=\"context.icon\"\n [style.color]=\"context.iconColor\"\n />\n }\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n [innerHTML]=\"text\"\n ></div>\n @if (context.buttons.length > 1) {\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[0] || '')\"\n >\n {{ context.buttons[0] }}\n </button>\n }\n @if (context.buttons.length) {\n <button\n tuiLink\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[context.buttons.length - 1] || '')\"\n >\n {{ context.buttons[context.buttons.length - 1] }}\n </button>\n }\n </tui-push>\n } @else {\n <ng-container *polymorpheusOutlet=\"context.content\" />\n }\n</div>\n", styles: [":host{max-inline-size:calc(100% - 2rem);margin:.625rem 1rem}\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: "component", type: TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "component", type: TuiPushComponent, selector: "tui-push", inputs: ["heading", "type", "lines", "timestamp"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
72
  }
73
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPushAlert, decorators: [{
74
74
  type: Component,
75
- args: [{ selector: 'tui-push-alert', imports: [PolymorpheusOutlet, TuiButton, TuiIcon, TuiLink, TuiPushComponent], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiAnimated, TuiNotificationDirective], template: "<div class=\"t-wrapper\">\n @if (!isDirective) {\n <tui-push\n [heading]=\"context.heading\"\n [timestamp]=\"context.timestamp\"\n [type]=\"context.type\"\n (close)=\"context.$implicit.complete()\"\n >\n @if (context.image) {\n <img\n alt=\"\"\n [src]=\"context.image\"\n />\n }\n @if (context.icon) {\n <tui-icon\n [icon]=\"context.icon\"\n [style.color]=\"context.iconColor\"\n />\n }\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n [innerHTML]=\"text\"\n ></div>\n @if (context.buttons.length > 1) {\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[0] || '')\"\n >\n {{ context.buttons[0] }}\n </button>\n }\n @if (context.buttons.length) {\n <button\n tuiLink\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[context.buttons.length - 1] || '')\"\n >\n {{ context.buttons[context.buttons.length - 1] }}\n </button>\n }\n </tui-push>\n } @else {\n <ng-container *polymorpheusOutlet=\"context.content\" />\n }\n</div>\n", styles: [":host{max-inline-size:calc(100% - 2rem);margin:.625rem 1rem}\n"] }]
75
+ args: [{ selector: 'tui-push-alert', imports: [PolymorpheusOutlet, TuiButton, TuiIcon, TuiLink, TuiPushComponent], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiAnimated, TuiAlertDirective], template: "<div class=\"t-wrapper\">\n @if (!isDirective) {\n <tui-push\n [heading]=\"context.heading\"\n [timestamp]=\"context.timestamp\"\n [type]=\"context.type\"\n (close)=\"context.$implicit.complete()\"\n >\n @if (context.image) {\n <img\n alt=\"\"\n [src]=\"context.image\"\n />\n }\n @if (context.icon) {\n <tui-icon\n [icon]=\"context.icon\"\n [style.color]=\"context.iconColor\"\n />\n }\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n [innerHTML]=\"text\"\n ></div>\n @if (context.buttons.length > 1) {\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[0] || '')\"\n >\n {{ context.buttons[0] }}\n </button>\n }\n @if (context.buttons.length) {\n <button\n tuiLink\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[context.buttons.length - 1] || '')\"\n >\n {{ context.buttons[context.buttons.length - 1] }}\n </button>\n }\n </tui-push>\n } @else {\n <ng-container *polymorpheusOutlet=\"context.content\" />\n }\n</div>\n", styles: [":host{max-inline-size:calc(100% - 2rem);margin:.625rem 1rem}\n"] }]
76
76
  }] });
77
77
 
78
- class TuiPushService extends TuiNotificationService {
78
+ class TuiPushService extends TuiAlertService {
79
79
  constructor() {
80
80
  super(inject(TUI_PUSH_CONCURRENCY));
81
81
  this.options = inject(TUI_PUSH_OPTIONS);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-push.mjs","sources":["../../../projects/kit/components/push/push.component.ts","../../../projects/kit/components/push/push.template.html","../../../projects/kit/components/push/push.options.ts","../../../projects/kit/components/push/push-alert.component.ts","../../../projects/kit/components/push/push-alert.template.html","../../../projects/kit/components/push/push.service.ts","../../../projects/kit/components/push/push.directive.ts","../../../projects/kit/components/push/push.ts","../../../projects/kit/components/push/taiga-ui-kit-components-push.ts"],"sourcesContent":["import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TuiFormatDatePipe} from '@taiga-ui/core/pipes/format-date';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\n\n@Component({\n selector: 'tui-push',\n imports: [AsyncPipe, TuiButton, TuiFormatDatePipe],\n templateUrl: './push.template.html',\n styleUrl: './push.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiButtonOptionsProvider({size: 's', appearance: 'secondary'})],\n host: {\n '[style.--t-lines]': 'lines',\n },\n})\nexport class TuiPushComponent {\n protected readonly isString = tuiIsString;\n protected readonly closeWord = inject(TUI_CLOSE_WORD);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n\n @Input()\n public heading = '';\n\n @Input()\n public type = '';\n\n @Input()\n public lines = 2;\n\n @Input()\n public timestamp: number | string = '';\n\n @Output()\n public readonly close = new EventEmitter<void>();\n}\n","<div class=\"t-image\">\n <ng-content select=\"img\" />\n</div>\n@if (close.observed) {\n <button\n appearance=\"\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [iconStart]=\"icons.close\"\n [style.border-radius.%]=\"100\"\n (click)=\"close.emit()\"\n >\n {{ closeWord() }}\n </button>\n}\n<div class=\"t-top\">\n <span class=\"t-icon\">\n <ng-content select=\"tui-icon\" />\n </span>\n {{ type }}\n @if (timestamp) {\n <span\n class=\"t-time\"\n [textContent]=\"isString(timestamp) ? timestamp : (timestamp | tuiFormatDate | async)\"\n ></span>\n }\n</div>\n<h3\n automation-id=\"tui-push__heading\"\n class=\"t-heading\"\n>\n {{ heading }}\n</h3>\n<div class=\"t-content\">\n <ng-content />\n</div>\n<div class=\"t-actions\">\n <span class=\"t-button\">\n <ng-content select=\"[tuiButton]\" />\n </span>\n <span class=\"t-link\">\n <ng-content select=\"[tuiLink]\" />\n </span>\n</div>\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiPositionOptions} from '@taiga-ui/core/directives/notification';\n\nexport interface TuiPushOptions extends TuiPositionOptions {\n readonly buttons: readonly string[];\n readonly heading: string;\n readonly icon: string;\n readonly iconColor: string;\n readonly image: string;\n readonly timestamp: number | string;\n readonly type: string;\n}\n\nexport const TUI_PUSH_CONCURRENCY = tuiCreateToken<number>(5);\nexport const [TUI_PUSH_OPTIONS, tuiPushOptionsProvider] =\n tuiCreateOptions<TuiPushOptions>({\n heading: '',\n type: '',\n timestamp: '',\n image: '',\n icon: '',\n iconColor: '',\n buttons: [],\n block: 'end',\n inline: 'end',\n });\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext, TuiPortalDirective} from '@taiga-ui/cdk/portals';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiNotificationDirective} from '@taiga-ui/core/directives/notification';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiPushComponent} from './push.component';\nimport {type TuiPushOptions} from './push.options';\n\n@Component({\n selector: 'tui-push-alert',\n imports: [PolymorpheusOutlet, TuiButton, TuiIcon, TuiLink, TuiPushComponent],\n templateUrl: './push-alert.template.html',\n styleUrl: './push-alert.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated, TuiNotificationDirective],\n})\nexport class TuiPushAlert {\n protected readonly context =\n injectContext<TuiPortalContext<TuiPushOptions, string>>();\n\n protected get isDirective(): boolean {\n return this.context.content instanceof TuiPortalDirective;\n }\n}\n","<div class=\"t-wrapper\">\n @if (!isDirective) {\n <tui-push\n [heading]=\"context.heading\"\n [timestamp]=\"context.timestamp\"\n [type]=\"context.type\"\n (close)=\"context.$implicit.complete()\"\n >\n @if (context.image) {\n <img\n alt=\"\"\n [src]=\"context.image\"\n />\n }\n @if (context.icon) {\n <tui-icon\n [icon]=\"context.icon\"\n [style.color]=\"context.iconColor\"\n />\n }\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n [innerHTML]=\"text\"\n ></div>\n @if (context.buttons.length > 1) {\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[0] || '')\"\n >\n {{ context.buttons[0] }}\n </button>\n }\n @if (context.buttons.length) {\n <button\n tuiLink\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[context.buttons.length - 1] || '')\"\n >\n {{ context.buttons[context.buttons.length - 1] }}\n </button>\n }\n </tui-push>\n } @else {\n <ng-container *polymorpheusOutlet=\"context.content\" />\n }\n</div>\n","import {inject, Injectable} from '@angular/core';\nimport {TuiNotificationService} from '@taiga-ui/core/directives/notification';\n\nimport {\n TUI_PUSH_CONCURRENCY,\n TUI_PUSH_OPTIONS,\n type TuiPushOptions,\n} from './push.options';\nimport {TuiPushAlert} from './push-alert.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiPushService extends TuiNotificationService<TuiPushOptions, string> {\n protected override readonly options = inject(TUI_PUSH_OPTIONS);\n protected override readonly component = TuiPushAlert;\n\n constructor() {\n super(inject(TUI_PUSH_CONCURRENCY));\n }\n}\n","import {DestroyRef, Directive, inject} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {TuiPushService} from './push.service';\n\n@Directive({\n selector: 'ng-template[tuiPush]',\n providers: [tuiAsPortal(TuiPushService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['open: tuiPush'],\n },\n ],\n})\nexport class TuiPushDirective {\n private readonly sub = inject(TuiPortalDirective).openChange.subscribe(() => {});\n\n constructor() {\n inject(DestroyRef).onDestroy(() => this.sub.unsubscribe());\n }\n}\n","import {TuiPushComponent} from './push.component';\nimport {TuiPushDirective} from './push.directive';\nimport {TuiPushAlert} from './push-alert.component';\n\nexport const TuiPush = [TuiPushComponent, TuiPushAlert, TuiPushDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-push.mjs","sources":["../../../projects/kit/components/push/push.component.ts","../../../projects/kit/components/push/push.template.html","../../../projects/kit/components/push/push.options.ts","../../../projects/kit/components/push/push-alert.component.ts","../../../projects/kit/components/push/push-alert.template.html","../../../projects/kit/components/push/push.service.ts","../../../projects/kit/components/push/push.directive.ts","../../../projects/kit/components/push/push.ts","../../../projects/kit/components/push/taiga-ui-kit-components-push.ts"],"sourcesContent":["import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TuiFormatDatePipe} from '@taiga-ui/core/pipes/format-date';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\n\n@Component({\n selector: 'tui-push',\n imports: [AsyncPipe, TuiButton, TuiFormatDatePipe],\n templateUrl: './push.template.html',\n styleUrl: './push.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiButtonOptionsProvider({size: 's', appearance: 'secondary'})],\n host: {\n '[style.--t-lines]': 'lines',\n },\n})\nexport class TuiPushComponent {\n protected readonly isString = tuiIsString;\n protected readonly closeWord = inject(TUI_CLOSE_WORD);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n\n @Input()\n public heading = '';\n\n @Input()\n public type = '';\n\n @Input()\n public lines = 2;\n\n @Input()\n public timestamp: number | string = '';\n\n @Output()\n public readonly close = new EventEmitter<void>();\n}\n","<div class=\"t-image\">\n <ng-content select=\"img\" />\n</div>\n@if (close.observed) {\n <button\n appearance=\"\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [iconStart]=\"icons.close\"\n [style.border-radius.%]=\"100\"\n (click)=\"close.emit()\"\n >\n {{ closeWord() }}\n </button>\n}\n<div class=\"t-top\">\n <span class=\"t-icon\">\n <ng-content select=\"tui-icon\" />\n </span>\n {{ type }}\n @if (timestamp) {\n <span\n class=\"t-time\"\n [textContent]=\"isString(timestamp) ? timestamp : (timestamp | tuiFormatDate | async)\"\n ></span>\n }\n</div>\n<h3\n automation-id=\"tui-push__heading\"\n class=\"t-heading\"\n>\n {{ heading }}\n</h3>\n<div class=\"t-content\">\n <ng-content />\n</div>\n<div class=\"t-actions\">\n <span class=\"t-button\">\n <ng-content select=\"[tuiButton]\" />\n </span>\n <span class=\"t-link\">\n <ng-content select=\"[tuiLink]\" />\n </span>\n</div>\n","import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiPositionOptions} from '@taiga-ui/core/directives/alert';\n\nexport interface TuiPushOptions extends TuiPositionOptions {\n readonly buttons: readonly string[];\n readonly heading: string;\n readonly icon: string;\n readonly iconColor: string;\n readonly image: string;\n readonly timestamp: number | string;\n readonly type: string;\n}\n\nexport const TUI_PUSH_CONCURRENCY = tuiCreateToken<number>(5);\nexport const [TUI_PUSH_OPTIONS, tuiPushOptionsProvider] =\n tuiCreateOptions<TuiPushOptions>({\n heading: '',\n type: '',\n timestamp: '',\n image: '',\n icon: '',\n iconColor: '',\n buttons: [],\n block: 'end',\n inline: 'end',\n });\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext, TuiPortalDirective} from '@taiga-ui/cdk/portals';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiAlertDirective} from '@taiga-ui/core/directives/alert';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiPushComponent} from './push.component';\nimport {type TuiPushOptions} from './push.options';\n\n@Component({\n selector: 'tui-push-alert',\n imports: [PolymorpheusOutlet, TuiButton, TuiIcon, TuiLink, TuiPushComponent],\n templateUrl: './push-alert.template.html',\n styleUrl: './push-alert.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiAnimated, TuiAlertDirective],\n})\nexport class TuiPushAlert {\n protected readonly context =\n injectContext<TuiPortalContext<TuiPushOptions, string>>();\n\n protected get isDirective(): boolean {\n return this.context.content instanceof TuiPortalDirective;\n }\n}\n","<div class=\"t-wrapper\">\n @if (!isDirective) {\n <tui-push\n [heading]=\"context.heading\"\n [timestamp]=\"context.timestamp\"\n [type]=\"context.type\"\n (close)=\"context.$implicit.complete()\"\n >\n @if (context.image) {\n <img\n alt=\"\"\n [src]=\"context.image\"\n />\n }\n @if (context.icon) {\n <tui-icon\n [icon]=\"context.icon\"\n [style.color]=\"context.iconColor\"\n />\n }\n <div\n *polymorpheusOutlet=\"context.content as text; context: context\"\n [innerHTML]=\"text\"\n ></div>\n @if (context.buttons.length > 1) {\n <button\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[0] || '')\"\n >\n {{ context.buttons[0] }}\n </button>\n }\n @if (context.buttons.length) {\n <button\n tuiLink\n type=\"button\"\n (click)=\"context.$implicit.next(context.buttons[context.buttons.length - 1] || '')\"\n >\n {{ context.buttons[context.buttons.length - 1] }}\n </button>\n }\n </tui-push>\n } @else {\n <ng-container *polymorpheusOutlet=\"context.content\" />\n }\n</div>\n","import {inject, Injectable} from '@angular/core';\nimport {TuiAlertService} from '@taiga-ui/core/directives/alert';\n\nimport {\n TUI_PUSH_CONCURRENCY,\n TUI_PUSH_OPTIONS,\n type TuiPushOptions,\n} from './push.options';\nimport {TuiPushAlert} from './push-alert.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiPushService extends TuiAlertService<TuiPushOptions, string> {\n protected override readonly options = inject(TUI_PUSH_OPTIONS);\n protected override readonly component = TuiPushAlert;\n\n constructor() {\n super(inject(TUI_PUSH_CONCURRENCY));\n }\n}\n","import {DestroyRef, Directive, inject} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {TuiPushService} from './push.service';\n\n@Directive({\n selector: 'ng-template[tuiPush]',\n providers: [tuiAsPortal(TuiPushService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: ['open: tuiPush'],\n },\n ],\n})\nexport class TuiPushDirective {\n private readonly sub = inject(TuiPortalDirective).openChange.subscribe(() => {});\n\n constructor() {\n inject(DestroyRef).onDestroy(() => this.sub.unsubscribe());\n }\n}\n","import {TuiPushComponent} from './push.component';\nimport {TuiPushDirective} from './push.directive';\nimport {TuiPushAlert} from './push-alert.component';\n\nexport const TuiPush = [TuiPushComponent, TuiPushAlert, TuiPushDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}