@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
34 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.migrateCloseable = migrateCloseable;
const elements_1 = require("../../../../utils/templates/elements");
const template_resource_1 = require("../../../../utils/templates/template-resource");
const ATTRIBUTE_NAMES = [
'[tuiDialogOptions]',
'[tuiAlertOptions]',
'[tuiNotificationOptions]',
].map((attr) => attr.toLowerCase());
function migrateCloseable({ resource, recorder, fileSystem }) {
const template = (0, template_resource_1.getTemplateFromTemplateResource)(resource, fileSystem);
const templateOffset = (0, template_resource_1.getTemplateOffset)(resource);
const re = /(^|[,{]\s*)('?)closeable\2(\s*:)/g;
(0, elements_1.findElementsWithAttributeOnTag)(template, ATTRIBUTE_NAMES).forEach((element) => {
element.attrs.forEach((attr) => {
var _a, _b;
if (!ATTRIBUTE_NAMES.includes(attr.name)) {
return;
}
const newValue = attr.value.replaceAll(re, '$1$2closable$2$3');
if (newValue === attr.value) {
return;
}
const { startOffset, endOffset } = ((_b = (_a = element.sourceCodeLocation) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[attr.name]) || {
startOffset: 0,
endOffset: 0,
};
recorder.remove(templateOffset + startOffset + attr.name.length, endOffset - (startOffset + attr.name.length));
recorder.insertRight(templateOffset + startOffset + attr.name.length, `="${newValue}"`);
});
});
}
//# sourceMappingURL=migrate-closeable.js.map