@wener/console
Version:
Base console UI toolkit
181 lines (180 loc) • 6.4 kB
JavaScript
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);
};