UNPKG

@taiga-ui/cdk

Version:

Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance

96 lines 5.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.migrateAvatar = void 0; const add_import_to_closest_module_1 = require("../../../../utils/add-import-to-closest-module"); const elements_1 = require("../../../../utils/templates/elements"); const inputs_1 = require("../../../../utils/templates/inputs"); const template_resource_1 = require("../../../../utils/templates/template-resource"); const normalize_attr_value_1 = require("../utils/normalize-attr-value"); const remove_attrs_1 = require("../utils/remove-attrs"); const common_1 = require("./toggles/common"); const sizeMap = { xxs: 'xs', xs: 's', s: 'm', m: 'l', l: 'xl', xl: 'xxl', xxl: 'xxl', }; function addModules(componentPath, modules) { modules.forEach(({ moduleName, moduleSpecifier }) => { (0, add_import_to_closest_module_1.addImportToClosestModule)(componentPath, moduleName, moduleSpecifier); }); } function getFallbackValue(textValue, fallbackValue) { return textValue ? `(${textValue} | tuiInitials)` : fallbackValue || ''; } function migrateAvatar({ resource, recorder, fileSystem, }) { const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem); const templateOffset = (0, template_resource_1.getTemplateOffset)(resource); const avatarElements = (0, elements_1.findElementsByTagName)(template, 'tui-avatar'); const markerIconElements = (0, elements_1.findElementsByTagName)(template, 'tui-marker-icon'); [ ...avatarElements.filter(({ attrs }) => (0, inputs_1.findAttr)(attrs, 'avatarurl') || (0, inputs_1.findAttr)(attrs, 'text')), ...markerIconElements, ].forEach(({ attrs, sourceCodeLocation }) => { if (!sourceCodeLocation) { return; } (0, common_1.replaceSizeAttr)(attrs, sourceCodeLocation, recorder, templateOffset, sizeMap); }); avatarElements.forEach(({ attrs, sourceCodeLocation }) => { var _a, _b; const avatarUrlAttr = (0, inputs_1.findAttr)(attrs, 'avatarurl'); const fallbackAttr = (0, inputs_1.findAttr)(attrs, 'fallback'); const textAttr = (0, inputs_1.findAttr)(attrs, 'text'); const roundedAttr = (0, inputs_1.findAttr)(attrs, 'rounded'); const autoColorAttr = (0, inputs_1.findAttr)(attrs, 'autoColor'); if ((!avatarUrlAttr && !textAttr) || !sourceCodeLocation) { return; } const urlAttrValue = (avatarUrlAttr === null || avatarUrlAttr === void 0 ? void 0 : avatarUrlAttr.value) && (0, normalize_attr_value_1.normalizeAttrValue)(avatarUrlAttr.name, avatarUrlAttr.value); const textAttrValue = (textAttr === null || textAttr === void 0 ? void 0 : textAttr.value) && (0, normalize_attr_value_1.normalizeAttrValue)(textAttr.name, textAttr.value); const fallbackAttrValue = (fallbackAttr === null || fallbackAttr === void 0 ? void 0 : fallbackAttr.value) && (0, normalize_attr_value_1.normalizeAttrValue)(fallbackAttr.name, fallbackAttr.value); const autoColorValue = (autoColorAttr === null || autoColorAttr === void 0 ? void 0 : autoColorAttr.value) && (0, normalize_attr_value_1.normalizeAttrValue)(autoColorAttr.name, autoColorAttr.value); const insertTo = ((_b = (_a = sourceCodeLocation.startTag) === null || _a === void 0 ? void 0 : _a.startOffset) !== null && _b !== void 0 ? _b : 0) + '<tui-avatar'.length; if (!insertTo) { return; } const mainSrc = urlAttrValue || (textAttrValue ? `${textAttrValue} | tuiInitials` : ''); const fallbackValue = urlAttrValue ? getFallbackValue(textAttrValue, fallbackAttrValue) : ''; const fallbackSrc = urlAttrValue && fallbackValue ? `| tuiFallbackSrc : ${fallbackValue} | async` : ''; recorder.insertRight(insertTo + templateOffset, ` [src]="${mainSrc}${fallbackSrc ? ` ${fallbackSrc}` : ''}"${!roundedAttr ? ' [round]="false"' : ''}${autoColorValue === 'true' ? ` [style.background]="${textAttrValue} | tuiAutoColor"` : ''}`); const attrsToRemove = [ avatarUrlAttr, textAttr, fallbackAttr, autoColorAttr, ].filter((attr) => attr !== undefined); const fallbackModule = !!((avatarUrlAttr && textAttrValue) || fallbackAttr); const initialsModule = !!textAttrValue; const autoColorModule = !!autoColorValue && autoColorValue === 'true'; const modules = [ ...(fallbackModule ? [{ moduleName: 'TuiFallbackSrcPipe', moduleSpecifier: '@taiga-ui/core' }] : []), ...(initialsModule ? [{ moduleName: 'TuiInitialsPipe', moduleSpecifier: '@taiga-ui/core' }] : []), ...(autoColorModule ? [{ moduleName: 'TuiAutoColorPipe', moduleSpecifier: '@taiga-ui/core' }] : []), ]; addModules(resource.componentPath, modules); (0, remove_attrs_1.removeAttrs)(attrsToRemove, sourceCodeLocation, recorder, templateOffset); }); } exports.migrateAvatar = migrateAvatar; //# sourceMappingURL=migrate-avatar.js.map