@taiga-ui/kit 4.5.0 → 4.6.0-canary.d8f9586

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 (140) hide show
  1. package/components/badged-content/badged-content.component.d.ts +2 -0
  2. package/components/calendar-range/calendar-range.component.d.ts +1 -2
  3. package/components/confirm/confirm.component.d.ts +1 -1
  4. package/components/files/input-files/input-files.directive.d.ts +4 -3
  5. package/components/input-password/input-password.component.d.ts +3 -0
  6. package/components/input-password/input-password.options.d.ts +12 -0
  7. package/components/preview/preview.component.d.ts +2 -0
  8. package/components/segmented/segmented.component.d.ts +0 -2
  9. package/components/tiles/tile.service.d.ts +1 -1
  10. package/directives/copy/copy.directive.d.ts +17 -0
  11. package/directives/copy/copy.options.d.ts +6 -0
  12. package/directives/copy/index.d.ts +2 -0
  13. package/directives/index.d.ts +2 -0
  14. package/directives/password/index.d.ts +1 -0
  15. package/directives/password/password.directive.d.ts +16 -0
  16. package/directives/password/password.options.d.ts +9 -0
  17. package/esm2022/components/accordion/accordion-item.component.mjs +3 -3
  18. package/esm2022/components/badged-content/badged-content.component.mjs +10 -4
  19. package/esm2022/components/block/block.directive.mjs +2 -2
  20. package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
  21. package/esm2022/components/calendar-month/calendar-month.component.mjs +7 -7
  22. package/esm2022/components/calendar-range/calendar-range.component.mjs +14 -16
  23. package/esm2022/components/carousel/carousel-scroll.directive.mjs +3 -3
  24. package/esm2022/components/carousel/carousel.component.mjs +12 -7
  25. package/esm2022/components/confirm/confirm.component.mjs +6 -5
  26. package/esm2022/components/data-list-wrapper/data-list-group-wrapper.component.mjs +3 -3
  27. package/esm2022/components/data-list-wrapper/data-list-wrapper.component.mjs +3 -3
  28. package/esm2022/components/files/file/file.component.mjs +3 -3
  29. package/esm2022/components/files/files/files.component.mjs +3 -3
  30. package/esm2022/components/files/input-files/input-files.component.mjs +5 -5
  31. package/esm2022/components/files/input-files/input-files.content.mjs +4 -3
  32. package/esm2022/components/files/input-files/input-files.directive.mjs +7 -4
  33. package/esm2022/components/filter/filter.component.mjs +4 -4
  34. package/esm2022/components/input-inline/input-inline.component.mjs +4 -4
  35. package/esm2022/components/input-password/input-password.component.mjs +8 -5
  36. package/esm2022/components/input-password/input-password.options.mjs +10 -1
  37. package/esm2022/components/input-phone-international/input-phone-international.component.mjs +3 -3
  38. package/esm2022/components/items-with-more/items-with-more.component.mjs +3 -3
  39. package/esm2022/components/line-clamp/line-clamp.component.mjs +4 -4
  40. package/esm2022/components/pagination/pagination.component.mjs +3 -3
  41. package/esm2022/components/pdf-viewer/pdf-viewer.component.mjs +5 -5
  42. package/esm2022/components/preview/pagination/preview-pagination.component.mjs +3 -3
  43. package/esm2022/components/preview/preview-dialog/preview-dialog.component.mjs +3 -3
  44. package/esm2022/components/preview/preview.component.mjs +10 -8
  45. package/esm2022/components/preview/zoom/preview-zoom.component.mjs +8 -8
  46. package/esm2022/components/push/push-alert.component.mjs +6 -6
  47. package/esm2022/components/push/push.component.mjs +3 -3
  48. package/esm2022/components/radio-list/radio-list.component.mjs +6 -6
  49. package/esm2022/components/range/range.component.mjs +5 -5
  50. package/esm2022/components/rating/rating.component.mjs +3 -3
  51. package/esm2022/components/segmented/segmented.component.mjs +13 -13
  52. package/esm2022/components/slider/helpers/slider-readonly.directive.mjs +4 -4
  53. package/esm2022/components/tabs/tabs-with-more.component.mjs +6 -4
  54. package/esm2022/components/tiles/tile.service.mjs +3 -2
  55. package/esm2022/components/tree/components/tree/tree.component.mjs +7 -7
  56. package/esm2022/components/tree/components/tree-item/tree-item.component.mjs +3 -3
  57. package/esm2022/components/tree/components/tree-item-content/tree-item-content.component.mjs +5 -5
  58. package/esm2022/directives/copy/copy.directive.mjs +71 -0
  59. package/esm2022/directives/copy/copy.options.mjs +5 -0
  60. package/esm2022/directives/copy/index.mjs +3 -0
  61. package/esm2022/directives/copy/taiga-ui-kit-directives-copy.mjs +5 -0
  62. package/esm2022/directives/icon-badge/icon-badge.directive.mjs +2 -2
  63. package/esm2022/directives/index.mjs +3 -1
  64. package/esm2022/directives/password/index.mjs +2 -0
  65. package/esm2022/directives/password/password.directive.mjs +71 -0
  66. package/esm2022/directives/password/password.options.mjs +8 -0
  67. package/esm2022/directives/password/taiga-ui-kit-directives-password.mjs +5 -0
  68. package/esm2022/utils/toggle-day.mjs +2 -2
  69. package/fesm2022/taiga-ui-kit-components-accordion.mjs +2 -2
  70. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-kit-components-badged-content.mjs +9 -3
  72. package/fesm2022/taiga-ui-kit-components-badged-content.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-kit-components-block.mjs +2 -2
  74. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +3 -3
  76. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +7 -7
  78. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs +14 -16
  80. package/fesm2022/taiga-ui-kit-components-calendar-range.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-kit-components-carousel.mjs +14 -9
  82. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-kit-components-confirm.mjs +4 -4
  84. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs +5 -5
  86. package/fesm2022/taiga-ui-kit-components-data-list-wrapper.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-kit-components-files.mjs +15 -11
  88. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-kit-components-filter.mjs +3 -3
  90. package/fesm2022/taiga-ui-kit-components-filter.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-kit-components-input-inline.mjs +4 -4
  92. package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-kit-components-input-password.mjs +16 -4
  94. package/fesm2022/taiga-ui-kit-components-input-password.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +2 -2
  96. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +3 -3
  98. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +3 -3
  100. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-kit-components-pagination.mjs +3 -3
  102. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs +4 -4
  104. package/fesm2022/taiga-ui-kit-components-pdf-viewer.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-kit-components-preview-preview-dialog.mjs +2 -2
  106. package/fesm2022/taiga-ui-kit-components-preview-preview-dialog.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-kit-components-preview.mjs +21 -19
  108. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  109. package/fesm2022/taiga-ui-kit-components-push.mjs +8 -8
  110. package/fesm2022/taiga-ui-kit-components-push.mjs.map +1 -1
  111. package/fesm2022/taiga-ui-kit-components-radio-list.mjs +5 -5
  112. package/fesm2022/taiga-ui-kit-components-radio-list.mjs.map +1 -1
  113. package/fesm2022/taiga-ui-kit-components-range.mjs +4 -4
  114. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  115. package/fesm2022/taiga-ui-kit-components-rating.mjs +2 -2
  116. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  117. package/fesm2022/taiga-ui-kit-components-segmented.mjs +12 -12
  118. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  119. package/fesm2022/taiga-ui-kit-components-slider.mjs +3 -3
  120. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  121. package/fesm2022/taiga-ui-kit-components-tabs.mjs +5 -3
  122. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  123. package/fesm2022/taiga-ui-kit-components-tiles.mjs +2 -1
  124. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  125. package/fesm2022/taiga-ui-kit-components-tree.mjs +13 -13
  126. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  127. package/fesm2022/taiga-ui-kit-directives-copy.mjs +81 -0
  128. package/fesm2022/taiga-ui-kit-directives-copy.mjs.map +1 -0
  129. package/fesm2022/taiga-ui-kit-directives-icon-badge.mjs +2 -2
  130. package/fesm2022/taiga-ui-kit-directives-icon-badge.mjs.map +1 -1
  131. package/fesm2022/taiga-ui-kit-directives-password.mjs +84 -0
  132. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -0
  133. package/fesm2022/taiga-ui-kit-directives.mjs +2 -0
  134. package/fesm2022/taiga-ui-kit-directives.mjs.map +1 -1
  135. package/fesm2022/taiga-ui-kit-utils.mjs +1 -1
  136. package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
  137. package/package.json +517 -505
  138. package/styles/components/block.less +1 -4
  139. package/styles/components/compass.less +2 -2
  140. package/utils/toggle-day.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-confirm.mjs","sources":["../../../projects/kit/components/confirm/confirm.component.ts","../../../projects/kit/components/confirm/confirm.template.html","../../../projects/kit/components/confirm/confirm.service.ts","../../../projects/kit/components/confirm/taiga-ui-kit-components-confirm.ts"],"sourcesContent":["import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport type {TuiDialogContext} from '@taiga-ui/core/components/dialog';\nimport {TUI_CONFIRM_WORDS} from '@taiga-ui/kit/tokens';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {\n POLYMORPHEUS_CONTEXT,\n PolymorpheusComponent,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n} from '@taiga-ui/polymorpheus';\n\nexport interface TuiConfirmData {\n readonly content?: PolymorpheusContent;\n readonly no?: string;\n readonly yes?: string;\n readonly appearance?: string;\n}\n\n@Component({\n standalone: true,\n selector: 'tui-confirm',\n imports: [\n CommonModule,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiButton,\n TuiAutoFocus,\n ],\n templateUrl: './confirm.template.html',\n styleUrls: ['./confirm.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiConfirm {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly words$ = inject(TUI_CONFIRM_WORDS);\n\n protected readonly context =\n inject<TuiDialogContext<boolean, TuiConfirmData | undefined>>(\n POLYMORPHEUS_CONTEXT,\n );\n\n protected get appearance(): string {\n return this.isMobile ? 'secondary' : 'flat';\n }\n}\n\nexport const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);\n","<div\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></div>\n<div\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</div>\n","import {inject, Injectable} from '@angular/core';\nimport type {TuiDialogOptions} from '@taiga-ui/core/components/dialog';\nimport {TuiDialogService} from '@taiga-ui/core/components/dialog';\nimport type {Observable} from 'rxjs';\nimport {defer, of} from 'rxjs';\n\nimport type {TuiConfirmData} from './confirm.component';\nimport {TUI_CONFIRM} from './confirm.component';\n\n@Injectable()\nexport class TuiConfirmService {\n private readonly dialogs = inject(TuiDialogService);\n private dirty = false;\n\n public markAsDirty(): void {\n this.dirty = true;\n }\n\n public markAsPristine(): void {\n this.dirty = false;\n }\n\n public withConfirm(\n options: Partial<TuiDialogOptions<TuiConfirmData>>,\n ): Observable<boolean> {\n return defer(() =>\n this.dirty\n ? this.dialogs.open<boolean>(TUI_CONFIRM, {\n size: 's',\n ...options,\n })\n : of(true),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAsBA,MAca,UAAU,CAAA;AAdvB,IAAA,WAAA,GAAA;AAeqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEnC,QAAA,IAAA,CAAA,OAAO,GACtB,MAAM,CACF,oBAAoB,CACvB,CAAC;AAKT,KAAA;AAHG,IAAA,IAAc,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;KAC/C;+GAXQ,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,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpCvB,owBA+BA,EDLQ,MAAA,EAAA,CAAA,wQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,wLACZ,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAElB,SAAS,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAMP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAdtB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,aAAa,EACd,OAAA,EAAA;wBACL,YAAY;wBACZ,kBAAkB;wBAClB,oBAAoB;wBACpB,SAAS;wBACT,YAAY;qBACf,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,owBAAA,EAAA,MAAA,EAAA,CAAA,wQAAA,CAAA,EAAA,CAAA;;MAgBtC,WAAW,GAAG,IAAI,qBAAqB,CAAC,UAAU;;AEzC/D,MACa,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5C,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AAsBzB,KAAA;IApBU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACrB;IAEM,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AAEM,IAAA,WAAW,CACd,OAAkD,EAAA;AAElD,QAAA,OAAO,KAAK,CAAC,MACT,IAAI,CAAC,KAAK;cACJ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAU,WAAW,EAAE;AACpC,gBAAA,IAAI,EAAE,GAAG;AACT,gBAAA,GAAG,OAAO;aACb,CAAC;AACJ,cAAE,EAAE,CAAC,IAAI,CAAC,CACjB,CAAC;KACL;+GAvBQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;ACTX;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-confirm.mjs","sources":["../../../projects/kit/components/confirm/confirm.component.ts","../../../projects/kit/components/confirm/confirm.template.html","../../../projects/kit/components/confirm/confirm.service.ts","../../../projects/kit/components/confirm/taiga-ui-kit-components-confirm.ts"],"sourcesContent":["import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport type {TuiDialogContext} from '@taiga-ui/core/components/dialog';\nimport {TUI_CONFIRM_WORDS} from '@taiga-ui/kit/tokens';\nimport {injectContext, type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {\n PolymorpheusComponent,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n} from '@taiga-ui/polymorpheus';\n\nexport interface TuiConfirmData {\n readonly content?: PolymorpheusContent;\n readonly no?: string;\n readonly yes?: string;\n readonly appearance?: string;\n}\n\n@Component({\n standalone: true,\n selector: 'tui-confirm',\n imports: [\n CommonModule,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiAutoFocus,\n TuiButton,\n ],\n templateUrl: './confirm.template.html',\n styleUrls: ['./confirm.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiConfirm {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly words$ = inject(TUI_CONFIRM_WORDS);\n\n protected readonly context =\n injectContext<TuiDialogContext<boolean, TuiConfirmData | undefined>>();\n\n protected get appearance(): string {\n return this.isMobile ? 'secondary' : 'flat';\n }\n}\n\nexport const TUI_CONFIRM = new PolymorpheusComponent(TuiConfirm);\n","<div\n *polymorpheusOutlet=\"context.data?.content as text\"\n class=\"t-content\"\n [innerHTML]=\"text\"\n></div>\n<div\n *ngIf=\"words$ | async as words\"\n class=\"t-buttons\"\n>\n <button\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n (click)=\"context.completeWith(false)\"\n >\n {{ context.data?.no || words.no }}\n </button>\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"context.data?.appearance || 'primary'\"\n (click)=\"context.completeWith(true)\"\n >\n {{ context.data?.yes || words.yes }}\n </button>\n</div>\n","import {inject, Injectable} from '@angular/core';\nimport type {TuiDialogOptions} from '@taiga-ui/core/components/dialog';\nimport {TuiDialogService} from '@taiga-ui/core/components/dialog';\nimport type {Observable} from 'rxjs';\nimport {defer, of} from 'rxjs';\n\nimport type {TuiConfirmData} from './confirm.component';\nimport {TUI_CONFIRM} from './confirm.component';\n\n@Injectable()\nexport class TuiConfirmService {\n private readonly dialogs = inject(TuiDialogService);\n private dirty = false;\n\n public markAsDirty(): void {\n this.dirty = true;\n }\n\n public markAsPristine(): void {\n this.dirty = false;\n }\n\n public withConfirm(\n options: Partial<TuiDialogOptions<TuiConfirmData>>,\n ): Observable<boolean> {\n return defer(() =>\n this.dirty\n ? this.dialogs.open<boolean>(TUI_CONFIRM, {\n size: 's',\n ...options,\n })\n : of(true),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAqBA,MAca,UAAU,CAAA;AAdvB,IAAA,WAAA,GAAA;AAeqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEnC,IAAO,CAAA,OAAA,GACtB,aAAa,EAAyD,CAAC;AAK9E,KAAA;AAHG,IAAA,IAAc,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;KAC/C;+GATQ,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,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnCvB,owBA+BA,EDNQ,MAAA,EAAA,CAAA,wQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,wLACZ,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAElB,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,SAAS,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAMJ,UAAU,EAAA,UAAA,EAAA,CAAA;kBAdtB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,aAAa,EACd,OAAA,EAAA;wBACL,YAAY;wBACZ,kBAAkB;wBAClB,oBAAoB;wBACpB,YAAY;wBACZ,SAAS;qBACZ,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,owBAAA,EAAA,MAAA,EAAA,CAAA,wQAAA,CAAA,EAAA,CAAA;;MActC,WAAW,GAAG,IAAI,qBAAqB,CAAC,UAAU;;AEtC/D,MACa,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5C,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AAsBzB,KAAA;IApBU,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACrB;IAEM,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AAEM,IAAA,WAAW,CACd,OAAkD,EAAA;AAElD,QAAA,OAAO,KAAK,CAAC,MACT,IAAI,CAAC,KAAK;cACJ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAU,WAAW,EAAE;AACpC,gBAAA,IAAI,EAAE,GAAG;AACT,gBAAA,GAAG,OAAO;aACb,CAAC;AACJ,cAAE,EAAE,CAAC,IAAI,CAAC,CACjB,CAAC;KACL;+GAvBQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;ACTX;;AAEG;;;;"}
@@ -1,4 +1,4 @@
1
- import { NgIf, NgForOf } from '@angular/common';
1
+ import { NgForOf, NgIf } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { inject, EventEmitter, Component, ChangeDetectionStrategy, ViewChildren, forwardRef, Input, Output } from '@angular/core';
4
4
  import { TuiElement } from '@taiga-ui/cdk/directives/element';
@@ -34,11 +34,11 @@ class TuiDataListWrapperComponent {
34
34
  return items;
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDataListWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDataListWrapperComponent, isStandalone: true, selector: "tui-data-list-wrapper:not([labels])", inputs: { items: "items", disabledItemHandler: "disabledItemHandler", emptyContent: "emptyContent", size: "size", itemContent: "itemContent" }, outputs: { itemClick: "itemClick" }, providers: [tuiAsDataListAccessor(TuiDataListWrapperComponent)], viewQueries: [{ propertyName: "optionsQuery", predicate: i0.forwardRef(function () { return TuiOption; }), descendants: true }], ngImport: i0, template: "<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <button\n *ngFor=\"let item of $cast(items)\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <span class=\"t-content\">\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </span>\n </button>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader\n automation-id=\"tui-data-list-wrapper__loader\"\n class=\"t-loader\"\n />\n</ng-template>\n", styles: [":host{display:block}.t-content{flex:1}.t-loader{margin:.75rem 0}\n"], dependencies: [{ kind: "component", type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "component", type: i1.TuiOption, selector: "button[tuiOption], a[tuiOption], label[tuiOption]", inputs: ["disabled", "value"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: TuiElement, selector: "[tuiElement]", exportAs: ["elementRef"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDataListWrapperComponent, isStandalone: true, selector: "tui-data-list-wrapper:not([labels])", inputs: { items: "items", disabledItemHandler: "disabledItemHandler", emptyContent: "emptyContent", size: "size", itemContent: "itemContent" }, outputs: { itemClick: "itemClick" }, providers: [tuiAsDataListAccessor(TuiDataListWrapperComponent)], viewQueries: [{ propertyName: "optionsQuery", predicate: i0.forwardRef(function () { return TuiOption; }), descendants: true }], ngImport: i0, template: "<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <button\n *ngFor=\"let item of $cast(items)\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n type=\"button\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <span class=\"t-content\">\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </span>\n </button>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader\n automation-id=\"tui-data-list-wrapper__loader\"\n class=\"t-loader\"\n />\n</ng-template>\n", styles: [":host{display:block}.t-content{flex:1}.t-loader{margin:.75rem 0}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "component", type: i1.TuiOption, selector: "button[tuiOption], a[tuiOption], label[tuiOption]", inputs: ["disabled", "value"] }, { kind: "directive", type: TuiElement, selector: "[tuiElement]", exportAs: ["elementRef"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDataListWrapperComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ standalone: true, selector: 'tui-data-list-wrapper:not([labels])', imports: [TuiDataList, NgIf, NgForOf, TuiElement, TuiLoader, PolymorpheusOutlet], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsDataListAccessor(TuiDataListWrapperComponent)], template: "<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <button\n *ngFor=\"let item of $cast(items)\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <span class=\"t-content\">\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </span>\n </button>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader\n automation-id=\"tui-data-list-wrapper__loader\"\n class=\"t-loader\"\n />\n</ng-template>\n", styles: [":host{display:block}.t-content{flex:1}.t-loader{margin:.75rem 0}\n"] }]
41
+ args: [{ standalone: true, selector: 'tui-data-list-wrapper:not([labels])', imports: [NgForOf, NgIf, PolymorpheusOutlet, TuiDataList, TuiElement, TuiLoader], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsDataListAccessor(TuiDataListWrapperComponent)], template: "<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <button\n *ngFor=\"let item of $cast(items)\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n type=\"button\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <span class=\"t-content\">\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </span>\n </button>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader\n automation-id=\"tui-data-list-wrapper__loader\"\n class=\"t-loader\"\n />\n</ng-template>\n", styles: [":host{display:block}.t-content{flex:1}.t-loader{margin:.75rem 0}\n"] }]
42
42
  }], propDecorators: { optionsQuery: [{
43
43
  type: ViewChildren,
44
44
  args: [forwardRef(() => TuiOption)]
@@ -62,11 +62,11 @@ class TuiDataListGroupWrapperComponent extends TuiDataListWrapperComponent {
62
62
  this.labels = [];
63
63
  }
64
64
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDataListGroupWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDataListGroupWrapperComponent, isStandalone: true, selector: "tui-data-list-wrapper[labels]", inputs: { labels: "labels" }, providers: [tuiAsDataListAccessor(TuiDataListGroupWrapperComponent)], usesInheritance: true, ngImport: i0, template: "<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <tui-opt-group\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n >\n <button\n *ngFor=\"let item of group\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </button>\n </tui-opt-group>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader class=\"t-loader\" />\n</ng-template>\n", styles: [":host{display:block}.t-content{flex:1}.t-loader{margin:.75rem 0}\n"], dependencies: [{ kind: "component", type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "component", type: i1.TuiOption, selector: "button[tuiOption], a[tuiOption], label[tuiOption]", inputs: ["disabled", "value"] }, { kind: "directive", type: i1.TuiOptGroup, selector: "tui-opt-group", inputs: ["label"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: TuiElement, selector: "[tuiElement]", exportAs: ["elementRef"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiDataListGroupWrapperComponent, isStandalone: true, selector: "tui-data-list-wrapper[labels]", inputs: { labels: "labels" }, providers: [tuiAsDataListAccessor(TuiDataListGroupWrapperComponent)], usesInheritance: true, ngImport: i0, template: "<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <tui-opt-group\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n >\n <button\n *ngFor=\"let item of group\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n type=\"button\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </button>\n </tui-opt-group>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader class=\"t-loader\" />\n</ng-template>\n", styles: [":host{display:block}.t-content{flex:1}.t-loader{margin:.75rem 0}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "component", type: i1.TuiOption, selector: "button[tuiOption], a[tuiOption], label[tuiOption]", inputs: ["disabled", "value"] }, { kind: "directive", type: i1.TuiOptGroup, selector: "tui-opt-group", inputs: ["label"] }, { kind: "directive", type: TuiElement, selector: "[tuiElement]", exportAs: ["elementRef"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
66
66
  }
67
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDataListGroupWrapperComponent, decorators: [{
68
68
  type: Component,
69
- args: [{ standalone: true, selector: 'tui-data-list-wrapper[labels]', imports: [TuiDataList, NgIf, NgForOf, TuiElement, PolymorpheusOutlet, TuiLoader], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsDataListAccessor(TuiDataListGroupWrapperComponent)], template: "<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <tui-opt-group\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n >\n <button\n *ngFor=\"let item of group\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </button>\n </tui-opt-group>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader class=\"t-loader\" />\n</ng-template>\n", styles: [":host{display:block}.t-content{flex:1}.t-loader{margin:.75rem 0}\n"] }]
69
+ args: [{ standalone: true, selector: 'tui-data-list-wrapper[labels]', imports: [NgForOf, NgIf, PolymorpheusOutlet, TuiDataList, TuiElement, TuiLoader], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsDataListAccessor(TuiDataListGroupWrapperComponent)], template: "<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <tui-opt-group\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n >\n <button\n *ngFor=\"let item of group\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n type=\"button\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </button>\n </tui-opt-group>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader class=\"t-loader\" />\n</ng-template>\n", styles: [":host{display:block}.t-content{flex:1}.t-loader{margin:.75rem 0}\n"] }]
70
70
  }], propDecorators: { labels: [{
71
71
  type: Input
72
72
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-data-list-wrapper.mjs","sources":["../../../projects/kit/components/data-list-wrapper/data-list-wrapper.component.ts","../../../projects/kit/components/data-list-wrapper/data-list-wrapper.template.html","../../../projects/kit/components/data-list-wrapper/data-list-group-wrapper.component.ts","../../../projects/kit/components/data-list-wrapper/data-list-group-wrapper.template.html","../../../projects/kit/components/data-list-wrapper/data-list-wrapper.module.ts","../../../projects/kit/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.ts"],"sourcesContent":["import {NgForOf, NgIf} from '@angular/common';\nimport type {ElementRef, QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n Output,\n ViewChildren,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiElement} from '@taiga-ui/cdk/directives/element';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDataListAccessor,\n TuiDataList,\n tuiInjectDataListSize,\n TuiOption,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport type {TuiValueContentContext} from '@taiga-ui/core/types';\nimport type {TuiItemsHandlers} from '@taiga-ui/kit/tokens';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/kit/tokens';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'tui-data-list-wrapper:not([labels])',\n imports: [TuiDataList, NgIf, NgForOf, TuiElement, TuiLoader, PolymorpheusOutlet],\n templateUrl: './data-list-wrapper.template.html',\n styleUrls: ['./data-list-wrapper.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsDataListAccessor(TuiDataListWrapperComponent)],\n})\nexport class TuiDataListWrapperComponent<T, K = T> {\n private readonly itemsHandlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n\n @ViewChildren(forwardRef(() => TuiOption))\n protected readonly optionsQuery: QueryList<TuiOption<T>> = EMPTY_QUERY;\n\n @Input()\n public items: readonly K[] | null = [];\n\n @Input()\n public disabledItemHandler: TuiItemsHandlers<T>['disabledItemHandler'] =\n this.itemsHandlers.disabledItemHandler;\n\n @Input()\n public emptyContent: PolymorpheusContent;\n\n @Input()\n public size = tuiInjectDataListSize();\n\n @Output()\n public readonly itemClick = new EventEmitter<T>();\n\n @Input()\n public itemContent: PolymorpheusContent<TuiValueContentContext<T>> = ({$implicit}) =>\n this.itemsHandlers.stringify($implicit);\n\n public getContext(\n $implicit: T,\n {nativeElement}: ElementRef<HTMLElement>,\n ): TuiValueContentContext<T> {\n return {$implicit, active: tuiIsNativeFocused(nativeElement)};\n }\n\n public getOptions(includeDisabled = false): readonly T[] {\n return this.optionsQuery\n .filter(({disabled}) => includeDisabled || !disabled)\n .map(({value}) => value)\n .filter(tuiIsPresent);\n }\n\n protected $cast(items: readonly K[]): readonly T[] {\n return items as unknown as readonly T[];\n }\n}\n","<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <button\n *ngFor=\"let item of $cast(items)\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <span class=\"t-content\">\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </span>\n </button>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader\n automation-id=\"tui-data-list-wrapper__loader\"\n class=\"t-loader\"\n />\n</ng-template>\n","import {NgForOf, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {TuiElement} from '@taiga-ui/cdk/directives/element';\nimport {tuiAsDataListAccessor, TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiDataListWrapperComponent} from './data-list-wrapper.component';\n\n@Component({\n standalone: true,\n selector: 'tui-data-list-wrapper[labels]',\n imports: [TuiDataList, NgIf, NgForOf, TuiElement, PolymorpheusOutlet, TuiLoader],\n templateUrl: './data-list-group-wrapper.template.html',\n styleUrls: ['./data-list-wrapper.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsDataListAccessor(TuiDataListGroupWrapperComponent)],\n})\nexport class TuiDataListGroupWrapperComponent<T> extends TuiDataListWrapperComponent<\n T,\n T[]\n> {\n @Input()\n public labels: readonly string[] = [];\n}\n","<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <tui-opt-group\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n >\n <button\n *ngFor=\"let item of group\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </button>\n </tui-opt-group>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader class=\"t-loader\" />\n</ng-template>\n","import {TuiDataListDirective} from '@taiga-ui/core/components/data-list';\n\nimport {TuiDataListGroupWrapperComponent} from './data-list-group-wrapper.component';\nimport {TuiDataListWrapperComponent} from './data-list-wrapper.component';\n\nexport const TuiDataListWrapper = [\n TuiDataListWrapperComponent,\n TuiDataListGroupWrapperComponent,\n TuiDataListDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AA6BA,MASa,2BAA2B,CAAA;AATxC,IAAA,WAAA,GAAA;AAUqB,QAAA,IAAA,CAAA,aAAa,GAAwB,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAG9D,IAAY,CAAA,YAAA,GAA4B,WAAW,CAAC;QAGhE,IAAK,CAAA,KAAA,GAAwB,EAAE,CAAC;AAGhC,QAAA,IAAA,CAAA,mBAAmB,GACtB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;QAMpC,IAAI,CAAA,IAAA,GAAG,qBAAqB,EAAE,CAAC;AAGtB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAK,CAAC;AAG3C,QAAA,IAAA,CAAA,WAAW,GAAmD,CAAC,EAAC,SAAS,EAAC,KAC7E,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAmB/C,KAAA;AAjBU,IAAA,UAAU,CACb,SAAY,EACZ,EAAC,aAAa,EAA0B,EAAA;QAExC,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAAC,CAAC;KACjE;IAEM,UAAU,CAAC,eAAe,GAAG,KAAK,EAAA;QACrC,OAAO,IAAI,CAAC,YAAY;AACnB,aAAA,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAC,KAAK,eAAe,IAAI,CAAC,QAAQ,CAAC;aACpD,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,KAAK,KAAK,CAAC;aACvB,MAAM,CAAC,YAAY,CAAC,CAAC;KAC7B;AAES,IAAA,KAAK,CAAC,KAAmB,EAAA;AAC/B,QAAA,OAAO,KAAgC,CAAC;KAC3C;+GA1CQ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAFzB,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,CAAC,8FAKhC,SAAS,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzC5C,i0BA4BA,EDI2B,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,OAAO,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAE,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,iIAAE,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAMtE,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBATvC,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,qCAAqC,EAAA,OAAA,EACtC,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAA,eAAA,EAG/D,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,qBAAqB,CAAA,2BAAA,CAA6B,CAAC,EAAA,QAAA,EAAA,i0BAAA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,CAAA;8BAM5C,YAAY,EAAA,CAAA;sBAD9B,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,SAAS,CAAC,CAAA;gBAIlC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAKC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAIU,SAAS,EAAA,CAAA;sBADxB,MAAM;gBAIA,WAAW,EAAA,CAAA;sBADjB,KAAK;;;AEnDV,MASa,gCAAoC,SAAQ,2BAGxD,CAAA;AAZD,IAAA,WAAA,GAAA;;QAcW,IAAM,CAAA,MAAA,GAAsB,EAAE,CAAC;AACzC,KAAA;+GANY,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,0GAF9B,CAAC,qBAAqB,CAAC,gCAAgC,CAAC,CAAC,EChBxE,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,w3BA4BA,EDhB2B,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,OAAO,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAE,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,8HAAE,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAMtE,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAT5C,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,+BAA+B,EAAA,OAAA,EAChC,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAA,eAAA,EAG/D,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,qBAAqB,CAAA,gCAAA,CAAkC,CAAC,EAAA,QAAA,EAAA,w3BAAA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,CAAA;8BAO7D,MAAM,EAAA,CAAA;sBADZ,KAAK;;;AEjBG,MAAA,kBAAkB,GAAG;IAC9B,2BAA2B;IAC3B,gCAAgC;IAChC,oBAAoB;;;ACRxB;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-data-list-wrapper.mjs","sources":["../../../projects/kit/components/data-list-wrapper/data-list-wrapper.component.ts","../../../projects/kit/components/data-list-wrapper/data-list-wrapper.template.html","../../../projects/kit/components/data-list-wrapper/data-list-group-wrapper.component.ts","../../../projects/kit/components/data-list-wrapper/data-list-group-wrapper.template.html","../../../projects/kit/components/data-list-wrapper/data-list-wrapper.module.ts","../../../projects/kit/components/data-list-wrapper/taiga-ui-kit-components-data-list-wrapper.ts"],"sourcesContent":["import {NgForOf, NgIf} from '@angular/common';\nimport type {ElementRef, QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n Output,\n ViewChildren,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiElement} from '@taiga-ui/cdk/directives/element';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n tuiAsDataListAccessor,\n TuiDataList,\n tuiInjectDataListSize,\n TuiOption,\n} from '@taiga-ui/core/components/data-list';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport type {TuiValueContentContext} from '@taiga-ui/core/types';\nimport type {TuiItemsHandlers} from '@taiga-ui/kit/tokens';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/kit/tokens';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'tui-data-list-wrapper:not([labels])',\n imports: [NgForOf, NgIf, PolymorpheusOutlet, TuiDataList, TuiElement, TuiLoader],\n templateUrl: './data-list-wrapper.template.html',\n styleUrls: ['./data-list-wrapper.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsDataListAccessor(TuiDataListWrapperComponent)],\n})\nexport class TuiDataListWrapperComponent<T, K = T> {\n private readonly itemsHandlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n\n @ViewChildren(forwardRef(() => TuiOption))\n protected readonly optionsQuery: QueryList<TuiOption<T>> = EMPTY_QUERY;\n\n @Input()\n public items: readonly K[] | null = [];\n\n @Input()\n public disabledItemHandler: TuiItemsHandlers<T>['disabledItemHandler'] =\n this.itemsHandlers.disabledItemHandler;\n\n @Input()\n public emptyContent: PolymorpheusContent;\n\n @Input()\n public size = tuiInjectDataListSize();\n\n @Output()\n public readonly itemClick = new EventEmitter<T>();\n\n @Input()\n public itemContent: PolymorpheusContent<TuiValueContentContext<T>> = ({$implicit}) =>\n this.itemsHandlers.stringify($implicit);\n\n public getContext(\n $implicit: T,\n {nativeElement}: ElementRef<HTMLElement>,\n ): TuiValueContentContext<T> {\n return {$implicit, active: tuiIsNativeFocused(nativeElement)};\n }\n\n public getOptions(includeDisabled = false): readonly T[] {\n return this.optionsQuery\n .filter(({disabled}) => includeDisabled || !disabled)\n .map(({value}) => value)\n .filter(tuiIsPresent);\n }\n\n protected $cast(items: readonly K[]): readonly T[] {\n return items as unknown as readonly T[];\n }\n}\n","<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <button\n *ngFor=\"let item of $cast(items)\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n type=\"button\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <span class=\"t-content\">\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </span>\n </button>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader\n automation-id=\"tui-data-list-wrapper__loader\"\n class=\"t-loader\"\n />\n</ng-template>\n","import {NgForOf, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {TuiElement} from '@taiga-ui/cdk/directives/element';\nimport {tuiAsDataListAccessor, TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiDataListWrapperComponent} from './data-list-wrapper.component';\n\n@Component({\n standalone: true,\n selector: 'tui-data-list-wrapper[labels]',\n imports: [NgForOf, NgIf, PolymorpheusOutlet, TuiDataList, TuiElement, TuiLoader],\n templateUrl: './data-list-group-wrapper.template.html',\n styleUrls: ['./data-list-wrapper.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsDataListAccessor(TuiDataListGroupWrapperComponent)],\n})\nexport class TuiDataListGroupWrapperComponent<T> extends TuiDataListWrapperComponent<\n T,\n T[]\n> {\n @Input()\n public labels: readonly string[] = [];\n}\n","<tui-data-list\n *ngIf=\"items; else loading\"\n [emptyContent]=\"emptyContent\"\n [size]=\"size\"\n>\n <tui-opt-group\n *ngFor=\"let group of items; let index = index\"\n [label]=\"labels[index]\"\n >\n <button\n *ngFor=\"let item of group\"\n #elementRef=\"elementRef\"\n automation-id=\"tui-data-list-wrapper__option\"\n tuiElement\n tuiOption\n type=\"button\"\n [disabled]=\"disabledItemHandler(item)\"\n [value]=\"item\"\n (click)=\"itemClick.emit(item)\"\n >\n <ng-container *polymorpheusOutlet=\"itemContent as text; context: getContext(item, elementRef)\">\n {{ text }}\n </ng-container>\n </button>\n </tui-opt-group>\n</tui-data-list>\n<ng-template #loading>\n <tui-loader class=\"t-loader\" />\n</ng-template>\n","import {TuiDataListDirective} from '@taiga-ui/core/components/data-list';\n\nimport {TuiDataListGroupWrapperComponent} from './data-list-group-wrapper.component';\nimport {TuiDataListWrapperComponent} from './data-list-wrapper.component';\n\nexport const TuiDataListWrapper = [\n TuiDataListWrapperComponent,\n TuiDataListGroupWrapperComponent,\n TuiDataListDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import * as i1 from '@taiga-ui/core/directives/appearance';
13
13
  import { tuiAppearanceOptionsProvider, TuiAppearance, TuiWithAppearance } from '@taiga-ui/core/directives/appearance';
14
14
  import { TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
15
15
  import { TUI_DIGITAL_INFORMATION_UNITS, TUI_FILE_TEXTS, TUI_HIDE_TEXT, TUI_SHOW_ALL_TEXT, TUI_INPUT_FILE_TEXTS } from '@taiga-ui/kit/tokens';
16
- import { PolymorpheusOutlet, PolymorpheusTemplate, POLYMORPHEUS_CONTEXT, PolymorpheusComponent } from '@taiga-ui/polymorpheus';
16
+ import { PolymorpheusOutlet, PolymorpheusTemplate, injectContext, PolymorpheusComponent } from '@taiga-ui/polymorpheus';
17
17
  import { map, of, combineLatest, timer, switchMap, filter } from 'rxjs';
18
18
  import { coerceArray } from '@angular/cdk/coercion';
19
19
  import { tuiRound } from '@taiga-ui/cdk/utils/math';
@@ -25,6 +25,8 @@ import { tuiGroupOptionsProvider, TuiGroup } from '@taiga-ui/core/directives/gro
25
25
  import { TuiLink } from '@taiga-ui/core/components/link';
26
26
  import { TuiBreakpointService } from '@taiga-ui/core/services';
27
27
  import { TuiControl, tuiAsControl } from '@taiga-ui/cdk/classes';
28
+ import * as i1$3 from '@taiga-ui/cdk/directives/native-validator';
29
+ import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator';
28
30
  import { tuiControlValue } from '@taiga-ui/cdk/observables';
29
31
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
30
32
  import { Validators, FormControl } from '@angular/forms';
@@ -176,7 +178,7 @@ class TuiFile {
176
178
  return `.${file.name.split('.').pop()}` || '';
177
179
  }
178
180
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFile, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
179
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiFile, isStandalone: true, selector: "tui-file,a[tuiFile],button[tuiFile]", inputs: { file: "file", state: "state", size: "size", showDelete: "showDelete", showSize: "showSize", leftContent: "leftContent" }, outputs: { remove: "remove" }, host: { properties: { "attr.data-delete": "showDelete" } }, providers: [tuiAppearanceOptionsProvider(TUI_FILE_OPTIONS)], hostDirectives: [{ directive: i1.TuiAppearance }], ngImport: i0, template: "<div\n class=\"t-preview\"\n [class.t-preview_big]=\"isBig\"\n>\n <ng-container *polymorpheusOutlet=\"leftContent || defaultLeftContent as text\">\n {{ text }}\n </ng-container>\n</div>\n<div class=\"t-wrapper\">\n <div class=\"t-text\">\n <div class=\"t-name\">{{ name }}</div>\n <div class=\"t-type\">{{ type }}</div>\n <div\n *ngIf=\"showSize && (fileSize$ | async) as fileSize\"\n class=\"t-size\"\n >\n {{ fileSize }}\n </div>\n </div>\n <div\n *ngIf=\"content$ | async as content\"\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n </div>\n <ng-content />\n</div>\n<ng-container *ngIf=\"allowDelete\">\n <button\n *ngIf=\"fileTexts$ | async as texts\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-remove\"\n [iconStart]=\"icons.close\"\n (click.prevent)=\"remove.emit()\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n {{ texts.remove }}\n </button>\n</ng-container>\n\n<ng-template #defaultLeftContent>\n <img\n *ngIf=\"preview; else loader\"\n alt=\"file preview\"\n class=\"t-image\"\n [src]=\"preview\"\n />\n <ng-template #loader>\n <tui-loader\n *ngIf=\"isLoading; else svg\"\n class=\"t-loader\"\n [inheritColor]=\"isBig\"\n />\n </ng-template>\n <ng-template #svg>\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n class=\"t-icon\"\n [class.t-icon_blank]=\"isBig || isDeleted\"\n [class.t-icon_error]=\"isError\"\n [icon]=\"src.toString()\"\n />\n </ng-template>\n</ng-template>\n", styles: [":host{position:relative;display:flex;align-items:center;font:var(--tui-font-text-m);padding:.625rem 2.25rem .625rem .625rem;text-decoration:none;border-radius:var(--tui-radius-m)}:host:hover .t-remove,:host[data-delete=always] .t-remove{opacity:1}.t-preview{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-right:.75rem;border-radius:var(--tui-radius-m);overflow:hidden;color:var(--tui-text-tertiary)}.t-preview_big{inline-size:4rem;block-size:4rem;margin-right:1rem}.t-preview_big:before{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";background:var(--tui-background-neutral-1)}.t-image{max-inline-size:100%;max-block-size:100%}.t-loader{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}.t-icon{position:absolute;top:0;left:0;bottom:0;right:0;color:var(--tui-status-positive);margin:auto}.t-icon_blank{color:var(--tui-text-tertiary)}.t-icon_error{color:var(--tui-text-negative)}.t-remove{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:.625rem;right:.625rem}.t-remove:focus{opacity:1}.t-remove:focus-visible{box-shadow:inset 0 0 0 2px var(--tui-border-focus)}@media (hover: hover) and (pointer: fine){.t-remove{opacity:0}}.t-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;overflow:hidden;color:var(--tui-text-primary)}.t-text{display:flex}.t-size{flex-shrink:0;opacity:var(--tui-disabled-opacity);margin-left:.5rem}.t-type{flex-shrink:0}.t-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-content{font:var(--tui-font-text-s);color:var(--tui-text-negative)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
181
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiFile, isStandalone: true, selector: "tui-file,a[tuiFile],button[tuiFile]", inputs: { file: "file", state: "state", size: "size", showDelete: "showDelete", showSize: "showSize", leftContent: "leftContent" }, outputs: { remove: "remove" }, host: { properties: { "attr.data-delete": "showDelete" } }, providers: [tuiAppearanceOptionsProvider(TUI_FILE_OPTIONS)], hostDirectives: [{ directive: i1.TuiAppearance }], ngImport: i0, template: "<div\n class=\"t-preview\"\n [class.t-preview_big]=\"isBig\"\n>\n <ng-container *polymorpheusOutlet=\"leftContent || defaultLeftContent as text\">\n {{ text }}\n </ng-container>\n</div>\n<div class=\"t-wrapper\">\n <div class=\"t-text\">\n <div class=\"t-name\">{{ name }}</div>\n <div class=\"t-type\">{{ type }}</div>\n <div\n *ngIf=\"showSize && (fileSize$ | async) as fileSize\"\n class=\"t-size\"\n >\n {{ fileSize }}\n </div>\n </div>\n <div\n *ngIf=\"content$ | async as content\"\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n </div>\n <ng-content />\n</div>\n<ng-container *ngIf=\"allowDelete\">\n <button\n *ngIf=\"fileTexts$ | async as texts\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-remove\"\n [iconStart]=\"icons.close\"\n (click.prevent)=\"remove.emit()\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n {{ texts.remove }}\n </button>\n</ng-container>\n\n<ng-template #defaultLeftContent>\n <img\n *ngIf=\"preview; else loader\"\n alt=\"file preview\"\n class=\"t-image\"\n [src]=\"preview\"\n />\n <ng-template #loader>\n <tui-loader\n *ngIf=\"isLoading; else svg\"\n class=\"t-loader\"\n [inheritColor]=\"isBig\"\n />\n </ng-template>\n <ng-template #svg>\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n class=\"t-icon\"\n [class.t-icon_blank]=\"isBig || isDeleted\"\n [class.t-icon_error]=\"isError\"\n [icon]=\"src.toString()\"\n />\n </ng-template>\n</ng-template>\n", styles: [":host{position:relative;display:flex;align-items:center;font:var(--tui-font-text-m);padding:.625rem 2.25rem .625rem .625rem;text-decoration:none;border-radius:var(--tui-radius-m)}:host:hover .t-remove,:host[data-delete=always] .t-remove{opacity:1}.t-preview{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-right:.75rem;border-radius:var(--tui-radius-m);overflow:hidden;color:var(--tui-text-tertiary)}.t-preview_big{inline-size:4rem;block-size:4rem;margin-right:1rem}.t-preview_big:before{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";background:var(--tui-background-neutral-1)}.t-image{max-inline-size:100%;max-block-size:100%}.t-loader{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}.t-icon{position:absolute;top:0;left:0;bottom:0;right:0;color:var(--tui-status-positive);margin:auto}.t-icon_blank{color:var(--tui-text-tertiary)}.t-icon_error{color:var(--tui-text-negative)}.t-remove{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:.625rem;right:.625rem}.t-remove:focus{opacity:1}.t-remove:focus-visible{box-shadow:inset 0 0 0 2px var(--tui-border-focus)}@media (hover: hover) and (pointer: fine){.t-remove{opacity:0}}.t-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;overflow:hidden;color:var(--tui-text-primary)}.t-text{display:flex}.t-size{flex-shrink:0;opacity:var(--tui-disabled-opacity);margin-left:.5rem}.t-type{flex-shrink:0}.t-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-content{font:var(--tui-font-text-s);color:var(--tui-text-negative)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
180
182
  }
181
183
  __decorate([
182
184
  tuiPure
@@ -199,9 +201,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
199
201
  CommonModule,
200
202
  PolymorpheusOutlet,
201
203
  PolymorpheusTemplate,
202
- TuiLoader,
203
204
  TuiButton,
204
205
  TuiIcon,
206
+ TuiLoader,
205
207
  ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAppearanceOptionsProvider(TUI_FILE_OPTIONS)], hostDirectives: [TuiAppearance], host: {
206
208
  '[attr.data-delete]': 'showDelete',
207
209
  }, template: "<div\n class=\"t-preview\"\n [class.t-preview_big]=\"isBig\"\n>\n <ng-container *polymorpheusOutlet=\"leftContent || defaultLeftContent as text\">\n {{ text }}\n </ng-container>\n</div>\n<div class=\"t-wrapper\">\n <div class=\"t-text\">\n <div class=\"t-name\">{{ name }}</div>\n <div class=\"t-type\">{{ type }}</div>\n <div\n *ngIf=\"showSize && (fileSize$ | async) as fileSize\"\n class=\"t-size\"\n >\n {{ fileSize }}\n </div>\n </div>\n <div\n *ngIf=\"content$ | async as content\"\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n </div>\n <ng-content />\n</div>\n<ng-container *ngIf=\"allowDelete\">\n <button\n *ngIf=\"fileTexts$ | async as texts\"\n appearance=\"icon\"\n size=\"xs\"\n tuiIconButton\n type=\"button\"\n class=\"t-remove\"\n [iconStart]=\"icons.close\"\n (click.prevent)=\"remove.emit()\"\n (mousedown.prevent.silent)=\"(0)\"\n >\n {{ texts.remove }}\n </button>\n</ng-container>\n\n<ng-template #defaultLeftContent>\n <img\n *ngIf=\"preview; else loader\"\n alt=\"file preview\"\n class=\"t-image\"\n [src]=\"preview\"\n />\n <ng-template #loader>\n <tui-loader\n *ngIf=\"isLoading; else svg\"\n class=\"t-loader\"\n [inheritColor]=\"isBig\"\n />\n </ng-template>\n <ng-template #svg>\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n class=\"t-icon\"\n [class.t-icon_blank]=\"isBig || isDeleted\"\n [class.t-icon_error]=\"isError\"\n [icon]=\"src.toString()\"\n />\n </ng-template>\n</ng-template>\n", styles: [":host{position:relative;display:flex;align-items:center;font:var(--tui-font-text-m);padding:.625rem 2.25rem .625rem .625rem;text-decoration:none;border-radius:var(--tui-radius-m)}:host:hover .t-remove,:host[data-delete=always] .t-remove{opacity:1}.t-preview{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;inline-size:1.5rem;block-size:1.5rem;margin-right:.75rem;border-radius:var(--tui-radius-m);overflow:hidden;color:var(--tui-text-tertiary)}.t-preview_big{inline-size:4rem;block-size:4rem;margin-right:1rem}.t-preview_big:before{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";background:var(--tui-background-neutral-1)}.t-image{max-inline-size:100%;max-block-size:100%}.t-loader{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}.t-icon{position:absolute;top:0;left:0;bottom:0;right:0;color:var(--tui-status-positive);margin:auto}.t-icon_blank{color:var(--tui-text-tertiary)}.t-icon_error{color:var(--tui-text-negative)}.t-remove{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:.625rem;right:.625rem}.t-remove:focus{opacity:1}.t-remove:focus-visible{box-shadow:inset 0 0 0 2px var(--tui-border-focus)}@media (hover: hover) and (pointer: fine){.t-remove{opacity:0}}.t-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;overflow:hidden;color:var(--tui-text-primary)}.t-text{display:flex}.t-size{flex-shrink:0;opacity:var(--tui-disabled-opacity);margin-left:.5rem}.t-type{flex-shrink:0}.t-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-content{font:var(--tui-font-text-s);color:var(--tui-text-negative)}\n"] }]
@@ -240,11 +242,11 @@ class TuiFilesComponent {
240
242
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFilesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
241
243
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiFilesComponent, isStandalone: true, selector: "tui-files", inputs: { max: "max", expanded: "expanded" }, outputs: { expandedChange: "expandedChange" }, providers: [
242
244
  tuiGroupOptionsProvider({ size: 'm', collapsed: true, orientation: 'vertical' }),
243
- ], queries: [{ propertyName: "items", predicate: TuiItem, read: TemplateRef }], hostDirectives: [{ directive: i1$1.TuiGroup }], ngImport: i0, template: "<ng-container *ngIf=\"items?.changes | async\" />\n<ng-content />\n<ng-container *ngFor=\"let item of items; let index = index\">\n <ng-container\n *ngIf=\"!max || index < max\"\n [ngTemplateOutlet]=\"item\"\n />\n</ng-container>\n<tui-expand\n *ngIf=\"hasExtraItems\"\n [expanded]=\"expanded\"\n>\n <div class=\"t-extra-items\">\n <ng-container *ngFor=\"let item of items; let index = index\">\n <ng-container\n *ngIf=\"max && index >= max\"\n [ngTemplateOutlet]=\"item\"\n />\n </ng-container>\n </div>\n</tui-expand>\n<div\n *ngIf=\"hasExtraItems\"\n class=\"t-bottom\"\n [class.t-bottom_collapsed]=\"!expanded\"\n>\n <button\n appearance=\"outline\"\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ (expanded ? hideText$ : showAllText$) | async }}\n </button>\n</div>\n", styles: ["tui-files{inline-size:100%;overflow:hidden;border-radius:var(--tui-radius-m)}tui-files .t-files{position:relative;display:block;inline-size:100%;block-size:100%;border-radius:var(--tui-radius-m);overflow:hidden}tui-files .t-button{inline-size:100%;border-radius:inherit}tui-files .t-bottom{z-index:3;inline-size:100%;background:var(--tui-background-base)}tui-files .t-bottom_collapsed{box-shadow:var(--tui-shadow-popup);margin-top:-1.5rem}tui-files .t-extra-items tui-file{border-radius:0;margin-top:0;margin-bottom:-.0625rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
245
+ ], queries: [{ propertyName: "items", predicate: TuiItem, read: TemplateRef }], hostDirectives: [{ directive: i1$1.TuiGroup }], ngImport: i0, template: "<ng-container *ngIf=\"items?.changes | async\" />\n<ng-content />\n<ng-container *ngFor=\"let item of items; let index = index\">\n <ng-container\n *ngIf=\"!max || index < max\"\n [ngTemplateOutlet]=\"item\"\n />\n</ng-container>\n<tui-expand\n *ngIf=\"hasExtraItems\"\n [expanded]=\"expanded\"\n>\n <div class=\"t-extra-items\">\n <ng-container *ngFor=\"let item of items; let index = index\">\n <ng-container\n *ngIf=\"max && index >= max\"\n [ngTemplateOutlet]=\"item\"\n />\n </ng-container>\n </div>\n</tui-expand>\n<div\n *ngIf=\"hasExtraItems\"\n class=\"t-bottom\"\n [class.t-bottom_collapsed]=\"!expanded\"\n>\n <button\n appearance=\"outline\"\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ (expanded ? hideText$ : showAllText$) | async }}\n </button>\n</div>\n", styles: ["tui-files{inline-size:100%;overflow:hidden;border-radius:var(--tui-radius-m)}tui-files .t-files{position:relative;display:block;inline-size:100%;block-size:100%;border-radius:var(--tui-radius-m);overflow:hidden}tui-files .t-button{inline-size:100%;border-radius:inherit}tui-files .t-bottom{z-index:3;inline-size:100%;background:var(--tui-background-base)}tui-files .t-bottom_collapsed{box-shadow:var(--tui-shadow-popup);margin-top:-1.5rem}tui-files .t-extra-items tui-file{border-radius:0;margin-top:0;margin-bottom:-.0625rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiExpandComponent, selector: "tui-expand", inputs: ["async", "expanded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
244
246
  }
245
247
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFilesComponent, decorators: [{
246
248
  type: Component,
247
- args: [{ standalone: true, selector: 'tui-files', imports: [CommonModule, TuiExpandComponent, TuiButton], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
249
+ args: [{ standalone: true, selector: 'tui-files', imports: [CommonModule, TuiButton, TuiExpandComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
248
250
  tuiGroupOptionsProvider({ size: 'm', collapsed: true, orientation: 'vertical' }),
249
251
  ], hostDirectives: [TuiGroup], template: "<ng-container *ngIf=\"items?.changes | async\" />\n<ng-content />\n<ng-container *ngFor=\"let item of items; let index = index\">\n <ng-container\n *ngIf=\"!max || index < max\"\n [ngTemplateOutlet]=\"item\"\n />\n</ng-container>\n<tui-expand\n *ngIf=\"hasExtraItems\"\n [expanded]=\"expanded\"\n>\n <div class=\"t-extra-items\">\n <ng-container *ngFor=\"let item of items; let index = index\">\n <ng-container\n *ngIf=\"max && index >= max\"\n [ngTemplateOutlet]=\"item\"\n />\n </ng-container>\n </div>\n</tui-expand>\n<div\n *ngIf=\"hasExtraItems\"\n class=\"t-bottom\"\n [class.t-bottom_collapsed]=\"!expanded\"\n>\n <button\n appearance=\"outline\"\n size=\"m\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ (expanded ? hideText$ : showAllText$) | async }}\n </button>\n</div>\n", styles: ["tui-files{inline-size:100%;overflow:hidden;border-radius:var(--tui-radius-m)}tui-files .t-files{position:relative;display:block;inline-size:100%;block-size:100%;border-radius:var(--tui-radius-m);overflow:hidden}tui-files .t-button{inline-size:100%;border-radius:inherit}tui-files .t-bottom{z-index:3;inline-size:100%;background:var(--tui-background-base)}tui-files .t-bottom_collapsed{box-shadow:var(--tui-shadow-popup);margin-top:-1.5rem}tui-files .t-extra-items tui-file{border-radius:0;margin-top:0;margin-bottom:-.0625rem}\n"] }]
250
252
  }], propDecorators: { items: [{
@@ -262,7 +264,7 @@ class TuiInputFilesContent {
262
264
  constructor() {
263
265
  this.breakpoint$ = inject(TuiBreakpointService);
264
266
  this.text$ = inject(TUI_INPUT_FILE_TEXTS);
265
- this.context = inject(POLYMORPHEUS_CONTEXT);
267
+ this.context = injectContext();
266
268
  this.component = inject(TuiInputFiles);
267
269
  }
268
270
  get link$() {
@@ -314,6 +316,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
314
316
  <a tuiLink>{{ link$ | async }}</a>
315
317
  {{ label$ | async }}
316
318
  `,
319
+ // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
317
320
  changeDetection: ChangeDetectionStrategy.Default,
318
321
  }]
319
322
  }], propDecorators: { computeLink$: [], computeLabel$: [] } });
@@ -397,7 +400,7 @@ class TuiInputFilesDirective extends TuiControl {
397
400
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputFilesDirective, isStandalone: true, selector: "input[tuiInputFiles]", outputs: { reject: "reject" }, host: { attributes: { "type": "file" }, listeners: { "blur": "onTouched()", "click": "onClick($event)" }, properties: { "disabled": "disabled()" } }, providers: [
398
401
  tuiAsControl(TuiInputFilesDirective),
399
402
  tuiAppearanceOptionsProvider(TuiInputFilesDirective),
400
- ], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithAppearance }, { directive: TuiInputFilesValidator, inputs: ["accept", "accept", "maxFileSize", "maxFileSize"] }], ngImport: i0 }); }
403
+ ], usesInheritance: true, hostDirectives: [{ directive: i1$3.TuiNativeValidator }, { directive: i1.TuiWithAppearance }, { directive: TuiInputFilesValidator, inputs: ["accept", "accept", "maxFileSize", "maxFileSize"] }], ngImport: i0 }); }
401
404
  }
402
405
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputFilesDirective, decorators: [{
403
406
  type: Directive,
@@ -409,6 +412,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
409
412
  tuiAppearanceOptionsProvider(TuiInputFilesDirective),
410
413
  ],
411
414
  hostDirectives: [
415
+ TuiNativeValidator,
412
416
  TuiWithAppearance,
413
417
  {
414
418
  directive: TuiInputFilesValidator,
@@ -453,7 +457,7 @@ class TuiInputFiles {
453
457
  this.files = dataTransfer?.files;
454
458
  }
455
459
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputFiles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
456
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputFiles, isStandalone: true, selector: "label[tuiInputFiles]", host: { listeners: { "dragover.prevent.silent": "0", "drop.prevent": "onDropped($event)", "dragenter": "onDrag($event.dataTransfer)", "dragleave.self": "onDrag(null)", "change": "onFilesSelected($event.target)" }, properties: { "class._dragged": "fileDragged" } }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "input", first: true, predicate: TuiInputFilesDirective, descendants: true }], ngImport: i0, template: `
460
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputFiles, isStandalone: true, selector: "label[tuiInputFiles]", host: { listeners: { "dragover.prevent.silent": "0", "drop.prevent": "onDropped($event)", "dragenter": "onDrag($event.dataTransfer)", "dragleave": "onDrag(null)", "change": "onFilesSelected($event.target)" }, properties: { "class._dragged": "fileDragged" } }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "input", first: true, predicate: TuiInputFilesDirective, descendants: true }], ngImport: i0, template: `
457
461
  <ng-content></ng-content>
458
462
  <span
459
463
  *polymorpheusOutlet="
@@ -463,7 +467,7 @@ class TuiInputFiles {
463
467
  >
464
468
  {{ text }}
465
469
  </span>
466
- `, isInline: true, styles: ["label[tuiInputFiles]{position:relative;display:flex;min-block-size:var(--tui-height-l);justify-content:center;align-items:center;text-align:center;border-radius:var(--tui-radius-m);font:var(--tui-font-text-m);word-wrap:break-word;padding:0 .5rem}label[tuiInputFiles]>:not(input){position:relative;pointer-events:none}label[tuiInputFiles] input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;color:transparent;cursor:pointer}label[tuiInputFiles] input:disabled~*{opacity:var(--tui-disabled-opacity)}label[tuiInputFiles] input::-webkit-file-upload-button{display:none}label[tuiInputFiles] input::file-selector-button{display:none}[tuiAppearance][data-appearance=file]{border-radius:inherit;box-sizing:border-box;border:1px dashed var(--tui-text-action)}tui-root._mobile [tuiAppearance][data-appearance=file]{border-style:solid}[tuiInputFiles]._dragged [tuiAppearance][data-appearance=file]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover){[tuiAppearance][data-appearance=file]:-webkit-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}@media (hover: hover){[tuiAppearance][data-appearance=file]:-moz-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}[tuiAppearance][data-appearance=file]:-webkit-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:-moz-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][data-state=active]{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file]:focus-visible:not([data-focus=false]){border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][data-focus=true]{border:.125rem solid var(--tui-border-focus)}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
470
+ `, isInline: true, styles: ["label[tuiInputFiles]{position:relative;display:flex;min-block-size:var(--tui-height-l);justify-content:center;align-items:center;text-align:center;border-radius:var(--tui-radius-m);font:var(--tui-font-text-m);word-wrap:break-word;padding:0 .5rem}label[tuiInputFiles]>:not(input){position:relative;pointer-events:none}label[tuiInputFiles] input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;color:transparent;cursor:pointer}label[tuiInputFiles] input:disabled~*{opacity:var(--tui-disabled-opacity)}label[tuiInputFiles] input::-webkit-file-upload-button{display:none}label[tuiInputFiles] input::file-selector-button{display:none}[tuiAppearance][data-appearance=file]{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:inherit;box-sizing:border-box;border:1px dashed var(--tui-text-action);outline:none}tui-root._mobile [tuiAppearance][data-appearance=file]{border-style:solid}[tuiInputFiles]._dragged [tuiAppearance][data-appearance=file]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover){[tuiAppearance][data-appearance=file]:-webkit-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}@media (hover: hover){[tuiAppearance][data-appearance=file]:-moz-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}[tuiAppearance][data-appearance=file]:-webkit-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:-moz-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][data-state=active]{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file]:focus-visible:not([data-focus=false]){border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][data-focus=true]{border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file]:invalid{border-color:var(--tui-status-negative)!important}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
467
471
  }
468
472
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputFiles, decorators: [{
469
473
  type: Component,
@@ -481,10 +485,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
481
485
  '(dragover.prevent.silent)': '0',
482
486
  '(drop.prevent)': 'onDropped($event)',
483
487
  '(dragenter)': 'onDrag($event.dataTransfer)',
484
- '(dragleave.self)': 'onDrag(null)',
488
+ '(dragleave)': 'onDrag(null)',
485
489
  '[class._dragged]': 'fileDragged',
486
490
  '(change)': 'onFilesSelected($event.target)',
487
- }, styles: ["label[tuiInputFiles]{position:relative;display:flex;min-block-size:var(--tui-height-l);justify-content:center;align-items:center;text-align:center;border-radius:var(--tui-radius-m);font:var(--tui-font-text-m);word-wrap:break-word;padding:0 .5rem}label[tuiInputFiles]>:not(input){position:relative;pointer-events:none}label[tuiInputFiles] input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;color:transparent;cursor:pointer}label[tuiInputFiles] input:disabled~*{opacity:var(--tui-disabled-opacity)}label[tuiInputFiles] input::-webkit-file-upload-button{display:none}label[tuiInputFiles] input::file-selector-button{display:none}[tuiAppearance][data-appearance=file]{border-radius:inherit;box-sizing:border-box;border:1px dashed var(--tui-text-action)}tui-root._mobile [tuiAppearance][data-appearance=file]{border-style:solid}[tuiInputFiles]._dragged [tuiAppearance][data-appearance=file]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover){[tuiAppearance][data-appearance=file]:-webkit-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}@media (hover: hover){[tuiAppearance][data-appearance=file]:-moz-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}[tuiAppearance][data-appearance=file]:-webkit-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:-moz-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][data-state=active]{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file]:focus-visible:not([data-focus=false]){border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][data-focus=true]{border:.125rem solid var(--tui-border-focus)}\n"] }]
491
+ }, styles: ["label[tuiInputFiles]{position:relative;display:flex;min-block-size:var(--tui-height-l);justify-content:center;align-items:center;text-align:center;border-radius:var(--tui-radius-m);font:var(--tui-font-text-m);word-wrap:break-word;padding:0 .5rem}label[tuiInputFiles]>:not(input){position:relative;pointer-events:none}label[tuiInputFiles] input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;color:transparent;cursor:pointer}label[tuiInputFiles] input:disabled~*{opacity:var(--tui-disabled-opacity)}label[tuiInputFiles] input::-webkit-file-upload-button{display:none}label[tuiInputFiles] input::file-selector-button{display:none}[tuiAppearance][data-appearance=file]{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;border-radius:inherit;box-sizing:border-box;border:1px dashed var(--tui-text-action);outline:none}tui-root._mobile [tuiAppearance][data-appearance=file]{border-style:solid}[tuiInputFiles]._dragged [tuiAppearance][data-appearance=file]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}@media (hover: hover){[tuiAppearance][data-appearance=file]:-webkit-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}@media (hover: hover){[tuiAppearance][data-appearance=file]:-moz-any(a,button,select,textarea,input,label):hover:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}}[tuiAppearance][data-appearance=file][data-state=hover]{background:var(--tui-background-neutral-1);border-color:var(--tui-text-action-hover)}[tuiAppearance][data-appearance=file]:-webkit-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:-moz-any(a,button,select,textarea,input,label):active:not(:disabled):not([data-state]){background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file][data-state=active]{background:var(--tui-background-neutral-1-hover)}[tuiAppearance][data-appearance=file]:disabled:not([data-state]),[tuiAppearance][data-appearance=file][data-state=disabled]{background:transparent;border-color:var(--tui-text-tertiary)}[tuiAppearance][data-appearance=file]:focus-visible:not([data-focus=false]){border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file][data-focus=true]{border:.125rem solid var(--tui-border-focus)}[tuiAppearance][data-appearance=file]:invalid{border-color:var(--tui-status-negative)!important}\n"] }]
488
492
  }], propDecorators: { template: [{
489
493
  type: ContentChild,
490
494
  args: [TemplateRef]