UNPKG

@amaui/style

Version:
65 lines (64 loc) 2.79 kB
"use strict"; 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 = { mode: 'regular', amaui_style: { get: AmauiStyle_1.default.first.bind(AmauiStyle_1.default), }, amaui_theme: { get: AmauiTheme_1.default.first.bind(AmauiTheme_1.default), } }; function style(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: options.mode, pure: false, priority: 'upper', amauiTheme, amauiStyle, name: options.name, style: { attributes: { method: 'style' } } }); 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]), }; // if add if (options.add) { const addResponse = response.add(); // return return (options.return ? (addResponse[options.return] || addResponse) : addResponse); } // Response return response; } exports.default = style;