@taiga-ui/cdk 5.19.0 → 5.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/classes/control.d.ts +47 -2
- package/constants/version.d.ts +1 -1
- package/constants/version.js +1 -1
- package/fesm2022/taiga-ui-cdk-classes.mjs +57 -5
- package/fesm2022/taiga-ui-cdk-classes.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-constants.mjs +1 -1
- package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-truncate.mjs +3 -3
- package/fesm2022/taiga-ui-cdk-utils-di.mjs +12 -2
- package/fesm2022/taiga-ui-cdk-utils-di.mjs.map +1 -1
- package/package.json +5 -5
- package/schematics/ng-add/constants/versions.d.ts +1 -1
- package/schematics/ng-update/interfaces/replacement-identifier.d.ts +1 -0
- package/schematics/ng-update/steps/replace-identifier.js +41 -8
- package/schematics/ng-update/steps/replace-identifier.js.map +1 -1
- package/schematics/ng-update/v5/index.js +7 -0
- package/schematics/ng-update/v5/index.js.map +1 -1
- package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js +36 -0
- package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js.map +1 -1
- package/schematics/ng-update/v5/steps/constants/html-comments.js +5 -0
- package/schematics/ng-update/v5/steps/constants/html-comments.js.map +1 -1
- package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js +73 -0
- package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js.map +1 -1
- package/schematics/ng-update/v5/steps/migrate-input-tag-component.d.ts +3 -0
- package/schematics/ng-update/v5/steps/migrate-input-tag-component.js +36 -0
- package/schematics/ng-update/v5/steps/migrate-input-tag-component.js.map +1 -0
- package/schematics/ng-update/v5/steps/migrate-templates.js +4 -0
- package/schematics/ng-update/v5/steps/migrate-templates.js.map +1 -1
- package/schematics/ng-update/v5/steps/migrate-tui-let.js +57 -1
- package/schematics/ng-update/v5/steps/migrate-tui-let.js.map +1 -1
- package/schematics/ng-update/v5/steps/templates/migrate-async-pipes.js +8 -0
- package/schematics/ng-update/v5/steps/templates/migrate-async-pipes.js.map +1 -1
- package/schematics/ng-update/v5/steps/templates/migrate-dropdown-import.d.ts +8 -0
- package/schematics/ng-update/v5/steps/templates/migrate-dropdown-import.js +45 -0
- package/schematics/ng-update/v5/steps/templates/migrate-dropdown-import.js.map +1 -0
- package/schematics/ng-update/v5/steps/templates/migrate-input.js +16 -1
- package/schematics/ng-update/v5/steps/templates/migrate-input.js.map +1 -1
- package/schematics/ng-update/v5/steps/templates/migrate-primitive-textfield.d.ts +8 -0
- package/schematics/ng-update/v5/steps/templates/migrate-primitive-textfield.js +308 -0
- package/schematics/ng-update/v5/steps/templates/migrate-primitive-textfield.js.map +1 -0
- package/schematics/utils/remove-import-from-standalone-component.d.ts +3 -0
- package/schematics/utils/remove-import-from-standalone-component.js +43 -0
- package/schematics/utils/remove-import-from-standalone-component.js.map +1 -0
- package/utils/di/index.d.ts +1 -0
- package/utils/di/inject-form-field.d.ts +5 -0
package/classes/control.d.ts
CHANGED
|
@@ -4,6 +4,42 @@ import { TuiValueTransformer } from './value-transformer';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
/**
|
|
6
6
|
* Basic ControlValueAccessor class to build form components upon
|
|
7
|
+
*
|
|
8
|
+
* TODO(v6): implement `FormValueControl` from `@angular/forms/signals` once Angular 22 is the
|
|
9
|
+
* minimal supported version. Most of the existed logic below goes away.
|
|
10
|
+
*
|
|
11
|
+
* [According to documentation](https://angular.dev/guide/forms/signals/migration#custom-controls):
|
|
12
|
+
* > Any custom Signal Form Control can be used with Reactive (and Template-Driven) Forms as-is
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* export abstract class TuiControl<T> implements FormValueControl<T> {
|
|
16
|
+
* private readonly fallback = inject(TUI_FALLBACK_VALUE, FLAGS) as T;
|
|
17
|
+
*
|
|
18
|
+
* protected transformer =
|
|
19
|
+
* inject(TuiValueTransformer, FLAGS) ?? TUI_IDENTITY_VALUE_TRANSFORMER;
|
|
20
|
+
*
|
|
21
|
+
* public readonly disabled = input(false);
|
|
22
|
+
* public readonly invalid = input(false);
|
|
23
|
+
* public readonly touched = input(false);
|
|
24
|
+
* public readonly readonly = input(false);
|
|
25
|
+
* public readonly touch = output<void>();
|
|
26
|
+
*
|
|
27
|
+
* public readonly value = model(this.fallback);
|
|
28
|
+
*
|
|
29
|
+
* // https://angular.dev/guide/forms/signals/custom-controls#value-transformation
|
|
30
|
+
* // https://angular.dev/api/forms/signals/transformedValue
|
|
31
|
+
* protected readonly rawValue = transformedValue(this.value, {
|
|
32
|
+
* parse: (raw: T) => ({value: this.transformer.toControlValue(raw)}),
|
|
33
|
+
* format: (value) => this.transformer.fromControlValue(value),
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* reset() {
|
|
37
|
+
* // [...]
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* // [...]
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
7
43
|
*/
|
|
8
44
|
export declare abstract class TuiControl<T> implements ControlValueAccessor {
|
|
9
45
|
private readonly fallback;
|
|
@@ -13,7 +49,16 @@ export declare abstract class TuiControl<T> implements ControlValueAccessor {
|
|
|
13
49
|
protected readonly cdr: ChangeDetectorRef;
|
|
14
50
|
protected transformer: TuiValueTransformer<any, any>;
|
|
15
51
|
readonly value: import("@angular/core").Signal<T>;
|
|
16
|
-
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated use `<input [readonly]="..." />` instead
|
|
54
|
+
* TODO(v6): delete
|
|
55
|
+
*/
|
|
56
|
+
readonly readOnlyLegacy: import("@angular/core").InputSignal<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* TODO(v6): delete, it's only for backward compatibility
|
|
59
|
+
*/
|
|
60
|
+
readonly readOnly: import("@angular/core").Signal<boolean>;
|
|
61
|
+
readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, any>;
|
|
17
62
|
/**
|
|
18
63
|
* @deprecated use `<tui-textfield [invalid]="..." />` instead
|
|
19
64
|
* TODO(v6): delete
|
|
@@ -34,6 +79,6 @@ export declare abstract class TuiControl<T> implements ControlValueAccessor {
|
|
|
34
79
|
writeValue(value: T | null): void;
|
|
35
80
|
private update;
|
|
36
81
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiControl<any>, never>;
|
|
37
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiControl<any>, never, never, { "
|
|
82
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiControl<any>, never, never, { "readOnlyLegacy": { "alias": "readOnly"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "pseudoInvalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
38
83
|
}
|
|
39
84
|
export declare function tuiAsControl<T>(control: Type<TuiControl<T>>): Provider;
|
package/constants/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const TUI_VERSION = "5.
|
|
1
|
+
export declare const TUI_VERSION = "5.20.0";
|
package/constants/version.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, signal, ChangeDetectorRef, computed, input, untracked, Directive } from '@angular/core';
|
|
3
|
+
import { inject, signal, ChangeDetectorRef, computed, input, effect, untracked, Directive } from '@angular/core';
|
|
3
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { NgControl, NgModel } from '@angular/forms';
|
|
5
|
+
import { NgControl, AbstractControl, NgModel } from '@angular/forms';
|
|
5
6
|
import { EMPTY_FUNCTION } from '@taiga-ui/cdk/constants';
|
|
6
7
|
import { TUI_FALLBACK_VALUE } from '@taiga-ui/cdk/tokens';
|
|
7
8
|
import { tuiProvide } from '@taiga-ui/cdk/utils/di';
|
|
@@ -33,6 +34,42 @@ const TUI_IDENTITY_VALUE_TRANSFORMER = {
|
|
|
33
34
|
const FLAGS = { self: true, optional: true };
|
|
34
35
|
/**
|
|
35
36
|
* Basic ControlValueAccessor class to build form components upon
|
|
37
|
+
*
|
|
38
|
+
* TODO(v6): implement `FormValueControl` from `@angular/forms/signals` once Angular 22 is the
|
|
39
|
+
* minimal supported version. Most of the existed logic below goes away.
|
|
40
|
+
*
|
|
41
|
+
* [According to documentation](https://angular.dev/guide/forms/signals/migration#custom-controls):
|
|
42
|
+
* > Any custom Signal Form Control can be used with Reactive (and Template-Driven) Forms as-is
|
|
43
|
+
*
|
|
44
|
+
* ```ts
|
|
45
|
+
* export abstract class TuiControl<T> implements FormValueControl<T> {
|
|
46
|
+
* private readonly fallback = inject(TUI_FALLBACK_VALUE, FLAGS) as T;
|
|
47
|
+
*
|
|
48
|
+
* protected transformer =
|
|
49
|
+
* inject(TuiValueTransformer, FLAGS) ?? TUI_IDENTITY_VALUE_TRANSFORMER;
|
|
50
|
+
*
|
|
51
|
+
* public readonly disabled = input(false);
|
|
52
|
+
* public readonly invalid = input(false);
|
|
53
|
+
* public readonly touched = input(false);
|
|
54
|
+
* public readonly readonly = input(false);
|
|
55
|
+
* public readonly touch = output<void>();
|
|
56
|
+
*
|
|
57
|
+
* public readonly value = model(this.fallback);
|
|
58
|
+
*
|
|
59
|
+
* // https://angular.dev/guide/forms/signals/custom-controls#value-transformation
|
|
60
|
+
* // https://angular.dev/api/forms/signals/transformedValue
|
|
61
|
+
* protected readonly rawValue = transformedValue(this.value, {
|
|
62
|
+
* parse: (raw: T) => ({value: this.transformer.toControlValue(raw)}),
|
|
63
|
+
* format: (value) => this.transformer.fromControlValue(value),
|
|
64
|
+
* });
|
|
65
|
+
*
|
|
66
|
+
* reset() {
|
|
67
|
+
* // [...]
|
|
68
|
+
* }
|
|
69
|
+
*
|
|
70
|
+
* // [...]
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
36
73
|
*/
|
|
37
74
|
class TuiControl {
|
|
38
75
|
constructor() {
|
|
@@ -43,7 +80,16 @@ class TuiControl {
|
|
|
43
80
|
this.cdr = inject(ChangeDetectorRef);
|
|
44
81
|
this.transformer = inject(TuiValueTransformer, FLAGS) ?? TUI_IDENTITY_VALUE_TRANSFORMER;
|
|
45
82
|
this.value = computed(() => this.internal() ?? this.fallback);
|
|
46
|
-
|
|
83
|
+
/**
|
|
84
|
+
* @deprecated use `<input [readonly]="..." />` instead
|
|
85
|
+
* TODO(v6): delete
|
|
86
|
+
*/
|
|
87
|
+
this.readOnlyLegacy = input(false, { alias: 'readOnly' });
|
|
88
|
+
/**
|
|
89
|
+
* TODO(v6): delete, it's only for backward compatibility
|
|
90
|
+
*/
|
|
91
|
+
this.readOnly = computed(() => this.readonly() || this.readOnlyLegacy());
|
|
92
|
+
this.readonly = input(false, { transform: coerceBooleanProperty });
|
|
47
93
|
/**
|
|
48
94
|
* @deprecated use `<tui-textfield [invalid]="..." />` instead
|
|
49
95
|
* TODO(v6): delete
|
|
@@ -65,8 +111,14 @@ class TuiControl {
|
|
|
65
111
|
this.onTouched = EMPTY_FUNCTION;
|
|
66
112
|
this.onChange = EMPTY_FUNCTION;
|
|
67
113
|
this.control.valueAccessor = this;
|
|
114
|
+
/**
|
|
115
|
+
* Signal forms provide a fake `NgControl` which is not an `AbstractControl` and has no
|
|
116
|
+
* observables — its state is exposed as signals, so reading it here subscribes to them.
|
|
117
|
+
* For an `AbstractControl` nothing is tracked and this only makes the initial update.
|
|
118
|
+
*/
|
|
119
|
+
effect(() => this.update());
|
|
68
120
|
this.refresh$
|
|
69
|
-
.pipe(delay(0), startWith(null), map(() => this.control.control), filter(
|
|
121
|
+
.pipe(delay(0), startWith(null), map(() => this.control.control), filter((c) => c instanceof AbstractControl), distinctUntilChanged(), switchMap((c) => merge(c.valueChanges, c.statusChanges, c.events).pipe(startWith(null))), takeUntilDestroyed())
|
|
70
122
|
.subscribe(() => this.update());
|
|
71
123
|
}
|
|
72
124
|
registerOnChange(onChange) {
|
|
@@ -102,7 +154,7 @@ class TuiControl {
|
|
|
102
154
|
this.cdr.markForCheck();
|
|
103
155
|
}
|
|
104
156
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
105
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiControl, isStandalone: true, inputs: {
|
|
157
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.25", type: TuiControl, isStandalone: true, inputs: { readOnlyLegacy: { classPropertyName: "readOnlyLegacy", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, pseudoInvalid: { classPropertyName: "pseudoInvalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
106
158
|
}
|
|
107
159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiControl, decorators: [{
|
|
108
160
|
type: Directive
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-classes.mjs","sources":["../../../projects/cdk/classes/value-transformer.ts","../../../projects/cdk/classes/control.ts","../../../projects/cdk/classes/validation-error.ts","../../../projects/cdk/classes/taiga-ui-cdk-classes.ts"],"sourcesContent":["import {type FactoryProvider, inject, type ProviderToken} from '@angular/core';\nimport {identity} from 'rxjs';\n\nexport abstract class TuiValueTransformer<From, To = unknown> {\n public abstract toControlValue(componentValue: From): To;\n public abstract fromControlValue(controlValue: To): From;\n}\n\nexport function tuiValueTransformerFrom<\n T extends {valueTransformer: TuiValueTransformer<unknown>},\n>(token: ProviderToken<T>): FactoryProvider {\n return {\n provide: TuiValueTransformer,\n useFactory: () => inject(token).valueTransformer,\n };\n}\n\nexport class TuiNonNullableValueTransformer<T> extends TuiValueTransformer<T | null, T> {\n private prevValue!: T;\n\n public fromControlValue(value: T): T {\n this.prevValue = value;\n\n return value;\n }\n\n public toControlValue(value: T | null): T {\n this.prevValue = value ?? this.prevValue;\n\n return this.prevValue;\n }\n}\n\nexport const TUI_IDENTITY_VALUE_TRANSFORMER: TuiValueTransformer<any, any> = {\n fromControlValue: identity,\n toControlValue: identity,\n};\n","import {\n ChangeDetectorRef,\n computed,\n Directive,\n inject,\n input,\n type Provider,\n signal,\n type Type,\n untracked,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n type ControlValueAccessor,\n type FormControlStatus,\n NgControl,\n NgModel,\n} from '@angular/forms';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {TUI_FALLBACK_VALUE} from '@taiga-ui/cdk/tokens';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {\n delay,\n distinctUntilChanged,\n filter,\n map,\n merge,\n startWith,\n Subject,\n switchMap,\n} from 'rxjs';\n\nimport {TUI_IDENTITY_VALUE_TRANSFORMER, TuiValueTransformer} from './value-transformer';\n\nconst FLAGS = {self: true, optional: true};\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class TuiControl<T> implements ControlValueAccessor {\n private readonly fallback = inject(TUI_FALLBACK_VALUE, FLAGS) as T;\n private readonly refresh$ = new Subject<void>();\n private readonly internal = signal(this.fallback);\n\n protected readonly control = inject(NgControl, {self: true});\n protected readonly cdr = inject(ChangeDetectorRef);\n\n protected transformer =\n inject(TuiValueTransformer, FLAGS) ?? TUI_IDENTITY_VALUE_TRANSFORMER;\n\n public readonly value = computed(() => this.internal() ?? this.fallback);\n public readonly readOnly = input(false);\n /**\n * @deprecated use `<tui-textfield [invalid]=\"...\" />` instead\n * TODO(v6): delete\n */\n public readonly pseudoInvalid = input<boolean | null>(undefined, {alias: 'invalid'});\n public readonly touched = signal(false);\n public readonly status = signal<FormControlStatus | undefined>(undefined);\n public readonly disabled = computed(() => this.status() === 'DISABLED');\n public readonly interactive = computed(() => !this.disabled() && !this.readOnly());\n\n public readonly invalid = computed(() => {\n const pseudoInvalid = this.pseudoInvalid();\n\n return pseudoInvalid == null\n ? this.interactive() && this.touched() && this.status() === 'INVALID'\n : pseudoInvalid && this.interactive();\n });\n\n public readonly mode = computed(() =>\n // eslint-disable-next-line no-nested-ternary\n this.readOnly() ? 'readonly' : this.invalid() ? 'invalid' : 'valid',\n );\n\n public onTouched = EMPTY_FUNCTION;\n public onChange: (value: T) => void = EMPTY_FUNCTION;\n\n constructor() {\n this.control.valueAccessor = this;\n this.refresh$\n .pipe(\n delay(0),\n startWith(null),\n map(() => this.control.control),\n filter(Boolean),\n distinctUntilChanged(),\n switchMap((c) =>\n merge(c.valueChanges, c.statusChanges, c.events).pipe(\n startWith(null),\n ),\n ),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.update());\n }\n\n public registerOnChange(onChange: (value: unknown) => void): void {\n this.refresh$.next();\n\n this.onChange = (value: T) => {\n const internal = untracked(this.internal);\n\n if (value === internal) {\n return;\n }\n\n onChange(this.transformer.toControlValue(value));\n this.internal.set(value);\n this.update();\n };\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this.onTouched = () => {\n onTouched();\n this.update();\n };\n }\n\n public setDisabledState(): void {\n this.update();\n }\n\n public writeValue(value: T | null): void {\n // TODO: https://github.com/angular/angular/issues/14988\n const safe = this.control instanceof NgModel ? this.control.model : value;\n\n this.internal.set(this.transformer.fromControlValue(safe));\n this.update();\n }\n\n private update(): void {\n this.status.set(this.control.control?.status);\n this.touched.set(!!this.control.control?.touched);\n this.cdr.markForCheck();\n }\n}\n\nexport function tuiAsControl<T>(control: Type<TuiControl<T>>): Provider {\n return tuiProvide(TuiControl, control);\n}\n","import {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport class TuiValidationError<T extends Record<string, any> = Record<string, unknown>> {\n constructor(\n public readonly message: PolymorpheusContent<T>,\n public readonly context: T = {} as T,\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-classes.mjs","sources":["../../../projects/cdk/classes/value-transformer.ts","../../../projects/cdk/classes/control.ts","../../../projects/cdk/classes/validation-error.ts","../../../projects/cdk/classes/taiga-ui-cdk-classes.ts"],"sourcesContent":["import {type FactoryProvider, inject, type ProviderToken} from '@angular/core';\nimport {identity} from 'rxjs';\n\nexport abstract class TuiValueTransformer<From, To = unknown> {\n public abstract toControlValue(componentValue: From): To;\n public abstract fromControlValue(controlValue: To): From;\n}\n\nexport function tuiValueTransformerFrom<\n T extends {valueTransformer: TuiValueTransformer<unknown>},\n>(token: ProviderToken<T>): FactoryProvider {\n return {\n provide: TuiValueTransformer,\n useFactory: () => inject(token).valueTransformer,\n };\n}\n\nexport class TuiNonNullableValueTransformer<T> extends TuiValueTransformer<T | null, T> {\n private prevValue!: T;\n\n public fromControlValue(value: T): T {\n this.prevValue = value;\n\n return value;\n }\n\n public toControlValue(value: T | null): T {\n this.prevValue = value ?? this.prevValue;\n\n return this.prevValue;\n }\n}\n\nexport const TUI_IDENTITY_VALUE_TRANSFORMER: TuiValueTransformer<any, any> = {\n fromControlValue: identity,\n toControlValue: identity,\n};\n","import {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {\n ChangeDetectorRef,\n computed,\n Directive,\n effect,\n inject,\n input,\n type Provider,\n signal,\n type Type,\n untracked,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n type ControlValueAccessor,\n type FormControlStatus,\n NgControl,\n NgModel,\n} from '@angular/forms';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {TUI_FALLBACK_VALUE} from '@taiga-ui/cdk/tokens';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/di';\nimport {\n delay,\n distinctUntilChanged,\n filter,\n map,\n merge,\n startWith,\n Subject,\n switchMap,\n} from 'rxjs';\n\nimport {TUI_IDENTITY_VALUE_TRANSFORMER, TuiValueTransformer} from './value-transformer';\n\nconst FLAGS = {self: true, optional: true};\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n *\n * TODO(v6): implement `FormValueControl` from `@angular/forms/signals` once Angular 22 is the\n * minimal supported version. Most of the existed logic below goes away.\n *\n * [According to documentation](https://angular.dev/guide/forms/signals/migration#custom-controls):\n * > Any custom Signal Form Control can be used with Reactive (and Template-Driven) Forms as-is\n *\n * ```ts\n * export abstract class TuiControl<T> implements FormValueControl<T> {\n * private readonly fallback = inject(TUI_FALLBACK_VALUE, FLAGS) as T;\n *\n * protected transformer =\n * inject(TuiValueTransformer, FLAGS) ?? TUI_IDENTITY_VALUE_TRANSFORMER;\n *\n * public readonly disabled = input(false);\n * public readonly invalid = input(false);\n * public readonly touched = input(false);\n * public readonly readonly = input(false);\n * public readonly touch = output<void>();\n *\n * public readonly value = model(this.fallback);\n *\n * // https://angular.dev/guide/forms/signals/custom-controls#value-transformation\n * // https://angular.dev/api/forms/signals/transformedValue\n * protected readonly rawValue = transformedValue(this.value, {\n * parse: (raw: T) => ({value: this.transformer.toControlValue(raw)}),\n * format: (value) => this.transformer.fromControlValue(value),\n * });\n *\n * reset() {\n * // [...]\n * }\n *\n * // [...]\n * }\n * ```\n */\n@Directive()\nexport abstract class TuiControl<T> implements ControlValueAccessor {\n private readonly fallback = inject(TUI_FALLBACK_VALUE, FLAGS) as T;\n private readonly refresh$ = new Subject<void>();\n private readonly internal = signal(this.fallback);\n\n protected readonly control = inject(NgControl, {self: true});\n protected readonly cdr = inject(ChangeDetectorRef);\n\n protected transformer =\n inject(TuiValueTransformer, FLAGS) ?? TUI_IDENTITY_VALUE_TRANSFORMER;\n\n public readonly value = computed(() => this.internal() ?? this.fallback);\n\n /**\n * @deprecated use `<input [readonly]=\"...\" />` instead\n * TODO(v6): delete\n */\n public readonly readOnlyLegacy = input(false, {alias: 'readOnly'});\n /**\n * TODO(v6): delete, it's only for backward compatibility\n */\n public readonly readOnly = computed(() => this.readonly() || this.readOnlyLegacy());\n public readonly readonly = input(false, {transform: coerceBooleanProperty});\n /**\n * @deprecated use `<tui-textfield [invalid]=\"...\" />` instead\n * TODO(v6): delete\n */\n public readonly pseudoInvalid = input<boolean | null>(undefined, {alias: 'invalid'});\n public readonly touched = signal(false);\n public readonly status = signal<FormControlStatus | undefined>(undefined);\n public readonly disabled = computed(() => this.status() === 'DISABLED');\n public readonly interactive = computed(() => !this.disabled() && !this.readOnly());\n\n public readonly invalid = computed(() => {\n const pseudoInvalid = this.pseudoInvalid();\n\n return pseudoInvalid == null\n ? this.interactive() && this.touched() && this.status() === 'INVALID'\n : pseudoInvalid && this.interactive();\n });\n\n public readonly mode = computed(() =>\n // eslint-disable-next-line no-nested-ternary\n this.readOnly() ? 'readonly' : this.invalid() ? 'invalid' : 'valid',\n );\n\n public onTouched = EMPTY_FUNCTION;\n public onChange: (value: T) => void = EMPTY_FUNCTION;\n\n constructor() {\n this.control.valueAccessor = this;\n /**\n * Signal forms provide a fake `NgControl` which is not an `AbstractControl` and has no\n * observables — its state is exposed as signals, so reading it here subscribes to them.\n * For an `AbstractControl` nothing is tracked and this only makes the initial update.\n */\n effect(() => this.update());\n this.refresh$\n .pipe(\n delay(0),\n startWith(null),\n map(() => this.control.control),\n filter((c) => c instanceof AbstractControl),\n distinctUntilChanged(),\n switchMap((c) =>\n merge(c.valueChanges, c.statusChanges, c.events).pipe(\n startWith(null),\n ),\n ),\n takeUntilDestroyed(),\n )\n .subscribe(() => this.update());\n }\n\n public registerOnChange(onChange: (value: unknown) => void): void {\n this.refresh$.next();\n\n this.onChange = (value: T) => {\n const internal = untracked(this.internal);\n\n if (value === internal) {\n return;\n }\n\n onChange(this.transformer.toControlValue(value));\n this.internal.set(value);\n this.update();\n };\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this.onTouched = () => {\n onTouched();\n this.update();\n };\n }\n\n public setDisabledState(): void {\n this.update();\n }\n\n public writeValue(value: T | null): void {\n // TODO: https://github.com/angular/angular/issues/14988\n const safe = this.control instanceof NgModel ? this.control.model : value;\n\n this.internal.set(this.transformer.fromControlValue(safe));\n this.update();\n }\n\n private update(): void {\n this.status.set(this.control.control?.status);\n this.touched.set(!!this.control.control?.touched);\n this.cdr.markForCheck();\n }\n}\n\nexport function tuiAsControl<T>(control: Type<TuiControl<T>>): Provider {\n return tuiProvide(TuiControl, control);\n}\n","import {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport class TuiValidationError<T extends Record<string, any> = Record<string, unknown>> {\n constructor(\n public readonly message: PolymorpheusContent<T>,\n public readonly context: T = {} as T,\n ) {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -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 `−`. 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.
|
|
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 `−`. 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.20.0';\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.
|
|
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.20.0"], ngImport: i0, template: '', isInline: true, styles: ["[tuiTruncate]:where(*[data-tui-version=\"5.20.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.20.0\"])[data-lines=\"1\"]:before{white-space:nowrap}[tuiTruncate]:where(*[data-tui-version=\"5.20.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 }); }
|
|
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.
|
|
113
|
+
args: [{ template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: `tui-truncate-${TUI_VERSION}`, styles: ["[tuiTruncate]:where(*[data-tui-version=\"5.20.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.20.0\"])[data-lines=\"1\"]:before{white-space:nowrap}[tuiTruncate]:where(*[data-tui-version=\"5.20.0\"]):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.
|
|
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.20.0", "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,5 +1,6 @@
|
|
|
1
|
-
import { inject, InjectionToken, isSignal, signal, effect } from '@angular/core';
|
|
1
|
+
import { inject, InjectionToken, isSignal, signal, effect, computed } from '@angular/core';
|
|
2
2
|
import { tuiSetSignal } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
3
|
+
import { NgControl } from '@angular/forms';
|
|
3
4
|
|
|
4
5
|
function tuiProvideOptions(provide, options, fallback) {
|
|
5
6
|
return {
|
|
@@ -47,6 +48,15 @@ function tuiDirectiveBinding(token, key, initial, options = { self: true }) {
|
|
|
47
48
|
return result;
|
|
48
49
|
}
|
|
49
50
|
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated use inject(FORM_FIELD) from `@angular/forms/signals` if Angular >= 21
|
|
53
|
+
*/
|
|
54
|
+
function tuiInjectFormField(options = {}) {
|
|
55
|
+
const control = inject(NgControl, options);
|
|
56
|
+
// @ts-expect-error
|
|
57
|
+
return computed(() => control?.field?.());
|
|
58
|
+
}
|
|
59
|
+
|
|
50
60
|
function tuiProvide(provide, useExisting, multi = false) {
|
|
51
61
|
return { provide, useExisting, multi };
|
|
52
62
|
}
|
|
@@ -55,5 +65,5 @@ function tuiProvide(provide, useExisting, multi = false) {
|
|
|
55
65
|
* Generated bundle index. Do not edit.
|
|
56
66
|
*/
|
|
57
67
|
|
|
58
|
-
export { tuiCreateOptions, tuiDirectiveBinding, tuiProvide, tuiProvideOptions };
|
|
68
|
+
export { tuiCreateOptions, tuiDirectiveBinding, tuiInjectFormField, tuiProvide, tuiProvideOptions };
|
|
59
69
|
//# sourceMappingURL=taiga-ui-cdk-utils-di.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils-di.mjs","sources":["../../../projects/cdk/utils/di/provide-options.ts","../../../projects/cdk/utils/di/create-options.ts","../../../projects/cdk/utils/di/directive-binding.ts","../../../projects/cdk/utils/di/provide.ts","../../../projects/cdk/utils/di/taiga-ui-cdk-utils-di.ts"],"sourcesContent":["import {type FactoryProvider, inject, type InjectionToken} from '@angular/core';\n\nexport function tuiProvideOptions<T>(\n provide: InjectionToken<T>,\n options: Partial<T> | (() => Partial<T>),\n fallback: T,\n): FactoryProvider {\n return {\n provide,\n useFactory: (): T => ({\n ...(inject(provide, {optional: true, skipSelf: true}) || fallback),\n ...(inject(options as unknown as InjectionToken<T>, {optional: true}) ||\n (typeof options === 'function' ? options() : options)),\n }),\n };\n}\n","import {type FactoryProvider, InjectionToken} from '@angular/core';\n\nimport {tuiProvideOptions} from './provide-options';\n\nexport function tuiCreateOptions<T>(\n defaults: T,\n): [\n token: InjectionToken<T>,\n provider: (item: Partial<T> | (() => Partial<T>)) => FactoryProvider,\n] {\n const token = new InjectionToken(ngDevMode ? 'Options token' : '', {\n factory: () => defaults,\n });\n\n return [token, (options) => tuiProvideOptions(token, options, defaults)];\n}\n","import {\n effect,\n inject,\n type InjectOptions,\n isSignal,\n type ProviderToken,\n type Signal,\n signal,\n type WritableSignal,\n} from '@angular/core';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\n\ntype SignalLikeTypeOf<T> = T extends Signal<infer R> ? R : T;\n\ntype SignalLike<T> = Signal<T> | T;\n\n// TODO: Consider {} as default options instead\nexport function tuiDirectiveBinding<\n T,\n G extends keyof T,\n I extends SignalLike<SignalLikeTypeOf<T[G]>>,\n>(\n token: ProviderToken<T>,\n key: G,\n initial: I,\n options: InjectOptions = {self: true},\n): I extends Signal<any> ? I : WritableSignal<I> {\n const result: any = isSignal(initial) ? initial : signal(initial);\n const directive: any = inject(token, options);\n const output = directive?.[`${key.toString()}Change`];\n\n if (!directive) {\n return result;\n }\n\n // TODO: Figure out why effects are executed all the time and not just when result changes (check with Angular 18)\n let previous: any;\n\n effect(() => {\n const value = result();\n\n if (previous === value) {\n return;\n }\n\n if (isSignal(directive[key])) {\n tuiSetSignal(directive[key] as any, value);\n } else {\n directive[key] = value;\n }\n\n directive.ngOnChanges?.({});\n output?.emit?.(value);\n previous = value;\n });\n\n return result;\n}\n","import {type ExistingProvider, type ProviderToken} from '@angular/core';\n\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T | T[]>,\n useExisting: ProviderToken<T>,\n multi: boolean,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n multi = false,\n): ExistingProvider {\n return {provide, useExisting, multi};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-di.mjs","sources":["../../../projects/cdk/utils/di/provide-options.ts","../../../projects/cdk/utils/di/create-options.ts","../../../projects/cdk/utils/di/directive-binding.ts","../../../projects/cdk/utils/di/inject-form-field.ts","../../../projects/cdk/utils/di/provide.ts","../../../projects/cdk/utils/di/taiga-ui-cdk-utils-di.ts"],"sourcesContent":["import {type FactoryProvider, inject, type InjectionToken} from '@angular/core';\n\nexport function tuiProvideOptions<T>(\n provide: InjectionToken<T>,\n options: Partial<T> | (() => Partial<T>),\n fallback: T,\n): FactoryProvider {\n return {\n provide,\n useFactory: (): T => ({\n ...(inject(provide, {optional: true, skipSelf: true}) || fallback),\n ...(inject(options as unknown as InjectionToken<T>, {optional: true}) ||\n (typeof options === 'function' ? options() : options)),\n }),\n };\n}\n","import {type FactoryProvider, InjectionToken} from '@angular/core';\n\nimport {tuiProvideOptions} from './provide-options';\n\nexport function tuiCreateOptions<T>(\n defaults: T,\n): [\n token: InjectionToken<T>,\n provider: (item: Partial<T> | (() => Partial<T>)) => FactoryProvider,\n] {\n const token = new InjectionToken(ngDevMode ? 'Options token' : '', {\n factory: () => defaults,\n });\n\n return [token, (options) => tuiProvideOptions(token, options, defaults)];\n}\n","import {\n effect,\n inject,\n type InjectOptions,\n isSignal,\n type ProviderToken,\n type Signal,\n signal,\n type WritableSignal,\n} from '@angular/core';\nimport {tuiSetSignal} from '@taiga-ui/cdk/utils/miscellaneous';\n\ntype SignalLikeTypeOf<T> = T extends Signal<infer R> ? R : T;\n\ntype SignalLike<T> = Signal<T> | T;\n\n// TODO: Consider {} as default options instead\nexport function tuiDirectiveBinding<\n T,\n G extends keyof T,\n I extends SignalLike<SignalLikeTypeOf<T[G]>>,\n>(\n token: ProviderToken<T>,\n key: G,\n initial: I,\n options: InjectOptions = {self: true},\n): I extends Signal<any> ? I : WritableSignal<I> {\n const result: any = isSignal(initial) ? initial : signal(initial);\n const directive: any = inject(token, options);\n const output = directive?.[`${key.toString()}Change`];\n\n if (!directive) {\n return result;\n }\n\n // TODO: Figure out why effects are executed all the time and not just when result changes (check with Angular 18)\n let previous: any;\n\n effect(() => {\n const value = result();\n\n if (previous === value) {\n return;\n }\n\n if (isSignal(directive[key])) {\n tuiSetSignal(directive[key] as any, value);\n } else {\n directive[key] = value;\n }\n\n directive.ngOnChanges?.({});\n output?.emit?.(value);\n previous = value;\n });\n\n return result;\n}\n","import {computed, inject, type InjectOptions, type Signal} from '@angular/core';\nimport {NgControl} from '@angular/forms';\n\n/**\n * @deprecated use inject(FORM_FIELD) from `@angular/forms/signals` if Angular >= 21\n */\nexport function tuiInjectFormField(options: InjectOptions = {}): Signal<unknown> {\n const control = inject(NgControl, options);\n\n // @ts-expect-error\n return computed(() => control?.field?.());\n}\n","import {type ExistingProvider, type ProviderToken} from '@angular/core';\n\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T | T[]>,\n useExisting: ProviderToken<T>,\n multi: boolean,\n): ExistingProvider;\nexport function tuiProvide<T>(\n provide: ProviderToken<T>,\n useExisting: ProviderToken<T>,\n multi = false,\n): ExistingProvider {\n return {provide, useExisting, multi};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;SAEgB,iBAAiB,CAC7B,OAA0B,EAC1B,OAAwC,EACxC,QAAW,EAAA;IAEX,OAAO;QACH,OAAO;AACP,QAAA,UAAU,EAAE,OAAU;AAClB,YAAA,IAAI,MAAM,CAAC,OAAO,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,QAAQ,CAAC;YAClE,IAAI,MAAM,CAAC,OAAuC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AACjE,iBAAC,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;SAC7D,CAAC;KACL;AACL;;ACXM,SAAU,gBAAgB,CAC5B,QAAW,EAAA;AAKX,IAAA,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,SAAS,GAAG,eAAe,GAAG,EAAE,EAAE;AAC/D,QAAA,OAAO,EAAE,MAAM,QAAQ;AAC1B,KAAA,CAAC;AAEF,IAAA,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,KAAK,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5E;;ACCA;AACM,SAAU,mBAAmB,CAK/B,KAAuB,EACvB,GAAM,EACN,OAAU,EACV,OAAA,GAAyB,EAAC,IAAI,EAAE,IAAI,EAAC,EAAA;AAErC,IAAA,MAAM,MAAM,GAAQ,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IACjE,MAAM,SAAS,GAAQ,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;AAC7C,IAAA,MAAM,MAAM,GAAG,SAAS,GAAG,CAAA,EAAG,GAAG,CAAC,QAAQ,EAAE,CAAA,MAAA,CAAQ,CAAC;IAErD,IAAI,CAAC,SAAS,EAAE;AACZ,QAAA,OAAO,MAAM;IACjB;;AAGA,IAAA,IAAI,QAAa;IAEjB,MAAM,CAAC,MAAK;AACR,QAAA,MAAM,KAAK,GAAG,MAAM,EAAE;AAEtB,QAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;YACpB;QACJ;QAEA,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;YAC1B,YAAY,CAAC,SAAS,CAAC,GAAG,CAAQ,EAAE,KAAK,CAAC;QAC9C;aAAO;AACH,YAAA,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK;QAC1B;AAEA,QAAA,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;AAC3B,QAAA,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC;QACrB,QAAQ,GAAG,KAAK;AACpB,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACjB;;ACtDA;;AAEG;AACG,SAAU,kBAAkB,CAAC,OAAA,GAAyB,EAAE,EAAA;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC;;IAG1C,OAAO,QAAQ,CAAC,MAAM,OAAO,EAAE,KAAK,IAAI,CAAC;AAC7C;;ACAM,SAAU,UAAU,CACtB,OAAyB,EACzB,WAA6B,EAC7B,KAAK,GAAG,KAAK,EAAA;AAEb,IAAA,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC;AACxC;;ACjBA;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/cdk",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.20.0",
|
|
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",
|
|
@@ -45,10 +45,6 @@
|
|
|
45
45
|
"types": "./classes/index.d.ts",
|
|
46
46
|
"default": "./fesm2022/taiga-ui-cdk-classes.mjs"
|
|
47
47
|
},
|
|
48
|
-
"./constants": {
|
|
49
|
-
"types": "./constants/index.d.ts",
|
|
50
|
-
"default": "./fesm2022/taiga-ui-cdk-constants.mjs"
|
|
51
|
-
},
|
|
52
48
|
"./date-time": {
|
|
53
49
|
"types": "./date-time/index.d.ts",
|
|
54
50
|
"default": "./fesm2022/taiga-ui-cdk-date-time.mjs"
|
|
@@ -65,6 +61,10 @@
|
|
|
65
61
|
"types": "./pipes/index.d.ts",
|
|
66
62
|
"default": "./fesm2022/taiga-ui-cdk-pipes.mjs"
|
|
67
63
|
},
|
|
64
|
+
"./constants": {
|
|
65
|
+
"types": "./constants/index.d.ts",
|
|
66
|
+
"default": "./fesm2022/taiga-ui-cdk-constants.mjs"
|
|
67
|
+
},
|
|
68
68
|
"./portals": {
|
|
69
69
|
"types": "./portals/index.d.ts",
|
|
70
70
|
"default": "./fesm2022/taiga-ui-cdk-portals.mjs"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const TAIGA_VERSION = "^5.
|
|
1
|
+
export declare const TAIGA_VERSION = "^5.20.0";
|
|
@@ -33,17 +33,52 @@ function replaceIdentifier({ from, to }) {
|
|
|
33
33
|
}
|
|
34
34
|
const parent = ref.getParent();
|
|
35
35
|
if (ng_morph_1.Node.isImportSpecifier(parent)) {
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const targets = toArray(to);
|
|
37
|
+
const [target] = targets;
|
|
38
|
+
const alreadyImported = targets.length === 1 &&
|
|
39
|
+
!!target &&
|
|
40
|
+
!target.namedImport &&
|
|
41
|
+
target.name === parent.getName() &&
|
|
42
|
+
target.moduleSpecifier ===
|
|
43
|
+
parent.getImportDeclaration().getModuleSpecifierValue();
|
|
44
|
+
// A `removeSpread` entry keeps the same name and module, so the import
|
|
45
|
+
// is already correct — only the `...` usage needs rewriting. Skip the
|
|
46
|
+
// remove/re-add churn that would otherwise relocate an untouched import.
|
|
47
|
+
if (!alreadyImported) {
|
|
48
|
+
(0, import_manipulations_1.removeImport)(parent);
|
|
49
|
+
addImports(to, parent.getSourceFile().getFilePath());
|
|
50
|
+
}
|
|
38
51
|
}
|
|
39
52
|
else {
|
|
40
53
|
const decorator = ref.getParentWhile((node) => node.getKindName() !== 'Decorator');
|
|
41
54
|
const inModule = ((_a = decorator === null || decorator === void 0 ? void 0 : decorator.getFirstChildIfKind(ng_morph_1.ts.SyntaxKind.Identifier)) === null || _a === void 0 ? void 0 : _a.getText()) ===
|
|
42
55
|
'NgModule';
|
|
43
|
-
|
|
56
|
+
const removeSpread = toArray(to).some((x) => x.removeSpread);
|
|
57
|
+
replaceReference(ref, getReplacements(to, inModule), removeSpread);
|
|
44
58
|
}
|
|
45
59
|
});
|
|
46
60
|
}
|
|
61
|
+
function replaceReference(ref, replacements, removeSpread) {
|
|
62
|
+
const spread = replacements.some((text) => text.startsWith('...'));
|
|
63
|
+
const parent = ref.getParent();
|
|
64
|
+
if (spread && ng_morph_1.Node.isSpreadElement(parent)) {
|
|
65
|
+
// Reference already spread by a previous migration run (`...TuiTextfield`).
|
|
66
|
+
// Replace only the inner identifier and keep the existing `...`, so the
|
|
67
|
+
// node kind is preserved and we don't produce a doubled `......` spread
|
|
68
|
+
// (which corrupts ts-morph's tree diff and aborts the whole migration).
|
|
69
|
+
ref.replaceWithText(replacements.map((text) => text.replace(/^\.\.\./, '')).join(', '));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (removeSpread && ng_morph_1.Node.isSpreadElement(parent)) {
|
|
73
|
+
// A v4 barrel array collapsed into a single class in v5 under the same
|
|
74
|
+
// name and module, so an existing `...Name` spread is now invalid
|
|
75
|
+
// (spreading a class is TS2488). Drop the `...` by replacing the whole
|
|
76
|
+
// spread element with the plain identifier.
|
|
77
|
+
parent.replaceWithText(replacements.join(', '));
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
ref.replaceWithText(replacements.join(', '));
|
|
81
|
+
}
|
|
47
82
|
function addImports(identifier, filePath) {
|
|
48
83
|
toArray(identifier).forEach(({ name, namedImport, moduleSpecifier }) => {
|
|
49
84
|
if (moduleSpecifier) {
|
|
@@ -51,15 +86,13 @@ function addImports(identifier, filePath) {
|
|
|
51
86
|
}
|
|
52
87
|
});
|
|
53
88
|
}
|
|
54
|
-
function
|
|
55
|
-
return toArray(to)
|
|
56
|
-
.map(({ name, spreadInModule, callExpression }) => {
|
|
89
|
+
function getReplacements(to, inModule) {
|
|
90
|
+
return toArray(to).map(({ name, spreadInModule, callExpression }) => {
|
|
57
91
|
if (spreadInModule && inModule) {
|
|
58
92
|
return `...${name}`;
|
|
59
93
|
}
|
|
60
94
|
return callExpression ? `${name}()` : name;
|
|
61
|
-
})
|
|
62
|
-
.join(', ');
|
|
95
|
+
});
|
|
63
96
|
}
|
|
64
97
|
function toArray(x) {
|
|
65
98
|
return Array.isArray(x) ? x : [x];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace-identifier.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/ng-update/steps/replace-identifier.ts"],"names":[],"mappings":";;AAgBA,gDAsBC;AAED,
|
|
1
|
+
{"version":3,"file":"replace-identifier.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/ng-update/steps/replace-identifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ const add_import_to_closest_module_1 = require("../../utils/add-import-to-closes
|
|
|
10
10
|
const colored_log_1 = require("../../utils/colored-log");
|
|
11
11
|
const format_migration_stats_1 = require("../../utils/format-migration-stats");
|
|
12
12
|
const get_execution_time_1 = require("../../utils/get-execution-time");
|
|
13
|
+
const remove_import_from_standalone_component_1 = require("../../utils/remove-import-from-standalone-component");
|
|
13
14
|
const run_steps_1 = require("../../utils/run-steps");
|
|
14
15
|
const steps_1 = require("../steps");
|
|
15
16
|
const get_file_system_1 = require("../utils/get-file-system");
|
|
@@ -31,6 +32,7 @@ const migrate_editor_providers_1 = require("./steps/migrate-editor-providers");
|
|
|
31
32
|
const migrate_filter_by_input_1 = require("./steps/migrate-filter-by-input");
|
|
32
33
|
const migrate_hint_directive_binding_1 = require("./steps/migrate-hint-directive-binding");
|
|
33
34
|
const migrate_i18n_language_signal_1 = require("./steps/migrate-i18n-language-signal");
|
|
35
|
+
const migrate_input_tag_component_1 = require("./steps/migrate-input-tag-component");
|
|
34
36
|
const migrate_packages_1 = require("./steps/migrate-packages");
|
|
35
37
|
const migrate_portals_1 = require("./steps/migrate-portals");
|
|
36
38
|
const migrate_range_token_1 = require("./steps/migrate-range-token");
|
|
@@ -61,6 +63,10 @@ function main(options, timings) {
|
|
|
61
63
|
name: 'replaceIdentifiers',
|
|
62
64
|
step: () => (0, steps_1.replaceIdentifiers)(options, identifiers_to_replace_1.IDENTIFIERS_TO_REPLACE),
|
|
63
65
|
},
|
|
66
|
+
{
|
|
67
|
+
name: 'migrateInputTagComponent',
|
|
68
|
+
step: () => (0, migrate_input_tag_component_1.migrateInputTagComponent)(tree, options),
|
|
69
|
+
},
|
|
64
70
|
{
|
|
65
71
|
name: 'migrateBreakpointService',
|
|
66
72
|
step: () => (0, migrate_breakpoint_service_1.migrateBreakpointService)(tree, options),
|
|
@@ -143,6 +149,7 @@ function main(options, timings) {
|
|
|
143
149
|
},
|
|
144
150
|
], timings);
|
|
145
151
|
(0, add_import_to_closest_module_1.saveAddedImports)(options);
|
|
152
|
+
(0, remove_import_from_standalone_component_1.saveRemovedImports)(options);
|
|
146
153
|
fileSystem.commitEdits();
|
|
147
154
|
(0, ng_morph_1.saveActiveProject)();
|
|
148
155
|
context.addTask(new tasks_1.NodePackageInstallTask());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/ng-update/v5/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/ng-update/v5/index.ts"],"names":[],"mappings":"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"}
|