primeng
Version:
PrimeNG is an open source UI library for Angular 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 PrimeB
707 lines (693 loc) • 29.4 kB
JavaScript
import * as i1 from '@angular/common';
import { CommonModule } from '@angular/common';
import * as i0 from '@angular/core';
import { Injectable, EventEmitter, signal, inject, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, ContentChild, ContentChildren, NgModule } from '@angular/core';
import { uuid } from '@primeuix/utils';
import { PrimeTemplate, SharedModule } from 'primeng/api';
import { AutoFocus } from 'primeng/autofocus';
import { BaseComponent } from 'primeng/basecomponent';
import { ButtonDirective } from 'primeng/button';
import { ChevronDownIcon } from 'primeng/icons';
import { Ripple } from 'primeng/ripple';
import { TieredMenu } from 'primeng/tieredmenu';
import * as i2 from 'primeng/tooltip';
import { TooltipModule } from 'primeng/tooltip';
import { BaseStyle } from 'primeng/base';
const theme = ({ dt }) => `
.p-splitbutton {
display: inline-flex;
position: relative;
border-radius: ${dt('splitbutton.border.radius')};
}
.p-splitbutton-button.p-button {
border-start-end-radius: 0;
border-end-end-radius: 0;
border-right: 0 none;
}
.p-splitbutton-button.p-button:focus-visible,
.p-splitbutton-dropdown.p-button:focus-visible {
z-index: 1;
}
.p-splitbutton-button.p-button:not(:disabled):hover,
.p-splitbutton-button.p-button:not(:disabled):active {
border-right: 0 none;
}
.p-splitbutton-dropdown.p-button {
border-start-start-radius: 0;
border-end-start-radius: 0;
}
.p-splitbutton .p-menu {
min-width: 100%;
}
.p-splitbutton-fluid {
display: flex;
}
.p-splitbutton-rounded .p-splitbutton-dropdown {
border-start-end-radius: ${dt('splitbutton.rounded.border.radius')};
border-end-end-radius: ${dt('splitbutton.rounded.border.radius')};
}
.p-splitbutton-rounded > .p-splitbutton-button {
border-start-start-radius: ${dt('splitbutton.rounded.border.radius')};
border-end-start-radius: ${dt('splitbutton.rounded.border.radius')};
}
.p-splitbutton-raised {
box-shadow: ${dt('splitbutton.raised.shadow')};
}
`;
const classes = {
root: ({ props }) => [
'p-splitbutton p-component',
{
'p-splitbutton-raised': props.raised,
'p-splitbutton-rounded': props.rounded,
'p-splitbutton-fluid': props.fluid
}
],
pcButton: 'p-splitbutton-button',
pcDropdown: 'p-splitbutton-dropdown'
};
class SplitButtonStyle extends BaseStyle {
name = 'splitbutton';
theme = theme;
classes = classes;
static ɵfac = /*@__PURE__*/ (() => { let ɵSplitButtonStyle_BaseFactory; return function SplitButtonStyle_Factory(__ngFactoryType__) { return (ɵSplitButtonStyle_BaseFactory || (ɵSplitButtonStyle_BaseFactory = i0.ɵɵgetInheritedFactory(SplitButtonStyle)))(__ngFactoryType__ || SplitButtonStyle); }; })();
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SplitButtonStyle, factory: SplitButtonStyle.ɵfac });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SplitButtonStyle, [{
type: Injectable
}], null, null); })();
/**
*
* SplitButton groups a set of commands in an overlay with a default command.
*
* [Live Demo](https://www.primeng.org/splitbutton/)
*
* @module splitbuttonstyle
*
*/
var SplitButtonClasses;
(function (SplitButtonClasses) {
/**
* Class name of the root element
*/
SplitButtonClasses["root"] = "p-splitbutton";
/**
* Class name of the button element
*/
SplitButtonClasses["pcButton"] = "p-splitbutton-button";
/**
* Class name of the dropdown element
*/
SplitButtonClasses["pcDropdown"] = "p-splitbutton-dropdown";
})(SplitButtonClasses || (SplitButtonClasses = {}));
const _c0 = ["content"];
const _c1 = ["dropdownicon"];
const _c2 = ["container"];
const _c3 = ["defaultbtn"];
const _c4 = ["menu"];
function SplitButton_ng_container_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
function SplitButton_ng_container_2_Template(rf, ctx) { if (rf & 1) {
const _r2 = i0.ɵɵgetCurrentView();
i0.ɵɵelementContainerStart(0);
i0.ɵɵelementStart(1, "button", 10);
i0.ɵɵlistener("click", function SplitButton_ng_container_2_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDefaultButtonClick($event)); });
i0.ɵɵtemplate(2, SplitButton_ng_container_2_ng_container_2_Template, 1, 0, "ng-container", 11);
i0.ɵɵelementEnd();
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
i0.ɵɵadvance();
i0.ɵɵproperty("severity", ctx_r2.severity)("text", ctx_r2.text)("outlined", ctx_r2.outlined)("size", ctx_r2.size)("icon", ctx_r2.icon)("iconPos", ctx_r2.iconPos)("disabled", ctx_r2.disabled)("pAutoFocus", ctx_r2.autofocus)("pTooltip", ctx_r2.tooltip)("tooltipOptions", ctx_r2.tooltipOptions);
i0.ɵɵattribute("tabindex", ctx_r2.tabindex)("aria-label", (ctx_r2.buttonProps == null ? null : ctx_r2.buttonProps["ariaLabel"]) || ctx_r2.label);
i0.ɵɵadvance();
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.contentTemplate || ctx_r2._contentTemplate);
} }
function SplitButton_ng_template_3_Template(rf, ctx) { if (rf & 1) {
const _r4 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "button", 12, 3);
i0.ɵɵlistener("click", function SplitButton_ng_template_3_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onDefaultButtonClick($event)); });
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
i0.ɵɵproperty("severity", ctx_r2.severity)("text", ctx_r2.text)("outlined", ctx_r2.outlined)("size", ctx_r2.size)("icon", ctx_r2.icon)("iconPos", ctx_r2.iconPos)("label", ctx_r2.label)("disabled", ctx_r2.buttonDisabled)("pAutoFocus", ctx_r2.autofocus)("pTooltip", ctx_r2.tooltip)("tooltipOptions", ctx_r2.tooltipOptions);
i0.ɵɵattribute("tabindex", ctx_r2.tabindex)("aria-label", ctx_r2.buttonProps == null ? null : ctx_r2.buttonProps["ariaLabel"]);
} }
function SplitButton_span_6_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "span");
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
i0.ɵɵclassMap(ctx_r2.dropdownIcon);
} }
function SplitButton_ng_container_7_ChevronDownIcon_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "ChevronDownIcon");
} }
function SplitButton_ng_container_7_2_ng_template_0_Template(rf, ctx) { }
function SplitButton_ng_container_7_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, SplitButton_ng_container_7_2_ng_template_0_Template, 0, 0, "ng-template");
} }
function SplitButton_ng_container_7_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, SplitButton_ng_container_7_ChevronDownIcon_1_Template, 1, 0, "ChevronDownIcon", 8)(2, SplitButton_ng_container_7_2_Template, 1, 0, null, 11);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
i0.ɵɵadvance();
i0.ɵɵproperty("ngIf", !ctx_r2.dropdownIconTemplate && !ctx_r2._dropdownIconTemplate);
i0.ɵɵadvance();
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.dropdownIconTemplate || ctx_r2._dropdownIconTemplate);
} }
/**
* SplitButton groups a set of commands in an overlay with a default command.
* @group Components
*/
class SplitButton extends BaseComponent {
/**
* MenuModel instance to define the overlay items.
* @group Props
*/
model;
/**
* Defines the style of the button.
* @group Props
*/
severity;
/**
* Add a shadow to indicate elevation.
* @group Props
*/
raised = false;
/**
* Add a circular border radius to the button.
* @group Props
*/
rounded = false;
/**
* Add a textual class to the button without a background initially.
* @group Props
*/
text = false;
/**
* Add a border class without a background initially.
* @group Props
*/
outlined = false;
/**
* Defines the size of the button.
* @group Props
*/
size = null;
/**
* Add a plain textual class to the button without a background initially.
* @group Props
*/
plain = false;
/**
* Name of the icon.
* @group Props
*/
icon;
/**
* Position of the icon.
* @group Props
*/
iconPos = 'left';
/**
* Text of the button.
* @group Props
*/
label;
/**
* Tooltip for the main button.
* @group Props
*/
tooltip;
/**
* Tooltip options for the main button.
* @group Props
*/
tooltipOptions;
/**
* Inline style of the element.
* @group Props
*/
style;
/**
* Class of the element.
* @group Props
*/
styleClass;
/**
* Inline style of the overlay menu.
* @group Props
*/
menuStyle;
/**
* Style class of the overlay menu.
* @group Props
*/
menuStyleClass;
/**
* Name of the dropdown icon.
* @group Props
*/
dropdownIcon;
/**
* Target element to attach the overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name).
* @group Props
*/
appendTo;
/**
* Indicates the direction of the element.
* @group Props
*/
dir;
/**
* Defines a string that labels the expand button for accessibility.
* @group Props
*/
expandAriaLabel;
/**
* Transition options of the show animation.
* @group Props
*/
showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';
/**
* Transition options of the hide animation.
* @group Props
*/
hideTransitionOptions = '.1s linear';
/**
* Button Props
*/
buttonProps;
/**
* Menu Button Props
*/
menuButtonProps;
/**
* When present, it specifies that the component should automatically get focus on load.
* @group Props
*/
autofocus;
/**
* When present, it specifies that the element should be disabled.
* @group Props
*/
set disabled(v) {
this._disabled = v;
this._buttonDisabled = v;
this.menuButtonDisabled = v;
}
get disabled() {
return this._disabled;
}
/**
* Index of the element in tabbing order.
* @group Props
*/
tabindex;
/**
* When present, it specifies that the menu button element should be disabled.
* @group Props
*/
set menuButtonDisabled(v) {
if (this.disabled) {
this._menuButtonDisabled = this.disabled;
}
else
this._menuButtonDisabled = v;
}
get menuButtonDisabled() {
return this._menuButtonDisabled;
}
/**
* When present, it specifies that the button element should be disabled.
* @group Props
*/
set buttonDisabled(v) {
if (this.disabled) {
this.buttonDisabled = this.disabled;
}
else
this._buttonDisabled = v;
}
get buttonDisabled() {
return this._buttonDisabled;
}
/**
* Callback to invoke when default command button is clicked.
* @param {MouseEvent} event - Mouse event.
* @group Emits
*/
onClick = new EventEmitter();
/**
* Callback to invoke when overlay menu is hidden.
* @group Emits
*/
onMenuHide = new EventEmitter();
/**
* Callback to invoke when overlay menu is shown.
* @group Emits
*/
onMenuShow = new EventEmitter();
/**
* Callback to invoke when dropdown button is clicked.
* @param {MouseEvent} event - Mouse event.
* @group Emits
*/
onDropdownClick = new EventEmitter();
containerViewChild;
buttonViewChild;
menu;
/**
* Template of the content.
* @group Templates
*/
contentTemplate;
/**
* Template of the dropdownicon.
* @group Templates
**/
dropdownIconTemplate;
templates;
ariaId;
isExpanded = signal(false);
_disabled;
_buttonDisabled;
_menuButtonDisabled;
_componentStyle = inject(SplitButtonStyle);
_contentTemplate;
_dropdownIconTemplate;
ngOnInit() {
super.ngOnInit();
this.ariaId = uuid('pn_id_');
}
ngAfterContentInit() {
this.templates?.forEach((item) => {
switch (item.getType()) {
case 'content':
this._contentTemplate = item.template;
break;
case 'dropdownicon':
this._dropdownIconTemplate = item.template;
break;
default:
this._contentTemplate = item.template;
break;
}
});
}
get containerClass() {
const cls = {
'p-splitbutton p-component': true,
'p-splitbutton-raised': this.raised,
'p-splitbutton-rounded': this.rounded,
'p-splitbutton-outlined': this.outlined,
'p-splitbutton-text': this.text,
[`p-splitbutton-${this.size === 'small' ? 'sm' : 'lg'}`]: this.size
};
return { ...cls };
}
onDefaultButtonClick(event) {
this.onClick.emit(event);
this.menu.hide();
}
onDropdownButtonClick(event) {
this.onDropdownClick.emit(event);
this.menu?.toggle({ currentTarget: this.containerViewChild?.nativeElement, relativeAlign: this.appendTo == null });
}
onDropdownButtonKeydown(event) {
if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {
this.onDropdownButtonClick();
event.preventDefault();
}
}
onHide() {
this.isExpanded.set(false);
this.onMenuHide.emit();
}
onShow() {
this.isExpanded.set(true);
this.onMenuShow.emit();
}
static ɵfac = /*@__PURE__*/ (() => { let ɵSplitButton_BaseFactory; return function SplitButton_Factory(__ngFactoryType__) { return (ɵSplitButton_BaseFactory || (ɵSplitButton_BaseFactory = i0.ɵɵgetInheritedFactory(SplitButton)))(__ngFactoryType__ || SplitButton); }; })();
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SplitButton, selectors: [["p-splitbutton"], ["p-splitButton"], ["p-split-button"]], contentQueries: function SplitButton_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
i0.ɵɵcontentQuery(dirIndex, _c0, 4);
i0.ɵɵcontentQuery(dirIndex, _c1, 4);
i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
} if (rf & 2) {
let _t;
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownIconTemplate = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
} }, viewQuery: function SplitButton_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(_c2, 5);
i0.ɵɵviewQuery(_c3, 5);
i0.ɵɵviewQuery(_c4, 5);
} if (rf & 2) {
let _t;
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonViewChild = _t.first);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menu = _t.first);
} }, inputs: { model: "model", severity: "severity", raised: [2, "raised", "raised", booleanAttribute], rounded: [2, "rounded", "rounded", booleanAttribute], text: [2, "text", "text", booleanAttribute], outlined: [2, "outlined", "outlined", booleanAttribute], size: "size", plain: [2, "plain", "plain", booleanAttribute], icon: "icon", iconPos: "iconPos", label: "label", tooltip: "tooltip", tooltipOptions: "tooltipOptions", style: "style", styleClass: "styleClass", menuStyle: "menuStyle", menuStyleClass: "menuStyleClass", dropdownIcon: "dropdownIcon", appendTo: "appendTo", dir: "dir", expandAriaLabel: "expandAriaLabel", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", buttonProps: "buttonProps", menuButtonProps: "menuButtonProps", autofocus: [2, "autofocus", "autofocus", booleanAttribute], disabled: [2, "disabled", "disabled", booleanAttribute], tabindex: [2, "tabindex", "tabindex", numberAttribute], menuButtonDisabled: "menuButtonDisabled", buttonDisabled: "buttonDisabled" }, outputs: { onClick: "onClick", onMenuHide: "onMenuHide", onMenuShow: "onMenuShow", onDropdownClick: "onDropdownClick" }, features: [i0.ɵɵProvidersFeature([SplitButtonStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 26, consts: [["container", ""], ["defaultButton", ""], ["menu", ""], ["defaultbtn", ""], [3, "ngClass", "ngStyle"], [4, "ngIf", "ngIfElse"], ["type", "button", "pButton", "", "pRipple", "", 1, "p-splitbutton-dropdown", "p-button-icon-only", 3, "click", "keydown", "size", "severity", "text", "outlined", "disabled"], [3, "class", 4, "ngIf"], [4, "ngIf"], [3, "onHide", "onShow", "id", "popup", "model", "styleClass", "appendTo", "showTransitionOptions", "hideTransitionOptions"], ["type", "button", "pButton", "", "pRipple", "", 1, "p-splitbutton-button", 3, "click", "severity", "text", "outlined", "size", "icon", "iconPos", "disabled", "pAutoFocus", "pTooltip", "tooltipOptions"], [4, "ngTemplateOutlet"], ["type", "button", "pButton", "", "pRipple", "", 1, "p-splitbutton-button", 3, "click", "severity", "text", "outlined", "size", "icon", "iconPos", "label", "disabled", "pAutoFocus", "pTooltip", "tooltipOptions"]], template: function SplitButton_Template(rf, ctx) { if (rf & 1) {
const _r1 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "div", 4, 0);
i0.ɵɵtemplate(2, SplitButton_ng_container_2_Template, 3, 13, "ng-container", 5)(3, SplitButton_ng_template_3_Template, 2, 13, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
i0.ɵɵelementStart(5, "button", 6);
i0.ɵɵlistener("click", function SplitButton_Template_button_click_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onDropdownButtonClick($event)); })("keydown", function SplitButton_Template_button_keydown_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onDropdownButtonKeydown($event)); });
i0.ɵɵtemplate(6, SplitButton_span_6_Template, 1, 2, "span", 7)(7, SplitButton_ng_container_7_Template, 3, 2, "ng-container", 8);
i0.ɵɵelementEnd();
i0.ɵɵelementStart(8, "p-tieredMenu", 9, 2);
i0.ɵɵlistener("onHide", function SplitButton_Template_p_tieredMenu_onHide_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onHide()); })("onShow", function SplitButton_Template_p_tieredMenu_onShow_8_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onShow()); });
i0.ɵɵelementEnd()();
} if (rf & 2) {
const defaultButton_r5 = i0.ɵɵreference(4);
i0.ɵɵclassMap(ctx.styleClass);
i0.ɵɵproperty("ngClass", ctx.containerClass)("ngStyle", ctx.style);
i0.ɵɵadvance(2);
i0.ɵɵproperty("ngIf", ctx.contentTemplate || ctx._contentTemplate)("ngIfElse", defaultButton_r5);
i0.ɵɵadvance(3);
i0.ɵɵproperty("size", ctx.size)("severity", ctx.severity)("text", ctx.text)("outlined", ctx.outlined)("disabled", ctx.menuButtonDisabled);
i0.ɵɵattribute("aria-label", (ctx.menuButtonProps == null ? null : ctx.menuButtonProps["ariaLabel"]) || ctx.expandAriaLabel)("aria-haspopup", (ctx.menuButtonProps == null ? null : ctx.menuButtonProps["ariaHasPopup"]) || true)("aria-expanded", (ctx.menuButtonProps == null ? null : ctx.menuButtonProps["ariaExpanded"]) || ctx.isExpanded())("aria-controls", (ctx.menuButtonProps == null ? null : ctx.menuButtonProps["ariaControls"]) || ctx.ariaId);
i0.ɵɵadvance();
i0.ɵɵproperty("ngIf", ctx.dropdownIcon);
i0.ɵɵadvance();
i0.ɵɵproperty("ngIf", !ctx.dropdownIcon);
i0.ɵɵadvance();
i0.ɵɵstyleMap(ctx.menuStyle);
i0.ɵɵproperty("id", ctx.ariaId)("popup", true)("model", ctx.model)("styleClass", ctx.menuStyleClass)("appendTo", ctx.appendTo)("showTransitionOptions", ctx.showTransitionOptions)("hideTransitionOptions", ctx.hideTransitionOptions);
} }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, ButtonDirective, TieredMenu, AutoFocus, ChevronDownIcon, Ripple, TooltipModule, i2.Tooltip, SharedModule], encapsulation: 2, changeDetection: 0 });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SplitButton, [{
type: Component,
args: [{
selector: 'p-splitbutton, p-splitButton, p-split-button',
standalone: true,
imports: [CommonModule, ButtonDirective, TieredMenu, AutoFocus, ChevronDownIcon, Ripple, TooltipModule, SharedModule],
template: `
<div #container [ngClass]="containerClass" [class]="styleClass" [ngStyle]="style">
<ng-container *ngIf="contentTemplate || _contentTemplate; else defaultButton">
<button
class="p-splitbutton-button"
type="button"
pButton
pRipple
[severity]="severity"
[text]="text"
[outlined]="outlined"
[size]="size"
[icon]="icon"
[iconPos]="iconPos"
(click)="onDefaultButtonClick($event)"
[disabled]="disabled"
[attr.tabindex]="tabindex"
[attr.aria-label]="buttonProps?.['ariaLabel'] || label"
[pAutoFocus]="autofocus"
[pTooltip]="tooltip"
[tooltipOptions]="tooltipOptions"
>
<ng-container *ngTemplateOutlet="contentTemplate || _contentTemplate"></ng-container>
</button>
</ng-container>
<ng-template #defaultButton>
<button
#defaultbtn
class="p-splitbutton-button"
type="button"
pButton
pRipple
[severity]="severity"
[text]="text"
[outlined]="outlined"
[size]="size"
[icon]="icon"
[iconPos]="iconPos"
[label]="label"
(click)="onDefaultButtonClick($event)"
[disabled]="buttonDisabled"
[attr.tabindex]="tabindex"
[attr.aria-label]="buttonProps?.['ariaLabel']"
[pAutoFocus]="autofocus"
[pTooltip]="tooltip"
[tooltipOptions]="tooltipOptions"
></button>
</ng-template>
<button
type="button"
pButton
pRipple
[size]="size"
[severity]="severity"
[text]="text"
[outlined]="outlined"
class="p-splitbutton-dropdown p-button-icon-only"
(click)="onDropdownButtonClick($event)"
(keydown)="onDropdownButtonKeydown($event)"
[disabled]="menuButtonDisabled"
[attr.aria-label]="menuButtonProps?.['ariaLabel'] || expandAriaLabel"
[attr.aria-haspopup]="menuButtonProps?.['ariaHasPopup'] || true"
[attr.aria-expanded]="menuButtonProps?.['ariaExpanded'] || isExpanded()"
[attr.aria-controls]="menuButtonProps?.['ariaControls'] || ariaId"
>
<span *ngIf="dropdownIcon" [class]="dropdownIcon"></span>
<ng-container *ngIf="!dropdownIcon">
<ChevronDownIcon *ngIf="!dropdownIconTemplate && !_dropdownIconTemplate" />
<ng-template *ngTemplateOutlet="dropdownIconTemplate || _dropdownIconTemplate"></ng-template>
</ng-container>
</button>
<p-tieredMenu
[id]="ariaId"
#menu
[popup]="true"
[model]="model"
[style]="menuStyle"
[styleClass]="menuStyleClass"
[appendTo]="appendTo"
[showTransitionOptions]="showTransitionOptions"
[hideTransitionOptions]="hideTransitionOptions"
(onHide)="onHide()"
(onShow)="onShow()"
></p-tieredMenu>
</div>
`,
changeDetection: ChangeDetectionStrategy.OnPush,
providers: [SplitButtonStyle],
encapsulation: ViewEncapsulation.None
}]
}], null, { model: [{
type: Input
}], severity: [{
type: Input
}], raised: [{
type: Input,
args: [{ transform: booleanAttribute }]
}], rounded: [{
type: Input,
args: [{ transform: booleanAttribute }]
}], text: [{
type: Input,
args: [{ transform: booleanAttribute }]
}], outlined: [{
type: Input,
args: [{ transform: booleanAttribute }]
}], size: [{
type: Input
}], plain: [{
type: Input,
args: [{ transform: booleanAttribute }]
}], icon: [{
type: Input
}], iconPos: [{
type: Input
}], label: [{
type: Input
}], tooltip: [{
type: Input
}], tooltipOptions: [{
type: Input
}], style: [{
type: Input
}], styleClass: [{
type: Input
}], menuStyle: [{
type: Input
}], menuStyleClass: [{
type: Input
}], dropdownIcon: [{
type: Input
}], appendTo: [{
type: Input
}], dir: [{
type: Input
}], expandAriaLabel: [{
type: Input
}], showTransitionOptions: [{
type: Input
}], hideTransitionOptions: [{
type: Input
}], buttonProps: [{
type: Input
}], menuButtonProps: [{
type: Input
}], autofocus: [{
type: Input,
args: [{ transform: booleanAttribute }]
}], disabled: [{
type: Input,
args: [{ transform: booleanAttribute }]
}], tabindex: [{
type: Input,
args: [{ transform: numberAttribute }]
}], menuButtonDisabled: [{
type: Input,
args: ['menuButtonDisabled']
}], buttonDisabled: [{
type: Input
}], onClick: [{
type: Output
}], onMenuHide: [{
type: Output
}], onMenuShow: [{
type: Output
}], onDropdownClick: [{
type: Output
}], containerViewChild: [{
type: ViewChild,
args: ['container']
}], buttonViewChild: [{
type: ViewChild,
args: ['defaultbtn']
}], menu: [{
type: ViewChild,
args: ['menu']
}], contentTemplate: [{
type: ContentChild,
args: ['content', { descendants: false }]
}], dropdownIconTemplate: [{
type: ContentChild,
args: ['dropdownicon', { descendants: false }]
}], templates: [{
type: ContentChildren,
args: [PrimeTemplate]
}] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SplitButton, { className: "SplitButton", filePath: "splitbutton.ts", lineNumber: 133 }); })();
class SplitButtonModule {
static ɵfac = function SplitButtonModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SplitButtonModule)(); };
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SplitButtonModule });
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [SplitButton, SharedModule, SharedModule] });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SplitButtonModule, [{
type: NgModule,
args: [{
imports: [SplitButton, SharedModule],
exports: [SplitButton, SharedModule]
}]
}], null, null); })();
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(SplitButtonModule, { imports: [SplitButton, SharedModule], exports: [SplitButton, SharedModule] }); })();
/**
* Generated bundle index. Do not edit.
*/
export { SplitButton, SplitButtonClasses, SplitButtonModule, SplitButtonStyle };
//# sourceMappingURL=primeng-splitbutton.mjs.map