@taiga-ui/kit 4.1.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/components/accordion/accordion.directive.d.ts +1 -0
  2. package/components/carousel/carousel.component.d.ts +1 -1
  3. package/components/input-phone-international/input-phone-international.options.d.ts +1 -1
  4. package/components/segmented/segmented.directive.d.ts +2 -3
  5. package/components/slider/slider.component.d.ts +1 -1
  6. package/components/tiles/tile-handle.directive.d.ts +1 -1
  7. package/directives/button-select/button-select.directive.d.ts +12 -0
  8. package/directives/button-select/index.d.ts +1 -0
  9. package/directives/index.d.ts +1 -0
  10. package/esm2022/components/accordion/accordion-item.component.mjs +11 -27
  11. package/esm2022/components/accordion/accordion.directive.mjs +8 -17
  12. package/esm2022/components/avatar/avatar-labeled.component.mjs +3 -6
  13. package/esm2022/components/avatar/avatar-stack.component.mjs +6 -7
  14. package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +6 -7
  15. package/esm2022/components/button-loading/button-loading.component.mjs +3 -5
  16. package/esm2022/components/calendar-month/calendar-month.component.mjs +6 -7
  17. package/esm2022/components/calendar-range/calendar-range.component.mjs +5 -6
  18. package/esm2022/components/carousel/carousel.component.mjs +17 -28
  19. package/esm2022/components/checkbox/checkbox.options.mjs +3 -3
  20. package/esm2022/components/compass/compass.component.mjs +6 -7
  21. package/esm2022/components/elastic-container/elastic-container.component.mjs +8 -11
  22. package/esm2022/components/elastic-container/elastic-container.directive.mjs +2 -2
  23. package/esm2022/components/files/file/file.component.mjs +6 -7
  24. package/esm2022/components/files/input-files/input-files-validator.directive.mjs +6 -6
  25. package/esm2022/components/files/input-files/input-files.component.mjs +3 -5
  26. package/esm2022/components/files/pipes/file-rejected.pipe.mjs +3 -2
  27. package/esm2022/components/filter/filter.component.mjs +6 -7
  28. package/esm2022/components/input-inline/input-inline.component.mjs +5 -6
  29. package/esm2022/components/input-phone-international/input-phone-international.component.mjs +3 -3
  30. package/esm2022/components/input-phone-international/input-phone-international.options.mjs +3 -3
  31. package/esm2022/components/items-with-more/items-with-more.service.mjs +2 -2
  32. package/esm2022/components/line-clamp/line-clamp-box.component.mjs +7 -8
  33. package/esm2022/components/line-clamp/line-clamp.component.mjs +5 -6
  34. package/esm2022/components/pagination/pagination.component.mjs +4 -12
  35. package/esm2022/components/pdf-viewer/pdf-viewer.component.mjs +4 -6
  36. package/esm2022/components/pin/pin.directive.mjs +6 -6
  37. package/esm2022/components/preview/pagination/preview-pagination.component.mjs +6 -9
  38. package/esm2022/components/preview/zoom/preview-zoom.component.mjs +3 -3
  39. package/esm2022/components/progress/progress-bar/progress-bar.component.mjs +7 -10
  40. package/esm2022/components/progress/progress-bar/progress-color-segments.directive.mjs +2 -2
  41. package/esm2022/components/progress/progress-circle/progress-circle.component.mjs +8 -13
  42. package/esm2022/components/radio-list/radio-list.component.mjs +7 -10
  43. package/esm2022/components/range/range.component.mjs +9 -19
  44. package/esm2022/components/rating/rating.component.mjs +12 -29
  45. package/esm2022/components/segmented/segmented.component.mjs +8 -9
  46. package/esm2022/components/segmented/segmented.directive.mjs +17 -21
  47. package/esm2022/components/slider/helpers/slider-key-steps.directive.mjs +4 -8
  48. package/esm2022/components/slider/helpers/slider-readonly.directive.mjs +7 -9
  49. package/esm2022/components/slider/slider.component.mjs +8 -12
  50. package/esm2022/components/stepper/step.component.mjs +12 -23
  51. package/esm2022/components/stepper/stepper.component.mjs +12 -21
  52. package/esm2022/components/switch/switch.component.mjs +4 -6
  53. package/esm2022/components/tabs/tabs-horizontal.directive.mjs +7 -13
  54. package/esm2022/components/tabs/tabs-vertical.directive.mjs +8 -12
  55. package/esm2022/components/tabs/tabs.directive.mjs +7 -7
  56. package/esm2022/components/tiles/tile-handle.directive.mjs +15 -21
  57. package/esm2022/components/tiles/tile.component.mjs +9 -16
  58. package/esm2022/components/tiles/tiles.component.mjs +7 -10
  59. package/esm2022/components/tree/components/tree-item/tree-item.component.mjs +4 -6
  60. package/esm2022/components/tree/components/tree-item-content/tree-item-content.component.mjs +7 -8
  61. package/esm2022/directives/button-select/button-select.directive.mjs +41 -0
  62. package/esm2022/directives/button-select/index.mjs +2 -0
  63. package/esm2022/directives/button-select/taiga-ui-kit-directives-button-select.mjs +5 -0
  64. package/esm2022/directives/fade/fade.directive.mjs +11 -19
  65. package/esm2022/directives/fluid-typography/fluid-typography.directive.mjs +2 -2
  66. package/esm2022/directives/highlight/highlight.directive.mjs +2 -2
  67. package/esm2022/directives/index.mjs +2 -1
  68. package/esm2022/directives/lazy-loading/lazy-loading.directive.mjs +15 -20
  69. package/esm2022/directives/present/present.directive.mjs +4 -8
  70. package/esm2022/directives/sensitive/sensitive.directive.mjs +2 -2
  71. package/esm2022/directives/tooltip/tooltip.directive.mjs +7 -7
  72. package/fesm2022/taiga-ui-kit-components-accordion.mjs +16 -41
  73. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  74. package/fesm2022/taiga-ui-kit-components-avatar.mjs +6 -10
  75. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +5 -6
  77. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-kit-components-button-loading.mjs +2 -4
  79. package/fesm2022/taiga-ui-kit-components-button-loading.mjs.map +1 -1
  80. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +5 -6
  81. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  82. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +4 -5
  83. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
  84. package/fesm2022/taiga-ui-kit-components-carousel.mjs +16 -27
  85. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  86. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +2 -2
  87. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/taiga-ui-kit-components-compass.mjs +5 -6
  89. package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
  90. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +8 -11
  91. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-kit-components-files.mjs +12 -15
  93. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-kit-components-filter.mjs +5 -6
  95. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +4 -5
  97. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +4 -4
  99. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +1 -1
  101. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +9 -11
  103. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  104. package/fesm2022/taiga-ui-kit-components-pagination.mjs +3 -11
  105. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +3 -5
  107. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-kit-components-pin.mjs +5 -5
  109. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-kit-components-preview.mjs +7 -10
  111. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-kit-components-progress.mjs +13 -21
  113. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +6 -9
  115. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-kit-components-range.mjs +8 -18
  117. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  118. package/fesm2022/taiga-ui-kit-components-rating.mjs +11 -28
  119. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-kit-components-segmented.mjs +22 -26
  121. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  122. package/fesm2022/taiga-ui-kit-components-slider.mjs +14 -24
  123. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  124. package/fesm2022/taiga-ui-kit-components-stepper.mjs +21 -41
  125. package/fesm2022/taiga-ui-kit-components-stepper.mjs.map +1 -1
  126. package/fesm2022/taiga-ui-kit-components-switch.mjs +3 -5
  127. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  128. package/fesm2022/taiga-ui-kit-components-tabs.mjs +17 -27
  129. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  130. package/fesm2022/taiga-ui-kit-components-tiles.mjs +26 -42
  131. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  132. package/fesm2022/taiga-ui-kit-components-tree.mjs +8 -11
  133. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  134. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +47 -0
  135. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -0
  136. package/fesm2022/taiga-ui-kit-directives-fade.mjs +10 -18
  137. package/fesm2022/taiga-ui-kit-directives-fade.mjs.map +1 -1
  138. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +1 -1
  139. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  140. package/fesm2022/taiga-ui-kit-directives-highlight.mjs +1 -1
  141. package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
  142. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +14 -19
  143. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +1 -1
  144. package/fesm2022/taiga-ui-kit-directives-present.mjs +3 -7
  145. package/fesm2022/taiga-ui-kit-directives-present.mjs.map +1 -1
  146. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs +1 -1
  147. package/fesm2022/taiga-ui-kit-directives-sensitive.mjs.map +1 -1
  148. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +6 -6
  149. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  150. package/fesm2022/taiga-ui-kit-directives.mjs +1 -0
  151. package/fesm2022/taiga-ui-kit-directives.mjs.map +1 -1
  152. package/package.json +14 -8
@@ -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 {AsyncPipe, NgIf, NgTemplateOutlet} from '@angular/common';\nimport type {DoCheck} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n HostBinding,\n inject,\n} from '@angular/core';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {POLYMORPHEUS_CONTEXT} 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, TuiButton, NgTemplateOutlet, AsyncPipe],\n templateUrl: './tree-item-content.template.html',\n styleUrls: ['./tree-item-content.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\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 context = inject<TuiTreeItemContext>(POLYMORPHEUS_CONTEXT);\n\n protected readonly expanded$ = this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n distinctUntilChanged(),\n );\n\n public ngDoCheck(): void {\n this.change$.next();\n }\n\n @HostBinding('class._expandable')\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$ | async\"\n [iconStart]=\"icons.more\"\n [style.border-radius.%]=\"100\"\n (click)=\"onClick()\"\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 as () => void,\n};\n","import {InjectionToken} from '@angular/core';\nimport {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 = new InjectionToken<TuiTreeAccessor<unknown>>(\n '[TUI_TREE_ACCESSOR]',\n);\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 = new InjectionToken('[TUI_TREE_NODE]');\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 = new InjectionToken('[TUI_TREE_START]');\n\n/**\n * A service to load tree progressively\n */\nexport const TUI_TREE_LOADER = new InjectionToken<TuiTreeLoader<unknown>>(\n '[TUI_TREE_LOADER]',\n);\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 {AsyncPipe, NgIf} from '@angular/common';\nimport type {DoCheck, QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n forwardRef,\n HostBinding,\n inject,\n SkipSelf,\n} from '@angular/core';\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: [PolymorpheusOutlet, TuiExpandComponent, NgIf, AsyncPipe],\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 },\n})\nexport class TuiTreeItem implements DoCheck {\n @ContentChildren(TUI_TREE_NODE as any)\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$ = this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n );\n\n protected readonly attached$ = this.change$.pipe(\n map(() => this.el.isConnected),\n distinctUntilChanged(),\n );\n\n @HostBinding('class._expandable')\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$ | async\"\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$ | async\" />\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 TuiTreeItem,\n TuiLet,\n PolymorpheusOutlet,\n NgIf,\n NgForOf,\n TuiTreeNode,\n AsyncPipe,\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, startWith, Subject, switchMap, 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 switchMap((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 {AsyncPipe, NgIf, NgTemplateOutlet} from '@angular/common';\nimport type {DoCheck} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, forwardRef, inject} from '@angular/core';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {POLYMORPHEUS_CONTEXT} 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, TuiButton, NgTemplateOutlet, AsyncPipe],\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 context = inject<TuiTreeItemContext>(POLYMORPHEUS_CONTEXT);\n\n protected readonly expanded$ = this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n distinctUntilChanged(),\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$ | async\"\n [iconStart]=\"icons.more\"\n [style.border-radius.%]=\"100\"\n (click)=\"onClick()\"\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 as () => void,\n};\n","import {InjectionToken} from '@angular/core';\nimport {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 = new InjectionToken<TuiTreeAccessor<unknown>>(\n '[TUI_TREE_ACCESSOR]',\n);\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 = new InjectionToken('[TUI_TREE_NODE]');\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 = new InjectionToken('[TUI_TREE_START]');\n\n/**\n * A service to load tree progressively\n */\nexport const TUI_TREE_LOADER = new InjectionToken<TuiTreeLoader<unknown>>(\n '[TUI_TREE_LOADER]',\n);\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 {AsyncPipe, 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 {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: [PolymorpheusOutlet, TuiExpandComponent, NgIf, AsyncPipe],\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 as any)\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$ = this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n );\n\n protected readonly attached$ = this.change$.pipe(\n map(() => this.el.isConnected),\n distinctUntilChanged(),\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$ | async\"\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$ | async\" />\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 TuiTreeItem,\n TuiLet,\n PolymorpheusOutlet,\n NgIf,\n NgForOf,\n TuiTreeNode,\n AsyncPipe,\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, startWith, Subject, switchMap, 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 switchMap((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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"}
@@ -0,0 +1,47 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive } from '@angular/core';
3
+ import { TuiControl } from '@taiga-ui/cdk/classes';
4
+ import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
5
+ import { TUI_DATA_LIST_HOST } from '@taiga-ui/core/components/data-list';
6
+ import * as i2 from '@taiga-ui/core/components/textfield';
7
+ import { TuiWithTextfieldDropdown } from '@taiga-ui/core/components/textfield';
8
+ import * as i1 from '@taiga-ui/core/directives/dropdown';
9
+ import { tuiDropdownOpen, tuiDropdownOptionsProvider, TuiDropdownDirective, TuiWithDropdownOpen } from '@taiga-ui/core/directives/dropdown';
10
+
11
+ class TuiButtonSelect extends TuiControl {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.open = tuiDropdownOpen();
15
+ this.size = 's';
16
+ }
17
+ handleOption(option) {
18
+ this.onChange(option);
19
+ this.open.set(false);
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonSelect, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonSelect, isStandalone: true, selector: "button[tuiButtonSelect]", providers: [
23
+ // TODO: Add checkmark once we properly implement new Select, then add to demo
24
+ tuiProvide(TUI_DATA_LIST_HOST, TuiButtonSelect),
25
+ tuiDropdownOptionsProvider({ align: 'right' }),
26
+ ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiWithDropdownOpen }, { directive: i2.TuiWithTextfieldDropdown }], ngImport: i0 }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonSelect, decorators: [{
29
+ type: Directive,
30
+ args: [{
31
+ standalone: true,
32
+ selector: 'button[tuiButtonSelect]',
33
+ providers: [
34
+ // TODO: Add checkmark once we properly implement new Select, then add to demo
35
+ tuiProvide(TUI_DATA_LIST_HOST, TuiButtonSelect),
36
+ tuiDropdownOptionsProvider({ align: 'right' }),
37
+ ],
38
+ hostDirectives: [TuiDropdownDirective, TuiWithDropdownOpen, TuiWithTextfieldDropdown],
39
+ }]
40
+ }] });
41
+
42
+ /**
43
+ * Generated bundle index. Do not edit.
44
+ */
45
+
46
+ export { TuiButtonSelect };
47
+ //# sourceMappingURL=taiga-ui-kit-directives-button-select.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-kit-directives-button-select.mjs","sources":["../../../projects/kit/directives/button-select/button-select.directive.ts","../../../projects/kit/directives/button-select/taiga-ui-kit-directives-button-select.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_DATA_LIST_HOST,\n type TuiDataListHost,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiWithTextfieldDropdown} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiButtonSelect]',\n providers: [\n // TODO: Add checkmark once we properly implement new Select, then add to demo\n tuiProvide(TUI_DATA_LIST_HOST, TuiButtonSelect),\n tuiDropdownOptionsProvider({align: 'right'}),\n ],\n hostDirectives: [TuiDropdownDirective, TuiWithDropdownOpen, TuiWithTextfieldDropdown],\n})\nexport class TuiButtonSelect<T> extends TuiControl<T> implements TuiDataListHost<T> {\n private readonly open = tuiDropdownOpen();\n\n public readonly size = 's';\n\n public handleOption(option: T): void {\n this.onChange(option);\n this.open.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAeA,MAUa,eAAmB,SAAQ,UAAa,CAAA;AAVrD,IAAA,WAAA,GAAA;;QAWqB,IAAI,CAAA,IAAA,GAAG,eAAe,EAAE,CAAC;QAE1B,IAAI,CAAA,IAAA,GAAG,GAAG,CAAC;AAM9B,KAAA;AAJU,IAAA,YAAY,CAAC,MAAS,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;+GARQ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAPb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;;AAEP,YAAA,UAAU,CAAC,kBAAkB,EAAE,eAAe,CAAC;AAC/C,YAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAGQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;;wBAEP,UAAU,CAAC,kBAAkB,EAAkB,eAAA,CAAA;AAC/C,wBAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,qBAAA;AACD,oBAAA,cAAc,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;AACxF,iBAAA,CAAA;;;ACxBD;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, NgZone, Directive, Input, HostBinding } from '@angular/core';
2
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, NgZone, 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';
@@ -28,7 +28,7 @@ class TuiFade {
28
28
  this.orientation = 'horizontal';
29
29
  const el = tuiInjectElement();
30
30
  tuiWithStyles(TuiFadeStyles);
31
- merge(inject(ResizeObserverService), inject(MutationObserverService), fromEvent(el, 'scroll'))
31
+ merge(inject(ResizeObserverService, { self: true }), inject(MutationObserverService, { self: true }), fromEvent(el, 'scroll'))
32
32
  .pipe(tuiZonefree(inject(NgZone)), takeUntilDestroyed())
33
33
  .subscribe(() => {
34
34
  el.classList.toggle('_start', !!el.scrollLeft || !!el.scrollTop);
@@ -44,7 +44,7 @@ class TuiFade {
44
44
  el.scrollHeight > el.clientHeight + 4 * BUFFER);
45
45
  }
46
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFade, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiFade, isStandalone: true, selector: "[tuiFade]", inputs: { lineHeight: ["tuiFadeHeight", "lineHeight"], size: ["tuiFadeSize", "size"], offset: ["tuiFadeOffset", "offset"], orientation: ["tuiFade", "orientation"] }, host: { properties: { "style.line-height": "this.lineHeight", "style.--line-height": "this.lineHeight", "style.--fade-size": "this.size", "style.--fade-offset": "this.offset", "attr.data-orientation": "this.orientation" } }, providers: [
47
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiFade, isStandalone: true, selector: "[tuiFade]", inputs: { lineHeight: ["tuiFadeHeight", "lineHeight"], size: ["tuiFadeSize", "size"], offset: ["tuiFadeOffset", "offset"], orientation: ["tuiFade", "orientation"] }, host: { properties: { "style.line-height": "lineHeight", "style.--line-height": "lineHeight", "style.--fade-size": "size", "style.--fade-offset": "offset", "attr.data-orientation": "orientation" } }, providers: [
48
48
  ResizeObserverService,
49
49
  MutationObserverService,
50
50
  {
@@ -66,34 +66,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
66
66
  useValue: { characterData: true, subtree: true },
67
67
  },
68
68
  ],
69
+ host: {
70
+ '[style.line-height]': 'lineHeight',
71
+ '[style.--line-height]': 'lineHeight',
72
+ '[style.--fade-size]': 'size',
73
+ '[style.--fade-offset]': 'offset',
74
+ '[attr.data-orientation]': 'orientation',
75
+ },
69
76
  }]
70
77
  }], ctorParameters: function () { return []; }, propDecorators: { lineHeight: [{
71
78
  type: Input,
72
79
  args: ['tuiFadeHeight']
73
- }, {
74
- type: HostBinding,
75
- args: ['style.line-height']
76
- }, {
77
- type: HostBinding,
78
- args: ['style.--line-height']
79
80
  }], size: [{
80
81
  type: Input,
81
82
  args: ['tuiFadeSize']
82
- }, {
83
- type: HostBinding,
84
- args: ['style.--fade-size']
85
83
  }], offset: [{
86
84
  type: Input,
87
85
  args: ['tuiFadeOffset']
88
- }, {
89
- type: HostBinding,
90
- args: ['style.--fade-offset']
91
86
  }], orientation: [{
92
87
  type: Input,
93
88
  args: ['tuiFade']
94
- }, {
95
- type: HostBinding,
96
- args: ['attr.data-orientation']
97
89
  }] } });
98
90
 
99
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-fade.mjs","sources":["../../../projects/kit/directives/fade/fade.directive.ts","../../../projects/kit/directives/fade/taiga-ui-kit-directives-fade.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n HostBinding,\n inject,\n Input,\n NgZone,\n ViewEncapsulation,\n} 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 {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiOrientation} from '@taiga-ui/core/types';\nimport {fromEvent, merge} from 'rxjs';\n\nconst BUFFER = 1; // buffer for rounding issues\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./fade.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-fade-styles',\n },\n})\nclass TuiFadeStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiFade]',\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {characterData: true, subtree: true},\n },\n ],\n})\nexport class TuiFade {\n // TODO: Remove when lh CSS units are supported: https://caniuse.com/mdn-css_types_length_lh\n @Input('tuiFadeHeight')\n @HostBinding('style.line-height')\n @HostBinding('style.--line-height')\n public lineHeight: string | null = null;\n\n @Input('tuiFadeSize')\n @HostBinding('style.--fade-size')\n public size = '1.5em';\n\n @Input('tuiFadeOffset')\n @HostBinding('style.--fade-offset')\n public offset = '0em';\n\n @Input('tuiFade')\n @HostBinding('attr.data-orientation')\n public orientation: TuiOrientation | '' = 'horizontal';\n\n constructor() {\n const el = tuiInjectElement();\n\n tuiWithStyles(TuiFadeStyles);\n merge(\n inject(ResizeObserverService),\n inject(MutationObserverService),\n fromEvent(el, 'scroll'),\n )\n .pipe(tuiZonefree(inject(NgZone)), takeUntilDestroyed())\n .subscribe(() => {\n el.classList.toggle('_start', !!el.scrollLeft || !!el.scrollTop);\n el.classList.toggle('_end', this.isEnd(el));\n });\n }\n\n private isEnd(el: HTMLElement): boolean {\n if (this.orientation === 'vertical') {\n return Math.round(el.scrollTop) < el.scrollHeight - el.clientHeight - BUFFER;\n }\n\n return (\n Math.round(el.scrollLeft) < el.scrollWidth - el.clientWidth - BUFFER ||\n // horizontal multiline fade can kick in early due to hanging elements of fonts so using bigger buffer\n el.scrollHeight > el.clientHeight + 4 * BUFFER\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-fade.mjs","sources":["../../../projects/kit/directives/fade/fade.directive.ts","../../../projects/kit/directives/fade/taiga-ui-kit-directives-fade.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n Input,\n NgZone,\n ViewEncapsulation,\n} 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 {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiOrientation} from '@taiga-ui/core/types';\nimport {fromEvent, merge} from 'rxjs';\n\nconst BUFFER = 1; // buffer for rounding issues\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./fade.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-fade-styles',\n },\n})\nclass TuiFadeStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiFade]',\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {characterData: true, subtree: true},\n },\n ],\n host: {\n '[style.line-height]': 'lineHeight',\n '[style.--line-height]': 'lineHeight',\n '[style.--fade-size]': 'size',\n '[style.--fade-offset]': 'offset',\n '[attr.data-orientation]': 'orientation',\n },\n})\nexport class TuiFade {\n // TODO: Remove when lh CSS units are supported: https://caniuse.com/mdn-css_types_length_lh\n @Input('tuiFadeHeight')\n public lineHeight: string | null = null;\n\n @Input('tuiFadeSize')\n public size = '1.5em';\n\n @Input('tuiFadeOffset')\n public offset = '0em';\n\n @Input('tuiFade')\n public orientation: TuiOrientation | '' = 'horizontal';\n\n constructor() {\n const el = tuiInjectElement();\n\n tuiWithStyles(TuiFadeStyles);\n merge(\n inject(ResizeObserverService, {self: true}),\n inject(MutationObserverService, {self: true}),\n fromEvent(el, 'scroll'),\n )\n .pipe(tuiZonefree(inject(NgZone)), takeUntilDestroyed())\n .subscribe(() => {\n el.classList.toggle('_start', !!el.scrollLeft || !!el.scrollTop);\n el.classList.toggle('_end', this.isEnd(el));\n });\n }\n\n private isEnd(el: HTMLElement): boolean {\n if (this.orientation === 'vertical') {\n return Math.round(el.scrollTop) < el.scrollHeight - el.clientHeight - BUFFER;\n }\n\n return (\n Math.round(el.scrollLeft) < el.scrollWidth - el.clientWidth - BUFFER ||\n // horizontal multiline fade can kick in early due to hanging elements of fonts so using bigger buffer\n el.scrollHeight > el.clientHeight + 4 * BUFFER\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ class TuiFluidTypography {
24
24
  this.changes$ = new Subject();
25
25
  this.el = tuiInjectElement();
26
26
  this.options = inject(TUI_FLUID_TYPOGRAPHY_OPTIONS);
27
- this.sub = merge(this.changes$, inject(ResizeObserverService), inject(MutationObserverService), fromEvent(this.el, 'input'))
27
+ this.sub = merge(this.changes$, inject(ResizeObserverService, { self: true }), inject(MutationObserverService, { self: true }), fromEvent(this.el, 'input'))
28
28
  .pipe(tuiZonefree(inject(NgZone)), takeUntilDestroyed())
29
29
  .subscribe(() => {
30
30
  const min = Number(this.tuiFluidTypography[0] || this.options.min);
@@ -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 {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, NgZone} 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),\n inject(MutationObserverService),\n fromEvent(this.el, 'input'),\n )\n .pipe(tuiZonefree(inject(NgZone)), 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, NgZone} 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(inject(NgZone)), 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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"}
@@ -16,7 +16,7 @@ class TuiHighlight {
16
16
  this.treeWalker = this.doc.createTreeWalker(this.el, NodeFilter.SHOW_TEXT, svgNodeFilter);
17
17
  this.tuiHighlight = '';
18
18
  this.tuiHighlightColor = 'var(--tui-service-selection-background)';
19
- inject(ResizeObserverService)
19
+ inject(ResizeObserverService, { self: true })
20
20
  .pipe(takeUntilDestroyed())
21
21
  .subscribe(() => this.updateStyles());
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-highlight.mjs","sources":["../../../projects/kit/directives/highlight/highlight.directive.ts","../../../projects/kit/directives/highlight/taiga-ui-kit-directives-highlight.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport type {OnChanges} from '@angular/core';\nimport {Directive, inject, Input, Renderer2} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {svgNodeFilter} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Directive({\n standalone: true,\n selector: '[tuiHighlight]',\n providers: [ResizeObserverService],\n host: {\n '[style.position]': '\"relative\"',\n '[style.zIndex]': '0',\n },\n})\nexport class TuiHighlight implements OnChanges {\n private readonly el = tuiInjectElement();\n private readonly renderer = inject(Renderer2);\n private readonly doc = inject(DOCUMENT);\n private readonly highlight: HTMLElement = this.setUpHighlight();\n private readonly treeWalker = this.doc.createTreeWalker(\n this.el,\n NodeFilter.SHOW_TEXT,\n svgNodeFilter,\n );\n\n @Input()\n public tuiHighlight = '';\n\n @Input()\n public tuiHighlightColor = 'var(--tui-service-selection-background)';\n\n constructor() {\n inject(ResizeObserverService)\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.updateStyles());\n }\n\n public ngOnChanges(): void {\n this.updateStyles();\n }\n\n protected get match(): boolean {\n return this.indexOf(this.el.textContent) !== -1;\n }\n\n private updateStyles(): void {\n this.highlight.style.display = 'none';\n\n if (!this.match) {\n return;\n }\n\n this.treeWalker.currentNode = this.el;\n\n do {\n const index = this.indexOf(this.treeWalker.currentNode.nodeValue);\n\n if (index === -1) {\n continue;\n }\n\n const range = this.doc.createRange();\n\n range.setStart(this.treeWalker.currentNode, index);\n range.setEnd(this.treeWalker.currentNode, index + this.tuiHighlight.length);\n\n const hostRect = this.el.getBoundingClientRect();\n const {left, top, width, height} = range.getBoundingClientRect();\n const {style} = this.highlight;\n\n style.background = this.tuiHighlightColor;\n style.left = tuiPx(left - hostRect.left);\n style.top = tuiPx(top - hostRect.top);\n style.width = tuiPx(width);\n style.height = tuiPx(height);\n style.display = 'block';\n\n return;\n } while (this.treeWalker.nextNode());\n }\n\n private indexOf(source: string | null): number {\n return !source || !this.tuiHighlight\n ? -1\n : source.toLowerCase().indexOf(this.tuiHighlight.toLowerCase());\n }\n\n private setUpHighlight(): HTMLElement {\n const highlight = this.renderer.createElement('div');\n const {style} = highlight;\n\n style.background = this.tuiHighlightColor;\n style.zIndex = '-1';\n style.position = 'absolute';\n this.renderer.appendChild(this.el, highlight);\n\n return highlight;\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-highlight.mjs","sources":["../../../projects/kit/directives/highlight/highlight.directive.ts","../../../projects/kit/directives/highlight/taiga-ui-kit-directives-highlight.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport type {OnChanges} from '@angular/core';\nimport {Directive, inject, Input, Renderer2} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {svgNodeFilter} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Directive({\n standalone: true,\n selector: '[tuiHighlight]',\n providers: [ResizeObserverService],\n host: {\n '[style.position]': '\"relative\"',\n '[style.zIndex]': '0',\n },\n})\nexport class TuiHighlight implements OnChanges {\n private readonly el = tuiInjectElement();\n private readonly renderer = inject(Renderer2);\n private readonly doc = inject(DOCUMENT);\n private readonly highlight: HTMLElement = this.setUpHighlight();\n private readonly treeWalker = this.doc.createTreeWalker(\n this.el,\n NodeFilter.SHOW_TEXT,\n svgNodeFilter,\n );\n\n @Input()\n public tuiHighlight = '';\n\n @Input()\n public tuiHighlightColor = 'var(--tui-service-selection-background)';\n\n constructor() {\n inject(ResizeObserverService, {self: true})\n .pipe(takeUntilDestroyed())\n .subscribe(() => this.updateStyles());\n }\n\n public ngOnChanges(): void {\n this.updateStyles();\n }\n\n protected get match(): boolean {\n return this.indexOf(this.el.textContent) !== -1;\n }\n\n private updateStyles(): void {\n this.highlight.style.display = 'none';\n\n if (!this.match) {\n return;\n }\n\n this.treeWalker.currentNode = this.el;\n\n do {\n const index = this.indexOf(this.treeWalker.currentNode.nodeValue);\n\n if (index === -1) {\n continue;\n }\n\n const range = this.doc.createRange();\n\n range.setStart(this.treeWalker.currentNode, index);\n range.setEnd(this.treeWalker.currentNode, index + this.tuiHighlight.length);\n\n const hostRect = this.el.getBoundingClientRect();\n const {left, top, width, height} = range.getBoundingClientRect();\n const {style} = this.highlight;\n\n style.background = this.tuiHighlightColor;\n style.left = tuiPx(left - hostRect.left);\n style.top = tuiPx(top - hostRect.top);\n style.width = tuiPx(width);\n style.height = tuiPx(height);\n style.display = 'block';\n\n return;\n } while (this.treeWalker.nextNode());\n }\n\n private indexOf(source: string | null): number {\n return !source || !this.tuiHighlight\n ? -1\n : source.toLowerCase().indexOf(this.tuiHighlight.toLowerCase());\n }\n\n private setUpHighlight(): HTMLElement {\n const highlight = this.renderer.createElement('div');\n const {style} = highlight;\n\n style.background = this.tuiHighlightColor;\n style.zIndex = '-1';\n style.position = 'absolute';\n this.renderer.appendChild(this.el, highlight);\n\n return highlight;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ChangeDetectorRef, Injectable, Directive, HostBinding, Input, HostListener } from '@angular/core';
2
+ import { inject, ChangeDetectorRef, Injectable, Directive, Input } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { IntersectionObserverService } from '@ng-web-apis/intersection-observer';
5
5
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
@@ -30,11 +30,12 @@ class TuiImgLazyLoading {
30
30
  this.animation = 'tuiSkeletonVibe ease-in-out 1s infinite alternate';
31
31
  this.background = 'var(--tui-background-neutral-2)';
32
32
  this.src = null;
33
- if (!this.supported) {
34
- this.src$.pipe(takeUntilDestroyed()).subscribe((src) => {
35
- this.src = src;
36
- });
33
+ if (this.supported) {
34
+ return;
37
35
  }
36
+ this.src$.pipe(takeUntilDestroyed()).subscribe((src) => {
37
+ this.src = src;
38
+ });
38
39
  }
39
40
  set srcSetter(src) {
40
41
  this.src = this.supported ? src : null;
@@ -48,7 +49,7 @@ class TuiImgLazyLoading {
48
49
  return 'loading' in this.el;
49
50
  }
50
51
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiImgLazyLoading, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
51
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiImgLazyLoading, isStandalone: true, selector: "img[loading=\"lazy\"]", inputs: { srcSetter: ["src", "srcSetter"] }, host: { listeners: { "load": "onLoad()" }, properties: { "style.animation": "this.animation", "style.background": "this.background", "attr.src": "this.src" } }, providers: [TuiLazyLoadingService, IntersectionObserverService], ngImport: i0 }); }
52
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiImgLazyLoading, isStandalone: true, selector: "img[loading=\"lazy\"]", inputs: { srcSetter: ["src", "srcSetter"] }, host: { listeners: { "load": "onLoad()" }, properties: { "style.animation": "animation", "style.background": "background", "attr.src": "src" } }, providers: [TuiLazyLoadingService, IntersectionObserverService], ngImport: i0 }); }
52
53
  }
53
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiImgLazyLoading, decorators: [{
54
55
  type: Directive,
@@ -56,22 +57,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
56
57
  standalone: true,
57
58
  selector: 'img[loading="lazy"]',
58
59
  providers: [TuiLazyLoadingService, IntersectionObserverService],
60
+ host: {
61
+ '[style.animation]': 'animation',
62
+ '[style.background]': 'background',
63
+ '[attr.src]': 'src',
64
+ '(load)': 'onLoad()',
65
+ },
59
66
  }]
60
- }], ctorParameters: function () { return []; }, propDecorators: { animation: [{
61
- type: HostBinding,
62
- args: ['style.animation']
63
- }], background: [{
64
- type: HostBinding,
65
- args: ['style.background']
66
- }], src: [{
67
- type: HostBinding,
68
- args: ['attr.src']
69
- }], srcSetter: [{
67
+ }], ctorParameters: function () { return []; }, propDecorators: { srcSetter: [{
70
68
  type: Input,
71
69
  args: ['src']
72
- }], onLoad: [{
73
- type: HostListener,
74
- args: ['load']
75
70
  }] } });
76
71
 
77
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-lazy-loading.mjs","sources":["../../../projects/kit/directives/lazy-loading/lazy-loading.service.ts","../../../projects/kit/directives/lazy-loading/lazy-loading.directive.ts","../../../projects/kit/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.ts"],"sourcesContent":["import {ChangeDetectorRef, inject, Injectable} from '@angular/core';\nimport type {SafeResourceUrl} from '@angular/platform-browser';\nimport {IntersectionObserverService} from '@ng-web-apis/intersection-observer';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {filter, map, Observable, Subject, switchMap, take} from 'rxjs';\n\n@Injectable()\nexport class TuiLazyLoadingService extends Observable<SafeResourceUrl | string> {\n private readonly src$ = new Subject<SafeResourceUrl | string>();\n private readonly intersections$ = inject(IntersectionObserverService);\n private readonly stream$ = this.src$.pipe(\n switchMap((src) =>\n this.intersections$.pipe(\n filter(([{isIntersecting}]) => isIntersecting),\n map(() => src),\n take(1),\n ),\n ),\n tuiWatch(inject(ChangeDetectorRef)),\n );\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n public next(src: SafeResourceUrl | string): void {\n this.src$.next(src);\n }\n}\n","import {Directive, HostBinding, HostListener, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport type {SafeResourceUrl} from '@angular/platform-browser';\nimport {IntersectionObserverService} from '@ng-web-apis/intersection-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiLazyLoadingService} from './lazy-loading.service';\n\n@Directive({\n standalone: true,\n selector: 'img[loading=\"lazy\"]',\n providers: [TuiLazyLoadingService, IntersectionObserverService],\n})\nexport class TuiImgLazyLoading {\n private readonly el = tuiInjectElement<HTMLImageElement>();\n private readonly src$ = inject(TuiLazyLoadingService);\n\n @HostBinding('style.animation')\n protected animation = 'tuiSkeletonVibe ease-in-out 1s infinite alternate';\n\n @HostBinding('style.background')\n protected background = 'var(--tui-background-neutral-2)';\n\n @HostBinding('attr.src')\n protected src: SafeResourceUrl | string | null = null;\n\n constructor() {\n if (!this.supported) {\n this.src$.pipe(takeUntilDestroyed()).subscribe((src) => {\n this.src = src;\n });\n }\n }\n\n @Input('src')\n public set srcSetter(src: SafeResourceUrl | string) {\n this.src = this.supported ? src : null;\n this.src$.next(src);\n }\n\n @HostListener('load')\n protected onLoad(): void {\n this.background = '';\n this.animation = '';\n }\n\n private get supported(): boolean {\n return 'loading' in this.el;\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-lazy-loading.mjs","sources":["../../../projects/kit/directives/lazy-loading/lazy-loading.service.ts","../../../projects/kit/directives/lazy-loading/lazy-loading.directive.ts","../../../projects/kit/directives/lazy-loading/taiga-ui-kit-directives-lazy-loading.ts"],"sourcesContent":["import {ChangeDetectorRef, inject, Injectable} from '@angular/core';\nimport type {SafeResourceUrl} from '@angular/platform-browser';\nimport {IntersectionObserverService} from '@ng-web-apis/intersection-observer';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {filter, map, Observable, Subject, switchMap, take} from 'rxjs';\n\n@Injectable()\nexport class TuiLazyLoadingService extends Observable<SafeResourceUrl | string> {\n private readonly src$ = new Subject<SafeResourceUrl | string>();\n private readonly intersections$ = inject(IntersectionObserverService);\n private readonly stream$ = this.src$.pipe(\n switchMap((src) =>\n this.intersections$.pipe(\n filter(([{isIntersecting}]) => isIntersecting),\n map(() => src),\n take(1),\n ),\n ),\n tuiWatch(inject(ChangeDetectorRef)),\n );\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n\n public next(src: SafeResourceUrl | string): void {\n this.src$.next(src);\n }\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport type {SafeResourceUrl} from '@angular/platform-browser';\nimport {IntersectionObserverService} from '@ng-web-apis/intersection-observer';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TuiLazyLoadingService} from './lazy-loading.service';\n\n@Directive({\n standalone: true,\n selector: 'img[loading=\"lazy\"]',\n providers: [TuiLazyLoadingService, IntersectionObserverService],\n host: {\n '[style.animation]': 'animation',\n '[style.background]': 'background',\n '[attr.src]': 'src',\n '(load)': 'onLoad()',\n },\n})\nexport class TuiImgLazyLoading {\n private readonly el = tuiInjectElement<HTMLImageElement>();\n private readonly src$ = inject(TuiLazyLoadingService);\n protected animation = 'tuiSkeletonVibe ease-in-out 1s infinite alternate';\n protected background = 'var(--tui-background-neutral-2)';\n protected src: SafeResourceUrl | string | null = null;\n\n constructor() {\n if (this.supported) {\n return;\n }\n\n this.src$.pipe(takeUntilDestroyed()).subscribe((src) => {\n this.src = src;\n });\n }\n\n @Input('src')\n public set srcSetter(src: SafeResourceUrl | string) {\n this.src = this.supported ? src : null;\n this.src$.next(src);\n }\n\n protected onLoad(): void {\n this.background = '';\n this.animation = '';\n }\n\n private get supported(): boolean {\n return 'loading' in this.el;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Output, HostListener } from '@angular/core';
2
+ import { Directive, Output } from '@angular/core';
3
3
  import { BehaviorSubject, distinctUntilChanged, skip } from 'rxjs';
4
4
 
5
5
  class TuiPresent {
@@ -23,16 +23,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
23
23
  selector: '[tuiPresentChange]',
24
24
  host: {
25
25
  '[style.animation]': '"tuiPresent 1s infinite"',
26
+ '(animationcancel.self)': 'onAnimation(false)',
27
+ '(animationstart.self)': 'onAnimation(true)',
26
28
  },
27
29
  }]
28
30
  }], propDecorators: { tuiPresentChange: [{
29
31
  type: Output
30
- }], onAnimation: [{
31
- type: HostListener,
32
- args: ['animationcancel.self', ['false']]
33
- }, {
34
- type: HostListener,
35
- args: ['animationstart.self', ['true']]
36
32
  }] } });
37
33
 
38
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-present.mjs","sources":["../../../projects/kit/directives/present/present.directive.ts","../../../projects/kit/directives/present/taiga-ui-kit-directives-present.ts"],"sourcesContent":["import type {OnDestroy} from '@angular/core';\nimport {Directive, HostListener, Output} from '@angular/core';\nimport {BehaviorSubject, distinctUntilChanged, skip} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: '[tuiPresentChange]',\n host: {\n '[style.animation]': '\"tuiPresent 1s infinite\"',\n },\n})\nexport class TuiPresent implements OnDestroy {\n private readonly visibility$ = new BehaviorSubject(false);\n\n @Output()\n public readonly tuiPresentChange = this.visibility$.pipe(\n distinctUntilChanged(),\n skip(1),\n );\n\n public ngOnDestroy(): void {\n this.visibility$.next(false);\n }\n\n @HostListener('animationcancel.self', ['false'])\n @HostListener('animationstart.self', ['true'])\n protected onAnimation(visibility: boolean): void {\n this.visibility$.next(visibility);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAIA,MAOa,UAAU,CAAA;AAPvB,IAAA,WAAA,GAAA;AAQqB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAG1C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CACpD,oBAAoB,EAAE,EACtB,IAAI,CAAC,CAAC,CAAC,CACV,CAAC;AAWL,KAAA;IATU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAIS,IAAA,WAAW,CAAC,UAAmB,EAAA;AACrC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrC;+GAjBQ,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,oBAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAPtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE;AACF,wBAAA,mBAAmB,EAAE,0BAA0B;AAClD,qBAAA;AACJ,iBAAA,CAAA;8BAKmB,gBAAgB,EAAA,CAAA;sBAD/B,MAAM;gBAYG,WAAW,EAAA,CAAA;sBAFpB,YAAY;uBAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,CAAA;;sBAC9C,YAAY;uBAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAA;;;ACzBjD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-present.mjs","sources":["../../../projects/kit/directives/present/present.directive.ts","../../../projects/kit/directives/present/taiga-ui-kit-directives-present.ts"],"sourcesContent":["import type {OnDestroy} from '@angular/core';\nimport {Directive, Output} from '@angular/core';\nimport {BehaviorSubject, distinctUntilChanged, skip} from 'rxjs';\n\n@Directive({\n standalone: true,\n selector: '[tuiPresentChange]',\n host: {\n '[style.animation]': '\"tuiPresent 1s infinite\"',\n '(animationcancel.self)': 'onAnimation(false)',\n '(animationstart.self)': 'onAnimation(true)',\n },\n})\nexport class TuiPresent implements OnDestroy {\n private readonly visibility$ = new BehaviorSubject(false);\n\n @Output()\n public readonly tuiPresentChange = this.visibility$.pipe(\n distinctUntilChanged(),\n skip(1),\n );\n\n public ngOnDestroy(): void {\n this.visibility$.next(false);\n }\n\n protected onAnimation(visibility: boolean): void {\n this.visibility$.next(visibility);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAIA,MASa,UAAU,CAAA;AATvB,IAAA,WAAA,GAAA;AAUqB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAG1C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CACpD,oBAAoB,EAAE,EACtB,IAAI,CAAC,CAAC,CAAC,CACV,CAAC;AASL,KAAA;IAPU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAES,IAAA,WAAW,CAAC,UAAmB,EAAA;AACrC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrC;+GAfQ,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,oBAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBATtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE;AACF,wBAAA,mBAAmB,EAAE,0BAA0B;AAC/C,wBAAA,wBAAwB,EAAE,oBAAoB;AAC9C,wBAAA,uBAAuB,EAAE,mBAAmB;AAC/C,qBAAA;AACJ,iBAAA,CAAA;8BAKmB,gBAAgB,EAAA,CAAA;sBAD/B,MAAM;;;AChBX;;AAEG;;;;"}
@@ -21,7 +21,7 @@ class TuiSensitive {
21
21
  constructor() {
22
22
  this.nothing = tuiWithStyles(TuiSensitiveStyles);
23
23
  this.offset = Math.round(Math.random() * 10) * 10;
24
- this.height = toSignal(inject(ResizeObserverService).pipe(map(([{ contentRect }]) => [
24
+ this.height = toSignal(inject(ResizeObserverService, { self: true }).pipe(map(([{ contentRect }]) => [
25
25
  Math.max(2, Math.floor(contentRect.height / 16) + 1),
26
26
  contentRect.height,
27
27
  ]), map(([rows, height]) => height * (rowsInSvg / rows)), tuiZonefull(inject(NgZone)), tuiWatch(inject(ChangeDetectorRef))));
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-sensitive.mjs","sources":["../../../projects/kit/directives/sensitive/sensitive.directive.ts","../../../projects/kit/directives/sensitive/taiga-ui-kit-directives-sensitive.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n Input,\n NgZone,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiWatch, tuiZonefull} from '@taiga-ui/cdk/observables';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {map} from 'rxjs';\n\nconst rowsInSvg = 3;\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./sensitive.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-sensitive-styles',\n },\n})\nclass TuiSensitiveStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiSensitive]',\n providers: [ResizeObserverService],\n host: {\n '[style.--t-offset.px]': 'offset',\n '[style.--t-mask-height.px]': 'height()',\n '[class.tui-sensitive]': 'tuiSensitive',\n },\n})\nexport class TuiSensitive {\n protected readonly nothing = tuiWithStyles(TuiSensitiveStyles);\n protected readonly offset = Math.round(Math.random() * 10) * 10;\n\n protected readonly height = toSignal(\n inject(ResizeObserverService).pipe(\n map(([{contentRect}]) => [\n Math.max(2, Math.floor(contentRect.height / 16) + 1),\n contentRect.height,\n ]),\n map(([rows, height]) => height * (rowsInSvg / rows)),\n tuiZonefull(inject(NgZone)),\n tuiWatch(inject(ChangeDetectorRef)),\n ),\n );\n\n @Input()\n public tuiSensitive: boolean | null = false;\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-sensitive.mjs","sources":["../../../projects/kit/directives/sensitive/sensitive.directive.ts","../../../projects/kit/directives/sensitive/taiga-ui-kit-directives-sensitive.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n Input,\n NgZone,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiWatch, tuiZonefull} from '@taiga-ui/cdk/observables';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {map} from 'rxjs';\n\nconst rowsInSvg = 3;\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./sensitive.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-sensitive-styles',\n },\n})\nclass TuiSensitiveStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiSensitive]',\n providers: [ResizeObserverService],\n host: {\n '[style.--t-offset.px]': 'offset',\n '[style.--t-mask-height.px]': 'height()',\n '[class.tui-sensitive]': 'tuiSensitive',\n },\n})\nexport class TuiSensitive {\n protected readonly nothing = tuiWithStyles(TuiSensitiveStyles);\n protected readonly offset = Math.round(Math.random() * 10) * 10;\n\n protected readonly height = toSignal(\n inject(ResizeObserverService, {self: true}).pipe(\n map(([{contentRect}]) => [\n Math.max(2, Math.floor(contentRect.height / 16) + 1),\n contentRect.height,\n ]),\n map(([rows, height]) => height * (rowsInSvg / rows)),\n tuiZonefull(inject(NgZone)),\n tuiWatch(inject(ChangeDetectorRef)),\n ),\n );\n\n @Input()\n public tuiSensitive: boolean | null = false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}