@keycloak/keycloak-admin-ui 26.5.0 → 26.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/.vite/manifest.json +40 -40
- package/lib/{AddJWTAuthorizationGrant-BxV7hzzZ.js → AddJWTAuthorizationGrant-CmYIQF47.js} +2 -2
- package/lib/{AddJWTAuthorizationGrant-BxV7hzzZ.js.map → AddJWTAuthorizationGrant-CmYIQF47.js.map} +1 -1
- package/lib/{AddKubernetesConnect-Bc_kTuYx.js → AddKubernetesConnect--zBiT7am.js} +2 -2
- package/lib/{AddKubernetesConnect-Bc_kTuYx.js.map → AddKubernetesConnect--zBiT7am.js.map} +1 -1
- package/lib/{AddOAuth2-BEs8BWjo.js → AddOAuth2-BLRNGQKN.js} +2 -2
- package/lib/{AddOAuth2-BEs8BWjo.js.map → AddOAuth2-BLRNGQKN.js.map} +1 -1
- package/lib/{AddSpiffeConnect-RhW-jzlK.js → AddSpiffeConnect-NfHagx80.js} +2 -2
- package/lib/{AddSpiffeConnect-RhW-jzlK.js.map → AddSpiffeConnect-NfHagx80.js.map} +1 -1
- package/lib/{CreateFlow-Bwuqra7c.js → CreateFlow-Bf02T80Q.js} +2 -2
- package/lib/{CreateFlow-Bwuqra7c.js.map → CreateFlow-Bf02T80Q.js.map} +1 -1
- package/lib/{DetailOrganization-6dzeU8qG.js → DetailOrganization-DWvk7gJ9.js} +2 -2
- package/lib/{DetailOrganization-6dzeU8qG.js.map → DetailOrganization-DWvk7gJ9.js.map} +1 -1
- package/lib/{ExecutorForm-ytEjIbpP.js → ExecutorForm-DHTRUoB1.js} +2 -2
- package/lib/{ExecutorForm-ytEjIbpP.js.map → ExecutorForm-DHTRUoB1.js.map} +1 -1
- package/lib/{FlowDetails-tBxTv6wK.js → FlowDetails--N_U426z.js} +2 -2
- package/lib/{FlowDetails-tBxTv6wK.js.map → FlowDetails--N_U426z.js.map} +1 -1
- package/lib/{NewOrganization-BI9VQI6o.js → NewOrganization-7we_ianL.js} +2 -2
- package/lib/{NewOrganization-BI9VQI6o.js.map → NewOrganization-7we_ianL.js.map} +1 -1
- package/lib/{PermissionConfigurationDetails-q-Ms8reY.js → PermissionConfigurationDetails-u9MRYXxC.js} +3 -3
- package/lib/{PermissionConfigurationDetails-q-Ms8reY.js.map → PermissionConfigurationDetails-u9MRYXxC.js.map} +1 -1
- package/lib/{PermissionDetails-BW_lN8ii.js → PermissionDetails-DxeSTYxA.js} +2 -2
- package/lib/{PermissionDetails-BW_lN8ii.js.map → PermissionDetails-DxeSTYxA.js.map} +1 -1
- package/lib/{RealmSection-D40zPuIt.js → RealmSection-DoqGXY7F.js} +2 -2
- package/lib/{RealmSection-D40zPuIt.js.map → RealmSection-DoqGXY7F.js.map} +1 -1
- package/lib/{ResourceDetails-DmjAj-MN.js → ResourceDetails-Bn6Uim5l.js} +3 -3
- package/lib/{ResourceDetails-DmjAj-MN.js.map → ResourceDetails-Bn6Uim5l.js.map} +1 -1
- package/lib/{ScopeDetails-CmZtEhXo.js → ScopeDetails-BCjTo6cS.js} +2 -2
- package/lib/{ScopeDetails-CmZtEhXo.js.map → ScopeDetails-BCjTo6cS.js.map} +1 -1
- package/lib/{ScopePicker-p78XHCTm.js → ScopePicker-Dd6Cs54v.js} +2 -2
- package/lib/{ScopePicker-p78XHCTm.js.map → ScopePicker-Dd6Cs54v.js.map} +1 -1
- package/lib/{WorkflowDetailForm-BN-XL1FE.js → WorkflowDetailForm-alfgEItU.js} +2 -2
- package/lib/{WorkflowDetailForm-BN-XL1FE.js.map → WorkflowDetailForm-alfgEItU.js.map} +1 -1
- package/lib/{WorkflowsSection-BfykdcZr.js → WorkflowsSection-DflIdHaB.js} +2 -2
- package/lib/{WorkflowsSection-BfykdcZr.js.map → WorkflowsSection-DflIdHaB.js.map} +1 -1
- package/lib/groups/GroupRoleMapping.d.ts +2 -1
- package/lib/{index-aTEFJb4J.js → index-Ddam0zn3.js} +709 -685
- package/lib/{index-aTEFJb4J.js.map → index-Ddam0zn3.js.map} +1 -1
- package/lib/keycloak-admin-ui.js +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutorForm-ytEjIbpP.js","sources":["../src/realm-settings/ExecutorForm.tsx"],"sourcesContent":["import type { ConfigPropertyRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/authenticatorConfigInfoRepresentation\";\nimport type ClientProfileRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientProfileRepresentation\";\nimport type ComponentTypeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentTypeRepresentation\";\nimport {\n HelpItem,\n KeycloakSelect,\n SelectVariant,\n useAlerts,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n FormGroup,\n PageSection,\n SelectOption,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useAdminClient } from \"../admin-client\";\nimport { DynamicComponents } from \"../components/dynamic/DynamicComponents\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { ViewHeader } from \"../components/view-header/ViewHeader\";\nimport { useServerInfo } from \"../context/server-info/ServerInfoProvider\";\nimport { useParams } from \"../utils/useParams\";\nimport { ClientProfileParams, toClientProfile } from \"./routes/ClientProfile\";\nimport type { ExecutorParams } from \"./routes/Executor\";\n\ntype ExecutorForm = {\n config?: object;\n executor: string;\n};\n\nconst defaultValues: ExecutorForm = {\n config: {},\n executor: \"\",\n};\n\nexport default function ExecutorForm() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { realm, profileName } = useParams<ClientProfileParams>();\n const { executorName } = useParams<ExecutorParams>();\n const { addAlert, addError } = useAlerts();\n const [selectExecutorTypeOpen, setSelectExecutorTypeOpen] = useState(false);\n const serverInfo = useServerInfo();\n const executorTypes =\n serverInfo.componentTypes?.[\n \"org.keycloak.services.clientpolicy.executor.ClientPolicyExecutorProvider\"\n ];\n const [executors, setExecutors] = useState<ComponentTypeRepresentation[]>([]);\n const [executorProperties, setExecutorProperties] = useState<\n ConfigPropertyRepresentation[]\n >([]);\n const [globalProfiles, setGlobalProfiles] = useState<\n ClientProfileRepresentation[]\n >([]);\n const [profiles, setProfiles] = useState<ClientProfileRepresentation[]>([]);\n const form = useForm({ defaultValues });\n const { control, reset, handleSubmit } = form;\n const editMode = !!executorName;\n\n const setupForm = (profiles: ClientProfileRepresentation[]) => {\n const profile = profiles.find((profile) => profile.name === profileName);\n const executor = profile?.executors?.find(\n (executor) => executor.executor === executorName,\n );\n if (executor) reset({ config: executor.configuration });\n };\n\n useFetch(\n () =>\n adminClient.clientPolicies.listProfiles({ includeGlobalProfiles: true }),\n (profiles) => {\n setGlobalProfiles(profiles.globalProfiles!);\n setProfiles(profiles.profiles!);\n\n setupForm(profiles.profiles!);\n setupForm(profiles.globalProfiles!);\n },\n [],\n );\n\n const save = async () => {\n const formValues = form.getValues();\n const updatedProfiles = profiles.map((profile) => {\n if (profile.name !== profileName) {\n return profile;\n }\n\n const executors = (profile.executors ?? []).concat({\n executor: formValues.executor,\n configuration: formValues.config || {},\n });\n\n if (editMode) {\n const profileExecutor = profile.executors!.find(\n (executor) => executor.executor === executorName,\n );\n profileExecutor!.configuration = {\n ...profileExecutor!.configuration,\n ...formValues.config,\n };\n }\n\n if (editMode) {\n return profile;\n }\n return {\n ...profile,\n executors,\n };\n });\n try {\n await adminClient.clientPolicies.createProfiles({\n profiles: updatedProfiles,\n globalProfiles: globalProfiles,\n });\n addAlert(\n editMode ? t(\"updateExecutorSuccess\") : t(\"addExecutorSuccess\"),\n AlertVariant.success,\n );\n\n navigate(toClientProfile({ realm, profileName }));\n } catch (error) {\n addError(editMode ? \"updateExecutorError\" : \"addExecutorError\", error);\n }\n };\n\n const globalProfile = globalProfiles.find(\n (globalProfile) => globalProfile.name === profileName,\n );\n\n const profileExecutorType = executorTypes?.find(\n (executor) => executor.id === executorName,\n );\n\n const editedProfileExecutors =\n profileExecutorType?.properties.map<ConfigPropertyRepresentation>(\n (property) => {\n const globalDefaultValues = editMode ? property.defaultValue : \"\";\n return {\n ...property,\n defaultValue: globalDefaultValues,\n };\n },\n );\n\n return (\n <>\n <ViewHeader\n titleKey={editMode ? executorName : t(\"addExecutor\")}\n divider\n />\n <PageSection variant=\"light\">\n <FormAccess\n isHorizontal\n role=\"manage-realm\"\n className=\"pf-v5-u-mt-lg\"\n isReadOnly={!!globalProfile}\n >\n <FormGroup\n label={t(\"executorType\")}\n fieldId=\"kc-executorType\"\n labelIcon={\n executors.length > 0 && executors[0].helpText! !== \"\" ? (\n <HelpItem\n helpText={executors[0].helpText}\n fieldLabelId=\"executorTypeHelpText\"\n />\n ) : editMode ? (\n <HelpItem\n helpText={profileExecutorType?.helpText}\n fieldLabelId=\"executorTypeHelpText\"\n />\n ) : undefined\n }\n >\n <Controller\n name=\"executor\"\n defaultValue=\"\"\n control={control}\n render={({ field }) => (\n <KeycloakSelect\n toggleId=\"kc-executor\"\n placeholderText=\"Select an executor\"\n onToggle={(isOpen) => setSelectExecutorTypeOpen(isOpen)}\n onSelect={(value) => {\n reset({ ...defaultValues, executor: value.toString() });\n const selectedExecutor = executorTypes?.filter(\n (type) => type.id === value,\n );\n setExecutors(selectedExecutor ?? []);\n setExecutorProperties(\n selectedExecutor?.[0].properties ?? [],\n );\n setSelectExecutorTypeOpen(false);\n }}\n selections={editMode ? executorName : field.value}\n variant={SelectVariant.single}\n data-testid=\"executorType-select\"\n aria-label={t(\"executorType\")}\n isOpen={selectExecutorTypeOpen}\n maxHeight={580}\n isDisabled={editMode}\n >\n {executorTypes?.map((option) => (\n <SelectOption\n data-testid={option.id}\n selected={option.id === field.value}\n key={option.id}\n value={option.id}\n description={option.helpText}\n >\n {option.id}\n </SelectOption>\n ))}\n </KeycloakSelect>\n )}\n />\n </FormGroup>\n <FormProvider {...form}>\n <DynamicComponents\n properties={\n editMode ? editedProfileExecutors! : executorProperties\n }\n />\n </FormProvider>\n {!globalProfile && (\n <ActionGroup>\n <Button\n variant=\"primary\"\n onClick={() => handleSubmit(save)()}\n data-testid=\"addExecutor-saveBtn\"\n >\n {editMode ? t(\"save\") : t(\"add\")}\n </Button>\n <Button\n variant=\"link\"\n component={(props) => (\n <Link\n {...props}\n to={toClientProfile({ realm, profileName })}\n />\n )}\n data-testid=\"addExecutor-cancelBtn\"\n >\n {t(\"cancel\")}\n </Button>\n </ActionGroup>\n )}\n </FormAccess>\n {editMode && globalProfile && (\n <div className=\"kc-backToProfile\">\n <Button\n component={(props) => (\n <Link {...props} to={toClientProfile({ realm, profileName })} />\n )}\n variant=\"primary\"\n >\n {t(\"back\")}\n </Button>\n </div>\n )}\n </PageSection>\n </>\n );\n}\n"],"names":["defaultValues","ExecutorForm","adminClient","useAdminClient","t","useTranslation","navigate","useNavigate","realm","profileName","useParams","executorName","addAlert","addError","useAlerts","selectExecutorTypeOpen","setSelectExecutorTypeOpen","useState","executorTypes","useServerInfo","executors","setExecutors","executorProperties","setExecutorProperties","globalProfiles","setGlobalProfiles","profiles","setProfiles","form","useForm","control","reset","handleSubmit","editMode","setupForm","executor","profile","useFetch","save","formValues","updatedProfiles","profileExecutor","AlertVariant","toClientProfile","error","globalProfile","profileExecutorType","editedProfileExecutors","property","globalDefaultValues","jsxs","Fragment","jsx","ViewHeader","PageSection","FormAccess","FormGroup","HelpItem","Controller","field","KeycloakSelect","isOpen","value","selectedExecutor","type","SelectVariant","option","SelectOption","FormProvider","DynamicComponents","ActionGroup","Button","props","Link"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExecutorForm-DHTRUoB1.js","sources":["../src/realm-settings/ExecutorForm.tsx"],"sourcesContent":["import type { ConfigPropertyRepresentation } from \"@keycloak/keycloak-admin-client/lib/defs/authenticatorConfigInfoRepresentation\";\nimport type ClientProfileRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientProfileRepresentation\";\nimport type ComponentTypeRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/componentTypeRepresentation\";\nimport {\n HelpItem,\n KeycloakSelect,\n SelectVariant,\n useAlerts,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n ActionGroup,\n AlertVariant,\n Button,\n FormGroup,\n PageSection,\n SelectOption,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useAdminClient } from \"../admin-client\";\nimport { DynamicComponents } from \"../components/dynamic/DynamicComponents\";\nimport { FormAccess } from \"../components/form/FormAccess\";\nimport { ViewHeader } from \"../components/view-header/ViewHeader\";\nimport { useServerInfo } from \"../context/server-info/ServerInfoProvider\";\nimport { useParams } from \"../utils/useParams\";\nimport { ClientProfileParams, toClientProfile } from \"./routes/ClientProfile\";\nimport type { ExecutorParams } from \"./routes/Executor\";\n\ntype ExecutorForm = {\n config?: object;\n executor: string;\n};\n\nconst defaultValues: ExecutorForm = {\n config: {},\n executor: \"\",\n};\n\nexport default function ExecutorForm() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { realm, profileName } = useParams<ClientProfileParams>();\n const { executorName } = useParams<ExecutorParams>();\n const { addAlert, addError } = useAlerts();\n const [selectExecutorTypeOpen, setSelectExecutorTypeOpen] = useState(false);\n const serverInfo = useServerInfo();\n const executorTypes =\n serverInfo.componentTypes?.[\n \"org.keycloak.services.clientpolicy.executor.ClientPolicyExecutorProvider\"\n ];\n const [executors, setExecutors] = useState<ComponentTypeRepresentation[]>([]);\n const [executorProperties, setExecutorProperties] = useState<\n ConfigPropertyRepresentation[]\n >([]);\n const [globalProfiles, setGlobalProfiles] = useState<\n ClientProfileRepresentation[]\n >([]);\n const [profiles, setProfiles] = useState<ClientProfileRepresentation[]>([]);\n const form = useForm({ defaultValues });\n const { control, reset, handleSubmit } = form;\n const editMode = !!executorName;\n\n const setupForm = (profiles: ClientProfileRepresentation[]) => {\n const profile = profiles.find((profile) => profile.name === profileName);\n const executor = profile?.executors?.find(\n (executor) => executor.executor === executorName,\n );\n if (executor) reset({ config: executor.configuration });\n };\n\n useFetch(\n () =>\n adminClient.clientPolicies.listProfiles({ includeGlobalProfiles: true }),\n (profiles) => {\n setGlobalProfiles(profiles.globalProfiles!);\n setProfiles(profiles.profiles!);\n\n setupForm(profiles.profiles!);\n setupForm(profiles.globalProfiles!);\n },\n [],\n );\n\n const save = async () => {\n const formValues = form.getValues();\n const updatedProfiles = profiles.map((profile) => {\n if (profile.name !== profileName) {\n return profile;\n }\n\n const executors = (profile.executors ?? []).concat({\n executor: formValues.executor,\n configuration: formValues.config || {},\n });\n\n if (editMode) {\n const profileExecutor = profile.executors!.find(\n (executor) => executor.executor === executorName,\n );\n profileExecutor!.configuration = {\n ...profileExecutor!.configuration,\n ...formValues.config,\n };\n }\n\n if (editMode) {\n return profile;\n }\n return {\n ...profile,\n executors,\n };\n });\n try {\n await adminClient.clientPolicies.createProfiles({\n profiles: updatedProfiles,\n globalProfiles: globalProfiles,\n });\n addAlert(\n editMode ? t(\"updateExecutorSuccess\") : t(\"addExecutorSuccess\"),\n AlertVariant.success,\n );\n\n navigate(toClientProfile({ realm, profileName }));\n } catch (error) {\n addError(editMode ? \"updateExecutorError\" : \"addExecutorError\", error);\n }\n };\n\n const globalProfile = globalProfiles.find(\n (globalProfile) => globalProfile.name === profileName,\n );\n\n const profileExecutorType = executorTypes?.find(\n (executor) => executor.id === executorName,\n );\n\n const editedProfileExecutors =\n profileExecutorType?.properties.map<ConfigPropertyRepresentation>(\n (property) => {\n const globalDefaultValues = editMode ? property.defaultValue : \"\";\n return {\n ...property,\n defaultValue: globalDefaultValues,\n };\n },\n );\n\n return (\n <>\n <ViewHeader\n titleKey={editMode ? executorName : t(\"addExecutor\")}\n divider\n />\n <PageSection variant=\"light\">\n <FormAccess\n isHorizontal\n role=\"manage-realm\"\n className=\"pf-v5-u-mt-lg\"\n isReadOnly={!!globalProfile}\n >\n <FormGroup\n label={t(\"executorType\")}\n fieldId=\"kc-executorType\"\n labelIcon={\n executors.length > 0 && executors[0].helpText! !== \"\" ? (\n <HelpItem\n helpText={executors[0].helpText}\n fieldLabelId=\"executorTypeHelpText\"\n />\n ) : editMode ? (\n <HelpItem\n helpText={profileExecutorType?.helpText}\n fieldLabelId=\"executorTypeHelpText\"\n />\n ) : undefined\n }\n >\n <Controller\n name=\"executor\"\n defaultValue=\"\"\n control={control}\n render={({ field }) => (\n <KeycloakSelect\n toggleId=\"kc-executor\"\n placeholderText=\"Select an executor\"\n onToggle={(isOpen) => setSelectExecutorTypeOpen(isOpen)}\n onSelect={(value) => {\n reset({ ...defaultValues, executor: value.toString() });\n const selectedExecutor = executorTypes?.filter(\n (type) => type.id === value,\n );\n setExecutors(selectedExecutor ?? []);\n setExecutorProperties(\n selectedExecutor?.[0].properties ?? [],\n );\n setSelectExecutorTypeOpen(false);\n }}\n selections={editMode ? executorName : field.value}\n variant={SelectVariant.single}\n data-testid=\"executorType-select\"\n aria-label={t(\"executorType\")}\n isOpen={selectExecutorTypeOpen}\n maxHeight={580}\n isDisabled={editMode}\n >\n {executorTypes?.map((option) => (\n <SelectOption\n data-testid={option.id}\n selected={option.id === field.value}\n key={option.id}\n value={option.id}\n description={option.helpText}\n >\n {option.id}\n </SelectOption>\n ))}\n </KeycloakSelect>\n )}\n />\n </FormGroup>\n <FormProvider {...form}>\n <DynamicComponents\n properties={\n editMode ? editedProfileExecutors! : executorProperties\n }\n />\n </FormProvider>\n {!globalProfile && (\n <ActionGroup>\n <Button\n variant=\"primary\"\n onClick={() => handleSubmit(save)()}\n data-testid=\"addExecutor-saveBtn\"\n >\n {editMode ? t(\"save\") : t(\"add\")}\n </Button>\n <Button\n variant=\"link\"\n component={(props) => (\n <Link\n {...props}\n to={toClientProfile({ realm, profileName })}\n />\n )}\n data-testid=\"addExecutor-cancelBtn\"\n >\n {t(\"cancel\")}\n </Button>\n </ActionGroup>\n )}\n </FormAccess>\n {editMode && globalProfile && (\n <div className=\"kc-backToProfile\">\n <Button\n component={(props) => (\n <Link {...props} to={toClientProfile({ realm, profileName })} />\n )}\n variant=\"primary\"\n >\n {t(\"back\")}\n </Button>\n </div>\n )}\n </PageSection>\n </>\n );\n}\n"],"names":["defaultValues","ExecutorForm","adminClient","useAdminClient","t","useTranslation","navigate","useNavigate","realm","profileName","useParams","executorName","addAlert","addError","useAlerts","selectExecutorTypeOpen","setSelectExecutorTypeOpen","useState","executorTypes","useServerInfo","executors","setExecutors","executorProperties","setExecutorProperties","globalProfiles","setGlobalProfiles","profiles","setProfiles","form","useForm","control","reset","handleSubmit","editMode","setupForm","executor","profile","useFetch","save","formValues","updatedProfiles","profileExecutor","AlertVariant","toClientProfile","error","globalProfile","profileExecutorType","editedProfileExecutors","property","globalDefaultValues","jsxs","Fragment","jsx","ViewHeader","PageSection","FormAccess","FormGroup","HelpItem","Controller","field","KeycloakSelect","isOpen","value","selectedExecutor","type","SelectVariant","option","SelectOption","FormProvider","DynamicComponents","ActionGroup","Button","props","Link"],"mappings":";;;;;AAoCA,MAAMA,IAA8B;AAAA,EAClC,QAAQ,CAAA;AAAA,EACR,UAAU;AACZ;AAEA,SAAwBC,KAAe;AACrC,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA,GAElB,EAAE,GAAAC,EAAA,IAAMC,GAAA,GACRC,IAAWC,GAAA,GACX,EAAE,OAAAC,GAAO,aAAAC,EAAA,IAAgBC,EAAA,GACzB,EAAE,cAAAC,EAAA,IAAiBD,EAAA,GACnB,EAAE,UAAAE,GAAU,UAAAC,EAAA,IAAaC,EAAA,GACzB,CAACC,GAAwBC,CAAyB,IAAIC,EAAS,EAAK,GAEpEC,IADaC,EAAA,EAEN,iBACT,0EACF,GACI,CAACC,GAAWC,CAAY,IAAIJ,EAAwC,CAAA,CAAE,GACtE,CAACK,GAAoBC,CAAqB,IAAIN,EAElD,CAAA,CAAE,GACE,CAACO,GAAgBC,CAAiB,IAAIR,EAE1C,CAAA,CAAE,GACE,CAACS,GAAUC,CAAW,IAAIV,EAAwC,CAAA,CAAE,GACpEW,IAAOC,EAAQ,EAAE,eAAA7B,GAAe,GAChC,EAAE,SAAA8B,GAAS,OAAAC,GAAO,cAAAC,EAAA,IAAiBJ,GACnCK,IAAW,CAAC,CAACtB,GAEbuB,IAAY,CAACR,MAA4C;AAE7D,UAAMS,IADUT,EAAS,KAAK,CAACU,MAAYA,EAAQ,SAAS3B,CAAW,GAC7C,WAAW;AAAA,MACnC,CAAC0B,MAAaA,EAAS,aAAaxB;AAAA,IAAA;AAEtC,IAAIwB,KAAUJ,EAAM,EAAE,QAAQI,EAAS,eAAe;AAAA,EACxD;AAEAE,EAAAA;AAAAA,IACE,MACEnC,EAAY,eAAe,aAAa,EAAE,uBAAuB,IAAM;AAAA,IACzE,CAACwB,MAAa;AACZ,MAAAD,EAAkBC,EAAS,cAAe,GAC1CC,EAAYD,EAAS,QAAS,GAE9BQ,EAAUR,EAAS,QAAS,GAC5BQ,EAAUR,EAAS,cAAe;AAAA,IACpC;AAAA,IACA,CAAA;AAAA,EAAC;AAGH,QAAMY,IAAO,YAAY;AACvB,UAAMC,IAAaX,EAAK,UAAA,GAClBY,IAAkBd,EAAS,IAAI,CAACU,MAAY;AAChD,UAAIA,EAAQ,SAAS3B;AACnB,eAAO2B;AAGT,YAAMhB,KAAagB,EAAQ,aAAa,CAAA,GAAI,OAAO;AAAA,QACjD,UAAUG,EAAW;AAAA,QACrB,eAAeA,EAAW,UAAU,CAAA;AAAA,MAAC,CACtC;AAED,UAAIN,GAAU;AACZ,cAAMQ,IAAkBL,EAAQ,UAAW;AAAA,UACzC,CAACD,MAAaA,EAAS,aAAaxB;AAAA,QAAA;AAEtC,QAAA8B,EAAiB,gBAAgB;AAAA,UAC/B,GAAGA,EAAiB;AAAA,UACpB,GAAGF,EAAW;AAAA,QAAA;AAAA,MAElB;AAEA,aAAIN,IACKG,IAEF;AAAA,QACL,GAAGA;AAAA,QACH,WAAAhB;AAAAA,MAAA;AAAA,IAEJ,CAAC;AACD,QAAI;AACF,YAAMlB,EAAY,eAAe,eAAe;AAAA,QAC9C,UAAUsC;AAAA,QACV,gBAAAhB;AAAA,MAAA,CACD,GACDZ;AAAA,QACaR,EAAX6B,IAAa,0BAA6B,oBAAN;AAAA,QACpCS,GAAa;AAAA,MAAA,GAGfpC,EAASqC,EAAgB,EAAE,OAAAnC,GAAO,aAAAC,EAAA,CAAa,CAAC;AAAA,IAClD,SAASmC,GAAO;AACd,MAAA/B,EAASoB,IAAW,wBAAwB,oBAAoBW,CAAK;AAAA,IACvE;AAAA,EACF,GAEMC,IAAgBrB,EAAe;AAAA,IACnC,CAACqB,MAAkBA,EAAc,SAASpC;AAAA,EAAA,GAGtCqC,IAAsB5B,GAAe;AAAA,IACzC,CAACiB,MAAaA,EAAS,OAAOxB;AAAA,EAAA,GAG1BoC,IACJD,GAAqB,WAAW;AAAA,IAC9B,CAACE,MAAa;AACZ,YAAMC,IAAsBhB,IAAWe,EAAS,eAAe;AAC/D,aAAO;AAAA,QACL,GAAGA;AAAA,QACH,cAAcC;AAAA,MAAA;AAAA,IAElB;AAAA,EAAA;AAGJ,SACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAUpB,IAAWtB,IAAeP,EAAE,aAAa;AAAA,QACnD,SAAO;AAAA,MAAA;AAAA,IAAA;AAAA,IAET,gBAAA8C,EAACI,GAAA,EAAY,SAAQ,SACnB,UAAA;AAAA,MAAA,gBAAAJ;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,cAAY;AAAA,UACZ,MAAK;AAAA,UACL,WAAU;AAAA,UACV,YAAY,CAAC,CAACV;AAAA,UAEd,UAAA;AAAA,YAAA,gBAAAO;AAAA,cAACI;AAAA,cAAA;AAAA,gBACC,OAAOpD,EAAE,cAAc;AAAA,gBACvB,SAAQ;AAAA,gBACR,WACEgB,EAAU,SAAS,KAAKA,EAAU,CAAC,EAAE,aAAc,KACjD,gBAAAgC;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,UAAUrC,EAAU,CAAC,EAAE;AAAA,oBACvB,cAAa;AAAA,kBAAA;AAAA,gBAAA,IAEba,IACF,gBAAAmB;AAAA,kBAACK;AAAAA,kBAAA;AAAA,oBACC,UAAUX,GAAqB;AAAA,oBAC/B,cAAa;AAAA,kBAAA;AAAA,gBAAA,IAEb;AAAA,gBAGN,UAAA,gBAAAM;AAAA,kBAACM;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,cAAa;AAAA,oBACb,SAAA5B;AAAA,oBACA,QAAQ,CAAC,EAAE,OAAA6B,EAAA,MACT,gBAAAP;AAAA,sBAACQ;AAAAA,sBAAA;AAAA,wBACC,UAAS;AAAA,wBACT,iBAAgB;AAAA,wBAChB,UAAU,CAACC,MAAW7C,EAA0B6C,CAAM;AAAA,wBACtD,UAAU,CAACC,MAAU;AACnB,0BAAA/B,EAAM,EAAE,GAAG/B,GAAe,UAAU8D,EAAM,SAAA,GAAY;AACtD,gCAAMC,IAAmB7C,GAAe;AAAA,4BACtC,CAAC8C,MAASA,EAAK,OAAOF;AAAA,0BAAA;AAExB,0BAAAzC,EAAa0C,KAAoB,EAAE,GACnCxC;AAAA,4BACEwC,IAAmB,CAAC,EAAE,cAAc,CAAA;AAAA,0BAAC,GAEvC/C,EAA0B,EAAK;AAAA,wBACjC;AAAA,wBACA,YAAYiB,IAAWtB,IAAegD,EAAM;AAAA,wBAC5C,SAASM,GAAc;AAAA,wBACvB,eAAY;AAAA,wBACZ,cAAY7D,EAAE,cAAc;AAAA,wBAC5B,QAAQW;AAAA,wBACR,WAAW;AAAA,wBACX,YAAYkB;AAAA,wBAEX,UAAAf,GAAe,IAAI,CAACgD,MACnB,gBAAAd;AAAA,0BAACe;AAAA,0BAAA;AAAA,4BACC,eAAaD,EAAO;AAAA,4BACpB,UAAUA,EAAO,OAAOP,EAAM;AAAA,4BAE9B,OAAOO,EAAO;AAAA,4BACd,aAAaA,EAAO;AAAA,4BAEnB,UAAAA,EAAO;AAAA,0BAAA;AAAA,0BAJHA,EAAO;AAAA,wBAAA,CAMf;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACH;AAAA,gBAAA;AAAA,cAEJ;AAAA,YAAA;AAAA,YAEF,gBAAAd,EAACgB,IAAA,EAAc,GAAGxC,GAChB,UAAA,gBAAAwB;AAAA,cAACiB;AAAA,cAAA;AAAA,gBACC,YACEpC,IAAWc,IAA0BzB;AAAA,cAAA;AAAA,YAAA,GAG3C;AAAA,YACC,CAACuB,KACA,gBAAAK,EAACoB,IAAA,EACC,UAAA;AAAA,cAAA,gBAAAlB;AAAA,gBAACmB;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,SAAS,MAAMvC,EAAaM,CAAI,EAAA;AAAA,kBAChC,eAAY;AAAA,kBAEX,UAAWlC,EAAX6B,IAAa,SAAY,KAAN;AAAA,gBAAW;AAAA,cAAA;AAAA,cAEjC,gBAAAmB;AAAA,gBAACmB;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,WAAW,CAACC,MACV,gBAAApB;AAAA,oBAACqB;AAAA,oBAAA;AAAA,sBACE,GAAGD;AAAA,sBACJ,IAAI7B,EAAgB,EAAE,OAAAnC,GAAO,aAAAC,GAAa;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAG9C,eAAY;AAAA,kBAEX,YAAE,QAAQ;AAAA,gBAAA;AAAA,cAAA;AAAA,YACb,EAAA,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAGHwB,KAAYY,KACX,gBAAAO,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA,gBAAAA;AAAA,QAACmB;AAAA,QAAA;AAAA,UACC,WAAW,CAACC,MACV,gBAAApB,EAACqB,GAAA,EAAM,GAAGD,GAAO,IAAI7B,EAAgB,EAAE,OAAAnC,GAAO,aAAAC,EAAA,CAAa,EAAA,CAAG;AAAA,UAEhE,SAAQ;AAAA,UAEP,YAAE,MAAM;AAAA,QAAA;AAAA,MAAA,EACX,CACF;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as T, jsxs as te, Fragment as be } from "react/jsx-runtime";
|
|
2
|
-
import { g as Wt, h as Lo, i as Dt, T as ia, j as Oc, s as Ac, L as Io, C as Tc, u as mt, _ as Oo, b as zn, M as nn, k as rn, F as Vn, l as on, N as Dc, B as ge, m as Je, d as We, n as Rc, y as Rt, o as Pc, p as $c, P as sa, R as Fc, Q as Cn, U as si, v as zc, q as ai, r as li, w as Vc, x as Hc, X as Bc, Z as qc, z as Gc, D as aa, E as Ye, G as Yc, H as Hn, I as jc, J as Wc, K as lt, O as la, S as co, W as Xc, Y as Zc, $ as Uc, a0 as Kc, A as Qc, a1 as ca, a2 as Jc, a3 as eu, a4 as tu, a5 as nu, a6 as ru, a7 as ou, a8 as iu, a9 as Ve, a as su, aa as ci, t as au, ab as lu, f as cu, ac as uu, V as du, ad as fu, ae as hu, af as tr, ag as pu, ah as gu, ai as mu, aj as yu } from "./index-
|
|
2
|
+
import { g as Wt, h as Lo, i as Dt, T as ia, j as Oc, s as Ac, L as Io, C as Tc, u as mt, _ as Oo, b as zn, M as nn, k as rn, F as Vn, l as on, N as Dc, B as ge, m as Je, d as We, n as Rc, y as Rt, o as Pc, p as $c, P as sa, R as Fc, Q as Cn, U as si, v as zc, q as ai, r as li, w as Vc, x as Hc, X as Bc, Z as qc, z as Gc, D as aa, E as Ye, G as Yc, H as Hn, I as jc, J as Wc, K as lt, O as la, S as co, W as Xc, Y as Zc, $ as Uc, a0 as Kc, A as Qc, a1 as ca, a2 as Jc, a3 as eu, a4 as tu, a5 as nu, a6 as ru, a7 as ou, a8 as iu, a9 as Ve, a as su, aa as ci, t as au, ab as lu, f as cu, ac as uu, V as du, ad as fu, ae as hu, af as tr, ag as pu, ah as gu, ai as mu, aj as yu } from "./index-Ddam0zn3.js";
|
|
3
3
|
import * as Re from "react";
|
|
4
4
|
import $, { useEffect as oe, useState as re, useMemo as Ne, forwardRef as ua, useCallback as de, memo as ae, useContext as Bn, createContext as da, useRef as Q } from "react";
|
|
5
5
|
import { useTranslation as _e, Trans as ui } from "react-i18next";
|
|
@@ -9000,4 +9000,4 @@ export {
|
|
|
9000
9000
|
ly as default,
|
|
9001
9001
|
Fn as providerConditionFilter
|
|
9002
9002
|
};
|
|
9003
|
-
//# sourceMappingURL=FlowDetails
|
|
9003
|
+
//# sourceMappingURL=FlowDetails--N_U426z.js.map
|