@pnkx-lib/ui 1.9.235 → 1.9.237

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/es/index.js CHANGED
@@ -56,7 +56,7 @@ export { BreadcrumbHeading } from './ui/BreadcrumbHeading.js';
56
56
  export { Card } from './ui/Card.js';
57
57
  export { ConfigProvider } from './ui/ConfigProvider.js';
58
58
  export { PageNotFound } from './ui/PageNotFound.js';
59
- export { UploadImageController } from './ui/UploadImage.js';
59
+ export { UploadImage } from './ui/UploadImage.js';
60
60
  export { Input } from './fields/Input.js';
61
61
  export { PnkxField } from './fields/PnkxField.js';
62
62
  export { Select } from './fields/Select.js';
@@ -101,7 +101,7 @@ const ConfirmModal = ({
101
101
  };
102
102
  //! Function
103
103
  //! Render
104
- return /* @__PURE__ */ jsx(Modal, { ...restProps, footer: null, closeIcon: null, width: 400, children: /* @__PURE__ */ jsxs("div", { children: [
104
+ return /* @__PURE__ */ jsx(Modal, { ...restProps, footer: null, closeIcon: null, width: 400, children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 p-4", children: [
105
105
  /* @__PURE__ */ jsxs("div", { className: "flex gap-3", children: [
106
106
  /* @__PURE__ */ jsx("div", { className: "max-w-fit", children: /* @__PURE__ */ jsx(IconType, {}) }),
107
107
  /* @__PURE__ */ jsxs("div", { children: [
@@ -26,16 +26,18 @@ if (process.env.NODE_ENV !== 'production') {
26
26
  const logoUpload = "data:image/png;base64,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";
27
27
 
28
28
  const { Dragger } = Upload;
29
- const UploadImage = ({
29
+ const UploadComponent = ({
30
30
  onUploadSuccess,
31
31
  label,
32
32
  customStyleUpload,
33
33
  customStyleContainer,
34
34
  required,
35
35
  styleImageDefault,
36
+ imageValue,
37
+ errorMessage,
36
38
  ...restProps
37
39
  }) => {
38
- const [imageUrl, setImageUrl] = useState("");
40
+ const [imageUrl, setImageUrl] = useState(imageValue);
39
41
  const [loading, setLoading] = useState(false);
40
42
  const handleUpload = async (options) => {
41
43
  const { file } = options;
@@ -121,8 +123,12 @@ const UploadImage = ({
121
123
  ) }),
122
124
  /* @__PURE__ */ jsx("p", { className: "ant-upload-text text-[#116DFF] text-[14px] font-[400]", children: "Tải hình ảnh lên" }),
123
125
  /* @__PURE__ */ jsx("p", { className: "ant-upload-hint text-[14px] font-[400]", children: "Ảnh có kích thước 400x400 px và dung lượng dưới 1MB" })
124
- ] }) }) })
126
+ ] }) }) }),
127
+ errorMessage && /* @__PURE__ */ jsxs("p", { className: "text-red-600 text-sm mt-1", children: [
128
+ " ",
129
+ errorMessage
130
+ ] })
125
131
  ] });
126
132
  };
127
133
 
128
- export { UploadImage };
134
+ export { UploadComponent };
@@ -1,27 +1,30 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { C as Controller } from '../chunks/index.esm-o4O8pXMN.js';
3
- import { UploadImage } from './UploadComponent.js';
3
+ import { UploadComponent } from './UploadComponent.js';
4
4
 
5
- const UploadImageController = ({
5
+ const UploadImage = ({
6
6
  name,
7
7
  label,
8
8
  required,
9
9
  customStyleContainer,
10
10
  customStyleUpload,
11
11
  styleImageDefault,
12
- control
12
+ control,
13
+ errorMessage
13
14
  }) => {
14
15
  return /* @__PURE__ */ jsx(
15
16
  Controller,
16
17
  {
17
18
  name,
18
19
  control,
19
- render: ({ field: { onChange } }) => /* @__PURE__ */ jsx(
20
- UploadImage,
20
+ render: ({ field: { onChange, value } }) => /* @__PURE__ */ jsx(
21
+ UploadComponent,
21
22
  {
22
23
  onUploadSuccess: onChange,
23
24
  label,
25
+ imageValue: value,
24
26
  required,
27
+ errorMessage,
25
28
  customStyleContainer,
26
29
  customStyleUpload,
27
30
  styleImageDefault
@@ -31,4 +34,4 @@ const UploadImageController = ({
31
34
  );
32
35
  };
33
36
 
34
- export { UploadImageController };
37
+ export { UploadImage };
package/es/ui/index.js CHANGED
@@ -67,7 +67,7 @@ export { BreadcrumbHeading } from './BreadcrumbHeading.js';
67
67
  export { Card } from './Card.js';
68
68
  export { ConfigProvider } from './ConfigProvider.js';
69
69
  export { PageNotFound } from './PageNotFound.js';
70
- export { UploadImageController } from './UploadImage.js';
70
+ export { UploadImage } from './UploadImage.js';
71
71
  export { T as TINY_API } from '../chunks/common-CocKiHtC.js';
72
72
 
73
73
  const SettingColumnItem = ({ lable, name, control }) => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pnkx-lib/ui",
3
3
  "private": false,
4
- "version": "1.9.235",
4
+ "version": "1.9.237",
5
5
  "type": "module",
6
6
  "main": "./es/index.js",
7
7
  "module": "./es/index.js",
@@ -1,42 +1,14 @@
1
- import { default as React } from 'react';
2
- import { TableProps } from 'antd/lib/table';
3
- import { SorterResult } from 'antd/es/table/interface';
4
- import { SizeType } from 'antd/es/config-provider/SizeContext';
5
- import { InitialFiltersSearch } from '@pnkx-lib/core';
1
+ import { DefaultValues } from 'react-hook-form';
2
+ import { TableColumnsType as TableColumnsTypeAntd } from 'antd';
3
+ import { ColumnTypes, RowCommon, TableCommonProps } from '../Table';
6
4
  import * as yup from "yup";
7
- interface RowCommon {
8
- [x: string]: any;
9
- }
10
- type ColumnTypes<T> = Exclude<TableProps<T>["columns"], undefined>;
11
- export type TableColumnsTypeEditable<T> = (ColumnTypes<T>[number] & {})[];
12
- export type TFilters = {
13
- status?: any;
14
- };
15
- export interface TableCommonProps<T> extends Omit<TableProps<T>, "columns"> {
16
- dataSource?: T[];
17
- columns: TableColumnsTypeEditable<T>;
18
- loading?: boolean;
19
- totalItems?: number;
20
- filters: InitialFiltersSearch<TFilters>;
21
- onChangePage: (page: number) => void;
22
- onChangePageSize: (size: number) => void;
23
- onSort?: (sortField: SorterResult<T> | SorterResult<T>[]) => void;
24
- rowsSelected?: React.Key[];
25
- onSelect: (newSelectedRowKeys: React.Key[]) => void;
26
- onRowClick?: (record: T) => void;
27
- rowKey?: string | ((record: T) => string);
28
- onDoubleClickRow?: (record: T) => void;
29
- titleSettingTableModal?: string;
30
- showSetting?: boolean;
31
- setColumns?: (newColumns: TableColumnsTypeEditable<T>) => void;
32
- defaultEllipsis?: boolean;
33
- size?: SizeType;
34
- setFilters: (nextFilter: InitialFiltersSearch<TFilters>) => void;
35
- showIndexColumn?: boolean;
36
- editable?: boolean;
5
+ export interface EditableTableCommonProps<T> extends TableCommonProps<T> {
37
6
  onSave?: (data: T) => void;
38
7
  schema?: yup.AnyObjectSchema;
39
- initialValueForm?: T;
8
+ initialValueForm?: DefaultValues<T>;
40
9
  }
41
- export declare const Table: <T extends RowCommon>({ dataSource, columns, loading, totalItems, filters, onChangePage, onChangePageSize, onSort, rowsSelected, onSelect, onRowClick, rowKey, titleSettingTableModal, showSetting, setColumns, showIndexColumn, setFilters, editable, onSave, schema, onDoubleClickRow, defaultEllipsis, size, ...rest }: TableCommonProps<T>) => import("react/jsx-runtime").JSX.Element;
42
- export {};
10
+ export type TableColumnsTypeEditable<T> = (ColumnTypes<T>[number] & {
11
+ editable?: boolean;
12
+ })[];
13
+ export type TableColumnsType<T> = TableColumnsTypeAntd<T> & TableColumnsTypeEditable<T>;
14
+ export declare const EditableTable: <T extends RowCommon>({ onSave, schema, initialValueForm, rowKey, columns, ...rest }: EditableTableCommonProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -6,10 +6,10 @@ import { BulkActionHandlers, InitialFiltersSearch } from '@pnkx-lib/core';
6
6
  import { MenuType } from '../Sidebar';
7
7
  import { GroupHeadingButtonItem } from './HeadingTable/components/GroupHeadingButton';
8
8
  import { SizeType } from 'antd/es/config-provider/SizeContext';
9
- interface RowCommon {
9
+ export interface RowCommon {
10
10
  [x: string]: any;
11
11
  }
12
- type ColumnTypes<T> = Exclude<TableProps<T>["columns"], undefined>;
12
+ export type ColumnTypes<T> = Exclude<TableProps<T>["columns"], undefined>;
13
13
  export type TableColumnsTypeEditable<T> = (ColumnTypes<T>[number] & {})[];
14
14
  export type TableColumnsType<T> = TableColumnsTypeAntd<T> & TableColumnsTypeEditable<T>;
15
15
  export type TFilters = {
@@ -44,4 +44,3 @@ export interface TableCommonProps<T> extends Omit<TableProps<T>, "columns"> {
44
44
  rightHeadingContent?: ReactNode;
45
45
  }
46
46
  export declare const Table: <T extends RowCommon>({ dataSource, columns, loading, totalItems, filters, onChangePage, onChangePageSize, onSort, rowsSelected, onSelect, onRowClick, rowKey, titleSettingTableModal, showSetting, setColumns, renderHeadingSearch, rightHeadingContent, menu, groupHeadingButtonItems, showIndexColumn, setFilters, noBreadcum, bulkActionHandlers, size, defaultEllipsis, onDoubleClickRow, ...rest }: TableCommonProps<T>) => import("react/jsx-runtime").JSX.Element;
47
- export {};
@@ -6,6 +6,8 @@ interface UploadImageProps {
6
6
  label?: string;
7
7
  required?: boolean;
8
8
  styleImageDefault?: string;
9
+ imageValue?: string;
10
+ errorMessage?: string;
9
11
  }
10
- export declare const UploadImage: React.FC<UploadImageProps>;
12
+ export declare const UploadComponent: React.FC<UploadImageProps>;
11
13
  export {};
@@ -7,7 +7,8 @@ interface UploadImageControllerProps {
7
7
  customStyleContainer?: string;
8
8
  customStyleUpload?: string;
9
9
  styleImageDefault?: string;
10
- control: Control;
10
+ control: Control | any;
11
+ errorMessage?: string;
11
12
  }
12
- export declare const UploadImageController: React.FC<UploadImageControllerProps>;
13
+ export declare const UploadImage: React.FC<UploadImageControllerProps>;
13
14
  export {};