@taiga-ui/cdk 4.52.0-canary.763e67d → 4.52.0-canary.7c53ccc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants/handlers.d.ts +2 -0
- package/constants/version.d.ts +1 -1
- package/constants/version.js +1 -1
- package/directives/value-changes/value-changes.directive.d.ts +1 -1
- package/fesm2022/taiga-ui-cdk-constants.mjs +3 -2
- package/fesm2022/taiga-ui-cdk-constants.mjs.map +1 -1
- package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs +5 -4
- package/fesm2022/taiga-ui-cdk-directives-value-changes.mjs.map +1 -1
- package/package.json +5 -5
- package/schematics/index.d.ts +4 -0
- package/schematics/index.js +3 -0
- package/schematics/index.js.map +1 -1
- package/schematics/ng-add/constants/versions.d.ts +1 -1
- package/schematics/ng-update/v4/migrate-css-vars/palette.d.ts +4 -4
- package/schematics/ng-update/v4/migrate-css-vars/palette.js +4 -4
- package/schematics/ng-update/v4/migrate-css-vars/palette.js.map +1 -1
- package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js +13 -13
- package/schematics/ng-update/v4/steps/styles/migrate-text-mixins.js.map +1 -1
- package/schematics/ng-update/v5/index.js +4 -0
- package/schematics/ng-update/v5/index.js.map +1 -1
- package/schematics/ng-update/v5/steps/migrate-css-variables.d.ts +3 -0
- package/schematics/ng-update/v5/steps/migrate-css-variables.js +30 -0
- package/schematics/ng-update/v5/steps/migrate-css-variables.js.map +1 -0
- package/schematics/ng-update/v5/steps/migrate-templates.js +2 -0
- package/schematics/ng-update/v5/steps/migrate-templates.js.map +1 -1
- package/schematics/ng-update/v5/steps/migrate-tui-let.d.ts +3 -0
- package/schematics/ng-update/v5/steps/migrate-tui-let.js +95 -0
- package/schematics/ng-update/v5/steps/migrate-tui-let.js.map +1 -0
- package/schematics/ng-update/v5/steps/templates/migrate-notification.d.ts +8 -0
- package/schematics/ng-update/v5/steps/templates/migrate-notification.js +45 -0
- package/schematics/ng-update/v5/steps/templates/migrate-notification.js.map +1 -0
- package/schematics/utils/templates/elements.d.ts +4 -1
- package/schematics/utils/templates/elements.js.map +1 -1
- package/types/index.d.ts +0 -1
- package/schematics/migrate-tui-let/index.d.ts +0 -3
- package/schematics/migrate-tui-let/index.js +0 -73
- package/schematics/migrate-tui-let/index.js.map +0 -1
- package/schematics/migrate-tui-let/schema.json +0 -7
- package/types/loose-union.d.ts +0 -36
package/constants/handlers.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
1
2
|
/**
|
|
2
3
|
* Handler that always returns `false`.
|
|
3
4
|
*/
|
|
@@ -6,3 +7,4 @@ export declare const TUI_FALSE_HANDLER: () => false;
|
|
|
6
7
|
* Handler that always returns `true`.
|
|
7
8
|
*/
|
|
8
9
|
export declare const TUI_TRUE_HANDLER: () => true;
|
|
10
|
+
export declare const TUI_STRINGIFY: PolymorpheusContent;
|
package/constants/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const TUI_VERSION = "4.52.0-canary.
|
|
1
|
+
export declare const TUI_VERSION = "4.52.0-canary.7c53ccc";
|
package/constants/version.js
CHANGED
|
@@ -3,7 +3,7 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export declare class TuiValueChanges<T> implements DoCheck {
|
|
4
4
|
private readonly container;
|
|
5
5
|
private readonly control;
|
|
6
|
-
private readonly
|
|
6
|
+
private readonly control$;
|
|
7
7
|
private readonly tuiValueChanges$;
|
|
8
8
|
readonly tuiValueChanges: import("@angular/core").OutputRef<T>;
|
|
9
9
|
ngDoCheck(): void;
|
|
@@ -32,6 +32,7 @@ const TUI_FALSE_HANDLER = () => false;
|
|
|
32
32
|
* Handler that always returns `true`.
|
|
33
33
|
*/
|
|
34
34
|
const TUI_TRUE_HANDLER = () => true;
|
|
35
|
+
const TUI_STRINGIFY = ({ $implicit }) => String($implicit);
|
|
35
36
|
|
|
36
37
|
function bothEmpty(item1, item2) {
|
|
37
38
|
return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;
|
|
@@ -202,11 +203,11 @@ const TUI_USED_ICONS = [
|
|
|
202
203
|
'@tui.layout-grid',
|
|
203
204
|
];
|
|
204
205
|
|
|
205
|
-
const TUI_VERSION = '4.52.0-canary.
|
|
206
|
+
const TUI_VERSION = '4.52.0-canary.7c53ccc';
|
|
206
207
|
|
|
207
208
|
/**
|
|
208
209
|
* Generated bundle index. Do not edit.
|
|
209
210
|
*/
|
|
210
211
|
|
|
211
|
-
export { CHAR_BULLET, CHAR_CURRENCY_SIGN, CHAR_ELLIPSIS, CHAR_EM_DASH, CHAR_EN_DASH, CHAR_HYPHEN, CHAR_LAQUO, CHAR_MINUS, CHAR_NO_BREAK_SPACE, CHAR_PLUS, CHAR_RAQUO, CHAR_ZERO_WIDTH_SPACE, EMPTY_ARRAY, EMPTY_CLIENT_RECT, EMPTY_FUNCTION, EMPTY_QUERY, TUI_DEFAULT_IDENTITY_MATCHER, TUI_DEFAULT_MATCHER, TUI_DIGIT_REGEXP, TUI_FALSE_HANDLER, TUI_NON_DIGITS_REGEXP, TUI_NON_DIGIT_REGEXP, TUI_STRICT_MATCHER, TUI_TRUE_HANDLER, TUI_USED_ICONS, TUI_VERSION, svgNodeFilter };
|
|
212
|
+
export { CHAR_BULLET, CHAR_CURRENCY_SIGN, CHAR_ELLIPSIS, CHAR_EM_DASH, CHAR_EN_DASH, CHAR_HYPHEN, CHAR_LAQUO, CHAR_MINUS, CHAR_NO_BREAK_SPACE, CHAR_PLUS, CHAR_RAQUO, CHAR_ZERO_WIDTH_SPACE, EMPTY_ARRAY, EMPTY_CLIENT_RECT, EMPTY_FUNCTION, EMPTY_QUERY, TUI_DEFAULT_IDENTITY_MATCHER, TUI_DEFAULT_MATCHER, TUI_DIGIT_REGEXP, TUI_FALSE_HANDLER, TUI_NON_DIGITS_REGEXP, TUI_NON_DIGIT_REGEXP, TUI_STRICT_MATCHER, TUI_STRINGIFY, TUI_TRUE_HANDLER, TUI_USED_ICONS, TUI_VERSION, svgNodeFilter };
|
|
212
213
|
//# sourceMappingURL=taiga-ui-cdk-constants.mjs.map
|
|
@@ -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 * @deprecated use viewChild(), viewChildren(), contentChild() and contentChildren() for strict type checking\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 */\nexport const TUI_FALSE_HANDLER = (): false => false;\n\n/**\n * Handler that always returns `true`.\n */\nexport const TUI_TRUE_HANDLER = (): true => true;\n","import {type TuiHandler, type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\n","export const svgNodeFilter: 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 `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = '\\u2212';\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = '\\u002B';\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = '\\u2022';\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = '\\u2026';\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200B';\n","/**\n * @description:\n * AUTOGENERATED\n *\n * Array of icons used in ./projects\n */\nexport const TUI_USED_ICONS = [\n '@tui.mir',\n '@tui.visa',\n '@tui.electron',\n '@img.mastercard',\n '@img.maestro',\n '@img.amex',\n '@img.diners-club',\n '@img.discover',\n '@img.humo',\n '@img.jcb',\n '@img.ru-pay',\n '@img.union-pay',\n '@img.uzcard',\n '@img.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.external-link',\n '@tui.languages',\n '@tui.shrink',\n '@tui.expand',\n '@tui.a-large-small',\n '@tui.arrow-right-left',\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.ellipsis',\n '@tui.chevron-left',\n '@tui.clock',\n '@tui.trash',\n '@tui.minus',\n '@tui.file',\n '@tui.calendar',\n '@tui.plus',\n '@tui.heart',\n '@tui.heart-filled',\n '@tui.rotate-ccw-square',\n '@tui.arrow-left',\n '@tui.arrow-right',\n '@tui.minimize',\n '@tui.star',\n '@tui.filter',\n '@tui.layout-grid',\n] as const;\n","export const TUI_VERSION = '4.52.0-canary.
|
|
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 * @deprecated use viewChild(), viewChildren(), contentChild() and contentChildren() for strict type checking\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","import {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * Handler that always returns `false`.\n */\nexport const TUI_FALSE_HANDLER = (): false => false;\n\n/**\n * Handler that always returns `true`.\n */\nexport const TUI_TRUE_HANDLER = (): true => true;\nexport const TUI_STRINGIFY: PolymorpheusContent = ({$implicit}) => String($implicit);\n","import {type TuiHandler, type TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = String,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\n","export const svgNodeFilter: 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 `−`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = '\\u2212';\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = '\\u002B';\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = '\\u2022';\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = '\\u2026';\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = '\\u00A4';\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = '\\u200B';\n","/**\n * @description:\n * AUTOGENERATED\n *\n * Array of icons used in ./projects\n */\nexport const TUI_USED_ICONS = [\n '@tui.mir',\n '@tui.visa',\n '@tui.electron',\n '@img.mastercard',\n '@img.maestro',\n '@img.amex',\n '@img.diners-club',\n '@img.discover',\n '@img.humo',\n '@img.jcb',\n '@img.ru-pay',\n '@img.union-pay',\n '@img.uzcard',\n '@img.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.external-link',\n '@tui.languages',\n '@tui.shrink',\n '@tui.expand',\n '@tui.a-large-small',\n '@tui.arrow-right-left',\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.ellipsis',\n '@tui.chevron-left',\n '@tui.clock',\n '@tui.trash',\n '@tui.minus',\n '@tui.file',\n '@tui.calendar',\n '@tui.plus',\n '@tui.heart',\n '@tui.heart-filled',\n '@tui.rotate-ccw-square',\n '@tui.arrow-left',\n '@tui.arrow-right',\n '@tui.minimize',\n '@tui.star',\n '@tui.filter',\n '@tui.layout-grid',\n] as const;\n","export const TUI_VERSION = '4.52.0-canary.7c53ccc';\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;AAEV;;;;;AAKG;AACU,MAAA,WAAW,GAAG,IAAI,SAAS;AACjC,MAAM,WAAW,GAAO;MAClB,cAAc,GAA6B,MAAK;AAChD,MAAA,iBAAiB,GAAY;AACtC,IAAA,GAAG,IAAI;AACP,IAAA,MAAM,EAAE,MAAM,IAAI;;;ACtBtB;;AAEG;MACU,iBAAiB,GAAG,MAAa;AAE9C;;AAEG;MACU,gBAAgB,GAAG,MAAY;AACrC,MAAM,aAAa,GAAwB,CAAC,EAAC,SAAS,EAAC,KAAK,MAAM,CAAC,SAAS;;ACTnF,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;AACzF;AAEA;;;;;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;AAEzE;;;;;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;AAElE;;;;;;AAMG;MACU,4BAA4B,GAAgC,CAAC,KAAK,EAAE,KAAK,KAClF,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK;;ACtCtC,MAAM,gBAAgB,GAAG;AACzB,MAAM,oBAAoB,GAAG;AAC7B,MAAM,qBAAqB,GAAG;;ACFxB,MAAA,aAAa,GAAgD;AACtE,IAAA,UAAU,CAAC,IAAU,EAAA;QACjB,OAAO,iBAAiB,IAAI;cACtB,UAAU,CAAC;AACb,cAAE,UAAU,CAAC,aAAa;KACjC;;;ACLL;;AAEG;AACI,MAAM,mBAAmB,GAAG;AAEnC;;;;;;AAMG;AACI,MAAM,YAAY,GAAG;AAE5B;;;;;;AAMG;AACI,MAAM,YAAY,GAAG;AAE5B;;AAEG;AACI,MAAM,UAAU,GAAG;AAE1B;;AAEG;AACI,MAAM,UAAU,GAAG;AAE1B;;;;;;AAMG;AACI,MAAM,WAAW,GAAG;AAE3B;;;;;AAKG;AACI,MAAM,UAAU,GAAG;AAE1B;;AAEG;AACI,MAAM,SAAS,GAAG;AAEzB;;AAEG;AACI,MAAM,WAAW,GAAG;AAE3B;;AAEG;AACI,MAAM,aAAa,GAAG;AAE7B;;AAEG;AACI,MAAM,kBAAkB,GAAG;AAElC;;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,oBAAoB;IACpB,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,oBAAoB;IACpB,uBAAuB;IACvB,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,eAAe;IACf,mBAAmB;IACnB,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,eAAe;IACf,WAAW;IACX,YAAY;IACZ,mBAAmB;IACnB,wBAAwB;IACxB,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,aAAa;IACb,kBAAkB;;;AChEf,MAAM,WAAW,GAAG;;ACA3B;;AAEG;;;;"}
|
|
@@ -2,18 +2,19 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { inject, Directive } from '@angular/core';
|
|
3
3
|
import { outputFromObservable } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { ControlContainer, NgControl } from '@angular/forms';
|
|
5
|
-
import {
|
|
5
|
+
import { tuiControlValue } from '@taiga-ui/cdk/observables';
|
|
6
|
+
import { Subject, distinctUntilChanged, switchMap, skip } from 'rxjs';
|
|
6
7
|
|
|
7
8
|
class TuiValueChanges {
|
|
8
9
|
constructor() {
|
|
9
10
|
this.container = inject(ControlContainer, { optional: true });
|
|
10
11
|
this.control = inject(NgControl, { optional: true });
|
|
11
|
-
this.
|
|
12
|
-
this.tuiValueChanges$ = this.
|
|
12
|
+
this.control$ = new Subject();
|
|
13
|
+
this.tuiValueChanges$ = this.control$.pipe(distinctUntilChanged(), switchMap((tuiControlValue)), distinctUntilChanged(), skip(1));
|
|
13
14
|
this.tuiValueChanges = outputFromObservable(this.tuiValueChanges$);
|
|
14
15
|
}
|
|
15
16
|
ngDoCheck() {
|
|
16
|
-
this.
|
|
17
|
+
this.control$.next(this.control || this.container);
|
|
17
18
|
}
|
|
18
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiValueChanges, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
19
20
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiValueChanges, isStandalone: true, selector: "[tuiValueChanges]", outputs: { tuiValueChanges: "tuiValueChanges" }, ngImport: i0 }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-value-changes.mjs","sources":["../../../projects/cdk/directives/value-changes/value-changes.directive.ts","../../../projects/cdk/directives/value-changes/taiga-ui-cdk-directives-value-changes.ts"],"sourcesContent":["import {Directive, type DoCheck, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {ControlContainer, NgControl} from '@angular/forms';\nimport {distinctUntilChanged,
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-value-changes.mjs","sources":["../../../projects/cdk/directives/value-changes/value-changes.directive.ts","../../../projects/cdk/directives/value-changes/taiga-ui-cdk-directives-value-changes.ts"],"sourcesContent":["import {Directive, type DoCheck, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {ControlContainer, NgControl} from '@angular/forms';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {distinctUntilChanged, skip, Subject, switchMap} from 'rxjs';\n\n@Directive({\n selector: '[tuiValueChanges]',\n})\nexport class TuiValueChanges<T> implements DoCheck {\n private readonly container = inject(ControlContainer, {optional: true});\n private readonly control = inject(NgControl, {optional: true});\n private readonly control$ = new Subject<ControlContainer | NgControl | null>();\n\n private readonly tuiValueChanges$ = this.control$.pipe(\n distinctUntilChanged(),\n switchMap(tuiControlValue<T>),\n distinctUntilChanged(),\n skip(1),\n );\n\n public readonly tuiValueChanges = outputFromObservable(this.tuiValueChanges$);\n\n public ngDoCheck(): void {\n this.control$.next(this.control || this.container);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MASa,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;QAIqB,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;QACtD,IAAO,CAAA,OAAA,GAAG,MAAM,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAuC;QAE7D,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAClD,oBAAoB,EAAE,EACtB,SAAS,EAAC,eAAkB,EAAC,EAC7B,oBAAoB,EAAE,EACtB,IAAI,CAAC,CAAC,CAAC,CACV;AAEe,QAAA,IAAA,CAAA,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAKhF;IAHU,SAAS,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC;;+GAf7C,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAChC,iBAAA;;;ACRD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/cdk",
|
|
3
|
-
"version": "4.52.0-canary.
|
|
3
|
+
"version": "4.52.0-canary.7c53ccc",
|
|
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",
|
|
@@ -186,14 +186,14 @@
|
|
|
186
186
|
"types": "./utils/dom/index.d.ts",
|
|
187
187
|
"default": "./fesm2022/taiga-ui-cdk-utils-dom.mjs"
|
|
188
188
|
},
|
|
189
|
-
"./utils/math": {
|
|
190
|
-
"types": "./utils/math/index.d.ts",
|
|
191
|
-
"default": "./fesm2022/taiga-ui-cdk-utils-math.mjs"
|
|
192
|
-
},
|
|
193
189
|
"./utils/focus": {
|
|
194
190
|
"types": "./utils/focus/index.d.ts",
|
|
195
191
|
"default": "./fesm2022/taiga-ui-cdk-utils-focus.mjs"
|
|
196
192
|
},
|
|
193
|
+
"./utils/math": {
|
|
194
|
+
"types": "./utils/math/index.d.ts",
|
|
195
|
+
"default": "./fesm2022/taiga-ui-cdk-utils-math.mjs"
|
|
196
|
+
},
|
|
197
197
|
"./utils/miscellaneous": {
|
|
198
198
|
"types": "./utils/miscellaneous/index.d.ts",
|
|
199
199
|
"default": "./fesm2022/taiga-ui-cdk-utils-miscellaneous.mjs"
|
package/schematics/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export * from './ng-add/constants/modules';
|
|
|
4
4
|
export * from './ng-add/constants/packages';
|
|
5
5
|
export * from './ng-add/constants/versions';
|
|
6
6
|
export type * from './ng-add/schema';
|
|
7
|
+
export type * from './ng-update/interfaces';
|
|
8
|
+
export * from './ng-update/utils/get-file-system';
|
|
7
9
|
export * from './utils/add-import-to-closest-module';
|
|
8
10
|
export * from './utils/add-unique-import';
|
|
9
11
|
export * from './utils/angular-json-manipulations';
|
|
@@ -21,3 +23,5 @@ export * from './utils/progress';
|
|
|
21
23
|
export * from './utils/project-root';
|
|
22
24
|
export * from './utils/push-to-array-property';
|
|
23
25
|
export * from './utils/remove-module';
|
|
26
|
+
export * from './utils/templates/get-component-templates';
|
|
27
|
+
export * from './utils/templates/template-resource';
|
package/schematics/index.js
CHANGED
|
@@ -6,6 +6,7 @@ tslib_1.__exportStar(require("./constants/taiga-styles"), exports);
|
|
|
6
6
|
tslib_1.__exportStar(require("./ng-add/constants/modules"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./ng-add/constants/packages"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./ng-add/constants/versions"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./ng-update/utils/get-file-system"), exports);
|
|
9
10
|
tslib_1.__exportStar(require("./utils/add-import-to-closest-module"), exports);
|
|
10
11
|
tslib_1.__exportStar(require("./utils/add-unique-import"), exports);
|
|
11
12
|
tslib_1.__exportStar(require("./utils/angular-json-manipulations"), exports);
|
|
@@ -23,4 +24,6 @@ tslib_1.__exportStar(require("./utils/progress"), exports);
|
|
|
23
24
|
tslib_1.__exportStar(require("./utils/project-root"), exports);
|
|
24
25
|
tslib_1.__exportStar(require("./utils/push-to-array-property"), exports);
|
|
25
26
|
tslib_1.__exportStar(require("./utils/remove-module"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./utils/templates/get-component-templates"), exports);
|
|
28
|
+
tslib_1.__exportStar(require("./utils/templates/template-resource"), exports);
|
|
26
29
|
//# sourceMappingURL=index.js.map
|
package/schematics/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../projects/cdk/schematics/index.ts"],"names":[],"mappings":";;;AAAA,iEAAuC;AACvC,mEAAyC;AACzC,qEAA2C;AAC3C,sEAA4C;AAC5C,sEAA4C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../projects/cdk/schematics/index.ts"],"names":[],"mappings":";;;AAAA,iEAAuC;AACvC,mEAAyC;AACzC,qEAA2C;AAC3C,sEAA4C;AAC5C,sEAA4C;AAG5C,4EAAkD;AAClD,+EAAqD;AACrD,oEAA0C;AAC1C,6EAAmD;AACnD,sEAA4C;AAC5C,gFAAsD;AACtD,qEAA2C;AAC3C,8EAAoD;AACpD,6EAAmD;AACnD,+DAAqC;AACrC,oFAA0D;AAC1D,uEAA6C;AAC7C,8DAAoC;AACpC,wDAA8B;AAC9B,2DAAiC;AACjC,+DAAqC;AACrC,yEAA+C;AAC/C,gEAAsC;AACtC,oFAA0D;AAC1D,8EAAoD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const TAIGA_VERSION = "^4.52.0-canary.
|
|
1
|
+
export declare const TAIGA_VERSION = "^4.52.0-canary.7c53ccc";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const DEPRECATED_VARS: {
|
|
2
|
-
'--tui-font-
|
|
3
|
-
'--tui-font-
|
|
4
|
-
'--tui-font-
|
|
5
|
-
'--tui-font-
|
|
2
|
+
'--tui-font-body-l-2': string;
|
|
3
|
+
'--tui-font-body-m-2': string;
|
|
4
|
+
'--tui-font-body-s-2': string;
|
|
5
|
+
'--tui-font-body-xs-2': string;
|
|
6
6
|
'--tui-base-01': string;
|
|
7
7
|
'--tui-base-02': string;
|
|
8
8
|
'--tui-base-03': string;
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEPRECATE_VARS_WITH_COMMENT = exports.NIGHT_VAR_COMMENT = exports.DEPRECATED_NUMERIC_VARS = exports.DEPRECATED_VARS = void 0;
|
|
4
4
|
exports.DEPRECATED_VARS = {
|
|
5
|
-
'--tui-font-
|
|
6
|
-
'--tui-font-
|
|
7
|
-
'--tui-font-
|
|
8
|
-
'--tui-font-
|
|
5
|
+
'--tui-font-body-l-2': '--tui-font-ui-l',
|
|
6
|
+
'--tui-font-body-m-2': '--tui-font-ui-m',
|
|
7
|
+
'--tui-font-body-s-2': '--tui-font-ui-s',
|
|
8
|
+
'--tui-font-body-xs-2': '--tui-font-ui-xs',
|
|
9
9
|
'--tui-base-01': '--tui-background-base',
|
|
10
10
|
'--tui-base-02': '--tui-background-base-alt',
|
|
11
11
|
'--tui-base-03': '--tui-background-neutral-1-hover',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.js","sourceRoot":"","sources":["../../../../../../projects/cdk/schematics/ng-update/v4/migrate-css-vars/palette.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG;IAC3B,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"palette.js","sourceRoot":"","sources":["../../../../../../projects/cdk/schematics/ng-update/v4/migrate-css-vars/palette.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,40 +2,40 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.migrateTextMixins = migrateTextMixins;
|
|
4
4
|
const MAPPING = {
|
|
5
|
-
'text-h1': ['font: var(--tui-font-heading-
|
|
6
|
-
'text-h2': ['font: var(--tui-font-heading-
|
|
7
|
-
'text-h3': ['font: var(--tui-font-heading-
|
|
8
|
-
'text-h4': ['font: var(--tui-font-heading-
|
|
9
|
-
'text-h5': ['font: var(--tui-font-heading-
|
|
10
|
-
'text-h6': ['font: var(--tui-font-heading-
|
|
11
|
-
'text-body-xl-bold': ['font: var(--tui-font-
|
|
12
|
-
'text-body-xl': ['font: var(--tui-font-
|
|
13
|
-
'text-body-xs': ['font: var(--tui-font-
|
|
5
|
+
'text-h1': ['font: var(--tui-font-heading-h1)'],
|
|
6
|
+
'text-h2': ['font: var(--tui-font-heading-h2)'],
|
|
7
|
+
'text-h3': ['font: var(--tui-font-heading-h3)'],
|
|
8
|
+
'text-h4': ['font: var(--tui-font-heading-h4)'],
|
|
9
|
+
'text-h5': ['font: var(--tui-font-heading-h5)'],
|
|
10
|
+
'text-h6': ['font: var(--tui-font-heading-h6)'],
|
|
11
|
+
'text-body-xl-bold': ['font: var(--tui-font-legacy-body-xl)', 'font-weight: bold'],
|
|
12
|
+
'text-body-xl': ['font: var(--tui-font-legacy-body-xl)'],
|
|
13
|
+
'text-body-xs': ['font: var(--tui-font-body-xs)'],
|
|
14
14
|
'text-caption-l-bold': [
|
|
15
15
|
'font-size: 0.8125rem',
|
|
16
16
|
'font-weight: bold',
|
|
17
|
-
'font-family: var(--tui-font-text)',
|
|
17
|
+
'font-family: var(--tui-font-family-text)',
|
|
18
18
|
'letter-spacing: 0.0625rem',
|
|
19
19
|
'text-transform: uppercase',
|
|
20
20
|
],
|
|
21
21
|
'text-caption-l': [
|
|
22
22
|
'font-size: 0.8125rem',
|
|
23
23
|
'font-weight: normal',
|
|
24
|
-
'font-family: var(--tui-font-text)',
|
|
24
|
+
'font-family: var(--tui-font-family-text)',
|
|
25
25
|
'letter-spacing: 0.0625rem',
|
|
26
26
|
'text-transform: uppercase',
|
|
27
27
|
],
|
|
28
28
|
'text-caption-bold': [
|
|
29
29
|
'font-size: 0.6875rem',
|
|
30
30
|
'font-weight: bold',
|
|
31
|
-
'font-family: var(--tui-font-text)',
|
|
31
|
+
'font-family: var(--tui-font-family-text)',
|
|
32
32
|
'letter-spacing: 0.0625rem',
|
|
33
33
|
'text-transform: uppercase',
|
|
34
34
|
],
|
|
35
35
|
'text-caption': [
|
|
36
36
|
'font-size: 0.6875rem',
|
|
37
37
|
'font-weight: normal',
|
|
38
|
-
'font-family: var(--tui-font-text)',
|
|
38
|
+
'font-family: var(--tui-font-family-text)',
|
|
39
39
|
'letter-spacing: 0.0625rem',
|
|
40
40
|
'text-transform: uppercase',
|
|
41
41
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate-text-mixins.js","sourceRoot":"","sources":["../../../../../../../projects/cdk/schematics/ng-update/v4/steps/styles/migrate-text-mixins.ts"],"names":[],"mappings":";;AA6CA,8CAYC;AAzDD,MAAM,OAAO,GAAG;IACZ,SAAS,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"migrate-text-mixins.js","sourceRoot":"","sources":["../../../../../../../projects/cdk/schematics/ng-update/v4/steps/styles/migrate-text-mixins.ts"],"names":[],"mappings":";;AA6CA,8CAYC;AAzDD,MAAM,OAAO,GAAG;IACZ,SAAS,EAAE,CAAC,kCAAkC,CAAC;IAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;IAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;IAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;IAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;IAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;IAC/C,mBAAmB,EAAE,CAAC,sCAAsC,EAAE,mBAAmB,CAAC;IAClF,cAAc,EAAE,CAAC,sCAAsC,CAAC;IACxD,cAAc,EAAE,CAAC,+BAA+B,CAAC;IACjD,qBAAqB,EAAE;QACnB,sBAAsB;QACtB,mBAAmB;QACnB,0CAA0C;QAC1C,2BAA2B;QAC3B,2BAA2B;KAC9B;IACD,gBAAgB,EAAE;QACd,sBAAsB;QACtB,qBAAqB;QACrB,0CAA0C;QAC1C,2BAA2B;QAC3B,2BAA2B;KAC9B;IACD,mBAAmB,EAAE;QACjB,sBAAsB;QACtB,mBAAmB;QACnB,0CAA0C;QAC1C,2BAA2B;QAC3B,2BAA2B;KAC9B;IACD,cAAc,EAAE;QACZ,sBAAsB;QACtB,qBAAqB;QACrB,0CAA0C;QAC1C,2BAA2B;QAC3B,2BAA2B;KAC9B;CACJ,CAAC;AAEF,kBAAkB;AAClB,0BAA0B;AAC1B,MAAM,QAAQ,GACV,qFAAqF,CAAC;AAE1F,SAAgB,iBAAiB,CAAC,WAAmB;IACjD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EAAE,CAAC;QAChE,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,OAAO,WAAW,CAAC,UAAU,CACzB,QAAQ,EACR,CAAC,cAAsB,EAAE,SAA+B,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,CACxE,OAAO,CAAC,SAAS,CAAC;QACd,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClF,CAAC,CAAC,GAAG,cAAc,kLAAkL,CAChN,CAAC;AACN,CAAC"}
|
|
@@ -12,14 +12,18 @@ const get_file_system_1 = require("../utils/get-file-system");
|
|
|
12
12
|
const replace_functions_1 = require("../utils/replace-functions");
|
|
13
13
|
const functions_1 = require("./steps/constants/functions");
|
|
14
14
|
const identifiers_to_replace_1 = require("./steps/constants/identifiers-to-replace");
|
|
15
|
+
const migrate_css_variables_1 = require("./steps/migrate-css-variables");
|
|
15
16
|
const migrate_templates_1 = require("./steps/migrate-templates");
|
|
16
17
|
const migrate_tokens_1 = require("./steps/migrate-tokens/migrate-tokens");
|
|
17
18
|
const update_tsconfig_1 = require("./steps/migrate-tokens/update-tsconfig");
|
|
19
|
+
const migrate_tui_let_1 = require("./steps/migrate-tui-let");
|
|
18
20
|
function main(options) {
|
|
19
21
|
return (tree, context) => {
|
|
20
22
|
const fileSystem = (0, get_file_system_1.getFileSystem)(tree);
|
|
23
|
+
(0, migrate_tui_let_1.tuiLetMigration)(tree, options);
|
|
21
24
|
(0, migrate_tokens_1.migrateTokens)(tree, options);
|
|
22
25
|
(0, update_tsconfig_1.updateTsConfig)(tree, options);
|
|
26
|
+
(0, migrate_css_variables_1.migrateCssVariables)(tree, options);
|
|
23
27
|
(0, replace_functions_1.replaceFunctions)(functions_1.REPLACE_FUNCTIONS);
|
|
24
28
|
(0, replace_identifier_1.replaceIdentifiers)(options, identifiers_to_replace_1.IDENTIFIERS_TO_REPLACE);
|
|
25
29
|
(0, migrate_templates_1.migrateTemplates)(fileSystem, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/ng-update/v5/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/ng-update/v5/index.ts"],"names":[],"mappings":";;AA4CA,gCAmBC;AA/DD,qDAA4C;AAE5C,2DAKoC;AACpC,4DAAwE;AACxE,uCAAkF;AAElF,8DAA8D;AAE9D,uEAAgE;AAChE,oEAA+D;AAC/D,8DAAuD;AACvD,kEAA4D;AAC5D,2DAA8D;AAC9D,qFAAgF;AAChF,yEAAkE;AAClE,iEAA2D;AAC3D,0EAAoE;AACpE,4EAAsE;AACtE,6DAAwD;AAExD,SAAS,IAAI,CAAC,OAAkB;IAC5B,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC7C,MAAM,UAAU,GAAG,IAAA,+BAAa,EAAC,IAAI,CAAC,CAAC;QAEvC,IAAA,iCAAe,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAA,8BAAa,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7B,IAAA,gCAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAA,2CAAmB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,IAAA,oCAAgB,EAAC,6BAAiB,CAAC,CAAC;QACpC,IAAA,uCAAkB,EAAC,OAAO,EAAE,+CAAsB,CAAC,CAAC;QACpD,IAAA,oCAAgB,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEtC,UAAU,CAAC,WAAW,EAAE,CAAC;QACzB,IAAA,4BAAiB,GAAE,CAAC;QAEpB,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,UAAU,CAAC,OAAkB;IACzC,MAAM,EAAE,GAAG,6BAAW,CAAC,GAAG,EAAE,CAAC;IAE7B,CAAC,OAAO,CAAC,WAAW,CAAC;QACjB,IAAA,mBAAQ,EACJ,OAAO,uBAAY,iDAAiD,wBAAa,IAAI,CACxF,CAAC;IAEN,OAAO,IAAA,kBAAK,EAAC;QACT,IAAI,CAAC,OAAO,CAAC;QACb,GAAG,EAAE;YACD,MAAM,aAAa,GAAG,IAAA,qCAAgB,EAAC,EAAE,EAAE,6BAAW,CAAC,GAAG,EAAE,CAAC,CAAC;YAE9D,CAAC,OAAO,CAAC,WAAW,CAAC;gBACjB,IAAA,mBAAQ,EACJ,GAAG,wBAAa,wCAAwC,wBAAa,OAAO,aAAa,MAAM,CAClG,CAAC;QACV,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.migrateCssVariables = migrateCssVariables;
|
|
4
|
+
const ng_morph_1 = require("ng-morph");
|
|
5
|
+
const get_file_system_1 = require("../../utils/get-file-system");
|
|
6
|
+
const replace_text_1 = require("../../utils/replace-text");
|
|
7
|
+
const FONT_VARIABLES_REPLACEMENTS = [
|
|
8
|
+
{ from: '--tui-font-heading-([1-6])', to: '--tui-font-heading-h$1' },
|
|
9
|
+
{ from: '--tui-font-text-xl', to: '--tui-font-legacy-body-xl' },
|
|
10
|
+
{ from: '--tui-font-text-l', to: '--tui-font-body-l' },
|
|
11
|
+
{ from: '--tui-font-text-m', to: '--tui-font-body-m' },
|
|
12
|
+
{ from: '--tui-font-text-s', to: '--tui-font-body-s' },
|
|
13
|
+
{ from: '--tui-font-text-xs', to: '--tui-font-body-xs' },
|
|
14
|
+
{ from: '--tui-font-text-ui-l', to: '--tui-font-ui-l' },
|
|
15
|
+
{ from: '--tui-font-text-ui-m', to: '--tui-font-ui-m' },
|
|
16
|
+
{ from: '--tui-font-text-ui-s', to: '--tui-font-ui-s' },
|
|
17
|
+
{ from: '--tui-font-text-ui-xs', to: '--tui-font-ui-xs' },
|
|
18
|
+
];
|
|
19
|
+
function migrateCssVariables(tree, options) {
|
|
20
|
+
if (!options['skip-logs']) {
|
|
21
|
+
(0, ng_morph_1.infoLog)('Starting migration css variables...');
|
|
22
|
+
}
|
|
23
|
+
const fileSystem = (0, get_file_system_1.getFileSystem)(tree);
|
|
24
|
+
(0, replace_text_1.replaceText)(FONT_VARIABLES_REPLACEMENTS);
|
|
25
|
+
fileSystem.commitEdits();
|
|
26
|
+
(0, ng_morph_1.saveActiveProject)();
|
|
27
|
+
!options['skip-logs'] &&
|
|
28
|
+
(0, ng_morph_1.successLog)(`${ng_morph_1.SMALL_TAB_SYMBOL}${ng_morph_1.SUCCESS_SYMBOL} css variables migrated \n`);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=migrate-css-variables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-css-variables.js","sourceRoot":"","sources":["../../../../../../projects/cdk/schematics/ng-update/v5/steps/migrate-css-variables.ts"],"names":[],"mappings":";;AA0BA,kDAcC;AAvCD,uCAMkB;AAGlB,iEAA0D;AAC1D,2DAAqD;AAErD,MAAM,2BAA2B,GAAG;IAChC,EAAC,IAAI,EAAE,4BAA4B,EAAE,EAAE,EAAE,wBAAwB,EAAC;IAClE,EAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,2BAA2B,EAAC;IAC7D,EAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,mBAAmB,EAAC;IACpD,EAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,mBAAmB,EAAC;IACpD,EAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,mBAAmB,EAAC;IACpD,EAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,oBAAoB,EAAC;IACtD,EAAC,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,iBAAiB,EAAC;IACrD,EAAC,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,iBAAiB,EAAC;IACrD,EAAC,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,iBAAiB,EAAC;IACrD,EAAC,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,kBAAkB,EAAC;CAC1D,CAAC;AAEF,SAAgB,mBAAmB,CAAC,IAAU,EAAE,OAAkB;IAC9D,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACxB,IAAA,kBAAO,EAAC,qCAAqC,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,UAAU,GAAG,IAAA,+BAAa,EAAC,IAAI,CAAC,CAAC;IAEvC,IAAA,0BAAW,EAAC,2BAA2B,CAAC,CAAC;IAEzC,UAAU,CAAC,WAAW,EAAE,CAAC;IACzB,IAAA,4BAAiB,GAAE,CAAC;IAEpB,CAAC,OAAO,CAAC,WAAW,CAAC;QACjB,IAAA,qBAAU,EAAC,GAAG,2BAAgB,GAAG,yBAAc,4BAA4B,CAAC,CAAC;AACrF,CAAC"}
|
|
@@ -13,6 +13,7 @@ const attrs_to_replace_1 = require("./constants/attrs-to-replace");
|
|
|
13
13
|
const html_comments_1 = require("./constants/html-comments");
|
|
14
14
|
const migrate_avatar_1 = require("./templates/migrate-avatar");
|
|
15
15
|
const migrate_input_year_1 = require("./templates/migrate-input-year");
|
|
16
|
+
const migrate_notification_1 = require("./templates/migrate-notification");
|
|
16
17
|
function getAction({ action, requiredData, }) {
|
|
17
18
|
return ({ resource, fileSystem, recorder, }) => action({ resource, fileSystem, recorder, data: requiredData });
|
|
18
19
|
}
|
|
@@ -25,6 +26,7 @@ function migrateTemplates(fileSystem, options) {
|
|
|
25
26
|
getAction({ action: templates_1.replaceAttrs, requiredData: attrs_to_replace_1.ATTRS_TO_REPLACE }),
|
|
26
27
|
migrate_input_year_1.migrateInputYear,
|
|
27
28
|
migrate_avatar_1.migrateAvatarToDirective,
|
|
29
|
+
migrate_notification_1.migrateTuiNotification,
|
|
28
30
|
];
|
|
29
31
|
const progressLog = (0, progress_1.setupProgressLogger)({
|
|
30
32
|
total: componentWithTemplatesPaths.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate-templates.js","sourceRoot":"","sources":["../../../../../../projects/cdk/schematics/ng-update/v5/steps/migrate-templates.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"migrate-templates.js","sourceRoot":"","sources":["../../../../../../projects/cdk/schematics/ng-update/v5/steps/migrate-templates.ts"],"names":[],"mappings":";;AAwBA,8BA0BC;AAED,4CAoCC;AAxFD,uCAQkB;AAElB,kDAAgD;AAEhD,8FAA6E;AAC7E,sDAA4D;AAC5D,8FAAuF;AACvF,kFAAuF;AAEvF,qDAAuE;AACvE,mEAA8D;AAC9D,6DAAwD;AACxD,+DAAoE;AACpE,uEAAgE;AAChE,2EAAwE;AAExE,SAAgB,SAAS,CAAI,EACzB,MAAM,EACN,YAAY,GAcf;IACG,OAAO,CAAC,EACJ,QAAQ,EACR,UAAU,EACV,QAAQ,GAKX,EAAE,EAAE,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAgB,gBAAgB,CAAC,UAA4B,EAAE,OAAkB;IAC7E,CAAC,OAAO,CAAC,WAAW,CAAC;QACjB,IAAA,kBAAO,EAAC,GAAG,2BAAgB,GAAG,yBAAc,yBAAyB,CAAC,CAAC;IAE3E,MAAM,2BAA2B,GAAG,IAAA,+CAAqB,EAAC,wBAAY,CAAC,CAAC;IAExE,MAAM,OAAO,GAAG;QACZ,SAAS,CAAC,EAAC,MAAM,EAAE,8BAAkB,EAAE,YAAY,EAAE,6BAAa,EAAC,CAAC;QACpE,SAAS,CAAC,EAAC,MAAM,EAAE,wBAAY,EAAE,YAAY,EAAE,mCAAgB,EAAC,CAAC;QACjE,qCAAgB;QAChB,yCAAwB;QACxB,6CAAsB;KAChB,CAAC;IAEX,MAAM,WAAW,GAAG,IAAA,8BAAmB,EAAC;QACpC,KAAK,EAAE,2BAA2B,CAAC,MAAM;KAC5C,CAAC,CAAC;IAEH,2BAA2B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAA,+CAA2B,EAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;YACpC,MAAM,YAAY,GAAG,WAAW,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAExD,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAChE,MAAM,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,WAAW,EAAE,CAAC;IAEzB,IAAA,+CAAgB,EAAC,OAAO,CAAC,CAAC;IAE1B,CAAC,OAAO,CAAC,WAAW,CAAC;QACjB,IAAA,qBAAU,EAAC,GAAG,2BAAgB,GAAG,yBAAc,wBAAwB,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tuiLetMigration = tuiLetMigration;
|
|
4
|
+
const schematics_1 = require("@angular/cdk/schematics");
|
|
5
|
+
const ng_morph_1 = require("ng-morph");
|
|
6
|
+
const file_globs_1 = require("../../../constants/file-globs");
|
|
7
|
+
const remove_module_1 = require("../../../utils/remove-module");
|
|
8
|
+
const get_component_templates_1 = require("../../../utils/templates/get-component-templates");
|
|
9
|
+
const template_resource_1 = require("../../../utils/templates/template-resource");
|
|
10
|
+
const get_file_system_1 = require("../../utils/get-file-system");
|
|
11
|
+
const STRUCTURAL_ATTR = '*tuiLet';
|
|
12
|
+
function tuiLetMigration(tree, options) {
|
|
13
|
+
const fileSystem = (0, get_file_system_1.getFileSystem)(tree);
|
|
14
|
+
const project = (0, ng_morph_1.createProject)(tree, '/', file_globs_1.ALL_TS_FILES);
|
|
15
|
+
(0, ng_morph_1.setActiveProject)(project);
|
|
16
|
+
(0, remove_module_1.removeModule)('TuiLet', '@taiga-ui/cdk');
|
|
17
|
+
const resources = (0, get_component_templates_1.getComponentTemplates)(file_globs_1.ALL_FILES);
|
|
18
|
+
for (const resource of resources) {
|
|
19
|
+
migrateTemplate(resource, fileSystem, options);
|
|
20
|
+
}
|
|
21
|
+
fileSystem.commitEdits();
|
|
22
|
+
(0, ng_morph_1.saveActiveProject)();
|
|
23
|
+
}
|
|
24
|
+
function migrateTemplate(resource, fileSystem, options) {
|
|
25
|
+
const templatePath = fileSystem.resolve((0, template_resource_1.getPathFromTemplateResource)(resource));
|
|
26
|
+
const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
|
|
27
|
+
const recorder = fileSystem.edit(templatePath);
|
|
28
|
+
const offset = (0, template_resource_1.getTemplateOffset)(resource);
|
|
29
|
+
const elements = (0, schematics_1.findElementsWithAttribute)(template, STRUCTURAL_ATTR);
|
|
30
|
+
for (const element of elements) {
|
|
31
|
+
migrateStructuralLet(element, template, recorder, offset, options);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function migrateStructuralLet(element, template, recorder, offset, options) {
|
|
35
|
+
const attr = element.attrs.find((a) => a.name === STRUCTURAL_ATTR.toLowerCase());
|
|
36
|
+
if (!attr) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const { expr, key } = parseLetExpression(attr.value);
|
|
40
|
+
if (!expr || !key) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (containsDuplicateLet(template, key)) {
|
|
44
|
+
if (!options['skip-logs']) {
|
|
45
|
+
(0, ng_morph_1.errorLog)(`The @let with key ${key} is already defined`);
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
insertLetDeclaration({ recorder, offset, element, template, expr, key });
|
|
50
|
+
removeStructuralAttribute({ recorder, offset, element, attr });
|
|
51
|
+
}
|
|
52
|
+
function parseLetExpression(value) {
|
|
53
|
+
const [expr = '', key = ''] = value.split(' as ').map((v) => v.trim());
|
|
54
|
+
return { expr, key };
|
|
55
|
+
}
|
|
56
|
+
function containsDuplicateLet(template, key) {
|
|
57
|
+
const pattern = new RegExp(String.raw `@let\s+${key}\s+=`);
|
|
58
|
+
return pattern.test(template);
|
|
59
|
+
}
|
|
60
|
+
function insertLetDeclaration({ recorder, element, key, expr, template, offset, }) {
|
|
61
|
+
const loc = element.sourceCodeLocation;
|
|
62
|
+
const indent = computeIndent(template, loc.startOffset);
|
|
63
|
+
const indentStr = ' '.repeat(indent);
|
|
64
|
+
recorder.insertLeft(offset + loc.startOffset, `@let ${key} = ${expr};\n${indentStr}`);
|
|
65
|
+
}
|
|
66
|
+
function computeIndent(template, pos) {
|
|
67
|
+
const lastNewLine = template.lastIndexOf('\n', pos);
|
|
68
|
+
return pos - (lastNewLine + 1);
|
|
69
|
+
}
|
|
70
|
+
function removeStructuralAttribute({ recorder, offset, element, attr, }) {
|
|
71
|
+
var _a;
|
|
72
|
+
const loc = element.sourceCodeLocation;
|
|
73
|
+
const attrLoc = (_a = loc.attrs) === null || _a === void 0 ? void 0 : _a[attr.name];
|
|
74
|
+
const isPureNgContainer = element.tagName === 'ng-container' && element.attrs.length === 1;
|
|
75
|
+
if (isPureNgContainer) {
|
|
76
|
+
unwrapNgContainer(recorder, offset, element);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (attrLoc) {
|
|
80
|
+
recorder.remove(offset + attrLoc.startOffset - 1, attrLoc.endOffset - attrLoc.startOffset + 1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function unwrapNgContainer(recorder, offset, element) {
|
|
84
|
+
const loc = element.sourceCodeLocation;
|
|
85
|
+
const children = element.childNodes;
|
|
86
|
+
if (!children.length) {
|
|
87
|
+
recorder.remove(offset + loc.startOffset, loc.endOffset - loc.startOffset);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const first = children[0].sourceCodeLocation;
|
|
91
|
+
const last = children[children.length - 1].sourceCodeLocation;
|
|
92
|
+
recorder.remove(offset + loc.startOffset, first.startOffset - loc.startOffset);
|
|
93
|
+
recorder.remove(offset + last.endOffset, loc.endOffset - last.endOffset);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=migrate-tui-let.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-tui-let.js","sourceRoot":"","sources":["../../../../../../projects/cdk/schematics/ng-update/v5/steps/migrate-tui-let.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type UpdateRecorder } from '@angular-devkit/schematics';
|
|
2
|
+
import { type DevkitFileSystem } from 'ng-morph';
|
|
3
|
+
import { type TemplateResource } from '../../../interfaces';
|
|
4
|
+
export declare function migrateTuiNotification({ 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.migrateTuiNotification = migrateTuiNotification;
|
|
4
|
+
const elements_1 = require("../../../../utils/templates/elements");
|
|
5
|
+
const template_resource_1 = require("../../../../utils/templates/template-resource");
|
|
6
|
+
const replace_tag_1 = require("../../../utils/templates/replace-tag");
|
|
7
|
+
const NOTIFICATION_ATTRIBUTE = [
|
|
8
|
+
'tuinotification',
|
|
9
|
+
'[tuinotification]',
|
|
10
|
+
'[(tuinotification)]',
|
|
11
|
+
];
|
|
12
|
+
function migrateTuiNotification({ resource, recorder, fileSystem, }) {
|
|
13
|
+
const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
|
|
14
|
+
const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
|
|
15
|
+
const notifications = (0, elements_1.findElementsByTagName)(template, 'tui-notification');
|
|
16
|
+
notifications.forEach((element) => {
|
|
17
|
+
const location = element.sourceCodeLocation;
|
|
18
|
+
const startTag = location === null || location === void 0 ? void 0 : location.startTag;
|
|
19
|
+
if (!startTag) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const attrsToAdd = element.attrs.some(({ name }) => NOTIFICATION_ATTRIBUTE.includes(name))
|
|
23
|
+
? []
|
|
24
|
+
: ['tuiNotification'];
|
|
25
|
+
const raw = template.slice(startTag.startOffset, startTag.endOffset);
|
|
26
|
+
const isSelfClosing = raw.trimEnd().endsWith('/>');
|
|
27
|
+
if (isSelfClosing) {
|
|
28
|
+
const old = template.slice(startTag.startOffset, startTag.endOffset);
|
|
29
|
+
const attrs = element.attrs
|
|
30
|
+
.map((attr) => (NOTIFICATION_ATTRIBUTE.includes(attr.name) ? null : attr))
|
|
31
|
+
.filter(Boolean)
|
|
32
|
+
.map((attr) => { var _a; return `${attr === null || attr === void 0 ? void 0 : attr.name}="${(_a = attr === null || attr === void 0 ? void 0 : attr.value) !== null && _a !== void 0 ? _a : ''}"`; })
|
|
33
|
+
.join(' ');
|
|
34
|
+
const extraAttr = element.attrs.some(({ name }) => NOTIFICATION_ATTRIBUTE.includes(name))
|
|
35
|
+
? ''
|
|
36
|
+
: ' tuiNotification';
|
|
37
|
+
const newTag = `<div${extraAttr}${attrs ? ` ${attrs}` : ''}></div>`;
|
|
38
|
+
recorder.remove(templateOffset + startTag.startOffset, old.length);
|
|
39
|
+
recorder.insertRight(templateOffset + startTag.startOffset, newTag);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
(0, replace_tag_1.replaceTag)(recorder, location, 'tui-notification', 'div', templateOffset, attrsToAdd);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=migrate-notification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-notification.js","sourceRoot":"","sources":["../../../../../../../projects/cdk/schematics/ng-update/v5/steps/templates/migrate-notification.ts"],"names":[],"mappings":";;AAiBA,wDA8DC;AA5ED,mEAA2E;AAC3E,qFAGuD;AAEvD,sEAAgE;AAEhE,MAAM,sBAAsB,GAAG;IAC3B,iBAAiB;IACjB,mBAAmB;IACnB,qBAAqB;CACxB,CAAC;AAEF,SAAgB,sBAAsB,CAAC,EACnC,QAAQ,EACR,QAAQ,EACR,UAAU,GAKb;IACG,MAAM,QAAQ,GAAG,IAAA,mDAA+B,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,IAAA,gCAAqB,EAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAE1E,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAC5C,MAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;QAEpC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAC7C,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CACxC;YACG,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAE1B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,aAAa,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YAErE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;iBACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACzE,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAK,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,EAAE,GAAG,CAAA,EAAA,CAAC;iBACrD,IAAI,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAC5C,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CACxC;gBACG,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,kBAAkB,CAAC;YAEzB,MAAM,MAAM,GAAG,OAAO,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;YAEpE,QAAQ,CAAC,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACnE,QAAQ,CAAC,WAAW,CAAC,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAEpE,OAAO;QACX,CAAC;QAED,IAAA,wBAAU,EACN,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAClB,KAAK,EACL,cAAc,EACd,UAAU,CACb,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type DefaultTreeAdapterTypes } from 'parse5';
|
|
2
|
+
type Element = DefaultTreeAdapterTypes.Element;
|
|
3
|
+
type ChildNode = DefaultTreeAdapterTypes.ChildNode;
|
|
2
4
|
export declare function findElementsByFn(nodes: ChildNode[], predicateFn: (el: Element) => boolean): Element[];
|
|
3
5
|
export declare function findElementsInTemplateByFn(html: string, predicateFn: (el: Element) => boolean): Element[];
|
|
4
6
|
export declare function findElementsByTagName(html: string, tagName: string, filterFn?: (element: Element) => boolean): Element[];
|
|
@@ -33,3 +35,4 @@ export declare function findAttributeOnElementWithAttrs(html: string, name: stri
|
|
|
33
35
|
export declare function hasElementAttribute(element: Element, attributeName: string): boolean;
|
|
34
36
|
/** Gets the start offset of the given attribute from a Parse5 element. */
|
|
35
37
|
export declare function getStartOffsetOfAttribute(element: Element, attributeName: string): number;
|
|
38
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elements.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/utils/templates/elements.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"elements.js","sourceRoot":"","sources":["../../../../../projects/cdk/schematics/utils/templates/elements.ts"],"names":[],"mappings":"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"}
|
package/types/index.d.ts
CHANGED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = tuiLetMigrationGenerator;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
6
|
-
const ng_morph_1 = require("ng-morph");
|
|
7
|
-
const constants_1 = require("../constants");
|
|
8
|
-
const get_projects_1 = require("../utils/get-projects");
|
|
9
|
-
const remove_module_1 = require("../utils/remove-module");
|
|
10
|
-
const elements_1 = require("../utils/templates/elements");
|
|
11
|
-
const get_component_templates_1 = require("../utils/templates/get-component-templates");
|
|
12
|
-
const template_resource_1 = require("../utils/templates/template-resource");
|
|
13
|
-
// TODO: move to migration in v5
|
|
14
|
-
function tuiLetMigrationGenerator(options) {
|
|
15
|
-
return (tree) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
var _a;
|
|
17
|
-
const workspace = yield (0, workspace_1.getWorkspace)(tree);
|
|
18
|
-
const [project] = (0, get_projects_1.getProjects)(options, workspace);
|
|
19
|
-
const root = (_a = project === null || project === void 0 ? void 0 : project.root) !== null && _a !== void 0 ? _a : project === null || project === void 0 ? void 0 : project.sourceRoot;
|
|
20
|
-
if (root === undefined) {
|
|
21
|
-
!options['skip-logs'] &&
|
|
22
|
-
(0, ng_morph_1.errorLog)('[ERROR]: Target project not found in current workspace');
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const prj = (0, ng_morph_1.createProject)(tree, root, constants_1.ALL_FILES);
|
|
26
|
-
const fileSystem = prj.getFileSystem().fs;
|
|
27
|
-
(0, ng_morph_1.setActiveProject)(prj);
|
|
28
|
-
(0, remove_module_1.removeModule)('TuiLet', '@taiga-ui/cdk');
|
|
29
|
-
const resources = (0, get_component_templates_1.getComponentTemplates)(constants_1.ALL_FILES);
|
|
30
|
-
for (const resource of resources) {
|
|
31
|
-
const path = fileSystem.resolve((0, template_resource_1.getPathFromTemplateResource)(resource));
|
|
32
|
-
const recorder = fileSystem.edit(path);
|
|
33
|
-
const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
|
|
34
|
-
const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
|
|
35
|
-
const attributeName = '*tuiLet';
|
|
36
|
-
const elements = (0, elements_1.findElementsWithAttribute)(template, attributeName);
|
|
37
|
-
for (const { sourceCodeLocation, attrs, tagName, childNodes } of elements) {
|
|
38
|
-
const { name, value } = attrs.find((attr) => attr.name === attributeName.toLowerCase());
|
|
39
|
-
const indent = sourceCodeLocation.startOffset -
|
|
40
|
-
(template.lastIndexOf('\n', sourceCodeLocation.startOffset) + 1);
|
|
41
|
-
const indentStr = ' '.repeat(indent);
|
|
42
|
-
const [expr, key] = value.split(' as ').map((c) => c.trim());
|
|
43
|
-
if (new RegExp(String.raw `@let\s+${key}\s+=`).test(template)) {
|
|
44
|
-
!options['skip-logs'] &&
|
|
45
|
-
(0, ng_morph_1.errorLog)(`The @let with key ${key} is already defined`);
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
recorder.insertLeft(templateOffset + sourceCodeLocation.startOffset, `@let ${key} = ${expr};\n${indentStr}`);
|
|
49
|
-
if (tagName === 'ng-container' && attrs.length === 1) {
|
|
50
|
-
if (childNodes.length) {
|
|
51
|
-
const firstNode = childNodes[0];
|
|
52
|
-
const lastNode = childNodes[0];
|
|
53
|
-
recorder.remove(templateOffset + sourceCodeLocation.startOffset, firstNode.sourceCodeLocation.startOffset -
|
|
54
|
-
sourceCodeLocation.startOffset);
|
|
55
|
-
recorder.remove(templateOffset + lastNode.sourceCodeLocation.endOffset, sourceCodeLocation.endOffset -
|
|
56
|
-
lastNode.sourceCodeLocation.endOffset);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
recorder.remove(templateOffset + sourceCodeLocation.startOffset, sourceCodeLocation.endOffset -
|
|
60
|
-
sourceCodeLocation.startOffset);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
const { startOffset, endOffset } = sourceCodeLocation.attrs[name];
|
|
65
|
-
recorder.remove(templateOffset + startOffset - 1, endOffset - startOffset + 1);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
fileSystem.commitEdits();
|
|
70
|
-
(0, ng_morph_1.saveActiveProject)();
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/cdk/schematics/migrate-tui-let/index.ts"],"names":[],"mappings":"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"}
|
package/types/loose-union.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @example
|
|
3
|
-
* type Color = 'primary' | 'secondary' | string;
|
|
4
|
-
*
|
|
5
|
-
* Your brand has some known colors, like `primary` and `secondary`.
|
|
6
|
-
* But you also want to make sure that users can specify any color they want.
|
|
7
|
-
*
|
|
8
|
-
* @Input() color: Color = '';
|
|
9
|
-
*
|
|
10
|
-
* <my-icon color="red" />
|
|
11
|
-
*
|
|
12
|
-
* But there's an issue. We aren't getting `color`
|
|
13
|
-
* suggestions when we use the `MyIcon` component.
|
|
14
|
-
* If we try to autocomplete the `color` prop, we get no suggestions.
|
|
15
|
-
* Ideally, we want `primary` and `secondary` to be part of that list.
|
|
16
|
-
* How do we manage that?
|
|
17
|
-
*
|
|
18
|
-
* This works because of a quirk of the TypeScript compiler.
|
|
19
|
-
* When you create a union between a string literal type and `string`,
|
|
20
|
-
* TypeScript will eagerly widen the type to `string`.
|
|
21
|
-
*
|
|
22
|
-
* But if we change type to
|
|
23
|
-
* type Color = 'primary' | 'secondary' | (string & {});
|
|
24
|
-
*
|
|
25
|
-
* TypeScript has already forgotten that `"primary"` and `"secondary"`
|
|
26
|
-
* were ever part of the type. But by intersecting `string` with
|
|
27
|
-
* an empty object, we trick TypeScript into retaining the string
|
|
28
|
-
* literal types for a bit longer.
|
|
29
|
-
*
|
|
30
|
-
* This might feel pretty fragile to you. This doesn't seem like
|
|
31
|
-
* intended behavior from TypeScript. Well, the team actually
|
|
32
|
-
* know about this trick. They test against it. And someday, they may make
|
|
33
|
-
* it so that a plain `string` type will just work.
|
|
34
|
-
* But until then, keep this in mind.
|
|
35
|
-
*/
|
|
36
|
-
export type TuiLooseUnion<U> = U | (U extends string ? Record<never, never> & string : U extends number ? Record<never, never> & number : U extends symbol ? Record<never, never> & symbol : U extends bigint ? Record<never, never> & bigint : never);
|