Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
theme.keycloak.v2.admin.resources.assets.MultiLineInput-45573e30.js.map Maven / Gradle / Ivy
Go to download
The user inferface to administrate the Keycloak server.
{"version":3,"file":"MultiLineInput-45573e30.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"}