@taiga-ui/cdk 5.17.0 → 5.18.0-canary.a596451

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 (27) hide show
  1. package/classes/form-value-control.d.ts +33 -0
  2. package/classes/index.d.ts +1 -0
  3. package/constants/version.d.ts +1 -1
  4. package/constants/version.js +1 -1
  5. package/constants/version.js.map +1 -1
  6. package/directives/native-validator/native-validator.directive.d.ts +9 -4
  7. package/fesm2022/taiga-ui-cdk-constants.mjs +1 -1
  8. package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
  9. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs +14 -14
  10. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs.map +1 -1
  11. package/fesm2022/taiga-ui-cdk-directives-truncate.mjs +3 -3
  12. package/fesm2022/taiga-ui-cdk-directives-truncate.mjs.map +1 -1
  13. package/package.json +13 -13
  14. package/schematics/ng-add/constants/versions.d.ts +1 -1
  15. package/schematics/ng-update/interfaces/replacement-identifier.d.ts +10 -1
  16. package/schematics/ng-update/steps/replace-identifier.js +3 -1
  17. package/schematics/ng-update/steps/replace-identifier.js.map +1 -1
  18. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js +7 -1
  19. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js.map +1 -1
  20. package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js +526 -13
  21. package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js.map +1 -1
  22. package/schematics/ng-update/v5/steps/constants/inputs-to-remove.js +7 -0
  23. package/schematics/ng-update/v5/steps/constants/inputs-to-remove.js.map +1 -1
  24. package/schematics/ng-update/v5/steps/constants/migration-warnings.js +305 -10
  25. package/schematics/ng-update/v5/steps/constants/migration-warnings.js.map +1 -1
  26. package/schematics/ng-update/v5/steps/migrate-css-variables.js +14 -0
  27. package/schematics/ng-update/v5/steps/migrate-css-variables.js.map +1 -1
@@ -0,0 +1,33 @@
1
+ import { type InputSignal, type InputSignalWithTransform, type ModelSignal, type OutputRef } from '@angular/core';
2
+ /**
3
+ * @deprecated use import {ValidationError} from '@angular/forms/signals'
4
+ * Just temporary copy-pasted types until Taiga UI supports Angular <22
5
+ * https://github.com/angular/angular/blob/main/packages/forms/signals/src/api/rules/validation/validation_errors.ts#L368
6
+ * TODO: replace all usages `TuiSignalValidationError` by built-in Angular alternative
7
+ */
8
+ export interface TuiSignalValidationError {
9
+ readonly kind: string;
10
+ readonly message?: string;
11
+ }
12
+ interface FormUiControl {
13
+ readonly errors?: InputSignal<readonly TuiSignalValidationError[]> | InputSignalWithTransform<readonly TuiSignalValidationError[], unknown>;
14
+ readonly disabled?: InputSignal<boolean> | InputSignalWithTransform<boolean, unknown>;
15
+ readonly readonly?: InputSignal<boolean> | InputSignalWithTransform<boolean, unknown>;
16
+ readonly invalid?: InputSignal<boolean> | InputSignalWithTransform<boolean, unknown>;
17
+ readonly pending?: InputSignal<boolean> | InputSignalWithTransform<boolean, unknown>;
18
+ readonly touched?: InputSignal<boolean> | InputSignalWithTransform<boolean, unknown>;
19
+ readonly dirty?: InputSignal<boolean> | InputSignalWithTransform<boolean, unknown>;
20
+ readonly touch?: OutputRef<void>;
21
+ focus?(options?: FocusOptions): void;
22
+ reset?(): void;
23
+ }
24
+ /**
25
+ * @deprecated use import {FormValueControl} from '@angular/forms/signals'
26
+ * Just temporary copy-pasted types until Taiga UI supports Angular <22
27
+ * https://github.com/angular/angular/blob/main/packages/forms/signals/src/api/control.ts
28
+ * TODO: replace all usages `TuiFormValueControl` by built-in Angular alternative
29
+ */
30
+ export interface TuiFormValueControl<TValue> extends FormUiControl {
31
+ readonly value: ModelSignal<TValue>;
32
+ }
33
+ export {};
@@ -1,3 +1,4 @@
1
1
  export * from './control';
2
+ export type * from './form-value-control';
2
3
  export * from './validation-error';
3
4
  export * from './value-transformer';
@@ -1 +1 @@
1
- export declare const TUI_VERSION = "5.17.0";
1
+ export declare const TUI_VERSION = "5.18.0-canary.a596451";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TUI_VERSION = void 0;
4
- exports.TUI_VERSION = '5.17.0';
4
+ exports.TUI_VERSION = '5.18.0-canary.a596451';
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../projects/cdk/constants/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../projects/cdk/constants/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,uBAAuB,CAAC"}
@@ -1,14 +1,19 @@
1
- import { type AbstractControl, type Validator } from '@angular/forms';
1
+ import { type AbstractControl } from '@angular/forms';
2
2
  import * as i0 from "@angular/core";
3
- export declare class TuiNativeValidator implements Validator {
3
+ export declare class TuiNativeValidator {
4
4
  private readonly el;
5
5
  private readonly doc;
6
- private readonly control$;
6
+ private readonly ngControl;
7
7
  protected readonly sub: import("rxjs").Subscription;
8
+ /**
9
+ * There is no `InteropNgControl.events` for signal forms
10
+ * Their `InteropNgControl` state (getters `touched` / `invalid`) is backed by signals,
11
+ * so the effect tracks it instead
12
+ */
13
+ protected readonly ref: import("@angular/core").EffectRef;
8
14
  readonly tuiNativeValidator: import("@angular/core").InputSignal<string>;
9
15
  id: string;
10
16
  get control(): AbstractControl | null;
11
- validate(control: AbstractControl): null;
12
17
  protected handleValidation(): void;
13
18
  static ɵfac: i0.ɵɵFactoryDeclaration<TuiNativeValidator, never>;
14
19
  static ɵdir: i0.ɵɵDirectiveDeclaration<TuiNativeValidator, "[tuiNativeValidator]", never, { "tuiNativeValidator": { "alias": "tuiNativeValidator"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -187,7 +187,7 @@ const TUI_USED_ICONS = [
187
187
  '@tui.x',
188
188
  ];
189
189
 
190
- const TUI_VERSION = '5.17.0';
190
+ const TUI_VERSION = '5.18.0-canary.a596451';
191
191
 
192
192
  /**
193
193
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-constants.mjs","sources":["../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/handlers.ts","../../../projects/cdk/constants/matchers.ts","../../../projects/cdk/constants/regexp.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/used-icons.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["const rect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n} as const;\n\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\n\nexport const EMPTY_CLIENT_RECT: DOMRect = {\n ...rect,\n toJSON: () => rect,\n};\n","import {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * Handler that always returns `false`.\n */\nexport const TUI_FALSE_HANDLER = (): false => false;\n\n/**\n * Handler that always returns `true`.\n */\nexport const TUI_TRUE_HANDLER = (): true => true;\nexport const TUI_STRINGIFY: PolymorpheusContent = ({$implicit}) => String($implicit);\n","import {type TuiHandler, type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\n","export const svgNodeFilter = {\n acceptNode(node: Node): number {\n return 'ownerSVGElement' in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT;\n },\n};\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = '\\u00A0';\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = '\\u2013';\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = '\\u2014';\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = '\\u00AB';\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = '\\u00BB';\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = '\\u002D';\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = '\\u2212';\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = '\\u002B';\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = '\\u2022';\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = '\\u2026';\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200B';\n","/**\n * @description:\n * AUTOGENERATED\n *\n * Array of icons used in ./projects\n */\nexport const TUI_USED_ICONS = [\n '@img.amex',\n '@img.diners-club',\n '@img.discover',\n '@img.humo',\n '@img.jcb',\n '@img.maestro',\n '@img.mastercard',\n '@img.ru-pay',\n '@img.union-pay',\n '@img.uzcard',\n '@img.verve',\n '@tui.arrow-left',\n '@tui.arrow-right',\n '@tui.calendar',\n '@tui.check',\n '@tui.chevron-down',\n '@tui.chevron-left',\n '@tui.chevron-right',\n '@tui.chevron-up',\n '@tui.chevrons-up-down',\n '@tui.circle-alert',\n '@tui.circle-check',\n '@tui.circle-help',\n '@tui.circle-x',\n '@tui.clock',\n '@tui.code',\n '@tui.copy',\n '@tui.electron',\n '@tui.ellipsis',\n '@tui.expand',\n '@tui.eye',\n '@tui.eye-off',\n '@tui.file',\n '@tui.filter',\n '@tui.grip-vertical',\n '@tui.heart',\n '@tui.heart-filled',\n '@tui.info',\n '@tui.layout-grid',\n '@tui.link',\n '@tui.menu',\n '@tui.minimize',\n '@tui.minus',\n '@tui.mir',\n '@tui.plus',\n '@tui.rotate-ccw-square',\n '@tui.search',\n '@tui.shrink',\n '@tui.star',\n '@tui.trash',\n '@tui.visa',\n '@tui.x',\n] as const;\n","export const TUI_VERSION = '5.17.0';\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-cdk-constants.mjs","sources":["../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/handlers.ts","../../../projects/cdk/constants/matchers.ts","../../../projects/cdk/constants/regexp.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/used-icons.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["const rect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n} as const;\n\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\n\nexport const EMPTY_CLIENT_RECT: DOMRect = {\n ...rect,\n toJSON: () => rect,\n};\n","import {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * Handler that always returns `false`.\n */\nexport const TUI_FALSE_HANDLER = (): false => false;\n\n/**\n * Handler that always returns `true`.\n */\nexport const TUI_TRUE_HANDLER = (): true => true;\nexport const TUI_STRINGIFY: PolymorpheusContent = ({$implicit}) => String($implicit);\n","import {type TuiHandler, type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\n","export const svgNodeFilter = {\n acceptNode(node: Node): number {\n return 'ownerSVGElement' in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT;\n },\n};\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = '\\u00A0';\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = '\\u2013';\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = '\\u2014';\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = '\\u00AB';\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = '\\u00BB';\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = '\\u002D';\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = '\\u2212';\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = '\\u002B';\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = '\\u2022';\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = '\\u2026';\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200B';\n","/**\n * @description:\n * AUTOGENERATED\n *\n * Array of icons used in ./projects\n */\nexport const TUI_USED_ICONS = [\n '@img.amex',\n '@img.diners-club',\n '@img.discover',\n '@img.humo',\n '@img.jcb',\n '@img.maestro',\n '@img.mastercard',\n '@img.ru-pay',\n '@img.union-pay',\n '@img.uzcard',\n '@img.verve',\n '@tui.arrow-left',\n '@tui.arrow-right',\n '@tui.calendar',\n '@tui.check',\n '@tui.chevron-down',\n '@tui.chevron-left',\n '@tui.chevron-right',\n '@tui.chevron-up',\n '@tui.chevrons-up-down',\n '@tui.circle-alert',\n '@tui.circle-check',\n '@tui.circle-help',\n '@tui.circle-x',\n '@tui.clock',\n '@tui.code',\n '@tui.copy',\n '@tui.electron',\n '@tui.ellipsis',\n '@tui.expand',\n '@tui.eye',\n '@tui.eye-off',\n '@tui.file',\n '@tui.filter',\n '@tui.grip-vertical',\n '@tui.heart',\n '@tui.heart-filled',\n '@tui.info',\n '@tui.layout-grid',\n '@tui.link',\n '@tui.menu',\n '@tui.minimize',\n '@tui.minus',\n '@tui.mir',\n '@tui.plus',\n '@tui.rotate-ccw-square',\n '@tui.search',\n '@tui.shrink',\n '@tui.star',\n '@tui.trash',\n '@tui.visa',\n '@tui.x',\n] as const;\n","export const TUI_VERSION = '5.18.0-canary.a596451';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,29 +1,30 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, input, Directive } from '@angular/core';
4
- import { NG_VALIDATORS } from '@angular/forms';
3
+ import { inject, effect, input, Directive } from '@angular/core';
4
+ import { NgControl } from '@angular/forms';
5
5
  import { tuiZonefree, tuiTakeUntilDestroyed } from '@taiga-ui/cdk/observables';
6
- import { tuiProvide } from '@taiga-ui/cdk/utils/di';
7
6
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
8
- import { BehaviorSubject, switchMap, of, delay } from 'rxjs';
7
+ import { timer, switchMap, startWith, of, delay } from 'rxjs';
9
8
 
10
9
  class TuiNativeValidator {
11
10
  constructor() {
12
11
  this.el = tuiInjectElement();
13
12
  this.doc = inject(DOCUMENT);
14
- this.control$ = new BehaviorSubject(null);
15
- this.sub = this.control$
16
- .pipe(switchMap((control) => control?.events || of(null)), delay(0), tuiZonefree(), tuiTakeUntilDestroyed())
13
+ this.ngControl = inject(NgControl, { self: true, optional: true });
14
+ this.sub = timer(0) // https://github.com/angular/angular/issues/54418
15
+ .pipe(switchMap(() => this.control?.events?.pipe(startWith(null)) ?? of(null)), delay(0), tuiZonefree(), tuiTakeUntilDestroyed())
17
16
  .subscribe(() => this.handleValidation());
17
+ /**
18
+ * There is no `InteropNgControl.events` for signal forms
19
+ * Their `InteropNgControl` state (getters `touched` / `invalid`) is backed by signals,
20
+ * so the effect tracks it instead
21
+ */
22
+ this.ref = effect(() => this.handleValidation());
18
23
  this.tuiNativeValidator = input('Invalid');
19
24
  this.id = '';
20
25
  }
21
26
  get control() {
22
- return this.control$.value;
23
- }
24
- validate(control) {
25
- this.control$.next(control);
26
- return null;
27
+ return this.ngControl?.control ?? null;
27
28
  }
28
29
  handleValidation() {
29
30
  const invalid = !!this.control?.touched && this.control?.invalid;
@@ -37,13 +38,12 @@ class TuiNativeValidator {
37
38
  }
38
39
  }
39
40
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiNativeValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
40
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiNativeValidator, isStandalone: true, selector: "[tuiNativeValidator]", inputs: { tuiNativeValidator: { classPropertyName: "tuiNativeValidator", publicName: "tuiNativeValidator", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focusout": "handleValidation()" } }, providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)], ngImport: i0 }); }
41
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiNativeValidator, isStandalone: true, selector: "[tuiNativeValidator]", inputs: { tuiNativeValidator: { classPropertyName: "tuiNativeValidator", publicName: "tuiNativeValidator", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focusout": "handleValidation()" } }, ngImport: i0 }); }
41
42
  }
42
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiNativeValidator, decorators: [{
43
44
  type: Directive,
44
45
  args: [{
45
46
  selector: '[tuiNativeValidator]',
46
- providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],
47
47
  host: { '(focusout)': 'handleValidation()' },
48
48
  }]
49
49
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-native-validator.mjs","sources":["../../../projects/cdk/directives/native-validator/native-validator.directive.ts","../../../projects/cdk/directives/native-validator/taiga-ui-cdk-directives-native-validator.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {Directive, inject, input} from '@angular/core';\nimport {type AbstractControl, NG_VALIDATORS, type Validator} from '@angular/forms';\nimport {tuiTakeUntilDestroyed, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {BehaviorSubject, delay, of, switchMap} from 'rxjs';\n\n@Directive({\n selector: '[tuiNativeValidator]',\n providers: [tuiProvide(NG_VALIDATORS, TuiNativeValidator, true)],\n host: {'(focusout)': 'handleValidation()'},\n})\nexport class TuiNativeValidator implements Validator {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly doc = inject(DOCUMENT);\n private readonly control$ = new BehaviorSubject<AbstractControl | null>(null);\n\n protected readonly sub = this.control$\n .pipe(\n switchMap((control: any) => control?.events || of(null)),\n delay(0),\n tuiZonefree(),\n tuiTakeUntilDestroyed(),\n )\n .subscribe(() => this.handleValidation());\n\n public readonly tuiNativeValidator = input('Invalid');\n public id = '';\n\n public get control(): AbstractControl | null {\n return this.control$.value;\n }\n\n public validate(control: AbstractControl): null {\n this.control$.next(control);\n\n return null;\n }\n\n protected handleValidation(): void {\n const invalid = !!this.control?.touched && this.control?.invalid;\n\n // TODO: Replace with :has(:invalid) when supported\n this.el.closest('tui-textfield')?.classList.toggle('tui-invalid', invalid);\n this.el.setCustomValidity?.(invalid ? this.tuiNativeValidator() : '');\n this.el.setAttribute('aria-invalid', String(invalid));\n\n if (!this.id && invalid) {\n this.doc.dispatchEvent(new CustomEvent('tui-validator', {detail: this}));\n this.el.setAttribute('aria-describedby', this.id);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-native-validator.mjs","sources":["../../../projects/cdk/directives/native-validator/native-validator.directive.ts","../../../projects/cdk/directives/native-validator/taiga-ui-cdk-directives-native-validator.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {Directive, effect, inject, input} from '@angular/core';\nimport {type AbstractControl, NgControl} from '@angular/forms';\nimport {tuiTakeUntilDestroyed, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {delay, of, startWith, switchMap, timer} from 'rxjs';\n\n@Directive({\n selector: '[tuiNativeValidator]',\n host: {'(focusout)': 'handleValidation()'},\n})\nexport class TuiNativeValidator {\n private readonly el = tuiInjectElement<HTMLInputElement>();\n private readonly doc = inject(DOCUMENT);\n private readonly ngControl = inject(NgControl, {self: true, optional: true});\n\n protected readonly sub = timer(0) // https://github.com/angular/angular/issues/54418\n .pipe(\n switchMap(() => this.control?.events?.pipe(startWith(null)) ?? of(null)),\n delay(0),\n tuiZonefree(),\n tuiTakeUntilDestroyed(),\n )\n .subscribe(() => this.handleValidation());\n\n /**\n * There is no `InteropNgControl.events` for signal forms\n * Their `InteropNgControl` state (getters `touched` / `invalid`) is backed by signals,\n * so the effect tracks it instead\n */\n protected readonly ref = effect(() => this.handleValidation());\n\n public readonly tuiNativeValidator = input('Invalid');\n public id = '';\n\n public get control(): AbstractControl | null {\n return this.ngControl?.control ?? null;\n }\n\n protected handleValidation(): void {\n const invalid = !!this.control?.touched && this.control?.invalid;\n\n // TODO: Replace with :has(:invalid) when supported\n this.el.closest('tui-textfield')?.classList.toggle('tui-invalid', invalid);\n this.el.setCustomValidity?.(invalid ? this.tuiNativeValidator() : '');\n this.el.setAttribute('aria-invalid', String(invalid));\n\n if (!this.id && invalid) {\n this.doc.dispatchEvent(new CustomEvent('tui-validator', {detail: this}));\n this.el.setAttribute('aria-describedby', this.id);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAWa,kBAAkB,CAAA;AAJ/B,IAAA,WAAA,GAAA;QAKqB,IAAA,CAAA,EAAE,GAAG,gBAAgB,EAAoB;AACzC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;AACtB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AAEzD,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAC5B,aAAA,IAAI,CACD,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,EACxE,KAAK,CAAC,CAAC,CAAC,EACR,WAAW,EAAE,EACb,qBAAqB,EAAE;aAE1B,SAAS,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAE7C;;;;AAIG;QACgB,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAE9C,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC;QAC9C,IAAA,CAAA,EAAE,GAAG,EAAE;AAmBjB,IAAA;AAjBG,IAAA,IAAW,OAAO,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI;IAC1C;IAEU,gBAAgB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO;;AAGhE,QAAA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC;AAC1E,QAAA,IAAI,CAAC,EAAE,CAAC,iBAAiB,GAAG,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC;AACrE,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAErD,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE;AACrB,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,eAAe,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;YACxE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC;QACrD;IACJ;+GAxCS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE,EAAC,YAAY,EAAE,oBAAoB,EAAC;AAC7C,iBAAA;;;ACVD;;AAEG;;;;"}
@@ -106,11 +106,11 @@ function truncate(text, left, right) {
106
106
 
107
107
  class Styles {
108
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-truncate-5.17.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiTruncate]:where(*[data-tui-version=\"5.17.0\"]){display:-webkit-box;letter-spacing:-1rem;-webkit-text-fill-color:transparent;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}[tuiTruncate]:where(*[data-tui-version=\"5.17.0\"])[data-lines=\"1\"]:before{white-space:nowrap}[tuiTruncate]:where(*[data-tui-version=\"5.17.0\"]):before{content:attr(data-text);inline-size:100%;letter-spacing:normal;-webkit-text-fill-color:currentColor;white-space:normal;overflow-wrap:anywhere}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: Styles, isStandalone: true, selector: "ng-component", exportAs: ["tui-truncate-5.18.0-canary.a596451"], ngImport: i0, template: '', isInline: true, styles: ["[tuiTruncate]:where(*[data-tui-version=\"5.18.0-canary.a596451\"]){display:-webkit-box;letter-spacing:-1rem;-webkit-text-fill-color:transparent;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}[tuiTruncate]:where(*[data-tui-version=\"5.18.0-canary.a596451\"])[data-lines=\"1\"]:before{white-space:nowrap}[tuiTruncate]:where(*[data-tui-version=\"5.18.0-canary.a596451\"]):before{content:attr(data-text);inline-size:100%;letter-spacing:normal;-webkit-text-fill-color:currentColor;white-space:normal;overflow-wrap:anywhere}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
110
110
  }
111
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: Styles, decorators: [{
112
112
  type: Component,
113
- args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-truncate-${TUI_VERSION}`, styles: ["[tuiTruncate]:where(*[data-tui-version=\"5.17.0\"]){display:-webkit-box;letter-spacing:-1rem;-webkit-text-fill-color:transparent;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}[tuiTruncate]:where(*[data-tui-version=\"5.17.0\"])[data-lines=\"1\"]:before{white-space:nowrap}[tuiTruncate]:where(*[data-tui-version=\"5.17.0\"]):before{content:attr(data-text);inline-size:100%;letter-spacing:normal;-webkit-text-fill-color:currentColor;white-space:normal;overflow-wrap:anywhere}\n"] }]
113
+ args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-truncate-${TUI_VERSION}`, styles: ["[tuiTruncate]:where(*[data-tui-version=\"5.18.0-canary.a596451\"]){display:-webkit-box;letter-spacing:-1rem;-webkit-text-fill-color:transparent;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}[tuiTruncate]:where(*[data-tui-version=\"5.18.0-canary.a596451\"])[data-lines=\"1\"]:before{white-space:nowrap}[tuiTruncate]:where(*[data-tui-version=\"5.18.0-canary.a596451\"]):before{content:attr(data-text);inline-size:100%;letter-spacing:normal;-webkit-text-fill-color:currentColor;white-space:normal;overflow-wrap:anywhere}\n"] }]
114
114
  }] });
115
115
  class TuiTruncate {
116
116
  constructor() {
@@ -129,7 +129,7 @@ class TuiTruncate {
129
129
  return this.el.innerText.trim();
130
130
  }
131
131
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiTruncate, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
132
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiTruncate, isStandalone: true, selector: "[tuiTruncate]", inputs: { lines: { classPropertyName: "lines", publicName: "tuiTruncate", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.17.0", "tuiTruncate": "" }, properties: { "attr.data-lines": "lines()", "attr.data-text": "truncated()", "style.-webkit-line-clamp": "lines()" } }, providers: [
132
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiTruncate, isStandalone: true, selector: "[tuiTruncate]", inputs: { lines: { classPropertyName: "lines", publicName: "tuiTruncate", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-tui-version": "5.18.0-canary.a596451", "tuiTruncate": "" }, properties: { "attr.data-lines": "lines()", "attr.data-text": "truncated()", "style.-webkit-line-clamp": "lines()" } }, providers: [
133
133
  TuiTruncateService,
134
134
  WaResizeObserverService,
135
135
  WaMutationObserverService,
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-truncate.mjs","sources":["../../../projects/cdk/directives/truncate/truncate.service.ts","../../../projects/cdk/directives/truncate/truncate.directive.ts","../../../projects/cdk/directives/truncate/taiga-ui-cdk-directives-truncate.ts"],"sourcesContent":["import {DOCUMENT, isPlatformBrowser} from '@angular/common';\nimport {inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nconst ELLIPSIS = '\\u2026';\n\n@Injectable()\nexport class TuiTruncateService {\n private readonly el = tuiInjectElement();\n\n private readonly ctx = isPlatformBrowser(inject(PLATFORM_ID))\n ? inject(DOCUMENT).createElement('canvas').getContext('2d')\n : null;\n\n public truncate(text: string, lines: number): string {\n if (!this.ctx || !text || lines < 1) {\n return text;\n }\n\n const style = getComputedStyle(this.el);\n const fontFamily = style.fontFamily || 'sans-serif';\n const fontSize = style.fontSize || '14px';\n const fontWeight = style.fontWeight || '400';\n const paddingLeft = Number.parseFloat(style.paddingLeft) || 0;\n const paddingRight = Number.parseFloat(style.paddingRight) || 0;\n const availableWidth = this.el.clientWidth - paddingLeft - paddingRight;\n const safeWidth = Math.max(1, availableWidth - 4);\n\n this.ctx.font = `${fontWeight} ${fontSize} ${fontFamily}`;\n\n if (this.getLines(text, safeWidth).length <= lines) {\n return text;\n }\n\n let low = 1;\n let high = Math.max(1, text.length - ELLIPSIS.length);\n let best = truncate(text, 1, 0);\n\n while (low <= high) {\n const keepLength = Math.floor((low + high) / 2);\n const normalized = Math.max(1, keepLength);\n const left = Math.ceil(normalized / 2);\n const right = Math.floor(normalized / 2);\n const candidate = truncate(text, left, right);\n const candidateLines = this.getLines(candidate, safeWidth).length;\n\n if (candidateLines <= lines) {\n best = candidate;\n low = keepLength + 1;\n } else {\n high = keepLength - 1;\n }\n }\n\n return this.getLines(best, safeWidth).slice(0, lines).join(' ');\n }\n\n private getLines(text: string, maxWidth: number): string[] {\n if (!this.ctx || !text) {\n return [];\n }\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n const candidate = currentLine ? `${currentLine} ${word}` : word;\n\n if (this.ctx.measureText(candidate).width <= maxWidth) {\n currentLine = candidate;\n continue;\n }\n\n if (currentLine) {\n lines.push(currentLine);\n currentLine = '';\n }\n\n if (this.ctx.measureText(word).width <= maxWidth) {\n currentLine = word;\n continue;\n }\n\n let chunk = '';\n\n for (const char of word) {\n const nextChunk = `${chunk}${char}`;\n\n if (this.ctx.measureText(nextChunk).width <= maxWidth) {\n chunk = nextChunk;\n } else {\n if (chunk) {\n lines.push(chunk);\n }\n\n chunk = char;\n }\n }\n\n currentLine = chunk;\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n}\n\nfunction truncate(text: string, left: number, right: number): string {\n return `${text.slice(0, left)}${ELLIPSIS}${right > 0 ? text.slice(-right) : ''}`;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n WA_MUTATION_OBSERVER_INIT,\n WaMutationObserverService,\n} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {map} from 'rxjs';\n\nimport {TuiTruncateService} from './truncate.service';\n\n@Component({\n template: '',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import './truncate.styles.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: `tui-truncate-${TUI_VERSION}`,\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiTruncate]',\n providers: [\n TuiTruncateService,\n WaResizeObserverService,\n WaMutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n attributes: true,\n characterData: true,\n subtree: true,\n },\n },\n ],\n host: {\n 'data-tui-version': TUI_VERSION,\n tuiTruncate: '',\n '[attr.data-lines]': 'lines()',\n '[attr.data-text]': 'truncated()',\n '[style.-webkit-line-clamp]': 'lines()',\n },\n})\nexport class TuiTruncate {\n private readonly service = inject(TuiTruncateService);\n private readonly el = tuiInjectElement();\n\n private readonly width = toSignal(\n inject(WaResizeObserverService).pipe(map(([e]) => e?.contentRect.width ?? 0)),\n {initialValue: 0},\n );\n\n protected readonly text = toSignal(\n inject(WaMutationObserverService).pipe(map(() => this.innerText)),\n {initialValue: this.innerText},\n );\n\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly lines = input(1, {\n alias: 'tuiTruncate',\n transform: (value: number | string) => Math.max(Number(value) || 1, 1),\n });\n\n public readonly truncated = computed((_ = this.width()) =>\n this.service.truncate(this.text(), this.lines()),\n );\n\n private get innerText(): string {\n return this.el.innerText.trim();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-truncate.mjs","sources":["../../../projects/cdk/directives/truncate/truncate.service.ts","../../../projects/cdk/directives/truncate/truncate.directive.ts","../../../projects/cdk/directives/truncate/taiga-ui-cdk-directives-truncate.ts"],"sourcesContent":["import {DOCUMENT, isPlatformBrowser} from '@angular/common';\nimport {inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nconst ELLIPSIS = '\\u2026';\n\n@Injectable()\nexport class TuiTruncateService {\n private readonly el = tuiInjectElement();\n\n private readonly ctx = isPlatformBrowser(inject(PLATFORM_ID))\n ? inject(DOCUMENT).createElement('canvas').getContext('2d')\n : null;\n\n public truncate(text: string, lines: number): string {\n if (!this.ctx || !text || lines < 1) {\n return text;\n }\n\n const style = getComputedStyle(this.el);\n const fontFamily = style.fontFamily || 'sans-serif';\n const fontSize = style.fontSize || '14px';\n const fontWeight = style.fontWeight || '400';\n const paddingLeft = Number.parseFloat(style.paddingLeft) || 0;\n const paddingRight = Number.parseFloat(style.paddingRight) || 0;\n const availableWidth = this.el.clientWidth - paddingLeft - paddingRight;\n const safeWidth = Math.max(1, availableWidth - 4);\n\n this.ctx.font = `${fontWeight} ${fontSize} ${fontFamily}`;\n\n if (this.getLines(text, safeWidth).length <= lines) {\n return text;\n }\n\n let low = 1;\n let high = Math.max(1, text.length - ELLIPSIS.length);\n let best = truncate(text, 1, 0);\n\n while (low <= high) {\n const keepLength = Math.floor((low + high) / 2);\n const normalized = Math.max(1, keepLength);\n const left = Math.ceil(normalized / 2);\n const right = Math.floor(normalized / 2);\n const candidate = truncate(text, left, right);\n const candidateLines = this.getLines(candidate, safeWidth).length;\n\n if (candidateLines <= lines) {\n best = candidate;\n low = keepLength + 1;\n } else {\n high = keepLength - 1;\n }\n }\n\n return this.getLines(best, safeWidth).slice(0, lines).join(' ');\n }\n\n private getLines(text: string, maxWidth: number): string[] {\n if (!this.ctx || !text) {\n return [];\n }\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n const candidate = currentLine ? `${currentLine} ${word}` : word;\n\n if (this.ctx.measureText(candidate).width <= maxWidth) {\n currentLine = candidate;\n continue;\n }\n\n if (currentLine) {\n lines.push(currentLine);\n currentLine = '';\n }\n\n if (this.ctx.measureText(word).width <= maxWidth) {\n currentLine = word;\n continue;\n }\n\n let chunk = '';\n\n for (const char of word) {\n const nextChunk = `${chunk}${char}`;\n\n if (this.ctx.measureText(nextChunk).width <= maxWidth) {\n chunk = nextChunk;\n } else {\n if (chunk) {\n lines.push(chunk);\n }\n\n chunk = char;\n }\n }\n\n currentLine = chunk;\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n}\n\nfunction truncate(text: string, left: number, right: number): string {\n return `${text.slice(0, left)}${ELLIPSIS}${right > 0 ? text.slice(-right) : ''}`;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {\n WA_MUTATION_OBSERVER_INIT,\n WaMutationObserverService,\n} from '@ng-web-apis/mutation-observer';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {map} from 'rxjs';\n\nimport {TuiTruncateService} from './truncate.service';\n\n@Component({\n template: '',\n styles: `\n [data-tui-version='${TUI_VERSION}'] {\n @import './truncate.styles.less';\n }\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: `tui-truncate-${TUI_VERSION}`,\n})\nclass Styles {}\n\n@Directive({\n selector: '[tuiTruncate]',\n providers: [\n TuiTruncateService,\n WaResizeObserverService,\n WaMutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n attributes: true,\n characterData: true,\n subtree: true,\n },\n },\n ],\n host: {\n 'data-tui-version': TUI_VERSION,\n tuiTruncate: '',\n '[attr.data-lines]': 'lines()',\n '[attr.data-text]': 'truncated()',\n '[style.-webkit-line-clamp]': 'lines()',\n },\n})\nexport class TuiTruncate {\n private readonly service = inject(TuiTruncateService);\n private readonly el = tuiInjectElement();\n\n private readonly width = toSignal(\n inject(WaResizeObserverService).pipe(map(([e]) => e?.contentRect.width ?? 0)),\n {initialValue: 0},\n );\n\n protected readonly text = toSignal(\n inject(WaMutationObserverService).pipe(map(() => this.innerText)),\n {initialValue: this.innerText},\n );\n\n protected readonly nothing = tuiWithStyles(Styles);\n\n public readonly lines = input(1, {\n alias: 'tuiTruncate',\n transform: (value: number | string) => Math.max(Number(value) || 1, 1),\n });\n\n public readonly truncated = computed((_ = this.width()) =>\n this.service.truncate(this.text(), this.lines()),\n );\n\n private get innerText(): string {\n return this.el.innerText.trim();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAIA,MAAM,QAAQ,GAAG,QAAQ;MAGZ,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;QAEqB,IAAA,CAAA,EAAE,GAAG,gBAAgB,EAAE;AAEvB,QAAA,IAAA,CAAA,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC;AACxD,cAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI;cACxD,IAAI;AAiGb,IAAA;IA/FU,QAAQ,CAAC,IAAY,EAAE,KAAa,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;AACjC,YAAA,OAAO,IAAI;QACf;QAEA,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;AACvC,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,YAAY;AACnD,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM;AACzC,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK;AAC5C,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;AAC7D,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,WAAW,GAAG,YAAY;AACvE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC;AAEjD,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE;AAEzD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,IAAI,KAAK,EAAE;AAChD,YAAA,OAAO,IAAI;QACf;QAEA,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QACrD,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAE/B,QAAA,OAAO,GAAG,IAAI,IAAI,EAAE;AAChB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AAC7C,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,MAAM;AAEjE,YAAA,IAAI,cAAc,IAAI,KAAK,EAAE;gBACzB,IAAI,GAAG,SAAS;AAChB,gBAAA,GAAG,GAAG,UAAU,GAAG,CAAC;YACxB;iBAAO;AACH,gBAAA,IAAI,GAAG,UAAU,GAAG,CAAC;YACzB;QACJ;QAEA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACnE;IAEQ,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAA;QAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;AACpB,YAAA,OAAO,EAAE;QACb;QAEA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B,MAAM,KAAK,GAAa,EAAE;QAC1B,IAAI,WAAW,GAAG,EAAE;AAEpB,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,MAAM,SAAS,GAAG,WAAW,GAAG,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,GAAG,IAAI;AAE/D,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,QAAQ,EAAE;gBACnD,WAAW,GAAG,SAAS;gBACvB;YACJ;YAEA,IAAI,WAAW,EAAE;AACb,gBAAA,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvB,WAAW,GAAG,EAAE;YACpB;AAEA,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,QAAQ,EAAE;gBAC9C,WAAW,GAAG,IAAI;gBAClB;YACJ;YAEA,IAAI,KAAK,GAAG,EAAE;AAEd,YAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACrB,gBAAA,MAAM,SAAS,GAAG,CAAA,EAAG,KAAK,CAAA,EAAG,IAAI,EAAE;AAEnC,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,QAAQ,EAAE;oBACnD,KAAK,GAAG,SAAS;gBACrB;qBAAO;oBACH,IAAI,KAAK,EAAE;AACP,wBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;oBACrB;oBAEA,KAAK,GAAG,IAAI;gBAChB;YACJ;YAEA,WAAW,GAAG,KAAK;QACvB;QAEA,IAAI,WAAW,EAAE;AACb,YAAA,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QAC3B;AAEA,QAAA,OAAO,KAAK;IAChB;+GArGS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;AAyGD,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,KAAa,EAAA;AACvD,IAAA,OAAO,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA,EAAG,QAAQ,CAAA,EAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE;AACpF;;AC3FA,MAWM,MAAM,CAAA;+GAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAM,0HAVE,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4hBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAUV,MAAM,EAAA,UAAA,EAAA,CAAA;kBAXX,SAAS;+BACI,EAAE,EAAA,aAAA,EAMG,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,CAAA,aAAA,EAAgB,WAAW,CAAA,CAAE,EAAA,MAAA,EAAA,CAAA,4hBAAA,CAAA,EAAA;;MA2B9B,WAAW,CAAA;AAvBxB,IAAA,WAAA,GAAA;AAwBqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACpC,IAAA,CAAA,EAAE,GAAG,gBAAgB,EAAE;AAEvB,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAC7B,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAC7E,EAAC,YAAY,EAAE,CAAC,EAAC,CACpB;AAEkB,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAC9B,MAAM,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,EACjE,EAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAC,CACjC;AAEkB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC;AAElC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE;AAC7B,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,SAAS,EAAE,CAAC,KAAsB,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzE,SAAA,CAAC;AAEc,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,KAClD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CACnD;AAKJ,IAAA;AAHG,IAAA,IAAY,SAAS,GAAA;QACjB,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE;IACnC;+GA3BS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EArBT;YACP,kBAAkB;YAClB,uBAAuB;YACvB,yBAAyB;AACzB,YAAA;AACI,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,QAAQ,EAAE;AACN,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,aAAa,EAAE,IAAI;AACnB,oBAAA,OAAO,EAAE,IAAI;AAChB,iBAAA;AACJ,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FASQ,WAAW,EAAA,UAAA,EAAA,CAAA;kBAvBvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE;wBACP,kBAAkB;wBAClB,uBAAuB;wBACvB,yBAAyB;AACzB,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,QAAQ,EAAE;AACN,gCAAA,UAAU,EAAE,IAAI;AAChB,gCAAA,aAAa,EAAE,IAAI;AACnB,gCAAA,OAAO,EAAE,IAAI;AAChB,6BAAA;AACJ,yBAAA;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,kBAAkB,EAAE,WAAW;AAC/B,wBAAA,WAAW,EAAE,EAAE;AACf,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,4BAA4B,EAAE,SAAS;AAC1C,qBAAA;AACJ,iBAAA;;;ACzDD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/cdk",
3
- "version": "5.17.0",
3
+ "version": "5.18.0-canary.a596451",
4
4
  "description": "Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance",
5
5
  "keywords": [
6
6
  "angular",
@@ -61,6 +61,10 @@
61
61
  "types": "./observables/index.d.ts",
62
62
  "default": "./fesm2022/taiga-ui-cdk-observables.mjs"
63
63
  },
64
+ "./portals": {
65
+ "types": "./portals/index.d.ts",
66
+ "default": "./fesm2022/taiga-ui-cdk-portals.mjs"
67
+ },
64
68
  "./pipes": {
65
69
  "types": "./pipes/index.d.ts",
66
70
  "default": "./fesm2022/taiga-ui-cdk-pipes.mjs"
@@ -69,10 +73,6 @@
69
73
  "types": "./tokens/index.d.ts",
70
74
  "default": "./fesm2022/taiga-ui-cdk-tokens.mjs"
71
75
  },
72
- "./portals": {
73
- "types": "./portals/index.d.ts",
74
- "default": "./fesm2022/taiga-ui-cdk-portals.mjs"
75
- },
76
76
  "./types": {
77
77
  "types": "./types/index.d.ts",
78
78
  "default": "./fesm2022/taiga-ui-cdk-types.mjs"
@@ -125,14 +125,14 @@
125
125
  "types": "./directives/id/index.d.ts",
126
126
  "default": "./fesm2022/taiga-ui-cdk-directives-id.mjs"
127
127
  },
128
- "./directives/media": {
129
- "types": "./directives/media/index.d.ts",
130
- "default": "./fesm2022/taiga-ui-cdk-directives-media.mjs"
131
- },
132
128
  "./directives/item": {
133
129
  "types": "./directives/item/index.d.ts",
134
130
  "default": "./fesm2022/taiga-ui-cdk-directives-item.mjs"
135
131
  },
132
+ "./directives/media": {
133
+ "types": "./directives/media/index.d.ts",
134
+ "default": "./fesm2022/taiga-ui-cdk-directives-media.mjs"
135
+ },
136
136
  "./directives/native-validator": {
137
137
  "types": "./directives/native-validator/index.d.ts",
138
138
  "default": "./fesm2022/taiga-ui-cdk-directives-native-validator.mjs"
@@ -157,6 +157,10 @@
157
157
  "types": "./directives/swipe/index.d.ts",
158
158
  "default": "./fesm2022/taiga-ui-cdk-directives-swipe.mjs"
159
159
  },
160
+ "./directives/transitioned": {
161
+ "types": "./directives/transitioned/index.d.ts",
162
+ "default": "./fesm2022/taiga-ui-cdk-directives-transitioned.mjs"
163
+ },
160
164
  "./directives/truncate": {
161
165
  "types": "./directives/truncate/index.d.ts",
162
166
  "default": "./fesm2022/taiga-ui-cdk-directives-truncate.mjs"
@@ -165,10 +169,6 @@
165
169
  "types": "./directives/validator/index.d.ts",
166
170
  "default": "./fesm2022/taiga-ui-cdk-directives-validator.mjs"
167
171
  },
168
- "./directives/transitioned": {
169
- "types": "./directives/transitioned/index.d.ts",
170
- "default": "./fesm2022/taiga-ui-cdk-directives-transitioned.mjs"
171
- },
172
172
  "./directives/value-changes": {
173
173
  "types": "./directives/value-changes/index.d.ts",
174
174
  "default": "./fesm2022/taiga-ui-cdk-directives-value-changes.mjs"
@@ -1 +1 @@
1
- export declare const TAIGA_VERSION = "^5.17.0";
1
+ export declare const TAIGA_VERSION = "^5.18.0-canary.a596451";
@@ -11,7 +11,16 @@ export interface ReplacementIdentifier {
11
11
  readonly callExpression?: boolean;
12
12
  };
13
13
  }
14
+ interface ReplacementIdentifierMultiTarget extends Omit<ReplacementIdentifier['to'], 'moduleSpecifier'> {
15
+ /**
16
+ * Module to import the replacement from. Omit for a literal replacement
17
+ * (e.g. `[]`) — usages are rewritten and the old import is dropped without
18
+ * adding a new one.
19
+ */
20
+ readonly moduleSpecifier?: string;
21
+ }
14
22
  export interface ReplacementIdentifierMulti {
15
23
  readonly from: Array<ReplacementIdentifier['from']> | ReplacementIdentifier['from'];
16
- readonly to: Array<ReplacementIdentifier['to']> | ReplacementIdentifier['to'];
24
+ readonly to: ReplacementIdentifierMultiTarget | ReplacementIdentifierMultiTarget[];
17
25
  }
26
+ export {};
@@ -46,7 +46,9 @@ function replaceIdentifier({ from, to }) {
46
46
  }
47
47
  function addImports(identifier, filePath) {
48
48
  toArray(identifier).forEach(({ name, namedImport, moduleSpecifier }) => {
49
- (0, add_unique_import_1.addUniqueImport)(filePath, namedImport || name, moduleSpecifier);
49
+ if (moduleSpecifier) {
50
+ (0, add_unique_import_1.addUniqueImport)(filePath, namedImport || name, moduleSpecifier);
51
+ }
50
52
  });
51
53
  }
52
54
  function getReplacementText(to, inModule) {
@@ -1 +1 @@
1
- {"version":3,"file":"replace-identifier.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/ng-update/steps/replace-identifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replace-identifier.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/ng-update/steps/replace-identifier.ts"],"names":[],"mappings":"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"}
@@ -56,9 +56,15 @@ exports.ATTRS_TO_REPLACE = [
56
56
  to: { attrName: '*tuiPopup' },
57
57
  },
58
58
  {
59
- from: { attrName: 'tuiTextfield', withTagNames: ['*'] },
59
+ from: { attrName: 'tuiTextfield', withTagNames: ['input'] },
60
60
  to: { attrName: 'tuiInput' },
61
61
  },
62
+ // `select[tuiTextfield]` was the native select; its v5 successor is the native
63
+ // `select[tuiSelect]` (TuiNativeSelect), not `tuiInput` (there is no select[tuiInput]).
64
+ {
65
+ from: { attrName: 'tuiTextfield', withTagNames: ['select'] },
66
+ to: { attrName: 'tuiSelect' },
67
+ },
62
68
  {
63
69
  from: { attrName: 'tuiDropdownOpen', withTagNames: ['*'] },
64
70
  to: { attrName: 'tuiDropdownAuto' },
@@ -1 +1 @@
1
- {"version":3,"file":"attrs-to-replace.js","sourceRoot":"","sources":["../../../../../../../projects/cdk/schematics/ng-update/v5/steps/constants/attrs-to-replace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attrs-to-replace.js","sourceRoot":"","sources":["../../../../../../../projects/cdk/schematics/ng-update/v5/steps/constants/attrs-to-replace.ts"],"names":[],"mappings":"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"}