mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-19 03:49:34 +00:00
feat(pagination): dispatch change event
Whenever the user interacts with Pagination, `change` is dispatched
This commit is contained in:
parent
29a83c325c
commit
7e64ee57de
5 changed files with 29 additions and 9 deletions
|
@ -2683,10 +2683,11 @@ None.
|
||||||
### Events
|
### Events
|
||||||
|
|
||||||
| Event name | Type | Detail |
|
| Event name | Type | Detail |
|
||||||
| :--------------------- | :--------- | :----------------------------------------------- |
|
| :--------------------- | :--------- | :------------------------------------------------ |
|
||||||
| update | dispatched | <code>{ pageSize: number; page: number; }</code> |
|
| change | dispatched | <code>{ page?: number; pageSize?: number }</code> |
|
||||||
| click:button--previous | dispatched | <code>{ page: number; }</code> |
|
| click:button--previous | dispatched | <code>{ page: number; }</code> |
|
||||||
| click:button--next | dispatched | <code>{ page: number; }</code> |
|
| click:button--next | dispatched | <code>{ page: number; }</code> |
|
||||||
|
| update | dispatched | <code>{ pageSize: number; page: number; }</code> |
|
||||||
|
|
||||||
## `PaginationNav`
|
## `PaginationNav`
|
||||||
|
|
||||||
|
|
|
@ -8405,8 +8405,8 @@
|
||||||
"events": [
|
"events": [
|
||||||
{
|
{
|
||||||
"type": "dispatched",
|
"type": "dispatched",
|
||||||
"name": "update",
|
"name": "change",
|
||||||
"detail": "{ pageSize: number; page: number; }"
|
"detail": "{ page?: number; pageSize?: number }"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "dispatched",
|
"type": "dispatched",
|
||||||
|
@ -8417,6 +8417,11 @@
|
||||||
"type": "dispatched",
|
"type": "dispatched",
|
||||||
"name": "click:button--next",
|
"name": "click:button--next",
|
||||||
"detail": "{ page: number; }"
|
"detail": "{ page: number; }"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "dispatched",
|
||||||
|
"name": "update",
|
||||||
|
"detail": "{ pageSize: number; page: number; }"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"typedefs": [],
|
"typedefs": [],
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<script>
|
<script>
|
||||||
/**
|
/**
|
||||||
* @event {{ pageSize: number; page: number; }} update
|
* @event {{ page?: number; pageSize?: number }} change - Dispatched after any user interaction
|
||||||
* @event {{ page: number; }} click:button--previous
|
* @event {{ page: number; }} click:button--previous
|
||||||
* @event {{ page: number; }} click:button--next
|
* @event {{ page: number; }} click:button--next
|
||||||
|
* @event {{ pageSize: number; page: number; }} update
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** Specify the current page index */
|
/** Specify the current page index */
|
||||||
|
@ -109,6 +110,9 @@
|
||||||
hideLabel
|
hideLabel
|
||||||
noLabel
|
noLabel
|
||||||
inline
|
inline
|
||||||
|
on:change="{() => {
|
||||||
|
dispatch('change', { pageSize });
|
||||||
|
}}"
|
||||||
bind:selected="{pageSize}"
|
bind:selected="{pageSize}"
|
||||||
>
|
>
|
||||||
{#each pageSizes as size, i (size)}
|
{#each pageSizes as size, i (size)}
|
||||||
|
@ -136,6 +140,10 @@
|
||||||
labelText="Page number, of {totalPages} pages"
|
labelText="Page number, of {totalPages} pages"
|
||||||
inline
|
inline
|
||||||
hideLabel
|
hideLabel
|
||||||
|
on:input="{() => console.log('select input event')}"
|
||||||
|
on:change="{() => {
|
||||||
|
dispatch('change', { page });
|
||||||
|
}}"
|
||||||
bind:selected="{page}"
|
bind:selected="{page}"
|
||||||
>
|
>
|
||||||
{#each selectItems as size, i (size)}
|
{#each selectItems as size, i (size)}
|
||||||
|
@ -161,6 +169,7 @@
|
||||||
on:click="{() => {
|
on:click="{() => {
|
||||||
page--;
|
page--;
|
||||||
dispatch('click:button--previous', { page });
|
dispatch('click:button--previous', { page });
|
||||||
|
dispatch('change', { page });
|
||||||
}}"
|
}}"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
|
@ -176,6 +185,7 @@
|
||||||
on:click="{() => {
|
on:click="{() => {
|
||||||
page++;
|
page++;
|
||||||
dispatch('click:button--next', { page });
|
dispatch('click:button--next', { page });
|
||||||
|
dispatch('change', { page });
|
||||||
}}"
|
}}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
<Pagination
|
<Pagination
|
||||||
totalItems="{102}"
|
totalItems="{102}"
|
||||||
pageSizes="{[10, 15, 20]}"
|
pageSizes="{[10, 15, 20]}"
|
||||||
|
on:change="{(e) => {
|
||||||
|
console.log(e.detail); // { pageSize?: number, page?: number }
|
||||||
|
}}"
|
||||||
on:update="{(e) => {
|
on:update="{(e) => {
|
||||||
console.log(e.detail); // { pageSize: number; page: number; }
|
console.log(e.detail); // { pageSize: number; page: number; }
|
||||||
}}"
|
}}"
|
||||||
|
|
3
types/Pagination/Pagination.svelte.d.ts
vendored
3
types/Pagination/Pagination.svelte.d.ts
vendored
|
@ -103,9 +103,10 @@ export interface PaginationProps
|
||||||
export default class Pagination extends SvelteComponentTyped<
|
export default class Pagination extends SvelteComponentTyped<
|
||||||
PaginationProps,
|
PaginationProps,
|
||||||
{
|
{
|
||||||
update: CustomEvent<{ pageSize: number; page: number }>;
|
change: CustomEvent<{ page?: number; pageSize?: number }>;
|
||||||
["click:button--previous"]: CustomEvent<{ page: number }>;
|
["click:button--previous"]: CustomEvent<{ page: number }>;
|
||||||
["click:button--next"]: CustomEvent<{ page: number }>;
|
["click:button--next"]: CustomEvent<{ page: number }>;
|
||||||
|
update: CustomEvent<{ pageSize: number; page: number }>;
|
||||||
},
|
},
|
||||||
{}
|
{}
|
||||||
> {}
|
> {}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue