@taiga-ui/core 2.41.0 → 2.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/bundles/taiga-ui-core-components-alert.umd.js +11 -2
  2. package/bundles/taiga-ui-core-components-alert.umd.js.map +1 -1
  3. package/bundles/taiga-ui-core-components-alert.umd.min.js +2 -2
  4. package/bundles/taiga-ui-core-components-alert.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-core-components-button.umd.js +1 -1
  6. package/bundles/taiga-ui-core-components-button.umd.js.map +1 -1
  7. package/bundles/taiga-ui-core-components-button.umd.min.js +1 -1
  8. package/bundles/taiga-ui-core-components-button.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-core-components-data-list.umd.js +6 -4
  10. package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
  11. package/bundles/taiga-ui-core-components-data-list.umd.min.js +1 -1
  12. package/bundles/taiga-ui-core-components-data-list.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-core-components-dropdown-box.umd.js +2 -1
  14. package/bundles/taiga-ui-core-components-dropdown-box.umd.js.map +1 -1
  15. package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js +2 -2
  16. package/bundles/taiga-ui-core-components-dropdown-box.umd.min.js.map +1 -1
  17. package/bundles/taiga-ui-core-components-expand.umd.js +2 -1
  18. package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
  19. package/bundles/taiga-ui-core-components-expand.umd.min.js +1 -1
  20. package/bundles/taiga-ui-core-components-expand.umd.min.js.map +1 -1
  21. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  22. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.min.js.map +1 -1
  23. package/bundles/taiga-ui-core-components-link.umd.js +2 -1
  24. package/bundles/taiga-ui-core-components-link.umd.js.map +1 -1
  25. package/bundles/taiga-ui-core-components-link.umd.min.js +1 -1
  26. package/bundles/taiga-ui-core-components-link.umd.min.js.map +1 -1
  27. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js +1 -1
  28. package/bundles/taiga-ui-core-components-primitive-calendar.umd.js.map +1 -1
  29. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js +1 -1
  30. package/bundles/taiga-ui-core-components-primitive-calendar.umd.min.js.map +1 -1
  31. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +1 -1
  32. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  33. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js +1 -1
  34. package/bundles/taiga-ui-core-components-primitive-textfield.umd.min.js.map +1 -1
  35. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.js.map +1 -1
  36. package/bundles/taiga-ui-core-components-primitive-year-picker.umd.min.js.map +1 -1
  37. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +2 -2
  38. package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
  39. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js +1 -1
  40. package/bundles/taiga-ui-core-components-scroll-controls.umd.min.js.map +1 -1
  41. package/bundles/taiga-ui-core-constants.umd.js +1 -1
  42. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  43. package/bundles/taiga-ui-core-constants.umd.min.js +1 -1
  44. package/bundles/taiga-ui-core-constants.umd.min.js.map +1 -1
  45. package/bundles/taiga-ui-core-providers.umd.js +1 -1
  46. package/bundles/taiga-ui-core-providers.umd.js.map +1 -1
  47. package/bundles/taiga-ui-core-providers.umd.min.js +1 -1
  48. package/bundles/taiga-ui-core-providers.umd.min.js.map +1 -1
  49. package/components/alert/alert.module.d.ts +2 -1
  50. package/components/alert/taiga-ui-core-components-alert.metadata.json +1 -1
  51. package/components/button/button-options.d.ts +1 -1
  52. package/components/button/taiga-ui-core-components-button.metadata.json +1 -1
  53. package/components/data-list/data-list.component.d.ts +1 -1
  54. package/components/data-list/taiga-ui-core-components-data-list.metadata.json +1 -1
  55. package/components/dropdown-box/taiga-ui-core-components-dropdown-box.metadata.json +1 -1
  56. package/components/expand/expand.component.d.ts +2 -2
  57. package/components/expand/taiga-ui-core-components-expand.metadata.json +1 -1
  58. package/components/hosted-dropdown/hosted-dropdown.component.d.ts +1 -1
  59. package/components/link/taiga-ui-core-components-link.metadata.json +1 -1
  60. package/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.metadata.json +1 -1
  61. package/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.metadata.json +1 -1
  62. package/components/primitive-year-picker/primitive-year-picker.component.d.ts +1 -1
  63. package/constants/taiga-ui-core-constants.metadata.json +1 -1
  64. package/constants/version.d.ts +1 -1
  65. package/esm2015/components/alert/alert.component.js +4 -2
  66. package/esm2015/components/alert/alert.module.js +7 -2
  67. package/esm2015/components/button/button-options.js +1 -1
  68. package/esm2015/components/button/button.component.js +2 -2
  69. package/esm2015/components/data-list/data-list-dropdown-manager.directive.js +2 -2
  70. package/esm2015/components/data-list/data-list.component.js +6 -5
  71. package/esm2015/components/dropdown-box/dropdown-box.component.js +4 -3
  72. package/esm2015/components/expand/expand.component.js +3 -2
  73. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +1 -1
  74. package/esm2015/components/link/link.component.js +3 -2
  75. package/esm2015/components/primitive-calendar/primitive-calendar.component.js +2 -2
  76. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +2 -2
  77. package/esm2015/components/primitive-year-picker/primitive-year-picker.component.js +1 -1
  78. package/esm2015/components/scroll-controls/scrollbar.directive.js +3 -3
  79. package/esm2015/constants/version.js +2 -2
  80. package/esm2015/providers/mode.provider.js +3 -3
  81. package/esm5/components/alert/alert.component.js +4 -2
  82. package/esm5/components/alert/alert.module.js +10 -2
  83. package/esm5/components/button/button-options.js +1 -1
  84. package/esm5/components/button/button.component.js +2 -2
  85. package/esm5/components/data-list/data-list-dropdown-manager.directive.js +2 -2
  86. package/esm5/components/data-list/data-list.component.js +7 -5
  87. package/esm5/components/dropdown-box/dropdown-box.component.js +4 -3
  88. package/esm5/components/expand/expand.component.js +3 -2
  89. package/esm5/components/hosted-dropdown/hosted-dropdown.component.js +1 -1
  90. package/esm5/components/link/link.component.js +3 -2
  91. package/esm5/components/primitive-calendar/primitive-calendar.component.js +2 -2
  92. package/esm5/components/primitive-textfield/primitive-textfield.component.js +2 -2
  93. package/esm5/components/primitive-year-picker/primitive-year-picker.component.js +1 -1
  94. package/esm5/components/scroll-controls/scrollbar.directive.js +3 -3
  95. package/esm5/constants/version.js +2 -2
  96. package/esm5/providers/mode.provider.js +3 -3
  97. package/fesm2015/taiga-ui-core-components-alert.js +8 -2
  98. package/fesm2015/taiga-ui-core-components-alert.js.map +1 -1
  99. package/fesm2015/taiga-ui-core-components-button.js +1 -1
  100. package/fesm2015/taiga-ui-core-components-button.js.map +1 -1
  101. package/fesm2015/taiga-ui-core-components-data-list.js +6 -5
  102. package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
  103. package/fesm2015/taiga-ui-core-components-dropdown-box.js +3 -2
  104. package/fesm2015/taiga-ui-core-components-dropdown-box.js.map +1 -1
  105. package/fesm2015/taiga-ui-core-components-expand.js +2 -1
  106. package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
  107. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  108. package/fesm2015/taiga-ui-core-components-link.js +2 -1
  109. package/fesm2015/taiga-ui-core-components-link.js.map +1 -1
  110. package/fesm2015/taiga-ui-core-components-primitive-calendar.js +1 -1
  111. package/fesm2015/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  112. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +1 -1
  113. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  114. package/fesm2015/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  115. package/fesm2015/taiga-ui-core-components-scroll-controls.js +2 -2
  116. package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
  117. package/fesm2015/taiga-ui-core-constants.js +1 -1
  118. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  119. package/fesm2015/taiga-ui-core-providers.js +2 -2
  120. package/fesm2015/taiga-ui-core-providers.js.map +1 -1
  121. package/fesm5/taiga-ui-core-components-alert.js +11 -2
  122. package/fesm5/taiga-ui-core-components-alert.js.map +1 -1
  123. package/fesm5/taiga-ui-core-components-button.js +1 -1
  124. package/fesm5/taiga-ui-core-components-button.js.map +1 -1
  125. package/fesm5/taiga-ui-core-components-data-list.js +7 -5
  126. package/fesm5/taiga-ui-core-components-data-list.js.map +1 -1
  127. package/fesm5/taiga-ui-core-components-dropdown-box.js +3 -2
  128. package/fesm5/taiga-ui-core-components-dropdown-box.js.map +1 -1
  129. package/fesm5/taiga-ui-core-components-expand.js +2 -1
  130. package/fesm5/taiga-ui-core-components-expand.js.map +1 -1
  131. package/fesm5/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  132. package/fesm5/taiga-ui-core-components-link.js +2 -1
  133. package/fesm5/taiga-ui-core-components-link.js.map +1 -1
  134. package/fesm5/taiga-ui-core-components-primitive-calendar.js +1 -1
  135. package/fesm5/taiga-ui-core-components-primitive-calendar.js.map +1 -1
  136. package/fesm5/taiga-ui-core-components-primitive-textfield.js +1 -1
  137. package/fesm5/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  138. package/fesm5/taiga-ui-core-components-primitive-year-picker.js.map +1 -1
  139. package/fesm5/taiga-ui-core-components-scroll-controls.js +2 -2
  140. package/fesm5/taiga-ui-core-components-scroll-controls.js.map +1 -1
  141. package/fesm5/taiga-ui-core-constants.js +1 -1
  142. package/fesm5/taiga-ui-core-constants.js.map +1 -1
  143. package/fesm5/taiga-ui-core-providers.js +2 -2
  144. package/fesm5/taiga-ui-core-providers.js.map +1 -1
  145. package/package.json +7 -7
  146. package/styles/markup/tui-group.less +1 -1
  147. package/styles/taiga-ui-global-old.less +18 -18
  148. package/styles/taiga-ui-global.less +18 -18
  149. package/styles/taiga-ui-local-old.less +5 -5
  150. package/styles/taiga-ui-local.less +7 -7
  151. package/styles/taiga-ui-local.scss +7 -7
  152. package/styles/taiga-ui-stackblitz.less +7 -0
  153. package/styles/taiga-ui-theme.less +4 -4
  154. package/styles/theme/dialog.less +1 -1
  155. package/styles/theme/wrapper/accent.less +1 -1
  156. package/styles/theme/wrapper/base.less +1 -1
  157. package/styles/theme/wrapper/icon.less +1 -1
  158. package/styles/theme/wrapper/outline.less +1 -1
  159. package/styles/theme/wrapper/primary.less +1 -1
  160. package/styles/theme/wrapper/secondary.less +1 -1
  161. package/styles/theme/wrapper/table.less +30 -12
  162. package/styles/theme/wrapper/textfield.less +1 -1
  163. package/styles/theme/wrapper/whiteblock.less +1 -1
  164. package/styles/theme/wrapper.less +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-primitive-calendar.js","sources":["ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.component.ts","ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.module.ts","ng://@taiga-ui/core/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n} from '@taiga-ui/cdk';\nimport {TUI_DEFAULT_MARKER_HANDLER} from '@taiga-ui/core/constants';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\nimport {TUI_ORDERED_SHORT_WEEK_DAYS, WEEK_DAYS_NAMES} from '@taiga-ui/core/tokens';\nimport {TuiColor, TuiMarkerHandler} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-calendar',\n templateUrl: './primitive-calendar.template.html',\n styleUrls: ['./primitive-calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveCalendarComponent {\n private pressedItem: TuiDay | null = null;\n private readonly today = TuiDay.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n markerHandler: TuiMarkerHandler = TUI_DEFAULT_MARKER_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n value: TuiDayRange | TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n hoveredItem: TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n showAdjacent = true;\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n @Output()\n readonly dayClick = new EventEmitter<TuiDay>();\n\n constructor(\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<WEEK_DAYS_NAMES>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiDay || this.value.isSingleDay)\n );\n }\n\n readonly toMarkers = (\n day: TuiDay,\n today: boolean,\n inRange: boolean,\n ): null | [TuiColor | string] | [TuiColor | string, TuiColor | string] => {\n if (today || inRange) {\n return null;\n }\n\n const markers = this.markerHandler(day);\n\n return markers.length === 0 ? null : markers;\n };\n\n getItemState(item: TuiDay): TuiInteractiveState | null {\n const {disabledItemHandler, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandler(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem && pressedItem.daySame(item)) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem && hoveredItem.daySame(item)) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: TuiDay): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (value instanceof TuiDay) {\n return value.daySame(item) ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayAfter(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayBefore(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayBefore(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayAfter(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.End;\n }\n\n return value.isSingleDay && value.from.daySame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsToday(item: TuiDay): boolean {\n return this.today.daySame(item);\n }\n\n itemIsUnavailable(item: TuiDay): boolean {\n return !this.month.monthSame(item);\n }\n\n itemIsInterval(day: TuiDay): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiDay) {\n return false;\n }\n\n if (!value.isSingleDay) {\n return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiDayRange.sort(value.from, hoveredItem);\n\n return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n }\n\n onItemHovered(item: TuiDay | false) {\n this.updateHoveredItem(item || null);\n }\n\n onItemPressed(item: TuiDay | false) {\n this.pressedItem = item || null;\n }\n\n onItemClick(item: TuiDay) {\n this.dayClick.emit(item);\n }\n\n private updateHoveredItem(day: TuiDay | null) {\n if (nullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiColorModule} from '@taiga-ui/core/directives/color';\nimport {TuiCalendarSheetPipeModule} from '@taiga-ui/core/pipes';\n\nimport {TuiPrimitiveCalendarComponent} from './primitive-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiRepeatTimesModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiColorModule,\n TuiCalendarSheetPipeModule,\n ],\n declarations: [TuiPrimitiveCalendarComponent],\n exports: [TuiPrimitiveCalendarComponent],\n})\nexport class TuiPrimitiveCalendarModule {}\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-core-components-primitive-calendar.js","sources":["ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.component.ts","ng://@taiga-ui/core/components/primitive-calendar/primitive-calendar.module.ts","ng://@taiga-ui/core/components/primitive-calendar/taiga-ui-core-components-primitive-calendar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n nullableSame,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n} from '@taiga-ui/cdk';\nimport {TUI_DEFAULT_MARKER_HANDLER} from '@taiga-ui/core/constants';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\nimport {TUI_ORDERED_SHORT_WEEK_DAYS, WEEK_DAYS_NAMES} from '@taiga-ui/core/tokens';\nimport {TuiColor, TuiMarkerHandler} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\n// @dynamic\n@Component({\n selector: 'tui-primitive-calendar',\n templateUrl: './primitive-calendar.template.html',\n styleUrls: ['./primitive-calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveCalendarComponent {\n private pressedItem: TuiDay | null = null;\n private readonly today = TuiDay.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n markerHandler: TuiMarkerHandler = TUI_DEFAULT_MARKER_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n value: TuiDayRange | TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n hoveredItem: TuiDay | null = null;\n\n @Input()\n @tuiDefaultProp()\n showAdjacent = true;\n\n @Output()\n readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n @Output()\n readonly dayClick = new EventEmitter<TuiDay>();\n\n constructor(\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<WEEK_DAYS_NAMES>,\n ) {}\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n return (\n this.value !== null &&\n (this.value instanceof TuiDay || this.value.isSingleDay)\n );\n }\n\n readonly toMarkers = (\n day: TuiDay,\n today: boolean,\n inRange: boolean,\n ): null | [TuiColor | string] | [TuiColor | string, TuiColor | string] => {\n if (today || inRange) {\n return null;\n }\n\n const markers = this.markerHandler(day);\n\n return markers.length === 0 ? null : markers;\n };\n\n getItemState(item: TuiDay): TuiInteractiveState | null {\n const {disabledItemHandler, pressedItem, hoveredItem} = this;\n\n if (disabledItemHandler(item)) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem && pressedItem.daySame(item)) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem && hoveredItem.daySame(item)) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: TuiDay): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (value instanceof TuiDay) {\n return value.daySame(item) ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayAfter(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayBefore(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.daySame(item) && !value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.dayBefore(value.from) &&\n value.from.daySame(item) &&\n value.isSingleDay) ||\n (hoveredItem &&\n hoveredItem.daySame(item) &&\n hoveredItem.dayAfter(value.from) &&\n value.isSingleDay)\n ) {\n return TuiRangeState.End;\n }\n\n return value.isSingleDay && value.from.daySame(item)\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsToday(item: TuiDay): boolean {\n return this.today.daySame(item);\n }\n\n itemIsUnavailable(item: TuiDay): boolean {\n return !this.month.monthSame(item);\n }\n\n itemIsInterval(day: TuiDay): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || value instanceof TuiDay) {\n return false;\n }\n\n if (!value.isSingleDay) {\n return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiDayRange.sort(value.from, hoveredItem);\n\n return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n }\n\n onItemHovered(item: TuiDay | false) {\n this.updateHoveredItem(item || null);\n }\n\n onItemPressed(item: TuiDay | false) {\n this.pressedItem = item || null;\n }\n\n onItemClick(item: TuiDay) {\n this.dayClick.emit(item);\n }\n\n private updateHoveredItem(day: TuiDay | null) {\n if (nullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiColorModule} from '@taiga-ui/core/directives/color';\nimport {TuiCalendarSheetPipeModule} from '@taiga-ui/core/pipes';\n\nimport {TuiPrimitiveCalendarComponent} from './primitive-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiLetModule,\n TuiMapperPipeModule,\n TuiRepeatTimesModule,\n TuiHoveredModule,\n TuiPressedModule,\n TuiColorModule,\n TuiCalendarSheetPipeModule,\n ],\n declarations: [TuiPrimitiveCalendarComponent],\n exports: [TuiPrimitiveCalendarComponent],\n})\nexport class TuiPrimitiveCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -366,7 +366,7 @@ var TuiPrimitiveTextfieldComponent = /** @class */ (function (_super) {
366
366
  TuiPrimitiveTextfieldComponent = __decorate([
367
367
  Component({
368
368
  selector: 'tui-primitive-textfield',
369
- template: "<ng-container *ngIf=\"content?.changes | async\"></ng-container>\n<tui-wrapper\n automation-id=\"tui-primitive-textfield__wrapper\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n [style.--text-indent.px]=\"decor.pre$ | async\"\n (mousedown)=\"onMouseDown($event)\"\n (click.prevent.silent)=\"0\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiAutofilledChange)=\"onAutofilled($event)\"\n>\n <ng-content select=\"input\"></ng-content>\n <input\n #focusableElement\n tuiMaskAccessor\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"t-input\"\n [attr.disabled]=\"computedDisabled || null\"\n [attr.maxLength]=\"controller.maxLength\"\n [attr.name]=\"name\"\n [attr.aria-placeholder]=\"controller.exampleText\"\n [attr.aria-invalid]=\"computedInvalid\"\n [autocomplete]=\"controller.autocomplete\"\n [type]=\"controller.type\"\n [id]=\"id\"\n [readOnly]=\"readOnly || !editable\"\n [tuiInputMode]=\"controller.inputMode\"\n [tuiFocusable]=\"computedFocusable\"\n [tuiDescribedBy]=\"id\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"t-input t-input_template\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"t-content\">\n <div\n *ngIf=\"iconAlignLeft\"\n polymorpheus-outlet\n class=\"t-icon t-icon_left\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"t-wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n [for]=\"computedId\"\n >\n <ng-content></ng-content>\n </label>\n <div class=\"t-wrapper-value-decoration\">\n <tui-value-decoration\n #decor\n automation-id=\"tui-primitive-textfield__value-decoration\"\n aria-hidden=\"true\"\n class=\"t-value-decoration\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n ></tui-value-decoration>\n </div>\n </div>\n <div\n *ngIf=\"hasCustomContent\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"t-custom-content\"\n [content]=\"controller.customContent\"\n >\n <ng-template let-iconSrc>\n <tui-svg\n class=\"t-custom-icon\"\n [src]=\"iconSrc\"\n ></tui-svg>\n </ng-template>\n </div>\n <span\n *ngIf=\"hasCleaner\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__cleaner\"\n class=\"t-cleaner\"\n [content]=\"iconCleaner\"\n (click.stop)=\"clear()\"\n >\n <ng-template let-icon>\n <tui-svg [src]=\"icon\"></tui-svg>\n </ng-template>\n </span>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n [describeId]=\"computedId\"\n [content]=\"hintController.content\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <div\n *ngIf=\"iconAlignRight\"\n polymorpheus-outlet\n class=\"t-icon\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n </div>\n</tui-wrapper>\n",
369
+ template: "<ng-container *ngIf=\"content?.changes | async\"></ng-container>\n<tui-wrapper\n automation-id=\"tui-primitive-textfield__wrapper\"\n [appearance]=\"appearance\"\n [readOnly]=\"readOnly\"\n [disabled]=\"disabled\"\n [focused]=\"computedFocused\"\n [hovered]=\"computedHovered\"\n [pressed]=\"computedPressed\"\n [invalid]=\"computedInvalid\"\n [style.--text-indent.px]=\"decor.pre$ | async\"\n (mousedown)=\"onMouseDown($event)\"\n (click.prevent.silent)=\"0\"\n (tuiHoveredChange)=\"onHovered($event)\"\n (tuiAutofilledChange)=\"onAutofilled($event)\"\n>\n <ng-content select=\"input\"></ng-content>\n <input\n #focusableElement\n tuiMaskAccessor\n automation-id=\"tui-primitive-textfield__native-input\"\n class=\"t-input\"\n [attr.disabled]=\"computedDisabled || null\"\n [attr.maxLength]=\"controller.maxLength\"\n [attr.name]=\"name\"\n [attr.aria-placeholder]=\"controller.exampleText\"\n [attr.aria-invalid]=\"computedInvalid\"\n [autocomplete]=\"controller.autocomplete\"\n [type]=\"controller.type\"\n [id]=\"id\"\n [readOnly]=\"readOnly || !editable\"\n [tuiInputMode]=\"controller.inputMode\"\n [tuiFocusable]=\"computedFocusable\"\n [tuiDescribedBy]=\"id\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <div\n *ngIf=\"inputHidden\"\n automation-id=\"tui-primitive-textfield__value\"\n class=\"t-input t-input_template\"\n >\n <ng-content select=\"[polymorpheus-outlet]\"></ng-content>\n </div>\n <div class=\"t-content\">\n <div\n *ngIf=\"iconAlignLeft\"\n polymorpheus-outlet\n class=\"t-icon t-icon_left\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n <div class=\"t-wrapper\">\n <label\n *ngIf=\"hasPlaceholder\"\n automation-id=\"tui-primitive-textfield__placeholder\"\n class=\"t-placeholder\"\n [class.t-placeholder_raised]=\"placeholderRaised\"\n [for]=\"computedId\"\n >\n <ng-content></ng-content>\n </label>\n <div class=\"t-wrapper-value-decoration\">\n <tui-value-decoration\n #decor\n automation-id=\"tui-primitive-textfield__value-decoration\"\n aria-hidden=\"true\"\n class=\"t-value-decoration\"\n [style.textIndent.px]=\"getIndent$(focusableElement) | async\"\n ></tui-value-decoration>\n </div>\n </div>\n <div\n *ngIf=\"hasCustomContent\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__custom-content\"\n class=\"t-custom-content\"\n [content]=\"controller.customContent\"\n >\n <ng-template let-iconSrc>\n <tui-svg\n class=\"t-custom-icon\"\n [src]=\"iconSrc\"\n ></tui-svg>\n </ng-template>\n </div>\n <span\n *ngIf=\"hasCleaner\"\n polymorpheus-outlet\n automation-id=\"tui-primitive-textfield__cleaner\"\n class=\"t-cleaner\"\n [content]=\"iconCleaner\"\n (click.stop)=\"clear()\"\n >\n <ng-template let-icon>\n <tui-svg [src]=\"icon\"></tui-svg>\n </ng-template>\n </span>\n <tui-tooltip\n *ngIf=\"hasTooltip\"\n automation-id=\"tui-primitive-textfield__tooltip\"\n [describeId]=\"computedId\"\n [content]=\"hintController.content || ''\"\n [direction]=\"hintController.direction\"\n [mode]=\"hintController.mode\"\n [showDelay]=\"hintController.showDelay\"\n [hideDelay]=\"hintController.hideDelay\"\n ></tui-tooltip>\n <div\n *ngIf=\"iconAlignRight\"\n polymorpheus-outlet\n class=\"t-icon\"\n [content]=\"iconContent\"\n [context]=\"{$implicit: size}\"\n >\n <ng-template let-iconSrc>\n <tui-svg [src]=\"iconSrc\"></tui-svg>\n </ng-template>\n </div>\n </div>\n</tui-wrapper>\n",
370
370
  changeDetection: ChangeDetectionStrategy.OnPush,
371
371
  providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,
372
372
  host: {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-primitive-textfield.js","sources":["ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.providers.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield-options.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.component.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.directive.ts","ng://@taiga-ui/core/components/primitive-textfield/textfield/textfield.component.ts","ng://@taiga-ui/core/components/primitive-textfield/value-decoration/value-decoration.component.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.module.ts","ng://@taiga-ui/core/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.ts"],"sourcesContent":["import {forwardRef} from '@angular/core';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {HINT_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/hint-controller';\nimport {TEXTFIELD_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/textfield-controller';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\n\nexport const TUI_PRIMITIVE_TEXTFIELD_PROVIDERS = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiPrimitiveTextfieldComponent),\n },\n TEXTFIELD_CONTROLLER_PROVIDER,\n HINT_CONTROLLER_PROVIDER,\n MODE_PROVIDER,\n];\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiHorizontalDirection} from '@taiga-ui/core/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiPrimitiveTextfieldOptions {\n readonly iconAlign: TuiHorizontalDirection;\n readonly iconCleaner: PolymorpheusContent;\n}\n\n// TODO: remove in ivy compilation\nexport const TUI_PRIMITIVE_TEXTFIELD_ICON_CLEANER = 'tuiIconCloseLarge';\n\n/** Default values for primitive textfield options */\nexport const TUI_PRIMITIVE_TEXTFIELD_DEFAULT_OPTIONS: TuiPrimitiveTextfieldOptions = {\n iconAlign: 'right',\n iconCleaner: TUI_PRIMITIVE_TEXTFIELD_ICON_CLEANER,\n};\n\nexport const TUI_PRIMITIVE_TEXTFIELD_OPTIONS =\n new InjectionToken<TuiPrimitiveTextfieldOptions>(\n 'Default parameters for primitive textfield component',\n {\n factory: () => TUI_PRIMITIVE_TEXTFIELD_DEFAULT_OPTIONS,\n },\n );\n\nexport const tuiPrimitiveTextfieldOptionsProvider: (\n options: Partial<TuiPrimitiveTextfieldOptions>,\n) => ValueProvider = (options: Partial<TuiPrimitiveTextfieldOptions>) => ({\n provide: TUI_PRIMITIVE_TEXTFIELD_OPTIONS,\n useValue: {...TUI_PRIMITIVE_TEXTFIELD_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocusedIn,\n setNativeFocused,\n TuiContextWithImplicit,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_HINT_WATCHED_CONTROLLER,\n TuiHintControllerDirective,\n} from '@taiga-ui/core/directives/hint-controller';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives/textfield-controller';\nimport {TUI_MODE, TUI_TEXTFIELD_APPEARANCE} from '@taiga-ui/core/tokens';\nimport {TuiBrightness, TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport {getBorder} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusContent, PolymorpheusOutletComponent} from '@tinkoff/ng-polymorpheus';\nimport {fromEvent, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_PRIMITIVE_TEXTFIELD_PROVIDERS} from './primitive-textfield.providers';\nimport {\n TUI_PRIMITIVE_TEXTFIELD_OPTIONS,\n TuiPrimitiveTextfieldOptions,\n} from './primitive-textfield-options';\n\nconst ICON_PADDING = 1.75;\nconst ICON_PADDING_S = 1.5;\n\n@Component({\n selector: 'tui-primitive-textfield',\n templateUrl: './primitive-textfield.template.html',\n styleUrls: ['./primitive-textfield.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,\n host: {\n '($.data-mode.attr)': 'mode$',\n '[class._autofilled]': 'autofilled',\n '[class._label-outside]': 'controller.labelOutside',\n },\n})\nexport class TuiPrimitiveTextfieldComponent\n extends AbstractTuiInteractive\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @Input()\n @tuiDefaultProp()\n editable = true;\n\n @Input()\n @tuiDefaultProp()\n filler = '';\n\n @Input()\n @tuiDefaultProp()\n iconAlign: TuiPrimitiveTextfieldOptions['iconAlign'] = this.options.iconAlign;\n\n // TODO: Remove null in 3.0\n @Input()\n @tuiDefaultProp()\n iconContent: PolymorpheusContent<TuiContextWithImplicit<TuiSizeS | TuiSizeL>> | null =\n null;\n\n @Input()\n @tuiDefaultProp()\n iconCleaner: TuiPrimitiveTextfieldOptions['iconCleaner'] = this.options.iconCleaner;\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n invalid = false;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n prefix = '';\n\n @Input()\n @tuiDefaultProp()\n postfix = '';\n\n @Input()\n @tuiDefaultProp()\n value = '';\n\n @Output()\n readonly valueChange = new EventEmitter<string>();\n\n /**\n * @deprecated TODO: remove in 3.0\n */\n @Output()\n readonly autofilledChange = new EventEmitter<boolean>();\n\n @ContentChildren(PolymorpheusOutletComponent)\n readonly content?: QueryList<unknown>;\n\n autofilled = false;\n\n constructor(\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_TEXTFIELD_APPEARANCE) readonly appearance: string,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(TUI_HINT_WATCHED_CONTROLLER)\n readonly hintController: TuiHintControllerDirective,\n @Inject(TUI_PRIMITIVE_TEXTFIELD_OPTIONS)\n readonly options: TuiPrimitiveTextfieldOptions,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {\n super();\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n if (this.computedDisabled || !this.focusableElement) {\n return null;\n }\n\n // TODO: Refactor this after we drop built-in input element\n return (\n (this.focusableElement.nativeElement\n .previousElementSibling as HTMLInputElement | null) ||\n this.focusableElement.nativeElement\n );\n }\n\n get focused(): boolean {\n return isNativeFocusedIn(this.elementRef.nativeElement);\n }\n\n @HostBinding('attr.data-size')\n get size(): TuiSizeS | TuiSizeL {\n return this.controller.size;\n }\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return !this.readOnly && !this.disabled && this.invalid;\n }\n\n @HostBinding('class._hidden')\n get inputHidden(): boolean {\n return !!this.content?.length;\n }\n\n get hasValue(): boolean {\n return !!this.value;\n }\n\n get hasCleaner(): boolean {\n return (\n this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly\n );\n }\n\n get hasTooltip(): boolean {\n return !!this.hintController?.content && !this.disabled;\n }\n\n get hasCustomContent(): boolean {\n return !!this.controller.customContent;\n }\n\n get hasPlaceholder(): boolean {\n const hasDecor =\n this.controller.exampleText ||\n this.prefix ||\n this.postfix ||\n this.nativeFocusableElement?.placeholder;\n const showDecor = hasDecor && !this.readOnly && this.computedFocused;\n const placeholderVisible = !this.hasValue && !showDecor;\n\n return this.placeholderRaisable || placeholderVisible;\n }\n\n get placeholderRaised(): boolean {\n return (\n this.placeholderRaisable &&\n ((this.computedFocused && !this.readOnly) || this.hasValue || this.autofilled)\n );\n }\n\n @HostBinding('style.--border-start.rem')\n get borderStart(): number {\n return this.iconAlignLeft ? this.iconPaddingLeft : 0;\n }\n\n @HostBinding('style.--border-end.rem')\n get borderEnd(): number {\n return getBorder(\n this.iconAlignRight,\n this.hasCleaner,\n this.hasTooltip,\n this.hasCustomContent,\n );\n }\n\n get iconAlignLeft(): boolean {\n return this.hasIcon && this.iconAlign === 'left';\n }\n\n get iconAlignRight(): boolean {\n return this.hasIcon && this.iconAlign === 'right';\n }\n\n // Safari expiration date autofill workaround\n get name(): 'ccexpiryyear' | null {\n return this.controller.autocomplete === TuiCreditCardAutofillName.CcExp\n ? 'ccexpiryyear'\n : null;\n }\n\n get computedId(): string {\n return this.nativeFocusableElement?.id || '';\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n @tuiPure\n getIndent$(element: HTMLElement): Observable<number> {\n return fromEvent(element, 'scroll').pipe(map(() => -1 * element.scrollLeft));\n }\n\n clear() {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = '';\n }\n\n this.updateValue('');\n }\n\n onMouseDown(event: MouseEvent) {\n const {nativeFocusableElement} = this;\n\n if (!nativeFocusableElement || event.target === nativeFocusableElement) {\n return;\n }\n\n event.preventDefault();\n setNativeFocused(nativeFocusableElement);\n }\n\n onModelChange(value: string) {\n this.updateValue(value);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onAutofilled(autofilled: boolean) {\n this.updateAutofilled(autofilled);\n }\n\n private get iconPaddingLeft(): number {\n return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;\n }\n\n private get placeholderRaisable(): boolean {\n return this.size !== 's' && !this.controller.labelOutside;\n }\n\n private get hasIcon(): boolean {\n return !!this.iconContent;\n }\n\n private updateAutofilled(autofilled: boolean) {\n if (this.autofilled === autofilled) {\n return;\n }\n\n this.autofilled = autofilled;\n this.autofilledChange.emit(autofilled);\n }\n\n private updateValue(value: string) {\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","import {Directive, forwardRef, Inject} from '@angular/core';\nimport {AbstractTuiControl} from '@taiga-ui/cdk';\nimport {TuiAbstractTextfieldHost} from '@taiga-ui/core/abstract';\nimport {TUI_TEXTFIELD_HOST} from '@taiga-ui/core/tokens';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\n\n@Directive({\n selector: 'tui-primitive-textfield',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiPrimitiveTextfieldDirective),\n },\n ],\n})\nexport class TuiPrimitiveTextfieldDirective extends TuiAbstractTextfieldHost<any> {\n constructor(\n @Inject(TuiPrimitiveTextfieldComponent)\n private readonly textfield: TuiPrimitiveTextfieldComponent,\n ) {\n /**\n * TuiPrimitiveTextfieldComponent satisfies all required parts of\n * AbstractTuiControl interface. A new interface is not introduced\n * so AbstractTuiControl is automatically injected for all other controls.\n */\n super(textfield as any as AbstractTuiControl<unknown>);\n }\n\n get readOnly(): boolean {\n return this.textfield.readOnly || !this.textfield.editable;\n }\n\n onValueChange(value: string) {\n this.textfield.onModelChange(value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n ElementRef,\n HostBinding,\n Inject,\n} from '@angular/core';\nimport {TuiIdService} from '@taiga-ui/cdk';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_DESCRIBED_BY_PROVIDERS,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiDescribedByDirective,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives';\nimport {TuiTextfieldHost} from '@taiga-ui/core/interfaces';\nimport {TUI_TEXTFIELD_HOST} from '@taiga-ui/core/tokens';\n\n// @dynamic\n@Component({\n selector: 'input[tuiTextfield], textarea[tuiTextfield]',\n template: '',\n providers: [\n TuiDescribedByDirective,\n TUI_DESCRIBED_BY_PROVIDERS,\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n host: {\n type: 'text',\n '[attr.aria-placeholder]': 'controller.exampleText',\n '[attr.aria-invalid]': 'host.invalid',\n '[attr.disabled]': 'host.disabled || null',\n '[tabIndex]': 'host.focusable ? 0 : -1',\n '[readOnly]': 'host.readOnly',\n '[value]': 'host.value',\n '(input)': 'host.onValueChange($event.target.value)',\n },\n styleUrls: ['textfield.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTextfieldComponent implements DoCheck {\n constructor(\n @Inject(TUI_TEXTFIELD_HOST) readonly host: TuiTextfieldHost,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(TuiDescribedByDirective)\n private readonly describedBy: TuiDescribedByDirective,\n @Inject(TuiIdService)\n private readonly idService: TuiIdService,\n ) {\n this.host.process(this.elementRef.nativeElement);\n }\n\n @HostBinding('attr.aria-describedby')\n get computedDescribedBy(): string | null {\n return this.describedBy.computedDescribedBy;\n }\n\n @HostBinding('id')\n get id(): string {\n return this.elementRef.nativeElement.id || this.idService.generate();\n }\n\n ngDoCheck() {\n this.describedBy.tuiDescribedBy = this.id;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n ViewChild,\n} from '@angular/core';\nimport {MutationObserverDirective} from '@ng-web-apis/mutation-observer';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {defer, EMPTY} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {TuiPrimitiveTextfieldComponent} from '../primitive-textfield.component';\n\n@Component({\n selector: 'tui-value-decoration',\n templateUrl: 'value-decoration.template.html',\n styleUrls: ['value-decoration.style.less'],\n // It follows Change Detection of PrimitiveTextfield\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiValueDecorationComponent {\n @ViewChild('pre', {read: ElementRef, static: true})\n private readonly pre?: ElementRef<HTMLElement>;\n\n @ViewChild(MutationObserverDirective, {static: true})\n private readonly directive?: MutationObserverDirective;\n\n readonly pre$ = defer(() => this.directive?.waMutationObserver ?? EMPTY).pipe(\n map(() => this.pre?.nativeElement.offsetWidth ?? 0),\n startWith(0),\n distinctUntilChanged(),\n );\n\n constructor(\n @Inject(TuiPrimitiveTextfieldComponent)\n private readonly textfield: TuiPrimitiveTextfieldComponent,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n private readonly controller: TuiTextfieldController,\n ) {}\n\n @HostBinding('class._table')\n get isContextTable(): boolean {\n return this.textfield.appearance === TuiAppearance.Table;\n }\n\n get value(): string {\n return this.textfield.value;\n }\n\n get filler(): string {\n const {focused, placeholder, exampleText, value, textfield} = this;\n\n if (focused && placeholder && exampleText) {\n return '';\n }\n\n return focused ? exampleText || textfield.filler.slice(value.length) : '';\n }\n\n get prefix(): string {\n return this.decorationsVisible ? this.textfield.prefix : '';\n }\n\n get postfix(): string {\n return this.decorationsVisible ? this.computedPostfix : '';\n }\n\n private get placeholder(): string {\n return this.textfield.nativeFocusableElement?.placeholder || '';\n }\n\n private get exampleText(): string {\n const exampleText = this.controller.exampleText || this.placeholder;\n\n return !this.value && this.focused ? exampleText : '';\n }\n\n private get decorationsVisible(): boolean {\n return !!this.value || this.focused;\n }\n\n private get focused(): boolean {\n return this.textfield.computedFocused && !this.textfield.readOnly;\n }\n\n private get computedPostfix(): string {\n return this.textfield.postfix && (this.filler || this.value)\n ? ` ${this.textfield.postfix}`\n : this.textfield.postfix;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MutationObserverModule} from '@ng-web-apis/mutation-observer';\nimport {\n TuiAutofilledModule,\n TuiFocusableModule,\n TuiHoveredModule,\n TuiInputModeModule,\n} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {TuiTooltipModule} from '@taiga-ui/core/components/tooltip';\nimport {TuiDescribedByModule} from '@taiga-ui/core/directives/described-by';\nimport {TuiMaskAccessorModule} from '@taiga-ui/core/directives/mask-accessor';\nimport {TuiWrapperModule} from '@taiga-ui/core/directives/wrapper';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\nimport {TuiPrimitiveTextfieldDirective} from './primitive-textfield.directive';\nimport {TuiTextfieldComponent} from './textfield/textfield.component';\nimport {TuiValueDecorationComponent} from './value-decoration/value-decoration.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiMaskAccessorModule,\n TuiFocusableModule,\n TuiHoveredModule,\n TuiInputModeModule,\n PolymorpheusModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiTooltipModule,\n TuiAutofilledModule,\n TuiDescribedByModule,\n MutationObserverModule,\n ],\n declarations: [\n TuiPrimitiveTextfieldComponent,\n TuiPrimitiveTextfieldDirective,\n TuiTextfieldComponent,\n TuiValueDecorationComponent,\n ],\n exports: [\n TuiPrimitiveTextfieldComponent,\n TuiPrimitiveTextfieldDirective,\n TuiTextfieldComponent,\n ],\n})\nexport class TuiPrimitiveTextfieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TuiTextfieldController","TUI_TEXTFIELD_WATCHED_CONTROLLER","TEXTFIELD_CONTROLLER_PROVIDER"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-primitive-textfield.js","sources":["ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.providers.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield-options.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.component.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.directive.ts","ng://@taiga-ui/core/components/primitive-textfield/textfield/textfield.component.ts","ng://@taiga-ui/core/components/primitive-textfield/value-decoration/value-decoration.component.ts","ng://@taiga-ui/core/components/primitive-textfield/primitive-textfield.module.ts","ng://@taiga-ui/core/components/primitive-textfield/taiga-ui-core-components-primitive-textfield.ts"],"sourcesContent":["import {forwardRef} from '@angular/core';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk';\nimport {HINT_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/hint-controller';\nimport {TEXTFIELD_CONTROLLER_PROVIDER} from '@taiga-ui/core/directives/textfield-controller';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\n\nexport const TUI_PRIMITIVE_TEXTFIELD_PROVIDERS = [\n {\n provide: TUI_FOCUSABLE_ITEM_ACCESSOR,\n useExisting: forwardRef(() => TuiPrimitiveTextfieldComponent),\n },\n TEXTFIELD_CONTROLLER_PROVIDER,\n HINT_CONTROLLER_PROVIDER,\n MODE_PROVIDER,\n];\n","import {InjectionToken, ValueProvider} from '@angular/core';\nimport {TuiHorizontalDirection} from '@taiga-ui/core/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiPrimitiveTextfieldOptions {\n readonly iconAlign: TuiHorizontalDirection;\n readonly iconCleaner: PolymorpheusContent;\n}\n\n// TODO: remove in ivy compilation\nexport const TUI_PRIMITIVE_TEXTFIELD_ICON_CLEANER = 'tuiIconCloseLarge';\n\n/** Default values for primitive textfield options */\nexport const TUI_PRIMITIVE_TEXTFIELD_DEFAULT_OPTIONS: TuiPrimitiveTextfieldOptions = {\n iconAlign: 'right',\n iconCleaner: TUI_PRIMITIVE_TEXTFIELD_ICON_CLEANER,\n};\n\nexport const TUI_PRIMITIVE_TEXTFIELD_OPTIONS =\n new InjectionToken<TuiPrimitiveTextfieldOptions>(\n 'Default parameters for primitive textfield component',\n {\n factory: () => TUI_PRIMITIVE_TEXTFIELD_DEFAULT_OPTIONS,\n },\n );\n\nexport const tuiPrimitiveTextfieldOptionsProvider: (\n options: Partial<TuiPrimitiveTextfieldOptions>,\n) => ValueProvider = (options: Partial<TuiPrimitiveTextfieldOptions>) => ({\n provide: TUI_PRIMITIVE_TEXTFIELD_OPTIONS,\n useValue: {...TUI_PRIMITIVE_TEXTFIELD_DEFAULT_OPTIONS, ...options},\n});\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractTuiInteractive,\n isNativeFocusedIn,\n setNativeFocused,\n TuiContextWithImplicit,\n TuiCreditCardAutofillName,\n tuiDefaultProp,\n TuiFocusableElementAccessor,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {\n TUI_HINT_WATCHED_CONTROLLER,\n TuiHintControllerDirective,\n} from '@taiga-ui/core/directives/hint-controller';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives/textfield-controller';\nimport {TUI_MODE, TUI_TEXTFIELD_APPEARANCE} from '@taiga-ui/core/tokens';\nimport {TuiBrightness, TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport {getBorder} from '@taiga-ui/core/utils/miscellaneous';\nimport {PolymorpheusContent, PolymorpheusOutletComponent} from '@tinkoff/ng-polymorpheus';\nimport {fromEvent, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TUI_PRIMITIVE_TEXTFIELD_PROVIDERS} from './primitive-textfield.providers';\nimport {\n TUI_PRIMITIVE_TEXTFIELD_OPTIONS,\n TuiPrimitiveTextfieldOptions,\n} from './primitive-textfield-options';\n\nconst ICON_PADDING = 1.75;\nconst ICON_PADDING_S = 1.5;\n\n@Component({\n selector: 'tui-primitive-textfield',\n templateUrl: './primitive-textfield.template.html',\n styleUrls: ['./primitive-textfield.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_PRIMITIVE_TEXTFIELD_PROVIDERS,\n host: {\n '($.data-mode.attr)': 'mode$',\n '[class._autofilled]': 'autofilled',\n '[class._label-outside]': 'controller.labelOutside',\n },\n})\nexport class TuiPrimitiveTextfieldComponent\n extends AbstractTuiInteractive\n implements TuiFocusableElementAccessor\n{\n @ViewChild('focusableElement')\n private readonly focusableElement?: ElementRef<HTMLInputElement>;\n\n @Input()\n @tuiDefaultProp()\n editable = true;\n\n @Input()\n @tuiDefaultProp()\n filler = '';\n\n @Input()\n @tuiDefaultProp()\n iconAlign: TuiPrimitiveTextfieldOptions['iconAlign'] = this.options.iconAlign;\n\n // TODO: Remove null in 3.0\n @Input()\n @tuiDefaultProp()\n iconContent: PolymorpheusContent<TuiContextWithImplicit<TuiSizeS | TuiSizeL>> | null =\n null;\n\n @Input()\n @tuiDefaultProp()\n iconCleaner: TuiPrimitiveTextfieldOptions['iconCleaner'] = this.options.iconCleaner;\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n invalid = false;\n\n @Input()\n @tuiDefaultProp()\n disabled = false;\n\n @Input()\n @tuiDefaultProp()\n prefix = '';\n\n @Input()\n @tuiDefaultProp()\n postfix = '';\n\n @Input()\n @tuiDefaultProp()\n value = '';\n\n @Output()\n readonly valueChange = new EventEmitter<string>();\n\n /**\n * @deprecated TODO: remove in 3.0\n */\n @Output()\n readonly autofilledChange = new EventEmitter<boolean>();\n\n @ContentChildren(PolymorpheusOutletComponent)\n readonly content?: QueryList<unknown>;\n\n autofilled = false;\n\n constructor(\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_TEXTFIELD_APPEARANCE) readonly appearance: string,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(TUI_HINT_WATCHED_CONTROLLER)\n readonly hintController: TuiHintControllerDirective,\n @Inject(TUI_PRIMITIVE_TEXTFIELD_OPTIONS)\n readonly options: TuiPrimitiveTextfieldOptions,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {\n super();\n }\n\n get nativeFocusableElement(): HTMLInputElement | null {\n if (this.computedDisabled || !this.focusableElement) {\n return null;\n }\n\n // TODO: Refactor this after we drop built-in input element\n return (\n (this.focusableElement.nativeElement\n .previousElementSibling as HTMLInputElement | null) ||\n this.focusableElement.nativeElement\n );\n }\n\n get focused(): boolean {\n return isNativeFocusedIn(this.elementRef.nativeElement);\n }\n\n @HostBinding('attr.data-size')\n get size(): TuiSizeS | TuiSizeL {\n return this.controller.size;\n }\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return !this.readOnly && !this.disabled && this.invalid;\n }\n\n @HostBinding('class._hidden')\n get inputHidden(): boolean {\n return !!this.content?.length;\n }\n\n get hasValue(): boolean {\n return !!this.value;\n }\n\n get hasCleaner(): boolean {\n return (\n this.controller.cleaner && this.hasValue && !this.disabled && !this.readOnly\n );\n }\n\n get hasTooltip(): boolean {\n return !!this.hintController?.content && !this.disabled;\n }\n\n get hasCustomContent(): boolean {\n return !!this.controller.customContent;\n }\n\n get hasPlaceholder(): boolean {\n const hasDecor =\n this.controller.exampleText ||\n this.prefix ||\n this.postfix ||\n this.nativeFocusableElement?.placeholder;\n const showDecor = hasDecor && !this.readOnly && this.computedFocused;\n const placeholderVisible = !this.hasValue && !showDecor;\n\n return this.placeholderRaisable || placeholderVisible;\n }\n\n get placeholderRaised(): boolean {\n return (\n this.placeholderRaisable &&\n ((this.computedFocused && !this.readOnly) || this.hasValue || this.autofilled)\n );\n }\n\n @HostBinding('style.--border-start.rem')\n get borderStart(): number {\n return this.iconAlignLeft ? this.iconPaddingLeft : 0;\n }\n\n @HostBinding('style.--border-end.rem')\n get borderEnd(): number {\n return getBorder(\n this.iconAlignRight,\n this.hasCleaner,\n this.hasTooltip,\n this.hasCustomContent,\n );\n }\n\n get iconAlignLeft(): boolean {\n return this.hasIcon && this.iconAlign === 'left';\n }\n\n get iconAlignRight(): boolean {\n return this.hasIcon && this.iconAlign === 'right';\n }\n\n // Safari expiration date autofill workaround\n get name(): 'ccexpiryyear' | null {\n return this.controller.autocomplete === TuiCreditCardAutofillName.CcExp\n ? 'ccexpiryyear'\n : null;\n }\n\n get computedId(): string {\n return this.nativeFocusableElement?.id || '';\n }\n\n @HostListener('focusin', ['true'])\n @HostListener('focusout', ['false'])\n onFocused(focused: boolean) {\n this.updateFocused(focused);\n }\n\n @tuiPure\n getIndent$(element: HTMLElement): Observable<number> {\n return fromEvent(element, 'scroll').pipe(map(() => -1 * element.scrollLeft));\n }\n\n clear() {\n if (this.nativeFocusableElement) {\n this.nativeFocusableElement.value = '';\n }\n\n this.updateValue('');\n }\n\n onMouseDown(event: MouseEvent) {\n const {nativeFocusableElement} = this;\n\n if (!nativeFocusableElement || event.target === nativeFocusableElement) {\n return;\n }\n\n event.preventDefault();\n setNativeFocused(nativeFocusableElement);\n }\n\n onModelChange(value: string) {\n this.updateValue(value);\n }\n\n onHovered(hovered: boolean) {\n this.updateHovered(hovered);\n }\n\n onAutofilled(autofilled: boolean) {\n this.updateAutofilled(autofilled);\n }\n\n private get iconPaddingLeft(): number {\n return this.size === 's' ? ICON_PADDING_S : ICON_PADDING;\n }\n\n private get placeholderRaisable(): boolean {\n return this.size !== 's' && !this.controller.labelOutside;\n }\n\n private get hasIcon(): boolean {\n return !!this.iconContent;\n }\n\n private updateAutofilled(autofilled: boolean) {\n if (this.autofilled === autofilled) {\n return;\n }\n\n this.autofilled = autofilled;\n this.autofilledChange.emit(autofilled);\n }\n\n private updateValue(value: string) {\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","import {Directive, forwardRef, Inject} from '@angular/core';\nimport {AbstractTuiControl} from '@taiga-ui/cdk';\nimport {TuiAbstractTextfieldHost} from '@taiga-ui/core/abstract';\nimport {TUI_TEXTFIELD_HOST} from '@taiga-ui/core/tokens';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\n\n@Directive({\n selector: 'tui-primitive-textfield',\n providers: [\n {\n provide: TUI_TEXTFIELD_HOST,\n useExisting: forwardRef(() => TuiPrimitiveTextfieldDirective),\n },\n ],\n})\nexport class TuiPrimitiveTextfieldDirective extends TuiAbstractTextfieldHost<any> {\n constructor(\n @Inject(TuiPrimitiveTextfieldComponent)\n private readonly textfield: TuiPrimitiveTextfieldComponent,\n ) {\n /**\n * TuiPrimitiveTextfieldComponent satisfies all required parts of\n * AbstractTuiControl interface. A new interface is not introduced\n * so AbstractTuiControl is automatically injected for all other controls.\n */\n super(textfield as any as AbstractTuiControl<unknown>);\n }\n\n get readOnly(): boolean {\n return this.textfield.readOnly || !this.textfield.editable;\n }\n\n onValueChange(value: string) {\n this.textfield.onModelChange(value);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n ElementRef,\n HostBinding,\n Inject,\n} from '@angular/core';\nimport {TuiIdService} from '@taiga-ui/cdk';\nimport {\n TEXTFIELD_CONTROLLER_PROVIDER,\n TUI_DESCRIBED_BY_PROVIDERS,\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiDescribedByDirective,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives';\nimport {TuiTextfieldHost} from '@taiga-ui/core/interfaces';\nimport {TUI_TEXTFIELD_HOST} from '@taiga-ui/core/tokens';\n\n// @dynamic\n@Component({\n selector: 'input[tuiTextfield], textarea[tuiTextfield]',\n template: '',\n providers: [\n TuiDescribedByDirective,\n TUI_DESCRIBED_BY_PROVIDERS,\n TEXTFIELD_CONTROLLER_PROVIDER,\n ],\n host: {\n type: 'text',\n '[attr.aria-placeholder]': 'controller.exampleText',\n '[attr.aria-invalid]': 'host.invalid',\n '[attr.disabled]': 'host.disabled || null',\n '[tabIndex]': 'host.focusable ? 0 : -1',\n '[readOnly]': 'host.readOnly',\n '[value]': 'host.value',\n '(input)': 'host.onValueChange($event.target.value)',\n },\n styleUrls: ['textfield.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTextfieldComponent implements DoCheck {\n constructor(\n @Inject(TUI_TEXTFIELD_HOST) readonly host: TuiTextfieldHost,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n readonly controller: TuiTextfieldController,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLInputElement>,\n @Inject(TuiDescribedByDirective)\n private readonly describedBy: TuiDescribedByDirective,\n @Inject(TuiIdService)\n private readonly idService: TuiIdService,\n ) {\n this.host.process(this.elementRef.nativeElement);\n }\n\n @HostBinding('attr.aria-describedby')\n get computedDescribedBy(): string | null {\n return this.describedBy.computedDescribedBy;\n }\n\n @HostBinding('id')\n get id(): string {\n return this.elementRef.nativeElement.id || this.idService.generate();\n }\n\n ngDoCheck() {\n this.describedBy.tuiDescribedBy = this.id;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n ViewChild,\n} from '@angular/core';\nimport {MutationObserverDirective} from '@ng-web-apis/mutation-observer';\nimport {\n TUI_TEXTFIELD_WATCHED_CONTROLLER,\n TuiTextfieldController,\n} from '@taiga-ui/core/directives';\nimport {TuiAppearance} from '@taiga-ui/core/enums';\nimport {defer, EMPTY} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nimport {TuiPrimitiveTextfieldComponent} from '../primitive-textfield.component';\n\n@Component({\n selector: 'tui-value-decoration',\n templateUrl: 'value-decoration.template.html',\n styleUrls: ['value-decoration.style.less'],\n // It follows Change Detection of PrimitiveTextfield\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiValueDecorationComponent {\n @ViewChild('pre', {read: ElementRef, static: true})\n private readonly pre?: ElementRef<HTMLElement>;\n\n @ViewChild(MutationObserverDirective, {static: true})\n private readonly directive?: MutationObserverDirective;\n\n readonly pre$ = defer(() => this.directive?.waMutationObserver ?? EMPTY).pipe(\n map(() => this.pre?.nativeElement.offsetWidth ?? 0),\n startWith(0),\n distinctUntilChanged(),\n );\n\n constructor(\n @Inject(TuiPrimitiveTextfieldComponent)\n private readonly textfield: TuiPrimitiveTextfieldComponent,\n @Inject(TUI_TEXTFIELD_WATCHED_CONTROLLER)\n private readonly controller: TuiTextfieldController,\n ) {}\n\n @HostBinding('class._table')\n get isContextTable(): boolean {\n return this.textfield.appearance === TuiAppearance.Table;\n }\n\n get value(): string {\n return this.textfield.value;\n }\n\n get filler(): string {\n const {focused, placeholder, exampleText, value, textfield} = this;\n\n if (focused && placeholder && exampleText) {\n return '';\n }\n\n return focused ? exampleText || textfield.filler.slice(value.length) : '';\n }\n\n get prefix(): string {\n return this.decorationsVisible ? this.textfield.prefix : '';\n }\n\n get postfix(): string {\n return this.decorationsVisible ? this.computedPostfix : '';\n }\n\n private get placeholder(): string {\n return this.textfield.nativeFocusableElement?.placeholder || '';\n }\n\n private get exampleText(): string {\n const exampleText = this.controller.exampleText || this.placeholder;\n\n return !this.value && this.focused ? exampleText : '';\n }\n\n private get decorationsVisible(): boolean {\n return !!this.value || this.focused;\n }\n\n private get focused(): boolean {\n return this.textfield.computedFocused && !this.textfield.readOnly;\n }\n\n private get computedPostfix(): string {\n return this.textfield.postfix && (this.filler || this.value)\n ? ` ${this.textfield.postfix}`\n : this.textfield.postfix;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MutationObserverModule} from '@ng-web-apis/mutation-observer';\nimport {\n TuiAutofilledModule,\n TuiFocusableModule,\n TuiHoveredModule,\n TuiInputModeModule,\n} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {TuiTooltipModule} from '@taiga-ui/core/components/tooltip';\nimport {TuiDescribedByModule} from '@taiga-ui/core/directives/described-by';\nimport {TuiMaskAccessorModule} from '@taiga-ui/core/directives/mask-accessor';\nimport {TuiWrapperModule} from '@taiga-ui/core/directives/wrapper';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiPrimitiveTextfieldComponent} from './primitive-textfield.component';\nimport {TuiPrimitiveTextfieldDirective} from './primitive-textfield.directive';\nimport {TuiTextfieldComponent} from './textfield/textfield.component';\nimport {TuiValueDecorationComponent} from './value-decoration/value-decoration.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TuiMaskAccessorModule,\n TuiFocusableModule,\n TuiHoveredModule,\n TuiInputModeModule,\n PolymorpheusModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiTooltipModule,\n TuiAutofilledModule,\n TuiDescribedByModule,\n MutationObserverModule,\n ],\n declarations: [\n TuiPrimitiveTextfieldComponent,\n TuiPrimitiveTextfieldDirective,\n TuiTextfieldComponent,\n TuiValueDecorationComponent,\n ],\n exports: [\n TuiPrimitiveTextfieldComponent,\n TuiPrimitiveTextfieldDirective,\n TuiTextfieldComponent,\n ],\n})\nexport class TuiPrimitiveTextfieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TuiTextfieldController","TUI_TEXTFIELD_WATCHED_CONTROLLER","TEXTFIELD_CONTROLLER_PROVIDER"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-primitive-year-picker.js","sources":["ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.component.ts","ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.module.ts","ng://@taiga-ui/core/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n inRange,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\n\n@Component({\n selector: 'tui-primitive-year-picker',\n templateUrl: './primitive-year-picker.template.html',\n styleUrls: ['./primitive-year-picker.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveYearPickerComponent {\n private hoveredItem: number | null = null;\n private pressedItem: number | null = null;\n private readonly currentYear = TuiMonth.currentLocal().year;\n\n @Input()\n @tuiDefaultProp()\n value: TuiMonthRange | TuiYear | TuiDayRange | null = null;\n\n @Input()\n @tuiDefaultProp()\n initialItem: TuiYear = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n min: TuiYear = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiYear = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<number> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly yearClick = new EventEmitter<TuiYear | TuiDayRange>();\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n const {value} = this;\n\n return !!value && this.isRange(value) && value.from.yearSame(value.to);\n }\n\n get rows(): number {\n return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n }\n\n get calculatedMin(): number {\n const initial = this.initialItem.year - LIMIT;\n\n return this.min.year > initial ? this.min.year : initial;\n }\n\n get calculatedMax(): number {\n const initial = this.initialItem.year + LIMIT;\n\n return this.max.year < initial ? this.max.year + 1 : initial;\n }\n\n isRange(item: TuiMonthRange | TuiYear): item is TuiMonthRange {\n return item instanceof TuiMonthRange;\n }\n\n scrollItemIntoView(item: number): boolean {\n return this.initialItem.year === item;\n }\n\n getItem(rowIndex: number, colIndex: number): number {\n return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n }\n\n getItemState(item: number): TuiInteractiveState | null {\n const {disabledItemHandler, max, pressedItem, hoveredItem} = this;\n\n if (\n max.year < item ||\n (disabledItemHandler !== ALWAYS_FALSE_HANDLER && disabledItemHandler(item))\n ) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem === item) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem === item) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: number): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiYear) {\n return value.year === item ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem > value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem < value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem < value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem > value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.End;\n }\n\n return value.from.yearSame(value.to) && value.from.year === item\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsToday(item: number): boolean {\n return this.currentYear === item;\n }\n\n itemIsInterval(item: number): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || !this.isRange(value)) {\n return false;\n }\n\n if (!value.from.yearSame(value.to)) {\n return value.from.year <= item && value.to.year > item;\n }\n\n if (hoveredItem === null || value.from.year === hoveredItem) {\n return false;\n }\n\n return inRange(\n item,\n Math.min(value.from.year, hoveredItem),\n Math.max(value.from.year, hoveredItem),\n );\n }\n\n onItemHovered(hovered: boolean, item: number) {\n this.updateHoveredItem(hovered, item);\n }\n\n onItemPressed(pressed: boolean, item: number) {\n this.updatePressedItem(pressed, item);\n }\n\n onItemClick(item: number) {\n this.yearClick.emit(new TuiYear(item));\n }\n\n private updateHoveredItem(hovered: boolean, item: number) {\n this.hoveredItem = hovered ? item : null;\n }\n\n private updatePressedItem(pressed: boolean, item: number) {\n this.pressedItem = pressed ? item : null;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiScrollIntoViewModule} from '@taiga-ui/core/directives/scroll-into-view';\n\nimport {TuiPrimitiveYearPickerComponent} from './primitive-year-picker.component';\n\n@NgModule({\n imports: [\n TuiHoveredModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n TuiLetModule,\n TuiScrollIntoViewModule,\n ],\n declarations: [TuiPrimitiveYearPickerComponent],\n exports: [TuiPrimitiveYearPickerComponent],\n})\nexport class TuiPrimitiveYearPickerModule {}\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-core-components-primitive-year-picker.js","sources":["ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.component.ts","ng://@taiga-ui/core/components/primitive-year-picker/primitive-year-picker.module.ts","ng://@taiga-ui/core/components/primitive-year-picker/taiga-ui-core-components-primitive-year-picker.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n inRange,\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDayRange,\n tuiDefaultProp,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk';\nimport {TuiInteractiveState, TuiRangeState} from '@taiga-ui/core/enums';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\n\n@Component({\n selector: 'tui-primitive-year-picker',\n templateUrl: './primitive-year-picker.template.html',\n styleUrls: ['./primitive-year-picker.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiPrimitiveYearPickerComponent {\n private hoveredItem: number | null = null;\n private pressedItem: number | null = null;\n private readonly currentYear = TuiMonth.currentLocal().year;\n\n @Input()\n @tuiDefaultProp()\n value: TuiMonthRange | TuiYear | TuiDayRange | null = null;\n\n @Input()\n @tuiDefaultProp()\n initialItem: TuiYear = TuiMonth.currentLocal();\n\n @Input()\n @tuiDefaultProp()\n min: TuiYear = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max: TuiYear = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<number> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly yearClick = new EventEmitter<TuiYear>();\n\n @HostBinding('class._single')\n get isSingle(): boolean {\n const {value} = this;\n\n return !!value && this.isRange(value) && value.from.yearSame(value.to);\n }\n\n get rows(): number {\n return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n }\n\n get calculatedMin(): number {\n const initial = this.initialItem.year - LIMIT;\n\n return this.min.year > initial ? this.min.year : initial;\n }\n\n get calculatedMax(): number {\n const initial = this.initialItem.year + LIMIT;\n\n return this.max.year < initial ? this.max.year + 1 : initial;\n }\n\n isRange(item: TuiMonthRange | TuiYear): item is TuiMonthRange {\n return item instanceof TuiMonthRange;\n }\n\n scrollItemIntoView(item: number): boolean {\n return this.initialItem.year === item;\n }\n\n getItem(rowIndex: number, colIndex: number): number {\n return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n }\n\n getItemState(item: number): TuiInteractiveState | null {\n const {disabledItemHandler, max, pressedItem, hoveredItem} = this;\n\n if (\n max.year < item ||\n (disabledItemHandler !== ALWAYS_FALSE_HANDLER && disabledItemHandler(item))\n ) {\n return TuiInteractiveState.Disabled;\n }\n\n if (pressedItem === item) {\n return TuiInteractiveState.Pressed;\n }\n\n if (hoveredItem === item) {\n return TuiInteractiveState.Hovered;\n }\n\n return null;\n }\n\n getItemRange(item: number): TuiRangeState | null {\n const {value, hoveredItem} = this;\n\n if (value === null) {\n return null;\n }\n\n if (value instanceof TuiYear) {\n return value.year === item ? TuiRangeState.Single : null;\n }\n\n if (\n (value.from.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem > value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem < value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.Start;\n }\n\n if (\n (value.to.year === item && !value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem < value.from.year &&\n value.from.year === item &&\n value.from.yearSame(value.to)) ||\n (hoveredItem !== null &&\n hoveredItem === item &&\n hoveredItem > value.from.year &&\n value.from.yearSame(value.to))\n ) {\n return TuiRangeState.End;\n }\n\n return value.from.yearSame(value.to) && value.from.year === item\n ? TuiRangeState.Single\n : null;\n }\n\n itemIsToday(item: number): boolean {\n return this.currentYear === item;\n }\n\n itemIsInterval(item: number): boolean {\n const {value, hoveredItem} = this;\n\n if (value === null || !this.isRange(value)) {\n return false;\n }\n\n if (!value.from.yearSame(value.to)) {\n return value.from.year <= item && value.to.year > item;\n }\n\n if (hoveredItem === null || value.from.year === hoveredItem) {\n return false;\n }\n\n return inRange(\n item,\n Math.min(value.from.year, hoveredItem),\n Math.max(value.from.year, hoveredItem),\n );\n }\n\n onItemHovered(hovered: boolean, item: number) {\n this.updateHoveredItem(hovered, item);\n }\n\n onItemPressed(pressed: boolean, item: number) {\n this.updatePressedItem(pressed, item);\n }\n\n onItemClick(item: number) {\n this.yearClick.emit(new TuiYear(item));\n }\n\n private updateHoveredItem(hovered: boolean, item: number) {\n this.hoveredItem = hovered ? item : null;\n }\n\n private updatePressedItem(pressed: boolean, item: number) {\n this.pressedItem = pressed ? item : null;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {\n TuiHoveredModule,\n TuiLetModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n} from '@taiga-ui/cdk';\nimport {TuiScrollIntoViewModule} from '@taiga-ui/core/directives/scroll-into-view';\n\nimport {TuiPrimitiveYearPickerComponent} from './primitive-year-picker.component';\n\n@NgModule({\n imports: [\n TuiHoveredModule,\n TuiPressedModule,\n TuiRepeatTimesModule,\n TuiLetModule,\n TuiScrollIntoViewModule,\n ],\n declarations: [TuiPrimitiveYearPickerComponent],\n exports: [TuiPrimitiveYearPickerComponent],\n})\nexport class TuiPrimitiveYearPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -89,7 +89,7 @@ var TuiScrollbarDirective = /** @class */ (function () {
89
89
  var horizontal = getOffsetHorizontal(event, rect);
90
90
  return mousemove$.pipe(map(function (event) { return _this.getScrolled(event, vertical, horizontal); }), takeUntil(mouseup$));
91
91
  })))
92
- .pipe(takeUntil(destroy$), tuiZonefree(ngZone))
92
+ .pipe(tuiZonefree(ngZone), takeUntil(destroy$))
93
93
  .subscribe(function (_a) {
94
94
  var _b = __read(_a, 2), scrollTop = _b[0], scrollLeft = _b[1];
95
95
  var _c = __read(_this.viewportScroller.getScrollPosition(), 2), x = _c[0], y = _c[1];
@@ -108,7 +108,7 @@ var TuiScrollbarDirective = /** @class */ (function () {
108
108
  }
109
109
  });
110
110
  merge(fromEvent(this.container ? this.container.nativeElement : this.windowRef, 'scroll'), animationFrame$.pipe(throttleTime(POLLING_TIME)))
111
- .pipe(takeUntil(destroy$), tuiZonefree(ngZone))
111
+ .pipe(tuiZonefree(ngZone), takeUntil(destroy$))
112
112
  .subscribe(function () {
113
113
  if (_this.tuiScrollbar === 'vertical') {
114
114
  renderer.setStyle(nativeElement, 'top', _this.thumb * 100 + "%");
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-scroll-controls.js","sources":["ng://@taiga-ui/core/components/scroll-controls/scroll-controls.component.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar-wrapper.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scroll-controls.module.ts","ng://@taiga-ui/core/components/scroll-controls/taiga-ui-core-components-scroll-controls.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_ANIMATION_OPTIONS, TUI_MODE, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-scroll-controls',\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiScrollControlsComponent {\n readonly refresh$ = this.animationFrame$.pipe(\n throttleTime(300),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(this.ngZone),\n );\n\n readonly animation = {\n value: '',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {}\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef\n ? this.scrollRef.nativeElement\n : this.documentRef.documentElement;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","import {DOCUMENT, ViewportScroller} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {\n POLLING_TIME,\n preventDefault,\n stopPropagation,\n TuiDestroyService,\n tuiZonefree,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_ELEMENT_REF, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiOrientationT} from '@taiga-ui/core/types';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {map, switchMap, takeUntil, throttleTime} from 'rxjs/operators';\n\nconst MIN_WIDTH = 24;\n\n// @dynamic\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiDestroyService],\n})\nexport class TuiScrollbarDirective {\n @Input()\n tuiScrollbar: TuiOrientationT = 'vertical';\n\n constructor(\n @Inject(NgZone) ngZone: NgZone,\n @Inject(Renderer2) renderer: Renderer2,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_ELEMENT_REF) private readonly wrapper: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly container: ElementRef<HTMLElement> | null,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(ViewportScroller) private readonly viewportScroller: ViewportScroller,\n ) {\n const {nativeElement} = this.elementRef;\n const mousedown$ = typedFromEvent(nativeElement, 'mousedown');\n const mousemove$ = typedFromEvent(this.documentRef, 'mousemove');\n const mouseup$ = typedFromEvent(this.documentRef, 'mouseup');\n const mousedownWrapper$ = typedFromEvent(wrapper.nativeElement, 'mousedown');\n\n merge(\n mousedownWrapper$.pipe(\n preventDefault(),\n map(event => this.getScrolled(event, 0.5, 0.5)),\n ),\n mousedown$.pipe(\n preventDefault(),\n stopPropagation(),\n switchMap(event => {\n const rect = nativeElement.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return mousemove$.pipe(\n map(event => this.getScrolled(event, vertical, horizontal)),\n takeUntil(mouseup$),\n );\n }),\n ),\n )\n .pipe(takeUntil(destroy$), tuiZonefree(ngZone))\n .subscribe(([scrollTop, scrollLeft]) => {\n const [x, y] = this.viewportScroller.getScrollPosition();\n\n if (!this.container) {\n this.viewportScroller.scrollToPosition([\n this.tuiScrollbar === 'vertical' ? x : scrollLeft,\n this.tuiScrollbar === 'vertical' ? scrollTop : y,\n ]);\n\n return;\n }\n\n if (this.tuiScrollbar === 'vertical') {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollTop',\n scrollTop,\n );\n } else {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollLeft',\n scrollLeft,\n );\n }\n });\n\n merge(\n fromEvent(\n this.container ? this.container.nativeElement : this.windowRef,\n 'scroll',\n ),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n )\n .pipe(takeUntil(destroy$), tuiZonefree(ngZone))\n .subscribe(() => {\n if (this.tuiScrollbar === 'vertical') {\n renderer.setStyle(nativeElement, 'top', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'height', `${this.view * 100}%`);\n } else {\n renderer.setStyle(nativeElement, 'left', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'width', `${this.view * 100}%`);\n }\n });\n }\n\n private get scrolled(): number {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? scrollTop / (scrollHeight - clientHeight)\n : scrollLeft / (scrollWidth - clientWidth);\n }\n\n private get compensation(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n if (\n ((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / clientHeight\n : MIN_WIDTH / clientWidth;\n }\n\n private get thumb(): number {\n const compensation = this.compensation || this.view;\n\n return this.scrolled * (1 - compensation);\n }\n\n private get view(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((clientHeight / scrollHeight) * 100) / 100\n : Math.ceil((clientWidth / scrollWidth) * 100) / 100;\n }\n\n private get computedContainer(): Element {\n return this.container\n ? this.container.nativeElement\n : this.documentRef.scrollingElement!;\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetVertical: number,\n offsetHorizontal: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.elementRef.nativeElement;\n const {top, left, width, height} =\n this.wrapper.nativeElement.getBoundingClientRect();\n\n const maxTop = this.computedContainer.scrollHeight - height;\n const maxLeft = this.computedContainer.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: ClientRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: ClientRect): number {\n return (clientX - left) / width;\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {TUI_ELEMENT_REF} from '@taiga-ui/core/tokens';\n\n@Directive({\n selector: '[tuiScrollbarWrapper]',\n providers: [\n {\n provide: TUI_ELEMENT_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollbarWrapperDirective {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiScrollControlsComponent} from './scroll-controls.component';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\nimport {TuiScrollbarWrapperDirective} from './scrollbar-wrapper.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [\n TuiScrollbarDirective,\n TuiScrollbarWrapperDirective,\n TuiScrollControlsComponent,\n ],\n exports: [TuiScrollControlsComponent],\n})\nexport class TuiScrollControlsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {TuiScrollbarWrapperDirective as ɵa} from './scrollbar-wrapper.directive';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-scroll-controls.js","sources":["ng://@taiga-ui/core/components/scroll-controls/scroll-controls.component.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar-wrapper.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scroll-controls.module.ts","ng://@taiga-ui/core/components/scroll-controls/taiga-ui-core-components-scroll-controls.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_ANIMATION_OPTIONS, TUI_MODE, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-scroll-controls',\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiScrollControlsComponent {\n readonly refresh$ = this.animationFrame$.pipe(\n throttleTime(300),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(this.ngZone),\n );\n\n readonly animation = {\n value: '',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {}\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef\n ? this.scrollRef.nativeElement\n : this.documentRef.documentElement;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","import {DOCUMENT, ViewportScroller} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {\n POLLING_TIME,\n preventDefault,\n stopPropagation,\n TuiDestroyService,\n tuiZonefree,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_ELEMENT_REF, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiOrientationT} from '@taiga-ui/core/types';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {map, switchMap, takeUntil, throttleTime} from 'rxjs/operators';\n\nconst MIN_WIDTH = 24;\n\n// @dynamic\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiDestroyService],\n})\nexport class TuiScrollbarDirective {\n @Input()\n tuiScrollbar: TuiOrientationT = 'vertical';\n\n constructor(\n @Inject(NgZone) ngZone: NgZone,\n @Inject(Renderer2) renderer: Renderer2,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_ELEMENT_REF) private readonly wrapper: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly container: ElementRef<HTMLElement> | null,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(ViewportScroller) private readonly viewportScroller: ViewportScroller,\n ) {\n const {nativeElement} = this.elementRef;\n const mousedown$ = typedFromEvent(nativeElement, 'mousedown');\n const mousemove$ = typedFromEvent(this.documentRef, 'mousemove');\n const mouseup$ = typedFromEvent(this.documentRef, 'mouseup');\n const mousedownWrapper$ = typedFromEvent(wrapper.nativeElement, 'mousedown');\n\n merge(\n mousedownWrapper$.pipe(\n preventDefault(),\n map(event => this.getScrolled(event, 0.5, 0.5)),\n ),\n mousedown$.pipe(\n preventDefault(),\n stopPropagation(),\n switchMap(event => {\n const rect = nativeElement.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return mousemove$.pipe(\n map(event => this.getScrolled(event, vertical, horizontal)),\n takeUntil(mouseup$),\n );\n }),\n ),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(([scrollTop, scrollLeft]) => {\n const [x, y] = this.viewportScroller.getScrollPosition();\n\n if (!this.container) {\n this.viewportScroller.scrollToPosition([\n this.tuiScrollbar === 'vertical' ? x : scrollLeft,\n this.tuiScrollbar === 'vertical' ? scrollTop : y,\n ]);\n\n return;\n }\n\n if (this.tuiScrollbar === 'vertical') {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollTop',\n scrollTop,\n );\n } else {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollLeft',\n scrollLeft,\n );\n }\n });\n\n merge(\n fromEvent(\n this.container ? this.container.nativeElement : this.windowRef,\n 'scroll',\n ),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(() => {\n if (this.tuiScrollbar === 'vertical') {\n renderer.setStyle(nativeElement, 'top', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'height', `${this.view * 100}%`);\n } else {\n renderer.setStyle(nativeElement, 'left', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'width', `${this.view * 100}%`);\n }\n });\n }\n\n private get scrolled(): number {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? scrollTop / (scrollHeight - clientHeight)\n : scrollLeft / (scrollWidth - clientWidth);\n }\n\n private get compensation(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n if (\n ((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / clientHeight\n : MIN_WIDTH / clientWidth;\n }\n\n private get thumb(): number {\n const compensation = this.compensation || this.view;\n\n return this.scrolled * (1 - compensation);\n }\n\n private get view(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((clientHeight / scrollHeight) * 100) / 100\n : Math.ceil((clientWidth / scrollWidth) * 100) / 100;\n }\n\n private get computedContainer(): Element {\n return this.container\n ? this.container.nativeElement\n : this.documentRef.scrollingElement!;\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetVertical: number,\n offsetHorizontal: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.elementRef.nativeElement;\n const {top, left, width, height} =\n this.wrapper.nativeElement.getBoundingClientRect();\n\n const maxTop = this.computedContainer.scrollHeight - height;\n const maxLeft = this.computedContainer.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: ClientRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: ClientRect): number {\n return (clientX - left) / width;\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {TUI_ELEMENT_REF} from '@taiga-ui/core/tokens';\n\n@Directive({\n selector: '[tuiScrollbarWrapper]',\n providers: [\n {\n provide: TUI_ELEMENT_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollbarWrapperDirective {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiScrollControlsComponent} from './scroll-controls.component';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\nimport {TuiScrollbarWrapperDirective} from './scrollbar-wrapper.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [\n TuiScrollbarDirective,\n TuiScrollbarWrapperDirective,\n TuiScrollControlsComponent,\n ],\n exports: [TuiScrollControlsComponent],\n})\nexport class TuiScrollControlsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {TuiScrollbarWrapperDirective as ɵa} from './scrollbar-wrapper.directive';"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ var TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\/#!$%\\^&\\*;:{}=\\-_`~()]$/;
66
66
  var TUI_LATIN_REGEXP = /[A-z]/;
67
67
  var TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;
68
68
 
69
- var VERSION = '2.41.0';
69
+ var VERSION = '2.43.0';
70
70
 
71
71
  /**
72
72
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-constants.js","sources":["ng://@taiga-ui/core/constants/absolute-box-sizes.ts","ng://@taiga-ui/core/constants/decimal-symbols.ts","ng://@taiga-ui/core/constants/default-icons-path.ts","ng://@taiga-ui/core/constants/default-marker-handler.ts","ng://@taiga-ui/core/constants/editing-keys.ts","ng://@taiga-ui/core/constants/events.ts","ng://@taiga-ui/core/constants/mask-caret-trap.ts","ng://@taiga-ui/core/constants/media.ts","ng://@taiga-ui/core/constants/regexp.ts","ng://@taiga-ui/core/constants/version.ts","ng://@taiga-ui/core/constants/taiga-ui-core-constants.ts"],"sourcesContent":["export const DEFAULT_MARGIN = 4;\nexport const DEFAULT_MIN_HEIGHT = 80;\nexport const DEFAULT_MAX_HEIGHT = 400;\nexport const DEFAULT_MAX_WIDTH = 600;\n","export const TUI_DECIMAL_SYMBOLS: readonly string[] = [',', '.'];\n","import {TuiStringHandler} from '@taiga-ui/cdk';\n\nexport const DEFAULT_ICONS_PATH: TuiStringHandler<string> = name =>\n name.includes('.svg#') ? name : `#${name}`;\n","import {EMPTY_ARRAY} from '@taiga-ui/cdk';\nimport {TuiMarkerHandler} from '@taiga-ui/core/types';\n\nexport const TUI_DEFAULT_MARKER_HANDLER: TuiMarkerHandler = () => EMPTY_ARRAY;\n","export const tuiEditingKeys: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n","/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = 'tui-expand-loaded';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbarComponent}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbarComponent} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n/**\n * An event indicating and error during icon loading in {@link TuiSvgComponent}.\n */\nexport const TUI_ICON_ERROR = 'tui-icon-error';\n","export const MASK_CARET_TRAP = '[]';\n","/**\n * Media constants are exact the same as css media breakpoints\n * @deprecated use TUI_MEDIA token\n */\nexport const MEDIA = {\n mobile: 320,\n tablet: 600,\n desktopSmall: 1024,\n desktopLarge: 1280,\n};\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\nexport const TUI_LEADING_ZEROES_REGEXP = /^0+/;\nexport const TUI_MASK_SYMBOLS_REGEXP = /[ \\-_()]/g;\nexport const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\\\/#!$%\\\\^&\\\\*;:{}=\\\\-_`~()]$/;\nexport const TUI_LATIN_REGEXP = /[A-z]/;\nexport const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;\n","export const VERSION = '2.41.0';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;IAAa,cAAc,GAAG,EAAE;IACnB,kBAAkB,GAAG,GAAG;IACxB,kBAAkB,GAAG,IAAI;IACzB,iBAAiB,GAAG;;ICHpB,mBAAmB,GAAsB,CAAC,GAAG,EAAE,GAAG;;ICElD,kBAAkB,GAA6B,UAAA,IAAI;IAC5D,OAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAI,IAAM;AAA1C;;ICAS,0BAA0B,GAAqB,cAAM,OAAA,WAAW;;ICHhE,cAAc,GAAsB;IAC7C,UAAU;IACV,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;;;ACTV;;;;IAIa,iBAAiB,GAAG,oBAAoB;AAErD;;;IAGa,oBAAoB,GAAG,uBAAuB;AAE3D;;;;IAIa,cAAc,GAAG,iBAAiB;AAE/C;;;IAGa,cAAc,GAAG;;ICpBjB,eAAe,GAAG;;ACA/B;;;;IAIa,KAAK,GAAG;IACjB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;;;ICRT,gBAAgB,GAAG,KAAK;IACxB,oBAAoB,GAAG,KAAK;IAC5B,qBAAqB,GAAG,OAAO;IAC/B,yBAAyB,GAAG,MAAM;IAClC,uBAAuB,GAAG,YAAY;IACtC,gCAAgC,GAAG,mCAAmC;IACtE,gBAAgB,GAAG,QAAQ;IAC3B,4BAA4B,GAAG;;ICP/B,OAAO,GAAG;;ACAvB;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-constants.js","sources":["ng://@taiga-ui/core/constants/absolute-box-sizes.ts","ng://@taiga-ui/core/constants/decimal-symbols.ts","ng://@taiga-ui/core/constants/default-icons-path.ts","ng://@taiga-ui/core/constants/default-marker-handler.ts","ng://@taiga-ui/core/constants/editing-keys.ts","ng://@taiga-ui/core/constants/events.ts","ng://@taiga-ui/core/constants/mask-caret-trap.ts","ng://@taiga-ui/core/constants/media.ts","ng://@taiga-ui/core/constants/regexp.ts","ng://@taiga-ui/core/constants/version.ts","ng://@taiga-ui/core/constants/taiga-ui-core-constants.ts"],"sourcesContent":["export const DEFAULT_MARGIN = 4;\nexport const DEFAULT_MIN_HEIGHT = 80;\nexport const DEFAULT_MAX_HEIGHT = 400;\nexport const DEFAULT_MAX_WIDTH = 600;\n","export const TUI_DECIMAL_SYMBOLS: readonly string[] = [',', '.'];\n","import {TuiStringHandler} from '@taiga-ui/cdk';\n\nexport const DEFAULT_ICONS_PATH: TuiStringHandler<string> = name =>\n name.includes('.svg#') ? name : `#${name}`;\n","import {EMPTY_ARRAY} from '@taiga-ui/cdk';\nimport {TuiMarkerHandler} from '@taiga-ui/core/types';\n\nexport const TUI_DEFAULT_MARKER_HANDLER: TuiMarkerHandler = () => EMPTY_ARRAY;\n","export const tuiEditingKeys: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n","/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = 'tui-expand-loaded';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbarComponent}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbarComponent} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n/**\n * An event indicating and error during icon loading in {@link TuiSvgComponent}.\n */\nexport const TUI_ICON_ERROR = 'tui-icon-error';\n","export const MASK_CARET_TRAP = '[]';\n","/**\n * Media constants are exact the same as css media breakpoints\n * @deprecated use TUI_MEDIA token\n */\nexport const MEDIA = {\n mobile: 320,\n tablet: 600,\n desktopSmall: 1024,\n desktopLarge: 1280,\n};\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\nexport const TUI_LEADING_ZEROES_REGEXP = /^0+/;\nexport const TUI_MASK_SYMBOLS_REGEXP = /[ \\-_()]/g;\nexport const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\\\/#!$%\\\\^&\\\\*;:{}=\\\\-_`~()]$/;\nexport const TUI_LATIN_REGEXP = /[A-z]/;\nexport const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;\n","export const VERSION = '2.43.0';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;IAAa,cAAc,GAAG,EAAE;IACnB,kBAAkB,GAAG,GAAG;IACxB,kBAAkB,GAAG,IAAI;IACzB,iBAAiB,GAAG;;ICHpB,mBAAmB,GAAsB,CAAC,GAAG,EAAE,GAAG;;ICElD,kBAAkB,GAA6B,UAAA,IAAI;IAC5D,OAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,MAAI,IAAM;AAA1C;;ICAS,0BAA0B,GAAqB,cAAM,OAAA,WAAW;;ICHhE,cAAc,GAAsB;IAC7C,UAAU;IACV,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;;;ACTV;;;;IAIa,iBAAiB,GAAG,oBAAoB;AAErD;;;IAGa,oBAAoB,GAAG,uBAAuB;AAE3D;;;;IAIa,cAAc,GAAG,iBAAiB;AAE/C;;;IAGa,cAAc,GAAG;;ICpBjB,eAAe,GAAG;;ACA/B;;;;IAIa,KAAK,GAAG;IACjB,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;;;ICRT,gBAAgB,GAAG,KAAK;IACxB,oBAAoB,GAAG,KAAK;IAC5B,qBAAqB,GAAG,OAAO;IAC/B,yBAAyB,GAAG,MAAM;IAClC,uBAAuB,GAAG,YAAY;IACtC,gCAAgC,GAAG,mCAAmC;IACtE,gBAAgB,GAAG,QAAQ;IAC3B,4BAA4B,GAAG;;ICP/B,OAAO,GAAG;;ACAvB;;;;;;"}
@@ -2,7 +2,7 @@ import { ElementRef, NgZone, Optional } from '@angular/core';
2
2
  import { WINDOW } from '@ng-web-apis/common';
3
3
  import { tuiZoneOptimized, watch } from '@taiga-ui/cdk';
4
4
  import { TUI_IS_MOBILE_RES, TUI_MEDIA, TUI_MODE } from '@taiga-ui/core/tokens';
5
- import { fromEvent, EMPTY } from 'rxjs';
5
+ import { fromEvent, of } from 'rxjs';
6
6
  import { startWith, map, distinctUntilChanged, takeUntil } from 'rxjs/operators';
7
7
  import { TuiModeDirective } from '@taiga-ui/core/directives/mode';
8
8
 
@@ -23,7 +23,7 @@ function modeFactory(mode, _a) {
23
23
  var nativeElement = _a.nativeElement;
24
24
  var mode$ = mode
25
25
  ? mode.change$.pipe(startWith(null), map(function () { return mode.mode; }))
26
- : EMPTY;
26
+ : of(null);
27
27
  nativeElement['$.data-mode.attr'] = mode$;
28
28
  return mode$;
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-providers.js","sources":["ng://@taiga-ui/core/providers/is-mobile-resolution.provider.ts","ng://@taiga-ui/core/providers/mode.provider.ts","ng://@taiga-ui/core/providers/watched-controller-provider-factory.ts","ng://@taiga-ui/core/providers/taiga-ui-core-providers.ts"],"sourcesContent":["import {ElementRef, NgZone, Provider} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {TuiMedia} from '@taiga-ui/core/interfaces';\nimport {TUI_IS_MOBILE_RES, TUI_MEDIA} from '@taiga-ui/core/tokens';\nimport {fromEvent, Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nexport function isMobileResFactory(\n windowRef: Window,\n {mobile}: TuiMedia,\n {nativeElement}: ElementRef,\n ngZone: NgZone,\n): Observable<boolean> {\n const mobile$ = fromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerWidth < mobile),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n );\n\n nativeElement['$.class._mobile'] = mobile$;\n\n return mobile$;\n}\n\nexport const TUI_IS_MOBILE_RES_PROVIDER: Provider = {\n provide: TUI_IS_MOBILE_RES,\n deps: [WINDOW, TUI_MEDIA, ElementRef, NgZone],\n useFactory: isMobileResFactory,\n};\n","import {ElementRef, Optional, Provider} from '@angular/core';\nimport {TuiModeDirective} from '@taiga-ui/core/directives/mode';\nimport {TUI_MODE} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {EMPTY, Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\nexport function modeFactory(\n mode: TuiModeDirective | null,\n {nativeElement}: ElementRef,\n): Observable<TuiBrightness | null> {\n const mode$ = mode\n ? mode.change$.pipe(\n startWith(null),\n map(() => mode.mode),\n )\n : EMPTY;\n\n nativeElement['$.data-mode.attr'] = mode$;\n\n return mode$;\n}\n\nexport const MODE_PROVIDER: Provider = {\n provide: TUI_MODE,\n deps: [[new Optional(), TuiModeDirective], ElementRef],\n useFactory: modeFactory,\n};\n","import {ChangeDetectorRef} from '@angular/core';\nimport {TuiController, watch} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nexport function watchedControllerFactory(\n controller: TuiController,\n changeDetectorRef: ChangeDetectorRef,\n destroy$: Observable<void>,\n): TuiController {\n controller.change$.pipe(watch(changeDetectorRef), takeUntil(destroy$)).subscribe();\n\n return controller;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;SAQgB,kBAAkB,CAC9B,SAAiB,EACjB,EAAkB,EAClB,EAA2B,EAC3B,MAAc;QAFb,kBAAM;QACN,gCAAa;IAGd,IAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC/C,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,cAAM,OAAA,SAAS,CAAC,UAAU,GAAG,MAAM,GAAA,CAAC,EACxC,oBAAoB,EAAE,EACtB,gBAAgB,CAAC,MAAM,CAAC,CAC3B,CAAC;IAEF,aAAa,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;IAE3C,OAAO,OAAO,CAAC;AACnB,CAAC;IAEY,0BAA0B,GAAa;IAChD,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;IAC7C,UAAU,EAAE,kBAAkB;;;SCtBlB,WAAW,CACvB,IAA6B,EAC7B,EAA2B;QAA1B,gCAAa;IAEd,IAAM,KAAK,GAAG,IAAI;UACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,cAAM,OAAA,IAAI,CAAC,IAAI,GAAA,CAAC,CACvB;UACD,KAAK,CAAC;IAEZ,aAAa,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC;IAE1C,OAAO,KAAK,CAAC;AACjB,CAAC;IAEY,aAAa,GAAa;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,gBAAgB,CAAC,EAAE,UAAU,CAAC;IACtD,UAAU,EAAE,WAAW;;;SCrBX,wBAAwB,CACpC,UAAyB,EACzB,iBAAoC,EACpC,QAA0B;IAE1B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAEnF,OAAO,UAAU,CAAC;AACtB;;ACbA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-providers.js","sources":["ng://@taiga-ui/core/providers/is-mobile-resolution.provider.ts","ng://@taiga-ui/core/providers/mode.provider.ts","ng://@taiga-ui/core/providers/watched-controller-provider-factory.ts","ng://@taiga-ui/core/providers/taiga-ui-core-providers.ts"],"sourcesContent":["import {ElementRef, NgZone, Provider} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {TuiMedia} from '@taiga-ui/core/interfaces';\nimport {TUI_IS_MOBILE_RES, TUI_MEDIA} from '@taiga-ui/core/tokens';\nimport {fromEvent, Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith} from 'rxjs/operators';\n\nexport function isMobileResFactory(\n windowRef: Window,\n {mobile}: TuiMedia,\n {nativeElement}: ElementRef,\n ngZone: NgZone,\n): Observable<boolean> {\n const mobile$ = fromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerWidth < mobile),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n );\n\n nativeElement['$.class._mobile'] = mobile$;\n\n return mobile$;\n}\n\nexport const TUI_IS_MOBILE_RES_PROVIDER: Provider = {\n provide: TUI_IS_MOBILE_RES,\n deps: [WINDOW, TUI_MEDIA, ElementRef, NgZone],\n useFactory: isMobileResFactory,\n};\n","import {ElementRef, Optional, Provider} from '@angular/core';\nimport {TuiModeDirective} from '@taiga-ui/core/directives/mode';\nimport {TUI_MODE} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable, of} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\nexport function modeFactory(\n mode: TuiModeDirective | null,\n {nativeElement}: ElementRef,\n): Observable<TuiBrightness | null> {\n const mode$ = mode\n ? mode.change$.pipe(\n startWith(null),\n map(() => mode.mode),\n )\n : of(null);\n\n nativeElement['$.data-mode.attr'] = mode$;\n\n return mode$;\n}\n\nexport const MODE_PROVIDER: Provider = {\n provide: TUI_MODE,\n deps: [[new Optional(), TuiModeDirective], ElementRef],\n useFactory: modeFactory,\n};\n","import {ChangeDetectorRef} from '@angular/core';\nimport {TuiController, watch} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nexport function watchedControllerFactory(\n controller: TuiController,\n changeDetectorRef: ChangeDetectorRef,\n destroy$: Observable<void>,\n): TuiController {\n controller.change$.pipe(watch(changeDetectorRef), takeUntil(destroy$)).subscribe();\n\n return controller;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;SAQgB,kBAAkB,CAC9B,SAAiB,EACjB,EAAkB,EAClB,EAA2B,EAC3B,MAAc;QAFb,kBAAM;QACN,gCAAa;IAGd,IAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC/C,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,cAAM,OAAA,SAAS,CAAC,UAAU,GAAG,MAAM,GAAA,CAAC,EACxC,oBAAoB,EAAE,EACtB,gBAAgB,CAAC,MAAM,CAAC,CAC3B,CAAC;IAEF,aAAa,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;IAE3C,OAAO,OAAO,CAAC;AACnB,CAAC;IAEY,0BAA0B,GAAa;IAChD,OAAO,EAAE,iBAAiB;IAC1B,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC;IAC7C,UAAU,EAAE,kBAAkB;;;SCtBlB,WAAW,CACvB,IAA6B,EAC7B,EAA2B;QAA1B,gCAAa;IAEd,IAAM,KAAK,GAAG,IAAI;UACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,cAAM,OAAA,IAAI,CAAC,IAAI,GAAA,CAAC,CACvB;UACD,EAAE,CAAC,IAAI,CAAC,CAAC;IAEf,aAAa,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC;IAE1C,OAAO,KAAK,CAAC;AACjB,CAAC;IAEY,aAAa,GAAa;IACnC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,gBAAgB,CAAC,EAAE,UAAU,CAAC;IACtD,UAAU,EAAE,WAAW;;;SCrBX,wBAAwB,CACpC,UAAyB,EACzB,iBAAoC,EACpC,QAA0B;IAE1B,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAEnF,OAAO,UAAU,CAAC;AACtB;;ACbA;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/core",
3
- "version": "2.41.0",
3
+ "version": "2.43.0",
4
4
  "description": "Core library for creating Angular components and applications using Taiga UI",
5
5
  "keywords": [
6
6
  "angular",
@@ -11,17 +11,14 @@
11
11
  "service",
12
12
  "directive"
13
13
  ],
14
- "license": "Apache-2.0",
15
- "repository": "https://github.com/tinkoff/taiga-ui",
16
14
  "homepage": "https://github.com/tinkoff/taiga-ui",
17
- "schematics": "./schematics/collection.json",
15
+ "repository": "https://github.com/tinkoff/taiga-ui",
16
+ "license": "Apache-2.0",
18
17
  "dependencies": {
19
- "@taiga-ui/i18n": "^2.41.0",
18
+ "@taiga-ui/i18n": "^2.43.0",
20
19
  "tslib": "^1.10.0"
21
20
  },
22
21
  "peerDependencies": {
23
- "@taiga-ui/i18n": ">=2.41.0",
24
- "@taiga-ui/cdk": ">=2.41.0",
25
22
  "@angular/animations": ">=9.0.0",
26
23
  "@angular/common": ">=9.0.0",
27
24
  "@angular/core": ">=9.0.0",
@@ -30,10 +27,13 @@
30
27
  "@angular/router": ">=9.0.0",
31
28
  "@ng-web-apis/common": ">=1.12.1 < 2",
32
29
  "@ng-web-apis/mutation-observer": ">=1.1.0",
30
+ "@taiga-ui/cdk": ">=2.43.0",
31
+ "@taiga-ui/i18n": ">=2.43.0",
33
32
  "@tinkoff/ng-event-plugins": ">=2.3.2",
34
33
  "@tinkoff/ng-polymorpheus": ">=3.1.12 < 4",
35
34
  "rxjs": ">=6.0.0"
36
35
  },
36
+ "schematics": "./schematics/collection.json",
37
37
  "main": "bundles/taiga-ui-core.umd.js",
38
38
  "module": "fesm5/taiga-ui-core.js",
39
39
  "es2015": "fesm2015/taiga-ui-core.js",
@@ -1,4 +1,4 @@
1
- @import './../taiga-ui-local.less';
1
+ @import '../taiga-ui-local';
2
2
 
3
3
  .tui-group {
4
4
  .createStackingContext();
@@ -1,18 +1,18 @@
1
- @import './taiga-ui-local-old.less';
2
- @import './basic/keyframes.less';
3
- @import './basic/normalize.less';
4
- @import './basic/main.less';
5
- @import './markup/tui-autofill.less';
6
- @import './markup/tui-container-old.less';
7
- @import './markup/tui-form-old.less';
8
- @import './markup/tui-group-old.less';
9
- @import './markup/tui-island.less';
10
- @import './markup/tui-list.less';
11
- @import './markup/tui-mobile-only.less';
12
- @import './markup/tui-palette.less';
13
- @import './markup/tui-required.less';
14
- @import './markup/tui-row-old.less';
15
- @import './markup/tui-skeleton.less';
16
- @import './markup/tui-space.less';
17
- @import './markup/tui-table.less';
18
- @import './markup/tui-text.less';
1
+ @import 'taiga-ui-local-old.less';
2
+ @import 'basic/keyframes.less';
3
+ @import 'basic/normalize.less';
4
+ @import 'basic/main.less';
5
+ @import 'markup/tui-autofill.less';
6
+ @import 'markup/tui-container-old.less';
7
+ @import 'markup/tui-form-old.less';
8
+ @import 'markup/tui-group-old.less';
9
+ @import 'markup/tui-island.less';
10
+ @import 'markup/tui-list.less';
11
+ @import 'markup/tui-mobile-only.less';
12
+ @import 'markup/tui-palette.less';
13
+ @import 'markup/tui-required.less';
14
+ @import 'markup/tui-row-old.less';
15
+ @import 'markup/tui-skeleton.less';
16
+ @import 'markup/tui-space.less';
17
+ @import 'markup/tui-table.less';
18
+ @import 'markup/tui-text.less';