@kingteza/crud-component 1.0.62 → 1.0.64
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/crud/CrudComponent.d.ts +13 -6
- package/crud/CrudField.cjs.js +1 -1
- package/crud/CrudField.es.js +159 -154
- package/crud/CrudForm.cjs.js +1 -1
- package/crud/CrudForm.es.js +13 -12
- package/crud/view/CrudViewer.cjs.js +1 -1
- package/crud/view/CrudViewer.d.ts +4 -1
- package/crud/view/CrudViewer.es.js +216 -209
- package/package.json +1 -1
package/crud/CrudComponent.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ import { ColorPickerProps } from 'antd';
|
|
|
2
2
|
import { Rule } from 'antd/es/form';
|
|
3
3
|
import { FormInstance } from 'antd/lib';
|
|
4
4
|
import { Dayjs } from 'dayjs';
|
|
5
|
-
import { default as React, ReactElement } from 'react';
|
|
5
|
+
import { default as React, ReactElement, ReactNode } from 'react';
|
|
6
6
|
import { CrudSearchComponentProps } from './CrudSearchComponent';
|
|
7
7
|
import { FileCrudField } from './FileCrudField';
|
|
8
8
|
import { ImageCrudField } from './ImageCrudField';
|
|
9
9
|
import { CrudImportProps } from './import/CrudImportComponent';
|
|
10
|
-
import { CrudDragableProps } from './view/CrudViewer';
|
|
10
|
+
import { CrudDragableProps, CrudViewableProps } from './view/CrudViewer';
|
|
11
11
|
import { SelectTagRenderProps } from '../common/select/SelectComponent';
|
|
12
12
|
import { default as IdProps } from '../types/Id';
|
|
13
13
|
import { TextAreaBasedFieldProps } from './CrudTextAreaComponent';
|
|
@@ -60,7 +60,7 @@ export type CrudFieldGrid = {
|
|
|
60
60
|
xl?: number;
|
|
61
61
|
xxl?: number;
|
|
62
62
|
};
|
|
63
|
-
export interface SelectCrudField<T, ItemType extends SelectFieldItem = SelectFieldItem> extends Omit<InitialCrudField<T>, "name"
|
|
63
|
+
export interface SelectCrudField<T, ItemType extends SelectFieldItem = SelectFieldItem> extends Omit<InitialCrudField<T>, "name">, AddonFieldProps {
|
|
64
64
|
name: InitialCrudField<T>["name"] | {
|
|
65
65
|
name: keyof T | (string | number)[];
|
|
66
66
|
upsertFieldName: keyof T | (string | number)[];
|
|
@@ -118,12 +118,16 @@ export interface EnumCrudField<T> extends InitialCrudField<T> {
|
|
|
118
118
|
onChange?: (value: T[keyof T], form: FormInstance<T>) => void;
|
|
119
119
|
onSearch?: (keyword: string, form: FormInstance<T>) => void;
|
|
120
120
|
}
|
|
121
|
+
export type AddonFieldProps = {
|
|
122
|
+
addonAfter?: ReactNode;
|
|
123
|
+
addonBefore?: ReactNode;
|
|
124
|
+
};
|
|
121
125
|
export interface ObjectCrudField<T> extends InitialCrudField<T> {
|
|
122
126
|
type: "object";
|
|
123
127
|
render: (value: any, obj: T, index: number) => any;
|
|
124
128
|
translation?: object;
|
|
125
129
|
}
|
|
126
|
-
export interface TextBasedFieldProps<T> extends InitialCrudField<T
|
|
130
|
+
export interface TextBasedFieldProps<T> extends InitialCrudField<T>, AddonFieldProps {
|
|
127
131
|
placeholder?: string;
|
|
128
132
|
type: "text" | "time" | "email" | "password";
|
|
129
133
|
onChange?: (value: string, form: FormInstance<T>) => void;
|
|
@@ -136,10 +140,12 @@ export interface CheckboxBasedFieldProps<T> extends InitialCrudField<T> {
|
|
|
136
140
|
type: "checkbox";
|
|
137
141
|
onChange?: (value: boolean, form: FormInstance<T>) => void;
|
|
138
142
|
}
|
|
139
|
-
export interface NumberBasedFieldProps<T> extends InitialCrudField<T
|
|
143
|
+
export interface NumberBasedFieldProps<T> extends InitialCrudField<T>, AddonFieldProps {
|
|
140
144
|
type: "number";
|
|
141
145
|
placeholder?: string;
|
|
142
146
|
allowMinus?: boolean;
|
|
147
|
+
min?: number;
|
|
148
|
+
max?: number;
|
|
143
149
|
/**
|
|
144
150
|
* If it is number field making this true will convert the value to comma separated number field
|
|
145
151
|
*/
|
|
@@ -188,6 +194,7 @@ export type FormBuilderFunc0<T> = (name: keyof T, options?: GetFormFieldOptions)
|
|
|
188
194
|
export type FormBuilderFunc<T> = (i: FormBuilderFunc0<T>, otherUtils: {
|
|
189
195
|
isAnyFieldHidden: (...name: Array<keyof T>) => boolean;
|
|
190
196
|
isAllFieldsHidden: (...name: Array<keyof T>) => boolean;
|
|
197
|
+
purpose?: CrudPurpose;
|
|
191
198
|
}) => ReactElement;
|
|
192
199
|
export type CrudFieldProps<T> = SelectCrudField<T> | TextBasedFieldProps<T> | TextAreaBasedFieldProps<T> | ImageCrudField<T> | EnumCrudField<T> | DateBasedFieldProps<T> | TimeBasedFieldProps<T> | ObjectCrudField<T> | NumberBasedFieldProps<T> | CheckboxBasedFieldProps<T> | ColorPickerFieldProps<T> | FileCrudField<T>;
|
|
193
200
|
export type CrudPaginateProps = false | {
|
|
@@ -219,7 +226,7 @@ export type CrudComponentProps<T, FormType = T> = {
|
|
|
219
226
|
isHiding?: boolean;
|
|
220
227
|
isDeleting?: boolean;
|
|
221
228
|
isUpdating?: boolean;
|
|
222
|
-
viewable?:
|
|
229
|
+
viewable?: CrudViewableProps<T>;
|
|
223
230
|
extraAction?: (t: T) => ReactElement;
|
|
224
231
|
paginateProps?: CrudPaginateProps;
|
|
225
232
|
formBuilder?: FormBuilderFunc<T>;
|
package/crud/CrudField.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),j=require("antd"),T=require("react"),$=require("react-highlight-words"),z=require("../locale/index.cjs.js"),J=require("./FileCrudField.cjs.js"),K=require("./ImageCrudField.cjs.js"),Q=require("../common/check-box/CheckBox.cjs.js"),X=require("../common/date-picker/DatePicker.cjs.js"),Y=require("../common/date-picker/TimePicker.cjs.js"),E=require("../common/select/SelectComponent.cjs.js"),Z=require("../common/text-field/NumberField.cjs.js"),V=require("../common/text-field/TextField.cjs.js"),ee=require("../common/tooltip/TooltipComponent.cjs.js"),te=require("./CrudTextAreaComponent.cjs.js"),U=require("../util/CrudUtil.cjs.js");function re(y){const{label:s,name:c,type:C,required:i,hidden:S,rules:m=[],updatable:h=!0,readonly:w=!1,fieldClassName:p,customFormFieldRender:O,fieldTooltip:v,...t}=y,g=j.Form.useFormInstance();T.useEffect(()=>{if(C==="select"){const{items:n=[],onSearch:o,searchOnType:l}=t;!(n!=null&&n.length)&&!l&&(o==null||o(void 0,g,t==null?void 0:t.updatingValue))}},[g,t,C,t==null?void 0:t.updatingValue]);const{t:q}=z.useTranslationLibNoNS();if(w||S)return e.jsx(e.Fragment,{});if(O)return O(g,y);switch(C){case"text":case"email":case"password":{const{onChange:n,placeholder:o,addonAfter:l,addonBefore:f}=t;return e.jsx(V.default,{placeholder:o,disabled:!h,rules:m,required:i,onChange:n?x=>n(x,g):void 0,type:C,name:c,tooltip:v,label:s,className:p,autoComplete:"new-password",addonAfter:l,addonBefore:f})}case"number":{const{onChange:n,placeholder:o,allowMinus:l,min:f,max:x,addonAfter:u,addonBefore:b}=t;return e.jsx(Z,{placeholder:o,disabled:!h,moneyField:!!t.formatted,type:C,onChange:n?F=>n(F,g):void 0,rules:m,autoComplete:"false",required:i,tooltip:v,className:p,min:l?null:f,max:x,addonAfter:u,addonBefore:b,name:c,label:s})}case"date":{const{range:n,disableToday:o,disabledFutureDays:l,disabledPastDays:f,onChange:x,placeholder:u,format:b}=t;return e.jsx(X,{placeholder:u,required:i,disabled:!h,type:C,format:b,tooltip:v,range:n,name:c,label:s,onChange:x?F=>x(F,g):void 0,className:p,disableToday:o,disabledFutureDays:l,disabledPastDays:f})}case"time":{const{range:n=!1,disableCurrent:o,disabledFuture:l,disabledPast:f,onChange:x,use12Hours:u,format:b,placeholder:F}=t;return e.jsx(Y,{placeholder:F,required:i,format:b,disabled:!h,type:C,tooltip:v,range:n,use12Hours:u,name:c,label:s,onChange:x?a=>x(a,g):void 0,className:p,disableCurrent:o,disabledFuture:l,disabledPast:f})}case"textarea":return e.jsx(te,{...y});case"image":return e.jsx(K.default,{...t,required:i,name:c,label:s,rules:m,fieldClassName:p,onRemoved:t.onRemoved,onUploading:t.onUploading,provider:t.provider});case"file":return e.jsx(J.default,{...t,required:i,name:c,label:s,rules:m,fieldClassName:p,onRemoved:t.onRemoved,onUploading:t.onUploading,provider:t.provider});case"select":return e.jsx(H,{...t,required:i,name:c,label:s,rules:m,fieldClassName:p,form:g,updatable:h,readonly:w,fieldTooltip:v});case"enum":{const{enum:n,radio:o=!1,translation:l,onChange:f,onSearch:x,multiple:u,tagRender:b}=t,F=Array.isArray(n)?n:Object.keys(n);return o?e.jsx(j.Form.Item,{...t,name:c,required:i,tooltip:v,rules:m,label:s,className:["w-100",p].join(" "),children:e.jsx(j.Radio.Group,{...t,onChange:f?a=>{var R;return f((R=a==null?void 0:a.target)==null?void 0:R.value,g)}:void 0,children:F.map(a=>e.jsx(j.Radio,{disabled:!h,value:a,children:l?q(l[a]):a},a))})}):e.jsx(E,{...t,tagRender:typeof b=="function"?b:b?a=>{const{value:R,label:N}=a,k=b[R];return k?e.jsx(j.Tag,{color:k.color,children:N}):e.jsx(j.Tag,{children:N})}:void 0,onChange:f?a=>f(a,g):void 0,className:["w-100",p].join(" "),name:c,items:F,required:i,tooltip:v,rules:m,label:s,disabled:!h,onSearch:x?a=>x(a,g):void 0,allowClear:!0,mode:u?"multiple":void 0,itemBuilder:a=>e.jsx(j.Select.Option,{value:a,children:l?q(l[a]):a},a)})}case"checkbox":{const{onChange:n}=t;return e.jsx(Q,{className:p,rules:m,onChange:n?o=>n(o,g):void 0,label:s,tooltip:v,disabled:!h,name:c})}case"color":return e.jsx(D,{...t,type:"color",required:i,name:c,label:s,rules:m,fieldClassName:p,updatable:h,readonly:w,fieldTooltip:v});default:return e.jsx(e.Fragment,{children:`${C} Not Implemented`})}}function H(y){const{items:s=[],loading:c,searchOnType:C,onSearch:i,multiple:S,onChange:m,highlightSearch:h,required:w,fieldClassName:p,rules:O,fieldTooltip:v,updatable:t,label:g,name:q,tagRender:n,updatingValue:o,onSet:l,placeholder:f,allowClear:x=!0}=y,u=y.form,[b,F]=T.useState(""),a=T.useMemo(()=>U.getRealName(q),[q]),R=T.useMemo(()=>U.getRealName(q,"upsertFieldName"),[q]),N=j.Form.useWatch(a,u),[k,P]=T.useState(!0);T.useEffect(()=>{l&&k&&N&&(l==null||l(N,s,u),P(!1))},[k,u,s,a,l,N]),T.useEffect(()=>{N&&P(!0)},[N]);const _=T.useCallback(async r=>{F(r),C&&(i==null||i(r,u,o))},[u,i,C,o]);return e.jsx(E,{...y,maxTagCount:"responsive",maxTagPlaceholder:r=>e.jsxs(ee,{title:e.jsx(e.Fragment,{children:r.map(d=>e.jsxs(e.Fragment,{children:[d.label," ",e.jsx("br",{})]}))}),children:["+",r==null?void 0:r.length]}),placeholder:f,onSelect:r=>{l==null||l(r==null?void 0:r.key,s,u)},onChange:m?r=>{F(""),m(r,u)}:void 0,mode:S?"multiple":void 0,className:["w-100",p].join(" "),name:R,items:s,required:w,tooltip:v,tagRender:n,rules:O,disabled:!t,label:g,allowClear:x,onSearch:_,loading:c,filterOption:h?(r,d)=>{var A,B,I;try{const L=r.toLowerCase().split(/\s+/),W=((typeof(d==null?void 0:d.children)=="string"?d==null?void 0:d.children:(B=(A=d==null?void 0:d.children)==null?void 0:A.props)==null?void 0:B.textToHighlight)??"").toLowerCase(),G=(((I=d==null?void 0:d.value)==null?void 0:I.toString())??"").toLowerCase();return L.every(M=>W.indexOf(M)>=0||G.indexOf(M)>=0)}catch{return!0}}:void 0,itemBuilder:h?r=>{const d=r.value?String(r.value):void 0;return e.jsx(j.Select.Option,{value:r.key,title:d,disabled:r.disabled,children:e.jsx($,{highlightClassName:"highlight-text",searchWords:(b??"").split(" "),autoEscape:!0,textToHighlight:d??""})},r.key)}:r=>e.jsx(j.Select.Option,{value:r.key,title:r.value,disabled:r.disabled,children:r.value},r.key)})}function D(y){const{required:s,fieldClassName:c,rules:C,fieldTooltip:i,updatable:S,label:m,name:h}=y;return e.jsx(j.Form.Item,{label:m,name:h,required:s,rules:C,tooltip:i,children:e.jsx(j.ColorPicker,{disabledAlpha:!0,format:"hex",defaultFormat:"hex",showText:!0,trigger:"click",className:c,disabled:!S,...y.innerProps})})}exports.ColorCrudFieldComponent=D;exports.SelectCrudFieldComponent=H;exports.default=re;
|