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

theme.keycloak.v2.admin.resources.assets.ImportForm-59f09302.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"ImportForm-59f09302.js","sources":["../../src/clients/import/ImportForm.tsx"],"sourcesContent":["import type ClientRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientRepresentation\";\nimport { Language } from \"@patternfly/react-code-editor\";\nimport {\n  ActionGroup,\n  AlertVariant,\n  Button,\n  FormGroup,\n  PageSection,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\n\nimport { adminClient } from \"../../admin-client\";\nimport { useAlerts } from \"../../components/alert/Alerts\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { FileUploadForm } from \"../../components/json-file-upload/FileUploadForm\";\nimport { KeycloakTextInput } from \"../../components/keycloak-text-input/KeycloakTextInput\";\nimport { ViewHeader } from \"../../components/view-header/ViewHeader\";\nimport { useRealm } from \"../../context/realm-context/RealmContext\";\nimport {\n  addTrailingSlash,\n  convertFormValuesToObject,\n  convertToFormValues,\n} from \"../../util\";\nimport { getAuthorizationHeaders } from \"../../utils/getAuthorizationHeaders\";\nimport { ClientDescription } from \"../ClientDescription\";\nimport { FormFields } from \"../ClientDetails\";\nimport { CapabilityConfig } from \"../add/CapabilityConfig\";\nimport { toClient } from \"../routes/Client\";\nimport { toClients } from \"../routes/Clients\";\n\nconst isXml = (text: string) => text.match(/(<.[^(><.)]+>)/g);\n\nexport default function ImportForm() {\n  const { t } = useTranslation(\"clients\");\n  const navigate = useNavigate();\n  const { realm } = useRealm();\n  const form = useForm();\n  const { register, handleSubmit, setValue } = form;\n  const [imported, setImported] = useState({});\n\n  const { addAlert, addError } = useAlerts();\n\n  const handleFileChange = async (contents: string) => {\n    try {\n      const parsed = await parseFileContents(contents);\n\n      convertToFormValues(parsed, setValue);\n      setImported(parsed);\n    } catch (error) {\n      addError(\"clients:importParseError\", error);\n    }\n  };\n\n  async function parseFileContents(\n    contents: string\n  ): Promise {\n    if (!isXml(contents)) {\n      return JSON.parse(contents);\n    }\n\n    const response = await fetch(\n      `${addTrailingSlash(\n        adminClient.baseUrl\n      )}admin/realms/${realm}/client-description-converter`,\n      {\n        method: \"POST\",\n        body: contents,\n        headers: getAuthorizationHeaders(await adminClient.getAccessToken()),\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(\n        `Server responded with invalid status: ${response.statusText}`\n      );\n    }\n\n    return response.json();\n  }\n\n  const save = async (client: ClientRepresentation) => {\n    try {\n      const newClient = await adminClient.clients.create({\n        ...imported,\n        ...convertFormValuesToObject({\n          ...client,\n          attributes: client.attributes || {},\n        }),\n      });\n      addAlert(t(\"clientImportSuccess\"), AlertVariant.success);\n      navigate(toClient({ realm, clientId: newClient.id, tab: \"settings\" }));\n    } catch (error) {\n      addError(\"clients:clientImportError\", error);\n    }\n  };\n\n  return (\n    <>\n      \n      \n        \n          \n            \n            \n            \n              \n            \n            \n            \n              \n               (\n                  \n                )}\n              >\n                {t(\"common:cancel\")}\n              \n            \n          \n        \n      \n    \n  );\n}\n"],"names":["isXml","text","ImportForm","t","useTranslation","navigate","useNavigate","realm","useRealm","form","useForm","register","handleSubmit","setValue","imported","setImported","useState","addAlert","addError","useAlerts","handleFileChange","contents","parsed","parseFileContents","convertToFormValues","error","response","addTrailingSlash","adminClient","getAuthorizationHeaders","save","client","newClient","convertFormValuesToObject","AlertVariant","toClient","jsxs","Fragment","jsx","ViewHeader","PageSection","FormAccess","FormProvider","FileUploadForm","Language","ClientDescription","FormGroup","KeycloakTextInput","CapabilityConfig","ActionGroup","Button","props","Link","toClients"],"mappings":"k6BAiCA,MAAMA,EAASC,GAAiBA,EAAK,MAAM,iBAAiB,EAE5D,SAAwBC,IAAa,CACnC,KAAM,CAAE,EAAAC,CAAA,EAAMC,EAAe,SAAS,EAChCC,EAAWC,IACX,CAAE,MAAAC,GAAUC,IACZC,EAAOC,IACP,CAAE,SAAAC,EAAU,aAAAC,EAAc,SAAAC,CAAA,EAAaJ,EACvC,CAACK,EAAUC,CAAW,EAAIC,EAAA,SAA+B,CAAE,CAAA,EAE3D,CAAE,SAAAC,EAAU,SAAAC,CAAS,EAAIC,EAAU,EAEnCC,EAAmB,MAAOC,GAAqB,CAC/C,GAAA,CACI,MAAAC,EAAS,MAAMC,EAAkBF,CAAQ,EAE/CG,EAAoBF,EAAQT,CAAQ,EACpCE,EAAYO,CAAM,QACXG,EAAO,CACdP,EAAS,2BAA4BO,CAAK,CAC5C,CAAA,EAGF,eAAeF,EACbF,EAC+B,CAC3B,GAAA,CAACrB,EAAMqB,CAAQ,EACV,OAAA,KAAK,MAAMA,CAAQ,EAG5B,MAAMK,EAAW,MAAM,MACrB,GAAGC,EACDC,EAAY,OAAA,CACb,gBAAgBrB,CAAK,gCACtB,CACE,OAAQ,OACR,KAAMc,EACN,QAASQ,EAAwB,MAAMD,EAAY,gBAAgB,CACrE,CAAA,EAGE,GAAA,CAACF,EAAS,GACZ,MAAM,IAAI,MACR,yCAAyCA,EAAS,UAAU,EAAA,EAIhE,OAAOA,EAAS,MAClB,CAEM,MAAAI,EAAO,MAAOC,GAAiC,CAC/C,GAAA,CACF,MAAMC,EAAY,MAAMJ,EAAY,QAAQ,OAAO,CACjD,GAAGd,EACH,GAAGmB,EAA0B,CAC3B,GAAGF,EACH,WAAYA,EAAO,YAAc,CAAC,CAAA,CACnC,CAAA,CACF,EACDd,EAASd,EAAE,qBAAqB,EAAG+B,EAAa,OAAO,EAC9C7B,EAAA8B,EAAS,CAAE,MAAA5B,EAAO,SAAUyB,EAAU,GAAI,IAAK,UAAY,CAAA,CAAC,QAC9DP,EAAO,CACdP,EAAS,4BAA6BO,CAAK,CAC7C,CAAA,EAGF,OAEIW,EAAA,KAAAC,WAAA,CAAA,SAAA,CAAAC,EAAA,IAACC,EAAA,CACC,SAAS,uBACT,OAAO,wBAAA,CACT,EACAD,EAAAA,IAACE,EAAY,CAAA,QAAQ,QACnB,SAAAF,EAAA,IAACG,EAAA,CACC,aAAY,GACZ,SAAU7B,EAAakB,CAAI,EAC3B,KAAK,iBAEL,SAAAM,EAAAA,KAACM,EAAc,CAAA,GAAGjC,EAChB,SAAA,CAAA6B,EAAA,IAACK,EAAA,CACC,GAAG,aACH,SAAUC,EAAS,KACnB,UAAU,aACV,SAAUzC,EAAE,kCAAkC,EAC9C,SAAUiB,CAAA,CACZ,EACAkB,EAAAA,IAACO,EAAkB,CAAA,mBAAkB,EAAC,CAAA,QACrCC,EAAU,CAAA,MAAO3C,EAAE,aAAa,EAAG,QAAQ,UAC1C,SAAAmC,EAAA,IAACS,EAAA,CACC,GAAG,UACH,WAAU,GACT,GAAGpC,EAAS,UAAU,CAAA,CAAA,EAE3B,EACA2B,EAAAA,IAACU,EAAiB,CAAA,OAAQ,EAAM,CAAA,SAC/BC,EACC,CAAA,SAAA,CAAAX,EAAAA,IAACY,GAAO,QAAQ,UAAU,KAAK,SAC5B,SAAA/C,EAAE,aAAa,EAClB,EACAmC,EAAA,IAACY,EAAA,CACC,QAAQ,OACR,UAAYC,GACVb,EAAA,IAACc,EAAM,CAAA,GAAGD,EAAO,GAAIE,EAAU,CAAE,MAAA9C,CAAM,CAAC,CAAG,CAAA,EAG5C,WAAE,eAAe,CAAA,CACpB,CAAA,EACF,CAAA,EACF,CAAA,CAAA,EAEJ,CACF,CAAA,CAAA,CAEJ"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy