@bsol-oss/react-datatable5 12.0.0-beta.27 → 12.0.0-beta.29

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/index.d.ts CHANGED
@@ -470,6 +470,7 @@ interface CustomJSONSchema7 extends JSONSchema7 {
470
470
  formContext: UseFormReturn;
471
471
  }) => ReactNode;
472
472
  dateFormat?: string;
473
+ displayDateFormat?: string;
473
474
  }
474
475
 
475
476
  interface FormRootProps<TData extends FieldValues> {
package/dist/index.js CHANGED
@@ -30,6 +30,7 @@ var reactI18next = require('react-i18next');
30
30
  var axios = require('axios');
31
31
  var reactHookForm = require('react-hook-form');
32
32
  var dayjs = require('dayjs');
33
+ var utc = require('dayjs/plugin/utc');
33
34
  var ti = require('react-icons/ti');
34
35
 
35
36
  function _interopNamespaceDefault(e) {
@@ -3790,14 +3791,16 @@ const PopoverRoot = react.Popover.Root;
3790
3791
  const PopoverBody = react.Popover.Body;
3791
3792
  const PopoverTrigger = react.Popover.Trigger;
3792
3793
 
3794
+ dayjs.extend(utc);
3793
3795
  const DatePicker = ({ column, schema, prefix }) => {
3794
3796
  const { watch, formState: { errors }, setValue, } = reactHookForm.useFormContext();
3795
3797
  const { translate } = useSchemaContext();
3796
- const { required, gridColumn, gridRow, dateFormat = "YYYY-MM-DD[T]HH:mm:ss[Z]", } = schema;
3798
+ const { required, gridColumn = "span 4", gridRow = "span 1", displayDateFormat = "YYYY-MM-DD", dateFormat = "YYYY-MM-DD[T]HH:mm:ss[Z]", } = schema;
3797
3799
  const isRequired = required?.some((columnId) => columnId === column);
3798
3800
  const colLabel = `${prefix}${column}`;
3799
3801
  const [open, setOpen] = React.useState(false);
3800
3802
  const selectedDate = watch(colLabel);
3803
+ const displayDate = dayjs.utc(selectedDate).format(displayDateFormat);
3801
3804
  React.useEffect(() => {
3802
3805
  try {
3803
3806
  if (selectedDate) {
@@ -3808,7 +3811,6 @@ const DatePicker = ({ column, schema, prefix }) => {
3808
3811
  // const parsedDate = dayjs.tz(selectedDate, dayjs.tz.guess());
3809
3812
  if (!parsedDate.isValid())
3810
3813
  return;
3811
- console.log(selectedDate, parsedDate, parsedDate.format(dateFormat), "dkosfp");
3812
3814
  // Format according to dateFormat from schema
3813
3815
  const formatted = parsedDate.format(dateFormat);
3814
3816
  // Update the form value only if different to avoid loops
@@ -3827,7 +3829,7 @@ const DatePicker = ({ column, schema, prefix }) => {
3827
3829
  return (jsxRuntime.jsxs(Field, { label: `${translate.t(removeIndex(`${colLabel}.field_label`))}`, required: isRequired, alignItems: "stretch", gridColumn,
3828
3830
  gridRow, children: [jsxRuntime.jsxs(PopoverRoot, { open: open, onOpenChange: (e) => setOpen(e.open), closeOnInteractOutside: true, children: [jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: jsxRuntime.jsxs(Button, { size: "sm", variant: "outline", onClick: () => {
3829
3831
  setOpen(true);
3830
- }, justifyContent: "start", children: [jsxRuntime.jsx(md.MdDateRange, {}), selectedDate !== undefined ? `${selectedDate}` : ""] }) }), jsxRuntime.jsx(PopoverContent, { children: jsxRuntime.jsxs(PopoverBody, { children: [jsxRuntime.jsx(PopoverTitle, {}), jsxRuntime.jsx(DatePicker$1
3832
+ }, justifyContent: "start", children: [jsxRuntime.jsx(md.MdDateRange, {}), selectedDate !== undefined ? `${displayDate}` : ""] }) }), jsxRuntime.jsx(PopoverContent, { children: jsxRuntime.jsxs(PopoverBody, { children: [jsxRuntime.jsx(PopoverTitle, {}), jsxRuntime.jsx(DatePicker$1
3831
3833
  // @ts-expect-error TODO: find appropriate types
3832
3834
  , {
3833
3835
  // @ts-expect-error TODO: find appropriate types
@@ -4868,12 +4870,13 @@ const CustomViewer = ({ column, schema, prefix }) => {
4868
4870
  const DateViewer = ({ column, schema, prefix }) => {
4869
4871
  const { watch, formState: { errors }, } = reactHookForm.useFormContext();
4870
4872
  const { translate } = useSchemaContext();
4871
- const { required, gridColumn, gridRow } = schema;
4873
+ const { required, gridColumn, gridRow, displayDateFormat = "YYYY-MM-DD", } = schema;
4872
4874
  const isRequired = required?.some((columnId) => columnId === column);
4873
4875
  const colLabel = `${prefix}${column}`;
4874
4876
  const selectedDate = watch(colLabel);
4877
+ const displayDate = dayjs.utc(selectedDate).format(displayDateFormat);
4875
4878
  return (jsxRuntime.jsxs(Field, { label: `${translate.t(removeIndex(`${column}.field_label`))}`, required: isRequired, alignItems: "stretch", gridColumn,
4876
- gridRow, children: [jsxRuntime.jsxs(react.Text, { children: [" ", selectedDate !== undefined ? selectedDate : ""] }), errors[`${column}`] && (jsxRuntime.jsx(react.Text, { color: "red.400", children: translate.t(`${column}.field_required`) }))] }));
4879
+ gridRow, children: [jsxRuntime.jsxs(react.Text, { children: [" ", selectedDate !== undefined ? displayDate : ""] }), errors[`${column}`] && (jsxRuntime.jsx(react.Text, { color: "red.400", children: translate.t(`${column}.field_required`) }))] }));
4877
4880
  };
4878
4881
 
4879
4882
  const EnumViewer = ({ column, isMultiple = false, schema, prefix, }) => {
package/dist/index.mjs CHANGED
@@ -29,6 +29,7 @@ import { useTranslation } from 'react-i18next';
29
29
  import axios from 'axios';
30
30
  import { FormProvider, useFormContext, useForm as useForm$1 } from 'react-hook-form';
31
31
  import dayjs from 'dayjs';
32
+ import utc from 'dayjs/plugin/utc';
32
33
  import { TiDeleteOutline } from 'react-icons/ti';
33
34
 
34
35
  const DataTableContext = createContext({
@@ -3770,14 +3771,16 @@ const PopoverRoot = Popover.Root;
3770
3771
  const PopoverBody = Popover.Body;
3771
3772
  const PopoverTrigger = Popover.Trigger;
3772
3773
 
3774
+ dayjs.extend(utc);
3773
3775
  const DatePicker = ({ column, schema, prefix }) => {
3774
3776
  const { watch, formState: { errors }, setValue, } = useFormContext();
3775
3777
  const { translate } = useSchemaContext();
3776
- const { required, gridColumn, gridRow, dateFormat = "YYYY-MM-DD[T]HH:mm:ss[Z]", } = schema;
3778
+ const { required, gridColumn = "span 4", gridRow = "span 1", displayDateFormat = "YYYY-MM-DD", dateFormat = "YYYY-MM-DD[T]HH:mm:ss[Z]", } = schema;
3777
3779
  const isRequired = required?.some((columnId) => columnId === column);
3778
3780
  const colLabel = `${prefix}${column}`;
3779
3781
  const [open, setOpen] = useState(false);
3780
3782
  const selectedDate = watch(colLabel);
3783
+ const displayDate = dayjs.utc(selectedDate).format(displayDateFormat);
3781
3784
  useEffect(() => {
3782
3785
  try {
3783
3786
  if (selectedDate) {
@@ -3788,7 +3791,6 @@ const DatePicker = ({ column, schema, prefix }) => {
3788
3791
  // const parsedDate = dayjs.tz(selectedDate, dayjs.tz.guess());
3789
3792
  if (!parsedDate.isValid())
3790
3793
  return;
3791
- console.log(selectedDate, parsedDate, parsedDate.format(dateFormat), "dkosfp");
3792
3794
  // Format according to dateFormat from schema
3793
3795
  const formatted = parsedDate.format(dateFormat);
3794
3796
  // Update the form value only if different to avoid loops
@@ -3807,7 +3809,7 @@ const DatePicker = ({ column, schema, prefix }) => {
3807
3809
  return (jsxs(Field, { label: `${translate.t(removeIndex(`${colLabel}.field_label`))}`, required: isRequired, alignItems: "stretch", gridColumn,
3808
3810
  gridRow, children: [jsxs(PopoverRoot, { open: open, onOpenChange: (e) => setOpen(e.open), closeOnInteractOutside: true, children: [jsx(PopoverTrigger, { asChild: true, children: jsxs(Button, { size: "sm", variant: "outline", onClick: () => {
3809
3811
  setOpen(true);
3810
- }, justifyContent: "start", children: [jsx(MdDateRange, {}), selectedDate !== undefined ? `${selectedDate}` : ""] }) }), jsx(PopoverContent, { children: jsxs(PopoverBody, { children: [jsx(PopoverTitle, {}), jsx(DatePicker$1
3812
+ }, justifyContent: "start", children: [jsx(MdDateRange, {}), selectedDate !== undefined ? `${displayDate}` : ""] }) }), jsx(PopoverContent, { children: jsxs(PopoverBody, { children: [jsx(PopoverTitle, {}), jsx(DatePicker$1
3811
3813
  // @ts-expect-error TODO: find appropriate types
3812
3814
  , {
3813
3815
  // @ts-expect-error TODO: find appropriate types
@@ -4848,12 +4850,13 @@ const CustomViewer = ({ column, schema, prefix }) => {
4848
4850
  const DateViewer = ({ column, schema, prefix }) => {
4849
4851
  const { watch, formState: { errors }, } = useFormContext();
4850
4852
  const { translate } = useSchemaContext();
4851
- const { required, gridColumn, gridRow } = schema;
4853
+ const { required, gridColumn, gridRow, displayDateFormat = "YYYY-MM-DD", } = schema;
4852
4854
  const isRequired = required?.some((columnId) => columnId === column);
4853
4855
  const colLabel = `${prefix}${column}`;
4854
4856
  const selectedDate = watch(colLabel);
4857
+ const displayDate = dayjs.utc(selectedDate).format(displayDateFormat);
4855
4858
  return (jsxs(Field, { label: `${translate.t(removeIndex(`${column}.field_label`))}`, required: isRequired, alignItems: "stretch", gridColumn,
4856
- gridRow, children: [jsxs(Text, { children: [" ", selectedDate !== undefined ? selectedDate : ""] }), errors[`${column}`] && (jsx(Text, { color: "red.400", children: translate.t(`${column}.field_required`) }))] }));
4859
+ gridRow, children: [jsxs(Text, { children: [" ", selectedDate !== undefined ? displayDate : ""] }), errors[`${column}`] && (jsx(Text, { color: "red.400", children: translate.t(`${column}.field_required`) }))] }));
4857
4860
  };
4858
4861
 
4859
4862
  const EnumViewer = ({ column, isMultiple = false, schema, prefix, }) => {
@@ -1,7 +1,2 @@
1
- import { CustomJSONSchema7 } from "../types/CustomJSONSchema7";
2
- export interface DatePickerProps {
3
- column: string;
4
- schema: CustomJSONSchema7;
5
- prefix: string;
6
- }
7
- export declare const DatePicker: ({ column, schema, prefix }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
1
+ import { InputDefaultProps } from "./types";
2
+ export declare const DatePicker: ({ column, schema, prefix }: InputDefaultProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,2 @@
1
- export declare const FilePicker: ({ column, schema, prefix }: {
2
- column: any;
3
- schema: any;
4
- prefix: any;
5
- }) => import("react/jsx-runtime").JSX.Element;
1
+ import { InputDefaultProps } from "./types";
2
+ export declare const FilePicker: ({ column, schema, prefix }: InputDefaultProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,5 @@
1
- import { CustomJSONSchema7 } from "../types/CustomJSONSchema7";
2
- export interface StringInputFieldProps {
3
- column: string;
4
- schema: CustomJSONSchema7;
5
- prefix: string;
1
+ import { InputDefaultProps } from "./types";
2
+ export interface StringInputFieldProps extends InputDefaultProps {
6
3
  }
7
4
  export interface ForeignKeyProps {
8
5
  column: string;
@@ -0,0 +1,6 @@
1
+ import { CustomJSONSchema7 } from "../types/CustomJSONSchema7";
2
+ export type InputDefaultProps = {
3
+ column: string;
4
+ schema: CustomJSONSchema7;
5
+ prefix: string;
6
+ };
@@ -21,6 +21,7 @@ export interface CustomJSONSchema7 extends JSONSchema7 {
21
21
  formContext: UseFormReturn;
22
22
  }) => ReactNode;
23
23
  dateFormat?: string;
24
+ displayDateFormat?: string;
24
25
  }
25
26
  export interface TagPickerProps {
26
27
  column: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsol-oss/react-datatable5",
3
- "version": "12.0.0-beta.27",
3
+ "version": "12.0.0-beta.29",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",