@taiga-ui/layout 4.66.0 → 5.0.0-canary.8b64ec1

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 (154) hide show
  1. package/README.md +2 -2
  2. package/components/app-bar/app-bar-back.component.d.ts +1 -1
  3. package/components/app-bar/app-bar-size.directive.d.ts +1 -0
  4. package/components/app-bar/app-bar.component.d.ts +2 -2
  5. package/components/app-bar/app-bar.directive.d.ts +2 -3
  6. package/components/block-status/block-status.component.d.ts +3 -3
  7. package/components/block-status/block-status.directive.d.ts +2 -3
  8. package/components/card/collapsed.directive.d.ts +2 -2
  9. package/components/card/large.directive.d.ts +3 -14
  10. package/components/card/medium.directive.d.ts +2 -1
  11. package/components/dynamic-header/dynamic-header-anchor.directive.d.ts +1 -1
  12. package/components/dynamic-header/dynamic-header-container.directive.d.ts +2 -2
  13. package/components/elastic-container/elastic-container.component.d.ts +8 -0
  14. package/components/elastic-container/elastic-container.directive.d.ts +7 -0
  15. package/components/elastic-container/index.d.ts +2 -0
  16. package/components/floating-container/floating-container.directive.d.ts +8 -0
  17. package/components/floating-container/index.d.ts +1 -0
  18. package/components/form/form.directive.d.ts +3 -4
  19. package/components/form/form.options.d.ts +2 -2
  20. package/components/header/header.directive.d.ts +8 -11
  21. package/components/index.d.ts +5 -1
  22. package/components/input-search/input-search.component.d.ts +7 -8
  23. package/components/item-group/item-group.directive.d.ts +3 -3
  24. package/components/navigation/aside-group.component.d.ts +7 -8
  25. package/components/navigation/aside-item.directive.d.ts +1 -1
  26. package/components/navigation/aside.component.d.ts +2 -3
  27. package/components/navigation/drawer.component.d.ts +6 -7
  28. package/components/navigation/hint-aside.directive.d.ts +3 -4
  29. package/components/navigation/subheader.component.d.ts +1 -1
  30. package/components/pdf-viewer/index.d.ts +1 -0
  31. package/components/pdf-viewer/pdf-viewer.component.d.ts +13 -0
  32. package/components/search/search-filter.component.d.ts +4 -3
  33. package/components/search/search-filters.component.d.ts +7 -9
  34. package/components/slides/index.d.ts +1 -0
  35. package/components/slides/slides.directive.d.ts +11 -0
  36. package/components/surface/index.d.ts +1 -0
  37. package/components/surface/surface.directive.d.ts +6 -0
  38. package/fesm2022/taiga-ui-layout-components-app-bar.mjs +28 -39
  39. package/fesm2022/taiga-ui-layout-components-app-bar.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-layout-components-block-details.mjs +10 -13
  41. package/fesm2022/taiga-ui-layout-components-block-details.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-layout-components-block-status.mjs +16 -23
  43. package/fesm2022/taiga-ui-layout-components-block-status.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-layout-components-card.mjs +56 -71
  45. package/fesm2022/taiga-ui-layout-components-card.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-layout-components-dynamic-header.mjs +39 -58
  47. package/fesm2022/taiga-ui-layout-components-dynamic-header.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-layout-components-elastic-container.mjs +62 -0
  49. package/fesm2022/taiga-ui-layout-components-elastic-container.mjs.map +1 -0
  50. package/fesm2022/taiga-ui-layout-components-floating-container.mjs +40 -0
  51. package/fesm2022/taiga-ui-layout-components-floating-container.mjs.map +1 -0
  52. package/fesm2022/taiga-ui-layout-components-form.mjs +33 -46
  53. package/fesm2022/taiga-ui-layout-components-form.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-layout-components-header.mjs +15 -33
  55. package/fesm2022/taiga-ui-layout-components-header.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-layout-components-input-search.mjs +28 -41
  57. package/fesm2022/taiga-ui-layout-components-input-search.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-layout-components-item-group.mjs +18 -32
  59. package/fesm2022/taiga-ui-layout-components-item-group.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-layout-components-navigation.mjs +113 -145
  61. package/fesm2022/taiga-ui-layout-components-navigation.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-layout-components-pdf-viewer.mjs +46 -0
  63. package/fesm2022/taiga-ui-layout-components-pdf-viewer.mjs.map +1 -0
  64. package/fesm2022/taiga-ui-layout-components-search.mjs +37 -59
  65. package/fesm2022/taiga-ui-layout-components-search.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-layout-components-slides.mjs +49 -0
  67. package/fesm2022/taiga-ui-layout-components-slides.mjs.map +1 -0
  68. package/fesm2022/taiga-ui-layout-components-surface.mjs +33 -0
  69. package/fesm2022/taiga-ui-layout-components-surface.mjs.map +1 -0
  70. package/fesm2022/taiga-ui-layout-components.mjs +5 -1
  71. package/fesm2022/taiga-ui-layout-components.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-layout-tokens.mjs +2 -7
  73. package/fesm2022/taiga-ui-layout-tokens.mjs.map +1 -1
  74. package/package.json +35 -46
  75. package/tokens/common-icons.d.ts +3 -5
  76. package/tokens/i18n.d.ts +1 -1
  77. package/components/cell/cell.directive.d.ts +0 -10
  78. package/components/cell/cell.options.d.ts +0 -6
  79. package/components/cell/index.d.ts +0 -2
  80. package/esm2022/components/app-bar/app-bar-back.component.mjs +0 -20
  81. package/esm2022/components/app-bar/app-bar-size.directive.mjs +0 -24
  82. package/esm2022/components/app-bar/app-bar.component.mjs +0 -39
  83. package/esm2022/components/app-bar/app-bar.directive.mjs +0 -20
  84. package/esm2022/components/app-bar/app-bar.mjs +0 -11
  85. package/esm2022/components/app-bar/app-bar.providers.mjs +0 -19
  86. package/esm2022/components/app-bar/index.mjs +0 -7
  87. package/esm2022/components/app-bar/taiga-ui-layout-components-app-bar.mjs +0 -5
  88. package/esm2022/components/block-details/block-details.directive.mjs +0 -29
  89. package/esm2022/components/block-details/index.mjs +0 -2
  90. package/esm2022/components/block-details/taiga-ui-layout-components-block-details.mjs +0 -5
  91. package/esm2022/components/block-status/block-status.component.mjs +0 -23
  92. package/esm2022/components/block-status/block-status.directive.mjs +0 -20
  93. package/esm2022/components/block-status/block-status.mjs +0 -4
  94. package/esm2022/components/block-status/index.mjs +0 -4
  95. package/esm2022/components/block-status/taiga-ui-layout-components-block-status.mjs +0 -5
  96. package/esm2022/components/card/card.mjs +0 -11
  97. package/esm2022/components/card/collapsed.directive.mjs +0 -38
  98. package/esm2022/components/card/index.mjs +0 -6
  99. package/esm2022/components/card/large.directive.mjs +0 -42
  100. package/esm2022/components/card/medium.directive.mjs +0 -29
  101. package/esm2022/components/card/row.directive.mjs +0 -29
  102. package/esm2022/components/card/taiga-ui-layout-components-card.mjs +0 -5
  103. package/esm2022/components/cell/cell.directive.mjs +0 -53
  104. package/esm2022/components/cell/cell.options.mjs +0 -3
  105. package/esm2022/components/cell/index.mjs +0 -3
  106. package/esm2022/components/cell/taiga-ui-layout-components-cell.mjs +0 -5
  107. package/esm2022/components/dynamic-header/dynamic-header-anchor.directive.mjs +0 -34
  108. package/esm2022/components/dynamic-header/dynamic-header-container.directive.mjs +0 -41
  109. package/esm2022/components/dynamic-header/dynamic-header.component.mjs +0 -59
  110. package/esm2022/components/dynamic-header/dynamic-header.mjs +0 -9
  111. package/esm2022/components/dynamic-header/index.mjs +0 -5
  112. package/esm2022/components/dynamic-header/taiga-ui-layout-components-dynamic-header.mjs +0 -5
  113. package/esm2022/components/form/form.directive.mjs +0 -95
  114. package/esm2022/components/form/form.options.mjs +0 -3
  115. package/esm2022/components/form/index.mjs +0 -3
  116. package/esm2022/components/form/taiga-ui-layout-components-form.mjs +0 -5
  117. package/esm2022/components/header/header.directive.mjs +0 -54
  118. package/esm2022/components/header/index.mjs +0 -2
  119. package/esm2022/components/header/taiga-ui-layout-components-header.mjs +0 -5
  120. package/esm2022/components/index.mjs +0 -13
  121. package/esm2022/components/input-search/index.mjs +0 -2
  122. package/esm2022/components/input-search/input-search.component.mjs +0 -96
  123. package/esm2022/components/input-search/taiga-ui-layout-components-input-search.mjs +0 -5
  124. package/esm2022/components/item-group/index.mjs +0 -2
  125. package/esm2022/components/item-group/item-group.directive.mjs +0 -58
  126. package/esm2022/components/item-group/taiga-ui-layout-components-item-group.mjs +0 -5
  127. package/esm2022/components/navigation/aside-group.component.mjs +0 -59
  128. package/esm2022/components/navigation/aside-item.directive.mjs +0 -92
  129. package/esm2022/components/navigation/aside.component.mjs +0 -67
  130. package/esm2022/components/navigation/drawer.component.mjs +0 -97
  131. package/esm2022/components/navigation/header.component.mjs +0 -34
  132. package/esm2022/components/navigation/hint-aside.directive.mjs +0 -41
  133. package/esm2022/components/navigation/index.mjs +0 -12
  134. package/esm2022/components/navigation/logo.component.mjs +0 -12
  135. package/esm2022/components/navigation/main.component.mjs +0 -14
  136. package/esm2022/components/navigation/nav.component.mjs +0 -23
  137. package/esm2022/components/navigation/navigation.mjs +0 -24
  138. package/esm2022/components/navigation/subheader.component.mjs +0 -68
  139. package/esm2022/components/navigation/taiga-ui-layout-components-navigation.mjs +0 -5
  140. package/esm2022/components/search/index.mjs +0 -4
  141. package/esm2022/components/search/search-filter.component.mjs +0 -44
  142. package/esm2022/components/search/search-filters.component.mjs +0 -81
  143. package/esm2022/components/search/search.component.mjs +0 -26
  144. package/esm2022/components/search/search.mjs +0 -9
  145. package/esm2022/components/search/taiga-ui-layout-components-search.mjs +0 -5
  146. package/esm2022/components/taiga-ui-layout-components.mjs +0 -5
  147. package/esm2022/index.mjs +0 -3
  148. package/esm2022/taiga-ui-layout.mjs +0 -5
  149. package/esm2022/tokens/common-icons.mjs +0 -21
  150. package/esm2022/tokens/i18n.mjs +0 -6
  151. package/esm2022/tokens/index.mjs +0 -3
  152. package/esm2022/tokens/taiga-ui-layout-tokens.mjs +0 -5
  153. package/fesm2022/taiga-ui-layout-components-cell.mjs +0 -61
  154. package/fesm2022/taiga-ui-layout-components-cell.mjs.map +0 -1
@@ -0,0 +1,40 @@
1
+ import * as i0 from '@angular/core';
2
+ import { ChangeDetectionStrategy, ViewEncapsulation, Component, input, Directive } from '@angular/core';
3
+ import * as i1 from '@taiga-ui/cdk/directives/animated';
4
+ import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
5
+ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
6
+
7
+ class Styles {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-floating-container" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiFloatingContainer]{transition-property:bottom;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:sticky;bottom:calc(100 * var(--tui-viewport-vh) - var(--tui-viewport-height) - var(--tui-viewport-y));z-index:1;display:grid;margin-block-start:1rem;padding-block-end:max(1rem,env(safe-area-inset-bottom));text-align:center;font:var(--tui-font-ui-s);color:var(--tui-text-secondary)}[tuiFloatingContainer].tui-enter,[tuiFloatingContainer].tui-leave{animation-name:tuiSlide}[tuiFloatingContainer]>*{grid-area:2 / 1}[tuiFloatingContainer]>*:first-child{grid-row:1;margin-block-end:.5rem}[tuiFloatingContainer]:before{inset:0;transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;left:-1rem;right:-1rem;z-index:-1;background:var(--t-background, var(--tui-background-elevation-1));-webkit-mask-image:linear-gradient(180deg,transparent,black 2.5rem);mask-image:linear-gradient(180deg,transparent,black 2.5rem)}tui-sheet-dialog [tuiFloatingContainer]{margin-block-end:calc(-1*max(1.5rem,env(safe-area-inset-bottom)))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, decorators: [{
12
+ type: Component,
13
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-floating-container' }, styles: ["[tuiFloatingContainer]{transition-property:bottom;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:sticky;bottom:calc(100 * var(--tui-viewport-vh) - var(--tui-viewport-height) - var(--tui-viewport-y));z-index:1;display:grid;margin-block-start:1rem;padding-block-end:max(1rem,env(safe-area-inset-bottom));text-align:center;font:var(--tui-font-ui-s);color:var(--tui-text-secondary)}[tuiFloatingContainer].tui-enter,[tuiFloatingContainer].tui-leave{animation-name:tuiSlide}[tuiFloatingContainer]>*{grid-area:2 / 1}[tuiFloatingContainer]>*:first-child{grid-row:1;margin-block-end:.5rem}[tuiFloatingContainer]:before{inset:0;transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;left:-1rem;right:-1rem;z-index:-1;background:var(--t-background, var(--tui-background-elevation-1));-webkit-mask-image:linear-gradient(180deg,transparent,black 2.5rem);mask-image:linear-gradient(180deg,transparent,black 2.5rem)}tui-sheet-dialog [tuiFloatingContainer]{margin-block-end:calc(-1*max(1.5rem,env(safe-area-inset-bottom)))}\n"] }]
14
+ }] });
15
+ class TuiFloatingContainer {
16
+ constructor() {
17
+ this.nothing = tuiWithStyles(Styles);
18
+ this.background = input('', { alias: 'tuiFloatingContainer' });
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiFloatingContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiFloatingContainer, isStandalone: true, selector: "[tuiFloatingContainer]", inputs: { background: { classPropertyName: "background", publicName: "tuiFloatingContainer", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiFloatingContainer": "" }, properties: { "style.--t-background": "background()" } }, hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0 }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiFloatingContainer, decorators: [{
24
+ type: Directive,
25
+ args: [{
26
+ selector: '[tuiFloatingContainer]',
27
+ hostDirectives: [TuiAnimated],
28
+ host: {
29
+ tuiFloatingContainer: '',
30
+ '[style.--t-background]': 'background()',
31
+ },
32
+ }]
33
+ }] });
34
+
35
+ /**
36
+ * Generated bundle index. Do not edit.
37
+ */
38
+
39
+ export { TuiFloatingContainer };
40
+ //# sourceMappingURL=taiga-ui-layout-components-floating-container.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taiga-ui-layout-components-floating-container.mjs","sources":["../../../projects/layout/components/floating-container/floating-container.directive.ts","../../../projects/layout/components/floating-container/taiga-ui-layout-components-floating-container.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styleUrl: './floating-container.style.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-floating-container'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiFloatingContainer]',\n hostDirectives: [TuiAnimated],\n host: {\n tuiFloatingContainer: '',\n '[style.--t-background]': 'background()',\n },\n})\nexport class TuiFloatingContainer {\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly background = input('', {alias: 'tuiFloatingContainer'});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAUA,MAOM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,4HANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4nCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPX,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,wBAAwB,EAAC,EAAA,MAAA,EAAA,CAAA,4nCAAA,CAAA,EAAA;;MAY9B,oBAAoB,CAAA;AARjC,IAAA,WAAA,GAAA;AASuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;QAElC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,EAAE,EAAE,EAAC,KAAK,EAAE,sBAAsB,EAAC,CAAC;AAC1E;+GAJY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;oBAClC,cAAc,EAAE,CAAC,WAAW,CAAC;AAC7B,oBAAA,IAAI,EAAE;AACF,wBAAA,oBAAoB,EAAE,EAAE;AACxB,wBAAA,wBAAwB,EAAE,cAAc;AAC3C,qBAAA;AACJ,iBAAA;;;AC1BD;;AAEG;;;;"}
@@ -1,10 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, signal, Directive, Input } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, input, Directive } from '@angular/core';
3
3
  import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
  import { TUI_BUTTON_OPTIONS } from '@taiga-ui/core/components/button';
5
5
  import { TUI_NOTIFICATION_OPTIONS } from '@taiga-ui/core/components/notification';
6
6
  import * as i1 from '@taiga-ui/core/components/textfield';
7
- import { TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective } from '@taiga-ui/core/components/textfield';
7
+ import { TuiTextfieldOptionsDirective } from '@taiga-ui/core/components/textfield';
8
+ import { TUI_BLOCK_OPTIONS } from '@taiga-ui/kit/components/block';
9
+ import { TUI_CHECKBOX_OPTIONS } from '@taiga-ui/kit/components/checkbox';
10
+ import { TUI_RADIO_OPTIONS } from '@taiga-ui/kit/components/radio';
8
11
  import { TUI_SEGMENTED_OPTIONS } from '@taiga-ui/kit/components/segmented';
9
12
  import { TUI_SWITCH_OPTIONS } from '@taiga-ui/kit/components/switch';
10
13
  import { TUI_HEADER_OPTIONS } from '@taiga-ui/layout/components/header';
@@ -12,85 +15,69 @@ import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
12
15
 
13
16
  const [TUI_FORM_OPTIONS, tuiFormOptionsProvider] = tuiCreateOptions({ size: 'l' });
14
17
 
15
- const HEADER_SIZE = {
16
- s: 'xxxs',
17
- m: 'xs',
18
- l: 's',
19
- };
20
- class TuiFormStyles {
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFormStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiFormStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-form" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiForm][tuiForm]{display:flex;flex-direction:column;align-items:stretch}[tuiForm][data-size=s]{gap:.75rem;font:var(--tui-font-text-s)}[tuiForm][data-size=s] tui-error:not(.tui-space-top-none){margin-block-start:-.75rem}[tuiForm][data-size=s] [tuiHeader]{padding-block-end:.5rem}[tuiForm][data-size=s] [tuiHeader] [tuiSubtitle]{font:var(--tui-font-text-ui-s)}[tuiForm][data-size=m]{gap:1rem;font:var(--tui-font-text-s)}[tuiForm][data-size=m] tui-error:not(.tui-space-top-none){margin-block-start:-1rem}[tuiForm][data-size=l]{gap:1.25rem;font:var(--tui-font-text-m)}[tuiForm][data-size=l] tui-error:not(.tui-space-top-none){margin-block-start:-1.25rem}[tuiForm]>header{padding-block-end:.25rem}[tuiForm]>fieldset{display:grid;gap:inherit;grid-auto-flow:column;grid-auto-columns:1fr;border:none;padding:0;margin:0}[tuiForm]>footer{display:flex;gap:.75rem;margin-block-start:.25rem}tui-dialog [tuiForm]>footer{justify-content:flex-end}[tuiForm]>button,[tuiForm]>a{align-self:flex-start}[tuiForm] [tuiLabel]:not([data-orientation=vertical]){font:inherit}[tuiForm][data-size=s] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip],[tuiForm][data-size=m] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip]{block-size:1.25rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
18
+ const HEADER_SIZE = { s: 'body-m', m: 'h6', l: 'h5' };
19
+ class Styles {
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-form" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiForm][tuiForm]{display:flex;flex-direction:column;align-items:stretch}[tuiForm][data-size=s]{gap:.75rem;font:var(--tui-font-body-s)}[tuiForm][data-size=s] tui-error:not(.tui-space-top-none){margin-block-start:-.75rem}[tuiForm][data-size=m]{gap:1rem;font:var(--tui-font-body-s)}[tuiForm][data-size=m] tui-error:not(.tui-space-top-none){margin-block-start:-1rem}[tuiForm][data-size=l]{gap:1.25rem;font:var(--tui-font-body-m)}[tuiForm][data-size=l] tui-error:not(.tui-space-top-none){margin-block-start:-1.25rem}[tuiForm]>header{padding-block-end:.25rem}[tuiForm]>fieldset{display:grid;gap:inherit;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));border:none;padding:0;margin:0}[tuiForm]>footer{display:flex;gap:.75rem;margin-block-start:.25rem}tui-dialog [tuiForm]>footer{justify-content:flex-end}[tuiForm]>button,[tuiForm]>a{align-self:flex-start}[tuiForm] [tuiLabel]:not([data-orientation=vertical]){font:inherit}[tuiForm][data-size=s] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip],[tuiForm][data-size=m] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip]{block-size:1.25rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
23
22
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFormStyles, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, decorators: [{
25
24
  type: Component,
26
- args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
27
- class: 'tui-form',
28
- }, styles: ["[tuiForm][tuiForm]{display:flex;flex-direction:column;align-items:stretch}[tuiForm][data-size=s]{gap:.75rem;font:var(--tui-font-text-s)}[tuiForm][data-size=s] tui-error:not(.tui-space-top-none){margin-block-start:-.75rem}[tuiForm][data-size=s] [tuiHeader]{padding-block-end:.5rem}[tuiForm][data-size=s] [tuiHeader] [tuiSubtitle]{font:var(--tui-font-text-ui-s)}[tuiForm][data-size=m]{gap:1rem;font:var(--tui-font-text-s)}[tuiForm][data-size=m] tui-error:not(.tui-space-top-none){margin-block-start:-1rem}[tuiForm][data-size=l]{gap:1.25rem;font:var(--tui-font-text-m)}[tuiForm][data-size=l] tui-error:not(.tui-space-top-none){margin-block-start:-1.25rem}[tuiForm]>header{padding-block-end:.25rem}[tuiForm]>fieldset{display:grid;gap:inherit;grid-auto-flow:column;grid-auto-columns:1fr;border:none;padding:0;margin:0}[tuiForm]>footer{display:flex;gap:.75rem;margin-block-start:.25rem}tui-dialog [tuiForm]>footer{justify-content:flex-end}[tuiForm]>button,[tuiForm]>a{align-self:flex-start}[tuiForm] [tuiLabel]:not([data-orientation=vertical]){font:inherit}[tuiForm][data-size=s] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip],[tuiForm][data-size=m] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip]{block-size:1.25rem}\n"] }]
25
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-form' }, styles: ["[tuiForm][tuiForm]{display:flex;flex-direction:column;align-items:stretch}[tuiForm][data-size=s]{gap:.75rem;font:var(--tui-font-body-s)}[tuiForm][data-size=s] tui-error:not(.tui-space-top-none){margin-block-start:-.75rem}[tuiForm][data-size=m]{gap:1rem;font:var(--tui-font-body-s)}[tuiForm][data-size=m] tui-error:not(.tui-space-top-none){margin-block-start:-1rem}[tuiForm][data-size=l]{gap:1.25rem;font:var(--tui-font-body-m)}[tuiForm][data-size=l] tui-error:not(.tui-space-top-none){margin-block-start:-1.25rem}[tuiForm]>header{padding-block-end:.25rem}[tuiForm]>fieldset{display:grid;gap:inherit;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));border:none;padding:0;margin:0}[tuiForm]>footer{display:flex;gap:.75rem;margin-block-start:.25rem}tui-dialog [tuiForm]>footer{justify-content:flex-end}[tuiForm]>button,[tuiForm]>a{align-self:flex-start}[tuiForm] [tuiLabel]:not([data-orientation=vertical]){font:inherit}[tuiForm][data-size=s] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip],[tuiForm][data-size=m] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip]{block-size:1.25rem}\n"] }]
29
26
  }] });
30
27
  class TuiForm {
31
28
  constructor() {
29
+ this.nothing = tuiWithStyles(Styles);
32
30
  this.options = inject(TUI_FORM_OPTIONS);
33
- this.nothing = tuiWithStyles(TuiFormStyles);
34
- this.size = this.options.size;
31
+ this.size = input(this.options.size, { alias: 'tuiForm' });
35
32
  }
36
- set tuiForm(size) {
37
- this.size = size || this.options.size;
38
- }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiForm, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
40
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiForm, isStandalone: true, selector: "[tuiForm]", inputs: { tuiForm: "tuiForm" }, host: { attributes: { "tuiForm": "" }, properties: { "attr.data-size": "size" } }, providers: [
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiForm, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiForm, isStandalone: true, selector: "[tuiForm]", inputs: { size: { classPropertyName: "size", publicName: "tuiForm", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiForm": "" }, properties: { "attr.data-size": "size() || options.size || \"l\"" } }, providers: [
41
35
  projectSize(TUI_BUTTON_OPTIONS, (size) => size),
36
+ projectSize(TUI_BLOCK_OPTIONS, (size) => size),
42
37
  projectSize(TUI_NOTIFICATION_OPTIONS, (size) => size),
43
- projectSize(TUI_HEADER_OPTIONS, (size) => HEADER_SIZE[size]),
38
+ projectSize(TUI_HEADER_OPTIONS, (size) => HEADER_SIZE[size || 'l']),
44
39
  projectSize(TUI_SWITCH_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
40
+ projectSize(TUI_RADIO_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
41
+ projectSize(TUI_CHECKBOX_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
45
42
  projectSize(TUI_SEGMENTED_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
46
- {
47
- provide: TUI_TEXTFIELD_OPTIONS,
48
- useFactory: () => ({
49
- ...inject(TUI_TEXTFIELD_OPTIONS, { skipSelf: true }),
50
- size: signal(inject(TuiForm).size),
51
- }),
52
- },
53
- ], hostDirectives: [{ directive: i1.TuiTextfieldOptionsDirective, inputs: ["tuiTextfieldAppearance", "tuiTextfieldAppearance", "tuiTextfieldCleaner", "tuiTextfieldCleaner"] }], ngImport: i0 }); }
43
+ ], hostDirectives: [{ directive: i1.TuiTextfieldOptionsDirective, inputs: ["tuiTextfieldAppearance", "textfields", "tuiTextfieldCleaner", "cleaner", "tuiTextfieldSize", "tuiForm"] }], ngImport: i0 }); }
54
44
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiForm, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiForm, decorators: [{
56
46
  type: Directive,
57
47
  args: [{
58
- standalone: true,
59
48
  selector: '[tuiForm]',
60
49
  providers: [
61
50
  projectSize(TUI_BUTTON_OPTIONS, (size) => size),
51
+ projectSize(TUI_BLOCK_OPTIONS, (size) => size),
62
52
  projectSize(TUI_NOTIFICATION_OPTIONS, (size) => size),
63
- projectSize(TUI_HEADER_OPTIONS, (size) => HEADER_SIZE[size]),
53
+ projectSize(TUI_HEADER_OPTIONS, (size) => HEADER_SIZE[size || 'l']),
64
54
  projectSize(TUI_SWITCH_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
55
+ projectSize(TUI_RADIO_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
56
+ projectSize(TUI_CHECKBOX_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
65
57
  projectSize(TUI_SEGMENTED_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
66
- {
67
- provide: TUI_TEXTFIELD_OPTIONS,
68
- useFactory: () => ({
69
- ...inject(TUI_TEXTFIELD_OPTIONS, { skipSelf: true }),
70
- size: signal(inject(TuiForm).size),
71
- }),
72
- },
73
58
  ],
74
59
  hostDirectives: [
75
60
  {
76
61
  directive: TuiTextfieldOptionsDirective,
77
- inputs: ['tuiTextfieldAppearance', 'tuiTextfieldCleaner'],
62
+ inputs: [
63
+ 'tuiTextfieldAppearance: textfields',
64
+ 'tuiTextfieldCleaner: cleaner',
65
+ 'tuiTextfieldSize: tuiForm',
66
+ ],
78
67
  },
79
68
  ],
80
69
  host: {
81
70
  tuiForm: '',
82
- '[attr.data-size]': 'size',
71
+ '[attr.data-size]': 'size() || options.size || "l"',
83
72
  },
84
73
  }]
85
- }], propDecorators: { tuiForm: [{
86
- type: Input
87
- }] } });
74
+ }] });
88
75
  function projectSize(provide, project) {
89
76
  return {
90
77
  provide,
91
78
  useFactory: () => ({
92
79
  ...inject(provide, { skipSelf: true }),
93
- size: project(inject(TuiForm).size),
80
+ size: project(inject(TuiForm).size() || inject(TUI_FORM_OPTIONS).size || 'l'),
94
81
  }),
95
82
  };
96
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-layout-components-form.mjs","sources":["../../../projects/layout/components/form/form.options.ts","../../../projects/layout/components/form/form.directive.ts","../../../projects/layout/components/form/taiga-ui-layout-components-form.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiFormOptions {\n readonly size: TuiSizeL | TuiSizeS;\n}\n\nexport const [TUI_FORM_OPTIONS, tuiFormOptionsProvider] =\n tuiCreateOptions<TuiFormOptions>({size: 'l'});\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n type InjectionToken,\n Input,\n type Provider,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_BUTTON_OPTIONS} from '@taiga-ui/core/components/button';\nimport {TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/components/notification';\nimport {\n TUI_TEXTFIELD_OPTIONS,\n TuiTextfieldOptionsDirective,\n} from '@taiga-ui/core/components/textfield';\nimport {TUI_SEGMENTED_OPTIONS} from '@taiga-ui/kit/components/segmented';\nimport {TUI_SWITCH_OPTIONS} from '@taiga-ui/kit/components/switch';\nimport {TUI_HEADER_OPTIONS} from '@taiga-ui/layout/components/header';\n\nimport {TUI_FORM_OPTIONS, type TuiFormOptions} from './form.options';\n\nconst HEADER_SIZE = {\n s: 'xxxs',\n m: 'xs',\n l: 's',\n} as const;\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./form.styles.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-form',\n },\n})\nclass TuiFormStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiForm]',\n providers: [\n projectSize(TUI_BUTTON_OPTIONS, (size) => size),\n projectSize(TUI_NOTIFICATION_OPTIONS, (size) => size),\n projectSize(TUI_HEADER_OPTIONS, (size) => HEADER_SIZE[size]),\n projectSize(TUI_SWITCH_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),\n projectSize(TUI_SEGMENTED_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),\n {\n provide: TUI_TEXTFIELD_OPTIONS,\n useFactory: () => ({\n ...inject(TUI_TEXTFIELD_OPTIONS, {skipSelf: true}),\n size: signal(inject(TuiForm).size),\n }),\n },\n ],\n hostDirectives: [\n {\n directive: TuiTextfieldOptionsDirective,\n inputs: ['tuiTextfieldAppearance', 'tuiTextfieldCleaner'],\n },\n ],\n host: {\n tuiForm: '',\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiForm {\n protected readonly options = inject(TUI_FORM_OPTIONS);\n\n protected readonly nothing = tuiWithStyles(TuiFormStyles);\n\n public size: TuiFormOptions['size'] = this.options.size;\n\n @Input()\n public set tuiForm(size: TuiFormOptions['size'] | '') {\n this.size = size || this.options.size;\n }\n}\n\nfunction projectSize(\n provide: InjectionToken<any>,\n project: TuiHandler<TuiFormOptions['size'], string>,\n): Provider {\n return {\n provide,\n useFactory: () => ({\n ...inject(provide, {skipSelf: true}),\n size: project(inject(TuiForm).size),\n }),\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-layout-components-form.mjs","sources":["../../../projects/layout/components/form/form.options.ts","../../../projects/layout/components/form/form.directive.ts","../../../projects/layout/components/form/taiga-ui-layout-components-form.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiFormOptions {\n readonly size: TuiSizeL | TuiSizeS | '';\n}\n\nexport const [TUI_FORM_OPTIONS, tuiFormOptionsProvider] =\n tuiCreateOptions<TuiFormOptions>({size: 'l'});\n","import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n type InjectionToken,\n input,\n type Provider,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_BUTTON_OPTIONS} from '@taiga-ui/core/components/button';\nimport {TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/components/notification';\nimport {TuiTextfieldOptionsDirective} from '@taiga-ui/core/components/textfield';\nimport {TUI_BLOCK_OPTIONS} from '@taiga-ui/kit/components/block';\nimport {TUI_CHECKBOX_OPTIONS} from '@taiga-ui/kit/components/checkbox';\nimport {TUI_RADIO_OPTIONS} from '@taiga-ui/kit/components/radio';\nimport {TUI_SEGMENTED_OPTIONS} from '@taiga-ui/kit/components/segmented';\nimport {TUI_SWITCH_OPTIONS} from '@taiga-ui/kit/components/switch';\nimport {TUI_HEADER_OPTIONS} from '@taiga-ui/layout/components/header';\n\nimport {TUI_FORM_OPTIONS, type TuiFormOptions} from './form.options';\n\nconst HEADER_SIZE = {s: 'body-m', m: 'h6', l: 'h5'} as const;\n\n@Component({\n template: '',\n styleUrl: './form.styles.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-form'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiForm]',\n providers: [\n projectSize(TUI_BUTTON_OPTIONS, (size) => size),\n projectSize(TUI_BLOCK_OPTIONS, (size) => size),\n projectSize(TUI_NOTIFICATION_OPTIONS, (size) => size),\n projectSize(TUI_HEADER_OPTIONS, (size) => HEADER_SIZE[size || 'l']),\n projectSize(TUI_SWITCH_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),\n projectSize(TUI_RADIO_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),\n projectSize(TUI_CHECKBOX_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),\n projectSize(TUI_SEGMENTED_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),\n ],\n hostDirectives: [\n {\n directive: TuiTextfieldOptionsDirective,\n inputs: [\n 'tuiTextfieldAppearance: textfields',\n 'tuiTextfieldCleaner: cleaner',\n 'tuiTextfieldSize: tuiForm',\n ],\n },\n ],\n host: {\n tuiForm: '',\n '[attr.data-size]': 'size() || options.size || \"l\"',\n },\n})\nexport class TuiForm {\n protected readonly nothing = tuiWithStyles(Styles);\n protected readonly options = inject(TUI_FORM_OPTIONS);\n\n public readonly size = input(this.options.size, {alias: 'tuiForm'});\n}\n\nfunction projectSize(\n provide: InjectionToken<any>,\n project: TuiHandler<TuiFormOptions['size'], string>,\n): Provider {\n return {\n provide,\n useFactory: () => ({\n ...inject(provide, {skipSelf: true}),\n size: project(inject(TuiForm).size() || inject(TUI_FORM_OPTIONS).size || 'l'),\n }),\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,56 +1,38 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject, Directive, Input } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ViewEncapsulation, Component, inject, input, Directive } from '@angular/core';
3
3
  import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
4
4
  import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
5
5
  import { tuiButtonOptionsProvider } from '@taiga-ui/core/components/button';
6
- import { tuiAvatarOptionsProvider } from '@taiga-ui/kit/components/avatar';
7
- import { tuiBadgeOptionsProvider } from '@taiga-ui/kit/components/badge';
8
6
 
9
- const [TUI_HEADER_OPTIONS, tuiHeaderOptionsProvider] = tuiCreateOptions({
10
- size: 'h5',
11
- });
12
- class TuiHeaderStyles {
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHeaderStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiHeaderStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-header" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiHeader]{position:relative;display:flex;align-items:flex-start;box-sizing:content-box;color:var(--tui-text-primary);margin:0;text-align:start;overflow-wrap:break-word}[tuiHeader] p{margin:.25rem 0 0;font:var(--tui-font-text-m)}[tuiHeader] p:empty{display:none}[tuiHeader] [tuiTitle]{flex-grow:2;margin:0}[tuiHeader] [tuiTitle]:empty{display:none}[tuiHeader] [tuiAccessories]{display:flex;align-items:center;gap:.75rem;white-space:nowrap}[tuiHeader] [tuiAccessories]:has([tuiLink]){align-items:baseline}[tuiHeader] [tuiAccessories]:before{content:\"\\200b\";visibility:hidden}[tuiHeader] [tuiSubtitle]{font:var(--tui-font-text-m);color:var(--tui-text-secondary);margin:0}[tuiHeader] [tuiLink]{font:var(--tui-font-text-m)}[tuiHeader] [tuiCaption]{font:var(--tui-font-text-s);color:var(--tui-text-secondary);font-weight:500;text-transform:uppercase;margin:0}[tuiHeader][data-size=xxl] [tuiTitle],[tuiHeader][data-size=h1] [tuiTitle],[tuiHeader][data-size=xxl] [tuiAccessories],[tuiHeader][data-size=h1] [tuiAccessories]{font:var(--tui-font-heading-1)}[tuiHeader][data-size=xl] [tuiTitle],[tuiHeader][data-size=h2] [tuiTitle],[tuiHeader][data-size=xl] [tuiAccessories],[tuiHeader][data-size=h2] [tuiAccessories]{font:var(--tui-font-heading-2)}[tuiHeader][data-size=l] [tuiTitle],[tuiHeader][data-size=h3] [tuiTitle],[tuiHeader][data-size=l] [tuiAccessories],[tuiHeader][data-size=h3] [tuiAccessories]{font:var(--tui-font-heading-3)}[tuiHeader][data-size=m] [tuiTitle],[tuiHeader][data-size=h4] [tuiTitle],[tuiHeader][data-size=m] [tuiAccessories],[tuiHeader][data-size=h4] [tuiAccessories]{font:var(--tui-font-heading-4)}[tuiHeader][data-size=s] [tuiTitle],[tuiHeader][data-size=h5] [tuiTitle],[tuiHeader][data-size=s] [tuiAccessories],[tuiHeader][data-size=h5] [tuiAccessories]{font:var(--tui-font-heading-5)}[tuiHeader][data-size=xs] [tuiTitle],[tuiHeader][data-size=h6] [tuiTitle],[tuiHeader][data-size=xs] [tuiAccessories],[tuiHeader][data-size=h6] [tuiAccessories]{font:var(--tui-font-heading-6)}[tuiHeader][data-size=xxs] [tuiTitle],[tuiHeader][data-size=body-xl] [tuiTitle],[tuiHeader][data-size=xxs] [tuiAccessories],[tuiHeader][data-size=body-xl] [tuiAccessories]{font:var(--tui-font-text-xl)}[tuiHeader][data-size=xxs] [tuiTitle],[tuiHeader][data-size=body-xl] [tuiTitle]{font-weight:700}[tuiHeader][data-size=body-l] [tuiTitle],[tuiHeader][data-size=body-l] [tuiAccessories]{font:var(--tui-font-text-l)}[tuiHeader][data-size=body-l] [tuiTitle]{font-weight:700}[tuiHeader][data-size=body-m] [tuiTitle],[tuiHeader][data-size=body-m] [tuiAccessories]{font:var(--tui-font-text-m)}[tuiHeader][data-size=body-m] [tuiTitle]{gap:.125rem;font-weight:700}[tuiHeader][data-size=body-m] [tuiSubtitle],[tuiHeader][data-size=body-l] [tuiSubtitle],[tuiHeader][data-size=body-m] [tuiLink],[tuiHeader][data-size=body-l] [tuiLink]{font:var(--tui-font-text-s)}[tuiHeader][data-size=xxl] [tuiSubtitle],[tuiHeader][data-size=xl] [tuiSubtitle],[tuiHeader][data-size=l] [tuiSubtitle],[tuiHeader][data-size=h1] [tuiSubtitle],[tuiHeader][data-size=h2] [tuiSubtitle],[tuiHeader][data-size=h3] [tuiSubtitle],[tuiHeader][data-size=xxl] [tuiLink],[tuiHeader][data-size=xl] [tuiLink],[tuiHeader][data-size=l] [tuiLink],[tuiHeader][data-size=h1] [tuiLink],[tuiHeader][data-size=h2] [tuiLink],[tuiHeader][data-size=h3] [tuiLink]{font:var(--tui-font-text-l)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
+ const [TUI_HEADER_OPTIONS, tuiHeaderOptionsProvider] = tuiCreateOptions({ size: 'h5' });
8
+ class Styles {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-header" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiHeader]{position:relative;display:flex;align-items:flex-start;box-sizing:content-box;color:var(--tui-text-primary);margin:0;text-align:start;overflow-wrap:break-word}[tuiHeader] p{margin:.25rem 0 0;font:var(--tui-font-body-m)}[tuiHeader] p:empty{display:none}[tuiHeader] [tuiTitle]{flex-grow:2;margin:0;font:inherit}[tuiHeader] [tuiTitle]:empty{display:none}[tuiHeader] [tuiAccessories]{display:flex;align-items:center;gap:.75rem;white-space:nowrap}[tuiHeader] [tuiAccessories]:has([tuiLink]){align-items:baseline}[tuiHeader] [tuiAccessories]:before{content:\"\\200b\";visibility:hidden}[tuiHeader] [tuiSubtitle]{font:var(--tui-font-body-m);color:var(--tui-text-secondary);margin:0}[tuiHeader] [tuiLink]{font:var(--tui-font-body-m)}[tuiHeader] [tuiCaption]{font:var(--tui-font-body-s);color:var(--tui-text-secondary);font-weight:500;text-transform:uppercase;margin:0}[tuiHeader][data-size=h1]{font:var(--tui-font-heading-h1)}[tuiHeader][data-size=h2]{font:var(--tui-font-heading-h2)}[tuiHeader][data-size=h3]{font:var(--tui-font-heading-h3)}[tuiHeader][data-size=h4]{font:var(--tui-font-heading-h4)}[tuiHeader][data-size=h5]{font:var(--tui-font-heading-h5)}[tuiHeader][data-size=h6]{font:var(--tui-font-heading-h6)}[tuiHeader][data-size=body-l]{font:var(--tui-font-body-l)}[tuiHeader][data-size=body-l] [tuiTitle]{font-weight:700}[tuiHeader][data-size=body-m]{font:var(--tui-font-body-m)}[tuiHeader][data-size=body-m] [tuiTitle]{gap:.125rem;font-weight:700}[tuiHeader][data-size=body-m] [tuiSubtitle],[tuiHeader][data-size=body-l] [tuiSubtitle],[tuiHeader][data-size=body-m] [tuiLink],[tuiHeader][data-size=body-l] [tuiLink]{font:var(--tui-font-body-s)}[tuiHeader][data-size=h1] [tuiSubtitle],[tuiHeader][data-size=h2] [tuiSubtitle],[tuiHeader][data-size=h3] [tuiSubtitle],[tuiHeader][data-size=h1] [tuiLink],[tuiHeader][data-size=h2] [tuiLink],[tuiHeader][data-size=h3] [tuiLink]{font:var(--tui-font-body-l)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
15
11
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHeaderStyles, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: Styles, decorators: [{
17
13
  type: Component,
18
- args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
19
- class: 'tui-header',
20
- }, styles: ["[tuiHeader]{position:relative;display:flex;align-items:flex-start;box-sizing:content-box;color:var(--tui-text-primary);margin:0;text-align:start;overflow-wrap:break-word}[tuiHeader] p{margin:.25rem 0 0;font:var(--tui-font-text-m)}[tuiHeader] p:empty{display:none}[tuiHeader] [tuiTitle]{flex-grow:2;margin:0}[tuiHeader] [tuiTitle]:empty{display:none}[tuiHeader] [tuiAccessories]{display:flex;align-items:center;gap:.75rem;white-space:nowrap}[tuiHeader] [tuiAccessories]:has([tuiLink]){align-items:baseline}[tuiHeader] [tuiAccessories]:before{content:\"\\200b\";visibility:hidden}[tuiHeader] [tuiSubtitle]{font:var(--tui-font-text-m);color:var(--tui-text-secondary);margin:0}[tuiHeader] [tuiLink]{font:var(--tui-font-text-m)}[tuiHeader] [tuiCaption]{font:var(--tui-font-text-s);color:var(--tui-text-secondary);font-weight:500;text-transform:uppercase;margin:0}[tuiHeader][data-size=xxl] [tuiTitle],[tuiHeader][data-size=h1] [tuiTitle],[tuiHeader][data-size=xxl] [tuiAccessories],[tuiHeader][data-size=h1] [tuiAccessories]{font:var(--tui-font-heading-1)}[tuiHeader][data-size=xl] [tuiTitle],[tuiHeader][data-size=h2] [tuiTitle],[tuiHeader][data-size=xl] [tuiAccessories],[tuiHeader][data-size=h2] [tuiAccessories]{font:var(--tui-font-heading-2)}[tuiHeader][data-size=l] [tuiTitle],[tuiHeader][data-size=h3] [tuiTitle],[tuiHeader][data-size=l] [tuiAccessories],[tuiHeader][data-size=h3] [tuiAccessories]{font:var(--tui-font-heading-3)}[tuiHeader][data-size=m] [tuiTitle],[tuiHeader][data-size=h4] [tuiTitle],[tuiHeader][data-size=m] [tuiAccessories],[tuiHeader][data-size=h4] [tuiAccessories]{font:var(--tui-font-heading-4)}[tuiHeader][data-size=s] [tuiTitle],[tuiHeader][data-size=h5] [tuiTitle],[tuiHeader][data-size=s] [tuiAccessories],[tuiHeader][data-size=h5] [tuiAccessories]{font:var(--tui-font-heading-5)}[tuiHeader][data-size=xs] [tuiTitle],[tuiHeader][data-size=h6] [tuiTitle],[tuiHeader][data-size=xs] [tuiAccessories],[tuiHeader][data-size=h6] [tuiAccessories]{font:var(--tui-font-heading-6)}[tuiHeader][data-size=xxs] [tuiTitle],[tuiHeader][data-size=body-xl] [tuiTitle],[tuiHeader][data-size=xxs] [tuiAccessories],[tuiHeader][data-size=body-xl] [tuiAccessories]{font:var(--tui-font-text-xl)}[tuiHeader][data-size=xxs] [tuiTitle],[tuiHeader][data-size=body-xl] [tuiTitle]{font-weight:700}[tuiHeader][data-size=body-l] [tuiTitle],[tuiHeader][data-size=body-l] [tuiAccessories]{font:var(--tui-font-text-l)}[tuiHeader][data-size=body-l] [tuiTitle]{font-weight:700}[tuiHeader][data-size=body-m] [tuiTitle],[tuiHeader][data-size=body-m] [tuiAccessories]{font:var(--tui-font-text-m)}[tuiHeader][data-size=body-m] [tuiTitle]{gap:.125rem;font-weight:700}[tuiHeader][data-size=body-m] [tuiSubtitle],[tuiHeader][data-size=body-l] [tuiSubtitle],[tuiHeader][data-size=body-m] [tuiLink],[tuiHeader][data-size=body-l] [tuiLink]{font:var(--tui-font-text-s)}[tuiHeader][data-size=xxl] [tuiSubtitle],[tuiHeader][data-size=xl] [tuiSubtitle],[tuiHeader][data-size=l] [tuiSubtitle],[tuiHeader][data-size=h1] [tuiSubtitle],[tuiHeader][data-size=h2] [tuiSubtitle],[tuiHeader][data-size=h3] [tuiSubtitle],[tuiHeader][data-size=xxl] [tuiLink],[tuiHeader][data-size=xl] [tuiLink],[tuiHeader][data-size=l] [tuiLink],[tuiHeader][data-size=h1] [tuiLink],[tuiHeader][data-size=h2] [tuiLink],[tuiHeader][data-size=h3] [tuiLink]{font:var(--tui-font-text-l)}\n"] }]
14
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-header' }, styles: ["[tuiHeader]{position:relative;display:flex;align-items:flex-start;box-sizing:content-box;color:var(--tui-text-primary);margin:0;text-align:start;overflow-wrap:break-word}[tuiHeader] p{margin:.25rem 0 0;font:var(--tui-font-body-m)}[tuiHeader] p:empty{display:none}[tuiHeader] [tuiTitle]{flex-grow:2;margin:0;font:inherit}[tuiHeader] [tuiTitle]:empty{display:none}[tuiHeader] [tuiAccessories]{display:flex;align-items:center;gap:.75rem;white-space:nowrap}[tuiHeader] [tuiAccessories]:has([tuiLink]){align-items:baseline}[tuiHeader] [tuiAccessories]:before{content:\"\\200b\";visibility:hidden}[tuiHeader] [tuiSubtitle]{font:var(--tui-font-body-m);color:var(--tui-text-secondary);margin:0}[tuiHeader] [tuiLink]{font:var(--tui-font-body-m)}[tuiHeader] [tuiCaption]{font:var(--tui-font-body-s);color:var(--tui-text-secondary);font-weight:500;text-transform:uppercase;margin:0}[tuiHeader][data-size=h1]{font:var(--tui-font-heading-h1)}[tuiHeader][data-size=h2]{font:var(--tui-font-heading-h2)}[tuiHeader][data-size=h3]{font:var(--tui-font-heading-h3)}[tuiHeader][data-size=h4]{font:var(--tui-font-heading-h4)}[tuiHeader][data-size=h5]{font:var(--tui-font-heading-h5)}[tuiHeader][data-size=h6]{font:var(--tui-font-heading-h6)}[tuiHeader][data-size=body-l]{font:var(--tui-font-body-l)}[tuiHeader][data-size=body-l] [tuiTitle]{font-weight:700}[tuiHeader][data-size=body-m]{font:var(--tui-font-body-m)}[tuiHeader][data-size=body-m] [tuiTitle]{gap:.125rem;font-weight:700}[tuiHeader][data-size=body-m] [tuiSubtitle],[tuiHeader][data-size=body-l] [tuiSubtitle],[tuiHeader][data-size=body-m] [tuiLink],[tuiHeader][data-size=body-l] [tuiLink]{font:var(--tui-font-body-s)}[tuiHeader][data-size=h1] [tuiSubtitle],[tuiHeader][data-size=h2] [tuiSubtitle],[tuiHeader][data-size=h3] [tuiSubtitle],[tuiHeader][data-size=h1] [tuiLink],[tuiHeader][data-size=h2] [tuiLink],[tuiHeader][data-size=h3] [tuiLink]{font:var(--tui-font-body-l)}\n"] }]
21
15
  }] });
22
16
  class TuiHeader {
23
17
  constructor() {
18
+ this.nothing = tuiWithStyles(Styles);
24
19
  this.options = inject(TUI_HEADER_OPTIONS);
25
- this.nothing = tuiWithStyles(TuiHeaderStyles);
26
- this.size = this.options.size;
20
+ this.tuiHeader = input(this.options.size);
27
21
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiHeader, isStandalone: true, selector: "[tuiHeader]", inputs: { size: ["tuiHeader", "size"] }, host: { attributes: { "tuiHeader": "" }, properties: { "attr.data-size": "size || options.size" } }, providers: [
30
- tuiAvatarOptionsProvider({ size: 's' }),
31
- tuiButtonOptionsProvider({ size: 's' }),
32
- tuiBadgeOptionsProvider({ size: 'm' }),
33
- ], ngImport: i0 }); }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", type: TuiHeader, isStandalone: true, selector: "[tuiHeader]", inputs: { tuiHeader: { classPropertyName: "tuiHeader", publicName: "tuiHeader", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "tuiHeader": "" }, properties: { "attr.data-size": "tuiHeader() || options.size || \"h5\"" } }, providers: [tuiButtonOptionsProvider({ size: 's' })], ngImport: i0 }); }
34
24
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHeader, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiHeader, decorators: [{
36
26
  type: Directive,
37
27
  args: [{
38
- standalone: true,
39
28
  selector: '[tuiHeader]',
40
- providers: [
41
- tuiAvatarOptionsProvider({ size: 's' }),
42
- tuiButtonOptionsProvider({ size: 's' }),
43
- tuiBadgeOptionsProvider({ size: 'm' }),
44
- ],
29
+ providers: [tuiButtonOptionsProvider({ size: 's' })],
45
30
  host: {
46
31
  tuiHeader: '',
47
- '[attr.data-size]': 'size || options.size',
32
+ '[attr.data-size]': 'tuiHeader() || options.size || "h5"',
48
33
  },
49
34
  }]
50
- }], propDecorators: { size: [{
51
- type: Input,
52
- args: ['tuiHeader']
53
- }] } });
35
+ }] });
54
36
 
55
37
  /**
56
38
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-layout-components-header.mjs","sources":["../../../projects/layout/components/header/header.directive.ts","../../../projects/layout/components/header/taiga-ui-layout-components-header.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\nimport {tuiAvatarOptionsProvider} from '@taiga-ui/kit/components/avatar';\nimport {tuiBadgeOptionsProvider} from '@taiga-ui/kit/components/badge';\n\nexport const [TUI_HEADER_OPTIONS, tuiHeaderOptionsProvider] = tuiCreateOptions<{\n size:\n | TuiSizeXXL\n | TuiSizeXXS\n | 'body-l'\n | 'body-m'\n | 'body-xl'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6';\n}>({\n size: 'h5',\n});\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./header.styles.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-header',\n },\n})\nclass TuiHeaderStyles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiHeader]',\n providers: [\n tuiAvatarOptionsProvider({size: 's'}),\n tuiButtonOptionsProvider({size: 's'}),\n tuiBadgeOptionsProvider({size: 'm'}),\n ],\n host: {\n tuiHeader: '',\n '[attr.data-size]': 'size || options.size',\n },\n})\nexport class TuiHeader {\n protected readonly options = inject(TUI_HEADER_OPTIONS);\n protected readonly nothing = tuiWithStyles(TuiHeaderStyles);\n\n @Input('tuiHeader')\n public size:\n | TuiSizeXXL\n | TuiSizeXXS\n | ''\n | 'body-l'\n | 'body-m'\n | 'body-xl'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6' = this.options.size;\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-layout-components-header.mjs","sources":["../../../projects/layout/components/header/header.directive.ts","../../../projects/layout/components/header/taiga-ui-layout-components-header.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\n\nexport const [TUI_HEADER_OPTIONS, tuiHeaderOptionsProvider] = tuiCreateOptions<{\n size: '' | 'body-l' | 'body-m' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n}>({size: 'h5'});\n\n@Component({\n template: '',\n styleUrl: './header.styles.less',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-header'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiHeader]',\n providers: [tuiButtonOptionsProvider({size: 's'})],\n host: {\n tuiHeader: '',\n '[attr.data-size]': 'tuiHeader() || options.size || \"h5\"',\n },\n})\nexport class TuiHeader {\n protected readonly nothing = tuiWithStyles(Styles);\n protected readonly options = inject(TUI_HEADER_OPTIONS);\n\n public readonly tuiHeader = input(this.options.size);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAYa,MAAA,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,GAAG,gBAAgB,CAE3E,EAAC,IAAI,EAAE,IAAI,EAAC;AAEf,MAOM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,gHANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,63DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAMV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPX,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAE,EAEG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,KAAK,EAAE,YAAY,EAAC,EAAA,MAAA,EAAA,CAAA,63DAAA,CAAA,EAAA;;MAYlB,SAAS,CAAA;AARtB,IAAA,WAAA,GAAA;AASuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAEvC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACvD;+GALY,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,uCAAA,EAAA,EAAA,EAAA,SAAA,EANP,CAAC,wBAAwB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAMzC,SAAS,EAAA,UAAA,EAAA,CAAA;kBARrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;oBACvB,SAAS,EAAE,CAAC,wBAAwB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC;AAClD,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,EAAE;AACb,wBAAA,kBAAkB,EAAE,qCAAqC;AAC5D,qBAAA;AACJ,iBAAA;;;AChCD;;AAEG;;;;"}
@@ -1,33 +1,34 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, EventEmitter, TemplateRef, Component, ChangeDetectionStrategy, ViewChild, Input, Output } from '@angular/core';
3
- import { toSignal } from '@angular/core/rxjs-interop';
2
+ import { viewChild, TemplateRef, inject, input, model, ChangeDetectionStrategy, Component } from '@angular/core';
4
3
  import { tuiInjectElement, tuiIsElement, tuiContainsOrAfter } from '@taiga-ui/cdk/utils/dom';
5
4
  import { tuiGetClosestFocusable } from '@taiga-ui/cdk/utils/focus';
6
- import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils/miscellaneous';
7
- import * as i1 from '@taiga-ui/core/components/textfield';
8
- import { TuiTextfieldComponent, TuiWithTextfield } from '@taiga-ui/core/components/textfield';
9
- import { TuiIcons } from '@taiga-ui/core/directives/icons';
10
- import { TuiPopupService } from '@taiga-ui/core/directives/popup';
5
+ import { tuiCellOptionsProvider } from '@taiga-ui/core/components/cell';
6
+ import * as i1 from '@taiga-ui/core/components/input';
7
+ import { TuiWithInput } from '@taiga-ui/core/components/input';
8
+ import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
9
+ import { tuiIconStart } from '@taiga-ui/core/directives/icons';
10
+ import { TuiPopupService } from '@taiga-ui/core/portals/popup';
11
11
  import { TUI_COMMON_ICONS } from '@taiga-ui/core/tokens';
12
- import { tuiCellOptionsProvider } from '@taiga-ui/layout/components/cell';
13
12
  import { TUI_INPUT_SEARCH } from '@taiga-ui/layout/tokens';
14
13
  import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
15
14
 
16
15
  class TuiInputSearch {
17
16
  constructor() {
17
+ this.template = viewChild.required(TemplateRef);
18
+ this.container = viewChild('container');
18
19
  this.el = tuiInjectElement();
19
20
  this.service = inject(TuiPopupService);
20
21
  this.textfield = inject(TuiTextfieldComponent);
21
- this.i18n = toSignal(inject(TUI_INPUT_SEARCH));
22
+ this.i18n = inject(TUI_INPUT_SEARCH);
22
23
  this.parent = this.textfield.el.parentElement;
23
24
  this.neighbor = this.textfield.el.nextSibling;
24
25
  this.placeholder = '';
25
- this.icon = tuiDirectiveBinding(TuiIcons, 'iconStart', inject(TUI_COMMON_ICONS).search, {});
26
- this.tuiInputSearchOpen = false;
27
- this.tuiInputSearchOpenChange = new EventEmitter();
26
+ this.icon = tuiIconStart(inject(TUI_COMMON_ICONS).search, {});
27
+ this.tuiInputSearch = input();
28
+ this.searchOpen = model(false, { alias: 'tuiInputSearchOpen' });
28
29
  }
29
30
  ngOnChanges() {
30
- if (this.tuiInputSearchOpen) {
31
+ if (this.searchOpen()) {
31
32
  this.open();
32
33
  }
33
34
  else {
@@ -35,64 +36,50 @@ class TuiInputSearch {
35
36
  }
36
37
  }
37
38
  open() {
38
- if (this.ref?.destroyed === false || !this.template) {
39
+ if (this.ref?.destroyed === false) {
39
40
  return;
40
41
  }
41
42
  this.placeholder = this.el.placeholder;
42
43
  this.parent = this.textfield.el.parentElement;
43
44
  this.neighbor = this.textfield.el.nextSibling;
44
- this.ref = this.service.addTemplate(this.template);
45
+ this.ref = this.service.add(this.template());
45
46
  this.ref.rootNodes[0]?.insertAdjacentElement('afterbegin', this.textfield.el);
46
47
  this.el.focus({ preventScroll: true });
47
48
  this.el.placeholder = this.i18n()?.placeholder || this.el.placeholder;
48
- this.tuiInputSearchOpen = true;
49
- this.tuiInputSearchOpenChange.emit(true);
49
+ this.searchOpen.set(true);
50
50
  }
51
51
  close() {
52
52
  this.el.placeholder = this.placeholder || this.el.placeholder;
53
53
  this.parent?.insertBefore(this.textfield.el, this.neighbor);
54
54
  this.ref?.destroy();
55
- this.tuiInputSearchOpen = false;
56
- this.tuiInputSearchOpenChange.emit(false);
55
+ this.searchOpen.set(false);
57
56
  }
58
57
  onArrow() {
59
58
  tuiGetClosestFocusable({
60
- initial: this.container?.nativeElement || this.el,
61
- root: this.container?.nativeElement || this.el,
59
+ initial: this.container()?.nativeElement || this.el,
60
+ root: this.container()?.nativeElement || this.el,
62
61
  })?.focus();
63
62
  }
64
63
  onFocus({ target }) {
65
- if (this.container &&
64
+ if (this.container() &&
66
65
  target !== this.el &&
67
66
  tuiIsElement(target) &&
68
- !tuiContainsOrAfter(this.container.nativeElement, target)) {
67
+ !tuiContainsOrAfter(this.container().nativeElement, target)) {
69
68
  this.close();
70
69
  }
71
70
  }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputSearch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputSearch, isStandalone: true, selector: "input[tuiInputSearch]", inputs: { tuiInputSearch: "tuiInputSearch", tuiInputSearchOpen: "tuiInputSearchOpen" }, outputs: { tuiInputSearchOpenChange: "tuiInputSearchOpenChange" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "focus": "open()", "keydown.tab.prevent": "0", "keydown.arrowDown.prevent": "onArrow()" } }, providers: [tuiCellOptionsProvider({ size: 'm' })], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.TuiWithTextfield }], ngImport: i0, template: "<ng-template>\n <div\n tuiTheme=\"dark\"\n class=\"t-container\"\n (document:focusin)=\"onFocus($event)\"\n (keydown.esc)=\"close()\"\n (pointerdown.self)=\"close()\"\n >\n <div\n #container\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"tuiInputSearch\" />\n </div>\n </div>\n</ng-template>\n", styles: [".t-container{position:fixed;top:0;left:0;bottom:0;right:0;display:grid;gap:.25rem;grid-template:-webkit-min-content / minmax(auto,50rem);grid-template:min-content / minmax(auto,50rem);place-content:start center;padding:.5rem;background:var(--tui-service-backdrop);box-shadow:0 0 0 5rem var(--tui-service-backdrop)}.t-container ::ng-deep>tui-textfield{background:var(--tui-background-base-alt)}.t-content{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputSearch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.17", type: TuiInputSearch, isStandalone: true, selector: "input[tuiInputSearch]", inputs: { tuiInputSearch: { classPropertyName: "tuiInputSearch", publicName: "tuiInputSearch", isSignal: true, isRequired: false, transformFunction: null }, searchOpen: { classPropertyName: "searchOpen", publicName: "tuiInputSearchOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchOpen: "tuiInputSearchOpenChange" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "focus": "open()", "keydown.tab.prevent": "0", "keydown.arrowDown.prevent": "onArrow()" } }, providers: [tuiCellOptionsProvider({ size: 'm' })], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, isSignal: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.TuiWithInput }], ngImport: i0, template: "<ng-template>\n <div\n tuiTheme=\"dark\"\n class=\"t-container\"\n (document:focusin)=\"onFocus($event)\"\n (keydown.esc)=\"close()\"\n (pointerdown.self)=\"close()\"\n >\n <div\n #container\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"tuiInputSearch()\" />\n </div>\n </div>\n</ng-template>\n", styles: [".t-container{position:fixed;inset:0;display:grid;gap:.25rem;grid-template:min-content / minmax(auto,50rem);place-content:start center;padding:.5rem;background:var(--tui-service-backdrop);box-shadow:0 0 0 5rem var(--tui-service-backdrop)}.t-container ::ng-deep>tui-textfield{-webkit-backdrop-filter:blur(1rem) brightness(.8);backdrop-filter:blur(1rem) brightness(.8)}.t-content{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
73
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputSearch, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiInputSearch, decorators: [{
76
75
  type: Component,
77
- args: [{ standalone: true, selector: 'input[tuiInputSearch]', imports: [PolymorpheusOutlet], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiCellOptionsProvider({ size: 'm' })], hostDirectives: [TuiWithTextfield], host: {
76
+ args: [{ selector: 'input[tuiInputSearch]', imports: [PolymorpheusOutlet], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiCellOptionsProvider({ size: 'm' })], hostDirectives: [TuiWithInput], host: {
78
77
  ngSkipHydration: 'true',
79
78
  '(focus)': 'open()',
80
79
  '(keydown.tab.prevent)': '0',
81
80
  '(keydown.arrowDown.prevent)': 'onArrow()',
82
- }, template: "<ng-template>\n <div\n tuiTheme=\"dark\"\n class=\"t-container\"\n (document:focusin)=\"onFocus($event)\"\n (keydown.esc)=\"close()\"\n (pointerdown.self)=\"close()\"\n >\n <div\n #container\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"tuiInputSearch\" />\n </div>\n </div>\n</ng-template>\n", styles: [".t-container{position:fixed;top:0;left:0;bottom:0;right:0;display:grid;gap:.25rem;grid-template:-webkit-min-content / minmax(auto,50rem);grid-template:min-content / minmax(auto,50rem);place-content:start center;padding:.5rem;background:var(--tui-service-backdrop);box-shadow:0 0 0 5rem var(--tui-service-backdrop)}.t-container ::ng-deep>tui-textfield{background:var(--tui-background-base-alt)}.t-content{overflow:hidden}\n"] }]
83
- }], propDecorators: { template: [{
84
- type: ViewChild,
85
- args: [TemplateRef]
86
- }], container: [{
87
- type: ViewChild,
88
- args: ['container']
89
- }], tuiInputSearch: [{
90
- type: Input
91
- }], tuiInputSearchOpen: [{
92
- type: Input
93
- }], tuiInputSearchOpenChange: [{
94
- type: Output
95
- }] } });
81
+ }, template: "<ng-template>\n <div\n tuiTheme=\"dark\"\n class=\"t-container\"\n (document:focusin)=\"onFocus($event)\"\n (keydown.esc)=\"close()\"\n (pointerdown.self)=\"close()\"\n >\n <div\n #container\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"tuiInputSearch()\" />\n </div>\n </div>\n</ng-template>\n", styles: [".t-container{position:fixed;inset:0;display:grid;gap:.25rem;grid-template:min-content / minmax(auto,50rem);place-content:start center;padding:.5rem;background:var(--tui-service-backdrop);box-shadow:0 0 0 5rem var(--tui-service-backdrop)}.t-container ::ng-deep>tui-textfield{-webkit-backdrop-filter:blur(1rem) brightness(.8);backdrop-filter:blur(1rem) brightness(.8)}.t-content{overflow:hidden}\n"] }]
82
+ }] });
96
83
 
97
84
  /**
98
85
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-layout-components-input-search.mjs","sources":["../../../projects/layout/components/input-search/input-search.component.ts","../../../projects/layout/components/input-search/input-search.component.html","../../../projects/layout/components/input-search/taiga-ui-layout-components-input-search.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n type EmbeddedViewRef,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n tuiContainsOrAfter,\n tuiInjectElement,\n tuiIsElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGetClosestFocusable} from '@taiga-ui/cdk/utils/focus';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiTextfieldComponent,\n TuiWithTextfield,\n} from '@taiga-ui/core/components/textfield';\nimport {TuiIcons} from '@taiga-ui/core/directives/icons';\nimport {TuiPopupService} from '@taiga-ui/core/directives/popup';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {tuiCellOptionsProvider} from '@taiga-ui/layout/components/cell';\nimport {TUI_INPUT_SEARCH} from '@taiga-ui/layout/tokens';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'input[tuiInputSearch]',\n imports: [PolymorpheusOutlet],\n templateUrl: './input-search.component.html',\n styleUrls: ['./input-search.component.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiCellOptionsProvider({size: 'm'})],\n hostDirectives: [TuiWithTextfield],\n host: {\n ngSkipHydration: 'true',\n '(focus)': 'open()',\n '(keydown.tab.prevent)': '0',\n '(keydown.arrowDown.prevent)': 'onArrow()',\n },\n})\nexport class TuiInputSearch implements OnChanges {\n @ViewChild(TemplateRef)\n private readonly template?: TemplateRef<any>;\n\n @ViewChild('container')\n private readonly container?: ElementRef<HTMLElement>;\n\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly service = inject(TuiPopupService);\n private readonly textfield = inject(TuiTextfieldComponent);\n private readonly i18n = toSignal(inject(TUI_INPUT_SEARCH));\n private parent = this.textfield.el.parentElement;\n private neighbor = this.textfield.el.nextSibling;\n private placeholder = '';\n private ref?: EmbeddedViewRef<unknown>;\n\n protected readonly icon = tuiDirectiveBinding(\n TuiIcons,\n 'iconStart',\n inject(TUI_COMMON_ICONS).search,\n {},\n );\n\n @Input()\n public tuiInputSearch: PolymorpheusContent;\n\n @Input()\n public tuiInputSearchOpen = false;\n\n @Output()\n public readonly tuiInputSearchOpenChange = new EventEmitter<boolean>();\n\n public ngOnChanges(): void {\n if (this.tuiInputSearchOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n\n public open(): void {\n if (this.ref?.destroyed === false || !this.template) {\n return;\n }\n\n this.placeholder = this.el.placeholder;\n this.parent = this.textfield.el.parentElement;\n this.neighbor = this.textfield.el.nextSibling;\n this.ref = this.service.addTemplate(this.template);\n this.ref.rootNodes[0]?.insertAdjacentElement('afterbegin', this.textfield.el);\n this.el.focus({preventScroll: true});\n this.el.placeholder = this.i18n()?.placeholder || this.el.placeholder;\n this.tuiInputSearchOpen = true;\n this.tuiInputSearchOpenChange.emit(true);\n }\n\n public close(): void {\n this.el.placeholder = this.placeholder || this.el.placeholder;\n this.parent?.insertBefore(this.textfield.el, this.neighbor);\n this.ref?.destroy();\n this.tuiInputSearchOpen = false;\n this.tuiInputSearchOpenChange.emit(false);\n }\n\n protected onArrow(): void {\n tuiGetClosestFocusable({\n initial: this.container?.nativeElement || this.el,\n root: this.container?.nativeElement || this.el,\n })?.focus();\n }\n\n protected onFocus({target}: Event): void {\n if (\n this.container &&\n target !== this.el &&\n tuiIsElement(target) &&\n !tuiContainsOrAfter(this.container.nativeElement, target)\n ) {\n this.close();\n }\n }\n}\n","<ng-template>\n <div\n tuiTheme=\"dark\"\n class=\"t-container\"\n (document:focusin)=\"onFocus($event)\"\n (keydown.esc)=\"close()\"\n (pointerdown.self)=\"close()\"\n >\n <div\n #container\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"tuiInputSearch\" />\n </div>\n </div>\n</ng-template>\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-layout-components-input-search.mjs","sources":["../../../projects/layout/components/input-search/input-search.component.ts","../../../projects/layout/components/input-search/input-search.component.html","../../../projects/layout/components/input-search/taiga-ui-layout-components-input-search.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n type EmbeddedViewRef,\n inject,\n input,\n model,\n type OnChanges,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport {\n tuiContainsOrAfter,\n tuiInjectElement,\n tuiIsElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGetClosestFocusable} from '@taiga-ui/cdk/utils/focus';\nimport {tuiCellOptionsProvider} from '@taiga-ui/core/components/cell';\nimport {TuiWithInput} from '@taiga-ui/core/components/input';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {tuiIconStart} from '@taiga-ui/core/directives/icons';\nimport {TuiPopupService} from '@taiga-ui/core/portals/popup';\nimport {TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {TUI_INPUT_SEARCH} from '@taiga-ui/layout/tokens';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'input[tuiInputSearch]',\n imports: [PolymorpheusOutlet],\n templateUrl: './input-search.component.html',\n styleUrl: './input-search.component.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiCellOptionsProvider({size: 'm'})],\n hostDirectives: [TuiWithInput],\n host: {\n ngSkipHydration: 'true',\n '(focus)': 'open()',\n '(keydown.tab.prevent)': '0',\n '(keydown.arrowDown.prevent)': 'onArrow()',\n },\n})\nexport class TuiInputSearch implements OnChanges {\n private readonly template = viewChild.required(TemplateRef);\n private readonly container = viewChild<ElementRef<HTMLElement>>('container');\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly service = inject(TuiPopupService);\n private readonly textfield = inject(TuiTextfieldComponent);\n private readonly i18n = inject(TUI_INPUT_SEARCH);\n private parent = this.textfield.el.parentElement;\n private neighbor = this.textfield.el.nextSibling;\n private placeholder = '';\n private ref?: EmbeddedViewRef<unknown>;\n\n protected readonly icon = tuiIconStart(inject(TUI_COMMON_ICONS).search, {});\n\n public readonly tuiInputSearch = input<PolymorpheusContent>();\n\n public searchOpen = model(false, {alias: 'tuiInputSearchOpen'});\n\n public ngOnChanges(): void {\n if (this.searchOpen()) {\n this.open();\n } else {\n this.close();\n }\n }\n\n public open(): void {\n if (this.ref?.destroyed === false) {\n return;\n }\n\n this.placeholder = this.el.placeholder;\n this.parent = this.textfield.el.parentElement;\n this.neighbor = this.textfield.el.nextSibling;\n this.ref = this.service.add(this.template());\n this.ref.rootNodes[0]?.insertAdjacentElement('afterbegin', this.textfield.el);\n this.el.focus({preventScroll: true});\n this.el.placeholder = this.i18n()?.placeholder || this.el.placeholder;\n this.searchOpen.set(true);\n }\n\n public close(): void {\n this.el.placeholder = this.placeholder || this.el.placeholder;\n this.parent?.insertBefore(this.textfield.el, this.neighbor);\n this.ref?.destroy();\n this.searchOpen.set(false);\n }\n\n protected onArrow(): void {\n tuiGetClosestFocusable({\n initial: this.container()?.nativeElement || this.el,\n root: this.container()?.nativeElement || this.el,\n })?.focus();\n }\n\n protected onFocus({target}: Event): void {\n if (\n this.container() &&\n target !== this.el &&\n tuiIsElement(target) &&\n !tuiContainsOrAfter(this.container()!.nativeElement, target)\n ) {\n this.close();\n }\n }\n}\n","<ng-template>\n <div\n tuiTheme=\"dark\"\n class=\"t-container\"\n (document:focusin)=\"onFocus($event)\"\n (keydown.esc)=\"close()\"\n (pointerdown.self)=\"close()\"\n >\n <div\n #container\n class=\"t-content\"\n >\n <ng-container *polymorpheusOutlet=\"tuiInputSearch()\" />\n </div>\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}