@adyen/adyen-web
Version:
[](https://www.npmjs.com/package/@adyen/adyen-web)
3 lines (2 loc) • 2.82 kB
JavaScript
import{createElement as e}from"../../external/preact/dist/preact.js";import t from"../../components/internal/BaseElement/BaseElement.js";import{SRMessages as r}from"./SRMessages.js";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){n(e,t,r[t])})}return e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}class i extends t{get enabled(){return this._enabled}get moveFocus(){return this._moveFocus}setAriaProps(e){if(!this.props.enabled)return;const t=document.querySelector('[class^="adyen-checkout-sr-panel"]');if(t){for(const[r,n]of Object.entries(e))t.setAttribute(r,n);this.props=s(o({},this.props),{ariaAttributes:o({},this.props.ariaAttributes,e)})}else console.error("SRPanel: Failed to set aria props because no panel was found")}render(){return this.props.enabled?e("div",o({className:this.showPanel?"adyen-checkout-sr-panel":"adyen-checkout-sr-panel--sr-only",role:"log"},this.props.ariaAttributes,!1),e(r,{setComponentRef:this.setComponentRef})):null}constructor(e,t){var r;if(super(e,t),n(this,"srPanelContainer",null),n(this,"id",void 0),n(this,"showPanel",void 0),n(this,"_enabled",void 0),n(this,"_moveFocus",void 0),n(this,"componentRef",void 0),n(this,"setComponentRef",e=>{this.componentRef=e}),n(this,"setMessages",e=>{if(!this.props.enabled)return;let t=null;e&&(t=Array.isArray(e)?e:[e]),this.componentRef.setMessages(t)}),this.id=this.props.id,this.showPanel=!1,this._enabled=!1,this._moveFocus=null===(r=this.props.moveFocus)||void 0===r||r,this.props.enabled){this._enabled=!0;const e=document.querySelector(this.props.node);if(!e)throw new Error("Component could not mount. Root node was not found.");{const t=document.getElementById(this.id);t&&e.removeChild(t),this.srPanelContainer=document.createElement("div"),this.srPanelContainer.className="sr-panel-holder",this.srPanelContainer.id=this.id,e.appendChild(this.srPanelContainer),this.mount(this.srPanelContainer)}}}}n(i,"type","srPanel"),n(i,"defaultProps",{enabled:!0,node:"body",showPanel:!1,id:"ariaLiveSRPanel",ariaAttributes:{"aria-relevant":"all","aria-live":"polite","aria-atomic":"true"}});export{i as SRPanel};
//# sourceMappingURL=SRPanel.js.map