UNPKG

@stlite/browser

Version:
3 lines (2 loc) 9.06 kB
import{c0 as K,c1 as Y,r as f,c2 as q,z as J,c3 as l,j as h,bY as Q,bZ as Z,c4 as ee,b_ as te,bH as re,c5 as ne,bV as oe,bC as k,bB as U,bF as ie}from"./index-B3URMCDH.js";import{a as ae}from"./useBasicWidgetState-D0YqqcVB.js";var ce={secondary:"secondary"},A={default:"default"},le={default:"default"},P=Object.freeze({radio:"radio",checkbox:"checkbox"}),T=K("div",function(e){var t=e.$shape,r=e.$length,n=e.$theme,o=r===1?void 0:t!==A.default?"-".concat(n.sizing.scale100):"-0.5px";return{display:"flex",marginLeft:o,marginRight:o}});T.displayName="StyledRoot",T.displayName="StyledRoot";function N(e){"@babel/helpers - typeof";return N=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},N(e)}function z(){return z=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},z.apply(this,arguments)}function V(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function ue(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?V(Object(r),!0).forEach(function(n){G(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):V(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function se(e,t){return ye(e)||de(e,t)||pe(e,t)||fe()}function fe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pe(e,t){if(e){if(typeof e=="string")return X(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return X(e,t)}}function X(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function de(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n=[],o=!0,i=!1,a,u;try{for(r=r.call(e);!(o=(a=r.next()).done)&&(n.push(a.value),!(t&&n.length===t));o=!0);}catch(s){i=!0,u=s}finally{try{!o&&r.return!=null&&r.return()}finally{if(i)throw u}}return n}}function ye(e){if(Array.isArray(e))return e}function be(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function me(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function he(e,t,r){return t&&me(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function ge(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&B(e,t)}function B(e,t){return B=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},B(e,t)}function Se(e){var t=Oe();return function(){var r=x(e),n;if(t){var o=x(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return ve(this,n)}}function ve(e,t){if(t&&(N(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return F(e)}function F(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Oe(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function x(e){return x=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},x(e)}function G(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ee(e,t){return!Array.isArray(e)&&typeof e!="number"?!1:Array.isArray(e)?e.includes(t):e===t}var W=function(e){ge(r,e);var t=Se(r);function r(){var n;be(this,r);for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];return n=t.call.apply(t,[this].concat(i)),G(F(n),"childRefs",{}),n}return he(r,[{key:"render",value:function(){var n=this,o=this.props,i=o.overrides,a=i===void 0?{}:i,u=o.mode,s=u===void 0?P.checkbox:u,b=o.children,d=o.selected,g=o.disabled,p=o.onClick,y=o.kind,S=o.shape,D=o.size,w=Y(a.Root,T),R=se(w,2),L=R[0],E=R[1],j=this.props["aria-label"]||this.props.ariaLabel,v=s===P.radio,$=f.Children.count(b);return f.createElement(q.Consumer,null,function(H){return f.createElement(L,z({"aria-label":j||H.buttongroup.ariaLabel,"data-baseweb":"button-group",role:v?"radiogroup":"group",$shape:S,$length:b.length},E),f.Children.map(b,function(m,C){if(!f.isValidElement(m))return null;var I=m.props.isSelected?m.props.isSelected:Ee(d,C);return v&&(n.childRefs[C]=f.createRef()),f.cloneElement(m,{disabled:g||m.props.disabled,isSelected:I,ref:v?n.childRefs[C]:void 0,tabIndex:!v||I||v&&(!d||d===-1)&&C===0?0:-1,onKeyDown:function(c){if(v){var O=Number(d)?Number(d):0;if(c.key==="ArrowUp"||c.key==="ArrowLeft"){c.preventDefault&&c.preventDefault();var _=O-1<0?$-1:O-1;p&&p(c,_),n.childRefs[_].current&&n.childRefs[_].current.focus()}if(c.key==="ArrowDown"||c.key==="ArrowRight"){c.preventDefault&&c.preventDefault();var M=O+1>$-1?0:O+1;p&&p(c,M),n.childRefs[M].current&&n.childRefs[M].current.focus()}}},kind:y,onClick:function(c){g||(m.props.onClick&&m.props.onClick(c),p&&p(c,C))},shape:S,size:D,overrides:ue({BaseButton:{style:function(c){var O=c.$theme;return b.length===1?{}:S!==A.default?{marginLeft:O.sizing.scale100,marginRight:O.sizing.scale100}:{marginLeft:"0.5px",marginRight:"0.5px"}},props:{"aria-checked":I,role:v?"radio":"checkbox"}}},m.props.overrides)})}))})}}]),r}(f.Component);G(W,"defaultProps",{disabled:!1,onClick:function(){},shape:A.default,size:le.default,kind:ce.secondary});function we(e,t){return t.includes(e)?t.filter(r=>r!==e):[...t,e]}function Le(e,t,r){return e==l.ClickMode.MULTI_SELECT?we(t,r??[]):r!=null&&r.includes(t)?[]:[t]}function je(e){return e.length===0?-1:e[0]}function Ce(e,t,r,n){t.setIntArrayValue(e,r.value,{fromUi:r.fromUi},n)}function ke(e,t,r){const n=r===l.Style.PILLS?k.PILLS:r===l.Style.BORDERLESS?k.BORDERLESS_ICON:k.SEGMENTED_CONTROL,o=r===l.Style.BORDERLESS?U.XSMALL:U.MEDIUM,i=n===k.PILLS||n===k.SEGMENTED_CONTROL,a=r===l.Style.BORDERLESS?"lg":"base";return{element:h.jsx(ie,{icon:t,label:e,iconSize:a,useSmallerFont:i}),kind:n,size:o}}function Re(e,t,r,n){return r.indexOf(n)>-1?!0:t!==l.ClickMode.SINGLE_SELECT||e!==l.SelectionVisualization.ALL_UP_TO_SELECTED?!1:r.length>0&&n<r[0]}function Pe(e,t){return e&&(t=`${t}Active`),t}function xe(e,t){const r={flexWrap:"wrap",maxWidth:"fit-content"};switch(e){case l.Style.BORDERLESS:return{...r,columnGap:t.threeXS,rowGap:t.threeXS};case l.Style.PILLS:return{...r,columnGap:t.twoXS,rowGap:t.twoXS};case l.Style.SEGMENTED_CONTROL:return{...r,columnGap:t.none,rowGap:t.twoXS,"::after":{content:"''",flex:1e4}};default:return r}}function De(e,t,r,n,o,i){const a=Re(r,n,o,t);let u=e.content,s=e.contentIcon;return a&&(u=e.selectedContent?e.selectedContent:u,s=e.selectedContentIcon?e.selectedContentIcon:s),f.forwardRef(function(b,d){const{element:g,kind:p,size:y}=ke(u??"",s??void 0,i),S=Pe(!!(a&&!e.selectedContent&&!e.selectedContentIcon),p);return h.jsx(oe,{...b,size:y,kind:S,children:g})})}function Ie(e,t){return e.getIntArrayValue(t)}function _e(e){return e.default??null}function Me(e){return e.value??null}function Ae(e){const{disabled:t,element:r,fragmentId:n,widgetMgr:o}=e,{clickMode:i,options:a,selectionVisualization:u,style:s,label:b,labelVisibility:d,help:g}=r,p=J(),[y,S]=ae({getStateFromWidgetMgr:Ie,getDefaultStateFromProto:_e,getCurrStateFromProto:Me,updateWidgetMgrState:Ce,element:r,widgetMgr:o,fragmentId:n}),D=(L,E)=>{const j=Le(i,E,y);S({value:j,fromUi:!0})};let w;i===l.ClickMode.SINGLE_SELECT?w=P.radio:i===l.ClickMode.MULTI_SELECT&&(w=P.checkbox);const R=f.useMemo(()=>a.map((L,E)=>{const j=De(L,E,u,i,y,s);return h.jsx(j,{},`${L.content}-${E}`)}),[i,a,u,s,y]);return h.jsxs("div",{className:"stButtonGroup","data-testid":"stButtonGroup",children:[h.jsx(Q,{label:b,disabled:t,labelVisibility:Z((d==null?void 0:d.value)??ne.LabelVisibilityOptions.COLLAPSED),children:g&&h.jsx(ee,{children:h.jsx(te,{content:g,placement:re.TOP})})}),h.jsx(W,{disabled:t,mode:w,onClick:D,selected:i===l.ClickMode.MULTI_SELECT?y:je(y),overrides:{Root:{style:f.useCallback(()=>xe(s,p.spacing),[s,p.spacing])}},children:R})]})}const Te=f.memo(Ae);export{Te as default};