UNPKG

@wener/console

Version:
181 lines (180 loc) 6.4 kB
function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _object_spread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === "function") { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _define_property(target, key, source[key]); }); } return target; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _object_spread_props(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _object_without_properties(source, excluded) { if (source == null) return {}; var target = {}, sourceKeys, key, i; if (typeof Reflect !== "undefined" && Reflect.ownKeys) { sourceKeys = Reflect.ownKeys(source); for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } return target; } target = _object_without_properties_loose(source, excluded); if (Object.getOwnPropertySymbols) { sourceKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _object_without_properties_loose(source, excluded) { if (source == null) return {}; var target = {}, sourceKeys = Object.getOwnPropertyNames(source), key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } return target; } import { flexRender } from "@wener/reaction"; import { parseBoolean } from "@wener/utils"; import { cn } from "../../utils/cn.js"; import { ActionIcon } from "./ActionIcon.js"; export var Icon = function (_0) { var icon = _0.icon, activeIcon = _0.activeIcon, disabledIcon = _0.disabledIcon, action = _0.action, active = _0.active, _0_solid = _0.solid, solid = _0_solid === void 0 ? false : _0_solid, _0_disabled = _0.disabled, disabled = _0_disabled === void 0 ? false : _0_disabled, className = _0.className, passthrough = _0.passthrough, render = _0.render, props = _object_without_properties(_0, [ "icon", "activeIcon", "disabledIcon", "action", "active", "solid", "disabled", "className", "passthrough", "render" ]); var _parseBoolean; active !== null && active !== void 0 ? active : active = (_parseBoolean = parseBoolean(props["data-active"])) !== null && _parseBoolean !== void 0 ? _parseBoolean : false; var _parseBoolean1; disabled !== null && disabled !== void 0 ? disabled : disabled = (_parseBoolean1 = parseBoolean(props["data-disabled"])) !== null && _parseBoolean1 !== void 0 ? _parseBoolean1 : false; var _parseBoolean2; solid !== null && solid !== void 0 ? solid : solid = (_parseBoolean2 = parseBoolean(props["data-solid"])) !== null && _parseBoolean2 !== void 0 ? _parseBoolean2 : false; // Resolve icon from action if not provided if (!icon && action) { icon = ActionIcon[action]; } var iconToRender = icon; if (disabled && disabledIcon) { iconToRender = disabledIcon; } else if (active && activeIcon) { iconToRender = activeIcon; } // Create state object var state = { active: active, solid: solid, disabled: disabled }; var finalClassName; if (typeof className === "function") { finalClassName = className(state); } else { if ((passthrough === null || passthrough === void 0 ? void 0 : passthrough.className) === false) { finalClassName = className || ""; } else { finalClassName = cn(className, active && "active", disabled && "disabled", solid && "solid"); } } var passProps = {}; if (passthrough) { var stateProps = { active: active, solid: solid, disabled: disabled }; for (var _i = 0, _iter = [ "active", "solid", "disabled" ]; _i < _iter.length; _i++) { var key = _iter[_i]; if (passthrough[key]) { passProps[key] = stateProps[key]; } } } if (render) { return render(_object_spread_props(_object_spread({}, props, passProps), { className: finalClassName }), state); } if (!iconToRender) { return null; } return flexRender(iconToRender, _object_spread_props(_object_spread({}, props, passProps), { className: finalClassName }), true); };