UNPKG

@taiga-ui/cdk

Version:

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

60 lines 3.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.migrateFieldError = migrateFieldError; const insert_todo_1 = require("../../../../utils/insert-todo"); const elements_1 = require("../../../../utils/templates/elements"); const template_resource_1 = require("../../../../utils/templates/template-resource"); function migrateFieldError(data) { migrateFieldErrorContentPipe(data); migrateFieldErrorPipe(data); } function migrateFieldErrorContentPipe({ 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.findElementsInTemplateByFn)(template, (el) => { var _a; return (_a = el.attrs) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.value.includes('tuiFieldErrorContent')); }); elements.forEach(({ attrs, sourceCodeLocation }) => { var _a; const attr = attrs.find((attr) => attr.value.includes('tuiFieldErrorContent')); if (!attr || !sourceCodeLocation) { return; } const { startOffset, endOffset } = ((_a = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.attrs) === null || _a === void 0 ? void 0 : _a[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, `="${attr.value.replace(/\|\s*tuiFieldErrorContent/, '| tuiError')}"`); }); } function migrateFieldErrorPipe({ 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.findElementsInTemplateByFn)(template, (el) => { var _a; return (_a = el.attrs) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.value.includes('tuiFieldError') && !attr.value.includes('tuiFieldErrorContent')); }); elements.forEach(({ tagName, attrs, sourceCodeLocation }) => { var _a; const attr = attrs.find((attr) => attr.value.includes('tuiFieldError') && !attr.value.includes('tuiFieldErrorContent')); if (!attr || !sourceCodeLocation) { return; } if (tagName !== 'tui-error') { recorder.insertLeft(templateOffset + sourceCodeLocation.startOffset, `<!-- ${insert_todo_1.TODO_MARK} could not migrate \`tuiFieldError\` automatically. The directive must be used on a <tui-error> element. Likely, you want to use \`tuiError\` pipe. -->`); return; } const order = attr.value.split(/\s*\|\s*tuiFieldError/)[0] || ''; const { startOffset, endOffset } = ((_a = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.attrs) === null || _a === void 0 ? void 0 : _a[attr.name]) || { startOffset: 0, endOffset: 0, }; recorder.remove(templateOffset + startOffset, endOffset - startOffset); if (order === '[]') { return; } recorder.insertRight(templateOffset + startOffset, `[order]="${order}"`); }); } //# sourceMappingURL=migrate-field-error.js.map