@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
63 lines (62 loc) • 3.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.migrateIcons = void 0;
const schematics_1 = require("@angular-devkit/schematics");
const ng_morph_1 = require("ng-morph");
const file_globs_1 = require("../../../constants/file-globs");
const get_component_templates_1 = require("../../../utils/templates/get-component-templates");
const inputs_1 = require("../../../utils/templates/inputs");
const template_resource_1 = require("../../../utils/templates/template-resource");
const get_file_system_1 = require("../../utils/get-file-system");
const replace_tags_1 = require("../../utils/templates/replace-tags");
const migrate_templates_1 = require("../steps/migrate-templates");
const rename_icons_1 = require("./rename-icons");
const rename_proprietary_icons_1 = require("./rename-proprietary-icons");
function migrateIcons(options) {
return (0, schematics_1.chain)([
(tree) => {
const fileSystem = (0, get_file_system_1.getFileSystem)(tree);
const resources = (0, get_component_templates_1.getComponentTemplates)(file_globs_1.ALL_FILES);
for (const resource of resources) {
const path = fileSystem.resolve((0, template_resource_1.getPathFromTemplateResource)(resource));
const recorder = fileSystem.edit(path);
const action = (0, migrate_templates_1.getAction)({
action: replace_tags_1.replaceTags,
requiredData: [
{
from: 'tui-svg',
to: 'tui-svg',
addAttributes: ['[style.border-width.rem]="0.25"'],
filterFn: (element) => {
var _a, _b;
return !!/tuiIcon.+Large/.exec((_b = (_a = (0, inputs_1.findAttr)(element.attrs, 'src')) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : '');
},
},
],
});
action({ resource, fileSystem, recorder });
}
fileSystem.commitEdits();
},
(tree, context) => {
const fileSystem = (0, get_file_system_1.getFileSystem)(tree);
!options['skip-logs'] &&
(0, ng_morph_1.infoLog)(`${ng_morph_1.SMALL_TAB_SYMBOL}${ng_morph_1.REPLACE_SYMBOL} replacing icons...`);
if (hasProprietaryIcons(tree)) {
(0, rename_proprietary_icons_1.renameProprietaryIcons)(context);
}
else {
(0, rename_icons_1.renameIcons)();
}
fileSystem.commitEdits();
(0, ng_morph_1.saveActiveProject)();
!options['skip-logs'] &&
(0, ng_morph_1.titleLog)(`${ng_morph_1.FINISH_SYMBOL} Icons successfully migrated \n`);
},
]);
}
exports.migrateIcons = migrateIcons;
function hasProprietaryIcons(tree) {
return (!!(0, ng_morph_1.getPackageJsonDependency)(tree, '@taiga-ui/proprietary-icons') ||
!!(0, ng_morph_1.getPackageJsonDependency)(tree, '@taiga-ui/proprietary'));
}