@gov-design-system-ce/components 0.0.35 → 0.0.36

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.
Files changed (32) hide show
  1. package/dist/cjs/gov-app.cjs.entry.js +2 -2
  2. package/dist/cjs/gov-app.cjs.entry.js.map +1 -1
  3. package/dist/cjs/gov-icon.cjs.entry.js +1 -1
  4. package/dist/cjs/gov-pagination.cjs.entry.js +10 -3
  5. package/dist/cjs/gov-pagination.cjs.entry.js.map +1 -1
  6. package/dist/collection/components/gov-pagination/gov-pagination.js +19 -3
  7. package/dist/collection/components/gov-pagination/gov-pagination.js.map +1 -1
  8. package/dist/collection/pages/Pagination.js +2 -2
  9. package/dist/collection/pages/Pagination.js.map +1 -1
  10. package/dist/components/gov-app.js +2 -2
  11. package/dist/components/gov-app.js.map +1 -1
  12. package/dist/components/gov-icon2.js +1 -1
  13. package/dist/components/gov-pagination.js +10 -3
  14. package/dist/components/gov-pagination.js.map +1 -1
  15. package/dist/core/core.esm.js +1 -1
  16. package/dist/core/{p-e3b56738.entry.js → p-1025c6ac.entry.js} +2 -2
  17. package/dist/core/{p-37f6b4ef.entry.js → p-67982c3a.entry.js} +2 -2
  18. package/dist/core/{p-37f6b4ef.entry.js.map → p-67982c3a.entry.js.map} +1 -1
  19. package/dist/core/{p-a8ef7292.entry.js → p-c289af04.entry.js} +2 -2
  20. package/dist/core/p-c289af04.entry.js.map +1 -0
  21. package/dist/custom-elements/index.js +1 -1
  22. package/dist/custom-elements/index.js.map +1 -1
  23. package/dist/esm/gov-app.entry.js +2 -2
  24. package/dist/esm/gov-app.entry.js.map +1 -1
  25. package/dist/esm/gov-icon.entry.js +1 -1
  26. package/dist/esm/gov-pagination.entry.js +10 -3
  27. package/dist/esm/gov-pagination.entry.js.map +1 -1
  28. package/dist/hydrate/index.js +12 -5
  29. package/dist/types/components/gov-pagination/gov-pagination.d.ts +1 -0
  30. package/package.json +1 -1
  31. package/dist/core/p-a8ef7292.entry.js.map +0 -1
  32. /package/dist/core/{p-e3b56738.entry.js.map → p-1025c6ac.entry.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{r as o,c as r,h as t,H as e,g as n}from"./p-4af5e4f4.js";import{F as a}from"./p-1c1d0bbe.js";import{v as i}from"./p-26acf964.js";import{S as s}from"./p-55500e5a.js";import{V as g}from"./p-ff7365ae.js";import{p as v,d as c}from"./p-03990da5.js";import{g as l,p as u,t as p}from"./p-3f37ddb6.js";import{a as h,v as d}from"./p-670b4f93.js";import{c as b}from"./p-c20102ff.js";import{c as m}from"./p-24636c53.js";import"./p-561fa17b.js";const _=v(s,["_S","_M"]);const y=v(g,["PRIMARY","SECONDARY"]);var f;(function(o){o["BUTTON"]="button";o["SELECT"]="select"})(f||(f={}));const w={root:"gov-pagination",list:"gov-pagination__list",item:"gov-pagination__item",itemArrow:"gov-pagination__item--arrow",itemMore:"gov-pagination__item--more",itemSelect:"gov-pagination__item--select",inner:"gov-pagination__inner",arrow:"gov-pagination__arrow"};function k(o,r=1,t=10,e=10){const n=Math.ceil(o/t);if(r<1){r=1}else if(r>n){r=n}let a,i;if(n<=e){a=1;i=n}else{const o=Math.floor(e/2);const t=Math.ceil(e/2)-1;if(r<=o){a=1;i=e}else if(r+t>=n){a=n-e+1;i=n}else{a=r-o;i=r+t}}const s=(r-1)*t;const g=Math.min(s+t-1,o-1);const v=Array.from(Array(i+1-a).keys()).map((o=>a+o));return{totalItems:o,currentPage:r,pageSize:t,totalPages:n,startPage:a,endPage:i,startIndex:s,endIndex:g,pages:v}}const x=(o,r)=>{if(Number.isInteger(o)&&Number.isInteger(r)){return[...Array(r+1).keys()].slice(o)}return[]};const z=".gov-pagination__list{margin:0;padding:0}.gov-pagination__list .gov-pagination__item{margin:0;padding:0;background:none}.gov-pagination__list .gov-pagination__item::before{display:none}.gov-spin-animation,.gov-pseudo-spin-animation::before{animation:spin 4s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}@keyframes countdown{to{transform:scaleX(0)}}@keyframes progress{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}@keyframes pulse{0%{opacity:1}50%{opacity:0.4}100%{opacity:1}}.gov-pagination{position:relative;display:block;width:100%}.gov-pagination__list{display:flex;align-items:center;flex-wrap:wrap;font-weight:bold;text-align:center}.gov-pagination__list .gov-pagination__item{display:flex;justify-content:center;align-items:center;margin:0;padding:0.125rem;border-radius:var(--gov-border-radius, 0.1875rem);overflow:hidden}.gov-pagination__list .gov-pagination__item--arrow{display:flex}.gov-pagination__list .gov-pagination__item--select{z-index:1;display:flex;overflow:visible;padding:0rem 1rem}.gov-pagination__arrow{margin:0}.gov-pagination__item--more .gov-form-select select{border:none;padding-right:0.75rem !important}.gov-pagination__item--more .gov-form-select .gov-icon{display:none}.gov-pagination__inner{display:flex;justify-content:center;align-items:center;align-self:stretch;width:100%;text-decoration:none}.gov-pagination__inner[wcag-current=true][type=solid][variant=primary] .element{background-color:var(--gov-button-primary-solid-hover-bg, var(--gov-color-primary-700));color:var(--gov-button-primary-solid-hover-color, var(--gov-color-neutral-white))}.gov-pagination__inner[wcag-current=true][type=outlined][variant=primary] .element{background-color:var(--gov-button-primary-outlined-hover-bg, var(--gov-color-primary-100));color:var(--gov-button-primary-outlined-hover-color, var(--gov-color-primary))}.gov-pagination__inner[wcag-current=true][type=base][variant=primary] .element{background-color:var(--gov-button-primary-base-hover-bg, var(--gov-color-primary-100));color:var(--gov-button-primary-base-hover-color, var(--gov-color-primary))}.gov-pagination__inner[wcag-current=true][type=link][variant=primary] .element{background-color:var(--gov-button-primary-link-hover-bg, transparent);color:var(--gov-button-primary-link-hover-color, var(--gov-color-primary))}.gov-pagination__inner[wcag-current=true][type=solid][variant=secondary] .element{background-color:var(--gov-button-secondary-solid-hover-bg, var(--gov-color-secondary-900));color:var(--gov-button-secondary-solid-hover-color, var(--gov-color-neutral-white))}.gov-pagination__inner[wcag-current=true][type=outlined][variant=secondary] .element{background-color:var(--gov-button-secondary-outlined-hover-bg, var(--gov-color-secondary-300));color:var(--gov-button-secondary-outlined-hover-color, var(--gov-color-secondary))}.gov-pagination__inner[wcag-current=true][type=base][variant=secondary] .element{background-color:var(--gov-button-secondary-base-hover-bg, var(--gov-color-secondary-300));color:var(--gov-button-secondary-base-hover-color, var(--gov-color-secondary))}.gov-pagination__inner[wcag-current=true][type=link][variant=secondary] .element{background-color:var(--gov-button-secondary-link-hover-bg, transparent);color:var(--gov-button-secondary-link-hover-color, var(--gov-color-secondary))}.gov-pagination__inner[wcag-current=true][type=solid][variant=error] .element{background-color:var(--gov-button-error-solid-hover-bg, var(--gov-color-error-500));color:var(--gov-button-error-solid-hover-color, var(--gov-color-neutral-white))}.gov-pagination__inner[wcag-current=true][type=outlined][variant=error] .element{background-color:var(--gov-button-error-outlined-hover-bg, var(--gov-color-error-100));color:var(--gov-button-error-outlined-hover-color, var(--gov-color-error))}.gov-pagination__inner[wcag-current=true][type=base][variant=error] .element{background-color:var(--gov-button-error-base-hover-bg, var(--gov-color-error-100));color:var(--gov-button-error-base-hover-color, var(--gov-color-error))}.gov-pagination__inner[wcag-current=true][type=link][variant=error] .element{background-color:var(--gov-button-error-link-hover-bg, transparent);color:var(--gov-button-error-link-hover-color, var(--gov-color-error))}.gov-pagination__inner[wcag-current=true][type=solid][variant=success] .element{background-color:var(--gov-button-success-solid-hover-bg, var(--gov-color-success-600));color:var(--gov-button-success-solid-hover-color, var(--gov-color-neutral-white))}.gov-pagination__inner[wcag-current=true][type=outlined][variant=success] .element{background-color:var(--gov-button-success-outlined-hover-bg, var(--gov-color-success-100));color:var(--gov-button-success-outlined-hover-color, var(--gov-color-success-500))}.gov-pagination__inner[wcag-current=true][type=base][variant=success] .element{background-color:var(--gov-button-success-base-hover-bg, var(--gov-color-success-100));color:var(--gov-button-success-base-hover-color, var(--gov-color-success-500))}.gov-pagination__inner[wcag-current=true][type=link][variant=success] .element{background-color:var(--gov-button-success-link-hover-bg, transparent);color:var(--gov-button-success-link-hover-color, var(--gov-color-success-500))}.gov-pagination__inner[wcag-current=true][type=solid][variant=warning] .element{background-color:var(--gov-button-warning-solid-hover-bg, var(--gov-color-warning-600));color:var(--gov-button-warning-solid-hover-color, var(--gov-color-neutral-white))}.gov-pagination__inner[wcag-current=true][type=outlined][variant=warning] .element{background-color:var(--gov-button-warning-outlined-hover-bg, var(--gov-color-warning-200));color:var(--gov-button-warning-outlined-hover-color, var(--gov-color-warning-500))}.gov-pagination__inner[wcag-current=true][type=base][variant=warning] .element{background-color:var(--gov-button-warning-base-hover-bg, var(--gov-color-warning-200));color:var(--gov-button-warning-base-hover-color, var(--gov-color-warning-500))}.gov-pagination__inner[wcag-current=true][type=link][variant=warning] .element{background-color:var(--gov-button-warning-link-hover-bg, transparent);color:var(--gov-button-warning-link-hover-color, var(--gov-color-warning-500))}.gov-pagination[size=s] .gov-pagination__inner{font-weight:var(--gov-text-s-font-weight);font-size:var(--gov-text-s-font-size);line-height:var(--gov-text-s-line-height);letter-spacing:var(--gov-text-s-letter-spacing);font-weight:inherit}.gov-pagination[size=s] .gov-pagination__inner .element{min-width:var(--gov-pagination-s-button-size, 2rem)}.gov-pagination[size=m] .gov-pagination__inner{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);font-weight:inherit}.gov-pagination[size=m] .gov-pagination__inner .element{min-width:var(--gov-pagination-m-button-size, 2.5rem)}";const j=class{constructor(t){o(this,t);this.govPage=r(this,"gov-page",7);this.type="button";this.current=1;this.total=undefined;this.inverse=undefined;this.size="m";this.variant="primary";this.pageSize=10;this.maxPages=5;this.link=undefined;this.wcagLabel=undefined;this.wcagLabelledBy=undefined;this.wcagSelectLabel="Vybrat stranu";this.wcagPageLabel="Strana";this.pagination=undefined;this.h=l(this.host);this.pageSelectId=m("GovPageSelect")}validateType(o){i(f,o,w.root)}validateSize(o){i(_,o,w.root)}validateVariant(o){i(y,o,w.root)}componentWillLoad(){this.recalculatePagination(this.current);this.validateSize(this.size);this.validateVariant(this.variant)}async componentDidRender(){if(b()){await c(500);await this.validateWcag()}}recalculatePagination(o){this.pagination=k(this.total,o,this.pageSize,this.maxPages)}isActivePageClass(o,r){if(this.pagination.currentPage===r){return o+" is-active"}else{return o}}prepareLinkUrl(o){if(this.link){return String(this.link).replace("{PAGE}",String(o))}return undefined}resetSelectValue(){if(this.spreadSelectRef){this.spreadSelectRef.getRef().then((o=>{o.value="..."}))}}render(){const o=(o,r)=>{const e=o===-1;const n=p(this.pagination.currentPage===o?true:undefined);return t("gov-button",{href:this.prepareLinkUrl(o),variant:this.variant,size:this.size,type:"base",disabled:e,"on-gov-click":r=>this.onClickHandler(r,o),"wcag-label":o>-1?this.wcagPageLabel+" "+o:undefined,"wcag-current":n,class:w.inner},r)};return t(e,{class:this.h.classes(w.root),type:this.type,variant:this.variant,size:this.size},t("nav",{"aria-label":this.wcagLabel,"aria-labelledby":this.wcagLabelledBy},t("ul",{class:w.list},t("li",{class:u([w.item,w.itemArrow])},o(this.pagination.currentPage>1?1:-1,t("gov-icon",{class:w.arrow,name:"chevron-double-left"}))),t("li",{class:u([w.item,w.itemArrow])},o(this.pagination.startPage<this.pagination.currentPage?this.pagination.currentPage-1:-1,t("gov-icon",{class:w.arrow,name:"chevron-left"}))),this.type=="select"?t("li",{class:u([w.item,w.itemSelect])},t("span",{class:w.inner},t("span",{id:this.pageSelectId,hidden:true},this.wcagSelectLabel),t("gov-form-select",{size:"m",variant:this.variant,"wcag-labelled-by":this.pageSelectId,"on-gov-change":this.onSelectHandler.bind(this)},x(1,this.pagination.totalPages).map((o=>t("option",{value:o,selected:this.pagination.currentPage===o},o)))))):t(a,null,this.pagination.pages.map((r=>t("li",{class:this.isActivePageClass(w.item,r)},o(r,r)))),t("li",{class:u([w.item,w.itemMore])},t("span",{class:w.inner},t("span",{id:this.pageSelectId,hidden:true},this.wcagSelectLabel),t("gov-form-select",{size:"m",variant:this.variant,"wcag-labelled-by":this.pageSelectId,ref:o=>this.spreadSelectRef=o,"on-gov-change":this.onSelectHandler.bind(this)},t("option",{selected:true,hidden:true},"..."),x(1,this.pagination.totalPages).map((o=>t("option",{value:o,selected:false},o))))))),t("li",{class:u([w.item,w.itemArrow])},o(this.pagination.totalPages>this.pagination.currentPage?this.pagination.currentPage+1:-1,t("gov-icon",{class:w.arrow,name:"chevron-right"}))),t("li",{class:u([w.item,w.itemArrow])},o(this.pagination.totalPages>this.pagination.currentPage?this.pagination.totalPages:-1,t("gov-icon",{class:w.arrow,name:"chevron-double-right"}))))))}onClickHandler(o,r){o.stopPropagation();this.recalculatePagination(r);this.govPage.emit({component:w.root,pagination:this.pagination})}onSelectHandler(o){o.stopPropagation();const r=o.detail.value;const t=parseInt(r);this.resetSelectValue();if(isNaN(t)===false){this.recalculatePagination(t);if(this.link){window.location.href=this.prepareLinkUrl(t)}else{this.govPage.emit({component:w.root,pagination:this.pagination})}}}async validateWcag(){h(this.wcagPageLabel,"wcag-page-label",w.root);d(this.wcagLabel,this.wcagLabelledBy,w.root)}get host(){return n(this)}static get watchers(){return{type:["validateType"],size:["validateSize"],variant:["validateVariant"]}}};j.style=z;export{j as gov_pagination};
2
- //# sourceMappingURL=p-a8ef7292.entry.js.map
1
+ import{r as o,c as r,h as t,H as e,g as n}from"./p-4af5e4f4.js";import{F as a}from"./p-1c1d0bbe.js";import{v as i}from"./p-26acf964.js";import{S as s}from"./p-55500e5a.js";import{V as g}from"./p-ff7365ae.js";import{p as c,d as v}from"./p-03990da5.js";import{g as l,p as u,t as p}from"./p-3f37ddb6.js";import{a as h,v as d}from"./p-670b4f93.js";import{c as b}from"./p-c20102ff.js";import{c as m}from"./p-24636c53.js";import"./p-561fa17b.js";const _=c(s,["_S","_M"]);const y=c(g,["PRIMARY","SECONDARY"]);var f;(function(o){o["BUTTON"]="button";o["SELECT"]="select"})(f||(f={}));const w={root:"gov-pagination",list:"gov-pagination__list",item:"gov-pagination__item",itemArrow:"gov-pagination__item--arrow",itemMore:"gov-pagination__item--more",itemSelect:"gov-pagination__item--select",inner:"gov-pagination__inner",arrow:"gov-pagination__arrow"};function k(o,r=1,t=10,e=10){const n=Math.ceil(o/t);if(r<1){r=1}else if(r>n){r=n}let a,i;if(n<=e){a=1;i=n}else{const o=Math.floor(e/2);const t=Math.ceil(e/2)-1;if(r<=o){a=1;i=e}else if(r+t>=n){a=n-e+1;i=n}else{a=r-o;i=r+t}}const s=(r-1)*t;const g=Math.min(s+t-1,o-1);const c=Array.from(Array(i+1-a).keys()).map((o=>a+o));return{totalItems:o,currentPage:r,pageSize:t,totalPages:n,startPage:a,endPage:i,startIndex:s,endIndex:g,pages:c}}const x=(o,r)=>{if(Number.isInteger(o)&&Number.isInteger(r)){return[...Array(r+1).keys()].slice(o)}return[]};const z=".gov-pagination__list{margin:0;padding:0}.gov-pagination__list .gov-pagination__item{margin:0;padding:0;background:none}.gov-pagination__list .gov-pagination__item::before{display:none}.gov-spin-animation,.gov-pseudo-spin-animation::before{animation:spin 4s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}@keyframes countdown{to{transform:scaleX(0)}}@keyframes progress{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}@keyframes pulse{0%{opacity:1}50%{opacity:0.4}100%{opacity:1}}.gov-pagination{position:relative;display:block;width:100%}.gov-pagination__list{display:flex;align-items:center;flex-wrap:wrap;font-weight:bold;text-align:center}.gov-pagination__list .gov-pagination__item{display:flex;justify-content:center;align-items:center;margin:0;padding:0.125rem;border-radius:var(--gov-border-radius, 0.1875rem);overflow:hidden}.gov-pagination__list .gov-pagination__item--arrow{display:flex}.gov-pagination__list .gov-pagination__item--select{z-index:1;display:flex;overflow:visible;padding:0rem 1rem}.gov-pagination__arrow{margin:0}.gov-pagination__item--more .gov-form-select select{border:none;padding-right:0.75rem !important}.gov-pagination__item--more .gov-form-select .gov-icon{display:none}.gov-pagination__inner{display:flex;justify-content:center;align-items:center;align-self:stretch;width:100%;text-decoration:none}.gov-pagination__inner[wcag-current=true][type=solid][variant=primary] .element{background-color:var(--gov-button-primary-solid-hover-bg, var(--gov-color-primary-700));color:var(--gov-button-primary-solid-hover-color, var(--gov-color-neutral-white))}.gov-pagination__inner[wcag-current=true][type=outlined][variant=primary] .element{background-color:var(--gov-button-primary-outlined-hover-bg, var(--gov-color-primary-100));color:var(--gov-button-primary-outlined-hover-color, var(--gov-color-primary))}.gov-pagination__inner[wcag-current=true][type=base][variant=primary] .element{background-color:var(--gov-button-primary-base-hover-bg, var(--gov-color-primary-100));color:var(--gov-button-primary-base-hover-color, var(--gov-color-primary))}.gov-pagination__inner[wcag-current=true][type=link][variant=primary] .element{background-color:var(--gov-button-primary-link-hover-bg, transparent);color:var(--gov-button-primary-link-hover-color, var(--gov-color-primary))}.gov-pagination__inner[wcag-current=true][type=solid][variant=secondary] .element{background-color:var(--gov-button-secondary-solid-hover-bg, var(--gov-color-secondary-900));color:var(--gov-button-secondary-solid-hover-color, var(--gov-color-neutral-white))}.gov-pagination__inner[wcag-current=true][type=outlined][variant=secondary] .element{background-color:var(--gov-button-secondary-outlined-hover-bg, var(--gov-color-secondary-300));color:var(--gov-button-secondary-outlined-hover-color, var(--gov-color-secondary))}.gov-pagination__inner[wcag-current=true][type=base][variant=secondary] .element{background-color:var(--gov-button-secondary-base-hover-bg, var(--gov-color-secondary-300));color:var(--gov-button-secondary-base-hover-color, var(--gov-color-secondary))}.gov-pagination__inner[wcag-current=true][type=link][variant=secondary] .element{background-color:var(--gov-button-secondary-link-hover-bg, transparent);color:var(--gov-button-secondary-link-hover-color, var(--gov-color-secondary))}.gov-pagination__inner[wcag-current=true][type=solid][variant=error] .element{background-color:var(--gov-button-error-solid-hover-bg, var(--gov-color-error-500));color:var(--gov-button-error-solid-hover-color, var(--gov-color-neutral-white))}.gov-pagination__inner[wcag-current=true][type=outlined][variant=error] .element{background-color:var(--gov-button-error-outlined-hover-bg, var(--gov-color-error-100));color:var(--gov-button-error-outlined-hover-color, var(--gov-color-error))}.gov-pagination__inner[wcag-current=true][type=base][variant=error] .element{background-color:var(--gov-button-error-base-hover-bg, var(--gov-color-error-100));color:var(--gov-button-error-base-hover-color, var(--gov-color-error))}.gov-pagination__inner[wcag-current=true][type=link][variant=error] .element{background-color:var(--gov-button-error-link-hover-bg, transparent);color:var(--gov-button-error-link-hover-color, var(--gov-color-error))}.gov-pagination__inner[wcag-current=true][type=solid][variant=success] .element{background-color:var(--gov-button-success-solid-hover-bg, var(--gov-color-success-600));color:var(--gov-button-success-solid-hover-color, var(--gov-color-neutral-white))}.gov-pagination__inner[wcag-current=true][type=outlined][variant=success] .element{background-color:var(--gov-button-success-outlined-hover-bg, var(--gov-color-success-100));color:var(--gov-button-success-outlined-hover-color, var(--gov-color-success-500))}.gov-pagination__inner[wcag-current=true][type=base][variant=success] .element{background-color:var(--gov-button-success-base-hover-bg, var(--gov-color-success-100));color:var(--gov-button-success-base-hover-color, var(--gov-color-success-500))}.gov-pagination__inner[wcag-current=true][type=link][variant=success] .element{background-color:var(--gov-button-success-link-hover-bg, transparent);color:var(--gov-button-success-link-hover-color, var(--gov-color-success-500))}.gov-pagination__inner[wcag-current=true][type=solid][variant=warning] .element{background-color:var(--gov-button-warning-solid-hover-bg, var(--gov-color-warning-600));color:var(--gov-button-warning-solid-hover-color, var(--gov-color-neutral-white))}.gov-pagination__inner[wcag-current=true][type=outlined][variant=warning] .element{background-color:var(--gov-button-warning-outlined-hover-bg, var(--gov-color-warning-200));color:var(--gov-button-warning-outlined-hover-color, var(--gov-color-warning-500))}.gov-pagination__inner[wcag-current=true][type=base][variant=warning] .element{background-color:var(--gov-button-warning-base-hover-bg, var(--gov-color-warning-200));color:var(--gov-button-warning-base-hover-color, var(--gov-color-warning-500))}.gov-pagination__inner[wcag-current=true][type=link][variant=warning] .element{background-color:var(--gov-button-warning-link-hover-bg, transparent);color:var(--gov-button-warning-link-hover-color, var(--gov-color-warning-500))}.gov-pagination[size=s] .gov-pagination__inner{font-weight:var(--gov-text-s-font-weight);font-size:var(--gov-text-s-font-size);line-height:var(--gov-text-s-line-height);letter-spacing:var(--gov-text-s-letter-spacing);font-weight:inherit}.gov-pagination[size=s] .gov-pagination__inner .element{min-width:var(--gov-pagination-s-button-size, 2rem)}.gov-pagination[size=m] .gov-pagination__inner{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);font-weight:inherit}.gov-pagination[size=m] .gov-pagination__inner .element{min-width:var(--gov-pagination-m-button-size, 2.5rem)}";const S=class{constructor(t){o(this,t);this.govPage=r(this,"gov-page",7);this.type="button";this.current=1;this.total=0;this.inverse=undefined;this.size="m";this.variant="primary";this.pageSize=10;this.maxPages=5;this.link=undefined;this.wcagLabel=undefined;this.wcagLabelledBy=undefined;this.wcagSelectLabel="Vybrat stranu";this.wcagPageLabel="Strana";this.pagination=undefined;this.h=l(this.host);this.pageSelectId=m("GovPageSelect")}validateType(o){i(f,o,w.root)}validateSize(o){i(_,o,w.root)}validateVariant(o){i(y,o,w.root)}recalculate(){this.recalculatePagination(this.current)}componentWillLoad(){this.recalculatePagination(this.current);this.validateSize(this.size);this.validateVariant(this.variant)}async componentDidRender(){if(b()){await v(500);await this.validateWcag()}}recalculatePagination(o){this.pagination=k(this.total,o,this.pageSize,this.maxPages)}isActivePageClass(o,r){if(this.pagination.currentPage===r){return o+" is-active"}else{return o}}prepareLinkUrl(o){if(this.link){return String(this.link).replace("{PAGE}",String(o))}return undefined}resetSelectValue(){if(this.spreadSelectRef){this.spreadSelectRef.getRef().then((o=>{o.value="..."}))}}render(){const o=(o,r)=>{const e=o===-1;const n=p(this.pagination.currentPage===o?true:undefined);return t("gov-button",{href:this.prepareLinkUrl(o),variant:this.variant,size:this.size,type:"base",disabled:e,"on-gov-click":r=>this.onClickHandler(r,o),"wcag-label":o>-1?this.wcagPageLabel+" "+o:undefined,"wcag-current":n,class:w.inner},r)};return t(e,{class:this.h.classes(w.root),type:this.type,variant:this.variant,size:this.size},t("nav",{"aria-label":this.wcagLabel,"aria-labelledby":this.wcagLabelledBy},t("ul",{class:w.list},t("li",{class:u([w.item,w.itemArrow])},o(this.pagination.currentPage>1?1:-1,t("gov-icon",{class:w.arrow,name:"chevron-double-left"}))),t("li",{class:u([w.item,w.itemArrow])},o(this.pagination.startPage<this.pagination.currentPage?this.pagination.currentPage-1:-1,t("gov-icon",{class:w.arrow,name:"chevron-left"}))),this.type=="select"?t("li",{class:u([w.item,w.itemSelect])},t("span",{class:w.inner},t("span",{id:this.pageSelectId,hidden:true},this.wcagSelectLabel),t("gov-form-select",{size:"m",variant:this.variant,"wcag-labelled-by":this.pageSelectId,"on-gov-change":this.onSelectHandler.bind(this)},x(1,this.pagination.totalPages).map((o=>t("option",{value:o,selected:this.pagination.currentPage===o},o)))))):t(a,null,this.pagination.pages.map((r=>t("li",{class:this.isActivePageClass(w.item,r)},o(r,r)))),this.pagination.totalPages?t("li",{class:u([w.item,w.itemMore])},t("span",{class:w.inner},t("span",{id:this.pageSelectId,hidden:true},this.wcagSelectLabel),t("gov-form-select",{size:"m",variant:this.variant,"wcag-labelled-by":this.pageSelectId,ref:o=>this.spreadSelectRef=o,"on-gov-change":this.onSelectHandler.bind(this)},t("option",{selected:true,hidden:true},"..."),x(1,this.pagination.totalPages).map((o=>t("option",{value:o,selected:false},o)))))):null),t("li",{class:u([w.item,w.itemArrow])},o(this.pagination.totalPages>this.pagination.currentPage?this.pagination.currentPage+1:-1,t("gov-icon",{class:w.arrow,name:"chevron-right"}))),t("li",{class:u([w.item,w.itemArrow])},o(this.pagination.totalPages>this.pagination.currentPage?this.pagination.totalPages:-1,t("gov-icon",{class:w.arrow,name:"chevron-double-right"}))))))}onClickHandler(o,r){o.stopPropagation();this.recalculatePagination(r);this.govPage.emit({component:w.root,pagination:this.pagination})}onSelectHandler(o){o.stopPropagation();const r=o.detail.value;const t=parseInt(r);this.resetSelectValue();if(isNaN(t)===false){this.recalculatePagination(t);if(this.link){window.location.href=this.prepareLinkUrl(t)}else{this.govPage.emit({component:w.root,pagination:this.pagination})}}}async validateWcag(){h(this.wcagPageLabel,"wcag-page-label",w.root);d(this.wcagLabel,this.wcagLabelledBy,w.root)}get host(){return n(this)}static get watchers(){return{type:["validateType"],size:["validateSize"],variant:["validateVariant"],current:["recalculate"],total:["recalculate"],pageSize:["recalculate"],maxPages:["recalculate"]}}};S.style=z;export{S as gov_pagination};
2
+ //# sourceMappingURL=p-c289af04.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../packages/core/src/components/gov-pagination/constants.ts","../../../packages/core/src/components/gov-pagination/pagination.ts","../../../packages/core/src/utils/array.utils.ts","../../../packages/core/src/components/gov-pagination/gov-pagination.scss?tag=gov-pagination","../../../packages/core/src/components/gov-pagination/gov-pagination.tsx"],"names":["PaginationSizes","pick","Sizes","PaginationVariants","Variants","PaginationTypes","PaginationClass","root","list","item","itemArrow","itemMore","itemSelect","inner","arrow","paginate","totalItems","currentPage","pageSize","maxPages","totalPages","Math","ceil","startPage","endPage","maxPagesBeforeCurrentPage","floor","maxPagesAfterCurrentPage","startIndex","endIndex","min","pages","Array","from","keys","map","i","createArrayRange","to","Number","isInteger","slice","govPaginationCss","GovPagination","[object Object]","hostRef","this","h","govHost","host","pageSelectId","createID","newValue","validateProp","recalculatePagination","current","validateSize","size","validateVariant","variant","canValidateWcagOnRender","delay","validateWcag","pagination","total","originalClass","page","link","String","replace","undefined","spreadSelectRef","getRef","then","el","value","pageResolver","content","isDisabled","ariaCurrent","toBoolAttrIfDefined","href","prepareLinkUrl","type","disabled","on-gov-click","e","onClickHandler","wcag-label","wcagPageLabel","wcag-current","class","Host","classes","aria-label","wcagLabel","aria-labelledby","wcagLabelledBy","prepareClasses","name","id","hidden","wcagSelectLabel","wcag-labelled-by","on-gov-change","onSelectHandler","bind","selected","Fragment","isActivePageClass","ref","stopPropagation","govPage","emit","component","detail","parseInt","resetSelectValue","isNaN","window","location","validateWcagProp","validateWcagLabel"],"mappings":"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","sourcesContent":["import { Sizes } from '../../core/constants/sizes'\nimport { Variants } from '../../core/constants/variants'\nimport { pick } from '../../utils/utils'\nimport { ValueOf } from '../../types/interfaces'\n\nexport const PaginationSizes = pick(Sizes, ['_S', '_M'])\nexport type PaginationSizeType = `${ValueOf<typeof PaginationSizes>}`\n\nexport const PaginationVariants = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type PaginationVariantType = `${ValueOf<typeof PaginationVariants>}`\n\nexport enum PaginationTypes {\n\tBUTTON = 'button',\n\tSELECT = 'select',\n}\nexport type PaginationType = `${ValueOf<typeof PaginationTypes>}`\n\nexport const PaginationClass = {\n\troot: 'gov-pagination',\n\tlist: 'gov-pagination__list',\n\titem: 'gov-pagination__item',\n\titemArrow: 'gov-pagination__item--arrow',\n\titemMore: 'gov-pagination__item--more',\n\titemSelect: 'gov-pagination__item--select',\n\tinner: 'gov-pagination__inner',\n\tarrow: 'gov-pagination__arrow',\n}\n","export interface Pagination {\n\ttotalItems: number\n\tcurrentPage: number\n\tpageSize: number\n\ttotalPages: number\n\tstartPage: number\n\tendPage: number\n\tstartIndex: number\n\tendIndex: number\n\tpages: number[]\n}\n\nexport function paginate(totalItems: number, currentPage = 1, pageSize = 10, maxPages = 10): Pagination {\n\t// calculate total pages\n\tconst totalPages = Math.ceil(totalItems / pageSize)\n\n\t// ensure current page isn't out of range\n\tif (currentPage < 1) {\n\t\tcurrentPage = 1\n\t} else if (currentPage > totalPages) {\n\t\tcurrentPage = totalPages\n\t}\n\n\tlet startPage: number, endPage: number\n\tif (totalPages <= maxPages) {\n\t\t// total pages less than max so show all pages\n\t\tstartPage = 1\n\t\tendPage = totalPages\n\t} else {\n\t\t// total pages more than max so calculate start and end pages\n\t\tconst maxPagesBeforeCurrentPage = Math.floor(maxPages / 2)\n\t\tconst maxPagesAfterCurrentPage = Math.ceil(maxPages / 2) - 1\n\t\tif (currentPage <= maxPagesBeforeCurrentPage) {\n\t\t\t// current page near the start\n\t\t\tstartPage = 1\n\t\t\tendPage = maxPages\n\t\t} else if (currentPage + maxPagesAfterCurrentPage >= totalPages) {\n\t\t\t// current page near the end\n\t\t\tstartPage = totalPages - maxPages + 1\n\t\t\tendPage = totalPages\n\t\t} else {\n\t\t\t// current page somewhere in the middle\n\t\t\tstartPage = currentPage - maxPagesBeforeCurrentPage\n\t\t\tendPage = currentPage + maxPagesAfterCurrentPage\n\t\t}\n\t}\n\n\t// calculate start and end item indexes\n\tconst startIndex = (currentPage - 1) * pageSize\n\tconst endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1)\n\n\t// create an array of pages to ng-repeat in the pager control\n\tconst pages = Array.from(Array(endPage + 1 - startPage).keys()).map(i => startPage + i)\n\n\t// return object with all pager properties required by the view\n\treturn {\n\t\ttotalItems: totalItems,\n\t\tcurrentPage: currentPage,\n\t\tpageSize: pageSize,\n\t\ttotalPages: totalPages,\n\t\tstartPage: startPage,\n\t\tendPage: endPage,\n\t\tstartIndex: startIndex,\n\t\tendIndex: endIndex,\n\t\tpages: pages,\n\t}\n}\n","export const createArrayRange = (from: number, to: number): number[] => {\n\tif (Number.isInteger(from) && Number.isInteger(to)) {\n\t\treturn [...Array(to + 1).keys()].slice(from)\n\t}\n\treturn []\n}\n","/*\n * Pagination\n */\n\n$class: \".gov-pagination\";\n\n#{$class} {\n\t@include base();\n\t&__list {\n\t\t@extend %reset-ul;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex-wrap: wrap;\n\t\tfont-weight: bold;\n\t\ttext-align: center;\n\t}\n\t&__list &__item {\n\t\t@extend %reset-ul-li;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tmargin: 0;\n\t\tpadding: rem-calc(2);\n\t\tborder-radius: $border-radius;\n\t\toverflow: hidden;\n\t\t&--arrow {\n\t\t\tdisplay: flex;\n\t\t}\n\t\t&--select {\n\t\t\tz-index: 1;\n\t\t\tdisplay: flex;\n\t\t\toverflow: visible;\n\t\t\tpadding: rem-calc(0 16);\n\t\t}\n\t}\n\t&__arrow {\n\t\tmargin: 0;\n\t}\n\t&__item--more {\n\t\t.gov-form-select {\n\t\t\tselect {\n\t\t\t\tborder: none;\n\t\t\t\tpadding-right: rem-calc(12) !important;\n\t\t\t}\n\t\t\t.gov-icon {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\t&__inner {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\talign-self: stretch;\n\t\twidth: 100%;\n\t\ttext-decoration: none;\n\t\t// Use hover styles from gov-button to active page button\n\t\t&[wcag-current=\"true\"] {\n\t\t\t@each $variant, $types in $button-variants {\n\t\t\t\t@each $type, $definitions in $types {\n\t\t\t\t\t&[type=\"#{$type}\"][variant=\"#{$variant}\"] {\n\t\t\t\t\t\t.element {\n\t\t\t\t\t\t\tbackground-color: deep-map-get($button-variants, $variant, $type, \"hover-bg\");\n\t\t\t\t\t\t\tcolor: deep-map-get($button-variants, $variant, $type, \"hover-color\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// VARIANTS\n\t@each $size, $definitions in $pagination-sizes {\n\t\t&[size=\"#{$size}\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__inner {\n\t\t\t\t\t@include typography(get(\"font\", $definitions));\n\t\t\t\t\tfont-weight: inherit;\n\t\t\t\t\t.element {\n\t\t\t\t\t\tmin-width: get(\"button-size\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import Fragment from \"../../helpers/Fragment\"\nimport { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { validateProp } from \"../../helpers/Validate/props\"\nimport {\n\tPaginationClass,\n\tPaginationSizeType,\n\tPaginationSizes,\n\tPaginationVariantType,\n\tPaginationType,\n\tPaginationTypes,\n\tPaginationVariants,\n} from \"./constants\"\nimport { govHost, prepareClasses } from \"../../helpers/Dom/template\"\nimport { paginate, Pagination } from \"./pagination\"\nimport { toBoolAttrIfDefined } from \"../../helpers/Dom/template\"\nimport { validateWcagLabel, validateWcagProp } from \"../../helpers/Validate/wcag\"\nimport { canValidateWcagOnRender } from \"../../helpers/Dom/win\"\nimport { delay } from \"../../utils/utils\"\nimport { createID } from \"../../utils/string.utils\"\nimport { GovHost } from \"../../helpers/Dom/template.types\"\nimport {createArrayRange } from \"../../utils/array.utils\"\nimport { FormSelectEvent } from \"../gov-form/select/gov-form-select.types\"\nimport { PaginationEvent } from \"./gov-pagination.types\"\n\n@Component({\n\ttag: \"gov-pagination\",\n\tstyleUrl: \"gov-pagination.scss\",\n})\nexport class GovPagination {\n\tprivate h: GovHost\n\tprivate readonly pageSelectId: string\n\n\tprivate spreadSelectRef?: HTMLGovFormSelectElement\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.pageSelectId = createID(\"GovPageSelect\")\n\t}\n\n\t@Element() readonly host: HTMLGovPaginationElement\n\t/**\n\t * Pagination type\n\t */\n\t@Prop() readonly type: PaginationType = \"button\"\n\t/**\n\t * Currently displayed page\n\t */\n\t@Prop() readonly current: number = 1\n\t/**\n\t * Total count of entries\n\t */\n\t@Prop() readonly total: number = 0\n\t/**\n\t * Set on active page\n\t */\n\t@Prop() readonly inverse: boolean\n\t/**\n\t * Pagination's size\n\t */\n\t@Prop() readonly size?: PaginationSizeType = \"m\"\n\t/**\n\t * Style variation of the pagination.\n\t */\n\t@Prop() readonly variant?: PaginationVariantType = \"primary\"\n\t/**\n\t * Maximum number of entries per page\n\t */\n\t@Prop({ attribute: \"page-size\" }) readonly pageSize: number = 10\n\t/**\n\t * Maximum pages displayed for selection\n\t */\n\t@Prop({ attribute: \"max-pages\" }) readonly maxPages: number = 5\n\t/**\n\t * Setting a link to redirect to a given page.\n\t * The {PAGE} wildcard can be used in the link to replace the page number.\n\t * Note that in the case of paging through a link, it is always necessary to send to the component the current page where the user is.\n\t */\n\t@Prop() readonly link: string\n\t/**\n\t * Adds accessible label for the pagination that is only shown for screen readers.\n\t */\n\t@Prop({ attribute: \"wcag-label\" }) readonly wcagLabel: string\n\t/**\n\t * Indicates the id of a component that labels the pagination.\n\t */\n\t@Prop({ attribute: \"wcag-labelled-by\" }) readonly wcagLabelledBy: string\n\t/**\n\t * Adds accessible label for the page select\n\t */\n\t@Prop({ attribute: \"wcag-select-label\" }) readonly wcagSelectLabel: string = \"Vybrat stranu\"\n\t/**\n\t * Adds accessible label for the page item\n\t */\n\t@Prop({ attribute: \"wcag-page-label\" }) readonly wcagPageLabel: string = \"Strana\"\n\t/**\n\t * Event called when changing the page with the current setting of the whole paging\n\t */\n\t@Event({ eventName: \"gov-page\" }) govPage: EventEmitter<PaginationEvent>\n\n\t@State() pagination: Pagination\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(PaginationTypes, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(PaginationSizes, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(PaginationVariants, newValue, PaginationClass.root)\n\t}\n\n\t@Watch(\"current\")\n\t@Watch(\"total\")\n\t@Watch(\"pageSize\")\n\t@Watch(\"maxPages\")\n\trecalculate(): void {\n\t\tthis.recalculatePagination(this.current)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.recalculatePagination(this.current)\n\t\tthis.validateSize(this.size)\n\t\tthis.validateVariant(this.variant)\n\t}\n\n\tasync componentDidRender() {\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\tprivate recalculatePagination(currentPage: number) {\n\t\tthis.pagination = paginate(this.total, currentPage, this.pageSize, this.maxPages)\n\t}\n\n\tprivate isActivePageClass(originalClass: string, page: number) {\n\t\tif (this.pagination.currentPage === page) {\n\t\t\treturn originalClass + \" is-active\"\n\t\t} else {\n\t\t\treturn originalClass\n\t\t}\n\t}\n\n\tprivate prepareLinkUrl(page: number) {\n\t\tif (this.link) {\n\t\t\treturn String(this.link).replace(\"{PAGE}\", String(page))\n\t\t}\n\t\treturn undefined\n\t}\n\n\tprivate resetSelectValue() {\n\t\tif (this.spreadSelectRef) {\n\t\t\tthis.spreadSelectRef.getRef()\n\t\t\t\t.then((el: HTMLSelectElement) => {\n\t\t\t\t\tel.value = '...'\n\t\t\t\t})\n\t\t}\n\t}\n\n\trender() {\n\t\tconst pageResolver = (page: number, content: any) => {\n\t\t\tconst isDisabled = page === -1\n\t\t\tconst ariaCurrent = toBoolAttrIfDefined(this.pagination.currentPage === page ? true : undefined)\n\t\t\treturn (\n\t\t\t\t<gov-button\n\t\t\t\t\thref={this.prepareLinkUrl(page)}\n\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\ttype=\"base\"\n\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\ton-gov-click={(e) => this.onClickHandler(e, page)}\n\t\t\t\t\twcag-label={page > -1 ? this.wcagPageLabel + \" \" + page : undefined}\n\t\t\t\t\twcag-current={ariaCurrent}\n\t\t\t\t\tclass={PaginationClass.inner}>\n\t\t\t\t\t{content}\n\t\t\t\t</gov-button>\n\t\t\t)\n\t\t}\n\t\treturn (\n\t\t\t<Host class={this.h.classes(PaginationClass.root)} type={this.type} variant={this.variant} size={this.size}>\n\t\t\t\t<nav aria-label={this.wcagLabel} aria-labelledby={this.wcagLabelledBy}>\n\t\t\t\t\t<ul class={PaginationClass.list}>\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.currentPage > 1 ? 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-double-left\"></gov-icon>,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.startPage < this.pagination.currentPage ? this.pagination.currentPage - 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-left\"></gov-icon>,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t{this.type == \"select\" ? (\n\t\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemSelect])}>\n\t\t\t\t\t\t\t\t<span class={PaginationClass.inner}>\n\t\t\t\t\t\t\t\t\t<span id={this.pageSelectId} hidden>\n\t\t\t\t\t\t\t\t\t\t{this.wcagSelectLabel}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<gov-form-select\n\t\t\t\t\t\t\t\t\t\tsize=\"m\"\n\t\t\t\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\t\t\t\twcag-labelled-by={this.pageSelectId}\n\t\t\t\t\t\t\t\t\t\ton-gov-change={this.onSelectHandler.bind(this)}>\n\t\t\t\t\t\t\t\t\t\t{createArrayRange(1, this.pagination.totalPages).map(page => (\n\t\t\t\t\t\t\t\t\t\t\t<option value={page} selected={this.pagination.currentPage === page}>\n\t\t\t\t\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</gov-form-select>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{this.pagination.pages.map(page => (\n\t\t\t\t\t\t\t\t\t<li class={this.isActivePageClass(PaginationClass.item, page)}>{pageResolver(page, page)}</li>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{this.pagination.totalPages ? (\n\t\t\t\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemMore])}>\n\t\t\t\t\t\t\t\t\t<span class={PaginationClass.inner}>\n\t\t\t\t\t\t\t\t\t\t<span id={this.pageSelectId} hidden>\n\t\t\t\t\t\t\t\t\t\t\t{this.wcagSelectLabel}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<gov-form-select\n\t\t\t\t\t\t\t\t\t\t\tsize=\"m\"\n\t\t\t\t\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\t\t\t\t\twcag-labelled-by={this.pageSelectId}\n\t\t\t\t\t\t\t\t\t\t\tref={el => (this.spreadSelectRef = el as HTMLGovFormSelectElement)}\n\t\t\t\t\t\t\t\t\t\t\ton-gov-change={this.onSelectHandler.bind(this)}>\n\t\t\t\t\t\t\t\t\t\t\t<option selected hidden>...</option>\n\t\t\t\t\t\t\t\t\t\t\t{createArrayRange(1, this.pagination.totalPages).map(page => (\n\t\t\t\t\t\t\t\t\t\t\t\t<option value={page} selected={false}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</gov-form-select>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.totalPages > this.pagination.currentPage ? this.pagination.currentPage + 1 : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-right\"></gov-icon>,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t<li class={prepareClasses([PaginationClass.item, PaginationClass.itemArrow])}>\n\t\t\t\t\t\t\t{pageResolver(\n\t\t\t\t\t\t\t\tthis.pagination.totalPages > this.pagination.currentPage ? this.pagination.totalPages : -1,\n\t\t\t\t\t\t\t\t<gov-icon class={PaginationClass.arrow} name=\"chevron-double-right\"></gov-icon>,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onClickHandler(e: CustomEvent, page: number): void {\n\t\te.stopPropagation()\n\t\tthis.recalculatePagination(page)\n\t\tthis.govPage.emit({\n\t\t\tcomponent: PaginationClass.root,\n\t\t\tpagination: this.pagination\n\t\t})\n\t}\n\n\tprivate onSelectHandler(e: CustomEvent<FormSelectEvent>): void {\n\t\te.stopPropagation()\n\t\tconst value = e.detail.value\n\t\tconst page = parseInt(value)\n\t\tthis.resetSelectValue()\n\t\tif (isNaN(page) === false) {\n\t\t\tthis.recalculatePagination(page)\n\t\t\tif (this.link) {\n\t\t\t\twindow.location.href = this.prepareLinkUrl(page)\n\t\t\t} else {\n\t\t\t\tthis.govPage.emit({\n\t\t\t\t\tcomponent: PaginationClass.root,\n\t\t\t\t\tpagination: this.pagination\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagProp(this.wcagPageLabel, \"wcag-page-label\", PaginationClass.root)\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, PaginationClass.root)\n\t}\n}\n"]}