UNPKG

@taiga-ui/cdk

Version:

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

62 lines (61 loc) 2.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.migrateCheckbox = void 0; const elements_1 = require("../../../../../utils/templates/elements"); const inputs_1 = require("../../../../../utils/templates/inputs"); const template_resource_1 = require("../../../../../utils/templates/template-resource"); const common_1 = require("./common"); function migrateCheckbox({ 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-checkbox'); elements.forEach(({ attrs, sourceCodeLocation }) => { if (!sourceCodeLocation) { return; } (0, common_1.replaceSizeAttr)(attrs, sourceCodeLocation, recorder, templateOffset); (0, common_1.replaceOpenTag)(sourceCodeLocation, recorder, templateOffset, { tag: 'tui-checkbox', directive: 'tuiCheckbox', type: 'checkbox', }); (0, common_1.closeStartTag)(sourceCodeLocation, recorder, templateOffset); (0, common_1.removeClosingTag)(sourceCodeLocation, recorder, templateOffset); }); (0, elements_1.findElementsByTagName)(template, 'tui-primitive-checkbox').forEach(({ attrs, sourceCodeLocation }) => { if (!sourceCodeLocation) { return; } (0, common_1.replaceSizeAttr)(attrs, sourceCodeLocation, recorder, templateOffset); replaceValueAttr(attrs, sourceCodeLocation, recorder, templateOffset); (0, common_1.replaceOpenTag)(sourceCodeLocation, recorder, templateOffset, { tag: 'tui-primitive-checkbox', directive: 'tuiCheckbox', type: 'checkbox', }); (0, common_1.closeStartTag)(sourceCodeLocation, recorder, templateOffset); (0, common_1.removeClosingTag)(sourceCodeLocation, recorder, templateOffset); }); } exports.migrateCheckbox = migrateCheckbox; function replaceValueAttr(attrs, sourceCodeLocation, recorder, templateOffset) { var _a; const valueAttr = (0, inputs_1.findAttr)(attrs, 'value'); if (valueAttr) { const { startOffset, endOffset } = ((_a = sourceCodeLocation.attrs) === null || _a === void 0 ? void 0 : _a[valueAttr.name]) || { startOffset: 0, endOffset: 0, }; recorder.remove(templateOffset + startOffset, endOffset - startOffset); switch (valueAttr.value) { case 'false': case 'null': return; case 'true': recorder.insertRight(templateOffset + startOffset, 'checked '); return; default: recorder.insertRight(templateOffset + startOffset, `[checked]="${valueAttr.value}" `); } } }