@dartcom/ui-kit 2.7.1 → 2.8.0
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/dist/cjs/components/drag-list/drag-list.js +1 -1
- package/dist/cjs/components/drag-list/drag-list.js.map +1 -1
- package/dist/cjs/components/drag-list/draggable/draggable.js +1 -0
- package/dist/cjs/components/drag-list/draggable/draggable.js.map +1 -1
- package/dist/cjs/components/form/form.js +20 -10
- package/dist/cjs/components/form/form.js.map +1 -1
- package/dist/cjs/components/input/input.js +23 -1
- package/dist/cjs/components/input/input.js.map +1 -1
- package/dist/cjs/components/list/list.js +7 -7
- package/dist/cjs/components/list/list.js.map +1 -1
- package/dist/cjs/node_modules/react-hook-form/dist/index.esm.js +118 -0
- package/dist/cjs/node_modules/react-hook-form/dist/index.esm.js.map +1 -1
- package/dist/esm/components/drag-list/drag-list.js +1 -1
- package/dist/esm/components/drag-list/drag-list.js.map +1 -1
- package/dist/esm/components/drag-list/draggable/draggable.js +1 -1
- package/dist/esm/components/drag-list/draggable/draggable.js.map +1 -1
- package/dist/esm/components/form/form.js +1 -1
- package/dist/esm/components/form/form.js.map +1 -1
- package/dist/esm/components/input/input.js +1 -1
- package/dist/esm/components/input/input.js.map +1 -1
- package/dist/esm/components/list/list.js +1 -1
- package/dist/esm/components/list/list.js.map +1 -1
- package/dist/esm/node_modules/react-hook-form/dist/index.esm.js +1 -1
- package/dist/esm/node_modules/react-hook-form/dist/index.esm.js.map +1 -1
- package/dist/esm/types/components/drag-list/drag-list.d.ts.map +1 -1
- package/dist/esm/types/components/drag-list/drag-list.stories.d.ts.map +1 -1
- package/dist/esm/types/components/drag-list/draggable/draggable.d.ts.map +1 -1
- package/dist/esm/types/components/drag-list/draggable/types.d.ts +2 -2
- package/dist/esm/types/components/drag-list/draggable/types.d.ts.map +1 -1
- package/dist/esm/types/components/form/form.d.ts +14 -3
- package/dist/esm/types/components/form/form.d.ts.map +1 -1
- package/dist/esm/types/components/form/form.stories.d.ts.map +1 -1
- package/dist/esm/types/components/input/input.d.ts +2 -2
- package/dist/esm/types/components/input/input.d.ts.map +1 -1
- package/dist/esm/types/components/input/types.d.ts +1 -1
- package/dist/esm/types/components/input/types.d.ts.map +1 -1
- package/dist/esm/types/components/list/list.d.ts +1 -2
- package/dist/esm/types/components/list/list.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -23,7 +23,7 @@ function DragList({ items, getItem, getId, onDragEnd, sx, title, draggableSx, })
|
|
|
23
23
|
}, children: jsxRuntime.jsx(sortable_esm.SortableContext, { items: items.map(getId), strategy: sortable_esm.verticalListSortingStrategy, children: jsxRuntime.jsx(list["default"], { items: items, sx: sx, title: title, getKey: getId, getContent: (item, index) => {
|
|
24
24
|
const id = getId(item);
|
|
25
25
|
return (jsxRuntime.jsx(draggable["default"], { id: id, sx: draggableSx, children: getItem(item, index) }, id));
|
|
26
|
-
}
|
|
26
|
+
} }) }) }));
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
exports["default"] = DragList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drag-list.js","sources":["../../../../src/components/drag-list/drag-list.tsx"],"sourcesContent":["import {\r\n closestCenter,\r\n DndContext,\r\n PointerSensor,\r\n useSensor,\r\n useSensors,\r\n} from '@dnd-kit/core';\r\nimport {\r\n arrayMove,\r\n SortableContext,\r\n verticalListSortingStrategy,\r\n} from '@dnd-kit/sortable';\r\n\r\nimport { List } from '../list';\r\n\r\nimport Draggable from './draggable';\r\nimport { DragListProps } from './types';\r\n\r\nfunction DragList<T>({\r\n items,\r\n getItem,\r\n getId,\r\n onDragEnd,\r\n sx,\r\n title,\r\n draggableSx,\r\n}: DragListProps<T>) {\r\n const sensors = useSensors(\r\n useSensor(PointerSensor, {\r\n activationConstraint: {\r\n distance: 8,\r\n },\r\n }),\r\n );\r\n\r\n return (\r\n <DndContext\r\n sensors={sensors}\r\n collisionDetection={closestCenter}\r\n onDragEnd={(event) => {\r\n const { active, over } = event;\r\n\r\n const oldIndex = items.findIndex((item) => getId(item) === active.id);\r\n const newIndex = items.findIndex((item) => getId(item) === over?.id);\r\n\r\n const newItems = arrayMove(items, oldIndex, newIndex);\r\n\r\n onDragEnd(newItems);\r\n }}>\r\n <SortableContext\r\n items={items.map(getId)}\r\n strategy={verticalListSortingStrategy}>\r\n <List\r\n items={items}\r\n sx={sx}\r\n title={title}\r\n getKey={getId}\r\n getContent={(item, index) => {\r\n const id = getId(item);\r\n\r\n return (\r\n <Draggable key={id} id={id} sx={draggableSx}>\r\n {getItem(item, index)}\r\n </Draggable>\r\n );\r\n }}\r\n
|
|
1
|
+
{"version":3,"file":"drag-list.js","sources":["../../../../src/components/drag-list/drag-list.tsx"],"sourcesContent":["import {\r\n closestCenter,\r\n DndContext,\r\n PointerSensor,\r\n useSensor,\r\n useSensors,\r\n} from '@dnd-kit/core';\r\nimport {\r\n arrayMove,\r\n SortableContext,\r\n verticalListSortingStrategy,\r\n} from '@dnd-kit/sortable';\r\n\r\nimport { List } from '../list';\r\n\r\nimport Draggable from './draggable';\r\nimport { DragListProps } from './types';\r\n\r\nfunction DragList<T>({\r\n items,\r\n getItem,\r\n getId,\r\n onDragEnd,\r\n sx,\r\n title,\r\n draggableSx,\r\n}: DragListProps<T>) {\r\n const sensors = useSensors(\r\n useSensor(PointerSensor, {\r\n activationConstraint: {\r\n distance: 8,\r\n },\r\n }),\r\n );\r\n\r\n return (\r\n <DndContext\r\n sensors={sensors}\r\n collisionDetection={closestCenter}\r\n onDragEnd={(event) => {\r\n const { active, over } = event;\r\n\r\n const oldIndex = items.findIndex((item) => getId(item) === active.id);\r\n const newIndex = items.findIndex((item) => getId(item) === over?.id);\r\n\r\n const newItems = arrayMove(items, oldIndex, newIndex);\r\n\r\n onDragEnd(newItems);\r\n }}>\r\n <SortableContext\r\n items={items.map(getId)}\r\n strategy={verticalListSortingStrategy}>\r\n <List\r\n items={items}\r\n sx={sx}\r\n title={title}\r\n getKey={getId}\r\n getContent={(item, index) => {\r\n const id = getId(item);\r\n\r\n return (\r\n <Draggable key={id} id={id} sx={draggableSx}>\r\n {getItem(item, index)}\r\n </Draggable>\r\n );\r\n }}\r\n />\r\n </SortableContext>\r\n </DndContext>\r\n );\r\n}\r\n\r\nexport default DragList;\r\n"],"names":["useSensors","useSensor","PointerSensor","_jsx","DndContext","closestCenter","arrayMove","SortableContext","verticalListSortingStrategy","List","Draggable"],"mappings":";;;;;;;;;;AAkBA,SAAS,QAAQ,CAAI,EACnB,KAAK,EACL,OAAO,EACP,KAAK,EACL,SAAS,EACT,EAAE,EACF,KAAK,EACL,WAAW,GACM,EAAA;AACjB,IAAA,MAAM,OAAO,GAAGA,mBAAU,CACxBC,kBAAS,CAACC,sBAAa,EAAE;AACvB,QAAA,oBAAoB,EAAE;AACpB,YAAA,QAAQ,EAAE,CAAC;AACZ,SAAA;AACF,KAAA,CAAC,CACH,CAAC;AAEF,IAAA,QACEC,cAAC,CAAAC,mBAAU,EACT,EAAA,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAEC,sBAAa,EACjC,SAAS,EAAE,CAAC,KAAK,KAAI;AACnB,YAAA,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;YAE/B,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;YAErE,MAAM,QAAQ,GAAGC,sBAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEtD,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtB,SAAC,YACDH,cAAC,CAAAI,4BAAe,IACd,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAEC,wCAA2B,EACrC,QAAA,EAAAL,cAAA,CAACM,eAAI,EACH,EAAA,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,EACb,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,KAAI;AAC1B,oBAAA,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;oBAEvB,QACEN,eAACO,oBAAS,EAAA,EAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,YACxC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EADP,EAAA,EAAE,CAEN,EACZ;AACJ,iBAAC,EACD,CAAA,EAAA,CACc,EACP,CAAA,EACb;AACJ;;;;"}
|
|
@@ -25,6 +25,7 @@ const Draggable = ({ id, sx, children, }) => {
|
|
|
25
25
|
...(isDragging ? sx?.dragging : {}),
|
|
26
26
|
transform: utilities_esm.CSS.Translate.toString(transform),
|
|
27
27
|
transition,
|
|
28
|
+
cursor: 'pointer',
|
|
28
29
|
};
|
|
29
30
|
return (jsxRuntime.jsx(Box["default"], { ref: setNodeRef, style: style, ...listeners, ...attributes, children: children }));
|
|
30
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draggable.js","sources":["../../../../../src/components/drag-list/draggable/draggable.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { useDraggable } from '@dnd-kit/core';\r\nimport { useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';\r\nimport { CSS } from '@dnd-kit/utilities';\r\nimport { Box } from '@mui/material';\r\n\r\nimport { DraggableProps } from './types';\r\n\r\nconst Draggable: React.FC<React.PropsWithChildren<DraggableProps>> = ({\r\n id,\r\n sx,\r\n children,\r\n}) => {\r\n const { isDragging } = useDraggable({\r\n id,\r\n });\r\n\r\n const { attributes, listeners, setNodeRef, transform, transition } =\r\n useSortable({\r\n id,\r\n strategy: verticalListSortingStrategy,\r\n transition: {\r\n duration: 300,\r\n easing: 'cubic-bezier(0.25, 1, 0.5, 1)',\r\n },\r\n });\r\n\r\n const style
|
|
1
|
+
{"version":3,"file":"draggable.js","sources":["../../../../../src/components/drag-list/draggable/draggable.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { useDraggable } from '@dnd-kit/core';\r\nimport { useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';\r\nimport { CSS } from '@dnd-kit/utilities';\r\nimport { Box } from '@mui/material';\r\n\r\nimport { DraggableProps } from './types';\r\n\r\nconst Draggable: React.FC<React.PropsWithChildren<DraggableProps>> = ({\r\n id,\r\n sx,\r\n children,\r\n}) => {\r\n const { isDragging } = useDraggable({\r\n id,\r\n });\r\n\r\n const { attributes, listeners, setNodeRef, transform, transition } =\r\n useSortable({\r\n id,\r\n strategy: verticalListSortingStrategy,\r\n transition: {\r\n duration: 300,\r\n easing: 'cubic-bezier(0.25, 1, 0.5, 1)',\r\n },\r\n });\r\n\r\n const style = {\r\n ...sx?.default,\r\n ...(isDragging ? sx?.dragging : {}),\r\n transform: CSS.Translate.toString(transform),\r\n transition,\r\n cursor: 'pointer',\r\n } as React.CSSProperties;\r\n\r\n return (\r\n <Box ref={setNodeRef} style={style} {...listeners} {...attributes}>\r\n {children}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default Draggable;\r\n"],"names":["useDraggable","useSortable","verticalListSortingStrategy","CSS","_jsx","Box"],"mappings":";;;;;;;;;;AAQM,MAAA,SAAS,GAAsD,CAAC,EACpE,EAAE,EACF,EAAE,EACF,QAAQ,GACT,KAAI;AACH,IAAA,MAAM,EAAE,UAAU,EAAE,GAAGA,qBAAY,CAAC;QAClC,EAAE;AACH,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,GAChEC,wBAAW,CAAC;QACV,EAAE;AACF,QAAA,QAAQ,EAAEC,wCAA2B;AACrC,QAAA,UAAU,EAAE;AACV,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,MAAM,EAAE,+BAA+B;AACxC,SAAA;AACF,KAAA,CAAC,CAAC;AAEL,IAAA,MAAM,KAAK,GAAG;QACZ,GAAG,EAAE,EAAE,OAAO;AACd,QAAA,IAAI,UAAU,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC;QACnC,SAAS,EAAEC,iBAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5C,UAAU;AACV,QAAA,MAAM,EAAE,SAAS;KACK,CAAC;AAEzB,IAAA,QACEC,cAAC,CAAAC,cAAG,IAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAA,GAAM,SAAS,EAAM,GAAA,UAAU,YAC9D,QAAQ,EAAA,CACL,EACN;AACJ;;;;"}
|
|
@@ -17,16 +17,26 @@ var Box = require('../../node_modules/@mui/material/esm/Box/Box.js');
|
|
|
17
17
|
*
|
|
18
18
|
* @returns {JSX.Element} The rendered form component with form context.
|
|
19
19
|
*/
|
|
20
|
-
function CustomForm({
|
|
21
|
-
const {
|
|
22
|
-
return (jsxRuntime.jsx(index_esm.FormProvider, { ...form, children: jsxRuntime.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
function CustomForm({ form, sx = {}, fields, buttons, observers, onSubmit, }) {
|
|
21
|
+
const { control } = form;
|
|
22
|
+
return (jsxRuntime.jsx(index_esm.FormProvider, { ...form, children: jsxRuntime.jsxs(index_esm.Form, { control: control, onSubmit: onSubmit, style: {
|
|
23
|
+
width: '100%',
|
|
24
|
+
height: '100%',
|
|
25
|
+
}, children: [jsxRuntime.jsxs(Box["default"], { sx: {
|
|
26
|
+
display: 'grid',
|
|
27
|
+
alignContent: 'flex-start',
|
|
28
|
+
gap: '15px',
|
|
29
|
+
...sx,
|
|
30
|
+
}, children: [jsxRuntime.jsx(Box["default"], { sx: {
|
|
31
|
+
display: 'grid',
|
|
32
|
+
gap: '15px',
|
|
33
|
+
...fields.sx,
|
|
34
|
+
}, children: fields.content }), buttons?.content ? (jsxRuntime.jsx(Box["default"], { sx: {
|
|
35
|
+
display: 'flex',
|
|
36
|
+
alignItems: 'center',
|
|
37
|
+
gap: '15px',
|
|
38
|
+
...buttons.sx,
|
|
39
|
+
}, children: buttons.content })) : null] }), observers?.content] }) }));
|
|
30
40
|
}
|
|
31
41
|
|
|
32
42
|
exports["default"] = CustomForm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sources":["../../../../src/components/form/form.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { Box, SxProps } from '@mui/material';\r\nimport {\r\n FieldValues,\r\n FormProvider,\r\n
|
|
1
|
+
{"version":3,"file":"form.js","sources":["../../../../src/components/form/form.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { Box, SxProps } from '@mui/material';\r\nimport {\r\n FieldValues,\r\n Form,\r\n FormProvider,\r\n FormSubmitHandler,\r\n UseFormReturn,\r\n} from 'react-hook-form';\r\n\r\ninterface CustomFormProp<T extends FieldValues> {\r\n form: UseFormReturn<T>;\r\n\r\n onSubmit: FormSubmitHandler<T>;\r\n\r\n sx?: SxProps;\r\n\r\n fields: {\r\n content: React.ReactNode;\r\n sx?: SxProps;\r\n };\r\n\r\n buttons?: {\r\n content?: React.ReactNode;\r\n sx?: SxProps;\r\n };\r\n\r\n observers?: {\r\n content?: React.ReactNode;\r\n };\r\n}\r\n\r\n/**\r\n * Используем этот компонент как основную обертку для формы\r\n * Все поля должны хранится при инициализации формы и быть доступны через контекст формы\r\n * @template T - Интрефейс данных формы.\r\n * @param {React.ReactNode} children - Все компоненты, которым нужен контекст фор.\r\n * @param {UseFormReturn<T>} form - Форма useForm, которая содержит все поля.\r\n * @param {SxProps} [sx={}] - Опциональные стили самой формы.\r\n * @param {SubmitHandler<T>} onSubmit - Функция обработки отправки формы.\r\n *\r\n * @returns {JSX.Element} The rendered form component with form context.\r\n */\r\nfunction CustomForm<T extends FieldValues>({\r\n form,\r\n sx = {},\r\n fields,\r\n buttons,\r\n observers,\r\n onSubmit,\r\n}: CustomFormProp<T>) {\r\n const { control } = form;\r\n\r\n return (\r\n <FormProvider {...form}>\r\n <Form\r\n control={control}\r\n onSubmit={onSubmit}\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n }}>\r\n <Box\r\n sx={{\r\n display: 'grid',\r\n\r\n alignContent: 'flex-start',\r\n\r\n gap: '15px',\r\n\r\n ...sx,\r\n }}>\r\n <Box\r\n sx={{\r\n display: 'grid',\r\n\r\n gap: '15px',\r\n\r\n ...fields.sx,\r\n }}>\r\n {fields.content}\r\n </Box>\r\n\r\n {buttons?.content ? (\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n\r\n alignItems: 'center',\r\n\r\n gap: '15px',\r\n\r\n ...buttons.sx,\r\n }}>\r\n {buttons.content}\r\n </Box>\r\n ) : null}\r\n </Box>\r\n\r\n {observers?.content}\r\n </Form>\r\n </FormProvider>\r\n );\r\n}\r\n\r\nexport default CustomForm;\r\n"],"names":["_jsx","FormProvider","_jsxs","Form","Box"],"mappings":";;;;;;;;AAgCA;;;;;;;;;;AAUG;AACH,SAAS,UAAU,CAAwB,EACzC,IAAI,EACJ,EAAE,GAAG,EAAE,EACP,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,GACU,EAAA;AAClB,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;AAEzB,IAAA,QACEA,cAAC,CAAAC,sBAAY,OAAK,IAAI,EAAA,QAAA,EACpBC,gBAACC,cAAI,EAAA,EACH,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,MAAM,EAAE,MAAM;AACf,aAAA,EAAA,QAAA,EAAA,CACDD,eAAC,CAAAE,cAAG,EACF,EAAA,EAAE,EAAE;AACF,wBAAA,OAAO,EAAE,MAAM;AAEf,wBAAA,YAAY,EAAE,YAAY;AAE1B,wBAAA,GAAG,EAAE,MAAM;AAEX,wBAAA,GAAG,EAAE;AACN,qBAAA,EAAA,QAAA,EAAA,CACDJ,cAAC,CAAAI,cAAG,EACF,EAAA,EAAE,EAAE;AACF,gCAAA,OAAO,EAAE,MAAM;AAEf,gCAAA,GAAG,EAAE,MAAM;gCAEX,GAAG,MAAM,CAAC,EAAE;AACb,6BAAA,EAAA,QAAA,EACA,MAAM,CAAC,OAAO,EACX,CAAA,EAEL,OAAO,EAAE,OAAO,IACfJ,cAAA,CAACI,cAAG,EAAA,EACF,EAAE,EAAE;AACF,gCAAA,OAAO,EAAE,MAAM;AAEf,gCAAA,UAAU,EAAE,QAAQ;AAEpB,gCAAA,GAAG,EAAE,MAAM;gCAEX,GAAG,OAAO,CAAC,EAAE;AACd,6BAAA,EAAA,QAAA,EACA,OAAO,CAAC,OAAO,EACZ,CAAA,IACJ,IAAI,CAAA,EAAA,CACJ,EAEL,SAAS,EAAE,OAAO,CACd,EAAA,CAAA,EAAA,CACM,EACf;AACJ;;;;"}
|
|
@@ -3,14 +3,36 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var React = require('react');
|
|
6
7
|
var index_esm = require('../../node_modules/react-hook-form/dist/index.esm.js');
|
|
7
8
|
var TextField = require('../../node_modules/@mui/material/esm/TextField/TextField.js');
|
|
8
9
|
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
n["default"] = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
29
|
+
|
|
9
30
|
function CustomInput(props) {
|
|
10
31
|
const { name } = props;
|
|
32
|
+
const textFieldId = React__namespace.useId();
|
|
11
33
|
const { control } = index_esm.useFormContext();
|
|
12
34
|
return (jsxRuntime.jsx(index_esm.Controller, { name: name, control: control, render: ({ field }) => {
|
|
13
|
-
return jsxRuntime.jsx(TextField["default"], { ...props, ...field, size: "small" });
|
|
35
|
+
return (jsxRuntime.jsx(TextField["default"], { id: textFieldId, ...props, ...field, size: "small" }));
|
|
14
36
|
} }));
|
|
15
37
|
}
|
|
16
38
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sources":["../../../../src/components/input/input.tsx"],"sourcesContent":["import { TextField } from '@mui/material';\r\nimport { Controller, useFormContext } from 'react-hook-form';\r\n\r\nimport {
|
|
1
|
+
{"version":3,"file":"input.js","sources":["../../../../src/components/input/input.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { TextField } from '@mui/material';\r\nimport { Controller, useFormContext } from 'react-hook-form';\r\n\r\nimport { CustomInputProps } from './types';\r\n\r\nfunction CustomInput<T>(props: CustomInputProps<T>) {\r\n const { name } = props;\r\n\r\n const textFieldId = React.useId();\r\n\r\n const { control } = useFormContext();\r\n\r\n return (\r\n <Controller\r\n name={name}\r\n control={control}\r\n render={({ field }) => {\r\n return (\r\n <TextField id={textFieldId} {...props} {...field} size=\"small\" />\r\n );\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport default CustomInput;\r\n"],"names":["React","useFormContext","_jsx","Controller","TextField"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,SAAS,WAAW,CAAI,KAA0B,EAAA;AAChD,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAEvB,IAAA,MAAM,WAAW,GAAGA,gBAAK,CAAC,KAAK,EAAE,CAAC;AAElC,IAAA,MAAM,EAAE,OAAO,EAAE,GAAGC,wBAAc,EAAE,CAAC;AAErC,IAAA,QACEC,cAAC,CAAAC,oBAAU,IACT,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAI;AACpB,YAAA,QACED,cAAC,CAAAE,oBAAS,EAAC,EAAA,EAAE,EAAE,WAAW,EAAA,GAAM,KAAK,EAAA,GAAM,KAAK,EAAE,IAAI,EAAC,OAAO,EAAA,CAAG,EACjE;SACH,EAAA,CACD,EACF;AACJ;;;;"}
|
|
@@ -9,7 +9,7 @@ var Typography = require('../../node_modules/@mui/material/esm/Typography/Typogr
|
|
|
9
9
|
var List = require('../../node_modules/@mui/material/esm/List/List.js');
|
|
10
10
|
var ListItem = require('../../node_modules/@mui/material/esm/ListItem/ListItem.js');
|
|
11
11
|
|
|
12
|
-
function CustomList({ items, columnsCount = 1, getContent, title, getKey, onClick, sx,
|
|
12
|
+
function CustomList({ items, columnsCount = 1, getContent, title, getKey, onClick, sx, }) {
|
|
13
13
|
const isNoData = items.length === 0;
|
|
14
14
|
return (jsxRuntime.jsxs(Box["default"], { sx: {
|
|
15
15
|
display: 'grid',
|
|
@@ -18,16 +18,16 @@ function CustomList({ items, columnsCount = 1, getContent, title, getKey, onClic
|
|
|
18
18
|
}, children: [title ? (jsxRuntime.jsx(Typography["default"], { variant: "h6", noWrap: true, sx: {
|
|
19
19
|
textAlign: 'center',
|
|
20
20
|
fontWeight: 700,
|
|
21
|
-
}, children: title })) : null, isNoData ? (jsxRuntime.jsx(noData["default"], {})) : (jsxRuntime.
|
|
21
|
+
}, children: title })) : null, isNoData ? (jsxRuntime.jsx(noData["default"], {})) : (jsxRuntime.jsx(List["default"], { sx: {
|
|
22
22
|
display: 'grid',
|
|
23
23
|
gridTemplateColumns: `repeat(${columnsCount}, 1fr)`,
|
|
24
24
|
gap: '15px',
|
|
25
25
|
...sx?.list,
|
|
26
|
-
}, disablePadding: true, children:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
}, disablePadding: true, children: items.map((item, index) => (jsxRuntime.jsx(ListItem["default"], { onClick: () => {
|
|
27
|
+
onClick?.(item, index);
|
|
28
|
+
}, sx: {
|
|
29
|
+
...sx?.item,
|
|
30
|
+
}, disablePadding: true, children: getContent(item, index) }, getKey(item, index)))) }))] }));
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
exports["default"] = CustomList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sources":["../../../../src/components/list/list.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { Box, List, ListItem, SxProps, Typography } from '@mui/material';\r\n\r\nimport { NoData } from '../no-data';\r\n\r\ninterface CustomListProps<T> {\r\n items: T[];\r\n columnsCount?: number;\r\n title?: string;\r\n\r\n getContent: (item: T, index: number) => React.JSX.Element;\r\n getKey: (item: T, index: number) => string | number;\r\n onClick?: (item: T, index: number) => void;\r\n\r\n sx?: {\r\n list?: SxProps;\r\n item?: SxProps;\r\n };\r\n
|
|
1
|
+
{"version":3,"file":"list.js","sources":["../../../../src/components/list/list.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { Box, List, ListItem, SxProps, Typography } from '@mui/material';\r\n\r\nimport { NoData } from '../no-data';\r\n\r\ninterface CustomListProps<T> {\r\n items: T[];\r\n columnsCount?: number;\r\n title?: string;\r\n\r\n getContent: (item: T, index: number) => React.JSX.Element;\r\n getKey: (item: T, index: number) => string | number;\r\n onClick?: (item: T, index: number) => void;\r\n\r\n sx?: {\r\n list?: SxProps;\r\n item?: SxProps;\r\n };\r\n}\r\n\r\nfunction CustomList<T>({\r\n items,\r\n columnsCount = 1,\r\n getContent,\r\n title,\r\n getKey,\r\n onClick,\r\n sx,\r\n}: CustomListProps<T>) {\r\n const isNoData = items.length === 0;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: 'grid',\r\n\r\n gridTemplateColumns: '1fr',\r\n\r\n gap: '15px',\r\n }}>\r\n {title ? (\r\n <Typography\r\n variant=\"h6\"\r\n noWrap\r\n sx={{\r\n textAlign: 'center',\r\n\r\n fontWeight: 700,\r\n }}>\r\n {title}\r\n </Typography>\r\n ) : null}\r\n\r\n {isNoData ? (\r\n <NoData />\r\n ) : (\r\n <List\r\n sx={{\r\n display: 'grid',\r\n\r\n gridTemplateColumns: `repeat(${columnsCount}, 1fr)`,\r\n\r\n gap: '15px',\r\n\r\n ...sx?.list,\r\n }}\r\n disablePadding>\r\n {items.map((item, index) => (\r\n <ListItem\r\n key={getKey(item, index)}\r\n onClick={() => {\r\n onClick?.(item, index);\r\n }}\r\n sx={{\r\n ...sx?.item,\r\n }}\r\n disablePadding>\r\n {getContent(item, index)}\r\n </ListItem>\r\n ))}\r\n </List>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default CustomList;\r\n"],"names":["_jsxs","Box","_jsx","Typography","NoData","List","ListItem"],"mappings":";;;;;;;;;;;AAoBA,SAAS,UAAU,CAAI,EACrB,KAAK,EACL,YAAY,GAAG,CAAC,EAChB,UAAU,EACV,KAAK,EACL,MAAM,EACN,OAAO,EACP,EAAE,GACiB,EAAA;AACnB,IAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAEpC,IAAA,QACEA,eAAA,CAACC,cAAG,EAAA,EACF,EAAE,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AAEf,YAAA,mBAAmB,EAAE,KAAK;AAE1B,YAAA,GAAG,EAAE,MAAM;AACZ,SAAA,EAAA,QAAA,EAAA,CACA,KAAK,IACJC,cAAC,CAAAC,qBAAU,EACT,EAAA,OAAO,EAAC,IAAI,EACZ,MAAM,EAAA,IAAA,EACN,EAAE,EAAE;AACF,oBAAA,SAAS,EAAE,QAAQ;AAEnB,oBAAA,UAAU,EAAE,GAAG;iBAChB,EACA,QAAA,EAAA,KAAK,EACK,CAAA,IACX,IAAI,EAEP,QAAQ,IACPD,cAAC,CAAAE,iBAAM,EAAG,EAAA,CAAA,KAEVF,cAAC,CAAAG,eAAI,EACH,EAAA,EAAE,EAAE;AACF,oBAAA,OAAO,EAAE,MAAM;oBAEf,mBAAmB,EAAE,CAAU,OAAA,EAAA,YAAY,CAAQ,MAAA,CAAA;AAEnD,oBAAA,GAAG,EAAE,MAAM;oBAEX,GAAG,EAAE,EAAE,IAAI;iBACZ,EACD,cAAc,kBACb,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MACrBH,cAAC,CAAAI,mBAAQ,IAEP,OAAO,EAAE,MAAK;AACZ,wBAAA,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;qBACxB,EACD,EAAE,EAAE;wBACF,GAAG,EAAE,EAAE,IAAI;qBACZ,EACD,cAAc,kBACb,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAA,EARnB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CASf,CACZ,CAAC,EACG,CAAA,CACR,CACG,EAAA,CAAA,EACN;AACJ;;;;"}
|
|
@@ -573,7 +573,125 @@ function useController(props) {
|
|
|
573
573
|
*/
|
|
574
574
|
const Controller = (props) => props.render(useController(props));
|
|
575
575
|
|
|
576
|
+
const flatten = (obj) => {
|
|
577
|
+
const output = {};
|
|
578
|
+
for (const key of Object.keys(obj)) {
|
|
579
|
+
if (isObjectType(obj[key]) && obj[key] !== null) {
|
|
580
|
+
const nested = flatten(obj[key]);
|
|
581
|
+
for (const nestedKey of Object.keys(nested)) {
|
|
582
|
+
output[`${key}.${nestedKey}`] = nested[nestedKey];
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
else {
|
|
586
|
+
output[key] = obj[key];
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
return output;
|
|
590
|
+
};
|
|
591
|
+
|
|
592
|
+
const POST_REQUEST = 'post';
|
|
593
|
+
/**
|
|
594
|
+
* Form component to manage submission.
|
|
595
|
+
*
|
|
596
|
+
* @param props - to setup submission detail. {@link FormProps}
|
|
597
|
+
*
|
|
598
|
+
* @returns form component or headless render prop.
|
|
599
|
+
*
|
|
600
|
+
* @example
|
|
601
|
+
* ```tsx
|
|
602
|
+
* function App() {
|
|
603
|
+
* const { control, formState: { errors } } = useForm();
|
|
604
|
+
*
|
|
605
|
+
* return (
|
|
606
|
+
* <Form action="/api" control={control}>
|
|
607
|
+
* <input {...register("name")} />
|
|
608
|
+
* <p>{errors?.root?.server && 'Server error'}</p>
|
|
609
|
+
* <button>Submit</button>
|
|
610
|
+
* </Form>
|
|
611
|
+
* );
|
|
612
|
+
* }
|
|
613
|
+
* ```
|
|
614
|
+
*/
|
|
615
|
+
function Form(props) {
|
|
616
|
+
const methods = useFormContext();
|
|
617
|
+
const [mounted, setMounted] = React__default["default"].useState(false);
|
|
618
|
+
const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;
|
|
619
|
+
const submit = async (event) => {
|
|
620
|
+
let hasError = false;
|
|
621
|
+
let type = '';
|
|
622
|
+
await control.handleSubmit(async (data) => {
|
|
623
|
+
const formData = new FormData();
|
|
624
|
+
let formDataJson = '';
|
|
625
|
+
try {
|
|
626
|
+
formDataJson = JSON.stringify(data);
|
|
627
|
+
}
|
|
628
|
+
catch (_a) { }
|
|
629
|
+
const flattenFormValues = flatten(control._formValues);
|
|
630
|
+
for (const key in flattenFormValues) {
|
|
631
|
+
formData.append(key, flattenFormValues[key]);
|
|
632
|
+
}
|
|
633
|
+
if (onSubmit) {
|
|
634
|
+
await onSubmit({
|
|
635
|
+
data,
|
|
636
|
+
event,
|
|
637
|
+
method,
|
|
638
|
+
formData,
|
|
639
|
+
formDataJson,
|
|
640
|
+
});
|
|
641
|
+
}
|
|
642
|
+
if (action) {
|
|
643
|
+
try {
|
|
644
|
+
const shouldStringifySubmissionData = [
|
|
645
|
+
headers && headers['Content-Type'],
|
|
646
|
+
encType,
|
|
647
|
+
].some((value) => value && value.includes('json'));
|
|
648
|
+
const response = await fetch(String(action), {
|
|
649
|
+
method,
|
|
650
|
+
headers: {
|
|
651
|
+
...headers,
|
|
652
|
+
...(encType && encType !== 'multipart/form-data'
|
|
653
|
+
? { 'Content-Type': encType }
|
|
654
|
+
: {}),
|
|
655
|
+
},
|
|
656
|
+
body: shouldStringifySubmissionData ? formDataJson : formData,
|
|
657
|
+
});
|
|
658
|
+
if (response &&
|
|
659
|
+
(validateStatus
|
|
660
|
+
? !validateStatus(response.status)
|
|
661
|
+
: response.status < 200 || response.status >= 300)) {
|
|
662
|
+
hasError = true;
|
|
663
|
+
onError && onError({ response });
|
|
664
|
+
type = String(response.status);
|
|
665
|
+
}
|
|
666
|
+
else {
|
|
667
|
+
onSuccess && onSuccess({ response });
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
catch (error) {
|
|
671
|
+
hasError = true;
|
|
672
|
+
onError && onError({ error });
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
})(event);
|
|
676
|
+
if (hasError && props.control) {
|
|
677
|
+
props.control._subjects.state.next({
|
|
678
|
+
isSubmitSuccessful: false,
|
|
679
|
+
});
|
|
680
|
+
props.control.setError('root.server', {
|
|
681
|
+
type,
|
|
682
|
+
});
|
|
683
|
+
}
|
|
684
|
+
};
|
|
685
|
+
React__default["default"].useEffect(() => {
|
|
686
|
+
setMounted(true);
|
|
687
|
+
}, []);
|
|
688
|
+
return render ? (React__default["default"].createElement(React__default["default"].Fragment, null, render({
|
|
689
|
+
submit,
|
|
690
|
+
}))) : (React__default["default"].createElement("form", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));
|
|
691
|
+
}
|
|
692
|
+
|
|
576
693
|
exports.Controller = Controller;
|
|
694
|
+
exports.Form = Form;
|
|
577
695
|
exports.FormProvider = FormProvider;
|
|
578
696
|
exports.get = get;
|
|
579
697
|
exports.set = set;
|