@taiga-ui/cdk 4.0.0-alpha.0 → 4.0.0-rc.10

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 (199) hide show
  1. package/classes/index.d.ts +0 -1
  2. package/constants/used-icons.d.ts +1 -1
  3. package/constants/version.d.ts +1 -1
  4. package/constants/version.js +1 -1
  5. package/esm2022/classes/index.mjs +1 -2
  6. package/esm2022/constants/used-icons.mjs +9 -1
  7. package/esm2022/constants/version.mjs +2 -2
  8. package/esm2022/directives/auto-focus/autofocus.options.mjs +3 -3
  9. package/esm2022/directives/copy-processor/copy-processor.directive.mjs +3 -3
  10. package/esm2022/directives/high-dpi/high-dpi.directive.mjs +3 -3
  11. package/esm2022/directives/obscured/obscured.service.mjs +3 -3
  12. package/esm2022/services/index.mjs +2 -2
  13. package/esm2022/services/scroll.service.mjs +4 -4
  14. package/esm2022/services/theme-color.service.mjs +30 -0
  15. package/esm2022/tokens/active-element.mjs +3 -3
  16. package/esm2022/tokens/environment.mjs +15 -7
  17. package/esm2022/tokens/removed-element.mjs +3 -3
  18. package/esm2022/tokens/window-size.mjs +3 -3
  19. package/esm2022/utils/focus/focused-in.mjs +7 -0
  20. package/esm2022/utils/focus/index.mjs +2 -1
  21. package/fesm2022/taiga-ui-cdk-classes.mjs +1 -15
  22. package/fesm2022/taiga-ui-cdk-classes.mjs.map +1 -1
  23. package/fesm2022/taiga-ui-cdk-constants.mjs +9 -1
  24. package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
  25. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs +2 -2
  26. package/fesm2022/taiga-ui-cdk-directives-auto-focus.mjs.map +1 -1
  27. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs +2 -2
  28. package/fesm2022/taiga-ui-cdk-directives-copy-processor.mjs.map +1 -1
  29. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs +2 -2
  30. package/fesm2022/taiga-ui-cdk-directives-high-dpi.mjs.map +1 -1
  31. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs +2 -2
  32. package/fesm2022/taiga-ui-cdk-directives-obscured.mjs.map +1 -1
  33. package/fesm2022/taiga-ui-cdk-services.mjs +22 -25
  34. package/fesm2022/taiga-ui-cdk-services.mjs.map +1 -1
  35. package/fesm2022/taiga-ui-cdk-tokens.mjs +19 -12
  36. package/fesm2022/taiga-ui-cdk-tokens.mjs.map +1 -1
  37. package/fesm2022/taiga-ui-cdk-utils-focus.mjs +8 -2
  38. package/fesm2022/taiga-ui-cdk-utils-focus.mjs.map +1 -1
  39. package/package.json +356 -67
  40. package/schematics/ng-update/interfaces/html-comment.d.ts +3 -2
  41. package/schematics/ng-update/interfaces/replacement-attribute-value.d.ts +6 -2
  42. package/schematics/ng-update/interfaces/replacement-identifier.d.ts +4 -10
  43. package/schematics/ng-update/interfaces/replacement-type.d.ts +4 -0
  44. package/schematics/ng-update/steps/rename-types.js +6 -2
  45. package/schematics/ng-update/steps/replace-identifier.js +30 -8
  46. package/schematics/ng-update/steps/replace-package-name.js +4 -5
  47. package/schematics/ng-update/utils/templates/replace-attr-values.js +39 -10
  48. package/schematics/ng-update/utils/templates/template-comments.js +7 -1
  49. package/schematics/ng-update/v4/index.js +9 -1
  50. package/schematics/ng-update/v4/migrate-icons/index.js +2 -2
  51. package/schematics/ng-update/v4/migrate-icons/rename-icons.js +13 -5
  52. package/schematics/ng-update/v4/migrate-icons/rename-proprietary-icons.d.ts +2 -1
  53. package/schematics/ng-update/v4/migrate-icons/rename-proprietary-icons.js +19 -6
  54. package/schematics/ng-update/v4/steps/constants/attr-to-directive-replace.js +3 -2
  55. package/schematics/ng-update/v4/steps/constants/attr-with-values-to-replace.js +44 -3
  56. package/schematics/ng-update/v4/steps/constants/attrs-to-replace.js +107 -21
  57. package/schematics/ng-update/v4/steps/constants/html-comments.js +9 -0
  58. package/schematics/ng-update/v4/steps/constants/identifiers-to-replace.js +552 -213
  59. package/schematics/ng-update/v4/steps/constants/index.d.ts +1 -0
  60. package/schematics/ng-update/v4/steps/constants/index.js +1 -0
  61. package/schematics/ng-update/v4/steps/constants/inputs-to-remove.js +1 -0
  62. package/schematics/ng-update/v4/steps/constants/migration-warnings.js +20 -0
  63. package/schematics/ng-update/v4/steps/constants/modules-to-remove.js +20 -0
  64. package/schematics/ng-update/v4/steps/constants/modules-to-replace.d.ts +7 -6
  65. package/schematics/ng-update/v4/steps/constants/modules-to-replace.js +1 -0
  66. package/schematics/ng-update/v4/steps/constants/services.d.ts +2 -0
  67. package/schematics/ng-update/v4/steps/constants/services.js +15 -0
  68. package/schematics/ng-update/v4/steps/constants/tags-to-replace.js +14 -2
  69. package/schematics/ng-update/v4/steps/constants/types.js +33 -1
  70. package/schematics/ng-update/v4/steps/index.d.ts +4 -1
  71. package/schematics/ng-update/v4/steps/index.js +4 -1
  72. package/schematics/ng-update/v4/steps/migrate-alert-service.d.ts +2 -0
  73. package/schematics/ng-update/v4/steps/migrate-alert-service.js +110 -0
  74. package/schematics/ng-update/v4/steps/migrate-month-context.d.ts +2 -0
  75. package/schematics/ng-update/v4/steps/migrate-month-context.js +39 -0
  76. package/schematics/ng-update/v4/steps/migrate-number-format-settings.d.ts +2 -0
  77. package/schematics/ng-update/v4/steps/migrate-number-format-settings.js +64 -0
  78. package/schematics/ng-update/v4/steps/migrate-root.d.ts +3 -0
  79. package/schematics/ng-update/v4/steps/migrate-root.js +61 -0
  80. package/schematics/ng-update/v4/steps/migrate-templates.js +10 -2
  81. package/schematics/ng-update/v4/steps/styles/index.js +38 -0
  82. package/schematics/ng-update/v4/steps/styles/migrate-less-scss-constants.d.ts +1 -0
  83. package/schematics/ng-update/v4/steps/styles/migrate-less-scss-constants.js +13 -0
  84. package/schematics/ng-update/v4/steps/styles/migrate-scrollbar-behavior.d.ts +1 -0
  85. package/schematics/ng-update/v4/steps/styles/migrate-scrollbar-behavior.js +10 -0
  86. package/schematics/ng-update/v4/steps/styles/migrate-shadow-mixins.d.ts +1 -0
  87. package/schematics/ng-update/v4/steps/styles/migrate-shadow-mixins.js +23 -0
  88. package/schematics/ng-update/v4/steps/styles/migrate-space-mixins.d.ts +1 -0
  89. package/schematics/ng-update/v4/steps/styles/migrate-space-mixins.js +20 -0
  90. package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.d.ts +1 -0
  91. package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js +54 -0
  92. package/schematics/ng-update/v4/steps/templates/index.d.ts +6 -0
  93. package/schematics/ng-update/v4/steps/templates/index.js +6 -0
  94. package/schematics/ng-update/v4/steps/templates/migrate-avatar.js +10 -5
  95. package/schematics/ng-update/{v3/steps/migrate-polymorpheus.d.ts → v4/steps/templates/migrate-axes.d.ts} +2 -2
  96. package/schematics/ng-update/v4/steps/templates/migrate-axes.js +26 -0
  97. package/schematics/ng-update/v4/steps/templates/migrate-badge.js +15 -6
  98. package/schematics/ng-update/v4/steps/templates/migrate-badged-content.js +1 -1
  99. package/schematics/ng-update/{v3/steps/migrate-textfield-controller.d.ts → v4/steps/templates/migrate-blocked.d.ts} +2 -2
  100. package/schematics/ng-update/v4/steps/templates/migrate-blocked.js +35 -0
  101. package/schematics/ng-update/v4/steps/templates/migrate-button-appearance.d.ts +8 -0
  102. package/schematics/ng-update/v4/steps/templates/migrate-button-appearance.js +41 -0
  103. package/schematics/ng-update/v4/steps/templates/migrate-expandable.js +3 -2
  104. package/schematics/ng-update/v4/steps/templates/migrate-focusable.js +7 -4
  105. package/schematics/ng-update/v4/steps/templates/migrate-label.d.ts +8 -0
  106. package/schematics/ng-update/v4/steps/templates/migrate-label.js +39 -0
  107. package/schematics/ng-update/v4/steps/templates/migrate-labeled.js +5 -7
  108. package/schematics/ng-update/v4/steps/templates/migrate-mobile-tabs.d.ts +8 -0
  109. package/schematics/ng-update/v4/steps/templates/migrate-mobile-tabs.js +45 -0
  110. package/schematics/ng-update/v4/steps/templates/migrate-notification.d.ts +8 -0
  111. package/schematics/ng-update/v4/steps/templates/migrate-notification.js +64 -0
  112. package/schematics/ng-update/v4/steps/templates/migrate-number-precision.d.ts +8 -0
  113. package/schematics/ng-update/v4/steps/templates/migrate-number-precision.js +36 -0
  114. package/schematics/ng-update/v4/steps/templates/migrate-overscroll.js +4 -6
  115. package/schematics/ng-update/v4/steps/templates/migrate-thumbnail-card.js +2 -1
  116. package/schematics/ng-update/v4/steps/templates/toggles/common.js +3 -2
  117. package/schematics/ng-update/v4/steps/templates/toggles/migrate-checkbox.js +36 -0
  118. package/schematics/ng-update/v4/steps/update-packages.js +21 -8
  119. package/schematics/ng-update/v4/steps/utils/replace-modules-with-providers.d.ts +1 -11
  120. package/schematics/ng-update/v4/steps/utils/replace-modules-with-providers.js +8 -4
  121. package/schematics/utils/get-named-import-references.js +4 -2
  122. package/schematics/utils/templates/elements.js +2 -1
  123. package/schematics/utils/templates/inputs.js +2 -1
  124. package/services/index.d.ts +1 -1
  125. package/services/theme-color.service.d.ts +16 -0
  126. package/tokens/environment.d.ts +1 -0
  127. package/utils/focus/focused-in.d.ts +2 -0
  128. package/utils/focus/index.d.ts +1 -0
  129. package/classes/controller.d.ts +0 -9
  130. package/esm2022/classes/controller.mjs +0 -18
  131. package/esm2022/services/static-request.service.mjs +0 -33
  132. package/schematics/ng-update/v3/constants/breakpoints.d.ts +0 -82
  133. package/schematics/ng-update/v3/constants/breakpoints.js +0 -34
  134. package/schematics/ng-update/v3/constants/constants.d.ts +0 -2
  135. package/schematics/ng-update/v3/constants/constants.js +0 -466
  136. package/schematics/ng-update/v3/constants/deprecated-functions.d.ts +0 -2
  137. package/schematics/ng-update/v3/constants/deprecated-functions.js +0 -680
  138. package/schematics/ng-update/v3/constants/enums.d.ts +0 -2
  139. package/schematics/ng-update/v3/constants/enums.js +0 -284
  140. package/schematics/ng-update/v3/constants/modules.d.ts +0 -2
  141. package/schematics/ng-update/v3/constants/modules.js +0 -9
  142. package/schematics/ng-update/v3/constants/services.d.ts +0 -2
  143. package/schematics/ng-update/v3/constants/services.js +0 -53
  144. package/schematics/ng-update/v3/constants/templates.d.ts +0 -57
  145. package/schematics/ng-update/v3/constants/templates.js +0 -744
  146. package/schematics/ng-update/v3/constants/tui-interactive-selectors.d.ts +0 -1
  147. package/schematics/ng-update/v3/constants/tui-interactive-selectors.js +0 -55
  148. package/schematics/ng-update/v3/constants/types.d.ts +0 -2
  149. package/schematics/ng-update/v3/constants/types.js +0 -156
  150. package/schematics/ng-update/v3/constants/warnings.d.ts +0 -2
  151. package/schematics/ng-update/v3/constants/warnings.js +0 -111
  152. package/schematics/ng-update/v3/index.d.ts +0 -3
  153. package/schematics/ng-update/v3/index.js +0 -105
  154. package/schematics/ng-update/v3/schema.json +0 -13
  155. package/schematics/ng-update/v3/steps/migrate-date-time.d.ts +0 -2
  156. package/schematics/ng-update/v3/steps/migrate-date-time.js +0 -207
  157. package/schematics/ng-update/v3/steps/migrate-polymorpheus.js +0 -78
  158. package/schematics/ng-update/v3/steps/migrate-progress.d.ts +0 -8
  159. package/schematics/ng-update/v3/steps/migrate-progress.js +0 -49
  160. package/schematics/ng-update/v3/steps/migrate-sliders/index.d.ts +0 -3
  161. package/schematics/ng-update/v3/steps/migrate-sliders/index.js +0 -19
  162. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-range.d.ts +0 -3
  163. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-range.js +0 -103
  164. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-slider.d.ts +0 -3
  165. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-slider.js +0 -90
  166. package/schematics/ng-update/v3/steps/migrate-taiga-proprietary-icons.d.ts +0 -3
  167. package/schematics/ng-update/v3/steps/migrate-taiga-proprietary-icons.js +0 -70
  168. package/schematics/ng-update/v3/steps/migrate-templates.d.ts +0 -4
  169. package/schematics/ng-update/v3/steps/migrate-templates.js +0 -216
  170. package/schematics/ng-update/v3/steps/migrate-textfield-controller.js +0 -98
  171. package/schematics/ng-update/v3/steps/miscellaneous.d.ts +0 -2
  172. package/schematics/ng-update/v3/steps/miscellaneous.js +0 -81
  173. package/schematics/ng-update/v3/steps/replace-functions.d.ts +0 -2
  174. package/schematics/ng-update/v3/steps/replace-functions.js +0 -138
  175. package/schematics/ng-update/v3/steps/replace-styles.d.ts +0 -3
  176. package/schematics/ng-update/v3/steps/replace-styles.js +0 -33
  177. package/schematics/ng-update/v3-30/constants/constants.d.ts +0 -2
  178. package/schematics/ng-update/v3-30/constants/constants.js +0 -8
  179. package/schematics/ng-update/v3-30/constants/icons.d.ts +0 -4
  180. package/schematics/ng-update/v3-30/constants/icons.js +0 -993
  181. package/schematics/ng-update/v3-30/index.d.ts +0 -3
  182. package/schematics/ng-update/v3-30/index.js +0 -33
  183. package/schematics/ng-update/v3-35/constants/constants.d.ts +0 -2
  184. package/schematics/ng-update/v3-35/constants/constants.js +0 -8
  185. package/schematics/ng-update/v3-35/constants/icons.d.ts +0 -4
  186. package/schematics/ng-update/v3-35/constants/icons.js +0 -2537
  187. package/schematics/ng-update/v3-35/index.d.ts +0 -3
  188. package/schematics/ng-update/v3-35/index.js +0 -33
  189. package/schematics/ng-update/v3-36/index.d.ts +0 -3
  190. package/schematics/ng-update/v3-36/index.js +0 -23
  191. package/schematics/ng-update/v3-40/index.d.ts +0 -3
  192. package/schematics/ng-update/v3-40/index.js +0 -62
  193. package/schematics/ng-update/v3-5/index.d.ts +0 -3
  194. package/schematics/ng-update/v3-5/index.js +0 -20
  195. package/schematics/ng-update/v3-5/steps/migrate-expand-templates.d.ts +0 -3
  196. package/schematics/ng-update/v3-5/steps/migrate-expand-templates.js +0 -44
  197. package/schematics/ng-update/v4/steps/migrate-styles.js +0 -20
  198. package/services/static-request.service.d.ts +0 -8
  199. /package/schematics/ng-update/v4/steps/{migrate-styles.d.ts → styles/index.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ export declare function migrateScrollbarBehavior(fileContent: string): string;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateScrollbarBehavior = void 0;
4
+ function migrateScrollbarBehavior(fileContent) {
5
+ if (!fileContent.includes('@taiga-ui/core/styles/taiga-ui-local')) {
6
+ return fileContent;
7
+ }
8
+ return fileContent.replaceAll('.scroll-behavior()', 'scroll-behavior: var(--tui-scroll-behavior)');
9
+ }
10
+ exports.migrateScrollbarBehavior = migrateScrollbarBehavior;
@@ -0,0 +1 @@
1
+ export declare function migrateShadowMixins(fileContent: string): string;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateShadowMixins = void 0;
4
+ const MAPPING = {
5
+ 'shadow()': 'var(--tui-shadow-small)',
6
+ 'shadow(1)': 'var(--tui-shadow-small)',
7
+ 'shadow(2)': 'var(--tui-shadow-medium)',
8
+ 'shadow(3)': 'var(--tui-shadow-popup)',
9
+ 'shadow(4)': 'var(--tui-shadow-medium)',
10
+ 'shadow(5)': 'var(--tui-shadow-small-hover)',
11
+ 'shadow(6)': 'var(--tui-shadow-small)',
12
+ 'shadow(7)': 'var(--tui-shadow-popup)',
13
+ };
14
+ // .shadow(2);
15
+ // @include shadow(2);
16
+ const MIXIN_RE = /(?:@include\s|\.)(shadow\(\d*\))(\s?!important)?;/g;
17
+ function migrateShadowMixins(fileContent) {
18
+ if (!fileContent.includes('@taiga-ui/core/styles/taiga-ui-local')) {
19
+ return fileContent;
20
+ }
21
+ return fileContent.replaceAll(MIXIN_RE, (_, mixin, important = '') => `box-shadow: ${MAPPING[mixin]}${important};`);
22
+ }
23
+ exports.migrateShadowMixins = migrateShadowMixins;
@@ -0,0 +1 @@
1
+ export declare function migrateSpaceMixins(fileContent: string): string;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateSpaceMixins = void 0;
4
+ const DIRECTION_MAPPING = {
5
+ all: ['margin'],
6
+ top: ['margin-top'],
7
+ bottom: ['margin-bottom'],
8
+ left: ['margin-left'],
9
+ right: ['margin-right'],
10
+ vertical: ['margin-top', 'margin-bottom'],
11
+ horizontal: ['margin-left', 'margin-right'],
12
+ };
13
+ const SPACE = 0.25;
14
+ // .tui-space(top, 4);
15
+ // @include tui-space(top, 4);
16
+ const MIXIN_RE = new RegExp(`(?:@include\\s|\\.)tui-space\\((?<direction>${Object.keys(DIRECTION_MAPPING).join('|')}),\\s?(?<size>-?\\d+)\\)(\\s?!important)?;`, 'g');
17
+ function migrateSpaceMixins(fileContent) {
18
+ return fileContent.replaceAll(MIXIN_RE, (_, direction, size, important = '') => `${DIRECTION_MAPPING[direction].map((property) => `${property}: ${Number(size) * SPACE}rem${important};`).join('\n')}`);
19
+ }
20
+ exports.migrateSpaceMixins = migrateSpaceMixins;
@@ -0,0 +1 @@
1
+ export declare function migrateTextMixins(fileContent: string): string;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateTextMixins = void 0;
4
+ const MAPPING = {
5
+ 'text-h1': ['font: var(--tui-font-heading-1)'],
6
+ 'text-h2': ['font: var(--tui-font-heading-2)'],
7
+ 'text-h3': ['font: var(--tui-font-heading-3)'],
8
+ 'text-h4': ['font: var(--tui-font-heading-4)'],
9
+ 'text-h5': ['font: var(--tui-font-heading-5)'],
10
+ 'text-h6': ['font: var(--tui-font-heading-6)'],
11
+ 'text-body-xl-bold': ['font: var(--tui-font-text-xl)', 'font-weight: bold'],
12
+ 'text-body-xl': ['font: var(--tui-font-text-xl)'],
13
+ 'text-body-xs': ['font: var(--tui-font-text-xs)'],
14
+ 'text-caption-l-bold': [
15
+ 'font-size: 0.8125rem',
16
+ 'font-weight: bold',
17
+ 'font-family: var(--tui-font-text)',
18
+ 'letter-spacing: 0.0625rem',
19
+ 'text-transform: uppercase',
20
+ ],
21
+ 'text-caption-l': [
22
+ 'font-size: 0.8125rem',
23
+ 'font-weight: normal',
24
+ 'font-family: var(--tui-font-text)',
25
+ 'letter-spacing: 0.0625rem',
26
+ 'text-transform: uppercase',
27
+ ],
28
+ 'text-caption-bold': [
29
+ 'font-size: 0.6875rem',
30
+ 'font-weight: bold',
31
+ 'font-family: var(--tui-font-text)',
32
+ 'letter-spacing: 0.0625rem',
33
+ 'text-transform: uppercase',
34
+ ],
35
+ 'text-caption': [
36
+ 'font-size: 0.6875rem',
37
+ 'font-weight: normal',
38
+ 'font-family: var(--tui-font-text)',
39
+ 'letter-spacing: 0.0625rem',
40
+ 'text-transform: uppercase',
41
+ ],
42
+ };
43
+ // .tui-text-h1();
44
+ // @include tui-text-h1();
45
+ const MIXIN_RE = /(?:@include\s|\.)(text-[\w-]+)\(([\w-,\s]+)?\)(\s?!important)?;/g;
46
+ function migrateTextMixins(fileContent) {
47
+ if (!fileContent.includes('@taiga-ui/core/styles/taiga-ui-local')) {
48
+ return fileContent;
49
+ }
50
+ return fileContent.replaceAll(MIXIN_RE, (originalString, mixinName, important = '') => MAPPING[mixinName]
51
+ ? `${MAPPING[mixinName].map((newValue) => `${newValue}${important};`).join('\n')}`
52
+ : `${originalString} // TODO: this mixin was deleted. Replace it with inline styles. Find it source code in https://github.com/taiga-family/taiga-ui/blob/v3.x/projects/core/styles/mixins/text.less`);
53
+ }
54
+ exports.migrateTextMixins = migrateTextMixins;
@@ -1,10 +1,16 @@
1
1
  export * from './migrate-avatar';
2
+ export * from './migrate-axes';
2
3
  export * from './migrate-badge';
3
4
  export * from './migrate-badged-content';
5
+ export * from './migrate-button-appearance';
4
6
  export * from './migrate-expandable';
5
7
  export * from './migrate-focusable';
8
+ export * from './migrate-label';
6
9
  export * from './migrate-labeled';
10
+ export * from './migrate-mobile-tabs';
7
11
  export * from './migrate-money';
12
+ export * from './migrate-notification';
13
+ export * from './migrate-overscroll';
8
14
  export * from './migrate-prevent-default';
9
15
  export * from './migrate-progress-segmented';
10
16
  export * from './migrate-thumbnail-card';
@@ -2,12 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./migrate-avatar"), exports);
5
+ tslib_1.__exportStar(require("./migrate-axes"), exports);
5
6
  tslib_1.__exportStar(require("./migrate-badge"), exports);
6
7
  tslib_1.__exportStar(require("./migrate-badged-content"), exports);
8
+ tslib_1.__exportStar(require("./migrate-button-appearance"), exports);
7
9
  tslib_1.__exportStar(require("./migrate-expandable"), exports);
8
10
  tslib_1.__exportStar(require("./migrate-focusable"), exports);
11
+ tslib_1.__exportStar(require("./migrate-label"), exports);
9
12
  tslib_1.__exportStar(require("./migrate-labeled"), exports);
13
+ tslib_1.__exportStar(require("./migrate-mobile-tabs"), exports);
10
14
  tslib_1.__exportStar(require("./migrate-money"), exports);
15
+ tslib_1.__exportStar(require("./migrate-notification"), exports);
16
+ tslib_1.__exportStar(require("./migrate-overscroll"), exports);
11
17
  tslib_1.__exportStar(require("./migrate-prevent-default"), exports);
12
18
  tslib_1.__exportStar(require("./migrate-progress-segmented"), exports);
13
19
  tslib_1.__exportStar(require("./migrate-thumbnail-card"), exports);
@@ -22,9 +22,6 @@ function addModules(componentPath, modules) {
22
22
  });
23
23
  }
24
24
  function getFallbackValue(textValue, fallbackValue) {
25
- if (textValue) {
26
- return `(${textValue} | tuiInitials)`;
27
- }
28
25
  return textValue ? `(${textValue} | tuiInitials)` : fallbackValue || '';
29
26
  }
30
27
  function normalizeAttrValue(attrName, attrValue) {
@@ -47,6 +44,7 @@ function migrateAvatar({ resource, recorder, fileSystem, }) {
47
44
  const fallbackAttr = (0, inputs_1.findAttr)(attrs, 'fallback');
48
45
  const textAttr = (0, inputs_1.findAttr)(attrs, 'text');
49
46
  const roundedAttr = (0, inputs_1.findAttr)(attrs, 'rounded');
47
+ const autoColorAttr = (0, inputs_1.findAttr)(attrs, 'autoColor');
50
48
  if ((!avatarUrlAttr && !textAttr) || !sourceCodeLocation) {
51
49
  return;
52
50
  }
@@ -55,6 +53,8 @@ function migrateAvatar({ resource, recorder, fileSystem, }) {
55
53
  const textAttrValue = (textAttr === null || textAttr === void 0 ? void 0 : textAttr.value) && normalizeAttrValue(textAttr.name, textAttr.value);
56
54
  const fallbackAttrValue = (fallbackAttr === null || fallbackAttr === void 0 ? void 0 : fallbackAttr.value) &&
57
55
  normalizeAttrValue(fallbackAttr.name, fallbackAttr.value);
56
+ const autoColorValue = (autoColorAttr === null || autoColorAttr === void 0 ? void 0 : autoColorAttr.value) &&
57
+ normalizeAttrValue(autoColorAttr.name, autoColorAttr.value);
58
58
  const insertTo = ((_b = (_a = sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.startOffset) !== null && _b !== void 0 ? _b : 0) + '<tui-avatar'.length;
59
59
  if (!insertTo) {
60
60
  return;
@@ -66,8 +66,13 @@ function migrateAvatar({ resource, recorder, fileSystem, }) {
66
66
  const fallbackSrc = urlAttrValue && fallbackValue
67
67
  ? `| tuiFallbackSrc : ${fallbackValue} | async`
68
68
  : '';
69
- recorder.insertRight(insertTo + templateOffset, ` [src]="${mainSrc}${fallbackSrc ? ` ${fallbackSrc}` : ''}"${!roundedAttr ? ' [round]="false"' : ''}`);
70
- const attrsToRemove = [avatarUrlAttr, textAttr, fallbackAttr].filter((attr) => attr !== undefined);
69
+ recorder.insertRight(insertTo + templateOffset, ` [src]="${mainSrc}${fallbackSrc ? ` ${fallbackSrc}` : ''}"${!roundedAttr ? ' [round]="false"' : ''}${autoColorValue === 'true' ? ` [style.background]="${textAttrValue} | tuiAutoColor"` : ''}`);
70
+ const attrsToRemove = [
71
+ avatarUrlAttr,
72
+ textAttr,
73
+ fallbackAttr,
74
+ autoColorAttr,
75
+ ].filter((attr) => attr !== undefined);
71
76
  const fallbackModule = !!((avatarUrlAttr && textAttrValue) || fallbackAttr);
72
77
  const initialsModule = !!textAttrValue;
73
78
  const modules = [
@@ -1,7 +1,7 @@
1
1
  import type { UpdateRecorder } from '@angular-devkit/schematics';
2
2
  import type { DevkitFileSystem } from 'ng-morph';
3
- import type { TemplateResource } from '../../interfaces/template-resource';
4
- export declare function migratePolymorpheus({ resource, fileSystem, recorder, }: {
3
+ import type { TemplateResource } from '../../../interfaces';
4
+ export declare function migrateAxes({ resource, recorder, fileSystem, }: {
5
5
  fileSystem: DevkitFileSystem;
6
6
  recorder: UpdateRecorder;
7
7
  resource: TemplateResource;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateAxes = void 0;
4
+ const elements_1 = require("../../../../utils/templates/elements");
5
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
6
+ const remove_attrs_1 = require("../utils/remove-attrs");
7
+ const AXES_TAG_NAME = 'tui-axes';
8
+ const AXES_NEW_ATTRIBUTE = 'new';
9
+ function migrateAxes({ resource, recorder, fileSystem, }) {
10
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
11
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
12
+ const elements = (0, elements_1.findElementsByTagName)(template, AXES_TAG_NAME);
13
+ elements.forEach(({ attrs, sourceCodeLocation }) => {
14
+ const axesNewAttr = attrs.find((attr) => attr.name === AXES_NEW_ATTRIBUTE);
15
+ if (!sourceCodeLocation) {
16
+ return;
17
+ }
18
+ if (axesNewAttr) {
19
+ (0, remove_attrs_1.removeAttrs)([axesNewAttr], sourceCodeLocation, recorder, templateOffset);
20
+ }
21
+ else {
22
+ recorder.insertLeft(sourceCodeLocation.startOffset + templateOffset, '<!-- TODO: (Taiga UI migration) labels positioning on x axes were updated. Add empty string to axisXLabels array. See https://taiga-ui.dev/charts/axes -->\n');
23
+ }
24
+ });
25
+ }
26
+ exports.migrateAxes = migrateAxes;
@@ -2,7 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.migrateBadge = void 0;
4
4
  const elements_1 = require("../../../../utils/templates/elements");
5
+ const inputs_1 = require("../../../../utils/templates/inputs");
5
6
  const template_resource_1 = require("../../../../utils/templates/template-resource");
7
+ const common_1 = require("./toggles/common");
8
+ const badgeSizeMap = {
9
+ xs: 's',
10
+ s: 'm',
11
+ m: 'l',
12
+ l: 'xl',
13
+ };
6
14
  function migrateBadge({ resource, recorder, fileSystem, }) {
7
15
  const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
8
16
  const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
@@ -11,7 +19,8 @@ function migrateBadge({ resource, recorder, fileSystem, }) {
11
19
  if (!sourceCodeLocation) {
12
20
  return;
13
21
  }
14
- const valueAttr = attrs.find((attr) => attr.name === '[value]' || attr.name === 'value');
22
+ (0, common_1.replaceSizeAttr)(attrs, sourceCodeLocation, recorder, templateOffset, badgeSizeMap);
23
+ const valueAttr = (0, inputs_1.findAttr)(attrs, 'value');
15
24
  // migration for icon-only badges
16
25
  if (!valueAttr) {
17
26
  addTodo(recorder, sourceCodeLocation, templateOffset);
@@ -31,16 +40,16 @@ function migrateBadge({ resource, recorder, fileSystem, }) {
31
40
  }
32
41
  exports.migrateBadge = migrateBadge;
33
42
  function migrateIcon({ svg, sourceCodeLocation, recorder, templateOffset, }) {
34
- var _a, _b, _c, _d, _e;
35
- const src = (_a = svg.attrs) === null || _a === void 0 ? void 0 : _a.find((attr) => attr.name === 'src');
43
+ var _a, _b, _c, _d;
44
+ const src = (0, inputs_1.findAttr)(svg.attrs, 'src');
36
45
  const srcValue = src === null || src === void 0 ? void 0 : src.value;
37
46
  if (!srcValue) {
38
47
  return;
39
48
  }
40
- const insertTo = templateOffset + (((_b = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.startTag) === null || _b === void 0 ? void 0 : _b.endOffset) || 0) - 1;
49
+ const insertTo = templateOffset + (((_a = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.endOffset) || 0) - 1;
41
50
  recorder.insertRight(insertTo, `${(src === null || src === void 0 ? void 0 : src.name) === 'src' ? 'iconStart' : '[iconStart]'}="${srcValue}"`);
42
- recorder.remove(((_c = svg.sourceCodeLocation) === null || _c === void 0 ? void 0 : _c.startOffset) || 0, (((_d = svg.sourceCodeLocation) === null || _d === void 0 ? void 0 : _d.endOffset) || 0) -
43
- (((_e = svg.sourceCodeLocation) === null || _e === void 0 ? void 0 : _e.startOffset) || 0));
51
+ recorder.remove(((_b = svg.sourceCodeLocation) === null || _b === void 0 ? void 0 : _b.startOffset) || 0, (((_c = svg.sourceCodeLocation) === null || _c === void 0 ? void 0 : _c.endOffset) || 0) -
52
+ (((_d = svg.sourceCodeLocation) === null || _d === void 0 ? void 0 : _d.startOffset) || 0));
44
53
  }
45
54
  function migrateBadgeValue({ valueAttr, sourceCodeLocation, recorder, templateOffset, }) {
46
55
  var _a, _b, _c, _d, _e;
@@ -59,7 +59,7 @@ function migrateBadgedContent({ resource, recorder, fileSystem, }) {
59
59
  });
60
60
  if (!rounded || rounded.value === 'true') {
61
61
  const insertTo = (_b = (_a = sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.endOffset) !== null && _b !== void 0 ? _b : 0;
62
- recorder.insertRight(insertTo + templateOffset - 1, '[style.--tui-radius.%]="50"');
62
+ recorder.insertRight(insertTo + templateOffset - 1, ' [style.--tui-radius.%]="50"');
63
63
  }
64
64
  const attrsToRemove = [
65
65
  colorBottomAttr,
@@ -1,7 +1,7 @@
1
1
  import type { UpdateRecorder } from '@angular-devkit/schematics';
2
2
  import type { DevkitFileSystem } from 'ng-morph';
3
- import type { TemplateResource } from '../../interfaces/template-resource';
4
- export declare function migrateTextfieldController({ resource, fileSystem, recorder, }: {
3
+ import type { TemplateResource } from '../../../interfaces';
4
+ export declare function migrateBlocked({ resource, recorder, fileSystem, }: {
5
5
  fileSystem: DevkitFileSystem;
6
6
  recorder: UpdateRecorder;
7
7
  resource: TemplateResource;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateBlocked = void 0;
4
+ const elements_1 = require("../../../../utils/templates/elements");
5
+ const inputs_1 = require("../../../../utils/templates/inputs");
6
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
7
+ function migrateBlocked({ resource, recorder, fileSystem, }) {
8
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
9
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
10
+ const elements = (0, elements_1.findElementsByTagNames)(template, [
11
+ 'tui-checkbox-block',
12
+ 'tui-radio-block',
13
+ ]);
14
+ elements.forEach(({ sourceCodeLocation, tagName, attrs }) => {
15
+ var _a, _b, _c, _d;
16
+ if (!sourceCodeLocation) {
17
+ return;
18
+ }
19
+ const [, hideIconAttrLocation] = Object.entries(sourceCodeLocation.attrs || {}).find(([name]) => name.includes('hideCheckbox'.toLowerCase()) ||
20
+ name.includes('hideRadio'.toLowerCase())) || [];
21
+ const [, sizeAttrLocation] = Object.entries(sourceCodeLocation.attrs || {}).find(([name]) => name.includes('size')) || [];
22
+ const sizeAttr = (0, inputs_1.findAttr)(attrs, 'size');
23
+ const newBlockAttr = `tuiBlock${sizeAttr ? `="${sizeAttr.value === 'xs' ? 's' : sizeAttr.value}"` : ''}`;
24
+ recorder.insertRight(templateOffset + (((_a = sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.startOffset) || 1) - 1, `<label ${newBlockAttr}${hideIconAttrLocation ? ' appearance=""' : ''}>`);
25
+ recorder.remove(templateOffset + ((_c = (_b = sourceCodeLocation.endTag) === null || _b === void 0 ? void 0 : _b.startOffset) !== null && _c !== void 0 ? _c : 0), `<${tagName}/>`.length);
26
+ recorder.insertRight(templateOffset + (((_d = sourceCodeLocation.endTag) === null || _d === void 0 ? void 0 : _d.startOffset) || 1), '</label>');
27
+ if (hideIconAttrLocation) {
28
+ recorder.remove(templateOffset + hideIconAttrLocation.startOffset, hideIconAttrLocation.endOffset - hideIconAttrLocation.startOffset);
29
+ }
30
+ if (sizeAttrLocation) {
31
+ recorder.remove(templateOffset + sizeAttrLocation.startOffset, sizeAttrLocation.endOffset - sizeAttrLocation.startOffset);
32
+ }
33
+ });
34
+ }
35
+ exports.migrateBlocked = migrateBlocked;
@@ -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 migrateButtonAppearance({ 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.migrateButtonAppearance = void 0;
4
+ const elements_1 = require("../../../../utils/templates/elements");
5
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
6
+ const remove_attrs_1 = require("../utils/remove-attrs");
7
+ const tuiButtonSelectors = ['tuiButton', 'tuiIconButton'];
8
+ const appearanceInputName = 'appearance';
9
+ const appearanceInputNameDict = {
10
+ [appearanceInputName]: true,
11
+ [`[${appearanceInputName}]`]: true,
12
+ };
13
+ function migrateButtonAppearance({ resource, recorder, fileSystem, }) {
14
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
15
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
16
+ const elements = tuiButtonSelectors.flatMap((selector) => (0, elements_1.findElementsWithDirective)(template, selector).filter(({ sourceCodeLocation, attrs }) => !!sourceCodeLocation &&
17
+ attrs.some(({ name }) => appearanceInputNameDict[name])));
18
+ if (!elements.length) {
19
+ return;
20
+ }
21
+ const whiteBlockValue = 'whiteblock-active';
22
+ elements.forEach(({ attrs, sourceCodeLocation }) => {
23
+ var _a;
24
+ const whiteBlockActiveAttr = attrs.find(({ value, name }) => appearanceInputNameDict[name] &&
25
+ (value === whiteBlockValue || value === `'${whiteBlockValue}'`));
26
+ if (whiteBlockActiveAttr) {
27
+ (0, remove_attrs_1.removeAttrs)([whiteBlockActiveAttr], sourceCodeLocation, recorder, templateOffset);
28
+ const { startOffset } = ((_a = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.attrs) === null || _a === void 0 ? void 0 : _a[whiteBlockActiveAttr.name]) || { startOffset: 0, endOffset: 0 };
29
+ recorder.insertLeft(startOffset + templateOffset, ` ${appearanceInputName}="whiteblock"`);
30
+ recorder.insertLeft(startOffset + templateOffset, ' data-mode="checked"');
31
+ }
32
+ });
33
+ const elementWithConditionAppearance = elements.find(({ attrs }) => attrs.some(({ name, value }) => name === `[${appearanceInputName}]` && !value.trim().startsWith("'")));
34
+ if (elementWithConditionAppearance) {
35
+ addTodo(recorder, templateOffset);
36
+ }
37
+ }
38
+ exports.migrateButtonAppearance = migrateButtonAppearance;
39
+ function addTodo(recorder, templateOffset) {
40
+ recorder.insertRight(templateOffset, '<!-- Taiga migration TODO: tuiButton "whiteblock-active" appearance is no longer available. Use \'appearance="whiteblock" data-mode="checked"\' -->\n');
41
+ }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.migrateExpandable = void 0;
4
4
  const elements_1 = require("../../../../utils/templates/elements");
5
+ const inputs_1 = require("../../../../utils/templates/inputs");
5
6
  const template_resource_1 = require("../../../../utils/templates/template-resource");
6
7
  function migrateExpandable({ resource, recorder, fileSystem, }) {
7
8
  const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
@@ -9,7 +10,7 @@ function migrateExpandable({ resource, recorder, fileSystem, }) {
9
10
  const elements = (0, elements_1.findElementsWithAttributeOnTag)(template, ['[expandable]'], ['tui-input-tag', 'tui-multi-select', 'tui-input-date']);
10
11
  elements.forEach(({ attrs, sourceCodeLocation }) => {
11
12
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
12
- const expandableAttr = attrs.find((attr) => attr.name === '[expandable]');
13
+ const expandableAttr = (0, inputs_1.findAttr)(attrs, 'expandable');
13
14
  if (!expandableAttr) {
14
15
  return;
15
16
  }
@@ -17,7 +18,7 @@ function migrateExpandable({ resource, recorder, fileSystem, }) {
17
18
  const expandableStart = (_c = (_b = (_a = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.attrs) === null || _a === void 0 ? void 0 : _a[expandableAttr.name]) === null || _b === void 0 ? void 0 : _b.startOffset) !== null && _c !== void 0 ? _c : 0;
18
19
  const expandableEnd = (_f = (_e = (_d = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.attrs) === null || _d === void 0 ? void 0 : _d[expandableAttr.name]) === null || _e === void 0 ? void 0 : _e.endOffset) !== null && _f !== void 0 ? _f : 0;
19
20
  if (expandableValue === 'false') {
20
- const rowsAttr = attrs.find((attr) => attr.name === '[rows]');
21
+ const rowsAttr = (0, inputs_1.findAttr)(attrs, 'rows');
21
22
  const insertTo = ((_h = (_g = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.startTag) === null || _g === void 0 ? void 0 : _g.endOffset) !== null && _h !== void 0 ? _h : 0) - 1;
22
23
  recorder.insertRight(templateOffset + insertTo, rowsAttr ? '' : '[rows]="1"');
23
24
  }
@@ -2,19 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.migrateFocusable = void 0;
4
4
  const elements_1 = require("../../../../utils/templates/elements");
5
+ const inputs_1 = require("../../../../utils/templates/inputs");
5
6
  const template_resource_1 = require("../../../../utils/templates/template-resource");
6
- const LEGACY_ATTRIBUTE_NAME = '[tuiFocusable]'.toLowerCase();
7
+ const LEGACY_ATTRIBUTE_NAME = 'tuiFocusable';
7
8
  function migrateFocusable({ resource, recorder, fileSystem, }) {
8
9
  const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
9
10
  const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
10
- const elements = (0, elements_1.findElementsWithAttributeOnTag)(template, [LEGACY_ATTRIBUTE_NAME]);
11
+ const elements = (0, elements_1.findElementsWithAttributeOnTag)(template, [
12
+ `[${LEGACY_ATTRIBUTE_NAME}]`,
13
+ ]);
11
14
  elements.forEach(({ attrs, sourceCodeLocation }) => {
12
15
  var _a;
13
16
  if (!sourceCodeLocation) {
14
17
  return;
15
18
  }
16
- const focusableAttr = attrs.find((attr) => attr.name === LEGACY_ATTRIBUTE_NAME);
17
- const attributeLocation = (_a = sourceCodeLocation.attrs) === null || _a === void 0 ? void 0 : _a[LEGACY_ATTRIBUTE_NAME];
19
+ const focusableAttr = (0, inputs_1.findAttr)(attrs, LEGACY_ATTRIBUTE_NAME);
20
+ const attributeLocation = (_a = sourceCodeLocation.attrs) === null || _a === void 0 ? void 0 : _a[focusableAttr.name];
18
21
  if (!focusableAttr || !attributeLocation) {
19
22
  return;
20
23
  }
@@ -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 migrateLabel({ resource, recorder, fileSystem, }: {
5
+ fileSystem: DevkitFileSystem;
6
+ recorder: UpdateRecorder;
7
+ resource: TemplateResource;
8
+ }): void;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateLabel = void 0;
4
+ const elements_1 = require("../../../../utils/templates/elements");
5
+ const inputs_1 = require("../../../../utils/templates/inputs");
6
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
7
+ function migrateLabel({ resource, recorder, fileSystem, }) {
8
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
9
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
10
+ const labelElements = (0, elements_1.findElementsByTagName)(template, 'label', ({ attrs }) => attrs.some(({ name }) => name === 'tuilabel' || name === '[tuilabel]'));
11
+ labelElements.forEach(({ attrs, sourceCodeLocation }) => {
12
+ const labelAttr = (0, inputs_1.findAttr)(attrs, 'tuilabel');
13
+ if (!labelAttr || !sourceCodeLocation) {
14
+ return;
15
+ }
16
+ migrateValue({
17
+ valueAttr: labelAttr,
18
+ sourceCodeLocation,
19
+ recorder,
20
+ templateOffset,
21
+ });
22
+ });
23
+ }
24
+ exports.migrateLabel = migrateLabel;
25
+ function migrateValue({ valueAttr, sourceCodeLocation, recorder, templateOffset, }) {
26
+ var _a, _b, _c;
27
+ const attrValue = valueAttr === null || valueAttr === void 0 ? void 0 : valueAttr.value;
28
+ const insertTo = (_b = (_a = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.endOffset) !== null && _b !== void 0 ? _b : 0;
29
+ if (!attrValue || !insertTo) {
30
+ return;
31
+ }
32
+ recorder.insertRight(insertTo + templateOffset, valueAttr.name === 'tuilabel' ? attrValue : `{{ ${attrValue} }}`);
33
+ const attrOffset = (_c = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.attrs) === null || _c === void 0 ? void 0 : _c[valueAttr.name];
34
+ if (attrOffset) {
35
+ const { startOffset, endOffset } = attrOffset;
36
+ recorder.remove(templateOffset + startOffset, endOffset - startOffset);
37
+ recorder.insertRight(templateOffset + startOffset, 'tuiLabel');
38
+ }
39
+ }
@@ -15,7 +15,7 @@ function migrateLabeled({ resource, recorder, fileSystem, }) {
15
15
  data: [
16
16
  {
17
17
  attrNames: ['size'],
18
- values: [
18
+ valueReplacer: [
19
19
  { from: 'l', to: 'm' },
20
20
  { from: 'm', to: 's' },
21
21
  ],
@@ -28,16 +28,14 @@ function migrateLabeled({ resource, recorder, fileSystem, }) {
28
28
  'tui-radio-labeled',
29
29
  ]);
30
30
  elements.forEach(({ sourceCodeLocation, tagName }) => {
31
- var _a, _b, _c, _d, _e, _f;
31
+ var _a, _b, _c, _d;
32
32
  if (!sourceCodeLocation) {
33
33
  return;
34
34
  }
35
35
  (0, add_import_to_closest_module_1.addImportToClosestModule)(resource.componentPath, tagName === 'tui-checkbox-labeled' ? 'TuiCheckbox' : 'TuiRadio', '@taiga-ui/kit');
36
- recorder.insertRight(templateOffset + ((_b = (_a = sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.startOffset) !== null && _b !== void 0 ? _b : 1) - 1, '<label tuiLabel>');
37
- recorder.insertRight(templateOffset + ((_d = (_c = sourceCodeLocation.endTag) === null || _c === void 0 ? void 0 : _c.startOffset) !== null && _d !== void 0 ? _d : 1) - 1, '\n</label>');
38
- recorder.remove(templateOffset + ((_f = (_e = sourceCodeLocation.endTag) === null || _e === void 0 ? void 0 : _e.startOffset) !== null && _f !== void 0 ? _f : 0), tagName === 'tui-checkbox-labeled'
39
- ? '<tui-checkbox-labeled/>'.length
40
- : '<tui-radio-labeled/>'.length);
36
+ recorder.insertRight(templateOffset + (((_a = sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.startOffset) || 1) - 1, '<label tuiLabel>');
37
+ recorder.remove(templateOffset + ((_c = (_b = sourceCodeLocation.endTag) === null || _b === void 0 ? void 0 : _b.startOffset) !== null && _c !== void 0 ? _c : 0), `<${tagName}/>`.length);
38
+ recorder.insertRight(templateOffset + (((_d = sourceCodeLocation.endTag) === null || _d === void 0 ? void 0 : _d.startOffset) || 1), '</label>');
41
39
  });
42
40
  }
43
41
  exports.migrateLabeled = migrateLabeled;
@@ -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 migrateMobileTabs({ resource, recorder, fileSystem, }: {
5
+ fileSystem: DevkitFileSystem;
6
+ recorder: UpdateRecorder;
7
+ resource: TemplateResource;
8
+ }): void;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateMobileTabs = void 0;
4
+ const add_import_to_closest_module_1 = require("../../../../utils/add-import-to-closest-module");
5
+ const elements_1 = require("../../../../utils/templates/elements");
6
+ const template_resource_1 = require("../../../../utils/templates/template-resource");
7
+ const templates_1 = require("../../../utils/templates");
8
+ const remove_attrs_1 = require("../utils/remove-attrs");
9
+ const TABS_TAG_NAME = 'tui-tabs';
10
+ const SEGMENTED_TAG_NAME = 'tui-segmented';
11
+ const TAB_ATTRIBUTE_NAME = 'tuiTab'.toLowerCase();
12
+ const MOBILE_TABS_ATTRIBUTE_NAME = 'tuiMobileTabs'.toLowerCase();
13
+ function migrateMobileTabs({ resource, recorder, fileSystem, }) {
14
+ const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
15
+ const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
16
+ const elements = (0, elements_1.findElementsWithAttributeOnTag)(template, [MOBILE_TABS_ATTRIBUTE_NAME], [TABS_TAG_NAME]);
17
+ if (elements.length > 0) {
18
+ (0, add_import_to_closest_module_1.addImportToClosestModule)(resource.componentPath, 'TuiSegmented', '@taiga-ui/kit');
19
+ }
20
+ elements.forEach((element) => {
21
+ (0, templates_1.replaceTag)(recorder, element.sourceCodeLocation, TABS_TAG_NAME, SEGMENTED_TAG_NAME, templateOffset);
22
+ removeMobileTabsAttribute(element, recorder, templateOffset);
23
+ element.childNodes
24
+ .filter(isElement)
25
+ .forEach((element) => removeTabAttribute(element, recorder, templateOffset));
26
+ });
27
+ }
28
+ exports.migrateMobileTabs = migrateMobileTabs;
29
+ function removeTabAttribute({ attrs, sourceCodeLocation }, recorder, templateOffset) {
30
+ const tabAttr = attrs.find((attr) => attr.name === TAB_ATTRIBUTE_NAME);
31
+ if (!tabAttr || !sourceCodeLocation) {
32
+ return;
33
+ }
34
+ (0, remove_attrs_1.removeAttrs)([tabAttr], sourceCodeLocation, recorder, templateOffset);
35
+ }
36
+ function removeMobileTabsAttribute({ attrs, sourceCodeLocation }, recorder, templateOffset) {
37
+ const mobileTabsAttr = attrs.find((attr) => attr.name === MOBILE_TABS_ATTRIBUTE_NAME);
38
+ if (!mobileTabsAttr || !sourceCodeLocation) {
39
+ return;
40
+ }
41
+ (0, remove_attrs_1.removeAttrs)([mobileTabsAttr], sourceCodeLocation, recorder, templateOffset);
42
+ }
43
+ function isElement(node) {
44
+ return Boolean(node.attrs);
45
+ }
@@ -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 migrateNotification({ resource, recorder, fileSystem, }: {
5
+ fileSystem: DevkitFileSystem;
6
+ recorder: UpdateRecorder;
7
+ resource: TemplateResource;
8
+ }): void;