mirror of
https://github.com/primefaces/primevue.git
synced 2025-05-10 01:12:37 +00:00
parent
fba52967d1
commit
1646da534e
8 changed files with 82 additions and 12 deletions
|
@ -81,11 +81,27 @@ const PaginatorEvents = [
|
||||||
const PaginatorSlots = [
|
const PaginatorSlots = [
|
||||||
{
|
{
|
||||||
name: 'left',
|
name: 'left',
|
||||||
description: "Custom content for the component's left side"
|
description: "Custom content for the component's left side."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'right',
|
name: 'right',
|
||||||
description: "Custom content for the component's right side"
|
description: "Custom content for the component's right side."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'firstpagelinkicon',
|
||||||
|
description: 'Custom first page link icon template.'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'prevpagelinkicon',
|
||||||
|
description: 'Custom previous page link icon template.'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'nextpagelinkicon',
|
||||||
|
description: 'Custom next page link icon template.'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'lastpagelinkicon',
|
||||||
|
description: 'Custom last page link icon template.'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,21 @@
|
||||||
<template>
|
<template>
|
||||||
<button v-ripple :class="containerClass" type="button">
|
<button v-ripple :class="containerClass" type="button">
|
||||||
<span class="p-paginator-icon pi pi-angle-double-left"></span>
|
<component :is="template || 'AngleDoubleLeftIcon'" class="p-paginator-icon" />
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import AngleDoubleLeftIcon from 'primevue/icon/angledoubleleft';
|
||||||
import Ripple from 'primevue/ripple';
|
import Ripple from 'primevue/ripple';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'FirstPageLink',
|
name: 'FirstPageLink',
|
||||||
|
props: {
|
||||||
|
template: {
|
||||||
|
type: Function,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
containerClass() {
|
containerClass() {
|
||||||
return [
|
return [
|
||||||
|
@ -19,6 +26,9 @@ export default {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
AngleDoubleLeftIcon: AngleDoubleLeftIcon
|
||||||
|
},
|
||||||
directives: {
|
directives: {
|
||||||
ripple: Ripple
|
ripple: Ripple
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,21 @@
|
||||||
<template>
|
<template>
|
||||||
<button v-ripple :class="containerClass" type="button">
|
<button v-ripple :class="containerClass" type="button">
|
||||||
<span class="p-paginator-icon pi pi-angle-double-right"></span>
|
<component :is="template || 'AngleDoubleRightIcon'" class="p-paginator-icon" />
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import AngleDoubleRightIcon from 'primevue/icon/angledoubleright';
|
||||||
import Ripple from 'primevue/ripple';
|
import Ripple from 'primevue/ripple';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'LastPageLink',
|
name: 'LastPageLink',
|
||||||
|
props: {
|
||||||
|
template: {
|
||||||
|
type: Function,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
containerClass() {
|
containerClass() {
|
||||||
return [
|
return [
|
||||||
|
@ -19,6 +26,9 @@ export default {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
AngleDoubleRightIcon: AngleDoubleRightIcon
|
||||||
|
},
|
||||||
directives: {
|
directives: {
|
||||||
ripple: Ripple
|
ripple: Ripple
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,21 @@
|
||||||
<template>
|
<template>
|
||||||
<button v-ripple :class="containerClass" type="button">
|
<button v-ripple :class="containerClass" type="button">
|
||||||
<span class="p-paginator-icon pi pi-angle-right"></span>
|
<component :is="template || 'AngleRightIcon'" class="p-paginator-icon" />
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import AngleRightIcon from 'primevue/icon/angleright';
|
||||||
import Ripple from 'primevue/ripple';
|
import Ripple from 'primevue/ripple';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'NextPageLink',
|
name: 'NextPageLink',
|
||||||
|
props: {
|
||||||
|
template: {
|
||||||
|
type: Function,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
containerClass() {
|
containerClass() {
|
||||||
return [
|
return [
|
||||||
|
@ -19,6 +26,9 @@ export default {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
AngleRightIcon: AngleRightIcon
|
||||||
|
},
|
||||||
directives: {
|
directives: {
|
||||||
ripple: Ripple
|
ripple: Ripple
|
||||||
}
|
}
|
||||||
|
|
16
components/lib/paginator/Paginator.d.ts
vendored
16
components/lib/paginator/Paginator.d.ts
vendored
|
@ -120,6 +120,22 @@ export interface PaginatorSlots {
|
||||||
*/
|
*/
|
||||||
state: PageState;
|
state: PageState;
|
||||||
}): VNode[];
|
}): VNode[];
|
||||||
|
/**
|
||||||
|
* Custom first page link icon template.
|
||||||
|
*/
|
||||||
|
firstpagelinkicon(): VNode[];
|
||||||
|
/**
|
||||||
|
* Custom previous page link icon template.
|
||||||
|
*/
|
||||||
|
prevpagelinkicon(): VNode[];
|
||||||
|
/**
|
||||||
|
* Custom finextrst page link icon template.
|
||||||
|
*/
|
||||||
|
nextpagelinkicon(): VNode[];
|
||||||
|
/**
|
||||||
|
* Custom last page link icon template.
|
||||||
|
*/
|
||||||
|
lastpagelinkicon(): VNode[];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -20,8 +20,6 @@ describe('Paginator.vue', () => {
|
||||||
|
|
||||||
it('should exist', () => {
|
it('should exist', () => {
|
||||||
expect(wrapper.find('.p-paginator.p-component').exists()).toBe(true);
|
expect(wrapper.find('.p-paginator.p-component').exists()).toBe(true);
|
||||||
expect(wrapper.find('.p-paginator-icon.pi-angle-double-left').exists()).toBe(true);
|
|
||||||
expect(wrapper.find('.p-paginator-icon.pi-angle-right').exists()).toBe(true);
|
|
||||||
expect(wrapper.findAll('.p-paginator-page.p-paginator-element').length).toBe(5);
|
expect(wrapper.findAll('.p-paginator-page.p-paginator-element').length).toBe(5);
|
||||||
expect(wrapper.find('.p-dropdown.p-component').exists()).toBe(true);
|
expect(wrapper.find('.p-dropdown.p-component').exists()).toBe(true);
|
||||||
expect(wrapper.find('.p-dropdown-label').text()).toBe('10');
|
expect(wrapper.find('.p-dropdown-label').text()).toBe('10');
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
<slot name="start" :state="currentState"></slot>
|
<slot name="start" :state="currentState"></slot>
|
||||||
</div>
|
</div>
|
||||||
<template v-for="item in value" :key="item">
|
<template v-for="item in value" :key="item">
|
||||||
<FirstPageLink v-if="item === 'FirstPageLink'" :aria-label="getAriaLabel('firstPageLabel')" @click="changePageToFirst($event)" :disabled="isFirstPage || empty" />
|
<FirstPageLink v-if="item === 'FirstPageLink'" :aria-label="getAriaLabel('firstPageLabel')" :template="$slots.firstpagelinkicon" @click="changePageToFirst($event)" :disabled="isFirstPage || empty" />
|
||||||
<PrevPageLink v-else-if="item === 'PrevPageLink'" :aria-label="getAriaLabel('prevPageLabel')" @click="changePageToPrev($event)" :disabled="isFirstPage || empty" />
|
<PrevPageLink v-else-if="item === 'PrevPageLink'" :aria-label="getAriaLabel('prevPageLabel')" :template="$slots.prevpagelinkicon" @click="changePageToPrev($event)" :disabled="isFirstPage || empty" />
|
||||||
<NextPageLink v-else-if="item === 'NextPageLink'" :aria-label="getAriaLabel('nextPageLabel')" @click="changePageToNext($event)" :disabled="isLastPage || empty" />
|
<NextPageLink v-else-if="item === 'NextPageLink'" :aria-label="getAriaLabel('nextPageLabel')" :template="$slots.nextpagelinkicon" @click="changePageToNext($event)" :disabled="isLastPage || empty" />
|
||||||
<LastPageLink v-else-if="item === 'LastPageLink'" :aria-label="getAriaLabel('lastPageLabel')" @click="changePageToLast($event)" :disabled="isLastPage || empty" />
|
<LastPageLink v-else-if="item === 'LastPageLink'" :aria-label="getAriaLabel('lastPageLabel')" :template="$slots.lastpagelinkicon" @click="changePageToLast($event)" :disabled="isLastPage || empty" />
|
||||||
<PageLinks v-else-if="item === 'PageLinks'" :aria-label="getAriaLabel('pageLabel')" :value="pageLinks" :page="page" @click="changePageLink($event)" />
|
<PageLinks v-else-if="item === 'PageLinks'" :aria-label="getAriaLabel('pageLabel')" :value="pageLinks" :page="page" @click="changePageLink($event)" />
|
||||||
<CurrentPageReport
|
<CurrentPageReport
|
||||||
v-else-if="item === 'CurrentPageReport'"
|
v-else-if="item === 'CurrentPageReport'"
|
||||||
|
|
|
@ -1,14 +1,21 @@
|
||||||
<template>
|
<template>
|
||||||
<button v-ripple :class="containerClass" type="button">
|
<button v-ripple :class="containerClass" type="button">
|
||||||
<span class="p-paginator-icon pi pi-angle-left"></span>
|
<component :is="template || 'AngleLeftIcon'" class="p-paginator-icon" />
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import AngleLeftIcon from 'primevue/icon/angleleft';
|
||||||
import Ripple from 'primevue/ripple';
|
import Ripple from 'primevue/ripple';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'PrevPageLink',
|
name: 'PrevPageLink',
|
||||||
|
props: {
|
||||||
|
template: {
|
||||||
|
type: Function,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
containerClass() {
|
containerClass() {
|
||||||
return [
|
return [
|
||||||
|
@ -19,6 +26,9 @@ export default {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
AngleLeftIcon: AngleLeftIcon
|
||||||
|
},
|
||||||
directives: {
|
directives: {
|
||||||
ripple: Ripple
|
ripple: Ripple
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue