Fixed #1795 - Templating for SplitButton
parent
0da16479d6
commit
f9bca655e5
|
@ -1,3 +1,4 @@
|
||||||
|
import { VNode } from 'vue';
|
||||||
import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
|
import { ClassComponent, GlobalComponentConstructor } from '../ts-helpers';
|
||||||
import { MenuItem } from '../menuitem';
|
import { MenuItem } from '../menuitem';
|
||||||
|
|
||||||
|
@ -43,6 +44,10 @@ export interface SplitButtonProps {
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SplitButtonSlots {
|
export interface SplitButtonSlots {
|
||||||
|
/**
|
||||||
|
* Button part of the content can easily be customized with the default slot instead of using the built-in modes.
|
||||||
|
*/
|
||||||
|
default: () => VNode[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export declare type SplitButtonEmits = {
|
export declare type SplitButtonEmits = {
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="containerClass" :style="style">
|
<div :class="containerClass" :style="style">
|
||||||
|
<slot>
|
||||||
<PVSButton type="button" class="p-splitbutton-defaultbutton" v-bind="$attrs" :icon="icon" :label="label" @click="onDefaultButtonClick" />
|
<PVSButton type="button" class="p-splitbutton-defaultbutton" v-bind="$attrs" :icon="icon" :label="label" @click="onDefaultButtonClick" />
|
||||||
|
</slot>
|
||||||
<PVSButton type="button" class="p-splitbutton-menubutton" icon="pi pi-chevron-down" @click="onDropdownButtonClick" :disabled="$attrs.disabled"
|
<PVSButton type="button" class="p-splitbutton-menubutton" icon="pi pi-chevron-down" @click="onDropdownButtonClick" :disabled="$attrs.disabled"
|
||||||
aria-haspopup="true" :aria-controls="ariaId + '_overlay'"/>
|
aria-haspopup="true" :aria-controls="ariaId + '_overlay'"/>
|
||||||
<PVSMenu :id="ariaId + '_overlay'" ref="menu" :model="model" :popup="true" :autoZIndex="autoZIndex"
|
<PVSMenu :id="ariaId + '_overlay'" ref="menu" :model="model" :popup="true" :autoZIndex="autoZIndex"
|
||||||
|
|
|
@ -24,6 +24,14 @@
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-warning mb-2"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-warning mb-2"></SplitButton>
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-help mb-2"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-help mb-2"></SplitButton>
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-danger mb-2"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-danger mb-2"></SplitButton>
|
||||||
|
|
||||||
|
<h5>Templating</h5>
|
||||||
|
<SplitButton :model="items" class="bg-primary border-round">
|
||||||
|
<Button @click="save">
|
||||||
|
<img alt="logo" src="../../assets/images/logo.svg" style="width: 1rem" />
|
||||||
|
<span class="ml-2 flex align-items-center font-bold">PrimeVue</span>
|
||||||
|
</Button>
|
||||||
|
</SplitButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,11 @@ import SplitButton from 'primevue/splitbutton';
|
||||||
|
|
||||||
<h5>Getting Started</h5>
|
<h5>Getting Started</h5>
|
||||||
<p>SplitButton has a default command button and a collection of additional options defined by the <i>model</i> property.</p>
|
<p>SplitButton has a default command button and a collection of additional options defined by the <i>model</i> property.</p>
|
||||||
|
<pre v-code><code>
|
||||||
|
<SplitButton label="Save" icon="pi pi-plus" :model="items"></SplitButton>
|
||||||
|
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
<pre v-code.script><code>
|
<pre v-code.script><code>
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
|
@ -51,11 +56,6 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
<pre v-code><code>
|
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items"></SplitButton>
|
|
||||||
|
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
<h5>MenuModel</h5>
|
<h5>MenuModel</h5>
|
||||||
|
@ -82,6 +82,18 @@ export default {
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-help"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-help"></SplitButton>
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-danger"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-danger"></SplitButton>
|
||||||
|
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
|
<h5>Templating</h5>
|
||||||
|
<p>Button part of the content can easily be customized with the default slot instead of using the built-in modes.</p>
|
||||||
|
<pre v-code><code>
|
||||||
|
<SplitButton :model="items" class="bg-primary border-round">
|
||||||
|
<Button @click="save">
|
||||||
|
<img alt="logo" src="../../assets/images/logo.svg" style="width: 1rem" />
|
||||||
|
<span class="ml-2 flex align-items-center font-bold">PrimeVue</span>
|
||||||
|
</Button>
|
||||||
|
</SplitButton>
|
||||||
|
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
<h5>Properties</h5>
|
<h5>Properties</h5>
|
||||||
|
@ -228,6 +240,14 @@ export default {
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-warning mb-2"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-warning mb-2"></SplitButton>
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-help mb-2"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-help mb-2"></SplitButton>
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-danger mb-2"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-danger mb-2"></SplitButton>
|
||||||
|
|
||||||
|
<h5>Templating</h5>
|
||||||
|
<SplitButton :model="items" class="bg-primary border-round">
|
||||||
|
<Button @click="save">
|
||||||
|
<img alt="logo" src="https://www.primefaces.org/wp-content/uploads/2020/05/placeholder.png" style="width: 1rem" />
|
||||||
|
<span class="ml-2 flex align-items-center font-bold">PrimeVue</span>
|
||||||
|
</Button>
|
||||||
|
</SplitButton>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -280,8 +300,7 @@ export default {
|
||||||
{
|
{
|
||||||
label:'Video',
|
label:'Video',
|
||||||
icon:'pi pi-fw pi-video'
|
icon:'pi pi-fw pi-video'
|
||||||
},
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -371,8 +390,7 @@ export default {
|
||||||
{
|
{
|
||||||
label:'Delete',
|
label:'Delete',
|
||||||
icon:'pi pi-fw pi-calendar-minus'
|
icon:'pi pi-fw pi-calendar-minus'
|
||||||
},
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -432,6 +450,14 @@ export default {
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-warning mb-2"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-warning mb-2"></SplitButton>
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-help mb-2"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-help mb-2"></SplitButton>
|
||||||
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-danger mb-2"></SplitButton>
|
<SplitButton label="Save" icon="pi pi-plus" :model="items" class="p-button-danger mb-2"></SplitButton>
|
||||||
|
|
||||||
|
<h5>Templating</h5>
|
||||||
|
<SplitButton :model="items" class="bg-primary border-round">
|
||||||
|
<Button @click="save">
|
||||||
|
<img alt="logo" src="https://www.primefaces.org/wp-content/uploads/2020/05/placeholder.png" style="width: 1rem" />
|
||||||
|
<span class="ml-2 flex align-items-center font-bold">PrimeVue</span>
|
||||||
|
</Button>
|
||||||
|
</SplitButton>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -633,6 +659,14 @@ export default {
|
||||||
<p-splitbutton label="Save" icon="pi pi-plus" :model="items" class="p-button-warning mb-2"></p-splitbutton>
|
<p-splitbutton label="Save" icon="pi pi-plus" :model="items" class="p-button-warning mb-2"></p-splitbutton>
|
||||||
<p-splitbutton label="Save" icon="pi pi-plus" :model="items" class="p-button-help mb-2"></p-splitbutton>
|
<p-splitbutton label="Save" icon="pi pi-plus" :model="items" class="p-button-help mb-2"></p-splitbutton>
|
||||||
<p-splitbutton label="Save" icon="pi pi-plus" :model="items" class="p-button-danger mb-2"></p-splitbutton>
|
<p-splitbutton label="Save" icon="pi pi-plus" :model="items" class="p-button-danger mb-2"></p-splitbutton>
|
||||||
|
|
||||||
|
<h5>Templating</h5>
|
||||||
|
<p-splitbutton :model="items" class="bg-primary border-round">
|
||||||
|
<p-button @click="save">
|
||||||
|
<img alt="logo" src="https://www.primefaces.org/wp-content/uploads/2020/05/placeholder.png" style="width: 1rem" />
|
||||||
|
<span class="ml-2 flex align-items-center font-bold">PrimeVue</span>
|
||||||
|
</p-button>
|
||||||
|
</p-splitbutton>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
Loading…
Reference in New Issue