diff --git a/.eslintrc.js b/.eslintrc.js index 02fc89bf5f60..296dfbfa29e5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -41,6 +41,7 @@ module.exports = { }, }, rules: { + 'import/no-cycle': 'error', 'file-progress/activate': 1, quotes: 'off', '@typescript-eslint/quotes': ['error', 'backtick'], diff --git a/projects/addon-charts/components/line-chart/line-chart-hint.directive.ts b/projects/addon-charts/components/line-chart/line-chart-hint.directive.ts index ffdd0a09b9c7..6bb51b89b65e 100644 --- a/projects/addon-charts/components/line-chart/line-chart-hint.directive.ts +++ b/projects/addon-charts/components/line-chart/line-chart-hint.directive.ts @@ -25,6 +25,8 @@ import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; import {combineLatest, Observable} from 'rxjs'; import {distinctUntilChanged, filter, map, startWith, takeUntil} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiLineChartComponent} from './line-chart.component'; @Directive({ diff --git a/projects/addon-charts/components/line-chart/line-chart.component.ts b/projects/addon-charts/components/line-chart/line-chart.component.ts index fe31d84999c7..ebbb0750410b 100644 --- a/projects/addon-charts/components/line-chart/line-chart.component.ts +++ b/projects/addon-charts/components/line-chart/line-chart.component.ts @@ -32,6 +32,8 @@ import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; import {Observable, Subject} from 'rxjs'; import {distinctUntilChanged} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiLineChartHintDirective} from './line-chart-hint.directive'; @Component({ diff --git a/projects/addon-charts/components/line-days-chart/line-days-chart-hint.directive.ts b/projects/addon-charts/components/line-days-chart/line-days-chart-hint.directive.ts index 01b3b99342e2..648520528faa 100644 --- a/projects/addon-charts/components/line-days-chart/line-days-chart-hint.directive.ts +++ b/projects/addon-charts/components/line-days-chart/line-days-chart-hint.directive.ts @@ -24,6 +24,8 @@ import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; import {combineLatest, Observable} from 'rxjs'; import {filter, map, takeUntil} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiLineDaysChartComponent} from './line-days-chart.component'; // TODO: Consider extending TuiLineChartHintDirective diff --git a/projects/addon-charts/components/line-days-chart/line-days-chart.component.ts b/projects/addon-charts/components/line-days-chart/line-days-chart.component.ts index 8cc647e80d7f..5297f125fcc2 100644 --- a/projects/addon-charts/components/line-days-chart/line-days-chart.component.ts +++ b/projects/addon-charts/components/line-days-chart/line-days-chart.component.ts @@ -28,6 +28,8 @@ import {TuiDriver, TuiPoint} from '@taiga-ui/core'; import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; import {Observable} from 'rxjs'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiLineDaysChartHintDirective} from './line-days-chart-hint.directive'; const DUMMY: TuiPoint = [NaN, NaN]; diff --git a/projects/addon-editor/extensions/image-editor/image-editor.component.ts b/projects/addon-editor/extensions/image-editor/image-editor.component.ts index cf65e5e2f2a8..1045247a3186 100644 --- a/projects/addon-editor/extensions/image-editor/image-editor.component.ts +++ b/projects/addon-editor/extensions/image-editor/image-editor.component.ts @@ -5,7 +5,7 @@ import {TuiDestroyService, tuiTypedFromEvent} from '@taiga-ui/cdk'; import {merge} from 'rxjs'; import {takeUntil} from 'rxjs/operators'; -import {TuiEditableImage} from './image-editor.extension'; +import type {TuiEditableImage} from './image-editor.extension'; export const TUI_EDITOR_MIN_IMAGE_WIDTH = new InjectionToken( `[TUI_EDITOR_MIN_IMAGE_WIDTH]: Min size of resizable image inside editor`, diff --git a/projects/addon-mobile/components/sheet/components/sheet/sheet.component.ts b/projects/addon-mobile/components/sheet/components/sheet/sheet.component.ts index 651390616f6c..f08c6e57d1be 100644 --- a/projects/addon-mobile/components/sheet/components/sheet/sheet.component.ts +++ b/projects/addon-mobile/components/sheet/components/sheet/sheet.component.ts @@ -21,6 +21,8 @@ import {fakeSmoothScroll} from '../../ios.hacks'; import {TuiSheet, TuiSheetRequiredProps} from '../../sheet'; import {TUI_SHEET_SCROLL} from '../../sheet-tokens'; import {TUI_SHEET_ID} from '../sheet-heading/sheet-heading.component'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TUI_SHEET_PROVIDERS} from './sheet.providers'; @Component({ diff --git a/projects/addon-mobile/components/sheet/components/sheet/sheet.providers.ts b/projects/addon-mobile/components/sheet/components/sheet/sheet.providers.ts index 1edf91ca7716..d0677996bb49 100644 --- a/projects/addon-mobile/components/sheet/components/sheet/sheet.providers.ts +++ b/projects/addon-mobile/components/sheet/components/sheet/sheet.providers.ts @@ -7,6 +7,8 @@ import {map, mapTo, share} from 'rxjs/operators'; import {iosScrollFactory} from '../../ios.hacks'; import {TUI_SHEET, TUI_SHEET_DRAGGED, TUI_SHEET_SCROLL} from '../../sheet-tokens'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiSheetComponent} from './sheet.component'; export const TUI_SHEET_PROVIDERS: Provider[] = [ diff --git a/projects/addon-mobile/components/sheet/sheet.ts b/projects/addon-mobile/components/sheet/sheet.ts index 603a77f1a2a1..b2d76b92681e 100644 --- a/projects/addon-mobile/components/sheet/sheet.ts +++ b/projects/addon-mobile/components/sheet/sheet.ts @@ -2,7 +2,7 @@ import {TuiContextWithImplicit} from '@taiga-ui/cdk'; import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; import {Observable, Observer} from 'rxjs'; -import {TuiSheetOptions} from './sheet-options'; +import type {TuiSheetOptions} from './sheet-options'; export interface TuiSheet extends TuiSheetOptions, diff --git a/projects/addon-mobile/directives/sidebar/sidebar.component.ts b/projects/addon-mobile/directives/sidebar/sidebar.component.ts index b5c7e41eb218..4353aa5f6e87 100644 --- a/projects/addon-mobile/directives/sidebar/sidebar.component.ts +++ b/projects/addon-mobile/directives/sidebar/sidebar.component.ts @@ -14,6 +14,8 @@ import { } from '@taiga-ui/core'; import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiSidebarDirective} from './sidebar.directive'; @Component({ diff --git a/projects/addon-mobile/directives/sidebar/sidebar.directive.ts b/projects/addon-mobile/directives/sidebar/sidebar.directive.ts index 15e65e444798..aa410e64f7ed 100644 --- a/projects/addon-mobile/directives/sidebar/sidebar.directive.ts +++ b/projects/addon-mobile/directives/sidebar/sidebar.directive.ts @@ -12,6 +12,8 @@ import {TuiDropdownPortalService} from '@taiga-ui/cdk'; import {TuiHorizontalDirection} from '@taiga-ui/core'; import {PolymorpheusComponent, PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiSidebarComponent} from './sidebar.component'; @Directive({ diff --git a/projects/addon-table/components/table/directives/sort-by.directive.ts b/projects/addon-table/components/table/directives/sort-by.directive.ts index 3750a7437625..9c1c884d6e1f 100644 --- a/projects/addon-table/components/table/directives/sort-by.directive.ts +++ b/projects/addon-table/components/table/directives/sort-by.directive.ts @@ -10,6 +10,8 @@ import {TuiComparator} from '@taiga-ui/addon-table/types'; import {EMPTY_QUERY, tuiDefaultProp} from '@taiga-ui/cdk'; import {filter, map} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiSortableDirective} from './sortable.directive'; import {TuiTableDirective} from './table.directive'; diff --git a/projects/addon-table/components/table/directives/sortable.directive.ts b/projects/addon-table/components/table/directives/sortable.directive.ts index c5310655e76a..3aadb57564bc 100644 --- a/projects/addon-table/components/table/directives/sortable.directive.ts +++ b/projects/addon-table/components/table/directives/sortable.directive.ts @@ -2,6 +2,8 @@ import {Directive, DoCheck, forwardRef, Inject, OnInit} from '@angular/core'; import {TuiComparator} from '@taiga-ui/addon-table/types'; import {TuiThComponent} from '../th/th.component'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiSortByDirective} from './sort-by.directive'; import {TuiTableDirective} from './table.directive'; diff --git a/projects/addon-table/components/table/directives/table.directive.ts b/projects/addon-table/components/table/directives/table.directive.ts index f61d08312956..398caab36dab 100644 --- a/projects/addon-table/components/table/directives/table.directive.ts +++ b/projects/addon-table/components/table/directives/table.directive.ts @@ -14,6 +14,8 @@ import {TUI_MODE, TuiBrightness, TuiSizeL, TuiSizeS} from '@taiga-ui/core'; import {Observable} from 'rxjs'; import {TUI_STUCK} from '../providers/stuck.provider'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TUI_TABLE_PROVIDERS} from '../providers/table.providers'; @Directive({ diff --git a/projects/addon-table/components/table/providers/table.providers.ts b/projects/addon-table/components/table/providers/table.providers.ts index 2686543e7138..fbb425b0c9a6 100644 --- a/projects/addon-table/components/table/providers/table.providers.ts +++ b/projects/addon-table/components/table/providers/table.providers.ts @@ -13,6 +13,8 @@ import { } from '@taiga-ui/core'; import {TUI_INPUT_COUNT_OPTIONS, TuiInputCountOptions} from '@taiga-ui/kit'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiTableDirective} from '../directives/table.directive'; import {TUI_STUCK_PROVIDER} from './stuck.provider'; diff --git a/projects/addon-table/components/table/tbody/tbody.component.ts b/projects/addon-table/components/table/tbody/tbody.component.ts index 3962bea972e9..60b87e9f5be5 100644 --- a/projects/addon-table/components/table/tbody/tbody.component.ts +++ b/projects/addon-table/components/table/tbody/tbody.component.ts @@ -17,6 +17,8 @@ import {TuiRowDirective} from '../directives/row.directive'; import {TuiTableDirective} from '../directives/table.directive'; import {TuiTableSortPipe} from '../pipes/table-sort.pipe'; import {TUI_TABLE_PROVIDER} from '../providers/table.provider'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiTrComponent} from '../tr/tr.component'; @Component({ diff --git a/projects/addon-table/components/table/tr/tr.component.ts b/projects/addon-table/components/table/tr/tr.component.ts index 42ec45ac3d7e..cacff7a2aafc 100644 --- a/projects/addon-table/components/table/tr/tr.component.ts +++ b/projects/addon-table/components/table/tr/tr.component.ts @@ -12,6 +12,8 @@ import {map, startWith} from 'rxjs/operators'; import {TuiCellDirective} from '../directives/cell.directive'; import {TuiTableDirective} from '../directives/table.directive'; import {TUI_TABLE_PROVIDER} from '../providers/table.provider'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiTbodyComponent} from '../tbody/tbody.component'; @Component({ diff --git a/projects/cdk/abstract/portal-host.ts b/projects/cdk/abstract/portal-host.ts index 84d96c44f654..bd93195308a4 100644 --- a/projects/cdk/abstract/portal-host.ts +++ b/projects/cdk/abstract/portal-host.ts @@ -13,6 +13,8 @@ import { } from '@angular/core'; import {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {AbstractTuiPortalService} from './portal-service'; /** diff --git a/projects/cdk/abstract/portal-service.ts b/projects/cdk/abstract/portal-service.ts index 8a71e0c4e242..7df7b1e05866 100644 --- a/projects/cdk/abstract/portal-service.ts +++ b/projects/cdk/abstract/portal-service.ts @@ -2,6 +2,8 @@ import {ComponentRef, EmbeddedViewRef, Injectable, TemplateRef} from '@angular/c import {TuiNoHostException} from '@taiga-ui/cdk/exceptions'; import {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {AbstractTuiPortalHostComponent} from './portal-host'; /** diff --git a/projects/cdk/directives/auto-focus/autofocus.options.ts b/projects/cdk/directives/auto-focus/autofocus.options.ts index 5a26fee62c17..4aabe5da052f 100644 --- a/projects/cdk/directives/auto-focus/autofocus.options.ts +++ b/projects/cdk/directives/auto-focus/autofocus.options.ts @@ -11,7 +11,10 @@ import {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces'; import {TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS} from '@taiga-ui/cdk/tokens'; import {Observable} from 'rxjs'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiDefaultAutofocusHandler} from './handlers/default.handler'; +// eslint-disable-next-line import/no-cycle import {TuiIosAutofocusHandler} from './handlers/ios.handler'; export interface TuiAutofocusHandler { diff --git a/projects/cdk/directives/auto-focus/handlers/abstract.handler.ts b/projects/cdk/directives/auto-focus/handlers/abstract.handler.ts index c53f809c32b2..8896c0b9360f 100644 --- a/projects/cdk/directives/auto-focus/handlers/abstract.handler.ts +++ b/projects/cdk/directives/auto-focus/handlers/abstract.handler.ts @@ -4,7 +4,7 @@ import { TuiNativeFocusableElement, } from '@taiga-ui/cdk/interfaces'; -import {TuiAutofocusHandler} from '../autofocus.options'; +import type {TuiAutofocusHandler} from '../autofocus.options'; @Directive() export abstract class AbstractTuiAutofocusHandler implements TuiAutofocusHandler { diff --git a/projects/cdk/directives/auto-focus/handlers/default.handler.ts b/projects/cdk/directives/auto-focus/handlers/default.handler.ts index 88312372677c..b2af348c0625 100644 --- a/projects/cdk/directives/auto-focus/handlers/default.handler.ts +++ b/projects/cdk/directives/auto-focus/handlers/default.handler.ts @@ -6,6 +6,8 @@ import {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens'; import {Observable, race, timer} from 'rxjs'; import {map, skipWhile, take, throttleTime} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {AbstractTuiAutofocusHandler} from './abstract.handler'; const TIMEOUT = 1000; diff --git a/projects/cdk/directives/auto-focus/handlers/ios.handler.ts b/projects/cdk/directives/auto-focus/handlers/ios.handler.ts index 421e19d4e92e..1015ae031109 100644 --- a/projects/cdk/directives/auto-focus/handlers/ios.handler.ts +++ b/projects/cdk/directives/auto-focus/handlers/ios.handler.ts @@ -12,6 +12,8 @@ import {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces'; import {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens'; import {tuiPx} from '@taiga-ui/cdk/utils'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {AbstractTuiAutofocusHandler} from './abstract.handler'; @Directive() diff --git a/projects/cdk/directives/let/let-context.ts b/projects/cdk/directives/let/let-context.ts index 02d280c5f521..538656f42cbd 100644 --- a/projects/cdk/directives/let/let-context.ts +++ b/projects/cdk/directives/let/let-context.ts @@ -1,6 +1,6 @@ import {TuiContextWithImplicit} from '@taiga-ui/cdk/interfaces'; -import {TuiLetDirective} from './let.directive'; +import type {TuiLetDirective} from './let.directive'; /** * @internal diff --git a/projects/core/components/data-list/data-list.component.ts b/projects/core/components/data-list/data-list.component.ts index e9ae5b6197c7..1e3718ec5494 100644 --- a/projects/core/components/data-list/data-list.component.ts +++ b/projects/core/components/data-list/data-list.component.ts @@ -29,6 +29,8 @@ import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; import {Observable} from 'rxjs'; import {map} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiOptionComponent} from './option/option.component'; // TODO: Consider aria-activedescendant for proper accessibility implementation diff --git a/projects/core/components/data-list/option/option.component.ts b/projects/core/components/data-list/option/option.component.ts index 2a4aba7b04d1..05bc265c3785 100644 --- a/projects/core/components/data-list/option/option.component.ts +++ b/projects/core/components/data-list/option/option.component.ts @@ -25,6 +25,8 @@ import {TuiOptionRole, TuiSizeL, TuiSizeXS} from '@taiga-ui/core/types'; import {shouldCall} from '@tinkoff/ng-event-plugins'; import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiDataListComponent} from '../data-list.component'; function shouldFocus({currentTarget}: TuiEventWith): boolean { diff --git a/projects/core/directives/dropdown/dropdown.component.ts b/projects/core/directives/dropdown/dropdown.component.ts index 6452c1c9ff3a..7004e8fe5c3a 100644 --- a/projects/core/directives/dropdown/dropdown.component.ts +++ b/projects/core/directives/dropdown/dropdown.component.ts @@ -23,6 +23,8 @@ import {TuiPoint} from '@taiga-ui/core/types'; import {Observable} from 'rxjs'; import {takeUntil} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiDropdownDirective} from './dropdown.directive'; import {TuiDropdownHoverDirective} from './dropdown-hover.directive'; import { diff --git a/projects/core/directives/dropdown/dropdown.directive.ts b/projects/core/directives/dropdown/dropdown.directive.ts index 72f730d6328c..d7b061bf852d 100644 --- a/projects/core/directives/dropdown/dropdown.directive.ts +++ b/projects/core/directives/dropdown/dropdown.directive.ts @@ -25,6 +25,8 @@ import {TuiPortalItem} from '@taiga-ui/core/interfaces'; import {tuiCheckFixedPosition} from '@taiga-ui/core/utils'; import {PolymorpheusComponent, PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TUI_DROPDOWN_COMPONENT} from './dropdown.providers'; @Directive({ diff --git a/projects/core/directives/dropdown/dropdown.providers.ts b/projects/core/directives/dropdown/dropdown.providers.ts index 30079c7f58c7..2898c937cf65 100644 --- a/projects/core/directives/dropdown/dropdown.providers.ts +++ b/projects/core/directives/dropdown/dropdown.providers.ts @@ -1,5 +1,7 @@ import {InjectionToken, Type} from '@angular/core'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiDropdownComponent} from './dropdown.component'; export const TUI_DROPDOWN_COMPONENT = new InjectionToken>( diff --git a/projects/core/mask/text-mask-options.ts b/projects/core/mask/text-mask-options.ts index 784dd9f96d20..dd8009a7f3bf 100644 --- a/projects/core/mask/text-mask-options.ts +++ b/projects/core/mask/text-mask-options.ts @@ -1,6 +1,6 @@ -import {TuiTextMaskList} from './text-mask-list'; -import {TuiTextMaskListHandler} from './text-mask-list-handler'; -import {TuiTextMaskPipeHandler} from './text-mask-pipe-handler'; +import type {TuiTextMaskList} from './text-mask-list'; +import type {TuiTextMaskListHandler} from './text-mask-list-handler'; +import type {TuiTextMaskPipeHandler} from './text-mask-pipe-handler'; /** * {@link https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md} diff --git a/projects/core/mask/text-mask-pipe-handler.ts b/projects/core/mask/text-mask-pipe-handler.ts index 9b60380dd9fe..5d84c2bb37ea 100644 --- a/projects/core/mask/text-mask-pipe-handler.ts +++ b/projects/core/mask/text-mask-pipe-handler.ts @@ -1,6 +1,6 @@ -import {TuiTextMaskConfig} from './text-mask-config'; -import {TuiTextMaskOptions} from './text-mask-options'; -import {TuiTextMaskPipeResult} from './text-mask-pipe-result'; +import type {TuiTextMaskConfig} from './text-mask-config'; +import type {TuiTextMaskOptions} from './text-mask-options'; +import type {TuiTextMaskPipeResult} from './text-mask-pipe-result'; /** * {@link https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#pipe} diff --git a/projects/core/tokens/ordered-short-week-days.ts b/projects/core/tokens/ordered-short-week-days.ts index 9a07c4ae9500..1a8152dbe14c 100644 --- a/projects/core/tokens/ordered-short-week-days.ts +++ b/projects/core/tokens/ordered-short-week-days.ts @@ -1,12 +1,12 @@ /** * TODO: v4.0 delete the whole file */ - import {inject, InjectionToken} from '@angular/core'; import {Observable} from 'rxjs'; import {map} from 'rxjs/operators'; -import {TUI_FIRST_DAY_OF_WEEK, TUI_SHORT_WEEK_DAYS} from './index'; +import {TUI_FIRST_DAY_OF_WEEK} from './first-day-of-week'; +import {TUI_SHORT_WEEK_DAYS} from './i18n'; /** * @deprecated diff --git a/projects/demo/src/modules/app/customization/customization.component.ts b/projects/demo/src/modules/app/customization/customization.component.ts index 125b9f2194d9..df831973e592 100644 --- a/projects/demo/src/modules/app/customization/customization.component.ts +++ b/projects/demo/src/modules/app/customization/customization.component.ts @@ -7,6 +7,8 @@ import {TuiBrightness} from '@taiga-ui/core'; import {Subject} from 'rxjs'; import {takeUntil} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import { TUI_DOC_CUSTOMIZATION_PROVIDERS, TUI_DOC_CUSTOMIZATION_VARS, diff --git a/projects/demo/src/modules/app/customization/customization.providers.ts b/projects/demo/src/modules/app/customization/customization.providers.ts index 0e1cdac8fe3d..15244bd71938 100644 --- a/projects/demo/src/modules/app/customization/customization.providers.ts +++ b/projects/demo/src/modules/app/customization/customization.providers.ts @@ -4,6 +4,8 @@ import {TuiDestroyService} from '@taiga-ui/cdk'; import {TuiModeDirective} from '@taiga-ui/core'; import {CSS_VARS} from '../../tokens/css-vars'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiCustomizationComponent} from './customization.component'; export const TUI_DOC_CUSTOMIZATION_VARS = new InjectionToken>( diff --git a/projects/demo/src/modules/components/pdf-viewer/examples/2/actions-content.component.ts b/projects/demo/src/modules/components/pdf-viewer/examples/2/actions-content.component.ts index 0467b4b4f394..7593c45292b3 100644 --- a/projects/demo/src/modules/components/pdf-viewer/examples/2/actions-content.component.ts +++ b/projects/demo/src/modules/components/pdf-viewer/examples/2/actions-content.component.ts @@ -3,7 +3,7 @@ import {TuiDialog} from '@taiga-ui/cdk'; import {TuiPdfViewerOptions} from '@taiga-ui/kit'; import {POLYMORPHEUS_CONTEXT} from '@tinkoff/ng-polymorpheus'; -import {Buttons} from './index'; +import type {Buttons} from './index'; @Component({ template: ` diff --git a/projects/demo/src/modules/components/pdf-viewer/examples/2/index.ts b/projects/demo/src/modules/components/pdf-viewer/examples/2/index.ts index 7cbd27f8871e..476fb532bab3 100644 --- a/projects/demo/src/modules/components/pdf-viewer/examples/2/index.ts +++ b/projects/demo/src/modules/components/pdf-viewer/examples/2/index.ts @@ -7,6 +7,8 @@ import {TuiPdfViewerOptions, TuiPdfViewerService} from '@taiga-ui/kit'; import {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus'; import {switchMap} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {ActionsContent} from './actions-content.component'; import {PdfContent} from './pdf-content.component'; diff --git a/projects/demo/src/modules/components/tree/examples/7/index.ts b/projects/demo/src/modules/components/tree/examples/7/index.ts index b4adaf77e45b..6fa40760f13f 100644 --- a/projects/demo/src/modules/components/tree/examples/7/index.ts +++ b/projects/demo/src/modules/components/tree/examples/7/index.ts @@ -9,6 +9,8 @@ import { TuiTreeService, } from '@taiga-ui/kit'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TreeLoader} from './service'; export interface Item { diff --git a/projects/demo/src/modules/components/tree/examples/7/service.ts b/projects/demo/src/modules/components/tree/examples/7/service.ts index 98132dabd74f..3fbd10286253 100644 --- a/projects/demo/src/modules/components/tree/examples/7/service.ts +++ b/projects/demo/src/modules/components/tree/examples/7/service.ts @@ -3,7 +3,7 @@ import {TuiTreeLoader} from '@taiga-ui/kit'; import {Observable, timer} from 'rxjs'; import {mapTo} from 'rxjs/operators'; -import {Item} from './index'; +import type {Item} from './index'; @Injectable() export class TreeLoader implements TuiTreeLoader { diff --git a/projects/kit/components/arrow/arrow-options.ts b/projects/kit/components/arrow/arrow-options.ts index b170aa092c1a..c2ba6368bd9f 100644 --- a/projects/kit/components/arrow/arrow-options.ts +++ b/projects/kit/components/arrow/arrow-options.ts @@ -3,6 +3,8 @@ import {TuiContextWithImplicit} from '@taiga-ui/cdk'; import {TuiSizeL, TuiSizeM, TuiSizeS} from '@taiga-ui/core'; import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TUI_ARROW} from './arrow.component'; export interface TuiArrowOptions { diff --git a/projects/kit/components/arrow/arrow.component.ts b/projects/kit/components/arrow/arrow.component.ts index 8e402f397d58..69f77bdebe61 100644 --- a/projects/kit/components/arrow/arrow.component.ts +++ b/projects/kit/components/arrow/arrow.component.ts @@ -7,6 +7,8 @@ import { } from '@taiga-ui/core'; import {PolymorpheusComponent, PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TUI_ARROW_OPTIONS, TuiArrowOptions} from './arrow-options'; @Component({ diff --git a/projects/kit/components/push/push-alert.component.ts b/projects/kit/components/push/push-alert.component.ts index 5ba805db5852..f11e63179268 100644 --- a/projects/kit/components/push/push-alert.component.ts +++ b/projects/kit/components/push/push-alert.component.ts @@ -7,10 +7,9 @@ import { tuiHeightCollapse, tuiSlideInRight, } from '@taiga-ui/core'; -import {POLYMORPHEUS_CONTEXT} from '@tinkoff/ng-polymorpheus'; +import {POLYMORPHEUS_CONTEXT, PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus'; import {TuiPushOptions} from './push.options'; -import {TuiPushAlertDirective} from './push-alert.directive'; @Component({ selector: `tui-push-alert`, @@ -33,6 +32,6 @@ export class TuiPushAlertComponent { ) {} get isDirective(): boolean { - return this.context.content instanceof TuiPushAlertDirective; + return this.context.content instanceof PolymorpheusTemplate; } } diff --git a/projects/kit/components/slider/helpers/slider-key-steps.directive.ts b/projects/kit/components/slider/helpers/slider-key-steps.directive.ts index 5e100007e64f..0ffcd3ef47c5 100644 --- a/projects/kit/components/slider/helpers/slider-key-steps.directive.ts +++ b/projects/kit/components/slider/helpers/slider-key-steps.directive.ts @@ -23,6 +23,8 @@ import { tuiPercentageToKeyStepValue, } from '@taiga-ui/kit/utils'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiSliderComponent} from '../slider.component'; @Directive({ diff --git a/projects/kit/components/slider/slider.component.ts b/projects/kit/components/slider/slider.component.ts index 537716d5beae..4b05d1ad8c2c 100644 --- a/projects/kit/components/slider/slider.component.ts +++ b/projects/kit/components/slider/slider.component.ts @@ -22,6 +22,8 @@ import { import {TuiSizeS} from '@taiga-ui/core'; import {take} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiSliderKeyStepsDirective} from './helpers/slider-key-steps.directive'; import {TUI_SLIDER_OPTIONS, TuiSliderOptions} from './slider-options'; diff --git a/projects/kit/components/stepper/step/step.component.ts b/projects/kit/components/stepper/step/step.component.ts index 101f72301001..c82afc51fba1 100644 --- a/projects/kit/components/stepper/step/step.component.ts +++ b/projects/kit/components/stepper/step/step.component.ts @@ -12,6 +12,8 @@ import {TuiRouterLinkActiveService} from '@taiga-ui/core'; import {identity, Observable} from 'rxjs'; import {filter} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiStepperComponent} from '../stepper.component'; @Component({ diff --git a/projects/kit/components/stepper/stepper.component.ts b/projects/kit/components/stepper/stepper.component.ts index 9815257ba6dd..24ce661d4c3b 100644 --- a/projects/kit/components/stepper/stepper.component.ts +++ b/projects/kit/components/stepper/stepper.component.ts @@ -24,6 +24,8 @@ import {TuiOrientation} from '@taiga-ui/core'; import {Observable} from 'rxjs'; import {delay} from 'rxjs/operators'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiStepComponent} from './step/step.component'; const ONLY_HORIZONTAL_SCROLL: ScrollIntoViewOptions = { diff --git a/projects/kit/components/tree/components/tree-item-content/tree-item-content.component.ts b/projects/kit/components/tree/components/tree-item-content/tree-item-content.component.ts index c6c59f5525cb..e710d1ea64d3 100644 --- a/projects/kit/components/tree/components/tree-item-content/tree-item-content.component.ts +++ b/projects/kit/components/tree/components/tree-item-content/tree-item-content.component.ts @@ -7,8 +7,11 @@ import { } from '@angular/core'; import {POLYMORPHEUS_CONTEXT} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TUI_DEFAULT_TREE_CONTROLLER} from '../../misc/tree.constants'; -import {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces'; +import type {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces'; +// eslint-disable-next-line import/no-cycle import {TUI_TREE_CONTROLLER} from '../../misc/tree.tokens'; @Component({ diff --git a/projects/kit/components/tree/components/tree-item/tree-item.component.ts b/projects/kit/components/tree/components/tree-item/tree-item.component.ts index 1848ac1c8db8..16cb998d4157 100644 --- a/projects/kit/components/tree/components/tree-item/tree-item.component.ts +++ b/projects/kit/components/tree/components/tree-item/tree-item.component.ts @@ -14,13 +14,16 @@ import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; import {Subject} from 'rxjs'; import {distinctUntilChanged, map, startWith} from 'rxjs/operators'; -import {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces'; +import type {TuiTreeController, TuiTreeItemContext} from '../../misc/tree.interfaces'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import { TUI_TREE_CONTENT, TUI_TREE_CONTROLLER, TUI_TREE_LEVEL, TUI_TREE_NODE, } from '../../misc/tree.tokens'; +// eslint-disable-next-line import/no-cycle import {TUI_TREE_ITEM_PROVIDERS} from './tree-item.providers'; @Component({ diff --git a/projects/kit/components/tree/components/tree-item/tree-item.providers.ts b/projects/kit/components/tree/components/tree-item/tree-item.providers.ts index 32fbd9a85ddf..49be24edbf15 100644 --- a/projects/kit/components/tree/components/tree-item/tree-item.providers.ts +++ b/projects/kit/components/tree/components/tree-item/tree-item.providers.ts @@ -1,6 +1,9 @@ import {forwardRef, Provider, SkipSelf} from '@angular/core'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TUI_TREE_LEVEL, TUI_TREE_NODE} from '../../misc/tree.tokens'; +// eslint-disable-next-line import/no-cycle import {TuiTreeItemComponent} from './tree-item.component'; export const TUI_TREE_ITEM_PROVIDERS: Provider[] = [ diff --git a/projects/kit/components/tree/misc/tree.constants.ts b/projects/kit/components/tree/misc/tree.constants.ts index 9b771fa62bad..70792d062f8d 100644 --- a/projects/kit/components/tree/misc/tree.constants.ts +++ b/projects/kit/components/tree/misc/tree.constants.ts @@ -1,8 +1,10 @@ import {ALWAYS_TRUE_HANDLER, EMPTY_FUNCTION} from '@taiga-ui/cdk'; import {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiTreeItemContentComponent} from '../components/tree-item-content/tree-item-content.component'; -import {TuiTreeController} from './tree.interfaces'; +import type {TuiTreeController} from './tree.interfaces'; export const TUI_TREE_ITEM_CONTENT = new PolymorpheusComponent( TuiTreeItemContentComponent, diff --git a/projects/kit/components/tree/misc/tree.interfaces.ts b/projects/kit/components/tree/misc/tree.interfaces.ts index ed0464d95e2a..9a7f1a7dbe64 100644 --- a/projects/kit/components/tree/misc/tree.interfaces.ts +++ b/projects/kit/components/tree/misc/tree.interfaces.ts @@ -2,6 +2,8 @@ import {TemplateRef} from '@angular/core'; import {TuiContextWithImplicit} from '@taiga-ui/cdk'; import {Observable} from 'rxjs'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TuiTreeItemComponent} from '../components/tree-item/tree-item.component'; export interface TuiTreeItemContext extends TuiContextWithImplicit { diff --git a/projects/kit/components/tree/misc/tree.tokens.ts b/projects/kit/components/tree/misc/tree.tokens.ts index 85ea9283f262..8da9be1733fc 100644 --- a/projects/kit/components/tree/misc/tree.tokens.ts +++ b/projects/kit/components/tree/misc/tree.tokens.ts @@ -1,8 +1,10 @@ import {InjectionToken} from '@angular/core'; import {PolymorpheusContent} from '@tinkoff/ng-polymorpheus'; +// TODO: find the best way for prevent cycle +// eslint-disable-next-line import/no-cycle import {TUI_DEFAULT_TREE_CONTROLLER, TUI_TREE_ITEM_CONTENT} from './tree.constants'; -import { +import type { TuiTreeAccessor, TuiTreeController, TuiTreeItemContext,