mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-08-27 01:22:49 +00:00
77 lines
2.4 KiB
JavaScript
77 lines
2.4 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.behaviours = void 0;
|
|
exports.getDefaultPlugins = getDefaultPlugins;
|
|
exports.getDefaultScopeBehaviour = getDefaultScopeBehaviour;
|
|
exports.getScopedNameGenerator = getScopedNameGenerator;
|
|
|
|
var _postcssModulesExtractImports = _interopRequireDefault(require("postcss-modules-extract-imports"));
|
|
|
|
var _genericNames = _interopRequireDefault(require("generic-names"));
|
|
|
|
var _postcssModulesLocalByDefault = _interopRequireDefault(require("postcss-modules-local-by-default"));
|
|
|
|
var _postcssModulesScope = _interopRequireDefault(require("postcss-modules-scope"));
|
|
|
|
var _stringHash = _interopRequireDefault(require("string-hash"));
|
|
|
|
var _postcssModulesValues = _interopRequireDefault(require("postcss-modules-values"));
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
const behaviours = {
|
|
LOCAL: "local",
|
|
GLOBAL: "global"
|
|
};
|
|
exports.behaviours = behaviours;
|
|
|
|
function getDefaultPlugins({
|
|
behaviour,
|
|
generateScopedName,
|
|
exportGlobals
|
|
}) {
|
|
const scope = (0, _postcssModulesScope.default)({
|
|
generateScopedName,
|
|
exportGlobals
|
|
});
|
|
const plugins = {
|
|
[behaviours.LOCAL]: [_postcssModulesValues.default, (0, _postcssModulesLocalByDefault.default)({
|
|
mode: "local"
|
|
}), _postcssModulesExtractImports.default, scope],
|
|
[behaviours.GLOBAL]: [_postcssModulesValues.default, (0, _postcssModulesLocalByDefault.default)({
|
|
mode: "global"
|
|
}), _postcssModulesExtractImports.default, scope]
|
|
};
|
|
return plugins[behaviour];
|
|
}
|
|
|
|
function isValidBehaviour(behaviour) {
|
|
return Object.keys(behaviours).map(key => behaviours[key]).indexOf(behaviour) > -1;
|
|
}
|
|
|
|
function getDefaultScopeBehaviour(scopeBehaviour) {
|
|
return scopeBehaviour && isValidBehaviour(scopeBehaviour) ? scopeBehaviour : behaviours.LOCAL;
|
|
}
|
|
|
|
function generateScopedNameDefault(name, filename, css) {
|
|
const i = css.indexOf(`.${name}`);
|
|
const lineNumber = css.substr(0, i).split(/[\r\n]/).length;
|
|
const hash = (0, _stringHash.default)(css).toString(36).substr(0, 5);
|
|
return `_${name}_${hash}_${lineNumber}`;
|
|
}
|
|
|
|
function getScopedNameGenerator(generateScopedName, hashPrefix) {
|
|
const scopedNameGenerator = generateScopedName || generateScopedNameDefault;
|
|
|
|
if (typeof scopedNameGenerator === "function") {
|
|
return scopedNameGenerator;
|
|
}
|
|
|
|
return (0, _genericNames.default)(scopedNameGenerator, {
|
|
context: process.cwd(),
|
|
hashPrefix: hashPrefix
|
|
});
|
|
} |