UNPKG

@public-ui/components

Version:

Contains all web components that belong to KoliBri - The accessible HTML-Standard.

4 lines 10 kB
/*! * KoliBri - The accessible HTML-Standard */ import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{w as watchValidator,k as watchString,E as setEventTarget,G as devHint,m as showExpertSlot}from"./index2.js";import{o as onLocationChange}from"./ariaCurrentService.js";import{d as dispatchDomEvent,K as KolEvent}from"./events.js";import{n as nonce}from"./dev.utils.js";import{c as KolIconTag,f as KolTooltipWcTag}from"./component-names.js";import{t as translate}from"./i18n2.js";import{v as validateAccessKey,a as validateAccessAndShortKey,b as validateShortKey,c as validateTabIndex}from"./access-and-short-key.js";import{c as clsx}from"./clsx.js";import"./bem.js";import{K as KolSpanFc}from"./Span.js";import{v as validateHref}from"./href.js";import{v as validateAriaDescription,a as validateAriaExpanded,b as validateAlternativeButtonLinkRole,c as validateButtonVariant}from"./button-variant.js";import{v as validateCustomClass}from"./custom-class.js";import{v as validateDisabled}from"./disabled.js";import{v as validateHideLabel}from"./hide-label.js";import{v as validateIcons}from"./icons.js";import{a as validateLabelWithExpertSlot}from"./label.js";import{v as validateTooltipAlign}from"./tooltip-align.js";const ariaCurrentValuePropTypeOptions=["date","location","page","step","time","true","false"],validateAriaCurrentValue=(a,t)=>{watchValidator(a,"_ariaCurrentValue",(a=>"string"==typeof a&&ariaCurrentValuePropTypeOptions.includes(a)),new Set([`AriaCurrentValue {${ariaCurrentValuePropTypeOptions.join(", ")}`]),t,{defaultValue:"page"})},validateAriaOwns=(a,t)=>{watchString(a,"_ariaOwns",t,{defaultValue:void 0})},validateDownload=(a,t)=>{watchString(a,"_download",t)},validateLinkCallbacks=(a,t)=>{"object"==typeof t&&"function"==typeof(null==t?void 0:t.onClick)&&(a.state=Object.assign(Object.assign({},a.state),{_on:t}))},validateLinkTarget=(a,t)=>{watchString(a,"_target",t)},KolLinkWc$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.internalDescriptionById=nonce(),this.catchRef=a=>{this.anchorRef=a},this.onClick=a=>{var t,e;!0===this.state._disabled?a.preventDefault():("function"==typeof(null===(t=this.state._on)||void 0===t?void 0:t.onClick)&&(a.preventDefault(),setEventTarget(a,this.anchorRef),null===(e=this.state._on)||void 0===e||e.onClick(a,this.state._href)),this.host&&dispatchDomEvent(this.host,KolEvent.click,this.state._href))},this.getRenderValues=()=>{const a="string"==typeof this.state._target&&"_self"!==this.state._target,t={href:"string"==typeof this.state._href&&this.state._href.length>0?this.state._href:"javascript:void(0);",target:"string"==typeof this.state._target&&this.state._target.length>0?this.state._target:void 0,rel:a?"noopener":void 0,download:"string"==typeof this.state._download?this.state._download:void 0};return!0!==this.state._hideLabel||this.state._label||devHint("[KolLink] An aria-label must be set when _hide-label is set."),{isExternal:a,tagAttrs:t}},this._accessKey=void 0,this._ariaCurrentValue=void 0,this._ariaDescription=void 0,this._ariaExpanded=void 0,this._ariaOwns=void 0,this._customClass=void 0,this._disabled=!1,this._download=void 0,this._hideLabel=!1,this._href=void 0,this._icons=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._shortKey=void 0,this._tabIndex=void 0,this._target=void 0,this._tooltipAlign="right",this._variant="normal",this.state={_ariaCurrentValue:"page",_href:"",_icons:{}}}async kolFocus(){var a;null===(a=this.anchorRef)||void 0===a||a.focus()}render(){var a,t;const{isExternal:e,tagAttrs:i}=this.getRenderValues(),s=showExpertSlot(this.state._label),l=Boolean(null===(t=null===(a=this.state._ariaDescription)||void 0===a?void 0:a.trim())||void 0===t?void 0:t.length);return h(Host,{key:"587357d002a1ea7744990f5ce802f96af6baef5a"},h("a",Object.assign({key:"7f3fc17c83bbcfdc184b5edea97d25ce06f55227",ref:this.catchRef},i,{accessKey:this.state._accessKey,"aria-current":this.state._ariaCurrent,"aria-describedby":l?this.internalDescriptionById:void 0,"aria-disabled":this.state._disabled?"true":void 0,"aria-expanded":"boolean"==typeof this.state._ariaExpanded?String(this.state._ariaExpanded):void 0,"aria-owns":this.state._ariaOwns,"aria-label":this.state._hideLabel&&"string"==typeof this.state._label?`${this.state._label}${e?` (${translate("kol-open-link-in-tab")})`:""}`:void 0,class:clsx("kol-link",{"kol-link--disabled":!0===this.state._disabled,"kol-link--external-link":e,"kol-link--hide-label":!0===this.state._hideLabel,[`kol-link--${this.state._variant}`]:"button"===this.state._role&&"custom"!==this.state._variant,[this.state._customClass]:"custom"===this.state._variant&&"string"==typeof this.state._customClass&&this.state._customClass.length>0})},this.state._on,{onClick:this.onClick,onKeyPress:this.onClick,role:this.state._role,tabIndex:this.state._disabled?-1:this.state._tabIndex}),h(KolSpanFc,{key:"b806611a5bb089b415a07d55dd6c070c9703c886",class:"kol-link__text",badgeText:this.state._accessKey||this.state._shortKey,icons:this.state._icons,hideLabel:this.state._hideLabel,label:s?"":this.state._label||this.state._href},h("slot",{key:"5a40e834255ae54cf719dd51a521e92874c89c47",name:"expert",slot:"expert"})),e&&h(KolIconTag,{key:"f757a3dc5c051df590dc7048ae15a26e8c28ea8b",class:"kol-link__icon",_label:this.state._hideLabel?"":translate("kol-open-link-in-tab"),_icons:"codicon codicon-link-external","aria-hidden":this.state._hideLabel})),h(KolTooltipWcTag,{key:"1fd1e9b9fcae9a8505f29cc6962d742670d96f84","aria-hidden":"true",class:"kol-link__tooltip",hidden:s||!this.state._hideLabel,_badgeText:this.state._accessKey||this.state._shortKey,_align:this.state._tooltipAlign,_label:this.state._label||this.state._href}),l&&h("span",{key:"4d5d88f8b21c251476b31533e8c54318fd087b27",class:"visually-hidden",id:this.internalDescriptionById},this.state._ariaDescription))}validateAccessKey(a){validateAccessKey(this,a),validateAccessAndShortKey(a,this._shortKey)}validateAriaCurrentValue(a){validateAriaCurrentValue(this,a)}validateAriaDescription(a){validateAriaDescription(this,a)}validateAriaExpanded(a){validateAriaExpanded(this,a)}validateAriaOwns(a){validateAriaOwns(this,a)}validateCustomClass(a){validateCustomClass(this,a)}validateDisabled(a){validateDisabled(this,a)}validateDownload(a){validateDownload(this,a)}validateHideLabel(a){validateHideLabel(this,a)}validateHref(a){validateHref(this,a,{required:!0})}validateIcons(a){validateIcons(this,a)}validateLabel(a){validateLabelWithExpertSlot(this,a)}validateOn(a){validateLinkCallbacks(this,a)}validateRole(a){validateAlternativeButtonLinkRole(this,a)}validateShortKey(a){validateShortKey(this,a),validateAccessAndShortKey(this._accessKey,a)}validateTabIndex(a){validateTabIndex(this,a)}validateTarget(a){validateLinkTarget(this,a)}validateTooltipAlign(a){validateTooltipAlign(this,a)}validateVariant(a){validateButtonVariant(this,a)}componentWillLoad(){this.validateAccessKey(this._accessKey),this.validateAriaCurrentValue(this._ariaCurrentValue),this.validateAriaDescription(this._ariaDescription),this.validateAriaExpanded(this._ariaExpanded),this.validateAriaOwns(this._ariaOwns),this.validateCustomClass(this._customClass),this.validateDisabled(this._disabled),this.validateDownload(this._download),this.validateHideLabel(this._hideLabel),this.validateHref(this._href),this.validateIcons(this._icons),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateShortKey(this._shortKey),this.validateTabIndex(this._tabIndex),this.validateTarget(this._target),this.validateTooltipAlign(this._tooltipAlign),this.validateVariant(this._variant),this.unsubscribeOnLocationChange=onLocationChange((a=>{this.state._ariaCurrent=a===this.state._href?this.state._ariaCurrentValue:void 0})),validateAccessAndShortKey(this._accessKey,this._shortKey)}disconnectedCallback(){this.unsubscribeOnLocationChange&&this.unsubscribeOnLocationChange()}get host(){return this}static get watchers(){return{_accessKey:["validateAccessKey"],_ariaCurrentValue:["validateAriaCurrentValue"],_ariaDescription:["validateAriaDescription"],_ariaExpanded:["validateAriaExpanded"],_ariaOwns:["validateAriaOwns"],_customClass:["validateCustomClass"],_disabled:["validateDisabled"],_download:["validateDownload"],_hideLabel:["validateHideLabel"],_href:["validateHref"],_icons:["validateIcons"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_shortKey:["validateShortKey"],_tabIndex:["validateTabIndex"],_target:["validateTarget"],_tooltipAlign:["validateTooltipAlign"],_variant:["validateVariant"]}}},[4,"kol-link-wc",{_accessKey:[1,"_access-key"],_ariaCurrentValue:[1,"_aria-current-value"],_ariaDescription:[1,"_aria-description"],_ariaExpanded:[4,"_aria-expanded"],_ariaOwns:[1,"_aria-owns"],_customClass:[1,"_custom-class"],_disabled:[4],_download:[1],_hideLabel:[4,"_hide-label"],_href:[1],_icons:[1],_label:[1],_on:[16],_role:[1],_shortKey:[1,"_short-key"],_tabIndex:[2,"_tab-index"],_target:[1],_tooltipAlign:[1,"_tooltip-align"],_variant:[1],state:[32],kolFocus:[64]},void 0,{_accessKey:["validateAccessKey"],_ariaCurrentValue:["validateAriaCurrentValue"],_ariaDescription:["validateAriaDescription"],_ariaExpanded:["validateAriaExpanded"],_ariaOwns:["validateAriaOwns"],_customClass:["validateCustomClass"],_disabled:["validateDisabled"],_download:["validateDownload"],_hideLabel:["validateHideLabel"],_href:["validateHref"],_icons:["validateIcons"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_shortKey:["validateShortKey"],_tabIndex:["validateTabIndex"],_target:["validateTarget"],_tooltipAlign:["validateTooltipAlign"],_variant:["validateVariant"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-link-wc"].forEach((a=>{if("kol-link-wc"===a)customElements.get(a)||customElements.define(a,KolLinkWc$1)}))}const KolLinkWc=KolLinkWc$1,defineCustomElement=defineCustomElement$1;export{KolLinkWc,defineCustomElement};