All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.admin.resources.assets.NewAttributeSettings-ded9dcf6.js Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
import{u as f,j as e,F as h,a as R,r as j,Q as w,q as H,g as P,K as ae,h as C,C as S,X as G,S as se,W as Q,e as J,B as I,f as X,l as le,b as re,d as ne,P as ie,L as oe,da as Y,A as de,y as ce,dj as ue}from"./index-0cda761d.js";import{F as me}from"./FixedButtonGroup-8d7378f6.js";import{S as pe}from"./ScrollForm-e9e4a7be.js";import{V as he}from"./ViewHeader-ff389f8e.js";import{u as W}from"./useParams-bc47a968.js";import{U as be}from"./UserProfileContext-2c96f79e.js";import{F as K}from"./FormAccess-835af982.js";import{K as xe}from"./KeyValueInput-597f6e1a.js";import"./realm-settings-section-4ed993c7.js";import{G as Z,a as M}from"./GridItem-1535d986.js";import{K as B}from"./KeycloakTextInput-ada01047.js";import{C as _}from"./Checkbox-3affa1d3.js";import{u as ge}from"./ConfirmDialog-100e6a40.js";import{u as ee}from"./useToggle-3764a2a4.js";import{D as je}from"./DynamicComponents-fe8010c1.js";import{S as F,a as L,b as A}from"./Select-68736f55.js";import{M as ve,a as ye}from"./Modal-ea09312d.js";import{F as te}from"./Form-4087ddae.js";import{P as fe}from"./plus-circle-icon-fe78809e.js";import{T as ke,O as Te,P as z,Q as D,R as qe,S as E}from"./Td-d9b96677.js";import{T as Ve,a as Se}from"./Text-b9444fb8.js";import{i as Ce}from"./isEqual-16c26b6b.js";import{R as N}from"./Radio-a79edd45.js";import"./FormPanel-8c11e1e2.js";import"./CardHeader-3276a0b8.js";import"./Card-d5c0a973.js";import"./CardTitle-2a7bf3d6.js";import"./CardBody-8867799e.js";import"./ToolbarContent-fee3570e.js";import"./copy-icon-b8d617db.js";import"./minus-icon-21b0d1e4.js";import"./minus-circle-icon-ac3563ca.js";import"./ActionListItem-c859aeaf.js";import"./EmptyStateBody-f9d2c033.js";import"./check-fc57dbe1.js";import"./ClientSelect-ab12f3f6.js";import"./FileUpload-2469f593.js";import"./CodeEditor-781232a0.js";import"./EmptyStateSecondaryActions-e8364506.js";import"./GroupPickerDialog-9d38b823.js";import"./PaginatingTableToolbar-11bdf18a.js";import"./TableToolbar-470a2060.js";import"./admin-ui-endpoint-f934fa67.js";import"./getAuthorizationHeaders-f2376d1a.js";import"./DataListItemRow-7ca17a45.js";import"./data-list-7d55714c.js";import"./grip-vertical-icon-ba7b06db.js";import"./Flex-a3793595.js";import"./FlexItem-742749b8.js";import"./MultiLineInput-05f00b93.js";import"./PasswordInput-bb06acaa.js";import"./AddRoleMappingModal-71c36ce9.js";import"./useLocaleSort-ef2c79ac.js";import"./KeycloakDataTable-a1a2bfca.js";import"./resource-0803fa9b.js";import"./filter-icon-56a9cd24.js";import"./KeycloakTextArea-9049d04c.js";import"./star-icon-2ee5dfa7.js";const Ne=()=>{const{t}=f("realm-settings");return e.jsx(K,{role:"manage-realm",isHorizontal:!0,children:e.jsx(h,{hasNoPaddingTop:!0,label:t("annotations"),fieldId:"kc-annotations",className:"kc-annotations-label",children:e.jsx(Z,{className:"kc-annotations",children:e.jsx(M,{children:e.jsx(xe,{name:"annotations",defaultKeyValue:[{key:"inputType",label:t("inputType"),values:["text","textarea","select","select-radiobuttons","multiselect","multiselect-checkboxes","html5-email","html5-tel","html5-url","html5-number","html5-range","html5-datetime-local","html5-date","html5-month","html5-week","html5-time"]},{key:"inputHelperTextBefore",label:t("inputHelperTextBefore")},{key:"inputHelperTextAfter",label:t("inputHelperTextAfter")},{key:"inputOptionLabelsI18nPrefix",label:t("inputOptionLabelsI18nPrefix")},{key:"inputTypePlaceholder",label:t("inputTypePlaceholder")},{key:"inputTypeSize",label:t("inputTypeSize")},{key:"inputTypeCols",label:t("inputTypeCols")},{key:"inputTypeRows",label:t("inputTypeRows")},{key:"inputTypeStep",label:t("inputTypeStep")}]})})})})})},U=[{label:"requiredForLabel.both",value:["admin","user"]},{label:"requiredForLabel.users",value:["user"]},{label:"requiredForLabel.admins",value:["admin"]}],Ae=()=>{const{t}=f("realm-settings"),l=R(),[r,i]=j.useState(),[d,u]=j.useState(),[m,p]=j.useState(!1),[v,o]=j.useState(!1),[b,n]=j.useState(!1),{attributeName:c}=W(),x=!!c,k=w({control:l.control,name:"selector.scopes",defaultValue:[]}),q=w({control:l.control,name:"required.scopes",defaultValue:[]}),V=w({control:l.control,name:"isRequired",defaultValue:!1});return H(()=>P.clientScopes.find(),i,[]),H(()=>P.users.getProfile(),u,[]),r?e.jsxs(K,{role:"manage-realm",isHorizontal:!0,children:[e.jsx(h,{label:t("attributeName"),labelIcon:e.jsx(C,{helpText:t("realm-settings-help:attributeNameHelp"),fieldLabelId:"realm-settings:attributeName"}),fieldId:"kc-attribute-name",isRequired:!0,validated:l.formState.errors.name?"error":"default",helperTextInvalid:t("validateName"),children:e.jsx(B,{isRequired:!0,id:"kc-attribute-name",defaultValue:"","data-testid":"attribute-name",isDisabled:x,validated:l.formState.errors.name?"error":"default",...l.register("name",{required:!0})})}),e.jsx(h,{label:t("attributeDisplayName"),labelIcon:e.jsx(C,{helpText:t("realm-settings-help:attributeDisplayNameHelp"),fieldLabelId:"realm-settings:attributeDisplayName"}),fieldId:"kc-attribute-display-name",children:e.jsx(B,{id:"kc-attribute-display-name",defaultValue:"","data-testid":"attribute-display-name",...l.register("displayName")})}),e.jsx(h,{label:t("attributeGroup"),labelIcon:e.jsx(C,{helpText:t("realm-setting-help:attributeGroupHelp"),fieldLabelId:"realm-setting:attributeGroup"}),fieldId:"kc-attribute-group",children:e.jsx(S,{name:"group",defaultValue:"",control:l.control,render:({field:s})=>e.jsx(F,{toggleId:"kc-attributeGroup",onToggle:()=>n(!b),isOpen:b,onSelect:(a,g)=>{s.onChange(g.toString()),n(!1)},selections:[s.value||t("common:none")],variant:L.single,children:[e.jsx(A,{value:"",children:t("common:none")},"empty"),...d?.groups?.map(a=>e.jsx(A,{value:a.name,children:a.name},a.name))||[]]})})}),!Re.includes(c)&&e.jsxs(e.Fragment,{children:[e.jsx(G,{}),e.jsxs(h,{label:t("enabledWhen"),fieldId:"enabledWhen",hasNoPaddingTop:!0,children:[e.jsx(N,{id:"always","data-testid":"always",isChecked:k.length===r.length,name:"enabledWhen",label:t("always"),onChange:s=>{s?l.setValue("selector.scopes",r.map(a=>a.name)):l.setValue("selector.scopes",[])},className:"pf-u-mb-md"}),e.jsx(N,{id:"scopesAsRequested","data-testid":"scopesAsRequested",isChecked:k.length!==r.length,name:"enabledWhen",label:t("scopesAsRequested"),onChange:s=>{s?l.setValue("selector.scopes",[]):l.setValue("selector.scopes",r.map(a=>a.name))},className:"pf-u-mb-md"})]}),e.jsx(h,{fieldId:"kc-scope-enabled-when",children:e.jsx(S,{name:"selector.scopes",control:l.control,defaultValue:r.map(s=>s.name),render:({field:s})=>e.jsx(F,{name:"scopes","data-testid":"enabled-when-scope-field",variant:L.typeaheadMulti,typeAheadAriaLabel:"Select",chipGroupProps:{numChips:3,expandedText:t("common:hide"),collapsedText:t("common:showRemaining")},onToggle:a=>p(a),selections:s.value,onSelect:(a,g)=>{const y=g.toString();let T=[""];s.value?T=s.value.includes(y)?s.value.filter(O=>O!==y):[...s.value,y]:T=[y],s.onChange(T)},onClear:a=>{a.stopPropagation(),s.onChange([])},isOpen:m,isDisabled:k.length===r.length,"aria-labelledby":"scope",children:r.map(a=>e.jsx(A,{value:a.name},a.name))})})}),e.jsx(G,{}),e.jsx(h,{label:t("required"),labelIcon:e.jsx(C,{helpText:t("realm-settings-help:requiredHelp"),fieldLabelId:"realm-settings:required"}),fieldId:"kc-required",hasNoPaddingTop:!0,children:e.jsx(S,{name:"isRequired","data-testid":"required",defaultValue:!1,control:l.control,render:({field:s})=>e.jsx(se,{id:"kc-required",onChange:s.onChange,isChecked:s.value,label:t("common:on"),labelOff:t("common:off"),"aria-label":t("required")})})}),V&&e.jsxs(e.Fragment,{children:[e.jsx(h,{label:t("requiredFor"),fieldId:"requiredFor",hasNoPaddingTop:!0,children:e.jsx(S,{name:"required.roles","data-testid":"requiredFor",defaultValue:U[0].value,control:l.control,render:({field:s})=>e.jsx("div",{className:"kc-requiredFor",children:U.map(a=>e.jsx(N,{id:a.label,"data-testid":a.label,isChecked:Ce(s.value,a.value),name:"roles",onChange:()=>{s.onChange(a.value)},label:t(a.label),className:"kc-requiredFor-option"},a.label))})})}),e.jsxs(h,{label:t("requiredWhen"),fieldId:"requiredWhen",hasNoPaddingTop:!0,children:[e.jsx(N,{id:"requiredAlways","data-testid":"requiredAlways",isChecked:q.length===r.length,name:"requiredWhen",label:t("always"),onChange:s=>{s?l.setValue("required.scopes",r.map(a=>a.name)):l.setValue("required.scopes",[])},className:"pf-u-mb-md"}),e.jsx(N,{id:"requiredScopesAsRequested","data-testid":"requiredScopesAsRequested",isChecked:q.length!==r.length,name:"requiredWhen",label:t("scopesAsRequested"),onChange:s=>{s?l.setValue("required.scopes",[]):l.setValue("required.scopes",r.map(a=>a.name))},className:"pf-u-mb-md"})]}),e.jsx(h,{fieldId:"kc-scope-required-when",children:e.jsx(S,{name:"required.scopes",control:l.control,defaultValue:[],render:({field:s})=>e.jsx(F,{name:"scopeRequired","data-testid":"required-when-scope-field",variant:L.typeaheadMulti,typeAheadAriaLabel:"Select",chipGroupProps:{numChips:3,expandedText:t("common:hide"),collapsedText:t("common:showRemaining")},onToggle:a=>o(a),selections:s.value,onSelect:(a,g)=>{const y=g.toString();let T=[""];s.value?T=s.value.includes(y)?s.value.filter(O=>O!==y):[...s.value,y]:T=[y],s.onChange(T)},onClear:a=>{a.stopPropagation(),s.onChange([])},isOpen:v,isDisabled:q.length===r.length,"aria-labelledby":"scope",children:r.map(a=>e.jsx(A,{value:a.name},a.name))})})})]})]})]}):e.jsx(ae,{})},$=({name:t})=>{const{t:l}=f("realm-settings"),{control:r}=R();return e.jsx(Z,{children:e.jsx(S,{name:`permissions.${t}`,control:r,defaultValue:[],render:({field:i})=>e.jsxs(e.Fragment,{children:[e.jsx(M,{lg:4,sm:6,children:e.jsx(_,{id:`user-${t}`,label:l("user"),value:"user","data-testid":`user-${t}`,isChecked:i.value.includes("user"),onChange:()=>{const d="user",u=i.value.includes(d)?i.value.filter(m=>m!==d):[...i.value,d];i.onChange(u)}})}),e.jsx(M,{lg:8,sm:6,children:e.jsx(_,{id:`admin-${t}`,label:l("admin"),value:"admin","data-testid":`admin-${t}`,isChecked:i.value.includes("admin"),onChange:()=>{const d="admin",u=i.value.includes(d)?i.value.filter(m=>m!==d):[...i.value,d];i.onChange(u)}})})]})})})},Ie=()=>{const{t}=f("realm-settings");return e.jsxs(K,{role:"manage-realm",isHorizontal:!0,children:[e.jsx(h,{hasNoPaddingTop:!0,label:t("whoCanEdit"),labelIcon:e.jsx(C,{helpText:t("realm-settings-help:whoCanEditHelp"),fieldLabelId:"realm-settings:whoCanEdit"}),fieldId:"kc-who-can-edit",children:e.jsx($,{name:"edit"})}),e.jsx(h,{hasNoPaddingTop:!0,label:t("whoCanView"),labelIcon:e.jsx(C,{helpText:t("realm-settings-help:whoCanViewHelp"),fieldLabelId:"realm-settings:whoCanView"}),fieldId:"kc-who-can-view",children:e.jsx($,{name:"view"})})]})},we=({selectedValidators:t,onChange:l})=>{const{t:r}=f("realm-settings"),i=Q().componentTypes?.["org.keycloak.validate.Validator"]||[],d=j.useMemo(()=>i.filter(({id:o})=>!t.includes(o)),[t]),[u,m]=ee(),[p,v]=j.useState();return e.jsx(h,{label:r("validatorType"),fieldId:"validator",children:e.jsx(F,{toggleId:"validator",onToggle:m,onSelect:(o,b)=>{const n=b;l(n),v(n),m()},selections:p?.id,variant:"single","aria-label":r("selectOne"),isOpen:u,placeholderText:r("common:choose"),menuAppendTo:"parent",maxHeight:300,children:d.map(o=>e.jsx(A,{selected:p?.id===o.id,value:o,description:o.helpText,children:o.id},o.id))})})},Fe=({selectedValidators:t,toggleDialog:l,onConfirm:r})=>{const{t:i}=f("realm-settings"),[d,u]=j.useState(),m=Q().componentTypes?.["org.keycloak.validate.Validator"].length===t.length,p=J(),{handleSubmit:v}=p,o=b=>{r({...b,id:d?.id}),l()};return e.jsx(ve,{variant:ye.small,title:i("addValidator"),isOpen:!0,onClose:l,actions:[e.jsx(I,{"data-testid":"save-validator-role-button",variant:"primary",type:"submit",form:"add-validator",children:i("common:save")},"save"),e.jsx(I,{"data-testid":"cancel-validator-role-button",variant:"link",onClick:l,children:i("common:cancel")},"cancel")],children:m?i("emptyValidators"):e.jsxs(te,{id:"add-validator",onSubmit:v(o),children:[e.jsx(we,{selectedValidators:t.map(b=>b.key),onChange:u}),d&&e.jsx(X,{...p,children:e.jsx(je,{properties:d.properties})})]})})},Pe=()=>{const{t}=f("realm-settings"),[l,r]=ee(),[i,d]=j.useState(),{setValue:u,control:m,register:p,getValues:v}=R(),o=w({name:"validations",control:m,defaultValue:[]});j.useEffect(()=>{p("validations")},[p]);const[b,n]=ge({titleKey:t("deleteValidatorConfirmTitle"),messageKey:t("deleteValidatorConfirmMsg",{validatorName:i}),continueButtonLabel:"common:delete",continueButtonVariant:le.danger,onConfirm:async()=>{const c=o.filter(x=>x.key!==i);u("validations",[...c])}});return e.jsxs(e.Fragment,{children:[l&&e.jsx(Fe,{selectedValidators:o,onConfirm:c=>{const x=v("annotations");c.id==="options"&&!x.find(k=>k.key==="inputType")&&u("annotations",[...x,{key:"inputType",value:"select"}]),u("validations",[...o,{key:c.id,value:c.config}])},toggleDialog:r}),e.jsx(n,{}),e.jsxs("div",{className:"kc-attributes-validations",children:[e.jsx(I,{id:"addValidator",onClick:()=>r(),variant:"link","data-testid":"addValidator",className:"kc--attributes-validations--add-validation-button",icon:e.jsx(fe,{}),children:t("realm-settings:addValidator")}),e.jsx(G,{}),o.length!==0?e.jsxs(ke,{children:[e.jsx(Te,{children:e.jsxs(z,{children:[e.jsx(D,{children:t("validatorColNames.colName")}),e.jsx(D,{children:t("validatorColNames.colConfig")}),e.jsx(D,{"aria-hidden":"true"})]})}),e.jsx(qe,{children:o.map(c=>e.jsxs(z,{children:[e.jsx(E,{dataLabel:t("validatorColNames.colName"),children:c.key}),e.jsx(E,{dataLabel:t("validatorColNames.colConfig"),children:JSON.stringify(c.value)}),e.jsx(E,{className:"kc--attributes-validations--action-cell",children:e.jsx(I,{variant:"link","data-testid":"deleteValidator",onClick:()=>{b(),d(c.key)},children:t("common:delete")},"validator")})]},c.key))})]}):e.jsx(Ve,{className:"kc-emptyValidators",component:Se.h6,children:t("realm-settings:emptyValidators")})]})]})},Re=["username","email"],Oe=({save:t})=>{const{t:l}=f("realm-settings"),r=R(),{realm:i,attributeName:d}=W(),u=!!d;return e.jsxs(be,{children:[e.jsx(pe,{sections:[{title:l("generalSettings"),panel:e.jsx(Ae,{})},{title:l("permission"),panel:e.jsx(Ie,{})},{title:l("validations"),panel:e.jsx(Pe,{})},{title:l("annotations"),panel:e.jsx(Ne,{})}]}),e.jsx(te,{onSubmit:r.handleSubmit(t),children:e.jsxs(me,{name:"attribute-settings",children:[e.jsx(I,{variant:"primary",type:"submit","data-testid":"attribute-create",children:l(u?"common:save":"common:create")}),e.jsx(oe,{to:Y({realm:i,tab:"attributes"}),"data-testid":"attribute-cancel",className:"kc-attributeCancel",children:l("common:cancel")})]})})]})};function Gt(){const{realm:t,attributeName:l}=W(),r=J(),{t:i}=f("realm-settings"),d=re(),{addAlert:u,addError:m}=ne(),[p,v]=j.useState(null),o=!!l;H(()=>P.users.getProfile(),n=>{v(n);const{annotations:c,validations:x,permissions:k,selector:q,required:V,...s}=n.attributes.find(a=>a.name===l)||{};ce(s,r.setValue),Object.entries(ue.flatten({permissions:k,selector:q,required:V},{safe:!0})).map(([a,g])=>r.setValue(a,g)),r.setValue("annotations",Object.entries(c||{}).map(([a,g])=>({key:a,value:g}))),r.setValue("validations",Object.entries(x||{}).map(([a,g])=>({key:a,value:g}))),r.setValue("isRequired",V!==void 0)},[]);const b=async n=>{const c=n.validations.reduce((s,a)=>(s[a.key]=a.value?.length===0?{}:a.value,s),{}),x=n.annotations.reduce((s,a)=>Object.assign(s,{[a.key]:a.value}),{}),V=o?(()=>p?.attributes.map(s=>s.name!==l?s:(delete s.required,Object.assign({...s,name:l,displayName:n.displayName,selector:n.selector,permissions:n.permissions,annotations:x,validations:c},n.isRequired?{required:n.required}:void 0,n.group?{group:n.group}:{group:null}))))():(()=>p?.attributes.concat([Object.assign({name:n.name,displayName:n.displayName,required:n.isRequired?n.required:void 0,selector:n.selector,permissions:n.permissions,annotations:x,validations:c},n.isRequired?{required:n.required}:void 0,n.group?{group:n.group}:void 0)]))();try{await P.users.updateProfile({...p,attributes:V,realm:t}),d(Y({realm:t,tab:"attributes"})),u(i("realm-settings:createAttributeSuccess"),de.success)}catch(s){m("realm-settings:createAttributeError",s)}};return e.jsxs(X,{...r,children:[e.jsx(he,{titleKey:o?l:i("createAttribute"),subKey:o?"":i("createAttributeSubTitle")}),e.jsx(ie,{variant:"light",children:e.jsx(Oe,{save:()=>r.handleSubmit(b)()})})]})}export{Re as USERNAME_EMAIL,Gt as default};
//# sourceMappingURL=NewAttributeSettings-ded9dcf6.js.map




© 2015 - 2024 Weber Informatics LLC | Privacy Policy