UNPKG

carbon-react

Version:

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

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