@next-shared/form 0.5.6 → 0.6.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.
- package/dist/cjs/FormItemElement.js +56 -88
- package/dist/cjs/FormItemElement.js.map +1 -1
- package/dist/cjs/FormStore.js +38 -53
- package/dist/cjs/FormStore.js.map +1 -1
- package/dist/esm/FormItemElement.js +56 -88
- package/dist/esm/FormItemElement.js.map +1 -1
- package/dist/esm/FormStore.js +38 -53
- package/dist/esm/FormStore.js.map +1 -1
- package/dist/esm/PubSub.js +14 -19
- package/dist/esm/PubSub.js.map +1 -1
- package/dist/types/FormStore.d.ts +1 -1
- package/package.json +9 -7
|
@@ -1,34 +1,25 @@
|
|
|
1
|
+
import _classPrivateMethodInitSpec from "@babel/runtime/helpers/classPrivateMethodInitSpec";
|
|
1
2
|
import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
var _initProto,
|
|
3
|
+
import _toPropertyKey from "@babel/runtime/helpers/toPropertyKey";
|
|
4
|
+
import _setFunctionName from "@babel/runtime/helpers/setFunctionName";
|
|
5
|
+
import _checkInRHS from "@babel/runtime/helpers/checkInRHS";
|
|
6
|
+
var _initProto, _init_helpBrick, _init_extra_helpBrick, _init_labelBrick, _init_extra_labelBrick, _init_labelCol, _init_extra_labelCol, _init_wrapperCol, _init_extra_wrapperCol, _FormItemElementBase;
|
|
7
|
+
function _classPrivateGetter(s, r, a) { return a(_assertClassBrand(s, r)); }
|
|
8
|
+
function _classPrivateSetter(s, r, a, t) { return r(_assertClassBrand(s, a), t), t; }
|
|
9
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
10
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
11
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
12
|
+
function _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for("Symbol.metadata"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if ("function" != typeof e && (r || void 0 !== e)) throw new TypeError(t + " must " + (n || "be") + " a function" + (r ? "" : " or undefined")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError("Attempted to access private element on non-instance"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? "get" : j || D ? "set" : "value"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, "get"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? "" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 != (c ^ o)) throw new Error("Decorating two elements with the same name (" + P[F].name + ") is not supported yet"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var z = h[O], H = n ? h[O - 1] : void 0, K = {}, R = { kind: ["field", "accessor", "method", "getter", "setter", "class"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new Error("attempted to call addInitializer after decoration was finished"); b(t, "An initializer", "be", !0), i.push(t); }.bind(null, K) }; if (w) c = z.call(H, N, R), K.v = 1, b(c, "class decorators", "return") && (N = c);else if (R.static = s, R.private = f, c = R.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I("get", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I("set", 0, d) : function (e, t) { e[r] = t; }), N = z.call(H, D ? { get: P.get, set: P.set } : P[F], R), K.v = 1, D) { if ("object" == typeof N && N) (c = b(N.get, "accessor.get")) && (P.get = c), (c = b(N.set, "accessor.set")) && (P.set = c), (c = b(N.init, "accessor.init")) && k.unshift(c);else if (void 0 !== N) throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined"); } else b(N, (l ? "field" : "method") + " decorators", "return") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I("get", s), I("set", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? "#" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }
|
|
6
13
|
import { createDecorators } from "@next-core/element";
|
|
7
14
|
import { ReactNextElement } from "@next-core/react-element";
|
|
8
15
|
var {
|
|
9
16
|
method,
|
|
10
17
|
property
|
|
11
18
|
} = createDecorators();
|
|
12
|
-
_dec = property({
|
|
13
|
-
attribute: false
|
|
14
|
-
});
|
|
15
|
-
_dec2 = property({
|
|
16
|
-
attribute: false
|
|
17
|
-
});
|
|
18
|
-
_dec3 = property({
|
|
19
|
-
attribute: false
|
|
20
|
-
});
|
|
21
|
-
_dec4 = property({
|
|
22
|
-
attribute: false
|
|
23
|
-
});
|
|
24
|
-
_dec5 = method();
|
|
25
|
-
_dec6 = method();
|
|
26
19
|
var _A = /*#__PURE__*/new WeakMap();
|
|
27
|
-
var
|
|
20
|
+
var _FormItemElementBase_brand = /*#__PURE__*/new WeakSet();
|
|
28
21
|
var _B = /*#__PURE__*/new WeakMap();
|
|
29
|
-
var _validate = /*#__PURE__*/new WeakMap();
|
|
30
22
|
var _C = /*#__PURE__*/new WeakMap();
|
|
31
|
-
var _bindFormItem = /*#__PURE__*/new WeakMap();
|
|
32
23
|
var _D = /*#__PURE__*/new WeakMap();
|
|
33
24
|
var _E = /*#__PURE__*/new WeakMap();
|
|
34
25
|
var _F = /*#__PURE__*/new WeakMap();
|
|
@@ -36,56 +27,25 @@ var _G = /*#__PURE__*/new WeakMap();
|
|
|
36
27
|
export class FormItemElementBase extends ReactNextElement {
|
|
37
28
|
constructor() {
|
|
38
29
|
super(...arguments);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
_classPrivateFieldInitSpec(this,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
get: _get__notRender,
|
|
49
|
-
set: _set__notRender
|
|
50
|
-
});
|
|
51
|
-
_classPrivateFieldInitSpec(this, _A, {
|
|
52
|
-
writable: true,
|
|
53
|
-
value: (_initProto(this), false)
|
|
54
|
-
});
|
|
55
|
-
_classPrivateFieldInitSpec(this, _B, {
|
|
56
|
-
writable: true,
|
|
57
|
-
value: "normal"
|
|
58
|
-
});
|
|
59
|
-
_classPrivateFieldInitSpec(this, _C, {
|
|
60
|
-
writable: true,
|
|
61
|
-
value: false
|
|
62
|
-
});
|
|
63
|
-
_classPrivateFieldInitSpec(this, _D, {
|
|
64
|
-
writable: true,
|
|
65
|
-
value: _init_helpBrick(this)
|
|
66
|
-
});
|
|
67
|
-
_classPrivateFieldInitSpec(this, _E, {
|
|
68
|
-
writable: true,
|
|
69
|
-
value: _init_labelBrick(this)
|
|
70
|
-
});
|
|
71
|
-
_classPrivateFieldInitSpec(this, _F, {
|
|
72
|
-
writable: true,
|
|
73
|
-
value: _init_labelCol(this)
|
|
74
|
-
});
|
|
75
|
-
_classPrivateFieldInitSpec(this, _G, {
|
|
76
|
-
writable: true,
|
|
77
|
-
value: _init_wrapperCol(this)
|
|
78
|
-
});
|
|
30
|
+
_classPrivateMethodInitSpec(this, _FormItemElementBase_brand);
|
|
31
|
+
_classPrivateFieldInitSpec(this, _A, (_initProto(this), false));
|
|
32
|
+
_classPrivateFieldInitSpec(this, _B, "normal");
|
|
33
|
+
_classPrivateFieldInitSpec(this, _C, false);
|
|
34
|
+
_classPrivateFieldInitSpec(this, _D, _init_helpBrick(this));
|
|
35
|
+
_classPrivateFieldInitSpec(this, _E, (_init_extra_helpBrick(this), _init_labelBrick(this)));
|
|
36
|
+
_classPrivateFieldInitSpec(this, _F, (_init_extra_labelBrick(this), _init_labelCol(this)));
|
|
37
|
+
_classPrivateFieldInitSpec(this, _G, (_init_extra_labelCol(this), _init_wrapperCol(this)));
|
|
38
|
+
_init_extra_wrapperCol(this);
|
|
79
39
|
}
|
|
80
40
|
get isFormItemElement() {
|
|
81
41
|
return true;
|
|
82
42
|
}
|
|
83
43
|
set validateState(value) {
|
|
84
|
-
|
|
44
|
+
_classPrivateSetter(_FormItemElementBase_brand, _set_validate, this, value);
|
|
85
45
|
this._render();
|
|
86
46
|
}
|
|
87
47
|
get validateState() {
|
|
88
|
-
return
|
|
48
|
+
return _classPrivateGetter(_FormItemElementBase_brand, this, _get_validate);
|
|
89
49
|
}
|
|
90
50
|
|
|
91
51
|
/**
|
|
@@ -95,42 +55,42 @@ export class FormItemElementBase extends ReactNextElement {
|
|
|
95
55
|
*/
|
|
96
56
|
set notRender(value) {
|
|
97
57
|
this.hidden = value;
|
|
98
|
-
|
|
58
|
+
_classPrivateSetter(_FormItemElementBase_brand, _set__notRender, this, value);
|
|
99
59
|
this._render();
|
|
100
60
|
}
|
|
101
61
|
get notRender() {
|
|
102
|
-
return
|
|
62
|
+
return _classPrivateGetter(_FormItemElementBase_brand, this, _get__notRender);
|
|
103
63
|
}
|
|
104
64
|
get $bindFormItem() {
|
|
105
|
-
return
|
|
65
|
+
return _classPrivateGetter(_FormItemElementBase_brand, this, _get_bindFormItem);
|
|
106
66
|
}
|
|
107
67
|
set $bindFormItem(value) {
|
|
108
|
-
|
|
68
|
+
_classPrivateSetter(_FormItemElementBase_brand, _set_bindFormItem, this, value);
|
|
109
69
|
this._render();
|
|
110
70
|
}
|
|
111
71
|
get helpBrick() {
|
|
112
|
-
return _classPrivateFieldGet(
|
|
72
|
+
return _classPrivateFieldGet(_D, this);
|
|
113
73
|
}
|
|
114
74
|
set helpBrick(v) {
|
|
115
|
-
_classPrivateFieldSet(
|
|
75
|
+
_classPrivateFieldSet(_D, this, v);
|
|
116
76
|
}
|
|
117
77
|
get labelBrick() {
|
|
118
|
-
return _classPrivateFieldGet(
|
|
78
|
+
return _classPrivateFieldGet(_E, this);
|
|
119
79
|
}
|
|
120
80
|
set labelBrick(v) {
|
|
121
|
-
_classPrivateFieldSet(
|
|
81
|
+
_classPrivateFieldSet(_E, this, v);
|
|
122
82
|
}
|
|
123
83
|
get labelCol() {
|
|
124
|
-
return _classPrivateFieldGet(
|
|
84
|
+
return _classPrivateFieldGet(_F, this);
|
|
125
85
|
}
|
|
126
86
|
set labelCol(v) {
|
|
127
|
-
_classPrivateFieldSet(
|
|
87
|
+
_classPrivateFieldSet(_F, this, v);
|
|
128
88
|
}
|
|
129
89
|
get wrapperCol() {
|
|
130
|
-
return _classPrivateFieldGet(
|
|
90
|
+
return _classPrivateFieldGet(_G, this);
|
|
131
91
|
}
|
|
132
92
|
set wrapperCol(v) {
|
|
133
|
-
_classPrivateFieldSet(
|
|
93
|
+
_classPrivateFieldSet(_G, this, v);
|
|
134
94
|
}
|
|
135
95
|
setNotRender(value) {
|
|
136
96
|
this.notRender = value;
|
|
@@ -147,23 +107,31 @@ export class FormItemElementBase extends ReactNextElement {
|
|
|
147
107
|
}
|
|
148
108
|
}
|
|
149
109
|
_FormItemElementBase = FormItemElementBase;
|
|
150
|
-
function _get__notRender() {
|
|
151
|
-
return _classPrivateFieldGet(
|
|
110
|
+
function _get__notRender(_this) {
|
|
111
|
+
return _classPrivateFieldGet(_A, _this);
|
|
152
112
|
}
|
|
153
|
-
function _set__notRender(v) {
|
|
154
|
-
_classPrivateFieldSet(
|
|
113
|
+
function _set__notRender(_this2, v) {
|
|
114
|
+
_classPrivateFieldSet(_A, _this2, v);
|
|
155
115
|
}
|
|
156
|
-
function _get_validate() {
|
|
157
|
-
return _classPrivateFieldGet(
|
|
116
|
+
function _get_validate(_this3) {
|
|
117
|
+
return _classPrivateFieldGet(_B, _this3);
|
|
158
118
|
}
|
|
159
|
-
function _set_validate(v) {
|
|
160
|
-
_classPrivateFieldSet(
|
|
119
|
+
function _set_validate(_this4, v) {
|
|
120
|
+
_classPrivateFieldSet(_B, _this4, v);
|
|
161
121
|
}
|
|
162
|
-
function _get_bindFormItem() {
|
|
163
|
-
return _classPrivateFieldGet(
|
|
122
|
+
function _get_bindFormItem(_this5) {
|
|
123
|
+
return _classPrivateFieldGet(_C, _this5);
|
|
164
124
|
}
|
|
165
|
-
function _set_bindFormItem(v) {
|
|
166
|
-
_classPrivateFieldSet(
|
|
125
|
+
function _set_bindFormItem(_this6, v) {
|
|
126
|
+
_classPrivateFieldSet(_C, _this6, v);
|
|
167
127
|
}
|
|
168
|
-
[_init_helpBrick, _init_labelBrick, _init_labelCol, _init_wrapperCol, _initProto] = _applyDecs(_FormItemElementBase, [
|
|
128
|
+
[_init_helpBrick, _init_extra_helpBrick, _init_labelBrick, _init_extra_labelBrick, _init_labelCol, _init_extra_labelCol, _init_wrapperCol, _init_extra_wrapperCol, _initProto] = _applyDecs(_FormItemElementBase, [], [[property({
|
|
129
|
+
attribute: false
|
|
130
|
+
}), 1, "helpBrick"], [property({
|
|
131
|
+
attribute: false
|
|
132
|
+
}), 1, "labelBrick"], [property({
|
|
133
|
+
attribute: false
|
|
134
|
+
}), 1, "labelCol"], [property({
|
|
135
|
+
attribute: false
|
|
136
|
+
}), 1, "wrapperCol"], [method(), 2, "setNotRender"], [method(), 2, "getFormElement"]], 0, void 0, ReactNextElement).e;
|
|
169
137
|
//# sourceMappingURL=FormItemElement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormItemElement.js","names":["createDecorators","ReactNextElement","method","property","
|
|
1
|
+
{"version":3,"file":"FormItemElement.js","names":["createDecorators","ReactNextElement","method","property","_A","WeakMap","_FormItemElementBase_brand","WeakSet","_B","_C","_D","_E","_F","_G","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_helpBrick","_init_extra_helpBrick","_init_labelBrick","_init_extra_labelBrick","_init_labelCol","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","isFormItemElement","validateState","value","_classPrivateSetter","_set_validate","_render","_classPrivateGetter","_get_validate","notRender","hidden","_set__notRender","_get__notRender","$bindFormItem","_get_bindFormItem","_set_bindFormItem","helpBrick","_classPrivateFieldGet","v","_classPrivateFieldSet","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_FormItemElementBase","_this","_this2","_this3","_this4","_this5","_this6","_applyDecs","attribute","e"],"sources":["../../src/FormItemElement.tsx"],"sourcesContent":["import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm, ColProps } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps | undefined;\n\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n"],"mappings":"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"}
|
package/dist/esm/FormStore.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
import _classPrivateMethodInitSpec from "@babel/runtime/helpers/classPrivateMethodInitSpec";
|
|
3
3
|
import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
|
|
4
|
-
import _classPrivateMethodGet from "@babel/runtime/helpers/classPrivateMethodGet";
|
|
5
|
-
import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet";
|
|
6
|
-
import _classPrivateFieldSet from "@babel/runtime/helpers/classPrivateFieldSet";
|
|
7
4
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
6
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
7
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
8
8
|
import { isEmpty, isNil } from "lodash";
|
|
9
9
|
import { PubSub } from "./PubSub.js";
|
|
10
10
|
var uid = 0;
|
|
@@ -20,7 +20,7 @@ var _fields = /*#__PURE__*/new WeakMap();
|
|
|
20
20
|
var _options = /*#__PURE__*/new WeakMap();
|
|
21
21
|
var _formData = /*#__PURE__*/new WeakMap();
|
|
22
22
|
var _initData = /*#__PURE__*/new WeakMap();
|
|
23
|
-
var
|
|
23
|
+
var _FormStore_brand = /*#__PURE__*/new WeakSet();
|
|
24
24
|
export class FormStore extends PubSub {
|
|
25
25
|
static getInstance(options) {
|
|
26
26
|
if (!this.instance.get(uid)) {
|
|
@@ -32,69 +32,54 @@ export class FormStore extends PubSub {
|
|
|
32
32
|
}
|
|
33
33
|
constructor(options) {
|
|
34
34
|
super();
|
|
35
|
-
_classPrivateMethodInitSpec(this,
|
|
36
|
-
_classPrivateFieldInitSpec(this, _fields,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
value: void 0
|
|
43
|
-
});
|
|
44
|
-
_classPrivateFieldInitSpec(this, _formData, {
|
|
45
|
-
writable: true,
|
|
46
|
-
value: void 0
|
|
47
|
-
});
|
|
48
|
-
_classPrivateFieldInitSpec(this, _initData, {
|
|
49
|
-
writable: true,
|
|
50
|
-
value: void 0
|
|
51
|
-
});
|
|
52
|
-
_classPrivateFieldSet(this, _formData, {});
|
|
53
|
-
_classPrivateFieldSet(this, _options, options);
|
|
35
|
+
_classPrivateMethodInitSpec(this, _FormStore_brand);
|
|
36
|
+
_classPrivateFieldInitSpec(this, _fields, new Map());
|
|
37
|
+
_classPrivateFieldInitSpec(this, _options, void 0);
|
|
38
|
+
_classPrivateFieldInitSpec(this, _formData, void 0);
|
|
39
|
+
_classPrivateFieldInitSpec(this, _initData, void 0);
|
|
40
|
+
_classPrivateFieldSet(_formData, this, {});
|
|
41
|
+
_classPrivateFieldSet(_options, this, options);
|
|
54
42
|
}
|
|
55
43
|
setField(name, detail) {
|
|
56
|
-
_classPrivateFieldGet(
|
|
44
|
+
_classPrivateFieldGet(_fields, this).set(name, new Field(name, detail));
|
|
57
45
|
}
|
|
58
46
|
getAllValues() {
|
|
59
|
-
var allFields =
|
|
60
|
-
var formData = Object.fromEntries(Object.entries(_classPrivateFieldGet(
|
|
47
|
+
var allFields = _assertClassBrand(_FormStore_brand, this, _getAllFields).call(this);
|
|
48
|
+
var formData = Object.fromEntries(Object.entries(_classPrivateFieldGet(_formData, this)).map(_ref => {
|
|
61
49
|
var [k, v] = _ref;
|
|
62
50
|
if (allFields.includes(k)) {
|
|
63
51
|
return [k, v];
|
|
64
52
|
}
|
|
65
53
|
return [];
|
|
66
|
-
}).filter(
|
|
54
|
+
}).filter(item => item.length));
|
|
67
55
|
return formData;
|
|
68
56
|
}
|
|
69
57
|
setInitValue(values) {
|
|
70
58
|
var isEmitValuseChange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
71
|
-
_classPrivateFieldSet(
|
|
59
|
+
_classPrivateFieldSet(_initData, this, values);
|
|
72
60
|
this.setFieldsValue(values, isEmitValuseChange);
|
|
73
61
|
}
|
|
74
62
|
setFieldsValueByInitData(name) {
|
|
75
63
|
var _classPrivateFieldGet2;
|
|
76
|
-
var value = (_classPrivateFieldGet2 = _classPrivateFieldGet(
|
|
64
|
+
var value = (_classPrivateFieldGet2 = _classPrivateFieldGet(_initData, this)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2[name];
|
|
77
65
|
if (!isNil(value)) {
|
|
78
|
-
_classPrivateFieldGet(
|
|
66
|
+
_classPrivateFieldGet(_formData, this)[name] = value;
|
|
79
67
|
this.publish("".concat(name, ".init.value"), value);
|
|
80
68
|
}
|
|
81
69
|
}
|
|
82
70
|
setFieldsValue(values) {
|
|
83
71
|
var isEmitValuseChange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
84
|
-
var
|
|
85
|
-
var newFormData = _objectSpread({}, _classPrivateFieldGet(this, _formData));
|
|
72
|
+
var newFormData = _objectSpread({}, _classPrivateFieldGet(_formData, this));
|
|
86
73
|
Object.entries(values).forEach(_ref2 => {
|
|
87
74
|
var [k, v] = _ref2;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
this.publish("".concat(k, ".init.value"), v);
|
|
92
|
-
}
|
|
75
|
+
newFormData[k] = v;
|
|
76
|
+
_classPrivateFieldGet(_initData, this) && (_classPrivateFieldGet(_initData, this)[k] = v);
|
|
77
|
+
this.publish("".concat(k, ".init.value"), v);
|
|
93
78
|
});
|
|
94
|
-
_classPrivateFieldSet(
|
|
79
|
+
_classPrivateFieldSet(_formData, this, newFormData);
|
|
95
80
|
if (isEmitValuseChange) {
|
|
96
81
|
var _classPrivateFieldGet3, _classPrivateFieldGet4;
|
|
97
|
-
(_classPrivateFieldGet3 = _classPrivateFieldGet(
|
|
82
|
+
(_classPrivateFieldGet3 = _classPrivateFieldGet(_options, this)) === null || _classPrivateFieldGet3 === void 0 || (_classPrivateFieldGet4 = _classPrivateFieldGet3.onValuesChanged) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.call(_classPrivateFieldGet3, {
|
|
98
83
|
changedValues: values,
|
|
99
84
|
allValues: this.getAllValues()
|
|
100
85
|
});
|
|
@@ -102,33 +87,33 @@ export class FormStore extends PubSub {
|
|
|
102
87
|
}
|
|
103
88
|
resetFields(name) {
|
|
104
89
|
if (name) {
|
|
105
|
-
|
|
90
|
+
this.removeField(name);
|
|
106
91
|
this.publish("".concat(name, ".reset.fields"), null);
|
|
107
92
|
} else {
|
|
108
|
-
|
|
93
|
+
_classPrivateFieldGet(_fields, this).clear();
|
|
109
94
|
this.publish("reset.fields", null);
|
|
110
95
|
}
|
|
111
96
|
}
|
|
112
97
|
getFieldsValue(name) {
|
|
113
98
|
if (name) {
|
|
114
|
-
return _classPrivateFieldGet(
|
|
99
|
+
return _classPrivateFieldGet(_formData, this)[name];
|
|
115
100
|
}
|
|
116
101
|
return this.getAllValues();
|
|
117
102
|
}
|
|
118
103
|
removeField(name) {
|
|
119
|
-
_classPrivateFieldGet(
|
|
104
|
+
_classPrivateFieldGet(_fields, this).delete(name);
|
|
120
105
|
}
|
|
121
106
|
validateFields(callback) {
|
|
122
|
-
var allFields =
|
|
107
|
+
var allFields = _assertClassBrand(_FormStore_brand, this, _getAllFields).call(this);
|
|
123
108
|
var results = [];
|
|
124
109
|
allFields.forEach(name => {
|
|
125
|
-
var field = _classPrivateFieldGet(
|
|
110
|
+
var field = _classPrivateFieldGet(_fields, this).get(name);
|
|
126
111
|
if (field) {
|
|
127
112
|
results.push(this.validateField(field.detail));
|
|
128
113
|
}
|
|
129
114
|
});
|
|
130
115
|
if (results.some(result => (result === null || result === void 0 ? void 0 : result.type) !== "normal")) {
|
|
131
|
-
callback(true, results);
|
|
116
|
+
callback(true, results.filter(result => (result === null || result === void 0 ? void 0 : result.type) !== "normal"));
|
|
132
117
|
return false;
|
|
133
118
|
} else {
|
|
134
119
|
var formData = this.getAllValues();
|
|
@@ -138,14 +123,14 @@ export class FormStore extends PubSub {
|
|
|
138
123
|
}
|
|
139
124
|
validateField(field) {
|
|
140
125
|
var _classPrivateFieldGet5;
|
|
141
|
-
var fieldDetail = typeof field === "string" ? (_classPrivateFieldGet5 = _classPrivateFieldGet(
|
|
126
|
+
var fieldDetail = typeof field === "string" ? (_classPrivateFieldGet5 = _classPrivateFieldGet(_fields, this).get(field)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.detail : field;
|
|
142
127
|
if (!fieldDetail) return;
|
|
143
128
|
var {
|
|
144
129
|
name,
|
|
145
130
|
label,
|
|
146
131
|
validate
|
|
147
132
|
} = fieldDetail;
|
|
148
|
-
var validateValue = _classPrivateFieldGet(
|
|
133
|
+
var validateValue = _classPrivateFieldGet(_formData, this)[name];
|
|
149
134
|
var messageBody = function (message) {
|
|
150
135
|
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "error";
|
|
151
136
|
return {
|
|
@@ -212,7 +197,7 @@ export class FormStore extends PubSub {
|
|
|
212
197
|
this.publish("reset.validate", null);
|
|
213
198
|
}
|
|
214
199
|
onWatch(name, event, callback, options) {
|
|
215
|
-
var field = _classPrivateFieldGet(
|
|
200
|
+
var field = _classPrivateFieldGet(_fields, this).get(name);
|
|
216
201
|
if (field) {
|
|
217
202
|
var _options$needValidate;
|
|
218
203
|
var _value = this.getValueFromEvent(event);
|
|
@@ -228,7 +213,7 @@ export class FormStore extends PubSub {
|
|
|
228
213
|
}
|
|
229
214
|
}
|
|
230
215
|
onChange(name, value, callback, options) {
|
|
231
|
-
var field = _classPrivateFieldGet(
|
|
216
|
+
var field = _classPrivateFieldGet(_fields, this).get(name);
|
|
232
217
|
if (field) {
|
|
233
218
|
var _options$needValidate2;
|
|
234
219
|
this.setFieldsValue({
|
|
@@ -241,10 +226,10 @@ export class FormStore extends PubSub {
|
|
|
241
226
|
}
|
|
242
227
|
}
|
|
243
228
|
}
|
|
244
|
-
function
|
|
245
|
-
return [..._classPrivateFieldGet(
|
|
229
|
+
function _getAllFields() {
|
|
230
|
+
return [..._classPrivateFieldGet(_fields, this).keys()].filter(key => {
|
|
246
231
|
var _detail;
|
|
247
|
-
return !((_detail = _classPrivateFieldGet(
|
|
232
|
+
return !((_detail = _classPrivateFieldGet(_fields, this).get(key).detail) !== null && _detail !== void 0 && _detail.notRender);
|
|
248
233
|
});
|
|
249
234
|
}
|
|
250
235
|
_defineProperty(FormStore, "uid", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormStore.js","names":["isEmpty","isNil","PubSub","uid","Field","constructor","name","detail","_defineProperty","field","_fields","WeakMap","_options","_formData","_initData","_getAllFields","WeakSet","FormStore","getInstance","options","instance","get","set","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","writable","value","Map","_classPrivateFieldSet","setField","_classPrivateFieldGet","getAllValues","allFields","_classPrivateMethodGet","_getAllFields2","call","formData","Object","fromEntries","entries","map","_ref","k","v","includes","filter","Boolean","setInitValue","values","isEmitValuseChange","arguments","length","undefined","setFieldsValue","setFieldsValueByInitData","_classPrivateFieldGet2","publish","concat","newFormData","_objectSpread","forEach","_ref2","_classPrivateFieldGet3","_classPrivateFieldGet4","onValuesChanged","changedValues","allValues","resetFields","getFieldsValue","removeField","delete","validateFields","callback","results","push","validateField","some","result","type","_classPrivateFieldGet5","fieldDetail","label","validate","validateValue","messageBody","message","getName","valid","required","pattern","min","max","validator","reg","RegExp","test","parsedValidator","Array","isArray","getValueFromEvent","e","target","checked","resetValidateState","onWatch","event","_options$needValidate","realValue","needValidate","apply","onChange","_options$needValidate2","keys","key","_detail","notRender"],"sources":["../../src/FormStore.ts"],"sourcesContent":["import { isEmpty, isNil } from \"lodash\";\nimport { PubSub } from \"./PubSub.js\";\n\ninterface FormStoreOptions {\n onValuesChanged?: (data: any) => void;\n}\n\ninterface FieldDetail {\n name: string;\n label?: string;\n notRender?: boolean;\n originProps?: Record<string, any>;\n validate: Validate;\n [k: string]: any;\n}\n\nexport interface MessageBody {\n message: string;\n type: string;\n}\n\nexport interface WatchOptions {\n needValidate?: boolean;\n}\n\ninterface Validate {\n required?: boolean;\n pattern?: string;\n min?: number;\n max?: number;\n message?: {\n required?: string;\n pattern?: string;\n min?: string;\n max?: string;\n };\n validator?: (value: any) => MessageBody | string;\n}\n\nlet uid = 0;\n\nclass Field {\n field: string;\n detail: FieldDetail;\n constructor(name: string, detail: FieldDetail) {\n this.field = name;\n this.detail = detail;\n }\n}\n\nexport class FormStore extends PubSub {\n static uid: number;\n static instance: Map<number, FormStore> = new Map();\n static getInstance(options?: FormStoreOptions): FormStore {\n if (!this.instance.get(uid)) {\n this.uid = uid;\n this.instance.set(this.uid, new FormStore(options));\n uid += 1;\n }\n return this.instance.get(this.uid) as FormStore;\n }\n\n #fields: Map<string, Field> = new Map();\n #options: FormStoreOptions | undefined;\n #formData!: Record<string, unknown>;\n #initData: Record<string, unknown> | undefined;\n\n constructor(options?: FormStoreOptions) {\n super();\n this.#formData = {};\n this.#options = options;\n }\n\n setField(name: string, detail: FieldDetail) {\n this.#fields.set(name, new Field(name, detail));\n }\n #getAllFields() {\n return [...this.#fields.keys()].filter((key) => {\n return !this.#fields.get(key)!.detail?.notRender;\n });\n }\n\n getAllValues() {\n const allFields = this.#getAllFields();\n const formData = Object.fromEntries(\n Object.entries(this.#formData)\n .map(([k, v]) => {\n if (allFields.includes(k)) {\n return [k, v];\n }\n return [];\n })\n .filter(Boolean)\n );\n return formData;\n }\n\n setInitValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n this.#initData = values;\n this.setFieldsValue(values, isEmitValuseChange);\n }\n\n setFieldsValueByInitData(name: string) {\n const value = this.#initData?.[name];\n if (!isNil(value)) {\n this.#formData[name] = value;\n this.publish(`${name}.init.value`, value);\n }\n }\n\n setFieldsValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n const allFields = this.#getAllFields();\n const newFormData: Record<string, unknown> = {\n ...this.#formData,\n };\n Object.entries(values).forEach(([k, v]) => {\n if (allFields.includes(k)) {\n newFormData[k] = v;\n this.#initData && (this.#initData[k] = v);\n this.publish(`${k}.init.value`, v);\n }\n });\n this.#formData = newFormData;\n\n if (isEmitValuseChange) {\n this.#options?.onValuesChanged?.({\n changedValues: values,\n allValues: this.getAllValues(),\n });\n }\n }\n\n resetFields(name?: string) {\n if (name) {\n this.#formData[name] = null;\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#formData = {};\n this.publish(\"reset.fields\", null);\n }\n }\n\n getFieldsValue(name?: string) {\n if (name) {\n return this.#formData[name];\n }\n return this.getAllValues();\n }\n\n removeField(name: string) {\n this.#fields.delete(name);\n }\n\n validateFields(\n callback: (err: boolean, value: any) => void\n ): boolean | Record<string, unknown> {\n const allFields = this.#getAllFields();\n const results: Array<MessageBody | undefined> = [];\n allFields.forEach((name) => {\n const field = this.#fields.get(name);\n if (field) {\n results.push(this.validateField(field.detail));\n }\n });\n\n if (results.some((result) => result?.type !== \"normal\")) {\n callback(true, results);\n return false;\n } else {\n const formData = this.getAllValues();\n callback(false, formData);\n return formData;\n }\n }\n\n validateField(field: string | FieldDetail) {\n const fieldDetail =\n typeof field === \"string\" ? this.#fields.get(field)?.detail : field;\n if (!fieldDetail) return;\n const { name, label, validate } = fieldDetail;\n const validateValue = this.#formData[name];\n\n const messageBody = (message: string, type = \"error\") => {\n return {\n type,\n message,\n };\n };\n\n const getName = () => label ?? name;\n\n const valid = (validate: Validate, value: string): MessageBody => {\n const { required, pattern, message, min, max, validator } = validate;\n const label = getName();\n\n if (\n required &&\n (typeof value === \"object\"\n ? isEmpty(value)\n : typeof value === \"number\"\n ? false\n : !value)\n ) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n\n if (pattern && value) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n if (min && (!value || value.length < min)) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n\n if (max && value && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\n }\n\n if (validator) {\n let result = \"\";\n let parsedValidator = [];\n if (Array.isArray(validator)) {\n parsedValidator = validator;\n } else {\n parsedValidator.push(validator);\n }\n\n for (const v of parsedValidator) {\n result = v(value);\n\n if (result) {\n break;\n }\n }\n return typeof result === \"string\"\n ? messageBody(result, result ? \"error\" : \"normal\")\n : (result as MessageBody);\n }\n\n return messageBody(\"\", \"normal\");\n };\n\n const result = valid(validate, validateValue as string);\n this.publish(`${name}.validate`, result);\n return result;\n }\n\n getValueFromEvent(e: React.ChangeEvent): any {\n if (!e || !e.target) {\n return e;\n }\n const target = e.target as HTMLInputElement;\n return target.type === \"checkbox\" ? target.checked : target.value;\n }\n\n resetValidateState() {\n this.publish(`reset.validate`, null);\n }\n\n onWatch(\n name: string,\n event: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n const value = this.getValueFromEvent(event);\n // default first params is value\n const realValue = Array.isArray(value) ? value[0] : value;\n\n this.setFieldsValue({\n [name]: realValue,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.apply(this, value);\n }\n }\n\n onChange(\n name: string,\n value: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n this.setFieldsValue({\n [name]: value,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.(value);\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormStore.js","names":["isEmpty","isNil","PubSub","uid","Field","constructor","name","detail","_defineProperty","field","_fields","WeakMap","_options","_formData","_initData","_FormStore_brand","WeakSet","FormStore","getInstance","options","instance","get","set","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","Map","_classPrivateFieldSet","setField","_classPrivateFieldGet","getAllValues","allFields","_assertClassBrand","_getAllFields","call","formData","Object","fromEntries","entries","map","_ref","k","v","includes","filter","item","length","setInitValue","values","isEmitValuseChange","arguments","undefined","setFieldsValue","setFieldsValueByInitData","_classPrivateFieldGet2","value","publish","concat","newFormData","_objectSpread","forEach","_ref2","_classPrivateFieldGet3","_classPrivateFieldGet4","onValuesChanged","changedValues","allValues","resetFields","removeField","clear","getFieldsValue","delete","validateFields","callback","results","push","validateField","some","result","type","_classPrivateFieldGet5","fieldDetail","label","validate","validateValue","messageBody","message","getName","valid","required","pattern","min","max","validator","reg","RegExp","test","parsedValidator","Array","isArray","getValueFromEvent","e","target","checked","resetValidateState","onWatch","event","_options$needValidate","realValue","needValidate","apply","onChange","_options$needValidate2","keys","key","_detail","notRender"],"sources":["../../src/FormStore.ts"],"sourcesContent":["import { isEmpty, isNil } from \"lodash\";\nimport { PubSub } from \"./PubSub.js\";\n\ninterface FormStoreOptions {\n onValuesChanged?: (data: any) => void;\n}\n\nexport interface FieldDetail {\n name: string;\n label?: string;\n notRender?: boolean;\n originProps?: Record<string, any>;\n validate: Validate;\n [k: string]: any;\n}\n\nexport interface MessageBody {\n message: string;\n type: string;\n}\n\nexport interface WatchOptions {\n needValidate?: boolean;\n}\n\ninterface Validate {\n required?: boolean;\n pattern?: string;\n min?: number;\n max?: number;\n message?: {\n required?: string;\n pattern?: string;\n min?: string;\n max?: string;\n };\n validator?: (value: any) => MessageBody | string;\n}\n\nlet uid = 0;\n\nclass Field {\n field: string;\n detail: FieldDetail;\n constructor(name: string, detail: FieldDetail) {\n this.field = name;\n this.detail = detail;\n }\n}\n\nexport class FormStore extends PubSub {\n static uid: number;\n static instance: Map<number, FormStore> = new Map();\n static getInstance(options?: FormStoreOptions): FormStore {\n if (!this.instance.get(uid)) {\n this.uid = uid;\n this.instance.set(this.uid, new FormStore(options));\n uid += 1;\n }\n return this.instance.get(this.uid) as FormStore;\n }\n\n #fields: Map<string, Field> = new Map();\n #options: FormStoreOptions | undefined;\n #formData!: Record<string, unknown>;\n #initData: Record<string, unknown> | undefined;\n\n constructor(options?: FormStoreOptions) {\n super();\n this.#formData = {};\n this.#options = options;\n }\n\n setField(name: string, detail: FieldDetail) {\n this.#fields.set(name, new Field(name, detail));\n }\n #getAllFields() {\n return [...this.#fields.keys()].filter((key) => {\n return !this.#fields.get(key)!.detail?.notRender;\n });\n }\n\n getAllValues() {\n const allFields = this.#getAllFields();\n const formData = Object.fromEntries(\n Object.entries(this.#formData)\n .map(([k, v]) => {\n if (allFields.includes(k)) {\n return [k, v];\n }\n return [];\n })\n .filter((item) => item.length)\n );\n return formData;\n }\n\n setInitValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n this.#initData = values;\n this.setFieldsValue(values, isEmitValuseChange);\n }\n\n setFieldsValueByInitData(name: string) {\n const value = this.#initData?.[name];\n if (!isNil(value)) {\n this.#formData[name] = value;\n this.publish(`${name}.init.value`, value);\n }\n }\n\n setFieldsValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n const newFormData: Record<string, unknown> = {\n ...this.#formData,\n };\n Object.entries(values).forEach(([k, v]) => {\n newFormData[k] = v;\n this.#initData && (this.#initData[k] = v);\n this.publish(`${k}.init.value`, v);\n });\n this.#formData = newFormData;\n\n if (isEmitValuseChange) {\n this.#options?.onValuesChanged?.({\n changedValues: values,\n allValues: this.getAllValues(),\n });\n }\n }\n\n resetFields(name?: string) {\n if (name) {\n this.removeField(name);\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#fields.clear();\n this.publish(\"reset.fields\", null);\n }\n }\n\n getFieldsValue(name?: string) {\n if (name) {\n return this.#formData[name];\n }\n return this.getAllValues();\n }\n\n removeField(name: string) {\n this.#fields.delete(name);\n }\n\n validateFields(\n callback: (err: boolean, value: any) => void\n ): boolean | Record<string, unknown> {\n const allFields = this.#getAllFields();\n const results: Array<MessageBody | undefined> = [];\n allFields.forEach((name) => {\n const field = this.#fields.get(name);\n if (field) {\n results.push(this.validateField(field.detail));\n }\n });\n\n if (results.some((result) => result?.type !== \"normal\")) {\n callback(\n true,\n results.filter((result) => result?.type !== \"normal\")\n );\n return false;\n } else {\n const formData = this.getAllValues();\n callback(false, formData);\n return formData;\n }\n }\n\n validateField(field: string | FieldDetail) {\n const fieldDetail =\n typeof field === \"string\" ? this.#fields.get(field)?.detail : field;\n if (!fieldDetail) return;\n const { name, label, validate } = fieldDetail;\n const validateValue = this.#formData[name];\n\n const messageBody = (message: string, type = \"error\") => {\n return {\n type,\n message,\n };\n };\n\n const getName = () => label ?? name;\n\n const valid = (validate: Validate, value: string): MessageBody => {\n const { required, pattern, message, min, max, validator } = validate;\n const label = getName();\n\n if (\n required &&\n (typeof value === \"object\"\n ? isEmpty(value)\n : typeof value === \"number\"\n ? false\n : !value)\n ) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n\n if (pattern && value) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n if (min && (!value || value.length < min)) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n\n if (max && value && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\n }\n\n if (validator) {\n let result = \"\";\n let parsedValidator = [];\n if (Array.isArray(validator)) {\n parsedValidator = validator;\n } else {\n parsedValidator.push(validator);\n }\n\n for (const v of parsedValidator) {\n result = v(value);\n\n if (result) {\n break;\n }\n }\n return typeof result === \"string\"\n ? messageBody(result, result ? \"error\" : \"normal\")\n : (result as MessageBody);\n }\n\n return messageBody(\"\", \"normal\");\n };\n\n const result = valid(validate, validateValue as string);\n this.publish(`${name}.validate`, result);\n return result;\n }\n\n getValueFromEvent(e: React.ChangeEvent): any {\n if (!e || !e.target) {\n return e;\n }\n const target = e.target as HTMLInputElement;\n return target.type === \"checkbox\" ? target.checked : target.value;\n }\n\n resetValidateState() {\n this.publish(`reset.validate`, null);\n }\n\n onWatch(\n name: string,\n event: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n const value = this.getValueFromEvent(event);\n // default first params is value\n const realValue = Array.isArray(value) ? value[0] : value;\n\n this.setFieldsValue({\n [name]: realValue,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.apply(this, value);\n }\n }\n\n onChange(\n name: string,\n value: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n this.setFieldsValue({\n [name]: value,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.(value);\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/esm/PubSub.js
CHANGED
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
3
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
4
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
4
5
|
import { remove } from "lodash";
|
|
5
6
|
var _topics = /*#__PURE__*/new WeakMap();
|
|
6
7
|
var _subUid = /*#__PURE__*/new WeakMap();
|
|
7
8
|
export class PubSub {
|
|
8
9
|
constructor() {
|
|
9
|
-
_classPrivateFieldInitSpec(this, _topics, {
|
|
10
|
-
|
|
11
|
-
value: {}
|
|
12
|
-
});
|
|
13
|
-
_classPrivateFieldInitSpec(this, _subUid, {
|
|
14
|
-
writable: true,
|
|
15
|
-
value: 0
|
|
16
|
-
});
|
|
10
|
+
_classPrivateFieldInitSpec(this, _topics, {});
|
|
11
|
+
_classPrivateFieldInitSpec(this, _subUid, 0);
|
|
17
12
|
}
|
|
18
13
|
publish(topic, body) {
|
|
19
|
-
if (!_classPrivateFieldGet(
|
|
14
|
+
if (!_classPrivateFieldGet(_topics, this)[topic]) {
|
|
20
15
|
return;
|
|
21
16
|
}
|
|
22
|
-
var subscribers = _classPrivateFieldGet(
|
|
17
|
+
var subscribers = _classPrivateFieldGet(_topics, this)[topic];
|
|
23
18
|
var len = subscribers ? subscribers.length : 0;
|
|
24
19
|
while (len--) {
|
|
25
20
|
subscribers[len].func(topic, body);
|
|
@@ -27,20 +22,20 @@ export class PubSub {
|
|
|
27
22
|
}
|
|
28
23
|
subscribe(topic, fn) {
|
|
29
24
|
var _this$subUid;
|
|
30
|
-
if (!_classPrivateFieldGet(
|
|
31
|
-
_classPrivateFieldGet(
|
|
25
|
+
if (!_classPrivateFieldGet(_topics, this)[topic]) {
|
|
26
|
+
_classPrivateFieldGet(_topics, this)[topic] = [];
|
|
32
27
|
}
|
|
33
|
-
var token = _classPrivateFieldSet(
|
|
34
|
-
_classPrivateFieldGet(
|
|
28
|
+
var token = _classPrivateFieldSet(_subUid, this, (_this$subUid = _classPrivateFieldGet(_subUid, this), ++_this$subUid)).toString();
|
|
29
|
+
_classPrivateFieldGet(_topics, this)[topic].push({
|
|
35
30
|
token: token,
|
|
36
31
|
func: fn
|
|
37
32
|
});
|
|
38
33
|
return token;
|
|
39
34
|
}
|
|
40
35
|
unsubscribe(token) {
|
|
41
|
-
for (var m in _classPrivateFieldGet(
|
|
42
|
-
if (_classPrivateFieldGet(
|
|
43
|
-
remove(_classPrivateFieldGet(
|
|
36
|
+
for (var m in _classPrivateFieldGet(_topics, this)) {
|
|
37
|
+
if (_classPrivateFieldGet(_topics, this)[m]) {
|
|
38
|
+
remove(_classPrivateFieldGet(_topics, this)[m], item => item.token === token);
|
|
44
39
|
}
|
|
45
40
|
}
|
|
46
41
|
}
|