@taiga-ui/kit 4.52.0-canary.91aeb4a → 4.52.0-canary.974ca4b

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 (186) hide show
  1. package/README.md +1 -1
  2. package/components/badge/badge.options.d.ts +1 -3
  3. package/components/badge-notification/badge-notification.options.d.ts +1 -3
  4. package/components/block/block.options.d.ts +1 -3
  5. package/components/breadcrumbs/breadcrumbs.options.d.ts +1 -3
  6. package/components/chip/chip.options.d.ts +1 -3
  7. package/components/confirm/confirm.component.d.ts +1 -1
  8. package/components/files/file/file.options.d.ts +1 -1
  9. package/components/files/input-files/input-files.options.d.ts +1 -3
  10. package/components/input-number/input-number.directive.d.ts +5 -9
  11. package/components/input-phone-international/input-phone-international.options.d.ts +1 -3
  12. package/components/input-range/input-range.component.d.ts +1 -1
  13. package/components/line-clamp/line-clamp.options.d.ts +1 -3
  14. package/components/notification-middle/notification-middle.component.d.ts +2 -2
  15. package/components/notification-middle/notification-middle.directive.d.ts +4 -3
  16. package/components/notification-middle/notification-middle.service.d.ts +7 -3
  17. package/components/pagination/index.d.ts +1 -0
  18. package/components/pagination/pagination.component.d.ts +2 -1
  19. package/components/pagination/pagination.options.d.ts +10 -0
  20. package/components/preview/dialog/preview-dialog.component.d.ts +2 -2
  21. package/components/preview/dialog/preview-dialog.directive.d.ts +3 -3
  22. package/components/preview/dialog/preview-dialog.service.d.ts +5 -2
  23. package/components/preview/preview.d.ts +2 -1
  24. package/components/progress/progress.options.d.ts +1 -3
  25. package/components/rating/rating.options.d.ts +1 -3
  26. package/components/slider/slider.options.d.ts +1 -6
  27. package/components/tabs/tabs.options.d.ts +1 -6
  28. package/components/toast/toast.component.d.ts +2 -2
  29. package/components/tree/components/tree-item-content/tree-item-content.component.d.ts +7 -0
  30. package/components/tree/misc/tree.constants.d.ts +0 -3
  31. package/components/tree/misc/tree.tokens.d.ts +1 -6
  32. package/directives/button-select/button-select.directive.d.ts +2 -1
  33. package/directives/fluid-typography/fluid-typography.options.d.ts +1 -3
  34. package/fesm2022/taiga-ui-kit-components-accordion.mjs +1 -2
  35. package/fesm2022/taiga-ui-kit-components-accordion.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-kit-components-avatar.mjs +3 -3
  37. package/fesm2022/taiga-ui-kit-components-avatar.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs +4 -9
  39. package/fesm2022/taiga-ui-kit-components-badge-notification.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-kit-components-badge.mjs +4 -8
  41. package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-kit-components-badged-content.mjs +0 -1
  43. package/fesm2022/taiga-ui-kit-components-badged-content.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-kit-components-block.mjs +4 -8
  45. package/fesm2022/taiga-ui-kit-components-block.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs +3 -8
  47. package/fesm2022/taiga-ui-kit-components-breadcrumbs.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +2 -2
  49. package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-kit-components-carousel.mjs +1 -7
  51. package/fesm2022/taiga-ui-kit-components-carousel.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-kit-components-checkbox.mjs +1 -1
  53. package/fesm2022/taiga-ui-kit-components-checkbox.mjs.map +1 -1
  54. package/fesm2022/taiga-ui-kit-components-chip.mjs +6 -10
  55. package/fesm2022/taiga-ui-kit-components-chip.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-kit-components-combo-box.mjs +0 -1
  57. package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-kit-components-compass.mjs +3 -3
  59. package/fesm2022/taiga-ui-kit-components-compass.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-kit-components-confirm.mjs +2 -3
  61. package/fesm2022/taiga-ui-kit-components-confirm.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-kit-components-copy.mjs +0 -1
  63. package/fesm2022/taiga-ui-kit-components-copy.mjs.map +1 -1
  64. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs +0 -1
  65. package/fesm2022/taiga-ui-kit-components-elastic-container.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-kit-components-files.mjs +7 -15
  67. package/fesm2022/taiga-ui-kit-components-files.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-kit-components-floating-container.mjs +2 -2
  69. package/fesm2022/taiga-ui-kit-components-floating-container.mjs.map +1 -1
  70. package/fesm2022/taiga-ui-kit-components-input-chip.mjs +0 -2
  71. package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs +2 -6
  73. package/fesm2022/taiga-ui-kit-components-input-date-multi.mjs.map +1 -1
  74. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +0 -1
  75. package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs +2 -3
  77. package/fesm2022/taiga-ui-kit-components-input-date-time.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-kit-components-input-date.mjs +5 -12
  79. package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
  80. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs +0 -1
  81. package/fesm2022/taiga-ui-kit-components-input-month-range.mjs.map +1 -1
  82. package/fesm2022/taiga-ui-kit-components-input-month.mjs +0 -1
  83. package/fesm2022/taiga-ui-kit-components-input-month.mjs.map +1 -1
  84. package/fesm2022/taiga-ui-kit-components-input-number.mjs +19 -43
  85. package/fesm2022/taiga-ui-kit-components-input-number.mjs.map +1 -1
  86. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs +4 -8
  87. package/fesm2022/taiga-ui-kit-components-input-phone-international.mjs.map +1 -1
  88. package/fesm2022/taiga-ui-kit-components-input-phone.mjs +0 -1
  89. package/fesm2022/taiga-ui-kit-components-input-phone.mjs.map +1 -1
  90. package/fesm2022/taiga-ui-kit-components-input-range.mjs +2 -2
  91. package/fesm2022/taiga-ui-kit-components-input-range.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-kit-components-input-time.mjs +0 -1
  93. package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-kit-components-input-year.mjs +0 -1
  95. package/fesm2022/taiga-ui-kit-components-input-year.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs +0 -2
  97. package/fesm2022/taiga-ui-kit-components-items-with-more.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-kit-components-like.mjs +1 -1
  99. package/fesm2022/taiga-ui-kit-components-like.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs +4 -9
  101. package/fesm2022/taiga-ui-kit-components-line-clamp.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-kit-components-message.mjs +0 -1
  103. package/fesm2022/taiga-ui-kit-components-message.mjs.map +1 -1
  104. package/fesm2022/taiga-ui-kit-components-multi-select.mjs +1 -1
  105. package/fesm2022/taiga-ui-kit-components-multi-select.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs +30 -19
  107. package/fesm2022/taiga-ui-kit-components-notification-middle.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-kit-components-pagination.mjs +19 -7
  109. package/fesm2022/taiga-ui-kit-components-pagination.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-kit-components-pin.mjs +2 -2
  111. package/fesm2022/taiga-ui-kit-components-pin.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-kit-components-preview.mjs +27 -19
  113. package/fesm2022/taiga-ui-kit-components-preview.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-kit-components-progress.mjs +7 -12
  115. package/fesm2022/taiga-ui-kit-components-progress.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-kit-components-pulse.mjs +1 -1
  117. package/fesm2022/taiga-ui-kit-components-pulse.mjs.map +1 -1
  118. package/fesm2022/taiga-ui-kit-components-radio.mjs +3 -4
  119. package/fesm2022/taiga-ui-kit-components-radio.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-kit-components-range.mjs +3 -6
  121. package/fesm2022/taiga-ui-kit-components-range.mjs.map +1 -1
  122. package/fesm2022/taiga-ui-kit-components-rating.mjs +3 -8
  123. package/fesm2022/taiga-ui-kit-components-rating.mjs.map +1 -1
  124. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs +7 -3
  125. package/fesm2022/taiga-ui-kit-components-routable-dialog.mjs.map +1 -1
  126. package/fesm2022/taiga-ui-kit-components-segmented.mjs +3 -4
  127. package/fesm2022/taiga-ui-kit-components-segmented.mjs.map +1 -1
  128. package/fesm2022/taiga-ui-kit-components-select.mjs +0 -1
  129. package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
  130. package/fesm2022/taiga-ui-kit-components-slider.mjs +5 -15
  131. package/fesm2022/taiga-ui-kit-components-slider.mjs.map +1 -1
  132. package/fesm2022/taiga-ui-kit-components-switch.mjs +1 -1
  133. package/fesm2022/taiga-ui-kit-components-switch.mjs.map +1 -1
  134. package/fesm2022/taiga-ui-kit-components-tabs.mjs +4 -14
  135. package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
  136. package/fesm2022/taiga-ui-kit-components-textarea.mjs +3 -5
  137. package/fesm2022/taiga-ui-kit-components-textarea.mjs.map +1 -1
  138. package/fesm2022/taiga-ui-kit-components-tiles.mjs +2 -3
  139. package/fesm2022/taiga-ui-kit-components-tiles.mjs.map +1 -1
  140. package/fesm2022/taiga-ui-kit-components-toast.mjs +4 -4
  141. package/fesm2022/taiga-ui-kit-components-toast.mjs.map +1 -1
  142. package/fesm2022/taiga-ui-kit-components-tree.mjs +32 -36
  143. package/fesm2022/taiga-ui-kit-components-tree.mjs.map +1 -1
  144. package/fesm2022/taiga-ui-kit-directives-button-close.mjs +0 -1
  145. package/fesm2022/taiga-ui-kit-directives-button-close.mjs.map +1 -1
  146. package/fesm2022/taiga-ui-kit-directives-button-select.mjs +12 -4
  147. package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
  148. package/fesm2022/taiga-ui-kit-directives-connected.mjs +0 -1
  149. package/fesm2022/taiga-ui-kit-directives-connected.mjs.map +1 -1
  150. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs +0 -1
  151. package/fesm2022/taiga-ui-kit-directives-data-list-dropdown-manager.mjs.map +1 -1
  152. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs +3 -9
  153. package/fesm2022/taiga-ui-kit-directives-fluid-typography.mjs.map +1 -1
  154. package/fesm2022/taiga-ui-kit-directives-highlight.mjs +0 -1
  155. package/fesm2022/taiga-ui-kit-directives-highlight.mjs.map +1 -1
  156. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs +0 -1
  157. package/fesm2022/taiga-ui-kit-directives-lazy-loading.mjs.map +1 -1
  158. package/fesm2022/taiga-ui-kit-directives-password.mjs +0 -1
  159. package/fesm2022/taiga-ui-kit-directives-password.mjs.map +1 -1
  160. package/fesm2022/taiga-ui-kit-directives-present.mjs +0 -1
  161. package/fesm2022/taiga-ui-kit-directives-present.mjs.map +1 -1
  162. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs +2 -2
  163. package/fesm2022/taiga-ui-kit-directives-tooltip.mjs.map +1 -1
  164. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs +0 -1
  165. package/fesm2022/taiga-ui-kit-directives-unfinished-validator.mjs.map +1 -1
  166. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs +0 -1
  167. package/fesm2022/taiga-ui-kit-directives-unmask-handler.mjs.map +1 -1
  168. package/fesm2022/taiga-ui-kit-pipes-emails.mjs +0 -1
  169. package/fesm2022/taiga-ui-kit-pipes-emails.mjs.map +1 -1
  170. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs +0 -1
  171. package/fesm2022/taiga-ui-kit-pipes-filter-by-input.mjs.map +1 -1
  172. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +0 -1
  173. package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -1
  174. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs +0 -1
  175. package/fesm2022/taiga-ui-kit-pipes-sort-countries.mjs.map +1 -1
  176. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs +0 -1
  177. package/fesm2022/taiga-ui-kit-pipes-stringify-content.mjs.map +1 -1
  178. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs +0 -1
  179. package/fesm2022/taiga-ui-kit-pipes-stringify.mjs.map +1 -1
  180. package/fesm2022/taiga-ui-kit-tokens.mjs +2 -17
  181. package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
  182. package/package.json +26 -27
  183. package/tokens/items-handlers.d.ts +1 -7
  184. package/tokens/preview-icons.d.ts +1 -3
  185. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs +0 -64
  186. package/fesm2022/taiga-ui-kit-components-preview-dialog.mjs.map +0 -1
@@ -27,7 +27,6 @@ class TuiMessage {
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiMessage, decorators: [{
28
28
  type: Directive,
29
29
  args: [{
30
- standalone: true,
31
30
  selector: '[tuiMessage]',
32
31
  providers: [
33
32
  {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-message.mjs","sources":["../../../projects/kit/components/message/message.directive.ts","../../../projects/kit/components/message/taiga-ui-kit-components-message.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\n\n@Component({\n template: '',\n styles: '@import \"@taiga-ui/kit/styles/components/message.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-message'},\n})\nclass Styles {}\n\n@Directive({\n standalone: true,\n selector: '[tuiMessage]',\n providers: [\n {\n provide: TUI_APPEARANCE_OPTIONS,\n useValue: {appearance: 'neutral'},\n },\n ],\n hostDirectives: [TuiWithAppearance],\n})\nexport class TuiMessage {\n protected readonly nothing = tuiWithStyles(Styles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAYA,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,iHANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gWAAA,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,aAAa,EAAC,EAAA,MAAA,EAAA,CAAA,gWAAA,CAAA,EAAA;;MAenB,UAAU,CAAA;AAXvB,IAAA,WAAA,GAAA;AAYuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AACrD;+GAFY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EARR,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,QAAQ,EAAE,EAAC,UAAU,EAAE,SAAS,EAAC;AACpC,aAAA;AACJ,SAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,UAAU,EAAA,UAAA,EAAA,CAAA;kBAXtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,QAAQ,EAAE,EAAC,UAAU,EAAE,SAAS,EAAC;AACpC,yBAAA;AACJ,qBAAA;oBACD,cAAc,EAAE,CAAC,iBAAiB,CAAC;AACtC,iBAAA;;;AC/BD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-message.mjs","sources":["../../../projects/kit/components/message/message.directive.ts","../../../projects/kit/components/message/taiga-ui-kit-components-message.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TUI_APPEARANCE_OPTIONS,\n TuiWithAppearance,\n} from '@taiga-ui/core/directives/appearance';\n\n@Component({\n template: '',\n styles: '@import \"@taiga-ui/kit/styles/components/message.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-message'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiMessage]',\n providers: [\n {\n provide: TUI_APPEARANCE_OPTIONS,\n useValue: {appearance: 'neutral'},\n },\n ],\n hostDirectives: [TuiWithAppearance],\n})\nexport class TuiMessage {\n protected readonly nothing = tuiWithStyles(Styles);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAYA,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,iHANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gWAAA,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,aAAa,EAAC,EAAA,MAAA,EAAA,CAAA,gWAAA,CAAA,EAAA;;MAcnB,UAAU,CAAA;AAVvB,IAAA,WAAA,GAAA;AAWuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AACrD;+GAFY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EARR,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,QAAQ,EAAE,EAAC,UAAU,EAAE,SAAS,EAAC;AACpC,aAAA;AACJ,SAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGQ,UAAU,EAAA,UAAA,EAAA,CAAA;kBAVtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,QAAQ,EAAE,EAAC,UAAU,EAAE,SAAS,EAAC;AACpC,yBAAA;AACJ,qBAAA;oBACD,cAAc,EAAE,CAAC,iBAAiB,CAAC;AACtC,iBAAA;;;AC9BD;;AAEG;;;;"}
@@ -48,7 +48,7 @@ class TuiMultiSelectGroupComponent {
48
48
  }
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiMultiSelectGroupComponent, decorators: [{
50
50
  type: Component,
51
- args: [{ standalone: true, selector: 'tui-opt-group[tuiMultiSelectGroup]', imports: [TuiLink], changeDetection: ChangeDetectionStrategy.OnPush, host: {
51
+ args: [{ selector: 'tui-opt-group[tuiMultiSelectGroup]', imports: [TuiLink], changeDetection: ChangeDetectionStrategy.OnPush, host: {
52
52
  '[class._label]': 'label',
53
53
  }, template: "@if (values().length) {\n <span class=\"t-wrapper\">\n <span class=\"t-label\">{{ label }}</span>\n <button\n tuiLink\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ texts()[checked() ? 'none' : 'all'] }}\n </button>\n </span>\n}\n<ng-content />\n", styles: [":host._label:before{display:none}:host:not(:first-of-type) .t-label:not(:empty){padding-block-start:1.25rem}:host:not(:first-of-type) .t-button{margin-block-start:1.25rem}.t-wrapper{display:flex;align-items:flex-start}.t-wrapper:last-child{display:none}.t-label:not(:empty){flex:1;padding:.75rem 1rem .25rem .625rem}:host-context(tui-sheet-dialog) .t-label:not(:empty){font:var(--tui-font-heading-6);padding:.5rem 0}.t-button{margin:.75rem 1rem 0 auto;font-weight:400}:host-context(tui-sheet-dialog) .t-button{margin-inline-end:0}\n"] }]
54
54
  }], propDecorators: { label: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-multi-select.mjs","sources":["../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.template.html","../../../projects/kit/components/multi-select/multi-select-option/multi-select-option.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.directive.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.component.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.template.html","../../../projects/kit/components/multi-select/multi-select.ts","../../../projects/kit/components/multi-select/taiga-ui-kit-components-multi-select.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n inject,\n Input,\n type QueryList,\n signal,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_MULTI_SELECT_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n standalone: true,\n selector: 'tui-opt-group[tuiMultiSelectGroup]',\n imports: [TuiLink],\n templateUrl: './multi-select-group.template.html',\n styleUrl: './multi-select-group.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._label]': 'label',\n },\n})\nexport class TuiMultiSelectGroupComponent<T> {\n private readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n private readonly control =\n inject(TuiTextfieldComponent, {optional: true})?.control ||\n inject(NgControl, {optional: true});\n\n protected readonly values = signal<readonly T[]>([]);\n protected readonly texts = inject(TUI_MULTI_SELECT_TEXTS);\n protected readonly value = tuiInjectValue<readonly T[] | null>();\n protected readonly checked = computed(() =>\n this.values().every((item) =>\n this.value()?.some((value) => this.handlers.identityMatcher()(item, value)),\n ),\n );\n\n @Input()\n public label = '';\n\n @ContentChildren(TuiOptionWithValue)\n protected set options(options: QueryList<TuiOptionWithValue<T>>) {\n this.values.set(\n options\n .toArray()\n .map(({value}) => value())\n .filter(tuiIsPresent),\n );\n }\n\n protected toggle(): void {\n const values = this.values();\n const matcher = this.handlers.identityMatcher();\n const value = this.value() || [];\n const others = value.filter((a) => values.every((b) => !matcher(a, b)));\n\n this.control?.control?.setValue(this.checked() ? others : others.concat(values));\n }\n}\n","@if (values().length) {\n <span class=\"t-wrapper\">\n <span class=\"t-label\">{{ label }}</span>\n <button\n tuiLink\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ texts()[checked() ? 'none' : 'all'] }}\n </button>\n </span>\n}\n<ng-content />\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiCheckbox} from '@taiga-ui/kit/components/checkbox';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n imports: [TuiCheckbox],\n template: `\n @if (option) {\n <input\n tuiCheckbox\n type=\"checkbox\"\n [checked]=\"selected()\"\n [size]=\"size() === 'l' ? 'm' : 's'\"\n />\n }\n `,\n styles: `\n :host-context(tui-dropdown-mobile) input,\n :host-context(tui-sheet-dialog) input {\n order: 100;\n margin-inline-start: auto;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMultiSelectOption<T> {\n protected readonly option = inject<TuiOptionWithValue<T>>(TuiOptionWithValue, {\n optional: true,\n });\n\n protected readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n protected readonly selected = computed(\n (controlValue = this.value(), optionValue = this.option?.value()) =>\n tuiIsPresent(optionValue) &&\n tuiIsPresent(controlValue) &&\n controlValue.some(\n (item) =>\n this.handlers?.identityMatcher()(item, optionValue) ??\n item === optionValue,\n ),\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Directive({\n selector: '[tuiMultiSelectGroup]',\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n})\nexport class TuiMultiSelectGroupDirective {}\n","import {NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject, Input} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_IS_ANDROID, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiIsPresent} from '@taiga-ui/cdk/utils';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsOptionContent, TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {\n TuiSelectLike,\n TuiTextfield,\n TuiTextfieldComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiInputChipDirective} from '@taiga-ui/kit/components/input-chip';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\nimport {TuiMultiSelectGroupComponent} from '../multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Component({\n selector: 'select[tuiMultiSelect]',\n imports: [NgTemplateOutlet, TuiDataList, TuiMultiSelectGroupComponent, TuiTextfield],\n templateUrl: './multi-select-native.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n hostDirectives: [TuiInputChipDirective, TuiSelectLike],\n host: {\n multiple: '',\n '(click.stop.zoneless)': '0',\n '(input)': 'onInput()',\n },\n})\nexport class TuiMultiSelectNative<T> {\n private readonly control: TuiControl<readonly T[]> = inject(TuiControl);\n private readonly textfield = inject(TuiTextfieldComponent);\n\n protected readonly isFlat = tuiIsFlat;\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly el = tuiInjectElement<HTMLSelectElement>();\n protected readonly mobile =\n inject(TUI_IS_IOS) || (inject(TUI_IS_ANDROID) && 'showPicker' in this.el);\n\n protected readonly isSelected = computed(\n (value = this.control.value()) =>\n (x: T) =>\n tuiIsPresent(value) &&\n value.some((item) => this.handlers.identityMatcher()(x, item)),\n );\n\n @Input()\n public items: ReadonlyArray<readonly T[]> | readonly T[] | null = [];\n\n @Input()\n public labels: readonly string[] = [];\n\n @Input()\n public set placeholder(placeholder: string) {\n tuiSetSignal(this.textfield.filler, placeholder);\n }\n\n protected onInput(): void {\n const items = this.items || [];\n const options = Array.from(this.el.selectedOptions).map(({index}) => index);\n\n this.textfield.cva?.onChange(items.flat().filter((_, i) => options.includes(i)));\n }\n}\n","@if (items && !isFlat(items)) {\n @for (group of labels; track group) {\n <optgroup [label]=\"labels[$index]\">\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[$index]}\" />\n </optgroup>\n }\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (group of items; track $index) {\n <tui-opt-group\n tuiMultiSelectGroup\n [label]=\"labels[$index] || ''\"\n >\n @for (item of group; track $index) {\n <button\n new\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-opt-group>\n }\n </tui-data-list>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (item of items; track $index) {\n <button\n new\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-data-list>\n }\n}\n\n<ng-template\n #options\n let-items\n>\n @for (option of items; track option) {\n <option\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n }\n</ng-template>\n","import {TuiMultiSelectGroupComponent} from './multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectGroupDirective} from './multi-select-group/multi-select-group.directive';\nimport {TuiMultiSelectNative} from './multi-select-native/multi-select-native.component';\n\nexport const TuiMultiSelect = [\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiMultiSelectNative,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiIsPresent"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-multi-select.mjs","sources":["../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.template.html","../../../projects/kit/components/multi-select/multi-select-option/multi-select-option.component.ts","../../../projects/kit/components/multi-select/multi-select-group/multi-select-group.directive.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.component.ts","../../../projects/kit/components/multi-select/multi-select-native/multi-select-native.template.html","../../../projects/kit/components/multi-select/multi-select.ts","../../../projects/kit/components/multi-select/taiga-ui-kit-components-multi-select.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n inject,\n Input,\n type QueryList,\n signal,\n} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TUI_MULTI_SELECT_TEXTS} from '@taiga-ui/kit/tokens';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n selector: 'tui-opt-group[tuiMultiSelectGroup]',\n imports: [TuiLink],\n templateUrl: './multi-select-group.template.html',\n styleUrl: './multi-select-group.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._label]': 'label',\n },\n})\nexport class TuiMultiSelectGroupComponent<T> {\n private readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n private readonly control =\n inject(TuiTextfieldComponent, {optional: true})?.control ||\n inject(NgControl, {optional: true});\n\n protected readonly values = signal<readonly T[]>([]);\n protected readonly texts = inject(TUI_MULTI_SELECT_TEXTS);\n protected readonly value = tuiInjectValue<readonly T[] | null>();\n protected readonly checked = computed(() =>\n this.values().every((item) =>\n this.value()?.some((value) => this.handlers.identityMatcher()(item, value)),\n ),\n );\n\n @Input()\n public label = '';\n\n @ContentChildren(TuiOptionWithValue)\n protected set options(options: QueryList<TuiOptionWithValue<T>>) {\n this.values.set(\n options\n .toArray()\n .map(({value}) => value())\n .filter(tuiIsPresent),\n );\n }\n\n protected toggle(): void {\n const values = this.values();\n const matcher = this.handlers.identityMatcher();\n const value = this.value() || [];\n const others = value.filter((a) => values.every((b) => !matcher(a, b)));\n\n this.control?.control?.setValue(this.checked() ? others : others.concat(values));\n }\n}\n","@if (values().length) {\n <span class=\"t-wrapper\">\n <span class=\"t-label\">{{ label }}</span>\n <button\n tuiLink\n type=\"button\"\n class=\"t-button\"\n (click)=\"toggle()\"\n >\n {{ texts()[checked() ? 'none' : 'all'] }}\n </button>\n </span>\n}\n<ng-content />\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiOptionWithValue} from '@taiga-ui/core/components/data-list';\nimport {TUI_TEXTFIELD_OPTIONS} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiCheckbox} from '@taiga-ui/kit/components/checkbox';\nimport {tuiInjectValue} from '@taiga-ui/kit/utils';\n\n@Component({\n imports: [TuiCheckbox],\n template: `\n @if (option) {\n <input\n tuiCheckbox\n type=\"checkbox\"\n [checked]=\"selected()\"\n [size]=\"size() === 'l' ? 'm' : 's'\"\n />\n }\n `,\n styles: `\n :host-context(tui-dropdown-mobile) input,\n :host-context(tui-sheet-dialog) input {\n order: 100;\n margin-inline-start: auto;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMultiSelectOption<T> {\n protected readonly option = inject<TuiOptionWithValue<T>>(TuiOptionWithValue, {\n optional: true,\n });\n\n protected readonly handlers = inject<TuiItemsHandlers<T>>(TUI_ITEMS_HANDLERS);\n protected readonly value = tuiInjectValue<readonly T[]>();\n protected readonly size = inject(TUI_TEXTFIELD_OPTIONS).size;\n protected readonly selected = computed(\n (controlValue = this.value(), optionValue = this.option?.value()) =>\n tuiIsPresent(optionValue) &&\n tuiIsPresent(controlValue) &&\n controlValue.some(\n (item) =>\n this.handlers?.identityMatcher()(item, optionValue) ??\n item === optionValue,\n ),\n );\n}\n","import {Directive} from '@angular/core';\nimport {tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\n\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Directive({\n selector: '[tuiMultiSelectGroup]',\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n})\nexport class TuiMultiSelectGroupDirective {}\n","import {NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject, Input} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_IS_ANDROID, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement, tuiIsPresent} from '@taiga-ui/cdk/utils';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsOptionContent, TuiDataList} from '@taiga-ui/core/components/data-list';\nimport {\n TuiSelectLike,\n TuiTextfield,\n TuiTextfieldComponent,\n} from '@taiga-ui/core/components/textfield';\nimport {\n TUI_ITEMS_HANDLERS,\n type TuiItemsHandlers,\n} from '@taiga-ui/core/directives/items-handlers';\nimport {TuiInputChipDirective} from '@taiga-ui/kit/components/input-chip';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\nimport {TuiMultiSelectGroupComponent} from '../multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectOption} from '../multi-select-option/multi-select-option.component';\n\n@Component({\n selector: 'select[tuiMultiSelect]',\n imports: [NgTemplateOutlet, TuiDataList, TuiMultiSelectGroupComponent, TuiTextfield],\n templateUrl: './multi-select-native.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsOptionContent(TuiMultiSelectOption)],\n hostDirectives: [TuiInputChipDirective, TuiSelectLike],\n host: {\n multiple: '',\n '(click.stop.zoneless)': '0',\n '(input)': 'onInput()',\n },\n})\nexport class TuiMultiSelectNative<T> {\n private readonly control: TuiControl<readonly T[]> = inject(TuiControl);\n private readonly textfield = inject(TuiTextfieldComponent);\n\n protected readonly isFlat = tuiIsFlat;\n protected readonly handlers: TuiItemsHandlers<T> = inject(TUI_ITEMS_HANDLERS);\n protected readonly el = tuiInjectElement<HTMLSelectElement>();\n protected readonly mobile =\n inject(TUI_IS_IOS) || (inject(TUI_IS_ANDROID) && 'showPicker' in this.el);\n\n protected readonly isSelected = computed(\n (value = this.control.value()) =>\n (x: T) =>\n tuiIsPresent(value) &&\n value.some((item) => this.handlers.identityMatcher()(x, item)),\n );\n\n @Input()\n public items: ReadonlyArray<readonly T[]> | readonly T[] | null = [];\n\n @Input()\n public labels: readonly string[] = [];\n\n @Input()\n public set placeholder(placeholder: string) {\n tuiSetSignal(this.textfield.filler, placeholder);\n }\n\n protected onInput(): void {\n const items = this.items || [];\n const options = Array.from(this.el.selectedOptions).map(({index}) => index);\n\n this.textfield.cva?.onChange(items.flat().filter((_, i) => options.includes(i)));\n }\n}\n","@if (items && !isFlat(items)) {\n @for (group of labels; track group) {\n <optgroup [label]=\"labels[$index]\">\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items[$index]}\" />\n </optgroup>\n }\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (group of items; track $index) {\n <tui-opt-group\n tuiMultiSelectGroup\n [label]=\"labels[$index] || ''\"\n >\n @for (item of group; track $index) {\n <button\n new\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-opt-group>\n }\n </tui-data-list>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"options; context: {$implicit: items}\" />\n @if (!mobile) {\n <tui-data-list *tuiDropdown>\n @for (item of items; track $index) {\n <button\n new\n tuiOption\n type=\"button\"\n [disabled]=\"handlers.disabledItemHandler()(item)\"\n [value]=\"item\"\n >\n {{ handlers.stringify()(item) }}\n </button>\n }\n </tui-data-list>\n }\n}\n\n<ng-template\n #options\n let-items\n>\n @for (option of items; track option) {\n <option\n [disabled]=\"handlers.disabledItemHandler()(option)\"\n [selected]=\"isSelected()(option)\"\n [value]=\"handlers.stringify()(option)\"\n >\n {{ handlers.stringify()(option) }}\n </option>\n }\n</ng-template>\n","import {TuiMultiSelectGroupComponent} from './multi-select-group/multi-select-group.component';\nimport {TuiMultiSelectGroupDirective} from './multi-select-group/multi-select-group.directive';\nimport {TuiMultiSelectNative} from './multi-select-native/multi-select-native.component';\n\nexport const TuiMultiSelect = [\n TuiMultiSelectGroupComponent,\n TuiMultiSelectGroupDirective,\n TuiMultiSelectNative,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiIsPresent"],"mappings":";;;;;;;;;;;;;;;;;;;;;MAgCa,4BAA4B,CAAA;AAVzC,IAAA,WAAA,GAAA;AAWqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAsB,kBAAkB,CAAC;AAC1D,QAAA,IAAA,CAAA,OAAO,GACpB,MAAM,CAAC,qBAAqB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,EAAE,OAAO;YACxD,MAAM,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAEpB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAe,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,sBAAsB,CAAC;QACtC,IAAK,CAAA,KAAA,GAAG,cAAc,EAAuB;QAC7C,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,MAClC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KACrB,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAC9E,CACJ;QAGM,IAAK,CAAA,KAAA,GAAG,EAAE;AAoBpB;IAlBG,IACc,OAAO,CAAC,OAAyC,EAAA;AAC3D,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CACX;AACK,aAAA,OAAO;aACP,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,KAAK,KAAK,EAAE;AACxB,aAAA,MAAM,CAAC,YAAY,CAAC,CAC5B;;IAGK,MAAM,GAAA;AACZ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;AAChC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;+GAlC3E,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAkBpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,kBAAkB,EClDvC,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,yWAcA,8kBDUc,OAAO,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAQR,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAVxC,SAAS;+BACI,oCAAoC,EAAA,OAAA,EACrC,CAAC,OAAO,CAAC,mBAGD,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,gBAAgB,EAAE,OAAO;AAC5B,qBAAA,EAAA,QAAA,EAAA,yWAAA,EAAA,MAAA,EAAA,CAAA,shBAAA,CAAA,EAAA;8BAkBM,KAAK,EAAA,CAAA;sBADX;gBAIa,OAAO,EAAA,CAAA;sBADpB,eAAe;uBAAC,kBAAkB;;;MElB1B,oBAAoB,CAAA;AArBjC,IAAA,WAAA,GAAA;AAsBuB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAwB,kBAAkB,EAAE;AAC1E,YAAA,QAAQ,EAAE,IAAI;AACjB,SAAA,CAAC;AAEiB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAsB,kBAAkB,CAAC;QAC1D,IAAK,CAAA,KAAA,GAAG,cAAc,EAAgB;AACtC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI;QACzC,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAClC,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAC5D,YAAY,CAAC,WAAW,CAAC;YACzB,YAAY,CAAC,YAAY,CAAC;AAC1B,YAAA,YAAY,CAAC,IAAI,CACb,CAAC,IAAI,KACD,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC;AACnD,gBAAA,IAAI,KAAK,WAAW,CAC3B,CACR;AACJ;+GAlBY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAnBnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;AAST,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAVS,WAAW,EAAA,QAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAoBZ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBArBhC,SAAS;8BACG,CAAC,WAAW,CAAC,EACZ,QAAA,EAAA;;;;;;;;;KAST,EAQgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,sHAAA,CAAA,EAAA;;;MCrBtC,4BAA4B,CAAA;+GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,oEAF1B,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAE5C,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,SAAS,EAAE,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;AACxD,iBAAA;;;MC2BY,oBAAoB,CAAA;AAbjC,IAAA,WAAA,GAAA;AAcqB,QAAA,IAAA,CAAA,OAAO,GAA6B,MAAM,CAAC,UAAU,CAAC;AACtD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAEvC,IAAM,CAAA,MAAA,GAAG,SAAS;AAClB,QAAA,IAAA,CAAA,QAAQ,GAAwB,MAAM,CAAC,kBAAkB,CAAC;QAC1D,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAqB;AAC1C,QAAA,IAAA,CAAA,MAAM,GACrB,MAAM,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,cAAc,CAAC,IAAI,YAAY,IAAI,IAAI,CAAC,EAAE,CAAC;QAE1D,IAAU,CAAA,UAAA,GAAG,QAAQ,CACpC,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KACzB,CAAC,CAAI,KACDA,cAAY,CAAC,KAAK,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CACzE;QAGM,IAAK,CAAA,KAAA,GAAsD,EAAE;QAG7D,IAAM,CAAA,MAAA,GAAsB,EAAE;AAaxC;IAXG,IACW,WAAW,CAAC,WAAmB,EAAA;QACtC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;;IAG1C,OAAO,GAAA;AACb,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,KAAK,KAAK,CAAC;AAE3E,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;;+GAhC3E,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EARlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,GAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BzD,++DA6DA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrCc,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,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,YAAA,EAAA,QAAA,EAAA,kEAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,uFAAA,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,EAAe,4BAA4B,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAW5D,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;+BACI,wBAAwB,EAAA,OAAA,EACzB,CAAC,gBAAgB,EAAE,WAAW,EAAE,4BAA4B,EAAE,YAAY,CAAC,EAAA,eAAA,EAEnE,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,EACrC,cAAA,EAAA,CAAC,qBAAqB,EAAE,aAAa,CAAC,EAChD,IAAA,EAAA;AACF,wBAAA,QAAQ,EAAE,EAAE;AACZ,wBAAA,uBAAuB,EAAE,GAAG;AAC5B,wBAAA,SAAS,EAAE,WAAW;AACzB,qBAAA,EAAA,QAAA,EAAA,++DAAA,EAAA;8BAoBM,KAAK,EAAA,CAAA;sBADX;gBAIM,MAAM,EAAA,CAAA;sBADZ;gBAIU,WAAW,EAAA,CAAA;sBADrB;;;AEtDQ,MAAA,cAAc,GAAG;IAC1B,4BAA4B;IAC5B,4BAA4B;IAC5B,oBAAoB;;;ACPxB;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { isSignal, ChangeDetectionStrategy, Component, Injectable, Directive } from '@angular/core';
2
+ import { isSignal, ChangeDetectionStrategy, Component, Injectable, input, Directive } from '@angular/core';
3
3
  import * as i2 from '@ng-web-apis/resize-observer';
4
4
  import { WaResizeObserver } from '@ng-web-apis/resize-observer';
5
5
  import * as i1 from '@taiga-ui/cdk/directives/animated';
@@ -7,9 +7,9 @@ import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
7
7
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
8
8
  import { TuiLoader, tuiLoaderOptionsProvider } from '@taiga-ui/core/components/loader';
9
9
  import { injectContext, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
10
- import { TuiPopoverDirective } from '@taiga-ui/cdk/directives/popover';
11
- import { TuiPopoverService, tuiAsPopover } from '@taiga-ui/cdk/services';
12
- import { TUI_DIALOGS } from '@taiga-ui/core/components/dialog';
10
+ import * as i1$1 from '@taiga-ui/cdk/portals';
11
+ import { tuiAsPortal, TuiPortalDirective } from '@taiga-ui/cdk/portals';
12
+ import { TuiModalService } from '@taiga-ui/core/components/modal';
13
13
 
14
14
  class TuiNotificationMiddleComponent {
15
15
  constructor() {
@@ -27,7 +27,7 @@ class TuiNotificationMiddleComponent {
27
27
  : this.context.closable;
28
28
  }
29
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationMiddleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiNotificationMiddleComponent, isStandalone: true, selector: "tui-notification-middle", host: { listeners: { "document:click.capture": "onClick($event.target)", "document:keydown.esc": "onClick($event.currentTarget)", "waResizeObserver": "el.style.setProperty(\"--t-width\", el.clientWidth + \"px\")" } }, providers: [tuiLoaderOptionsProvider({ size: 'l' })], hostDirectives: [{ directive: i1.TuiAnimated }, { directive: i2.WaResizeObserver, outputs: ["waResizeObserver", "waResizeObserver"] }], ngImport: i0, template: `
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiNotificationMiddleComponent, isStandalone: true, selector: "tui-notification-middle", host: { listeners: { "document:click.capture": "onClick($event.target)", "document:keydown.esc": "onClick($event.currentTarget)", "waResizeObserver": "el.style.setProperty(\"--t-width\", el.clientWidth + \"px\")" }, classAttribute: "tui-backdrop-hidden" }, providers: [tuiLoaderOptionsProvider({ size: 'l' })], hostDirectives: [{ directive: i1.TuiAnimated }, { directive: i2.WaResizeObserver, outputs: ["waResizeObserver", "waResizeObserver"] }], ngImport: i0, template: `
31
31
  <tui-loader class="t-loader" />
32
32
  <ng-container *polymorpheusOutlet="context.content as text">
33
33
  {{ text }}
@@ -45,40 +45,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
45
45
  TuiAnimated,
46
46
  { directive: WaResizeObserver, outputs: ['waResizeObserver'] },
47
47
  ], host: {
48
+ class: 'tui-backdrop-hidden',
48
49
  '(document:click.capture)': 'onClick($event.target)',
49
50
  '(document:keydown.esc)': 'onClick($event.currentTarget)',
50
51
  '(waResizeObserver)': 'el.style.setProperty("--t-width", el.clientWidth + "px")',
51
52
  }, styles: [":host{position:relative;display:grid;max-inline-size:18.75rem;min-inline-size:7rem;min-block-size:7rem;justify-items:center;gap:1rem;margin:auto;padding:2.25rem 2.25rem 1.75rem;border-radius:1.25rem;box-sizing:border-box;font:var(--tui-font-text-m);--tui-scale: .5}:host:before{inline-size:100%;block-size:100%;transition-property:width;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);content:\"\";z-index:-1;inline-size:var(--t-width);background:var(--tui-background-elevation-3);box-shadow:var(--tui-shadow-popup);border-radius:inherit;contain:strict}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiScale}:host.tui-enter ::ng-deep>.tui-enter,:host.tui-leave ::ng-deep>.tui-enter{animation-duration:0s;animation-delay:0s}:host .t-loader:not(:last-child){display:none}:host ::ng-deep>*{grid-area:2 / 1}:host ::ng-deep>*.tui-enter,:host ::ng-deep>*.tui-leave{animation-delay:var(--tui-duration);animation-name:tuiFade}:host ::ng-deep>*.tui-leave{animation-delay:0s}:host ::ng-deep>*.tui-leave~.tui-enter{opacity:0}:host ::ng-deep>tui-loader,:host ::ng-deep>[tuiAvatar],:host ::ng-deep>tui-icon,:host ::ng-deep>img{block-size:2.5rem;inline-size:2.5rem;min-inline-size:2.5rem;font-size:2.5rem;grid-area:1 / 1}\n"] }]
52
53
  }] });
53
54
 
54
- class TuiNotificationMiddleService extends TuiPopoverService {
55
+ class TuiNotificationMiddleService extends TuiModalService {
56
+ constructor() {
57
+ super(...arguments);
58
+ this.options = { closable: false };
59
+ this.content = TuiNotificationMiddleComponent;
60
+ }
55
61
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationMiddleService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
56
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationMiddleService, providedIn: 'root', useFactory: () => new TuiNotificationMiddleService(TUI_DIALOGS, TuiNotificationMiddleComponent, {
57
- closable: false,
58
- }) }); }
62
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationMiddleService, providedIn: 'root' }); }
59
63
  }
60
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationMiddleService, decorators: [{
61
65
  type: Injectable,
62
66
  args: [{
63
67
  providedIn: 'root',
64
- useFactory: () => new TuiNotificationMiddleService(TUI_DIALOGS, TuiNotificationMiddleComponent, {
65
- closable: false,
66
- }),
67
68
  }]
68
69
  }] });
69
70
 
70
- class TuiNotificationMiddle extends TuiPopoverDirective {
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationMiddle, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
72
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiNotificationMiddle, isStandalone: true, selector: "ng-template[tuiNotificationMiddle]", inputs: { options: ["tuiNotificationMiddleOptions", "options"], open: ["tuiNotificationMiddle", "open"] }, outputs: { openChange: "tuiNotificationMiddleChange" }, providers: [tuiAsPopover(TuiNotificationMiddleService)], usesInheritance: true, ngImport: i0 }); }
71
+ class TuiNotificationMiddle {
72
+ constructor() {
73
+ this.tuiNotificationMiddleOptions = input({});
74
+ }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationMiddle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
76
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiNotificationMiddle, isStandalone: true, selector: "ng-template[tuiNotificationMiddle]", inputs: { tuiNotificationMiddleOptions: { classPropertyName: "tuiNotificationMiddleOptions", publicName: "tuiNotificationMiddleOptions", isSignal: true, isRequired: false, transformFunction: null } }, providers: [tuiAsPortal(TuiNotificationMiddleService)], hostDirectives: [{ directive: i1$1.TuiPortalDirective, inputs: ["options", "tuiNotificationMiddleOptions", "open", "tuiNotificationMiddle"], outputs: ["openChange", "tuiNotificationMiddleChange"] }], ngImport: i0 }); }
73
77
  }
74
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiNotificationMiddle, decorators: [{
75
79
  type: Directive,
76
80
  args: [{
77
- standalone: true,
78
81
  selector: 'ng-template[tuiNotificationMiddle]',
79
- inputs: ['options: tuiNotificationMiddleOptions', 'open: tuiNotificationMiddle'],
80
- outputs: ['openChange: tuiNotificationMiddleChange'],
81
- providers: [tuiAsPopover(TuiNotificationMiddleService)],
82
+ providers: [tuiAsPortal(TuiNotificationMiddleService)],
83
+ hostDirectives: [
84
+ {
85
+ directive: TuiPortalDirective,
86
+ inputs: [
87
+ 'options: tuiNotificationMiddleOptions',
88
+ 'open: tuiNotificationMiddle',
89
+ ],
90
+ outputs: ['openChange: tuiNotificationMiddleChange'],
91
+ },
92
+ ],
82
93
  }]
83
94
  }] });
84
95
 
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-notification-middle.mjs","sources":["../../../projects/kit/components/notification-middle/notification-middle.component.ts","../../../projects/kit/components/notification-middle/notification-middle.service.ts","../../../projects/kit/components/notification-middle/notification-middle.directive.ts","../../../projects/kit/components/notification-middle/taiga-ui-kit-components-notification-middle.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, isSignal, type Signal} from '@angular/core';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiLoader, tuiLoaderOptionsProvider} from '@taiga-ui/core/components/loader';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nexport interface TuiNotificationMiddleOptions {\n closable: Signal<boolean> | boolean;\n}\n\n@Component({\n selector: 'tui-notification-middle',\n imports: [PolymorpheusOutlet, TuiLoader],\n template: `\n <tui-loader class=\"t-loader\" />\n <ng-container *polymorpheusOutlet=\"context.content as text\">\n {{ text }}\n </ng-container>\n `,\n styleUrl: './notification-middle.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiLoaderOptionsProvider({size: 'l'})],\n hostDirectives: [\n TuiAnimated,\n {directive: WaResizeObserver, outputs: ['waResizeObserver']},\n ],\n host: {\n '(document:click.capture)': 'onClick($event.target)',\n '(document:keydown.esc)': 'onClick($event.currentTarget)',\n '(waResizeObserver)': 'el.style.setProperty(\"--t-width\", el.clientWidth + \"px\")',\n },\n})\nexport class TuiNotificationMiddleComponent {\n protected readonly el = tuiInjectElement();\n protected readonly context =\n injectContext<TuiPopover<TuiNotificationMiddleOptions, void>>();\n\n protected onClick(target: HTMLElement): void {\n if (this.closable && !this.el.contains(target)) {\n this.context.$implicit.complete();\n }\n }\n\n private get closable(): boolean {\n return isSignal(this.context.closable)\n ? this.context.closable()\n : this.context.closable;\n }\n}\n","import {Injectable} from '@angular/core';\nimport {TuiPopoverService} from '@taiga-ui/cdk/services';\nimport {TUI_DIALOGS} from '@taiga-ui/core/components/dialog';\n\nimport {\n TuiNotificationMiddleComponent,\n type TuiNotificationMiddleOptions,\n} from './notification-middle.component';\n\n@Injectable({\n providedIn: 'root',\n useFactory: () =>\n new TuiNotificationMiddleService(TUI_DIALOGS, TuiNotificationMiddleComponent, {\n closable: false,\n }),\n})\nexport class TuiNotificationMiddleService extends TuiPopoverService<TuiNotificationMiddleOptions> {}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {type TuiNotificationMiddleOptions} from './notification-middle.component';\nimport {TuiNotificationMiddleService} from './notification-middle.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiNotificationMiddle]',\n inputs: ['options: tuiNotificationMiddleOptions', 'open: tuiNotificationMiddle'],\n outputs: ['openChange: tuiNotificationMiddleChange'],\n providers: [tuiAsPopover(TuiNotificationMiddleService)],\n})\nexport class TuiNotificationMiddle extends TuiPopoverDirective<TuiNotificationMiddleOptions> {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-notification-middle.mjs","sources":["../../../projects/kit/components/notification-middle/notification-middle.component.ts","../../../projects/kit/components/notification-middle/notification-middle.service.ts","../../../projects/kit/components/notification-middle/notification-middle.directive.ts","../../../projects/kit/components/notification-middle/taiga-ui-kit-components-notification-middle.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, isSignal, type Signal} from '@angular/core';\nimport {WaResizeObserver} from '@ng-web-apis/resize-observer';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {type TuiPortalContext} from '@taiga-ui/cdk/portals';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiLoader, tuiLoaderOptionsProvider} from '@taiga-ui/core/components/loader';\nimport {injectContext, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nexport interface TuiNotificationMiddleOptions {\n closable: Signal<boolean> | boolean;\n}\n\n@Component({\n selector: 'tui-notification-middle',\n imports: [PolymorpheusOutlet, TuiLoader],\n template: `\n <tui-loader class=\"t-loader\" />\n <ng-container *polymorpheusOutlet=\"context.content as text\">\n {{ text }}\n </ng-container>\n `,\n styleUrl: './notification-middle.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiLoaderOptionsProvider({size: 'l'})],\n hostDirectives: [\n TuiAnimated,\n {directive: WaResizeObserver, outputs: ['waResizeObserver']},\n ],\n host: {\n class: 'tui-backdrop-hidden',\n '(document:click.capture)': 'onClick($event.target)',\n '(document:keydown.esc)': 'onClick($event.currentTarget)',\n '(waResizeObserver)': 'el.style.setProperty(\"--t-width\", el.clientWidth + \"px\")',\n },\n})\nexport class TuiNotificationMiddleComponent {\n protected readonly el = tuiInjectElement();\n protected readonly context =\n injectContext<TuiPortalContext<TuiNotificationMiddleOptions>>();\n\n protected onClick(target: HTMLElement): void {\n if (this.closable && !this.el.contains(target)) {\n this.context.$implicit.complete();\n }\n }\n\n private get closable(): boolean {\n return isSignal(this.context.closable)\n ? this.context.closable()\n : this.context.closable;\n }\n}\n","import {Injectable} from '@angular/core';\nimport {TuiModalService} from '@taiga-ui/core/components/modal';\n\nimport {\n TuiNotificationMiddleComponent,\n type TuiNotificationMiddleOptions,\n} from './notification-middle.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiNotificationMiddleService extends TuiModalService<TuiNotificationMiddleOptions> {\n protected readonly options = {closable: false};\n protected readonly content = TuiNotificationMiddleComponent;\n}\n","import {Directive, input} from '@angular/core';\nimport {tuiAsPortal, TuiPortalDirective} from '@taiga-ui/cdk/portals';\n\nimport {type TuiNotificationMiddleOptions} from './notification-middle.component';\nimport {TuiNotificationMiddleService} from './notification-middle.service';\n\n@Directive({\n selector: 'ng-template[tuiNotificationMiddle]',\n providers: [tuiAsPortal(TuiNotificationMiddleService)],\n hostDirectives: [\n {\n directive: TuiPortalDirective,\n inputs: [\n 'options: tuiNotificationMiddleOptions',\n 'open: tuiNotificationMiddle',\n ],\n outputs: ['openChange: tuiNotificationMiddleChange'],\n },\n ],\n})\nexport class TuiNotificationMiddle {\n public readonly tuiNotificationMiddleOptions = input<\n Partial<TuiNotificationMiddleOptions>\n >({});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;MAmCa,8BAA8B,CAAA;AAvB3C,IAAA,WAAA,GAAA;QAwBuB,IAAE,CAAA,EAAA,GAAG,gBAAgB,EAAE;QACvB,IAAO,CAAA,OAAA,GACtB,aAAa,EAAkD;AAatE;AAXa,IAAA,OAAO,CAAC,MAAmB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;;;AAIzC,IAAA,IAAY,QAAQ,GAAA;AAChB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;AACjC,cAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;AACvB,cAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;;+GAdtB,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,wBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,+BAAA,EAAA,kBAAA,EAAA,8DAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,SAAA,EAZ5B,CAAC,wBAAwB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC,EARxC,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;KAKT,EANS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0yCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAqB9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAvB1C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,WAC1B,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAC9B,QAAA,EAAA;;;;;AAKT,IAAA,CAAA,EAAA,eAAA,EAEgB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,wBAAwB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC,EAClC,cAAA,EAAA;wBACZ,WAAW;wBACX,EAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAC;qBAC/D,EACK,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,qBAAqB;AAC5B,wBAAA,0BAA0B,EAAE,wBAAwB;AACpD,wBAAA,wBAAwB,EAAE,+BAA+B;AACzD,wBAAA,oBAAoB,EAAE,0DAA0D;AACnF,qBAAA,EAAA,MAAA,EAAA,CAAA,0yCAAA,CAAA,EAAA;;;ACtBC,MAAO,4BAA6B,SAAQ,eAA6C,CAAA;AAH/F,IAAA,WAAA,GAAA;;AAIuB,QAAA,IAAA,CAAA,OAAO,GAAG,EAAC,QAAQ,EAAE,KAAK,EAAC;QAC3B,IAAO,CAAA,OAAA,GAAG,8BAA8B;AAC9D;+GAHY,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAFzB,MAAM,EAAA,CAAA,CAAA;;4FAET,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;MCUY,qBAAqB,CAAA;AAdlC,IAAA,WAAA,GAAA;AAeoB,QAAA,IAAA,CAAA,4BAA4B,GAAG,KAAK,CAElD,EAAE,CAAC;AACR;+GAJY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,0RAZnB,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAY7C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAdjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,SAAS,EAAE,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;AACtD,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,kBAAkB;AAC7B,4BAAA,MAAM,EAAE;gCACJ,uCAAuC;gCACvC,6BAA6B;AAChC,6BAAA;4BACD,OAAO,EAAE,CAAC,yCAAyC,CAAC;AACvD,yBAAA;AACJ,qBAAA;AACJ,iBAAA;;;ACnBD;;AAEG;;;;"}
@@ -9,6 +9,15 @@ import { TuiButton } from '@taiga-ui/core/components/button';
9
9
  import { TUI_SPIN_ICONS } from '@taiga-ui/core/tokens';
10
10
  import { TUI_PAGINATION_TEXTS } from '@taiga-ui/kit/tokens';
11
11
  import { PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
12
+ import { tuiCreateOptions } from '@taiga-ui/cdk/utils/di';
13
+
14
+ const [TUI_PAGINATION_OPTIONS, tuiPaginationOptionsProvider] = tuiCreateOptions({
15
+ appearance: ({ isActive, size }) => {
16
+ const fallback = size === 's' ? 'secondary' : 'flat';
17
+ return isActive ? 'primary' : fallback;
18
+ },
19
+ defaultSize: 'l',
20
+ });
12
21
 
13
22
  const DOTS_LENGTH = 1;
14
23
  const ACTIVE_ITEM_LENGTH = 1;
@@ -18,9 +27,10 @@ class TuiPagination {
18
27
  this.el = tuiInjectElement();
19
28
  this.texts = inject(TUI_PAGINATION_TEXTS);
20
29
  this.icons = inject(TUI_SPIN_ICONS);
30
+ this.options = inject(TUI_PAGINATION_OPTIONS);
21
31
  this.length = 1;
22
32
  this.focusable = true;
23
- this.size = 'l';
33
+ this.size = this.options.defaultSize;
24
34
  this.disabled = false;
25
35
  /**
26
36
  * Amount of visible pages around active page
@@ -101,9 +111,11 @@ class TuiPagination {
101
111
  const computedIndex = this.index - this.maxHalfLength + elementIndex;
102
112
  return tuiClamp(computedIndex, elementIndex, this.lastIndex - reverseElementIndex);
103
113
  }
104
- getElementMode(index) {
105
- const fallback = this.size === 's' ? 'secondary' : 'flat';
106
- return this.index === index ? 'primary' : fallback;
114
+ getElementMode(index = -1) {
115
+ return this.options.appearance({
116
+ isActive: this.index === index,
117
+ size: this.size,
118
+ });
107
119
  }
108
120
  onElementClick(index) {
109
121
  this.updateIndex(index);
@@ -181,11 +193,11 @@ class TuiPagination {
181
193
  this.indexChange.emit(index);
182
194
  }
183
195
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
184
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiPagination, isStandalone: true, selector: "tui-pagination", inputs: { length: "length", focusable: "focusable", size: "size", disabled: "disabled", activePadding: "activePadding", sidePadding: "sidePadding", content: "content", index: "index" }, outputs: { indexChange: "indexChange" }, viewQueries: [{ propertyName: "els", predicate: ["element"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"t-content\">\n @if (size !== 's') {\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledLeft\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('left')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[0] }}\n </button>\n <ng-container *tuiRepeatTimes=\"let elementIndex of elementsLength\">\n @let index = getItemIndexByElementIndex(elementIndex);\n @if (index !== null) {\n <button\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled\"\n [size]=\"buttonSize\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n } @else {\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-dots\"\n [class.t-dots_small]=\"size === 'm'\"\n ></div>\n }\n </ng-container>\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledRight\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('right')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[1] }}\n </button>\n } @else {\n <button\n *tuiRepeatTimes=\"let indexItem of length\"\n #element\n tuiButton\n type=\"button\"\n class=\"t-button t-button_small\"\n [appearance]=\"getElementMode(indexItem)\"\n [disabled]=\"disabled\"\n [tabIndex]=\"elementIsFocusable(indexItem) ? 0 : -1\"\n (click)=\"onElementClick(indexItem)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n {{ indexItem + 1 }}\n </button>\n }\n</div>\n", styles: [":host{display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);text-align:center}.t-content{display:flex;justify-content:center}.t-button{margin:0 .125rem;flex-shrink:0}.t-button[tuiButton]:not(.t-button_small){min-inline-size:var(--tui-height-s);padding:0 .5rem}.t-button[tuiButton]:not(.t-button_small)[data-size=xs]{min-inline-size:var(--tui-height-xs);padding:0 .375rem}.t-button:first-child{transform:scaleX(var(--tui-inline));margin-inline-start:0}.t-button:last-child{transform:scaleX(var(--tui-inline));margin-inline-end:0}.t-button[data-size=xs]{min-inline-size:var(--tui-height-xs);padding:0 .375rem}.t-button.t-button.t-button_small{inline-size:.5rem;block-size:.5rem;font-size:0;padding:0;margin:0}.t-button.t-button.t-button_small:not(:first-child){margin-inline-start:.5rem}.t-dots{inline-size:var(--tui-height-s);block-size:var(--tui-height-s);line-height:var(--tui-height-s);margin:0 .125rem;flex-shrink:0;color:var(--tui-text-action);text-align:center;cursor:default}.t-dots_small{inline-size:var(--tui-height-xs);block-size:var(--tui-height-xs);line-height:var(--tui-height-xs)}.t-dots:before{content:\"\\2026\"}\n"], dependencies: [{ 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: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
196
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiPagination, isStandalone: true, selector: "tui-pagination", inputs: { length: "length", focusable: "focusable", size: "size", disabled: "disabled", activePadding: "activePadding", sidePadding: "sidePadding", content: "content", index: "index" }, outputs: { indexChange: "indexChange" }, viewQueries: [{ propertyName: "els", predicate: ["element"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"t-content\">\n @if (size !== 's') {\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode()\"\n [disabled]=\"arrowIsDisabledLeft\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('left')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[0] }}\n </button>\n <ng-container *tuiRepeatTimes=\"let elementIndex of elementsLength\">\n @let index = getItemIndexByElementIndex(elementIndex);\n @if (index !== null) {\n <button\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled\"\n [size]=\"buttonSize\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n } @else {\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-dots\"\n [class.t-dots_small]=\"size === 'm'\"\n ></div>\n }\n </ng-container>\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode()\"\n [disabled]=\"arrowIsDisabledRight\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('right')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[1] }}\n </button>\n } @else {\n <button\n *tuiRepeatTimes=\"let indexItem of length\"\n #element\n tuiButton\n type=\"button\"\n class=\"t-button t-button_small\"\n [appearance]=\"getElementMode(indexItem)\"\n [disabled]=\"disabled\"\n [tabIndex]=\"elementIsFocusable(indexItem) ? 0 : -1\"\n (click)=\"onElementClick(indexItem)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n {{ indexItem + 1 }}\n </button>\n }\n</div>\n", styles: [":host{display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);text-align:center}.t-content{display:flex;justify-content:center}.t-button{margin:0 .125rem;flex-shrink:0}.t-button[tuiButton]:not(.t-button_small){min-inline-size:var(--tui-height-s);padding:0 .5rem}.t-button[tuiButton]:not(.t-button_small)[data-size=xs]{min-inline-size:var(--tui-height-xs);padding:0 .375rem}.t-button:first-child{transform:scaleX(var(--tui-inline));margin-inline-start:0}.t-button:last-child{transform:scaleX(var(--tui-inline));margin-inline-end:0}.t-button[data-size=xs]{min-inline-size:var(--tui-height-xs);padding:0 .375rem}.t-button.t-button.t-button_small{inline-size:.5rem;block-size:.5rem;font-size:0;padding:0;margin:0}.t-button.t-button.t-button_small:not(:first-child){margin-inline-start:.5rem}.t-dots{inline-size:var(--tui-height-s);block-size:var(--tui-height-s);line-height:var(--tui-height-s);margin:0 .125rem;flex-shrink:0;color:var(--tui-text-action);text-align:center;cursor:default}.t-dots_small{inline-size:var(--tui-height-xs);block-size:var(--tui-height-xs);line-height:var(--tui-height-xs)}.t-dots:before{content:\"\\2026\"}\n"], dependencies: [{ 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: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
185
197
  }
186
198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiPagination, decorators: [{
187
199
  type: Component,
188
- args: [{ selector: 'tui-pagination', imports: [PolymorpheusOutlet, TuiButton, TuiRepeatTimes], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"t-content\">\n @if (size !== 's') {\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledLeft\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('left')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[0] }}\n </button>\n <ng-container *tuiRepeatTimes=\"let elementIndex of elementsLength\">\n @let index = getItemIndexByElementIndex(elementIndex);\n @if (index !== null) {\n <button\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled\"\n [size]=\"buttonSize\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n } @else {\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-dots\"\n [class.t-dots_small]=\"size === 'm'\"\n ></div>\n }\n </ng-container>\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledRight\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('right')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[1] }}\n </button>\n } @else {\n <button\n *tuiRepeatTimes=\"let indexItem of length\"\n #element\n tuiButton\n type=\"button\"\n class=\"t-button t-button_small\"\n [appearance]=\"getElementMode(indexItem)\"\n [disabled]=\"disabled\"\n [tabIndex]=\"elementIsFocusable(indexItem) ? 0 : -1\"\n (click)=\"onElementClick(indexItem)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n {{ indexItem + 1 }}\n </button>\n }\n</div>\n", styles: [":host{display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);text-align:center}.t-content{display:flex;justify-content:center}.t-button{margin:0 .125rem;flex-shrink:0}.t-button[tuiButton]:not(.t-button_small){min-inline-size:var(--tui-height-s);padding:0 .5rem}.t-button[tuiButton]:not(.t-button_small)[data-size=xs]{min-inline-size:var(--tui-height-xs);padding:0 .375rem}.t-button:first-child{transform:scaleX(var(--tui-inline));margin-inline-start:0}.t-button:last-child{transform:scaleX(var(--tui-inline));margin-inline-end:0}.t-button[data-size=xs]{min-inline-size:var(--tui-height-xs);padding:0 .375rem}.t-button.t-button.t-button_small{inline-size:.5rem;block-size:.5rem;font-size:0;padding:0;margin:0}.t-button.t-button.t-button_small:not(:first-child){margin-inline-start:.5rem}.t-dots{inline-size:var(--tui-height-s);block-size:var(--tui-height-s);line-height:var(--tui-height-s);margin:0 .125rem;flex-shrink:0;color:var(--tui-text-action);text-align:center;cursor:default}.t-dots_small{inline-size:var(--tui-height-xs);block-size:var(--tui-height-xs);line-height:var(--tui-height-xs)}.t-dots:before{content:\"\\2026\"}\n"] }]
200
+ args: [{ selector: 'tui-pagination', imports: [PolymorpheusOutlet, TuiButton, TuiRepeatTimes], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"t-content\">\n @if (size !== 's') {\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode()\"\n [disabled]=\"arrowIsDisabledLeft\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('left')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[0] }}\n </button>\n <ng-container *tuiRepeatTimes=\"let elementIndex of elementsLength\">\n @let index = getItemIndexByElementIndex(elementIndex);\n @if (index !== null) {\n <button\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled\"\n [size]=\"buttonSize\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n } @else {\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-dots\"\n [class.t-dots_small]=\"size === 'm'\"\n ></div>\n }\n </ng-container>\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode()\"\n [disabled]=\"arrowIsDisabledRight\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('right')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[1] }}\n </button>\n } @else {\n <button\n *tuiRepeatTimes=\"let indexItem of length\"\n #element\n tuiButton\n type=\"button\"\n class=\"t-button t-button_small\"\n [appearance]=\"getElementMode(indexItem)\"\n [disabled]=\"disabled\"\n [tabIndex]=\"elementIsFocusable(indexItem) ? 0 : -1\"\n (click)=\"onElementClick(indexItem)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n {{ indexItem + 1 }}\n </button>\n }\n</div>\n", styles: [":host{display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);text-align:center}.t-content{display:flex;justify-content:center}.t-button{margin:0 .125rem;flex-shrink:0}.t-button[tuiButton]:not(.t-button_small){min-inline-size:var(--tui-height-s);padding:0 .5rem}.t-button[tuiButton]:not(.t-button_small)[data-size=xs]{min-inline-size:var(--tui-height-xs);padding:0 .375rem}.t-button:first-child{transform:scaleX(var(--tui-inline));margin-inline-start:0}.t-button:last-child{transform:scaleX(var(--tui-inline));margin-inline-end:0}.t-button[data-size=xs]{min-inline-size:var(--tui-height-xs);padding:0 .375rem}.t-button.t-button.t-button_small{inline-size:.5rem;block-size:.5rem;font-size:0;padding:0;margin:0}.t-button.t-button.t-button_small:not(:first-child){margin-inline-start:.5rem}.t-dots{inline-size:var(--tui-height-s);block-size:var(--tui-height-s);line-height:var(--tui-height-s);margin:0 .125rem;flex-shrink:0;color:var(--tui-text-action);text-align:center;cursor:default}.t-dots_small{inline-size:var(--tui-height-xs);block-size:var(--tui-height-xs);line-height:var(--tui-height-xs)}.t-dots:before{content:\"\\2026\"}\n"] }]
189
201
  }], propDecorators: { els: [{
190
202
  type: ViewChildren,
191
203
  args: ['element', { read: ElementRef }]
@@ -213,5 +225,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
213
225
  * Generated bundle index. Do not edit.
214
226
  */
215
227
 
216
- export { TuiPagination };
228
+ export { TUI_PAGINATION_OPTIONS, TuiPagination, tuiPaginationOptionsProvider };
217
229
  //# sourceMappingURL=taiga-ui-kit-components-pagination.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-pagination.mjs","sources":["../../../projects/kit/components/pagination/pagination.component.ts","../../../projects/kit/components/pagination/pagination.template.html","../../../projects/kit/components/pagination/taiga-ui-kit-components-pagination.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n type QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_SPIN_ICONS} from '@taiga-ui/core/tokens';\nimport {\n type TuiHorizontalDirection,\n type TuiSizeL,\n type TuiSizeS,\n type TuiSizeXS,\n} from '@taiga-ui/core/types';\nimport {TUI_PAGINATION_TEXTS} from '@taiga-ui/kit/tokens';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nconst DOTS_LENGTH = 1;\nconst ACTIVE_ITEM_LENGTH = 1;\n\n@Component({\n selector: 'tui-pagination',\n imports: [PolymorpheusOutlet, TuiButton, TuiRepeatTimes],\n templateUrl: './pagination.template.html',\n styleUrl: './pagination.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPagination {\n @ViewChildren('element', {read: ElementRef})\n private readonly els: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly el = tuiInjectElement();\n\n protected readonly texts = inject(TUI_PAGINATION_TEXTS);\n protected readonly icons = inject(TUI_SPIN_ICONS);\n\n @Input()\n public length = 1;\n\n @Input()\n public focusable = true;\n\n @Input()\n public size: TuiSizeL | TuiSizeS = 'l';\n\n @Input()\n public readonly disabled = false;\n\n /**\n * Amount of visible pages around active page\n */\n @Input()\n public activePadding = 1;\n\n /**\n * Amount of visible pages at the edges\n */\n @Input()\n public sidePadding = 1;\n\n /**\n * Customization for page number display.\n */\n @Input()\n public content: PolymorpheusContent<TuiContext<number>>;\n\n /**\n * Active page index\n */\n @Input()\n public index = 0;\n\n @Output()\n public readonly indexChange = new EventEmitter<number>();\n\n public get nativeFocusableElement(): HTMLElement | null {\n if (this.disabled) {\n return null;\n }\n\n let activeElementIndex = 0;\n const {elementsLength} = this;\n\n for (let i = 0; i < elementsLength; i++) {\n const itemIndex = this.getItemIndexByElementIndex(i);\n\n if (itemIndex) {\n activeElementIndex++;\n }\n\n if (itemIndex === this.index) {\n break;\n }\n }\n\n return (\n this.els.find((_, index) => index === activeElementIndex)?.nativeElement ??\n null\n );\n }\n\n public get focused(): boolean {\n return tuiIsFocusedIn(this.el);\n }\n\n public get arrowIsDisabledLeft(): boolean {\n return this.index === 0;\n }\n\n public get arrowIsDisabledRight(): boolean {\n return this.reverseIndex === 0;\n }\n\n /**\n * Number of items in a container.\n */\n protected get elementsLength(): number {\n return this.itemsFit ? this.length : this.maxElementsLength;\n }\n\n protected get buttonSize(): TuiSizeXS {\n return this.size === 'm' ? 'xs' : 's';\n }\n\n protected elementIsFocusable(index: number): boolean {\n return this.index === index && !this.focused;\n }\n\n /**\n * Get index by element index\n * @param elementIndex\n * @returns index or null (for '…')\n */\n protected getItemIndexByElementIndex(elementIndex: number): number | null {\n if (this.size === 's') {\n return elementIndex;\n }\n\n if (elementIndex < this.sidePadding) {\n return elementIndex;\n }\n\n if (elementIndex === this.sidePadding && this.hasCollapsedItems(this.index)) {\n return null;\n }\n\n const reverseElementIndex = this.lastElementIndex - elementIndex;\n\n if (\n reverseElementIndex === this.sidePadding &&\n this.hasCollapsedItems(this.reverseIndex)\n ) {\n return null;\n }\n\n if (reverseElementIndex < this.sidePadding) {\n return this.lastIndex - reverseElementIndex;\n }\n\n const computedIndex = this.index - this.maxHalfLength + elementIndex;\n\n return tuiClamp(\n computedIndex,\n elementIndex,\n this.lastIndex - reverseElementIndex,\n );\n }\n\n protected getElementMode(index: number): string {\n const fallback = this.size === 's' ? 'secondary' : 'flat';\n\n return this.index === index ? 'primary' : fallback;\n }\n\n protected onElementClick(index: number): void {\n this.updateIndex(index);\n }\n\n protected onElementKeyDownArrowLeft(element: HTMLElement): void {\n if (element === this.els.first.nativeElement) {\n return;\n }\n\n const previous = this.els.find(\n (_, index, array) => array[index + 1]?.nativeElement === element,\n );\n\n previous?.nativeElement.focus();\n }\n\n protected onElementKeyDownArrowRight(element: HTMLElement): void {\n if (element === this.els.last.nativeElement) {\n return;\n }\n\n const next = this.els.find(\n (_, index, array) => array[index - 1]?.nativeElement === element,\n );\n\n next?.nativeElement.focus();\n }\n\n protected onArrowClick(direction: TuiHorizontalDirection): void {\n this.tryChangeTo(direction);\n this.focusActive();\n }\n\n /**\n * Active index from the end\n */\n private get reverseIndex(): number {\n return this.lastIndex - this.index;\n }\n\n /**\n * Max number of elements in half (not counting the middle one).\n */\n private get maxHalfLength(): number {\n return this.sidePadding + DOTS_LENGTH + this.activePadding;\n }\n\n /**\n * Is there '...' anywhere\n */\n private get itemsFit(): boolean {\n return this.length <= this.maxElementsLength;\n }\n\n /**\n * Max number of elements\n */\n private get maxElementsLength(): number {\n return this.maxHalfLength * 2 + ACTIVE_ITEM_LENGTH;\n }\n\n private get lastIndex(): number {\n return this.length - 1;\n }\n\n private get lastElementIndex(): number {\n return this.elementsLength - 1;\n }\n\n /**\n * Are there collapsed items at that index\n * @param index\n * @returns there are collapsed items\n */\n private hasCollapsedItems(index: number): boolean {\n return !this.itemsFit && index > this.maxHalfLength;\n }\n\n private tryChangeTo(direction: TuiHorizontalDirection): void {\n this.updateIndex(\n tuiClamp(this.index + (direction === 'right' ? 1 : -1), 0, this.lastIndex),\n );\n }\n\n private focusActive(): void {\n const {nativeFocusableElement} = this;\n\n if (nativeFocusableElement) {\n nativeFocusableElement.focus();\n }\n }\n\n private updateIndex(index: number): void {\n if (this.index === index) {\n return;\n }\n\n this.index = index;\n this.indexChange.emit(index);\n }\n}\n","<div class=\"t-content\">\n @if (size !== 's') {\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledLeft\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('left')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[0] }}\n </button>\n <ng-container *tuiRepeatTimes=\"let elementIndex of elementsLength\">\n @let index = getItemIndexByElementIndex(elementIndex);\n @if (index !== null) {\n <button\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled\"\n [size]=\"buttonSize\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n } @else {\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-dots\"\n [class.t-dots_small]=\"size === 'm'\"\n ></div>\n }\n </ng-container>\n <button\n appearance=\"flat\"\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [disabled]=\"arrowIsDisabledRight\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('right')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[1] }}\n </button>\n } @else {\n <button\n *tuiRepeatTimes=\"let indexItem of length\"\n #element\n tuiButton\n type=\"button\"\n class=\"t-button t-button_small\"\n [appearance]=\"getElementMode(indexItem)\"\n [disabled]=\"disabled\"\n [tabIndex]=\"elementIsFocusable(indexItem) ? 0 : -1\"\n (click)=\"onElementClick(indexItem)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n {{ indexItem + 1 }}\n </button>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-kit-components-pagination.mjs","sources":["../../../projects/kit/components/pagination/pagination.options.ts","../../../projects/kit/components/pagination/pagination.component.ts","../../../projects/kit/components/pagination/pagination.template.html","../../../projects/kit/components/pagination/taiga-ui-kit-components-pagination.ts"],"sourcesContent":["import {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiPaginationOptions {\n readonly appearance: TuiStringHandler<{\n isActive: boolean;\n size: TuiSizeL | TuiSizeS;\n }>;\n readonly defaultSize: TuiSizeL | TuiSizeS;\n}\n\nexport const [TUI_PAGINATION_OPTIONS, tuiPaginationOptionsProvider] =\n tuiCreateOptions<TuiPaginationOptions>({\n appearance: ({isActive, size}) => {\n const fallback = size === 's' ? 'secondary' : 'flat';\n\n return isActive ? 'primary' : fallback;\n },\n defaultSize: 'l',\n });\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n type QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsFocusedIn} from '@taiga-ui/cdk/utils/focus';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TUI_SPIN_ICONS} from '@taiga-ui/core/tokens';\nimport {\n type TuiHorizontalDirection,\n type TuiSizeL,\n type TuiSizeS,\n type TuiSizeXS,\n} from '@taiga-ui/core/types';\nimport {TUI_PAGINATION_TEXTS} from '@taiga-ui/kit/tokens';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_PAGINATION_OPTIONS} from './pagination.options';\n\nconst DOTS_LENGTH = 1;\nconst ACTIVE_ITEM_LENGTH = 1;\n\n@Component({\n selector: 'tui-pagination',\n imports: [PolymorpheusOutlet, TuiButton, TuiRepeatTimes],\n templateUrl: './pagination.template.html',\n styleUrl: './pagination.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPagination {\n @ViewChildren('element', {read: ElementRef})\n private readonly els: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly el = tuiInjectElement();\n\n protected readonly texts = inject(TUI_PAGINATION_TEXTS);\n protected readonly icons = inject(TUI_SPIN_ICONS);\n protected readonly options = inject(TUI_PAGINATION_OPTIONS);\n\n @Input()\n public length = 1;\n\n @Input()\n public focusable = true;\n\n @Input()\n public size: TuiSizeL | TuiSizeS = this.options.defaultSize;\n\n @Input()\n public readonly disabled = false;\n\n /**\n * Amount of visible pages around active page\n */\n @Input()\n public activePadding = 1;\n\n /**\n * Amount of visible pages at the edges\n */\n @Input()\n public sidePadding = 1;\n\n /**\n * Customization for page number display.\n */\n @Input()\n public content: PolymorpheusContent<TuiContext<number>>;\n\n /**\n * Active page index\n */\n @Input()\n public index = 0;\n\n @Output()\n public readonly indexChange = new EventEmitter<number>();\n\n public get nativeFocusableElement(): HTMLElement | null {\n if (this.disabled) {\n return null;\n }\n\n let activeElementIndex = 0;\n const {elementsLength} = this;\n\n for (let i = 0; i < elementsLength; i++) {\n const itemIndex = this.getItemIndexByElementIndex(i);\n\n if (itemIndex) {\n activeElementIndex++;\n }\n\n if (itemIndex === this.index) {\n break;\n }\n }\n\n return (\n this.els.find((_, index) => index === activeElementIndex)?.nativeElement ??\n null\n );\n }\n\n public get focused(): boolean {\n return tuiIsFocusedIn(this.el);\n }\n\n public get arrowIsDisabledLeft(): boolean {\n return this.index === 0;\n }\n\n public get arrowIsDisabledRight(): boolean {\n return this.reverseIndex === 0;\n }\n\n /**\n * Number of items in a container.\n */\n protected get elementsLength(): number {\n return this.itemsFit ? this.length : this.maxElementsLength;\n }\n\n protected get buttonSize(): TuiSizeXS {\n return this.size === 'm' ? 'xs' : 's';\n }\n\n protected elementIsFocusable(index: number): boolean {\n return this.index === index && !this.focused;\n }\n\n /**\n * Get index by element index\n * @param elementIndex\n * @returns index or null (for '…')\n */\n protected getItemIndexByElementIndex(elementIndex: number): number | null {\n if (this.size === 's') {\n return elementIndex;\n }\n\n if (elementIndex < this.sidePadding) {\n return elementIndex;\n }\n\n if (elementIndex === this.sidePadding && this.hasCollapsedItems(this.index)) {\n return null;\n }\n\n const reverseElementIndex = this.lastElementIndex - elementIndex;\n\n if (\n reverseElementIndex === this.sidePadding &&\n this.hasCollapsedItems(this.reverseIndex)\n ) {\n return null;\n }\n\n if (reverseElementIndex < this.sidePadding) {\n return this.lastIndex - reverseElementIndex;\n }\n\n const computedIndex = this.index - this.maxHalfLength + elementIndex;\n\n return tuiClamp(\n computedIndex,\n elementIndex,\n this.lastIndex - reverseElementIndex,\n );\n }\n\n protected getElementMode(index = -1): string {\n return this.options.appearance({\n isActive: this.index === index,\n size: this.size,\n });\n }\n\n protected onElementClick(index: number): void {\n this.updateIndex(index);\n }\n\n protected onElementKeyDownArrowLeft(element: HTMLElement): void {\n if (element === this.els.first.nativeElement) {\n return;\n }\n\n const previous = this.els.find(\n (_, index, array) => array[index + 1]?.nativeElement === element,\n );\n\n previous?.nativeElement.focus();\n }\n\n protected onElementKeyDownArrowRight(element: HTMLElement): void {\n if (element === this.els.last.nativeElement) {\n return;\n }\n\n const next = this.els.find(\n (_, index, array) => array[index - 1]?.nativeElement === element,\n );\n\n next?.nativeElement.focus();\n }\n\n protected onArrowClick(direction: TuiHorizontalDirection): void {\n this.tryChangeTo(direction);\n this.focusActive();\n }\n\n /**\n * Active index from the end\n */\n private get reverseIndex(): number {\n return this.lastIndex - this.index;\n }\n\n /**\n * Max number of elements in half (not counting the middle one).\n */\n private get maxHalfLength(): number {\n return this.sidePadding + DOTS_LENGTH + this.activePadding;\n }\n\n /**\n * Is there '...' anywhere\n */\n private get itemsFit(): boolean {\n return this.length <= this.maxElementsLength;\n }\n\n /**\n * Max number of elements\n */\n private get maxElementsLength(): number {\n return this.maxHalfLength * 2 + ACTIVE_ITEM_LENGTH;\n }\n\n private get lastIndex(): number {\n return this.length - 1;\n }\n\n private get lastElementIndex(): number {\n return this.elementsLength - 1;\n }\n\n /**\n * Are there collapsed items at that index\n * @param index\n * @returns there are collapsed items\n */\n private hasCollapsedItems(index: number): boolean {\n return !this.itemsFit && index > this.maxHalfLength;\n }\n\n private tryChangeTo(direction: TuiHorizontalDirection): void {\n this.updateIndex(\n tuiClamp(this.index + (direction === 'right' ? 1 : -1), 0, this.lastIndex),\n );\n }\n\n private focusActive(): void {\n const {nativeFocusableElement} = this;\n\n if (nativeFocusableElement) {\n nativeFocusableElement.focus();\n }\n }\n\n private updateIndex(index: number): void {\n if (this.index === index) {\n return;\n }\n\n this.index = index;\n this.indexChange.emit(index);\n }\n}\n","<div class=\"t-content\">\n @if (size !== 's') {\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode()\"\n [disabled]=\"arrowIsDisabledLeft\"\n [iconStart]=\"icons.decrement\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('left')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[0] }}\n </button>\n <ng-container *tuiRepeatTimes=\"let elementIndex of elementsLength\">\n @let index = getItemIndexByElementIndex(elementIndex);\n @if (index !== null) {\n <button\n #element\n automation-id=\"tui-pagination__element\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode(index)\"\n [disabled]=\"disabled\"\n [size]=\"buttonSize\"\n [tabIndex]=\"elementIsFocusable(index) ? 0 : -1\"\n (click)=\"onElementClick(index)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n <ng-container *polymorpheusOutlet=\"content || index + 1 as text; context: {$implicit: index}\">\n {{ text }}\n </ng-container>\n </button>\n } @else {\n <div\n automation-id=\"tui-pagination__element\"\n class=\"t-dots\"\n [class.t-dots_small]=\"size === 'm'\"\n ></div>\n }\n </ng-container>\n <button\n tabIndex=\"-1\"\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"getElementMode()\"\n [disabled]=\"arrowIsDisabledRight\"\n [iconStart]=\"icons.increment\"\n [size]=\"buttonSize\"\n (click)=\"onArrowClick('right')\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n {{ texts()[1] }}\n </button>\n } @else {\n <button\n *tuiRepeatTimes=\"let indexItem of length\"\n #element\n tuiButton\n type=\"button\"\n class=\"t-button t-button_small\"\n [appearance]=\"getElementMode(indexItem)\"\n [disabled]=\"disabled\"\n [tabIndex]=\"elementIsFocusable(indexItem) ? 0 : -1\"\n (click)=\"onElementClick(indexItem)\"\n (keydown.arrowLeft.prevent)=\"onElementKeyDownArrowLeft(element)\"\n (keydown.arrowRight.prevent)=\"onElementKeyDownArrowRight(element)\"\n >\n {{ indexItem + 1 }}\n </button>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,11 +4,11 @@ import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
 
5
5
  class Styles {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-pin" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiPin]{--t-size: 2rem;transition-property:width,height,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-font-text-s);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(-50%,-50%)}[tuiPin]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:empty{--t-size: .75rem}[tuiPin]:empty:before{display:none}[tuiPin]>input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}[tuiPin]>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}[tuiPin]>tui-icon{transition-property:width,height;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font-size:1.25rem;align-self:center}[tuiPin]:has(:checked){--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:has(:checked)>img{padding:.125rem}[tuiPin]:has(:checked)>tui-icon{font-size:2.125rem}[tuiPin]:has(:checked):before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}[tuiPin]:has(:checked):after{top:4.5rem;opacity:1}[tuiPin]._open{--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]._open>img{padding:.125rem}[tuiPin]._open>tui-icon{font-size:2.125rem}[tuiPin]._open:before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}[tuiPin]._open:after{top:4.5rem;opacity:1}[tuiPin]:before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;right:-.25rem;bottom:-.625rem;box-sizing:border-box;border-width:2.2rem 2rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(-1.875rem,-1.875rem);transform-origin:top left;pointer-events:none;mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat}[tuiPin]:after{transition-property:top,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(-50%,-50%);opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: Styles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-pin" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiPin]{--t-size: 2rem;transition-property:width,height,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-font-text-s);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(-50%,-50%)}[tuiPin]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:empty{--t-size: .75rem}[tuiPin]:empty:before{display:none}[tuiPin]>input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}[tuiPin]>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}[tuiPin]>tui-icon{transition-property:width,height;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font-size:1.25rem;align-self:center}[tuiPin]:has(:checked){--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:has(:checked)>img{padding:.125rem}[tuiPin]:has(:checked)>tui-icon{font-size:2.125rem}[tuiPin]:has(:checked):before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}[tuiPin]:has(:checked):after{top:4.5rem;opacity:1}[tuiPin]._open{--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]._open>img{padding:.125rem}[tuiPin]._open>tui-icon{font-size:2.125rem}[tuiPin]._open:before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}[tuiPin]._open:after{top:4.5rem;opacity:1}[tuiPin]:before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;right:-.25rem;bottom:-.625rem;box-sizing:border-box;border-width:2.2rem 2rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(-1.875rem,-1.875rem);transform-origin:top left;pointer-events:none;mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat}[tuiPin]:after{transition-property:top,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(-50%,-50%);opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Styles, decorators: [{
10
10
  type: Component,
11
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-pin' }, styles: ["[tuiPin]{--t-size: 2rem;transition-property:width,height,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-font-text-s);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(-50%,-50%)}[tuiPin]:matches(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:empty{--t-size: .75rem}[tuiPin]:empty:before{display:none}[tuiPin]>input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}[tuiPin]>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}[tuiPin]>tui-icon{transition-property:width,height;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font-size:1.25rem;align-self:center}[tuiPin]:has(:checked){--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:has(:checked)>img{padding:.125rem}[tuiPin]:has(:checked)>tui-icon{font-size:2.125rem}[tuiPin]:has(:checked):before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}[tuiPin]:has(:checked):after{top:4.5rem;opacity:1}[tuiPin]._open{--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]._open>img{padding:.125rem}[tuiPin]._open>tui-icon{font-size:2.125rem}[tuiPin]._open:before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}[tuiPin]._open:after{top:4.5rem;opacity:1}[tuiPin]:before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;right:-.25rem;bottom:-.625rem;box-sizing:border-box;border-width:2.2rem 2rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(-1.875rem,-1.875rem);transform-origin:top left;pointer-events:none;mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat}[tuiPin]:after{transition-property:top,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(-50%,-50%);opacity:0}\n"] }]
11
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'tui-pin' }, styles: ["[tuiPin]{--t-size: 2rem;transition-property:width,height,border,margin;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;-webkit-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;line-height:inherit;text-decoration:none;position:relative;display:flex;inline-size:var(--t-size);block-size:var(--t-size);align-items:stretch;flex-direction:column;justify-content:center;text-align:center;border-radius:100%;font:var(--tui-font-text-s);font-weight:700;box-sizing:border-box;color:var(--tui-text-primary-on-accent-2);background:var(--tui-background-accent-2);box-shadow:0 0 0 .125rem var(--tui-background-elevation-2);border:0 solid var(--tui-background-accent-2);transform:translate(-50%,-50%)}[tuiPin]:is(a,button,select,textarea,input,label,.tui-interactive):not(:disabled){cursor:pointer}[tuiPin]:empty{--t-size: .75rem}[tuiPin]:empty:before{display:none}[tuiPin]>input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-appearance:none;appearance:none;border-radius:100%}[tuiPin]>img{max-block-size:100%;box-sizing:border-box;border-radius:100%;background:var(--tui-background-base)}[tuiPin]>tui-icon{transition-property:width,height;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;font-size:1.25rem;align-self:center}[tuiPin]:has(:checked){--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]:has(:checked)>img{padding:.125rem}[tuiPin]:has(:checked)>tui-icon{font-size:2.125rem}[tuiPin]:has(:checked):before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}[tuiPin]:has(:checked):after{top:4.5rem;opacity:1}[tuiPin]._open{--t-size: 3.5rem;font:var(--tui-font-text-m);font-weight:700;border-width:0;margin-block-start:-2.75rem}[tuiPin]._open>img{padding:.125rem}[tuiPin]._open>tui-icon{font-size:2.125rem}[tuiPin]._open:before{transform:scale(.99) translate(-1.875rem,-1.875rem);opacity:1}[tuiPin]._open:after{top:4.5rem;opacity:1}[tuiPin]:before{transition-property:transform,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;right:-.25rem;bottom:-.625rem;box-sizing:border-box;border-width:2.2rem 2rem;border-style:solid;border-color:inherit;opacity:0;transform:scale(.57) translate(-1.875rem,-1.875rem);transform-origin:top left;pointer-events:none;mask:url('data:image/svg+xml,<svg width=\"60\" height=\"66\" viewBox=\"0 0 60 66\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 30.0917C0 13.4726 13.4313 0 30.0002 0C46.5687 0 60 13.4726 60 30.0917C60 44.2105 50.4927 56.0529 37.4162 59.2986C32.5552 60.5551 31.0408 65.275 31.0408 65.275C30.8892 65.697 30.4909 66 30.0183 66C29.5453 66 29.147 65.697 28.9938 65.275C28.9938 65.275 27.481 60.5551 22.6199 59.2986C9.46433 56.0206 0 43.5901 0 30.0917ZM30 57.75C45.3259 57.75 57.75 45.3259 57.75 30C57.75 14.6741 45.3259 2.25 30 2.25C14.6741 2.25 2.25 14.6741 2.25 30C2.25 45.3259 14.6741 57.75 30 57.75Z\" /></svg>') no-repeat}[tuiPin]:after{transition-property:top,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;content:\"\";position:absolute;top:50%;left:50%;border:.1875rem solid currentColor;border-color:inherit;border-radius:100%;box-sizing:border-box;box-shadow:inherit;transform:translate(-50%,-50%);opacity:0}\n"] }]
12
12
  }] });
13
13
  class TuiPin {
14
14
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-kit-components-pin.mjs","sources":["../../../projects/kit/components/pin/pin.directive.ts","../../../projects/kit/components/pin/taiga-ui-kit-components-pin.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styles: '@import \"@taiga-ui/kit/styles/components/pin.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-pin'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiPin]',\n host: {\n tuiPin: '',\n '[class._open]': 'open()',\n },\n})\nexport class TuiPin {\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly open = input<boolean | ''>('', {alias: 'tuiPin'});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AASA,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,6GANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,i7GAAA,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,SAAS,EAAC,EAAA,MAAA,EAAA,CAAA,i7GAAA,CAAA,EAAA;;MAWf,MAAM,CAAA;AAPnB,IAAA,WAAA,GAAA;AAQuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;QAElC,IAAI,CAAA,IAAA,GAAG,KAAK,CAAe,EAAE,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;AACpE;+GAJY,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAN,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,IAAI,EAAE;AACF,wBAAA,MAAM,EAAE,EAAE;AACV,wBAAA,eAAe,EAAE,QAAQ;AAC5B,qBAAA;AACJ,iBAAA;;;ACxBD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-kit-components-pin.mjs","sources":["../../../projects/kit/components/pin/pin.directive.ts","../../../projects/kit/components/pin/taiga-ui-kit-components-pin.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Directive,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Component({\n template: '',\n styles: '@import \"@taiga-ui/kit/styles/components/pin.less\";',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {class: 'tui-pin'},\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiPin]',\n host: {\n tuiPin: '',\n '[class._open]': 'open()',\n },\n})\nexport class TuiPin {\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly open = input<boolean | ''>('', {alias: 'tuiPin'});\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AASA,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,6GANE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,20GAAA,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,SAAS,EAAC,EAAA,MAAA,EAAA,CAAA,20GAAA,CAAA,EAAA;;MAWf,MAAM,CAAA;AAPnB,IAAA,WAAA,GAAA;AAQuB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;QAElC,IAAI,CAAA,IAAA,GAAG,KAAK,CAAe,EAAE,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;AACpE;+GAJY,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAN,MAAM,EAAA,UAAA,EAAA,CAAA;kBAPlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,IAAI,EAAE;AACF,wBAAA,MAAM,EAAE,EAAE;AACV,wBAAA,eAAe,EAAE,QAAQ;AAC5B,qBAAA;AACJ,iBAAA;;;ACxBD;;AAEG;;;;"}