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

theme.keycloak.v2.admin.resources.assets.MultiLineInput-6564e881.js.map Maven / Gradle / Ivy

There is a newer version: 25.0.1
Show newest version
{"version":3,"file":"MultiLineInput-6564e881.js","sources":["../../src/components/multi-line-input/MultiLineInput.tsx"],"sourcesContent":["import {\n  Button,\n  ButtonVariant,\n  InputGroup,\n  TextInput,\n  TextInputProps,\n} from \"@patternfly/react-core\";\nimport { MinusCircleIcon, PlusCircleIcon } from \"@patternfly/react-icons\";\nimport { Fragment, useEffect, useMemo } from \"react\";\nimport { useFormContext, useWatch } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\n\nfunction stringToMultiline(value?: string): string[] {\n  return typeof value === \"string\" ? value.split(\"##\") : [];\n}\n\nfunction toStringValue(formValue: string[]): string {\n  return formValue.join(\"##\");\n}\n\nexport type MultiLineInputProps = Omit & {\n  name: string;\n  addButtonLabel?: string;\n  isDisabled?: boolean;\n  defaultValue?: string[];\n  stringify?: boolean;\n};\n\nexport const MultiLineInput = ({\n  name,\n  addButtonLabel,\n  isDisabled = false,\n  defaultValue,\n  stringify = false,\n  id,\n  ...rest\n}: MultiLineInputProps) => {\n  const { t } = useTranslation();\n  const { register, setValue, control } = useFormContext();\n  const value = useWatch({\n    name,\n    control,\n    defaultValue: defaultValue || \"\",\n  });\n\n  const fields = useMemo(() => {\n    let values = stringify ? stringToMultiline(value as string) : value;\n\n    values =\n      Array.isArray(values) && values.length !== 0\n        ? values\n        : defaultValue || [\"\"];\n\n    return values;\n  }, [value]);\n\n  const remove = (index: number) => {\n    update([...fields.slice(0, index), ...fields.slice(index + 1)]);\n  };\n\n  const append = () => {\n    update([...fields, \"\"]);\n  };\n\n  const updateValue = (index: number, value: string) => {\n    update([...fields.slice(0, index), value, ...fields.slice(index + 1)]);\n  };\n\n  const update = (values: string[]) => {\n    const fieldValue = values.flatMap((field) => field);\n    setValue(name, stringify ? toStringValue(fieldValue) : fieldValue, {\n      shouldDirty: true,\n    });\n  };\n\n  useEffect(() => {\n    register(name);\n  }, [register]);\n\n  return (\n    
\n {fields.map((value, index) => (\n \n \n updateValue(index, value)}\n name={`${name}.${index}.value`}\n value={value}\n isDisabled={isDisabled}\n {...rest}\n />\n remove(index)}\n tabIndex={-1}\n aria-label={t(\"common:remove\")}\n isDisabled={fields.length === 1 || isDisabled}\n >\n \n \n \n {index === fields.length - 1 && (\n \n {t(addButtonLabel || \"common:add\")}\n \n )}\n \n ))}\n
\n );\n};\n"],"names":["stringToMultiline","value","toStringValue","formValue","MultiLineInput","name","addButtonLabel","isDisabled","defaultValue","stringify","id","rest","t","useTranslation","register","setValue","control","useFormContext","useWatch","fields","useMemo","values","remove","index","update","append","updateValue","fieldValue","field","useEffect","jsx","jsxs","Fragment","InputGroup","TextInput","Button","ButtonVariant","MinusCircleIcon","PlusCircleIcon"],"mappings":"wMAYA,SAASA,EAAkBC,EAA0B,CACnD,OAAO,OAAOA,GAAU,SAAWA,EAAM,MAAM,IAAI,EAAI,EACzD,CAEA,SAASC,EAAcC,EAA6B,CAC3C,OAAAA,EAAU,KAAK,IAAI,CAC5B,CAUO,MAAMC,EAAiB,CAAC,CAC7B,KAAAC,EACA,eAAAC,EACA,WAAAC,EAAa,GACb,aAAAC,EACA,UAAAC,EAAY,GACZ,GAAAC,EACA,GAAGC,CACL,IAA2B,CACnB,KAAA,CAAE,EAAAC,GAAMC,IACR,CAAE,SAAAC,EAAU,SAAAC,EAAU,QAAAC,GAAYC,EAAe,EACjDhB,EAAQiB,EAAS,CACrB,KAAAb,EACA,QAAAW,EACA,aAAcR,GAAgB,EAAA,CAC/B,EAEKW,EAASC,EAAAA,QAAkB,IAAM,CACrC,IAAIC,EAASZ,EAAYT,EAAkBC,CAAe,EAAIA,EAG5D,OAAAoB,EAAA,MAAM,QAAQA,CAAM,GAAKA,EAAO,SAAW,EACvCA,EACAb,GAAgB,CAAC,EAAE,EAElBa,CAAA,EACN,CAACpB,CAAK,CAAC,EAEJqB,EAAUC,GAAkB,CAChCC,EAAO,CAAC,GAAGL,EAAO,MAAM,EAAGI,CAAK,EAAG,GAAGJ,EAAO,MAAMI,EAAQ,CAAC,CAAC,CAAC,CAAA,EAG1DE,EAAS,IAAM,CACnBD,EAAO,CAAC,GAAGL,EAAQ,EAAE,CAAC,CAAA,EAGlBO,EAAc,CAACH,EAAetB,IAAkB,CACpDuB,EAAO,CAAC,GAAGL,EAAO,MAAM,EAAGI,CAAK,EAAGtB,EAAO,GAAGkB,EAAO,MAAMI,EAAQ,CAAC,CAAC,CAAC,CAAA,EAGjEC,EAAUH,GAAqB,CACnC,MAAMM,EAAaN,EAAO,QAASO,GAAUA,CAAK,EAClDb,EAASV,EAAMI,EAAYP,EAAcyB,CAAU,EAAIA,EAAY,CACjE,YAAa,EAAA,CACd,CAAA,EAGHE,OAAAA,EAAAA,UAAU,IAAM,CACdf,EAAST,CAAI,CAAA,EACZ,CAACS,CAAQ,CAAC,EAGXgB,EAAA,IAAC,OAAI,GAAApB,EACF,SAAAS,EAAO,IAAI,CAAClB,EAAOsB,IAClBQ,EAAA,KAACC,EACC,SAAA,CAAA,SAAA,CAAAD,OAACE,EACC,CAAA,SAAA,CAAAH,EAAA,IAACI,EAAA,CACC,cAAa7B,EAAOkB,EACpB,SAAWtB,GAAUyB,EAAYH,EAAOtB,CAAK,EAC7C,KAAM,GAAGI,CAAI,IAAIkB,CAAK,SACtB,MAAOtB,EACP,WAAAM,EACC,GAAGI,CAAA,CACN,EACAmB,EAAA,IAACK,EAAA,CACC,cAAa,SAAWZ,EACxB,QAASa,EAAc,KACvB,QAAS,IAAMd,EAAOC,CAAK,EAC3B,SAAU,GACV,aAAYX,EAAE,eAAe,EAC7B,WAAYO,EAAO,SAAW,GAAKZ,EAEnC,eAAC8B,EAAgB,EAAA,CAAA,CACnB,CAAA,EACF,EACCd,IAAUJ,EAAO,OAAS,GACzBY,EAAA,KAACI,EAAA,CACC,QAASC,EAAc,KACvB,QAASX,EACT,SAAU,GACV,aAAYb,EAAE,YAAY,EAC1B,cAAY,WACZ,WAAY,CAACX,GAASM,EAEtB,SAAA,CAAAuB,EAAA,IAACQ,EAAe,EAAA,EAAE,IAAE1B,EAAEN,GAAkB,YAAY,CAAA,CAAA,CACtD,CAAA,GA/BWiB,CAiCf,CACD,CACH,CAAA,CAEJ"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy