preact-solids
Version:
CSS-only Material Design primitives for Preact
184 lines (146 loc) • 9.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Divider = exports.ItemGraphic = exports.LinkItem = exports.Item = exports.Group = exports.default = exports.List = void 0;
var _ulog = _interopRequireDefault(require("ulog"));
var _preact = require("preact");
var _classes = _interopRequireDefault(require("solids/list/classes"));
var _styleClasses = require("../style-classes");
var _theme = require("../theme");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectSpread(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) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(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 _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var log = (0, _ulog.default)('preact-solids:list');
var List = function List() {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
log('List', 'render', props);
var _props$nonInteractive = props.nonInteractive,
nonInteractive = _props$nonInteractive === void 0 ? false : _props$nonInteractive,
_props$Component = props.Component,
Component = _props$Component === void 0 ? nonInteractive ? 'nav' : 'ul' : _props$Component,
_props$dense = props.dense,
dense = _props$dense === void 0 ? false : _props$dense,
_props$twoLines = props.twoLines,
twoLines = _props$twoLines === void 0 ? false : _props$twoLines,
_props$avatars = props.avatars,
avatars = _props$avatars === void 0 ? false : _props$avatars,
children = props.children,
attributes = _objectWithoutProperties(props, ["nonInteractive", "Component", "dense", "twoLines", "avatars", "children"]);
return (0, _preact.h)(_theme.Consumer, null, function (_ref) {
var _classNames;
var _ref$classes = _ref.classes,
classes = _ref$classes === void 0 ? {} : _ref$classes,
_ref$scope = _ref.scope,
scope = _ref$scope === void 0 ? 'local' : _ref$scope;
classes = _objectSpread({}, _classes.default, classes);
var classNames = (0, _styleClasses.createHelper)(classes, scope);
attributes.className = classNames(classes.list, (_classNames = {}, _defineProperty(_classNames, attributes.className || attributes.class, attributes.className || attributes.class), _defineProperty(_classNames, classes.dense, dense), _defineProperty(_classNames, classes.two_line, twoLines), _defineProperty(_classNames, classes.avatars, avatars), _defineProperty(_classNames, classes.non_interactive, nonInteractive), _classNames));
return (0, _preact.h)(Component, attributes, children);
});
};
exports.List = List;
var _default = List;
exports.default = _default;
var Group = List.Group = function () {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
log('Group', 'render', props);
var _props$Component2 = props.Component,
Component = _props$Component2 === void 0 ? 'div' : _props$Component2,
children = props.children,
attributes = _objectWithoutProperties(props, ["Component", "children"]);
return (0, _preact.h)(_theme.Consumer, null, function (_ref2) {
var _ref2$classes = _ref2.classes,
classes = _ref2$classes === void 0 ? {} : _ref2$classes,
_ref2$scope = _ref2.scope,
scope = _ref2$scope === void 0 ? 'local' : _ref2$scope;
classes = _objectSpread({}, _classes.default, classes);
var classNames = (0, _styleClasses.createHelper)(classes, scope);
attributes.className = classNames(classes.group, _defineProperty({}, attributes.className || attributes.class, attributes.className || attributes.class));
return (0, _preact.h)(Component, attributes, children);
});
};
exports.Group = Group;
var Item = List.Item = function (_ref3) {
var _ref3$Component = _ref3.Component,
Component = _ref3$Component === void 0 ? 'li' : _ref3$Component,
_ref3$selected = _ref3.selected,
selected = _ref3$selected === void 0 ? false : _ref3$selected,
_ref3$activated = _ref3.activated,
activated = _ref3$activated === void 0 ? false : _ref3$activated,
_ref3$icon = _ref3.icon,
icon = _ref3$icon === void 0 ? '' : _ref3$icon,
children = _ref3.children,
attributes = _objectWithoutProperties(_ref3, ["Component", "selected", "activated", "icon", "children"]);
return (0, _preact.h)(_theme.Consumer, null, function (_ref4) {
var _classNames3;
var _ref4$classes = _ref4.classes,
classes = _ref4$classes === void 0 ? {} : _ref4$classes,
_ref4$scope = _ref4.scope,
scope = _ref4$scope === void 0 ? 'local' : _ref4$scope;
classes = _objectSpread({}, _classes.default, classes);
var classNames = (0, _styleClasses.createHelper)(classes, scope);
attributes.className = classNames(classes.item, (_classNames3 = {}, _defineProperty(_classNames3, attributes.className || attributes.class, attributes.className || attributes.class), _defineProperty(_classNames3, classes.selected, selected), _defineProperty(_classNames3, classes.activated, activated), _classNames3));
return (0, _preact.h)(Component, _extends({
role: "option"
}, attributes), icon ? (0, _preact.h)("i", {
class: classNames(classes.graphic, 'material-icons')
}, icon) : '', children);
});
};
exports.Item = Item;
var LinkItem = List.LinkItem = function (props) {
return Item(_objectSpread({
Component: props.Component || 'a'
}, props));
};
exports.LinkItem = LinkItem;
var ItemGraphic = List.ItemGraphic = function () {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
log('ItemGraphic', 'render', props);
var _props$Component3 = props.Component,
Component = _props$Component3 === void 0 ? 'span' : _props$Component3,
children = props.children,
attributes = _objectWithoutProperties(props, ["Component", "children"]);
return (0, _preact.h)(_theme.Consumer, null, function (_ref5) {
var _ref5$classes = _ref5.classes,
classes = _ref5$classes === void 0 ? {} : _ref5$classes,
_ref5$scope = _ref5.scope,
scope = _ref5$scope === void 0 ? 'local' : _ref5$scope;
classes = _objectSpread({}, _classes.default, classes);
var classNames = (0, _styleClasses.createHelper)(classes, scope);
attributes.className = classNames(classes.graphic, _defineProperty({}, attributes.className || attributes.class, attributes.className || attributes.class)); // children = children
return (0, _preact.h)(Component, attributes, children && children.length === 1 && typeof children[0] === 'string' ? (0, _preact.h)("i", {
class: "material-icons"
}, children) : children);
});
};
exports.ItemGraphic = ItemGraphic;
var Divider = List.Divider = function () {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
log('Divider', 'render', props);
var _props$Component4 = props.Component,
Component = _props$Component4 === void 0 ? 'hr' : _props$Component4,
_props$inset = props.inset,
inset = _props$inset === void 0 ? false : _props$inset,
_props$padded = props.padded,
padded = _props$padded === void 0 ? false : _props$padded,
children = props.children,
attributes = _objectWithoutProperties(props, ["Component", "inset", "padded", "children"]);
return (0, _preact.h)(_theme.Consumer, null, function (_ref6) {
var _classNames5;
var _ref6$classes = _ref6.classes,
classes = _ref6$classes === void 0 ? {} : _ref6$classes,
_ref6$scope = _ref6.scope,
scope = _ref6$scope === void 0 ? 'local' : _ref6$scope;
classes = _objectSpread({}, _classes.default, classes);
var classNames = (0, _styleClasses.createHelper)(classes, scope);
attributes.className = classNames(classes.divider, (_classNames5 = {}, _defineProperty(_classNames5, attributes.className || attributes.class, attributes.className || attributes.class), _defineProperty(_classNames5, classes.inset, inset), _defineProperty(_classNames5, classes.padded, padded), _classNames5));
return (0, _preact.h)(Component, attributes, children);
});
};
exports.Divider = Divider;
log('Initialized');