@taiga-ui/cdk 5.19.0 → 5.20.0-canary.4d72ec2
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/constants/version.js.map +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-directives-truncate.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-utils-di.mjs +12 -2
- package/fesm2022/taiga-ui-cdk-utils-di.mjs.map +1 -1
- package/package.json +1 -1
- 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/constants/migration-warnings.js +15 -0
- package/schematics/ng-update/v5/steps/constants/migration-warnings.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
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.migratePrimitiveTextfield = migratePrimitiveTextfield;
|
|
4
|
+
const insert_todo_1 = require("../../../../utils/insert-todo");
|
|
5
|
+
const elements_1 = require("../../../../utils/templates/elements");
|
|
6
|
+
const migrate_attr_value_1 = require("../../../../utils/templates/migrate-attr-value");
|
|
7
|
+
const template_resource_1 = require("../../../../utils/templates/template-resource");
|
|
8
|
+
const control_state_attrs_1 = require("../../../utils/templates/control-state-attrs");
|
|
9
|
+
const get_original_attr_text_1 = require("../../../utils/templates/get-original-attr-text");
|
|
10
|
+
const DOCS_LINK = 'https://taiga-ui.dev/components/input';
|
|
11
|
+
const TEXTFIELD_WRAPPER_ATTRS = new Set([
|
|
12
|
+
'[tuiTextfieldAppearance]',
|
|
13
|
+
'[tuiTextfieldCleaner]',
|
|
14
|
+
'[tuiTextfieldSize]',
|
|
15
|
+
'tuiTextfieldAppearance',
|
|
16
|
+
'tuiTextfieldCleaner',
|
|
17
|
+
'tuiTextfieldSize',
|
|
18
|
+
].map((name) => name.toLowerCase()));
|
|
19
|
+
const TEXTFIELD_WRAPPER_ATTR_RENAMES = new Map([
|
|
20
|
+
['[tuiTextfieldFiller]'.toLowerCase(), '[filler]'],
|
|
21
|
+
['[tuiTextfieldIcon]'.toLowerCase(), '[iconEnd]'],
|
|
22
|
+
['[tuiTextfieldIconLeft]'.toLowerCase(), '[iconStart]'],
|
|
23
|
+
['tuiTextfieldFiller'.toLowerCase(), 'filler'],
|
|
24
|
+
['tuiTextfieldIcon'.toLowerCase(), 'iconEnd'],
|
|
25
|
+
['tuiTextfieldIconLeft'.toLowerCase(), 'iconStart'],
|
|
26
|
+
]);
|
|
27
|
+
const LABEL_OUTSIDE_ATTRS = new Set(['[tuiTextfieldLabelOutside]', 'tuiTextfieldLabelOutside'].map((name) => name.toLowerCase()));
|
|
28
|
+
// `<tui-primitive-textfield>` held the value via [(value)]; `<tui-textfield>` has no such
|
|
29
|
+
// property, so the binding moves to the projected `<input tuiTextfield>` as ngModel.
|
|
30
|
+
const VALUE_ATTR_RENAMES = new Map([
|
|
31
|
+
['(valueChange)'.toLowerCase(), '(ngModelChange)'],
|
|
32
|
+
['[(value)]'.toLowerCase(), '[(ngModel)]'],
|
|
33
|
+
['[value]'.toLowerCase(), '[ngModel]'],
|
|
34
|
+
]);
|
|
35
|
+
const FOCUSED_CHANGE_ATTRS = new Set(['(focusedChange)'.toLowerCase()]);
|
|
36
|
+
// Standalone CDK directives that attach to any element (including <tui-textfield>) and stay
|
|
37
|
+
// on the wrapper unchanged — they must not be reported as unrecognized attributes.
|
|
38
|
+
const WRAPPER_PASSTHROUGH_ATTRS = new Set([
|
|
39
|
+
'(tuiHoveredChange)',
|
|
40
|
+
'tuiActiveZone',
|
|
41
|
+
'[tuiActiveZone]',
|
|
42
|
+
'(tuiActiveZoneChange)',
|
|
43
|
+
].map((name) => name.toLowerCase()));
|
|
44
|
+
const HINT_ATTRS = new Set([
|
|
45
|
+
'[tuiHintAppearance]',
|
|
46
|
+
'[tuiHintContent]',
|
|
47
|
+
'[tuiHintDirection]',
|
|
48
|
+
'tuiHintAppearance',
|
|
49
|
+
'tuiHintContent',
|
|
50
|
+
'tuiHintDirection',
|
|
51
|
+
].map((name) => name.toLowerCase()));
|
|
52
|
+
const CONTROL_ATTRS = new Set([
|
|
53
|
+
'formControlName',
|
|
54
|
+
'[formControl]',
|
|
55
|
+
'formControl',
|
|
56
|
+
'[(ngModel)]',
|
|
57
|
+
'[ngModel]',
|
|
58
|
+
'ngModel',
|
|
59
|
+
'(ngModelChange)',
|
|
60
|
+
].map((name) => name.toLowerCase()));
|
|
61
|
+
const LEGACY_INPUT_ATTRS = new Set(['tuiTextfield', 'tuiTextfieldLegacy'].map((name) => name.toLowerCase()));
|
|
62
|
+
function isClassOrStyleAttr(nameLower) {
|
|
63
|
+
const stripped = nameLower.replaceAll(/^\[|\]$/g, '');
|
|
64
|
+
return (stripped === 'class' ||
|
|
65
|
+
stripped === 'style' ||
|
|
66
|
+
stripped === 'ngclass' ||
|
|
67
|
+
stripped === 'ngstyle' ||
|
|
68
|
+
stripped.startsWith('class.') ||
|
|
69
|
+
stripped.startsWith('style.'));
|
|
70
|
+
}
|
|
71
|
+
function hasHintContent(element) {
|
|
72
|
+
return element.attrs.some((attr) => {
|
|
73
|
+
const lower = attr.name.toLowerCase();
|
|
74
|
+
return (lower === 'tuiHintContent'.toLowerCase() ||
|
|
75
|
+
lower === '[tuiHintContent]'.toLowerCase());
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function migratePrimitiveTextfield({ resource, recorder, fileSystem, }) {
|
|
79
|
+
const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
|
|
80
|
+
const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
|
|
81
|
+
const elements = (0, elements_1.findElementsByTagName)(template, 'tui-primitive-textfield');
|
|
82
|
+
const processable = elements.filter((element) => !hasHintContent(element));
|
|
83
|
+
const replacements = processable
|
|
84
|
+
.map((element) => buildReplacement(template, element))
|
|
85
|
+
.filter((x) => Boolean(x))
|
|
86
|
+
.sort((a, b) => b.startOffset - a.startOffset);
|
|
87
|
+
replacements.forEach(({ startOffset, endOffset, replacement }) => {
|
|
88
|
+
recorder.remove(templateOffset + startOffset, endOffset - startOffset);
|
|
89
|
+
recorder.insertRight(templateOffset + startOffset, replacement);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
function buildReplacement(template, element) {
|
|
93
|
+
var _a, _b, _c, _d;
|
|
94
|
+
const loc = element.sourceCodeLocation;
|
|
95
|
+
if (!(loc === null || loc === void 0 ? void 0 : loc.startTag)) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
const isSelfClosing = !loc.endTag;
|
|
99
|
+
const endOffset = isSelfClosing ? loc.startTag.endOffset : loc.endOffset;
|
|
100
|
+
const textfieldAttrs = [];
|
|
101
|
+
const inputAttrs = ['tuiTextfield'];
|
|
102
|
+
const controlStateAttrs = (0, control_state_attrs_1.getControlStateAttrs)(element);
|
|
103
|
+
const controlStateAttrsLower = new Set(controlStateAttrs.map((a) => a.name.toLowerCase()));
|
|
104
|
+
const ctx = {
|
|
105
|
+
placeholder: '',
|
|
106
|
+
labelOutside: false,
|
|
107
|
+
focusedChangeAttr: null,
|
|
108
|
+
unknownAttrs: [],
|
|
109
|
+
};
|
|
110
|
+
for (const attr of element.attrs) {
|
|
111
|
+
const nameLower = attr.name.toLowerCase();
|
|
112
|
+
if (controlStateAttrsLower.has(nameLower)) {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (LABEL_OUTSIDE_ATTRS.has(nameLower)) {
|
|
116
|
+
const val = attr.value.trim();
|
|
117
|
+
if (val === 'true' || (!nameLower.startsWith('[') && val === '')) {
|
|
118
|
+
ctx.labelOutside = true;
|
|
119
|
+
}
|
|
120
|
+
else if (val === 'false') {
|
|
121
|
+
ctx.labelOutside = false;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
ctx.labelOutside = 'dynamic';
|
|
125
|
+
}
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const renamedWrapperAttr = TEXTFIELD_WRAPPER_ATTR_RENAMES.get(nameLower);
|
|
129
|
+
if (renamedWrapperAttr !== undefined) {
|
|
130
|
+
textfieldAttrs.push(attr.value ? `${renamedWrapperAttr}="${attr.value}"` : renamedWrapperAttr);
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
if (TEXTFIELD_WRAPPER_ATTRS.has(nameLower)) {
|
|
134
|
+
const original = (0, get_original_attr_text_1.getOriginalAttrText)(template, element, attr);
|
|
135
|
+
const migratedValue = (0, migrate_attr_value_1.migrateAttrValue)(nameLower, attr.value);
|
|
136
|
+
textfieldAttrs.push((0, get_original_attr_text_1.replaceAttrValue)(original, migratedValue));
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
const renamedValueAttr = VALUE_ATTR_RENAMES.get(nameLower);
|
|
140
|
+
if (renamedValueAttr !== undefined) {
|
|
141
|
+
inputAttrs.push(attr.value ? `${renamedValueAttr}="${attr.value}"` : renamedValueAttr);
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
if (CONTROL_ATTRS.has(nameLower)) {
|
|
145
|
+
inputAttrs.push((0, get_original_attr_text_1.getOriginalAttrText)(template, element, attr));
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
if (FOCUSED_CHANGE_ATTRS.has(nameLower)) {
|
|
149
|
+
ctx.focusedChangeAttr = (0, get_original_attr_text_1.getOriginalAttrText)(template, element, attr);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (HINT_ATTRS.has(nameLower)) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
if (isClassOrStyleAttr(nameLower) || WRAPPER_PASSTHROUGH_ATTRS.has(nameLower)) {
|
|
156
|
+
textfieldAttrs.push((0, get_original_attr_text_1.getOriginalAttrText)(template, element, attr));
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
const original = (0, get_original_attr_text_1.getOriginalAttrText)(template, element, attr);
|
|
160
|
+
const originalName = (_b = (_a = /^[\w[\]()]+/.exec(original)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : attr.name;
|
|
161
|
+
ctx.unknownAttrs.push(originalName);
|
|
162
|
+
textfieldAttrs.push(original);
|
|
163
|
+
}
|
|
164
|
+
const controlStateStr = (0, control_state_attrs_1.stringifyControlStateAttrs)(controlStateAttrs);
|
|
165
|
+
ctx.placeholder = isSelfClosing ? '' : getPlaceholderText(element);
|
|
166
|
+
const lineStart = template.lastIndexOf('\n', loc.startOffset) + 1;
|
|
167
|
+
const indent = (_d = (_c = /^[ \t]*/.exec(template.slice(lineStart, loc.startOffset))) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : '';
|
|
168
|
+
const wrapperAttrsStr = textfieldAttrs.length > 0 ? ` ${textfieldAttrs.join(' ')}` : '';
|
|
169
|
+
const innerContent = buildInnerContent({
|
|
170
|
+
element,
|
|
171
|
+
template,
|
|
172
|
+
inputAttrs,
|
|
173
|
+
controlStateStr,
|
|
174
|
+
ctx,
|
|
175
|
+
indent,
|
|
176
|
+
isSelfClosing,
|
|
177
|
+
});
|
|
178
|
+
const todoComment = buildTodoComment(ctx);
|
|
179
|
+
// With a TODO the comment ends in `\n`, so the tag needs its own indent; without one the
|
|
180
|
+
// whitespace preserved before startOffset already positions the tag.
|
|
181
|
+
const tagIndent = todoComment ? indent : '';
|
|
182
|
+
const core = `${tagIndent}<tui-textfield${wrapperAttrsStr}>\n${innerContent}${indent}</tui-textfield>`;
|
|
183
|
+
return {
|
|
184
|
+
startOffset: loc.startOffset,
|
|
185
|
+
endOffset,
|
|
186
|
+
replacement: `${todoComment}${core}`,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
function buildTodoComment(ctx) {
|
|
190
|
+
const notes = [];
|
|
191
|
+
if (ctx.focusedChangeAttr) {
|
|
192
|
+
notes.push(`${ctx.focusedChangeAttr} has no direct equivalent. Read focus state from the TuiTextfieldComponent.focused signal, or bind (focusin)/(focusout) on <input tuiTextfield>.`);
|
|
193
|
+
}
|
|
194
|
+
if (ctx.placeholder && ctx.labelOutside === 'dynamic') {
|
|
195
|
+
notes.push('[tuiTextfieldLabelOutside] was dynamic and cannot be migrated automatically. Use <label tuiLabel> inside <tui-textfield> for a floating label, or place a static label outside.');
|
|
196
|
+
}
|
|
197
|
+
for (const name of ctx.unknownAttrs) {
|
|
198
|
+
notes.push(`"${name}" is an unrecognized attribute and was placed on <tui-textfield>. Move it to <input tuiTextfield> if it targets the native element.`);
|
|
199
|
+
}
|
|
200
|
+
if (notes.length === 0) {
|
|
201
|
+
return '';
|
|
202
|
+
}
|
|
203
|
+
const lines = [
|
|
204
|
+
`<!-- ${insert_todo_1.TODO_MARK} tui-primitive-textfield migration (see ${DOCS_LINK}):`,
|
|
205
|
+
...notes.map((n) => ` - ${n}`),
|
|
206
|
+
'-->',
|
|
207
|
+
];
|
|
208
|
+
return `${lines.join('\n')}\n`;
|
|
209
|
+
}
|
|
210
|
+
function buildInnerContent({ element, template, inputAttrs, controlStateStr, ctx, indent, isSelfClosing, }) {
|
|
211
|
+
const { placeholder, labelOutside } = ctx;
|
|
212
|
+
const childElements = isSelfClosing
|
|
213
|
+
? []
|
|
214
|
+
: element.childNodes.filter((node) => node.nodeName !== '#text' && node.nodeName !== '#comment');
|
|
215
|
+
const labelEl = buildLabelEl(placeholder, labelOutside, indent);
|
|
216
|
+
const placeholderAttr = placeholder && labelOutside === true ? `placeholder="${placeholder}"` : '';
|
|
217
|
+
const legacyInnerInput = childElements.find((node) => node.nodeName === 'input' &&
|
|
218
|
+
node.attrs.some((a) => LEGACY_INPUT_ATTRS.has(a.name.toLowerCase())));
|
|
219
|
+
if (legacyInnerInput) {
|
|
220
|
+
const extraAttrs = [
|
|
221
|
+
...inputAttrs.filter((a) => a !== 'tuiTextfield'),
|
|
222
|
+
...(placeholderAttr ? [placeholderAttr] : []),
|
|
223
|
+
];
|
|
224
|
+
return `${labelEl}${migrateInnerInput({
|
|
225
|
+
parent: element,
|
|
226
|
+
inner: legacyInnerInput,
|
|
227
|
+
template,
|
|
228
|
+
attrsToAdd: extraAttrs,
|
|
229
|
+
controlStateStr,
|
|
230
|
+
indent,
|
|
231
|
+
})}`;
|
|
232
|
+
}
|
|
233
|
+
const genAttrs = [...inputAttrs, ...(placeholderAttr ? [placeholderAttr] : [])];
|
|
234
|
+
const attrsStr = genAttrs.length > 0 ? ` ${genAttrs.join(' ')}` : '';
|
|
235
|
+
const otherChildren = childElements
|
|
236
|
+
.map((child) => {
|
|
237
|
+
const childLoc = child.sourceCodeLocation;
|
|
238
|
+
return childLoc
|
|
239
|
+
? template.slice(childLoc.startOffset, childLoc.endOffset)
|
|
240
|
+
: '';
|
|
241
|
+
})
|
|
242
|
+
.join('');
|
|
243
|
+
return `${labelEl}${indent}<input${attrsStr}${controlStateStr} />\n${otherChildren}`;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Rewrites an existing `<input tuiTextfieldLegacy>` to `<input tuiTextfield ...>` by
|
|
247
|
+
* replacing the legacy directive and appending the value/control attrs moved off the host.
|
|
248
|
+
*/
|
|
249
|
+
function migrateInnerInput({ parent, inner, template, attrsToAdd, controlStateStr, indent, }) {
|
|
250
|
+
var _a;
|
|
251
|
+
const innerLoc = inner.sourceCodeLocation;
|
|
252
|
+
if (!(innerLoc === null || innerLoc === void 0 ? void 0 : innerLoc.startTag)) {
|
|
253
|
+
return '';
|
|
254
|
+
}
|
|
255
|
+
const legacyAttr = inner.attrs.find((a) => LEGACY_INPUT_ATTRS.has(a.name.toLowerCase()));
|
|
256
|
+
const legacyAttrLoc = legacyAttr
|
|
257
|
+
? (_a = innerLoc.attrs) === null || _a === void 0 ? void 0 : _a[legacyAttr.name.toLowerCase()]
|
|
258
|
+
: undefined;
|
|
259
|
+
let startTag = template.slice(innerLoc.startTag.startOffset, innerLoc.startTag.endOffset);
|
|
260
|
+
if (legacyAttrLoc) {
|
|
261
|
+
const relStart = legacyAttrLoc.startOffset - innerLoc.startTag.startOffset;
|
|
262
|
+
const relEnd = legacyAttrLoc.endOffset - innerLoc.startTag.startOffset;
|
|
263
|
+
startTag = `${startTag.slice(0, relStart)}tuiTextfield${startTag.slice(relEnd)}`;
|
|
264
|
+
}
|
|
265
|
+
// <input> is a void element — insert the extra attrs before the closing `>` or `/>`.
|
|
266
|
+
const closePos = startTag.endsWith('/>')
|
|
267
|
+
? startTag.length - 2
|
|
268
|
+
: startTag.lastIndexOf('>');
|
|
269
|
+
const extraAttrs = attrsToAdd.filter((a) => a !== 'tuiTextfield').join(' ');
|
|
270
|
+
const insertStr = `${extraAttrs ? ` ${extraAttrs}` : ''}${controlStateStr}`;
|
|
271
|
+
startTag = `${startTag.slice(0, closePos).trimEnd()}${insertStr}${startTag.slice(closePos)}`;
|
|
272
|
+
const innerStart = innerLoc.startOffset;
|
|
273
|
+
const siblingsAfter = parent.childNodes
|
|
274
|
+
.filter((child) => {
|
|
275
|
+
if (child === inner ||
|
|
276
|
+
child.nodeName === '#text' ||
|
|
277
|
+
child.nodeName === '#comment') {
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
const childLoc = child.sourceCodeLocation;
|
|
281
|
+
return !!childLoc && childLoc.startOffset > innerStart;
|
|
282
|
+
})
|
|
283
|
+
.map((child) => {
|
|
284
|
+
const childLoc = child.sourceCodeLocation;
|
|
285
|
+
return childLoc
|
|
286
|
+
? template.slice(childLoc.startOffset, childLoc.endOffset)
|
|
287
|
+
: '';
|
|
288
|
+
})
|
|
289
|
+
.join('');
|
|
290
|
+
return `${indent}${startTag}\n${siblingsAfter}`;
|
|
291
|
+
}
|
|
292
|
+
// labelOutside=false → floating <label tuiLabel>; ='dynamic' → keep raw text (a TODO explains it);
|
|
293
|
+
// =true → text becomes the input placeholder, handled by the caller, so no label element here.
|
|
294
|
+
function buildLabelEl(placeholder, labelOutside, indent) {
|
|
295
|
+
if (!placeholder) {
|
|
296
|
+
return '';
|
|
297
|
+
}
|
|
298
|
+
if (labelOutside === false) {
|
|
299
|
+
return `${indent}<label tuiLabel>${placeholder}</label>\n`;
|
|
300
|
+
}
|
|
301
|
+
return labelOutside === 'dynamic' ? `${indent}${placeholder}\n` : '';
|
|
302
|
+
}
|
|
303
|
+
function getPlaceholderText(element) {
|
|
304
|
+
var _a;
|
|
305
|
+
const textNode = element.childNodes.find((node) => node.nodeName === '#text' ? !!node.value.trim() : false);
|
|
306
|
+
return (_a = textNode === null || textNode === void 0 ? void 0 : textNode.value.trim()) !== null && _a !== void 0 ? _a : '';
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=migrate-primitive-textfield.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-primitive-textfield.js","sourceRoot":"","sources":["../../../../../../../projects/cdk/schematics/ng-update/v5/steps/templates/migrate-primitive-textfield.ts"],"names":[],"mappings":";;AA+HA,8DAyBC;AApJD,+DAAwD;AACxD,mEAA2E;AAC3E,uFAAgF;AAChF,qFAGuD;AAEvD,sFAGsD;AACtD,4FAGyD;AAQzD,MAAM,SAAS,GAAG,uCAAuC,CAAC;AAE1D,MAAM,uBAAuB,GAAG,IAAI,GAAG,CACnC;IACI,0BAA0B;IAC1B,uBAAuB;IACvB,oBAAoB;IACpB,wBAAwB;IACxB,qBAAqB;IACrB,kBAAkB;CACrB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACtC,CAAC;AAEF,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAiB;IAC3D,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC;IAClD,CAAC,oBAAoB,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC;IACjD,CAAC,wBAAwB,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC;IACvD,CAAC,oBAAoB,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC;IAC9C,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC;IAC7C,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAC/B,CAAC,4BAA4B,EAAE,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpE,IAAI,CAAC,WAAW,EAAE,CACrB,CACJ,CAAC;AAEF,0FAA0F;AAC1F,qFAAqF;AACrF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAiB;IAC/C,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,iBAAiB,CAAC;IAClD,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC;IAC1C,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC;CACzC,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAExE,4FAA4F;AAC5F,mFAAmF;AACnF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACrC;IACI,oBAAoB;IACpB,eAAe;IACf,iBAAiB;IACjB,uBAAuB;CAC1B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACtC,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,GAAG,CACtB;IACI,qBAAqB;IACrB,kBAAkB;IAClB,oBAAoB;IACpB,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;CACrB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACtC,CAAC;AAEF,MAAM,aAAa,GAAG,IAAI,GAAG,CACzB;IACI,iBAAiB;IACjB,eAAe;IACf,aAAa;IACb,aAAa;IACb,WAAW;IACX,SAAS;IACT,iBAAiB;CACpB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACtC,CAAC;AAEF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAC9B,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAC3E,CAAC;AAEF,SAAS,kBAAkB,CAAC,SAAiB;IACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEtD,OAAO,CACH,QAAQ,KAAK,OAAO;QACpB,QAAQ,KAAK,OAAO;QACpB,QAAQ,KAAK,SAAS;QACtB,QAAQ,KAAK,SAAS;QACtB,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC7B,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAChC,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACpC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEtC,OAAO,CACH,KAAK,KAAK,gBAAgB,CAAC,WAAW,EAAE;YACxC,KAAK,KAAK,kBAAkB,CAAC,WAAW,EAAE,CAC7C,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,yBAAyB,CAAC,EACtC,QAAQ,EACR,QAAQ,EACR,UAAU,GAKb;IACG,MAAM,QAAQ,GAAG,IAAA,mDAA+B,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAA,gCAAqB,EAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3E,MAAM,YAAY,GAAG,WAAW;SAC3B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACrD,MAAM,CAAC,CAAC,CAAC,EAAsE,EAAE,CAC9E,OAAO,CAAC,CAAC,CAAC,CACb;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IAEnD,YAAY,CAAC,OAAO,CAAC,CAAC,EAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAC,EAAE,EAAE;QAC3D,QAAQ,CAAC,MAAM,CAAC,cAAc,GAAG,WAAW,EAAE,SAAS,GAAG,WAAW,CAAC,CAAC;QACvE,QAAQ,CAAC,WAAW,CAAC,cAAc,GAAG,WAAW,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACP,CAAC;AAYD,SAAS,gBAAgB,CACrB,QAAgB,EAChB,OAAgB;;IAEhB,MAAM,GAAG,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAEvC,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,CAAA,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;IAClC,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;IACzE,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,MAAM,iBAAiB,GAAG,IAAA,0CAAoB,EAAC,OAAO,CAAC,CAAC;IAExD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAClC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACrD,CAAC;IAEF,MAAM,GAAG,GAAqB;QAC1B,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,KAAK;QACnB,iBAAiB,EAAE,IAAI;QACvB,YAAY,EAAE,EAAE;KACnB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,SAAS;QACb,CAAC;QAED,IAAI,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAE9B,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,CAAC;iBAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACzB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC;YACjC,CAAC;YAED,SAAS;QACb,CAAC;QAED,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEzE,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACnC,cAAc,CAAC,IAAI,CACf,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,kBAAkB,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAC5E,CAAC;YACF,SAAS;QACb,CAAC;QAED,IAAI,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAA,4CAAmB,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,IAAA,qCAAgB,EAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAE9D,cAAc,CAAC,IAAI,CAAC,IAAA,yCAAgB,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;YAC/D,SAAS;QACb,CAAC;QAED,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACjC,UAAU,CAAC,IAAI,CACX,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,gBAAgB,CACxE,CAAC;YACF,SAAS;QACb,CAAC;QAED,IAAI,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC,IAAA,4CAAmB,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9D,SAAS;QACb,CAAC;QAED,IAAI,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,iBAAiB,GAAG,IAAA,4CAAmB,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACrE,SAAS;QACb,CAAC;QAED,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,SAAS;QACb,CAAC;QAED,IAAI,kBAAkB,CAAC,SAAS,CAAC,IAAI,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5E,cAAc,CAAC,IAAI,CAAC,IAAA,4CAAmB,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAClE,SAAS;QACb,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,4CAAmB,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,MAAA,MAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,0CAAG,CAAC,CAAC,mCAAI,IAAI,CAAC,IAAI,CAAC;QAEpE,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,eAAe,GAAG,IAAA,gDAA0B,EAAC,iBAAiB,CAAC,CAAC;IAEtE,GAAG,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEnE,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAA,MAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,0CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;IAErF,MAAM,eAAe,GACjB,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpE,MAAM,YAAY,GAAG,iBAAiB,CAAC;QACnC,OAAO;QACP,QAAQ;QACR,UAAU;QACV,eAAe;QACf,GAAG;QACH,MAAM;QACN,aAAa;KAChB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,yFAAyF;IACzF,qEAAqE;IACrE,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,SAAS,iBAAiB,eAAe,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC;IAEvG,OAAO;QACH,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,SAAS;QACT,WAAW,EAAE,GAAG,WAAW,GAAG,IAAI,EAAE;KACvC,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAqB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CACN,GAAG,GAAG,CAAC,iBAAiB,kJAAkJ,CAC7K,CAAC;IACN,CAAC;IAED,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CACN,iLAAiL,CACpL,CAAC;IACN,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CACN,IAAI,IAAI,qIAAqI,CAChJ,CAAC;IACN,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG;QACV,QAAQ,uBAAS,2CAA2C,SAAS,IAAI;QACzE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,KAAK;KACR,CAAC;IAEF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,CAAC;AAED,SAAS,iBAAiB,CAAC,EACvB,OAAO,EACP,QAAQ,EACR,UAAU,EACV,eAAe,EACf,GAAG,EACH,MAAM,EACN,aAAa,GAShB;IACG,MAAM,EAAC,WAAW,EAAE,YAAY,EAAC,GAAG,GAAG,CAAC;IAExC,MAAM,aAAa,GAAG,aAAa;QAC/B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CACrB,CAAC,IAAe,EAAmB,EAAE,CACjC,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,CAChE,CAAC;IAER,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAEhE,MAAM,eAAe,GACjB,WAAW,IAAI,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/E,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,CACvC,CAAC,IAAI,EAAE,EAAE,CACL,IAAI,CAAC,QAAQ,KAAK,OAAO;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAC3E,CAAC;IAEF,IAAI,gBAAgB,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG;YACf,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC;YACjD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC;QAEF,OAAO,GAAG,OAAO,GAAG,iBAAiB,CAAC;YAClC,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,gBAAgB;YACvB,QAAQ;YACR,UAAU,EAAE,UAAU;YACtB,eAAe;YACf,MAAM;SACT,CAAC,EAAE,CAAC;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAErE,MAAM,aAAa,GAAG,aAAa;SAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACX,MAAM,QAAQ,GAAG,KAAK,CAAC,kBAAkB,CAAC;QAE1C,OAAO,QAAQ;YACX,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC;YAC1D,CAAC,CAAC,EAAE,CAAC;IACb,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEd,OAAO,GAAG,OAAO,GAAG,MAAM,SAAS,QAAQ,GAAG,eAAe,QAAQ,aAAa,EAAE,CAAC;AACzF,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,EACvB,MAAM,EACN,KAAK,EACL,QAAQ,EACR,UAAU,EACV,eAAe,EACf,MAAM,GAQT;;IACG,MAAM,QAAQ,GAAG,KAAK,CAAC,kBAAkB,CAAC;IAE1C,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAA,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACtC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAC/C,CAAC;IAEF,MAAM,aAAa,GAAG,UAAU;QAC5B,CAAC,CAAC,MAAA,QAAQ,CAAC,KAAK,0CAAG,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjD,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,QAAQ,GAAG,QAAQ,CAAC,KAAK,CACzB,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAC7B,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAC9B,CAAC;IAEF,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3E,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAEvE,QAAQ,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,eAAe,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IACrF,CAAC;IAED,qFAAqF;IACrF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC;IAE5E,QAAQ,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,EAAE,GAAG,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;IAE7F,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC;IAExC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU;SAClC,MAAM,CAAC,CAAC,KAAK,EAAoB,EAAE;QAChC,IACI,KAAK,KAAK,KAAK;YACf,KAAK,CAAC,QAAQ,KAAK,OAAO;YAC1B,KAAK,CAAC,QAAQ,KAAK,UAAU,EAC/B,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAI,KAAiB,CAAC,kBAAkB,CAAC;QAEvD,OAAO,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;IAC3D,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACX,MAAM,QAAQ,GAAG,KAAK,CAAC,kBAAkB,CAAC;QAE1C,OAAO,QAAQ;YACX,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC;YAC1D,CAAC,CAAC,EAAE,CAAC;IACb,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEd,OAAO,GAAG,MAAM,GAAG,QAAQ,KAAK,aAAa,EAAE,CAAC;AACpD,CAAC;AAED,mGAAmG;AACnG,+FAA+F;AAC/F,SAAS,YAAY,CACjB,WAAmB,EACnB,YAAiC,EACjC,MAAc;IAEd,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,MAAM,mBAAmB,WAAW,YAAY,CAAC;IAC/D,CAAC;IAED,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB;;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAe,EAAoB,EAAE,CAC3E,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,IAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CACxE,CAAC;IAEF,OAAO,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC,IAAI,EAAE,mCAAI,EAAE,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeImportFromStandaloneComponent = removeImportFromStandaloneComponent;
|
|
4
|
+
exports.saveRemovedImports = saveRemovedImports;
|
|
5
|
+
const ng_morph_1 = require("ng-morph");
|
|
6
|
+
const importsToRemove = new Map();
|
|
7
|
+
// Standalone-only by design: drops the entry from the component's own `imports: [...]`.
|
|
8
|
+
// A non-standalone component has no such array, so this is a no-op there — we deliberately
|
|
9
|
+
// never touch a shared @NgModule, where removing a pipe a sibling still uses would be unsafe.
|
|
10
|
+
// Only the imports[] entry is dropped (unused there = NG8113); the now-unused import statement
|
|
11
|
+
// is left for organize-imports (harmless TS6133).
|
|
12
|
+
function removeImportFromStandaloneComponent(componentPath, moduleName) {
|
|
13
|
+
importsToRemove.set(`${componentPath}_${moduleName}`, { componentPath, moduleName });
|
|
14
|
+
}
|
|
15
|
+
function saveRemovedImports(_options) {
|
|
16
|
+
importsToRemove.forEach(({ componentPath, moduleName }) => {
|
|
17
|
+
const [ngComponent] = (0, ng_morph_1.getNgComponents)(componentPath);
|
|
18
|
+
if (!ngComponent) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const decorator = ngComponent.getDecorator('Component');
|
|
22
|
+
const metadata = decorator === null || decorator === void 0 ? void 0 : decorator.getArguments()[0];
|
|
23
|
+
if (!ng_morph_1.Node.isObjectLiteralExpression(metadata)) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const importsProperty = metadata.getProperty('imports');
|
|
27
|
+
if (!ng_morph_1.Node.isPropertyAssignment(importsProperty)) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const importsArray = importsProperty.getInitializer();
|
|
31
|
+
if (!ng_morph_1.Node.isArrayLiteralExpression(importsArray)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const index = importsArray
|
|
35
|
+
.getElements()
|
|
36
|
+
.findIndex((element) => element.getText() === moduleName);
|
|
37
|
+
if (index !== -1) {
|
|
38
|
+
importsArray.removeElement(index);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
importsToRemove.clear();
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=remove-import-from-standalone-component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-import-from-standalone-component.js","sourceRoot":"","sources":["../../../../projects/cdk/schematics/utils/remove-import-from-standalone-component.ts"],"names":[],"mappings":";;AAiBA,kFAKC;AAED,gDAqCC;AA7DD,uCAA+C;AAI/C,MAAM,eAAe,GAAG,IAAI,GAAG,EAM5B,CAAC;AAEJ,wFAAwF;AACxF,2FAA2F;AAC3F,8FAA8F;AAC9F,+FAA+F;AAC/F,kDAAkD;AAClD,SAAgB,mCAAmC,CAC/C,aAAqB,EACrB,UAAkB;IAElB,eAAe,CAAC,GAAG,CAAC,GAAG,aAAa,IAAI,UAAU,EAAE,EAAE,EAAC,aAAa,EAAE,UAAU,EAAC,CAAC,CAAC;AACvF,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAmB;IAClD,eAAe,CAAC,OAAO,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,EAAC,EAAE,EAAE;QACpD,MAAM,CAAC,WAAW,CAAC,GAAG,IAAA,0BAAe,EAAC,aAAa,CAAC,CAAC;QAErD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,GAAG,CAAC,CAAC,CAAC;QAE9C,IAAI,CAAC,eAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO;QACX,CAAC;QAED,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,CAAC,eAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9C,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,EAAE,CAAC;QAEtD,IAAI,CAAC,eAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/C,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,YAAY;aACrB,WAAW,EAAE;aACb,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC;QAE9D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,eAAe,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC"}
|
package/utils/di/index.d.ts
CHANGED