@qoretechnologies/reqraft 0.0.1 → 0.1.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/components/form/fields/Field.d.ts +10 -0
- package/dist/components/form/fields/Field.d.ts.map +1 -0
- package/dist/components/form/fields/Field.js +44 -0
- package/dist/components/form/fields/Field.js.map +1 -0
- package/dist/components/form/{string → fields/string}/String.d.ts +3 -2
- package/dist/components/form/fields/string/String.d.ts.map +1 -0
- package/dist/components/form/fields/string/String.js.map +1 -0
- package/dist/components/form/fields/string/String.stories.d.ts.map +1 -0
- package/dist/components/form/fields/string/String.stories.js.map +1 -0
- package/dist/hooks/useValidation.d.ts +3 -0
- package/dist/hooks/useValidation.d.ts.map +1 -0
- package/dist/hooks/useValidation.js +11 -0
- package/dist/hooks/useValidation.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/Form.d.ts +3 -0
- package/dist/types/Form.d.ts.map +1 -0
- package/dist/types/Form.js +3 -0
- package/dist/types/Form.js.map +1 -0
- package/package.json +1 -1
- package/src/components/form/fields/Field.tsx +37 -0
- package/src/components/form/{string → fields/string}/String.stories.tsx +1 -1
- package/src/components/form/{string → fields/string}/String.tsx +3 -2
- package/src/hooks/useValidation.ts +9 -0
- package/src/index.tsx +1 -1
- package/src/types/Form.ts +57 -0
- package/tests.json +1 -1
- package/dist/components/form/string/String.d.ts.map +0 -1
- package/dist/components/form/string/String.js.map +0 -1
- package/dist/components/form/string/String.stories.d.ts.map +0 -1
- package/dist/components/form/string/String.stories.js.map +0 -1
- /package/dist/components/form/{string → fields/string}/String.js +0 -0
- /package/dist/components/form/{string → fields/string}/String.stories.d.ts +0 -0
- /package/dist/components/form/{string → fields/string}/String.stories.js +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TFormFieldType, TFormFieldValueType } from '../../../types/Form';
|
|
2
|
+
export interface IFormFieldProps<T extends TFormFieldType = TFormFieldType> {
|
|
3
|
+
type?: T;
|
|
4
|
+
value: TFormFieldValueType<T>;
|
|
5
|
+
onChange: (value: TFormFieldValueType<T>, event?: unknown) => void;
|
|
6
|
+
validateSelf?: boolean;
|
|
7
|
+
onValidateChange?: (isValid: boolean) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const FormField: <T extends TFormFieldType>({ type, onChange, ...rest }: IFormFieldProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=Field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../../src/components/form/fields/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1E,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IACxE,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,SAAS,0DAInB,gBAAgB,CAAC,CAAC,4CAoBpB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.FormField = void 0;
|
|
26
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
27
|
+
var String_1 = require("./string/String");
|
|
28
|
+
var FormField = function (_a) {
|
|
29
|
+
var type = _a.type, onChange = _a.onChange, rest = __rest(_a, ["type", "onChange"]);
|
|
30
|
+
var handleChange = function (value, event) {
|
|
31
|
+
onChange(value, event);
|
|
32
|
+
};
|
|
33
|
+
var renderField = function (type) {
|
|
34
|
+
switch (type) {
|
|
35
|
+
case 'string':
|
|
36
|
+
return ((0, jsx_runtime_1.jsx)(String_1.FormStringField, __assign({}, rest, { onChange: function (value) { return handleChange(value); } })));
|
|
37
|
+
default:
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
return renderField(type);
|
|
42
|
+
};
|
|
43
|
+
exports.FormField = FormField;
|
|
44
|
+
//# sourceMappingURL=Field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../../src/components/form/fields/Field.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0CAAkD;AAW3C,IAAM,SAAS,GAAG,UAA2B,EAI/B;IAHnB,IAAA,IAAI,UAAA,EACJ,QAAQ,cAAA,EACL,IAAI,cAH2C,oBAInD,CADQ;IAEP,IAAM,YAAY,GAAG,UAAC,KAA6B,EAAE,KAAe;QAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,UAAC,IAAO;QAC1B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,OAAO,CACL,uBAAC,wBAAe,eACV,IAAI,IACR,QAAQ,EAAE,UAAC,KAAa,IAAK,OAAA,YAAY,CAAC,KAA+B,CAAC,EAA7C,CAA6C,IAC1E,CACH,CAAC;YACJ;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC;AAxBW,QAAA,SAAS,aAwBpB"}
|
|
@@ -2,14 +2,15 @@ import { IReqoreControlGroupProps } from '@qoretechnologies/reqore/dist/componen
|
|
|
2
2
|
import { IReqoreInputProps } from '@qoretechnologies/reqore/dist/components/Input';
|
|
3
3
|
import { IReqoreTagProps } from '@qoretechnologies/reqore/dist/components/Tag';
|
|
4
4
|
import { ChangeEvent } from 'react';
|
|
5
|
+
import { TFormFieldValueType } from '../../../../types/Form';
|
|
5
6
|
export interface IStringFormFieldProps extends Omit<IReqoreInputProps, 'onChange' | 'value'> {
|
|
6
7
|
sensitive?: boolean;
|
|
7
|
-
value?: string
|
|
8
|
+
value?: TFormFieldValueType<'string'>;
|
|
8
9
|
label?: IReqoreTagProps['label'];
|
|
9
10
|
labelPosition?: 'top' | 'left' | 'right' | 'bottom';
|
|
10
11
|
labelProps?: IReqoreTagProps;
|
|
11
12
|
wrapperProps?: IReqoreControlGroupProps;
|
|
12
|
-
onChange?: (value?: string
|
|
13
|
+
onChange?: (value?: TFormFieldValueType<'string'>, event?: ChangeEvent<HTMLInputElement>) => void;
|
|
13
14
|
}
|
|
14
15
|
export declare const FormStringField: ({ onChange, wrapperProps, labelProps, label, labelPosition, sensitive, ...rest }: IStringFormFieldProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
16
|
//# sourceMappingURL=String.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/fields/string/String.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAe,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,OAAO,CAAC;IAC1F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CACnG;AAED,eAAO,MAAM,eAAe,qFAQzB,qBAAqB,4CA0CvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"String.js","sourceRoot":"","sources":["../../../../../src/components/form/fields/string/String.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAsF;AAItF,+BAAiD;AAa1C,IAAM,eAAe,GAAG,UAAC,EAQR;IAPtB,IAAA,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,UAAU,gBAAA,EACV,KAAK,WAAA,EACL,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,SAAS,eAAA,EACN,IAAI,cAPuB,iFAQ/B,CADQ;IAEP,2BAA2B;IAC3B,IAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,UAAC,KAAoC;;QACpE,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,QAAQ,CAAC,MAAA,KAAK,CAAC,MAAM,CAAC,KAAK,0CAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,iCAAiC;IACjC,IAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC;QACnC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,wBAAC,2BAAkB,aACjB,KAAK,UACD,YAAY,IAChB,QAAQ,EAAE,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,KAAK,aAE9D,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CACjF,uBAAC,kBAAS,aAAC,KAAK,EAAE,KAAK,EAAE,KAAK,UAAK,UAAU,EAAI,CAClD,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,oBAAW,aACV,KAAK,QACL,OAAO,EAAE,UAAC,KAAK;;oBACb,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,qDAAG,KAAK,CAAC,CAAC;gBACzB,CAAC,EACD,OAAO,EAAE,UAAC,KAAK;;oBACb,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,qDAAG,KAAK,CAAC,CAAC;gBACzB,CAAC,EACD,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EACrC,YAAY,EAAE,gBAAgB,IAC1B,IAAI,EACR,EACD,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CACrF,uBAAC,kBAAS,aAAC,KAAK,EAAE,KAAK,EAAE,KAAK,UAAK,UAAU,EAAI,CAClD,CAAC,CAAC,CAAC,IAAI,KACW,CACtB,CAAC;AACJ,CAAC,CAAC;AAlDW,QAAA,eAAe,mBAkD1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"String.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/fields/string/String.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,QAAA,MAAM,IAAI;;EAG4B,CAAC;AAEvC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AACjC,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AACF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"String.stories.js","sourceRoot":"","sources":["../../../../../src/components/form/fields/string/String.stories.tsx"],"names":[],"mappings":";;;AAEA,mCAA2C;AAE3C,IAAM,IAAI,GAAG;IACX,SAAS,EAAE,wBAAe;IAC1B,KAAK,EAAE,wBAAwB;CACK,CAAC;AAEvC,kBAAe,IAAI,CAAC;AAGP,QAAA,OAAO,GAAU,EAAE,CAAC;AACpB,QAAA,KAAK,GAAU;IAC1B,IAAI,EAAE;QACJ,KAAK,EAAE,eAAe;KACvB;CACF,CAAC;AACW,QAAA,SAAS,GAAU;IAC9B,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;KACf;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useValidation.d.ts","sourceRoot":"","sources":["../../src/hooks/useValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,eAAO,MAAM,aAAa,UAAW,GAAG,SAAS,cAAc,YAI9D,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useValidation = void 0;
|
|
4
|
+
// @ts-expect-error "need to implement this"
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6
|
+
var useValidation = function (value, type) {
|
|
7
|
+
// Build validation...
|
|
8
|
+
return true;
|
|
9
|
+
};
|
|
10
|
+
exports.useValidation = useValidation;
|
|
11
|
+
//# sourceMappingURL=useValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useValidation.js","sourceRoot":"","sources":["../../src/hooks/useValidation.ts"],"names":[],"mappings":";;;AAEA,4CAA4C;AAC5C,6DAA6D;AACtD,IAAM,aAAa,GAAG,UAAC,KAAU,EAAE,IAAqB;IAC7D,sBAAsB;IAEtB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAJW,QAAA,aAAa,iBAIxB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { FormStringField, IStringFormFieldProps } from './components/form/string/String';
|
|
1
|
+
export { FormStringField, IStringFormFieldProps } from './components/form/fields/string/String';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FormStringField = void 0;
|
|
4
|
-
var String_1 = require("./components/form/string/String");
|
|
4
|
+
var String_1 = require("./components/form/fields/string/String");
|
|
5
5
|
Object.defineProperty(exports, "FormStringField", { enumerable: true, get: function () { return String_1.FormStringField; } });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;AAAA,iEAAgG;AAAvF,yGAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type TFormFieldType = 'string' | 'number' | 'boolean' | 'date' | 'time' | 'datetime' | 'select' | 'multiSelect' | 'radio' | 'checkbox' | 'file' | 'image' | 'color' | 'password' | 'email' | 'phone' | 'url' | 'markdown';
|
|
2
|
+
export type TFormFieldValueType<T> = T extends 'string' ? string : T extends 'number' ? number : T extends 'boolean' ? boolean : T extends 'date' ? Date | string : T extends 'time' ? Date | string : T extends 'datetime' ? Date | string : T extends 'select' ? string : T extends 'multiSelect' ? string[] : T extends 'radio' ? string : T extends 'checkbox' ? boolean : T extends 'file' ? File : T extends 'image' ? string : T extends 'color' ? string : T extends 'password' ? string : T extends 'email' ? string : T extends 'phone' ? string : T extends 'url' ? string : T extends 'markdown' ? string : any;
|
|
3
|
+
//# sourceMappingURL=Form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../src/types/Form.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,MAAM,GACN,UAAU,GACV,QAAQ,GACR,aAAa,GACb,OAAO,GACP,UAAU,GACV,MAAM,GACN,OAAO,GACP,OAAO,GACP,UAAU,GACV,OAAO,GACP,OAAO,GACP,KAAK,GACL,UAAU,CAAC;AAEf,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,GACnD,MAAM,GACN,CAAC,SAAS,QAAQ,GAClB,MAAM,GACN,CAAC,SAAS,SAAS,GACnB,OAAO,GACP,CAAC,SAAS,MAAM,GAChB,IAAI,GAAG,MAAM,GACb,CAAC,SAAS,MAAM,GAChB,IAAI,GAAG,MAAM,GACb,CAAC,SAAS,UAAU,GACpB,IAAI,GAAG,MAAM,GACb,CAAC,SAAS,QAAQ,GAClB,MAAM,GACN,CAAC,SAAS,aAAa,GACvB,MAAM,EAAE,GACR,CAAC,SAAS,OAAO,GACjB,MAAM,GACN,CAAC,SAAS,UAAU,GACpB,OAAO,GACP,CAAC,SAAS,MAAM,GAChB,IAAI,GACJ,CAAC,SAAS,OAAO,GACjB,MAAM,GACN,CAAC,SAAS,OAAO,GACjB,MAAM,GACN,CAAC,SAAS,UAAU,GACpB,MAAM,GACN,CAAC,SAAS,OAAO,GACjB,MAAM,GACN,CAAC,SAAS,OAAO,GACjB,MAAM,GACN,CAAC,SAAS,KAAK,GACf,MAAM,GACN,CAAC,SAAS,UAAU,GACpB,MAAM,GACN,GAAG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.js","sourceRoot":"","sources":["../../src/types/Form.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qoretechnologies/reqraft",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "ReQraft is a collection of React components and hooks that are used across Qore Technologies' products made using the ReQore component library from Qore.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { TFormFieldType, TFormFieldValueType } from '../../../types/Form';
|
|
2
|
+
import { FormStringField } from './string/String';
|
|
3
|
+
|
|
4
|
+
export interface IFormFieldProps<T extends TFormFieldType = TFormFieldType> {
|
|
5
|
+
type?: T;
|
|
6
|
+
value: TFormFieldValueType<T>;
|
|
7
|
+
onChange: (value: TFormFieldValueType<T>, event?: unknown) => void;
|
|
8
|
+
|
|
9
|
+
validateSelf?: boolean;
|
|
10
|
+
onValidateChange?: (isValid: boolean) => void;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const FormField = <T extends TFormFieldType>({
|
|
14
|
+
type,
|
|
15
|
+
onChange,
|
|
16
|
+
...rest
|
|
17
|
+
}: IFormFieldProps<T>) => {
|
|
18
|
+
const handleChange = (value: TFormFieldValueType<T>, event?: unknown) => {
|
|
19
|
+
onChange(value, event);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const renderField = (type: T) => {
|
|
23
|
+
switch (type) {
|
|
24
|
+
case 'string':
|
|
25
|
+
return (
|
|
26
|
+
<FormStringField
|
|
27
|
+
{...rest}
|
|
28
|
+
onChange={(value: string) => handleChange(value as TFormFieldValueType<T>)}
|
|
29
|
+
/>
|
|
30
|
+
);
|
|
31
|
+
default:
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
return renderField(type);
|
|
37
|
+
};
|
|
@@ -3,15 +3,16 @@ import { IReqoreControlGroupProps } from '@qoretechnologies/reqore/dist/componen
|
|
|
3
3
|
import { IReqoreInputProps } from '@qoretechnologies/reqore/dist/components/Input';
|
|
4
4
|
import { IReqoreTagProps } from '@qoretechnologies/reqore/dist/components/Tag';
|
|
5
5
|
import { ChangeEvent, useCallback } from 'react';
|
|
6
|
+
import { TFormFieldValueType } from '../../../../types/Form';
|
|
6
7
|
|
|
7
8
|
export interface IStringFormFieldProps extends Omit<IReqoreInputProps, 'onChange' | 'value'> {
|
|
8
9
|
sensitive?: boolean;
|
|
9
|
-
value?: string
|
|
10
|
+
value?: TFormFieldValueType<'string'>;
|
|
10
11
|
label?: IReqoreTagProps['label'];
|
|
11
12
|
labelPosition?: 'top' | 'left' | 'right' | 'bottom';
|
|
12
13
|
labelProps?: IReqoreTagProps;
|
|
13
14
|
wrapperProps?: IReqoreControlGroupProps;
|
|
14
|
-
onChange?: (value?: string
|
|
15
|
+
onChange?: (value?: TFormFieldValueType<'string'>, event?: ChangeEvent<HTMLInputElement>) => void;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
export const FormStringField = ({
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TFormFieldType } from '../types/Form';
|
|
2
|
+
|
|
3
|
+
// @ts-expect-error "need to implement this"
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5
|
+
export const useValidation = (value: any, type?: TFormFieldType) => {
|
|
6
|
+
// Build validation...
|
|
7
|
+
|
|
8
|
+
return true;
|
|
9
|
+
};
|
package/src/index.tsx
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { FormStringField, IStringFormFieldProps } from './components/form/string/String';
|
|
1
|
+
export { FormStringField, IStringFormFieldProps } from './components/form/fields/string/String';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export type TFormFieldType =
|
|
2
|
+
| 'string'
|
|
3
|
+
| 'number'
|
|
4
|
+
| 'boolean'
|
|
5
|
+
| 'date'
|
|
6
|
+
| 'time'
|
|
7
|
+
| 'datetime'
|
|
8
|
+
| 'select'
|
|
9
|
+
| 'multiSelect'
|
|
10
|
+
| 'radio'
|
|
11
|
+
| 'checkbox'
|
|
12
|
+
| 'file'
|
|
13
|
+
| 'image'
|
|
14
|
+
| 'color'
|
|
15
|
+
| 'password'
|
|
16
|
+
| 'email'
|
|
17
|
+
| 'phone'
|
|
18
|
+
| 'url'
|
|
19
|
+
| 'markdown';
|
|
20
|
+
|
|
21
|
+
export type TFormFieldValueType<T> = T extends 'string'
|
|
22
|
+
? string
|
|
23
|
+
: T extends 'number'
|
|
24
|
+
? number
|
|
25
|
+
: T extends 'boolean'
|
|
26
|
+
? boolean
|
|
27
|
+
: T extends 'date'
|
|
28
|
+
? Date | string
|
|
29
|
+
: T extends 'time'
|
|
30
|
+
? Date | string
|
|
31
|
+
: T extends 'datetime'
|
|
32
|
+
? Date | string
|
|
33
|
+
: T extends 'select'
|
|
34
|
+
? string
|
|
35
|
+
: T extends 'multiSelect'
|
|
36
|
+
? string[]
|
|
37
|
+
: T extends 'radio'
|
|
38
|
+
? string
|
|
39
|
+
: T extends 'checkbox'
|
|
40
|
+
? boolean
|
|
41
|
+
: T extends 'file'
|
|
42
|
+
? File
|
|
43
|
+
: T extends 'image'
|
|
44
|
+
? string
|
|
45
|
+
: T extends 'color'
|
|
46
|
+
? string
|
|
47
|
+
: T extends 'password'
|
|
48
|
+
? string
|
|
49
|
+
: T extends 'email'
|
|
50
|
+
? string
|
|
51
|
+
: T extends 'phone'
|
|
52
|
+
? string
|
|
53
|
+
: T extends 'url'
|
|
54
|
+
? string
|
|
55
|
+
: T extends 'markdown'
|
|
56
|
+
? string
|
|
57
|
+
: any;
|
package/tests.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":0,"numPassedTests":0,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":0,"numTotalTests":0,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":
|
|
1
|
+
{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":0,"numPassedTests":0,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":0,"numTotalTests":0,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1715150843374,"success":true,"testResults":[],"wasInterrupted":false}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../../src/components/form/string/String.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAe,MAAM,OAAO,CAAC;AAEjD,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,OAAO,CAAC;IAC1F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC5E;AAED,eAAO,MAAM,eAAe,qFAQzB,qBAAqB,4CA0CvB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"String.js","sourceRoot":"","sources":["../../../../src/components/form/string/String.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAsF;AAItF,+BAAiD;AAY1C,IAAM,eAAe,GAAG,UAAC,EAQR;IAPtB,IAAA,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,UAAU,gBAAA,EACV,KAAK,WAAA,EACL,qBAAqB,EAArB,aAAa,mBAAG,KAAK,KAAA,EACrB,SAAS,eAAA,EACN,IAAI,cAPuB,iFAQ/B,CADQ;IAEP,2BAA2B;IAC3B,IAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,UAAC,KAAoC;;QACpE,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,QAAQ,CAAC,MAAA,KAAK,CAAC,MAAM,CAAC,KAAK,0CAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,iCAAiC;IACjC,IAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC;QACnC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,wBAAC,2BAAkB,aACjB,KAAK,UACD,YAAY,IAChB,QAAQ,EAAE,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,KAAK,aAE9D,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CACjF,uBAAC,kBAAS,aAAC,KAAK,EAAE,KAAK,EAAE,KAAK,UAAK,UAAU,EAAI,CAClD,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,oBAAW,aACV,KAAK,QACL,OAAO,EAAE,UAAC,KAAK;;oBACb,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,qDAAG,KAAK,CAAC,CAAC;gBACzB,CAAC,EACD,OAAO,EAAE,UAAC,KAAK;;oBACb,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,qDAAG,KAAK,CAAC,CAAC;gBACzB,CAAC,EACD,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EACrC,YAAY,EAAE,gBAAgB,IAC1B,IAAI,EACR,EACD,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CACrF,uBAAC,kBAAS,aAAC,KAAK,EAAE,KAAK,EAAE,KAAK,UAAK,UAAU,EAAI,CAClD,CAAC,CAAC,CAAC,IAAI,KACW,CACtB,CAAC;AACJ,CAAC,CAAC;AAlDW,QAAA,eAAe,mBAkD1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"String.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/form/string/String.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,QAAA,MAAM,IAAI;;EAG4B,CAAC;AAEvC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AACjC,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AACF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"String.stories.js","sourceRoot":"","sources":["../../../../src/components/form/string/String.stories.tsx"],"names":[],"mappings":";;;AAEA,mCAA2C;AAE3C,IAAM,IAAI,GAAG;IACX,SAAS,EAAE,wBAAe;IAC1B,KAAK,EAAE,wBAAwB;CACK,CAAC;AAEvC,kBAAe,IAAI,CAAC;AAGP,QAAA,OAAO,GAAU,EAAE,CAAC;AACpB,QAAA,KAAK,GAAU;IAC1B,IAAI,EAAE;QACJ,KAAK,EAAE,eAAe;KACvB;CACF,CAAC;AACW,QAAA,SAAS,GAAU;IAC9B,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;KACf;CACF,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|