@swisspost/design-system-components 10.0.0-next.54 → 10.0.0-next.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{components/react/p-CJ80BZ06.js → cjs/breakpoints-Df03Ct7n.js} +103 -5
- package/dist/cjs/debounce-BsIBi_-2.js +13 -0
- package/dist/cjs/environment-BQE9Unf_.js +52 -0
- package/dist/cjs/{event-from-CLvtSUKf.js → event-from-CwMw19f8.js} +2 -2
- package/dist/cjs/fade-CPQhl1fP.js +26 -0
- package/dist/cjs/fade-slide-dPhQa-I1.js +38 -0
- package/dist/cjs/{get-focusable-children-Bx63XUQg.js → get-focusable-children-ChETM1wK.js} +29 -21
- package/dist/cjs/{get-root-CyMf3Vsd.js → get-root-CUAv4k4C.js} +2 -2
- package/dist/cjs/{index-Cb8CTrOz.js → index-CKNxhb0S.js} +29 -13
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{package-CvZxvdTJ.js → package-CY7IOoiw.js} +1 -1
- package/dist/cjs/post-accordion_2.cjs.entry.js +12 -12
- package/dist/cjs/post-avatar.cjs.entry.js +11 -11
- package/dist/cjs/post-back-to-top.cjs.entry.js +16 -40
- package/dist/cjs/post-banner.cjs.entry.js +11 -10
- package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +7 -7
- package/dist/cjs/post-breadcrumbs.cjs.entry.js +22 -31
- package/dist/cjs/post-card-control.cjs.entry.js +16 -16
- package/dist/cjs/{post-closebutton_15.cjs.entry.js → post-closebutton_13.cjs.entry.js} +537 -507
- package/dist/cjs/post-collapsible_2.cjs.entry.js +39 -38
- package/dist/cjs/post-components.cjs.js +2 -2
- package/dist/cjs/post-env-test.cjs.entry.js +15 -0
- package/dist/cjs/post-footer.cjs.entry.js +21 -19
- package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
- package/dist/cjs/post-pagination.cjs.entry.js +589 -0
- package/dist/cjs/post-popover-trigger.cjs.entry.js +46 -30
- package/dist/cjs/post-popover.cjs.entry.js +12 -12
- package/dist/cjs/post-rating.cjs.entry.js +13 -13
- package/dist/cjs/post-stepper-item.cjs.entry.js +18 -0
- package/dist/cjs/post-stepper.cjs.entry.js +109 -0
- package/dist/cjs/post-tab-item.cjs.entry.js +49 -0
- package/dist/cjs/post-tab-panel.cjs.entry.js +9 -9
- package/dist/cjs/post-tabs.cjs.entry.js +191 -38
- package/dist/cjs/post-tooltip-trigger.cjs.entry.js +8 -8
- package/dist/cjs/post-tooltip.cjs.entry.js +7 -7
- package/dist/cjs/utils-s05L2ulk.js +26 -0
- package/dist/collection/animations/collapse.js +3 -3
- package/dist/collection/animations/fade-slide.js +33 -0
- package/dist/collection/animations/fade.js +19 -7
- package/dist/collection/animations/index.js +2 -0
- package/dist/collection/animations/slide.js +25 -21
- package/dist/collection/animations/types.js +14 -0
- package/dist/collection/animations/utils.js +8 -0
- package/dist/collection/collection-manifest.json +8 -6
- package/dist/collection/components/post-accordion/post-accordion.css +1 -1
- package/dist/collection/components/post-accordion/post-accordion.js +2 -2
- package/dist/collection/components/post-accordion-item/post-accordion-item.css +1 -1
- package/dist/collection/components/post-accordion-item/post-accordion-item.js +4 -4
- package/dist/collection/components/post-avatar/post-avatar.css +1 -1
- package/dist/collection/components/post-avatar/post-avatar.js +1 -1
- package/dist/collection/components/post-back-to-top/post-back-to-top.js +14 -14
- package/dist/collection/components/post-banner/post-banner.css +4 -1
- package/dist/collection/components/post-banner/post-banner.js +3 -3
- package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +1 -1
- package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +28 -28
- package/dist/collection/components/post-card-control/post-card-control.js +3 -3
- package/dist/collection/components/post-closebutton/post-closebutton.css +1 -1
- package/dist/collection/components/post-closebutton/post-closebutton.js +1 -1
- package/dist/collection/components/post-collapsible/post-collapsible.js +27 -27
- package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +6 -5
- package/dist/collection/components/post-footer/post-footer.css +1 -1
- package/dist/collection/components/post-footer/post-footer.js +18 -16
- package/dist/collection/components/post-header/post-header.css +1 -1
- package/dist/collection/components/post-header/post-header.js +186 -105
- package/dist/collection/components/post-icon/post-icon.js +6 -4
- package/dist/collection/components/post-language-menu/post-language-menu.css +1 -0
- package/dist/collection/components/{post-language-switch/post-language-switch.js → post-language-menu/post-language-menu.js} +25 -25
- package/dist/collection/components/post-language-menu-item/post-language-menu-item.css +1 -0
- package/dist/collection/components/{post-language-option/post-language-option.js → post-language-menu-item/post-language-menu-item.js} +14 -14
- package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
- package/dist/collection/components/post-logo/post-logo.css +3 -1
- package/dist/collection/components/post-logo/post-logo.js +1 -1
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.css +1 -1
- package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +41 -29
- package/dist/collection/components/post-megadropdown/post-megadropdown.css +1 -1
- package/dist/collection/components/post-megadropdown/post-megadropdown.js +184 -75
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.css +3 -1
- package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +80 -74
- package/dist/collection/components/post-menu/post-menu.css +1 -1
- package/dist/collection/components/post-menu/post-menu.js +35 -35
- package/dist/collection/components/post-menu-item/post-menu-item.js +1 -1
- package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
- package/dist/collection/components/post-pagination/post-pagination.css +1 -0
- package/dist/collection/components/post-pagination/post-pagination.js +838 -0
- package/dist/collection/components/post-popover/post-popover.css +1 -1
- package/dist/collection/components/post-popover/post-popover.js +10 -10
- package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +43 -27
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.css +1 -1
- package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +45 -92
- package/dist/collection/components/post-rating/post-rating.js +3 -3
- package/dist/collection/components/post-stepper/post-stepper.css +1 -0
- package/dist/collection/components/post-stepper/post-stepper.js +207 -0
- package/dist/collection/components/post-stepper-item/post-stepper-item.css +7 -0
- package/dist/collection/components/post-stepper-item/post-stepper-item.js +18 -0
- package/dist/collection/components/post-tab-item/post-tab-item.css +1 -0
- package/dist/collection/components/post-tab-item/post-tab-item.js +86 -0
- package/dist/collection/components/post-tab-panel/post-tab-panel.js +9 -9
- package/dist/collection/components/post-tabs/post-tabs.js +230 -57
- package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.css +1 -1
- package/dist/collection/components/post-tooltip/post-tooltip.js +1 -1
- package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +1 -1
- package/dist/collection/utils/environment.js +47 -2
- package/dist/collection/utils/event-from.js +2 -2
- package/dist/collection/utils/get-focusable-children.js +29 -21
- package/dist/collection/utils/is-motion-reduced.js +1 -1
- package/dist/collection/utils/tests/environment/hydrate-app-helper.js +16 -0
- package/dist/collection/utils/tests/environment/post-env-test.js +9 -0
- package/dist/component-names.json +6 -5
- package/dist/components/breakpoints.js +90 -3
- package/dist/components/debounce.js +11 -0
- package/dist/components/environment.js +49 -0
- package/dist/components/event-from.js +2 -2
- package/dist/components/fade-slide.js +36 -0
- package/dist/components/fade.js +21 -8
- package/dist/components/get-focusable-children.js +29 -21
- package/dist/components/get-root.js +1 -1
- package/dist/components/index.d.ts +14 -10
- package/dist/components/index.js +7 -5
- package/dist/components/package.js +1 -1
- package/dist/components/post-accordion-item2.js +4 -5
- package/dist/components/post-accordion2.js +4 -5
- package/dist/components/post-avatar.js +3 -4
- package/dist/components/post-back-to-top.js +14 -40
- package/dist/components/post-banner.js +5 -6
- package/dist/components/post-breadcrumb-item2.js +2 -3
- package/dist/components/post-breadcrumbs.js +24 -34
- package/dist/components/post-card-control.js +4 -5
- package/dist/components/post-closebutton2.js +3 -4
- package/dist/components/post-collapsible-trigger2.js +10 -10
- package/dist/components/post-collapsible2.js +25 -25
- package/dist/components/{post-list.d.ts → post-env-test.d.ts} +4 -4
- package/dist/components/post-env-test.js +31 -0
- package/dist/components/post-footer.js +17 -16
- package/dist/components/post-header.js +156 -119
- package/dist/components/post-icon2.js +8 -6
- package/dist/components/post-language-menu-item.d.ts +11 -0
- package/dist/components/post-language-menu-item.js +98 -0
- package/dist/components/{post-language-switch.d.ts → post-language-menu.d.ts} +4 -4
- package/dist/components/post-language-menu.js +156 -0
- package/dist/components/post-linkarea.js +1 -1
- package/dist/components/post-logo.js +3 -4
- package/dist/components/post-mainnavigation.js +21 -32
- package/dist/components/post-megadropdown-trigger.js +72 -79
- package/dist/components/post-megadropdown.js +183 -78
- package/dist/components/post-menu-item2.js +1 -1
- package/dist/components/post-menu-trigger2.js +2 -3
- package/dist/components/post-menu2.js +35 -36
- package/dist/components/post-pagination.d.ts +11 -0
- package/dist/components/post-pagination.js +635 -0
- package/dist/components/post-popover-trigger.js +41 -26
- package/dist/components/post-popover.js +9 -10
- package/dist/components/post-popovercontainer2.js +44 -40
- package/dist/components/post-rating.js +3 -4
- package/dist/components/post-stepper-item.d.ts +11 -0
- package/dist/components/post-stepper-item.js +33 -0
- package/dist/components/{post-list-item.d.ts → post-stepper.d.ts} +4 -4
- package/dist/components/post-stepper.js +136 -0
- package/dist/components/{post-tab-header.d.ts → post-tab-item.d.ts} +4 -4
- package/dist/components/post-tab-item.js +70 -0
- package/dist/components/post-tab-panel.js +8 -9
- package/dist/components/post-tabs.js +192 -37
- package/dist/components/post-togglebutton.js +1 -51
- package/dist/components/post-togglebutton2.js +53 -0
- package/dist/components/post-tooltip-trigger.js +3 -3
- package/dist/components/post-tooltip.js +3 -4
- package/dist/components/react/index.js +1 -1
- package/dist/{cjs/breakpoints-CEkeixld.js → components/react/p-B8YiQ3mz.js} +89 -6
- package/dist/components/react/{p-2U_BGLjc.js → p-BOLlAY91.js} +9 -7
- package/dist/components/react/p-BVCjnh6Q.js +36 -0
- package/dist/components/react/{p-CBFgkSgY.js → p-BVGcVycs.js} +1 -1
- package/dist/components/react/{p-D4NSCxrX.js → p-BYCGzO-t.js} +13 -13
- package/dist/components/react/p-C9hMpmsD.js +11 -0
- package/dist/components/react/{p-BVXiQdHq.js → p-CJ13r5fi.js} +29 -21
- package/dist/components/react/{p-nSFSgY-P.js → p-CnZWXrbA.js} +40 -41
- package/dist/components/react/p-CoDiS_Ik.js +24 -0
- package/dist/components/react/p-CyniMNY-.js +54 -0
- package/dist/components/react/p-D5knoiyy.js +24 -0
- package/dist/components/react/{p-Ccgu_WOx.js → p-DBO6FfHt.js} +4 -5
- package/dist/components/react/{p-BfLuYwf7.js → p-DRfa3MOV.js} +26 -26
- package/dist/components/react/{p-BUxAs8N5.js → p-DYImHx0e.js} +4 -5
- package/dist/components/react/p-DZ5m2Ttg.js +3 -0
- package/dist/components/react/p-FxUVQ4Tx.js +49 -0
- package/dist/components/react/{p-BK474oMI.js → p-L36-yvgK.js} +2 -2
- package/dist/components/react/{p-DVxZMuPW.js → p-NCAcc7ZZ.js} +6 -7
- package/dist/components/react/{p-mENtrn2l.js → p-QNPIvxLq.js} +45 -41
- package/dist/components/react/{p-D3CFjhAf.js → p-_pLhqTys.js} +5 -6
- package/dist/components/react/p-c6yNOQwn.js +113 -0
- package/dist/components/react/{p-CzIKqBrS.js → p-rEfV4v4a.js} +2 -2
- package/dist/components/react/post-accordion-item.js +1 -1
- package/dist/components/react/post-accordion.js +1 -1
- package/dist/components/react/post-avatar.js +4 -5
- package/dist/components/react/post-back-to-top.js +16 -42
- package/dist/components/react/post-banner.js +7 -8
- package/dist/components/react/post-breadcrumb-item.js +1 -1
- package/dist/components/react/post-breadcrumbs.js +31 -41
- package/dist/components/react/post-card-control.js +6 -7
- package/dist/components/react/post-closebutton.js +1 -1
- package/dist/components/react/post-collapsible-trigger.js +1 -1
- package/dist/components/react/post-collapsible.js +1 -1
- package/dist/components/react/{post-list.d.ts → post-env-test.d.ts} +4 -4
- package/dist/components/react/post-env-test.js +32 -0
- package/dist/components/react/post-footer.js +23 -22
- package/dist/components/react/post-header.js +158 -121
- package/dist/components/react/post-icon.js +1 -1
- package/dist/components/react/post-language-menu-item.d.ts +11 -0
- package/dist/components/react/post-language-menu-item.js +99 -0
- package/dist/components/react/{post-language-option.d.ts → post-language-menu.d.ts} +4 -4
- package/dist/components/react/post-language-menu.js +157 -0
- package/dist/components/react/post-linkarea.js +2 -2
- package/dist/components/react/post-logo.js +4 -5
- package/dist/components/react/post-mainnavigation.js +23 -34
- package/dist/components/react/post-megadropdown-trigger.js +74 -81
- package/dist/components/react/post-megadropdown.js +185 -80
- package/dist/components/react/post-menu-item.js +1 -1
- package/dist/components/react/post-menu-trigger.js +1 -1
- package/dist/components/react/post-menu.js +1 -1
- package/dist/components/react/post-pagination.d.ts +11 -0
- package/dist/components/react/post-pagination.js +636 -0
- package/dist/components/react/post-popover-trigger.js +42 -27
- package/dist/components/react/post-popover.js +14 -15
- package/dist/components/react/post-popovercontainer.js +1 -1
- package/dist/components/react/post-rating.js +5 -6
- package/dist/components/react/post-stepper-item.d.ts +11 -0
- package/dist/components/react/post-stepper-item.js +34 -0
- package/dist/components/react/{post-list-item.d.ts → post-stepper.d.ts} +4 -4
- package/dist/components/react/post-stepper.js +137 -0
- package/dist/components/react/{post-tab-header.d.ts → post-tab-item.d.ts} +4 -4
- package/dist/components/react/post-tab-item.js +71 -0
- package/dist/components/react/post-tab-panel.js +9 -10
- package/dist/components/react/post-tabs.js +193 -38
- package/dist/components/react/post-togglebutton.js +1 -52
- package/dist/components/react/post-tooltip-trigger.js +4 -4
- package/dist/components/react/post-tooltip.js +5 -6
- package/dist/components/utils.js +24 -0
- package/dist/docs.json +968 -563
- package/dist/esm/{breakpoints-CJ80BZ06.js → breakpoints-DYoSKGHO.js} +90 -3
- package/dist/esm/debounce-C9hMpmsD.js +11 -0
- package/dist/esm/environment-CEmnRoA6.js +49 -0
- package/dist/esm/{event-from-CzIKqBrS.js → event-from-rEfV4v4a.js} +2 -2
- package/dist/esm/fade-DsgPYmAa.js +24 -0
- package/dist/esm/fade-slide-CvOvauo9.js +36 -0
- package/dist/esm/{get-focusable-children-D9ZHp2FP.js → get-focusable-children-BXNs2_sw.js} +29 -21
- package/dist/esm/{get-root-BkQ3CrLq.js → get-root-CXfAA093.js} +1 -1
- package/dist/esm/{index-CFNKgUjL.js → index-1ReqxAnI.js} +29 -13
- package/dist/esm/loader.js +3 -3
- package/dist/esm/package-DZ5m2Ttg.js +3 -0
- package/dist/esm/post-accordion_2.entry.js +10 -10
- package/dist/esm/post-avatar.entry.js +6 -6
- package/dist/esm/post-back-to-top.entry.js +16 -40
- package/dist/esm/post-banner.entry.js +10 -9
- package/dist/esm/post-breadcrumb-item_2.entry.js +6 -6
- package/dist/esm/post-breadcrumbs.entry.js +20 -29
- package/dist/esm/post-card-control.entry.js +6 -6
- package/dist/esm/{post-closebutton_15.entry.js → post-closebutton_13.entry.js} +518 -486
- package/dist/esm/post-collapsible_2.entry.js +36 -35
- package/dist/esm/post-components.js +3 -3
- package/dist/esm/post-env-test.entry.js +13 -0
- package/dist/esm/post-footer.entry.js +18 -16
- package/dist/esm/post-linkarea.entry.js +3 -3
- package/dist/esm/post-pagination.entry.js +587 -0
- package/dist/esm/post-popover-trigger.entry.js +44 -28
- package/dist/esm/post-popover.entry.js +11 -11
- package/dist/esm/post-rating.entry.js +5 -5
- package/dist/esm/post-stepper-item.entry.js +16 -0
- package/dist/esm/post-stepper.entry.js +107 -0
- package/dist/esm/post-tab-item.entry.js +47 -0
- package/dist/esm/post-tab-panel.entry.js +9 -9
- package/dist/esm/post-tabs.entry.js +191 -38
- package/dist/esm/post-tooltip-trigger.entry.js +5 -5
- package/dist/esm/post-tooltip.entry.js +6 -6
- package/dist/esm/utils-CoDiS_Ik.js +24 -0
- package/dist/post-components/{p-8f0fc02a.entry.js → p-130eb074.entry.js} +1 -1
- package/dist/post-components/p-13d018fe.entry.js +1 -0
- package/dist/post-components/p-143e5a84.entry.js +1 -0
- package/dist/post-components/p-1ReqxAnI.js +2 -0
- package/dist/post-components/p-2b220851.entry.js +1 -0
- package/dist/post-components/{p-96750e25.entry.js → p-390f111f.entry.js} +1 -1
- package/dist/post-components/p-3cf09fbd.entry.js +1 -0
- package/dist/post-components/p-52e584ca.entry.js +1 -0
- package/dist/post-components/p-56a4040c.entry.js +1 -0
- package/dist/post-components/p-675dab57.entry.js +1 -0
- package/dist/post-components/p-6857fd9d.entry.js +1 -0
- package/dist/post-components/p-7cd00e3e.entry.js +1 -0
- package/dist/post-components/p-7f5d2487.entry.js +1 -0
- package/dist/post-components/{p-bf41fe56.entry.js → p-88201353.entry.js} +1 -1
- package/dist/post-components/p-89360cd1.entry.js +1 -0
- package/dist/post-components/p-B7ebLhHc.js +1 -0
- package/dist/post-components/p-BVCjnh6Q.js +1 -0
- package/dist/post-components/p-BXNs2_sw.js +1 -0
- package/dist/post-components/p-C9hMpmsD.js +1 -0
- package/dist/post-components/p-CEmnRoA6.js +1 -0
- package/dist/post-components/p-CoDiS_Ik.js +1 -0
- package/dist/post-components/p-D5knoiyy.js +1 -0
- package/dist/post-components/p-DI-h_mEL.js +1 -0
- package/dist/post-components/p-DZ5m2Ttg.js +1 -0
- package/dist/post-components/p-a740eaed.entry.js +1 -0
- package/dist/post-components/{p-261b1452.entry.js → p-a79590f5.entry.js} +1 -1
- package/dist/post-components/p-b708d96a.entry.js +1 -0
- package/dist/post-components/p-bcf5786f.entry.js +1 -0
- package/dist/post-components/p-c92512f5.entry.js +1 -0
- package/dist/post-components/{p-658b1ccc.entry.js → p-d7cb3a61.entry.js} +1 -1
- package/dist/post-components/p-d7f33813.entry.js +1 -0
- package/dist/post-components/p-da97ee21.entry.js +1 -0
- package/dist/post-components/{p-11c204e0.entry.js → p-ed4db774.entry.js} +1 -1
- package/dist/post-components/post-components.css +1 -1
- package/dist/post-components/post-components.esm.js +1 -1
- package/dist/prebuild.js +46 -0
- package/dist/types/animations/collapse.d.ts +1 -0
- package/dist/types/animations/fade-slide.d.ts +11 -0
- package/dist/types/animations/fade.d.ts +2 -2
- package/dist/types/animations/index.d.ts +2 -0
- package/dist/types/animations/slide.d.ts +9 -2
- package/dist/types/animations/types.d.ts +13 -0
- package/dist/types/animations/utils.d.ts +2 -0
- package/dist/types/components/post-accordion-item/heading-levels.d.ts +1 -1
- package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +2 -2
- package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +2 -2
- package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +6 -6
- package/dist/types/components/post-collapsible/post-collapsible.d.ts +4 -5
- package/dist/types/components/post-collapsible-trigger/post-collapsible-trigger.d.ts +1 -0
- package/dist/types/components/post-footer/post-footer.d.ts +4 -4
- package/dist/types/components/post-header/post-header.d.ts +28 -19
- package/dist/types/components/{post-language-switch/post-language-switch.d.ts → post-language-menu/post-language-menu.d.ts} +6 -6
- package/dist/types/components/{post-language-option/post-language-option.d.ts → post-language-menu-item/post-language-menu-item.d.ts} +5 -5
- package/dist/types/components/post-mainnavigation/post-mainnavigation.d.ts +6 -5
- package/dist/types/components/post-megadropdown/post-megadropdown.d.ts +20 -2
- package/dist/types/components/post-megadropdown-trigger/post-megadropdown-trigger.d.ts +17 -23
- package/dist/types/components/post-menu/post-menu.d.ts +4 -4
- package/dist/types/components/post-pagination/post-pagination.d.ts +224 -0
- package/dist/types/components/post-popover/post-popover.d.ts +3 -3
- package/dist/types/components/post-popover-trigger/post-popover-trigger.d.ts +2 -1
- package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +13 -16
- package/dist/types/components/post-rating/post-rating.d.ts +1 -1
- package/dist/types/components/post-stepper/post-stepper.d.ts +39 -0
- package/dist/types/components/post-stepper-item/post-stepper-item.d.ts +3 -0
- package/dist/types/components/post-tab-item/post-tab-item.d.ts +19 -0
- package/dist/types/components/post-tab-panel/post-tab-panel.d.ts +3 -3
- package/dist/types/components/post-tabs/post-tabs.d.ts +33 -12
- package/dist/types/components.d.ts +357 -186
- package/dist/types/home/runner/work/design-system/design-system/packages/components/.stencil/prebuild.d.ts +9 -0
- package/dist/types/types/heading-levels.d.ts +1 -1
- package/dist/types/utils/environment.d.ts +25 -1
- package/dist/types/utils/get-focusable-children.d.ts +2 -2
- package/dist/types/utils/tests/environment/hydrate-app-helper.d.ts +5 -0
- package/dist/types/utils/tests/environment/post-env-test.d.ts +3 -0
- package/hydrate/index.js +1882 -833
- package/hydrate/index.mjs +1882 -833
- package/package.json +9 -11
- package/dist/cjs/fade-nS5zzDQS.js +0 -14
- package/dist/cjs/index-DtvYdwe1.js +0 -96
- package/dist/cjs/post-tab-header.cjs.entry.js +0 -31
- package/dist/collection/animations/slide-and-fade.js +0 -25
- package/dist/collection/components/post-language-option/post-language-option.css +0 -1
- package/dist/collection/components/post-language-switch/post-language-switch.css +0 -1
- package/dist/collection/components/post-list/post-list.css +0 -1
- package/dist/collection/components/post-list/post-list.js +0 -97
- package/dist/collection/components/post-list-item/post-list-item.css +0 -1
- package/dist/collection/components/post-list-item/post-list-item.js +0 -26
- package/dist/collection/components/post-tab-header/post-tab-header.css +0 -1
- package/dist/collection/components/post-tab-header/post-tab-header.js +0 -65
- package/dist/components/index2.js +0 -88
- package/dist/components/post-language-option.d.ts +0 -11
- package/dist/components/post-language-option.js +0 -99
- package/dist/components/post-language-switch.js +0 -157
- package/dist/components/post-list-item.js +0 -38
- package/dist/components/post-list.js +0 -61
- package/dist/components/post-tab-header.js +0 -52
- package/dist/components/react/p-BXRsHuTS.js +0 -3
- package/dist/components/react/p-CV7fm1rW.js +0 -88
- package/dist/components/react/p-Dj7qWba5.js +0 -114
- package/dist/components/react/p-SbIC4aZX.js +0 -11
- package/dist/components/react/post-language-option.js +0 -100
- package/dist/components/react/post-language-switch.d.ts +0 -11
- package/dist/components/react/post-language-switch.js +0 -158
- package/dist/components/react/post-list-item.js +0 -39
- package/dist/components/react/post-list.js +0 -62
- package/dist/components/react/post-tab-header.js +0 -53
- package/dist/esm/fade-SbIC4aZX.js +0 -11
- package/dist/esm/index-VmK3ABCB.js +0 -88
- package/dist/esm/package-BXRsHuTS.js +0 -3
- package/dist/esm/post-tab-header.entry.js +0 -29
- package/dist/post-components/p-02ea3ec5.entry.js +0 -1
- package/dist/post-components/p-0e92dbef.entry.js +0 -1
- package/dist/post-components/p-0ec2bdd7.entry.js +0 -1
- package/dist/post-components/p-197a0f25.entry.js +0 -1
- package/dist/post-components/p-3274ab81.entry.js +0 -1
- package/dist/post-components/p-77e43032.entry.js +0 -1
- package/dist/post-components/p-BXRsHuTS.js +0 -1
- package/dist/post-components/p-CBFgkSgY.js +0 -1
- package/dist/post-components/p-CFNKgUjL.js +0 -2
- package/dist/post-components/p-CJ80BZ06.js +0 -1
- package/dist/post-components/p-D9ZHp2FP.js +0 -1
- package/dist/post-components/p-SbIC4aZX.js +0 -1
- package/dist/post-components/p-VmK3ABCB.js +0 -1
- package/dist/post-components/p-b5b5e4b9.entry.js +0 -1
- package/dist/post-components/p-b8059ba1.entry.js +0 -1
- package/dist/post-components/p-d6134e24.entry.js +0 -1
- package/dist/post-components/p-e7029b9e.entry.js +0 -1
- package/dist/post-components/p-e90688ab.entry.js +0 -1
- package/dist/post-components/p-ea5da614.entry.js +0 -1
- package/dist/post-components/p-f1b815b6.entry.js +0 -1
- package/dist/types/animations/slide-and-fade.d.ts +0 -2
- package/dist/types/components/post-list/post-list.d.ts +0 -24
- package/dist/types/components/post-list-item/post-list-item.d.ts +0 -8
- package/dist/types/components/post-tab-header/post-tab-header.d.ts +0 -14
- /package/dist/collection/components/{post-language-switch → post-language-menu}/switch-variants.js +0 -0
- /package/dist/post-components/{p-CzIKqBrS.js → p-rEfV4v4a.js} +0 -0
- /package/dist/types/components/{post-language-switch → post-language-menu}/switch-variants.d.ts +0 -0
|
@@ -0,0 +1,838 @@
|
|
|
1
|
+
import { Host, h, } from "@stencil/core";
|
|
2
|
+
import { version } from "../../../../package";
|
|
3
|
+
import { nanoid } from "nanoid";
|
|
4
|
+
import { checkEmptyOrType, checkRequiredAndType, debounce } from "../../utils/index";
|
|
5
|
+
const ELLIPSIS = '...';
|
|
6
|
+
const MEASUREMENT_DEBOUNCE_MS = 50;
|
|
7
|
+
const RESIZE_DEBOUNCE_MS = 150;
|
|
8
|
+
const MIN_VISIBLE_PAGES = 3;
|
|
9
|
+
const EDGE_ITEM_COUNT = 2; // Always show first and last page
|
|
10
|
+
const MAX_ELLIPSIS_COUNT = 2; // Maximum ellipsis elements
|
|
11
|
+
const GAP_THRESHOLD_FOR_PAGE = 2; // Show page number instead of ellipsis when gap is this value
|
|
12
|
+
const MIDDLE_RANGE_START = 2; // Middle range starts from page 2 (page 1 is always shown separately)
|
|
13
|
+
export class PostPagination {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.items = [];
|
|
16
|
+
this.lastWindowWidth = window.innerWidth;
|
|
17
|
+
this.loaded = false;
|
|
18
|
+
this.debouncedResize = debounce(this.handleResizeInternal.bind(this), RESIZE_DEBOUNCE_MS);
|
|
19
|
+
this.measurementTimeoutId = null;
|
|
20
|
+
}
|
|
21
|
+
validatePage() {
|
|
22
|
+
this.validateProp('page', 'number', false);
|
|
23
|
+
}
|
|
24
|
+
validatePageSize() {
|
|
25
|
+
this.validateProp('pageSize', 'number', true);
|
|
26
|
+
}
|
|
27
|
+
validateCollectionSize() {
|
|
28
|
+
this.validateProp('collectionSize', 'number', true);
|
|
29
|
+
}
|
|
30
|
+
validateLabel() {
|
|
31
|
+
this.validateProp('label', 'string', true);
|
|
32
|
+
}
|
|
33
|
+
validateTextPrevious() {
|
|
34
|
+
this.validateProp('textPrevious', 'string', true);
|
|
35
|
+
}
|
|
36
|
+
validateTextNext() {
|
|
37
|
+
this.validateProp('textNext', 'string', true);
|
|
38
|
+
}
|
|
39
|
+
validateTextPage() {
|
|
40
|
+
this.validateProp('textPage', 'string', true);
|
|
41
|
+
}
|
|
42
|
+
validateTextFirst() {
|
|
43
|
+
this.validateProp('textFirst', 'string', true);
|
|
44
|
+
}
|
|
45
|
+
validateTextLast() {
|
|
46
|
+
this.validateProp('textLast', 'string', true);
|
|
47
|
+
}
|
|
48
|
+
validateDisabled() {
|
|
49
|
+
this.validateProp('disabled', 'boolean', false);
|
|
50
|
+
}
|
|
51
|
+
handlePropsChange() {
|
|
52
|
+
this.updatePagesWithValidation();
|
|
53
|
+
}
|
|
54
|
+
componentWillLoad() {
|
|
55
|
+
this.paginationId = `pagination-${this.host.id || nanoid(6)}`;
|
|
56
|
+
if (this.page == null) {
|
|
57
|
+
this.page = 1;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
connectedCallback() {
|
|
61
|
+
window.addEventListener('resize', this.debouncedResize);
|
|
62
|
+
}
|
|
63
|
+
componentDidLoad() {
|
|
64
|
+
this.loaded = true;
|
|
65
|
+
this.runAllValidations();
|
|
66
|
+
this.scheduleMeasurement();
|
|
67
|
+
}
|
|
68
|
+
disconnectedCallback() {
|
|
69
|
+
this.loaded = false;
|
|
70
|
+
window.removeEventListener('resize', this.debouncedResize);
|
|
71
|
+
if (this.measurementTimeoutId !== null) {
|
|
72
|
+
clearTimeout(this.measurementTimeoutId);
|
|
73
|
+
this.measurementTimeoutId = null;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Validate a prop with the appropriate check function
|
|
78
|
+
*/
|
|
79
|
+
validateProp(propName, type, required = true) {
|
|
80
|
+
if (required) {
|
|
81
|
+
checkRequiredAndType(this, propName, type);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
checkEmptyOrType(this, propName, type);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Run all prop validations
|
|
89
|
+
*/
|
|
90
|
+
runAllValidations() {
|
|
91
|
+
this.validateProp('page', 'number', false);
|
|
92
|
+
this.validateProp('pageSize', 'number', true);
|
|
93
|
+
this.validateProp('collectionSize', 'number', true);
|
|
94
|
+
this.validateProp('label', 'string', true);
|
|
95
|
+
this.validateProp('textPrevious', 'string', true);
|
|
96
|
+
this.validateProp('textNext', 'string', true);
|
|
97
|
+
this.validateProp('textPage', 'string', true);
|
|
98
|
+
this.validateProp('textFirst', 'string', true);
|
|
99
|
+
this.validateProp('textLast', 'string', true);
|
|
100
|
+
this.validateProp('disabled', 'boolean', false);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Schedule measurement attempt with timeout
|
|
104
|
+
*/
|
|
105
|
+
scheduleMeasurement() {
|
|
106
|
+
if (!this.loaded)
|
|
107
|
+
return;
|
|
108
|
+
this.measurementTimeoutId = window.setTimeout(() => {
|
|
109
|
+
const canMeasure = this.navRef?.clientWidth > 0 && this.hiddenItemsRef;
|
|
110
|
+
if (canMeasure) {
|
|
111
|
+
this.measureAndCalculateVisiblePages();
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.scheduleMeasurement();
|
|
115
|
+
}
|
|
116
|
+
}, MEASUREMENT_DEBOUNCE_MS);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Internal resize handler
|
|
120
|
+
*/
|
|
121
|
+
handleResizeInternal() {
|
|
122
|
+
if (!this.loaded)
|
|
123
|
+
return;
|
|
124
|
+
if (window.innerWidth === this.lastWindowWidth)
|
|
125
|
+
return;
|
|
126
|
+
this.lastWindowWidth = window.innerWidth;
|
|
127
|
+
this.measureAndCalculateVisiblePages();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Calculates gap between two elements
|
|
131
|
+
*/
|
|
132
|
+
calculateGap(first, second) {
|
|
133
|
+
const firstRect = first.getBoundingClientRect();
|
|
134
|
+
const secondRect = second.getBoundingClientRect();
|
|
135
|
+
return secondRect.left - firstRect.right;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Measures actual rendered elements to determine how many pages can fit
|
|
139
|
+
*/
|
|
140
|
+
measureAndCalculateVisiblePages() {
|
|
141
|
+
if (!this.navRef || !this.hiddenItemsRef || !this.loaded)
|
|
142
|
+
return;
|
|
143
|
+
const totalPages = this.getTotalPages();
|
|
144
|
+
if (totalPages <= 1)
|
|
145
|
+
return;
|
|
146
|
+
const paginationPadding = this.getPaginationPadding();
|
|
147
|
+
const availableWidth = this.getAvailableWidth();
|
|
148
|
+
const netWidth = availableWidth - paginationPadding;
|
|
149
|
+
const controlButtonsWidth = this.getControlButtonsWidth();
|
|
150
|
+
const pageButton = this.hiddenItemsRef.querySelector('.hidden-page-button');
|
|
151
|
+
const ellipsis = this.hiddenItemsRef.querySelector('.hidden-ellipsis');
|
|
152
|
+
if (!pageButton)
|
|
153
|
+
return;
|
|
154
|
+
const singleButtonWidth = pageButton.getBoundingClientRect().width;
|
|
155
|
+
const gap = pageButton && ellipsis ? this.calculateGap(pageButton, ellipsis) : 0;
|
|
156
|
+
const controlButtonGaps = gap * 2; // Gap after prev and before next
|
|
157
|
+
const widthForPages = netWidth - controlButtonsWidth - controlButtonGaps;
|
|
158
|
+
// Calculate how many page buttons can fit
|
|
159
|
+
const maxPages = Math.floor((widthForPages + gap) / (singleButtonWidth + gap));
|
|
160
|
+
const clampedMaxPages = Math.max(MIN_VISIBLE_PAGES, Math.min(maxPages, totalPages));
|
|
161
|
+
this.maxVisiblePages = clampedMaxPages;
|
|
162
|
+
this.updatePagesWithValidation();
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Gets total width of control buttons (prev/next)
|
|
166
|
+
*/
|
|
167
|
+
getControlButtonsWidth() {
|
|
168
|
+
if (!this.hiddenItemsRef)
|
|
169
|
+
return 0;
|
|
170
|
+
const controlButtons = Array.from(this.hiddenItemsRef.querySelectorAll('.hidden-control-button'));
|
|
171
|
+
const totalWidth = controlButtons.reduce((sum, el) => sum + el.getBoundingClientRect().width, 0);
|
|
172
|
+
return totalWidth;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Gets the horizontal padding of the pagination container
|
|
176
|
+
*/
|
|
177
|
+
getPaginationPadding() {
|
|
178
|
+
if (!this.navRef)
|
|
179
|
+
return 0;
|
|
180
|
+
const computedStyle = window.getComputedStyle(this.navRef);
|
|
181
|
+
const paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;
|
|
182
|
+
const paddingRight = parseFloat(computedStyle.paddingRight) || 0;
|
|
183
|
+
return paddingLeft + paddingRight;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Gets available width from parent container
|
|
187
|
+
*/
|
|
188
|
+
getAvailableWidth() {
|
|
189
|
+
if (!this.navRef)
|
|
190
|
+
return 0;
|
|
191
|
+
return this.host.parentElement?.clientWidth ?? window.innerWidth;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Returns true if collection size or page size is invalid
|
|
195
|
+
*/
|
|
196
|
+
get invalidSize() {
|
|
197
|
+
return this.collectionSize === 0 || this.pageSize === 0;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Clamps the page number to valid range
|
|
201
|
+
*/
|
|
202
|
+
clampPageToValidRange(totalPages) {
|
|
203
|
+
const invalidTotalPages = totalPages === 0 || this.invalidSize || isNaN(totalPages);
|
|
204
|
+
const invalidPage = !this.page || this.page < 1 || isNaN(this.page);
|
|
205
|
+
const pageExceedsTotal = this.page > totalPages;
|
|
206
|
+
if (invalidTotalPages || invalidPage) {
|
|
207
|
+
return 1;
|
|
208
|
+
}
|
|
209
|
+
else if (pageExceedsTotal) {
|
|
210
|
+
return totalPages;
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
return this.page;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Validates and updates pages with clamped page number
|
|
218
|
+
*/
|
|
219
|
+
updatePagesWithValidation() {
|
|
220
|
+
const totalPages = this.getTotalPages();
|
|
221
|
+
this.page = this.clampPageToValidRange(totalPages);
|
|
222
|
+
this.generatePages(totalPages);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Calculates the total number of pages.
|
|
226
|
+
*/
|
|
227
|
+
getTotalPages() {
|
|
228
|
+
if (this.invalidSize)
|
|
229
|
+
return 1;
|
|
230
|
+
return Math.ceil(this.collectionSize / this.pageSize);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Convert numeric gap to a section type
|
|
234
|
+
*/
|
|
235
|
+
sectionForGap(gap) {
|
|
236
|
+
if (gap <= 1)
|
|
237
|
+
return 'none';
|
|
238
|
+
return gap === GAP_THRESHOLD_FOR_PAGE ? 'page' : 'ellipsis';
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Compute the left/right sections and numeric gaps for a given range
|
|
242
|
+
*/
|
|
243
|
+
getSections(startPage, endPage, totalPages) {
|
|
244
|
+
const leftGap = startPage - 1;
|
|
245
|
+
const rightGap = totalPages - endPage;
|
|
246
|
+
return {
|
|
247
|
+
leftSection: this.sectionForGap(leftGap),
|
|
248
|
+
rightSection: this.sectionForGap(rightGap),
|
|
249
|
+
leftGap,
|
|
250
|
+
rightGap,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Compute total items that would be rendered for a given range
|
|
255
|
+
*/
|
|
256
|
+
computeTotalItems(startPage, endPage, totalPages) {
|
|
257
|
+
const { leftSection, rightSection } = this.getSections(startPage, endPage, totalPages);
|
|
258
|
+
const middle = Math.max(0, endPage - startPage + 1);
|
|
259
|
+
const leftCount = leftSection === 'none' ? 0 : 1;
|
|
260
|
+
const rightCount = rightSection === 'none' ? 0 : 1;
|
|
261
|
+
// Always include first page (1) and last page (totalPages) = EDGE_ITEM_COUNT pages
|
|
262
|
+
// Plus any left/right sections (ellipsis or pages) and middle pages
|
|
263
|
+
return EDGE_ITEM_COUNT + leftCount + rightCount + middle;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Build a full list of pages (1..totalPages)
|
|
267
|
+
*/
|
|
268
|
+
buildAllPages(totalPages) {
|
|
269
|
+
const items = [];
|
|
270
|
+
for (let i = 1; i <= totalPages; i++) {
|
|
271
|
+
items.push({ type: 'page', page: i });
|
|
272
|
+
}
|
|
273
|
+
return items;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Adjust start/end pages to avoid gap=2 scenarios
|
|
277
|
+
*/
|
|
278
|
+
adjustForGapTwo(startPage, endPage, totalPages, middleSlots) {
|
|
279
|
+
const adjusted = { startPage, endPage };
|
|
280
|
+
// Fix rightGap=GAP_THRESHOLD_FOR_PAGE to maintain visual consistency
|
|
281
|
+
const rightGap = totalPages - endPage;
|
|
282
|
+
if (rightGap === GAP_THRESHOLD_FOR_PAGE) {
|
|
283
|
+
adjusted.endPage = totalPages - 1;
|
|
284
|
+
adjusted.startPage = Math.max(MIDDLE_RANGE_START, adjusted.endPage - middleSlots + 1);
|
|
285
|
+
}
|
|
286
|
+
// Fix leftGap=GAP_THRESHOLD_FOR_PAGE to maintain symmetry
|
|
287
|
+
const leftGap = adjusted.startPage - 1;
|
|
288
|
+
if (leftGap === GAP_THRESHOLD_FOR_PAGE) {
|
|
289
|
+
adjusted.startPage = MIDDLE_RANGE_START;
|
|
290
|
+
adjusted.endPage = Math.min(totalPages - 1, adjusted.startPage + middleSlots - 1);
|
|
291
|
+
}
|
|
292
|
+
return adjusted;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Ensure we have the desired number of middle slots
|
|
296
|
+
*/
|
|
297
|
+
ensureMiddleSlots(startPage, endPage, totalPages, middleSlots) {
|
|
298
|
+
const adjusted = { startPage, endPage };
|
|
299
|
+
const actualSlots = endPage - startPage + 1;
|
|
300
|
+
if (actualSlots < middleSlots && endPage < totalPages - 1) {
|
|
301
|
+
adjusted.endPage = Math.min(totalPages - 1, startPage + middleSlots - 1);
|
|
302
|
+
}
|
|
303
|
+
if (actualSlots < middleSlots && startPage > MIDDLE_RANGE_START) {
|
|
304
|
+
adjusted.startPage = Math.max(MIDDLE_RANGE_START, endPage - middleSlots + 1);
|
|
305
|
+
}
|
|
306
|
+
return adjusted;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Trim excess items by shrinking the range away from current page
|
|
310
|
+
*/
|
|
311
|
+
trimExcessItems(startPage, endPage, totalPages, maxVisible, currentPage) {
|
|
312
|
+
const adjusted = { startPage, endPage };
|
|
313
|
+
let totalItems = this.computeTotalItems(adjusted.startPage, adjusted.endPage, totalPages);
|
|
314
|
+
while (totalItems > maxVisible) {
|
|
315
|
+
const distLeft = currentPage - adjusted.startPage;
|
|
316
|
+
const distRight = adjusted.endPage - currentPage;
|
|
317
|
+
if (distRight >= distLeft && adjusted.endPage > adjusted.startPage) {
|
|
318
|
+
adjusted.endPage = Math.max(adjusted.startPage - 1, adjusted.endPage - 1);
|
|
319
|
+
}
|
|
320
|
+
else if (adjusted.startPage < adjusted.endPage) {
|
|
321
|
+
adjusted.startPage = Math.min(adjusted.endPage + 1, adjusted.startPage + 1);
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
const newTotal = this.computeTotalItems(adjusted.startPage, adjusted.endPage, totalPages);
|
|
327
|
+
if (newTotal === totalItems)
|
|
328
|
+
break;
|
|
329
|
+
totalItems = newTotal;
|
|
330
|
+
}
|
|
331
|
+
return adjusted;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Expand range to fill available slots
|
|
335
|
+
*/
|
|
336
|
+
expandToFillSlots(startPage, endPage, totalPages, maxVisible) {
|
|
337
|
+
const adjusted = { startPage, endPage };
|
|
338
|
+
let totalItems = this.computeTotalItems(adjusted.startPage, adjusted.endPage, totalPages);
|
|
339
|
+
while (totalItems < maxVisible) {
|
|
340
|
+
const canExpandLeft = adjusted.startPage > MIDDLE_RANGE_START;
|
|
341
|
+
const canExpandRight = adjusted.endPage < totalPages - 1;
|
|
342
|
+
if (canExpandLeft) {
|
|
343
|
+
adjusted.startPage = Math.max(MIDDLE_RANGE_START, adjusted.startPage - 1);
|
|
344
|
+
}
|
|
345
|
+
else if (canExpandRight) {
|
|
346
|
+
adjusted.endPage = Math.min(totalPages - 1, adjusted.endPage + 1);
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
break;
|
|
350
|
+
}
|
|
351
|
+
const newTotal = this.computeTotalItems(adjusted.startPage, adjusted.endPage, totalPages);
|
|
352
|
+
if (newTotal === totalItems)
|
|
353
|
+
break;
|
|
354
|
+
totalItems = newTotal;
|
|
355
|
+
}
|
|
356
|
+
return adjusted;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Balance total items to match maxVisible by trimming or expanding
|
|
360
|
+
*/
|
|
361
|
+
balanceTotalItems(startPage, endPage, totalPages, maxVisible, currentPage) {
|
|
362
|
+
const trimmed = this.trimExcessItems(startPage, endPage, totalPages, maxVisible, currentPage);
|
|
363
|
+
return this.expandToFillSlots(trimmed.startPage, trimmed.endPage, totalPages, maxVisible);
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Calculate optimal page range centered around current page
|
|
367
|
+
*/
|
|
368
|
+
calculatePageRange(currentPage, totalPages, maxVisible) {
|
|
369
|
+
// Reserve slots for first, last, and potential ellipses
|
|
370
|
+
const middleSlots = Math.max(0, maxVisible - EDGE_ITEM_COUNT - MAX_ELLIPSIS_COUNT);
|
|
371
|
+
if (middleSlots <= 0) {
|
|
372
|
+
return { startPage: MIDDLE_RANGE_START, endPage: 1 };
|
|
373
|
+
}
|
|
374
|
+
// Center around current page
|
|
375
|
+
const halfMiddle = Math.floor(middleSlots / 2);
|
|
376
|
+
let startPage = currentPage - halfMiddle;
|
|
377
|
+
let endPage = startPage + middleSlots - 1;
|
|
378
|
+
// Clamp to valid range
|
|
379
|
+
if (startPage < MIDDLE_RANGE_START) {
|
|
380
|
+
startPage = MIDDLE_RANGE_START;
|
|
381
|
+
endPage = startPage + middleSlots - 1;
|
|
382
|
+
}
|
|
383
|
+
if (endPage > totalPages - 1) {
|
|
384
|
+
endPage = totalPages - 1;
|
|
385
|
+
startPage = endPage - middleSlots + 1;
|
|
386
|
+
}
|
|
387
|
+
startPage = Math.max(MIDDLE_RANGE_START, startPage);
|
|
388
|
+
endPage = Math.min(totalPages - 1, endPage);
|
|
389
|
+
// Adjust for gap=2 scenarios and balance items
|
|
390
|
+
const gapAdjusted = this.adjustForGapTwo(startPage, endPage, totalPages, middleSlots);
|
|
391
|
+
const slotAdjusted = this.ensureMiddleSlots(gapAdjusted.startPage, gapAdjusted.endPage, totalPages, middleSlots);
|
|
392
|
+
return this.balanceTotalItems(slotAdjusted.startPage, slotAdjusted.endPage, totalPages, maxVisible, currentPage);
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Build pagination items with ellipsis
|
|
396
|
+
*/
|
|
397
|
+
buildPaginationItems(startPage, endPage, totalPages) {
|
|
398
|
+
const items = [];
|
|
399
|
+
const hasMiddlePages = startPage <= endPage;
|
|
400
|
+
// First page
|
|
401
|
+
items.push({ type: 'page', page: 1 });
|
|
402
|
+
if (hasMiddlePages) {
|
|
403
|
+
const { leftSection, rightSection } = this.getSections(startPage, endPage, totalPages);
|
|
404
|
+
// Left section (ellipsis or page 2)
|
|
405
|
+
if (leftSection === 'page') {
|
|
406
|
+
items.push({ type: 'page', page: 2 });
|
|
407
|
+
}
|
|
408
|
+
else if (leftSection === 'ellipsis') {
|
|
409
|
+
items.push({ type: 'ellipsis' });
|
|
410
|
+
}
|
|
411
|
+
// Middle pages
|
|
412
|
+
for (let i = startPage; i <= endPage; i++) {
|
|
413
|
+
items.push({ type: 'page', page: i });
|
|
414
|
+
}
|
|
415
|
+
// Right section (ellipsis or second-to-last page)
|
|
416
|
+
if (rightSection === 'page') {
|
|
417
|
+
items.push({ type: 'page', page: totalPages - 1 });
|
|
418
|
+
}
|
|
419
|
+
else if (rightSection === 'ellipsis') {
|
|
420
|
+
items.push({ type: 'ellipsis' });
|
|
421
|
+
}
|
|
422
|
+
// Last page
|
|
423
|
+
items.push({ type: 'page', page: totalPages });
|
|
424
|
+
return items;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Generates pagination items for small slot counts (3 or 4 items).
|
|
429
|
+
* Ensures current page is always visible.
|
|
430
|
+
*/
|
|
431
|
+
generateSmallPagination(currentPage, totalPages) {
|
|
432
|
+
if (currentPage === 1 || currentPage === totalPages) {
|
|
433
|
+
return [{ type: 'page', page: 1 }, { type: 'ellipsis' }, { type: 'page', page: totalPages }];
|
|
434
|
+
}
|
|
435
|
+
return [{ type: 'ellipsis' }, { type: 'page', page: currentPage }, { type: 'ellipsis' }];
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Generates the page numbers array with ellipsis based on available space.
|
|
439
|
+
*/
|
|
440
|
+
generatePages(totalPages) {
|
|
441
|
+
const maxVisible = this.maxVisiblePages;
|
|
442
|
+
const currentPage = this.page || 1;
|
|
443
|
+
if (totalPages <= maxVisible) {
|
|
444
|
+
this.items = this.buildAllPages(totalPages);
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
// Use simplified logic for small slot counts
|
|
448
|
+
if (maxVisible <= 4) {
|
|
449
|
+
this.items = this.generateSmallPagination(currentPage, totalPages);
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
452
|
+
// Use full algorithm for larger slot counts
|
|
453
|
+
const { startPage, endPage } = this.calculatePageRange(currentPage, totalPages, maxVisible);
|
|
454
|
+
this.items = this.buildPaginationItems(startPage, endPage, totalPages);
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Emit page change event and update page
|
|
458
|
+
*/
|
|
459
|
+
emitPageChange(newPage) {
|
|
460
|
+
this.page = newPage;
|
|
461
|
+
this.postChange.emit(newPage);
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Handles page change when a page button is clicked.
|
|
465
|
+
*/
|
|
466
|
+
handlePageClick(pageNumber) {
|
|
467
|
+
if (this.disabled || pageNumber === this.page)
|
|
468
|
+
return;
|
|
469
|
+
this.emitPageChange(pageNumber);
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Handles previous button click.
|
|
473
|
+
*/
|
|
474
|
+
handlePrevious() {
|
|
475
|
+
if (this.disabled || this.page <= 1)
|
|
476
|
+
return;
|
|
477
|
+
this.emitPageChange(this.page - 1);
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Handles next button click.
|
|
481
|
+
*/
|
|
482
|
+
handleNext() {
|
|
483
|
+
const totalPages = this.getTotalPages();
|
|
484
|
+
if (this.disabled || this.page >= totalPages)
|
|
485
|
+
return;
|
|
486
|
+
this.emitPageChange(this.page + 1);
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Handles keyboard navigation
|
|
490
|
+
*/
|
|
491
|
+
handleKeyDown(event, action) {
|
|
492
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
493
|
+
event.preventDefault();
|
|
494
|
+
action();
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Builds accessible label for a page button.
|
|
499
|
+
*/
|
|
500
|
+
buildPageLabel(pageNumber) {
|
|
501
|
+
const totalPages = this.getTotalPages();
|
|
502
|
+
if (pageNumber === 1) {
|
|
503
|
+
return `${this.textFirst}, ${this.textPage} ${pageNumber}`;
|
|
504
|
+
}
|
|
505
|
+
if (pageNumber === totalPages) {
|
|
506
|
+
return `${this.textLast}, ${this.textPage} ${pageNumber}`;
|
|
507
|
+
}
|
|
508
|
+
return `${this.textPage} ${pageNumber}`;
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Renders an ellipsis item.
|
|
512
|
+
*/
|
|
513
|
+
renderEllipsis(key) {
|
|
514
|
+
return (h("li", { class: "pagination-item pagination-ellipsis", key: key }, h("span", { class: "pagination-ellipsis-content", "aria-hidden": "true" }, ELLIPSIS)));
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Renders a page button.
|
|
518
|
+
*/
|
|
519
|
+
renderPageButton(pageNumber) {
|
|
520
|
+
const isCurrent = pageNumber === this.page;
|
|
521
|
+
return (h("li", { class: "pagination-item", key: `page-${pageNumber}` }, h("button", { type: "button", class: {
|
|
522
|
+
'pagination-link': true,
|
|
523
|
+
'pagination-link-active': isCurrent,
|
|
524
|
+
}, "aria-label": this.buildPageLabel(pageNumber), "aria-current": isCurrent ? 'page' : undefined, onClick: () => this.handlePageClick(pageNumber), onKeyDown: e => this.handleKeyDown(e, () => this.handlePageClick(pageNumber)), disabled: this.disabled ? true : undefined, tabIndex: this.disabled ? -1 : 0 }, h("span", { "aria-hidden": "true" }, pageNumber))));
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Renders a pagination item.
|
|
528
|
+
*/
|
|
529
|
+
renderItem(item, index) {
|
|
530
|
+
return item.type === 'ellipsis'
|
|
531
|
+
? this.renderEllipsis(`ellipsis-${index}`)
|
|
532
|
+
: this.renderPageButton(item.page);
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Renders control button (prev/next)
|
|
536
|
+
*/
|
|
537
|
+
renderControlButton(iconName, label, isDisabled, onClick, rotateIcon = false) {
|
|
538
|
+
return (h("li", { class: "pagination-item pagination-control" }, h("button", { type: "button", class: {
|
|
539
|
+
'pagination-link': true,
|
|
540
|
+
'pagination-control-button': true,
|
|
541
|
+
'pagination-link-disabled': isDisabled,
|
|
542
|
+
}, "aria-label": label, onClick: onClick, onKeyDown: e => this.handleKeyDown(e, onClick), disabled: isDisabled, tabIndex: isDisabled ? -1 : 0 }, h("post-icon", { name: iconName, class: rotateIcon ? 'pagination-icon-rotated' : undefined, "aria-hidden": "true" }), h("span", { class: "visually-hidden" }, label))));
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Renders minimal hidden items for measurement
|
|
546
|
+
*/
|
|
547
|
+
renderHiddenItems(totalPages) {
|
|
548
|
+
return [
|
|
549
|
+
h("button", { class: "pagination-link pagination-control-button hidden-control-button", disabled: true }, h("post-icon", { name: "chevronleft", "aria-hidden": "true" })),
|
|
550
|
+
h("button", { class: "pagination-link pagination-control-button hidden-page-button", "aria-label": this.buildPageLabel(totalPages), disabled: true }, h("span", { "aria-hidden": "true" }, totalPages)),
|
|
551
|
+
h("span", { class: "pagination-ellipsis-content hidden-ellipsis", "aria-hidden": "true" }, ELLIPSIS),
|
|
552
|
+
h("button", { class: "pagination-link pagination-control-button hidden-control-button", disabled: true }, h("post-icon", { name: "chevronleft", class: "pagination-icon-rotated", "aria-hidden": "true" })),
|
|
553
|
+
];
|
|
554
|
+
}
|
|
555
|
+
render() {
|
|
556
|
+
const totalPages = this.getTotalPages();
|
|
557
|
+
if (totalPages <= 1) {
|
|
558
|
+
return null;
|
|
559
|
+
}
|
|
560
|
+
const isPrevDisabled = this.disabled || this.page <= 1;
|
|
561
|
+
const isNextDisabled = this.disabled || this.page >= totalPages;
|
|
562
|
+
return (h(Host, { slot: "post-pagination", "data-version": version }, h("nav", { class: "pagination", "aria-label": this.label, id: this.paginationId, ref: el => (this.navRef = el) }, h("ul", { class: "pagination-list", role: "list" }, this.renderControlButton('chevronleft', this.textPrevious, isPrevDisabled, () => this.handlePrevious()), this.items.map((item, index) => this.renderItem(item, index)), this.renderControlButton('chevronleft', this.textNext, isNextDisabled, () => this.handleNext(), true)), h("div", { class: "hidden-items", "aria-hidden": "true", ref: el => (this.hiddenItemsRef = el) }, this.renderHiddenItems(totalPages)))));
|
|
563
|
+
}
|
|
564
|
+
static get is() { return "post-pagination"; }
|
|
565
|
+
static get encapsulation() { return "shadow"; }
|
|
566
|
+
static get originalStyleUrls() {
|
|
567
|
+
return {
|
|
568
|
+
"$": ["./post-pagination.scss"]
|
|
569
|
+
};
|
|
570
|
+
}
|
|
571
|
+
static get styleUrls() {
|
|
572
|
+
return {
|
|
573
|
+
"$": ["post-pagination.css"]
|
|
574
|
+
};
|
|
575
|
+
}
|
|
576
|
+
static get properties() {
|
|
577
|
+
return {
|
|
578
|
+
"page": {
|
|
579
|
+
"type": "number",
|
|
580
|
+
"attribute": "page",
|
|
581
|
+
"mutable": true,
|
|
582
|
+
"complexType": {
|
|
583
|
+
"original": "number",
|
|
584
|
+
"resolved": "number",
|
|
585
|
+
"references": {}
|
|
586
|
+
},
|
|
587
|
+
"required": false,
|
|
588
|
+
"optional": true,
|
|
589
|
+
"docs": {
|
|
590
|
+
"tags": [],
|
|
591
|
+
"text": "The current active page number.\n\n**If not specified, defaults to the first page.**"
|
|
592
|
+
},
|
|
593
|
+
"getter": false,
|
|
594
|
+
"setter": false,
|
|
595
|
+
"reflect": false
|
|
596
|
+
},
|
|
597
|
+
"pageSize": {
|
|
598
|
+
"type": "number",
|
|
599
|
+
"attribute": "page-size",
|
|
600
|
+
"mutable": false,
|
|
601
|
+
"complexType": {
|
|
602
|
+
"original": "number",
|
|
603
|
+
"resolved": "number",
|
|
604
|
+
"references": {}
|
|
605
|
+
},
|
|
606
|
+
"required": true,
|
|
607
|
+
"optional": false,
|
|
608
|
+
"docs": {
|
|
609
|
+
"tags": [],
|
|
610
|
+
"text": "The number of items per page."
|
|
611
|
+
},
|
|
612
|
+
"getter": false,
|
|
613
|
+
"setter": false,
|
|
614
|
+
"reflect": true
|
|
615
|
+
},
|
|
616
|
+
"collectionSize": {
|
|
617
|
+
"type": "number",
|
|
618
|
+
"attribute": "collection-size",
|
|
619
|
+
"mutable": false,
|
|
620
|
+
"complexType": {
|
|
621
|
+
"original": "number",
|
|
622
|
+
"resolved": "number",
|
|
623
|
+
"references": {}
|
|
624
|
+
},
|
|
625
|
+
"required": true,
|
|
626
|
+
"optional": false,
|
|
627
|
+
"docs": {
|
|
628
|
+
"tags": [],
|
|
629
|
+
"text": "The total number of items in the collection."
|
|
630
|
+
},
|
|
631
|
+
"getter": false,
|
|
632
|
+
"setter": false,
|
|
633
|
+
"reflect": true
|
|
634
|
+
},
|
|
635
|
+
"label": {
|
|
636
|
+
"type": "string",
|
|
637
|
+
"attribute": "label",
|
|
638
|
+
"mutable": false,
|
|
639
|
+
"complexType": {
|
|
640
|
+
"original": "string",
|
|
641
|
+
"resolved": "string",
|
|
642
|
+
"references": {}
|
|
643
|
+
},
|
|
644
|
+
"required": true,
|
|
645
|
+
"optional": false,
|
|
646
|
+
"docs": {
|
|
647
|
+
"tags": [],
|
|
648
|
+
"text": "A descriptive label for the pagination navigation, used by assistive technologies."
|
|
649
|
+
},
|
|
650
|
+
"getter": false,
|
|
651
|
+
"setter": false,
|
|
652
|
+
"reflect": true
|
|
653
|
+
},
|
|
654
|
+
"textPrevious": {
|
|
655
|
+
"type": "string",
|
|
656
|
+
"attribute": "text-previous",
|
|
657
|
+
"mutable": false,
|
|
658
|
+
"complexType": {
|
|
659
|
+
"original": "string",
|
|
660
|
+
"resolved": "string",
|
|
661
|
+
"references": {}
|
|
662
|
+
},
|
|
663
|
+
"required": true,
|
|
664
|
+
"optional": false,
|
|
665
|
+
"docs": {
|
|
666
|
+
"tags": [],
|
|
667
|
+
"text": "Accessible label for the previous page button."
|
|
668
|
+
},
|
|
669
|
+
"getter": false,
|
|
670
|
+
"setter": false,
|
|
671
|
+
"reflect": true
|
|
672
|
+
},
|
|
673
|
+
"textNext": {
|
|
674
|
+
"type": "string",
|
|
675
|
+
"attribute": "text-next",
|
|
676
|
+
"mutable": false,
|
|
677
|
+
"complexType": {
|
|
678
|
+
"original": "string",
|
|
679
|
+
"resolved": "string",
|
|
680
|
+
"references": {}
|
|
681
|
+
},
|
|
682
|
+
"required": true,
|
|
683
|
+
"optional": false,
|
|
684
|
+
"docs": {
|
|
685
|
+
"tags": [],
|
|
686
|
+
"text": "Accessible label for the next page button."
|
|
687
|
+
},
|
|
688
|
+
"getter": false,
|
|
689
|
+
"setter": false,
|
|
690
|
+
"reflect": true
|
|
691
|
+
},
|
|
692
|
+
"textPage": {
|
|
693
|
+
"type": "string",
|
|
694
|
+
"attribute": "text-page",
|
|
695
|
+
"mutable": false,
|
|
696
|
+
"complexType": {
|
|
697
|
+
"original": "string",
|
|
698
|
+
"resolved": "string",
|
|
699
|
+
"references": {}
|
|
700
|
+
},
|
|
701
|
+
"required": true,
|
|
702
|
+
"optional": false,
|
|
703
|
+
"docs": {
|
|
704
|
+
"tags": [],
|
|
705
|
+
"text": "Prefix text for page number labels."
|
|
706
|
+
},
|
|
707
|
+
"getter": false,
|
|
708
|
+
"setter": false,
|
|
709
|
+
"reflect": true
|
|
710
|
+
},
|
|
711
|
+
"textFirst": {
|
|
712
|
+
"type": "string",
|
|
713
|
+
"attribute": "text-first",
|
|
714
|
+
"mutable": false,
|
|
715
|
+
"complexType": {
|
|
716
|
+
"original": "string",
|
|
717
|
+
"resolved": "string",
|
|
718
|
+
"references": {}
|
|
719
|
+
},
|
|
720
|
+
"required": true,
|
|
721
|
+
"optional": false,
|
|
722
|
+
"docs": {
|
|
723
|
+
"tags": [],
|
|
724
|
+
"text": "Prefix text for the first page label."
|
|
725
|
+
},
|
|
726
|
+
"getter": false,
|
|
727
|
+
"setter": false,
|
|
728
|
+
"reflect": true
|
|
729
|
+
},
|
|
730
|
+
"textLast": {
|
|
731
|
+
"type": "string",
|
|
732
|
+
"attribute": "text-last",
|
|
733
|
+
"mutable": false,
|
|
734
|
+
"complexType": {
|
|
735
|
+
"original": "string",
|
|
736
|
+
"resolved": "string",
|
|
737
|
+
"references": {}
|
|
738
|
+
},
|
|
739
|
+
"required": true,
|
|
740
|
+
"optional": false,
|
|
741
|
+
"docs": {
|
|
742
|
+
"tags": [],
|
|
743
|
+
"text": "Prefix text for the last page label."
|
|
744
|
+
},
|
|
745
|
+
"getter": false,
|
|
746
|
+
"setter": false,
|
|
747
|
+
"reflect": true
|
|
748
|
+
},
|
|
749
|
+
"disabled": {
|
|
750
|
+
"type": "boolean",
|
|
751
|
+
"attribute": "disabled",
|
|
752
|
+
"mutable": false,
|
|
753
|
+
"complexType": {
|
|
754
|
+
"original": "boolean",
|
|
755
|
+
"resolved": "boolean",
|
|
756
|
+
"references": {}
|
|
757
|
+
},
|
|
758
|
+
"required": false,
|
|
759
|
+
"optional": true,
|
|
760
|
+
"docs": {
|
|
761
|
+
"tags": [],
|
|
762
|
+
"text": "If true, the pagination is disabled."
|
|
763
|
+
},
|
|
764
|
+
"getter": false,
|
|
765
|
+
"setter": false,
|
|
766
|
+
"reflect": false
|
|
767
|
+
}
|
|
768
|
+
};
|
|
769
|
+
}
|
|
770
|
+
static get states() {
|
|
771
|
+
return {
|
|
772
|
+
"paginationId": {},
|
|
773
|
+
"maxVisiblePages": {},
|
|
774
|
+
"items": {}
|
|
775
|
+
};
|
|
776
|
+
}
|
|
777
|
+
static get events() {
|
|
778
|
+
return [{
|
|
779
|
+
"method": "postChange",
|
|
780
|
+
"name": "postChange",
|
|
781
|
+
"bubbles": true,
|
|
782
|
+
"cancelable": true,
|
|
783
|
+
"composed": true,
|
|
784
|
+
"docs": {
|
|
785
|
+
"tags": [],
|
|
786
|
+
"text": "Event emitted when the page changes."
|
|
787
|
+
},
|
|
788
|
+
"complexType": {
|
|
789
|
+
"original": "number",
|
|
790
|
+
"resolved": "number",
|
|
791
|
+
"references": {}
|
|
792
|
+
}
|
|
793
|
+
}];
|
|
794
|
+
}
|
|
795
|
+
static get elementRef() { return "host"; }
|
|
796
|
+
static get watchers() {
|
|
797
|
+
return [{
|
|
798
|
+
"propName": "page",
|
|
799
|
+
"methodName": "validatePage"
|
|
800
|
+
}, {
|
|
801
|
+
"propName": "pageSize",
|
|
802
|
+
"methodName": "validatePageSize"
|
|
803
|
+
}, {
|
|
804
|
+
"propName": "collectionSize",
|
|
805
|
+
"methodName": "validateCollectionSize"
|
|
806
|
+
}, {
|
|
807
|
+
"propName": "label",
|
|
808
|
+
"methodName": "validateLabel"
|
|
809
|
+
}, {
|
|
810
|
+
"propName": "textPrevious",
|
|
811
|
+
"methodName": "validateTextPrevious"
|
|
812
|
+
}, {
|
|
813
|
+
"propName": "textNext",
|
|
814
|
+
"methodName": "validateTextNext"
|
|
815
|
+
}, {
|
|
816
|
+
"propName": "textPage",
|
|
817
|
+
"methodName": "validateTextPage"
|
|
818
|
+
}, {
|
|
819
|
+
"propName": "textFirst",
|
|
820
|
+
"methodName": "validateTextFirst"
|
|
821
|
+
}, {
|
|
822
|
+
"propName": "textLast",
|
|
823
|
+
"methodName": "validateTextLast"
|
|
824
|
+
}, {
|
|
825
|
+
"propName": "disabled",
|
|
826
|
+
"methodName": "validateDisabled"
|
|
827
|
+
}, {
|
|
828
|
+
"propName": "page",
|
|
829
|
+
"methodName": "handlePropsChange"
|
|
830
|
+
}, {
|
|
831
|
+
"propName": "pageSize",
|
|
832
|
+
"methodName": "handlePropsChange"
|
|
833
|
+
}, {
|
|
834
|
+
"propName": "collectionSize",
|
|
835
|
+
"methodName": "handlePropsChange"
|
|
836
|
+
}];
|
|
837
|
+
}
|
|
838
|
+
}
|