dinocollab-core 1.0.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/README.md +54 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.js +431 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/dist/assets/vector-404265a04f4f9c8be1f.webp +0 -0
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js +46 -0
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/src/api-context/alert-global.js +151 -0
- package/dist/src/api-context/alert-global.js.map +1 -0
- package/dist/src/api-context/drawer-global.js +105 -0
- package/dist/src/api-context/drawer-global.js.map +1 -0
- package/dist/src/api-context/global-modal.js +87 -0
- package/dist/src/api-context/global-modal.js.map +1 -0
- package/dist/src/api-context/popover-global.js +102 -0
- package/dist/src/api-context/popover-global.js.map +1 -0
- package/dist/src/api-context/popover.js +86 -0
- package/dist/src/api-context/popover.js.map +1 -0
- package/dist/src/api-context/ui.units.js +21 -0
- package/dist/src/api-context/ui.units.js.map +1 -0
- package/dist/src/components/copy-to-clipboard.js +105 -0
- package/dist/src/components/copy-to-clipboard.js.map +1 -0
- package/dist/src/components/custom.breadcrumbs.js +61 -0
- package/dist/src/components/custom.breadcrumbs.js.map +1 -0
- package/dist/src/components/help-tooltip.js +91 -0
- package/dist/src/components/help-tooltip.js.map +1 -0
- package/dist/src/components/image-with-fallback.js +48 -0
- package/dist/src/components/image-with-fallback.js.map +1 -0
- package/dist/src/components/text-editor.js +117 -0
- package/dist/src/components/text-editor.js.map +1 -0
- package/dist/src/form/create.autocomplete.chips.js +218 -0
- package/dist/src/form/create.autocomplete.chips.js.map +1 -0
- package/dist/src/form/create.date-expired.js +201 -0
- package/dist/src/form/create.date-expired.js.map +1 -0
- package/dist/src/form/create.date-picker.js +125 -0
- package/dist/src/form/create.date-picker.js.map +1 -0
- package/dist/src/form/create.form-base.js +135 -0
- package/dist/src/form/create.form-base.js.map +1 -0
- package/dist/src/form/create.form-comfirm.js +119 -0
- package/dist/src/form/create.form-comfirm.js.map +1 -0
- package/dist/src/form/create.form-grid-layout.js +177 -0
- package/dist/src/form/create.form-grid-layout.js.map +1 -0
- package/dist/src/form/create.form-grid-layout.units.js +39 -0
- package/dist/src/form/create.form-grid-layout.units.js.map +1 -0
- package/dist/src/form/create.input-base.js +260 -0
- package/dist/src/form/create.input-base.js.map +1 -0
- package/dist/src/form/create.input.file.js +74 -0
- package/dist/src/form/create.input.file.js.map +1 -0
- package/dist/src/form/create.select-simple.js +104 -0
- package/dist/src/form/create.select-simple.js.map +1 -0
- package/dist/src/form/create.select-with-api.js +271 -0
- package/dist/src/form/create.select-with-api.js.map +1 -0
- package/dist/src/form/create.text-editor.js +156 -0
- package/dist/src/form/create.text-editor.js.map +1 -0
- package/dist/src/form/dino-form.js +42 -0
- package/dist/src/form/dino-form.js.map +1 -0
- package/dist/src/form/helper.js +157 -0
- package/dist/src/form/helper.js.map +1 -0
- package/dist/src/form/modal-wrapper.js +75 -0
- package/dist/src/form/modal-wrapper.js.map +1 -0
- package/dist/src/form/validator.js +186 -0
- package/dist/src/form/validator.js.map +1 -0
- package/dist/src/hooks/index.js +48 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/index.js +26 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/redux/create.hoc-lazy.js +67 -0
- package/dist/src/redux/create.hoc-lazy.js.map +1 -0
- package/dist/src/redux/dino.js +11 -0
- package/dist/src/redux/dino.js.map +1 -0
- package/dist/src/redux/types.js +9 -0
- package/dist/src/redux/types.js.map +1 -0
- package/dist/src/redux/ui.error-page.js +80 -0
- package/dist/src/redux/ui.error-page.js.map +1 -0
- package/dist/src/redux/vector-404.webp.js +4 -0
- package/dist/src/redux/vector-404.webp.js.map +1 -0
- package/dist/src/table/context.js +12 -0
- package/dist/src/table/context.js.map +1 -0
- package/dist/src/table/create.action-row.js +135 -0
- package/dist/src/table/create.action-row.js.map +1 -0
- package/dist/src/table/create.status-cell.js +49 -0
- package/dist/src/table/create.status-cell.js.map +1 -0
- package/dist/src/table/create.table.js +233 -0
- package/dist/src/table/create.table.js.map +1 -0
- package/dist/src/table/custom.filter-operators.js +89 -0
- package/dist/src/table/custom.filter-operators.js.map +1 -0
- package/dist/src/table/dino.js +129 -0
- package/dist/src/table/dino.js.map +1 -0
- package/dist/src/table/helpers.js +116 -0
- package/dist/src/table/helpers.js.map +1 -0
- package/dist/src/table/model-filter.js +23 -0
- package/dist/src/table/model-filter.js.map +1 -0
- package/dist/src/table/toolbar-pannel.js +134 -0
- package/dist/src/table/toolbar-pannel.js.map +1 -0
- package/dist/src/table/ui.buttons.js +60 -0
- package/dist/src/table/ui.buttons.js.map +1 -0
- package/dist/src/table/ui.units.js +201 -0
- package/dist/src/table/ui.units.js.map +1 -0
- package/dist/src/utils/dayjs-config.js +12 -0
- package/dist/src/utils/dayjs-config.js.map +1 -0
- package/dist/src/utils/helpers.js +197 -0
- package/dist/src/utils/helpers.js.map +1 -0
- package/dist/src/utils/json-object.js +38 -0
- package/dist/src/utils/json-object.js.map +1 -0
- package/dist/src/utils/query-param.js +172 -0
- package/dist/src/utils/query-param.js.map +1 -0
- package/package.json +52 -0
- package/rollup.config.js +39 -0
- package/src/@types/global.d.ts +5 -0
- package/src/api-context/alert-global.tsx +174 -0
- package/src/api-context/drawer-global.tsx +116 -0
- package/src/api-context/global-modal.tsx +109 -0
- package/src/api-context/index.ts +13 -0
- package/src/api-context/popover-global.tsx +107 -0
- package/src/api-context/popover.tsx +89 -0
- package/src/api-context/ui.units.tsx +10 -0
- package/src/components/copy-to-clipboard.tsx +86 -0
- package/src/components/custom.breadcrumbs.tsx +67 -0
- package/src/components/help-tooltip.tsx +75 -0
- package/src/components/image-with-fallback.tsx +51 -0
- package/src/components/index.tsx +1 -0
- package/src/components/input-debounce-timer.tsx +138 -0
- package/src/components/loading-buttons.tsx +35 -0
- package/src/components/text-editor.preview.tsx +30 -0
- package/src/components/text-editor.tsx +125 -0
- package/src/form/README.md +55 -0
- package/src/form/create.autocomplete.chips.tsx +199 -0
- package/src/form/create.date-expired.tsx +195 -0
- package/src/form/create.date-picker.tsx +122 -0
- package/src/form/create.form-base.tsx +102 -0
- package/src/form/create.form-comfirm.tsx +83 -0
- package/src/form/create.form-grid-layout.tsx +170 -0
- package/src/form/create.form-grid-layout.units.tsx +37 -0
- package/src/form/create.input-base.tsx +222 -0
- package/src/form/create.input.file.tsx +76 -0
- package/src/form/create.select-simple.tsx +101 -0
- package/src/form/create.select-with-api.tsx +213 -0
- package/src/form/create.text-editor.tsx +161 -0
- package/src/form/dino-form.tsx +40 -0
- package/src/form/helper.ts +132 -0
- package/src/form/index.ts +12 -0
- package/src/form/modal-wrapper.tsx +75 -0
- package/src/form/types.ts +16 -0
- package/src/form/validator.ts +202 -0
- package/src/hooks/index.ts +44 -0
- package/src/index.ts +7 -0
- package/src/lab/create.autocomplete.simple.tsx +57 -0
- package/src/lab/create.dino-store.ts +59 -0
- package/src/lab/create.multi-select-dropdown.tsx +189 -0
- package/src/lab/create.select-mul-with-api/index.tsx +271 -0
- package/src/lab/create.select-mul-with-api/table-custom.tsx +194 -0
- package/src/lab/create.select-mul-with-api/types.ts +26 -0
- package/src/lab/create.select-mul-with-api/ui.units.tsx +163 -0
- package/src/lab/filter-bar/base.tsx +162 -0
- package/src/lab/filter-bar/create.filter-bar.tsx +190 -0
- package/src/lab/filter-bar/create.filter-menu.tsx +156 -0
- package/src/lab/filter-bar/create.filter-panel.tsx +95 -0
- package/src/lab/filter-bar/create.filtered.tsx +41 -0
- package/src/lab/filter-bar/create.sort-menu.tsx +43 -0
- package/src/lab/filter-bar/demo.tsx +50 -0
- package/src/lab/filter-bar/index.ts +6 -0
- package/src/lab/filter-bar/types.ts +105 -0
- package/src/lab/filter-bar/ui.units.tsx +70 -0
- package/src/lab/grafana-dashboard/configs.ts +43 -0
- package/src/lab/grafana-dashboard/date-time-range/absolute-time-rage.tsx +137 -0
- package/src/lab/grafana-dashboard/date-time-range/helpers.ts +126 -0
- package/src/lab/grafana-dashboard/date-time-range/index.tsx +62 -0
- package/src/lab/grafana-dashboard/date-time-range/menu-wrap.tsx +101 -0
- package/src/lab/grafana-dashboard/date-time-range/quick-ranges.tsx +161 -0
- package/src/lab/grafana-dashboard/date-time-range/types.ts +9 -0
- package/src/lab/grafana-dashboard/date-time-range/units.tsx +18 -0
- package/src/lab/grafana-dashboard/helper.ts +25 -0
- package/src/lab/grafana-dashboard/hooks.tsx +79 -0
- package/src/lab/grafana-dashboard/icons.tsx +67 -0
- package/src/lab/grafana-dashboard/index.tsx +120 -0
- package/src/lab/grafana-dashboard/top-bar.tsx +62 -0
- package/src/lab/grafana-dashboard/top-bar.types.ts +5 -0
- package/src/lab/grafana-dashboard/types.ts +8 -0
- package/src/lab/media-player.core1.tsx +273 -0
- package/src/lab/media-player.muted.tsx +62 -0
- package/src/lab/media-player.units.ts +80 -0
- package/src/lab/table-grid/create.table-grid.tsx +183 -0
- package/src/lab/table-grid/demo.tsx +53 -0
- package/src/lab/table-grid/dino.tsx +8 -0
- package/src/lab/table-grid/helpers.tsx +11 -0
- package/src/lab/table-grid/index.ts +3 -0
- package/src/lab/table-grid/item-actions.tsx +138 -0
- package/src/lab/table-grid/toolbar-pannel.tsx +98 -0
- package/src/lab/table-grid/types.ts +68 -0
- package/src/redux/create.hoc-lazy.tsx +80 -0
- package/src/redux/dino.ts +9 -0
- package/src/redux/index.ts +6 -0
- package/src/redux/types.ts +27 -0
- package/src/redux/ui.error-page.tsx +62 -0
- package/src/redux/ui.units.tsx +41 -0
- package/src/redux/vector-404.webp +0 -0
- package/src/table/context.tsx +16 -0
- package/src/table/create.action-row.tsx +91 -0
- package/src/table/create.status-cell.tsx +51 -0
- package/src/table/create.table.tsx +239 -0
- package/src/table/custom.filter-operators.ts +94 -0
- package/src/table/dino.tsx +120 -0
- package/src/table/helpers.ts +94 -0
- package/src/table/index.ts +13 -0
- package/src/table/model-filter.ts +43 -0
- package/src/table/toolbar-pannel.tsx +106 -0
- package/src/table/types.ts +50 -0
- package/src/table/ui.buttons.tsx +54 -0
- package/src/table/ui.units.tsx +189 -0
- package/src/utils/dayjs-config.ts +13 -0
- package/src/utils/helpers.ts +171 -0
- package/src/utils/index.ts +7 -0
- package/src/utils/json-object.ts +29 -0
- package/src/utils/mfe-events.tsx +34 -0
- package/src/utils/query-param.ts +129 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { toConsumableArray as _toConsumableArray, typeof as _typeof } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import FormValidator from './validator.js';
|
|
3
|
+
|
|
4
|
+
var ObjectAssign = function ObjectAssign(model) {
|
|
5
|
+
for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
6
|
+
sources[_key - 1] = arguments[_key];
|
|
7
|
+
}
|
|
8
|
+
if (sources.length < 1) {
|
|
9
|
+
return model;
|
|
10
|
+
}
|
|
11
|
+
var temps = sources.filter(function (x) {
|
|
12
|
+
return x;
|
|
13
|
+
});
|
|
14
|
+
return temps.reduce(function (a, b) {
|
|
15
|
+
a = Object.assign(a, b);
|
|
16
|
+
return a;
|
|
17
|
+
}, model);
|
|
18
|
+
};
|
|
19
|
+
var _DeepMerge = function DeepMerge(model) {
|
|
20
|
+
for (var _len2 = arguments.length, sources = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
21
|
+
sources[_key2 - 1] = arguments[_key2];
|
|
22
|
+
}
|
|
23
|
+
sources = sources.filter(function (x) {
|
|
24
|
+
return !!x;
|
|
25
|
+
});
|
|
26
|
+
if (sources.length < 1) {
|
|
27
|
+
return model;
|
|
28
|
+
}
|
|
29
|
+
var temps = [model].concat(_toConsumableArray(sources)).filter(function (x) {
|
|
30
|
+
return x;
|
|
31
|
+
});
|
|
32
|
+
var fieldObjects = temps.reduce(function (a, b) {
|
|
33
|
+
if (!b) return a;
|
|
34
|
+
var fields = Object.keys(b).filter(function (x) {
|
|
35
|
+
return _typeof(b[x]) === 'object' && !Array.isArray(b[x]);
|
|
36
|
+
});
|
|
37
|
+
a.push.apply(a, _toConsumableArray(fields));
|
|
38
|
+
return a;
|
|
39
|
+
}, []);
|
|
40
|
+
var target = ObjectAssign.apply(void 0, [model].concat(_toConsumableArray(temps.slice(1))));
|
|
41
|
+
var temp = target;
|
|
42
|
+
var temp2 = temps.slice(1).filter(function (x) {
|
|
43
|
+
return !!x;
|
|
44
|
+
});
|
|
45
|
+
var _loop = function _loop() {
|
|
46
|
+
var element = fieldObjects[index];
|
|
47
|
+
temp[element] = _DeepMerge.apply(void 0, [{}, temp[element]].concat(_toConsumableArray(temp2.map(function (x) {
|
|
48
|
+
return x[element];
|
|
49
|
+
}))));
|
|
50
|
+
};
|
|
51
|
+
for (var index = 0; index < fieldObjects.length; index++) {
|
|
52
|
+
_loop();
|
|
53
|
+
}
|
|
54
|
+
return target;
|
|
55
|
+
};
|
|
56
|
+
var getErrorMessage = function getErrorMessage(MessageErrors, key) {
|
|
57
|
+
return MessageErrors && MessageErrors[key] ? Object.assign(Object.assign({}, MessageErrors[key][0]), {
|
|
58
|
+
error: true
|
|
59
|
+
}) : {
|
|
60
|
+
error: false,
|
|
61
|
+
message: ''
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
var convertFormDataToJson = function convertFormDataToJson(form) {
|
|
65
|
+
var data = Array.from(form).reduce(function (a, b) {
|
|
66
|
+
if (!a[b[0]]) {
|
|
67
|
+
a[b[0]] = b[1];
|
|
68
|
+
} else if (Array.isArray(a[b[0]])) {
|
|
69
|
+
a[b[0]].push(b[1]);
|
|
70
|
+
} else {
|
|
71
|
+
a[b[0]] = [a[b[0]], b[1]];
|
|
72
|
+
}
|
|
73
|
+
return a;
|
|
74
|
+
}, {});
|
|
75
|
+
Object.keys(data).forEach(function (key) {
|
|
76
|
+
var value = data[key];
|
|
77
|
+
if (typeof value === 'string' && (value.toString().toLocaleLowerCase() === 'true' || value.toString().toLocaleLowerCase() === 'false')) {
|
|
78
|
+
data[key] = value.toString().toLocaleLowerCase() === 'true';
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return data;
|
|
82
|
+
};
|
|
83
|
+
var SingleValidate = function SingleValidate(key, modelState, MessageErrors, Validator) {
|
|
84
|
+
var messageErrors = Validator.run(modelState);
|
|
85
|
+
if (messageErrors) {
|
|
86
|
+
var errors = MessageErrors || {};
|
|
87
|
+
var keys = Object.keys(modelState).filter(function (key) {
|
|
88
|
+
return !!modelState[key];
|
|
89
|
+
}).filter(function (key) {
|
|
90
|
+
return modelState[key] instanceof File ? !!modelState[key].size : false;
|
|
91
|
+
});
|
|
92
|
+
keys.push(key);
|
|
93
|
+
keys.forEach(function (key) {
|
|
94
|
+
if (messageErrors[key]) {
|
|
95
|
+
errors[key] = messageErrors[key];
|
|
96
|
+
} else {
|
|
97
|
+
delete errors[key];
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
return errors;
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
};
|
|
104
|
+
var GetErrorFromResponse = function GetErrorFromResponse(error, ModelRender) {
|
|
105
|
+
var _a;
|
|
106
|
+
var data = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data;
|
|
107
|
+
if (data) {
|
|
108
|
+
var keys = Object.keys(ModelRender);
|
|
109
|
+
var MessageErrors = {};
|
|
110
|
+
keys.forEach(function (key) {
|
|
111
|
+
var messages = data[key];
|
|
112
|
+
if (Array.isArray(messages) && messages.length > 0) {
|
|
113
|
+
MessageErrors[key] = [{
|
|
114
|
+
message: messages[0]
|
|
115
|
+
}];
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return MessageErrors;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
var ValidateMerge = function ValidateMerge() {
|
|
122
|
+
for (var _len3 = arguments.length, validateor = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
123
|
+
validateor[_key3] = arguments[_key3];
|
|
124
|
+
}
|
|
125
|
+
var configs = validateor.map(function (x) {
|
|
126
|
+
return x === null || x === void 0 ? void 0 : x.configs;
|
|
127
|
+
}).filter(function (x) {
|
|
128
|
+
return !!x;
|
|
129
|
+
});
|
|
130
|
+
var temp = Object.assign.apply(Object, [{}].concat(_toConsumableArray(configs)));
|
|
131
|
+
var _loop2 = function _loop2() {
|
|
132
|
+
var key = Object.keys(temp)[index];
|
|
133
|
+
//merge configs
|
|
134
|
+
temp[key] = _DeepMerge.apply(void 0, [{}].concat(_toConsumableArray(configs.map(function (x) {
|
|
135
|
+
return x ? x[key] : {
|
|
136
|
+
Rules: []
|
|
137
|
+
};
|
|
138
|
+
}))));
|
|
139
|
+
//merge rules
|
|
140
|
+
temp[key].Rules = configs.map(function (x) {
|
|
141
|
+
return x ? x[key] : {
|
|
142
|
+
Rules: []
|
|
143
|
+
};
|
|
144
|
+
}).reduce(function (a, b) {
|
|
145
|
+
var _a;
|
|
146
|
+
a.push.apply(a, _toConsumableArray((_a = b === null || b === void 0 ? void 0 : b.Rules) !== null && _a !== void 0 ? _a : []));
|
|
147
|
+
return a;
|
|
148
|
+
}, []);
|
|
149
|
+
};
|
|
150
|
+
for (var index = 0; index < Object.keys(temp).length; index++) {
|
|
151
|
+
_loop2();
|
|
152
|
+
}
|
|
153
|
+
return new FormValidator(temp);
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export { GetErrorFromResponse, SingleValidate, ValidateMerge, convertFormDataToJson, getErrorMessage };
|
|
157
|
+
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.js","sources":["../../../src/form/helper.ts"],"sourcesContent":["import { AxiosError } from 'axios'\r\nimport FormValidator, { IModelError, IRuleOption, PartialError } from './validator'\r\n\r\ntype AnyObject = { [key: string]: any }\r\nconst ObjectAssign = <T extends AnyObject>(model: T, ...sources: (Partial<T> | undefined)[]) => {\r\n if (sources.length < 1) {\r\n return model\r\n }\r\n const temps = sources.filter((x) => x) as T[]\r\n return temps.reduce((a, b) => {\r\n a = Object.assign(a, b)\r\n return a\r\n }, model)\r\n}\r\n\r\nconst DeepMerge = <T extends AnyObject>(model: T, ...sources: (Partial<T> | undefined)[]) => {\r\n sources = sources.filter((x) => !!x)\r\n if (sources.length < 1) {\r\n return model\r\n }\r\n const temps = [model, ...sources].filter((x) => x)\r\n const fieldObjects = temps.reduce<string[]>((a, b) => {\r\n if (!b) return a\r\n const fields = Object.keys(b).filter((x) => typeof b[x] === 'object' && !Array.isArray(b[x]))\r\n a.push(...fields)\r\n return a\r\n }, [])\r\n\r\n const target = ObjectAssign<T>(model, ...temps.slice(1))\r\n const temp = target as any\r\n const temp2 = temps.slice(1).filter((x) => !!x) as Partial<T>[]\r\n for (let index = 0; index < fieldObjects.length; index++) {\r\n const element = fieldObjects[index]\r\n temp[element] = DeepMerge({}, temp[element], ...temp2.map((x) => x[element]))\r\n }\r\n return target\r\n}\r\n\r\nexport const getErrorMessage = function <TModel>(MessageErrors: PartialError<TModel> | undefined, key?: keyof TModel): IModelError {\r\n return MessageErrors && (MessageErrors as any)[key] ? { ...(MessageErrors as any)[key][0], error: true } : { error: false, message: '' }\r\n}\r\n\r\ntype ModelBase = {\r\n [key: string]: any\r\n}\r\n\r\nexport const convertFormDataToJson = function <TModel>(form: FormData): Partial<TModel> {\r\n const data = Array.from(form).reduce<Partial<TModel>>((a: any, b: any[]) => {\r\n if (!a[b[0]]) {\r\n a[b[0]] = b[1]\r\n } else if (Array.isArray(a[b[0]])) {\r\n a[b[0]].push(b[1])\r\n } else {\r\n a[b[0]] = [a[b[0]], b[1]]\r\n }\r\n return a\r\n }, {} as any) as any\r\n\r\n Object.keys(data).forEach((key) => {\r\n const value = data[key]\r\n if (typeof value === 'string' && (value.toString().toLocaleLowerCase() === 'true' || value.toString().toLocaleLowerCase() === 'false')) {\r\n data[key] = value.toString().toLocaleLowerCase() === 'true'\r\n }\r\n })\r\n return data\r\n}\r\n\r\nexport const SingleValidate = function <TModel, TPartial = TModel>(\r\n key: keyof TModel,\r\n modelState: TPartial,\r\n MessageErrors: PartialError<TModel>,\r\n Validator: FormValidator<TPartial>\r\n) {\r\n const messageErrors = Validator.run(modelState) as { [key: string]: any }\r\n if (messageErrors) {\r\n let errors = (MessageErrors || {}) as { [key: string]: any }\r\n const keys = Object.keys(modelState as any)\r\n .filter((key) => !!(modelState as any)[key])\r\n .filter((key) => ((modelState as any)[key] instanceof File ? !!((modelState as any)[key] as File).size : false))\r\n keys.push(key as string)\r\n keys.forEach((key) => {\r\n if (messageErrors[key]) {\r\n errors[key] = messageErrors[key]\r\n } else {\r\n delete errors[key]\r\n }\r\n })\r\n return errors\r\n }\r\n return null\r\n}\r\n\r\nexport const GetErrorFromResponse = function <TModel>(error: AxiosError, ModelRender: TModel) {\r\n const data = error.response?.data as any\r\n if (data) {\r\n const keys = Object.keys(ModelRender as any)\r\n const MessageErrors: PartialError<TModel> | undefined = {}\r\n keys.forEach((key) => {\r\n const messages = data[key]\r\n if (Array.isArray(messages) && messages.length > 0) {\r\n ;(MessageErrors as any)[key] = [{ message: messages[0] }]\r\n }\r\n })\r\n return MessageErrors\r\n }\r\n}\r\n\r\nexport const ClearFieldEmpty = <TModel>(model: Extract<TModel, ModelBase>) => {\r\n Object.keys(model).forEach((key: keyof Extract<TModel, ModelBase>) => {\r\n if (!model[key]) delete model[key]\r\n })\r\n}\r\n\r\nexport const ValidateMerge = <TModel>(...validateor: (FormValidator<TModel> | undefined)[]): FormValidator<TModel> => {\r\n const configs = validateor.map((x) => x?.configs).filter((x) => !!x)\r\n\r\n let temp: any = Object.assign({}, ...configs)\r\n\r\n for (let index = 0; index < Object.keys(temp).length; index++) {\r\n const key = Object.keys(temp)[index]\r\n //merge configs\r\n temp[key] = DeepMerge({}, ...configs.map((x) => (x ? x[key] : { Rules: [] })))\r\n //merge rules\r\n temp[key].Rules = configs\r\n .map((x) => (x ? x[key] : { Rules: [] }))\r\n .reduce<IRuleOption<TModel>[]>((a, b) => {\r\n a.push(...(b?.Rules ?? []))\r\n return a\r\n }, [])\r\n }\r\n return new FormValidator(temp)\r\n}\r\n"],"names":["ObjectAssign","model","_len","arguments","length","sources","Array","_key","temps","filter","x","reduce","a","b","Object","assign","DeepMerge","_len2","_key2","concat","_toConsumableArray","fieldObjects","fields","keys","_typeof","isArray","push","apply","target","slice","temp","temp2","_loop","element","index","map","getErrorMessage","MessageErrors","key","error","message","convertFormDataToJson","form","data","from","forEach","value","toString","toLocaleLowerCase","SingleValidate","modelState","Validator","messageErrors","run","errors","File","size","GetErrorFromResponse","ModelRender","_a","response","messages","ValidateMerge","_len3","validateor","_key3","configs","_loop2","Rules","FormValidator"],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { defineProperty as _defineProperty } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { styled, Paper, IconButton, Box, Typography } from '@mui/material';
|
|
4
|
+
import CloseIcon from '@mui/icons-material/Close';
|
|
5
|
+
import '../api-context/alert-global.js';
|
|
6
|
+
import '../api-context/drawer-global.js';
|
|
7
|
+
import { MapGlobalModalContext } from '../api-context/global-modal.js';
|
|
8
|
+
|
|
9
|
+
var FormModalWrapper = function FormModalWrapper(props) {
|
|
10
|
+
return MapGlobalModalContext(function (context) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
return /*#__PURE__*/React.createElement(Wrap, {
|
|
13
|
+
size: props.size,
|
|
14
|
+
className: props.fullHeight ? 'full-height' : undefined
|
|
15
|
+
}, /*#__PURE__*/React.createElement(TopBar, {
|
|
16
|
+
sx: (_a = props.slots) === null || _a === void 0 ? void 0 : _a.sxTopbarProps
|
|
17
|
+
}, ((_b = props.slots) === null || _b === void 0 ? void 0 : _b.beforeTitle) && /*#__PURE__*/React.createElement(React.Fragment, null, props.slots.beforeTitle, /*#__PURE__*/React.createElement(Box, {
|
|
18
|
+
flex: 1
|
|
19
|
+
})), /*#__PURE__*/React.createElement(Typography, {
|
|
20
|
+
component: "h3",
|
|
21
|
+
variant: "subtitle1",
|
|
22
|
+
sx: {
|
|
23
|
+
mt: '2px',
|
|
24
|
+
ml: '8px',
|
|
25
|
+
fontWeight: 700
|
|
26
|
+
}
|
|
27
|
+
}, props.title), /*#__PURE__*/React.createElement(Box, {
|
|
28
|
+
flex: 1
|
|
29
|
+
}), /*#__PURE__*/React.createElement(BtnClose, {
|
|
30
|
+
onClick: function onClick() {
|
|
31
|
+
props.onCloseClick && props.onCloseClick();
|
|
32
|
+
context.close();
|
|
33
|
+
}
|
|
34
|
+
}, /*#__PURE__*/React.createElement(CloseIcon, null))), props.children);
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
var Wrap = styled(Paper)(function (_ref) {
|
|
38
|
+
var theme = _ref.theme,
|
|
39
|
+
size = _ref.size;
|
|
40
|
+
return _defineProperty(_defineProperty({
|
|
41
|
+
maxHeight: 'calc(100vh - 24px)',
|
|
42
|
+
overflow: 'hidden',
|
|
43
|
+
display: 'flex',
|
|
44
|
+
flexDirection: 'column',
|
|
45
|
+
position: 'relative',
|
|
46
|
+
maxWidth: 'calc(100vw - 24px)',
|
|
47
|
+
width: theme.breakpoints.values[size !== null && size !== void 0 ? size : 'lg']
|
|
48
|
+
}, theme.breakpoints.down('sm'), {
|
|
49
|
+
width: 'calc(100vw - 24px)'
|
|
50
|
+
}), '&.full-height', {
|
|
51
|
+
height: 'calc(100vh - 24px)'
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
var BtnClose = styled(IconButton)({
|
|
55
|
+
flex: '0 0 auto',
|
|
56
|
+
color: '#3c3c3c',
|
|
57
|
+
'& svg': {
|
|
58
|
+
transition: 'all 0.2s'
|
|
59
|
+
},
|
|
60
|
+
'&:hover svg': {
|
|
61
|
+
color: '#ff200c'
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
var TopBar = styled(Box)({
|
|
65
|
+
display: 'flex',
|
|
66
|
+
alignItems: 'center',
|
|
67
|
+
padding: '0 8px 0 8px',
|
|
68
|
+
gap: '6px',
|
|
69
|
+
flex: '0 0 auto',
|
|
70
|
+
boxShadow: 'rgba(145, 158, 171, 0.1) 0px 0px 2px 0px,rgba(145, 158, 171, 0.12) 0px 0px 24px -4px',
|
|
71
|
+
height: '48px'
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
export { FormModalWrapper as default };
|
|
75
|
+
//# sourceMappingURL=modal-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal-wrapper.js","sources":["../../../src/form/modal-wrapper.tsx"],"sourcesContent":["import React, { FC, PropsWithChildren } from 'react'\r\nimport { Box, Breakpoint, IconButton, Paper, styled, SxProps, Theme, Typography } from '@mui/material'\r\nimport CloseIcon from '@mui/icons-material/Close'\r\nimport { MapGlobalModalContext } from '../api-context'\r\n\r\ninterface IProps extends PropsWithChildren {\r\n title: string\r\n size?: Breakpoint\r\n fullHeight?: boolean\r\n onCloseClick?: () => void\r\n slots?: {\r\n sxTopbarProps?: SxProps<Theme>\r\n beforeTitle?: JSX.Element\r\n }\r\n}\r\nconst FormModalWrapper: FC<IProps> = (props) => {\r\n return MapGlobalModalContext((context) => (\r\n <Wrap size={props.size} className={props.fullHeight ? 'full-height' : undefined}>\r\n <TopBar sx={props.slots?.sxTopbarProps}>\r\n {props.slots?.beforeTitle && (\r\n <>\r\n {props.slots.beforeTitle}\r\n <Box flex={1} />\r\n </>\r\n )}\r\n <Typography component='h3' variant='subtitle1' sx={{ mt: '2px', ml: '8px', fontWeight: 700 }}>\r\n {props.title}\r\n </Typography>\r\n <Box flex={1} />\r\n <BtnClose\r\n onClick={() => {\r\n props.onCloseClick && props.onCloseClick()\r\n context.close()\r\n }}\r\n >\r\n <CloseIcon />\r\n </BtnClose>\r\n </TopBar>\r\n {props.children}\r\n </Wrap>\r\n ))\r\n}\r\n\r\nexport default FormModalWrapper\r\n\r\nconst Wrap = styled(Paper)<{ size?: Breakpoint }>(({ theme, size }) => ({\r\n maxHeight: 'calc(100vh - 24px)',\r\n overflow: 'hidden',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n position: 'relative',\r\n maxWidth: 'calc(100vw - 24px)',\r\n width: theme.breakpoints.values[size ?? 'lg'],\r\n [theme.breakpoints.down('sm')]: { width: 'calc(100vw - 24px)' },\r\n '&.full-height': {\r\n height: 'calc(100vh - 24px)'\r\n }\r\n}))\r\n\r\nconst BtnClose = styled(IconButton)({\r\n flex: '0 0 auto',\r\n color: '#3c3c3c',\r\n '& svg': { transition: 'all 0.2s' },\r\n '&:hover svg': { color: '#ff200c' }\r\n})\r\n\r\nconst TopBar = styled(Box)({\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '0 8px 0 8px',\r\n gap: '6px',\r\n flex: '0 0 auto',\r\n boxShadow: 'rgba(145, 158, 171, 0.1) 0px 0px 2px 0px,rgba(145, 158, 171, 0.12) 0px 0px 24px -4px',\r\n height: '48px'\r\n})\r\n"],"names":["FormModalWrapper","props","MapGlobalModalContext","context","React","createElement","Wrap","size","className","fullHeight","undefined","TopBar","sx","_a","slots","sxTopbarProps","_b","beforeTitle","Fragment","Box","flex","Typography","component","variant","mt","ml","fontWeight","title","BtnClose","onClick","onCloseClick","close","CloseIcon","children","styled","Paper","_ref","theme","_defineProperty","maxHeight","overflow","display","flexDirection","position","maxWidth","width","breakpoints","values","down","height","IconButton","color","transition","alignItems","padding","gap","boxShadow"],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { createClass as _createClass, classCallCheck as _classCallCheck } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { formatFileSize } from '../utils/helpers.js';
|
|
3
|
+
import '../utils/query-param.js';
|
|
4
|
+
import '../utils/dayjs-config.js';
|
|
5
|
+
|
|
6
|
+
var SingleRuleValidate;
|
|
7
|
+
(function (SingleRuleValidate) {
|
|
8
|
+
SingleRuleValidate["Required"] = "Required";
|
|
9
|
+
SingleRuleValidate["Regex"] = "Regex";
|
|
10
|
+
SingleRuleValidate["RequiredValue"] = "RequiredValue";
|
|
11
|
+
SingleRuleValidate["Array"] = "Array";
|
|
12
|
+
SingleRuleValidate["Number"] = "Number";
|
|
13
|
+
SingleRuleValidate["Email"] = "Email";
|
|
14
|
+
SingleRuleValidate["PhoneNumber"] = "PhoneNumber";
|
|
15
|
+
SingleRuleValidate["Url"] = "Url";
|
|
16
|
+
SingleRuleValidate["File"] = "File";
|
|
17
|
+
SingleRuleValidate["FileRequired"] = "FileRequired";
|
|
18
|
+
SingleRuleValidate["Custom"] = "Custom";
|
|
19
|
+
})(SingleRuleValidate || (SingleRuleValidate = {}));
|
|
20
|
+
var MessageDefault = {
|
|
21
|
+
Required: 'The {0} is required',
|
|
22
|
+
Regex: 'The {0} is not match {1}',
|
|
23
|
+
RequiredValue: 'the {0} is not equal {1}',
|
|
24
|
+
Array: 'The {0} is not valid',
|
|
25
|
+
Number: '{0} must be a number',
|
|
26
|
+
Email: 'The {0} is not valid',
|
|
27
|
+
PhoneNumber: 'The {0} is not valid',
|
|
28
|
+
Url: 'The {0} is not valid',
|
|
29
|
+
File: 'File size must be less than {1}',
|
|
30
|
+
FileRequired: 'The {0} is required',
|
|
31
|
+
Custom: 'Error Custom'
|
|
32
|
+
};
|
|
33
|
+
var MapRuleOptions = function MapRuleOptions(key, options) {
|
|
34
|
+
return options;
|
|
35
|
+
};
|
|
36
|
+
var FormValidator = /*#__PURE__*/_createClass(function FormValidator(configs) {
|
|
37
|
+
var _this = this;
|
|
38
|
+
_classCallCheck(this, FormValidator);
|
|
39
|
+
this.AddRules = function (key) {
|
|
40
|
+
var _fieldConfig$Rules;
|
|
41
|
+
var fieldConfig = _this.configs[key];
|
|
42
|
+
if (!fieldConfig) {
|
|
43
|
+
fieldConfig = {
|
|
44
|
+
Rules: []
|
|
45
|
+
};
|
|
46
|
+
_this.configs[key] = fieldConfig;
|
|
47
|
+
}
|
|
48
|
+
for (var _len = arguments.length, rule = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
49
|
+
rule[_key - 1] = arguments[_key];
|
|
50
|
+
}
|
|
51
|
+
(_fieldConfig$Rules = fieldConfig.Rules).push.apply(_fieldConfig$Rules, rule);
|
|
52
|
+
return _this;
|
|
53
|
+
};
|
|
54
|
+
this.Required = function (RuleOption, value) {
|
|
55
|
+
return value === null || value === undefined || value === '';
|
|
56
|
+
};
|
|
57
|
+
this.Regex = function (RuleOption, value, Regex) {
|
|
58
|
+
if (!value) return false;
|
|
59
|
+
return !RuleOption.Value.test(value);
|
|
60
|
+
};
|
|
61
|
+
this.RequiredValue = function (RuleOption, value) {
|
|
62
|
+
if (!value) return false;
|
|
63
|
+
return value !== RuleOption.Value;
|
|
64
|
+
};
|
|
65
|
+
this.Custom = function (RuleOption, value, model) {
|
|
66
|
+
if (typeof RuleOption.Value === 'function') {
|
|
67
|
+
return RuleOption.Value(value, model);
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
};
|
|
71
|
+
this.Array = function (RuleOption, value) {
|
|
72
|
+
if (!value) return false;
|
|
73
|
+
if (typeof RuleOption.Value === 'number') {
|
|
74
|
+
return Array.isArray(value) ? value.length <= RuleOption.Value : true;
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
};
|
|
78
|
+
this.Number = function (RuleOption, value) {
|
|
79
|
+
if (!value) return false;
|
|
80
|
+
return isNaN(Number(value));
|
|
81
|
+
};
|
|
82
|
+
this.Email = function (RuleOption, value) {
|
|
83
|
+
if (!value) return false;
|
|
84
|
+
var regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
|
|
85
|
+
return !regex.test(value);
|
|
86
|
+
};
|
|
87
|
+
this.PhoneNumber = function (RuleOption, value) {
|
|
88
|
+
if (!value) return false;
|
|
89
|
+
var phoneRegex = /^(\+?\d{1,4}[\s-]?)?((\(\d{1,4}\))|\d{1,4})[\s-]?\d{1,4}[\s-]?\d{1,9}$/;
|
|
90
|
+
return !phoneRegex.test((value !== null && value !== void 0 ? value : '').trim());
|
|
91
|
+
};
|
|
92
|
+
this.Url = function (RuleOption, value) {
|
|
93
|
+
if (!value) return false;
|
|
94
|
+
try {
|
|
95
|
+
new URL(value);
|
|
96
|
+
return false;
|
|
97
|
+
} catch (err) {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
this.File = function (RuleOption, value) {
|
|
102
|
+
if (!value) return false;
|
|
103
|
+
var options = MapRuleOptions('File', RuleOption.options);
|
|
104
|
+
var files = Array.isArray(value) ? value : [value];
|
|
105
|
+
if (!options) return false;
|
|
106
|
+
if (options.all === true) {
|
|
107
|
+
var size = files.reduce(function (a, b) {
|
|
108
|
+
a += b.size;
|
|
109
|
+
return a;
|
|
110
|
+
}, 0);
|
|
111
|
+
return size > options.maxSize;
|
|
112
|
+
} else {
|
|
113
|
+
return files.some(function (x) {
|
|
114
|
+
return x.size > options.maxSize;
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
this.FileRequired = function (RuleOption, value) {
|
|
119
|
+
var files = Array.isArray(value) ? value : [value];
|
|
120
|
+
return !!files.filter(function (x) {
|
|
121
|
+
return !!x;
|
|
122
|
+
}).some(function (x) {
|
|
123
|
+
return x.size <= 0;
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
this.RenderMessage = function (RuleOption, key, label) {
|
|
127
|
+
var _a, _b, _c, _d;
|
|
128
|
+
if (!RuleOption.message) {
|
|
129
|
+
RuleOption.message = MessageDefault[RuleOption.rule].replace('{0}', label !== null && label !== void 0 ? label : key);
|
|
130
|
+
switch (RuleOption.rule) {
|
|
131
|
+
case SingleRuleValidate.Regex:
|
|
132
|
+
{
|
|
133
|
+
RuleOption.message = RuleOption.message.replace('{1}', RuleOption.Value.source);
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
case SingleRuleValidate.RequiredValue:
|
|
137
|
+
{
|
|
138
|
+
RuleOption.message = RuleOption.message.replace('{1}', (_b = (_a = RuleOption.Value) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '');
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
case SingleRuleValidate.File:
|
|
142
|
+
{
|
|
143
|
+
var options = MapRuleOptions('File', RuleOption.options);
|
|
144
|
+
if ((options === null || options === void 0 ? void 0 : options.all) === true) {
|
|
145
|
+
RuleOption.message = "Total file size must be less than ".concat(formatFileSize(((_c = options === null || options === void 0 ? void 0 : options.maxSize) !== null && _c !== void 0 ? _c : 0) / 1024));
|
|
146
|
+
} else {
|
|
147
|
+
RuleOption.message = RuleOption.message.replace('{1}', formatFileSize(((_d = options === null || options === void 0 ? void 0 : options.maxSize) !== null && _d !== void 0 ? _d : 0) / 1024));
|
|
148
|
+
}
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
RuleOption.message = RuleOption.message.replace('{0}', key);
|
|
154
|
+
return RuleOption;
|
|
155
|
+
};
|
|
156
|
+
this.run = function (model) {
|
|
157
|
+
var keys = Object.keys(_this.configs);
|
|
158
|
+
var data = {};
|
|
159
|
+
keys.forEach(function (key) {
|
|
160
|
+
var config = _this.configs[key];
|
|
161
|
+
if (!config) return;
|
|
162
|
+
var tmp = _this.Executed(config, model[key], model);
|
|
163
|
+
if (tmp.length < 1) return;
|
|
164
|
+
data[key] = tmp.map(function (x) {
|
|
165
|
+
return _this.RenderMessage(x, key, config.label);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
return data;
|
|
169
|
+
};
|
|
170
|
+
this.Executed = function (Config, valueField, model) {
|
|
171
|
+
return Config.Rules.filter(function (Value) {
|
|
172
|
+
var action = _this[Value.rule.toString()];
|
|
173
|
+
return action && action(Value, valueField, model);
|
|
174
|
+
});
|
|
175
|
+
};
|
|
176
|
+
this.configs = configs;
|
|
177
|
+
});
|
|
178
|
+
FormValidator.initial = function (configs) {
|
|
179
|
+
return new FormValidator(configs);
|
|
180
|
+
};
|
|
181
|
+
var CreateFormValidator = function CreateFormValidator() {
|
|
182
|
+
return new FormValidator({});
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
export { CreateFormValidator, MapRuleOptions, SingleRuleValidate, FormValidator as default };
|
|
186
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sources":["../../../src/form/validator.ts"],"sourcesContent":["import { formatFileSize } from '../utils'\r\n\r\ndeclare type ModelBase = { [key: string]: any }\r\n\r\nexport enum SingleRuleValidate {\r\n Required = 'Required',\r\n Regex = 'Regex',\r\n RequiredValue = 'RequiredValue',\r\n Array = 'Array',\r\n Number = 'Number',\r\n Email = 'Email',\r\n PhoneNumber = 'PhoneNumber',\r\n Url = 'Url',\r\n File = 'File',\r\n FileRequired = 'FileRequired',\r\n Custom = 'Custom'\r\n}\r\n\r\nconst MessageDefault = {\r\n Required: 'The {0} is required',\r\n Regex: 'The {0} is not match {1}',\r\n RequiredValue: 'the {0} is not equal {1}',\r\n Array: 'The {0} is not valid',\r\n Number: '{0} must be a number',\r\n Email: 'The {0} is not valid',\r\n PhoneNumber: 'The {0} is not valid',\r\n Url: 'The {0} is not valid',\r\n File: 'File size must be less than {1}',\r\n FileRequired: 'The {0} is required',\r\n Custom: 'Error Custom'\r\n}\r\n\r\nexport interface RuleOptions {\r\n File: {\r\n maxSize: number\r\n // toal size of files\r\n all?: boolean\r\n }\r\n}\r\n\r\nexport const MapRuleOptions = <TK extends keyof RuleOptions>(key: TK, options?: RuleOptions[TK]) => options\r\n\r\nexport interface IRuleOption<TModel = any> {\r\n rule: SingleRuleValidate\r\n message?: string\r\n Value?: RegExp | ((value: any, model: TModel) => boolean) | number | Array<any> | boolean\r\n options?: any\r\n}\r\n\r\ninterface IConfigValue<TModel = any> {\r\n Rules: IRuleOption<TModel>[]\r\n label?: string\r\n}\r\n\r\nexport interface IModelError {\r\n message: string\r\n error: boolean\r\n}\r\n\r\nexport type IFormValidatorConfig<TModel> = {\r\n [key in keyof Extract<TModel, ModelBase>]?: IConfigValue<TModel>\r\n}\r\n\r\nexport type PartialError<TModel> = {\r\n [key in keyof TModel]?: IRuleOption<TModel>[]\r\n}\r\n\r\nexport default class FormValidator<TModel> {\r\n configs: IFormValidatorConfig<TModel>\r\n constructor(configs: IFormValidatorConfig<TModel>) {\r\n this.configs = configs\r\n }\r\n\r\n static initial = <T>(configs: IFormValidatorConfig<T>) => new FormValidator(configs)\r\n\r\n AddRules = (key: keyof TModel, ...rule: IRuleOption<TModel>[]) => {\r\n let fieldConfig = this.configs[key]\r\n if (!fieldConfig) {\r\n fieldConfig = { Rules: [] }\r\n this.configs[key] = fieldConfig\r\n }\r\n fieldConfig.Rules.push(...rule)\r\n return this\r\n }\r\n\r\n Required = (RuleOption: IRuleOption, value: any) => {\r\n return value === null || value === undefined || value === ''\r\n }\r\n Regex = (RuleOption: IRuleOption, value: string, Regex: RegExp) => {\r\n if (!value) return false\r\n return !(RuleOption.Value as RegExp).test(value)\r\n }\r\n RequiredValue = (RuleOption: IRuleOption, value: any) => {\r\n if (!value) return false\r\n return value !== RuleOption.Value\r\n }\r\n Custom = (RuleOption: IRuleOption, value: any, model: any) => {\r\n if (typeof RuleOption.Value === 'function') {\r\n return RuleOption.Value(value, model)\r\n }\r\n return true\r\n }\r\n Array = (RuleOption: IRuleOption, value: any) => {\r\n if (!value) return false\r\n if (typeof RuleOption.Value === 'number') {\r\n return Array.isArray(value) ? value.length <= RuleOption.Value : true\r\n }\r\n return true\r\n }\r\n Number = (RuleOption: IRuleOption, value: any) => {\r\n if (!value) return false\r\n return isNaN(Number(value))\r\n }\r\n Email = (RuleOption: IRuleOption, value: any) => {\r\n if (!value) return false\r\n const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/\r\n return !regex.test(value)\r\n }\r\n PhoneNumber = (RuleOption: IRuleOption, value: any) => {\r\n if (!value) return false\r\n const phoneRegex = /^(\\+?\\d{1,4}[\\s-]?)?((\\(\\d{1,4}\\))|\\d{1,4})[\\s-]?\\d{1,4}[\\s-]?\\d{1,9}$/\r\n return !phoneRegex.test((value ?? '').trim())\r\n }\r\n Url = (RuleOption: IRuleOption, value: any) => {\r\n if (!value) return false\r\n try {\r\n new URL(value)\r\n return false\r\n } catch (err) {\r\n return true\r\n }\r\n }\r\n File = (RuleOption: IRuleOption, value: any) => {\r\n if (!value) return false\r\n const options = MapRuleOptions('File', RuleOption.options)\r\n const files: File[] = Array.isArray(value) ? value : [value]\r\n if (!options) return false\r\n if (options.all === true) {\r\n const size = files.reduce((a, b) => {\r\n a += b.size\r\n return a\r\n }, 0)\r\n return size > options.maxSize\r\n } else {\r\n return files.some((x) => x.size > options.maxSize)\r\n }\r\n }\r\n FileRequired = (RuleOption: IRuleOption, value: any) => {\r\n const files: File[] = Array.isArray(value) ? value : [value]\r\n return !!files.filter((x) => !!x).some((x) => x.size <= 0)\r\n }\r\n RenderMessage = (RuleOption: IRuleOption, key: string, label?: string) => {\r\n if (!RuleOption.message) {\r\n RuleOption.message = MessageDefault[RuleOption.rule].replace('{0}', label ?? key)\r\n switch (RuleOption.rule) {\r\n case SingleRuleValidate.Regex: {\r\n RuleOption.message = RuleOption.message.replace('{1}', (RuleOption.Value as RegExp).source)\r\n break\r\n }\r\n case SingleRuleValidate.RequiredValue: {\r\n RuleOption.message = RuleOption.message.replace('{1}', RuleOption.Value?.toString() ?? '')\r\n break\r\n }\r\n case SingleRuleValidate.File: {\r\n const options = MapRuleOptions('File', RuleOption.options)\r\n if (options?.all === true) {\r\n RuleOption.message = `Total file size must be less than ${formatFileSize((options?.maxSize ?? 0) / 1024)}`\r\n } else {\r\n RuleOption.message = RuleOption.message.replace('{1}', formatFileSize((options?.maxSize ?? 0) / 1024))\r\n }\r\n break\r\n }\r\n default:\r\n break\r\n }\r\n }\r\n RuleOption.message = RuleOption.message.replace('{0}', key)\r\n return RuleOption\r\n }\r\n run = (model: TModel) => {\r\n const keys = Object.keys(this.configs)\r\n const data: PartialError<TModel> = {}\r\n keys.forEach((key) => {\r\n const config = this.configs[key]\r\n if (!config) return\r\n const tmp = this.Executed(config, (model as any)[key], model)\r\n if (tmp.length < 1) return\r\n ;(data as any)[key] = tmp.map((x) => this.RenderMessage(x, key, config.label))\r\n })\r\n return data\r\n }\r\n Executed = (Config: IConfigValue, valueField: any, model: any) => {\r\n return Config.Rules.filter((Value) => {\r\n const action = (this as any)[Value.rule.toString()]\r\n return action && action(Value, valueField, model)\r\n })\r\n }\r\n}\r\n\r\nexport const CreateFormValidator = <TModel>() => {\r\n return new FormValidator<Partial<TModel>>({})\r\n}\r\n"],"names":["SingleRuleValidate","MessageDefault","Required","Regex","RequiredValue","Array","Number","Email","PhoneNumber","Url","File","FileRequired","Custom","MapRuleOptions","key","options","FormValidator","_createClass","configs","_this","_classCallCheck","AddRules","_fieldConfig$Rules","fieldConfig","Rules","_len","arguments","length","rule","_key","push","apply","RuleOption","value","undefined","Value","test","model","isArray","isNaN","regex","phoneRegex","trim","URL","err","files","all","size","reduce","a","b","maxSize","some","x","filter","RenderMessage","label","message","replace","source","_a","toString","_b","concat","formatFileSize","_c","_d","run","keys","Object","data","forEach","config","tmp","Executed","map","Config","valueField","action","initial","CreateFormValidator"],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
var useCheckScrolled = function useCheckScrolled() {
|
|
5
|
+
var _useState = useState(false),
|
|
6
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
7
|
+
isScrolled = _useState2[0],
|
|
8
|
+
setIsScrolled = _useState2[1];
|
|
9
|
+
useEffect(function () {
|
|
10
|
+
var handleScroll = function handleScroll() {
|
|
11
|
+
var scrolled = window.scrollY > 0;
|
|
12
|
+
if (scrolled !== isScrolled) setIsScrolled(scrolled);
|
|
13
|
+
};
|
|
14
|
+
window.addEventListener('scroll', handleScroll);
|
|
15
|
+
return function () {
|
|
16
|
+
return window.removeEventListener('scroll', handleScroll);
|
|
17
|
+
};
|
|
18
|
+
}, [isScrolled]);
|
|
19
|
+
useEffect(function () {
|
|
20
|
+
var scrolled = window.scrollY > 0;
|
|
21
|
+
if (scrolled !== isScrolled) setIsScrolled(scrolled);
|
|
22
|
+
}, []);
|
|
23
|
+
return {
|
|
24
|
+
isScrolled: isScrolled
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
var useDebounce = function useDebounce(value, delay) {
|
|
28
|
+
var _useState3 = useState(value),
|
|
29
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
30
|
+
debouncedValue = _useState4[0],
|
|
31
|
+
setDebouncedValue = _useState4[1];
|
|
32
|
+
useEffect(function () {
|
|
33
|
+
if (delay <= 0) {
|
|
34
|
+
setDebouncedValue(value);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
var handler = setTimeout(function () {
|
|
38
|
+
setDebouncedValue(value);
|
|
39
|
+
}, delay);
|
|
40
|
+
return function () {
|
|
41
|
+
clearTimeout(handler);
|
|
42
|
+
};
|
|
43
|
+
}, [value, delay]);
|
|
44
|
+
return debouncedValue;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export { useCheckScrolled, useDebounce };
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/hooks/index.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps*/\r\nimport { useEffect, useState } from 'react'\r\n\r\nexport const useCheckScrolled = () => {\r\n const [isScrolled, setIsScrolled] = useState(false)\r\n\r\n useEffect(() => {\r\n const handleScroll = () => {\r\n const scrolled = window.scrollY > 0\r\n if (scrolled !== isScrolled) setIsScrolled(scrolled)\r\n }\r\n\r\n window.addEventListener('scroll', handleScroll)\r\n return () => window.removeEventListener('scroll', handleScroll)\r\n }, [isScrolled])\r\n\r\n useEffect(() => {\r\n const scrolled = window.scrollY > 0\r\n if (scrolled !== isScrolled) setIsScrolled(scrolled)\r\n }, [])\r\n\r\n return { isScrolled }\r\n}\r\n\r\nexport const useDebounce = <T>(value: T, delay: number): T => {\r\n const [debouncedValue, setDebouncedValue] = useState<T>(value)\r\n\r\n useEffect(() => {\r\n if (delay <= 0) {\r\n setDebouncedValue(value)\r\n return\r\n }\r\n\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value)\r\n }, delay)\r\n\r\n return () => {\r\n clearTimeout(handler)\r\n }\r\n }, [value, delay])\r\n\r\n return debouncedValue\r\n}\r\n"],"names":["useCheckScrolled","_useState","useState","_useState2","_slicedToArray","isScrolled","setIsScrolled","useEffect","handleScroll","scrolled","window","scrollY","addEventListener","removeEventListener","useDebounce","value","delay","_useState3","_useState4","debouncedValue","setDebouncedValue","handler","setTimeout","clearTimeout"],"mappings":";;;IAGaA,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAQ;AACnC,EAAA,IAAAC,SAAA,GAAoCC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA5CI,IAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,UAAA,CAAA,CAAA,CAAA;AAEhCI,EAAAA,SAAS,CAAC,YAAK;AACb,IAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAQ;AACxB,MAAA,IAAMC,QAAQ,GAAGC,MAAM,CAACC,OAAO,GAAG,CAAC;AACnC,MAAA,IAAIF,QAAQ,KAAKJ,UAAU,EAAEC,aAAa,CAACG,QAAQ,CAAC;KACrD;AAEDC,IAAAA,MAAM,CAACE,gBAAgB,CAAC,QAAQ,EAAEJ,YAAY,CAAC;IAC/C,OAAO,YAAA;AAAA,MAAA,OAAME,MAAM,CAACG,mBAAmB,CAAC,QAAQ,EAAEL,YAAY,CAAC;AAAA,KAAA;AACjE,GAAC,EAAE,CAACH,UAAU,CAAC,CAAC;AAEhBE,EAAAA,SAAS,CAAC,YAAK;AACb,IAAA,IAAME,QAAQ,GAAGC,MAAM,CAACC,OAAO,GAAG,CAAC;AACnC,IAAA,IAAIF,QAAQ,KAAKJ,UAAU,EAAEC,aAAa,CAACG,QAAQ,CAAC;GACrD,EAAE,EAAE,CAAC;EAEN,OAAO;AAAEJ,IAAAA,UAAU,EAAVA;GAAY;AACvB;AAEO,IAAMS,WAAW,GAAG,SAAdA,WAAWA,CAAOC,KAAQ,EAAEC,KAAa,EAAO;AAC3D,EAAA,IAAAC,UAAA,GAA4Cf,QAAQ,CAAIa,KAAK,CAAC;IAAAG,UAAA,GAAAd,cAAA,CAAAa,UAAA,EAAA,CAAA,CAAA;AAAvDE,IAAAA,cAAc,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAExCX,EAAAA,SAAS,CAAC,YAAK;IACb,IAAIS,KAAK,IAAI,CAAC,EAAE;MACdI,iBAAiB,CAACL,KAAK,CAAC;AACxB,MAAA;AACD;AAED,IAAA,IAAMM,OAAO,GAAGC,UAAU,CAAC,YAAK;MAC9BF,iBAAiB,CAACL,KAAK,CAAC;KACzB,EAAEC,KAAK,CAAC;AAET,IAAA,OAAO,YAAK;MACVO,YAAY,CAACF,OAAO,CAAC;KACtB;AACH,GAAC,EAAE,CAACN,KAAK,EAAEC,KAAK,CAAC,CAAC;AAElB,EAAA,OAAOG,cAAc;AACvB;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export { default as ApiPopover, ApiPopoverContext, MapApiPopoverContext, withApiPopoverContext } from './api-context/popover.js';
|
|
2
|
+
export { AlertDialog, default as AlertGlobal, ApiAlertContext } from './api-context/alert-global.js';
|
|
3
|
+
export { default as DrawerGlobal } from './api-context/drawer-global.js';
|
|
4
|
+
export { default as GlobalModal, GlobalModalContext, MapGlobalModalContext, withApiGlobalModalConsumerContext, withApiGlobalModalContext } from './api-context/global-modal.js';
|
|
5
|
+
export { MapPopoverGlobalContext, default as PopoverGlobal, PopoverGlobalApi, PopoverGlobalContext, PopoverGlobalProvider, withPopoverGlobalContext } from './api-context/popover-global.js';
|
|
6
|
+
export { CreateFormValidator, default as FormValidator, MapRuleOptions, SingleRuleValidate } from './form/validator.js';
|
|
7
|
+
export { default as DinoForm } from './form/dino-form.js';
|
|
8
|
+
export { convertFormDataToJson, getErrorMessage } from './form/helper.js';
|
|
9
|
+
export { useCheckScrolled, useDebounce } from './hooks/index.js';
|
|
10
|
+
export { ELazyStatus } from './redux/types.js';
|
|
11
|
+
export { default as DinoRedux } from './redux/dino.js';
|
|
12
|
+
export { default as CreateHocLazy, EmptyComponent, OptionHocLazyDefault } from './redux/create.hoc-lazy.js';
|
|
13
|
+
export { ELogic, EOperator, EOrder } from './table/model-filter.js';
|
|
14
|
+
import 'react';
|
|
15
|
+
import '@mui/material';
|
|
16
|
+
import '@mui/icons-material/Edit';
|
|
17
|
+
import '@mui/icons-material/Delete';
|
|
18
|
+
export { decodeBase64, encodeBase64, fetchDelay, formatCapitalizeFirstText, formatCurrency, formatDatetime, formatFileSize, formatNumberWithCommas, mergeClasses, mergeObjects, sleep, tryParseArray, tryParseIntRequired, tryParseObject, windowScrollToTop } from './utils/helpers.js';
|
|
19
|
+
export { default as JObject } from './utils/json-object.js';
|
|
20
|
+
export { QueryParam } from './utils/query-param.js';
|
|
21
|
+
import './utils/dayjs-config.js';
|
|
22
|
+
export { default as CreateTable } from './table/create.table.js';
|
|
23
|
+
export { default as DinoTable } from './table/dino.js';
|
|
24
|
+
export { default as TableHelper, dinoTableClasses } from './table/helpers.js';
|
|
25
|
+
export { default as dayjsCustom } from 'dayjs';
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { inherits as _inherits, createClass as _createClass, classCallCheck as _classCallCheck, callSuper as _callSuper } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React, { Component } from 'react';
|
|
3
|
+
import { ELazyStatus } from './types.js';
|
|
4
|
+
import UIErrorPage from './ui.error-page.js';
|
|
5
|
+
|
|
6
|
+
var EmptyComponent = function EmptyComponent(_ref) {
|
|
7
|
+
var children = _ref.children;
|
|
8
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
9
|
+
};
|
|
10
|
+
var OptionHocLazyDefault = {
|
|
11
|
+
LazySpinner: EmptyComponent
|
|
12
|
+
};
|
|
13
|
+
var CreateHocLazy = function CreateHocLazy(ChildComponent, options) {
|
|
14
|
+
var HocComponent = /*#__PURE__*/function (_Component) {
|
|
15
|
+
function HocComponent(props) {
|
|
16
|
+
var _this;
|
|
17
|
+
_classCallCheck(this, HocComponent);
|
|
18
|
+
_this = _callSuper(this, HocComponent, [props]);
|
|
19
|
+
_this.initialParam = function () {
|
|
20
|
+
var _a, _b, _c;
|
|
21
|
+
var oData = (_a = options === null || options === void 0 ? void 0 : options.param) !== null && _a !== void 0 ? _a : {};
|
|
22
|
+
var pData = (_c = (_b = _this.props) === null || _b === void 0 ? void 0 : _b.param) !== null && _c !== void 0 ? _c : {};
|
|
23
|
+
return Object.assign({}, oData, pData);
|
|
24
|
+
};
|
|
25
|
+
_this.componentDidMount = function () {
|
|
26
|
+
var _a;
|
|
27
|
+
if (_this.props.fetchData) {
|
|
28
|
+
var param = _this.initialParam();
|
|
29
|
+
(_a = _this.tokenSources) === null || _a === void 0 ? void 0 : _a.abort();
|
|
30
|
+
_this.tokenSources = new AbortController();
|
|
31
|
+
_this.fetchSource = _this.props.fetchData(param, _this.tokenSources.signal);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
_this.optionsMerge = Object.assign({}, OptionHocLazyDefault, options);
|
|
35
|
+
return _this;
|
|
36
|
+
}
|
|
37
|
+
_inherits(HocComponent, _Component);
|
|
38
|
+
return _createClass(HocComponent, [{
|
|
39
|
+
key: "render",
|
|
40
|
+
value: function render() {
|
|
41
|
+
var OptionsMerge = this.optionsMerge;
|
|
42
|
+
switch (this.props.status) {
|
|
43
|
+
case ELazyStatus.Loading:
|
|
44
|
+
case ELazyStatus.Loaded:
|
|
45
|
+
return /*#__PURE__*/React.createElement(OptionsMerge.LazySpinner, {
|
|
46
|
+
loading: this.props.status === ELazyStatus.Loading
|
|
47
|
+
}, /*#__PURE__*/React.createElement(ChildComponent, this.props));
|
|
48
|
+
case ELazyStatus.Error:
|
|
49
|
+
return /*#__PURE__*/React.createElement(UIErrorPage, null);
|
|
50
|
+
default:
|
|
51
|
+
return /*#__PURE__*/React.createElement("div", null);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}, {
|
|
55
|
+
key: "componentWillUnmount",
|
|
56
|
+
value: function componentWillUnmount() {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
(_a = this.tokenSources) === null || _a === void 0 ? void 0 : _a.abort();
|
|
59
|
+
((_b = this.fetchSource) === null || _b === void 0 ? void 0 : _b.abort) && this.fetchSource.abort();
|
|
60
|
+
}
|
|
61
|
+
}]);
|
|
62
|
+
}(Component);
|
|
63
|
+
return HocComponent;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export { EmptyComponent, OptionHocLazyDefault, CreateHocLazy as default };
|
|
67
|
+
//# sourceMappingURL=create.hoc-lazy.js.map
|