@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.
Files changed (116) hide show
  1. package/CHANGELOG.md +292 -0
  2. package/LICENSE +21 -0
  3. package/README.md +584 -453
  4. package/dist/Common-1GAoFU4L.js +261 -0
  5. package/dist/Common-BBYXssMH.cjs +11 -0
  6. package/dist/Env-DoS-iQjs.cjs +1 -0
  7. package/dist/Env-SHztUA3s.js +16 -0
  8. package/dist/HeaderUpdate-DIwc8EAA.cjs +1 -0
  9. package/dist/{chunks/HeaderUpdate-DuS-gHNR.js → HeaderUpdate-UXncZcAD.js} +8 -4
  10. package/dist/SortableItem-C3KzO8Xh.cjs +1 -0
  11. package/dist/SpinnerLoader-BujLjvC3.cjs +1 -0
  12. package/dist/{chunks/SpinnerLoader-h8RDIarB.js → SpinnerLoader-CyhOQC6d.js} +2 -2
  13. package/dist/UDragFile-BqGt1-gK.js +96 -0
  14. package/dist/UDragFile-oJ05zNLR.cjs +1 -0
  15. package/dist/Validator-BcydBvOg.cjs +1 -0
  16. package/dist/{chunks/Validator-CXYkI7vJ.js → Validator-aKlMgoxl.js} +50 -42
  17. package/dist/assets/css/form.css +1 -1
  18. package/dist/assets/css/index.css +1 -1
  19. package/dist/common-CHDJQ2Ca.cjs +1 -0
  20. package/dist/common-DVWX6AUQ.js +19 -0
  21. package/dist/components/echarts/index.cjs +1 -0
  22. package/dist/components/echarts/index.js +1 -1
  23. package/dist/components/form/AdvancedMultiSelect.d.ts +6 -3
  24. package/dist/components/form/AsxhUImages.d.ts +1 -1
  25. package/dist/components/form/BoxAddRow.d.ts +11 -1
  26. package/dist/components/form/CheckTreeBox.d.ts +12 -3
  27. package/dist/components/form/DateInput.d.ts +2 -1
  28. package/dist/components/form/EfFile.d.ts +2 -1
  29. package/dist/components/form/EfImage.d.ts +1 -1
  30. package/dist/components/form/EfImages.d.ts +1 -1
  31. package/dist/components/form/PImage.d.ts +1 -1
  32. package/dist/components/form/SelectAddRowBox.d.ts +9 -5
  33. package/dist/components/form/UDragFile.d.ts +1 -1
  34. package/dist/components/form/UFile.d.ts +1 -1
  35. package/dist/components/form/UFiles.d.ts +1 -1
  36. package/dist/components/form/UImages.d.ts +1 -1
  37. package/dist/components/form/index.cjs +1 -0
  38. package/dist/components/form/index.js +2 -2
  39. package/dist/components/loader/SpinnerLoader.d.ts +5 -1
  40. package/dist/components/loader/index.cjs +1 -0
  41. package/dist/components/loader/index.js +1 -2
  42. package/dist/components/meta/CardTable.d.ts +7 -3
  43. package/dist/components/meta/CardTable.types.d.ts +51 -0
  44. package/dist/components/meta/CusTooltip.d.ts +1 -1
  45. package/dist/components/meta/Head.d.ts +1 -1
  46. package/dist/components/meta/HeaderUpdate.d.ts +5 -1
  47. package/dist/components/meta/ModalForm.d.ts +41 -11
  48. package/dist/components/meta/Navtabs.d.ts +1 -1
  49. package/dist/components/meta/SearchBox.d.ts +6 -4
  50. package/dist/components/meta/SortableItem.d.ts +1 -1
  51. package/dist/components/meta/index.cjs +1 -0
  52. package/dist/components/meta/index.d.ts +1 -0
  53. package/dist/components/meta/index.js +3 -3
  54. package/dist/components/sidebar/Sidebar.types.d.ts +9 -7
  55. package/dist/components/sidebar/index.cjs +1 -0
  56. package/dist/components/sidebar/index.js +1 -1
  57. package/dist/components/single/Detail.d.ts +8 -3
  58. package/dist/components/single/Fields.d.ts +10 -4
  59. package/dist/components/single/Import.d.ts +8 -3
  60. package/dist/components/single/List.d.ts +18 -3
  61. package/dist/components/single/Update.d.ts +8 -3
  62. package/dist/components/single/UpdateDetail.d.ts +3 -2
  63. package/dist/components/single/UpdateTableDetail.d.ts +3 -3
  64. package/dist/components/single/index.cjs +1 -0
  65. package/dist/components/single/index.js +1 -1
  66. package/dist/components/top-navbar/index.cjs +1 -0
  67. package/dist/components/top-navbar/index.js +78 -2
  68. package/dist/echarts-Dla22xas.cjs +1 -0
  69. package/dist/{chunks/form-CPkpL5eA.js → form-BNAbGCXe.js} +6860 -6794
  70. package/dist/form-DUL_O4IY.cjs +65 -0
  71. package/dist/hook/common.d.ts +65 -0
  72. package/dist/hook/detail.cjs +1 -0
  73. package/dist/hook/detail.d.ts +9 -15
  74. package/dist/hook/detail.js +1 -11
  75. package/dist/hook/fields.cjs +1 -0
  76. package/dist/hook/fields.d.ts +6 -14
  77. package/dist/hook/fields.js +1 -11
  78. package/dist/hook/import.d.ts +6 -11
  79. package/dist/hook/index.cjs +1 -0
  80. package/dist/hook/index.d.ts +28 -20
  81. package/dist/hook/index.js +13 -10
  82. package/dist/hook/update.cjs +1 -0
  83. package/dist/hook/update.d.ts +9 -17
  84. package/dist/hook/update.js +2 -2
  85. package/dist/index.cjs +1 -0
  86. package/dist/index.d.ts +16 -0
  87. package/dist/index.js +14 -11
  88. package/dist/meta-CXHXSPbq.cjs +1 -0
  89. package/dist/{chunks/meta-4qPWijBT.js → meta-Dhll5zt9.js} +45 -39
  90. package/dist/rolldown-runtime-BocRIvOZ.cjs +1 -0
  91. package/dist/{chunks/sidebar-Dj4Xr9du.js → sidebar-CVORMKBY.js} +9 -12
  92. package/dist/sidebar-G5Ody16K.cjs +1 -0
  93. package/dist/{chunks/single-CRF61o_U.js → single-CqD5cgNi.js} +353 -259
  94. package/dist/single-CsUaxEjQ.cjs +1 -0
  95. package/dist/style.cjs +0 -0
  96. package/dist/style.d.ts +0 -0
  97. package/dist/style.js +0 -0
  98. package/dist/types/Menu.d.ts +25 -0
  99. package/dist/utils/Common.d.ts +124 -16
  100. package/dist/utils/CusRoute.d.ts +21 -1
  101. package/dist/utils/Env.d.ts +23 -2
  102. package/dist/utils/Group.d.ts +12 -1
  103. package/dist/utils/Validator.d.ts +34 -12
  104. package/dist/utils/index.cjs +11 -0
  105. package/dist/utils/index.d.ts +2 -1
  106. package/dist/utils/index.js +181 -149
  107. package/package.json +190 -163
  108. package/dist/chunks/Common-BURf0rBN.js +0 -222
  109. package/dist/chunks/Env-DRXhvUcb.js +0 -16
  110. package/dist/chunks/UDragFile-BnUR3riq.js +0 -92
  111. package/dist/chunks/loader-BUiOnhOH.js +0 -1
  112. package/dist/chunks/top-navbar-Bob0gMUh.js +0 -78
  113. package/scripts/postinstall.cjs +0 -80
  114. /package/dist/{chunks/SortableItem-B4-Zsso3.js → SortableItem-B4-Zsso3.js} +0 -0
  115. /package/dist/{chunks/echarts-CRmndsxC.js → echarts-CRmndsxC.js} +0 -0
  116. /package/dist/{components/meta/Pdfviewer.d.ts → hook/import.cjs} +0 -0
@@ -1,60 +1,71 @@
1
- import { n as e } from "./Env-DRXhvUcb.js";
2
- import { _ as t, b as n, c as r, g as i, i as a, t as o, v as s, y as c } from "./Common-BURf0rBN.js";
3
- import { n as l, r as u, t as d } from "./Validator-CXYkI7vJ.js";
4
- import { t as f } from "./UDragFile-BnUR3riq.js";
5
- import { t as p } from "./SpinnerLoader-h8RDIarB.js";
6
- import { a as m, c as h, d as g, i as _, l as v, n as y, o as b, r as x, s as S, t as C, u as w } from "./HeaderUpdate-DuS-gHNR.js";
7
- import T, { createRef as E } from "react";
8
- import { Fragment as D, jsx as O, jsxs as k } from "react/jsx-runtime";
9
- import { Form as A, Link as j } from "react-router-dom";
10
- import { Helmet as M } from "react-helmet-async";
11
- //#region src/hook/detail.ts
12
- var N = (e) => {
13
- e.preventDefault();
14
- let { name: t, type: n, value: r } = e.target;
15
- if (n === "file") {
16
- let n = e.target.files;
17
- return { [t]: n ? n[0] : null };
18
- }
19
- return { [t]: r };
20
- }, P = (e, t, n, r, i, a) => {
1
+ import { t as e } from "./Env-SHztUA3s.js";
2
+ import { _ as t, a as n, b as r, l as i, n as a, v as o, x as s, y as c } from "./Common-1GAoFU4L.js";
3
+ import { n as l, r as u, t as d } from "./Validator-aKlMgoxl.js";
4
+ import { t as f } from "./UDragFile-BqGt1-gK.js";
5
+ import { t as p } from "./SpinnerLoader-CyhOQC6d.js";
6
+ import { a as m, c as h, d as g, i as _, l as v, n as y, o as b, r as x, s as S, t as C, u as w } from "./HeaderUpdate-UXncZcAD.js";
7
+ import { n as T } from "./common-DVWX6AUQ.js";
8
+ import E, { createRef as D } from "react";
9
+ import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
10
+ import { Form as j, Link as M } from "react-router-dom";
11
+ import { Helmet as N } from "react-helmet-async";
12
+ //#region src/utils/Group.ts
13
+ var P = (e, t, n, r, i, a) => {
21
14
  if (!a) return !1;
22
- if (a == 1) return !0;
23
- for (let o of e) {
24
- if (o.module == t && o.controller == n && o.action == r && o.code == i && o.status !== 1) return o.isPer;
25
- if (o.subs && o.subs.length > 0 && !P(o.subs, t, n, r, i, a)) return !1;
15
+ if (a === 1) return !0;
16
+ if (!Array.isArray(e)) return !1;
17
+ for (let o of e) if (o) {
18
+ if (o.module === t && o.controller === n && o.action === r && Number(o.code) === Number(i)) return o.status !== 0 && !!o.isPer;
19
+ if (Array.isArray(o.subs) && o.subs.length > 0 && P(o.subs, t, n, r, i, a)) return !0;
26
20
  }
27
- return !0;
28
- }, { API_URL: F, ADMIN_URI: I } = await e(), L = class extends T.Component {
21
+ return !1;
22
+ }, F = class extends E.Component {
29
23
  effectRan = !1;
30
24
  module = "admins";
31
25
  controller = "";
32
26
  state = {
33
27
  data: { filter: {} },
34
- formValue: void 0,
28
+ formValue: {},
35
29
  item: void 0,
36
30
  isDetail: void 0
37
31
  };
38
32
  title = "";
39
33
  cUri = "";
40
- cLink = I + this.cUri;
41
- API_URL = F;
42
- ADMIN_URI = I;
34
+ _envOverride = {};
35
+ _cLinkOverride;
36
+ get API_URL() {
37
+ return this._envOverride.API_URL ?? e().API_URL ?? "";
38
+ }
39
+ set API_URL(e) {
40
+ this._envOverride.API_URL = e;
41
+ }
42
+ get ADMIN_URI() {
43
+ return this._envOverride.ADMIN_URI ?? e().ADMIN_URI ?? "";
44
+ }
45
+ set ADMIN_URI(e) {
46
+ this._envOverride.ADMIN_URI = e;
47
+ }
48
+ get cLink() {
49
+ return this._cLinkOverride ?? this.ADMIN_URI + this.cUri;
50
+ }
51
+ set cLink(e) {
52
+ this._cLinkOverride = e;
53
+ }
43
54
  getDataUrl = "";
44
55
  ctype = "application/json";
45
56
  fluid = !1;
46
57
  isBackUri = !0;
47
58
  debug = !1;
48
- renderForm = () => /* @__PURE__ */ O(D, {});
59
+ renderForm = () => /* @__PURE__ */ k(O, {});
49
60
  syncPermissionsAndState = async () => {
50
61
  let { menuData: e, user: t } = this.props, n = { isDetail: P(e, this.module, this.controller, "detail", 0, t.groupId) };
51
62
  this.setState(n, async () => {
52
- let e = r();
63
+ let e = i();
53
64
  if (e && n.isDetail) {
54
- let t = (await o(this.getDataUrl + "/" + e, {}, "GET", "application/json", !1))?.data;
65
+ let t = await a(this.getDataUrl + "/" + e, {}, "GET", "application/json", !1), n = t ? t.data : void 0;
55
66
  this.setState({
56
- item: t || !1,
57
- formValue: t ? JSON.parse(JSON.stringify(t)) : {}
67
+ item: n || !1,
68
+ formValue: n ? JSON.parse(JSON.stringify(n)) : {}
58
69
  }, async () => {
59
70
  await this.componentDidMountAfter();
60
71
  });
@@ -66,7 +77,7 @@ var N = (e) => {
66
77
  if (this.effectRan) return;
67
78
  this.effectRan = !0, this.props.user?.groupId && await this.syncPermissionsAndState();
68
79
  } catch (e) {
69
- e.message == "invalid_404" && this.props.navigate(this.cUri), s(e.message);
80
+ e.message == "invalid_404" && this.props.navigate(this.cUri), c(e.message);
70
81
  }
71
82
  }
72
83
  componentDidMount() {
@@ -74,7 +85,7 @@ var N = (e) => {
74
85
  }
75
86
  componentDidMountAfter = async () => {};
76
87
  renderHeaderDetail() {
77
- return /* @__PURE__ */ O(x, {
88
+ return /* @__PURE__ */ k(x, {
78
89
  adminUri: this.ADMIN_URI,
79
90
  title: this.title,
80
91
  cUri: this.cUri
@@ -82,7 +93,7 @@ var N = (e) => {
82
93
  }
83
94
  handleChange = async (e) => {
84
95
  e.preventDefault();
85
- let t = N(e);
96
+ let t = T(e);
86
97
  this.debug && console.log("handleChange:", e.target.name, e.target.value), this.setState((e) => ({ formValue: {
87
98
  ...e.formValue,
88
99
  ...t
@@ -90,15 +101,15 @@ var N = (e) => {
90
101
  };
91
102
  render() {
92
103
  let { isDetail: e, item: t } = this.state;
93
- return e ? t === !1 ? /* @__PURE__ */ O(_, {
104
+ return e ? t === !1 ? /* @__PURE__ */ k(_, {
94
105
  cUriTitle: this.title,
95
106
  cUri: this.cUri,
96
107
  title: this.title + " | Chi tiết"
97
- }) : /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(M, { children: /* @__PURE__ */ O("title", { children: this.title }) }), /* @__PURE__ */ k("div", {
108
+ }) : /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(N, { children: /* @__PURE__ */ k("title", { children: this.title }) }), /* @__PURE__ */ A("div", {
98
109
  className: `mb-3 ${this.fluid ? "container-fluid" : "container"}`,
99
- children: [this.renderHeaderDetail(), /* @__PURE__ */ O("div", {
110
+ children: [this.renderHeaderDetail(), /* @__PURE__ */ k("div", {
100
111
  className: "position-relative",
101
- children: /* @__PURE__ */ O(p, {
112
+ children: /* @__PURE__ */ k(p, {
102
113
  loading: !t,
103
114
  style: {
104
115
  minHeight: 200,
@@ -107,22 +118,26 @@ var N = (e) => {
107
118
  children: this.renderForm()
108
119
  })
109
120
  })]
110
- })] }) : /* @__PURE__ */ O(m, {
121
+ })] }) : /* @__PURE__ */ k(m, {
111
122
  cUriTitle: this.title,
112
123
  cUri: this.cUri,
113
124
  title: this.title + " | Chi tiết",
114
125
  fluid: this.fluid
115
126
  });
116
127
  }
117
- }, R = (e) => {
118
- e.preventDefault();
119
- let { name: t, type: n, value: r } = e.target;
120
- if (n === "file") {
121
- let n = e.target.files;
122
- return { [t]: n ? n[0] : null };
123
- }
124
- return { [t]: r };
125
- }, { API_URL: z, ADMIN_URI: B } = await e(), V = class extends T.Component {
128
+ };
129
+ //#endregion
130
+ //#region src/hook/common.ts
131
+ function I(e) {
132
+ if (!e) return;
133
+ let t = e.id;
134
+ if (t == null || t === "") return;
135
+ let n = Number(t);
136
+ return Number.isNaN(n) ? void 0 : n;
137
+ }
138
+ //#endregion
139
+ //#region src/components/single/Fields.tsx
140
+ var L = class extends E.Component {
126
141
  effectRan = !1;
127
142
  module = "admins";
128
143
  controller = "";
@@ -135,9 +150,26 @@ var N = (e) => {
135
150
  };
136
151
  title = "";
137
152
  cUri = "";
138
- cLink = B + this.cUri;
139
- API_URL = z;
140
- ADMIN_URI = B;
153
+ _envOverride = {};
154
+ _cLinkOverride;
155
+ get API_URL() {
156
+ return this._envOverride.API_URL ?? e().API_URL ?? "";
157
+ }
158
+ set API_URL(e) {
159
+ this._envOverride.API_URL = e;
160
+ }
161
+ get ADMIN_URI() {
162
+ return this._envOverride.ADMIN_URI ?? e().ADMIN_URI ?? "";
163
+ }
164
+ set ADMIN_URI(e) {
165
+ this._envOverride.ADMIN_URI = e;
166
+ }
167
+ get cLink() {
168
+ return this._cLinkOverride ?? this.ADMIN_URI + this.cUri;
169
+ }
170
+ set cLink(e) {
171
+ this._cLinkOverride = e;
172
+ }
141
173
  getDataUrl = "";
142
174
  editUrl = "";
143
175
  createUrl = "";
@@ -145,11 +177,11 @@ var N = (e) => {
145
177
  fluid = !1;
146
178
  isBackUri = !1;
147
179
  debug = !1;
148
- renderForm = () => /* @__PURE__ */ O(D, {});
149
- renderAfterForm = () => /* @__PURE__ */ O(D, {});
180
+ renderForm = () => /* @__PURE__ */ k(O, {});
181
+ renderAfterForm = () => /* @__PURE__ */ k(O, {});
150
182
  handleChange = async (e) => {
151
183
  e.preventDefault();
152
- let t = R(e);
184
+ let t = T(e);
153
185
  this.debug && console.log("handleChange:", e.target.name, e.target.value), this.setState((e) => ({ formValue: {
154
186
  ...e.formValue,
155
187
  ...t
@@ -158,11 +190,15 @@ var N = (e) => {
158
190
  syncPermissionsAndState = async () => {
159
191
  let { menuData: e, user: t } = this.props, n = { isDetail: P(e, this.module, this.controller, "detail", 0, t.groupId) };
160
192
  this.setState(n, async () => {
161
- let e = (await o(this.getDataUrl, { table: this.table }, "GET", "application/json", !1))?.data;
162
- this.setState({
163
- item: e || !1,
164
- formValue: e ? { ...e } : {}
165
- }), new d("#fieldUpdate").run();
193
+ try {
194
+ let e = await a(this.getDataUrl, { table: this.table }, "GET", "application/json", !1), t = e ? e.data : void 0;
195
+ this.setState({
196
+ item: t || !1,
197
+ formValue: t ? { ...t } : {}
198
+ }), new d("#fieldUpdate").run();
199
+ } catch (e) {
200
+ e.message == "invalid_404" && this.props.navigate(this.cUri), c(e.message);
201
+ }
166
202
  });
167
203
  };
168
204
  async initDidMount() {
@@ -170,7 +206,7 @@ var N = (e) => {
170
206
  if (this.effectRan) return;
171
207
  this.effectRan = !0, this.props.user?.groupId && (await this.syncPermissionsAndState(), await this.componentDidMountAfter());
172
208
  } catch (e) {
173
- e.message == "invalid_404" && this.props.navigate(this.cUri), s(e.message);
209
+ e.message == "invalid_404" && this.props.navigate(this.cUri), c(e.message);
174
210
  }
175
211
  }
176
212
  componentDidMount() {
@@ -179,13 +215,13 @@ var N = (e) => {
179
215
  componentDidMountAfter = async () => {};
180
216
  handleSubmit = async (e) => {
181
217
  e.preventDefault();
182
- let { formValue: t } = this.state, r = new d("#fieldUpdate");
183
- if (!r.hasErrors() && !r.isIncomplete()) {
184
- n("#fieldUpdate", !0);
218
+ let { formValue: t } = this.state, n = new d("#fieldUpdate");
219
+ if (!n.hasErrors() && !n.isIncomplete()) {
220
+ s("#fieldUpdate", !0);
185
221
  try {
186
222
  t.table ||= this.table;
187
- let e = await o(this.editUrl, t, "POST", this.ctype);
188
- if (c("Cập nhật thành công", "top-end", !0), e?.data?.id) {
223
+ let e = await a(this.editUrl, t, "POST", this.ctype);
224
+ if (r("Cập nhật thành công", "top-end", !0), e.data.id) {
189
225
  if (this.isBackUri) return this.props.navigate(this.cUri);
190
226
  this.props.navigate(this.cUri + "/fields"), this.setState({
191
227
  item: { ...e.data },
@@ -195,33 +231,33 @@ var N = (e) => {
195
231
  });
196
232
  }
197
233
  } catch (e) {
198
- s(e.message);
234
+ c(e.message);
199
235
  } finally {
200
- n("#fieldUpdate", !1);
236
+ s("#fieldUpdate", !1);
201
237
  }
202
238
  }
203
239
  };
204
240
  afterSubmit = async (e) => {};
205
241
  renderHeaderUpdate() {
206
- return /* @__PURE__ */ O(C, {
242
+ return /* @__PURE__ */ k(C, {
207
243
  adminUri: this.ADMIN_URI,
208
244
  title: this.title,
209
245
  cUri: this.cUri,
210
- itemId: this.state.item?.id
246
+ itemId: I(this.state.item)
211
247
  });
212
248
  }
213
249
  render() {
214
250
  let { isDetail: e, item: t } = this.state;
215
- return e === !1 ? /* @__PURE__ */ O(m, {
251
+ return e === !1 ? /* @__PURE__ */ k(m, {
216
252
  cUriTitle: this.title,
217
253
  cUri: this.cUri,
218
254
  title: this.title,
219
255
  fluid: this.fluid
220
- }) : /* @__PURE__ */ k(D, { children: [
221
- /* @__PURE__ */ O(M, { children: /* @__PURE__ */ k("title", { children: [this.title, " | Tùy chỉnh dữ liệu"] }) }),
222
- /* @__PURE__ */ O("div", {
256
+ }) : /* @__PURE__ */ A(O, { children: [
257
+ /* @__PURE__ */ k(N, { children: /* @__PURE__ */ A("title", { children: [this.title, " | Tùy chỉnh dữ liệu"] }) }),
258
+ /* @__PURE__ */ k("div", {
223
259
  className: `position-relative mb-3 ${this.fluid ? "container-fluid" : "container"}`,
224
- children: /* @__PURE__ */ O(A, {
260
+ children: /* @__PURE__ */ k(j, {
225
261
  id: "fieldUpdate",
226
262
  className: "position-relative",
227
263
  method: "post",
@@ -229,7 +265,7 @@ var N = (e) => {
229
265
  "data-toggle": "validator",
230
266
  role: "form",
231
267
  onSubmit: this.handleSubmit,
232
- children: /* @__PURE__ */ k(p, {
268
+ children: /* @__PURE__ */ A(p, {
233
269
  loading: !t,
234
270
  style: {
235
271
  minHeight: 200,
@@ -242,7 +278,7 @@ var N = (e) => {
242
278
  this.renderAfterForm()
243
279
  ] });
244
280
  }
245
- }, { API_URL: H, ADMIN_URI: U } = await e(), W = class extends T.Component {
281
+ }, R = class extends E.Component {
246
282
  module = "admins";
247
283
  controller = "";
248
284
  state = {
@@ -253,9 +289,26 @@ var N = (e) => {
253
289
  };
254
290
  title = "";
255
291
  cUri = "";
256
- cLink = U + this.cUri;
257
- API_URL = H;
258
- ADMIN_URI = U;
292
+ _envOverride = {};
293
+ _cLinkOverride;
294
+ get API_URL() {
295
+ return this._envOverride.API_URL ?? e().API_URL ?? "";
296
+ }
297
+ set API_URL(e) {
298
+ this._envOverride.API_URL = e;
299
+ }
300
+ get ADMIN_URI() {
301
+ return this._envOverride.ADMIN_URI ?? e().ADMIN_URI ?? "";
302
+ }
303
+ set ADMIN_URI(e) {
304
+ this._envOverride.ADMIN_URI = e;
305
+ }
306
+ get cLink() {
307
+ return this._cLinkOverride ?? this.ADMIN_URI + this.cUri;
308
+ }
309
+ set cLink(e) {
310
+ this._cLinkOverride = e;
311
+ }
259
312
  importUrl = "";
260
313
  importFile = "assetorigin.xlsx";
261
314
  ctype = "multipart/form-data";
@@ -287,7 +340,7 @@ var N = (e) => {
287
340
  try {
288
341
  this.props.user?.groupId && (this.syncPermissionsAndState(), this.componentDidMountAfter());
289
342
  } catch (e) {
290
- e.message == "invalid_404" && this.props.navigate(this.cUri), s(e.message);
343
+ e.message == "invalid_404" && this.props.navigate(this.cUri), c(e.message);
291
344
  }
292
345
  }
293
346
  componentDidMount() {
@@ -296,39 +349,39 @@ var N = (e) => {
296
349
  componentDidMountAfter = async () => {};
297
350
  handleSubmit = async (e) => {
298
351
  e.preventDefault();
299
- let { formValue: t } = this.state, r = new d("#itemImport");
300
- if (!r.hasErrors() && !r.isIncomplete()) {
301
- n("#itemImport", !0);
352
+ let { formValue: t } = this.state, n = new d("#itemImport");
353
+ if (!n.hasErrors() && !n.isIncomplete()) {
354
+ s("#itemImport", !0);
302
355
  try {
303
- let e = await o(this.importUrl, t, "POST", this.ctype);
304
- e.data?.error?.length ? e?.data?.error && this.setState({ error: Object.fromEntries(e?.data?.error.map((e, t) => [t, e])) }) : (this.props.navigate(this.cUri), c("Import thành công", "top-end", !0));
356
+ let e = await a(this.importUrl, t, "POST", this.ctype);
357
+ e.data?.error?.length ? e.data.error && this.setState({ error: Object.fromEntries(e.data.error.map((e, t) => [t, e])) }) : (this.props.navigate(this.cUri), r("Import thành công", "top-end", !0));
305
358
  } catch (e) {
306
- s(e.message);
359
+ c(e.message);
307
360
  } finally {
308
- n("#itemImport", !1);
361
+ s("#itemImport", !1);
309
362
  }
310
363
  }
311
364
  };
312
- renderForm = () => /* @__PURE__ */ O(D, { children: /* @__PURE__ */ O(f, {
365
+ renderForm = () => /* @__PURE__ */ k(O, { children: /* @__PURE__ */ k(f, {
313
366
  onChange: this.handleChange,
314
367
  label: "Import excel",
315
368
  name: "importfile",
316
369
  ext: ".xlsx,.xls"
317
370
  }) });
318
371
  render() {
319
- let { isCre: e, isEdit: t } = this.state;
320
- return e === !1 && t === !1 ? /* @__PURE__ */ O(m, {
372
+ let { isCre: e, isEdit: n } = this.state;
373
+ return e === !1 && n === !1 ? /* @__PURE__ */ k(m, {
321
374
  cUriTitle: this.title,
322
375
  cUri: this.cUri,
323
376
  title: this.title + " | Import",
324
377
  fluid: this.fluid
325
- }) : /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(M, { children: /* @__PURE__ */ k("title", { children: [
378
+ }) : /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(N, { children: /* @__PURE__ */ A("title", { children: [
326
379
  this.title,
327
380
  " | ",
328
381
  "Import"
329
- ] }) }), /* @__PURE__ */ O("div", {
382
+ ] }) }), /* @__PURE__ */ k("div", {
330
383
  className: `mb-3 ${this.fluid ? "container-fluid" : "container"}`,
331
- children: /* @__PURE__ */ k(A, {
384
+ children: /* @__PURE__ */ A(j, {
332
385
  id: "itemImport",
333
386
  className: "position-relative",
334
387
  action: this.importUrl,
@@ -337,71 +390,71 @@ var N = (e) => {
337
390
  "data-toggle": "validator",
338
391
  role: "form",
339
392
  onSubmit: this.handleSubmit,
340
- children: [/* @__PURE__ */ k("div", {
393
+ children: [/* @__PURE__ */ A("div", {
341
394
  className: "navbar navbar-main navbar-expand-lg px-0 shadow-none border-radius-xl py-3",
342
- children: [/* @__PURE__ */ O("nav", {
395
+ children: [/* @__PURE__ */ k("nav", {
343
396
  "aria-label": "breadcrumb",
344
- children: /* @__PURE__ */ k("ol", {
397
+ children: /* @__PURE__ */ A("ol", {
345
398
  className: "breadcrumb bg-transparent m-0 p-0",
346
399
  children: [
347
- /* @__PURE__ */ O("li", {
400
+ /* @__PURE__ */ k("li", {
348
401
  className: "breadcrumb-item",
349
- children: /* @__PURE__ */ O(j, {
402
+ children: /* @__PURE__ */ k(M, {
350
403
  className: "text-white",
351
404
  to: this.ADMIN_URI || "/",
352
- children: /* @__PURE__ */ O("i", { className: "fal fa-home" })
405
+ children: /* @__PURE__ */ k("i", { className: "fal fa-home" })
353
406
  })
354
407
  }),
355
- /* @__PURE__ */ O("li", {
408
+ /* @__PURE__ */ k("li", {
356
409
  className: "breadcrumb-item",
357
- children: /* @__PURE__ */ O(j, {
410
+ children: /* @__PURE__ */ k(M, {
358
411
  className: "text-white",
359
412
  to: this.cUri,
360
413
  children: this.title
361
414
  })
362
415
  }),
363
- /* @__PURE__ */ O("li", {
416
+ /* @__PURE__ */ k("li", {
364
417
  className: "breadcrumb-item text-white active",
365
418
  "aria-current": "page",
366
419
  children: "Import"
367
420
  })
368
421
  ]
369
422
  })
370
- }), /* @__PURE__ */ k("div", {
423
+ }), /* @__PURE__ */ A("div", {
371
424
  className: "ms-auto",
372
- children: [/* @__PURE__ */ O(j, {
425
+ children: [/* @__PURE__ */ k(M, {
373
426
  target: "_blank",
374
427
  to: this.API_URL + "/importfile/" + this.importFile,
375
428
  className: "btn btn-sm btn-icon btn-info me-2",
376
429
  title: "Tải xuống biểu mẫu",
377
- children: /* @__PURE__ */ O("i", {
430
+ children: /* @__PURE__ */ k("i", {
378
431
  className: "material-icons text-white position-relative text-lg",
379
432
  children: "file_download"
380
433
  })
381
- }), /* @__PURE__ */ O(j, {
434
+ }), /* @__PURE__ */ k(M, {
382
435
  to: this.cUri,
383
436
  className: "btn btn-sm btn-icon btn-secondary",
384
437
  title: "Trở lại",
385
- children: /* @__PURE__ */ O("i", {
438
+ children: /* @__PURE__ */ k("i", {
386
439
  className: "material-icons text-white position-relative text-lg",
387
440
  children: "reply"
388
441
  })
389
442
  })]
390
443
  })]
391
- }), /* @__PURE__ */ O("div", {
444
+ }), /* @__PURE__ */ k("div", {
392
445
  className: "card",
393
- children: /* @__PURE__ */ O("div", {
446
+ children: /* @__PURE__ */ k("div", {
394
447
  className: "card-body pb-0",
395
- children: /* @__PURE__ */ O("div", {
448
+ children: /* @__PURE__ */ k("div", {
396
449
  className: "row justify-content-center",
397
- children: /* @__PURE__ */ k("div", {
450
+ children: /* @__PURE__ */ A("div", {
398
451
  className: "col-md-8 pt-5 pb-4",
399
452
  children: [
400
- /* @__PURE__ */ O("div", { dangerouslySetInnerHTML: { __html: i(this.state.error) } }),
453
+ /* @__PURE__ */ k("div", { dangerouslySetInnerHTML: { __html: t(this.state.error) } }),
401
454
  this.renderForm(),
402
- /* @__PURE__ */ O("div", {
455
+ /* @__PURE__ */ k("div", {
403
456
  className: "w-100 d-flex",
404
- children: /* @__PURE__ */ O("button", {
457
+ children: /* @__PURE__ */ k("button", {
405
458
  title: "Import",
406
459
  type: "submit",
407
460
  className: "btn btn-success mb-4 mx-auto",
@@ -416,7 +469,7 @@ var N = (e) => {
416
469
  })
417
470
  })] });
418
471
  }
419
- }, { API_URL: G, ADMIN_URI: K } = await e(), q = class extends T.Component {
472
+ }, z = class extends E.Component {
420
473
  effectRan = !1;
421
474
  fluid = !1;
422
475
  module = "admins";
@@ -455,9 +508,26 @@ var N = (e) => {
455
508
  "del"
456
509
  ];
457
510
  cUri = "";
458
- cLink = K + this.cUri;
459
- API_URL = G;
460
- ADMIN_URI = K;
511
+ _envOverride = {};
512
+ _cLinkOverride;
513
+ get API_URL() {
514
+ return this._envOverride.API_URL ?? e().API_URL ?? "";
515
+ }
516
+ set API_URL(e) {
517
+ this._envOverride.API_URL = e;
518
+ }
519
+ get ADMIN_URI() {
520
+ return this._envOverride.ADMIN_URI ?? e().ADMIN_URI ?? "";
521
+ }
522
+ set ADMIN_URI(e) {
523
+ this._envOverride.ADMIN_URI = e;
524
+ }
525
+ get cLink() {
526
+ return this._cLinkOverride ?? this.ADMIN_URI + this.cUri;
527
+ }
528
+ set cLink(e) {
529
+ this._cLinkOverride = e;
530
+ }
461
531
  getDataUrl = "";
462
532
  deleteUrl = "";
463
533
  copyUrl = "";
@@ -466,14 +536,14 @@ var N = (e) => {
466
536
  handleChange = async (e) => {
467
537
  try {
468
538
  e.preventDefault();
469
- let { name: t } = e.target, n = await v(e, this.state.data.filter || {});
539
+ let { name: t } = e.target, r = await v(e, this.state.data.filter || {});
470
540
  if (t === "pageLen") {
471
- await this.setFilter(n);
472
- let e = n ? a(n) : "";
541
+ await this.setFilter(r);
542
+ let e = r ? n(r) : "";
473
543
  this.props.navigate(`${this.cUri}?${e}`, { replace: !0 }), await this.fetchData();
474
544
  } else this.setState((e) => ({ data: {
475
545
  ...e.data,
476
- filter: n
546
+ filter: r
477
547
  } }));
478
548
  } catch (e) {
479
549
  console.log(e);
@@ -494,42 +564,42 @@ var N = (e) => {
494
564
  let t = await S(e, this.state.data.filter || {}, this.cUri, this.props.navigate);
495
565
  await this.setFilter(t), await this.fetchData();
496
566
  } catch (e) {
497
- s(e.message);
567
+ c(e.message);
498
568
  }
499
569
  };
500
570
  handleDeleteOne = async (e) => {
501
- t().then(async () => {
571
+ o().then(async () => {
502
572
  try {
503
- await o(`${this.deleteUrl}/${e}`, {}, "GET"), c("Xoá thành công!", "top-end", !0), await this.fetchData();
573
+ await a(`${this.deleteUrl}/${e}`, {}, "DELETE"), r("Xoá thành công!", "top-end", !0), await this.fetchData();
504
574
  } catch (e) {
505
- s(e.message);
575
+ c(e.message);
506
576
  }
507
577
  });
508
578
  };
509
579
  handleDelete = async () => {
510
- this.state.selectedIds.length ? t().then(async () => {
580
+ this.state.selectedIds.length ? o().then(async () => {
511
581
  try {
512
- await o(this.deleteUrl, { selected: this.state.selectedIds }, "POST"), c("Xoá thành công!", "top-end", !0), await this.fetchData();
582
+ await a(this.deleteUrl, { selected: this.state.selectedIds }, "POST"), r("Xoá thành công!", "top-end", !0), await this.fetchData();
513
583
  } catch (e) {
514
- s(e.message);
584
+ c(e.message);
515
585
  }
516
- }) : s("Vui lòng chọn thông tin");
586
+ }) : c("Vui lòng chọn thông tin");
517
587
  };
518
588
  handleCopy = async () => {
519
- this.state.selectedIds.length ? t().then(async () => {
589
+ this.state.selectedIds.length ? o().then(async () => {
520
590
  try {
521
- await o(this.copyUrl, { selected: this.state.selectedIds }, "POST"), c("Sao chép thành công!", "top-end", !0), await this.fetchData();
591
+ await a(this.copyUrl, { selected: this.state.selectedIds }, "POST"), r("Sao chép thành công!", "top-end", !0), await this.fetchData();
522
592
  } catch (e) {
523
- s(e.message);
593
+ c(e.message);
524
594
  }
525
- }) : s("Vui lòng chọn thông tin");
595
+ }) : c("Vui lòng chọn thông tin");
526
596
  };
527
597
  handleExport = async () => {
528
598
  try {
529
- let { data: e } = this.state, t = a(e.filter || {});
599
+ let { data: e } = this.state, t = n(e.filter || {});
530
600
  this.exportUrl && (window.location.href = this.exportUrl + `?${t}`);
531
601
  } catch (e) {
532
- s(e.message);
602
+ c(e.message);
533
603
  }
534
604
  };
535
605
  handleSelectOne = (e, t) => {
@@ -602,7 +672,7 @@ var N = (e) => {
602
672
  };
603
673
  await this.setFilter(n), this.props.user?.groupId && await this.syncPermissionsAndState();
604
674
  } catch (e) {
605
- s(e.message);
675
+ c(e.message);
606
676
  }
607
677
  }
608
678
  componentDidMount() {
@@ -610,7 +680,7 @@ var N = (e) => {
610
680
  }
611
681
  componentDidMountAfter = async () => {};
612
682
  renderHeaderIndex() {
613
- return /* @__PURE__ */ O(y, {
683
+ return /* @__PURE__ */ k(y, {
614
684
  adminUri: this.ADMIN_URI,
615
685
  title: this.title,
616
686
  cUri: this.cUri,
@@ -625,41 +695,41 @@ var N = (e) => {
625
695
  onDelete: this.handleDelete
626
696
  });
627
697
  }
628
- renderTable = () => /* @__PURE__ */ O(D, {});
629
- renderSearch = () => /* @__PURE__ */ O(D, {});
698
+ renderTable = () => /* @__PURE__ */ k(O, {});
699
+ renderSearch = () => /* @__PURE__ */ k(O, {});
630
700
  render() {
631
701
  let { isIndex: e, data: t, loading: n } = this.state;
632
- return e === !1 ? /* @__PURE__ */ O(m, {
702
+ return e === !1 ? /* @__PURE__ */ k(m, {
633
703
  cUriTitle: this.title,
634
704
  cUri: this.cUri,
635
705
  title: this.title,
636
706
  fluid: this.fluid
637
- }) : /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(M, { children: /* @__PURE__ */ O("title", { children: this.title }) }), /* @__PURE__ */ O(p, {
707
+ }) : /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(N, { children: /* @__PURE__ */ k("title", { children: this.title }) }), /* @__PURE__ */ k(p, {
638
708
  loading: n,
639
- children: e && /* @__PURE__ */ k("div", {
709
+ children: e && /* @__PURE__ */ A("div", {
640
710
  className: `mb-3 ${this.fluid ? "container-fluid" : "container"}`,
641
- children: [this.renderHeaderIndex(), /* @__PURE__ */ O("div", {
711
+ children: [this.renderHeaderIndex(), /* @__PURE__ */ k("div", {
642
712
  className: "card position-relative",
643
- children: /* @__PURE__ */ O("div", {
713
+ children: /* @__PURE__ */ k("div", {
644
714
  className: "card-body",
645
715
  style: { minHeight: "200px" },
646
- children: /* @__PURE__ */ k("div", {
716
+ children: /* @__PURE__ */ A("div", {
647
717
  className: "searchForm",
648
718
  children: [
649
- /* @__PURE__ */ O("form", {
719
+ /* @__PURE__ */ k("form", {
650
720
  onSubmit: this.handleSearchForm,
651
721
  children: this.renderSearch()
652
722
  }),
653
- t.items.length ? /* @__PURE__ */ O(w, {
723
+ t.items.length ? /* @__PURE__ */ k(w, {
654
724
  data: t,
655
725
  onChange: this.handleChange,
656
726
  onClickPage: this.handleClickPage
657
727
  }) : "",
658
- /* @__PURE__ */ O("div", {
728
+ /* @__PURE__ */ k("div", {
659
729
  className: "table-responsive mt-2",
660
730
  children: this.renderTable()
661
731
  }),
662
- t.items.length ? /* @__PURE__ */ O(w, {
732
+ t.items.length ? /* @__PURE__ */ k(w, {
663
733
  data: t,
664
734
  onChange: this.handleChange,
665
735
  onClickPage: this.handleClickPage
@@ -671,78 +741,78 @@ var N = (e) => {
671
741
  })
672
742
  })] });
673
743
  }
674
- }, J = ({ adminUri: e, cUri: t, title: n, itemId: r, isSave: i = !0, titleAction: a }) => /* @__PURE__ */ k("div", {
744
+ }, B = ({ adminUri: e, cUri: t, title: n, itemId: r, isSave: i = !0, titleAction: a }) => /* @__PURE__ */ A("div", {
675
745
  className: "navbar navbar-main navbar-expand-lg px-0 shadow-none border-radius-xl py-3",
676
- children: [/* @__PURE__ */ O("nav", {
746
+ children: [/* @__PURE__ */ k("nav", {
677
747
  "aria-label": "breadcrumb",
678
- children: /* @__PURE__ */ k("ol", {
748
+ children: /* @__PURE__ */ A("ol", {
679
749
  className: "breadcrumb bg-transparent m-0 p-0",
680
750
  children: [
681
- /* @__PURE__ */ O("li", {
751
+ /* @__PURE__ */ k("li", {
682
752
  className: "breadcrumb-item",
683
- children: /* @__PURE__ */ O(j, {
753
+ children: /* @__PURE__ */ k(M, {
684
754
  className: "text-white",
685
755
  to: e || "/",
686
- children: /* @__PURE__ */ O("i", { className: "fal fa-home" })
756
+ children: /* @__PURE__ */ k("i", { className: "fal fa-home" })
687
757
  })
688
758
  }),
689
- /* @__PURE__ */ O("li", {
759
+ /* @__PURE__ */ k("li", {
690
760
  className: "breadcrumb-item",
691
- children: /* @__PURE__ */ O(j, {
761
+ children: /* @__PURE__ */ k(M, {
692
762
  className: "text-white",
693
763
  to: t,
694
764
  children: n
695
765
  })
696
766
  }),
697
- /* @__PURE__ */ O("li", {
767
+ /* @__PURE__ */ k("li", {
698
768
  className: "breadcrumb-item text-white active",
699
769
  "aria-current": "page",
700
770
  children: a ?? (r ? "Chỉnh sửa" : "Thêm mới")
701
771
  })
702
772
  ]
703
773
  })
704
- }), /* @__PURE__ */ k("div", {
774
+ }), /* @__PURE__ */ A("div", {
705
775
  className: "ms-auto",
706
- children: [i && /* @__PURE__ */ O(g, {
776
+ children: [i && /* @__PURE__ */ k(g, {
707
777
  title: "Lưu lại",
708
- children: /* @__PURE__ */ O("button", {
778
+ children: /* @__PURE__ */ k("button", {
709
779
  type: "submit",
710
780
  className: "btn btn-sm btn-icon btn-success me-1",
711
- children: /* @__PURE__ */ O("i", {
781
+ children: /* @__PURE__ */ k("i", {
712
782
  className: "material-icons text-white position-relative text-lg",
713
783
  children: "save"
714
784
  })
715
785
  })
716
- }), /* @__PURE__ */ O(g, {
786
+ }), /* @__PURE__ */ k(g, {
717
787
  title: "Trở lại",
718
- children: /* @__PURE__ */ O(j, {
788
+ children: /* @__PURE__ */ k(M, {
719
789
  to: t,
720
790
  className: "btn btn-sm btn-icon btn-secondary",
721
- children: /* @__PURE__ */ O("i", {
791
+ children: /* @__PURE__ */ k("i", {
722
792
  className: "material-icons text-white position-relative text-lg",
723
793
  children: "reply"
724
794
  })
725
795
  })
726
796
  })]
727
797
  })]
728
- }), Y = ({ title: e = "", cUri: t = "", fluid: n = !1, cUriTitle: r = "" }) => /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(M, { children: /* @__PURE__ */ O("title", { children: e || "Truy cập không được phép" }) }), /* @__PURE__ */ k("div", {
798
+ }), V = ({ title: e = "", cUri: t = "", fluid: n = !1, cUriTitle: r = "" }) => /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(N, { children: /* @__PURE__ */ k("title", { children: e || "Truy cập không được phép" }) }), /* @__PURE__ */ A("div", {
729
799
  className: `${n ? "container-fluid" : "container"}`,
730
- children: [/* @__PURE__ */ O("div", {
800
+ children: [/* @__PURE__ */ k("div", {
731
801
  className: "navbar navbar-main navbar-expand-lg px-0 shadow-none border-radius-xl py-3",
732
- children: /* @__PURE__ */ O("nav", {
802
+ children: /* @__PURE__ */ k("nav", {
733
803
  "aria-label": "breadcrumb",
734
- children: /* @__PURE__ */ k("ol", {
804
+ children: /* @__PURE__ */ A("ol", {
735
805
  className: "breadcrumb bg-transparent m-0 p-0",
736
- children: [/* @__PURE__ */ O("li", {
806
+ children: [/* @__PURE__ */ k("li", {
737
807
  className: "breadcrumb-item",
738
- children: /* @__PURE__ */ O(j, {
808
+ children: /* @__PURE__ */ k(M, {
739
809
  className: "text-white",
740
810
  to: "/",
741
- children: /* @__PURE__ */ O("i", { className: "fal fa-home" })
811
+ children: /* @__PURE__ */ k("i", { className: "fal fa-home" })
742
812
  })
743
- }), /* @__PURE__ */ O("li", {
813
+ }), /* @__PURE__ */ k("li", {
744
814
  className: "breadcrumb-item",
745
- children: /* @__PURE__ */ O(j, {
815
+ children: /* @__PURE__ */ k(M, {
746
816
  className: "text-white",
747
817
  to: t,
748
818
  children: r
@@ -750,25 +820,25 @@ var N = (e) => {
750
820
  })]
751
821
  })
752
822
  })
753
- }), /* @__PURE__ */ O("div", {
823
+ }), /* @__PURE__ */ k("div", {
754
824
  style: { minHeight: "50vh" },
755
825
  className: "d-flex align-items-center",
756
- children: /* @__PURE__ */ k("div", {
826
+ children: /* @__PURE__ */ A("div", {
757
827
  className: "m-auto text-center",
758
828
  children: [
759
- /* @__PURE__ */ O("h1", {
829
+ /* @__PURE__ */ k("h1", {
760
830
  className: "display-1 text-bolder text-white",
761
831
  children: "403"
762
832
  }),
763
- /* @__PURE__ */ O("h2", {
833
+ /* @__PURE__ */ k("h2", {
764
834
  className: "text-white",
765
835
  children: "Truy cập không được phép"
766
836
  }),
767
- /* @__PURE__ */ O("p", {
837
+ /* @__PURE__ */ k("p", {
768
838
  className: "lead text-white",
769
839
  children: "Xin lỗi, bạn không có quyền truy cập vào trang này."
770
840
  }),
771
- /* @__PURE__ */ O(j, {
841
+ /* @__PURE__ */ k(M, {
772
842
  to: "/",
773
843
  className: "btn btn-outline-white mt-4",
774
844
  children: "trang chủ"
@@ -776,24 +846,24 @@ var N = (e) => {
776
846
  ]
777
847
  })
778
848
  })]
779
- })] }), X = ({ title: e = "", cUri: t = "", fluid: n = !1, cUriTitle: r = "" }) => /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(M, { children: /* @__PURE__ */ O("title", { children: e || "Không tìm thấy dữ liệu" }) }), /* @__PURE__ */ k("div", {
849
+ })] }), H = ({ title: e = "", cUri: t = "", fluid: n = !1, cUriTitle: r = "" }) => /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(N, { children: /* @__PURE__ */ k("title", { children: e || "Không tìm thấy dữ liệu" }) }), /* @__PURE__ */ A("div", {
780
850
  className: `${n ? "container-fluid" : "container"}`,
781
- children: [/* @__PURE__ */ O("div", {
851
+ children: [/* @__PURE__ */ k("div", {
782
852
  className: "navbar navbar-main navbar-expand-lg px-0 shadow-none border-radius-xl py-3",
783
- children: /* @__PURE__ */ O("nav", {
853
+ children: /* @__PURE__ */ k("nav", {
784
854
  "aria-label": "breadcrumb",
785
- children: /* @__PURE__ */ k("ol", {
855
+ children: /* @__PURE__ */ A("ol", {
786
856
  className: "breadcrumb bg-transparent m-0 p-0",
787
- children: [/* @__PURE__ */ O("li", {
857
+ children: [/* @__PURE__ */ k("li", {
788
858
  className: "breadcrumb-item",
789
- children: /* @__PURE__ */ O(j, {
859
+ children: /* @__PURE__ */ k(M, {
790
860
  className: "text-white",
791
861
  to: "/",
792
- children: /* @__PURE__ */ O("i", { className: "fal fa-home" })
862
+ children: /* @__PURE__ */ k("i", { className: "fal fa-home" })
793
863
  })
794
- }), /* @__PURE__ */ O("li", {
864
+ }), /* @__PURE__ */ k("li", {
795
865
  className: "breadcrumb-item",
796
- children: /* @__PURE__ */ O(j, {
866
+ children: /* @__PURE__ */ k(M, {
797
867
  className: "text-white",
798
868
  to: t,
799
869
  children: r
@@ -801,25 +871,25 @@ var N = (e) => {
801
871
  })]
802
872
  })
803
873
  })
804
- }), /* @__PURE__ */ O("div", {
874
+ }), /* @__PURE__ */ k("div", {
805
875
  style: { minHeight: "50vh" },
806
876
  className: "d-flex align-items-center",
807
- children: /* @__PURE__ */ k("div", {
877
+ children: /* @__PURE__ */ A("div", {
808
878
  className: "m-auto text-center",
809
879
  children: [
810
- /* @__PURE__ */ O("h1", {
880
+ /* @__PURE__ */ k("h1", {
811
881
  className: "display-1 text-bolder text-white",
812
882
  children: "404"
813
883
  }),
814
- /* @__PURE__ */ O("h2", {
884
+ /* @__PURE__ */ k("h2", {
815
885
  className: "text-white",
816
886
  children: "Không tìm thấy dữ liệu"
817
887
  }),
818
- /* @__PURE__ */ O("p", {
888
+ /* @__PURE__ */ k("p", {
819
889
  className: "lead text-white",
820
890
  children: "Xin lỗi, dữ liệu của bạn không được tìm thấy"
821
891
  }),
822
- /* @__PURE__ */ O(j, {
892
+ /* @__PURE__ */ k(M, {
823
893
  to: "/",
824
894
  className: "btn btn-outline-white mt-4",
825
895
  children: "trang chủ"
@@ -827,7 +897,7 @@ var N = (e) => {
827
897
  ]
828
898
  })
829
899
  })]
830
- })] }), { API_URL: Z, ADMIN_URI: Q } = await e(), $ = class extends T.Component {
900
+ })] }), U = class extends E.Component {
831
901
  effectRan = !1;
832
902
  module = "admins";
833
903
  controller = "";
@@ -842,9 +912,26 @@ var N = (e) => {
842
912
  };
843
913
  title = "";
844
914
  cUri = "";
845
- cLink = Q + this.cUri;
846
- API_URL = Z;
847
- ADMIN_URI = Q;
915
+ _envOverride = {};
916
+ _cLinkOverride;
917
+ get API_URL() {
918
+ return this._envOverride.API_URL ?? e().API_URL ?? "";
919
+ }
920
+ set API_URL(e) {
921
+ this._envOverride.API_URL = e;
922
+ }
923
+ get ADMIN_URI() {
924
+ return this._envOverride.ADMIN_URI ?? e().ADMIN_URI ?? "";
925
+ }
926
+ set ADMIN_URI(e) {
927
+ this._envOverride.ADMIN_URI = e;
928
+ }
929
+ get cLink() {
930
+ return this._cLinkOverride ?? this.ADMIN_URI + this.cUri;
931
+ }
932
+ set cLink(e) {
933
+ this._cLinkOverride = e;
934
+ }
848
935
  getDataUrl = "";
849
936
  editUrl = "";
850
937
  createUrl = "";
@@ -854,10 +941,10 @@ var N = (e) => {
854
941
  isBackUri = !0;
855
942
  debug = !1;
856
943
  constructor(e) {
857
- super(e), this.formRef = T.createRef();
944
+ super(e), this.formRef = E.createRef();
858
945
  }
859
- renderForm = () => /* @__PURE__ */ O(D, {});
860
- renderAfterForm = () => /* @__PURE__ */ O(D, {});
946
+ renderForm = () => /* @__PURE__ */ k(O, {});
947
+ renderAfterForm = () => /* @__PURE__ */ k(O, {});
861
948
  handleChange = (e) => {
862
949
  e.preventDefault();
863
950
  let t = u(e);
@@ -870,12 +957,12 @@ var N = (e) => {
870
957
  isDetail: P(e, this.module, this.controller, "detail", 0, t.groupId)
871
958
  };
872
959
  this.setState(n, async () => {
873
- let e = r();
960
+ let e = i();
874
961
  if (e && n.isEdit) {
875
- let t = (await o(this.getDataUrl + "/" + e, {}, "GET", "application/json", !1))?.data;
962
+ let t = await a(this.getDataUrl + "/" + e, {}, "GET", "application/json", !1), n = t ? t.data : void 0;
876
963
  this.setState({
877
- item: t || !1,
878
- formValue: t ? JSON.parse(JSON.stringify(t)) : {}
964
+ item: n || !1,
965
+ formValue: n ? JSON.parse(JSON.stringify(n)) : {}
879
966
  }, async () => {
880
967
  this.setState({ loading: !1 }), await this.componentDidMountAfter(), this.formRef.current && new d(this.formRef.current).run();
881
968
  });
@@ -890,7 +977,7 @@ var N = (e) => {
890
977
  if (this.effectRan) return;
891
978
  this.effectRan = !0, this.props.user?.groupId && await this.syncPermissionsAndState();
892
979
  } catch (e) {
893
- e.message == "invalid_404" && this.props.navigate(this.cUri), s(e.message);
980
+ e.message == "invalid_404" && this.props.navigate(this.cUri), c(e.message);
894
981
  }
895
982
  }
896
983
  componentDidMount = () => {
@@ -902,12 +989,12 @@ var N = (e) => {
902
989
  });
903
990
  handleSubmit = async (e) => {
904
991
  e.preventDefault();
905
- let { item: t, formValue: n } = this.state, r = Number(t?.id), i = new d(this.formRef.current);
906
- !i.hasErrors() && !i.isIncomplete() && this.formRef.current && this.beforeSubmit().then(async () => {
992
+ let { item: t, formValue: n } = this.state, i = I(t), o = new d(this.formRef.current);
993
+ !o.hasErrors() && !o.isIncomplete() && this.formRef.current && this.beforeSubmit().then(async () => {
907
994
  this.setState({ loading: !0 });
908
995
  try {
909
- let e = r ? this.editUrl + "/" + r : this.createUrl, t = await o(e, n, "POST", this.ctype);
910
- if (c(r ? "Cập nhật thành công" : "Thêm mới thành công", "top-end", !0), t?.data?.id) {
996
+ let e = i ? this.editUrl + "/" + i : this.createUrl, t = await a(e, n, "POST", this.ctype);
997
+ if (r(i ? "Cập nhật thành công" : "Thêm mới thành công", "top-end", !0), t?.data?.id) {
911
998
  if (this.isBackUri) return this.props.navigate(this.cUri);
912
999
  this.props.navigate(this.cUri + "/edit/" + Number(t.data.id)), this.setState({
913
1000
  item: { ...t.data },
@@ -917,7 +1004,7 @@ var N = (e) => {
917
1004
  });
918
1005
  }
919
1006
  } catch (e) {
920
- s(e.message);
1007
+ c(e.message);
921
1008
  } finally {
922
1009
  this.setState({ loading: !1 });
923
1010
  }
@@ -925,33 +1012,33 @@ var N = (e) => {
925
1012
  };
926
1013
  afterSubmit = async (e) => {};
927
1014
  renderHeaderUpdate() {
928
- return /* @__PURE__ */ O(J, {
1015
+ return /* @__PURE__ */ k(B, {
929
1016
  adminUri: this.ADMIN_URI,
930
1017
  title: this.title,
931
1018
  cUri: this.cUri,
932
- itemId: this.state.item?.id
1019
+ itemId: I(this.state.item)
933
1020
  });
934
1021
  }
935
1022
  render() {
936
- let e = r(), { isCre: t, isEdit: n, isDetail: a, item: o } = this.state;
937
- return t === !1 && n === !1 && a === !1 || t === !1 && e === 0 || (n === !1 || a === !1) && e ? /* @__PURE__ */ O(Y, {
1023
+ let e = i(), { isCre: n, isEdit: r, isDetail: a, item: o } = this.state;
1024
+ return n === !1 && r === !1 && a === !1 || n === !1 && e == null || (r === !1 || a === !1) && e ? /* @__PURE__ */ k(V, {
938
1025
  cUriTitle: this.title,
939
1026
  cUri: this.cUri,
940
1027
  title: this.title + " | " + (e ? "Chỉnh sửa" : "Thêm mới"),
941
1028
  fluid: this.fluid
942
- }) : e && o === !1 ? /* @__PURE__ */ O(X, {
1029
+ }) : e && o === !1 ? /* @__PURE__ */ k(H, {
943
1030
  cUriTitle: this.title,
944
1031
  cUri: this.cUri,
945
1032
  title: this.title + " | " + (e ? "Chỉnh sửa" : "Thêm mới")
946
- }) : /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(M, { children: /* @__PURE__ */ k("title", { children: [
1033
+ }) : /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(N, { children: /* @__PURE__ */ A("title", { children: [
947
1034
  this.title,
948
1035
  " | ",
949
- o?.id ? "Chỉnh sửa" : "Thêm mới"
950
- ] }) }), /* @__PURE__ */ k("div", {
1036
+ I(o) ? "Chỉnh sửa" : "Thêm mới"
1037
+ ] }) }), /* @__PURE__ */ A("div", {
951
1038
  className: `mb-3 ${this.fluid ? "container-fluid" : "container"}`,
952
1039
  children: [
953
- /* @__PURE__ */ O("div", { dangerouslySetInnerHTML: { __html: i(this.state.error) } }),
954
- /* @__PURE__ */ O(A, {
1040
+ /* @__PURE__ */ k("div", { dangerouslySetInnerHTML: { __html: t(this.state.error) } }),
1041
+ /* @__PURE__ */ k(j, {
955
1042
  ref: this.formRef,
956
1043
  className: "position-relative",
957
1044
  method: "post",
@@ -959,7 +1046,7 @@ var N = (e) => {
959
1046
  "data-toggle": "validator",
960
1047
  role: "form",
961
1048
  onSubmit: this.handleSubmit,
962
- children: /* @__PURE__ */ k(p, {
1049
+ children: /* @__PURE__ */ A(p, {
963
1050
  loading: !!this.state.loading,
964
1051
  style: {
965
1052
  minHeight: 200,
@@ -972,37 +1059,40 @@ var N = (e) => {
972
1059
  ]
973
1060
  })] });
974
1061
  }
975
- }, ee = class extends $ {
1062
+ }, W = class extends U {
976
1063
  urlUpdateDetail = "";
977
1064
  render() {
978
- let e = r(), { isCre: t, isEdit: n, isDetail: a, item: o } = this.state;
979
- return t === !1 && n === !1 && a === !1 || t === !1 && e === 0 || (n === !1 || a === !1) && e ? /* @__PURE__ */ O(Y, {
1065
+ let e = i(), { isCre: n, isEdit: r, isDetail: a, item: o } = this.state;
1066
+ if (n === !1 && r === !1 && a === !1 || n === !1 && e == null || (r === !1 || a === !1) && e) return /* @__PURE__ */ k(V, {
980
1067
  cUriTitle: this.title,
981
1068
  cUri: this.cUri,
982
1069
  title: this.title + " | " + (e ? "Chỉnh sửa" : "Thêm mới"),
983
1070
  fluid: this.fluid
984
- }) : e && o === !1 ? /* @__PURE__ */ O(X, {
1071
+ });
1072
+ if (e && o === !1) return /* @__PURE__ */ k(H, {
985
1073
  cUriTitle: this.title,
986
1074
  cUri: this.cUri,
987
1075
  title: this.title + " | " + (e ? "Chỉnh sửa" : "Thêm mới")
988
- }) : (e && o || !e) && /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(M, { children: /* @__PURE__ */ k("title", { children: [
1076
+ });
1077
+ let s = I(o);
1078
+ return /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(N, { children: /* @__PURE__ */ A("title", { children: [
989
1079
  this.title,
990
1080
  " | ",
991
- o?.id ? "Chỉnh sửa" : "Thêm mới"
992
- ] }) }), /* @__PURE__ */ k("div", {
1081
+ s ? "Chỉnh sửa" : "Thêm mới"
1082
+ ] }) }), /* @__PURE__ */ A("div", {
993
1083
  className: `mb-3 ${this.fluid ? "container-fluid" : "container"}`,
994
1084
  children: [
995
- /* @__PURE__ */ O(J, {
1085
+ /* @__PURE__ */ k(B, {
996
1086
  adminUri: this.ADMIN_URI,
997
1087
  title: this.title,
998
1088
  cUri: this.cUri,
999
1089
  isSave: !1,
1000
- itemId: o?.id
1090
+ itemId: s
1001
1091
  }),
1002
- /* @__PURE__ */ O("div", { dangerouslySetInnerHTML: { __html: i(this.state.error) } }),
1003
- /* @__PURE__ */ O("div", {
1092
+ /* @__PURE__ */ k("div", { dangerouslySetInnerHTML: { __html: t(this.state.error) } }),
1093
+ /* @__PURE__ */ k("div", {
1004
1094
  className: "position-relative",
1005
- children: /* @__PURE__ */ O(p, {
1095
+ children: /* @__PURE__ */ k(p, {
1006
1096
  loading: !!this.state.loading,
1007
1097
  style: {
1008
1098
  minHeight: 200,
@@ -1016,16 +1106,17 @@ var N = (e) => {
1016
1106
  }
1017
1107
  handleDetailSubmit = async (e, t) => {
1018
1108
  try {
1019
- if (this.state.item?.id && e?.length) {
1020
- let r = {};
1021
- r.itemid = this.state.item?.id, r.details = e, n(t, !0), await o(this.urlUpdateDetail, r), n(t, !1), c("Thêm tài sản thành công", "top-end", !0), await this.editDetailAfter(this.state.item?.id), this.props.navigate(this.cUri + "/edit/" + this.state.item?.id);
1022
- }
1109
+ let n = I(this.state.item);
1110
+ n && e?.length && (s(t, !0), await a(this.urlUpdateDetail, {
1111
+ itemid: n,
1112
+ details: e
1113
+ }), s(t, !1), r("Thêm tài sản thành công", "top-end", !0), await this.editDetailAfter(n), this.props.navigate(this.cUri + "/edit/" + n));
1023
1114
  } catch (e) {
1024
- s(e.message), n(t, !1);
1115
+ c(e.message), s(t, !1);
1025
1116
  }
1026
1117
  };
1027
1118
  editDetailAfter = async (e) => {};
1028
- }, te = class extends $ {
1119
+ }, G = class extends U {
1029
1120
  urlGetDeTableList = "";
1030
1121
  urlGetDeTable = "";
1031
1122
  urlCreDeTable = "";
@@ -1034,49 +1125,52 @@ var N = (e) => {
1034
1125
  modalRef;
1035
1126
  isBackUri = !1;
1036
1127
  constructor(e) {
1037
- super(e), this.modalRef = E();
1128
+ super(e), this.modalRef = D();
1038
1129
  }
1039
1130
  async fetchDataDetails() {
1040
1131
  return {};
1041
1132
  }
1042
1133
  render() {
1043
- let e = r(), { isCre: t, isEdit: n, isDetail: i, item: a } = this.state;
1044
- return t === !1 && n === !1 && i === !1 || t === !1 && e === 0 || (n === !1 || i === !1) && e ? /* @__PURE__ */ O(Y, {
1134
+ let e = i(), { isCre: t, isEdit: n, isDetail: r, item: a } = this.state;
1135
+ if (t === !1 && n === !1 && r === !1 || t === !1 && e == null || (n === !1 || r === !1) && e) return /* @__PURE__ */ k(V, {
1045
1136
  cUriTitle: this.title,
1046
1137
  cUri: this.cUri,
1047
1138
  title: this.title + " | " + (e ? "Chỉnh sửa" : "Thêm mới"),
1048
1139
  fluid: this.fluid
1049
- }) : e && a === !1 ? /* @__PURE__ */ O(X, {
1140
+ });
1141
+ if (e && a === !1) return /* @__PURE__ */ k(H, {
1050
1142
  cUriTitle: this.title,
1051
1143
  cUri: this.cUri,
1052
1144
  title: this.title + " | " + (e ? "Chỉnh sửa" : "Thêm mới")
1053
- }) : (e && a || !e) && /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(M, { children: /* @__PURE__ */ k("title", { children: [
1145
+ });
1146
+ let o = I(a);
1147
+ return /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(N, { children: /* @__PURE__ */ A("title", { children: [
1054
1148
  this.title,
1055
1149
  " | ",
1056
- a?.id ? "Chỉnh sửa" : "Thêm mới"
1057
- ] }) }), /* @__PURE__ */ k("div", {
1150
+ o ? "Chỉnh sửa" : "Thêm mới"
1151
+ ] }) }), /* @__PURE__ */ A("div", {
1058
1152
  className: `mb-3 ${this.fluid ? "container-fluid" : "container"}`,
1059
1153
  children: [
1060
- /* @__PURE__ */ O(J, {
1154
+ /* @__PURE__ */ k(B, {
1061
1155
  adminUri: this.ADMIN_URI,
1062
1156
  title: this.title,
1063
1157
  cUri: this.cUri,
1064
1158
  isSave: !1,
1065
- itemId: this.state?.item?.id
1159
+ itemId: o
1066
1160
  }),
1067
- a && this.renderDeTable(),
1161
+ a ? this.renderDeTable() : null,
1068
1162
  this.renderForm()
1069
1163
  ]
1070
1164
  })] });
1071
1165
  }
1072
1166
  renderDeTable() {
1073
- return /* @__PURE__ */ O(D, {});
1167
+ return /* @__PURE__ */ k(O, {});
1074
1168
  }
1075
- renderModalDeBody = (e, t) => /* @__PURE__ */ O(D, {});
1169
+ renderModalDeBody = (e, t) => /* @__PURE__ */ k(O, {});
1076
1170
  handleDetailSubmit = async (e) => {
1077
1171
  e.preventDefault();
1078
1172
  };
1079
1173
  editDetailAfter = async (e) => {};
1080
1174
  };
1081
1175
  //#endregion
1082
- export { W as a, q as i, ee as n, V as o, $ as r, L as s, te as t };
1176
+ export { R as a, z as i, W as n, L as o, U as r, F as s, G as t };