igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
59 lines (58 loc) • 2.86 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@angular-devkit/core");
const UpdateChanges_1 = require("../common/UpdateChanges");
const dependency_handler_1 = require("../../schematics/utils/dependency-handler");
const util_1 = require("../../schematics/utils/util");
const version = '15.0.4';
exports.default = () => (host, context) => __awaiter(void 0, void 0, void 0, function* () {
context.logger.info(`Applying migration for Ignite UI for Angular to version ${version}`);
const update = new UpdateChanges_1.UpdateChanges(__dirname, host, context);
update.applyChanges();
const workspaceHost = (0, util_1.createHost)(host);
const { workspace } = yield core_1.workspaces.readWorkspace(host.root.path, workspaceHost);
yield (0, dependency_handler_1.includeStylePreprocessorOptions)(workspaceHost, workspace, context, host);
yield core_1.workspaces.writeWorkspace(workspace, workspaceHost);
// replace CSS custom properties prefix from --igx to --ig and grays to gray
const CUSTOM_CSS_PROPERTIES = [
'--igx-primary-',
'--igx-secondary-',
'--igx-grays-',
'--igx-surface-',
'--igx-info-',
'--igx-success-',
'--igx-warn-',
'--igx-error-',
'--igx-radius-factor',
'--igx-elevation',
'--igx-font-family',
'--igx-h(\\d)-',
'--igx-subtitle-(\\d)-',
'--igx-body-(\\d)-',
'--igx-button-',
'--igx-caption-',
'--igx-overline-'
];
for (const entryPath of update.sassFiles) {
let content = host.read(entryPath).toString();
CUSTOM_CSS_PROPERTIES.forEach(cssProperty => {
const regex = new RegExp(cssProperty, 'g');
if (regex.test(content)) {
let newCssProperty = cssProperty.replace(/igx/g, 'ig');
newCssProperty = newCssProperty.replace(/grays/g, 'gray');
newCssProperty = newCssProperty.replace('(\\d)', '$1');
content = content.replace(regex, newCssProperty);
host.overwrite(entryPath, content);
}
});
}
});
;