UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

89 lines (87 loc) 3.21 kB
/** * DevExtreme (cjs/__internal/ui/button/icon.js) * Version: 25.1.3 * Build date: Wed Jun 25 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultIconProps = exports.Icon = void 0; var _inferno = require("inferno"); var _icon = require("../../../core/utils/icon"); var _index = require("../../core/r1/runtime/inferno/index"); var _index2 = require("../../core/r1/utils/index"); var _combine_classes = require("../../core/utils/combine_classes"); function _extends() { return _extends = Object.assign ? Object.assign.bind() : function(n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]) } } return n }, _extends.apply(null, arguments) } const defaultIconProps = exports.defaultIconProps = { position: "left", source: "" }; class Icon extends _index.BaseInfernoComponent { constructor(props) { super(props); this.state = {} } get sourceType() { return (0, _icon.getImageSourceType)(this.props.source) } get cssClass() { return "left" !== this.props.position ? "dx-icon-right" : "" } get iconClassName() { const generalClasses = { "dx-icon": true, [this.cssClass]: !!this.cssClass }; const { source: source } = this.props; if ("dxIcon" === this.sourceType) { return (0, _combine_classes.combineClasses)(_extends({}, generalClasses, { [`dx-icon-${source}`]: true })) } if ("fontIcon" === this.sourceType) { return (0, _combine_classes.combineClasses)(_extends({}, generalClasses, { [String(source)]: !!source })) } if ("image" === this.sourceType) { return (0, _combine_classes.combineClasses)(generalClasses) } if ("svg" === this.sourceType) { return (0, _combine_classes.combineClasses)(_extends({}, generalClasses, { "dx-svg-icon": true })) } return "" } render() { const { iconClassName: iconClassName, props: props, sourceType: sourceType } = this; const IconTemplate = (0, _index2.getTemplate)(props.iconTemplate); return (0, _inferno.createFragment)(["dxIcon" === sourceType && (0, _inferno.createVNode)(1, "i", iconClassName), "fontIcon" === sourceType && (0, _inferno.createVNode)(1, "i", iconClassName), "image" === sourceType && (0, _inferno.createVNode)(1, "img", iconClassName, null, 1, { alt: "", src: props.source }), IconTemplate && (0, _inferno.createVNode)(1, "i", iconClassName, IconTemplate({}), 0)], 0) } } exports.Icon = Icon; Icon.defaultProps = defaultIconProps;