@chief-editor/ui
Version:
UI Component for chief editor
1 lines • 2.28 kB
JavaScript
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},__rest=this&&this.__rest||function(e,t){var r={};for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&t.indexOf(l)<0&&(r[l]=e[l]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(l=Object.getOwnPropertySymbols(e);a<l.length;a++)t.indexOf(l[a])<0&&Object.prototype.propertyIsEnumerable.call(e,l[a])&&(r[l[a]]=e[l[a]])}return r};import{Help}from"@byte-design/icons";import{classnames}from"@co-hooks/util";import React from"react";import{usePrefixCls}from"../../hooks";import{Tooltip}from"../tooltip";export function FormContainer(e){var t=e.hasLabel,r=void 0===t||t,l=e.align,a=void 0===l?"right":l,n=e.colon,i=void 0!==n&&n,o=e.required,s=void 0!==o&&o,c=e.labelWidth,m=e.className,p=e.label,f=e.inline,u=void 0!==f&&f,h=e.children,v=e.tooltip,d=e.hint,b=e.help,g=e.status,y=e.level,_=void 0===y?1:y,x=e.vertical,O=void 0===x||x,P=__rest(e,["hasLabel","align","colon","required","labelWidth","className","label","inline","children","tooltip","hint","help","status","level","vertical"]),C=classnames(usePrefixCls("form-container",{level:!!_&&String(_),inline:u,vertical:O}),m),E=usePrefixCls("form-container-label",{required:s,align:a,vertical:O}),N=classnames(usePrefixCls("form-container-content"),{"has-success":"success"===g,"has-warning":"warning"===g,"has-error":"error"===g,"is-validating":"validating"===g}),R=usePrefixCls("form-container-label-colon"),w=usePrefixCls("form-container-label-tooltip-icon"),j=usePrefixCls("form-container-hint"),q=usePrefixCls("form-container-help");return React.createElement("div",__assign({className:C},P),r?React.createElement("label",{className:E,style:{width:"number"==typeof c?c+"px":c}},v?React.createElement(Tooltip,{trigger:"hover",placement:"top",content:v},React.createElement(Help,{className:w})):null,p,i&&React.createElement("span",{className:R},":")):null,React.createElement("div",{className:N,style:{marginLeft:r?"number"==typeof c?c+"px":c:0}},h,b?React.createElement("div",{className:q},b):null,d?React.createElement("div",{className:j},d):null))}