@amaui/style
Version:
CSS in JS styling solution
58 lines (57 loc) • 2.56 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const merge_1 = __importDefault(require("@amaui/utils/merge"));
const try_1 = __importDefault(require("@amaui/utils/try"));
const AmauiStyle_1 = __importDefault(require("./AmauiStyle"));
const AmauiStyleSheetManager_1 = __importDefault(require("./AmauiStyleSheetManager"));
const AmauiTheme_1 = __importDefault(require("./AmauiTheme"));
const utils_1 = require("./utils");
const optionsDefault = {
amaui_style: {
get: AmauiStyle_1.default.first.bind(AmauiStyle_1.default),
},
amaui_theme: {
get: AmauiTheme_1.default.first.bind(AmauiTheme_1.default),
}
};
function pure(value_, options_ = {}) {
const options = (0, merge_1.default)(options_, optionsDefault, { copy: true });
// Amaui style
let amauiStyle = options.amaui_style.value || ((0, utils_1.is)('function', options.amaui_style.get) && options.amaui_style.get(options.element));
if (amauiStyle === undefined)
amauiStyle = new AmauiStyle_1.default();
// Amaui theme
const amauiTheme = options.amaui_theme.value || ((0, utils_1.is)('function', options.amaui_theme.get) && options.amaui_theme.get(options.element));
// Make value if it's a function
const value = (0, utils_1.is)('function', value_) ? (0, try_1.default)(() => value_(amauiTheme)) : value_;
// Make an instance of amauiStyleSheetManager
const amauiStyleSheetManager = new AmauiStyleSheetManager_1.default(value, {
mode: 'regular',
pure: true,
priority: 'lower',
amauiTheme,
amauiStyle,
name: options.name,
style: {
attributes: {
method: 'pure'
}
}
});
const response = {
ids: amauiStyleSheetManager.ids,
amaui_style_sheet_manager: amauiStyleSheetManager,
sheets: amauiStyleSheetManager.sheets,
add: amauiStyleSheetManager.add.bind(amauiStyleSheetManager),
set props(value__) { amauiStyleSheetManager.props = value__; },
update: amauiStyleSheetManager.update.bind(amauiStyleSheetManager),
remove: amauiStyleSheetManager.remove.bind(amauiStyleSheetManager),
addRule: amauiStyleSheetManager.sheets.static[0] && amauiStyleSheetManager.sheets.static[0].addRule.bind(amauiStyleSheetManager.sheets.static[0]),
};
// Response
return response;
}
exports.default = pure;