@daracl/form 0.0.1

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.
Files changed (57) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +146 -0
  3. package/dist/DaraForm.d.ts +129 -0
  4. package/dist/FieldInfoMap.d.ts +97 -0
  5. package/dist/FormTemplate.d.ts +60 -0
  6. package/dist/constants.d.ts +35 -0
  7. package/dist/daracl.form.js +7629 -0
  8. package/dist/daracl.form.js.map +1 -0
  9. package/dist/daracl.form.min.css +6 -0
  10. package/dist/daracl.form.min.css.map +1 -0
  11. package/dist/daracl.form.min.js +7 -0
  12. package/dist/daracl.form.min.js.LICENSE.txt +5 -0
  13. package/dist/daracl.form.min.js.map +1 -0
  14. package/dist/event/renderEvents.d.ts +6 -0
  15. package/dist/index.cjs +4540 -0
  16. package/dist/index.cjs.map +7 -0
  17. package/dist/index.css +1074 -0
  18. package/dist/index.css.map +7 -0
  19. package/dist/index.d.ts +4 -0
  20. package/dist/index.html +591 -0
  21. package/dist/index.js +4852 -0
  22. package/dist/index.js.map +7 -0
  23. package/dist/renderer/ButtonRender.d.ts +14 -0
  24. package/dist/renderer/CheckboxRender.d.ts +18 -0
  25. package/dist/renderer/CustomRender.d.ts +19 -0
  26. package/dist/renderer/DateRender.d.ts +15 -0
  27. package/dist/renderer/DropdownRender.d.ts +17 -0
  28. package/dist/renderer/FileRender.d.ts +38 -0
  29. package/dist/renderer/GridRender.d.ts +35 -0
  30. package/dist/renderer/GroupRender.d.ts +16 -0
  31. package/dist/renderer/HiddenRender.d.ts +13 -0
  32. package/dist/renderer/NumberRender.d.ts +14 -0
  33. package/dist/renderer/PasswordRender.d.ts +14 -0
  34. package/dist/renderer/RadioRender.d.ts +18 -0
  35. package/dist/renderer/RangeRender.d.ts +15 -0
  36. package/dist/renderer/Render.d.ts +43 -0
  37. package/dist/renderer/TabRender.d.ts +34 -0
  38. package/dist/renderer/TextAreaRender.d.ts +14 -0
  39. package/dist/renderer/TextRender.d.ts +14 -0
  40. package/dist/rule/fileValidator.d.ts +11 -0
  41. package/dist/rule/numberValidator.d.ts +10 -0
  42. package/dist/rule/regexpValidator.d.ts +11 -0
  43. package/dist/rule/stringValidator.d.ts +10 -0
  44. package/dist/rule/validator.d.ts +11 -0
  45. package/dist/types/DataMap.d.ts +17 -0
  46. package/dist/types/FormField.d.ts +129 -0
  47. package/dist/types/FormOptions.d.ts +91 -0
  48. package/dist/types/Message.d.ts +40 -0
  49. package/dist/types/ValidResult.d.ts +9 -0
  50. package/dist/util/Lanauage.d.ts +38 -0
  51. package/dist/util/renderFactory.d.ts +3 -0
  52. package/dist/util/styleUtils.d.ts +14 -0
  53. package/dist/util/utils.d.ts +62 -0
  54. package/dist/util/validUtils.d.ts +9 -0
  55. package/package.json +137 -0
  56. package/src/index.ts +7 -0
  57. package/style/daracl.form.scss +690 -0
@@ -0,0 +1,40 @@
1
+ export interface Message {
2
+ required: string;
3
+ fileButton: string;
4
+ selection: string;
5
+
6
+ // string
7
+ string: {
8
+ minLength: string;
9
+ maxLength: string;
10
+ between: string;
11
+ };
12
+
13
+ // number message
14
+ number: {
15
+ nan: string;
16
+ minimum: string;
17
+ exclusiveMinimum: string;
18
+ maximum: string;
19
+ exclusiveMaximum: string;
20
+ between: string;
21
+ betweenExclusiveMin: string;
22
+ betweenExclusiveMax: string;
23
+ betweenExclusiveMinMax: string;
24
+ };
25
+
26
+ // 정규식 메시지
27
+ regexp: {
28
+ mobile: string;
29
+ email: string;
30
+ url: string;
31
+ number: string;
32
+ alpha: string;
33
+ "alpha-num": string;
34
+ variable: string;
35
+ "number-char": string;
36
+ "upper-char": string;
37
+ "upper-char-special": string;
38
+ "upper-char-special-number": string;
39
+ };
40
+ }
@@ -0,0 +1,9 @@
1
+ import { RULES } from '../constants';
2
+
3
+ export interface ValidResult {
4
+ name: string
5
+ constraint: any[]
6
+ regexp?: string
7
+ validator?: any
8
+ message?: string
9
+ }
@@ -0,0 +1,38 @@
1
+ import { Message } from "@t/Message";
2
+ import { FormField } from "../types/FormField";
3
+ import { ValidResult } from "@t/ValidResult";
4
+ /**
5
+ * validation 메시지 처리.
6
+ *
7
+ * @class Language
8
+ * @typedef {Language}
9
+ */
10
+ declare class Language {
11
+ private lang;
12
+ /**
13
+ * 다국어 메시지 등록
14
+ *
15
+ * @public
16
+ * @param {?Message} [lang] 둥록할 메시지
17
+ */
18
+ set(lang?: Message): void;
19
+ /**
20
+ * 메시지 얻기
21
+ *
22
+ * @public
23
+ * @param {string} messageKey 메시지 키
24
+ * @returns {*}
25
+ */
26
+ getMessage(messageKey: string): any;
27
+ /**
28
+ * ValidResult 값을 메시지로 변경.
29
+ *
30
+ * @public
31
+ * @param {FormField} field
32
+ * @param {ValidResult} validResult
33
+ * @returns {string[]}
34
+ */
35
+ validMessage(field: FormField, validResult: ValidResult): string[];
36
+ }
37
+ declare const _default: Language;
38
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { FormField } from "@t/FormField";
2
+ import Render from "../renderer/Render";
3
+ export declare const getRenderer: (field: FormField) => Render;
@@ -0,0 +1,14 @@
1
+ import { FieldStyle, FormField } from "@t/FormField";
2
+ import { FormOptions } from "@t/FormOptions";
3
+ declare const _default: {
4
+ /**
5
+ * field style 처리
6
+ *
7
+ * @param formOptions FormOptions
8
+ * @param field FormField
9
+ * @param beforeField FormField
10
+ * @returns FieldStyle
11
+ */
12
+ fieldStyle(formOptions: FormOptions, field: FormField, beforeField?: FormField | null, isLabelHide?: boolean): FieldStyle;
13
+ };
14
+ export default _default;
@@ -0,0 +1,62 @@
1
+ import { FormField } from "@t/FormField";
2
+ export declare const replaceXss: (inputText: string) => string;
3
+ export declare const hasOwnProp: (obj: any, key: string) => boolean;
4
+ export declare const unReplace: (inputText: string) => string;
5
+ export declare const unFieldName: (fieldName: string) => string;
6
+ export declare const isBlank: (value: any) => boolean;
7
+ export declare const isUndefined: (value: any) => value is undefined;
8
+ export declare const isFunction: (value: any) => boolean;
9
+ export declare const isString: (value: any) => value is string;
10
+ export declare const isNumber: (value: any) => value is number;
11
+ export declare const isArray: (value: any) => value is any[];
12
+ /**
13
+ * 값있는지 여부 체크.
14
+ *
15
+ * @param {*} value
16
+ * @returns {boolean}
17
+ */
18
+ export declare const isEmpty: (value: any) => boolean;
19
+ /**
20
+ * tab render type check
21
+ *
22
+ * @param {FormField} field
23
+ * @returns {boolean} tab type 인지 여부
24
+ */
25
+ export declare const isTabType: (field: FormField) => boolean;
26
+ /**
27
+ * grid render type check
28
+ *
29
+ * @param {FormField} field
30
+ * @returns {boolean} grid type 인지 여부
31
+ */
32
+ export declare const isGridType: (field: FormField) => boolean;
33
+ export declare const replaceXssField: (field: FormField) => FormField;
34
+ /**
35
+ * 값을 무시하는 필드
36
+ *
37
+ * @param field formField
38
+ * @returns
39
+ */
40
+ export declare const ignoreValueField: (field: FormField) => boolean;
41
+ /**
42
+ * grid field name xss repalce
43
+ *
44
+ * @param {FormField} field
45
+ * @returns {string} replace 된 field name
46
+ */
47
+ export declare const getXssFieldName: (field: FormField) => string;
48
+ export declare const getHashCode: (str: string) => string | number;
49
+ export declare const isHiddenField: (field: FormField) => boolean;
50
+ export declare const templateToElement: (htmlTemplate: string) => Element | null;
51
+ export declare function isPlainObject(obj: any): boolean;
52
+ /**
53
+ * object merge
54
+ *
55
+ * @example
56
+ ```
57
+ merge({},{aaa:'bbb',ccc:'ddd'},{bbb:'bbb','aaa':'aaa'})) -> {"aaa": "aaa", "bbb": "bbb", "ccc": "ddd"}
58
+ ```
59
+ * @param {...any[]} value
60
+ * @returns {object}
61
+ */
62
+ export declare const merge: (...value: any[]) => any;
@@ -0,0 +1,9 @@
1
+ import { FormField } from "@t/FormField";
2
+ import { ValidResult } from "@t/ValidResult";
3
+ export declare const invalidMessage: (field: FormField, rowElement: Element, validResult: ValidResult | boolean) => void;
4
+ /**
5
+ * remove row element style class
6
+ *
7
+ * @param {Element} rowElement
8
+ */
9
+ export declare const resetRowElementStyleClass: (rowElement: Element) => void;
package/package.json ADDED
@@ -0,0 +1,137 @@
1
+ {
2
+ "name": "@daracl/form",
3
+ "version": "0.0.1",
4
+ "sideEffects": false,
5
+ "description": "Daracl form validation ",
6
+ "author": {
7
+ "name": "darainfo",
8
+ "email": "darainfosys@gmail.com",
9
+ "url": "https://www.moaview.com"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/darainfo/daracl.form.git"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public",
17
+ "registry": "https://registry.npmjs.org"
18
+ },
19
+ "license": "MIT",
20
+ "keywords": [
21
+ "@daracl/form",
22
+ "daraclValidation",
23
+ "daracl-validation",
24
+ "daraclForm",
25
+ "daracl-form",
26
+ "form",
27
+ "validation",
28
+ "darainfo",
29
+ "javascript"
30
+ ],
31
+ "main": "src/index.ts",
32
+ "types": "./dist/index.d.ts",
33
+ "homepage": "https://github.com/darainfo/daracl.form",
34
+ "bugs": {
35
+ "url": "https://github.com/darainfo/daracl.form/issues",
36
+ "email": "darainfosys@gmail.com"
37
+ },
38
+ "exports": {
39
+ ".": "./dist/index.js",
40
+ "./dist/": "./dist/",
41
+ "./style/": "./style/"
42
+ },
43
+ "files": [
44
+ "dist",
45
+ "style"
46
+ ],
47
+ "dependencies": {
48
+ "@daracl/datetimepicker": "^0.0.2",
49
+ "@daracl/toast": "^0.0.5",
50
+ "init": "^0.1.2",
51
+ "ink-docstrap": "^1.3.2",
52
+ "preact": "^10.13.2",
53
+ "tslint": "^6.1.3",
54
+ "tslint-config-prettier": "^1.18.0"
55
+ },
56
+ "prettier": {
57
+ "printWidth": 256,
58
+ "useTabs": false,
59
+ "tabWidth": 2,
60
+ "bracketSpacing": true,
61
+ "semi": true,
62
+ "singleQuote": false
63
+ },
64
+ "editor.formatOnSave": true,
65
+ "[javascript]": {
66
+ "editor.formatOnSave": false
67
+ },
68
+ "devDependencies": {
69
+ "@babel/cli": "^7.22.5",
70
+ "@babel/core": "^7.21.4",
71
+ "@babel/node": "^7.20.7",
72
+ "@babel/parser": "^7.21.4",
73
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
74
+ "@babel/plugin-transform-modules-commonjs": "^7.21.2",
75
+ "@babel/plugin-transform-runtime": "^7.21.4",
76
+ "@babel/preset-env": "^7.22.5",
77
+ "@babel/preset-typescript": "^7.21.4",
78
+ "@mxssfd/typedoc-theme": "^1.1.1",
79
+ "@types/dropzone": "^5.7.4",
80
+ "@types/file-saver": "^2.0.5",
81
+ "@types/jest": "^29.5.1",
82
+ "@types/lodash": "^4.14.194",
83
+ "@types/lodash-es": "^4.17.7",
84
+ "@types/node": "^20.1.0",
85
+ "@typescript-eslint/eslint-plugin": "^5.59.5",
86
+ "@typescript-eslint/parser": "^5.59.5",
87
+ "babel-loader": "^8.3.0",
88
+ "babel-plugin-dynamic-import-webpack": "^1.1.0",
89
+ "babel-plugin-lodash": "^3.3.4",
90
+ "copy-webpack-plugin": "^11.0.0",
91
+ "copyfiles": "^2.4.1",
92
+ "css-loader": "^6.8.1",
93
+ "css-minimizer-webpack-plugin": "^5.0.1",
94
+ "dropzone": "^6.0.0-beta.2",
95
+ "esbuild": "^0.19.2",
96
+ "esbuild-sass-plugin": "^2.12.0",
97
+ "eslint": "^8.40.0",
98
+ "eslint-config-airbnb": "^19.0.4",
99
+ "eslint-config-prettier": "^8.8.0",
100
+ "eslint-plugin-import": "^2.27.5",
101
+ "eslint-plugin-prettier": "^4.2.1",
102
+ "eslint-plugin-react": "^7.32.2",
103
+ "file-loader": "^6.2.0",
104
+ "html-webpack-plugin": "^5.5.3",
105
+ "jest": "^29.0.0",
106
+ "lodash-es": "^4.17.21",
107
+ "material-icons": "^1.13.8",
108
+ "mini-css-extract-plugin": "^2.7.6",
109
+ "prettier": "^2.8.8",
110
+ "sass-loader": "^13.3.2",
111
+ "style-loader": "^3.3.3",
112
+ "terser-webpack-plugin": "^5.3.9",
113
+ "ts-jest": "^29.1.0",
114
+ "ts-loader": "^9.4.2",
115
+ "typedoc": "^0.24.8",
116
+ "typescript": "^5.1.6",
117
+ "url-loader": "^4.1.1",
118
+ "webpack": "^5.73.0",
119
+ "webpack-bundle-analyzer": "^4.9.0",
120
+ "webpack-cli": "^4.10.0",
121
+ "webpack-dev-server": "^4.9.2",
122
+ "webpack-node-externals": "^3.0.0"
123
+ },
124
+ "scripts": {
125
+ "prepack": "yarn build",
126
+ "build": "yarn build:prod && yarn copy-dts && yarn build:tsc && yarn build:js",
127
+ "build:tsc": "npx tsc --emitDeclarationOnly",
128
+ "build:js": "node build.js",
129
+ "build:dev": "webpack --config webpack.dev.js",
130
+ "build:prod": "webpack --config webpack.prod.js && webpack --env=mode=deploy --config webpack.dev.js",
131
+ "dts:gen": "npx -p typescript tsc src/index.js --declaration --allowJs --emitDeclarationOnly --outDir dist",
132
+ "docs:gen": "typedoc --tsconfig tsconfig.doc.json",
133
+ "test": "jest",
134
+ "start": "webpack-dev-server --open --config ./webpack.dev.server.js",
135
+ "copy-dts": "copyfiles -u 1 \"src/**/*.d.ts\" dist"
136
+ }
137
+ }
package/src/index.ts ADDED
@@ -0,0 +1,7 @@
1
+ import DaraForm from "./DaraForm";
2
+
3
+ import "../style/daracl.form.scss";
4
+
5
+ import "@daracl/datetimepicker/style/daracl.datetimepicker.scss";
6
+
7
+ export = DaraForm;