@taiga-ui/cdk 4.0.0-rc.8 → 4.0.0-rc.9

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 (120) 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/esm2022/constants/used-icons.mjs +9 -1
  5. package/esm2022/constants/version.mjs +2 -2
  6. package/esm2022/services/index.mjs +2 -2
  7. package/esm2022/services/theme-color.service.mjs +30 -0
  8. package/fesm2022/taiga-ui-cdk-constants.mjs +9 -1
  9. package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
  10. package/fesm2022/taiga-ui-cdk-services.mjs +19 -22
  11. package/fesm2022/taiga-ui-cdk-services.mjs.map +1 -1
  12. package/package.json +4 -4
  13. package/schematics/ng-update/interfaces/html-comment.d.ts +3 -2
  14. package/schematics/ng-update/interfaces/replacement-attribute-value.d.ts +6 -2
  15. package/schematics/ng-update/interfaces/replacement-identifier.d.ts +4 -11
  16. package/schematics/ng-update/steps/replace-identifier.js +16 -11
  17. package/schematics/ng-update/utils/templates/replace-attr-values.js +39 -10
  18. package/schematics/ng-update/utils/templates/template-comments.js +7 -1
  19. package/schematics/ng-update/v4/index.js +2 -0
  20. package/schematics/ng-update/v4/migrate-icons/index.js +2 -2
  21. package/schematics/ng-update/v4/migrate-icons/rename-proprietary-icons.d.ts +2 -1
  22. package/schematics/ng-update/v4/migrate-icons/rename-proprietary-icons.js +16 -3
  23. package/schematics/ng-update/v4/steps/constants/attr-with-values-to-replace.js +42 -2
  24. package/schematics/ng-update/v4/steps/constants/attrs-to-replace.js +8 -0
  25. package/schematics/ng-update/v4/steps/constants/html-comments.js +4 -0
  26. package/schematics/ng-update/v4/steps/constants/identifiers-to-replace.js +212 -230
  27. package/schematics/ng-update/v4/steps/constants/migration-warnings.js +11 -1
  28. package/schematics/ng-update/v4/steps/constants/modules-to-remove.js +4 -0
  29. package/schematics/ng-update/v4/steps/constants/types.js +12 -0
  30. package/schematics/ng-update/v4/steps/index.d.ts +2 -0
  31. package/schematics/ng-update/v4/steps/index.js +2 -0
  32. package/schematics/ng-update/v4/steps/migrate-alert-service.js +31 -9
  33. package/schematics/ng-update/v4/steps/migrate-month-context.d.ts +2 -0
  34. package/schematics/ng-update/v4/steps/migrate-month-context.js +39 -0
  35. package/schematics/ng-update/v4/steps/migrate-number-format-settings.d.ts +2 -0
  36. package/schematics/ng-update/v4/steps/migrate-number-format-settings.js +64 -0
  37. package/schematics/ng-update/v4/steps/styles/index.js +12 -2
  38. package/schematics/ng-update/v4/steps/styles/migrate-less-scss-constants.d.ts +1 -0
  39. package/schematics/ng-update/v4/steps/styles/migrate-less-scss-constants.js +13 -0
  40. package/schematics/ng-update/v4/steps/styles/migrate-scrollbar-behavior.d.ts +1 -0
  41. package/schematics/ng-update/v4/steps/styles/migrate-scrollbar-behavior.js +10 -0
  42. package/schematics/ng-update/v4/steps/styles/migrate-shadow-mixins.d.ts +1 -0
  43. package/schematics/ng-update/v4/steps/styles/migrate-shadow-mixins.js +23 -0
  44. package/schematics/ng-update/v4/steps/styles/migrate-space-mixins.js +2 -2
  45. package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.d.ts +1 -0
  46. package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js +54 -0
  47. package/schematics/ng-update/v4/steps/templates/migrate-badged-content.js +1 -1
  48. package/schematics/ng-update/v4/steps/templates/migrate-labeled.js +1 -1
  49. package/schematics/ng-update/v4/steps/templates/migrate-notification.js +21 -3
  50. package/services/index.d.ts +1 -1
  51. package/services/theme-color.service.d.ts +16 -0
  52. package/esm2022/services/static-request.service.mjs +0 -33
  53. package/schematics/ng-update/v3/constants/breakpoints.d.ts +0 -82
  54. package/schematics/ng-update/v3/constants/breakpoints.js +0 -34
  55. package/schematics/ng-update/v3/constants/constants.d.ts +0 -2
  56. package/schematics/ng-update/v3/constants/constants.js +0 -466
  57. package/schematics/ng-update/v3/constants/deprecated-functions.d.ts +0 -2
  58. package/schematics/ng-update/v3/constants/deprecated-functions.js +0 -680
  59. package/schematics/ng-update/v3/constants/enums.d.ts +0 -2
  60. package/schematics/ng-update/v3/constants/enums.js +0 -284
  61. package/schematics/ng-update/v3/constants/modules.d.ts +0 -2
  62. package/schematics/ng-update/v3/constants/modules.js +0 -9
  63. package/schematics/ng-update/v3/constants/services.d.ts +0 -2
  64. package/schematics/ng-update/v3/constants/services.js +0 -53
  65. package/schematics/ng-update/v3/constants/templates.d.ts +0 -57
  66. package/schematics/ng-update/v3/constants/templates.js +0 -744
  67. package/schematics/ng-update/v3/constants/tui-interactive-selectors.d.ts +0 -1
  68. package/schematics/ng-update/v3/constants/tui-interactive-selectors.js +0 -55
  69. package/schematics/ng-update/v3/constants/types.d.ts +0 -2
  70. package/schematics/ng-update/v3/constants/types.js +0 -156
  71. package/schematics/ng-update/v3/constants/warnings.d.ts +0 -2
  72. package/schematics/ng-update/v3/constants/warnings.js +0 -111
  73. package/schematics/ng-update/v3/index.d.ts +0 -3
  74. package/schematics/ng-update/v3/index.js +0 -105
  75. package/schematics/ng-update/v3/schema.json +0 -13
  76. package/schematics/ng-update/v3/steps/migrate-date-time.d.ts +0 -2
  77. package/schematics/ng-update/v3/steps/migrate-date-time.js +0 -207
  78. package/schematics/ng-update/v3/steps/migrate-polymorpheus.d.ts +0 -8
  79. package/schematics/ng-update/v3/steps/migrate-polymorpheus.js +0 -78
  80. package/schematics/ng-update/v3/steps/migrate-progress.d.ts +0 -8
  81. package/schematics/ng-update/v3/steps/migrate-progress.js +0 -49
  82. package/schematics/ng-update/v3/steps/migrate-sliders/index.d.ts +0 -3
  83. package/schematics/ng-update/v3/steps/migrate-sliders/index.js +0 -19
  84. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-range.d.ts +0 -3
  85. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-range.js +0 -103
  86. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-slider.d.ts +0 -3
  87. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-slider.js +0 -90
  88. package/schematics/ng-update/v3/steps/migrate-taiga-proprietary-icons.d.ts +0 -3
  89. package/schematics/ng-update/v3/steps/migrate-taiga-proprietary-icons.js +0 -70
  90. package/schematics/ng-update/v3/steps/migrate-templates.d.ts +0 -4
  91. package/schematics/ng-update/v3/steps/migrate-templates.js +0 -216
  92. package/schematics/ng-update/v3/steps/migrate-textfield-controller.d.ts +0 -8
  93. package/schematics/ng-update/v3/steps/migrate-textfield-controller.js +0 -98
  94. package/schematics/ng-update/v3/steps/miscellaneous.d.ts +0 -2
  95. package/schematics/ng-update/v3/steps/miscellaneous.js +0 -81
  96. package/schematics/ng-update/v3/steps/replace-functions.d.ts +0 -2
  97. package/schematics/ng-update/v3/steps/replace-functions.js +0 -138
  98. package/schematics/ng-update/v3/steps/replace-styles.d.ts +0 -3
  99. package/schematics/ng-update/v3/steps/replace-styles.js +0 -33
  100. package/schematics/ng-update/v3-30/constants/constants.d.ts +0 -2
  101. package/schematics/ng-update/v3-30/constants/constants.js +0 -8
  102. package/schematics/ng-update/v3-30/constants/icons.d.ts +0 -4
  103. package/schematics/ng-update/v3-30/constants/icons.js +0 -993
  104. package/schematics/ng-update/v3-30/index.d.ts +0 -3
  105. package/schematics/ng-update/v3-30/index.js +0 -33
  106. package/schematics/ng-update/v3-35/constants/constants.d.ts +0 -2
  107. package/schematics/ng-update/v3-35/constants/constants.js +0 -8
  108. package/schematics/ng-update/v3-35/constants/icons.d.ts +0 -4
  109. package/schematics/ng-update/v3-35/constants/icons.js +0 -2537
  110. package/schematics/ng-update/v3-35/index.d.ts +0 -3
  111. package/schematics/ng-update/v3-35/index.js +0 -33
  112. package/schematics/ng-update/v3-36/index.d.ts +0 -3
  113. package/schematics/ng-update/v3-36/index.js +0 -23
  114. package/schematics/ng-update/v3-40/index.d.ts +0 -3
  115. package/schematics/ng-update/v3-40/index.js +0 -62
  116. package/schematics/ng-update/v3-5/index.d.ts +0 -3
  117. package/schematics/ng-update/v3-5/index.js +0 -20
  118. package/schematics/ng-update/v3-5/steps/migrate-expand-templates.d.ts +0 -3
  119. package/schematics/ng-update/v3-5/steps/migrate-expand-templates.js +0 -44
  120. package/services/static-request.service.d.ts +0 -8
@@ -4,4 +4,4 @@
4
4
  *
5
5
  * Array of icons used in taiga-ui components
6
6
  */
7
- export declare const TUI_USED_ICONS: readonly ["@tui.mir", "@tui.visa", "@tui.electron", "@tui.mastercard", "@tui.maestro", "@tui.amex", "@tui.diners-club", "@tui.discover", "@tui.humo", "@tui.jcb", "@tui.ru-pay", "@tui.union-pay", "@tui.uzcard", "@tui.verve", "@tui.search", "@tui.sun", "@tui.moon", "@tui.code", "@tui.menu", "@tui.copy", "@tui.check", "@tui.link", "@tui.eye-off", "@tui.eye", "@tui.grip-vertical", "@tui.chevron-up", "@tui.chevron-down", "@tui.chevrons-up-down", "@tui.info", "@tui.circle-check", "@tui.circle-x", "@tui.circle-alert", "@tui.circle-help", "@tui.x", "@tui.chevron-right", "@tui.chevron-left", "@tui.calendar", "@tui.minus", "@tui.file", "@tui.trash", "@tui.star", "@tui.rotate-ccw-square", "@tui.arrow-left", "@tui.arrow-right", "@tui.plus", "@tui.minimize", "@tui.clock"];
7
+ export declare const TUI_USED_ICONS: readonly ["@tui.mir", "@tui.visa", "@tui.electron", "@tui.mastercard", "@tui.maestro", "@tui.amex", "@tui.diners-club", "@tui.discover", "@tui.humo", "@tui.jcb", "@tui.ru-pay", "@tui.union-pay", "@tui.uzcard", "@tui.verve", "@tui.search", "@tui.sun", "@tui.moon", "@tui.code", "@tui.menu", "@tui.copy", "@tui.check", "@tui.link", "@tui.eye-off", "@tui.eye", "@tui.grip-vertical", "@tui.chevron-up", "@tui.chevron-down", "@tui.chevrons-up-down", "@tui.info", "@tui.circle-check", "@tui.circle-x", "@tui.circle-alert", "@tui.circle-help", "@tui.x", "@tui.chevron-right", "@tui.chevron-left", "@tui.calendar", "@tui.minus", "@tui.file", "@tui.trash", "@tui.star", "@tui.rotate-ccw-square", "@tui.arrow-left", "@tui.arrow-right", "@tui.plus", "@tui.minimize", "@tui.move-up-right", "@tui.move-right", "@tui.move-down-right", "@tui.move-down", "@tui.move-down-left", "@tui.move-left", "@tui.move-up-left", "@tui.move-up", "@tui.clock"];
@@ -1 +1 @@
1
- export declare const TUI_VERSION = "4.0.0-rc.8";
1
+ export declare const TUI_VERSION = "4.0.0-rc.9";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TUI_VERSION = void 0;
4
- exports.TUI_VERSION = '4.0.0-rc.8';
4
+ exports.TUI_VERSION = '4.0.0-rc.9';
@@ -51,6 +51,14 @@ export const TUI_USED_ICONS = [
51
51
  '@tui.arrow-right',
52
52
  '@tui.plus',
53
53
  '@tui.minimize',
54
+ '@tui.move-up-right',
55
+ '@tui.move-right',
56
+ '@tui.move-down-right',
57
+ '@tui.move-down',
58
+ '@tui.move-down-left',
59
+ '@tui.move-left',
60
+ '@tui.move-up-left',
61
+ '@tui.move-up',
54
62
  '@tui.clock',
55
63
  ];
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlZC1pY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvdXNlZC1pY29ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQixVQUFVO0lBQ1YsV0FBVztJQUNYLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsY0FBYztJQUNkLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLFdBQVc7SUFDWCxVQUFVO0lBQ1YsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsWUFBWTtJQUNaLGFBQWE7SUFDYixVQUFVO0lBQ1YsV0FBVztJQUNYLFdBQVc7SUFDWCxXQUFXO0lBQ1gsV0FBVztJQUNYLFlBQVk7SUFDWixXQUFXO0lBQ1gsY0FBYztJQUNkLFVBQVU7SUFDVixvQkFBb0I7SUFDcEIsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsV0FBVztJQUNYLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixRQUFRO0lBQ1Isb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsWUFBWTtJQUNaLFdBQVc7SUFDWCxZQUFZO0lBQ1osV0FBVztJQUNYLHdCQUF3QjtJQUN4QixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxlQUFlO0lBQ2YsWUFBWTtDQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbjpcbiAqIEFVVE9HRU5FUkFURURcbiAqXG4gKiBBcnJheSBvZiBpY29ucyB1c2VkIGluIHRhaWdhLXVpIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9VU0VEX0lDT05TID0gW1xuICAgICdAdHVpLm1pcicsXG4gICAgJ0B0dWkudmlzYScsXG4gICAgJ0B0dWkuZWxlY3Ryb24nLFxuICAgICdAdHVpLm1hc3RlcmNhcmQnLFxuICAgICdAdHVpLm1hZXN0cm8nLFxuICAgICdAdHVpLmFtZXgnLFxuICAgICdAdHVpLmRpbmVycy1jbHViJyxcbiAgICAnQHR1aS5kaXNjb3ZlcicsXG4gICAgJ0B0dWkuaHVtbycsXG4gICAgJ0B0dWkuamNiJyxcbiAgICAnQHR1aS5ydS1wYXknLFxuICAgICdAdHVpLnVuaW9uLXBheScsXG4gICAgJ0B0dWkudXpjYXJkJyxcbiAgICAnQHR1aS52ZXJ2ZScsXG4gICAgJ0B0dWkuc2VhcmNoJyxcbiAgICAnQHR1aS5zdW4nLFxuICAgICdAdHVpLm1vb24nLFxuICAgICdAdHVpLmNvZGUnLFxuICAgICdAdHVpLm1lbnUnLFxuICAgICdAdHVpLmNvcHknLFxuICAgICdAdHVpLmNoZWNrJyxcbiAgICAnQHR1aS5saW5rJyxcbiAgICAnQHR1aS5leWUtb2ZmJyxcbiAgICAnQHR1aS5leWUnLFxuICAgICdAdHVpLmdyaXAtdmVydGljYWwnLFxuICAgICdAdHVpLmNoZXZyb24tdXAnLFxuICAgICdAdHVpLmNoZXZyb24tZG93bicsXG4gICAgJ0B0dWkuY2hldnJvbnMtdXAtZG93bicsXG4gICAgJ0B0dWkuaW5mbycsXG4gICAgJ0B0dWkuY2lyY2xlLWNoZWNrJyxcbiAgICAnQHR1aS5jaXJjbGUteCcsXG4gICAgJ0B0dWkuY2lyY2xlLWFsZXJ0JyxcbiAgICAnQHR1aS5jaXJjbGUtaGVscCcsXG4gICAgJ0B0dWkueCcsXG4gICAgJ0B0dWkuY2hldnJvbi1yaWdodCcsXG4gICAgJ0B0dWkuY2hldnJvbi1sZWZ0JyxcbiAgICAnQHR1aS5jYWxlbmRhcicsXG4gICAgJ0B0dWkubWludXMnLFxuICAgICdAdHVpLmZpbGUnLFxuICAgICdAdHVpLnRyYXNoJyxcbiAgICAnQHR1aS5zdGFyJyxcbiAgICAnQHR1aS5yb3RhdGUtY2N3LXNxdWFyZScsXG4gICAgJ0B0dWkuYXJyb3ctbGVmdCcsXG4gICAgJ0B0dWkuYXJyb3ctcmlnaHQnLFxuICAgICdAdHVpLnBsdXMnLFxuICAgICdAdHVpLm1pbmltaXplJyxcbiAgICAnQHR1aS5jbG9jaycsXG5dIGFzIGNvbnN0O1xuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlZC1pY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvdXNlZC1pY29ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQixVQUFVO0lBQ1YsV0FBVztJQUNYLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsY0FBYztJQUNkLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLFdBQVc7SUFDWCxVQUFVO0lBQ1YsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsWUFBWTtJQUNaLGFBQWE7SUFDYixVQUFVO0lBQ1YsV0FBVztJQUNYLFdBQVc7SUFDWCxXQUFXO0lBQ1gsV0FBVztJQUNYLFlBQVk7SUFDWixXQUFXO0lBQ1gsY0FBYztJQUNkLFVBQVU7SUFDVixvQkFBb0I7SUFDcEIsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsV0FBVztJQUNYLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixRQUFRO0lBQ1Isb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsWUFBWTtJQUNaLFdBQVc7SUFDWCxZQUFZO0lBQ1osV0FBVztJQUNYLHdCQUF3QjtJQUN4QixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxlQUFlO0lBQ2Ysb0JBQW9CO0lBQ3BCLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLHFCQUFxQjtJQUNyQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLGNBQWM7SUFDZCxZQUFZO0NBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uOlxuICogQVVUT0dFTkVSQVRFRFxuICpcbiAqIEFycmF5IG9mIGljb25zIHVzZWQgaW4gdGFpZ2EtdWkgY29tcG9uZW50c1xuICovXG5leHBvcnQgY29uc3QgVFVJX1VTRURfSUNPTlMgPSBbXG4gICAgJ0B0dWkubWlyJyxcbiAgICAnQHR1aS52aXNhJyxcbiAgICAnQHR1aS5lbGVjdHJvbicsXG4gICAgJ0B0dWkubWFzdGVyY2FyZCcsXG4gICAgJ0B0dWkubWFlc3RybycsXG4gICAgJ0B0dWkuYW1leCcsXG4gICAgJ0B0dWkuZGluZXJzLWNsdWInLFxuICAgICdAdHVpLmRpc2NvdmVyJyxcbiAgICAnQHR1aS5odW1vJyxcbiAgICAnQHR1aS5qY2InLFxuICAgICdAdHVpLnJ1LXBheScsXG4gICAgJ0B0dWkudW5pb24tcGF5JyxcbiAgICAnQHR1aS51emNhcmQnLFxuICAgICdAdHVpLnZlcnZlJyxcbiAgICAnQHR1aS5zZWFyY2gnLFxuICAgICdAdHVpLnN1bicsXG4gICAgJ0B0dWkubW9vbicsXG4gICAgJ0B0dWkuY29kZScsXG4gICAgJ0B0dWkubWVudScsXG4gICAgJ0B0dWkuY29weScsXG4gICAgJ0B0dWkuY2hlY2snLFxuICAgICdAdHVpLmxpbmsnLFxuICAgICdAdHVpLmV5ZS1vZmYnLFxuICAgICdAdHVpLmV5ZScsXG4gICAgJ0B0dWkuZ3JpcC12ZXJ0aWNhbCcsXG4gICAgJ0B0dWkuY2hldnJvbi11cCcsXG4gICAgJ0B0dWkuY2hldnJvbi1kb3duJyxcbiAgICAnQHR1aS5jaGV2cm9ucy11cC1kb3duJyxcbiAgICAnQHR1aS5pbmZvJyxcbiAgICAnQHR1aS5jaXJjbGUtY2hlY2snLFxuICAgICdAdHVpLmNpcmNsZS14JyxcbiAgICAnQHR1aS5jaXJjbGUtYWxlcnQnLFxuICAgICdAdHVpLmNpcmNsZS1oZWxwJyxcbiAgICAnQHR1aS54JyxcbiAgICAnQHR1aS5jaGV2cm9uLXJpZ2h0JyxcbiAgICAnQHR1aS5jaGV2cm9uLWxlZnQnLFxuICAgICdAdHVpLmNhbGVuZGFyJyxcbiAgICAnQHR1aS5taW51cycsXG4gICAgJ0B0dWkuZmlsZScsXG4gICAgJ0B0dWkudHJhc2gnLFxuICAgICdAdHVpLnN0YXInLFxuICAgICdAdHVpLnJvdGF0ZS1jY3ctc3F1YXJlJyxcbiAgICAnQHR1aS5hcnJvdy1sZWZ0JyxcbiAgICAnQHR1aS5hcnJvdy1yaWdodCcsXG4gICAgJ0B0dWkucGx1cycsXG4gICAgJ0B0dWkubWluaW1pemUnLFxuICAgICdAdHVpLm1vdmUtdXAtcmlnaHQnLFxuICAgICdAdHVpLm1vdmUtcmlnaHQnLFxuICAgICdAdHVpLm1vdmUtZG93bi1yaWdodCcsXG4gICAgJ0B0dWkubW92ZS1kb3duJyxcbiAgICAnQHR1aS5tb3ZlLWRvd24tbGVmdCcsXG4gICAgJ0B0dWkubW92ZS1sZWZ0JyxcbiAgICAnQHR1aS5tb3ZlLXVwLWxlZnQnLFxuICAgICdAdHVpLm1vdmUtdXAnLFxuICAgICdAdHVpLmNsb2NrJyxcbl0gYXMgY29uc3Q7XG4iXX0=
@@ -1,2 +1,2 @@
1
- export const TUI_VERSION = '4.0.0-rc.8';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRVSV9WRVJTSU9OID0gJzQuMC4wLXJjLjgnO1xuIl19
1
+ export const TUI_VERSION = '4.0.0-rc.9';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9jb25zdGFudHMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRVSV9WRVJTSU9OID0gJzQuMC4wLXJjLjknO1xuIl19
@@ -1,5 +1,5 @@
1
1
  export * from './id.service';
2
2
  export * from './popover.service';
3
3
  export * from './scroll.service';
4
- export * from './static-request.service';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3BvdmVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRpYy1yZXF1ZXN0LnNlcnZpY2UnO1xuIl19
4
+ export * from './theme-color.service';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3BvdmVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RoZW1lLWNvbG9yLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,30 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { Meta } from '@angular/platform-browser';
4
+ import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
5
+ import * as i0 from "@angular/core";
6
+ export const TUI_THEME_COLOR = tuiCreateTokenFromFactory(() => inject(Meta).getTag('name="theme-color"')?.content ?? '');
7
+ class TuiThemeColorService {
8
+ constructor() {
9
+ this.current = inject(TUI_THEME_COLOR);
10
+ this.doc = inject(DOCUMENT);
11
+ this.meta = inject(Meta);
12
+ }
13
+ get color() {
14
+ return this.current;
15
+ }
16
+ set color(content) {
17
+ this.meta.updateTag({ name: 'theme-color', content });
18
+ this.doc.documentElement.style.setProperty('--tui-theme-color', content);
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiThemeColorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiThemeColorService, providedIn: 'root' }); }
22
+ }
23
+ export { TuiThemeColorService };
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiThemeColorService, decorators: [{
25
+ type: Injectable,
26
+ args: [{
27
+ providedIn: 'root',
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtY29sb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zZXJ2aWNlcy90aGVtZS1jb2xvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0MsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0scUJBQXFCLENBQUM7O0FBRTlELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyx5QkFBeUIsQ0FDcEQsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQ2pFLENBQUM7QUFPRixNQUdhLG9CQUFvQjtJQUhqQztRQUlxQixZQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2xDLFFBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQVV4QztJQVJHLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsT0FBZTtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdFLENBQUM7K0dBWlEsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGakIsTUFBTTs7U0FFVCxvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNZXRhfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7dHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBUVUlfVEhFTUVfQ09MT1IgPSB0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5PHN0cmluZz4oXG4gICAgKCkgPT4gaW5qZWN0KE1ldGEpLmdldFRhZygnbmFtZT1cInRoZW1lLWNvbG9yXCInKT8uY29udGVudCA/PyAnJyxcbik7XG5cbmludGVyZmFjZSBUdWlUaGVtZUNvbG9yIHtcbiAgICBnZXQgY29sb3IoKTogc3RyaW5nO1xuICAgIHNldCBjb2xvcih2YWx1ZTogc3RyaW5nKTtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGhlbWVDb2xvclNlcnZpY2UgaW1wbGVtZW50cyBUdWlUaGVtZUNvbG9yIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnQgPSBpbmplY3QoVFVJX1RIRU1FX0NPTE9SKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvYyA9IGluamVjdChET0NVTUVOVCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhID0gaW5qZWN0KE1ldGEpO1xuXG4gICAgcHVibGljIGdldCBjb2xvcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgY29sb3IoY29udGVudDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoe25hbWU6ICd0aGVtZS1jb2xvcicsIGNvbnRlbnR9KTtcbiAgICAgICAgdGhpcy5kb2MuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXR1aS10aGVtZS1jb2xvcicsIGNvbnRlbnQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -189,10 +189,18 @@ const TUI_USED_ICONS = [
189
189
  '@tui.arrow-right',
190
190
  '@tui.plus',
191
191
  '@tui.minimize',
192
+ '@tui.move-up-right',
193
+ '@tui.move-right',
194
+ '@tui.move-down-right',
195
+ '@tui.move-down',
196
+ '@tui.move-down-left',
197
+ '@tui.move-left',
198
+ '@tui.move-up-left',
199
+ '@tui.move-up',
192
200
  '@tui.clock',
193
201
  ];
194
202
 
195
- const TUI_VERSION = '4.0.0-rc.8';
203
+ const TUI_VERSION = '4.0.0-rc.9';
196
204
 
197
205
  /**
198
206
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-constants.mjs","sources":["../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/handlers.ts","../../../projects/cdk/constants/matchers.ts","../../../projects/cdk/constants/regexp.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/used-icons.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["import {QueryList} from '@angular/core';\n\nconst rect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n} as const;\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\nexport const EMPTY_CLIENT_RECT: DOMRect = {\n ...rect,\n toJSON: () => rect,\n};\n","/**\n * Handler that always returns `false`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const TUI_FALSE_HANDLER = (): false => false;\n\n/**\n * Handler that always returns `true`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const TUI_TRUE_HANDLER = (): true => true;\n","import type {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\n","export const svgNodeFilter: Exclude<NodeFilter, (node: Node) => number> = {\n acceptNode(node: Node): number {\n return 'ownerSVGElement' in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT;\n },\n};\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = '\\u00A0';\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = '\\u2013';\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = '\\u2014';\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = '\\u00AB';\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = '\\u00BB';\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = '\\u002D';\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = '\\u2212';\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = '\\u002B';\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = '\\u2022';\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = '\\u2026';\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200B';\n","/**\n * @description:\n * AUTOGENERATED\n *\n * Array of icons used in taiga-ui components\n */\nexport const TUI_USED_ICONS = [\n '@tui.mir',\n '@tui.visa',\n '@tui.electron',\n '@tui.mastercard',\n '@tui.maestro',\n '@tui.amex',\n '@tui.diners-club',\n '@tui.discover',\n '@tui.humo',\n '@tui.jcb',\n '@tui.ru-pay',\n '@tui.union-pay',\n '@tui.uzcard',\n '@tui.verve',\n '@tui.search',\n '@tui.sun',\n '@tui.moon',\n '@tui.code',\n '@tui.menu',\n '@tui.copy',\n '@tui.check',\n '@tui.link',\n '@tui.eye-off',\n '@tui.eye',\n '@tui.grip-vertical',\n '@tui.chevron-up',\n '@tui.chevron-down',\n '@tui.chevrons-up-down',\n '@tui.info',\n '@tui.circle-check',\n '@tui.circle-x',\n '@tui.circle-alert',\n '@tui.circle-help',\n '@tui.x',\n '@tui.chevron-right',\n '@tui.chevron-left',\n '@tui.calendar',\n '@tui.minus',\n '@tui.file',\n '@tui.trash',\n '@tui.star',\n '@tui.rotate-ccw-square',\n '@tui.arrow-left',\n '@tui.arrow-right',\n '@tui.plus',\n '@tui.minimize',\n '@tui.clock',\n] as const;\n","export const TUI_VERSION = '4.0.0-rc.8';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-constants.mjs","sources":["../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/handlers.ts","../../../projects/cdk/constants/matchers.ts","../../../projects/cdk/constants/regexp.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/used-icons.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["import {QueryList} from '@angular/core';\n\nconst rect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n} as const;\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\nexport const EMPTY_CLIENT_RECT: DOMRect = {\n ...rect,\n toJSON: () => rect,\n};\n","/**\n * Handler that always returns `false`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const TUI_FALSE_HANDLER = (): false => false;\n\n/**\n * Handler that always returns `true`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const TUI_TRUE_HANDLER = (): true => true;\n","import type {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\n","export const svgNodeFilter: Exclude<NodeFilter, (node: Node) => number> = {\n acceptNode(node: Node): number {\n return 'ownerSVGElement' in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT;\n },\n};\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = '\\u00A0';\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = '\\u2013';\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = '\\u2014';\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = '\\u00AB';\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = '\\u00BB';\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = '\\u002D';\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = '\\u2212';\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = '\\u002B';\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = '\\u2022';\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = '\\u2026';\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200B';\n","/**\n * @description:\n * AUTOGENERATED\n *\n * Array of icons used in taiga-ui components\n */\nexport const TUI_USED_ICONS = [\n '@tui.mir',\n '@tui.visa',\n '@tui.electron',\n '@tui.mastercard',\n '@tui.maestro',\n '@tui.amex',\n '@tui.diners-club',\n '@tui.discover',\n '@tui.humo',\n '@tui.jcb',\n '@tui.ru-pay',\n '@tui.union-pay',\n '@tui.uzcard',\n '@tui.verve',\n '@tui.search',\n '@tui.sun',\n '@tui.moon',\n '@tui.code',\n '@tui.menu',\n '@tui.copy',\n '@tui.check',\n '@tui.link',\n '@tui.eye-off',\n '@tui.eye',\n '@tui.grip-vertical',\n '@tui.chevron-up',\n '@tui.chevron-down',\n '@tui.chevrons-up-down',\n '@tui.info',\n '@tui.circle-check',\n '@tui.circle-x',\n '@tui.circle-alert',\n '@tui.circle-help',\n '@tui.x',\n '@tui.chevron-right',\n '@tui.chevron-left',\n '@tui.calendar',\n '@tui.minus',\n '@tui.file',\n '@tui.trash',\n '@tui.star',\n '@tui.rotate-ccw-square',\n '@tui.arrow-left',\n '@tui.arrow-right',\n '@tui.plus',\n '@tui.minimize',\n '@tui.move-up-right',\n '@tui.move-right',\n '@tui.move-down-right',\n '@tui.move-down',\n '@tui.move-down-left',\n '@tui.move-left',\n '@tui.move-up-left',\n '@tui.move-up',\n '@tui.clock',\n] as const;\n","export const TUI_VERSION = '4.0.0-rc.9';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEA,MAAM,IAAI,GAAG;AACT,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,GAAG,EAAE,CAAC;AACN,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;CACE,CAAC;AAEX;;;;AAIG;AACU,MAAA,WAAW,GAAG,IAAI,SAAS,GAAQ;AACzC,MAAM,WAAW,GAAO,GAAG;MACrB,cAAc,GAA6B,MAAK,IAAI;AACpD,MAAA,iBAAiB,GAAY;AACtC,IAAA,GAAG,IAAI;AACP,IAAA,MAAM,EAAE,MAAM,IAAI;;;ACvBtB;;AAEG;AACH;MACa,iBAAiB,GAAG,MAAa,MAAM;AAEpD;;AAEG;AACH;MACa,gBAAgB,GAAG,MAAY;;ACR5C,SAAS,SAAS,CAAC,KAAc,EAAE,KAAc,EAAA;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1F,CAAC;AAED;;;;;AAKG;AACI,MAAM,mBAAmB,GAAG,CAC/B,IAAO,EACP,MAAc,EACd,SAAA,GAAmC,MAAM,KAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;AAE3E;;;;;AAKG;AACU,MAAA,kBAAkB,GAAG,CAC9B,IAAO,EACP,MAAc,EACd,SAAmC,GAAA,MAAM,KAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,GAAG;AAErE;;;;;;AAMG;MACU,4BAA4B,GAAgC,CAAC,KAAK,EAAE,KAAK,KAClF,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK;;ACtCtC,MAAM,gBAAgB,GAAG,KAAK;AAC9B,MAAM,oBAAoB,GAAG,KAAK;AAClC,MAAM,qBAAqB,GAAG;;ACFxB,MAAA,aAAa,GAAgD;AACtE,IAAA,UAAU,CAAC,IAAU,EAAA;QACjB,OAAO,iBAAiB,IAAI,IAAI;cAC1B,UAAU,CAAC,aAAa;AAC1B,cAAE,UAAU,CAAC,aAAa,CAAC;KAClC;;;ACLL;;AAEG;AACI,MAAM,mBAAmB,GAAG,SAAS;AAE5C;;;;;;AAMG;AACI,MAAM,YAAY,GAAG,SAAS;AAErC;;;;;;AAMG;AACI,MAAM,YAAY,GAAG,SAAS;AAErC;;AAEG;AACI,MAAM,UAAU,GAAG,SAAS;AAEnC;;AAEG;AACI,MAAM,UAAU,GAAG,SAAS;AAEnC;;;;;;AAMG;AACI,MAAM,WAAW,GAAG,SAAS;AAEpC;;;;;AAKG;AACI,MAAM,UAAU,GAAG,SAAS;AAEnC;;AAEG;AACI,MAAM,SAAS,GAAG,SAAS;AAElC;;AAEG;AACI,MAAM,WAAW,GAAG,SAAS;AAEpC;;AAEG;AACI,MAAM,aAAa,GAAG,SAAS;AAEtC;;AAEG;AACI,MAAM,kBAAkB,GAAG,SAAS;AAE3C;;AAEG;AACI,MAAM,qBAAqB,GAAG;;ACzErC;;;;;AAKG;AACU,MAAA,cAAc,GAAG;IAC1B,UAAU;IACV,WAAW;IACX,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,WAAW;IACX,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,UAAU;IACV,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,aAAa;IACb,UAAU;IACV,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IACZ,WAAW;IACX,cAAc;IACd,UAAU;IACV,oBAAoB;IACpB,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,mBAAmB;IACnB,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAClB,QAAQ;IACR,oBAAoB;IACpB,mBAAmB;IACnB,eAAe;IACf,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,wBAAwB;IACxB,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;IACX,eAAe;IACf,oBAAoB;IACpB,iBAAiB;IACjB,sBAAsB;IACtB,gBAAgB;IAChB,qBAAqB;IACrB,gBAAgB;IAChB,mBAAmB;IACnB,cAAc;IACd,YAAY;;;AC7DT,MAAM,WAAW,GAAG;;ACA3B;;AAEG;;;;"}
@@ -1,12 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, inject } from '@angular/core';
3
- import { tuiProvide } from '@taiga-ui/cdk/utils';
3
+ import { tuiProvide, tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
4
4
  import { PolymorpheusComponent } from '@taiga-ui/polymorpheus';
5
- import { Observable, of, defer, switchMap, map, takeUntil, timer, endWith, tap, shareReplay } from 'rxjs';
5
+ import { Observable, of, defer, switchMap, map, takeUntil, timer, endWith, tap } from 'rxjs';
6
6
  import { WA_PERFORMANCE, WA_ANIMATION_FRAME } from '@ng-web-apis/common';
7
7
  import { tuiClamp } from '@taiga-ui/cdk/utils/math';
8
8
  import { tuiEaseInOutQuad } from '@taiga-ui/cdk/utils/miscellaneous';
9
- import { fromFetch } from 'rxjs/fetch';
9
+ import { DOCUMENT } from '@angular/common';
10
+ import { Meta } from '@angular/platform-browser';
10
11
 
11
12
  const TUI = 'tui_';
12
13
  /**
@@ -111,28 +112,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
111
112
  }]
112
113
  }] });
113
114
 
114
- class TuiStaticRequestService {
115
+ const TUI_THEME_COLOR = tuiCreateTokenFromFactory(() => inject(Meta).getTag('name="theme-color"')?.content ?? '');
116
+ class TuiThemeColorService {
115
117
  constructor() {
116
- this.cache = new Map();
118
+ this.current = inject(TUI_THEME_COLOR);
119
+ this.doc = inject(DOCUMENT);
120
+ this.meta = inject(Meta);
117
121
  }
118
- request(url) {
119
- const cache = this.cache.get(url);
120
- if (cache) {
121
- return cache;
122
- }
123
- const piped = fromFetch(url).pipe(switchMap(async (response) => {
124
- if (response.ok) {
125
- return response.text();
126
- }
127
- throw new Error(`Failed to load ${url} (${response.statusText})`);
128
- }), shareReplay({ bufferSize: 1, refCount: false }));
129
- this.cache.set(url, piped);
130
- return piped;
122
+ get color() {
123
+ return this.current;
131
124
  }
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiStaticRequestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
133
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiStaticRequestService, providedIn: 'root' }); }
125
+ set color(content) {
126
+ this.meta.updateTag({ name: 'theme-color', content });
127
+ this.doc.documentElement.style.setProperty('--tui-theme-color', content);
128
+ }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiThemeColorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
130
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiThemeColorService, providedIn: 'root' }); }
134
131
  }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiStaticRequestService, decorators: [{
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiThemeColorService, decorators: [{
136
133
  type: Injectable,
137
134
  args: [{
138
135
  providedIn: 'root',
@@ -143,5 +140,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
143
140
  * Generated bundle index. Do not edit.
144
141
  */
145
142
 
146
- export { TuiIdService, TuiPopoverService, TuiScrollService, TuiStaticRequestService, tuiAsPopover };
143
+ export { TUI_THEME_COLOR, TuiIdService, TuiPopoverService, TuiScrollService, TuiThemeColorService, tuiAsPopover };
147
144
  //# sourceMappingURL=taiga-ui-cdk-services.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-services.mjs","sources":["../../../projects/cdk/services/id.service.ts","../../../projects/cdk/services/popover.service.ts","../../../projects/cdk/services/scroll.service.ts","../../../projects/cdk/services/static-request.service.ts","../../../projects/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n public generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import type {Provider, ProviderToken, Type} from '@angular/core';\nimport {inject, Injectable} from '@angular/core';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\nimport type {BehaviorSubject, Observer} from 'rxjs';\nimport {Observable} from 'rxjs';\n\nimport {TuiIdService} from './id.service';\n\nexport interface TuiPopoverContext<O> extends TuiContext<Observer<O>> {\n readonly component: PolymorpheusComponent<any>;\n readonly createdAt: number;\n readonly id: string;\n readonly completeWith: (value: O) => void;\n}\n\nexport type TuiPopover<T, O> = T &\n TuiPopoverContext<O> & {\n content: PolymorpheusContent<T & TuiPopoverContext<O>>;\n };\n\n@Injectable()\nexport abstract class TuiPopoverService<T, K = void> {\n private readonly component: PolymorpheusComponent<any>;\n private readonly items$: BehaviorSubject<ReadonlyArray<TuiPopover<T, any>>>;\n private readonly id = inject(TuiIdService);\n\n constructor(\n items: ProviderToken<BehaviorSubject<ReadonlyArray<TuiPopover<T, any>>>>,\n component: Type<any>,\n protected readonly options: T = {} as T,\n ) {\n this.component = new PolymorpheusComponent(component);\n this.items$ = inject(items);\n }\n\n public open<G = void>(\n content: PolymorpheusContent<T & TuiPopoverContext<K extends void ? G : K>>,\n options: Partial<T> = {},\n ): Observable<K extends void ? G : K> {\n return new Observable((observer) => {\n const item = {\n ...this.options,\n ...options,\n content,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.id.generate(),\n completeWith: (result: K extends void ? G : K): void => {\n observer.next(result);\n observer.complete();\n },\n };\n\n this.items$.next([...this.items$.value, item]);\n\n return () => {\n this.items$.next(this.items$.value.filter((value) => value !== item));\n };\n });\n }\n}\n\nexport function tuiAsPopover(popover: Type<TuiPopoverService<any>>): Provider {\n return tuiProvide(TuiPopoverService, popover);\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {inject, Injectable} from '@angular/core';\nimport {WA_ANIMATION_FRAME, WA_PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiEaseInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {defer, endWith, map, of, switchMap, takeUntil, tap, timer} from 'rxjs';\n\nconst SCROLL_TIME = 300;\n\nfunction getX(elementOrWindow: Element | Window): number {\n return 'scrollX' in elementOrWindow\n ? elementOrWindow.scrollX\n : elementOrWindow.scrollLeft;\n}\n\nfunction getY(elementOrWindow: Element | Window): number {\n return 'scrollY' in elementOrWindow\n ? elementOrWindow.scrollY\n : elementOrWindow.scrollTop;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n private readonly performanceRef = inject(WA_PERFORMANCE);\n private readonly animationFrame$ = inject(WA_ANIMATION_FRAME);\n\n public scroll$(\n elementOrWindow: Element | Window,\n scrollTop: number,\n scrollLeft: number = getX(elementOrWindow),\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n ngDevMode && console.assert(duration >= 0, 'duration cannot be negative');\n ngDevMode && console.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n ngDevMode && console.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = getY(elementOrWindow);\n const initialLeft = getX(elementOrWindow);\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of<[number, number]>([scrollTop, scrollLeft])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap((start) =>\n this.animationFrame$.pipe(map((now) => now - start)),\n ),\n map((elapsed) => tuiEaseInOutQuad(tuiClamp(elapsed / duration, 0, 1))),\n map<number, [number, number]>((percent) => [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ]),\n takeUntil(timer(duration)),\n endWith<[number, number]>([scrollTop, scrollLeft]),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n elementOrWindow.scrollTo?.(scrollLeft, scrollTop);\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport type {Observable} from 'rxjs';\nimport {shareReplay, switchMap} from 'rxjs';\nimport {fromFetch} from 'rxjs/fetch';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n public request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const piped = fromFetch(url).pipe(\n switchMap(async (response) => {\n if (response.ok) {\n return response.text();\n }\n\n throw new Error(`Failed to load ${url} (${response.statusText})`);\n }),\n shareReplay({bufferSize: 1, refCount: false}),\n );\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAEA,MAAM,GAAG,GAAG,MAAM,CAAC;AAEnB;;AAEG;AACH,MAGa,YAAY,CAAA;aACN,IAAM,CAAA,MAAA,GAAG,CAAH,CAAK,EAAA;IAEnB,QAAQ,GAAA;AACX,QAAA,OAAO,CAAG,EAAA,GAAG,CAAG,EAAA,YAAY,CAAC,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;KACxD;+GALQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACcD,MACsB,iBAAiB,CAAA;AAKnC,IAAA,WAAA,CACI,KAAwE,EACxE,SAAoB,EACD,UAAa,EAAO,EAAA;QAApB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAa;AAL1B,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAOvC,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;KAC/B;AAEM,IAAA,IAAI,CACP,OAA2E,EAC3E,OAAA,GAAsB,EAAE,EAAA;AAExB,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAI;AAC/B,YAAA,MAAM,IAAI,GAAG;gBACT,GAAG,IAAI,CAAC,OAAO;AACf,gBAAA,GAAG,OAAO;gBACV,OAAO;AACP,gBAAA,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,gBAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrB,gBAAA,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE;AACtB,gBAAA,YAAY,EAAE,CAAC,MAA8B,KAAU;AACnD,oBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC;iBACvB;aACJ,CAAC;AAEF,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAE/C,YAAA,OAAO,MAAK;gBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;AAC1E,aAAC,CAAC;AACN,SAAC,CAAC,CAAC;KACN;+GAvCiB,iBAAiB,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;AA2CL,SAAU,YAAY,CAAC,OAAqC,EAAA;AAC9D,IAAA,OAAO,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAClD;;ACpEA;AAAA;AAQA,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,SAAS,IAAI,CAAC,eAAiC,EAAA;IAC3C,OAAO,SAAS,IAAI,eAAe;UAC7B,eAAe,CAAC,OAAO;AACzB,UAAE,eAAe,CAAC,UAAU,CAAC;AACrC,CAAC;AAED,SAAS,IAAI,CAAC,eAAiC,EAAA;IAC3C,OAAO,SAAS,IAAI,eAAe;UAC7B,eAAe,CAAC,OAAO;AACzB,UAAE,eAAe,CAAC,SAAS,CAAC;AACpC,CAAC;AAED,MAGa,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAqCjE,KAAA;AAnCU,IAAA,OAAO,CACV,eAAiC,EACjC,SAAiB,EACjB,UAAA,GAAqB,IAAI,CAAC,eAAe,CAAC,EAC1C,QAAA,GAAmB,WAAW,EAAA;QAE9B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAC1E,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAC5E,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,+BAA+B,CAAC,CAAC;AAE9E,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;AACzC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;AAC1C,QAAA,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AACxC,QAAA,MAAM,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;QAC3C,MAAM,UAAU,GAAG,CAAC,QAAQ;cACtB,EAAE,CAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAC/C,cAAE,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAC3C,SAAS,CAAC,CAAC,KAAK,KACZ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,CACvD,EACD,GAAG,CAAC,CAAC,OAAO,KAAK,gBAAgB,CAAC,QAAQ,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EACtE,GAAG,CAA2B,CAAC,OAAO,KAAK;gBACvC,UAAU,GAAG,QAAQ,GAAG,OAAO;gBAC/B,WAAW,GAAG,SAAS,GAAG,OAAO;AACpC,aAAA,CAAC,EACF,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAC1B,OAAO,CAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CACrD,CAAC;AAER,QAAA,OAAO,UAAU,CAAC,IAAI,CAClB,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,KAAI;YAC5B,eAAe,CAAC,QAAQ,GAAG,UAAU,EAAE,SAAS,CAAC,CAAC;SACrD,CAAC,CACL,CAAC;KACL;+GAtCQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACnBD,MAGa,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;AAwBlE,KAAA;AAtBU,IAAA,OAAO,CAAC,GAAW,EAAA;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAElC,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAC7B,SAAS,CAAC,OAAO,QAAQ,KAAI;YACzB,IAAI,QAAQ,CAAC,EAAE,EAAE;AACb,gBAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC1B,aAAA;YAED,MAAM,IAAI,KAAK,CAAC,CAAkB,eAAA,EAAA,GAAG,CAAK,EAAA,EAAA,QAAQ,CAAC,UAAU,CAAG,CAAA,CAAA,CAAC,CAAC;AACtE,SAAC,CAAC,EACF,WAAW,CAAC,EAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAChD,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAE3B,QAAA,OAAO,KAAK,CAAC;KAChB;+GAxBQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-services.mjs","sources":["../../../projects/cdk/services/id.service.ts","../../../projects/cdk/services/popover.service.ts","../../../projects/cdk/services/scroll.service.ts","../../../projects/cdk/services/theme-color.service.ts","../../../projects/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\n\nconst TUI = 'tui_';\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n public generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import type {Provider, ProviderToken, Type} from '@angular/core';\nimport {inject, Injectable} from '@angular/core';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\nimport type {BehaviorSubject, Observer} from 'rxjs';\nimport {Observable} from 'rxjs';\n\nimport {TuiIdService} from './id.service';\n\nexport interface TuiPopoverContext<O> extends TuiContext<Observer<O>> {\n readonly component: PolymorpheusComponent<any>;\n readonly createdAt: number;\n readonly id: string;\n readonly completeWith: (value: O) => void;\n}\n\nexport type TuiPopover<T, O> = T &\n TuiPopoverContext<O> & {\n content: PolymorpheusContent<T & TuiPopoverContext<O>>;\n };\n\n@Injectable()\nexport abstract class TuiPopoverService<T, K = void> {\n private readonly component: PolymorpheusComponent<any>;\n private readonly items$: BehaviorSubject<ReadonlyArray<TuiPopover<T, any>>>;\n private readonly id = inject(TuiIdService);\n\n constructor(\n items: ProviderToken<BehaviorSubject<ReadonlyArray<TuiPopover<T, any>>>>,\n component: Type<any>,\n protected readonly options: T = {} as T,\n ) {\n this.component = new PolymorpheusComponent(component);\n this.items$ = inject(items);\n }\n\n public open<G = void>(\n content: PolymorpheusContent<T & TuiPopoverContext<K extends void ? G : K>>,\n options: Partial<T> = {},\n ): Observable<K extends void ? G : K> {\n return new Observable((observer) => {\n const item = {\n ...this.options,\n ...options,\n content,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.id.generate(),\n completeWith: (result: K extends void ? G : K): void => {\n observer.next(result);\n observer.complete();\n },\n };\n\n this.items$.next([...this.items$.value, item]);\n\n return () => {\n this.items$.next(this.items$.value.filter((value) => value !== item));\n };\n });\n }\n}\n\nexport function tuiAsPopover(popover: Type<TuiPopoverService<any>>): Provider {\n return tuiProvide(TuiPopoverService, popover);\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {inject, Injectable} from '@angular/core';\nimport {WA_ANIMATION_FRAME, WA_PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiEaseInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {defer, endWith, map, of, switchMap, takeUntil, tap, timer} from 'rxjs';\n\nconst SCROLL_TIME = 300;\n\nfunction getX(elementOrWindow: Element | Window): number {\n return 'scrollX' in elementOrWindow\n ? elementOrWindow.scrollX\n : elementOrWindow.scrollLeft;\n}\n\nfunction getY(elementOrWindow: Element | Window): number {\n return 'scrollY' in elementOrWindow\n ? elementOrWindow.scrollY\n : elementOrWindow.scrollTop;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiScrollService {\n private readonly performanceRef = inject(WA_PERFORMANCE);\n private readonly animationFrame$ = inject(WA_ANIMATION_FRAME);\n\n public scroll$(\n elementOrWindow: Element | Window,\n scrollTop: number,\n scrollLeft: number = getX(elementOrWindow),\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n ngDevMode && console.assert(duration >= 0, 'duration cannot be negative');\n ngDevMode && console.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n ngDevMode && console.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = getY(elementOrWindow);\n const initialLeft = getX(elementOrWindow);\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of<[number, number]>([scrollTop, scrollLeft])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap((start) =>\n this.animationFrame$.pipe(map((now) => now - start)),\n ),\n map((elapsed) => tuiEaseInOutQuad(tuiClamp(elapsed / duration, 0, 1))),\n map<number, [number, number]>((percent) => [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ]),\n takeUntil(timer(duration)),\n endWith<[number, number]>([scrollTop, scrollLeft]),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n elementOrWindow.scrollTo?.(scrollLeft, scrollTop);\n }),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable} from '@angular/core';\nimport {Meta} from '@angular/platform-browser';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils';\n\nexport const TUI_THEME_COLOR = tuiCreateTokenFromFactory<string>(\n () => inject(Meta).getTag('name=\"theme-color\"')?.content ?? '',\n);\n\ninterface TuiThemeColor {\n get color(): string;\n set color(value: string);\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiThemeColorService implements TuiThemeColor {\n private readonly current = inject(TUI_THEME_COLOR);\n private readonly doc = inject(DOCUMENT);\n private readonly meta = inject(Meta);\n\n public get color(): string {\n return this.current;\n }\n\n public set color(content: string) {\n this.meta.updateTag({name: 'theme-color', content});\n this.doc.documentElement.style.setProperty('--tui-theme-color', content);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/cdk",
3
- "version": "4.0.0-rc.8",
3
+ "version": "4.0.0-rc.9",
4
4
  "description": "Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance",
5
5
  "keywords": [
6
6
  "angular",
@@ -23,9 +23,9 @@
23
23
  "@angular/common": ">=16.0.0",
24
24
  "@angular/core": ">=16.0.0",
25
25
  "@angular/forms": ">=16.0.0",
26
- "@ng-web-apis/common": "^4.2.0",
27
- "@ng-web-apis/mutation-observer": "^4.2.0",
28
- "@ng-web-apis/resize-observer": "^4.2.0",
26
+ "@ng-web-apis/common": "^4.2.1",
27
+ "@ng-web-apis/mutation-observer": "^4.2.1",
28
+ "@ng-web-apis/resize-observer": "^4.2.1",
29
29
  "@taiga-ui/event-plugins": "^4.0.1",
30
30
  "@taiga-ui/polymorpheus": "^4.6.4",
31
31
  "rxjs": ">=7.0.0"
@@ -1,5 +1,6 @@
1
1
  export interface HtmlComment {
2
- readonly tag: string;
3
- readonly withAttrs: string[];
2
+ readonly tag?: string;
3
+ readonly withAttrs?: string[];
4
+ readonly pattern?: RegExp;
4
5
  readonly comment: string;
5
6
  }
@@ -2,10 +2,14 @@ import type { Element } from 'parse5/dist/tree-adapters/default';
2
2
  export interface ReplacementAttributeValue {
3
3
  readonly attrNames: string[];
4
4
  readonly newAttrName?: string;
5
- readonly values: Array<{
5
+ readonly valueReplacer: Array<{
6
6
  readonly from: string;
7
7
  readonly to: string;
8
- }>;
8
+ }> | ((value: string) => string);
9
9
  readonly withTagNames?: string[];
10
10
  readonly filterFn?: (el: Element) => boolean;
11
+ readonly directiveModule?: {
12
+ readonly moduleSpecifier: string;
13
+ readonly name: string;
14
+ };
11
15
  }
@@ -7,17 +7,10 @@ export interface ReplacementIdentifier {
7
7
  readonly moduleSpecifier: string;
8
8
  readonly name: string;
9
9
  readonly namedImport?: string;
10
- };
11
- }
12
- export interface ReplacementIdentifierMulti extends Pick<ReplacementIdentifier, 'from'> {
13
- readonly to: Array<{
14
- readonly moduleSpecifier: string;
15
- readonly name: string;
16
- readonly namedImport?: string;
17
- readonly spreadInModule?: boolean;
18
- }> | {
19
- readonly moduleSpecifier: string;
20
- readonly name: string;
21
10
  readonly spreadInModule?: boolean;
22
11
  };
23
12
  }
13
+ export interface ReplacementIdentifierMulti {
14
+ readonly from: Array<ReplacementIdentifier['from']> | ReplacementIdentifier['from'];
15
+ readonly to: Array<ReplacementIdentifier['to']> | ReplacementIdentifier['to'];
16
+ }
@@ -13,16 +13,21 @@ function replaceIdentifiers(options, constants) {
13
13
  const progressLog = (0, progress_1.setupProgressLogger)({
14
14
  total: constants.length,
15
15
  });
16
- constants.forEach((item) => {
17
- replaceIdentifier(item);
18
- !options['skip-logs'] && progressLog(item.from.name);
16
+ constants.forEach(({ from, to }) => {
17
+ toArray(from).forEach((x) => replaceIdentifier({ from: x, to }));
18
+ !options['skip-logs'] &&
19
+ progressLog(toArray(from)
20
+ .map((x) => x.name)
21
+ .join(', '));
19
22
  });
20
23
  !options['skip-logs'] &&
21
24
  (0, colored_log_1.successLog)(`${colored_log_1.SMALL_TAB_SYMBOL}${colored_log_1.SUCCESS_SYMBOL} identifiers replaced \n`);
22
25
  }
23
26
  exports.replaceIdentifiers = replaceIdentifiers;
24
27
  function replaceIdentifier({ from, to }) {
25
- const references = (0, get_named_import_references_1.getNamedImportReferences)(from.name, from.moduleSpecifier);
28
+ const references = toArray(from)
29
+ .map(({ name, moduleSpecifier }) => (0, get_named_import_references_1.getNamedImportReferences)(name, moduleSpecifier))
30
+ .flat();
26
31
  references.forEach((ref) => {
27
32
  var _a;
28
33
  if (ref.wasForgotten()) {
@@ -43,15 +48,15 @@ function replaceIdentifier({ from, to }) {
43
48
  }
44
49
  exports.replaceIdentifier = replaceIdentifier;
45
50
  function addImports(identifier, filePath) {
46
- Array.isArray(identifier)
47
- ? identifier.forEach(({ name, namedImport, moduleSpecifier }) => {
48
- (0, add_unique_import_1.addUniqueImport)(filePath, namedImport || name, moduleSpecifier);
49
- })
50
- : (0, add_unique_import_1.addUniqueImport)(filePath, identifier.name, identifier.moduleSpecifier);
51
+ toArray(identifier).forEach(({ name, namedImport, moduleSpecifier }) => {
52
+ (0, add_unique_import_1.addUniqueImport)(filePath, namedImport || name, moduleSpecifier);
53
+ });
51
54
  }
52
55
  function getReplacementText(to, inModule) {
53
- const res = Array.isArray(to) ? to : [to];
54
- return res
56
+ return toArray(to)
55
57
  .map(({ name, spreadInModule }) => spreadInModule && inModule ? `...${name}` : name)
56
58
  .join(', ');
57
59
  }
60
+ function toArray(x) {
61
+ return Array.isArray(x) ? x : [x];
62
+ }
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.replaceAttrValues = void 0;
4
+ const add_import_to_closest_module_1 = require("../../../utils/add-import-to-closest-module");
4
5
  const elements_1 = require("../../../utils/templates/elements");
5
6
  const template_resource_1 = require("../../../utils/templates/template-resource");
6
7
  function replaceAttrValues({ resource, recorder, fileSystem, data, }) {
7
8
  const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
8
9
  const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
9
- data.forEach(({ attrNames, values, withTagNames, filterFn, newAttrName }) => {
10
+ data.forEach(({ attrNames, valueReplacer, withTagNames, filterFn, newAttrName, directiveModule, }) => {
10
11
  const elements = [
11
12
  ...(0, elements_1.findElementsWithAttributeOnTag)(template, attrNames, withTagNames, filterFn),
12
13
  ];
@@ -15,16 +16,44 @@ function replaceAttrValues({ resource, recorder, fileSystem, data, }) {
15
16
  if (!name || !value) {
16
17
  return;
17
18
  }
18
- const attributeName = attrNames.find((attrName) => attrName.toLowerCase() === name);
19
- values.forEach(({ from, to }) => {
20
- var _a, _b;
21
- if (value === from) {
22
- const { startOffset, endOffset } = ((_b = (_a = element.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[name]) || { startOffset: 0, endOffset: 0 };
23
- recorder.remove(templateOffset + startOffset, endOffset - startOffset);
24
- recorder.insertRight(templateOffset + startOffset, `${newAttrName || attributeName}="${to}"`);
25
- }
26
- });
19
+ const attributeName = attrNames.find((attrName) => attrName.toLowerCase() === name) || '';
20
+ if (Array.isArray(valueReplacer)) {
21
+ valueReplacer.forEach(({ from, to }) => {
22
+ if (value === from) {
23
+ replaceValue({
24
+ element,
25
+ recorder,
26
+ templateOffset,
27
+ attrName: name,
28
+ attrNewName: newAttrName || attributeName,
29
+ attrValue: to,
30
+ });
31
+ }
32
+ });
33
+ }
34
+ else {
35
+ replaceValue({
36
+ element,
37
+ recorder,
38
+ templateOffset,
39
+ attrName: name,
40
+ attrNewName: newAttrName || attributeName,
41
+ attrValue: valueReplacer(value),
42
+ });
43
+ }
44
+ if (directiveModule) {
45
+ (0, add_import_to_closest_module_1.addImportToClosestModule)(resource.componentPath, directiveModule.name, directiveModule.moduleSpecifier);
46
+ }
27
47
  });
28
48
  });
29
49
  }
30
50
  exports.replaceAttrValues = replaceAttrValues;
51
+ function replaceValue({ element, recorder, templateOffset, attrName, attrNewName, attrValue, }) {
52
+ var _a, _b;
53
+ const { startOffset, endOffset } = ((_b = (_a = element.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[attrName]) || {
54
+ startOffset: 0,
55
+ endOffset: 0,
56
+ };
57
+ recorder.remove(templateOffset + startOffset, endOffset - startOffset);
58
+ recorder.insertRight(templateOffset + startOffset, `${attrNewName}="${attrValue}"`);
59
+ }
@@ -7,7 +7,13 @@ const template_resource_1 = require("../../../utils/templates/template-resource"
7
7
  function addHTMLCommentTags({ resource, recorder, fileSystem, data, }) {
8
8
  const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
9
9
  const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
10
- data.forEach(({ comment, tag, withAttrs }) => {
10
+ data.forEach(({ comment, tag, withAttrs, pattern }) => {
11
+ if (pattern && template.match(pattern)) {
12
+ recorder.insertRight(templateOffset && templateOffset + 1, `<!-- ${insert_todo_1.TODO_MARK} ${comment} -->\n`);
13
+ }
14
+ if (!tag || !withAttrs) {
15
+ return;
16
+ }
11
17
  const elementStartOffsets = [
12
18
  ...(0, elements_1.findElementsWithAttributeOnTag)(template, withAttrs, [tag]),
13
19
  ...(withAttrs.length
@@ -35,6 +35,8 @@ function main(options) {
35
35
  (0, steps_2.migrateOptionProviders)(options);
36
36
  (0, steps_2.migrateAllCountryIsoCodes)(options);
37
37
  (0, steps_2.migrateAlertService)(options);
38
+ (0, steps_2.migrateNumberFormatSettings)(options);
39
+ (0, steps_2.migrateMonthContext)(options);
38
40
  (0, ng_morph_1.saveActiveProject)();
39
41
  (0, steps_2.migrateTemplates)(fileSystem, options);
40
42
  (0, steps_1.showWarnings)(context, constants_1.MIGRATION_WARNINGS);
@@ -9,12 +9,12 @@ const rename_icons_1 = require("./rename-icons");
9
9
  const rename_proprietary_icons_1 = require("./rename-proprietary-icons");
10
10
  function migrateIcons(options) {
11
11
  return (0, schematics_1.chain)([
12
- (tree, _) => {
12
+ (tree, context) => {
13
13
  const fileSystem = (0, get_file_system_1.getFileSystem)(tree);
14
14
  !options['skip-logs'] &&
15
15
  (0, colored_log_1.infoLog)(`${colored_log_1.SMALL_TAB_SYMBOL}${colored_log_1.REPLACE_SYMBOL} replacing icons...`);
16
16
  if (hasProprietaryIcons(tree)) {
17
- (0, rename_proprietary_icons_1.renameProprietaryIcons)();
17
+ (0, rename_proprietary_icons_1.renameProprietaryIcons)(context);
18
18
  }
19
19
  else {
20
20
  (0, rename_icons_1.renameIcons)();
@@ -1,2 +1,3 @@
1
1
  /// <reference lib="es2021" />
2
- export declare function renameProprietaryIcons(pattern?: import("ng-morph").Pattern): void;
2
+ import type { SchematicContext } from '@angular-devkit/schematics';
3
+ export declare function renameProprietaryIcons({ logger }: SchematicContext, pattern?: import("ng-morph").Pattern): void;
@@ -1,15 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renameProprietaryIcons = void 0;
4
- /// <reference lib="es2021" />
5
4
  const ng_morph_1 = require("ng-morph");
6
5
  const constants_1 = require("../../../constants");
7
- function renameProprietaryIcons(pattern = constants_1.ALL_FILES) {
6
+ function renameProprietaryIcons({ logger }, pattern = constants_1.ALL_FILES) {
8
7
  const sourceFiles = (0, ng_morph_1.getSourceFiles)(pattern);
9
8
  sourceFiles.forEach((file) => {
10
9
  let text = file.getFullText();
11
10
  const regex = /['"`]tuiIcon(?!Button\b)[A-Z][a-zA-Z0-9]*\b/g;
12
- text = text.replaceAll(regex, (match) => convertString(match));
11
+ text = text.replaceAll(regex, (icon) => {
12
+ if (icon.match(/['"`]tuiIcon(?!Tds)\w*/)) {
13
+ logger.warn(`[WARNING] in ${file.getSourceFile().getFilePath()}: Invalid icon name ${icon}. Please select an icon from the proprietary pack.`);
14
+ return icon;
15
+ }
16
+ return convertString(icon);
17
+ });
18
+ const invalidIcons = [...new Set(text.match(/\b(tuiIcon(?!Tds|Button)\w*)\b/g))];
19
+ if (invalidIcons) {
20
+ const message = `TODO (Taiga UI migration): invalid icons ${invalidIcons.join(', ')}. Please select an icon from the proprietary pack`;
21
+ const todo = file.getFilePath().endsWith('html')
22
+ ? `<!-- ${message} -->`
23
+ : `// ${message}`;
24
+ text = `${todo}\n${text}`;
25
+ }
13
26
  file.replaceWithText(text);
14
27
  });
15
28
  }