UNPKG

@taiga-ui/cdk

Version:

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

49 lines 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.migrateTooltip = migrateTooltip; const elements_1 = require("../../../../utils/templates/elements"); const template_resource_1 = require("../../../../utils/templates/template-resource"); const replace_tag_1 = require("../../../utils/templates/replace-tag"); /** * The legacy `<tui-tooltip>` component is removed in v5; its behavior now lives on the * `tui-icon[tuiTooltip]` directive. Each legacy input maps onto the directive/hint input * that `<tui-tooltip>` used to forward internally. */ const ATTR_RENAMES = new Map([ ['appearance', 'tuiHintAppearance'], ['content', 'tuiTooltip'], ['context', 'tuiHintContext'], ['describeId', 'tuiTooltipDescribe'], ['direction', 'tuiHintDirection'], ['hideDelay', 'tuiHintHideDelay'], ['showDelay', 'tuiHintShowDelay'], ]); const RENAME_BY_LOWER = new Map([...ATTR_RENAMES].flatMap(([from, to]) => [ [from.toLowerCase(), to], [`[${from.toLowerCase()}]`, `[${to}]`], ])); function migrateTooltip({ resource, recorder, fileSystem, }) { const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem); const templateOffset = (0, template_resource_1.getTemplateOffset)(resource); const elements = (0, elements_1.findElementsByTagName)(template, 'tui-tooltip'); elements.forEach((element) => { var _a, _b; for (const attr of element.attrs) { const newName = RENAME_BY_LOWER.get(attr.name.toLowerCase()); if (!newName) { continue; } const loc = (_b = (_a = element.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[attr.name]; if (!loc) { continue; } const original = template.slice(loc.startOffset, loc.endOffset); const separatorIndex = original.indexOf('='); const rest = separatorIndex === -1 ? '' : original.slice(separatorIndex); recorder.remove(templateOffset + loc.startOffset, original.length); recorder.insertRight(templateOffset + loc.startOffset, `${newName}${rest}`); } (0, replace_tag_1.replaceTag)(recorder, element.sourceCodeLocation, 'tui-tooltip', 'tui-icon', template, templateOffset); }); } //# sourceMappingURL=migrate-tooltip.js.map