@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
36 lines • 2.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.migrateNumberPrecision = void 0;
const add_import_to_closest_module_1 = require("../../../../utils/add-import-to-closest-module");
const elements_1 = require("../../../../utils/templates/elements");
const inputs_1 = require("../../../../utils/templates/inputs");
const template_resource_1 = require("../../../../utils/templates/template-resource");
const normalize_attr_value_1 = require("../utils/normalize-attr-value");
const remove_attrs_1 = require("../utils/remove-attrs");
function migrateNumberPrecision({ 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-input-number');
elements.forEach(({ attrs, sourceCodeLocation }) => {
var _a, _b;
if (!sourceCodeLocation) {
return;
}
const decimalAttr = (0, inputs_1.findAttr)(attrs, 'decimal');
const precisionAttr = (0, inputs_1.findAttr)(attrs, 'precision');
if (decimalAttr || precisionAttr) {
(0, add_import_to_closest_module_1.addImportToClosestModule)(resource.componentPath, 'TuiNumberFormat', '@taiga-ui/core');
const decimalValue = (decimalAttr === null || decimalAttr === void 0 ? void 0 : decimalAttr.value) === 'never' ? '' : decimalAttr === null || decimalAttr === void 0 ? void 0 : decimalAttr.value;
const precisionValue = (decimalAttr === null || decimalAttr === void 0 ? void 0 : decimalAttr.value) === 'never' ? 0 : ((_a = precisionAttr === null || precisionAttr === void 0 ? void 0 : precisionAttr.value) !== null && _a !== void 0 ? _a : '');
const format = `{${decimalAttr && decimalValue ? `decimalMode: ${(0, normalize_attr_value_1.normalizeAttrValue)(decimalAttr.name, decimalValue)}` : ''}${decimalValue && precisionValue ? ', ' : ''}${precisionValue || (decimalAttr === null || decimalAttr === void 0 ? void 0 : decimalAttr.value) === 'never' ? `precision: ${precisionValue}` : ''}}`;
const formatPart = `[tuiNumberFormat]="${format}"`;
const insertTo = (((_b = sourceCodeLocation === null || sourceCodeLocation === void 0 ? void 0 : sourceCodeLocation.startTag) === null || _b === void 0 ? void 0 : _b.startOffset) || 0) +
'<tui-input-number '.length;
recorder.insertRight(templateOffset + insertTo, formatPart);
}
const attrsToRemove = [decimalAttr, precisionAttr].filter((attr) => attr !== undefined);
(0, remove_attrs_1.removeAttrs)(attrsToRemove, sourceCodeLocation, recorder, templateOffset);
});
}
exports.migrateNumberPrecision = migrateNumberPrecision;
//# sourceMappingURL=migrate-number-precision.js.map