@gov-design-system-ce/components 4.0.8-rc12 → 4.0.8-rc13
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/cjs/core.cjs.js +1 -1
- package/dist/cjs/gov-form-input.cjs.entry.js +4 -3
- package/dist/cjs/gov-form-input.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-icon.cjs.entry.js +1 -1
- package/dist/cjs/gov-pagination.cjs.entry.js +3 -1
- package/dist/cjs/gov-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-tabs-item.cjs.entry.js +12 -1
- package/dist/cjs/gov-tabs-item.cjs.entry.js.map +1 -1
- package/dist/cjs/gov-tabs.cjs.entry.js +33 -41
- package/dist/cjs/gov-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/gov-form/input/gov-form-input.js +22 -4
- package/dist/collection/components/gov-form/input/gov-form-input.js.map +1 -1
- package/dist/collection/components/gov-pagination/gov-pagination.js +20 -1
- package/dist/collection/components/gov-pagination/gov-pagination.js.map +1 -1
- package/dist/collection/components/gov-tabs/gov-tabs-item.js +20 -2
- package/dist/collection/components/gov-tabs/gov-tabs-item.js.map +1 -1
- package/dist/collection/components/gov-tabs/gov-tabs.js +52 -43
- package/dist/collection/components/gov-tabs/gov-tabs.js.map +1 -1
- package/dist/components/gov-accordion-item.js +1 -1
- package/dist/components/gov-attachments-item.js +1 -1
- package/dist/components/gov-breadcrumbs.js +1 -1
- package/dist/components/gov-button.js +1 -1
- package/dist/components/gov-card.js +1 -1
- package/dist/components/gov-chip.js +1 -1
- package/dist/components/gov-form-autocomplete.js +1 -1
- package/dist/components/gov-form-checkbox.js +1 -1
- package/dist/components/gov-form-file.js +1 -1
- package/dist/components/gov-form-input.js +1 -1
- package/dist/components/gov-form-multi-select.js +1 -1
- package/dist/components/gov-form-select.js +1 -1
- package/dist/components/gov-icon.js +1 -1
- package/dist/components/gov-infobar.js +1 -1
- package/dist/components/gov-loading.js +1 -1
- package/dist/components/gov-modal.js +1 -1
- package/dist/components/gov-pagination.js +1 -1
- package/dist/components/gov-pagination.js.map +1 -1
- package/dist/components/gov-prompt.js +1 -1
- package/dist/components/gov-side-nav-item.js +1 -1
- package/dist/components/gov-tabs-item.js +1 -1
- package/dist/components/gov-tabs-item.js.map +1 -1
- package/dist/components/gov-tabs.js +1 -1
- package/dist/components/gov-tabs.js.map +1 -1
- package/dist/components/gov-tag.js +1 -1
- package/dist/components/gov-toast.js +1 -1
- package/dist/components/gov-tooltip-content.js +1 -1
- package/dist/components/gov-wizard-item.js +1 -1
- package/dist/components/{p-659a5e9b.js → p-137f86d1.js} +2 -2
- package/dist/components/{p-93748f78.js → p-3605bf8d.js} +2 -2
- package/dist/components/{p-6b70bb05.js → p-479edf55.js} +2 -2
- package/dist/components/p-479edf55.js.map +1 -0
- package/dist/components/{p-f5db4029.js → p-84d0a332.js} +2 -2
- package/dist/components/{p-24033114.js → p-9c9fc4ae.js} +2 -2
- package/dist/components/{p-4fa21d88.js → p-d9dda24d.js} +2 -2
- package/dist/components/{p-44f0bc16.js → p-e01962d9.js} +2 -2
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-7b210966.entry.js → p-0d99a3d8.entry.js} +2 -2
- package/dist/core/p-0d99a3d8.entry.js.map +1 -0
- package/dist/core/{p-ea506584.entry.js → p-10dbd2e1.entry.js} +2 -2
- package/dist/core/p-56d42f3e.entry.js +2 -0
- package/dist/core/p-56d42f3e.entry.js.map +1 -0
- package/dist/core/p-618df4db.entry.js +2 -0
- package/dist/core/p-618df4db.entry.js.map +1 -0
- package/dist/core/{p-6def30bc.entry.js → p-aa9b5731.entry.js} +2 -2
- package/dist/core/p-aa9b5731.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/gov-form-input.entry.js +4 -3
- package/dist/esm/gov-form-input.entry.js.map +1 -1
- package/dist/esm/gov-icon.entry.js +1 -1
- package/dist/esm/gov-pagination.entry.js +3 -1
- package/dist/esm/gov-pagination.entry.js.map +1 -1
- package/dist/esm/gov-tabs-item.entry.js +13 -2
- package/dist/esm/gov-tabs-item.entry.js.map +1 -1
- package/dist/esm/gov-tabs.entry.js +34 -42
- package/dist/esm/gov-tabs.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/hydrate/index.js +56 -47
- package/dist/hydrate/index.mjs +56 -47
- package/dist/types/components/gov-form/input/gov-form-input.d.ts +5 -1
- package/dist/types/components/gov-pagination/gov-pagination.d.ts +5 -0
- package/dist/types/components/gov-tabs/gov-tabs-item.d.ts +1 -0
- package/dist/types/components/gov-tabs/gov-tabs.d.ts +6 -4
- package/dist/types/components.d.ts +22 -2
- package/package.json +1 -1
- package/dist/components/p-6b70bb05.js.map +0 -1
- package/dist/core/p-24e32e0f.entry.js +0 -2
- package/dist/core/p-24e32e0f.entry.js.map +0 -1
- package/dist/core/p-6def30bc.entry.js.map +0 -1
- package/dist/core/p-7b210966.entry.js.map +0 -1
- package/dist/core/p-9ae7429a.entry.js +0 -2
- package/dist/core/p-9ae7429a.entry.js.map +0 -1
- /package/dist/components/{p-659a5e9b.js.map → p-137f86d1.js.map} +0 -0
- /package/dist/components/{p-93748f78.js.map → p-3605bf8d.js.map} +0 -0
- /package/dist/components/{p-f5db4029.js.map → p-84d0a332.js.map} +0 -0
- /package/dist/components/{p-24033114.js.map → p-9c9fc4ae.js.map} +0 -0
- /package/dist/components/{p-4fa21d88.js.map → p-d9dda24d.js.map} +0 -0
- /package/dist/components/{p-44f0bc16.js.map → p-e01962d9.js.map} +0 -0
- /package/dist/core/{p-ea506584.entry.js.map → p-10dbd2e1.entry.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as o,H as e,c as t,h as r,d as a}from"./p-d6759ac3.js";import{F as n}from"./p-1c1d0bbe.js";import{v as i}from"./p-344c72d7.js";import{S as s}from"./p-92f420cb.js";import{V as c}from"./p-03dbb8b1.js";import{p as g,d as l}from"./p-e0e2e9c1.js";import{g as v,p as u,t as p}from"./p-d687df8f.js";import{a as h,v as d}from"./p-6b0471a8.js";import{c as b}from"./p-e618f1cb.js";import{c as m}from"./p-95d41a3b.js";import{c as _}from"./p-0a6a373e.js";import{d as y}from"./p-24033114.js";import{d as f}from"./p-659a5e9b.js";import{d as w}from"./p-f5db4029.js";const k=g(s,["_S","_M"]);const x=g(c,["PRIMARY","SECONDARY"]);var z;(function(o){o["BUTTON"]="button";o["SELECT"]="select"})(z||(z={}));const j={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 S(o,e=1,t=10,r=10){const a=Math.ceil(o/t);if(e<1){e=1}else if(e>a){e=a}let n,i;if(a<=r){n=1;i=a}else{const o=Math.floor(r/2);const t=Math.ceil(r/2)-1;if(e<=o){n=1;i=r}else if(e+t>=a){n=a-r+1;i=a}else{n=e-o;i=e+t}}const s=(e-1)*t;const c=Math.min(s+t-1,o-1);const g=Array.from(Array(i+1-n).keys()).map((o=>n+o));return{totalItems:o,currentPage:e,pageSize:t,totalPages:a,startPage:n,endPage:i,startIndex:s,endIndex:c,pages:g}}const P=".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 !important;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 E=P;const A=o(class o extends e{constructor(){super();this.__registerHost();this.govPage=t(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.labelPrev="Přejít o stranu zpět";this.labelStart="Přejít na začátek";this.labelNext="Přejít na další stranu";this.labelEnd="Přejít na konec";this.pagination=undefined;this.h=v(this.host);this.pageSelectId=m("GovPageSelect")}validateType(o){i(z,o,j.root)}validateSize(o){i(k,o,j.root)}validateVariant(o){i(x,o,j.root)}recalculate(){this.recalculatePagination(this.current)}componentWillLoad(){this.recalculatePagination(this.current);this.validateSize(this.size);this.validateVariant(this.variant)}async componentDidRender(){if(b()){await l(500);await this.validateWcag()}}recalculatePagination(o){this.pagination=S(this.total,o,this.pageSize,this.maxPages)}isActivePageClass(o,e){if(this.pagination.currentPage===e){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,e,t)=>{const a=o===-1;const n=p(this.pagination.currentPage===o?true:undefined);return r("gov-button",{href:this.prepareLinkUrl(o),variant:this.variant,size:this.size,type:"base",disabled:a,"on-gov-click":e=>this.onClickHandler(e,o),"wcag-label":t?t:o>-1?this.wcagPageLabel+" "+o:undefined,"wcag-current":n,class:j.inner},e)};return r(a,{class:this.h.classes(j.root),type:this.type,variant:this.variant,size:this.size},r("nav",{"aria-label":this.wcagLabel,"aria-labelledby":this.wcagLabelledBy},r("ul",{class:j.list},r("li",{class:u([j.item,j.itemArrow])},o(this.pagination.currentPage>1?1:-1,r("gov-icon",{class:j.arrow,name:"chevron-double-left"}),this.labelStart)),r("li",{class:u([j.item,j.itemArrow])},o(this.pagination.startPage<this.pagination.currentPage?this.pagination.currentPage-1:-1,r("gov-icon",{class:j.arrow,name:"chevron-left"}),this.labelPrev)),this.type=="select"?r("li",{class:u([j.item,j.itemSelect])},r("span",{class:j.inner},r("span",{id:this.pageSelectId,hidden:true},this.wcagSelectLabel),r("gov-form-select",{size:this.size,variant:this.variant,"wcag-labelled-by":this.pageSelectId,"on-gov-change":this.onSelectHandler.bind(this)},_(1,this.pagination.totalPages).map((o=>r("option",{value:o,selected:this.pagination.currentPage===o},o)))))):r(n,null,this.pagination.pages.map((e=>r("li",{class:this.isActivePageClass(j.item,e)},o(e,e,"")))),this.pagination.totalPages?r("li",{class:u([j.item,j.itemMore])},r("span",{class:j.inner},r("span",{id:this.pageSelectId,hidden:true},this.wcagSelectLabel),r("gov-form-select",{size:this.size,variant:this.variant,"wcag-labelled-by":this.pageSelectId,ref:o=>this.spreadSelectRef=o,"on-gov-change":this.onSelectHandler.bind(this)},r("option",{selected:true,hidden:true},"..."),_(1,this.pagination.totalPages).map((o=>r("option",{value:o,selected:false},o)))))):null),r("li",{class:u([j.item,j.itemArrow])},o(this.pagination.totalPages>this.pagination.currentPage?this.pagination.currentPage+1:-1,r("gov-icon",{class:j.arrow,name:"chevron-right"}),this.labelNext)),r("li",{class:u([j.item,j.itemArrow])},o(this.pagination.totalPages>this.pagination.currentPage?this.pagination.totalPages:-1,r("gov-icon",{class:j.arrow,name:"chevron-double-right"}),this.labelEnd)))))}onClickHandler(o,e){o.stopPropagation();this.recalculatePagination(e);this.govPage.emit({component:j.root,pagination:this.pagination})}onSelectHandler(o){o.stopPropagation();const e=o.detail.value;const t=parseInt(e);this.resetSelectValue();if(isNaN(t)===false){this.recalculatePagination(t);if(this.link){window.location.href=this.prepareLinkUrl(t)}else{this.govPage.emit({component:j.root,pagination:this.pagination})}}}async validateWcag(){h(this.wcagPageLabel,"wcag-page-label",j.root);d(this.wcagLabel,this.wcagLabelledBy,j.root)}get host(){return this}static get watchers(){return{type:["validateType"],size:["validateSize"],variant:["validateVariant"],current:["recalculate"],total:["recalculate"],pageSize:["recalculate"],maxPages:["recalculate"]}}static get style(){return E}},[0,"gov-pagination",{type:[1],current:[2],total:[2],inverse:[4],size:[1],variant:[1],pageSize:[2,"page-size"],maxPages:[2,"max-pages"],link:[1],wcagLabel:[1,"wcag-label"],wcagLabelledBy:[1,"wcag-labelled-by"],wcagSelectLabel:[1,"wcag-select-label"],wcagPageLabel:[1,"wcag-page-label"],labelPrev:[1,"label-prev"],labelStart:[1,"label-start"],labelNext:[1,"label-next"],labelEnd:[1,"label-end"],pagination:[32],validateWcag:[64]},undefined,{type:["validateType"],size:["validateSize"],variant:["validateVariant"],current:["recalculate"],total:["recalculate"],pageSize:["recalculate"],maxPages:["recalculate"]}]);function M(){if(typeof customElements==="undefined"){return}const o=["gov-pagination","gov-button","gov-form-select","gov-icon"];o.forEach((o=>{switch(o){case"gov-pagination":if(!customElements.get(o)){customElements.define(o,A)}break;case"gov-button":if(!customElements.get(o)){y()}break;case"gov-form-select":if(!customElements.get(o)){f()}break;case"gov-icon":if(!customElements.get(o)){w()}break}}))}M();const L=A;const V=M;export{L as GovPagination,V as defineCustomElement};
|
|
1
|
+
import{p as o,H as e,c as t,h as r,d as a}from"./p-d6759ac3.js";import{F as n}from"./p-1c1d0bbe.js";import{v as i}from"./p-344c72d7.js";import{S as s}from"./p-92f420cb.js";import{V as c}from"./p-03dbb8b1.js";import{p as g,d as l}from"./p-e0e2e9c1.js";import{g as v,p as u,t as p}from"./p-d687df8f.js";import{a as h,v as d}from"./p-6b0471a8.js";import{c as b}from"./p-e618f1cb.js";import{c as m}from"./p-95d41a3b.js";import{c as f}from"./p-0a6a373e.js";import{d as _}from"./p-9c9fc4ae.js";import{d as y}from"./p-137f86d1.js";import{d as w}from"./p-84d0a332.js";const k=g(s,["_S","_M"]);const x=g(c,["PRIMARY","SECONDARY"]);var z;(function(o){o["BUTTON"]="button";o["SELECT"]="select"})(z||(z={}));const j={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 S(o,e=1,t=10,r=10){const a=Math.ceil(o/t);if(e<1){e=1}else if(e>a){e=a}let n,i;if(a<=r){n=1;i=a}else{const o=Math.floor(r/2);const t=Math.ceil(r/2)-1;if(e<=o){n=1;i=r}else if(e+t>=a){n=a-r+1;i=a}else{n=e-o;i=e+t}}const s=(e-1)*t;const c=Math.min(s+t-1,o-1);const g=Array.from(Array(i+1-n).keys()).map((o=>n+o));return{totalItems:o,currentPage:e,pageSize:t,totalPages:a,startPage:n,endPage:i,startIndex:s,endIndex:c,pages:g}}const P=".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 !important;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 E=P;const A=o(class o extends e{constructor(){super();this.__registerHost();this.govPage=t(this,"gov-page",7);this.type="button";this.current=1;this.total=0;this.inverse=undefined;this.selectIdentifier=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.labelPrev="Přejít o stranu zpět";this.labelStart="Přejít na začátek";this.labelNext="Přejít na další stranu";this.labelEnd="Přejít na konec";this.pagination=undefined;this.h=v(this.host);this.pageSelectId=m("GovPageSelect");this.selectId=m("GovSelect")}validateType(o){i(z,o,j.root)}validateSize(o){i(k,o,j.root)}validateVariant(o){i(x,o,j.root)}recalculate(){this.recalculatePagination(this.current)}componentWillLoad(){this.recalculatePagination(this.current);this.validateSize(this.size);this.validateVariant(this.variant)}async componentDidRender(){if(b()){await l(500);await this.validateWcag()}}recalculatePagination(o){this.pagination=S(this.total,o,this.pageSize,this.maxPages)}isActivePageClass(o,e){if(this.pagination.currentPage===e){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,e,t)=>{const a=o===-1;const n=p(this.pagination.currentPage===o?true:undefined);return r("gov-button",{href:this.prepareLinkUrl(o),variant:this.variant,size:this.size,type:"base",disabled:a,"on-gov-click":e=>this.onClickHandler(e,o),"wcag-label":t?t:o>-1?this.wcagPageLabel+" "+o:undefined,"wcag-current":n,class:j.inner},e)};return r(a,{class:this.h.classes(j.root),type:this.type,variant:this.variant,size:this.size},r("nav",{"aria-label":this.wcagLabel,"aria-labelledby":this.wcagLabelledBy},r("ul",{class:j.list},r("li",{class:u([j.item,j.itemArrow])},o(this.pagination.currentPage>1?1:-1,r("gov-icon",{class:j.arrow,name:"chevron-double-left"}),this.labelStart)),r("li",{class:u([j.item,j.itemArrow])},o(this.pagination.startPage<this.pagination.currentPage?this.pagination.currentPage-1:-1,r("gov-icon",{class:j.arrow,name:"chevron-left"}),this.labelPrev)),this.type=="select"?r("li",{class:u([j.item,j.itemSelect])},r("span",{class:j.inner},r("span",{id:this.pageSelectId,hidden:true},this.wcagSelectLabel),r("gov-form-select",{size:this.size,variant:this.variant,identifier:this.selectIdentifier||this.selectId,"wcag-labelled-by":this.pageSelectId,"on-gov-change":this.onSelectHandler.bind(this)},f(1,this.pagination.totalPages).map((o=>r("option",{value:o,selected:this.pagination.currentPage===o},o)))))):r(n,null,this.pagination.pages.map((e=>r("li",{class:this.isActivePageClass(j.item,e)},o(e,e,"")))),this.pagination.totalPages?r("li",{class:u([j.item,j.itemMore])},r("span",{class:j.inner},r("span",{id:this.pageSelectId,hidden:true},this.wcagSelectLabel),r("gov-form-select",{size:this.size,variant:this.variant,identifier:this.selectIdentifier||this.selectId,"wcag-labelled-by":this.pageSelectId,ref:o=>this.spreadSelectRef=o,"on-gov-change":this.onSelectHandler.bind(this)},r("option",{selected:true,hidden:true},"..."),f(1,this.pagination.totalPages).map((o=>r("option",{value:o,selected:false},o)))))):null),r("li",{class:u([j.item,j.itemArrow])},o(this.pagination.totalPages>this.pagination.currentPage?this.pagination.currentPage+1:-1,r("gov-icon",{class:j.arrow,name:"chevron-right"}),this.labelNext)),r("li",{class:u([j.item,j.itemArrow])},o(this.pagination.totalPages>this.pagination.currentPage?this.pagination.totalPages:-1,r("gov-icon",{class:j.arrow,name:"chevron-double-right"}),this.labelEnd)))))}onClickHandler(o,e){o.stopPropagation();this.recalculatePagination(e);this.govPage.emit({component:j.root,pagination:this.pagination})}onSelectHandler(o){o.stopPropagation();const e=o.detail.value;const t=parseInt(e);this.resetSelectValue();if(isNaN(t)===false){this.recalculatePagination(t);if(this.link){window.location.href=this.prepareLinkUrl(t)}else{this.govPage.emit({component:j.root,pagination:this.pagination})}}}async validateWcag(){h(this.wcagPageLabel,"wcag-page-label",j.root);d(this.wcagLabel,this.wcagLabelledBy,j.root)}get host(){return this}static get watchers(){return{type:["validateType"],size:["validateSize"],variant:["validateVariant"],current:["recalculate"],total:["recalculate"],pageSize:["recalculate"],maxPages:["recalculate"]}}static get style(){return E}},[0,"gov-pagination",{type:[1],current:[2],total:[2],inverse:[4],selectIdentifier:[1,"select-identifier"],size:[1],variant:[1],pageSize:[2,"page-size"],maxPages:[2,"max-pages"],link:[1],wcagLabel:[1,"wcag-label"],wcagLabelledBy:[1,"wcag-labelled-by"],wcagSelectLabel:[1,"wcag-select-label"],wcagPageLabel:[1,"wcag-page-label"],labelPrev:[1,"label-prev"],labelStart:[1,"label-start"],labelNext:[1,"label-next"],labelEnd:[1,"label-end"],pagination:[32],validateWcag:[64]},undefined,{type:["validateType"],size:["validateSize"],variant:["validateVariant"],current:["recalculate"],total:["recalculate"],pageSize:["recalculate"],maxPages:["recalculate"]}]);function M(){if(typeof customElements==="undefined"){return}const o=["gov-pagination","gov-button","gov-form-select","gov-icon"];o.forEach((o=>{switch(o){case"gov-pagination":if(!customElements.get(o)){customElements.define(o,A)}break;case"gov-button":if(!customElements.get(o)){_()}break;case"gov-form-select":if(!customElements.get(o)){y()}break;case"gov-icon":if(!customElements.get(o)){w()}break}}))}M();const I=A;const L=M;export{I as GovPagination,L as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=gov-pagination.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"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","govPaginationCss","GovPaginationStyle0","GovPagination","proxyCustomElement","H","constructor","this","h","govHost","host","pageSelectId","createID","validateType","newValue","validateProp","validateSize","validateVariant","recalculate","recalculatePagination","current","componentWillLoad","size","variant","componentDidRender","canValidateWcagOnRender","delay","validateWcag","pagination","total","isActivePageClass","originalClass","page","prepareLinkUrl","link","String","replace","undefined","resetSelectValue","spreadSelectRef","getRef","then","el","value","render","pageResolver","content","description","isDisabled","ariaCurrent","toBoolAttrIfDefined","href","type","disabled","e","onClickHandler","wcagPageLabel","class","Host","classes","wcagLabel","wcagLabelledBy","prepareClasses","name","labelStart","labelPrev","id","hidden","wcagSelectLabel","onSelectHandler","bind","createArrayRange","selected","Fragment","ref","labelNext","labelEnd","stopPropagation","govPage","emit","component","detail","parseInt","isNaN","window","location","validateWcagProp","validateWcagLabel"],"sources":["../../../packages/core/src/components/gov-pagination/constants.ts","../../../packages/core/src/components/gov-pagination/pagination.ts","../../../packages/core/src/components/gov-pagination/gov-pagination.scss?tag=gov-pagination","../../../packages/core/src/components/gov-pagination/gov-pagination.tsx"],"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","/*\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 !important;\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\tPaginationSizes,\n\tPaginationSizeType,\n\tPaginationType,\n\tPaginationTypes,\n\tPaginationVariants,\n\tPaginationVariantType,\n} from \"./constants\"\nimport {govHost, prepareClasses, toBoolAttrIfDefined} from \"../../helpers/Dom/template\"\nimport {paginate, Pagination} from \"./pagination\"\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 * Description of the possibility to go back one page\n\t */\n\t@Prop({attribute: \"label-prev\"}) readonly labelPrev = 'Přejít o stranu zpět'\n\t/**\n\t * Description of the option to go to the top of paging\n\t */\n\t@Prop({attribute: \"label-start\"}) readonly labelStart = 'Přejít na začátek'\n\t/**\n\t * Description of the option to go to the end of paging\n\t */\n\t@Prop({attribute: \"label-next\"}) readonly labelNext = 'Přejít na další stranu'\n\t/**\n\t * Description of the option to move one page forward\n\t */\n\t@Prop({attribute: \"label-end\"}) readonly labelEnd = 'Přejít na konec'\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, description: string) => {\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={description ? description : 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\tthis.labelStart\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\tthis.labelPrev\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={this.size}\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={this.size}\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\tthis.labelNext\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\tthis.labelEnd\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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"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","govPaginationCss","GovPaginationStyle0","GovPagination","proxyCustomElement","H","constructor","this","h","govHost","host","pageSelectId","createID","selectId","validateType","newValue","validateProp","validateSize","validateVariant","recalculate","recalculatePagination","current","componentWillLoad","size","variant","componentDidRender","canValidateWcagOnRender","delay","validateWcag","pagination","total","isActivePageClass","originalClass","page","prepareLinkUrl","link","String","replace","undefined","resetSelectValue","spreadSelectRef","getRef","then","el","value","render","pageResolver","content","description","isDisabled","ariaCurrent","toBoolAttrIfDefined","href","type","disabled","e","onClickHandler","wcagPageLabel","class","Host","classes","wcagLabel","wcagLabelledBy","prepareClasses","name","labelStart","labelPrev","id","hidden","wcagSelectLabel","identifier","selectIdentifier","onSelectHandler","bind","createArrayRange","selected","Fragment","ref","labelNext","labelEnd","stopPropagation","govPage","emit","component","detail","parseInt","isNaN","window","location","validateWcagProp","validateWcagLabel"],"sources":["../../../packages/core/src/components/gov-pagination/constants.ts","../../../packages/core/src/components/gov-pagination/pagination.ts","../../../packages/core/src/components/gov-pagination/gov-pagination.scss?tag=gov-pagination","../../../packages/core/src/components/gov-pagination/gov-pagination.tsx"],"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","/*\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 !important;\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\tPaginationSizes,\n\tPaginationSizeType,\n\tPaginationType,\n\tPaginationTypes,\n\tPaginationVariants,\n\tPaginationVariantType,\n} from \"./constants\"\nimport {govHost, prepareClasses, toBoolAttrIfDefined} from \"../../helpers/Dom/template\"\nimport {paginate, Pagination} from \"./pagination\"\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\tprivate readonly selectId: string\n\n\tprivate spreadSelectRef?: HTMLGovFormSelectElement\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.pageSelectId = createID(\"GovPageSelect\")\n\t\tthis.selectId = createID(\"GovSelect\")\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 * Custom select identifier.\n\t */\n\t@Prop({attribute: 'select-identifier'}) readonly selectIdentifier: string\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 * Description of the possibility to go back one page\n\t */\n\t@Prop({attribute: \"label-prev\"}) readonly labelPrev = 'Přejít o stranu zpět'\n\t/**\n\t * Description of the option to go to the top of paging\n\t */\n\t@Prop({attribute: \"label-start\"}) readonly labelStart = 'Přejít na začátek'\n\t/**\n\t * Description of the option to go to the end of paging\n\t */\n\t@Prop({attribute: \"label-next\"}) readonly labelNext = 'Přejít na další stranu'\n\t/**\n\t * Description of the option to move one page forward\n\t */\n\t@Prop({attribute: \"label-end\"}) readonly labelEnd = 'Přejít na konec'\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, description: string) => {\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={description ? description : 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\tthis.labelStart\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\tthis.labelPrev\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={this.size}\n\t\t\t\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\t\t\t\tidentifier={this.selectIdentifier || this.selectId}\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={this.size}\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\tidentifier={this.selectIdentifier || this.selectId}\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\tthis.labelNext\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\tthis.labelEnd\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e,H as o,c as a,h as t,d as i}from"./p-d6759ac3.js";import{g as d,a as s}from"./p-d687df8f.js";import{c as r}from"./p-e618f1cb.js";import{a as l}from"./p-e296ca83.js";import{b as n}from"./p-6b0471a8.js";import{c}from"./p-95d41a3b.js";import{d as m}from"./p-e0e2e9c1.js";import{M as g}from"./p-0134b442.js";import{d as h}from"./p-92c6c6aa.js";import{d as v}from"./p-
|
|
1
|
+
import{p as e,H as o,c as a,h as t,d as i}from"./p-d6759ac3.js";import{g as d,a as s}from"./p-d687df8f.js";import{c as r}from"./p-e618f1cb.js";import{a as l}from"./p-e296ca83.js";import{b as n}from"./p-6b0471a8.js";import{c}from"./p-95d41a3b.js";import{d as m}from"./p-e0e2e9c1.js";import{M as g}from"./p-0134b442.js";import{d as h}from"./p-92c6c6aa.js";import{d as v}from"./p-9c9fc4ae.js";import{d as p}from"./p-84d0a332.js";const b='.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-modal{display:none}.gov-modal__dialog{z-index:101;position:fixed;top:50%;left:50%;display:flex;justify-content:center;align-items:center;width:100%;max-width:var(--gov-modal-max-width, 52.5rem);height:100%;padding:0.5rem;border:none;background:transparent;transform:translate(-50%, -50%);pointer-events:none}.gov-modal__inner{position:relative;display:flex;flex-direction:column;width:100%;max-height:100%;border-radius:var(--gov-border-radius, 0.1875rem);background:var(--gov-modal-bg, var(--gov-color-neutral-white));overflow:hidden;pointer-events:auto;box-shadow:0 0 1.5rem rgba(var(--gov-color-secondary-800-rgb), 0.24)}.gov-modal__header{display:flex;gap:1rem;align-items:flex-start;padding:1.5rem 1rem;border-bottom:var(--gov-modal-border-color, 0.0625rem solid var(--gov-color-secondary-500))}.gov-modal__icon{flex:0 0 auto;padding-top:calc((var(--gov-text-3xl-font-size) * 1.5 - 1.5rem) / 2)}.gov-modal__icon>*{width:1.5rem;height:1.5rem}.gov-modal__title{font-weight:var(--gov-text-3xl-font-weight);font-size:var(--gov-text-3xl-font-size);line-height:var(--gov-text-3xl-line-height);letter-spacing:var(--gov-text-3xl-letter-spacing);margin:0}.gov-modal__close{flex:0 0 auto;margin-left:auto}.gov-modal__content{height:100%;padding:1.5rem 1rem;color:var(--gov-modal-text-color, var(--gov-color-secondary-700));overflow:auto}.gov-modal__content>*:last-child{margin-bottom:0}.gov-modal__footer,.gov-modal__actions{padding:1.5rem 1rem;border-top:var(--gov-modal-border-color, 0.0625rem solid var(--gov-color-secondary-500))}.gov-modal__actions{display:flex;gap:0.5rem 1rem;flex-wrap:wrap;justify-content:flex-end}.gov-modal__dialog:focus .gov-modal__inner{outline:var(--gov-outline-width, 0.125rem) solid var(--gov-color-focus-base)}.gov-modal[open=""],.gov-modal[open=true i],.gov-modal[open="1"]{display:block}@media (min-width: 30em){.gov-modal__dialog{max-width:calc(var(--gov-modal-max-width, 52.5rem) + 3rem);padding:1.5rem}.gov-modal__dialog:focus{outline-offset:-1.5rem}.gov-modal__inner{box-shadow:0 0 2rem rgba(var(--gov-color-secondary-800-rgb), 0.32)}.gov-modal--prompt .gov-modal__dialog{max-width:calc(var(--gov-modal-prompt-max-width, 33.125rem) + 3rem)}}@media (min-width: 48em){.gov-modal__header{gap:1.25rem;padding:2rem 2.5rem 2rem 3rem}.gov-modal__content{padding:2rem 3rem}.gov-modal__footer{padding:1rem 3rem}.gov-modal--prompt .gov-modal__header,.gov-modal--prompt .gov-modal__content,.gov-modal--prompt .gov-modal__footer,.gov-modal--prompt .gov-modal__actions{padding:1.5rem}}';const f=b;const y=e(class e extends o{constructor(){super();this.__registerHost();this.govClose=a(this,"gov-close",7);this.open=false;this.label=undefined;this.role="dialog";this.labelTag="h2";this.wcagLabelledBy=undefined;this.wcagDescribedBy=undefined;this.wcagCloseLabel="Zavřít okno";this.wcagCloseLabelledBy=undefined;this.h=d(this.host);this.labelId=c("GovPromptLabel");this.contentId=c("GovPromptContent")}validateLabelTag(e){const o=["h1","h2","h3","h4","h5","h6"];if(e){if(!o.includes(e)){l(`[${g.root}]: Tag ${e} is not allowed.`)}}}watchOpen(e){this.open=e;if(e&&this.closeCtaRef){this.closeCtaRef.setFocus().catch()}}showModal(){this.open=true;document.body.classList.add(g.bodyFix)}hideModal(){this.open=false;document.body.classList.remove(g.bodyFix)}async componentWillRender(){if(this.open){this.showModal()}else{this.hideModal()}}async componentDidRender(){if(r()){await m(500);await this.validateWcag()}}render(){const e=this.labelTag;return t(i,{key:"eafb47c3de00f2944cf648244a0cc4d57579c7ff",class:this.h.classes(g.rootPrompt),open:this.open},t("dialog",{key:"4e93478ea3a360bb6249725b4299f1db89626e72",class:g.dialog,hidden:!this.open,tabindex:"-1",open:this.open,"aria-modal":"true","aria-hidden":s(!this.open),"aria-labelledby":this.wcagLabelledBy||this.labelId,"aria-describedby":this.wcagDescribedBy||this.contentId,role:this.role},t("div",{key:"0e4dc70872d6bab33e36e192ec921a05e278e844",class:g.inner},t("div",{key:"3be8a8bed33a9640dcba8e8374512efadb4c4a63",class:g.header},this.h.hasSlot("icon")&&t("div",{key:"76931e2ab2a270ce04a71c7d8d32ead065da6eca",class:g.icon},t("slot",{key:"3a49590e4c2b67742aa7202e440408a307975ad3",name:"icon"})),this.label&&t(e,{key:"8e3cd8b4940f6222e15efb63317e151efa2e6b5f",class:g.title,id:this.labelId},this.label),t("gov-button",{key:"23de5a7c3bb39f3896c134665aa564d584160914",class:g.close,variant:"primary",wcagLabel:this.wcagCloseLabel,wcagLabelledBy:this.wcagCloseLabelledBy,type:"base",ref:e=>this.closeCtaRef=e,"on-gov-click":this.onCloseHandler.bind(this)},t("gov-icon",{key:"4769f23e5e772c92ed07ba8244d2da674acb8d33",name:"x-lg"}))),t("div",{key:"1b181dd790d066b2aa943c91ef2e0f47f8a0e5df",class:g.content,id:this.contentId},t("slot",{key:"04cf9527b390b134ee7900ff3283b84cb5b6cdcb"})),t("div",{key:"350de95cfb9e765da4ebdc8f0f179bcc040baf28",class:g.actions},t("slot",{key:"206f016467e43154a75c02c2708a65a589d09710",name:"actions"})))),this.open?t("gov-backdrop",{"wcag-label":this.wcagCloseLabel,"wcag-labelled-by":this.wcagCloseLabelledBy,"on-gov-click":this.onCloseHandler.bind(this)}):null)}onCloseHandler(e){e.stopPropagation();this.hideModal();this.govClose.emit(e)}async show(){this.showModal()}async hide(){this.hideModal()}async validateWcag(){n(this.wcagLabelledBy,"wcag-labelled-by",g.root);n(this.wcagDescribedBy,"wcag-described-by",g.root)}get host(){return this}static get watchers(){return{labelTag:["validateLabelTag"],open:["watchOpen"]}}static get style(){return f}},[4,"gov-prompt",{open:[1028],label:[1],role:[1],labelTag:[1,"label-tag"],wcagLabelledBy:[1,"wcag-labelled-by"],wcagDescribedBy:[1,"wcag-described-by"],wcagCloseLabel:[1,"wcag-close-label"],wcagCloseLabelledBy:[1,"wcag-close-labelled-by"],show:[64],hide:[64],validateWcag:[64]},undefined,{labelTag:["validateLabelTag"],open:["watchOpen"]}]);function u(){if(typeof customElements==="undefined"){return}const e=["gov-prompt","gov-backdrop","gov-button","gov-icon"];e.forEach((e=>{switch(e){case"gov-prompt":if(!customElements.get(e)){customElements.define(e,y)}break;case"gov-backdrop":if(!customElements.get(e)){h()}break;case"gov-button":if(!customElements.get(e)){v()}break;case"gov-icon":if(!customElements.get(e)){p()}break}}))}u();const _=y;const w=u;export{_ as GovPrompt,w as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=gov-prompt.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e,H as i,c as a,h as o,d as t}from"./p-d6759ac3.js";import{a as n}from"./p-e296ca83.js";import{S as s}from"./p-d0288df5.js";import{g as r,p as v,b as d}from"./p-d687df8f.js";import{d as g}from"./p-
|
|
1
|
+
import{p as e,H as i,c as a,h as o,d as t}from"./p-d6759ac3.js";import{a as n}from"./p-e296ca83.js";import{S as s}from"./p-d0288df5.js";import{g as r,p as v,b as d}from"./p-d687df8f.js";import{d as g}from"./p-d9dda24d.js";import{d as m}from"./p-84d0a332.js";const c='.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-side-nav-item{position:relative;display:block;width:100%}.gov-side-nav-item__header{display:flex;align-items:center;border-bottom:var(--gov-side-nav-border, 0.0625rem solid var(--gov-color-secondary-500))}.gov-side-nav-item__name{display:inline-flex;vertical-align:middle;justify-content:center;align-items:center;border:0;background-color:transparent;text-align:center;text-decoration:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;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);display:flex;gap:1rem;flex:1 1 auto;justify-content:flex-start;padding:0.75rem 1rem 0.75rem 0.5rem;color:var(--gov-side-nav-color, var(--gov-color-secondary));text-align:left;transition:background-color 150ms}.gov-side-nav-item__name:focus{outline:none}.gov-side-nav-item__name:focus{outline:none}.gov-side-nav-item__name:focus-visible{border-radius:var(--gov-border-radius, 0.1875rem);outline:var(--gov-outline-width, 0.125rem) solid var(--gov-color-focus-base);outline-offset:0}button.gov-side-nav-item__name{padding-right:0 !important}@media not all and (pointer: coarse){.gov-side-nav-item__name:hover{background:var(--gov-side-nav-hover-bg, var(--gov-color-primary-200))}}.gov-side-nav-item__icon{display:flex;flex:0 0 auto;width:1rem;height:1rem}.gov-side-nav-item__icon .gov-icon{margin:0;color:var(--gov-side-nav-color, var(--gov-color-secondary))}.gov-side-nav-item__label{color:inherit}.gov-side-nav-item__chip{display:flex;flex:0 0 auto}.gov-side-nav-item__arrow{display:inline-flex;vertical-align:middle;justify-content:center;align-items:center;border:0;background-color:transparent;text-align:center;text-decoration:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:0 0 auto;align-self:stretch;width:3rem;margin-left:auto;color:var(--gov-side-nav-arrow-color, var(--gov-color-primary));transition:background-color 150ms}.gov-side-nav-item__arrow:focus{outline:none}.gov-side-nav-item__arrow:focus{outline:none}.gov-side-nav-item__arrow:focus-visible{border-radius:var(--gov-border-radius, 0.1875rem);outline:var(--gov-outline-width, 0.125rem) solid var(--gov-color-focus-base);outline-offset:0}.gov-side-nav-item__arrow .gov-icon{width:0.75rem;height:0.75rem}@media not all and (pointer: coarse){.gov-side-nav-item__arrow:hover{background:var(--gov-side-nav-hover-bg, var(--gov-color-primary-200))}}.gov-side-nav-item__content{display:none}.gov-side-nav-item--w-icon .gov-side-nav-item__label{margin-left:2rem}.gov-side-nav-item--w-icon .gov-side-nav-item__icon+.gov-side-nav-item__label{margin-left:0}.gov-side-nav-item .gov-side-nav-item .gov-side-nav-item__header{border:none !important}.gov-side-nav-item .gov-side-nav-item .gov-side-nav-item__name{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);padding:0.625rem 0.5rem;font-weight:bold}.gov-side-nav-item .gov-side-nav-item[aria-expanded=""],.gov-side-nav-item .gov-side-nav-item[aria-expanded=true i],.gov-side-nav-item .gov-side-nav-item[aria-expanded="1"]{background:var(--gov-side-nav-bg-level-2, var(--gov-color-secondary-300))}.gov-side-nav-item .gov-side-nav-item[aria-expanded=""][inverse=""],.gov-side-nav-item .gov-side-nav-item[aria-expanded=""][inverse=true i],.gov-side-nav-item .gov-side-nav-item[aria-expanded=""][inverse="1"],.gov-side-nav-item .gov-side-nav-item[aria-expanded=true i][inverse=""],.gov-side-nav-item .gov-side-nav-item[aria-expanded=true i][inverse=true i],.gov-side-nav-item .gov-side-nav-item[aria-expanded=true i][inverse="1"],.gov-side-nav-item .gov-side-nav-item[aria-expanded="1"][inverse=""],.gov-side-nav-item .gov-side-nav-item[aria-expanded="1"][inverse=true i],.gov-side-nav-item .gov-side-nav-item[aria-expanded="1"][inverse="1"]{background:var(--gov-side-nav-bg-level-2, var(--gov-color-neutral-white))}.gov-side-nav-item .gov-side-nav-item .gov-side-nav-item .gov-side-nav-item__name{gap:0.75rem;font-weight:inherit}.gov-side-nav-item[compact=""] .gov-side-nav-item__header,.gov-side-nav-item[compact=true i] .gov-side-nav-item__header,.gov-side-nav-item[compact="1"] .gov-side-nav-item__header{border-bottom:none}.gov-side-nav-item[aria-expanded=""]>.gov-side-nav-item__header .gov-side-nav-item__arrow .gov-icon,.gov-side-nav-item[aria-expanded=true i]>.gov-side-nav-item__header .gov-side-nav-item__arrow .gov-icon,.gov-side-nav-item[aria-expanded="1"]>.gov-side-nav-item__header .gov-side-nav-item__arrow .gov-icon{transform:scale(-1)}.gov-side-nav-item[aria-expanded=""]>.gov-side-nav-item__content,.gov-side-nav-item[aria-expanded=true i]>.gov-side-nav-item__content,.gov-side-nav-item[aria-expanded="1"]>.gov-side-nav-item__content{display:block}';const l=c;const p=e(class e extends i{constructor(){super();this.__registerHost();this.govChange=a(this,"gov-change",7);this.isExpandedState=undefined;this.inverse=false;this.compact=false;this.identifier=undefined;this.count=false;this.label=undefined;this.disabled=false;this.href=undefined;this.isExpanded=false;this.h=r(this.host)}validateLabel(e){if(!e){n(`[${s.root}]: Parameter label is required.`)}}emmitChange(){this.govChange.emit({open:this.isExpandedState,element:this.host})}componentWillLoad(){this.isExpandedState=this.isExpanded;this.validateLabel(this.label)}get classNames(){const{h:e}=this;return v([s.root,e.hasSlot("icon")&&s.rootWithIcon])}render(){const{isExpandedState:e,label:i}=this;const a=this.host.children.length>1;return o(t,{key:"f8390dc60ed9cdf08e407dad71d23d6d885dd8fd",class:this.classNames,role:"listitem",inverse:this.inverse,"aria-expanded":d(e)},this.href?o("div",{class:s.header},o("a",{class:s.name,href:this.href},this.h.hasSlot("icon")&&o("span",{class:s.icon},o("slot",{name:"icon"})),o("span",{class:s.label},i),this.count&&o("span",{class:s.chip},o("gov-chip",{variant:"secondary",size:"s",inverse:this.inverse},"3"))),a&&o("button",{type:"button",class:s.arrow,onClick:()=>this.toggle()},o("gov-icon",{name:"chevron-down"}))):o("div",{class:s.header},o("button",{class:s.name,type:"button",onClick:()=>this.toggle()},this.h.hasSlot("icon")&&o("span",{class:s.icon},o("slot",{name:"icon"})),o("span",{class:s.label},i),a&&o("span",{class:s.arrow},o("gov-icon",{name:"chevron-down"})))),a&&o("div",{key:"679bafab6040bf267fecefd362fb202ccb6e6706",class:s.content},o("slot",{key:"835734ba7e65a8ff8911282e0ee23ee43a080b70"})))}async open(){this.isExpandedState=true;this.emmitChange()}async close(){this.isExpandedState=false;this.emmitChange()}async toggle(){this.isExpandedState=!this.isExpandedState;this.emmitChange()}async currentState(){return this.isExpandedState}get host(){return this}static get watchers(){return{label:["validateLabel"]}}static get style(){return l}},[4,"gov-side-nav-item",{inverse:[4],compact:[4],identifier:[1],count:[4],label:[1],disabled:[4],href:[1],isExpanded:[4,"is-expanded"],isExpandedState:[32],open:[64],close:[64],toggle:[64],currentState:[64]},undefined,{label:["validateLabel"]}]);function h(){if(typeof customElements==="undefined"){return}const e=["gov-side-nav-item","gov-chip","gov-icon"];e.forEach((e=>{switch(e){case"gov-side-nav-item":if(!customElements.get(e)){customElements.define(e,p)}break;case"gov-chip":if(!customElements.get(e)){g()}break;case"gov-icon":if(!customElements.get(e)){m()}break}}))}h();const f=p;const u=h;export{f as GovSideNavItem,u as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=gov-side-nav-item.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as
|
|
1
|
+
import{p as e,H as t,h as s,d as i}from"./p-d6759ac3.js";import{g as a,t as r}from"./p-d687df8f.js";import{c as n}from"./p-95d41a3b.js";import{a as o,T as d}from"./p-4faa3ba6.js";const c=".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-tabs-item{color:var(--gov-tabs-text-color, var(--gov-color-secondary-700))}.gov-tabs-item__inner>*:last-child{margin-bottom:0}";const f=c;const l=e(class e extends t{constructor(){super();this.__registerHost();this.identifier=undefined;this.triggerIdentifier=undefined;this.label=undefined;this.disabled=false;this.default=false;this.isActive=false;this.h=a(this.host);this.contentId=n("GovTabContent");this.triggerId=n("GovTabTrigger")}rerenderParent(){const e=this.h.getParent(o.root);if(e){e.rerender().catch()}}render(){return s(i,{key:"b316d961cabc1aed647deaa504ddca1184860f70",class:this.h.classes(d.root),default:this.default},s("div",{key:"d73aa35cc5131b81eaceff6afab13250b2587aec",class:d.inner,role:"tabpanel",id:this.identifier||this.contentId,hidden:!this.isActive,"aria-labelledby":this.triggerIdentifier||this.triggerId,"aria-hidden":r(!this.isActive)},s("slot",{key:"4bdf7cd566204ab3ac1883a5194abce6526fc0f0"})))}async getIdentifier(){return this.identifier||this.contentId}async getTriggerIdentifier(){return this.triggerIdentifier||this.triggerId}async getDisableState(){return this.disabled}async setActiveStatus(e){this.isActive=e}get host(){return this}static get watchers(){return{label:["rerenderParent"],disabled:["rerenderParent"],default:["rerenderParent"]}}static get style(){return f}},[4,"gov-tabs-item",{identifier:[1],triggerIdentifier:[1,"trigger-identifier"],label:[513],disabled:[516],default:[4],isActive:[32],getIdentifier:[64],getTriggerIdentifier:[64],getDisableState:[64],setActiveStatus:[64]},undefined,{label:["rerenderParent"],disabled:["rerenderParent"],default:["rerenderParent"]}]);function b(){if(typeof customElements==="undefined"){return}const e=["gov-tabs-item"];e.forEach((e=>{switch(e){case"gov-tabs-item":if(!customElements.get(e)){customElements.define(e,l)}break}}))}b();const g=l;const h=b;export{g as GovTabsItem,h as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=gov-tabs-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["govTabsItemCss","GovTabsItemStyle0","GovTabsItem","proxyCustomElement","H","constructor","this","h","govHost","host","contentId","createID","triggerId","render","Host","key","class","classes","TabsItemClass","
|
|
1
|
+
{"version":3,"names":["govTabsItemCss","GovTabsItemStyle0","GovTabsItem","proxyCustomElement","H","constructor","this","h","govHost","host","contentId","createID","triggerId","rerenderParent","element","getParent","TabsClass","root","rerender","catch","render","Host","key","class","classes","TabsItemClass","default","inner","role","id","identifier","hidden","isActive","triggerIdentifier","toBoolAttrIfDefined","getIdentifier","getTriggerIdentifier","getDisableState","disabled","setActiveStatus","status"],"sources":["../../../packages/core/src/components/gov-tabs/gov-tabs-item.scss?tag=gov-tabs-item","../../../packages/core/src/components/gov-tabs/gov-tabs-item.tsx"],"sourcesContent":["/*\n * Tabs - Item\n */\n\n$class: \".gov-tabs-item\";\n\n#{$class} {\n\tcolor: $tabs-text-color;\n\t&__inner {\n\t\t@include reset-last-margin();\n\t}\n}\n","import {Component, Element, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\n\nimport {govHost, toBoolAttrIfDefined} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {createID} from \"../../utils/string.utils\"\nimport {TabsClass, TabsItemClass} from \"./constants\"\n\n@Component({\n\ttag: 'gov-tabs-item',\n\tstyleUrl: 'gov-tabs-item.scss',\n})\nexport class GovTabsItem {\n\tprivate h: GovHost\n\tprivate readonly contentId: string\n\tprivate readonly triggerId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.contentId = createID('GovTabContent')\n\t\tthis.triggerId = createID('GovTabTrigger')\n\t}\n\n\t@Element() host: HTMLGovTabsItemElement\n\t/**\n\t * Custom tab item identifier. Otherwise, it will be generated\n\t */\n\t@Prop() readonly identifier: string\n\t/**\n\t * Custom tab trigger item identifier. Otherwise, it will be generated\n\t */\n\t@Prop() readonly triggerIdentifier: string\n\t/**\n\t * Item name of the tab\n\t */\n\t@Prop({reflect: true}) readonly label: string\n\t/**\n\t * Item disable state\n\t */\n\t@Prop({reflect: true}) readonly disabled: boolean = false\n\t/**\n\t * Default selected tab\n\t */\n\t@Prop() readonly default: boolean = false\n\t@State() isActive = false\n\n\t@Watch('label')\n\t@Watch('disabled')\n\t@Watch('default')\n\trerenderParent() {\n\t\tconst element = this.h.getParent(TabsClass.root) as HTMLGovTabsElement;\n\t\tif (element) {\n\t\t\telement.rerender().catch()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={this.h.classes(TabsItemClass.root)} default={this.default}>\n\t\t\t\t<div\n\t\t\t\t\tclass={TabsItemClass.inner}\n\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\tid={this.identifier || this.contentId}\n\t\t\t\t\thidden={!this.isActive}\n\t\t\t\t\taria-labelledby={this.triggerIdentifier || this.triggerId}\n\t\t\t\t\taria-hidden={toBoolAttrIfDefined(!this.isActive)}\n\t\t\t\t>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\t/**\n\t * Returns a unique tab content identifier\n\t */\n\t@Method()\n\tasync getIdentifier(): Promise<string> {\n\t\treturn this.identifier || this.contentId\n\t}\n\n\t/**\n\t * Returns a unique tab trigger identifier\n\t */\n\t@Method()\n\tasync getTriggerIdentifier(): Promise<string> {\n\t\treturn this.triggerIdentifier || this.triggerId\n\t}\n\n\t/**\n\t * Returns a unique tab trigger identifier\n\t */\n\t@Method()\n\tasync getDisableState(): Promise<boolean> {\n\t\treturn this.disabled\n\t}\n\n\t/**\n\t * Set status of tab-item\n\t */\n\t@Method()\n\tasync setActiveStatus(status: boolean): Promise<void> {\n\t\tthis.isActive = status\n\t}\n}\n"],"mappings":"mLAAA,MAAMA,EAAiB,4dACvB,MAAAC,EAAeD,E,MCUFE,EAAWC,EAAA,MAAAD,UAAAE,EAKvB,WAAAC,G,4HAsBoD,M,aAIhB,M,cAChB,MA1BnBC,KAAKC,EAAIC,EAAQF,KAAKG,MACtBH,KAAKI,UAAYC,EAAS,iBAC1BL,KAAKM,UAAYD,EAAS,gB,CA6B3B,cAAAE,GACC,MAAMC,EAAUR,KAAKC,EAAEQ,UAAUC,EAAUC,MAC3C,GAAIH,EAAS,CACZA,EAAQI,WAAWC,O,EAIrB,MAAAC,GACC,OACCb,EAACc,EAAI,CAAAC,IAAA,2CAACC,MAAOjB,KAAKC,EAAEiB,QAAQC,EAAcR,MAAOS,QAASpB,KAAKoB,SAC9DnB,EAAA,OAAAe,IAAA,2CACCC,MAAOE,EAAcE,MACrBC,KAAK,WACLC,GAAIvB,KAAKwB,YAAcxB,KAAKI,UAC5BqB,QAASzB,KAAK0B,SAAQ,kBACL1B,KAAK2B,mBAAqB3B,KAAKM,UAAS,cAC5CsB,GAAqB5B,KAAK0B,WAEvCzB,EAAA,QAAAe,IAAA,8C,CAUJ,mBAAMa,GACL,OAAO7B,KAAKwB,YAAcxB,KAAKI,S,CAOhC,0BAAM0B,GACL,OAAO9B,KAAK2B,mBAAqB3B,KAAKM,S,CAOvC,qBAAMyB,GACL,OAAO/B,KAAKgC,Q,CAOb,qBAAMC,CAAgBC,GACrBlC,KAAK0B,SAAWQ,C","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as t,H as o,c as e,h as a,d as r}from"./p-d6759ac3.js";import{g as s,a as i}from"./p-d687df8f.js";import{c as n}from"./p-e618f1cb.js";import{v as c}from"./p-344c72d7.js";import{a as l,v}from"./p-6b0471a8.js";import{c as b}from"./p-95d41a3b.js";import{d,t as g}from"./p-e0e2e9c1.js";import{T as h,a as p,b as m,c as f}from"./p-4faa3ba6.js";import{d as y}from"./p-4fa21d88.js";import{d as u}from"./p-659a5e9b.js";import{d as _}from"./p-f5db4029.js";const w=".gov-tabs__list{margin:0;padding:0}.gov-tabs__list>.gov-tabs__item{margin:0;padding:0;background:none}.gov-tabs__list>.gov-tabs__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-tabs{position:relative;display:block;width:100%}.gov-tabs__list{display:flex;flex-wrap:wrap;margin:0rem 0rem 1.25rem}.gov-tabs__list>.gov-tabs__item{display:flex;margin:0}.gov-tabs__btn{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);display:inline-flex;vertical-align:middle;justify-content:center;align-items:center;border:0;background-color:transparent;text-align:center;text-decoration:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding:0.75rem 0rem 0.625rem;border-bottom:0.125rem solid transparent;font-weight:700;text-align:center;transition:150ms linear color, 150ms linear border-color}.gov-tabs__btn:focus{outline:none}.gov-tabs__btn:focus{outline:none}.gov-tabs__btn:focus-visible{border-radius:var(--gov-border-radius, 0.1875rem);outline:var(--gov-outline-width, 0.125rem) solid var(--gov-color-focus-base);outline-offset:0}.gov-tabs__btn[disabled]{cursor:not-allowed}.gov-tabs[type=text] .gov-tabs__list{gap:0.5rem 2rem;border-bottom:var(--gov-tabs-list-border-width, 0.0625rem solid var(--gov-color-secondary-500))}.gov-tabs[type=chip] .gov-tabs__list{gap:0.5rem 1rem}.gov-tabs[variant=primary][type=text] .gov-tabs__btn:not([disabled]){color:var(--gov-tabs-primary-color, var(--gov-color-primary))}@media not all and (pointer: coarse){.gov-tabs[variant=primary][type=text] .gov-tabs__btn:not([disabled]):hover{color:var(--gov-tabs-primary-color-hover, var(--gov-color-primary-800))}}.gov-tabs[variant=primary][type=text] .gov-tabs__btn[aria-selected=true]{border-bottom-color:var(--gov-tabs-primary-color-active, var(--gov-color-primary-800));color:var(--gov-tabs-primary-color-active, var(--gov-color-primary-800))}.gov-tabs[variant=secondary][type=text] .gov-tabs__btn:not([disabled]){color:var(--gov-tabs-secondary-color, var(--gov-color-secondary-700))}@media not all and (pointer: coarse){.gov-tabs[variant=secondary][type=text] .gov-tabs__btn:not([disabled]):hover{color:var(--gov-tabs-secondary-color-hover, var(--gov-color-secondary-900))}}.gov-tabs[variant=secondary][type=text] .gov-tabs__btn[aria-selected=true]{border-bottom-color:var(--gov-tabs-secondary-color-active, var(--gov-color-secondary-900));color:var(--gov-tabs-secondary-color-active, var(--gov-color-secondary-900))}.gov-tabs[variant=success][type=text] .gov-tabs__btn:not([disabled]){color:var(--gov-tabs-success-color, var(--gov-color-success-500))}@media not all and (pointer: coarse){.gov-tabs[variant=success][type=text] .gov-tabs__btn:not([disabled]):hover{color:var(--gov-tabs-success-color-hover, var(--gov-color-success-700))}}.gov-tabs[variant=success][type=text] .gov-tabs__btn[aria-selected=true]{border-bottom-color:var(--gov-tabs-success-color-active, var(--gov-color-success-700));color:var(--gov-tabs-success-color-active, var(--gov-color-success-700))}.gov-tabs[variant=warning][type=text] .gov-tabs__btn:not([disabled]){color:var(--gov-tabs-warning-color, var(--gov-color-warning-500))}@media not all and (pointer: coarse){.gov-tabs[variant=warning][type=text] .gov-tabs__btn:not([disabled]):hover{color:var(--gov-tabs-warning-color-hover, var(--gov-color-warning-700))}}.gov-tabs[variant=warning][type=text] .gov-tabs__btn[aria-selected=true]{border-bottom-color:var(--gov-tabs-warning-color-active, var(--gov-color-warning-700));color:var(--gov-tabs-warning-color-active, var(--gov-color-warning-700))}.gov-tabs[variant=error][type=text] .gov-tabs__btn:not([disabled]){color:var(--gov-tabs-error-color, var(--gov-color-error-400))}@media not all and (pointer: coarse){.gov-tabs[variant=error][type=text] .gov-tabs__btn:not([disabled]):hover{color:var(--gov-tabs-error-color-hover, var(--gov-color-error-600))}}.gov-tabs[variant=error][type=text] .gov-tabs__btn[aria-selected=true]{border-bottom-color:var(--gov-tabs-error-color-active, var(--gov-color-error-600));color:var(--gov-tabs-error-color-active, var(--gov-color-error-600))}.gov-tabs[orientation=vertical] .gov-tabs__btn{text-align:left}@media (min-width: 75em){.gov-tabs[orientation=vertical]{display:flex;flex-direction:row}.gov-tabs[orientation=vertical] .gov-tabs__list{flex-wrap:nowrap;flex-direction:column;width:-moz-max-content;width:max-content;max-width:30vw;margin-right:1.25rem;padding:0rem 0.5rem;border-bottom:none;border-right:var(--gov-tabs-list-border-width, 0.0625rem solid var(--gov-color-secondary-500))}.gov-tabs[orientation=vertical] .gov-tabs__item{justify-content:flex-end}.gov-tabs[orientation=vertical] .gov-tabs__btn{padding:0.5rem 0.75rem;text-align:right}}";const x=w;const k=t(class t extends o{constructor(){super();this.__registerHost();this.govChange=e(this,"gov-change",7);this.triggerRefs={};this.controller=[];this.focusIndex=0;this.compactControls=false;this.type="text";this.variant="primary";this.orientation="horizontal";this.wcagLabel=undefined;this.wcagSelectLabel=undefined;this.wcagLabelledBy=undefined;this.h=s(this.host);this.formSelectId=b("GovFormSelect")}validateType(t){c(m,t,p.root)}validateVariant(t){c(f,t,p.root)}componentWillLoad(){this.prepareDataSource()}async componentDidRender(){if(n()){await d(500);await this.validateWcag()}this.resizeObserver()}prepareDataSource(){this.controller=[];const t=[];this.host.querySelectorAll(h.root).forEach((o=>{const e=Promise.all([o.getIdentifier(),o.getTriggerIdentifier(),o.getDisableState()]).then((([t,e,a])=>{const r=typeof o.getAttribute("default")==="string";return{label:o.getAttribute("label"),contentIdentifier:t,disabled:a,triggerIdentifier:e,element:o,active:false,default:r}}));t.push(e)}));Promise.all(t).then((t=>{let o=t.findIndex((t=>t.default));if(o===-1)o=0;this.focusIndex=o;t[o].active=true;this.controller=[...t];this.reRender()}))}setActiveByIdentifier(t){const o=[];this.controller.map((e=>{e.active=t===e.triggerIdentifier||t===e.contentIdentifier;o.push(e)}));this.controller=[...o]}reRender(){this.controller.map((t=>{t.element.setActiveStatus(t.active)}))}resizeObserver(){const t=new ResizeObserver(g((()=>{}),200));t.observe(this.tabsRef)}render(){return a(r,{key:"561251fc7844ec9d11f72ff6e03ac6656b298ac9",class:this.h.classes(p.root),variant:this.variant,type:this.type,role:"tablist",ref:t=>this.tabsRef=t,"aria-label":this.wcagLabel,"aria-labelledby":this.wcagLabelledBy,onKeyDown:this.onKeydownHandler.bind(this)},a("div",{key:"c5ecb113f0c39857a3d4eea506b08321b577f2b1",class:p.tabs,"aria-hidden":i(this.compactControls)},a("ul",{key:"d1d1d166a43ddc69d35ec6c359dbab589e3c92fd",class:p.list},this.controller.map((t=>a("li",{class:p.item},this.type=="text"?a("button",{class:p.btn,id:t.triggerIdentifier,role:"tab",onClick:()=>this.onSelectHandler(t),disabled:t.disabled,"aria-disabled":i(t.disabled),"aria-selected":i(t.active),"aria-controls":t.contentIdentifier,tabindex:t.active&&!t.disabled?0:-1,ref:o=>this.triggerRefs[t.triggerIdentifier]=o},t.label):a("gov-chip",{role:"tab",tag:"button",identifier:t.triggerIdentifier,"wcag-selected":t.active,"wcag-controls":t.contentIdentifier,focusable:t.active,disabled:t.disabled,variant:this.variant,inverse:!t.active,ref:o=>this.triggerRefs[t.triggerIdentifier]=o,"on-gov-click":()=>this.onSelectHandler(t)},t.label)))))),a("span",{key:"713c0bcfb6ff3377c77bff908b7e30ecd084d64f",id:this.formSelectId,hidden:true},this.wcagSelectLabel),this.compactControls?a("gov-form-select",{"wcag-labelled-by":this.formSelectId,"onGov-change":this.onChangeHandler.bind(this)},this.controller.map((t=>a("option",{value:t.triggerIdentifier,selected:t.active},t.label)))):null,a("slot",{key:"176d4c69a319e1d0630db64ad853bd3358db865c"}))}getCurrentTab(){return this.controller.find((t=>t.active))||null}onSelectHandler(t){const o=this.controller.findIndex((o=>o.triggerIdentifier===t.triggerIdentifier));this.focusIndex=o;this.setActiveByIdentifier(t.triggerIdentifier);this.reRender();this.govChange.emit(this.getCurrentTab().element)}onChangeHandler(t){const o=t.target.value;t.stopPropagation();this.setActiveByIdentifier(o);this.reRender();this.govChange.emit(this.getCurrentTab().element)}onKeydownHandler(t){const o=t.keyCode;t.stopPropagation();this.goToPrevNext(o)}goToPrevNext(t){if([37,38,39,40].includes(t)){if(false===(this.focusIndex>=0&&this.focusIndex<=this.controller.length-1)){return}this.controller[this.focusIndex].active=false;if(t===39||t===40){this.focusIndex++;if(this.focusIndex>=this.controller.length){this.focusIndex=0}if(this.controller[this.focusIndex].disabled){this.goToPrevNext(40)}}else if(t===37||t===38){this.focusIndex--;if(this.focusIndex<0){this.focusIndex=this.controller.length-1}if(this.controller[this.focusIndex].disabled){this.goToPrevNext(38)}}if(this.focusIndex>=0&&this.focusIndex<=this.controller.length-1){const t=this.controller[this.focusIndex];t.active=true;const o=this.triggerRefs[t.triggerIdentifier];if(o.nodeName.toLowerCase()==="gov-chip"){this.triggerRefs[t.triggerIdentifier].setFocus()}else{this.triggerRefs[t.triggerIdentifier].focus()}this.controller=[...this.controller];this.reRender();this.govChange.emit(this.getCurrentTab().element)}}}async refresh(){this.prepareDataSource()}async currentTab(){return this.getCurrentTab().element||null}async setActiveTab(t){this.setActiveByIdentifier(t);this.reRender()}async validateWcag(){l(this.wcagSelectLabel,"wcag-select-label",p.root);v(this.wcagLabel,this.wcagLabelledBy,p.root)}get host(){return this}static get watchers(){return{type:["validateType"],variant:["validateVariant"]}}static get style(){return x}},[4,"gov-tabs",{type:[1],variant:[1],orientation:[1],wcagLabel:[1,"wcag-label"],wcagSelectLabel:[1,"wcag-select-label"],wcagLabelledBy:[1,"wcag-labelled-by"],controller:[32],focusIndex:[32],compactControls:[32],refresh:[64],currentTab:[64],setActiveTab:[64],validateWcag:[64]},undefined,{type:["validateType"],variant:["validateVariant"]}]);function j(){if(typeof customElements==="undefined"){return}const t=["gov-tabs","gov-chip","gov-form-select","gov-icon"];t.forEach((t=>{switch(t){case"gov-tabs":if(!customElements.get(t)){customElements.define(t,k)}break;case"gov-chip":if(!customElements.get(t)){y()}break;case"gov-form-select":if(!customElements.get(t)){u()}break;case"gov-icon":if(!customElements.get(t)){_()}break}}))}j();const T=k;const z=j;export{T as GovTabs,z as defineCustomElement};
|
|
1
|
+
import{p as t,H as o,c as a,h as e,d as r}from"./p-d6759ac3.js";import{g as s,a as i}from"./p-d687df8f.js";import{c as n}from"./p-e618f1cb.js";import{v as c}from"./p-344c72d7.js";import{a as l,v}from"./p-6b0471a8.js";import{c as b}from"./p-95d41a3b.js";import{d}from"./p-e0e2e9c1.js";import{T as g,a as h,b as p,c as m}from"./p-4faa3ba6.js";import{d as f}from"./p-d9dda24d.js";import{d as y}from"./p-137f86d1.js";import{d as u}from"./p-84d0a332.js";const _=".gov-tabs__list{margin:0;padding:0}.gov-tabs__list>.gov-tabs__item{margin:0;padding:0;background:none}.gov-tabs__list>.gov-tabs__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-tabs{position:relative;display:block;width:100%}.gov-tabs__list{display:flex;flex-wrap:wrap;margin:0rem 0rem 1.25rem}.gov-tabs__list>.gov-tabs__item{display:flex;margin:0}.gov-tabs__btn{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);display:inline-flex;vertical-align:middle;justify-content:center;align-items:center;border:0;background-color:transparent;text-align:center;text-decoration:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding:0.75rem 0rem 0.625rem;border-bottom:0.125rem solid transparent;font-weight:700;text-align:center;transition:150ms linear color, 150ms linear border-color}.gov-tabs__btn:focus{outline:none}.gov-tabs__btn:focus{outline:none}.gov-tabs__btn:focus-visible{border-radius:var(--gov-border-radius, 0.1875rem);outline:var(--gov-outline-width, 0.125rem) solid var(--gov-color-focus-base);outline-offset:0}.gov-tabs__btn[disabled]{cursor:not-allowed}.gov-tabs[type=text] .gov-tabs__list{gap:0.5rem 2rem;border-bottom:var(--gov-tabs-list-border-width, 0.0625rem solid var(--gov-color-secondary-500))}.gov-tabs[type=chip] .gov-tabs__list{gap:0.5rem 1rem}.gov-tabs[variant=primary][type=text] .gov-tabs__btn:not([disabled]){color:var(--gov-tabs-primary-color, var(--gov-color-primary))}@media not all and (pointer: coarse){.gov-tabs[variant=primary][type=text] .gov-tabs__btn:not([disabled]):hover{color:var(--gov-tabs-primary-color-hover, var(--gov-color-primary-800))}}.gov-tabs[variant=primary][type=text] .gov-tabs__btn[aria-selected=true]{border-bottom-color:var(--gov-tabs-primary-color-active, var(--gov-color-primary-800));color:var(--gov-tabs-primary-color-active, var(--gov-color-primary-800))}.gov-tabs[variant=secondary][type=text] .gov-tabs__btn:not([disabled]){color:var(--gov-tabs-secondary-color, var(--gov-color-secondary-700))}@media not all and (pointer: coarse){.gov-tabs[variant=secondary][type=text] .gov-tabs__btn:not([disabled]):hover{color:var(--gov-tabs-secondary-color-hover, var(--gov-color-secondary-900))}}.gov-tabs[variant=secondary][type=text] .gov-tabs__btn[aria-selected=true]{border-bottom-color:var(--gov-tabs-secondary-color-active, var(--gov-color-secondary-900));color:var(--gov-tabs-secondary-color-active, var(--gov-color-secondary-900))}.gov-tabs[variant=success][type=text] .gov-tabs__btn:not([disabled]){color:var(--gov-tabs-success-color, var(--gov-color-success-500))}@media not all and (pointer: coarse){.gov-tabs[variant=success][type=text] .gov-tabs__btn:not([disabled]):hover{color:var(--gov-tabs-success-color-hover, var(--gov-color-success-700))}}.gov-tabs[variant=success][type=text] .gov-tabs__btn[aria-selected=true]{border-bottom-color:var(--gov-tabs-success-color-active, var(--gov-color-success-700));color:var(--gov-tabs-success-color-active, var(--gov-color-success-700))}.gov-tabs[variant=warning][type=text] .gov-tabs__btn:not([disabled]){color:var(--gov-tabs-warning-color, var(--gov-color-warning-500))}@media not all and (pointer: coarse){.gov-tabs[variant=warning][type=text] .gov-tabs__btn:not([disabled]):hover{color:var(--gov-tabs-warning-color-hover, var(--gov-color-warning-700))}}.gov-tabs[variant=warning][type=text] .gov-tabs__btn[aria-selected=true]{border-bottom-color:var(--gov-tabs-warning-color-active, var(--gov-color-warning-700));color:var(--gov-tabs-warning-color-active, var(--gov-color-warning-700))}.gov-tabs[variant=error][type=text] .gov-tabs__btn:not([disabled]){color:var(--gov-tabs-error-color, var(--gov-color-error-400))}@media not all and (pointer: coarse){.gov-tabs[variant=error][type=text] .gov-tabs__btn:not([disabled]):hover{color:var(--gov-tabs-error-color-hover, var(--gov-color-error-600))}}.gov-tabs[variant=error][type=text] .gov-tabs__btn[aria-selected=true]{border-bottom-color:var(--gov-tabs-error-color-active, var(--gov-color-error-600));color:var(--gov-tabs-error-color-active, var(--gov-color-error-600))}.gov-tabs[orientation=vertical] .gov-tabs__btn{text-align:left}@media (min-width: 75em){.gov-tabs[orientation=vertical]{display:flex;flex-direction:row}.gov-tabs[orientation=vertical] .gov-tabs__list{flex-wrap:nowrap;flex-direction:column;width:-moz-max-content;width:max-content;max-width:30vw;margin-right:1.25rem;padding:0rem 0.5rem;border-bottom:none;border-right:var(--gov-tabs-list-border-width, 0.0625rem solid var(--gov-color-secondary-500))}.gov-tabs[orientation=vertical] .gov-tabs__item{justify-content:flex-end}.gov-tabs[orientation=vertical] .gov-tabs__btn{padding:0.5rem 0.75rem;text-align:right}}";const w=_;const x=t(class t extends o{constructor(){super();this.__registerHost();this.govChange=a(this,"gov-change",7);this.triggerRefs={};this.controllers=[];this.focusIndex=0;this.compactControls=false;this.type="text";this.variant="primary";this.orientation="horizontal";this.wcagLabel=undefined;this.wcagSelectLabel=undefined;this.wcagLabelledBy=undefined;this.h=s(this.host);this.formSelectId=b("GovFormSelect")}validateType(t){c(p,t,h.root)}validateVariant(t){c(m,t,h.root)}componentWillLoad(){this.prepareControllers()}async componentDidRender(){if(n()){await d(500);await this.validateWcag()}}prepareControllers(){this.controllers=[];const t=[];this.host.querySelectorAll(g.root).forEach((o=>{const a=Promise.all([o.getIdentifier(),o.getTriggerIdentifier(),o.getDisableState()]).then((([t,a,e])=>{const r=typeof o.getAttribute("default")==="string";return{label:o.getAttribute("label"),contentIdentifier:t,disabled:e,triggerIdentifier:a,element:o,active:false,default:r}}));t.push(a)}));Promise.all(t).then((t=>{let o=t.findIndex((t=>t.default));if(o===-1)o=0;this.focusIndex=o;t[o].active=true;this.controllers=[...t];this.reRender()}))}setActiveByIdentifier(t){const o=[];this.controllers.map((a=>{a.active=t===a.triggerIdentifier||t===a.contentIdentifier;o.push(a)}));this.controllers=[...o]}reRender(){this.controllers.map((t=>{t.element.setActiveStatus(t.active).catch()}))}render(){return e(r,{key:"fa6bb0777c56edcb61f5acfa4cac75fae2f8bb78",class:this.h.classes(h.root),variant:this.variant,type:this.type,role:"tablist","aria-label":this.wcagLabel,"aria-labelledby":this.wcagLabelledBy,onKeyDown:this.onKeydownHandler.bind(this)},e("div",{key:"3e764b20b9a1e3221232d7567e45acae8701a963",class:h.tabs,"aria-hidden":i(this.compactControls)},e("ul",{key:"adedeb20cd2d5608502410f1b843ba6293000e7c",class:h.list},this.controllers.map((t=>e("li",{class:h.item},this.type=="text"?e("button",{class:h.btn,id:t.triggerIdentifier,role:"tab",onClick:()=>this.onSelectHandler(t),disabled:t.disabled,"aria-disabled":i(t.disabled),"aria-selected":i(t.active),"aria-controls":t.contentIdentifier,tabindex:t.active&&!t.disabled?0:-1,ref:o=>this.triggerRefs[t.triggerIdentifier]=o},t.label):e("gov-chip",{role:"tab",tag:"button",identifier:t.triggerIdentifier,"wcag-selected":t.active,"wcag-controls":t.contentIdentifier,focusable:t.active,disabled:t.disabled,variant:this.variant,inverse:!t.active,ref:o=>this.triggerRefs[t.triggerIdentifier]=o,"on-gov-click":()=>this.onSelectHandler(t)},t.label)))))),e("span",{key:"6d855cd5195673b6a13aaf4b357b74bdcfd0ef4d",id:this.formSelectId,hidden:true},this.wcagSelectLabel),this.compactControls?e("gov-form-select",{"wcag-labelled-by":this.formSelectId,"onGov-change":this.onChangeHandler.bind(this)},this.controllers.map((t=>e("option",{value:t.triggerIdentifier,selected:t.active},t.label)))):null,e("slot",{key:"d7ea30baebad93b05c1f978fcca0c19989be7227"}))}getCurrentTab(){return this.controllers.find((t=>t.active))||null}onSelectHandler(t){const o=this.controllers.findIndex((o=>o.triggerIdentifier===t.triggerIdentifier));this.focusIndex=o;this.setActiveByIdentifier(t.triggerIdentifier);this.reRender();this.govChange.emit(this.getCurrentTab().element)}onChangeHandler(t){const o=t.target.value;t.stopPropagation();this.setActiveByIdentifier(o);this.reRender();this.govChange.emit(this.getCurrentTab().element)}onKeydownHandler(t){const o=t.keyCode;t.stopPropagation();this.goToPrevNext(o)}goToPrevNext(t){if([37,38,39,40].includes(t)){if(false===(this.focusIndex>=0&&this.focusIndex<=this.controllers.length-1)){return}this.controllers[this.focusIndex].active=false;if(t===39||t===40){this.focusIndex++;if(this.focusIndex>=this.controllers.length){this.focusIndex=0}if(this.controllers[this.focusIndex].disabled){this.goToPrevNext(40)}}else if(t===37||t===38){this.focusIndex--;if(this.focusIndex<0){this.focusIndex=this.controllers.length-1}if(this.controllers[this.focusIndex].disabled){this.goToPrevNext(38)}}if(this.focusIndex>=0&&this.focusIndex<=this.controllers.length-1){const t=this.controllers[this.focusIndex];t.active=true;const o=this.triggerRefs[t.triggerIdentifier];if(o.nodeName.toLowerCase()==="gov-chip"){this.triggerRefs[t.triggerIdentifier].setFocus()}else{this.triggerRefs[t.triggerIdentifier].focus()}this.controllers=[...this.controllers];this.reRender();this.govChange.emit(this.getCurrentTab().element)}}}async refresh(){this.prepareControllers()}async currentTab(){return this.getCurrentTab().element||null}async setActiveTab(t){this.setActiveByIdentifier(t);this.reRender()}async rerender(){this.prepareControllers()}async validateWcag(){l(this.wcagSelectLabel,"wcag-select-label",h.root);v(this.wcagLabel,this.wcagLabelledBy,h.root)}get host(){return this}static get watchers(){return{type:["validateType"],variant:["validateVariant"]}}static get style(){return w}},[4,"gov-tabs",{type:[1],variant:[1],orientation:[1],wcagLabel:[1,"wcag-label"],wcagSelectLabel:[1,"wcag-select-label"],wcagLabelledBy:[1,"wcag-labelled-by"],controllers:[32],focusIndex:[32],compactControls:[32],refresh:[64],currentTab:[64],setActiveTab:[64],rerender:[64],validateWcag:[64]},undefined,{type:["validateType"],variant:["validateVariant"]}]);function k(){if(typeof customElements==="undefined"){return}const t=["gov-tabs","gov-chip","gov-form-select","gov-icon"];t.forEach((t=>{switch(t){case"gov-tabs":if(!customElements.get(t)){customElements.define(t,x)}break;case"gov-chip":if(!customElements.get(t)){f()}break;case"gov-form-select":if(!customElements.get(t)){y()}break;case"gov-icon":if(!customElements.get(t)){u()}break}}))}k();const j=x;const T=k;export{j as GovTabs,T as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=gov-tabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["govTabsCss","GovTabsStyle0","GovTabs","proxyCustomElement","H","constructor","this","triggerRefs","h","govHost","host","formSelectId","createID","validateType","newValue","validateProp","TabTypes","TabsClass","root","validateVariant","TabVariants","componentWillLoad","prepareDataSource","componentDidRender","canValidateWcagOnRender","delay","validateWcag","resizeObserver","controller","promises","querySelectorAll","TabsItemClass","forEach","tab","controlItem","Promise","all","getIdentifier","getTriggerIdentifier","getDisableState","then","identifier","triggerIdentifier","disabled","isDefault","getAttribute","label","contentIdentifier","element","active","default","push","controllers","defaultTab","findIndex","focusIndex","reRender","setActiveByIdentifier","temp","map","item","control","setActiveStatus","ResizeObserver","throttle","observe","tabsRef","render","Host","key","class","classes","variant","type","role","ref","el","wcagLabel","wcagLabelledBy","onKeyDown","onKeydownHandler","bind","tabs","toBoolAttr","compactControls","list","btn","id","onClick","onSelectHandler","tabindex","tag","focusable","inverse","hidden","wcagSelectLabel","onChangeHandler","value","selected","getCurrentTab","find","index","t","govChange","emit","e","triggerId","target","stopPropagation","keyCode","goToPrevNext","includes","length","current","trigger","nodeName","toLowerCase","setFocus","focus","refresh","currentTab","setActiveTab","validateWcagProp","validateWcagLabel"],"sources":["../../../packages/core/src/components/gov-tabs/gov-tabs.scss?tag=gov-tabs","../../../packages/core/src/components/gov-tabs/gov-tabs.tsx"],"sourcesContent":["/*\n * Tabs\n */\n\n$class: \".gov-tabs\";\n\n#{$class} {\n\t@include base();\n\t&__list {\n\t\t@extend %reset-ul;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tmargin: rem-calc(0 0 20);\n\t}\n\t&__list > &__item {\n\t\t@extend %reset-ul-li;\n\t\tdisplay: flex;\n\t\tmargin: 0;\n\t}\n\t&__btn {\n\t\t@include typography($font-size-s);\n\t\t@include button-core();\n\t\t@include focus-outline();\n\t\tmargin: 0;\n\t\tpadding: rem-calc(12 0 10);\n\t\tborder-bottom: rem-calc(2) solid transparent;\n\t\tfont-weight: 700;\n\t\ttext-align: center;\n\t\ttransition: $t linear color, $t linear border-color;\n\t\t&[disabled] {\n\t\t\tcursor: not-allowed;\n\t\t}\n\t}\n\n\t// VARIANTS\n\t@each $type, $definitions in $tabs-types {\n\t\t&[type=\"#{$type}\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__list {\n\t\t\t\t\tgap: get(\"item-spacing\", $definitions);\n\t\t\t\t\t@if deep-map-check($definitions, \"border\") {\n\t\t\t\t\t\tborder-bottom: $tabs-list-border;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t@each $variant, $definitions in $tabs-variants {\n\t\t&[variant=\"#{$variant}\"][type=\"text\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__btn:not([disabled]) {\n\t\t\t\t\tcolor: get(\"color\", $definitions);\n\t\t\t\t\t@include hover() {\n\t\t\t\t\t\tcolor: get(\"color-hover\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// STATES\n\t\t\t\t&__btn[aria-selected=\"true\"] {\n\t\t\t\t\tborder-bottom-color: get(\"color-active\", $definitions);\n\t\t\t\t\tcolor: get(\"color-active\", $definitions);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t&[orientation=\"vertical\"] {\n\t\t#{$class}__btn {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: xl) {\n\t\t&[orientation=\"vertical\"] {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\n\t\t\t#{$class}__list {\n\t\t\t\tflex-wrap: nowrap;\n\t\t\t\tflex-direction: column;\n\t\t\t\twidth: max-content;\n\t\t\t\tmax-width: 30vw;\n\t\t\t\tmargin-right: rem-calc(20);\n\t\t\t\tpadding: rem-calc(0 8);\n\t\t\t\tborder-bottom: none;\n\t\t\t\tborder-right: $tabs-list-border;\n\t\t\t}\n\n\t\t\t#{$class}__item {\n\t\t\t\tjustify-content: flex-end;\n\t\t\t}\n\n\t\t\t#{$class}__btn {\n\t\t\t\tpadding: rem-calc(8 12);\n\t\t\t\ttext-align: right;\n\t\t\t}\n\t\t}\n\t}\n}\n","import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\n\nimport {govHost, toBoolAttr} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {canValidateWcagOnRender} from \"../../helpers/Dom/win\"\nimport {validateProp} from \"../../helpers/Validate/props\"\nimport {validateWcagLabel, validateWcagProp} from \"../../helpers/Validate/wcag\"\nimport {Nullable} from \"../../types/interfaces\"\nimport {createID} from \"../../utils/string.utils\"\nimport {delay, throttle} from \"../../utils/utils\"\nimport {TabOrientationType, TabsClass, TabsItemClass, TabType, TabTypes, TabVariants, VariantType} from \"./constants\"\nimport {GovTabControllerItem} from \"./gov-tabs.types\"\n\n@Component({\n\ttag: \"gov-tabs\",\n\tstyleUrl: \"gov-tabs.scss\",\n})\nexport class GovTabs {\n\tprivate h: GovHost\n\tprivate triggerRefs: { [key: string]: HTMLButtonElement | HTMLGovChipElement } = {}\n\tprivate tabsRef?: HTMLDivElement\n\n\tprivate readonly formSelectId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.formSelectId = createID(\"GovFormSelect\")\n\t}\n\n\t@Element() host: HTMLGovTabsElement\n\t@State() controller: GovTabControllerItem[] = []\n\t@State() focusIndex = 0\n\t@State() compactControls = false\n\t/**\n\t * Tabs type\n\t */\n\t@Prop() readonly type: TabType = \"text\"\n\t/**\n\t * Style variation of the tab chips.\n\t */\n\t@Prop() readonly variant?: VariantType = \"primary\"\n\t/**\n\t * Tabs orientation\n\t */\n\t@Prop() readonly orientation: TabOrientationType = \"horizontal\"\n\t/**\n\t * Adds accessible label for the tabs that is only shown for screen readers.\n\t */\n\t@Prop({attribute: \"wcag-label\"}) readonly wcagLabel: string\n\t/**\n\t * Adds accessible label for the tabs select\n\t */\n\t@Prop({attribute: \"wcag-select-label\"}) readonly wcagSelectLabel: string\n\t/**\n\t * Indicates the id of a component that labels the tabs.\n\t */\n\t@Prop({attribute: \"wcag-labelled-by\"}) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when the tab is changed.\n\t */\n\t@Event({eventName: \"gov-change\"}) govChange: EventEmitter<HTMLGovTabsItemElement>\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(TabTypes, newValue, TabsClass.root)\n\t}\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(TabVariants, newValue, TabsClass.root)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.prepareDataSource()\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\n\t\tthis.resizeObserver()\n\t}\n\n\tprivate prepareDataSource(): void {\n\t\tthis.controller = []\n\t\tconst promises: Promise<GovTabControllerItem>[] = []\n\t\tthis.host.querySelectorAll(TabsItemClass.root).forEach((tab: HTMLGovTabsItemElement) => {\n\t\t\tconst controlItem = Promise.all([\n\t\t\t\ttab.getIdentifier(),\n\t\t\t\ttab.getTriggerIdentifier(),\n\t\t\t\ttab.getDisableState()\n\t\t\t]).then(([identifier, triggerIdentifier, disabled]) => {\n\t\t\t\tconst isDefault = typeof tab.getAttribute(\"default\") === \"string\"\n\t\t\t\treturn {\n\t\t\t\t\tlabel: tab.getAttribute(\"label\"),\n\t\t\t\t\tcontentIdentifier: identifier,\n\t\t\t\t\tdisabled: disabled,\n\t\t\t\t\ttriggerIdentifier: triggerIdentifier,\n\t\t\t\t\telement: tab,\n\t\t\t\t\tactive: false,\n\t\t\t\t\tdefault: isDefault,\n\t\t\t\t}\n\t\t\t})\n\t\t\tpromises.push(controlItem)\n\t\t});\n\t\tPromise.all(promises).then(controllers => {\n\t\t\tlet defaultTab = controllers.findIndex(controller => controller.default)\n\t\t\tif (defaultTab === -1) defaultTab = 0\n\t\t\tthis.focusIndex = defaultTab\n\t\t\tcontrollers[defaultTab].active = true\n\t\t\tthis.controller = [...controllers]\n\t\t\tthis.reRender()\n\t\t})\n\t}\n\n\tprivate setActiveByIdentifier(identifier: string) {\n\t\tconst temp = []\n\t\tthis.controller.map(item => {\n\t\t\titem.active = identifier === item.triggerIdentifier || identifier === item.contentIdentifier\n\t\t\ttemp.push(item)\n\t\t})\n\t\tthis.controller = [...temp]\n\t}\n\n\tprivate reRender() {\n\t\tthis.controller.map(control => {\n\t\t\tcontrol.element.setActiveStatus(control.active)\n\t\t})\n\t}\n\n\t/*\n\tprivate evaluateControls() {\n\t\tthis.compactControls = false\n\t\tlet sumOfWidth = this.tabsRef.querySelector(\"ul\").offsetWidth\n\t\tthis.compactControls = this.tabsRef.offsetWidth < sumOfWidth\n\t}\n\t*/\n\n\tprivate resizeObserver() {\n\t\tconst resizeObserver = new ResizeObserver(\n\t\t\tthrottle(() => {\n\t\t\t\t// this.evaluateControls()\n\t\t\t}, 200),\n\t\t)\n\n\t\tresizeObserver.observe(this.tabsRef)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes(TabsClass.root)}\n\t\t\t\tvariant={this.variant}\n\t\t\t\ttype={this.type}\n\t\t\t\trole=\"tablist\"\n\t\t\t\tref={el => (this.tabsRef = el as HTMLDivElement)}\n\t\t\t\taria-label={this.wcagLabel}\n\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\tonKeyDown={this.onKeydownHandler.bind(this)}\n\t\t\t>\n\t\t\t\t<div class={TabsClass.tabs} aria-hidden={toBoolAttr(this.compactControls)}>\n\t\t\t\t\t<ul class={TabsClass.list}>\n\t\t\t\t\t\t{this.controller.map(control => (\n\t\t\t\t\t\t\t<li class={TabsClass.item}>\n\t\t\t\t\t\t\t\t{this.type == \"text\" ? (\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tclass={TabsClass.btn}\n\t\t\t\t\t\t\t\t\t\tid={control.triggerIdentifier}\n\t\t\t\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t\t\t\tonClick={() => this.onSelectHandler(control)}\n\t\t\t\t\t\t\t\t\t\tdisabled={control.disabled}\n\t\t\t\t\t\t\t\t\t\taria-disabled={toBoolAttr(control.disabled)}\n\t\t\t\t\t\t\t\t\t\taria-selected={toBoolAttr(control.active)}\n\t\t\t\t\t\t\t\t\t\taria-controls={control.contentIdentifier}\n\t\t\t\t\t\t\t\t\t\ttabindex={control.active && !control.disabled ? 0 : -1}\n\t\t\t\t\t\t\t\t\t\tref={el => (this.triggerRefs[control.triggerIdentifier] = el as HTMLButtonElement)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<gov-chip\n\t\t\t\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t\t\t\ttag={'button'}\n\t\t\t\t\t\t\t\t\t\tidentifier={control.triggerIdentifier}\n\t\t\t\t\t\t\t\t\t\twcag-selected={control.active}\n\t\t\t\t\t\t\t\t\t\twcag-controls={control.contentIdentifier}\n\t\t\t\t\t\t\t\t\t\tfocusable={control.active}\n\t\t\t\t\t\t\t\t\t\tdisabled={control.disabled}\n\t\t\t\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\t\t\t\tinverse={!control.active}\n\t\t\t\t\t\t\t\t\t\tref={el => (this.triggerRefs[control.triggerIdentifier] = el as HTMLGovChipElement)}\n\t\t\t\t\t\t\t\t\t\ton-gov-click={() => this.onSelectHandler(control)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t\t\t</gov-chip>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\n\t\t\t\t<span id={this.formSelectId} hidden>\n\t\t\t\t\t{this.wcagSelectLabel}\n\t\t\t\t</span>\n\t\t\t\t{this.compactControls ? (\n\t\t\t\t\t<gov-form-select wcag-labelled-by={this.formSelectId} onGov-change={this.onChangeHandler.bind(this)}>\n\t\t\t\t\t\t{this.controller.map(control => (\n\t\t\t\t\t\t\t<option value={control.triggerIdentifier} selected={control.active}>\n\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t) : null}\n\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate getCurrentTab(): GovTabControllerItem | null {\n\t\treturn this.controller.find(control => control.active) || null\n\t}\n\n\tprivate onSelectHandler(control: GovTabControllerItem) {\n\t\tconst index = this.controller.findIndex(t => t.triggerIdentifier === control.triggerIdentifier);\n\t\tthis.focusIndex = index\n\t\tthis.setActiveByIdentifier(control.triggerIdentifier)\n\t\tthis.reRender()\n\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t}\n\n\tprivate onChangeHandler(e: CustomEvent) {\n\t\tconst triggerId = (e.target as HTMLSelectElement).value\n\t\te.stopPropagation()\n\t\tthis.setActiveByIdentifier(triggerId)\n\t\tthis.reRender()\n\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t}\n\n\tprivate onKeydownHandler(e: KeyboardEvent) {\n\t\tconst keyCode = e.keyCode\n\n\t\te.stopPropagation()\n\t\tthis.goToPrevNext(keyCode)\n\t}\n\n\tprivate goToPrevNext(keyCode: number) {\n\t\tif ([37, 38, 39, 40].includes(keyCode)) {\n\t\t\tif (false === (this.focusIndex >= 0 && this.focusIndex <= this.controller.length - 1)) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.controller[this.focusIndex].active = false\n\n\t\t\tif (keyCode === 39 || keyCode === 40) {\n\t\t\t\tthis.focusIndex++\n\t\t\t\tif (this.focusIndex >= this.controller.length) {\n\t\t\t\t\tthis.focusIndex = 0\n\t\t\t\t}\n\t\t\t\tif (this.controller[this.focusIndex].disabled) {\n\t\t\t\t\tthis.goToPrevNext(40)\n\t\t\t\t}\n\t\t\t} else if (keyCode === 37 || keyCode === 38) {\n\t\t\t\tthis.focusIndex--\n\t\t\t\tif (this.focusIndex < 0) {\n\t\t\t\t\tthis.focusIndex = this.controller.length - 1\n\t\t\t\t}\n\t\t\t\tif (this.controller[this.focusIndex].disabled) {\n\t\t\t\t\tthis.goToPrevNext(38)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.focusIndex >= 0 && this.focusIndex <= this.controller.length - 1) {\n\t\t\t\tconst current = this.controller[this.focusIndex]\n\t\t\t\tcurrent.active = true\n\t\t\t\tconst trigger = this.triggerRefs[current.triggerIdentifier]\n\t\t\t\tif (trigger.nodeName.toLowerCase() === 'gov-chip') {\n\t\t\t\t\t(this.triggerRefs[current.triggerIdentifier] as HTMLGovChipElement).setFocus()\n\t\t\t\t} else {\n\t\t\t\t\tthis.triggerRefs[current.triggerIdentifier].focus()\n\t\t\t\t}\n\n\t\t\t\tthis.controller = [...this.controller]\n\t\t\t\tthis.reRender()\n\t\t\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync refresh(): Promise<void> {\n\t\tthis.prepareDataSource()\n\t}\n\n\t/**\n\t * Returns the currently selected tabs-item\n\t */\n\t@Method()\n\tasync currentTab(): Promise<Nullable<HTMLGovTabsItemElement>> {\n\t\treturn this.getCurrentTab().element || null\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync setActiveTab(identifier: string): Promise<void> {\n\t\tthis.setActiveByIdentifier(identifier)\n\t\tthis.reRender()\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.wcagSelectLabel, \"wcag-select-label\", TabsClass.root)\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, TabsClass.root)\n\t}\n}\n"],"mappings":"wcAAA,MAAMA,EAAa,wgKACnB,MAAAC,EAAeD,E,MCgBFE,EAAOC,EAAA,MAAAD,UAAAE,EAOnB,WAAAC,G,oEALQC,KAAAC,YAAyE,G,gBAWnC,G,gBACxB,E,qBACK,M,UAIM,O,aAIQ,U,iBAIU,a,sFAnBlDD,KAAKE,EAAIC,EAAQH,KAAKI,MACtBJ,KAAKK,aAAeC,EAAS,gB,CAqC9B,YAAAC,CAAaC,GACZC,EAAaC,EAAUF,EAAUG,EAAUC,K,CAI5C,eAAAC,CAAgBL,GACfC,EAAaK,EAAaN,EAAUG,EAAUC,K,CAG/C,iBAAAG,GACCf,KAAKgB,mB,CAGN,wBAAMC,GACL,GAAIC,IAA2B,OACxBC,EAAM,WACNnB,KAAKoB,c,CAGZpB,KAAKqB,gB,CAGE,iBAAAL,GACPhB,KAAKsB,WAAa,GAClB,MAAMC,EAA4C,GAClDvB,KAAKI,KAAKoB,iBAAiBC,EAAcb,MAAMc,SAASC,IACvD,MAAMC,EAAcC,QAAQC,IAAI,CAC/BH,EAAII,gBACJJ,EAAIK,uBACJL,EAAIM,oBACFC,MAAK,EAAEC,EAAYC,EAAmBC,MACxC,MAAMC,SAAmBX,EAAIY,aAAa,aAAe,SACzD,MAAO,CACNC,MAAOb,EAAIY,aAAa,SACxBE,kBAAmBN,EACnBE,SAAUA,EACVD,kBAAmBA,EACnBM,QAASf,EACTgB,OAAQ,MACRC,QAASN,EACT,IAEFf,EAASsB,KAAKjB,EAAY,IAE3BC,QAAQC,IAAIP,GAAUW,MAAKY,IAC1B,IAAIC,EAAaD,EAAYE,WAAU1B,GAAcA,EAAWsB,UAChE,GAAIG,KAAgB,EAAGA,EAAa,EACpC/C,KAAKiD,WAAaF,EAClBD,EAAYC,GAAYJ,OAAS,KACjC3C,KAAKsB,WAAa,IAAIwB,GACtB9C,KAAKkD,UAAU,G,CAIT,qBAAAC,CAAsBhB,GAC7B,MAAMiB,EAAO,GACbpD,KAAKsB,WAAW+B,KAAIC,IACnBA,EAAKX,OAASR,IAAemB,EAAKlB,mBAAqBD,IAAemB,EAAKb,kBAC3EW,EAAKP,KAAKS,EAAK,IAEhBtD,KAAKsB,WAAa,IAAI8B,E,CAGf,QAAAF,GACPlD,KAAKsB,WAAW+B,KAAIE,IACnBA,EAAQb,QAAQc,gBAAgBD,EAAQZ,OAAO,G,CAYzC,cAAAtB,GACP,MAAMA,EAAiB,IAAIoC,eAC1BC,GAAS,QAEN,MAGJrC,EAAesC,QAAQ3D,KAAK4D,Q,CAG7B,MAAAC,GACC,OACC3D,EAAC4D,EAAI,CAAAC,IAAA,2CACJC,MAAOhE,KAAKE,EAAE+D,QAAQtD,EAAUC,MAChCsD,QAASlE,KAAKkE,QACdC,KAAMnE,KAAKmE,KACXC,KAAK,UACLC,IAAKC,GAAOtE,KAAK4D,QAAUU,EAAqB,aACpCtE,KAAKuE,UAAS,kBACTvE,KAAKwE,eACtBC,UAAWzE,KAAK0E,iBAAiBC,KAAK3E,OAEtCE,EAAA,OAAA6D,IAAA,2CAAKC,MAAOrD,EAAUiE,KAAI,cAAeC,EAAW7E,KAAK8E,kBACxD5E,EAAA,MAAA6D,IAAA,2CAAIC,MAAOrD,EAAUoE,MACnB/E,KAAKsB,WAAW+B,KAAIE,GACpBrD,EAAA,MAAI8D,MAAOrD,EAAU2C,MACnBtD,KAAKmE,MAAQ,OACbjE,EAAA,UACC8D,MAAOrD,EAAUqE,IACjBC,GAAI1B,EAAQnB,kBACZgC,KAAK,MACLc,QAAS,IAAMlF,KAAKmF,gBAAgB5B,GACpClB,SAAUkB,EAAQlB,SAAQ,gBACXwC,EAAWtB,EAAQlB,UAAS,gBAC5BwC,EAAWtB,EAAQZ,QAAO,gBAC1BY,EAAQd,kBACvB2C,SAAU7B,EAAQZ,SAAWY,EAAQlB,SAAW,GAAK,EACrDgC,IAAKC,GAAOtE,KAAKC,YAAYsD,EAAQnB,mBAAqBkC,GAEzDf,EAAQf,OAGVtC,EAAA,YACCkE,KAAK,MACLiB,IAAK,SACLlD,WAAYoB,EAAQnB,kBAAiB,gBACtBmB,EAAQZ,OAAM,gBACdY,EAAQd,kBACvB6C,UAAW/B,EAAQZ,OACnBN,SAAUkB,EAAQlB,SAClB6B,QAASlE,KAAKkE,QACdqB,SAAUhC,EAAQZ,OAClB0B,IAAKC,GAAOtE,KAAKC,YAAYsD,EAAQnB,mBAAqBkC,EAAyB,eACrE,IAAMtE,KAAKmF,gBAAgB5B,IAExCA,EAAQf,YAQftC,EAAA,QAAA6D,IAAA,2CAAMkB,GAAIjF,KAAKK,aAAcmF,OAAM,MACjCxF,KAAKyF,iBAENzF,KAAK8E,gBACL5E,EAAA,sCAAmCF,KAAKK,aAAY,eAAgBL,KAAK0F,gBAAgBf,KAAK3E,OAC5FA,KAAKsB,WAAW+B,KAAIE,GACpBrD,EAAA,UAAQyF,MAAOpC,EAAQnB,kBAAmBwD,SAAUrC,EAAQZ,QAC1DY,EAAQf,UAIT,KAEJtC,EAAA,QAAA6D,IAAA,6C,CAKK,aAAA8B,GACP,OAAO7F,KAAKsB,WAAWwE,MAAKvC,GAAWA,EAAQZ,UAAW,I,CAGnD,eAAAwC,CAAgB5B,GACvB,MAAMwC,EAAQ/F,KAAKsB,WAAW0B,WAAUgD,GAAKA,EAAE5D,oBAAsBmB,EAAQnB,oBAC7EpC,KAAKiD,WAAa8C,EAClB/F,KAAKmD,sBAAsBI,EAAQnB,mBACnCpC,KAAKkD,WACLlD,KAAKiG,UAAUC,KAAKlG,KAAK6F,gBAAgBnD,Q,CAGlC,eAAAgD,CAAgBS,GACvB,MAAMC,EAAaD,EAAEE,OAA6BV,MAClDQ,EAAEG,kBACFtG,KAAKmD,sBAAsBiD,GAC3BpG,KAAKkD,WACLlD,KAAKiG,UAAUC,KAAKlG,KAAK6F,gBAAgBnD,Q,CAGlC,gBAAAgC,CAAiByB,GACxB,MAAMI,EAAUJ,EAAEI,QAElBJ,EAAEG,kBACFtG,KAAKwG,aAAaD,E,CAGX,YAAAC,CAAaD,GACpB,GAAI,CAAC,GAAI,GAAI,GAAI,IAAIE,SAASF,GAAU,CACvC,GAAI,SAAWvG,KAAKiD,YAAc,GAAKjD,KAAKiD,YAAcjD,KAAKsB,WAAWoF,OAAS,GAAI,CACtF,M,CAGD1G,KAAKsB,WAAWtB,KAAKiD,YAAYN,OAAS,MAE1C,GAAI4D,IAAY,IAAMA,IAAY,GAAI,CACrCvG,KAAKiD,aACL,GAAIjD,KAAKiD,YAAcjD,KAAKsB,WAAWoF,OAAQ,CAC9C1G,KAAKiD,WAAa,C,CAEnB,GAAIjD,KAAKsB,WAAWtB,KAAKiD,YAAYZ,SAAU,CAC9CrC,KAAKwG,aAAa,G,OAEb,GAAID,IAAY,IAAMA,IAAY,GAAI,CAC5CvG,KAAKiD,aACL,GAAIjD,KAAKiD,WAAa,EAAG,CACxBjD,KAAKiD,WAAajD,KAAKsB,WAAWoF,OAAS,C,CAE5C,GAAI1G,KAAKsB,WAAWtB,KAAKiD,YAAYZ,SAAU,CAC9CrC,KAAKwG,aAAa,G,EAIpB,GAAIxG,KAAKiD,YAAc,GAAKjD,KAAKiD,YAAcjD,KAAKsB,WAAWoF,OAAS,EAAG,CAC1E,MAAMC,EAAU3G,KAAKsB,WAAWtB,KAAKiD,YACrC0D,EAAQhE,OAAS,KACjB,MAAMiE,EAAU5G,KAAKC,YAAY0G,EAAQvE,mBACzC,GAAIwE,EAAQC,SAASC,gBAAkB,WAAY,CACjD9G,KAAKC,YAAY0G,EAAQvE,mBAA0C2E,U,KAC9D,CACN/G,KAAKC,YAAY0G,EAAQvE,mBAAmB4E,O,CAG7ChH,KAAKsB,WAAa,IAAItB,KAAKsB,YAC3BtB,KAAKkD,WACLlD,KAAKiG,UAAUC,KAAKlG,KAAK6F,gBAAgBnD,Q,GAS5C,aAAMuE,GACLjH,KAAKgB,mB,CAON,gBAAMkG,GACL,OAAOlH,KAAK6F,gBAAgBnD,SAAW,I,CAOxC,kBAAMyE,CAAahF,GAClBnC,KAAKmD,sBAAsBhB,GAC3BnC,KAAKkD,U,CAON,kBAAM9B,GACLgG,EAAiBpH,KAAKyF,gBAAiB,oBAAqB9E,EAAUC,MACtEyG,EAAkBrH,KAAKuE,UAAWvE,KAAKwE,eAAgB7D,EAAUC,K","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["govTabsCss","GovTabsStyle0","GovTabs","proxyCustomElement","H","constructor","this","triggerRefs","h","govHost","host","formSelectId","createID","validateType","newValue","validateProp","TabTypes","TabsClass","root","validateVariant","TabVariants","componentWillLoad","prepareControllers","componentDidRender","canValidateWcagOnRender","delay","validateWcag","controllers","promises","querySelectorAll","TabsItemClass","forEach","tab","controlItem","Promise","all","getIdentifier","getTriggerIdentifier","getDisableState","then","identifier","triggerIdentifier","disabled","isDefault","getAttribute","label","contentIdentifier","element","active","default","push","defaultTabIndex","findIndex","controller","focusIndex","reRender","setActiveByIdentifier","temp","map","item","control","setActiveStatus","catch","render","Host","key","class","classes","variant","type","role","wcagLabel","wcagLabelledBy","onKeyDown","onKeydownHandler","bind","tabs","toBoolAttr","compactControls","list","btn","id","onClick","onSelectHandler","tabindex","ref","el","tag","focusable","inverse","hidden","wcagSelectLabel","onChangeHandler","value","selected","getCurrentTab","find","index","t","govChange","emit","e","triggerId","target","stopPropagation","keyCode","goToPrevNext","includes","length","current","trigger","nodeName","toLowerCase","setFocus","focus","refresh","currentTab","setActiveTab","rerender","validateWcagProp","validateWcagLabel"],"sources":["../../../packages/core/src/components/gov-tabs/gov-tabs.scss?tag=gov-tabs","../../../packages/core/src/components/gov-tabs/gov-tabs.tsx"],"sourcesContent":["/*\n * Tabs\n */\n\n$class: \".gov-tabs\";\n\n#{$class} {\n\t@include base();\n\t&__list {\n\t\t@extend %reset-ul;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tmargin: rem-calc(0 0 20);\n\t}\n\t&__list > &__item {\n\t\t@extend %reset-ul-li;\n\t\tdisplay: flex;\n\t\tmargin: 0;\n\t}\n\t&__btn {\n\t\t@include typography($font-size-s);\n\t\t@include button-core();\n\t\t@include focus-outline();\n\t\tmargin: 0;\n\t\tpadding: rem-calc(12 0 10);\n\t\tborder-bottom: rem-calc(2) solid transparent;\n\t\tfont-weight: 700;\n\t\ttext-align: center;\n\t\ttransition: $t linear color, $t linear border-color;\n\t\t&[disabled] {\n\t\t\tcursor: not-allowed;\n\t\t}\n\t}\n\n\t// VARIANTS\n\t@each $type, $definitions in $tabs-types {\n\t\t&[type=\"#{$type}\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__list {\n\t\t\t\t\tgap: get(\"item-spacing\", $definitions);\n\t\t\t\t\t@if deep-map-check($definitions, \"border\") {\n\t\t\t\t\t\tborder-bottom: $tabs-list-border;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t@each $variant, $definitions in $tabs-variants {\n\t\t&[variant=\"#{$variant}\"][type=\"text\"] {\n\t\t\t#{$class} {\n\t\t\t\t&__btn:not([disabled]) {\n\t\t\t\t\tcolor: get(\"color\", $definitions);\n\t\t\t\t\t@include hover() {\n\t\t\t\t\t\tcolor: get(\"color-hover\", $definitions);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// STATES\n\t\t\t\t&__btn[aria-selected=\"true\"] {\n\t\t\t\t\tborder-bottom-color: get(\"color-active\", $definitions);\n\t\t\t\t\tcolor: get(\"color-active\", $definitions);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t&[orientation=\"vertical\"] {\n\t\t#{$class}__btn {\n\t\t\ttext-align: left;\n\t\t}\n\t}\n\n\t// MQ\n\t@include mq($from: xl) {\n\t\t&[orientation=\"vertical\"] {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\n\t\t\t#{$class}__list {\n\t\t\t\tflex-wrap: nowrap;\n\t\t\t\tflex-direction: column;\n\t\t\t\twidth: max-content;\n\t\t\t\tmax-width: 30vw;\n\t\t\t\tmargin-right: rem-calc(20);\n\t\t\t\tpadding: rem-calc(0 8);\n\t\t\t\tborder-bottom: none;\n\t\t\t\tborder-right: $tabs-list-border;\n\t\t\t}\n\n\t\t\t#{$class}__item {\n\t\t\t\tjustify-content: flex-end;\n\t\t\t}\n\n\t\t\t#{$class}__btn {\n\t\t\t\tpadding: rem-calc(8 12);\n\t\t\t\ttext-align: right;\n\t\t\t}\n\t\t}\n\t}\n}\n","import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from \"@stencil/core\"\n\nimport {govHost, toBoolAttr} from \"../../helpers/Dom/template\"\nimport {GovHost} from \"../../helpers/Dom/template.types\"\nimport {canValidateWcagOnRender} from \"../../helpers/Dom/win\"\nimport {validateProp} from \"../../helpers/Validate/props\"\nimport {validateWcagLabel, validateWcagProp} from \"../../helpers/Validate/wcag\"\nimport {Nullable} from \"../../types/interfaces\"\nimport {createID} from \"../../utils/string.utils\"\nimport {delay} from \"../../utils/utils\"\nimport {TabOrientationType, TabsClass, TabsItemClass, TabType, TabTypes, TabVariants, VariantType} from \"./constants\"\nimport {GovTabControllerItem} from \"./gov-tabs.types\"\n\n@Component({\n\ttag: \"gov-tabs\",\n\tstyleUrl: \"gov-tabs.scss\",\n})\nexport class GovTabs {\n\tprivate h: GovHost\n\tprivate triggerRefs: Record<string, HTMLButtonElement | HTMLGovChipElement> = {}\n\n\tprivate readonly formSelectId: string\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.formSelectId = createID(\"GovFormSelect\")\n\t}\n\n\t@Element() host: HTMLGovTabsElement\n\t@State() controllers: GovTabControllerItem[] = []\n\t@State() focusIndex = 0\n\t@State() compactControls = false\n\t/**\n\t * Tabs type\n\t */\n\t@Prop() readonly type: TabType = \"text\"\n\t/**\n\t * Style variation of the tab chips.\n\t */\n\t@Prop() readonly variant?: VariantType = \"primary\"\n\t/**\n\t * Tabs orientation\n\t */\n\t@Prop() readonly orientation: TabOrientationType = \"horizontal\"\n\t/**\n\t * Adds accessible label for the tabs that is only shown for screen readers.\n\t */\n\t@Prop({attribute: \"wcag-label\"}) readonly wcagLabel: string\n\t/**\n\t * Adds accessible label for the tabs select\n\t */\n\t@Prop({attribute: \"wcag-select-label\"}) readonly wcagSelectLabel: string\n\t/**\n\t * Indicates the id of a component that labels the tabs.\n\t */\n\t@Prop({attribute: \"wcag-labelled-by\"}) readonly wcagLabelledBy: string\n\t/**\n\t * Emitted when the tab is changed.\n\t */\n\t@Event({eventName: \"gov-change\"}) govChange: EventEmitter<HTMLGovTabsItemElement>\n\n\t@Watch(\"type\")\n\tvalidateType(newValue: string): void {\n\t\tvalidateProp(TabTypes, newValue, TabsClass.root)\n\t}\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(TabVariants, newValue, TabsClass.root)\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.prepareControllers()\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 prepareControllers(): void {\n\t\tthis.controllers = []\n\t\tconst promises: Promise<GovTabControllerItem>[] = []\n\t\tthis.host.querySelectorAll(TabsItemClass.root).forEach((tab: HTMLGovTabsItemElement) => {\n\t\t\tconst controlItem = Promise.all([\n\t\t\t\ttab.getIdentifier(),\n\t\t\t\ttab.getTriggerIdentifier(),\n\t\t\t\ttab.getDisableState()\n\t\t\t]).then(([identifier, triggerIdentifier, disabled]) => {\n\t\t\t\tconst isDefault = typeof tab.getAttribute(\"default\") === \"string\"\n\t\t\t\treturn {\n\t\t\t\t\tlabel: tab.getAttribute(\"label\"),\n\t\t\t\t\tcontentIdentifier: identifier,\n\t\t\t\t\tdisabled: disabled,\n\t\t\t\t\ttriggerIdentifier: triggerIdentifier,\n\t\t\t\t\telement: tab,\n\t\t\t\t\tactive: false,\n\t\t\t\t\tdefault: isDefault,\n\t\t\t\t}\n\t\t\t})\n\t\t\tpromises.push(controlItem)\n\t\t});\n\t\tPromise.all(promises).then(controllers => {\n\t\t\tlet defaultTabIndex = controllers.findIndex(controller => controller.default)\n\t\t\tif (defaultTabIndex === -1) defaultTabIndex = 0\n\t\t\tthis.focusIndex = defaultTabIndex\n\t\t\tcontrollers[defaultTabIndex].active = true\n\t\t\tthis.controllers = [...controllers]\n\t\t\tthis.reRender()\n\t\t})\n\t}\n\n\tprivate setActiveByIdentifier(identifier: string) {\n\t\tconst temp = []\n\t\tthis.controllers.map(item => {\n\t\t\titem.active = identifier === item.triggerIdentifier || identifier === item.contentIdentifier\n\t\t\ttemp.push(item)\n\t\t})\n\t\tthis.controllers = [...temp]\n\t}\n\n\tprivate reRender() {\n\t\tthis.controllers.map(control => {\n\t\t\tcontrol.element.setActiveStatus(control.active).catch()\n\t\t})\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={this.h.classes(TabsClass.root)}\n\t\t\t\tvariant={this.variant}\n\t\t\t\ttype={this.type}\n\t\t\t\trole=\"tablist\"\n\t\t\t\taria-label={this.wcagLabel}\n\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\tonKeyDown={this.onKeydownHandler.bind(this)}\n\t\t\t>\n\t\t\t\t<div class={TabsClass.tabs} aria-hidden={toBoolAttr(this.compactControls)}>\n\t\t\t\t\t<ul class={TabsClass.list}>\n\t\t\t\t\t\t{this.controllers.map(control => (\n\t\t\t\t\t\t\t<li class={TabsClass.item}>\n\t\t\t\t\t\t\t\t{this.type == \"text\" ? (\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tclass={TabsClass.btn}\n\t\t\t\t\t\t\t\t\t\tid={control.triggerIdentifier}\n\t\t\t\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t\t\t\tonClick={() => this.onSelectHandler(control)}\n\t\t\t\t\t\t\t\t\t\tdisabled={control.disabled}\n\t\t\t\t\t\t\t\t\t\taria-disabled={toBoolAttr(control.disabled)}\n\t\t\t\t\t\t\t\t\t\taria-selected={toBoolAttr(control.active)}\n\t\t\t\t\t\t\t\t\t\taria-controls={control.contentIdentifier}\n\t\t\t\t\t\t\t\t\t\ttabindex={control.active && !control.disabled ? 0 : -1}\n\t\t\t\t\t\t\t\t\t\tref={el => (this.triggerRefs[control.triggerIdentifier] = el as HTMLButtonElement)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<gov-chip\n\t\t\t\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t\t\t\ttag={'button'}\n\t\t\t\t\t\t\t\t\t\tidentifier={control.triggerIdentifier}\n\t\t\t\t\t\t\t\t\t\twcag-selected={control.active}\n\t\t\t\t\t\t\t\t\t\twcag-controls={control.contentIdentifier}\n\t\t\t\t\t\t\t\t\t\tfocusable={control.active}\n\t\t\t\t\t\t\t\t\t\tdisabled={control.disabled}\n\t\t\t\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\t\t\t\tinverse={!control.active}\n\t\t\t\t\t\t\t\t\t\tref={el => (this.triggerRefs[control.triggerIdentifier] = el as HTMLGovChipElement)}\n\t\t\t\t\t\t\t\t\t\ton-gov-click={() => this.onSelectHandler(control)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t\t\t</gov-chip>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\n\t\t\t\t<span id={this.formSelectId} hidden>\n\t\t\t\t\t{this.wcagSelectLabel}\n\t\t\t\t</span>\n\t\t\t\t{this.compactControls ? (\n\t\t\t\t\t<gov-form-select wcag-labelled-by={this.formSelectId} onGov-change={this.onChangeHandler.bind(this)}>\n\t\t\t\t\t\t{this.controllers.map(control => (\n\t\t\t\t\t\t\t<option value={control.triggerIdentifier} selected={control.active}>\n\t\t\t\t\t\t\t\t{control.label}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</gov-form-select>\n\t\t\t\t) : null}\n\n\t\t\t\t<slot></slot>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate getCurrentTab(): GovTabControllerItem | null {\n\t\treturn this.controllers.find(control => control.active) || null\n\t}\n\n\tprivate onSelectHandler(control: GovTabControllerItem) {\n\t\tconst index = this.controllers.findIndex(t => t.triggerIdentifier === control.triggerIdentifier);\n\t\tthis.focusIndex = index\n\t\tthis.setActiveByIdentifier(control.triggerIdentifier)\n\t\tthis.reRender()\n\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t}\n\n\tprivate onChangeHandler(e: CustomEvent) {\n\t\tconst triggerId = (e.target as HTMLSelectElement).value\n\t\te.stopPropagation()\n\t\tthis.setActiveByIdentifier(triggerId)\n\t\tthis.reRender()\n\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t}\n\n\tprivate onKeydownHandler(e: KeyboardEvent) {\n\t\tconst keyCode = e.keyCode\n\n\t\te.stopPropagation()\n\t\tthis.goToPrevNext(keyCode)\n\t}\n\n\tprivate goToPrevNext(keyCode: number) {\n\t\tif ([37, 38, 39, 40].includes(keyCode)) {\n\t\t\tif (false === (this.focusIndex >= 0 && this.focusIndex <= this.controllers.length - 1)) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.controllers[this.focusIndex].active = false\n\n\t\t\tif (keyCode === 39 || keyCode === 40) {\n\t\t\t\tthis.focusIndex++\n\t\t\t\tif (this.focusIndex >= this.controllers.length) {\n\t\t\t\t\tthis.focusIndex = 0\n\t\t\t\t}\n\t\t\t\tif (this.controllers[this.focusIndex].disabled) {\n\t\t\t\t\tthis.goToPrevNext(40)\n\t\t\t\t}\n\t\t\t} else if (keyCode === 37 || keyCode === 38) {\n\t\t\t\tthis.focusIndex--\n\t\t\t\tif (this.focusIndex < 0) {\n\t\t\t\t\tthis.focusIndex = this.controllers.length - 1\n\t\t\t\t}\n\t\t\t\tif (this.controllers[this.focusIndex].disabled) {\n\t\t\t\t\tthis.goToPrevNext(38)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.focusIndex >= 0 && this.focusIndex <= this.controllers.length - 1) {\n\t\t\t\tconst current = this.controllers[this.focusIndex]\n\t\t\t\tcurrent.active = true\n\t\t\t\tconst trigger = this.triggerRefs[current.triggerIdentifier]\n\t\t\t\tif (trigger.nodeName.toLowerCase() === 'gov-chip') {\n\t\t\t\t\t(this.triggerRefs[current.triggerIdentifier] as HTMLGovChipElement).setFocus()\n\t\t\t\t} else {\n\t\t\t\t\tthis.triggerRefs[current.triggerIdentifier].focus()\n\t\t\t\t}\n\n\t\t\t\tthis.controllers = [...this.controllers]\n\t\t\t\tthis.reRender()\n\t\t\t\tthis.govChange.emit(this.getCurrentTab().element)\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync refresh(): Promise<void> {\n\t\tthis.prepareControllers()\n\t}\n\n\t/**\n\t * Returns the currently selected tabs-item\n\t */\n\t@Method()\n\tasync currentTab(): Promise<Nullable<HTMLGovTabsItemElement>> {\n\t\treturn this.getCurrentTab().element || null\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync setActiveTab(identifier: string): Promise<void> {\n\t\tthis.setActiveByIdentifier(identifier)\n\t\tthis.reRender()\n\t}\n\n\t/**\n\t * Regenerate tabs controllers\n\t */\n\t@Method()\n\tasync rerender(): Promise<void> {\n\t\tthis.prepareControllers();\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.wcagSelectLabel, \"wcag-select-label\", TabsClass.root)\n\t\tvalidateWcagLabel(this.wcagLabel, this.wcagLabelledBy, TabsClass.root)\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|