@taiga-ui/kit 4.43.0-canary.7059f3e → 4.43.0-canary.f54a6e4

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 (136) hide show
  1. package/components/avatar/avatar.options.d.ts +1 -2
  2. package/components/badge/badge.options.d.ts +1 -2
  3. package/components/badge-notification/badge-notification.options.d.ts +1 -2
  4. package/components/block/block.options.d.ts +1 -2
  5. package/components/breadcrumbs/breadcrumbs.options.d.ts +1 -2
  6. package/components/checkbox/checkbox.options.d.ts +1 -2
  7. package/components/chip/chip.options.d.ts +1 -2
  8. package/components/files/input-files/input-files.options.d.ts +1 -2
  9. package/components/input-date-range/input-date-range.options.d.ts +1 -2
  10. package/components/input-month/input-month.options.d.ts +1 -2
  11. package/components/input-month-range/input-month-range.options.d.ts +1 -2
  12. package/components/input-password/input-password.options.d.ts +1 -2
  13. package/components/input-phone-international/input-phone-international.options.d.ts +1 -2
  14. package/components/line-clamp/line-clamp.options.d.ts +1 -2
  15. package/components/multi-select/multi-select.d.ts +1 -2
  16. package/components/pdf-viewer/pdf-viewer.options.d.ts +1 -2
  17. package/components/progress/progress.options.d.ts +1 -2
  18. package/components/push/push.options.d.ts +1 -2
  19. package/components/radio/radio.options.d.ts +1 -2
  20. package/components/rating/rating.options.d.ts +1 -2
  21. package/components/select/select-option/select-option.component.d.ts +2 -2
  22. package/components/slider/slider.options.d.ts +1 -2
  23. package/components/switch/switch.options.d.ts +1 -2
  24. package/components/tabs/tabs.options.d.ts +1 -2
  25. package/components/tabs/tabs.providers.d.ts +1 -2
  26. package/components/tiles/tiles.tokens.d.ts +1 -2
  27. package/components/tree/misc/tree.tokens.d.ts +8 -9
  28. package/directives/chevron/chevron.directive.d.ts +1 -2
  29. package/directives/fluid-typography/fluid-typography.options.d.ts +1 -2
  30. package/esm2022/components/avatar/avatar.options.mjs +3 -6
  31. package/esm2022/components/badge/badge.options.mjs +3 -6
  32. package/esm2022/components/badge-notification/badge-notification.options.mjs +3 -6
  33. package/esm2022/components/block/block.options.mjs +3 -6
  34. package/esm2022/components/breadcrumbs/breadcrumbs.options.mjs +3 -6
  35. package/esm2022/components/checkbox/checkbox.options.mjs +3 -6
  36. package/esm2022/components/chip/chip.options.mjs +3 -6
  37. package/esm2022/components/files/input-files/input-files.options.mjs +3 -6
  38. package/esm2022/components/input-date-range/input-date-range.options.mjs +7 -9
  39. package/esm2022/components/input-month/input-month.options.mjs +7 -9
  40. package/esm2022/components/input-month-range/input-month-range.options.mjs +7 -9
  41. package/esm2022/components/input-password/input-password.options.mjs +3 -6
  42. package/esm2022/components/input-phone-international/input-phone-international.options.mjs +3 -6
  43. package/esm2022/components/line-clamp/line-clamp.options.mjs +3 -6
  44. package/esm2022/components/multi-select/multi-select.mjs +1 -1
  45. package/esm2022/components/pdf-viewer/pdf-viewer.options.mjs +3 -6
  46. package/esm2022/components/progress/progress.options.mjs +3 -6
  47. package/esm2022/components/push/push.options.mjs +3 -6
  48. package/esm2022/components/radio/radio.options.mjs +3 -6
  49. package/esm2022/components/rating/rating.options.mjs +3 -6
  50. package/esm2022/components/select/select-option/select-option.component.mjs +9 -23
  51. package/esm2022/components/slider/slider.options.mjs +3 -6
  52. package/esm2022/components/switch/switch.options.mjs +3 -6
  53. package/esm2022/components/tabs/tabs.options.mjs +3 -6
  54. package/esm2022/components/tabs/tabs.providers.mjs +4 -3
  55. package/esm2022/components/tiles/tiles.tokens.mjs +3 -5
  56. package/esm2022/components/tree/misc/tree.tokens.mjs +10 -18
  57. package/esm2022/directives/chevron/chevron.directive.mjs +4 -6
  58. package/esm2022/directives/fluid-typography/fluid-typography.options.mjs +3 -6
  59. package/esm2022/pipes/emails/emails.options.mjs +11 -13
  60. package/esm2022/tokens/calendar-date-stream.mjs +4 -3
  61. package/esm2022/tokens/date-inputs-value-transformers.mjs +6 -8
  62. package/esm2022/tokens/i18n.mjs +26 -74
  63. package/esm2022/tokens/items-handlers.mjs +3 -6
  64. package/esm2022/tokens/mobile-calendar.mjs +4 -3
  65. package/esm2022/tokens/month-formatter.mjs +9 -10
  66. package/esm2022/tokens/preview-icons.mjs +3 -6
  67. package/esm2022/tokens/validation-errors.mjs +3 -5
  68. package/fesm2022/taiga-ui-kit-components-avatar.mjs +3 -5
  69. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  70. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +3 -5
  71. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-kit-components-badge.mjs +3 -5
  73. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  74. package/fesm2022/taiga-ui-kit-components-block.mjs +3 -5
  75. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +3 -5
  77. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +3 -5
  79. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  80. package/fesm2022/taiga-ui-kit-components-chip.mjs +3 -5
  81. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  82. package/fesm2022/taiga-ui-kit-components-files.mjs +3 -5
  83. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  84. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +6 -8
  85. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  86. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +6 -8
  87. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  88. package/fesm2022/taiga-ui-kit-components-input-month.mjs +6 -8
  89. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  90. package/fesm2022/taiga-ui-kit-components-input-password.mjs +3 -5
  91. package/fesm2022/taiga-ui-kit-components-input-password.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +3 -5
  93. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +3 -5
  95. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +3 -5
  98. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-kit-components-progress.mjs +3 -5
  100. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-kit-components-push.mjs +3 -5
  102. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-kit-components-radio.mjs +3 -5
  104. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-kit-components-rating.mjs +3 -5
  106. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-kit-components-select.mjs +8 -22
  108. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  109. package/fesm2022/taiga-ui-kit-components-slider.mjs +3 -5
  110. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  111. package/fesm2022/taiga-ui-kit-components-switch.mjs +3 -5
  112. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  113. package/fesm2022/taiga-ui-kit-components-tabs.mjs +4 -6
  114. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  115. package/fesm2022/taiga-ui-kit-components-tiles.mjs +3 -5
  116. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  117. package/fesm2022/taiga-ui-kit-components-tree.mjs +10 -18
  118. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  119. package/fesm2022/taiga-ui-kit-directives-chevron.mjs +3 -5
  120. package/fesm2022/taiga-ui-kit-directives-chevron.mjs.map +1 -1
  121. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +3 -5
  122. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  123. package/fesm2022/taiga-ui-kit-pipes-emails.mjs +11 -12
  124. package/fesm2022/taiga-ui-kit-pipes-emails.mjs.map +1 -1
  125. package/fesm2022/taiga-ui-kit-tokens.mjs +41 -99
  126. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  127. package/package.json +1 -1
  128. package/pipes/emails/emails.options.d.ts +1 -2
  129. package/tokens/calendar-date-stream.d.ts +1 -2
  130. package/tokens/date-inputs-value-transformers.d.ts +4 -5
  131. package/tokens/i18n.d.ts +24 -25
  132. package/tokens/items-handlers.d.ts +1 -2
  133. package/tokens/mobile-calendar.d.ts +1 -2
  134. package/tokens/month-formatter.d.ts +1 -2
  135. package/tokens/preview-icons.d.ts +1 -2
  136. package/tokens/validation-errors.d.ts +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-tree.mjs","sources":["../../../projects/kit/components/tree/directives/tree-children.directive.ts","../../../projects/kit/components/tree/components/tree-item-content/tree-item-content.component.ts","../../../projects/kit/components/tree/components/tree-item-content/tree-item-content.template.html","../../../projects/kit/components/tree/misc/tree.constants.ts","../../../projects/kit/components/tree/misc/tree.tokens.ts","../../../projects/kit/components/tree/components/tree-item/tree-item.component.ts","../../../projects/kit/components/tree/components/tree-item/tree-item.template.html","../../../projects/kit/components/tree/directives/tree-node.directive.ts","../../../projects/kit/components/tree/components/tree/tree.component.ts","../../../projects/kit/components/tree/components/tree/tree.template.html","../../../projects/kit/components/tree/directives/tree-controller.directive.ts","../../../projects/kit/components/tree/directives/tree-item-controller.directive.ts","../../../projects/kit/components/tree/misc/tree.service.ts","../../../projects/kit/components/tree/tree.ts","../../../projects/kit/components/tree/taiga-ui-kit-components-tree.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\nimport {EMPTY_ARRAY} from '@taiga-ui/cdk/constants';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\n\n@Directive({\n standalone: true,\n selector: 'tui-tree[childrenHandler]',\n})\nexport class TuiTreeChildren<T> {\n @Input()\n public childrenHandler: TuiHandler<T, readonly T[]> = TuiTreeChildren.defaultHandler;\n\n public static defaultHandler<G>(item: G): readonly G[] {\n return Array.isArray(item) ? item : EMPTY_ARRAY;\n }\n}\n","import {NgIf, NgTemplateOutlet} from '@angular/common';\nimport type {DoCheck} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, forwardRef, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TUI_MORE_WORD} from '@taiga-ui/kit/tokens';\nimport {injectContext} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER} from '../../misc/tree.constants';\nimport type {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../../misc/tree.tokens';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgTemplateOutlet, TuiButton],\n templateUrl: './tree-item-content.template.html',\n styleUrls: ['./tree-item-content.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._expandable]': 'isExpandable',\n },\n})\nexport class TuiTreeItemContent implements DoCheck {\n private readonly controller = inject<TuiTreeController>(\n forwardRef(() => TUI_TREE_CONTROLLER),\n );\n\n private readonly change$ = new Subject<void>();\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly more = toSignal(inject(TUI_MORE_WORD));\n protected readonly context = injectContext<TuiTreeItemContext>();\n\n protected readonly expanded = toSignal(\n this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n distinctUntilChanged(),\n ),\n {initialValue: this.isExpanded},\n );\n\n public ngDoCheck(): void {\n this.change$.next();\n }\n\n protected get isExpandable(): boolean {\n return (\n this.context.$implicit.isExpandable &&\n this.controller !== TUI_DEFAULT_TREE_CONTROLLER\n );\n }\n\n protected get isExpanded(): boolean {\n return this.context.$implicit.isExpanded;\n }\n\n protected onClick(): void {\n this.controller.toggle(this.context.$implicit);\n }\n}\n","<button\n *ngIf=\"isExpandable\"\n appearance=\"flat\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_expanded]=\"expanded()\"\n [iconStart]=\"icons.more\"\n [style.border-radius.%]=\"100\"\n (click)=\"onClick()\"\n>\n {{ more() }}\n</button>\n<ng-container [ngTemplateOutlet]=\"context.template\" />\n","import {EMPTY_FUNCTION, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {TuiTreeItemContent} from '../components/tree-item-content/tree-item-content.component';\nimport type {TuiTreeController} from './tree.interfaces';\n\nexport const TUI_TREE_ITEM_CONTENT = new PolymorpheusComponent(TuiTreeItemContent);\n\nexport const TUI_DEFAULT_TREE_CONTROLLER: TuiTreeController = {\n isExpanded: TUI_TRUE_HANDLER,\n toggle: EMPTY_FUNCTION,\n};\n","import {InjectionToken} from '@angular/core';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER, TUI_TREE_ITEM_CONTENT} from './tree.constants';\nimport type {TuiTreeAccessor, TuiTreeItemContext, TuiTreeLoader} from './tree.interfaces';\n\n/**\n * Controller for tracking value - TuiTreeItemComponent pairs\n */\nexport const TUI_TREE_ACCESSOR = new InjectionToken<TuiTreeAccessor<unknown>>(\n ngDevMode ? 'TUI_TREE_ACCESSOR' : '',\n);\n\n/**\n * Controller for expanding the tree\n */\nexport const TUI_TREE_CONTROLLER = new InjectionToken(\n ngDevMode ? 'TUI_TREE_CONTROLLER' : '',\n {\n factory: () => TUI_DEFAULT_TREE_CONTROLLER,\n },\n);\n\n/**\n * A node of a tree view\n */\nexport const TUI_TREE_NODE = new InjectionToken(ngDevMode ? 'TUI_TREE_NODE' : '');\n\n/**\n * A tree node placeholder for loading\n */\nexport const TUI_TREE_LOADING = new InjectionToken(ngDevMode ? 'TUI_TREE_LOADING' : '', {\n factory: () => ({}),\n});\n\n/**\n * A tree node starting point\n */\nexport const TUI_TREE_START = new InjectionToken(ngDevMode ? 'TUI_TREE_START' : '');\n\n/**\n * A service to load tree progressively\n */\nexport const TUI_TREE_LOADER = new InjectionToken<TuiTreeLoader<unknown>>(\n ngDevMode ? 'TUI_TREE_LOADER' : '',\n);\n\n/**\n * Content for a tree item\n */\nexport const TUI_TREE_CONTENT = new InjectionToken<\n PolymorpheusContent<TuiTreeItemContext>\n>(ngDevMode ? 'TUI_TREE_CONTENT' : '', {\n factory: () => TUI_TREE_ITEM_CONTENT,\n});\n\n/**\n * Nesting level of current TreeView node\n */\nexport const TUI_TREE_LEVEL = new InjectionToken(ngDevMode ? 'TUI_TREE_LEVEL' : '', {\n factory: () => -1,\n});\n","import {NgIf} from '@angular/common';\nimport type {DoCheck, QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n forwardRef,\n inject,\n SkipSelf,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiExpandComponent} from '@taiga-ui/core/components/expand';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport type {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces';\nimport {\n TUI_TREE_CONTENT,\n TUI_TREE_CONTROLLER,\n TUI_TREE_LEVEL,\n TUI_TREE_NODE,\n} from '../../misc/tree.tokens';\n\n@Component({\n standalone: true,\n selector: 'tui-tree-item',\n imports: [NgIf, PolymorpheusOutlet, TuiExpandComponent],\n templateUrl: './tree-item.template.html',\n styleUrls: ['./tree-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiProvide(TUI_TREE_NODE, TuiTreeItem),\n {\n provide: TUI_TREE_LEVEL,\n deps: [[new SkipSelf(), TUI_TREE_LEVEL]],\n useFactory: (level: number): number => ++level,\n },\n ],\n host: {\n role: 'treeitem',\n '[class._expandable]': 'isExpandable',\n },\n})\nexport class TuiTreeItem implements DoCheck {\n @ContentChildren(TUI_TREE_NODE)\n private readonly nested: QueryList<unknown> = EMPTY_QUERY;\n\n private readonly el = tuiInjectElement();\n\n private readonly controller = inject<TuiTreeController>(\n forwardRef(() => TUI_TREE_CONTROLLER),\n );\n\n private readonly change$ = new Subject<void>();\n\n protected readonly level = inject<number>(forwardRef(() => TUI_TREE_LEVEL));\n\n protected readonly content = inject<PolymorpheusContent<TuiTreeItemContext>>(\n forwardRef(() => TUI_TREE_CONTENT),\n );\n\n protected readonly expanded = toSignal(\n this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n ),\n {initialValue: this.isExpanded},\n );\n\n protected readonly attached = toSignal(\n this.change$.pipe(\n map(() => this.el.isConnected),\n distinctUntilChanged(),\n ),\n {initialValue: this.el.isConnected},\n );\n\n public get isExpandable(): boolean {\n return !!this.nested.length;\n }\n\n public get isExpanded(): boolean {\n return this.controller.isExpanded(this);\n }\n\n public ngDoCheck(): void {\n this.checkChanges();\n }\n\n public checkChanges(): void {\n this.change$.next();\n }\n}\n","<ng-template #template>\n <ng-content />\n</ng-template>\n<ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: this, template: template}\">\n {{ text }}\n</ng-container>\n<tui-expand\n *ngIf=\"isExpandable\"\n role=\"group\"\n class=\"t-children\"\n [expanded]=\"expanded()\"\n>\n <div>\n <ng-content select=\"tui-tree-item\" />\n <ng-content select=\"tui-tree\" />\n </div>\n</tui-expand>\n<ng-container *ngIf=\"attached()\" />\n","import type {OnDestroy} from '@angular/core';\nimport {Directive, inject, Input} from '@angular/core';\n\nimport {TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport type {TuiTreeAccessor} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\n selector: 'tui-tree-item[tuiTreeNode]',\n})\nexport class TuiTreeNode<T> implements OnDestroy {\n private readonly component = inject(TuiTreeItem);\n private readonly directive = inject<TuiTreeAccessor<T>>(TUI_TREE_ACCESSOR, {\n optional: true,\n });\n\n @Input('tuiTreeNode')\n public set value(value: T) {\n this.directive?.register(this.component, value);\n }\n\n public ngOnDestroy(): void {\n this.directive?.unregister(this.component);\n }\n}\n","import {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport type {DoCheck, TrackByFunction} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport {TuiTreeChildren} from '../../directives/tree-children.directive';\nimport {TuiTreeNode} from '../../directives/tree-node.directive';\nimport type {TuiTreeContext} from '../../misc/tree.interfaces';\nimport {TUI_TREE_NODE} from '../../misc/tree.tokens';\nimport {TuiTreeItem} from '../tree-item/tree-item.component';\n\n@Component({\n standalone: true,\n selector: 'tui-tree',\n imports: [\n AsyncPipe,\n NgForOf,\n NgIf,\n PolymorpheusOutlet,\n TuiLet,\n TuiTreeItem,\n TuiTreeNode,\n ],\n templateUrl: './tree.template.html',\n styleUrls: ['./tree.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiProvide(TUI_TREE_NODE, TuiTreeComponent)],\n host: {role: 'tree'},\n})\nexport class TuiTreeComponent<T> implements DoCheck {\n private readonly check$ = new Subject<void>();\n\n @ViewChild(forwardRef(() => TuiTreeItem))\n protected readonly item?: TuiTreeItem;\n\n @ViewChild(forwardRef(() => TuiTreeComponent))\n protected readonly child?: TuiTreeComponent<T>;\n\n protected readonly children$ = this.check$.pipe(\n startWith(null),\n map(() => this.handler(this.value)),\n distinctUntilChanged(),\n );\n\n protected readonly directive = inject<TuiTreeChildren<T>>(TuiTreeChildren, {\n optional: true,\n });\n\n @Input({\n required: true,\n })\n public value!: T;\n\n @Input()\n public trackBy: TrackByFunction<T> = (_: number, item: T) => item;\n\n @Input()\n public content: PolymorpheusContent<TuiTreeContext<T>> = ({$implicit}) =>\n String($implicit);\n\n public ngDoCheck(): void {\n this.checkChanges();\n }\n\n protected checkChanges(): void {\n this.check$.next();\n this.item?.checkChanges();\n this.child?.checkChanges();\n }\n\n private get handler(): TuiHandler<T, readonly T[]> {\n return this.directive?.childrenHandler || TuiTreeChildren.defaultHandler;\n }\n}\n","<tui-tree-item\n *tuiLet=\"children$ | async as children\"\n #view\n [tuiTreeNode]=\"value\"\n>\n <ng-container *ngIf=\"value !== children\">\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: value, node: view}\">\n {{ text }}\n </ng-container>\n </ng-container>\n <tui-tree\n *ngFor=\"let child of children; trackBy: trackBy\"\n [content]=\"content\"\n [trackBy]=\"trackBy\"\n [value]=\"child\"\n />\n</tui-tree-item>\n","import {Directive, EventEmitter, Input, Output} from '@angular/core';\nimport {tuiIsPresent, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport type {TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport type {TuiTreeAccessor, TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR, TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiTreeController][map]',\n providers: [\n tuiProvide(TUI_TREE_ACCESSOR, TuiTreeControllerDirective),\n tuiProvide(TUI_TREE_CONTROLLER, TuiTreeControllerDirective),\n ],\n exportAs: 'tuiTreeController',\n})\nexport class TuiTreeControllerDirective<T>\n implements TuiTreeController, TuiTreeAccessor<T>\n{\n protected readonly items = new Map<TuiTreeItem, T>();\n\n @Input('tuiTreeController')\n public fallback = true;\n\n @Input()\n public map = new Map<T, boolean>();\n\n @Output()\n public readonly toggled = new EventEmitter<T>();\n\n public register(item: TuiTreeItem, value: T): void {\n this.items.set(item, value);\n }\n\n public unregister(item: TuiTreeItem): void {\n this.items.delete(item);\n }\n\n public isExpanded(item: TuiTreeItem): boolean {\n const value = this.items.get(item);\n\n return (value && this.map.get(value)) ?? this.fallback;\n }\n\n public toggle(item: TuiTreeItem): void {\n const value = this.items.get(item);\n const expanded = this.isExpanded(item);\n\n if (!tuiIsPresent(value)) {\n return;\n }\n\n this.toggled.emit(value);\n this.map.set(value, !expanded);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport type {TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport type {TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiTreeController]:not([map])',\n providers: [tuiProvide(TUI_TREE_CONTROLLER, TuiTreeItemController)],\n exportAs: 'tuiTreeController',\n})\nexport class TuiTreeItemController implements TuiTreeController {\n private readonly map = new WeakMap<TuiTreeItem, boolean>();\n\n @Input('tuiTreeController')\n public fallback = true;\n\n public isExpanded(item: TuiTreeItem): boolean {\n return this.map.get(item) ?? this.fallback;\n }\n\n public toggle(item: TuiTreeItem): void {\n this.map.set(item, !this.isExpanded(item));\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {map, mergeMap, startWith, Subject, tap} from 'rxjs';\n\nimport type {TuiTreeLoader} from './tree.interfaces';\nimport {TUI_TREE_LOADER, TUI_TREE_LOADING, TUI_TREE_START} from './tree.tokens';\n\n@Injectable()\nexport class TuiTreeService<T> {\n private readonly loading = inject<T>(TUI_TREE_LOADING);\n private readonly start = inject<T>(TUI_TREE_START);\n private readonly loader = inject<TuiTreeLoader<T>>(TUI_TREE_LOADER);\n private readonly map = new Map<T, readonly T[]>([[this.loading, []]]);\n private readonly load$ = new Subject<T>();\n\n public readonly data$ = this.load$.pipe(\n mergeMap((item) =>\n this.loader.loadChildren(item).pipe(\n tap((children) => this.map.set(item, children)),\n map((children) =>\n children.filter((item) => !this.loader.hasChildren(item)),\n ),\n tap((children) => children.forEach((child) => this.map.set(child, []))),\n ),\n ),\n startWith(null),\n map(() => this.start),\n );\n\n public getChildren(item: T): readonly T[] {\n return this.map.get(item) || [this.loading];\n }\n\n public loadChildren(item: T): void {\n if (this.map.get(item)) {\n return;\n }\n\n this.map.set(item, [this.loading]);\n this.load$.next(item);\n }\n}\n","import {TuiTreeComponent} from './components/tree/tree.component';\nimport {TuiTreeItem} from './components/tree-item/tree-item.component';\nimport {TuiTreeItemContent} from './components/tree-item-content/tree-item-content.component';\nimport {TuiTreeChildren} from './directives/tree-children.directive';\nimport {TuiTreeControllerDirective} from './directives/tree-controller.directive';\nimport {TuiTreeItemController} from './directives/tree-item-controller.directive';\nimport {TuiTreeNode} from './directives/tree-node.directive';\n\nexport const TuiTree = [\n TuiTreeComponent,\n TuiTreeItem,\n TuiTreeItemContent,\n TuiTreeChildren,\n TuiTreeItemController,\n TuiTreeControllerDirective,\n TuiTreeNode,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-tree.mjs","sources":["../../../projects/kit/components/tree/directives/tree-children.directive.ts","../../../projects/kit/components/tree/components/tree-item-content/tree-item-content.component.ts","../../../projects/kit/components/tree/components/tree-item-content/tree-item-content.template.html","../../../projects/kit/components/tree/misc/tree.constants.ts","../../../projects/kit/components/tree/misc/tree.tokens.ts","../../../projects/kit/components/tree/components/tree-item/tree-item.component.ts","../../../projects/kit/components/tree/components/tree-item/tree-item.template.html","../../../projects/kit/components/tree/directives/tree-node.directive.ts","../../../projects/kit/components/tree/components/tree/tree.component.ts","../../../projects/kit/components/tree/components/tree/tree.template.html","../../../projects/kit/components/tree/directives/tree-controller.directive.ts","../../../projects/kit/components/tree/directives/tree-item-controller.directive.ts","../../../projects/kit/components/tree/misc/tree.service.ts","../../../projects/kit/components/tree/tree.ts","../../../projects/kit/components/tree/taiga-ui-kit-components-tree.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\nimport {EMPTY_ARRAY} from '@taiga-ui/cdk/constants';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\n\n@Directive({\n standalone: true,\n selector: 'tui-tree[childrenHandler]',\n})\nexport class TuiTreeChildren<T> {\n @Input()\n public childrenHandler: TuiHandler<T, readonly T[]> = TuiTreeChildren.defaultHandler;\n\n public static defaultHandler<G>(item: G): readonly G[] {\n return Array.isArray(item) ? item : EMPTY_ARRAY;\n }\n}\n","import {NgIf, NgTemplateOutlet} from '@angular/common';\nimport type {DoCheck} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, forwardRef, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TUI_MORE_WORD} from '@taiga-ui/kit/tokens';\nimport {injectContext} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER} from '../../misc/tree.constants';\nimport type {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../../misc/tree.tokens';\n\n@Component({\n standalone: true,\n imports: [NgIf, NgTemplateOutlet, TuiButton],\n templateUrl: './tree-item-content.template.html',\n styleUrls: ['./tree-item-content.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._expandable]': 'isExpandable',\n },\n})\nexport class TuiTreeItemContent implements DoCheck {\n private readonly controller = inject<TuiTreeController>(\n forwardRef(() => TUI_TREE_CONTROLLER),\n );\n\n private readonly change$ = new Subject<void>();\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly more = toSignal(inject(TUI_MORE_WORD));\n protected readonly context = injectContext<TuiTreeItemContext>();\n\n protected readonly expanded = toSignal(\n this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n distinctUntilChanged(),\n ),\n {initialValue: this.isExpanded},\n );\n\n public ngDoCheck(): void {\n this.change$.next();\n }\n\n protected get isExpandable(): boolean {\n return (\n this.context.$implicit.isExpandable &&\n this.controller !== TUI_DEFAULT_TREE_CONTROLLER\n );\n }\n\n protected get isExpanded(): boolean {\n return this.context.$implicit.isExpanded;\n }\n\n protected onClick(): void {\n this.controller.toggle(this.context.$implicit);\n }\n}\n","<button\n *ngIf=\"isExpandable\"\n appearance=\"flat\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_expanded]=\"expanded()\"\n [iconStart]=\"icons.more\"\n [style.border-radius.%]=\"100\"\n (click)=\"onClick()\"\n>\n {{ more() }}\n</button>\n<ng-container [ngTemplateOutlet]=\"context.template\" />\n","import {EMPTY_FUNCTION, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {TuiTreeItemContent} from '../components/tree-item-content/tree-item-content.component';\nimport type {TuiTreeController} from './tree.interfaces';\n\nexport const TUI_TREE_ITEM_CONTENT = new PolymorpheusComponent(TuiTreeItemContent);\n\nexport const TUI_DEFAULT_TREE_CONTROLLER: TuiTreeController = {\n isExpanded: TUI_TRUE_HANDLER,\n toggle: EMPTY_FUNCTION,\n};\n","import {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER, TUI_TREE_ITEM_CONTENT} from './tree.constants';\nimport type {TuiTreeAccessor, TuiTreeItemContext, TuiTreeLoader} from './tree.interfaces';\n\n/**\n * Controller for tracking value - TuiTreeItemComponent pairs\n */\nexport const TUI_TREE_ACCESSOR = tuiCreateToken<TuiTreeAccessor<unknown>>();\n\n/**\n * Controller for expanding the tree\n */\nexport const TUI_TREE_CONTROLLER = tuiCreateToken(TUI_DEFAULT_TREE_CONTROLLER);\n\n/**\n * A node of a tree view\n */\nexport const TUI_TREE_NODE = tuiCreateToken();\n\n/**\n * A tree node placeholder for loading\n */\nexport const TUI_TREE_LOADING = tuiCreateToken({});\n\n/**\n * A tree node starting point\n */\nexport const TUI_TREE_START = tuiCreateToken();\n\n/**\n * A service to load tree progressively\n */\nexport const TUI_TREE_LOADER = tuiCreateToken<TuiTreeLoader<unknown>>();\n\n/**\n * Content for a tree item\n */\nexport const TUI_TREE_CONTENT =\n tuiCreateToken<PolymorpheusContent<TuiTreeItemContext>>(TUI_TREE_ITEM_CONTENT);\n\n/**\n * Nesting level of current TreeView node\n */\nexport const TUI_TREE_LEVEL = tuiCreateToken(-1);\n","import {NgIf} from '@angular/common';\nimport type {DoCheck, QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n forwardRef,\n inject,\n SkipSelf,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiExpandComponent} from '@taiga-ui/core/components/expand';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport type {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces';\nimport {\n TUI_TREE_CONTENT,\n TUI_TREE_CONTROLLER,\n TUI_TREE_LEVEL,\n TUI_TREE_NODE,\n} from '../../misc/tree.tokens';\n\n@Component({\n standalone: true,\n selector: 'tui-tree-item',\n imports: [NgIf, PolymorpheusOutlet, TuiExpandComponent],\n templateUrl: './tree-item.template.html',\n styleUrls: ['./tree-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiProvide(TUI_TREE_NODE, TuiTreeItem),\n {\n provide: TUI_TREE_LEVEL,\n deps: [[new SkipSelf(), TUI_TREE_LEVEL]],\n useFactory: (level: number): number => ++level,\n },\n ],\n host: {\n role: 'treeitem',\n '[class._expandable]': 'isExpandable',\n },\n})\nexport class TuiTreeItem implements DoCheck {\n @ContentChildren(TUI_TREE_NODE)\n private readonly nested: QueryList<unknown> = EMPTY_QUERY;\n\n private readonly el = tuiInjectElement();\n\n private readonly controller = inject<TuiTreeController>(\n forwardRef(() => TUI_TREE_CONTROLLER),\n );\n\n private readonly change$ = new Subject<void>();\n\n protected readonly level = inject<number>(forwardRef(() => TUI_TREE_LEVEL));\n\n protected readonly content = inject<PolymorpheusContent<TuiTreeItemContext>>(\n forwardRef(() => TUI_TREE_CONTENT),\n );\n\n protected readonly expanded = toSignal(\n this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n ),\n {initialValue: this.isExpanded},\n );\n\n protected readonly attached = toSignal(\n this.change$.pipe(\n map(() => this.el.isConnected),\n distinctUntilChanged(),\n ),\n {initialValue: this.el.isConnected},\n );\n\n public get isExpandable(): boolean {\n return !!this.nested.length;\n }\n\n public get isExpanded(): boolean {\n return this.controller.isExpanded(this);\n }\n\n public ngDoCheck(): void {\n this.checkChanges();\n }\n\n public checkChanges(): void {\n this.change$.next();\n }\n}\n","<ng-template #template>\n <ng-content />\n</ng-template>\n<ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: this, template: template}\">\n {{ text }}\n</ng-container>\n<tui-expand\n *ngIf=\"isExpandable\"\n role=\"group\"\n class=\"t-children\"\n [expanded]=\"expanded()\"\n>\n <div>\n <ng-content select=\"tui-tree-item\" />\n <ng-content select=\"tui-tree\" />\n </div>\n</tui-expand>\n<ng-container *ngIf=\"attached()\" />\n","import type {OnDestroy} from '@angular/core';\nimport {Directive, inject, Input} from '@angular/core';\n\nimport {TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport type {TuiTreeAccessor} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\n selector: 'tui-tree-item[tuiTreeNode]',\n})\nexport class TuiTreeNode<T> implements OnDestroy {\n private readonly component = inject(TuiTreeItem);\n private readonly directive = inject<TuiTreeAccessor<T>>(TUI_TREE_ACCESSOR, {\n optional: true,\n });\n\n @Input('tuiTreeNode')\n public set value(value: T) {\n this.directive?.register(this.component, value);\n }\n\n public ngOnDestroy(): void {\n this.directive?.unregister(this.component);\n }\n}\n","import {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport type {DoCheck, TrackByFunction} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport {TuiTreeChildren} from '../../directives/tree-children.directive';\nimport {TuiTreeNode} from '../../directives/tree-node.directive';\nimport type {TuiTreeContext} from '../../misc/tree.interfaces';\nimport {TUI_TREE_NODE} from '../../misc/tree.tokens';\nimport {TuiTreeItem} from '../tree-item/tree-item.component';\n\n@Component({\n standalone: true,\n selector: 'tui-tree',\n imports: [\n AsyncPipe,\n NgForOf,\n NgIf,\n PolymorpheusOutlet,\n TuiLet,\n TuiTreeItem,\n TuiTreeNode,\n ],\n templateUrl: './tree.template.html',\n styleUrls: ['./tree.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiProvide(TUI_TREE_NODE, TuiTreeComponent)],\n host: {role: 'tree'},\n})\nexport class TuiTreeComponent<T> implements DoCheck {\n private readonly check$ = new Subject<void>();\n\n @ViewChild(forwardRef(() => TuiTreeItem))\n protected readonly item?: TuiTreeItem;\n\n @ViewChild(forwardRef(() => TuiTreeComponent))\n protected readonly child?: TuiTreeComponent<T>;\n\n protected readonly children$ = this.check$.pipe(\n startWith(null),\n map(() => this.handler(this.value)),\n distinctUntilChanged(),\n );\n\n protected readonly directive = inject<TuiTreeChildren<T>>(TuiTreeChildren, {\n optional: true,\n });\n\n @Input({\n required: true,\n })\n public value!: T;\n\n @Input()\n public trackBy: TrackByFunction<T> = (_: number, item: T) => item;\n\n @Input()\n public content: PolymorpheusContent<TuiTreeContext<T>> = ({$implicit}) =>\n String($implicit);\n\n public ngDoCheck(): void {\n this.checkChanges();\n }\n\n protected checkChanges(): void {\n this.check$.next();\n this.item?.checkChanges();\n this.child?.checkChanges();\n }\n\n private get handler(): TuiHandler<T, readonly T[]> {\n return this.directive?.childrenHandler || TuiTreeChildren.defaultHandler;\n }\n}\n","<tui-tree-item\n *tuiLet=\"children$ | async as children\"\n #view\n [tuiTreeNode]=\"value\"\n>\n <ng-container *ngIf=\"value !== children\">\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: value, node: view}\">\n {{ text }}\n </ng-container>\n </ng-container>\n <tui-tree\n *ngFor=\"let child of children; trackBy: trackBy\"\n [content]=\"content\"\n [trackBy]=\"trackBy\"\n [value]=\"child\"\n />\n</tui-tree-item>\n","import {Directive, EventEmitter, Input, Output} from '@angular/core';\nimport {tuiIsPresent, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport type {TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport type {TuiTreeAccessor, TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR, TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiTreeController][map]',\n providers: [\n tuiProvide(TUI_TREE_ACCESSOR, TuiTreeControllerDirective),\n tuiProvide(TUI_TREE_CONTROLLER, TuiTreeControllerDirective),\n ],\n exportAs: 'tuiTreeController',\n})\nexport class TuiTreeControllerDirective<T>\n implements TuiTreeController, TuiTreeAccessor<T>\n{\n protected readonly items = new Map<TuiTreeItem, T>();\n\n @Input('tuiTreeController')\n public fallback = true;\n\n @Input()\n public map = new Map<T, boolean>();\n\n @Output()\n public readonly toggled = new EventEmitter<T>();\n\n public register(item: TuiTreeItem, value: T): void {\n this.items.set(item, value);\n }\n\n public unregister(item: TuiTreeItem): void {\n this.items.delete(item);\n }\n\n public isExpanded(item: TuiTreeItem): boolean {\n const value = this.items.get(item);\n\n return (value && this.map.get(value)) ?? this.fallback;\n }\n\n public toggle(item: TuiTreeItem): void {\n const value = this.items.get(item);\n const expanded = this.isExpanded(item);\n\n if (!tuiIsPresent(value)) {\n return;\n }\n\n this.toggled.emit(value);\n this.map.set(value, !expanded);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport type {TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport type {TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiTreeController]:not([map])',\n providers: [tuiProvide(TUI_TREE_CONTROLLER, TuiTreeItemController)],\n exportAs: 'tuiTreeController',\n})\nexport class TuiTreeItemController implements TuiTreeController {\n private readonly map = new WeakMap<TuiTreeItem, boolean>();\n\n @Input('tuiTreeController')\n public fallback = true;\n\n public isExpanded(item: TuiTreeItem): boolean {\n return this.map.get(item) ?? this.fallback;\n }\n\n public toggle(item: TuiTreeItem): void {\n this.map.set(item, !this.isExpanded(item));\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {map, mergeMap, startWith, Subject, tap} from 'rxjs';\n\nimport type {TuiTreeLoader} from './tree.interfaces';\nimport {TUI_TREE_LOADER, TUI_TREE_LOADING, TUI_TREE_START} from './tree.tokens';\n\n@Injectable()\nexport class TuiTreeService<T> {\n private readonly loading = inject<T>(TUI_TREE_LOADING);\n private readonly start = inject<T>(TUI_TREE_START);\n private readonly loader = inject<TuiTreeLoader<T>>(TUI_TREE_LOADER);\n private readonly map = new Map<T, readonly T[]>([[this.loading, []]]);\n private readonly load$ = new Subject<T>();\n\n public readonly data$ = this.load$.pipe(\n mergeMap((item) =>\n this.loader.loadChildren(item).pipe(\n tap((children) => this.map.set(item, children)),\n map((children) =>\n children.filter((item) => !this.loader.hasChildren(item)),\n ),\n tap((children) => children.forEach((child) => this.map.set(child, []))),\n ),\n ),\n startWith(null),\n map(() => this.start),\n );\n\n public getChildren(item: T): readonly T[] {\n return this.map.get(item) || [this.loading];\n }\n\n public loadChildren(item: T): void {\n if (this.map.get(item)) {\n return;\n }\n\n this.map.set(item, [this.loading]);\n this.load$.next(item);\n }\n}\n","import {TuiTreeComponent} from './components/tree/tree.component';\nimport {TuiTreeItem} from './components/tree-item/tree-item.component';\nimport {TuiTreeItemContent} from './components/tree-item-content/tree-item-content.component';\nimport {TuiTreeChildren} from './directives/tree-children.directive';\nimport {TuiTreeControllerDirective} from './directives/tree-controller.directive';\nimport {TuiTreeItemController} from './directives/tree-item-controller.directive';\nimport {TuiTreeNode} from './directives/tree-node.directive';\n\nexport const TuiTree = [\n TuiTreeComponent,\n TuiTreeItem,\n TuiTreeItemContent,\n TuiTreeChildren,\n TuiTreeItemController,\n TuiTreeControllerDirective,\n TuiTreeNode,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, inject, effect, signal, Directive, Input } from '@angular/core';
2
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, effect, signal, Directive, Input } from '@angular/core';
3
3
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
4
- import { tuiWithStyles, tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
4
+ import { tuiCreateToken, tuiWithStyles, tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
5
5
  import { TuiDropdownDirective } from '@taiga-ui/core/directives/dropdown';
6
6
  import { TUI_ICON_END } from '@taiga-ui/core/tokens';
7
7
 
8
- const TUI_CHEVRON = new InjectionToken(ngDevMode ? 'TUI_CHEVRON' : '', {
9
- factory: () => '@tui.chevron-down',
10
- });
8
+ const TUI_CHEVRON = tuiCreateToken('@tui.chevron-down');
11
9
  class TuiChevronStyles {
12
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiChevronStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
11
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiChevronStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-chevron" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiChevron][tuiIcons]:after,tui-icon[tuiChevron]:after{transition-property:transform,color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;cursor:pointer}tui-textfield[tuiChevron][tuiIcons]:after{font-size:1rem}tui-textfield[data-size=s][tuiChevron][tuiIcons]:after{margin-inline-end:calc(-.125rem - var(--t-padding))}tui-textfield[data-size=m][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.125rem - var(--t-padding))}tui-textfield[data-size=l][tuiChevron][tuiIcons]:after{margin-inline-end:calc(.25rem - var(--t-padding))}[tuiChevron][tuiIcons]._chevron-rotated:after,tui-icon[tuiChevron]._chevron-rotated:after{transform:rotate(180deg)}[tuiChevron]:has(input[tuiAppearance]:read-only):after{cursor:default}tui-textfield[tuiChevron][style*=\"--t-icon-end:\"][data-size=l]{--t-end: 1.875rem}tui-textfield[tuiChevron][style*=\"--t-icon-end:\"][data-size=m]{--t-end: 1.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-chevron.mjs","sources":["../../../projects/kit/directives/chevron/chevron.directive.ts","../../../projects/kit/directives/chevron/taiga-ui-kit-directives-chevron.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n effect,\n inject,\n InjectionToken,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide, tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_ICON_END} from '@taiga-ui/core/tokens';\n\nexport const TUI_CHEVRON = new InjectionToken(ngDevMode ? 'TUI_CHEVRON' : '', {\n factory: () => '@tui.chevron-down',\n});\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./chevron.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-chevron'},\n})\nclass TuiChevronStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiChevron]',\n providers: [tuiProvide(TUI_ICON_END, TUI_CHEVRON)],\n host: {tuiChevron: ''},\n})\nexport class TuiChevron {\n private readonly el = tuiInjectElement();\n private readonly dropdown = inject(TuiDropdownDirective, {optional: true});\n\n protected readonly nothing = tuiWithStyles(TuiChevronStyles);\n protected readonly toggle = effect(() =>\n this.el.classList.toggle(\n '_chevron-rotated',\n this.chevron() || (this.chevron() === '' && !!this.dropdown?.ref()),\n ),\n );\n\n // TODO: refactor to signal inputs after Angular update\n public readonly chevron = signal<boolean | ''>('');\n\n @Input()\n public set tuiChevron(chevron: boolean | '') {\n this.chevron.set(chevron);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-chevron.mjs","sources":["../../../projects/kit/directives/chevron/chevron.directive.ts","../../../projects/kit/directives/chevron/taiga-ui-kit-directives-chevron.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n effect,\n inject,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiCreateToken,\n tuiProvide,\n tuiWithStyles,\n} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TUI_ICON_END} from '@taiga-ui/core/tokens';\n\nexport const TUI_CHEVRON = tuiCreateToken('@tui.chevron-down');\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./chevron.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-chevron'},\n})\nclass TuiChevronStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiChevron]',\n providers: [tuiProvide(TUI_ICON_END, TUI_CHEVRON)],\n host: {tuiChevron: ''},\n})\nexport class TuiChevron {\n private readonly el = tuiInjectElement();\n private readonly dropdown = inject(TuiDropdownDirective, {optional: true});\n\n protected readonly nothing = tuiWithStyles(TuiChevronStyles);\n protected readonly toggle = effect(() =>\n this.el.classList.toggle(\n '_chevron-rotated',\n this.chevron() || (this.chevron() === '' && !!this.dropdown?.ref()),\n ),\n );\n\n // TODO: refactor to signal inputs after Angular update\n public readonly chevron = signal<boolean | ''>('');\n\n @Input()\n public set tuiChevron(chevron: boolean | '') {\n this.chevron.set(chevron);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAmBa,WAAW,GAAG,cAAc,CAAC,mBAAmB,EAAE;AAE/D,MAQM,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,iHANR,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,u5BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAMV,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBARrB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,aAAa,EAAC,EAAA,MAAA,EAAA,CAAA,u5BAAA,CAAA,EAAA,CAAA;;AAIhC,MAMa,UAAU,CAAA;AANvB,IAAA,WAAA,GAAA;QAOqB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE,CAAC;QACxB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAExD,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAC/B,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CACpB,kBAAkB,EAClB,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CACtE,CACJ,CAAC;;AAGc,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAe,EAAE,CAAC,CAAC;AAMtD,KAAA;IAJG,IACW,UAAU,CAAC,OAAqB,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC7B;+GAlBQ,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,EAAA,EAAA,EAAA,EAAA,SAAA,EAHR,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAGzC,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;oBACxB,SAAS,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAClD,oBAAA,IAAI,EAAE,EAAC,UAAU,EAAE,EAAE,EAAC;AACzB,iBAAA,CAAA;8BAiBc,UAAU,EAAA,CAAA;sBADpB,KAAK;;;ACpDV;;AAEG;;;;"}
@@ -1,20 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Directive, Input } from '@angular/core';
2
+ import { inject, Directive, Input } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { MutationObserverService, WA_MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
5
5
  import { ResizeObserverService } from '@ng-web-apis/resize-observer';
6
6
  import { tuiZonefree } from '@taiga-ui/cdk/observables';
7
7
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
8
8
  import { Subject, merge, fromEvent } from 'rxjs';
9
- import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
9
+ import { tuiCreateToken, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
10
10
 
11
11
  const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS = {
12
12
  min: 0.625,
13
13
  max: 1.5,
14
14
  };
15
- const TUI_FLUID_TYPOGRAPHY_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_FLUID_TYPOGRAPHY_OPTIONS' : '', {
16
- factory: () => TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,
17
- });
15
+ const TUI_FLUID_TYPOGRAPHY_OPTIONS = tuiCreateToken(TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS);
18
16
  function tuiFluidTypographyOptionsProvider(options) {
19
17
  return tuiProvideOptions(TUI_FLUID_TYPOGRAPHY_OPTIONS, options, TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS);
20
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-fluid-typography.mjs","sources":["../../../projects/kit/directives/fluid-typography/fluid-typography.options.ts","../../../projects/kit/directives/fluid-typography/fluid-typography.directive.ts","../../../projects/kit/directives/fluid-typography/taiga-ui-kit-directives-fluid-typography.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiFluidTypographyOptions {\n readonly min: number;\n readonly max: number;\n}\n\nexport const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS: TuiFluidTypographyOptions = {\n min: 0.625,\n max: 1.5,\n};\n\nexport const TUI_FLUID_TYPOGRAPHY_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_FLUID_TYPOGRAPHY_OPTIONS' : '',\n {\n factory: () => TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiFluidTypographyOptionsProvider(\n options: Partial<TuiFluidTypographyOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_FLUID_TYPOGRAPHY_OPTIONS,\n options,\n TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n );\n}\n","import type {OnChanges} from '@angular/core';\nimport {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Subject} from 'rxjs';\n\nimport {TUI_FLUID_TYPOGRAPHY_OPTIONS} from './fluid-typography.options';\n\nconst STEP = 1 / 16;\n\n@Directive({\n standalone: true,\n selector: '[tuiFluidTypography]',\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {characterData: true, subtree: true},\n },\n ],\n host: {tuiFluidTypography: ''},\n})\nexport class TuiFluidTypography implements OnChanges {\n // TODO: refactor to signal inputs after Angular update\n private readonly changes$ = new Subject<void>();\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_FLUID_TYPOGRAPHY_OPTIONS);\n\n protected readonly sub = merge(\n this.changes$,\n inject(ResizeObserverService, {self: true}),\n inject(MutationObserverService, {self: true}),\n fromEvent(this.el, 'input'),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const min = Number(this.tuiFluidTypography[0] || this.options.min);\n const max = Number(this.tuiFluidTypography[1] || this.options.max);\n\n for (let i = max; i >= min; i -= STEP) {\n this.el.style.fontSize = `${i}rem`;\n\n if (this.el.scrollWidth <= this.el.clientWidth) {\n break;\n }\n }\n });\n\n @Input()\n public tuiFluidTypography: readonly [min: number, max: number] | '' = '';\n\n public ngOnChanges(): void {\n this.changes$.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-fluid-typography.mjs","sources":["../../../projects/kit/directives/fluid-typography/fluid-typography.options.ts","../../../projects/kit/directives/fluid-typography/fluid-typography.directive.ts","../../../projects/kit/directives/fluid-typography/taiga-ui-kit-directives-fluid-typography.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiFluidTypographyOptions {\n readonly min: number;\n readonly max: number;\n}\n\nexport const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS: TuiFluidTypographyOptions = {\n min: 0.625,\n max: 1.5,\n};\n\nexport const TUI_FLUID_TYPOGRAPHY_OPTIONS = tuiCreateToken(\n TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n);\n\nexport function tuiFluidTypographyOptionsProvider(\n options: Partial<TuiFluidTypographyOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_FLUID_TYPOGRAPHY_OPTIONS,\n options,\n TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n );\n}\n","import type {OnChanges} from '@angular/core';\nimport {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Subject} from 'rxjs';\n\nimport {TUI_FLUID_TYPOGRAPHY_OPTIONS} from './fluid-typography.options';\n\nconst STEP = 1 / 16;\n\n@Directive({\n standalone: true,\n selector: '[tuiFluidTypography]',\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {characterData: true, subtree: true},\n },\n ],\n host: {tuiFluidTypography: ''},\n})\nexport class TuiFluidTypography implements OnChanges {\n // TODO: refactor to signal inputs after Angular update\n private readonly changes$ = new Subject<void>();\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_FLUID_TYPOGRAPHY_OPTIONS);\n\n protected readonly sub = merge(\n this.changes$,\n inject(ResizeObserverService, {self: true}),\n inject(MutationObserverService, {self: true}),\n fromEvent(this.el, 'input'),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const min = Number(this.tuiFluidTypography[0] || this.options.min);\n const max = Number(this.tuiFluidTypography[1] || this.options.max);\n\n for (let i = max; i >= min; i -= STEP) {\n this.el.style.fontSize = `${i}rem`;\n\n if (this.el.scrollWidth <= this.el.clientWidth) {\n break;\n }\n }\n });\n\n @Input()\n public tuiFluidTypography: readonly [min: number, max: number] | '' = '';\n\n public ngOnChanges(): void {\n this.changes$.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,17 +1,16 @@
1
+ import { tuiCreateToken } from '@taiga-ui/cdk/utils/miscellaneous';
1
2
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Pipe } from '@angular/core';
3
+ import { inject, Pipe } from '@angular/core';
3
4
 
4
- const TUI_EMAIL_PIPE_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_EMAIL_PIPE_OPTIONS' : '', {
5
- factory: () => [
6
- 'gmail.com',
7
- 'outlook.com',
8
- 'icloud.com',
9
- 'me.com',
10
- 'yahoo.com',
11
- 'mail.com',
12
- 'proton.me',
13
- ],
14
- });
5
+ const TUI_EMAIL_PIPE_OPTIONS = tuiCreateToken([
6
+ 'gmail.com',
7
+ 'outlook.com',
8
+ 'icloud.com',
9
+ 'me.com',
10
+ 'yahoo.com',
11
+ 'mail.com',
12
+ 'proton.me',
13
+ ]);
15
14
 
16
15
  class TuiEmailsPipe {
17
16
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-pipes-emails.mjs","sources":["../../../projects/kit/pipes/emails/emails.options.ts","../../../projects/kit/pipes/emails/emails.pipe.ts","../../../projects/kit/pipes/emails/taiga-ui-kit-pipes-emails.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\nexport const TUI_EMAIL_PIPE_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_EMAIL_PIPE_OPTIONS' : '',\n {\n factory: () => [\n 'gmail.com',\n 'outlook.com',\n 'icloud.com',\n 'me.com',\n 'yahoo.com',\n 'mail.com',\n 'proton.me',\n ],\n },\n);\n","import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\n\nimport {TUI_EMAIL_PIPE_OPTIONS} from './emails.options';\n\n@Pipe({\n standalone: true,\n name: 'tuiEmails',\n})\nexport class TuiEmailsPipe implements PipeTransform {\n private readonly options = inject(TUI_EMAIL_PIPE_OPTIONS);\n\n public transform(\n query: string,\n suggestions: readonly string[] = this.options,\n ): readonly string[] {\n return query.includes('@')\n ? suggestions\n .map(\n (item) =>\n query.slice(0, Math.max(0, query.indexOf('@') + 1)) + item,\n )\n .filter((item) => item.startsWith(query))\n : [];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEa,MAAA,sBAAsB,GAAG,IAAI,cAAc,CACpD,SAAS,GAAG,wBAAwB,GAAG,EAAE,EACzC;IACI,OAAO,EAAE,MAAM;QACX,WAAW;QACX,aAAa;QACb,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,UAAU;QACV,WAAW;AACd,KAAA;AACJ,CAAA;;ACTL,MAIa,aAAa,CAAA;AAJ1B,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAe7D,KAAA;AAbU,IAAA,SAAS,CACZ,KAAa,EACb,WAAiC,GAAA,IAAI,CAAC,OAAO,EAAA;AAE7C,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACtB,cAAE,WAAW;AACN,iBAAA,GAAG,CACA,CAAC,IAAI,KACD,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CACjE;AACA,iBAAA,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;cAC7C,EAAE,CAAC;KACZ;+GAfQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,WAAW;AACpB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-pipes-emails.mjs","sources":["../../../projects/kit/pipes/emails/emails.options.ts","../../../projects/kit/pipes/emails/emails.pipe.ts","../../../projects/kit/pipes/emails/taiga-ui-kit-pipes-emails.ts"],"sourcesContent":["import {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_EMAIL_PIPE_OPTIONS = tuiCreateToken([\n 'gmail.com',\n 'outlook.com',\n 'icloud.com',\n 'me.com',\n 'yahoo.com',\n 'mail.com',\n 'proton.me',\n]);\n","import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\n\nimport {TUI_EMAIL_PIPE_OPTIONS} from './emails.options';\n\n@Pipe({\n standalone: true,\n name: 'tuiEmails',\n})\nexport class TuiEmailsPipe implements PipeTransform {\n private readonly options = inject(TUI_EMAIL_PIPE_OPTIONS);\n\n public transform(\n query: string,\n suggestions: readonly string[] = this.options,\n ): readonly string[] {\n return query.includes('@')\n ? suggestions\n .map(\n (item) =>\n query.slice(0, Math.max(0, query.indexOf('@') + 1)) + item,\n )\n .filter((item) => item.startsWith(query))\n : [];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAEO,MAAM,sBAAsB,GAAG,cAAc,CAAC;IACjD,WAAW;IACX,aAAa;IACb,YAAY;IACZ,QAAQ;IACR,WAAW;IACX,UAAU;IACV,WAAW;AACd,CAAA;;ACLD,MAIa,aAAa,CAAA;AAJ1B,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAe7D,KAAA;AAbU,IAAA,SAAS,CACZ,KAAa,EACb,WAAiC,GAAA,IAAI,CAAC,OAAO,EAAA;AAE7C,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACtB,cAAE,WAAW;AACN,iBAAA,GAAG,CACA,CAAC,IAAI,KACD,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CACjE;AACA,iBAAA,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;cAC7C,EAAE,CAAC;KACZ;+GAfQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,WAAW;AACpB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
@@ -1,13 +1,13 @@
1
- import { InjectionToken, Optional, Self, inject } from '@angular/core';
1
+ import { Optional, Self, inject } from '@angular/core';
2
2
  import { NgControl } from '@angular/forms';
3
3
  import { tuiControlValue } from '@taiga-ui/cdk/observables';
4
+ import { tuiCreateToken, tuiCreateTokenFromFactory, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
4
5
  import { map, of } from 'rxjs';
5
6
  import { TUI_IDENTITY_VALUE_TRANSFORMER } from '@taiga-ui/cdk/classes';
6
7
  import { tuiExtractI18n } from '@taiga-ui/i18n/utils';
7
8
  import { TUI_FIRST_DAY, TUI_LAST_DAY } from '@taiga-ui/cdk/date-time';
8
9
  import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
9
10
  import { TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
10
- import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
11
11
  import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
12
12
  import { TUI_DROPDOWN_COMPONENT } from '@taiga-ui/core/directives/dropdown';
13
13
  import { TUI_MONTHS } from '@taiga-ui/core/tokens';
@@ -16,7 +16,7 @@ import { TUI_MONTHS } from '@taiga-ui/core/tokens';
16
16
  * Stream that emits calendar data change
17
17
  * @deprecated this should be rewritten in v5
18
18
  */
19
- const TUI_CALENDAR_DATE_STREAM = new InjectionToken(ngDevMode ? 'TUI_CALENDAR_DATE_STREAM' : '');
19
+ const TUI_CALENDAR_DATE_STREAM = tuiCreateToken();
20
20
  function tuiDateStreamWithTransformer(transformer) {
21
21
  return {
22
22
  provide: TUI_CALENDAR_DATE_STREAM,
@@ -36,94 +36,44 @@ function tuiControlValueFactory(control, transformer) {
36
36
  /**
37
37
  * Control value transformer of TuiDay to custom value format for InputDate* components
38
38
  */
39
- const TUI_DATE_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_DATE_VALUE_TRANSFORMER' : '', {
40
- factory: () => TUI_IDENTITY_VALUE_TRANSFORMER,
41
- });
39
+ const TUI_DATE_VALUE_TRANSFORMER = tuiCreateToken(TUI_IDENTITY_VALUE_TRANSFORMER);
42
40
  /**
43
41
  * Control value transformer for InputDateRange component
44
42
  */
45
- const TUI_DATE_RANGE_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_DATE_RANGE_VALUE_TRANSFORMER' : '');
43
+ const TUI_DATE_RANGE_VALUE_TRANSFORMER = tuiCreateToken();
46
44
  /**
47
45
  * Control value transformer for InputDateTime component
48
46
  */
49
- const TUI_DATE_TIME_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_DATE_TIME_VALUE_TRANSFORMER' : '');
47
+ const TUI_DATE_TIME_VALUE_TRANSFORMER = tuiCreateToken();
50
48
  /**
51
49
  * Control value transformer for InputTime component
52
50
  */
53
- const TUI_TIME_VALUE_TRANSFORMER = new InjectionToken(ngDevMode ? 'TUI_TIME_VALUE_TRANSFORMER' : '');
51
+ const TUI_TIME_VALUE_TRANSFORMER = tuiCreateToken();
54
52
 
55
- const TUI_CONFIRM_WORDS = new InjectionToken(ngDevMode ? 'TUI_CONFIRM_WORDS' : '', {
56
- factory: tuiExtractI18n('confirm'),
57
- });
58
- const TUI_CANCEL_WORD = new InjectionToken(ngDevMode ? 'TUI_CANCEL_WORD' : '', {
59
- factory: tuiExtractI18n('cancel'),
60
- });
61
- const TUI_DONE_WORD = new InjectionToken(ngDevMode ? 'TUI_DONE_WORD' : '', {
62
- factory: tuiExtractI18n('done'),
63
- });
64
- const TUI_MORE_WORD = new InjectionToken(ngDevMode ? 'TUI_MORE_WORD' : '', {
65
- factory: tuiExtractI18n('more'),
66
- });
67
- const TUI_HIDE_TEXT = new InjectionToken(ngDevMode ? 'TUI_HIDE_TEXT' : '', {
68
- factory: tuiExtractI18n('hide'),
69
- });
70
- const TUI_SHOW_ALL_TEXT = new InjectionToken(ngDevMode ? 'TUI_SHOW_ALL_TEXT' : '', {
71
- factory: tuiExtractI18n('showAll'),
72
- });
73
- const TUI_OTHER_DATE_TEXT = new InjectionToken(ngDevMode ? 'TUI_OTHER_DATE_TEXT' : '', {
74
- factory: tuiExtractI18n('otherDate'),
75
- });
76
- const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_CHOOSE_DAY_OR_RANGE_TEXTS' : '', {
77
- factory: tuiExtractI18n('mobileCalendarTexts'),
78
- });
79
- const TUI_FROM_TO_TEXTS = new InjectionToken(ngDevMode ? 'TUI_FROM_TO_TEXTS' : '', {
80
- factory: tuiExtractI18n('range'),
81
- });
82
- const TUI_PLUS_MINUS_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PLUS_MINUS_TEXTS' : '', {
83
- factory: tuiExtractI18n('countTexts'),
84
- });
85
- const TUI_TIME_TEXTS = new InjectionToken(ngDevMode ? 'TUI_TIME_TEXTS' : '', {
86
- factory: tuiExtractI18n('time'),
87
- });
88
- const TUI_DATE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_DATE_TEXTS' : '', {
89
- factory: tuiExtractI18n('dateTexts'),
90
- });
91
- const TUI_DIGITAL_INFORMATION_UNITS = new InjectionToken(ngDevMode ? 'TUI_DIGITAL_INFORMATION_UNITS' : '', {
92
- factory: tuiExtractI18n('digitalInformationUnits'),
93
- });
94
- const TUI_COPY_TEXTS = new InjectionToken(ngDevMode ? 'TUI_COPY_TEXTS' : '', {
95
- factory: tuiExtractI18n('copyTexts'),
96
- });
97
- const TUI_PASSWORD_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PASSWORD_TEXTS' : '', {
98
- factory: tuiExtractI18n('passwordTexts'),
99
- });
100
- const TUI_CALENDAR_MONTHS = new InjectionToken(ngDevMode ? 'TUI_CALENDAR_MONTHS' : '', {
101
- factory: tuiExtractI18n('shortCalendarMonths'),
102
- });
103
- const TUI_FILE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_FILE_TEXTS' : '', {
104
- factory: tuiExtractI18n('fileTexts'),
105
- });
106
- const TUI_PAGINATION_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PAGINATION_TEXTS' : '', {
107
- factory: tuiExtractI18n('pagination'),
108
- });
109
- const TUI_INPUT_FILE_TEXTS = new InjectionToken(ngDevMode ? 'TUI_INPUT_FILE_TEXTS' : '', {
110
- factory: tuiExtractI18n('inputFileTexts'),
111
- });
112
- const TUI_MULTI_SELECT_TEXTS = new InjectionToken(ngDevMode ? 'TUI_MULTI_SELECT_TEXTS' : '', {
113
- factory: tuiExtractI18n('multiSelectTexts'),
114
- });
115
- const TUI_COUNTRIES = new InjectionToken(ngDevMode ? 'TUI_COUNTRIES' : '', {
116
- factory: tuiExtractI18n('countries'),
117
- });
118
- const TUI_PREVIEW_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PREVIEW_TEXTS' : '', {
119
- factory: tuiExtractI18n('previewTexts'),
120
- });
121
- const TUI_PREVIEW_ZOOM_TEXTS = new InjectionToken(ngDevMode ? 'TUI_PREVIEW_ZOOM_TEXTS' : '', {
122
- factory: tuiExtractI18n('zoomTexts'),
123
- });
124
- const TUI_INTERNATIONAL_SEARCH = new InjectionToken(ngDevMode ? 'TUI_INTERNATIONAL_SEARCH' : '', {
125
- factory: tuiExtractI18n('phoneSearch'),
126
- });
53
+ const TUI_CONFIRM_WORDS = tuiCreateTokenFromFactory(tuiExtractI18n('confirm'));
54
+ const TUI_CANCEL_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('cancel'));
55
+ const TUI_DONE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('done'));
56
+ const TUI_MORE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('more'));
57
+ const TUI_HIDE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('hide'));
58
+ const TUI_SHOW_ALL_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('showAll'));
59
+ const TUI_OTHER_DATE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('otherDate'));
60
+ const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('mobileCalendarTexts'));
61
+ const TUI_FROM_TO_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('range'));
62
+ const TUI_PLUS_MINUS_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('countTexts'));
63
+ const TUI_TIME_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('time'));
64
+ const TUI_DATE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('dateTexts'));
65
+ const TUI_DIGITAL_INFORMATION_UNITS = tuiCreateTokenFromFactory(tuiExtractI18n('digitalInformationUnits'));
66
+ const TUI_COPY_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('copyTexts'));
67
+ const TUI_PASSWORD_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('passwordTexts'));
68
+ const TUI_CALENDAR_MONTHS = tuiCreateTokenFromFactory(tuiExtractI18n('shortCalendarMonths'));
69
+ const TUI_FILE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('fileTexts'));
70
+ const TUI_PAGINATION_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('pagination'));
71
+ const TUI_INPUT_FILE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('inputFileTexts'));
72
+ const TUI_MULTI_SELECT_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('multiSelectTexts'));
73
+ const TUI_COUNTRIES = tuiCreateTokenFromFactory(tuiExtractI18n('countries'));
74
+ const TUI_PREVIEW_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('previewTexts'));
75
+ const TUI_PREVIEW_ZOOM_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('zoomTexts'));
76
+ const TUI_INTERNATIONAL_SEARCH = tuiCreateTokenFromFactory(tuiExtractI18n('phoneSearch'));
127
77
 
128
78
  const TUI_INPUT_DATE_DEFAULT_OPTIONS = {
129
79
  icon: () => '@tui.calendar',
@@ -149,9 +99,7 @@ const TUI_DEFAULT_ITEMS_HANDLERS = {
149
99
  * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.
150
100
  * TODO(v5): delete
151
101
  */
152
- const TUI_ITEMS_HANDLERS = new InjectionToken(ngDevMode ? 'TUI_ITEMS_HANDLERS' : '', {
153
- factory: () => TUI_DEFAULT_ITEMS_HANDLERS,
154
- });
102
+ const TUI_ITEMS_HANDLERS = tuiCreateToken(TUI_DEFAULT_ITEMS_HANDLERS);
155
103
  /**
156
104
  * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.
157
105
  * TODO(v5): delete
@@ -163,21 +111,19 @@ function tuiItemsHandlersProvider(options) {
163
111
  /**
164
112
  * A component for mobile data picker
165
113
  */
166
- const TUI_MOBILE_CALENDAR = new InjectionToken(ngDevMode ? 'TUI_MOBILE_CALENDAR' : '');
114
+ const TUI_MOBILE_CALENDAR = tuiCreateToken();
167
115
  const TUI_MOBILE_CALENDAR_PROVIDER = {
168
116
  provide: TUI_DROPDOWN_COMPONENT,
169
117
  useFactory: () => (inject(TUI_IS_MOBILE) && inject(TUI_MOBILE_CALENDAR, { optional: true })) ||
170
118
  inject(TUI_DROPDOWN_COMPONENT, { skipSelf: true }),
171
119
  };
172
120
 
173
- const TUI_MONTH_FORMATTER = new InjectionToken(ngDevMode ? 'TUI_MONTH_FORMATTER' : '', {
174
- factory: () => inject(TUI_MONTHS).pipe(map((months) => (date) => {
175
- if (!date) {
176
- return '';
177
- }
178
- return `${months[date.month] ?? ''} ${date.formattedYear}`;
179
- })),
180
- });
121
+ const TUI_MONTH_FORMATTER = tuiCreateTokenFromFactory(() => inject(TUI_MONTHS).pipe(map((months) => (date) => {
122
+ if (!date) {
123
+ return '';
124
+ }
125
+ return `${months[date.month] ?? ''} ${date.formattedYear}`;
126
+ })));
181
127
 
182
128
  const TUI_PREVIEW_ICONS_DEFAULT = {
183
129
  rotate: '@tui.rotate-ccw-square',
@@ -187,16 +133,12 @@ const TUI_PREVIEW_ICONS_DEFAULT = {
187
133
  zoomOut: '@tui.minus',
188
134
  zoomReset: '@tui.minimize',
189
135
  };
190
- const TUI_PREVIEW_ICONS = new InjectionToken(ngDevMode ? 'TUI_PREVIEW_ICONS' : '', {
191
- factory: () => TUI_PREVIEW_ICONS_DEFAULT,
192
- });
136
+ const TUI_PREVIEW_ICONS = tuiCreateToken(TUI_PREVIEW_ICONS_DEFAULT);
193
137
  function tuiPreviewIconsProvider(icons) {
194
138
  return tuiProvideOptions(TUI_PREVIEW_ICONS, icons, TUI_PREVIEW_ICONS_DEFAULT);
195
139
  }
196
140
 
197
- const TUI_VALIDATION_ERRORS = new InjectionToken(ngDevMode ? 'TUI_VALIDATION_ERRORS' : '', {
198
- factory: () => ({}),
199
- });
141
+ const TUI_VALIDATION_ERRORS = tuiCreateToken({});
200
142
  const tuiValidationErrorsProvider = (useValue) => ({ provide: TUI_VALIDATION_ERRORS, useValue });
201
143
 
202
144
  /**