@taiga-ui/cdk 5.30.0 → 5.31.0-canary.e5327e7

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.
@@ -1 +1 @@
1
- export declare const TUI_VERSION = "5.30.0";
1
+ export declare const TUI_VERSION = "5.31.0-canary.e5327e7";
@@ -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.30.0';
4
+ exports.TUI_VERSION = '5.31.0-canary.e5327e7';
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"}
@@ -187,7 +187,7 @@ const TUI_USED_ICONS = [
187
187
  '@tui.x',
188
188
  ];
189
189
 
190
- const TUI_VERSION = '5.30.0';
190
+ const TUI_VERSION = '5.31.0-canary.e5327e7';
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.trim().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.30.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.trim().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.31.0-canary.e5327e7';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -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.30.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiTruncate]:where(*[data-tui-version=\"5.30.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.30.0\"])[data-lines=\"1\"]:before{white-space:nowrap}[tuiTruncate]:where(*[data-tui-version=\"5.30.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.31.0-canary.e5327e7"], ngImport: i0, template: '', isInline: true, styles: ["[tuiTruncate]:where(*[data-tui-version=\"5.31.0-canary.e5327e7\"]){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.31.0-canary.e5327e7\"])[data-lines=\"1\"]:before{white-space:nowrap}[tuiTruncate]:where(*[data-tui-version=\"5.31.0-canary.e5327e7\"]):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.30.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.30.0\"])[data-lines=\"1\"]:before{white-space:nowrap}[tuiTruncate]:where(*[data-tui-version=\"5.30.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.31.0-canary.e5327e7\"]){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.31.0-canary.e5327e7\"])[data-lines=\"1\"]:before{white-space:nowrap}[tuiTruncate]:where(*[data-tui-version=\"5.31.0-canary.e5327e7\"]):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.30.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.31.0-canary.e5327e7", "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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/cdk",
3
- "version": "5.30.0",
3
+ "version": "5.31.0-canary.e5327e7",
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",
@@ -230,13 +230,13 @@
230
230
  "@angular/common": ">=19.0.0",
231
231
  "@angular/core": ">=19.0.0",
232
232
  "@angular/forms": ">=19.0.0",
233
- "@ng-web-apis/common": "^5.4.0",
234
- "@ng-web-apis/mutation-observer": "^5.4.0",
235
- "@ng-web-apis/platform": "^5.4.0",
236
- "@ng-web-apis/resize-observer": "^5.4.0",
237
- "@ng-web-apis/screen-orientation": "^5.4.0",
233
+ "@ng-web-apis/common": "^5.4.1",
234
+ "@ng-web-apis/mutation-observer": "^5.4.1",
235
+ "@ng-web-apis/platform": "^5.4.1",
236
+ "@ng-web-apis/resize-observer": "^5.4.1",
237
+ "@ng-web-apis/screen-orientation": "^5.4.1",
238
238
  "@taiga-ui/event-plugins": "^5.1.0",
239
- "@taiga-ui/font-watcher": "~0.6.0",
239
+ "@taiga-ui/font-watcher": "~0.7.0",
240
240
  "@taiga-ui/polymorpheus": "^5.0.1",
241
241
  "rxjs": ">=7.0.0"
242
242
  },
@@ -244,7 +244,7 @@
244
244
  "@angular-devkit/core": ">=19.0.0",
245
245
  "@angular-devkit/schematics": ">=19.0.0",
246
246
  "@schematics/angular": ">=19.0.0",
247
- "ng-morph": "^5.0.1",
247
+ "ng-morph": "^5.0.2",
248
248
  "parse5": "^7.3.0"
249
249
  },
250
250
  "ng-update": {
@@ -1 +1 @@
1
- export declare const TAIGA_VERSION = "^5.30.0";
1
+ export declare const TAIGA_VERSION = "^5.31.0-canary.e5327e7";
@@ -32,6 +32,7 @@ const migrate_editor_providers_1 = require("./steps/migrate-editor-providers");
32
32
  const migrate_filter_by_input_1 = require("./steps/migrate-filter-by-input");
33
33
  const migrate_hint_directive_binding_1 = require("./steps/migrate-hint-directive-binding");
34
34
  const migrate_i18n_language_signal_1 = require("./steps/migrate-i18n-language-signal");
35
+ const migrate_i18n_signal_tokens_1 = require("./steps/migrate-i18n-signal-tokens");
35
36
  const migrate_input_tag_component_1 = require("./steps/migrate-input-tag-component");
36
37
  const migrate_packages_1 = require("./steps/migrate-packages");
37
38
  const migrate_portals_1 = require("./steps/migrate-portals");
@@ -135,6 +136,10 @@ function main(options, timings) {
135
136
  name: 'migrateI18nLanguageSignal',
136
137
  step: () => (0, migrate_i18n_language_signal_1.migrateI18nLanguageSignal)(tree, options),
137
138
  },
139
+ {
140
+ name: 'migrateI18nSignalTokens',
141
+ step: () => (0, migrate_i18n_signal_tokens_1.migrateI18nSignalTokens)(tree, options),
142
+ },
138
143
  {
139
144
  name: 'migrateEditorProviders',
140
145
  step: () => (0, migrate_editor_providers_1.migrateEditorProviders)(tree, options),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/ng-update/v5/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/ng-update/v5/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type Tree } from '@angular-devkit/schematics';
2
+ import { type TuiSchema } from '../../../ng-add/schema';
3
+ export declare function migrateI18nSignalTokens(_tree: Tree, options: TuiSchema): void;
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateI18nSignalTokens = migrateI18nSignalTokens;
4
+ const ng_morph_1 = require("ng-morph");
5
+ const add_unique_import_1 = require("../../../utils/add-unique-import");
6
+ const colored_log_1 = require("../../../utils/colored-log");
7
+ const get_named_import_references_1 = require("../../../utils/get-named-import-references");
8
+ const insert_todo_1 = require("../../../utils/insert-todo");
9
+ const ANGULAR_CORE = '@angular/core';
10
+ const RXJS_INTEROP = '@angular/core/rxjs-interop';
11
+ const SIGNAL = 'signal';
12
+ const COMPUTED = 'computed';
13
+ const TO_SIGNAL = 'toSignal';
14
+ const SIGNAL_FACTORIES = [SIGNAL, COMPUTED, TO_SIGNAL];
15
+ const MAX_REFERENCE_DEPTH = 5;
16
+ const RXJS = 'rxjs';
17
+ const RXJS_OF = 'of';
18
+ const RXJS_PIPE = 'pipe';
19
+ const TAIGA_KIT = '@taiga-ui/kit';
20
+ /**
21
+ * Kit i18n tokens built via `tuiExtractI18n`. Their type changed from
22
+ * `Observable<T>` to `Signal<T>` in v5 (the factory switched from
23
+ * `inject(TUI_LANGUAGE).pipe(map(...))` to `computed(...)`), so any
24
+ * `{provide, useValue: of(...)}` provider no longer type-checks.
25
+ */
26
+ const KIT_I18N_TOKENS = [
27
+ 'TUI_CONFIRM_WORDS',
28
+ 'TUI_CANCEL_WORD',
29
+ 'TUI_DONE_WORD',
30
+ 'TUI_MORE_WORD',
31
+ 'TUI_HIDE_TEXT',
32
+ 'TUI_SHOW_ALL_TEXT',
33
+ 'TUI_OTHER_DATE_TEXT',
34
+ 'TUI_CHOOSE_DAY_OR_RANGE_TEXTS',
35
+ 'TUI_FROM_TO_TEXTS',
36
+ 'TUI_PLUS_MINUS_TEXTS',
37
+ 'TUI_TIME_TEXTS',
38
+ 'TUI_DATE_TEXTS',
39
+ 'TUI_DIGITAL_INFORMATION_UNITS',
40
+ 'TUI_COPY_TEXTS',
41
+ 'TUI_PASSWORD_TEXTS',
42
+ 'TUI_CALENDAR_MONTHS',
43
+ 'TUI_FILE_TEXTS',
44
+ 'TUI_PAGINATION_TEXTS',
45
+ 'TUI_INPUT_FILE_TEXTS',
46
+ 'TUI_MULTI_SELECT_TEXTS',
47
+ 'TUI_COUNTRIES',
48
+ 'TUI_PREVIEW_TEXTS',
49
+ 'TUI_PREVIEW_ZOOM_TEXTS',
50
+ 'TUI_INTERNATIONAL_SEARCH',
51
+ 'TUI_DAY_RANGE_PERIODS',
52
+ ];
53
+ const TODO_MESSAGE = 'i18n token is a Signal in v5, not an Observable. Provide the value via signal(...), or convert an existing stream with toSignal(...).';
54
+ function migrateI18nSignalTokens(_tree, options) {
55
+ if (!options['skip-logs']) {
56
+ (0, colored_log_1.infoLog)('Migrating kit i18n token providers to signal-based values...');
57
+ }
58
+ for (const tokenName of KIT_I18N_TOKENS) {
59
+ for (const ref of (0, get_named_import_references_1.getNamedImportReferences)(tokenName, TAIGA_KIT)) {
60
+ if (ref.wasForgotten()) {
61
+ continue;
62
+ }
63
+ const parent = ref.getParent();
64
+ if (!parent ||
65
+ ng_morph_1.Node.isImportSpecifier(parent) ||
66
+ !ng_morph_1.Node.isPropertyAssignment(parent) ||
67
+ parent.getName() !== 'provide') {
68
+ continue;
69
+ }
70
+ const objectLiteral = parent.getParent();
71
+ if (objectLiteral && ng_morph_1.Node.isObjectLiteralExpression(objectLiteral)) {
72
+ migrateProvider(objectLiteral, parent);
73
+ }
74
+ }
75
+ }
76
+ (0, ng_morph_1.saveActiveProject)();
77
+ }
78
+ function migrateProvider(objectLiteral, provideProp) {
79
+ const useValueProp = objectLiteral.getProperty('useValue');
80
+ if (useValueProp && ng_morph_1.Node.isPropertyAssignment(useValueProp)) {
81
+ migrateUseValue(useValueProp, provideProp);
82
+ return;
83
+ }
84
+ const useFactoryProp = objectLiteral.getProperty('useFactory');
85
+ if (useFactoryProp && ng_morph_1.Node.isPropertyAssignment(useFactoryProp)) {
86
+ migrateUseFactory(useFactoryProp, provideProp);
87
+ return;
88
+ }
89
+ insertTodoOnce(provideProp);
90
+ }
91
+ function migrateUseValue(useValueProp, provideProp) {
92
+ var _a, _b;
93
+ const initializer = useValueProp.getInitializer();
94
+ if (!initializer) {
95
+ insertTodoOnce(provideProp);
96
+ return;
97
+ }
98
+ if (ng_morph_1.Node.isCallExpression(initializer) &&
99
+ initializer.getExpression().getText() === RXJS_OF &&
100
+ initializer.getArguments().length === 1) {
101
+ wrapWithSignal(useValueProp, (_b = (_a = initializer.getArguments()[0]) === null || _a === void 0 ? void 0 : _a.getText()) !== null && _b !== void 0 ? _b : '');
102
+ return;
103
+ }
104
+ switch (classifyValue(initializer)) {
105
+ case 'plain':
106
+ wrapWithSignal(useValueProp, initializer.getText());
107
+ break;
108
+ case 'signal':
109
+ break;
110
+ // `toSignal()` needs an injection context, which a static `useValue` is not.
111
+ case 'stream':
112
+ promoteToFactory(useValueProp, initializer.getText());
113
+ break;
114
+ case 'unknown':
115
+ insertTodoOnce(provideProp);
116
+ break;
117
+ }
118
+ }
119
+ function migrateUseFactory(useFactoryProp, provideProp) {
120
+ const initializer = useFactoryProp.getInitializer();
121
+ if (!initializer || !ng_morph_1.Node.isArrowFunction(initializer)) {
122
+ insertTodoOnce(provideProp);
123
+ return;
124
+ }
125
+ const body = initializer.getBody();
126
+ if (ng_morph_1.Node.isBlock(body)) {
127
+ migrateFactoryBlock(useFactoryProp, provideProp);
128
+ return;
129
+ }
130
+ const kind = classifyValue(body);
131
+ if (kind === 'signal') {
132
+ return;
133
+ }
134
+ if (kind === 'unknown') {
135
+ insertTodoOnce(provideProp);
136
+ return;
137
+ }
138
+ const params = initializer
139
+ .getParameters()
140
+ .map((parameter) => parameter.getText())
141
+ .join(', ');
142
+ useFactoryProp.setInitializer(`(${params}) => ${asSignalText(body, kind)}`);
143
+ addSignalImport(useFactoryProp, kind);
144
+ }
145
+ // Factory runs inside DI, so returned streams are wrapped; a block with nothing to return stays a TODO.
146
+ function migrateFactoryBlock(useFactoryProp, provideProp) {
147
+ // Replacing back to front keeps the earlier nodes valid.
148
+ for (const expression of getFactoryReturnExpressions(useFactoryProp).reverse()) {
149
+ const kind = classifyValue(expression);
150
+ if (kind === 'plain' || kind === 'stream') {
151
+ expression.replaceWithText(asSignalText(expression, kind));
152
+ addSignalImport(useFactoryProp, kind);
153
+ }
154
+ }
155
+ const returns = getFactoryReturnExpressions(useFactoryProp);
156
+ // Inserting a TODO re-creates the provider node, so it has to go last.
157
+ if (returns.length === 0 ||
158
+ returns.some((expression) => classifyValue(expression) === 'unknown')) {
159
+ insertTodoOnce(provideProp);
160
+ }
161
+ }
162
+ // Only returns owned by the factory arrow itself — returns inside nested functions/classes are their own scope.
163
+ function getFactoryReturnExpressions(useFactoryProp) {
164
+ const initializer = useFactoryProp.getInitializer();
165
+ if (!initializer || !ng_morph_1.Node.isArrowFunction(initializer)) {
166
+ return [];
167
+ }
168
+ const body = initializer.getBody();
169
+ if (!ng_morph_1.Node.isBlock(body)) {
170
+ return [];
171
+ }
172
+ const expressions = [];
173
+ body.forEachDescendant((node, traversal) => {
174
+ if (isNestedFunctionScope(node)) {
175
+ traversal.skip();
176
+ return;
177
+ }
178
+ if (ng_morph_1.Node.isReturnStatement(node)) {
179
+ const expression = node.getExpression();
180
+ if (expression) {
181
+ expressions.push(expression);
182
+ }
183
+ }
184
+ });
185
+ return expressions;
186
+ }
187
+ function isNestedFunctionScope(node) {
188
+ return (ng_morph_1.Node.isFunctionDeclaration(node) ||
189
+ ng_morph_1.Node.isFunctionExpression(node) ||
190
+ ng_morph_1.Node.isArrowFunction(node) ||
191
+ ng_morph_1.Node.isMethodDeclaration(node) ||
192
+ ng_morph_1.Node.isConstructorDeclaration(node) ||
193
+ ng_morph_1.Node.isGetAccessorDeclaration(node) ||
194
+ ng_morph_1.Node.isSetAccessorDeclaration(node) ||
195
+ ng_morph_1.Node.isClassDeclaration(node) ||
196
+ ng_morph_1.Node.isClassExpression(node));
197
+ }
198
+ // Schematics run without library typings, so values are classified by following their declarations.
199
+ function classifyValue(node, depth = 0) {
200
+ const expression = unwrapExpression(node);
201
+ if (isPlainLiteral(expression)) {
202
+ return 'plain';
203
+ }
204
+ if (ng_morph_1.Node.isCallExpression(expression)) {
205
+ return classifyCall(expression.getExpression());
206
+ }
207
+ if (!ng_morph_1.Node.isIdentifier(expression) && !ng_morph_1.Node.isPropertyAccessExpression(expression)) {
208
+ return 'stream';
209
+ }
210
+ const declared = depth < MAX_REFERENCE_DEPTH && getDeclaredInitializer(expression);
211
+ if (declared) {
212
+ return classifyValue(declared, depth + 1);
213
+ }
214
+ const name = ng_morph_1.Node.isIdentifier(expression)
215
+ ? expression.getText()
216
+ : expression.getName();
217
+ return name.endsWith('$') ? 'stream' : 'unknown';
218
+ }
219
+ function unwrapExpression(node) {
220
+ return ng_morph_1.Node.isParenthesizedExpression(node) ||
221
+ ng_morph_1.Node.isAsExpression(node) ||
222
+ ng_morph_1.Node.isSatisfiesExpression(node) ||
223
+ ng_morph_1.Node.isNonNullExpression(node)
224
+ ? unwrapExpression(node.getExpression())
225
+ : node;
226
+ }
227
+ // Only calls known to return a stream get `toSignal`, anything else may return a plain value.
228
+ function classifyCall(callee) {
229
+ var _a;
230
+ const expression = unwrapExpression(callee);
231
+ if (ng_morph_1.Node.isPropertyAccessExpression(expression)) {
232
+ const name = expression.getName();
233
+ return name === RXJS_PIPE || name.endsWith('$') ? 'stream' : 'unknown';
234
+ }
235
+ if (!ng_morph_1.Node.isIdentifier(expression)) {
236
+ return 'unknown';
237
+ }
238
+ const declaration = (_a = expression.getSymbol()) === null || _a === void 0 ? void 0 : _a.getDeclarations()[0];
239
+ if (!declaration) {
240
+ return getCallKindByName(expression.getText());
241
+ }
242
+ if (!ng_morph_1.Node.isImportSpecifier(declaration)) {
243
+ return 'unknown';
244
+ }
245
+ const moduleName = declaration.getImportDeclaration().getModuleSpecifierValue();
246
+ if (moduleName === ANGULAR_CORE || moduleName === RXJS_INTEROP) {
247
+ return SIGNAL_FACTORIES.includes(declaration.getName()) ? 'signal' : 'unknown';
248
+ }
249
+ return moduleName === RXJS || moduleName.startsWith(`${RXJS}/`)
250
+ ? 'stream'
251
+ : 'unknown';
252
+ }
253
+ function getCallKindByName(name) {
254
+ if (SIGNAL_FACTORIES.includes(name)) {
255
+ return 'signal';
256
+ }
257
+ return name === RXJS_OF || name.endsWith('$') ? 'stream' : 'unknown';
258
+ }
259
+ function getDeclaredInitializer(node) {
260
+ var _a, _b;
261
+ const symbol = node.getSymbol();
262
+ const declaration = (_b = ((_a = symbol === null || symbol === void 0 ? void 0 : symbol.getAliasedSymbol()) !== null && _a !== void 0 ? _a : symbol)) === null || _b === void 0 ? void 0 : _b.getDeclarations()[0];
263
+ return ng_morph_1.Node.isVariableDeclaration(declaration) ||
264
+ ng_morph_1.Node.isPropertyAssignment(declaration) ||
265
+ ng_morph_1.Node.isPropertyDeclaration(declaration)
266
+ ? declaration.getInitializer()
267
+ : undefined;
268
+ }
269
+ function asSignalText(node, kind) {
270
+ return `${kind === 'plain' ? SIGNAL : TO_SIGNAL}(${node.getText()})`;
271
+ }
272
+ function addSignalImport(node, kind) {
273
+ const filePath = node.getSourceFile().getFilePath();
274
+ if (kind === 'plain') {
275
+ (0, add_unique_import_1.addUniqueImport)(filePath, SIGNAL, ANGULAR_CORE);
276
+ }
277
+ else {
278
+ (0, add_unique_import_1.addUniqueImport)(filePath, TO_SIGNAL, RXJS_INTEROP);
279
+ }
280
+ }
281
+ function wrapWithSignal(useValueProp, valueText) {
282
+ useValueProp.setInitializer(`${SIGNAL}(${valueText})`);
283
+ (0, add_unique_import_1.addUniqueImport)(useValueProp.getSourceFile().getFilePath(), SIGNAL, ANGULAR_CORE);
284
+ }
285
+ function promoteToFactory(useValueProp, exprText) {
286
+ const filePath = useValueProp.getSourceFile().getFilePath();
287
+ useValueProp.replaceWithText(`useFactory: () => ${TO_SIGNAL}(${exprText})`);
288
+ (0, add_unique_import_1.addUniqueImport)(filePath, TO_SIGNAL, RXJS_INTEROP);
289
+ }
290
+ function isPlainLiteral(node) {
291
+ return (ng_morph_1.Node.isStringLiteral(node) ||
292
+ ng_morph_1.Node.isNoSubstitutionTemplateLiteral(node) ||
293
+ ng_morph_1.Node.isArrayLiteralExpression(node) ||
294
+ ng_morph_1.Node.isObjectLiteralExpression(node));
295
+ }
296
+ function insertTodoOnce(node) {
297
+ const alreadyMarked = node
298
+ .getLeadingCommentRanges()
299
+ .some((range) => range.getText().includes(insert_todo_1.TODO_MARK));
300
+ if (!alreadyMarked) {
301
+ (0, insert_todo_1.insertTodo)(node, TODO_MESSAGE);
302
+ }
303
+ }
304
+ //# sourceMappingURL=migrate-i18n-signal-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-i18n-signal-tokens.js","sourceRoot":"","sources":["../../../../../../projects/cdk/schematics/ng-update/v5/steps/migrate-i18n-signal-tokens.ts"],"names":[],"mappings":"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"}