@taiga-ui/kit 4.52.0-canary.65c65f9 → 4.52.0-canary.692273c

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 (219) hide show
  1. package/components/accordion/accordion.component.d.ts +13 -0
  2. package/components/accordion/accordion.d.ts +4 -4
  3. package/components/accordion/accordion.directive.d.ts +11 -10
  4. package/components/accordion/index.d.ts +1 -3
  5. package/components/action-bar/action-bar.component.d.ts +5 -7
  6. package/components/action-bar/index.d.ts +0 -2
  7. package/components/avatar/avatar-outline.directive.d.ts +3 -3
  8. package/components/badge/badge.directive.d.ts +2 -2
  9. package/components/block/block.directive.d.ts +4 -4
  10. package/components/block/block.options.d.ts +1 -1
  11. package/components/checkbox/checkbox.component.d.ts +7 -18
  12. package/components/checkbox/checkbox.options.d.ts +5 -9
  13. package/components/chip/chip.directive.d.ts +2 -4
  14. package/components/comment/comment.directive.d.ts +2 -2
  15. package/components/confirm/confirm.component.d.ts +1 -0
  16. package/components/confirm/confirm.service.d.ts +2 -1
  17. package/{directives → components}/copy/copy.directive.d.ts +1 -2
  18. package/{directives → components}/copy/copy.options.d.ts +1 -1
  19. package/components/floating-container/floating-container.directive.d.ts +2 -2
  20. package/components/fullscreen/fullscreen.component.d.ts +14 -0
  21. package/components/fullscreen/index.d.ts +1 -0
  22. package/components/index.d.ts +3 -0
  23. package/components/input-color/input-color.component.d.ts +2 -2
  24. package/components/input-number/quantum.directive.d.ts +1 -1
  25. package/components/input-phone-international/input-phone-international.component.d.ts +23 -29
  26. package/components/input-range/input-range.component.d.ts +6 -9
  27. package/components/input-slider/input-slider.directive.d.ts +2 -4
  28. package/components/like/like.component.d.ts +4 -11
  29. package/components/like/like.options.d.ts +2 -3
  30. package/components/line-clamp/line-clamp-box.component.d.ts +3 -4
  31. package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +2 -2
  32. package/components/pager/pager.component.d.ts +1 -1
  33. package/components/pin/pin.directive.d.ts +2 -2
  34. package/components/progress/progress-bar/fixed-gradient/progress-fixed-gradient.directive.d.ts +1 -2
  35. package/components/progress/progress-segmented/progress-segmented.directive.d.ts +2 -2
  36. package/components/radio/radio.component.d.ts +7 -8
  37. package/components/radio/radio.directive.d.ts +2 -2
  38. package/components/radio/radio.options.d.ts +2 -5
  39. package/components/range/range-change.directive.d.ts +1 -1
  40. package/components/range/range.component.d.ts +0 -5
  41. package/components/rating/rating.component.d.ts +5 -5
  42. package/components/rating/rating.options.d.ts +5 -3
  43. package/components/slider/helpers/key-steps.d.ts +1 -2
  44. package/components/slider/helpers/slider-key-steps.directive.d.ts +12 -21
  45. package/components/slides/slides.directive.d.ts +4 -4
  46. package/components/status/status.directive.d.ts +2 -2
  47. package/components/switch/switch.component.d.ts +7 -19
  48. package/components/switch/switch.options.d.ts +4 -8
  49. package/components/toast/index.d.ts +5 -0
  50. package/components/toast/toast.component.d.ts +17 -0
  51. package/components/toast/toast.d.ts +3 -0
  52. package/components/toast/toast.directive.d.ts +7 -0
  53. package/components/toast/toast.options.d.ts +8 -0
  54. package/components/toast/toast.service.d.ts +16 -0
  55. package/directives/button-select/button-select.directive.d.ts +1 -2
  56. package/directives/chevron/chevron.directive.d.ts +2 -3
  57. package/directives/fade/fade.directive.d.ts +1 -0
  58. package/directives/index.d.ts +0 -1
  59. package/directives/sensitive/sensitive.directive.d.ts +2 -2
  60. package/directives/shimmer/shimmer.directive.d.ts +3 -3
  61. package/directives/skeleton/skeleton.directive.d.ts +3 -3
  62. package/directives/tooltip/tooltip.directive.d.ts +2 -2
  63. package/fesm2022/taiga-ui-kit-components-accordion.mjs +69 -144
  64. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  65. package/fesm2022/taiga-ui-kit-components-action-bar.mjs +22 -38
  66. package/fesm2022/taiga-ui-kit-components-action-bar.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-kit-components-avatar.mjs +21 -32
  68. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-kit-components-badge.mjs +11 -18
  70. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-kit-components-block.mjs +15 -22
  72. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +18 -75
  74. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-kit-components-chip.mjs +13 -25
  76. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-kit-components-comment.mjs +11 -18
  78. package/fesm2022/taiga-ui-kit-components-comment.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-kit-components-confirm.mjs +7 -7
  80. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  81. package/fesm2022/{taiga-ui-kit-directives-copy.mjs → taiga-ui-kit-components-copy.mjs} +5 -7
  82. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -0
  83. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +4 -4
  84. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-kit-components-drawer.mjs +2 -2
  86. package/fesm2022/taiga-ui-kit-components-drawer.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-kit-components-files.mjs +3 -3
  88. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-kit-components-filter.mjs +1 -1
  90. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-kit-components-floating-container.mjs +11 -17
  92. package/fesm2022/taiga-ui-kit-components-floating-container.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs +63 -0
  94. package/fesm2022/taiga-ui-kit-components-fullscreen.mjs.map +1 -0
  95. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +10 -5
  96. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-kit-components-input-color.mjs +4 -6
  98. package/fesm2022/taiga-ui-kit-components-input-color.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +2 -2
  100. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-kit-components-input-date.mjs +2 -2
  102. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +2 -2
  104. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-kit-components-input-month.mjs +2 -2
  106. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-kit-components-input-number.mjs +7 -6
  108. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  109. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +102 -125
  110. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  111. package/fesm2022/taiga-ui-kit-components-input-pin.mjs +2 -2
  112. package/fesm2022/taiga-ui-kit-components-input-pin.mjs.map +1 -1
  113. package/fesm2022/taiga-ui-kit-components-input-range.mjs +27 -25
  114. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  115. package/fesm2022/taiga-ui-kit-components-input-slider.mjs +24 -37
  116. package/fesm2022/taiga-ui-kit-components-input-slider.mjs.map +1 -1
  117. package/fesm2022/taiga-ui-kit-components-input-time.mjs +2 -2
  118. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  119. package/fesm2022/taiga-ui-kit-components-input-year.mjs +2 -2
  120. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  121. package/fesm2022/taiga-ui-kit-components-like.mjs +38 -31
  122. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  123. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +6 -8
  124. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  125. package/fesm2022/taiga-ui-kit-components-message.mjs +6 -8
  126. package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
  127. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +13 -11
  128. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  129. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs +2 -9
  130. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs.map +1 -1
  131. package/fesm2022/taiga-ui-kit-components-pager.mjs +3 -3
  132. package/fesm2022/taiga-ui-kit-components-pager.mjs.map +1 -1
  133. package/fesm2022/taiga-ui-kit-components-pagination.mjs +2 -2
  134. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  135. package/fesm2022/taiga-ui-kit-components-pin.mjs +13 -17
  136. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  137. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs +2 -2
  138. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs.map +1 -1
  139. package/fesm2022/taiga-ui-kit-components-preview.mjs +2 -2
  140. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  141. package/fesm2022/taiga-ui-kit-components-progress.mjs +21 -34
  142. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  143. package/fesm2022/taiga-ui-kit-components-radio.mjs +30 -35
  144. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  145. package/fesm2022/taiga-ui-kit-components-range.mjs +4 -13
  146. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  147. package/fesm2022/taiga-ui-kit-components-rating.mjs +15 -19
  148. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  149. package/fesm2022/taiga-ui-kit-components-select.mjs +2 -2
  150. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  151. package/fesm2022/taiga-ui-kit-components-slider.mjs +57 -55
  152. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  153. package/fesm2022/taiga-ui-kit-components-slides.mjs +12 -20
  154. package/fesm2022/taiga-ui-kit-components-slides.mjs.map +1 -1
  155. package/fesm2022/taiga-ui-kit-components-status.mjs +10 -14
  156. package/fesm2022/taiga-ui-kit-components-status.mjs.map +1 -1
  157. package/fesm2022/taiga-ui-kit-components-switch.mjs +18 -64
  158. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  159. package/fesm2022/taiga-ui-kit-components-tabs.mjs +11 -14
  160. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  161. package/fesm2022/taiga-ui-kit-components-toast.mjs +166 -0
  162. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -0
  163. package/fesm2022/taiga-ui-kit-components-tree.mjs +3 -3
  164. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  165. package/fesm2022/taiga-ui-kit-components.mjs +3 -0
  166. package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
  167. package/fesm2022/taiga-ui-kit-directives-button-group.mjs +6 -9
  168. package/fesm2022/taiga-ui-kit-directives-button-group.mjs.map +1 -1
  169. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +2 -9
  170. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
  171. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +11 -18
  172. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  173. package/fesm2022/taiga-ui-kit-directives-connected.mjs +7 -12
  174. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  175. package/fesm2022/taiga-ui-kit-directives-fade.mjs +6 -9
  176. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  177. package/fesm2022/taiga-ui-kit-directives-password.mjs +3 -3
  178. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  179. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +11 -16
  180. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
  181. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs +22 -32
  182. package/fesm2022/taiga-ui-kit-directives-shimmer.mjs.map +1 -1
  183. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs +25 -36
  184. package/fesm2022/taiga-ui-kit-directives-skeleton.mjs.map +1 -1
  185. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +11 -16
  186. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  187. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +1 -2
  188. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  189. package/fesm2022/taiga-ui-kit-directives.mjs +0 -1
  190. package/fesm2022/taiga-ui-kit-directives.mjs.map +1 -1
  191. package/fesm2022/taiga-ui-kit-pipes.mjs +0 -1
  192. package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
  193. package/fesm2022/taiga-ui-kit-tokens.mjs +1 -6
  194. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  195. package/package.json +39 -34
  196. package/pipes/index.d.ts +0 -1
  197. package/styles/components/checkbox.less +14 -12
  198. package/styles/components/chip.less +1 -0
  199. package/styles/components/like.less +4 -9
  200. package/styles/components/pin.less +0 -1
  201. package/styles/components/radio.less +1 -1
  202. package/styles/components/switch.less +9 -9
  203. package/styles/components/toast.less +44 -0
  204. package/tokens/index.d.ts +0 -1
  205. package/components/accordion/accordion-item-content.directive.d.ts +0 -6
  206. package/components/accordion/accordion-item-eager-content.directive.d.ts +0 -5
  207. package/components/accordion/accordion-item.component.d.ts +0 -25
  208. package/components/action-bar/action-bar.d.ts +0 -3
  209. package/components/action-bar/action-bar.directive.d.ts +0 -6
  210. package/fesm2022/taiga-ui-kit-directives-copy.mjs.map +0 -1
  211. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs +0 -147
  212. package/fesm2022/taiga-ui-kit-pipes-field-error.mjs.map +0 -1
  213. package/pipes/field-error/field-error-content-pipe.d.ts +0 -14
  214. package/pipes/field-error/field-error-pipe.d.ts +0 -29
  215. package/pipes/field-error/index.d.ts +0 -2
  216. package/tokens/validation-errors.d.ts +0 -5
  217. /package/{directives → components}/copy/copy.component.d.ts +0 -0
  218. /package/{directives → components}/copy/copy.d.ts +0 -0
  219. /package/{directives → components}/copy/index.d.ts +0 -0
@@ -1,25 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { type TuiSizeS } from '@taiga-ui/core/types';
3
- import { TuiAccordionItemContent } from './accordion-item-content.directive';
4
- import { TuiAccordionItemEagerContent } from './accordion-item-eager-content.directive';
5
- import * as i0 from "@angular/core";
6
- export declare class TuiAccordionItem {
7
- private readonly cdr;
8
- protected readonly eagerContent?: TuiAccordionItemEagerContent;
9
- protected readonly lazyContent?: TuiAccordionItemContent;
10
- noPadding: boolean;
11
- showArrow: boolean;
12
- borders: 'all' | 'top-bottom' | null;
13
- size: TuiSizeS;
14
- disabled: boolean;
15
- disableHover: boolean;
16
- open: boolean;
17
- async: boolean;
18
- readonly openChange: EventEmitter<boolean>;
19
- close(): void;
20
- protected onRowToggle(): void;
21
- protected onItemKeyDownEsc(event: Event): void;
22
- private updateOpen;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiAccordionItem, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<TuiAccordionItem, "tui-accordion-item", never, { "noPadding": { "alias": "noPadding"; "required": false; }; "showArrow": { "alias": "showArrow"; "required": false; }; "borders": { "alias": "borders"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "disableHover": { "alias": "disableHover"; "required": false; }; "open": { "alias": "open"; "required": false; }; "async": { "alias": "async"; "required": false; }; }, { "openChange": "openChange"; }, ["eagerContent", "lazyContent"], ["*", "[tuiAccordionItemContent]:not(ng-template)"], true, never>;
25
- }
@@ -1,3 +0,0 @@
1
- import { TuiActionBarComponent } from './action-bar.component';
2
- import { TuiActionBarDirective } from './action-bar.directive';
3
- export declare const TuiActionBar: readonly [typeof TuiActionBarComponent, typeof TuiActionBarDirective];
@@ -1,6 +0,0 @@
1
- import { TuiDropdownPortal } from '@taiga-ui/core/directives/dropdown';
2
- import * as i0 from "@angular/core";
3
- export declare class TuiActionBarDirective extends TuiDropdownPortal {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiActionBarDirective, never>;
5
- static ɵdir: i0.ɵɵDirectiveDeclaration<TuiActionBarDirective, "ng-template[tuiActionBar]", never, { "tuiDropdown": { "alias": "tuiActionBar"; "required": false; }; }, {}, never, never, true, never>;
6
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-copy.mjs","sources":["../../../projects/kit/directives/copy/copy.options.ts","../../../projects/kit/directives/copy/copy.component.ts","../../../projects/kit/directives/copy/copy.template.html","../../../projects/kit/directives/copy/copy.directive.ts","../../../projects/kit/directives/copy/copy.ts","../../../projects/kit/directives/copy/index.ts","../../../projects/kit/directives/copy/taiga-ui-kit-directives-copy.ts"],"sourcesContent":["import {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiCopyOptions {\n readonly icon: TuiStringHandler<TuiSizeL | TuiSizeS> | string;\n}\n\nexport const [TUI_COPY_OPTIONS, tuiCopyOptionsProvider] =\n tuiCreateOptions<TuiCopyOptions>({icon: '@tui.copy'});\n","import {ClipboardModule} from '@angular/cdk/clipboard';\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/components/notification';\nimport {TuiHint} from '@taiga-ui/core/directives/hint';\nimport {type TuiSizeL} from '@taiga-ui/core/types';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {BehaviorSubject, map, startWith, switchMap, timer} from 'rxjs';\n\nimport {TUI_COPY_OPTIONS} from './copy.options';\n\n@Component({\n selector: 'tui-copy',\n imports: [ClipboardModule, TuiButton, TuiHint, TuiIcon],\n templateUrl: './copy.template.html',\n styleUrls: ['./copy.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size',\n '(pointerdown)': 'copied$.next(false)',\n },\n})\nexport class TuiCopyComponent {\n protected readonly notification = inject(TUI_NOTIFICATION_OPTIONS);\n protected readonly options = inject(TUI_COPY_OPTIONS);\n protected readonly copied$ = new BehaviorSubject<boolean>(false);\n protected readonly texts = toSignal(inject(TUI_COPY_TEXTS));\n protected readonly hint = toSignal(\n this.copied$.pipe(\n switchMap((copied) =>\n timer(2000).pipe(map(TUI_FALSE_HANDLER), startWith(copied)),\n ),\n ),\n );\n\n @Input()\n public size: TuiSizeL = 'm';\n\n protected get icon(): string {\n return tuiIsString(this.options.icon)\n ? this.options.icon\n : this.options.icon(this.size);\n }\n\n protected get check(): string {\n return tuiIsString(this.notification.icon)\n ? this.notification.icon\n : this.notification.icon('positive');\n }\n}\n","<span\n #content\n tuiHintAppearance=\"dark\"\n tuiHintDirection=\"top\"\n class=\"t-content\"\n [cdkCopyToClipboard]=\"content.textContent ?? ''\"\n [tuiHint]=\"template\"\n [tuiHintManual]=\"!!hint()\"\n (cdkCopyToClipboardCopied)=\"copied$.next($event)\"\n>\n <ng-content />\n</span>\n<button\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [attr.aria-label]=\"texts()?.[0]\"\n [cdkCopyToClipboard]=\"content.textContent ?? ''\"\n [iconStart]=\"icon\"\n (cdkCopyToClipboardCopied)=\"copied$.next($event)\"\n></button>\n<ng-template #template>\n <tui-icon\n class=\"t-icon\"\n [icon]=\"check\"\n />\n {{ texts()?.[1] }}\n</ng-template>\n","import {DOCUMENT} from '@angular/common';\nimport {computed, Directive, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {tuiDirectiveBinding, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\nimport {TuiHintDirective} from '@taiga-ui/core/directives/hint';\nimport {TuiIcons} from '@taiga-ui/core/directives/icons';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {map, startWith, Subject, switchMap, timer} from 'rxjs';\n\nimport {TUI_COPY_OPTIONS} from './copy.options';\n\n@Directive({\n standalone: true,\n selector: 'tui-icon[tuiCopy]',\n providers: [\n {\n provide: TUI_APPEARANCE_OPTIONS,\n useValue: {appearance: 'icon'},\n },\n ],\n hostDirectives: [\n TuiWithAppearance,\n {\n directive: TuiHintDirective,\n inputs: ['tuiHintAppearance', 'tuiHintContext'],\n },\n ],\n host: {\n style: 'cursor: pointer',\n '(click)': 'copy()',\n '[style.pointer-events]': 'disabled ? \"none\" : null',\n '[style.opacity]': 'disabled ? \"var(--tui-disabled-opacity)\" : null',\n '[style.border-width.rem]': 'textfield.options.size() === \"l\" ? null : 0.25',\n },\n})\nexport class TuiCopyDirective {\n private readonly options = inject(TUI_COPY_OPTIONS);\n private readonly copied$ = new Subject<void>();\n private readonly doc = inject(DOCUMENT);\n\n protected readonly textfield = inject(TuiTextfieldComponent);\n protected readonly hint = tuiDirectiveBinding(\n TuiHintDirective,\n 'tuiHint',\n toSignal(\n inject(TUI_COPY_TEXTS).pipe(\n switchMap(([copy, copied]) =>\n this.copied$.pipe(\n switchMap(() =>\n timer(3000).pipe(\n map(() => copy),\n startWith(copied),\n ),\n ),\n startWith(copy),\n ),\n ),\n ),\n {initialValue: ''},\n ),\n );\n\n protected readonly icons = tuiDirectiveBinding(\n TuiIcons,\n 'iconStart',\n computed((size = this.textfield.options.size()) =>\n tuiIsString(this.options.icon) ? this.options.icon : this.options.icon(size),\n ),\n );\n\n @Input()\n public tuiCopy = '';\n\n protected get disabled(): boolean {\n return !this.textfield.input?.nativeElement.value;\n }\n\n protected copy(): void {\n this.textfield.input?.nativeElement.select();\n this.doc.execCommand('copy');\n this.copied$.next();\n }\n}\n","import {TuiCopyComponent} from './copy.component';\nimport {TuiCopyDirective} from './copy.directive';\n\nexport const TuiCopy = [TuiCopyComponent, TuiCopyDirective] as const;\n","// TODO: Move to components in v5\nexport * from './copy';\nexport * from './copy.component';\nexport * from './copy.directive';\nexport * from './copy.options';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -1,147 +0,0 @@
1
- import { AsyncPipe } from '@angular/common';
2
- import * as i0 from '@angular/core';
3
- import { inject, Pipe, INJECTOR, Injector } from '@angular/core';
4
- import { __decorate } from 'tslib';
5
- import { NgControl, ControlContainer } from '@angular/forms';
6
- import { TuiValidationError } from '@taiga-ui/cdk/classes';
7
- import { tuiIsString, tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
8
- import { TUI_VALIDATION_ERRORS } from '@taiga-ui/kit/tokens';
9
- import { map, of, Observable } from 'rxjs';
10
-
11
- const EMPTY_RECORD = {};
12
- function unwrapObservable(content, context) {
13
- return content.pipe(map((error) => new TuiValidationError(error || '', context)));
14
- }
15
- function defaultError(content, context) {
16
- return of(new TuiValidationError(content || '', context));
17
- }
18
- class TuiFieldErrorPipe {
19
- constructor() {
20
- this.order = [];
21
- this.parent = inject(NgControl, { skipSelf: true, optional: true });
22
- this.self = inject(NgControl, { self: true, optional: true });
23
- this.container = inject(ControlContainer, { optional: true });
24
- this.validationErrors = inject(TUI_VALIDATION_ERRORS);
25
- if (this.self && !this.self.valueAccessor) {
26
- this.self.valueAccessor = this;
27
- }
28
- }
29
- transform(order) {
30
- this.order = order;
31
- return this.computedError;
32
- }
33
- registerOnChange() { }
34
- registerOnTouched() { }
35
- setDisabledState() { }
36
- writeValue() { }
37
- get computedError() {
38
- return (this.invalid && this.touched && this.error) || of(null);
39
- }
40
- get error() {
41
- const { errorId } = this;
42
- if (!errorId) {
43
- return null;
44
- }
45
- const firstError = this.controlErrors[errorId];
46
- const errorContent = this.validationErrors[errorId];
47
- return this.getError(firstError, errorContent);
48
- }
49
- get invalid() {
50
- return !!this.control?.invalid;
51
- }
52
- get touched() {
53
- return !!this.control?.touched;
54
- }
55
- get control() {
56
- return this.self?.control || this.parent?.control || this.container?.control;
57
- }
58
- get errorId() {
59
- return this.getErrorId(this.order, this.controlErrors);
60
- }
61
- get controlErrors() {
62
- return this.control?.errors || EMPTY_RECORD;
63
- }
64
- getError(context, content) {
65
- if (context instanceof TuiValidationError) {
66
- return of(context);
67
- }
68
- if (content === undefined && tuiIsString(context)) {
69
- return of(new TuiValidationError(context));
70
- }
71
- if (content instanceof Observable) {
72
- return unwrapObservable(content, context);
73
- }
74
- if (content instanceof Function) {
75
- const message = content(context);
76
- return message instanceof Observable
77
- ? unwrapObservable(message, context)
78
- : defaultError(message, context);
79
- }
80
- return defaultError(content, context);
81
- }
82
- getErrorId(order, controlErrors) {
83
- const id = order?.find((errorId) => controlErrors[errorId]);
84
- const [fallback] = Object.keys(controlErrors);
85
- return id || fallback || '';
86
- }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiFieldErrorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
88
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TuiFieldErrorPipe, isStandalone: true, name: "tuiFieldError", pure: false }); }
89
- }
90
- __decorate([
91
- tuiPure
92
- ], TuiFieldErrorPipe.prototype, "getError", null);
93
- __decorate([
94
- tuiPure
95
- ], TuiFieldErrorPipe.prototype, "getErrorId", null);
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiFieldErrorPipe, decorators: [{
97
- type: Pipe,
98
- args: [{
99
- standalone: true,
100
- name: 'tuiFieldError',
101
- pure: false,
102
- }]
103
- }], ctorParameters: () => [], propDecorators: { getError: [], getErrorId: [] } });
104
-
105
- class TuiFieldErrorContentPipe {
106
- constructor() {
107
- this.injector = inject(INJECTOR);
108
- this.localInjector = Injector.create({
109
- providers: [{ provide: AsyncPipe }, { provide: TuiFieldErrorPipe }],
110
- parent: this.injector,
111
- });
112
- this.asyncPipe = this.localInjector.get(AsyncPipe);
113
- this.fieldErrorPipe = this.localInjector.get(TuiFieldErrorPipe);
114
- }
115
- transform(order) {
116
- return this.getErrorContent(order);
117
- }
118
- ngOnDestroy() {
119
- this.asyncPipe.ngOnDestroy();
120
- }
121
- getErrorContent(order) {
122
- const error = this.asyncPipe.transform(this.fieldErrorPipe.transform(order));
123
- if (!error) {
124
- return '';
125
- }
126
- return typeof error.message === 'function'
127
- ? error.message(error.context)
128
- : error.message;
129
- }
130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiFieldErrorContentPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
131
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TuiFieldErrorContentPipe, isStandalone: true, name: "tuiFieldErrorContent", pure: false }); }
132
- }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiFieldErrorContentPipe, decorators: [{
134
- type: Pipe,
135
- args: [{
136
- standalone: true,
137
- name: 'tuiFieldErrorContent',
138
- pure: false,
139
- }]
140
- }] });
141
-
142
- /**
143
- * Generated bundle index. Do not edit.
144
- */
145
-
146
- export { TuiFieldErrorContentPipe, TuiFieldErrorPipe };
147
- //# sourceMappingURL=taiga-ui-kit-pipes-field-error.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"taiga-ui-kit-pipes-field-error.mjs","sources":["../../../projects/kit/pipes/field-error/field-error-pipe.ts","../../../projects/kit/pipes/field-error/field-error-content-pipe.ts","../../../projects/kit/pipes/field-error/taiga-ui-kit-pipes-field-error.ts"],"sourcesContent":["import {inject, Pipe, type PipeTransform} from '@angular/core';\nimport {\n type AbstractControl,\n ControlContainer,\n type ControlValueAccessor,\n NgControl,\n} from '@angular/forms';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {tuiIsString, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_VALIDATION_ERRORS} from '@taiga-ui/kit/tokens';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {map, Observable, of} from 'rxjs';\n\nconst EMPTY_RECORD = {};\n\nfunction unwrapObservable(\n content: Observable<PolymorpheusContent>,\n context: any,\n): Observable<TuiValidationError> {\n return content.pipe(map((error) => new TuiValidationError(error || '', context)));\n}\n\nfunction defaultError(\n content: PolymorpheusContent,\n context: any,\n): Observable<TuiValidationError> {\n return of(new TuiValidationError(content || '', context));\n}\n\n@Pipe({\n standalone: true,\n name: 'tuiFieldError',\n pure: false,\n})\nexport class TuiFieldErrorPipe implements PipeTransform, ControlValueAccessor {\n private order: readonly string[] = [];\n private readonly parent = inject(NgControl, {skipSelf: true, optional: true});\n private readonly self = inject(NgControl, {self: true, optional: true});\n private readonly container = inject(ControlContainer, {optional: true});\n private readonly validationErrors = inject(TUI_VALIDATION_ERRORS);\n\n constructor() {\n if (this.self && !this.self.valueAccessor) {\n this.self.valueAccessor = this;\n }\n }\n\n public transform(order: readonly string[]): Observable<TuiValidationError | null> {\n this.order = order;\n\n return this.computedError;\n }\n\n public registerOnChange(): void {}\n\n public registerOnTouched(): void {}\n\n public setDisabledState(): void {}\n\n public writeValue(): void {}\n\n protected get computedError(): Observable<TuiValidationError | null> {\n return (this.invalid && this.touched && this.error) || of(null);\n }\n\n private get error(): Observable<TuiValidationError> | null {\n const {errorId} = this;\n\n if (!errorId) {\n return null;\n }\n\n const firstError = this.controlErrors[errorId];\n const errorContent = this.validationErrors[errorId];\n\n return this.getError(firstError, errorContent);\n }\n\n private get invalid(): boolean {\n return !!this.control?.invalid;\n }\n\n private get touched(): boolean {\n return !!this.control?.touched;\n }\n\n private get control(): AbstractControl | null | undefined {\n return this.self?.control || this.parent?.control || this.container?.control;\n }\n\n private get errorId(): string {\n return this.getErrorId(this.order, this.controlErrors);\n }\n\n private get controlErrors(): Record<string, unknown> {\n return this.control?.errors || EMPTY_RECORD;\n }\n\n @tuiPure\n private getError(\n context: any,\n content?: Observable<PolymorpheusContent> | PolymorpheusContent,\n ): Observable<TuiValidationError> {\n if (context instanceof TuiValidationError) {\n return of(context);\n }\n\n if (content === undefined && tuiIsString(context)) {\n return of(new TuiValidationError(context));\n }\n\n if (content instanceof Observable) {\n return unwrapObservable(content, context);\n }\n\n if (content instanceof Function) {\n const message = content(context) as\n | Observable<PolymorpheusContent>\n | PolymorpheusContent;\n\n return message instanceof Observable\n ? unwrapObservable(message, context)\n : defaultError(message, context);\n }\n\n return defaultError(content, context);\n }\n\n @tuiPure\n private getErrorId(\n order: readonly string[],\n controlErrors: Record<string, unknown>,\n ): string {\n const id = order?.find((errorId) => controlErrors[errorId]);\n const [fallback] = Object.keys(controlErrors);\n\n return id || fallback || '';\n }\n}\n","import {AsyncPipe} from '@angular/common';\nimport {\n inject,\n INJECTOR,\n Injector,\n type OnDestroy,\n Pipe,\n type PipeTransform,\n} from '@angular/core';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TuiFieldErrorPipe} from './field-error-pipe';\n\n@Pipe({\n standalone: true,\n name: 'tuiFieldErrorContent',\n pure: false,\n})\nexport class TuiFieldErrorContentPipe implements PipeTransform, OnDestroy {\n private readonly injector = inject(INJECTOR);\n private readonly localInjector = Injector.create({\n providers: [{provide: AsyncPipe}, {provide: TuiFieldErrorPipe}],\n parent: this.injector,\n });\n\n private readonly asyncPipe = this.localInjector.get(AsyncPipe);\n private readonly fieldErrorPipe = this.localInjector.get(TuiFieldErrorPipe);\n\n public transform(order: readonly string[]): PolymorpheusContent {\n return this.getErrorContent(order);\n }\n\n public ngOnDestroy(): void {\n this.asyncPipe.ngOnDestroy();\n }\n\n private getErrorContent(order: readonly string[]): PolymorpheusContent {\n const error = this.asyncPipe.transform(this.fieldErrorPipe.transform(order));\n\n if (!error) {\n return '';\n }\n\n return typeof error.message === 'function'\n ? error.message(error.context)\n : error.message;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { type OnDestroy, type PipeTransform } from '@angular/core';
2
- import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
3
- import * as i0 from "@angular/core";
4
- export declare class TuiFieldErrorContentPipe implements PipeTransform, OnDestroy {
5
- private readonly injector;
6
- private readonly localInjector;
7
- private readonly asyncPipe;
8
- private readonly fieldErrorPipe;
9
- transform(order: readonly string[]): PolymorpheusContent;
10
- ngOnDestroy(): void;
11
- private getErrorContent;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiFieldErrorContentPipe, never>;
13
- static ɵpipe: i0.ɵɵPipeDeclaration<TuiFieldErrorContentPipe, "tuiFieldErrorContent", true>;
14
- }
@@ -1,29 +0,0 @@
1
- import { type PipeTransform } from '@angular/core';
2
- import { type ControlValueAccessor } from '@angular/forms';
3
- import { TuiValidationError } from '@taiga-ui/cdk/classes';
4
- import { Observable } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- export declare class TuiFieldErrorPipe implements PipeTransform, ControlValueAccessor {
7
- private order;
8
- private readonly parent;
9
- private readonly self;
10
- private readonly container;
11
- private readonly validationErrors;
12
- constructor();
13
- transform(order: readonly string[]): Observable<TuiValidationError | null>;
14
- registerOnChange(): void;
15
- registerOnTouched(): void;
16
- setDisabledState(): void;
17
- writeValue(): void;
18
- protected get computedError(): Observable<TuiValidationError | null>;
19
- private get error();
20
- private get invalid();
21
- private get touched();
22
- private get control();
23
- private get errorId();
24
- private get controlErrors();
25
- private getError;
26
- private getErrorId;
27
- static ɵfac: i0.ɵɵFactoryDeclaration<TuiFieldErrorPipe, never>;
28
- static ɵpipe: i0.ɵɵPipeDeclaration<TuiFieldErrorPipe, "tuiFieldError", true>;
29
- }
@@ -1,2 +0,0 @@
1
- export * from './field-error-content-pipe';
2
- export * from './field-error-pipe';
@@ -1,5 +0,0 @@
1
- import { InjectionToken, type Provider } from '@angular/core';
2
- import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
3
- import { type Observable } from 'rxjs';
4
- export declare const TUI_VALIDATION_ERRORS: InjectionToken<Record<string, PolymorpheusContent | Observable<PolymorpheusContent>>>;
5
- export declare const tuiValidationErrorsProvider: (useValue: Record<string, Observable<PolymorpheusContent> | PolymorpheusContent>) => Provider;
File without changes
File without changes