@taiga-ui/cdk 5.0.0-rc.4 → 5.0.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.
Files changed (200) hide show
  1. package/constants/used-icons.d.ts +1 -1
  2. package/constants/version.d.ts +1 -1
  3. package/constants/version.js +1 -1
  4. package/constants/version.js.map +1 -1
  5. package/directives/index.d.ts +1 -0
  6. package/directives/truncate/index.d.ts +2 -0
  7. package/directives/truncate/truncate.directive.d.ts +13 -0
  8. package/directives/truncate/truncate.service.d.ts +9 -0
  9. package/directives/visual-viewport/visual-viewport.directive.d.ts +1 -0
  10. package/fesm2022/taiga-ui-cdk-classes.mjs +3 -3
  11. package/fesm2022/taiga-ui-cdk-classes.mjs.map +1 -1
  12. package/fesm2022/taiga-ui-cdk-constants.mjs +1 -5
  13. package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
  14. package/fesm2022/taiga-ui-cdk-date-time.mjs.map +1 -1
  15. package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs +4 -4
  16. package/fesm2022/taiga-ui-cdk-directives-active-zone.mjs.map +1 -1
  17. package/fesm2022/taiga-ui-cdk-directives-animated.mjs +3 -3
  18. package/fesm2022/taiga-ui-cdk-directives-animated.mjs.map +1 -1
  19. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs +3 -3
  20. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs.map +1 -1
  21. package/fesm2022/taiga-ui-cdk-directives-control.mjs +3 -3
  22. package/fesm2022/taiga-ui-cdk-directives-control.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs +3 -3
  24. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-cdk-directives-element.mjs +3 -3
  26. package/fesm2022/taiga-ui-cdk-directives-element.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs +3 -3
  28. package/fesm2022/taiga-ui-cdk-directives-focus-trap.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-cdk-directives-font-size.mjs +3 -3
  30. package/fesm2022/taiga-ui-cdk-directives-font-size.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs +3 -3
  32. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-cdk-directives-hovered.mjs +6 -6
  34. package/fesm2022/taiga-ui-cdk-directives-hovered.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-cdk-directives-item.mjs +3 -3
  36. package/fesm2022/taiga-ui-cdk-directives-media.mjs +3 -3
  37. package/fesm2022/taiga-ui-cdk-directives-media.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs +3 -3
  39. package/fesm2022/taiga-ui-cdk-directives-native-validator.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs +6 -6
  41. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-cdk-directives-pan.mjs +6 -6
  43. package/fesm2022/taiga-ui-cdk-directives-pan.mjs.map +1 -1
  44. package/fesm2022/taiga-ui-cdk-directives-platform.mjs +3 -3
  45. package/fesm2022/taiga-ui-cdk-directives-platform.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-cdk-directives-resizer.mjs +6 -6
  47. package/fesm2022/taiga-ui-cdk-directives-resizer.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-cdk-directives-swipe.mjs +6 -6
  49. package/fesm2022/taiga-ui-cdk-directives-swipe.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs +6 -9
  51. package/fesm2022/taiga-ui-cdk-directives-transitioned.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-cdk-directives-truncate.mjs +177 -0
  53. package/fesm2022/taiga-ui-cdk-directives-truncate.mjs.map +1 -0
  54. package/fesm2022/taiga-ui-cdk-directives-validator.mjs +3 -3
  55. package/fesm2022/taiga-ui-cdk-directives-validator.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs +3 -3
  57. package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs +6 -3
  59. package/fesm2022/taiga-ui-cdk-directives-visual-viewport.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-cdk-directives-with-styles.mjs +3 -3
  61. package/fesm2022/taiga-ui-cdk-directives-with-styles.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-cdk-directives-zoom.mjs +6 -6
  63. package/fesm2022/taiga-ui-cdk-directives-zoom.mjs.map +1 -1
  64. package/fesm2022/taiga-ui-cdk-directives.mjs +1 -0
  65. package/fesm2022/taiga-ui-cdk-directives.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-cdk-observables.mjs.map +1 -1
  67. package/fesm2022/taiga-ui-cdk-pipes-filter.mjs +3 -3
  68. package/fesm2022/taiga-ui-cdk-pipes-filter.mjs.map +1 -1
  69. package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs +3 -3
  70. package/fesm2022/taiga-ui-cdk-pipes-mapper.mjs.map +1 -1
  71. package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs +3 -3
  72. package/fesm2022/taiga-ui-cdk-pipes-obfuscate.mjs.map +1 -1
  73. package/fesm2022/taiga-ui-cdk-portals.mjs +13 -16
  74. package/fesm2022/taiga-ui-cdk-portals.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-cdk-tokens.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-cdk-utils-di.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-cdk-utils-dom.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-cdk-utils-focus.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-cdk-utils-math.mjs.map +1 -1
  80. package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs +5 -1
  81. package/fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs.map +1 -1
  82. package/package.json +28 -10
  83. package/schematics/ng-add/constants/versions.d.ts +1 -1
  84. package/schematics/ng-add/index.js +0 -4
  85. package/schematics/ng-add/index.js.map +1 -1
  86. package/schematics/ng-update/interfaces/replacement-function-parameter.d.ts +4 -2
  87. package/schematics/ng-update/utils/replace-attrs-in-host.d.ts +5 -0
  88. package/schematics/ng-update/utils/replace-attrs-in-host.js +41 -0
  89. package/schematics/ng-update/utils/replace-attrs-in-host.js.map +1 -0
  90. package/schematics/ng-update/utils/replace-function-parameters.js +19 -16
  91. package/schematics/ng-update/utils/replace-function-parameters.js.map +1 -1
  92. package/schematics/ng-update/v5/index.js +31 -6
  93. package/schematics/ng-update/v5/index.js.map +1 -1
  94. package/schematics/ng-update/v5/steps/constants/attr-with-values-to-replace.js +45 -0
  95. package/schematics/ng-update/v5/steps/constants/attr-with-values-to-replace.js.map +1 -1
  96. package/schematics/ng-update/v5/steps/constants/attrs-in-host-to-replace.d.ts +4 -0
  97. package/schematics/ng-update/v5/steps/constants/attrs-in-host-to-replace.js +10 -0
  98. package/schematics/ng-update/v5/steps/constants/attrs-in-host-to-replace.js.map +1 -0
  99. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js +49 -0
  100. package/schematics/ng-update/v5/steps/constants/attrs-to-replace.js.map +1 -1
  101. package/schematics/ng-update/v5/steps/constants/function-parameters-to-replace.js +4 -5
  102. package/schematics/ng-update/v5/steps/constants/function-parameters-to-replace.js.map +1 -1
  103. package/schematics/ng-update/v5/steps/constants/html-comments.js +11 -0
  104. package/schematics/ng-update/v5/steps/constants/html-comments.js.map +1 -1
  105. package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js +290 -0
  106. package/schematics/ng-update/v5/steps/constants/identifiers-to-replace.js.map +1 -1
  107. package/schematics/ng-update/v5/steps/constants/inputs-to-remove.js +5 -0
  108. package/schematics/ng-update/v5/steps/constants/inputs-to-remove.js.map +1 -1
  109. package/schematics/ng-update/v5/steps/constants/migration-warnings.js +54 -0
  110. package/schematics/ng-update/v5/steps/constants/migration-warnings.js.map +1 -1
  111. package/schematics/ng-update/v5/steps/constants/modules-to-remove.js +16 -0
  112. package/schematics/ng-update/v5/steps/constants/modules-to-remove.js.map +1 -1
  113. package/schematics/ng-update/v5/steps/constants/style-comments.d.ts +1 -1
  114. package/schematics/ng-update/v5/steps/constants/style-comments.js +4 -4
  115. package/schematics/ng-update/v5/steps/constants/style-comments.js.map +1 -1
  116. package/schematics/ng-update/v5/steps/constants/tags-to-replace.js +5 -0
  117. package/schematics/ng-update/v5/steps/constants/tags-to-replace.js.map +1 -1
  118. package/schematics/ng-update/v5/steps/migrate-dialog-legacy-sizes.d.ts +3 -0
  119. package/schematics/ng-update/v5/steps/migrate-dialog-legacy-sizes.js +110 -0
  120. package/schematics/ng-update/v5/steps/migrate-dialog-legacy-sizes.js.map +1 -0
  121. package/schematics/ng-update/v5/steps/migrate-doc-i18n-tokens.d.ts +15 -0
  122. package/schematics/ng-update/v5/steps/migrate-doc-i18n-tokens.js +94 -0
  123. package/schematics/ng-update/v5/steps/migrate-doc-i18n-tokens.js.map +1 -0
  124. package/schematics/ng-update/v5/steps/migrate-filter-by-input.d.ts +3 -0
  125. package/schematics/ng-update/v5/steps/migrate-filter-by-input.js +103 -0
  126. package/schematics/ng-update/v5/steps/migrate-filter-by-input.js.map +1 -0
  127. package/schematics/ng-update/v5/steps/migrate-templates.js +39 -2
  128. package/schematics/ng-update/v5/steps/migrate-templates.js.map +1 -1
  129. package/schematics/ng-update/v5/steps/styles/migrate-imports.js +1 -0
  130. package/schematics/ng-update/v5/steps/styles/migrate-imports.js.map +1 -1
  131. package/schematics/ng-update/v5/steps/templates/migrate-calendar-sheet-single.d.ts +8 -0
  132. package/schematics/ng-update/v5/steps/templates/migrate-calendar-sheet-single.js +118 -0
  133. package/schematics/ng-update/v5/steps/templates/migrate-calendar-sheet-single.js.map +1 -0
  134. package/schematics/ng-update/v5/steps/templates/migrate-chart-hint.d.ts +8 -0
  135. package/schematics/ng-update/v5/steps/templates/migrate-chart-hint.js +17 -0
  136. package/schematics/ng-update/v5/steps/templates/migrate-chart-hint.js.map +1 -0
  137. package/schematics/ng-update/v5/steps/templates/migrate-combo-box.d.ts +8 -0
  138. package/schematics/ng-update/v5/steps/templates/migrate-combo-box.js +207 -0
  139. package/schematics/ng-update/v5/steps/templates/migrate-combo-box.js.map +1 -0
  140. package/schematics/ng-update/v5/steps/templates/migrate-format-phone-pipe.d.ts +8 -0
  141. package/schematics/ng-update/v5/steps/templates/migrate-format-phone-pipe.js +41 -0
  142. package/schematics/ng-update/v5/steps/templates/migrate-format-phone-pipe.js.map +1 -0
  143. package/schematics/ng-update/v5/steps/templates/migrate-input-color.d.ts +8 -0
  144. package/schematics/ng-update/v5/steps/templates/migrate-input-color.js +52 -0
  145. package/schematics/ng-update/v5/steps/templates/migrate-input-color.js.map +1 -0
  146. package/schematics/ng-update/v5/steps/templates/migrate-input-date-multi.d.ts +8 -0
  147. package/schematics/ng-update/v5/steps/templates/migrate-input-date-multi.js +178 -0
  148. package/schematics/ng-update/v5/steps/templates/migrate-input-date-multi.js.map +1 -0
  149. package/schematics/ng-update/v5/steps/templates/migrate-input-date-range.d.ts +8 -0
  150. package/schematics/ng-update/v5/steps/templates/migrate-input-date-range.js +103 -0
  151. package/schematics/ng-update/v5/steps/templates/migrate-input-date-range.js.map +1 -0
  152. package/schematics/ng-update/v5/steps/templates/migrate-input-date.d.ts +8 -0
  153. package/schematics/ng-update/v5/steps/templates/migrate-input-date.js +115 -0
  154. package/schematics/ng-update/v5/steps/templates/migrate-input-date.js.map +1 -0
  155. package/schematics/ng-update/v5/steps/templates/migrate-input-month.d.ts +8 -0
  156. package/schematics/ng-update/v5/steps/templates/migrate-input-month.js +93 -0
  157. package/schematics/ng-update/v5/steps/templates/migrate-input-month.js.map +1 -0
  158. package/schematics/ng-update/v5/steps/templates/migrate-input-password.d.ts +8 -0
  159. package/schematics/ng-update/v5/steps/templates/migrate-input-password.js +54 -0
  160. package/schematics/ng-update/v5/steps/templates/migrate-input-password.js.map +1 -0
  161. package/schematics/ng-update/v5/steps/templates/migrate-input-phone-international.d.ts +8 -0
  162. package/schematics/ng-update/v5/steps/templates/migrate-input-phone-international.js +84 -0
  163. package/schematics/ng-update/v5/steps/templates/migrate-input-phone-international.js.map +1 -0
  164. package/schematics/ng-update/v5/steps/templates/migrate-input-phone.d.ts +8 -0
  165. package/schematics/ng-update/v5/steps/templates/migrate-input-phone.js +90 -0
  166. package/schematics/ng-update/v5/steps/templates/migrate-input-phone.js.map +1 -0
  167. package/schematics/ng-update/v5/steps/templates/migrate-input-tag.d.ts +8 -0
  168. package/schematics/ng-update/v5/steps/templates/migrate-input-tag.js +145 -0
  169. package/schematics/ng-update/v5/steps/templates/migrate-input-tag.js.map +1 -0
  170. package/schematics/ng-update/v5/steps/templates/migrate-input-time.d.ts +8 -0
  171. package/schematics/ng-update/v5/steps/templates/migrate-input-time.js +114 -0
  172. package/schematics/ng-update/v5/steps/templates/migrate-input-time.js.map +1 -0
  173. package/schematics/ng-update/v5/steps/templates/migrate-input.d.ts +8 -0
  174. package/schematics/ng-update/v5/steps/templates/migrate-input.js +302 -0
  175. package/schematics/ng-update/v5/steps/templates/migrate-input.js.map +1 -0
  176. package/schematics/ng-update/v5/steps/templates/migrate-multi-select.d.ts +8 -0
  177. package/schematics/ng-update/v5/steps/templates/migrate-multi-select.js +250 -0
  178. package/schematics/ng-update/v5/steps/templates/migrate-multi-select.js.map +1 -0
  179. package/schematics/ng-update/v5/steps/templates/migrate-proprietary-textfield-icons.d.ts +8 -0
  180. package/schematics/ng-update/v5/steps/templates/migrate-proprietary-textfield-icons.js +39 -0
  181. package/schematics/ng-update/v5/steps/templates/migrate-proprietary-textfield-icons.js.map +1 -0
  182. package/schematics/ng-update/v5/steps/templates/migrate-repeat-times.js +67 -0
  183. package/schematics/ng-update/v5/steps/templates/migrate-repeat-times.js.map +1 -1
  184. package/schematics/ng-update/v5/steps/templates/migrate-select.d.ts +8 -0
  185. package/schematics/ng-update/v5/steps/templates/migrate-select.js +148 -0
  186. package/schematics/ng-update/v5/steps/templates/migrate-select.js.map +1 -0
  187. package/schematics/ng-update/v5/steps/templates/migrate-sidebar.d.ts +8 -0
  188. package/schematics/ng-update/v5/steps/templates/migrate-sidebar.js +107 -0
  189. package/schematics/ng-update/v5/steps/templates/migrate-sidebar.js.map +1 -0
  190. package/schematics/ng-update/v5/steps/templates/migrate-textarea.d.ts +8 -0
  191. package/schematics/ng-update/v5/steps/templates/migrate-textarea.js +301 -0
  192. package/schematics/ng-update/v5/steps/templates/migrate-textarea.js.map +1 -0
  193. package/schematics/utils/run-migration.d.ts +3 -0
  194. package/schematics/utils/run-migration.js +29 -2
  195. package/schematics/utils/run-migration.js.map +1 -1
  196. package/schematics/utils/templates/migrate-attr-value.d.ts +11 -0
  197. package/schematics/utils/templates/migrate-attr-value.js +30 -0
  198. package/schematics/utils/templates/migrate-attr-value.js.map +1 -0
  199. package/utils/miscellaneous/index.d.ts +1 -0
  200. package/utils/miscellaneous/is-flat.d.ts +1 -0
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateComboBox = migrateComboBox;
4
+ const insert_todo_1 = require("../../../../utils/insert-todo");
5
+ const elements_1 = require("../../../../utils/templates/elements");
6
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
7
+ const replace_tag_1 = require("../../../utils/templates/replace-tag");
8
+ const DOCS_LINK = 'https://taiga-ui.dev/components/combo-box';
9
+ const CONTROL_ATTR_NAMES = [
10
+ 'formControlName',
11
+ '[formControl]',
12
+ 'formControl',
13
+ '[(ngModel)]',
14
+ '[ngModel]',
15
+ 'ngModel',
16
+ ];
17
+ const CONTROL_ATTRS = new Set(CONTROL_ATTR_NAMES.map((name) => name.toLowerCase()));
18
+ const INPUT_ATTRS = new Set(['[strictMatcher]'.toLowerCase(), '[strict]']);
19
+ const REMOVE_ATTRS = new Set([
20
+ '[tuiTextfieldLabelOutside]'.toLowerCase(),
21
+ 'tuiTextfieldLabelOutside'.toLowerCase(),
22
+ ]);
23
+ function migrateComboBox({ resource, recorder, fileSystem, }) {
24
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
25
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
26
+ const elements = (0, elements_1.findElementsByTagName)(template, 'tui-combo-box');
27
+ elements.forEach((element) => {
28
+ var _a, _b;
29
+ const sourceCodeLocation = element.sourceCodeLocation;
30
+ const controlAttrs = element.attrs.filter((attr) => CONTROL_ATTRS.has(attr.name.toLowerCase()));
31
+ const inputAttrs = element.attrs.filter((attr) => INPUT_ATTRS.has(attr.name.toLowerCase()));
32
+ const removeAttrs = element.attrs.filter((attr) => REMOVE_ATTRS.has(attr.name.toLowerCase()));
33
+ const labelOutsideAttr = removeAttrs.find((attr) => REMOVE_ATTRS.has(attr.name.toLowerCase()));
34
+ const searchAttr = element.attrs.find((attr) => attr.name.toLowerCase() === '[search]');
35
+ const searchChangeAttr = element.attrs.find((attr) => attr.name.toLowerCase() === '(searchChange)'.toLowerCase());
36
+ const valueContentAttr = element.attrs.find((attr) => attr.name.toLowerCase() === '[valueContent]'.toLowerCase());
37
+ for (const attr of [...controlAttrs, ...inputAttrs, ...removeAttrs]) {
38
+ removeAttr(recorder, templateOffset, element, attr.name, template);
39
+ }
40
+ if (searchAttr) {
41
+ removeAttr(recorder, templateOffset, element, searchAttr.name, template);
42
+ }
43
+ if (searchChangeAttr) {
44
+ removeAttr(recorder, templateOffset, element, searchChangeAttr.name, template);
45
+ }
46
+ const addAttributes = [];
47
+ if (valueContentAttr) {
48
+ removeAttr(recorder, templateOffset, element, '[valueContent]', template);
49
+ addAttributes.push('#textfieldRef', `[content]="textfieldRef.focused() ? '' : ${valueContentAttr.value}"`);
50
+ }
51
+ (0, replace_tag_1.replaceTag)(recorder, sourceCodeLocation, 'tui-combo-box', 'tui-textfield', template, templateOffset, addAttributes);
52
+ if (searchAttr || searchChangeAttr) {
53
+ const searchTodo = [
54
+ `<!-- ${insert_todo_1.TODO_MARK} tui-combo-box migration (see ${DOCS_LINK}):`,
55
+ ' - [search] / (searchChange): use native (input) event on <input tuiComboBox>',
56
+ '-->\n',
57
+ ].join('\n');
58
+ const insertAt = ((_a = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.startOffset) !== null && _a !== void 0 ? _a : 0) + templateOffset;
59
+ recorder.insertLeft(insertAt, searchTodo);
60
+ }
61
+ const searchHandler = searchChangeAttr
62
+ ? ` (input)="${searchChangeAttr.value.replaceAll('$event', '$event.target.value')}"`
63
+ : '';
64
+ const inputs = element.childNodes.filter((node) => node.nodeName === 'input');
65
+ if (inputs.length) {
66
+ handleExistingInput({
67
+ inputs,
68
+ recorder,
69
+ templateOffset,
70
+ template,
71
+ controlAttrs,
72
+ inputAttrs,
73
+ searchHandler,
74
+ });
75
+ if (!labelOutsideAttr || labelOutsideAttr.value === 'false') {
76
+ wrapTextInLabel(recorder, templateOffset, element);
77
+ }
78
+ }
79
+ else {
80
+ handleGeneratedInput({
81
+ element,
82
+ recorder,
83
+ templateOffset,
84
+ controlAttrs,
85
+ inputAttrs,
86
+ searchHandler,
87
+ sourceCodeLocation,
88
+ labelOutside: (_b = labelOutsideAttr === null || labelOutsideAttr === void 0 ? void 0 : labelOutsideAttr.value) !== null && _b !== void 0 ? _b : '',
89
+ template,
90
+ });
91
+ }
92
+ });
93
+ }
94
+ function handleExistingInput({ inputs, recorder, templateOffset, template, controlAttrs, inputAttrs, searchHandler, }) {
95
+ inputs.forEach((input) => {
96
+ var _a, _b, _c, _d, _e, _f;
97
+ const legacyAttr = input.attrs.find((attr) => /^tuitextfieldlegacy$/i.test(attr.name));
98
+ if (legacyAttr) {
99
+ const { startOffset = 0, endOffset = 0 } = (_c = (_b = (_a = input.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[legacyAttr.name]) !== null && _c !== void 0 ? _c : {};
100
+ const lineStart = template.lastIndexOf('\n', startOffset) + 1;
101
+ const lineEnd = template.indexOf('\n', endOffset);
102
+ const lineText = lineEnd === -1 ? '' : template.slice(lineStart, lineEnd);
103
+ const attrText = template.slice(startOffset, endOffset);
104
+ if (lineText.trim() === attrText.trim() && lineEnd !== -1) {
105
+ recorder.remove(templateOffset + lineStart, lineEnd - lineStart + 1);
106
+ }
107
+ else {
108
+ recorder.remove(templateOffset + startOffset, endOffset - startOffset);
109
+ }
110
+ }
111
+ const insertOffset = ((_f = (_e = (_d = input.sourceCodeLocation) === null || _d === void 0 ? void 0 : _d.startTag) === null || _e === void 0 ? void 0 : _e.startOffset) !== null && _f !== void 0 ? _f : 0) + '<input'.length;
112
+ const formAttrs = formatControlAttrs(controlAttrs);
113
+ const inputAttrStr = formatInputAttrs(inputAttrs);
114
+ recorder.insertRight(templateOffset + insertOffset, ` tuiComboBox${formAttrs}${inputAttrStr}${searchHandler}`);
115
+ });
116
+ }
117
+ function handleGeneratedInput({ element, recorder, templateOffset, controlAttrs, inputAttrs, searchHandler, sourceCodeLocation, labelOutside, template, }) {
118
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
119
+ const formAttrs = formatControlAttrs(controlAttrs);
120
+ const inputAttrStr = formatInputAttrs(inputAttrs);
121
+ const labelNode = element.childNodes.find((node) => node.nodeName === '#text' && !!node.value.trim());
122
+ if (labelOutside === 'true' && labelNode) {
123
+ const labelText = labelNode.value.trim();
124
+ const textStart = (_b = (_a = labelNode.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.startOffset) !== null && _b !== void 0 ? _b : 0;
125
+ const textEnd = (_d = (_c = labelNode.sourceCodeLocation) === null || _c === void 0 ? void 0 : _c.endOffset) !== null && _d !== void 0 ? _d : 0;
126
+ recorder.remove(templateOffset + textStart, textEnd - textStart);
127
+ recorder.insertRight(templateOffset + textStart, `\n<input tuiComboBox${formAttrs}${inputAttrStr}${searchHandler} placeholder="${labelText}" />\n`);
128
+ return;
129
+ }
130
+ if (!labelOutside || labelOutside === 'false') {
131
+ wrapTextInLabel(recorder, templateOffset, element);
132
+ }
133
+ else if (labelNode) {
134
+ const elementStart = (_f = (_e = element.sourceCodeLocation) === null || _e === void 0 ? void 0 : _e.startOffset) !== null && _f !== void 0 ? _f : 0;
135
+ const lineStart = template.lastIndexOf('\n', elementStart - 1) + 1;
136
+ const indent = template.slice(lineStart, elementStart);
137
+ const textStart = (_h = (_g = labelNode.sourceCodeLocation) === null || _g === void 0 ? void 0 : _g.startOffset) !== null && _h !== void 0 ? _h : 0;
138
+ recorder.insertRight(templateOffset + textStart + 1, `${indent}<!-- ${insert_todo_1.TODO_MARK} Use <label tuiLabel> element inside <tui-textfield> for a floating label or input[placeholder] for empty value label -->\n`);
139
+ }
140
+ const insertOffset = labelNode
141
+ ? ((_k = (_j = labelNode.sourceCodeLocation) === null || _j === void 0 ? void 0 : _j.endOffset) !== null && _k !== void 0 ? _k : 0)
142
+ : ((_m = (_l = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.endTag) === null || _l === void 0 ? void 0 : _l.startOffset) !== null && _m !== void 0 ? _m : 0);
143
+ recorder.insertRight(templateOffset + insertOffset, `\n<input tuiComboBox${formAttrs}${inputAttrStr}${searchHandler} />\n`);
144
+ }
145
+ function wrapTextInLabel(recorder, templateOffset, element) {
146
+ var _a, _b, _c, _d;
147
+ const labelNode = element.childNodes.find((node) => node.nodeName === '#text' && !!node.value.trim());
148
+ if (!labelNode) {
149
+ return;
150
+ }
151
+ const labelTextStart = ((_b = (_a = labelNode.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.startOffset) !== null && _b !== void 0 ? _b : 0) + templateOffset;
152
+ const labelTextEnd = ((_d = (_c = labelNode.sourceCodeLocation) === null || _c === void 0 ? void 0 : _c.endOffset) !== null && _d !== void 0 ? _d : 0) + templateOffset;
153
+ recorder.insertRight(labelTextStart, '\n<label tuiLabel>');
154
+ recorder.insertRight(labelTextEnd, '</label>\n');
155
+ }
156
+ function removeAttr(recorder, templateOffset, element, name, template) {
157
+ var _a, _b;
158
+ const attrLocation = (_b = (_a = element.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[name.toLowerCase()];
159
+ if (!attrLocation) {
160
+ return;
161
+ }
162
+ const lineStart = template.lastIndexOf('\n', attrLocation.startOffset) + 1;
163
+ const lineEnd = template.indexOf('\n', attrLocation.endOffset);
164
+ const attrText = template.slice(attrLocation.startOffset, attrLocation.endOffset);
165
+ const lineText = lineEnd === -1 ? '' : template.slice(lineStart, lineEnd);
166
+ if (lineText.trim() === attrText.trim() && lineEnd !== -1) {
167
+ recorder.remove(templateOffset + lineStart, lineEnd - lineStart + 1);
168
+ return;
169
+ }
170
+ recorder.remove(templateOffset + attrLocation.startOffset - 1, attrLocation.endOffset - attrLocation.startOffset + 1);
171
+ }
172
+ function formatControlAttrs(attrs) {
173
+ return attrs
174
+ .map(({ name, value }) => ` ${normalizeAttrName(name)}="${value}"`)
175
+ .join('');
176
+ }
177
+ function formatInputAttrs(attrs) {
178
+ return attrs
179
+ .map(({ name, value }) => {
180
+ const attrName = name.toLowerCase() === '[strictMatcher]'.toLowerCase()
181
+ ? '[matcher]'
182
+ : normalizeAttrName(name);
183
+ return ` ${attrName}="${value}"`;
184
+ })
185
+ .join('');
186
+ }
187
+ function normalizeAttrName(name) {
188
+ switch (name.toLowerCase()) {
189
+ case '[(ngModel)]'.toLowerCase():
190
+ return '[(ngModel)]';
191
+ case '[formControl]'.toLowerCase():
192
+ return '[formControl]';
193
+ case '[ngModel]'.toLowerCase():
194
+ return '[ngModel]';
195
+ case 'formControl'.toLowerCase():
196
+ return 'formControl';
197
+ case 'formControlName'.toLowerCase():
198
+ return 'formControlName';
199
+ case 'ngModel'.toLowerCase():
200
+ return 'ngModel';
201
+ case '[strict]':
202
+ return '[strict]';
203
+ default:
204
+ return name;
205
+ }
206
+ }
207
+ //# sourceMappingURL=migrate-combo-box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-combo-box.js","sourceRoot":"","sources":["../../../../../../../projects/cdk/schematics/ng-update/v5/steps/templates/migrate-combo-box.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type UpdateRecorder } from '@angular-devkit/schematics';
2
+ import { type DevkitFileSystem } from 'ng-morph';
3
+ import { type TemplateResource } from '../../../interfaces';
4
+ export declare function migrateFormatPhonePipe({ resource, recorder, fileSystem, }: {
5
+ fileSystem: DevkitFileSystem;
6
+ recorder: UpdateRecorder;
7
+ resource: TemplateResource;
8
+ }): void;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateFormatPhonePipe = migrateFormatPhonePipe;
4
+ const insert_todo_1 = require("../../../../utils/insert-todo");
5
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
6
+ const PIPE_RENAME_REGEX = /(\|\s*)tuiFormatPhone\b/g;
7
+ const TODO_COMMENT_WITH_ARGS = `<!-- ${insert_todo_1.TODO_MARK} \`tuiFormatPhone\` pipe was replaced by \`maskito\` pipe. Replace its arguments with \`maskitoPhoneOptionsGenerator({countryIsoCode, metadata})\` from '@maskito/phone' (note: countryIsoCode is ISO format e.g. 'US', not '+1'). See: https://taiga-ui.dev/components/input-phone-international#phone-format-helpers -->`;
8
+ const TODO_COMMENT_NO_ARGS = `<!-- ${insert_todo_1.TODO_MARK} \`tuiFormatPhone\` pipe was replaced by \`maskito\` pipe. Add \`maskitoPhoneOptionsGenerator({countryIsoCode, metadata})\` from '@maskito/phone' as argument. See: https://taiga-ui.dev/components/input-phone-international#phone-format-helpers -->`;
9
+ function migrateFormatPhonePipe({ resource, recorder, fileSystem, }) {
10
+ var _a, _b;
11
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
12
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
13
+ // For inline templates, getText() includes the opening quote character,
14
+ // so offset 0 points to the quote itself (in TS territory).
15
+ // We shift by 1 to insert inside the template string.
16
+ const isInlineTemplate = 'template' in resource;
17
+ const todoInsertedAtLines = new Set();
18
+ let match;
19
+ while ((match = PIPE_RENAME_REGEX.exec(template)) !== null) {
20
+ const pipeNameStart = match.index + ((_b = (_a = match[1]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);
21
+ const afterPipeName = template.slice(pipeNameStart + 'tuiFormatPhone'.length);
22
+ const hasArgs = /^\s*:/.test(afterPipeName);
23
+ recorder.remove(templateOffset + pipeNameStart, 'tuiFormatPhone'.length);
24
+ recorder.insertRight(templateOffset + pipeNameStart, 'maskito');
25
+ const lineStart = template.lastIndexOf('\n', match.index) + 1;
26
+ if (!todoInsertedAtLines.has(lineStart)) {
27
+ todoInsertedAtLines.add(lineStart);
28
+ const todoComment = hasArgs ? TODO_COMMENT_WITH_ARGS : TODO_COMMENT_NO_ARGS;
29
+ if (isInlineTemplate && lineStart === 0) {
30
+ // The template string includes the opening quote (offset 0 = quote char).
31
+ // Insert after the quote (position 1), without a trailing newline —
32
+ // single/double-quoted JS strings cannot contain literal newlines.
33
+ recorder.insertLeft(templateOffset + 1, `${todoComment} `);
34
+ }
35
+ else {
36
+ recorder.insertLeft(templateOffset + lineStart, `${todoComment}\n`);
37
+ }
38
+ }
39
+ }
40
+ }
41
+ //# sourceMappingURL=migrate-format-phone-pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-format-phone-pipe.js","sourceRoot":"","sources":["../../../../../../../projects/cdk/schematics/ng-update/v5/steps/templates/migrate-format-phone-pipe.ts"],"names":[],"mappings":";;AAeA,wDA4CC;AAxDD,+DAAwD;AACxD,qFAGuD;AAGvD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAErD,MAAM,sBAAsB,GAAG,QAAQ,uBAAS,4TAA4T,CAAC;AAC7W,MAAM,oBAAoB,GAAG,QAAQ,uBAAS,wPAAwP,CAAC;AAEvS,SAAgB,sBAAsB,CAAC,EACnC,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;IAEnD,wEAAwE;IACxE,4DAA4D;IAC5D,sDAAsD;IACtD,MAAM,gBAAgB,GAAG,UAAU,IAAI,QAAQ,CAAC;IAChD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,MAAA,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,MAAM,mCAAI,CAAC,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE5C,QAAQ,CAAC,MAAM,CAAC,cAAc,GAAG,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzE,QAAQ,CAAC,WAAW,CAAC,cAAc,GAAG,aAAa,EAAE,SAAS,CAAC,CAAC;QAEhE,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEnC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAE5E,IAAI,gBAAgB,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;gBACtC,0EAA0E;gBAC1E,oEAAoE;gBACpE,mEAAmE;gBACnE,QAAQ,CAAC,UAAU,CAAC,cAAc,GAAG,CAAC,EAAE,GAAG,WAAW,GAAG,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACJ,QAAQ,CAAC,UAAU,CAAC,cAAc,GAAG,SAAS,EAAE,GAAG,WAAW,IAAI,CAAC,CAAC;YACxE,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type UpdateRecorder } from '@angular-devkit/schematics';
2
+ import { type DevkitFileSystem } from 'ng-morph';
3
+ import { type TemplateResource } from '../../../interfaces/template-resource';
4
+ export declare function migrateInputColor({ resource, recorder, fileSystem, }: {
5
+ fileSystem: DevkitFileSystem;
6
+ recorder: UpdateRecorder;
7
+ resource: TemplateResource;
8
+ }): void;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateInputColor = migrateInputColor;
4
+ const insert_todo_1 = require("../../../../utils/insert-todo");
5
+ const elements_1 = require("../../../../utils/templates/elements");
6
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
7
+ const replace_tag_1 = require("../../../utils/templates/replace-tag");
8
+ const DOCS_LINK = 'https://taiga-ui.dev/components/input-color';
9
+ const NO_EQUIVALENT_ATTRS = new Set(['[colors]'.toLowerCase(), 'colors'.toLowerCase()]);
10
+ function migrateInputColor({ resource, recorder, fileSystem, }) {
11
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
12
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
13
+ const elements = (0, elements_1.findElementsByTagName)(template, 'tui-input-color');
14
+ elements.forEach((element) => {
15
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
16
+ const sourceCodeLocation = element.sourceCodeLocation;
17
+ (0, replace_tag_1.replaceTag)(recorder, sourceCodeLocation, 'tui-input-color', 'tui-textfield', template, templateOffset);
18
+ const controlAttrs = [...element.attrs].filter((attr) => /formcontrol|ngmodel/.exec(attr.name.toLocaleLowerCase()));
19
+ const noEquivalentAttrs = [...element.attrs].filter((attr) => NO_EQUIVALENT_ATTRS.has(attr.name.toLowerCase()));
20
+ for (const attr of [...controlAttrs, ...noEquivalentAttrs]) {
21
+ const { startOffset = 0, endOffset = 0 } = (_c = (_b = (_a = element.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[attr.name]) !== null && _c !== void 0 ? _c : {};
22
+ recorder.remove(templateOffset + startOffset, endOffset - startOffset);
23
+ }
24
+ const labelIndex = element.childNodes.findIndex((node) => node.nodeName === '#text' && (node === null || node === void 0 ? void 0 : node.value.trim()));
25
+ if (labelIndex !== -1) {
26
+ const labelNode = element.childNodes[labelIndex];
27
+ const labelTextStart = ((_e = (_d = labelNode === null || labelNode === void 0 ? void 0 : labelNode.sourceCodeLocation) === null || _d === void 0 ? void 0 : _d.startOffset) !== null && _e !== void 0 ? _e : 0) + templateOffset;
28
+ const labelTextEnd = ((_g = (_f = labelNode === null || labelNode === void 0 ? void 0 : labelNode.sourceCodeLocation) === null || _f === void 0 ? void 0 : _f.endOffset) !== null && _g !== void 0 ? _g : 0) + templateOffset;
29
+ recorder.insertRight(labelTextStart, '\n<label tuiLabel>');
30
+ recorder.insertRight(labelTextEnd, '</label>\n');
31
+ }
32
+ if (noEquivalentAttrs.length > 0) {
33
+ const todoComment = [
34
+ `<!-- ${insert_todo_1.TODO_MARK} tui-input-color migration (see ${DOCS_LINK}):`,
35
+ ' - [colors]: ReadonlyMap<string, string> is removed in v5. Use <datalist> with',
36
+ ` <option value="..."> elements instead. See example: ${DOCS_LINK} -->`,
37
+ ].join('\n');
38
+ const insertAt = ((_h = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.startOffset) !== null && _h !== void 0 ? _h : 0) + templateOffset;
39
+ recorder.insertLeft(insertAt, `${todoComment}\n`);
40
+ }
41
+ const insertOffset = ((_k = (_j = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.endTag) === null || _j === void 0 ? void 0 : _j.startOffset) !== null && _k !== void 0 ? _k : 0) + templateOffset;
42
+ const migrationAttrs = controlAttrs.reduce((result, attr) => {
43
+ const name = attr.name
44
+ .replace(/ngmodel/i, 'ngModel')
45
+ .replace(/formcontrol/i, 'formControl')
46
+ .replace(/formcontrolname/i, 'formControlName');
47
+ return `${result} ${name}="${attr.value}"`;
48
+ }, '');
49
+ recorder.insertRight(insertOffset, `\n<input tuiInputColor${migrationAttrs} />\n`);
50
+ });
51
+ }
52
+ //# sourceMappingURL=migrate-input-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-input-color.js","sourceRoot":"","sources":["../../../../../../../projects/cdk/schematics/ng-update/v5/steps/templates/migrate-input-color.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type UpdateRecorder } from '@angular-devkit/schematics';
2
+ import { type DevkitFileSystem } from 'ng-morph';
3
+ import { type TemplateResource } from '../../../interfaces/template-resource';
4
+ export declare function migrateInputDateMulti({ resource, recorder, fileSystem, }: {
5
+ fileSystem: DevkitFileSystem;
6
+ recorder: UpdateRecorder;
7
+ resource: TemplateResource;
8
+ }): void;
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateInputDateMulti = migrateInputDateMulti;
4
+ const insert_todo_1 = require("../../../../utils/insert-todo");
5
+ const elements_1 = require("../../../../utils/templates/elements");
6
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
7
+ const replace_tag_1 = require("../../../utils/templates/replace-tag");
8
+ const DOCS_LINK = 'https://taiga-ui.dev/components/input-date';
9
+ const INPUT_ATTRS = new Set([
10
+ '[max]'.toLowerCase(),
11
+ '[min]'.toLowerCase(),
12
+ 'max'.toLowerCase(),
13
+ 'min'.toLowerCase(),
14
+ ]);
15
+ const CALENDAR_ATTRS = new Set([
16
+ '[defaultActiveYearMonth]'.toLowerCase(),
17
+ '[disabledItemHandler]'.toLowerCase(),
18
+ '[markerHandler]'.toLowerCase(),
19
+ 'defaultActiveYearMonth'.toLowerCase(),
20
+ ]);
21
+ const CALENDAR_ATTR_NAMES = new Map([
22
+ ['[defaultActiveYearMonth]'.toLowerCase(), '[month]'],
23
+ ['[disabledItemHandler]'.toLowerCase(), '[disabledItemHandler]'],
24
+ ['[markerHandler]'.toLowerCase(), '[markerHandler]'],
25
+ ['defaultActiveYearMonth'.toLowerCase(), 'month'],
26
+ ]);
27
+ const TEXTFIELD_ATTRS = new Set(['[rows]'.toLowerCase(), 'rows'.toLowerCase()]);
28
+ const PLACEHOLDER_ATTRS = new Set([
29
+ '[placeholder]'.toLowerCase(),
30
+ 'placeholder'.toLowerCase(),
31
+ ]);
32
+ const TODO_ATTRS = new Set([
33
+ '(searchChange)'.toLowerCase(),
34
+ '[(search)]'.toLowerCase(),
35
+ '[search]'.toLowerCase(),
36
+ '[tagValidator]'.toLowerCase(),
37
+ ]);
38
+ const TODO_ATTR_NAMES = new Map([
39
+ ['(searchChange)'.toLowerCase(), '(searchChange)'],
40
+ ['[(search)]', '[(search)]'],
41
+ ['[search]', '[search]'],
42
+ ['[tagValidator]'.toLowerCase(), '[tagValidator]'],
43
+ ]);
44
+ const DROPPED_ATTRS = new Set([
45
+ '[editable]'.toLowerCase(),
46
+ '[inputHidden]'.toLowerCase(),
47
+ 'editable'.toLowerCase(),
48
+ 'inputHidden'.toLowerCase(),
49
+ ]);
50
+ function migrateInputDateMulti({ resource, recorder, fileSystem, }) {
51
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
52
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
53
+ const elements = (0, elements_1.findElementsByTagName)(template, 'tui-input-date');
54
+ elements.forEach((element) => {
55
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
56
+ // Only process elements with `multiple` attribute
57
+ if (!element.attrs.some((attr) => attr.name === 'multiple')) {
58
+ return;
59
+ }
60
+ const sourceCodeLocation = element.sourceCodeLocation;
61
+ (0, replace_tag_1.replaceTag)(recorder, sourceCodeLocation, 'tui-input-date', 'tui-textfield', template, templateOffset);
62
+ const allAttrs = [...element.attrs];
63
+ // Remove `multiple` attribute
64
+ const multipleAttr = allAttrs.find((attr) => attr.name === 'multiple');
65
+ if (multipleAttr) {
66
+ const { startOffset = 0, endOffset = 0 } = (_c = (_b = (_a = element.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b['multiple']) !== null && _c !== void 0 ? _c : {};
67
+ recorder.remove(templateOffset + startOffset, endOffset - startOffset);
68
+ }
69
+ const controlAttrs = allAttrs.filter((attr) => /formcontrol|ngmodel/.exec(attr.name.toLocaleLowerCase()));
70
+ const inputAttrs = allAttrs.filter((attr) => INPUT_ATTRS.has(attr.name.toLowerCase()));
71
+ const calendarAttrs = allAttrs.filter((attr) => CALENDAR_ATTRS.has(attr.name.toLowerCase()));
72
+ const textfieldAttrs = allAttrs.filter((attr) => TEXTFIELD_ATTRS.has(attr.name.toLowerCase()));
73
+ // Add `multi` (and textfield-level attrs) to the new tui-textfield opening tag
74
+ const openTagEnd = (_e = (_d = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.startTag) === null || _d === void 0 ? void 0 : _d.endOffset) !== null && _e !== void 0 ? _e : 0;
75
+ const textfieldAttrStr = textfieldAttrs.reduce((result, attr) => attr.value
76
+ ? `${result} ${attr.name}="${attr.value}"`
77
+ : `${result} ${attr.name}`, '');
78
+ recorder.insertRight(templateOffset + openTagEnd - 1, ` multi${textfieldAttrStr}`);
79
+ const placeholderAttrs = allAttrs.filter((attr) => PLACEHOLDER_ATTRS.has(attr.name.toLowerCase()));
80
+ const todoAttrs = allAttrs.filter((attr) => TODO_ATTRS.has(attr.name.toLowerCase()));
81
+ const droppedAttrs = allAttrs.filter((attr) => DROPPED_ATTRS.has(attr.name.toLowerCase()));
82
+ for (const attr of [
83
+ ...controlAttrs,
84
+ ...inputAttrs,
85
+ ...calendarAttrs,
86
+ ...textfieldAttrs,
87
+ ...placeholderAttrs,
88
+ ...todoAttrs,
89
+ ...droppedAttrs,
90
+ ]) {
91
+ const { startOffset = 0, endOffset = 0 } = (_h = (_g = (_f = element.sourceCodeLocation) === null || _f === void 0 ? void 0 : _f.attrs) === null || _g === void 0 ? void 0 : _g[attr.name]) !== null && _h !== void 0 ? _h : {};
92
+ recorder.remove(templateOffset + startOffset, endOffset - startOffset);
93
+ }
94
+ const labelIndex = element.childNodes.findIndex((node) => node.nodeName === '#text' && (node === null || node === void 0 ? void 0 : node.value.trim()));
95
+ if (labelIndex !== -1) {
96
+ const labelNode = element.childNodes[labelIndex];
97
+ const labelTextStart = ((_k = (_j = labelNode === null || labelNode === void 0 ? void 0 : labelNode.sourceCodeLocation) === null || _j === void 0 ? void 0 : _j.startOffset) !== null && _k !== void 0 ? _k : 0) + templateOffset;
98
+ const labelTextEnd = ((_m = (_l = labelNode === null || labelNode === void 0 ? void 0 : labelNode.sourceCodeLocation) === null || _l === void 0 ? void 0 : _l.endOffset) !== null && _m !== void 0 ? _m : 0) + templateOffset;
99
+ recorder.insertRight(labelTextStart, '\n<label tuiLabel>');
100
+ recorder.insertRight(labelTextEnd, '</label>\n');
101
+ }
102
+ if (todoAttrs.length > 0) {
103
+ const attrLines = todoAttrs.map((attr, index, arr) => {
104
+ var _a;
105
+ const isLast = index === arr.length - 1;
106
+ const name = (_a = TODO_ATTR_NAMES.get(attr.name.toLowerCase())) !== null && _a !== void 0 ? _a : attr.name;
107
+ const hint = getHint(attr.name);
108
+ return ` - ${name}: ${hint}${isLast ? ' -->' : ''}`;
109
+ });
110
+ const todoComment = [
111
+ `<!-- ${insert_todo_1.TODO_MARK} tui-input-date multiple migration (see ${DOCS_LINK}):`,
112
+ ...attrLines,
113
+ ].join('\n');
114
+ const insertAt = ((_o = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.startOffset) !== null && _o !== void 0 ? _o : 0) + templateOffset;
115
+ recorder.insertLeft(insertAt, `${todoComment}\n`);
116
+ }
117
+ const insertOffset = ((_q = (_p = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.endTag) === null || _p === void 0 ? void 0 : _p.startOffset) !== null && _q !== void 0 ? _q : 0) + templateOffset;
118
+ const inputs = element.childNodes.filter((node) => node.nodeName === 'input');
119
+ const migrationAttrs = [
120
+ ...controlAttrs,
121
+ ...inputAttrs,
122
+ ...placeholderAttrs,
123
+ ].reduce((result, attr) => {
124
+ const name = normalizeAttrName(attr.name);
125
+ return attr.value ? `${result} ${name}="${attr.value}"` : `${result} ${name}`;
126
+ }, '');
127
+ const calendarAttrStr = calendarAttrs.reduce((result, attr) => {
128
+ var _a;
129
+ const name = (_a = CALENDAR_ATTR_NAMES.get(attr.name.toLowerCase())) !== null && _a !== void 0 ? _a : attr.name;
130
+ return attr.value ? `${result} ${name}="${attr.value}"` : `${result} ${name}`;
131
+ }, '');
132
+ if (!inputs.length) {
133
+ recorder.insertRight(insertOffset, `\n<input tuiInputDateMulti${migrationAttrs} />\n<tui-calendar *tuiDropdown${calendarAttrStr} />\n`);
134
+ }
135
+ else {
136
+ recorder.insertRight(insertOffset, `\n<tui-calendar *tuiDropdown${calendarAttrStr} />\n`);
137
+ }
138
+ for (const input of inputs) {
139
+ input.attrs.forEach((attr) => {
140
+ var _a, _b, _c;
141
+ if (/^tuiTextfield$|^tuiTextfieldLegacy$/i.exec(attr.name)) {
142
+ const { startOffset = 0, endOffset = 0 } = (_c = (_b = (_a = input.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[attr.name]) !== null && _c !== void 0 ? _c : {};
143
+ recorder.remove(templateOffset + startOffset, endOffset - startOffset);
144
+ recorder.insertRight(templateOffset + startOffset, `tuiInputDateMulti${migrationAttrs}`);
145
+ }
146
+ });
147
+ }
148
+ });
149
+ }
150
+ function getHint(attrName) {
151
+ const lower = attrName.toLowerCase();
152
+ if (lower.includes('tagValidator'.toLowerCase())) {
153
+ return 'use <tui-input-chip *tuiItem="let ctx" [appearance]="myValidator(ctx.item) ? \'\' : \'negative\'"> inside <tui-textfield multi>. See https://taiga-ui.dev/components/input-chip#customization';
154
+ }
155
+ if (lower.includes('search')) {
156
+ return 'use native (input) event on <input tuiInputDateMulti (input)="onSearch($any($event).target.value)"> instead.';
157
+ }
158
+ return 'no direct equivalent in v5. Update component logic manually.';
159
+ }
160
+ function normalizeAttrName(name) {
161
+ switch (name.toLowerCase()) {
162
+ case '[formControl]'.toLowerCase():
163
+ return '[formControl]';
164
+ case '[ngModel]'.toLowerCase():
165
+ return '[ngModel]';
166
+ case 'formControl'.toLowerCase():
167
+ return 'formControl';
168
+ case 'formControlName'.toLowerCase():
169
+ return 'formControlName';
170
+ case 'ngModel'.toLowerCase():
171
+ return 'ngModel';
172
+ case '[(ngmodel)]':
173
+ return '[(ngModel)]';
174
+ default:
175
+ return name;
176
+ }
177
+ }
178
+ //# sourceMappingURL=migrate-input-date-multi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-input-date-multi.js","sourceRoot":"","sources":["../../../../../../../projects/cdk/schematics/ng-update/v5/steps/templates/migrate-input-date-multi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type UpdateRecorder } from '@angular-devkit/schematics';
2
+ import { type DevkitFileSystem } from 'ng-morph';
3
+ import { type TemplateResource } from '../../../interfaces/template-resource';
4
+ export declare function migrateInputDateRange({ resource, recorder, fileSystem, }: {
5
+ fileSystem: DevkitFileSystem;
6
+ recorder: UpdateRecorder;
7
+ resource: TemplateResource;
8
+ }): void;