@pdg/react-table 1.0.70 → 1.0.71

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.
@@ -0,0 +1,6 @@
1
+ /********************************************************************************************************************
2
+ * 사업자등록번호 하이픈 추가
3
+ * @param companyNo 사업자등록번호
4
+ * @returns 하이픈이 추가된 사업자등록번호
5
+ * ******************************************************************************************************************/
6
+ export declare function companyNoAutoDash(companyNo: string): string;
@@ -5,3 +5,5 @@ export * from './compare';
5
5
  export * from './number';
6
6
  export * from './table';
7
7
  export * from './tel';
8
+ export * from './companyNo';
9
+ export * from './personalNo';
@@ -0,0 +1,6 @@
1
+ /********************************************************************************************************************
2
+ * 주민등록번호에 하이픈 추가하는 함수
3
+ * @param personalNo 주민등록번호
4
+ * @returns 하이픈 추가된 주민등록번호
5
+ * ******************************************************************************************************************/
6
+ export declare function personalNoAutoDash(personalNo: string): string;
@@ -4,11 +4,17 @@ import { CommonSxProps } from '../@types';
4
4
  export interface InfoTableInfo {
5
5
  [key: string]: any;
6
6
  }
7
+ export type InfoTableItemType = 'text' | 'number' | 'tel' | 'url' | 'email' | 'date' | 'datetime' | 'date-hour' | 'date-minute';
7
8
  export interface InfoTableItem<T = InfoTableInfo> {
8
9
  label: ReactNode;
9
10
  name?: keyof T;
11
+ type?: InfoTableItemType;
10
12
  ellipsis?: boolean;
11
13
  className?: string;
14
+ dateFormat?: string;
15
+ dateTwoLine?: boolean;
16
+ numberPrefix?: string;
17
+ numberSuffix?: string;
12
18
  style?: CommonSxProps['style'];
13
19
  sx?: BoxProps['sx'];
14
20
  labelClassName?: string;
package/dist/index.esm.js CHANGED
@@ -4883,9 +4883,91 @@ var lib = CopyToClipboard;var InfoTable = function (_a) {
4883
4883
  finalSizeProps.lg = item.lg;
4884
4884
  if (item.xl)
4885
4885
  finalSizeProps.xl = item.xl;
4886
- var data = item.name !== undefined ? info[item.name] : undefined;
4887
- if (item.onRender)
4886
+ var data = undefined;
4887
+ if (item.name !== undefined) {
4888
+ if (info[item.name] !== undefined) {
4889
+ if (info[item.name] instanceof Date) {
4890
+ data = dayjs(info[item.name]).format('YYYY-MM-DD HH:mm:ss');
4891
+ }
4892
+ else if (info[item.name] instanceof dayjs) {
4893
+ data = info[item.name].format('YYYY-MM-DD HH:mm:ss');
4894
+ }
4895
+ else {
4896
+ data = info[item.name];
4897
+ }
4898
+ }
4899
+ }
4900
+ if (item.onRender) {
4888
4901
  data = item.onRender(info);
4902
+ }
4903
+ else if (notEmpty(data)) {
4904
+ switch (item.type) {
4905
+ case 'number':
4906
+ if (typeof data === 'string' || typeof data === 'number') {
4907
+ data = numberWithThousandSeparator(data);
4908
+ if (item.numberPrefix) {
4909
+ data = (React__default.createElement(React__default.Fragment, null,
4910
+ React__default.createElement("span", { style: { opacity: 0.5, marginRight: 2 } }, item.numberPrefix),
4911
+ data));
4912
+ }
4913
+ if (item.numberSuffix) {
4914
+ data = (React__default.createElement(React__default.Fragment, null,
4915
+ data,
4916
+ React__default.createElement("span", { style: { opacity: 0.5, marginLeft: 2 } }, item.numberSuffix)));
4917
+ }
4918
+ }
4919
+ break;
4920
+ case 'tel':
4921
+ if (typeof data === 'string') {
4922
+ data = getTelAutoDash(data);
4923
+ }
4924
+ break;
4925
+ case 'email':
4926
+ if (typeof data === 'string') {
4927
+ data = (React__default.createElement(React__default.Fragment, null,
4928
+ React__default.createElement("a", { href: "mailto:".concat(data) }, data)));
4929
+ }
4930
+ break;
4931
+ case 'url':
4932
+ if (typeof data === 'string' && data.toLowerCase().startsWith('http')) {
4933
+ data = (React__default.createElement(React__default.Fragment, null,
4934
+ React__default.createElement("a", { href: data, target: '_blank' }, data)));
4935
+ }
4936
+ break;
4937
+ case 'date':
4938
+ if (typeof data === 'string' || typeof data === 'number') {
4939
+ data = dayjs(data, item.dateFormat).format('YYYY-MM-DD');
4940
+ }
4941
+ break;
4942
+ case 'datetime':
4943
+ if (typeof data === 'string' || typeof data === 'number') {
4944
+ var dt = dayjs(data, item.dateFormat);
4945
+ data = (React__default.createElement(React__default.Fragment, null,
4946
+ React__default.createElement("span", null, dt.format('YYYY-MM-DD')),
4947
+ item.dateTwoLine ? React__default.createElement("br", null) : ' ',
4948
+ React__default.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH:mm:ss'))));
4949
+ }
4950
+ break;
4951
+ case 'date-hour':
4952
+ if (typeof data === 'string' || typeof data === 'number') {
4953
+ var dt = dayjs(data, item.dateFormat);
4954
+ data = (React__default.createElement(React__default.Fragment, null,
4955
+ React__default.createElement("span", null, dt.format('YYYY-MM-DD')),
4956
+ item.dateTwoLine ? React__default.createElement("br", null) : ' ',
4957
+ React__default.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH시'))));
4958
+ }
4959
+ break;
4960
+ case 'date-minute':
4961
+ if (typeof data === 'string' || typeof data === 'number') {
4962
+ var dt = dayjs(data, item.dateFormat);
4963
+ data = (React__default.createElement(React__default.Fragment, null,
4964
+ React__default.createElement("span", null, dt.format('YYYY-MM-DD')),
4965
+ item.dateTwoLine ? React__default.createElement("br", null) : ' ',
4966
+ React__default.createElement("span", { style: { opacity: 0.5 } }, dt.format('HH시 MM분'))));
4967
+ }
4968
+ break;
4969
+ }
4970
+ }
4889
4971
  if (empty(data))
4890
4972
  data = item.onRenderEmpty ? item.onRenderEmpty(info) : React__default.createElement(React__default.Fragment, null, "\u00A0");
4891
4973
  var copyToClipboardText_1 = item.clipboardText || (typeof data === 'string' ? data : typeof data === 'number' ? data.toString() : '');