@taiga-ui/kit 4.52.0-canary.831274e → 4.52.0-canary.91aeb4a

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 (24) hide show
  1. package/components/progress/progress-bar/progress-color-segments.directive.d.ts +4 -4
  2. package/directives/button-close/button-close.directive.d.ts +2 -1
  3. package/directives/fluid-typography/fluid-typography.directive.d.ts +3 -6
  4. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +2 -4
  5. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  6. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +2 -3
  7. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  8. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +2 -2
  9. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  10. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +1 -1
  11. package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
  12. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +2 -2
  13. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  14. package/fesm2022/taiga-ui-kit-components-pagination.mjs +2 -3
  15. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  16. package/fesm2022/taiga-ui-kit-components-progress.mjs +35 -22
  17. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  18. package/fesm2022/taiga-ui-kit-components-tree.mjs +2 -3
  19. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  20. package/fesm2022/taiga-ui-kit-directives-button-close.mjs +13 -4
  21. package/fesm2022/taiga-ui-kit-directives-button-close.mjs.map +1 -1
  22. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +10 -17
  23. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  24. package/package.json +13 -13
@@ -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 {NgTemplateOutlet} from '@angular/common';\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 {TUI_MORE_WORD} from '@taiga-ui/kit/tokens';\nimport {injectContext} from '@taiga-ui/polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER} from '../../misc/tree.constants';\nimport {\n type TuiTreeController,\n type TuiTreeItemContext,\n} from '../../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../../misc/tree.tokens';\n\n@Component({\n imports: [NgTemplateOutlet, TuiButton],\n templateUrl: './tree-item-content.template.html',\n styleUrl: './tree-item-content.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._expandable]': 'isExpandable',\n },\n})\nexport class TuiTreeItemContent {\n private readonly controller = inject<TuiTreeController>(\n forwardRef(() => TUI_TREE_CONTROLLER),\n );\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly more = inject(TUI_MORE_WORD);\n protected readonly context = injectContext<TuiTreeItemContext>();\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 onClick(): void {\n this.controller.toggle(this.context.$implicit);\n }\n}\n","@if (isExpandable) {\n <button\n appearance=\"flat\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_expanded]=\"context.$implicit.expanded()\"\n [iconStart]=\"icons.more\"\n [style.border-radius.%]=\"100\"\n (click)=\"onClick()\"\n >\n {{ more() }}\n </button>\n}\n<ng-container [ngTemplateOutlet]=\"context.template\" />\n","import {EMPTY_FUNCTION, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {TuiTreeItemContent} from '../components/tree-item-content/tree-item-content.component';\nimport {type TuiTreeController} from './tree.interfaces';\n\nexport const TUI_TREE_ITEM_CONTENT = new PolymorpheusComponent(TuiTreeItemContent);\n\nexport const TUI_DEFAULT_TREE_CONTROLLER: TuiTreeController = {\n isExpanded: TUI_TRUE_HANDLER,\n toggle: EMPTY_FUNCTION,\n};\n","import {InjectionToken} from '@angular/core';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER, TUI_TREE_ITEM_CONTENT} from './tree.constants';\nimport {\n type TuiTreeAccessor,\n type TuiTreeItemContext,\n type TuiTreeLoader,\n} from './tree.interfaces';\n\n/**\n * Controller for tracking value - TuiTreeItemComponent pairs\n */\nexport const TUI_TREE_ACCESSOR = new InjectionToken<TuiTreeAccessor<unknown>>(\n ngDevMode ? 'TUI_TREE_ACCESSOR' : '',\n);\n\n/**\n * Controller for expanding the tree\n */\nexport const TUI_TREE_CONTROLLER = new InjectionToken(\n ngDevMode ? 'TUI_TREE_CONTROLLER' : '',\n {\n factory: () => TUI_DEFAULT_TREE_CONTROLLER,\n },\n);\n\n/**\n * A node of a tree view\n */\nexport const TUI_TREE_NODE = new InjectionToken(ngDevMode ? 'TUI_TREE_NODE' : '');\n\n/**\n * A tree node placeholder for loading\n */\nexport const TUI_TREE_LOADING = new InjectionToken(ngDevMode ? 'TUI_TREE_LOADING' : '', {\n factory: () => ({}),\n});\n\n/**\n * A tree node starting point\n */\nexport const TUI_TREE_START = new InjectionToken(ngDevMode ? 'TUI_TREE_START' : '');\n\n/**\n * A service to load tree progressively\n */\nexport const TUI_TREE_LOADER = new InjectionToken<TuiTreeLoader<unknown>>(\n ngDevMode ? 'TUI_TREE_LOADER' : '',\n);\n\n/**\n * Content for a tree item\n */\nexport const TUI_TREE_CONTENT = new InjectionToken<\n PolymorpheusContent<TuiTreeItemContext>\n>(ngDevMode ? 'TUI_TREE_CONTENT' : '', {\n factory: () => TUI_TREE_ITEM_CONTENT,\n});\n\n/**\n * Nesting level of current TreeView node\n */\nexport const TUI_TREE_LEVEL = new InjectionToken(ngDevMode ? 'TUI_TREE_LEVEL' : '', {\n factory: () => -1,\n});\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n type DoCheck,\n forwardRef,\n inject,\n type QueryList,\n SkipSelf,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiExpand} from '@taiga-ui/core/components/expand';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport {\n type TuiTreeController,\n type TuiTreeItemContext,\n} 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 selector: 'tui-tree-item',\n imports: [PolymorpheusOutlet, TuiExpand],\n templateUrl: './tree-item.template.html',\n styleUrl: './tree-item.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiProvide(TUI_TREE_NODE, TuiTreeItem),\n {\n provide: TUI_TREE_LEVEL,\n deps: [[new SkipSelf(), TUI_TREE_LEVEL]],\n useFactory: (level: number): number => ++level,\n },\n ],\n host: {\n role: 'treeitem',\n '[class._expandable]': 'isExpandable',\n },\n})\nexport class TuiTreeItem implements DoCheck {\n @ContentChildren(TUI_TREE_NODE)\n private readonly nested: QueryList<unknown> = EMPTY_QUERY;\n\n private readonly el = tuiInjectElement();\n\n private readonly controller = inject<TuiTreeController>(\n forwardRef(() => TUI_TREE_CONTROLLER),\n );\n\n private readonly change$ = new Subject<void>();\n\n protected readonly level = inject<number>(forwardRef(() => TUI_TREE_LEVEL));\n\n protected readonly content = inject<PolymorpheusContent<TuiTreeItemContext>>(\n forwardRef(() => TUI_TREE_CONTENT),\n );\n\n protected readonly attached = toSignal(\n this.change$.pipe(\n map(() => this.el.isConnected),\n distinctUntilChanged(),\n ),\n {initialValue: this.el.isConnected},\n );\n\n public readonly expanded = toSignal(\n this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n distinctUntilChanged(),\n ),\n {initialValue: this.isExpanded},\n );\n\n public 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@if (isExpandable) {\n <tui-expand\n role=\"group\"\n class=\"t-children\"\n [expanded]=\"expanded()\"\n >\n <div>\n <ng-content select=\"tui-tree-item\" />\n <ng-content select=\"tui-tree\" />\n </div>\n </tui-expand>\n}\n@if (attached()) {}\n","import {Directive, inject, Input, type OnDestroy} 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} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n type DoCheck,\n forwardRef,\n inject,\n Input,\n type TrackByFunction,\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, 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 selector: 'tui-tree',\n imports: [AsyncPipe, PolymorpheusOutlet, TuiLet, TuiTreeItem, TuiTreeNode],\n templateUrl: './tree.template.html',\n styleUrl: './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 @if (value !== children) {\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: value, node: view}\">\n {{ text }}\n </ng-container>\n }\n @for (child of children; track trackBy($index, child)) {\n <tui-tree\n [content]=\"content\"\n [trackBy]=\"trackBy\"\n [value]=\"child\"\n />\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, type TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR, TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiTreeController][map]',\n providers: [\n tuiProvide(TUI_TREE_ACCESSOR, TuiTreeControllerDirective),\n tuiProvide(TUI_TREE_CONTROLLER, TuiTreeControllerDirective),\n ],\n exportAs: 'tuiTreeController',\n})\nexport class TuiTreeControllerDirective<T>\n implements TuiTreeController, TuiTreeAccessor<T>\n{\n protected readonly items = new Map<TuiTreeItem, T>();\n\n @Input('tuiTreeController')\n public fallback = true;\n\n @Input()\n public map = new Map<T, boolean>();\n\n @Output()\n public readonly toggled = new EventEmitter<T>();\n\n public register(item: TuiTreeItem, value: T): void {\n this.items.set(item, value);\n }\n\n public unregister(item: TuiTreeItem): void {\n this.items.delete(item);\n }\n\n public isExpanded(item: TuiTreeItem): boolean {\n const value = this.items.get(item);\n\n return (value && this.map.get(value)) ?? this.fallback;\n }\n\n public toggle(item: TuiTreeItem): void {\n const value = this.items.get(item);\n const expanded = this.isExpanded(item);\n\n if (!tuiIsPresent(value)) {\n return;\n }\n\n this.toggled.emit(value);\n this.map.set(value, !expanded);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {type TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport {type TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiTreeController]:not([map])',\n providers: [tuiProvide(TUI_TREE_CONTROLLER, TuiTreeItemController)],\n exportAs: 'tuiTreeController',\n})\nexport class TuiTreeItemController implements TuiTreeController {\n private readonly map = new WeakMap<TuiTreeItem, boolean>();\n\n @Input('tuiTreeController')\n public fallback = true;\n\n public isExpanded(item: TuiTreeItem): boolean {\n return this.map.get(item) ?? this.fallback;\n }\n\n public toggle(item: TuiTreeItem): void {\n this.map.set(item, !this.isExpanded(item));\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {map, mergeMap, startWith, Subject, tap} from 'rxjs';\n\nimport {type TuiTreeLoader} from './tree.interfaces';\nimport {TUI_TREE_LOADER, TUI_TREE_LOADING, TUI_TREE_START} from './tree.tokens';\n\n@Injectable()\nexport class TuiTreeService<T> {\n private readonly loading = inject<T>(TUI_TREE_LOADING);\n private readonly start = inject<T>(TUI_TREE_START);\n private readonly loader = inject<TuiTreeLoader<T>>(TUI_TREE_LOADER);\n private readonly map = new Map<T, readonly T[]>([[this.loading, []]]);\n private readonly load$ = new Subject<T>();\n\n public readonly data$ = this.load$.pipe(\n mergeMap((item) =>\n this.loader.loadChildren(item).pipe(\n tap((children) => this.map.set(item, children)),\n map((children) =>\n children.filter((item) => !this.loader.hasChildren(item)),\n ),\n tap((children) => children.forEach((child) => this.map.set(child, []))),\n ),\n ),\n startWith(null),\n map(() => this.start),\n );\n\n public getChildren(item: T): readonly T[] {\n return this.map.get(item) || [this.loading];\n }\n\n public loadChildren(item: T): void {\n if (this.map.get(item)) {\n return;\n }\n\n this.map.set(item, [this.loading]);\n this.load$.next(item);\n }\n}\n","import {TuiTreeComponent} from './components/tree/tree.component';\nimport {TuiTreeItem} from './components/tree-item/tree-item.component';\nimport {TuiTreeItemContent} from './components/tree-item-content/tree-item-content.component';\nimport {TuiTreeChildren} from './directives/tree-children.directive';\nimport {TuiTreeControllerDirective} from './directives/tree-controller.directive';\nimport {TuiTreeItemController} from './directives/tree-item-controller.directive';\nimport {TuiTreeNode} from './directives/tree-node.directive';\n\nexport const TuiTree = [\n TuiTreeComponent,\n TuiTreeItem,\n TuiTreeItemContent,\n TuiTreeChildren,\n TuiTreeItemController,\n TuiTreeControllerDirective,\n TuiTreeNode,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-tree.mjs","sources":["../../../projects/kit/components/tree/directives/tree-children.directive.ts","../../../projects/kit/components/tree/components/tree-item-content/tree-item-content.component.ts","../../../projects/kit/components/tree/components/tree-item-content/tree-item-content.template.html","../../../projects/kit/components/tree/misc/tree.constants.ts","../../../projects/kit/components/tree/misc/tree.tokens.ts","../../../projects/kit/components/tree/components/tree-item/tree-item.component.ts","../../../projects/kit/components/tree/components/tree-item/tree-item.template.html","../../../projects/kit/components/tree/directives/tree-node.directive.ts","../../../projects/kit/components/tree/components/tree/tree.component.ts","../../../projects/kit/components/tree/components/tree/tree.template.html","../../../projects/kit/components/tree/directives/tree-controller.directive.ts","../../../projects/kit/components/tree/directives/tree-item-controller.directive.ts","../../../projects/kit/components/tree/misc/tree.service.ts","../../../projects/kit/components/tree/tree.ts","../../../projects/kit/components/tree/taiga-ui-kit-components-tree.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\nimport {EMPTY_ARRAY} from '@taiga-ui/cdk/constants';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\n\n@Directive({\n standalone: true,\n selector: 'tui-tree[childrenHandler]',\n})\nexport class TuiTreeChildren<T> {\n @Input()\n public childrenHandler: TuiHandler<T, readonly T[]> = TuiTreeChildren.defaultHandler;\n\n public static defaultHandler<G>(item: G): readonly G[] {\n return Array.isArray(item) ? item : EMPTY_ARRAY;\n }\n}\n","import {NgTemplateOutlet} from '@angular/common';\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 {TUI_MORE_WORD} from '@taiga-ui/kit/tokens';\nimport {injectContext} from '@taiga-ui/polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER} from '../../misc/tree.constants';\nimport {\n type TuiTreeController,\n type TuiTreeItemContext,\n} from '../../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../../misc/tree.tokens';\n\n@Component({\n imports: [NgTemplateOutlet, TuiButton],\n templateUrl: './tree-item-content.template.html',\n styleUrl: './tree-item-content.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._expandable]': 'isExpandable',\n },\n})\nexport class TuiTreeItemContent {\n private readonly controller = inject<TuiTreeController>(\n forwardRef(() => TUI_TREE_CONTROLLER),\n );\n\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly more = inject(TUI_MORE_WORD);\n protected readonly context = injectContext<TuiTreeItemContext>();\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 onClick(): void {\n this.controller.toggle(this.context.$implicit);\n }\n}\n","@if (isExpandable) {\n <button\n appearance=\"flat\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [class.t-button_expanded]=\"context.$implicit.expanded()\"\n [iconStart]=\"icons.more\"\n [style.border-radius.%]=\"100\"\n (click)=\"onClick()\"\n >\n {{ more() }}\n </button>\n}\n<ng-container [ngTemplateOutlet]=\"context.template\" />\n","import {EMPTY_FUNCTION, TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\n\nimport {TuiTreeItemContent} from '../components/tree-item-content/tree-item-content.component';\nimport {type TuiTreeController} from './tree.interfaces';\n\nexport const TUI_TREE_ITEM_CONTENT = new PolymorpheusComponent(TuiTreeItemContent);\n\nexport const TUI_DEFAULT_TREE_CONTROLLER: TuiTreeController = {\n isExpanded: TUI_TRUE_HANDLER,\n toggle: EMPTY_FUNCTION,\n};\n","import {InjectionToken} from '@angular/core';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TUI_DEFAULT_TREE_CONTROLLER, TUI_TREE_ITEM_CONTENT} from './tree.constants';\nimport {\n type TuiTreeAccessor,\n type TuiTreeItemContext,\n type TuiTreeLoader,\n} from './tree.interfaces';\n\n/**\n * Controller for tracking value - TuiTreeItemComponent pairs\n */\nexport const TUI_TREE_ACCESSOR = new InjectionToken<TuiTreeAccessor<unknown>>(\n ngDevMode ? 'TUI_TREE_ACCESSOR' : '',\n);\n\n/**\n * Controller for expanding the tree\n */\nexport const TUI_TREE_CONTROLLER = new InjectionToken(\n ngDevMode ? 'TUI_TREE_CONTROLLER' : '',\n {\n factory: () => TUI_DEFAULT_TREE_CONTROLLER,\n },\n);\n\n/**\n * A node of a tree view\n */\nexport const TUI_TREE_NODE = new InjectionToken(ngDevMode ? 'TUI_TREE_NODE' : '');\n\n/**\n * A tree node placeholder for loading\n */\nexport const TUI_TREE_LOADING = new InjectionToken(ngDevMode ? 'TUI_TREE_LOADING' : '', {\n factory: () => ({}),\n});\n\n/**\n * A tree node starting point\n */\nexport const TUI_TREE_START = new InjectionToken(ngDevMode ? 'TUI_TREE_START' : '');\n\n/**\n * A service to load tree progressively\n */\nexport const TUI_TREE_LOADER = new InjectionToken<TuiTreeLoader<unknown>>(\n ngDevMode ? 'TUI_TREE_LOADER' : '',\n);\n\n/**\n * Content for a tree item\n */\nexport const TUI_TREE_CONTENT = new InjectionToken<\n PolymorpheusContent<TuiTreeItemContext>\n>(ngDevMode ? 'TUI_TREE_CONTENT' : '', {\n factory: () => TUI_TREE_ITEM_CONTENT,\n});\n\n/**\n * Nesting level of current TreeView node\n */\nexport const TUI_TREE_LEVEL = new InjectionToken(ngDevMode ? 'TUI_TREE_LEVEL' : '', {\n factory: () => -1,\n});\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n type DoCheck,\n forwardRef,\n inject,\n type QueryList,\n SkipSelf,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiExpand} from '@taiga-ui/core/components/expand';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, startWith, Subject} from 'rxjs';\n\nimport {\n type TuiTreeController,\n type TuiTreeItemContext,\n} 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 selector: 'tui-tree-item',\n imports: [PolymorpheusOutlet, TuiExpand],\n templateUrl: './tree-item.template.html',\n styleUrl: './tree-item.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiProvide(TUI_TREE_NODE, TuiTreeItem),\n {\n provide: TUI_TREE_LEVEL,\n deps: [[new SkipSelf(), TUI_TREE_LEVEL]],\n useFactory: (level: number): number => ++level,\n },\n ],\n host: {\n role: 'treeitem',\n '[class._expandable]': 'isExpandable',\n },\n})\nexport class TuiTreeItem implements DoCheck {\n @ContentChildren(TUI_TREE_NODE)\n private readonly nested: QueryList<unknown> = EMPTY_QUERY;\n\n private readonly el = tuiInjectElement();\n\n private readonly controller = inject<TuiTreeController>(\n forwardRef(() => TUI_TREE_CONTROLLER),\n );\n\n private readonly change$ = new Subject<void>();\n\n protected readonly level = inject<number>(forwardRef(() => TUI_TREE_LEVEL));\n\n protected readonly content = inject<PolymorpheusContent<TuiTreeItemContext>>(\n forwardRef(() => TUI_TREE_CONTENT),\n );\n\n protected readonly attached = toSignal(\n this.change$.pipe(\n map(() => this.el.isConnected),\n distinctUntilChanged(),\n ),\n {initialValue: this.el.isConnected},\n );\n\n public readonly expanded = toSignal(\n this.change$.pipe(\n startWith(null),\n map(() => this.isExpanded),\n distinctUntilChanged(),\n ),\n {initialValue: this.isExpanded},\n );\n\n public 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@if (isExpandable) {\n <tui-expand\n role=\"group\"\n class=\"t-children\"\n [expanded]=\"expanded()\"\n >\n <div>\n <ng-content select=\"tui-tree-item\" />\n <ng-content select=\"tui-tree\" />\n </div>\n </tui-expand>\n}\n@if (attached()) {}\n","import {Directive, inject, Input, type OnDestroy} 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} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n type DoCheck,\n forwardRef,\n inject,\n Input,\n type TrackByFunction,\n ViewChild,\n} from '@angular/core';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type PolymorpheusContent, 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 selector: 'tui-tree',\n imports: [AsyncPipe, PolymorpheusOutlet, TuiTreeItem, TuiTreeNode],\n templateUrl: './tree.template.html',\n styleUrl: './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","@let children = children$ | async;\n<tui-tree-item\n #view\n [tuiTreeNode]=\"value\"\n>\n @if (value !== children) {\n <ng-container *polymorpheusOutlet=\"content as text; context: {$implicit: value, node: view}\">\n {{ text }}\n </ng-container>\n }\n @for (child of children; track trackBy($index, child)) {\n <tui-tree\n [content]=\"content\"\n [trackBy]=\"trackBy\"\n [value]=\"child\"\n />\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, type TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_ACCESSOR, TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiTreeController][map]',\n providers: [\n tuiProvide(TUI_TREE_ACCESSOR, TuiTreeControllerDirective),\n tuiProvide(TUI_TREE_CONTROLLER, TuiTreeControllerDirective),\n ],\n exportAs: 'tuiTreeController',\n})\nexport class TuiTreeControllerDirective<T>\n implements TuiTreeController, TuiTreeAccessor<T>\n{\n protected readonly items = new Map<TuiTreeItem, T>();\n\n @Input('tuiTreeController')\n public fallback = true;\n\n @Input()\n public map = new Map<T, boolean>();\n\n @Output()\n public readonly toggled = new EventEmitter<T>();\n\n public register(item: TuiTreeItem, value: T): void {\n this.items.set(item, value);\n }\n\n public unregister(item: TuiTreeItem): void {\n this.items.delete(item);\n }\n\n public isExpanded(item: TuiTreeItem): boolean {\n const value = this.items.get(item);\n\n return (value && this.map.get(value)) ?? this.fallback;\n }\n\n public toggle(item: TuiTreeItem): void {\n const value = this.items.get(item);\n const expanded = this.isExpanded(item);\n\n if (!tuiIsPresent(value)) {\n return;\n }\n\n this.toggled.emit(value);\n this.map.set(value, !expanded);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {type TuiTreeItem} from '../components/tree-item/tree-item.component';\nimport {type TuiTreeController} from '../misc/tree.interfaces';\nimport {TUI_TREE_CONTROLLER} from '../misc/tree.tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiTreeController]:not([map])',\n providers: [tuiProvide(TUI_TREE_CONTROLLER, TuiTreeItemController)],\n exportAs: 'tuiTreeController',\n})\nexport class TuiTreeItemController implements TuiTreeController {\n private readonly map = new WeakMap<TuiTreeItem, boolean>();\n\n @Input('tuiTreeController')\n public fallback = true;\n\n public isExpanded(item: TuiTreeItem): boolean {\n return this.map.get(item) ?? this.fallback;\n }\n\n public toggle(item: TuiTreeItem): void {\n this.map.set(item, !this.isExpanded(item));\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {map, mergeMap, startWith, Subject, tap} from 'rxjs';\n\nimport {type TuiTreeLoader} from './tree.interfaces';\nimport {TUI_TREE_LOADER, TUI_TREE_LOADING, TUI_TREE_START} from './tree.tokens';\n\n@Injectable()\nexport class TuiTreeService<T> {\n private readonly loading = inject<T>(TUI_TREE_LOADING);\n private readonly start = inject<T>(TUI_TREE_START);\n private readonly loader = inject<TuiTreeLoader<T>>(TUI_TREE_LOADER);\n private readonly map = new Map<T, readonly T[]>([[this.loading, []]]);\n private readonly load$ = new Subject<T>();\n\n public readonly data$ = this.load$.pipe(\n mergeMap((item) =>\n this.loader.loadChildren(item).pipe(\n tap((children) => this.map.set(item, children)),\n map((children) =>\n children.filter((item) => !this.loader.hasChildren(item)),\n ),\n tap((children) => children.forEach((child) => this.map.set(child, []))),\n ),\n ),\n startWith(null),\n map(() => this.start),\n );\n\n public getChildren(item: T): readonly T[] {\n return this.map.get(item) || [this.loading];\n }\n\n public loadChildren(item: T): void {\n if (this.map.get(item)) {\n return;\n }\n\n this.map.set(item, [this.loading]);\n this.load$.next(item);\n }\n}\n","import {TuiTreeComponent} from './components/tree/tree.component';\nimport {TuiTreeItem} from './components/tree-item/tree-item.component';\nimport {TuiTreeItemContent} from './components/tree-item-content/tree-item-content.component';\nimport {TuiTreeChildren} from './directives/tree-children.directive';\nimport {TuiTreeControllerDirective} from './directives/tree-controller.directive';\nimport {TuiTreeItemController} from './directives/tree-item-controller.directive';\nimport {TuiTreeNode} from './directives/tree-node.directive';\n\nexport const TuiTree = [\n TuiTreeComponent,\n TuiTreeItem,\n TuiTreeItemContent,\n TuiTreeChildren,\n TuiTreeItemController,\n TuiTreeControllerDirective,\n TuiTreeNode,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,23 +1,24 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Directive } from '@angular/core';
3
- import { tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
3
+ import * as i1 from '@taiga-ui/core/components/button';
4
+ import { tuiButtonOptionsProvider, TuiButton } from '@taiga-ui/core/components/button';
4
5
  import { TUI_ICON_START, TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
5
6
 
6
7
  class TuiButtonClose {
7
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiButtonClose, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiButtonClose, isStandalone: true, selector: "[tuiIconButton][tuiButtonClose]", host: { properties: { "style.--t-radius.%": "100" } }, providers: [
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiButtonClose, isStandalone: true, selector: "[tuiButtonClose]", host: { attributes: { "tuiIconButton": "" }, properties: { "style.--t-radius.%": "100", "attr.type": "\"button\"" } }, providers: [
9
10
  tuiButtonOptionsProvider({ appearance: 'neutral', size: 's' }),
10
11
  {
11
12
  provide: TUI_ICON_START,
12
13
  useFactory: () => inject(TUI_COMMON_ICONS).close,
13
14
  },
14
- ], ngImport: i0 }); }
15
+ ], hostDirectives: [{ directive: i1.TuiButton, inputs: ["size", "size"] }], ngImport: i0 }); }
15
16
  }
16
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiButtonClose, decorators: [{
17
18
  type: Directive,
18
19
  args: [{
19
20
  standalone: true,
20
- selector: '[tuiIconButton][tuiButtonClose]',
21
+ selector: '[tuiButtonClose]',
21
22
  providers: [
22
23
  tuiButtonOptionsProvider({ appearance: 'neutral', size: 's' }),
23
24
  {
@@ -25,8 +26,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
25
26
  useFactory: () => inject(TUI_COMMON_ICONS).close,
26
27
  },
27
28
  ],
29
+ hostDirectives: [
30
+ {
31
+ directive: TuiButton,
32
+ inputs: ['size'],
33
+ },
34
+ ],
28
35
  host: {
36
+ tuiIconButton: '',
29
37
  '[style.--t-radius.%]': '100',
38
+ '[attr.type]': '"button"',
30
39
  },
31
40
  }]
32
41
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-directives-button-close.mjs","sources":["../../../projects/kit/directives/button-close/button-close.directive.ts","../../../projects/kit/directives/button-close/taiga-ui-kit-directives-button-close.ts"],"sourcesContent":["import {Directive, inject} from '@angular/core';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS, TUI_ICON_START} from '@taiga-ui/core/tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiIconButton][tuiButtonClose]',\n providers: [\n tuiButtonOptionsProvider({appearance: 'neutral', size: 's'}),\n {\n provide: TUI_ICON_START,\n useFactory: () => inject(TUI_COMMON_ICONS).close,\n },\n ],\n host: {\n '[style.--t-radius.%]': '100',\n },\n})\nexport class TuiButtonClose {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAkBa,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAXZ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,wBAAwB,CAAC,EAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAC,CAAC;AAC5D,YAAA;AACI,gBAAA,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK;AACnD,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAKQ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAd1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,SAAS,EAAE;wBACP,wBAAwB,CAAC,EAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAC,CAAC;AAC5D,wBAAA;AACI,4BAAA,OAAO,EAAE,cAAc;4BACvB,UAAU,EAAE,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK;AACnD,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,sBAAsB,EAAE,KAAK;AAChC,qBAAA;AACJ,iBAAA;;;ACjBD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-button-close.mjs","sources":["../../../projects/kit/directives/button-close/button-close.directive.ts","../../../projects/kit/directives/button-close/taiga-ui-kit-directives-button-close.ts"],"sourcesContent":["import {Directive, inject} from '@angular/core';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {TUI_COMMON_ICONS, TUI_ICON_START} from '@taiga-ui/core/tokens';\n\n@Directive({\n standalone: true,\n selector: '[tuiButtonClose]',\n providers: [\n tuiButtonOptionsProvider({appearance: 'neutral', size: 's'}),\n {\n provide: TUI_ICON_START,\n useFactory: () => inject(TUI_COMMON_ICONS).close,\n },\n ],\n hostDirectives: [\n {\n directive: TuiButton,\n inputs: ['size'],\n },\n ],\n host: {\n tuiIconButton: '',\n '[style.--t-radius.%]': '100',\n '[attr.type]': '\"button\"',\n },\n})\nexport class TuiButtonClose {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MA0Ba,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAnBZ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,WAAA,EAAA,YAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,wBAAwB,CAAC,EAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAC,CAAC;AAC5D,YAAA;AACI,gBAAA,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK;AACnD,aAAA;AACJ,SAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAaQ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAtB1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,SAAS,EAAE;wBACP,wBAAwB,CAAC,EAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAC,CAAC;AAC5D,wBAAA;AACI,4BAAA,OAAO,EAAE,cAAc;4BACvB,UAAU,EAAE,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK;AACnD,yBAAA;AACJ,qBAAA;AACD,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,SAAS;4BACpB,MAAM,EAAE,CAAC,MAAM,CAAC;AACnB,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,aAAa,EAAE,EAAE;AACjB,wBAAA,sBAAsB,EAAE,KAAK;AAC7B,wBAAA,aAAa,EAAE,UAAU;AAC5B,qBAAA;AACJ,iBAAA;;;ACzBD;;AAEG;;;;"}
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Input, Directive } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
2
+ import { InjectionToken, inject, input, Directive } from '@angular/core';
3
+ import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { MutationObserverService, WA_MUTATION_OBSERVER_INIT } from '@ng-web-apis/mutation-observer';
5
5
  import { ResizeObserverService } from '@ng-web-apis/resize-observer';
6
6
  import { tuiZonefree } from '@taiga-ui/cdk/observables';
7
7
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
8
- import { Subject, merge, fromEvent } from 'rxjs';
8
+ import { merge, fromEvent } from 'rxjs';
9
9
  import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
10
10
 
11
11
  const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS = {
@@ -22,15 +22,14 @@ function tuiFluidTypographyOptionsProvider(options) {
22
22
  const STEP = 1 / 16;
23
23
  class TuiFluidTypography {
24
24
  constructor() {
25
- // TODO: refactor to signal inputs after Angular update
26
- this.changes$ = new Subject();
27
25
  this.el = tuiInjectElement();
28
26
  this.options = inject(TUI_FLUID_TYPOGRAPHY_OPTIONS);
29
- this.sub = merge(this.changes$, inject(ResizeObserverService, { self: true }), inject(MutationObserverService, { self: true }), fromEvent(this.el, 'input'))
27
+ this.tuiFluidTypography = input('');
28
+ this.sub = merge(toObservable(this.tuiFluidTypography), inject(ResizeObserverService, { self: true }), inject(MutationObserverService, { self: true }), fromEvent(this.el, 'input'))
30
29
  .pipe(tuiZonefree(), takeUntilDestroyed())
31
30
  .subscribe(() => {
32
- const min = Number(this.tuiFluidTypography[0] || this.options.min);
33
- const max = Number(this.tuiFluidTypography[1] || this.options.max);
31
+ const min = Number(this.tuiFluidTypography()[0] || this.options.min);
32
+ const max = Number(this.tuiFluidTypography()[1] || this.options.max);
34
33
  for (let i = max; i >= min; i -= STEP) {
35
34
  this.el.style.fontSize = `${i}rem`;
36
35
  if (this.el.scrollWidth <= this.el.clientWidth) {
@@ -38,20 +37,16 @@ class TuiFluidTypography {
38
37
  }
39
38
  }
40
39
  });
41
- this.tuiFluidTypography = '';
42
- }
43
- ngOnChanges() {
44
- this.changes$.next();
45
40
  }
46
41
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiFluidTypography, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiFluidTypography, isStandalone: true, selector: "[tuiFluidTypography]", inputs: { tuiFluidTypography: "tuiFluidTypography" }, host: { attributes: { "tuiFluidTypography": "" } }, providers: [
42
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiFluidTypography, isStandalone: true, selector: "[tuiFluidTypography]", inputs: { tuiFluidTypography: { classPropertyName: "tuiFluidTypography", publicName: "tuiFluidTypography", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiFluidTypography": "" } }, providers: [
48
43
  ResizeObserverService,
49
44
  MutationObserverService,
50
45
  {
51
46
  provide: WA_MUTATION_OBSERVER_INIT,
52
47
  useValue: { characterData: true, subtree: true },
53
48
  },
54
- ], usesOnChanges: true, ngImport: i0 }); }
49
+ ], ngImport: i0 }); }
55
50
  }
56
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiFluidTypography, decorators: [{
57
52
  type: Directive,
@@ -68,9 +63,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
68
63
  ],
69
64
  host: { tuiFluidTypography: '' },
70
65
  }]
71
- }], propDecorators: { tuiFluidTypography: [{
72
- type: Input
73
- }] } });
66
+ }] });
74
67
 
75
68
  /**
76
69
  * Generated bundle index. Do not edit.
@@ -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 {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiFluidTypographyOptions {\n readonly min: number;\n readonly max: number;\n}\n\nexport const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS: TuiFluidTypographyOptions = {\n min: 0.625,\n max: 1.25,\n};\n\nexport const TUI_FLUID_TYPOGRAPHY_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_FLUID_TYPOGRAPHY_OPTIONS' : '',\n {\n factory: () => TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiFluidTypographyOptionsProvider(\n options: Partial<TuiFluidTypographyOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_FLUID_TYPOGRAPHY_OPTIONS,\n options,\n TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n );\n}\n","import {Directive, inject, Input, type OnChanges} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Subject} from 'rxjs';\n\nimport {TUI_FLUID_TYPOGRAPHY_OPTIONS} from './fluid-typography.options';\n\nconst STEP = 1 / 16;\n\n@Directive({\n standalone: true,\n selector: '[tuiFluidTypography]',\n providers: [\n ResizeObserverService,\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {characterData: true, subtree: true},\n },\n ],\n host: {tuiFluidTypography: ''},\n})\nexport class TuiFluidTypography implements OnChanges {\n // TODO: refactor to signal inputs after Angular update\n private readonly changes$ = new Subject<void>();\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_FLUID_TYPOGRAPHY_OPTIONS);\n\n protected readonly sub = merge(\n this.changes$,\n inject(ResizeObserverService, {self: true}),\n inject(MutationObserverService, {self: true}),\n fromEvent(this.el, 'input'),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const min = Number(this.tuiFluidTypography[0] || this.options.min);\n const max = Number(this.tuiFluidTypography[1] || this.options.max);\n\n for (let i = max; i >= min; i -= STEP) {\n this.el.style.fontSize = `${i}rem`;\n\n if (this.el.scrollWidth <= this.el.clientWidth) {\n break;\n }\n }\n });\n\n @Input()\n public tuiFluidTypography: readonly [min: number, max: number] | '' = '';\n\n public ngOnChanges(): void {\n this.changes$.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-directives-fluid-typography.mjs","sources":["../../../projects/kit/directives/fluid-typography/fluid-typography.options.ts","../../../projects/kit/directives/fluid-typography/fluid-typography.directive.ts","../../../projects/kit/directives/fluid-typography/taiga-ui-kit-directives-fluid-typography.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiFluidTypographyOptions {\n readonly min: number;\n readonly max: number;\n}\n\nexport const TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS: TuiFluidTypographyOptions = {\n min: 0.625,\n max: 1.25,\n};\n\nexport const TUI_FLUID_TYPOGRAPHY_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_FLUID_TYPOGRAPHY_OPTIONS' : '',\n {\n factory: () => TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiFluidTypographyOptionsProvider(\n options: Partial<TuiFluidTypographyOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_FLUID_TYPOGRAPHY_OPTIONS,\n options,\n TUI_FLUID_TYPOGRAPHY_DEFAULT_OPTIONS,\n );\n}\n","import {Directive, inject, input} from '@angular/core';\nimport {takeUntilDestroyed, toObservable} 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} 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 {\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_FLUID_TYPOGRAPHY_OPTIONS);\n\n public readonly tuiFluidTypography = input<readonly [min: number, max: number] | ''>(\n '',\n );\n\n protected readonly sub = merge(\n toObservable(this.tuiFluidTypography),\n inject(ResizeObserverService, {self: true}),\n inject(MutationObserverService, {self: true}),\n fromEvent(this.el, 'input'),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const min = Number(this.tuiFluidTypography()[0] || this.options.min);\n const max = Number(this.tuiFluidTypography()[1] || this.options.max);\n\n for (let i = max; i >= min; i -= STEP) {\n this.el.style.fontSize = `${i}rem`;\n\n if (this.el.scrollWidth <= this.el.clientWidth) {\n break;\n }\n }\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/kit",
3
- "version": "4.52.0-canary.831274e",
3
+ "version": "4.52.0-canary.91aeb4a",
4
4
  "description": "Taiga UI Angular main components kit",
5
5
  "keywords": [
6
6
  "angular",
@@ -305,22 +305,18 @@
305
305
  "types": "./components/status/index.d.ts",
306
306
  "default": "./fesm2022/taiga-ui-kit-components-status.mjs"
307
307
  },
308
- "./components/switch": {
309
- "types": "./components/switch/index.d.ts",
310
- "default": "./fesm2022/taiga-ui-kit-components-switch.mjs"
311
- },
312
308
  "./components/stepper": {
313
309
  "types": "./components/stepper/index.d.ts",
314
310
  "default": "./fesm2022/taiga-ui-kit-components-stepper.mjs"
315
311
  },
312
+ "./components/switch": {
313
+ "types": "./components/switch/index.d.ts",
314
+ "default": "./fesm2022/taiga-ui-kit-components-switch.mjs"
315
+ },
316
316
  "./components/tabs": {
317
317
  "types": "./components/tabs/index.d.ts",
318
318
  "default": "./fesm2022/taiga-ui-kit-components-tabs.mjs"
319
319
  },
320
- "./components/textarea": {
321
- "types": "./components/textarea/index.d.ts",
322
- "default": "./fesm2022/taiga-ui-kit-components-textarea.mjs"
323
- },
324
320
  "./components/tiles": {
325
321
  "types": "./components/tiles/index.d.ts",
326
322
  "default": "./fesm2022/taiga-ui-kit-components-tiles.mjs"
@@ -329,6 +325,10 @@
329
325
  "types": "./components/toast/index.d.ts",
330
326
  "default": "./fesm2022/taiga-ui-kit-components-toast.mjs"
331
327
  },
328
+ "./components/textarea": {
329
+ "types": "./components/textarea/index.d.ts",
330
+ "default": "./fesm2022/taiga-ui-kit-components-textarea.mjs"
331
+ },
332
332
  "./components/tree": {
333
333
  "types": "./components/tree/index.d.ts",
334
334
  "default": "./fesm2022/taiga-ui-kit-components-tree.mjs"
@@ -377,14 +377,14 @@
377
377
  "types": "./directives/password/index.d.ts",
378
378
  "default": "./fesm2022/taiga-ui-kit-directives-password.mjs"
379
379
  },
380
- "./directives/sensitive": {
381
- "types": "./directives/sensitive/index.d.ts",
382
- "default": "./fesm2022/taiga-ui-kit-directives-sensitive.mjs"
383
- },
384
380
  "./directives/present": {
385
381
  "types": "./directives/present/index.d.ts",
386
382
  "default": "./fesm2022/taiga-ui-kit-directives-present.mjs"
387
383
  },
384
+ "./directives/sensitive": {
385
+ "types": "./directives/sensitive/index.d.ts",
386
+ "default": "./fesm2022/taiga-ui-kit-directives-sensitive.mjs"
387
+ },
388
388
  "./directives/shimmer": {
389
389
  "types": "./directives/shimmer/index.d.ts",
390
390
  "default": "./fesm2022/taiga-ui-kit-directives-shimmer.mjs"