UNPKG

primevue

Version:

PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc

175 lines (169 loc) 5.01 kB
import Badge from 'primevue/badge'; import SpinnerIcon from 'primevue/icons/spinner'; import Ripple from 'primevue/ripple'; import BaseComponent from 'primevue/basecomponent'; import ButtonStyle from 'primevue/button/style'; import { resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, mergeProps, renderSlot, normalizeClass, createBlock, createCommentVNode, createElementVNode, toDisplayString } from 'vue'; var script$1 = { name: 'BaseButton', "extends": BaseComponent, props: { label: { type: String, "default": null }, icon: { type: String, "default": null }, iconPos: { type: String, "default": 'left' }, iconClass: { type: String, "default": null }, badge: { type: String, "default": null }, badgeClass: { type: String, "default": null }, badgeSeverity: { type: String, "default": null }, loading: { type: Boolean, "default": false }, loadingIcon: { type: String, "default": undefined }, link: { type: Boolean, "default": false }, severity: { type: String, "default": null }, raised: { type: Boolean, "default": false }, rounded: { type: Boolean, "default": false }, text: { type: Boolean, "default": false }, outlined: { type: Boolean, "default": false }, size: { type: String, "default": null }, plain: { type: Boolean, "default": false } }, style: ButtonStyle, provide: function provide() { return { $parentInstance: this }; } }; var script = { name: 'Button', "extends": script$1, methods: { getPTOptions: function getPTOptions(key) { var _this$$parent, _this$$parent2; return this.ptm(key, { parent: { props: (_this$$parent = this.$parent) === null || _this$$parent === void 0 ? void 0 : _this$$parent.$props, state: (_this$$parent2 = this.$parent) === null || _this$$parent2 === void 0 ? void 0 : _this$$parent2.$data }, context: { disabled: this.disabled } }); } }, computed: { disabled: function disabled() { return this.$attrs.disabled || this.$attrs.disabled === '' || this.loading; }, defaultAriaLabel: function defaultAriaLabel() { return this.label ? this.label + (this.badge ? ' ' + this.badge : '') : this.$attrs['aria-label']; }, hasIcon: function hasIcon() { return this.icon || this.$slots.icon; } }, components: { SpinnerIcon: SpinnerIcon, Badge: Badge }, directives: { ripple: Ripple } }; var _hoisted_1 = ["aria-label", "disabled", "data-pc-severity"]; function render(_ctx, _cache, $props, $setup, $data, $options) { var _component_SpinnerIcon = resolveComponent("SpinnerIcon"); var _component_Badge = resolveComponent("Badge"); var _directive_ripple = resolveDirective("ripple"); return withDirectives((openBlock(), createElementBlock("button", mergeProps({ "class": _ctx.cx('root'), type: "button", "aria-label": $options.defaultAriaLabel, disabled: $options.disabled }, $options.getPTOptions('root'), { "data-pc-name": "button", "data-pc-severity": _ctx.severity }), [renderSlot(_ctx.$slots, "default", {}, function () { return [_ctx.loading ? renderSlot(_ctx.$slots, "loadingicon", { key: 0, "class": normalizeClass([_ctx.cx('loadingIcon'), _ctx.cx('icon')]) }, function () { return [_ctx.loadingIcon ? (openBlock(), createElementBlock("span", mergeProps({ key: 0, "class": [_ctx.cx('loadingIcon'), _ctx.cx('icon'), _ctx.loadingIcon] }, _ctx.ptm('loadingIcon')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({ key: 1, "class": [_ctx.cx('loadingIcon'), _ctx.cx('icon')], spin: "" }, _ctx.ptm('loadingIcon')), null, 16, ["class"]))]; }) : renderSlot(_ctx.$slots, "icon", { key: 1, "class": normalizeClass([_ctx.cx('icon')]) }, function () { return [_ctx.icon ? (openBlock(), createElementBlock("span", mergeProps({ key: 0, "class": [_ctx.cx('icon'), _ctx.icon, _ctx.iconClass] }, _ctx.ptm('icon')), null, 16)) : createCommentVNode("", true)]; }), createElementVNode("span", mergeProps({ "class": _ctx.cx('label') }, _ctx.ptm('label')), toDisplayString(_ctx.label || ' '), 17), _ctx.badge ? (openBlock(), createBlock(_component_Badge, mergeProps({ key: 2, value: _ctx.badge, "class": _ctx.badgeClass, severity: _ctx.badgeSeverity, unstyled: _ctx.unstyled }, _ctx.ptm('badge')), null, 16, ["value", "class", "severity", "unstyled"])) : createCommentVNode("", true)]; })], 16, _hoisted_1)), [[_directive_ripple]]); } script.render = render; export { script as default };