|
9 | 9 | export let nextLabel = "Next"; |
10 | 10 | export let breakLabel = "..."; |
11 | 11 | export let hrefBuilder; |
12 | | - export let onPageChange; |
13 | 12 | export let initialPage; |
14 | 13 | export let forcePage; |
15 | 14 | export let disableInitialCallback = false; |
|
27 | 26 | export let breakLinkClassName; |
28 | 27 | export let extraAriaContext; |
29 | 28 | export let ariaLabelBuilder; |
| 29 | + export let initialPageIndex = 1; |
30 | 30 |
|
31 | 31 | const dispatch = createEventDispatcher(); |
32 | 32 |
|
|
37 | 37 | } else if (forcePage) { |
38 | 38 | initialSelected = forcePage; |
39 | 39 | } else { |
40 | | - initialSelected = 0; |
| 40 | + initialSelected = 1; |
41 | 41 | } |
42 | 42 |
|
43 | 43 | let state = { |
|
62 | 62 | } |
63 | 63 |
|
64 | 64 | function handlePageSelected(selected, event) { |
65 | | - debugger; |
66 | 65 | event.preventDefault ? event.preventDefault() : (event.returnValue = false); |
67 | 66 | if (state.selected === selected) return; |
68 | 67 |
|
|
104 | 103 | if ( |
105 | 104 | hrefBuilder && |
106 | 105 | pageIndex !== state.selected && |
107 | | - pageIndex >= 0 && |
| 106 | + pageIndex >= initialPageIndex && |
108 | 107 | pageIndex < pageCount |
109 | 108 | ) { |
110 | 109 | return hrefBuilder(pageIndex + 1); |
|
150 | 149 | let nextAriaDisabled = ""; |
151 | 150 |
|
152 | 151 | $: previousClasses = |
153 | | - previousClassName + (state.selected === 0 ? ` ${disabledClassName}` : ""); |
| 152 | + previousClassName + |
| 153 | + (state.selected === initialPageIndex ? ` ${disabledClassName}` : ""); |
154 | 154 | $: nextClasses = |
155 | 155 | nextClassName + |
156 | 156 | (state.selected === pageCount - 1 ? ` ${disabledClassName}` : ""); |
157 | 157 |
|
158 | | - $: previousAriaDisabled = state.selected === 0 ? "true" : "false"; |
| 158 | + $: previousAriaDisabled = |
| 159 | + state.selected === initialPageIndex ? "true" : "false"; |
159 | 160 | $: nextAriaDisabled = state.selected === pageCount - 1 ? "true" : "false"; |
160 | 161 |
|
161 | 162 | $: { |
162 | 163 | const items = []; |
163 | 164 | const { selected } = state; |
164 | 165 |
|
165 | 166 | if (pageCount <= pageRangeDisplayed) { |
166 | | - for (let index = 0; index < pageCount; index++) { |
| 167 | + for (let index = initialPageIndex; index < pageCount; index++) { |
167 | 168 | items.push({ |
168 | 169 | itemIndex: index, |
169 | 170 | type: "PageView" |
|
189 | 190 | let page; |
190 | 191 | let breakView; |
191 | 192 |
|
192 | | - for (index = 0; index < pageCount; index++) { |
193 | | - page = index + 1; |
| 193 | + for (index = initialPageIndex; index < pageCount; index++) { |
| 194 | + page = index; |
194 | 195 |
|
195 | 196 | // If the page index is lower than the margin defined, |
196 | 197 | // the page has to be displayed on the left side of |
|
282 | 283 |
|
283 | 284 | {#each state.items as { itemIndex, type }, i} |
284 | 285 | {#if type === 'PageView'} |
285 | | - {@debug itemIndex} |
286 | 286 | <svelte:component |
287 | 287 | this={PageView} |
288 | 288 | key={itemIndex} |
|
295 | 295 | {extraAriaContext} |
296 | 296 | href={hrefBuilderMain(itemIndex)} |
297 | 297 | ariaLabel={ariaLabelBuilderMain(itemIndex)} |
298 | | - page={itemIndex + 1} /> |
| 298 | + page={itemIndex} /> |
299 | 299 | {:else} |
300 | 300 | <svelte:component |
301 | 301 | this={BreakView} |
|
0 commit comments