{"version":3,"file":"ArrayFieldItemTemplate.mjs","sources":["../../src/templates/ArrayFieldItemTemplate.tsx"],"sourcesContent":["import { ArrayFieldTemplateItemType, FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';\nimport { Group, Box, rem } from '@mantine/core';\nimport { Draggable } from '@hello-pangea/dnd';\nimport { IconGripVertical } from '@tabler/icons-react';\nimport classes from './ArrayFieldTemplate.module.css';\nimport { useId } from 'react';\n/** The `ArrayFieldItemTemplate` component is the template used to render an items of an array.\n *\n * @param props - The `ArrayFieldTemplateItemType` props for the component\n */\nexport default function ArrayFieldItemTemplate<\n  T = any,\n  S extends StrictRJSFSchema = RJSFSchema,\n  F extends FormContextType = any,\n>(\n  props: ArrayFieldTemplateItemType<T, S, F> & {\n    orderable?: boolean;\n    removable?: boolean;\n  },\n) {\n  const { children, className, disabled, index, readonly, orderable, removable, registry, uiSchema, onDropIndexClick } =\n    props;\n  const isDraggable = !disabled && !readonly && orderable;\n  const key = useId();\n  const { RemoveButton } = registry.templates.ButtonTemplates;\n  return (\n    <Draggable index={index} draggableId={key} key={key} isDragDisabled={!isDraggable}>\n      {(provided) => (\n        <Box\n          ref={provided.innerRef}\n          {...provided.draggableProps}\n          className={`armt-template-arrayfielditem ${className}`}\n        >\n          <Group style={{ flexGrow: 1 }} gap={0}>\n            {isDraggable ? (\n              <div {...provided.dragHandleProps} className={classes.dragHandle}>\n                <IconGripVertical style={{ width: rem(18), height: rem(18) }} stroke={1.5} />\n              </div>\n            ) : removable ? (\n              <RemoveButton\n                className='armt-template-afit-remove'\n                disabled={disabled || readonly}\n                onClick={onDropIndexClick(index)}\n                uiSchema={uiSchema}\n                registry={registry}\n              />\n            ) : null}\n            <Box style={{ flexGrow: 1 }}>{children}</Box>\n          </Group>\n        </Box>\n      )}\n    </Draggable>\n  );\n}\n"],"names":[],"mappings":";;;;;;;AAOe,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACtD,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;AAC/H,EAAE,MAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC;AAC1D,EAAE,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;AACtB,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC;AAC9D,EAAE,uBAAuB,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,QAAQ,qBAAqB,GAAG;AAC5I,IAAI,GAAG;AACP,IAAI;AACJ,MAAM,GAAG,EAAE,QAAQ,CAAC,QAAQ;AAC5B,MAAM,GAAG,QAAQ,CAAC,cAAc;AAChC,MAAM,SAAS,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;AAC5D,MAAM,QAAQ,kBAAkB,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE;AACxF,QAAQ,WAAW,mBAAmB,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,kBAAkB,GAAG,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,mBAAmB,GAAG;AAChQ,UAAU,YAAY;AACtB,UAAU;AACV,YAAY,SAAS,EAAE,2BAA2B;AAClD,YAAY,QAAQ,EAAE,QAAQ,IAAI,QAAQ;AAC1C,YAAY,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC;AAC5C,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,WAAW;AACX,SAAS,GAAG,IAAI;AAChB,wBAAwB,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;AACtE,OAAO,EAAE,CAAC;AACV,KAAK;AACL,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;AACZ;;;;"}