UNPKG

carbon-react

Version:

A library of reusable React components for easily building user interfaces.

2 lines (1 loc) 3.23 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("invariant"),o=require("../utils/helpers/guid/index.js"),n=require("../../components/icon/icon.component.js"),i=require("./validation-icon.style.js"),u=require("../input-behaviour/input-behaviour.component.js"),s=require("../input-behaviour/input-group-behaviour.component.js");require("../../style/utils/filter-styled-system-padding-props.js");var l=require("../../style/utils/filter-styled-system-margin-props.js");function a(e){return e&&e.__esModule?e:{default:e}}var p=a(r);function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const f=r=>{var{error:a,warning:f,info:d,size:b,onFocus:O,onBlur:y,iconId:v,tooltipId:g,isPartOfInput:j,tabIndex:m=-1,onClick:P,tooltipPosition:h="right",tooltipFlipOverrides:w}=r,I=function(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},i=Object.keys(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)r=i[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}(r,["error","warning","info","size","onFocus","onBlur","iconId","tooltipId","isPartOfInput","tabIndex","onClick","tooltipPosition","tooltipFlipOverrides"]);const x=t.useRef(g||o.default()),q=Array.isArray(w)&&w.every((e=>["bottom","left","right","top"].includes(e)));w&&p.default(q,'The tooltipFlipOverrides prop supplied to ValidationIcon must be an array containing some or all of ["top", "bottom", "left", "right"].');const{hasFocus:F,hasMouseOver:S}=t.useContext(u.InputContext),{hasFocus:C,hasMouseOver:M}=t.useContext(s.InputGroupContext),[k,D]=t.useState(!1),_=(({error:e,warning:t,info:r})=>e?"error":t?"warning":r?"info":null)({error:a,warning:f,info:d}),z=a||f||d;return"string"==typeof z&&_?e.jsx(i.default,(B=function(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){c(e,t,r[t])}))}return e}({validationType:_,onClick:P,onMouseOver:()=>D(!0),onMouseLeave:()=>D(!1),onFocus:e=>{D(!0),O&&O(e)},onBlur:e=>{D(!1),y&&y(e)},isPartOfInput:j,"data-role":"validation-icon-wrapper"},l.default(I)),E=null!=(E={children:e.jsx(n.default,{"aria-describedby":x.current,type:_,tabIndex:m,tooltipId:x.current,tooltipMessage:z,tooltipPosition:h,tooltipVisible:F||S||C||M||k,tooltipFlipOverrides:j&&!w?["top","bottom"]:w,isPartOfInput:j,inputSize:b,id:v,focusable:-1!==m,"data-role":`icon-${_}`},`${_}-icon`)})?E:{},Object.getOwnPropertyDescriptors?Object.defineProperties(B,Object.getOwnPropertyDescriptors(E)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(E)).forEach((function(e){Object.defineProperty(B,e,Object.getOwnPropertyDescriptor(E,e))})),B)):null;var B,E};exports.ValidationIcon=f,exports.default=f;