UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

77 lines (76 loc) 2.85 kB
/** * DevExtreme (cjs/__internal/ui/button/icon.js) * Version: 25.2.3 * Build date: Fri Dec 12 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"); 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)(Object.assign({}, generalClasses, { [`dx-icon-${source}`]: true })) } if ("fontIcon" === this.sourceType) { return (0, _combine_classes.combineClasses)(Object.assign({}, generalClasses, { [String(source)]: !!source })) } if ("image" === this.sourceType) { return (0, _combine_classes.combineClasses)(generalClasses) } if ("svg" === this.sourceType) { return (0, _combine_classes.combineClasses)(Object.assign({}, 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;