@materialui-reactjs/admin 1.0.6 → 2.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/CHANGELOG.md +292 -0
- package/LICENSE +21 -0
- package/README.md +584 -453
- package/dist/Common-1GAoFU4L.js +261 -0
- package/dist/Common-BBYXssMH.cjs +11 -0
- package/dist/Env-DoS-iQjs.cjs +1 -0
- package/dist/Env-SHztUA3s.js +16 -0
- package/dist/HeaderUpdate-DIwc8EAA.cjs +1 -0
- package/dist/{chunks/HeaderUpdate-DuS-gHNR.js → HeaderUpdate-UXncZcAD.js} +8 -4
- package/dist/SortableItem-C3KzO8Xh.cjs +1 -0
- package/dist/SpinnerLoader-BujLjvC3.cjs +1 -0
- package/dist/{chunks/SpinnerLoader-h8RDIarB.js → SpinnerLoader-CyhOQC6d.js} +2 -2
- package/dist/UDragFile-BqGt1-gK.js +96 -0
- package/dist/UDragFile-oJ05zNLR.cjs +1 -0
- package/dist/Validator-BcydBvOg.cjs +1 -0
- package/dist/{chunks/Validator-CXYkI7vJ.js → Validator-aKlMgoxl.js} +50 -42
- package/dist/assets/css/form.css +1 -1
- package/dist/assets/css/index.css +1 -1
- package/dist/common-CHDJQ2Ca.cjs +1 -0
- package/dist/common-DVWX6AUQ.js +19 -0
- package/dist/components/echarts/index.cjs +1 -0
- package/dist/components/echarts/index.js +1 -1
- package/dist/components/form/AdvancedMultiSelect.d.ts +6 -3
- package/dist/components/form/AsxhUImages.d.ts +1 -1
- package/dist/components/form/BoxAddRow.d.ts +11 -1
- package/dist/components/form/CheckTreeBox.d.ts +12 -3
- package/dist/components/form/DateInput.d.ts +2 -1
- package/dist/components/form/EfFile.d.ts +2 -1
- package/dist/components/form/EfImage.d.ts +1 -1
- package/dist/components/form/EfImages.d.ts +1 -1
- package/dist/components/form/PImage.d.ts +1 -1
- package/dist/components/form/SelectAddRowBox.d.ts +9 -5
- package/dist/components/form/UDragFile.d.ts +1 -1
- package/dist/components/form/UFile.d.ts +1 -1
- package/dist/components/form/UFiles.d.ts +1 -1
- package/dist/components/form/UImages.d.ts +1 -1
- package/dist/components/form/index.cjs +1 -0
- package/dist/components/form/index.js +2 -2
- package/dist/components/loader/SpinnerLoader.d.ts +5 -1
- package/dist/components/loader/index.cjs +1 -0
- package/dist/components/loader/index.js +1 -2
- package/dist/components/meta/CardTable.d.ts +7 -3
- package/dist/components/meta/CardTable.types.d.ts +51 -0
- package/dist/components/meta/CusTooltip.d.ts +1 -1
- package/dist/components/meta/Head.d.ts +1 -1
- package/dist/components/meta/HeaderUpdate.d.ts +5 -1
- package/dist/components/meta/ModalForm.d.ts +41 -11
- package/dist/components/meta/Navtabs.d.ts +1 -1
- package/dist/components/meta/SearchBox.d.ts +6 -4
- package/dist/components/meta/SortableItem.d.ts +1 -1
- package/dist/components/meta/index.cjs +1 -0
- package/dist/components/meta/index.d.ts +1 -0
- package/dist/components/meta/index.js +3 -3
- package/dist/components/sidebar/Sidebar.types.d.ts +9 -7
- package/dist/components/sidebar/index.cjs +1 -0
- package/dist/components/sidebar/index.js +1 -1
- package/dist/components/single/Detail.d.ts +8 -3
- package/dist/components/single/Fields.d.ts +10 -4
- package/dist/components/single/Import.d.ts +8 -3
- package/dist/components/single/List.d.ts +18 -3
- package/dist/components/single/Update.d.ts +8 -3
- package/dist/components/single/UpdateDetail.d.ts +3 -2
- package/dist/components/single/UpdateTableDetail.d.ts +3 -3
- package/dist/components/single/index.cjs +1 -0
- package/dist/components/single/index.js +1 -1
- package/dist/components/top-navbar/index.cjs +1 -0
- package/dist/components/top-navbar/index.js +78 -2
- package/dist/echarts-Dla22xas.cjs +1 -0
- package/dist/{chunks/form-CPkpL5eA.js → form-BNAbGCXe.js} +6860 -6794
- package/dist/form-DUL_O4IY.cjs +65 -0
- package/dist/hook/common.d.ts +65 -0
- package/dist/hook/detail.cjs +1 -0
- package/dist/hook/detail.d.ts +9 -15
- package/dist/hook/detail.js +1 -11
- package/dist/hook/fields.cjs +1 -0
- package/dist/hook/fields.d.ts +6 -14
- package/dist/hook/fields.js +1 -11
- package/dist/hook/import.d.ts +6 -11
- package/dist/hook/index.cjs +1 -0
- package/dist/hook/index.d.ts +28 -20
- package/dist/hook/index.js +13 -10
- package/dist/hook/update.cjs +1 -0
- package/dist/hook/update.d.ts +9 -17
- package/dist/hook/update.js +2 -2
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +14 -11
- package/dist/meta-CXHXSPbq.cjs +1 -0
- package/dist/{chunks/meta-4qPWijBT.js → meta-Dhll5zt9.js} +45 -39
- package/dist/rolldown-runtime-BocRIvOZ.cjs +1 -0
- package/dist/{chunks/sidebar-Dj4Xr9du.js → sidebar-CVORMKBY.js} +9 -12
- package/dist/sidebar-G5Ody16K.cjs +1 -0
- package/dist/{chunks/single-CRF61o_U.js → single-CqD5cgNi.js} +353 -259
- package/dist/single-CsUaxEjQ.cjs +1 -0
- package/dist/style.cjs +0 -0
- package/dist/style.d.ts +0 -0
- package/dist/style.js +0 -0
- package/dist/types/Menu.d.ts +25 -0
- package/dist/utils/Common.d.ts +124 -16
- package/dist/utils/CusRoute.d.ts +21 -1
- package/dist/utils/Env.d.ts +23 -2
- package/dist/utils/Group.d.ts +12 -1
- package/dist/utils/Validator.d.ts +34 -12
- package/dist/utils/index.cjs +11 -0
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.js +181 -149
- package/package.json +190 -163
- package/dist/chunks/Common-BURf0rBN.js +0 -222
- package/dist/chunks/Env-DRXhvUcb.js +0 -16
- package/dist/chunks/UDragFile-BnUR3riq.js +0 -92
- package/dist/chunks/loader-BUiOnhOH.js +0 -1
- package/dist/chunks/top-navbar-Bob0gMUh.js +0 -78
- package/scripts/postinstall.cjs +0 -80
- /package/dist/{chunks/SortableItem-B4-Zsso3.js → SortableItem-B4-Zsso3.js} +0 -0
- /package/dist/{chunks/echarts-CRmndsxC.js → echarts-CRmndsxC.js} +0 -0
- /package/dist/{components/meta/Pdfviewer.d.ts → hook/import.cjs} +0 -0
|
@@ -4,11 +4,11 @@ var e = (e) => {
|
|
|
4
4
|
let { name: n, type: r, value: i } = t(e);
|
|
5
5
|
if (r === "file") {
|
|
6
6
|
let t = e.target.files;
|
|
7
|
-
return { [n]: t
|
|
7
|
+
return { [n]: t?.[0] ?? null };
|
|
8
8
|
}
|
|
9
9
|
return { [n]: i };
|
|
10
10
|
}, t = (e) => {
|
|
11
|
-
let { name: t, type: n, value: r } = e.target, i = t.split(/[
|
|
11
|
+
let { name: t, type: n, value: r } = e.target, i = t.split(/[{}]+/).filter(Boolean), a = i.shift();
|
|
12
12
|
if (!a || i.length === 0) return {
|
|
13
13
|
name: t,
|
|
14
14
|
type: n,
|
|
@@ -27,7 +27,15 @@ var e = (e) => {
|
|
|
27
27
|
let i = t[e], a = r[e];
|
|
28
28
|
i && typeof i == "object" && !Array.isArray(i) && a && typeof a == "object" && !Array.isArray(a) ? r[e] = n(a, i) : r[e] = i;
|
|
29
29
|
}), r;
|
|
30
|
-
}, r =
|
|
30
|
+
}, r = null, i = () => {
|
|
31
|
+
if (r) return r;
|
|
32
|
+
let e = typeof window < "u" ? window.jQuery ?? window.$ : void 0;
|
|
33
|
+
if (typeof e != "function") throw Error("[@materialui-reactjs/admin] Validator cần jQuery. Hãy thêm \"jquery\" vào dependencies và nạp nó TRƯỚC khi dùng Validator.");
|
|
34
|
+
return r = e, r;
|
|
35
|
+
}, a = new Proxy((() => {}), {
|
|
36
|
+
apply: (e, t, n) => i()(...n),
|
|
37
|
+
get: (e, t) => i()[t]
|
|
38
|
+
}), o = class e {
|
|
31
39
|
options;
|
|
32
40
|
validators;
|
|
33
41
|
$element;
|
|
@@ -59,7 +67,7 @@ var e = (e) => {
|
|
|
59
67
|
},
|
|
60
68
|
match: function(t) {
|
|
61
69
|
let n = t.attr("data-match");
|
|
62
|
-
return n && t.val() !==
|
|
70
|
+
return n && t.val() !== a(n).val() && e.DEFAULTS.errors.match;
|
|
63
71
|
},
|
|
64
72
|
minlength: function(t) {
|
|
65
73
|
let n = Number(t.attr("data-minlength"));
|
|
@@ -87,93 +95,93 @@ var e = (e) => {
|
|
|
87
95
|
}
|
|
88
96
|
};
|
|
89
97
|
constructor(t, n = !1) {
|
|
90
|
-
this.options = n || e.DEFAULTS, this.validators =
|
|
91
|
-
this.clearErrors(
|
|
98
|
+
this.options = n || e.DEFAULTS, this.validators = a.extend({}, e.VALIDATORS), this.$element = a(t), this.$btn = this.$element.find("button[type=\"submit\"], input[type=\"submit\"], .submitAjax"), this.$inputs = this.$element.find(e.INPUT_SELECTOR).add(this.$element.find("[data-validate=\"true\"]")).not(this.$element.find("[data-validate=\"false\"]").each((e, t) => {
|
|
99
|
+
this.clearErrors(a(t));
|
|
92
100
|
}));
|
|
93
101
|
}
|
|
94
102
|
static getValue(e) {
|
|
95
|
-
return e.is("[type=\"checkbox\"]") ? !!e.prop("checked") : e.is("[type=\"radio\"]") ?
|
|
103
|
+
return e.is("[type=\"checkbox\"]") ? !!e.prop("checked") : e.is("[type=\"radio\"]") ? a(`[name="${e.attr("name")}"]:checked`).length > 0 : e.is("select[multiple]") ? (e.val() ?? []).length : e.val() ?? "";
|
|
96
104
|
}
|
|
97
105
|
update = () => {
|
|
98
106
|
let t = this;
|
|
99
107
|
return this.$inputs = this.$element.find(e.INPUT_SELECTOR).add(this.$element.find("[data-validate=\"true\"]")).not(this.$element.find("[data-validate=\"false\"]").each((e, n) => {
|
|
100
|
-
t.clearErrors(
|
|
108
|
+
t.clearErrors(a(n));
|
|
101
109
|
})), this.toggleSubmit(), this;
|
|
102
110
|
};
|
|
103
111
|
onInput = (e) => {
|
|
104
|
-
let t = this, n =
|
|
105
|
-
this.$inputs.is(n) && this.validateInput(n,
|
|
112
|
+
let t = this, n = a(e.target), r = e.type !== "focusout";
|
|
113
|
+
this.$inputs.is(n) && this.validateInput(n, r)?.done(function() {
|
|
106
114
|
t.toggleSubmit();
|
|
107
115
|
});
|
|
108
116
|
};
|
|
109
117
|
validateInput = (e, t) => {
|
|
110
118
|
let n = e.data("bs.validator.errors");
|
|
111
119
|
e.is("[type=\"radio\"]") && (e = this.$element.find("input[name=\"" + e.attr("name") + "\"]"));
|
|
112
|
-
let
|
|
113
|
-
if (this.$element.trigger(
|
|
114
|
-
let
|
|
120
|
+
let r = a.Event("validate.bs.validator", { relatedTarget: e[0] });
|
|
121
|
+
if (this.$element.trigger(r), r.isDefaultPrevented()) return;
|
|
122
|
+
let i = this;
|
|
115
123
|
return this.runValidators(e).done(function(o) {
|
|
116
|
-
e.data("bs.validator.errors", o), o.length ? t ?
|
|
124
|
+
e.data("bs.validator.errors", o), o.length ? t ? i.defer(e, i.showErrors) : i.showErrors(e) : i.clearErrors(e), (!n || o.toString() !== n.toString()) && (r = o.length ? a.Event("invalid.bs.validator", {
|
|
117
125
|
relatedTarget: e[0],
|
|
118
126
|
detail: o
|
|
119
|
-
}) :
|
|
127
|
+
}) : a.Event("valid.bs.validator", {
|
|
120
128
|
relatedTarget: e[0],
|
|
121
129
|
detail: n
|
|
122
|
-
}),
|
|
130
|
+
}), i.$element.trigger(r)), i.toggleSubmit(), i.$element.trigger(a.Event("validated.bs.validator", { relatedTarget: e[0] }));
|
|
123
131
|
});
|
|
124
132
|
};
|
|
125
133
|
runValidators = (t) => {
|
|
126
|
-
let n = [],
|
|
127
|
-
|
|
128
|
-
function
|
|
134
|
+
let n = [], r = a.Deferred(), i = t.data("bs.validator.deferred");
|
|
135
|
+
i && i.reject(), t.data("bs.validator.deferred", r);
|
|
136
|
+
function o(e) {
|
|
129
137
|
return t.attr("data-" + e + "-error");
|
|
130
138
|
}
|
|
131
|
-
function
|
|
139
|
+
function s() {
|
|
132
140
|
let e = t[0];
|
|
133
141
|
if (!(e instanceof HTMLInputElement) && !(e instanceof HTMLSelectElement) && !(e instanceof HTMLTextAreaElement)) return null;
|
|
134
142
|
let n = e.validity;
|
|
135
143
|
return n.typeMismatch ? t.attr("data-type-error") ?? null : n.patternMismatch ? t.attr("data-pattern-error") ?? null : n.stepMismatch ? t.attr("data-step-error") ?? null : n.rangeOverflow ? t.attr("data-max-error") ?? null : n.rangeUnderflow ? t.attr("data-min-error") ?? null : n.valueMissing ? t.attr("data-required-error") ?? null : null;
|
|
136
144
|
}
|
|
137
|
-
function
|
|
145
|
+
function c() {
|
|
138
146
|
return t.attr("data-error");
|
|
139
147
|
}
|
|
140
|
-
function
|
|
141
|
-
return
|
|
148
|
+
function l(e) {
|
|
149
|
+
return o(e) || s() || c();
|
|
142
150
|
}
|
|
143
|
-
return
|
|
144
|
-
let a
|
|
145
|
-
(e.getValue(t) || t.attr("required")) && (t.attr("data-" + r) !== void 0 || r == "native") && (a = i.call(this, t)) && (a =
|
|
146
|
-
}, this)),
|
|
151
|
+
return a.each(this.validators, a.proxy(function(r, i) {
|
|
152
|
+
let a;
|
|
153
|
+
(e.getValue(t) || t.attr("required")) && (t.attr("data-" + r) !== void 0 || r == "native") && (a = i.call(this, t)) && (a = l(r) || a, n.indexOf(a) === -1 && n.push(a));
|
|
154
|
+
}, this)), r.resolve(n), r.promise();
|
|
147
155
|
};
|
|
148
156
|
validate = () => {
|
|
149
157
|
let e = this;
|
|
150
|
-
return
|
|
158
|
+
return a.when(this.$inputs.map((t, n) => e.validateInput(a(n), !1))).then(function() {
|
|
151
159
|
e.toggleSubmit(), e.focusError();
|
|
152
160
|
}), this;
|
|
153
161
|
};
|
|
154
162
|
focusError = () => {
|
|
155
163
|
if (!this.options.focus) return;
|
|
156
164
|
let t = this.$element.find(".has-error:first :input");
|
|
157
|
-
t.length !== 0 && (
|
|
165
|
+
t.length !== 0 && (a("html, body").animate({ scrollTop: t.offset().top - e.FOCUS_OFFSET }, 250), t.focus());
|
|
158
166
|
};
|
|
159
167
|
showErrors = (e) => {
|
|
160
168
|
this.options.html;
|
|
161
|
-
let t = e.data("bs.validator.errors"), n = e.closest(".form-group"),
|
|
162
|
-
t.length && (t =
|
|
163
|
-
let t =
|
|
169
|
+
let t = e.data("bs.validator.errors"), n = e.closest(".form-group"), r = n.find(".form-control-feedback");
|
|
170
|
+
t.length && (t = a("<ul/>").addClass("list-unstyled").append(a.map(t, (e) => {
|
|
171
|
+
let t = a("<li/>");
|
|
164
172
|
return this.options.html ? t.html(e) : t.text(e);
|
|
165
|
-
})), n.addClass("has-error has-danger"), n.find(".invalid-tooltip, .invalid-feedback").remove(), n.find(".select2,.form-control").removeClass("is-valid").addClass("is-invalid"), n.append(`<div class="invalid-feedback"><ul class="list-unstyled">${t.html()}<ul/></div>`), n.removeClass("has-success"), n.hasClass("has-feedback"),
|
|
173
|
+
})), n.addClass("has-error has-danger"), n.find(".invalid-tooltip, .invalid-feedback").remove(), n.find(".select2,.form-control").removeClass("is-valid").addClass("is-invalid"), n.append(`<div class="invalid-feedback"><ul class="list-unstyled">${t.html()}<ul/></div>`), n.removeClass("has-success"), n.hasClass("has-feedback"), r.removeClass(this.options.feedback?.success), r.addClass(this.options.feedback?.error));
|
|
166
174
|
};
|
|
167
175
|
clearErrors = (e) => {
|
|
168
176
|
let t = e.closest(".form-group"), n = t.find(".form-control-feedback");
|
|
169
177
|
t.removeClass("has-error has-danger has-success"), t.find(".invalid-tooltip, .invalid-feedback").remove(), t.find(".select2,.form-control").addClass("is-valid").removeClass("is-invalid"), t.addClass("has-success"), t.hasClass("has-feedback"), n.removeClass(this.options.feedback?.error), n.removeClass(this.options.feedback?.success), n.addClass(this.options.feedback?.success);
|
|
170
178
|
};
|
|
171
179
|
hasErrors = () => !!this.$inputs.filter(function() {
|
|
172
|
-
return !!(
|
|
180
|
+
return !!(a(this).data("bs.validator.errors") || []).length;
|
|
173
181
|
}).length;
|
|
174
182
|
isIncomplete = () => !!this.$inputs.filter("[required]").filter((t, n) => {
|
|
175
|
-
let
|
|
176
|
-
return !(typeof
|
|
183
|
+
let r = e.getValue(a(n));
|
|
184
|
+
return !(typeof r == "string" ? r.trim() : r);
|
|
177
185
|
}).length;
|
|
178
186
|
onSubmit = (e) => {
|
|
179
187
|
this.validate(), (this.isIncomplete() || this.hasErrors()) && e.preventDefault();
|
|
@@ -186,21 +194,21 @@ var e = (e) => {
|
|
|
186
194
|
window.clearTimeout(e.data("bs.validator.timeout")), e.data("bs.validator.timeout", window.setTimeout(t, this.options.delay));
|
|
187
195
|
};
|
|
188
196
|
reset = () => (this.$element.find(".form-control-feedback").removeClass(this.options?.feedback.error).removeClass(this.options.feedback.success), this.$inputs.removeData(["bs.validator.errors", "bs.validator.deferred"]).each(() => {
|
|
189
|
-
let e =
|
|
197
|
+
let e = a(this), t = e.data("bs.validator.timeout");
|
|
190
198
|
window.clearTimeout(t), e.removeData("bs.validator.timeout");
|
|
191
199
|
}), this.$element.find(".invalid-tooltip, .invalid-feedback").each(() => {
|
|
192
|
-
let e =
|
|
200
|
+
let e = a(this), t = e.data("bs.validator.originalContent");
|
|
193
201
|
e.removeData("bs.validator.originalContent").html(t);
|
|
194
202
|
}), this.$btn.removeClass("disabled"), this.$element.find(".has-error, .has-danger, .has-success, .is-invalid, .is-valid").removeClass("has-error has-danger has-success is-invalid is-valid"), this);
|
|
195
203
|
destroy = () => (this.reset(), this.$element.removeAttr("novalidate").removeData("bs.validator").off(".bs.validator"), this.$inputs.off(".bs.validator"), this.options = null, this.validators = null, this.$element = null, this.$btn = null, this.$inputs = null, this);
|
|
196
204
|
run = () => {
|
|
197
205
|
this.update(), this.$element.on("input.bs.validator change.bs.validator focusout.bs.validator", this.onInput.bind(this)), this.$element.on("submit.bs.validator", this.onSubmit.bind(this)), this.$element.on("reset.bs.validator", this.reset.bind(this)), this.$element.find("[data-match]").each(function() {
|
|
198
|
-
let t =
|
|
199
|
-
n &&
|
|
206
|
+
let t = a(this), n = t.attr("data-match");
|
|
207
|
+
n && a(n).on("input.bs.validator", function() {
|
|
200
208
|
e.getValue(t) && t.trigger("input.bs.validator");
|
|
201
209
|
});
|
|
202
|
-
}), this.$inputs.filter((t, n) => e.getValue(
|
|
210
|
+
}), this.$inputs.filter((t, n) => e.getValue(a(n)) && !a(this).closest(".has-error").length).trigger("focusout"), this.$element.attr("novalidate", !0);
|
|
203
211
|
};
|
|
204
212
|
};
|
|
205
213
|
//#endregion
|
|
206
|
-
export { t as i, n, e as r,
|
|
214
|
+
export { t as i, n, e as r, o as t };
|