@materialui-reactjs/admin 1.0.4 → 1.0.6

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 (30) hide show
  1. package/dist/chunks/{Common-C_ZhT4L6.js → Common-BURf0rBN.js} +34 -29
  2. package/dist/chunks/{HeaderUpdate-lrSYWsKp.js → HeaderUpdate-DuS-gHNR.js} +2 -2
  3. package/dist/chunks/{UDragFile-CAiSfTsp.js → UDragFile-BnUR3riq.js} +1 -1
  4. package/dist/chunks/{Validator-DjZz2bJs.js → Validator-CXYkI7vJ.js} +62 -59
  5. package/dist/chunks/{form-C8gzkYMW.js → form-CPkpL5eA.js} +177 -131
  6. package/dist/chunks/{meta-k8MmuQjS.js → meta-4qPWijBT.js} +13 -13
  7. package/dist/chunks/{single-DyPwG6ZR.js → single-CRF61o_U.js} +210 -210
  8. package/dist/chunks/{top-navbar-FBw88y_o.js → top-navbar-Bob0gMUh.js} +1 -1
  9. package/dist/components/form/DateTimeInput.d.ts +2 -1
  10. package/dist/components/form/UFile.d.ts +1 -1
  11. package/dist/components/form/UFiles.d.ts +1 -0
  12. package/dist/components/form/index.js +3 -3
  13. package/dist/components/meta/index.js +2 -2
  14. package/dist/components/single/Detail.d.ts +1 -0
  15. package/dist/components/single/Fields.d.ts +1 -0
  16. package/dist/components/single/Update.d.ts +2 -1
  17. package/dist/components/single/index.js +1 -1
  18. package/dist/components/top-navbar/index.js +1 -1
  19. package/dist/hook/detail.d.ts +5 -1
  20. package/dist/hook/detail.js +7 -7
  21. package/dist/hook/fields.d.ts +5 -1
  22. package/dist/hook/fields.js +7 -7
  23. package/dist/hook/index.d.ts +1 -1
  24. package/dist/hook/index.js +2 -2
  25. package/dist/hook/update.d.ts +12 -3
  26. package/dist/hook/update.js +25 -22
  27. package/dist/index.js +11 -11
  28. package/dist/utils/Common.d.ts +4 -0
  29. package/dist/utils/index.js +28 -23
  30. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { v as e, y as t } from "./Common-C_ZhT4L6.js";
1
+ import { v as e, y as t } from "./Common-BURf0rBN.js";
2
2
  import "react";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
4
  import { Link as i, useNavigate as a } from "react-router-dom";
@@ -1,10 +1,11 @@
1
1
  import { DateTimePickerProps } from '@mui/x-date-pickers/DateTimePicker';
2
- interface DateTimeProps extends Omit<DateTimePickerProps, "value" | "defaultValue" | "onChange"> {
2
+ interface DateTimeProps extends Omit<DateTimePickerProps, "value" | "defaultValue" | "onChange" | "debug"> {
3
3
  label: string;
4
4
  value?: string;
5
5
  defaultValue?: string | Date;
6
6
  cpnClass?: string;
7
7
  required?: boolean;
8
+ debug?: boolean;
8
9
  onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
9
10
  }
10
11
  export declare const DateTimeInput: React.FC<DateTimeProps>;
@@ -7,7 +7,7 @@ interface UFileProps {
7
7
  required?: boolean;
8
8
  disabled?: boolean;
9
9
  readonly?: boolean;
10
- ext: string;
10
+ ext?: string;
11
11
  df?: string;
12
12
  onChange?: ((e: any) => void);
13
13
  }
@@ -12,4 +12,5 @@ interface UFileProps {
12
12
  onChange?: ((e: any) => void);
13
13
  }
14
14
  export declare const UFiles: React.FC<UFileProps>;
15
+ export declare const validateRequiredFiles: (formValue: any, fieldName: string, fieldLabel: string) => boolean;
15
16
  export {};
@@ -1,3 +1,3 @@
1
- import { C as e, E as t, S as n, T as r, _ as i, a, b as o, c as s, d as c, f as l, g as u, h as d, i as f, l as p, m, n as h, o as g, p as _, r as v, s as y, t as b, u as x, v as S, w as C, x as w, y as T } from "../../chunks/form-C8gzkYMW.js";
2
- import { t as E } from "../../chunks/UDragFile-CAiSfTsp.js";
3
- export { t as AdvancedMultiSelect, r as AsxhUImages, l as BoxAddRow, i as CheckBox, c as CheckTreeBox, x as DateInput, p as DateTimeInput, _ as Editor, s as EfFile, m as EfImage, y as EfImages, S as Email, T as NumberText, g as PImage, o as Password, w as PhoneVn, n as RatioKeyVal, a as SelectAddRowBox, f as SelectAddRowBoxAdvanced, d as SelectBox, u as SelectMBox, e as Text, C as Textarea, E as UDragFile, v as UFile, h as UFiles, b as UImages };
1
+ import { C as e, D as t, E as n, S as r, T as i, _ as a, a as o, b as s, c, d as l, f as u, g as d, h as f, i as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as x, u as S, v as C, w, x as T, y as E } from "../../chunks/form-CPkpL5eA.js";
2
+ import { t as D } from "../../chunks/UDragFile-BnUR3riq.js";
3
+ export { t as AdvancedMultiSelect, n as AsxhUImages, v as BoxAddRow, C as CheckBox, u as CheckTreeBox, l as DateInput, S as DateTimeInput, h as Editor, m as EfFile, f as EfImage, c as EfImages, E as Email, s as NumberText, b as PImage, T as Password, r as PhoneVn, e as RatioKeyVal, _ as SelectAddRowBox, o as SelectAddRowBoxAdvanced, d as SelectBox, a as SelectMBox, w as Text, i as Textarea, D as UDragFile, p as UFile, g as UFiles, x as UImages, y as validateRequiredFiles };
@@ -1,4 +1,4 @@
1
1
  import { t as e } from "../../chunks/SortableItem-B4-Zsso3.js";
2
- import { a as t, c as n, i as r, l as i, n as a, o, r as s, s as c, t as l } from "../../chunks/meta-k8MmuQjS.js";
3
- import { a as u, d, i as f, n as p, r as m, t as h, u as g } from "../../chunks/HeaderUpdate-lrSYWsKp.js";
2
+ import { a as t, c as n, i as r, l as i, n as a, o, r as s, s as c, t as l } from "../../chunks/meta-4qPWijBT.js";
3
+ import { a as u, d, i as f, n as p, r as m, t as h, u as g } from "../../chunks/HeaderUpdate-DuS-gHNR.js";
4
4
  export { i as BtnGroup, t as CardTable, d as CusTooltip, r as ElfinderModal, u as Error403, f as Error404, s as Head, m as HeaderDetail, p as HeaderIndex, h as HeaderUpdate, n as ModalForm, a as NavTabs, l as PDFEmbed, g as Pagination, c as ScrollTable, o as SearchBox, e as SortableItem };
@@ -14,6 +14,7 @@ export declare class SingleDetail extends React.Component<PropsType, StateType>
14
14
  ctype: string;
15
15
  fluid: boolean;
16
16
  isBackUri: boolean;
17
+ debug: boolean;
17
18
  renderForm: () => React.JSX.Element;
18
19
  syncPermissionsAndState: () => Promise<void>;
19
20
  initDidMount(): Promise<void>;
@@ -17,6 +17,7 @@ export declare class SingleFields extends React.Component<PropsType, StateType>
17
17
  ctype: string;
18
18
  fluid: boolean;
19
19
  isBackUri: boolean;
20
+ debug: boolean;
20
21
  renderForm: () => React.JSX.Element;
21
22
  renderAfterForm: () => React.JSX.Element;
22
23
  handleChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => Promise<void>;
@@ -17,10 +17,11 @@ export declare class SingleUpdate extends React.Component<PropsType, StateType>
17
17
  formRef: React.RefObject<HTMLFormElement | null>;
18
18
  fluid: boolean;
19
19
  isBackUri: boolean;
20
+ debug: boolean;
20
21
  constructor(props: PropsType);
21
22
  renderForm: () => React.JSX.Element;
22
23
  renderAfterForm: () => React.JSX.Element;
23
- handleChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => Promise<void>;
24
+ handleChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => void;
24
25
  syncPermissionsAndState: () => Promise<void>;
25
26
  initDidMount(): Promise<void>;
26
27
  componentDidMount: () => void;
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../../chunks/single-DyPwG6ZR.js";
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../../chunks/single-CRF61o_U.js";
2
2
  export { a as SingleDetail, r as SingleFields, e as SingleImport, t as SingleIndex, i as SingleUpdate, n as SingleUpdateDetail, o as SingleUpdateTableDetail };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../chunks/top-navbar-FBw88y_o.js";
1
+ import { t as e } from "../../chunks/top-navbar-Bob0gMUh.js";
2
2
  export { e as TopNavbar };
@@ -11,4 +11,8 @@ export interface StateType {
11
11
  isDetail: boolean | undefined;
12
12
  [key: string]: any;
13
13
  }
14
- export declare const handleHookChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>, formValue: any) => any;
14
+ export declare const handleHookChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => {
15
+ [name]: File | null;
16
+ } | {
17
+ [name]: string;
18
+ };
@@ -1,12 +1,12 @@
1
1
  //#region src/hook/detail.ts
2
- var e = (e, t) => {
2
+ var e = (e) => {
3
3
  e.preventDefault();
4
- let { name: n, type: r, value: i } = e.target;
5
- if (r === "file") {
6
- let r = e.target.files;
7
- t[n] = r ? r[0] : null;
8
- } else t[n] = i;
9
- return t;
4
+ let { name: t, type: n, value: r } = e.target;
5
+ if (n === "file") {
6
+ let n = e.target.files;
7
+ return { [t]: n ? n[0] : null };
8
+ }
9
+ return { [t]: r };
10
10
  };
11
11
  //#endregion
12
12
  export { e as handleHookChange };
@@ -11,4 +11,8 @@ export interface StateType {
11
11
  isDetail: boolean;
12
12
  [key: string]: any;
13
13
  }
14
- export declare const handleHookChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>, formValue: any) => any;
14
+ export declare const handleHookChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => {
15
+ [name]: File | null;
16
+ } | {
17
+ [name]: string;
18
+ };
@@ -1,12 +1,12 @@
1
1
  //#region src/hook/fields.ts
2
- var e = (e, t) => {
2
+ var e = (e) => {
3
3
  e.preventDefault();
4
- let { name: n, type: r, value: i } = e.target;
5
- if (r === "file") {
6
- let r = e.target.files;
7
- t[n] = r ? r[0] : null;
8
- } else t[n] = i;
9
- return t;
4
+ let { name: t, type: n, value: r } = e.target;
5
+ if (n === "file") {
6
+ let n = e.target.files;
7
+ return { [t]: n ? n[0] : null };
8
+ }
9
+ return { [t]: r };
10
10
  };
11
11
  //#endregion
12
12
  export { e as handleHookChange };
@@ -56,6 +56,6 @@ export declare const handleHookClickPage: (e: React.MouseEvent<HTMLAnchorElement
56
56
  export declare const handleHookSeachForm: (params: Record<string, any>, cUri: string, navigate: NavigateFunction) => Promise<{
57
57
  page: number;
58
58
  }>;
59
- export declare const handleHookChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>, params: Record<string, any>) => Promise<{
59
+ export declare const handleParamChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>, params: Record<string, any>) => Promise<{
60
60
  [x: string]: any;
61
61
  }>;
@@ -1,4 +1,4 @@
1
- import { i as e, t } from "../chunks/Common-C_ZhT4L6.js";
1
+ import { i as e, t } from "../chunks/Common-BURf0rBN.js";
2
2
  //#region src/hook/index.ts
3
3
  var n = (e) => {
4
4
  if (!e) return {};
@@ -38,4 +38,4 @@ var n = (e) => {
38
38
  return n === "pageLen" ? (i.pageLen = Number(r), i.page = 1) : i[n] = r, i;
39
39
  };
40
40
  //#endregion
41
- export { n as convertQueryToSort, r as convertSortToQuery, i as fetchHookData, s as handleHookChange, a as handleHookClickPage, o as handleHookSeachForm };
41
+ export { n as convertQueryToSort, r as convertSortToQuery, i as fetchHookData, a as handleHookClickPage, o as handleHookSeachForm, s as handleParamChange };
@@ -16,9 +16,18 @@ export interface StateType {
16
16
  isDetail?: boolean;
17
17
  [key: string]: any;
18
18
  }
19
- export declare const handleHookChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>, formValue: Record<string, any>) => Promise<Record<string, any>>;
20
- export declare const handleObjChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>, data: Record<string, any>) => {
19
+ export declare const handleHookChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => {
20
+ [name]: File | null;
21
+ } | {
22
+ [name]: string | Record<string, any>;
23
+ };
24
+ export declare const handleObjChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => {
25
+ name: string;
26
+ type: string;
27
+ value: string;
28
+ } | {
21
29
  name: string;
22
30
  type: string;
23
- value: any;
31
+ value: Record<string, any>;
24
32
  };
33
+ export declare const deepMerge: (target: Record<string, any>, source: Record<string, any>) => Record<string, any>;
@@ -1,29 +1,32 @@
1
1
  //#region src/hook/update.ts
2
- var e = async (e, n) => {
2
+ var e = (e) => {
3
3
  e.preventDefault();
4
- let { name: r, type: i, value: a } = t(e, n);
5
- if (i === "file") {
4
+ let { name: n, type: r, value: i } = t(e);
5
+ if (r === "file") {
6
6
  let t = e.target.files;
7
- n[r] = t ? t[0] : null;
8
- } else n[r] = a;
9
- return n;
10
- }, t = (e, t) => {
11
- let { name: n, type: r, value: i } = e.target, a = n.split(/[\{\}]+/).filter(Boolean), o = a.shift();
12
- if (!o || a.length === 0) return {
13
- name: n,
14
- type: r,
15
- value: i
16
- };
17
- let s = JSON.parse(JSON.stringify(t?.[o] || {})), c = s;
18
- for (let e = 0; e < a.length - 1; e++) {
19
- let t = a[e];
20
- c[t] = { ...c[t] || {} }, c = c[t];
7
+ return { [n]: t ? t[0] : null };
21
8
  }
22
- return c[a[a.length - 1]] = i, {
23
- name: o,
24
- type: r,
25
- value: s
9
+ return { [n]: i };
10
+ }, t = (e) => {
11
+ let { name: t, type: n, value: r } = e.target, i = t.split(/[\{\}]+/).filter(Boolean), a = i.shift();
12
+ if (!a || i.length === 0) return {
13
+ name: t,
14
+ type: n,
15
+ value: r
16
+ };
17
+ let o = {}, s = o;
18
+ for (let e = 0; e < i.length - 1; e++) s[i[e]] = {}, s = s[i[e]];
19
+ return s[i[i.length - 1]] = r, {
20
+ name: a,
21
+ type: n,
22
+ value: o
26
23
  };
24
+ }, n = (e, t) => {
25
+ let r = { ...e };
26
+ return Object.keys(t).forEach((e) => {
27
+ let i = t[e], a = r[e];
28
+ i && typeof i == "object" && !Array.isArray(i) && a && typeof a == "object" && !Array.isArray(a) ? r[e] = n(a, i) : r[e] = i;
29
+ }), r;
27
30
  };
28
31
  //#endregion
29
- export { e as handleHookChange, t as handleObjChange };
32
+ export { n as deepMerge, e as handleHookChange, t as handleObjChange };
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import { C as e, E as t, S as n, T as r, _ as i, a, b as o, c as s, d as c, f as l, g as u, h as d, i as f, l as p, m, n as h, o as g, p as _, r as v, s as y, t as b, u as x, v as S, w as C, x as w, y as T } from "./chunks/form-C8gzkYMW.js";
2
- import { t as E } from "./chunks/SortableItem-B4-Zsso3.js";
3
- import { t as D } from "./chunks/UDragFile-CAiSfTsp.js";
4
- import { a as O, i as k, n as A, r as j, t as M } from "./chunks/echarts-CRmndsxC.js";
5
- import { t as N } from "./chunks/SpinnerLoader-h8RDIarB.js";
6
- import { a as P, c as F, i as I, l as L, n as R, o as z, r as B, s as V, t as H } from "./chunks/meta-k8MmuQjS.js";
7
- import { a as U, d as W, i as G, n as K, r as q, t as J, u as Y } from "./chunks/HeaderUpdate-lrSYWsKp.js";
8
- import { t as X } from "./chunks/sidebar-Dj4Xr9du.js";
9
- import { a as Z, i as Q, n as $, o as ee, r as te, s as ne, t as re } from "./chunks/single-DyPwG6ZR.js";
10
- import { t as ie } from "./chunks/top-navbar-FBw88y_o.js";
11
- export { t as AdvancedMultiSelect, r as AsxhUImages, O as BarChart, l as BoxAddRow, L as BtnGroup, P as CardTable, i as CheckBox, c as CheckTreeBox, W as CusTooltip, x as DateInput, p as DateTimeInput, _ as Editor, s as EfFile, m as EfImage, y as EfImages, I as ElfinderModal, S as Email, U as Error403, G as Error404, B as Head, q as HeaderDetail, K as HeaderIndex, J as HeaderUpdate, k as LineChart, F as ModalForm, j as MultiBarChart, A as MultiLineChart, R as NavTabs, T as NumberText, H as PDFEmbed, g as PImage, Y as Pagination, o as Password, w as PhoneVn, M as PieChart, n as RatioKeyVal, V as ScrollTable, z as SearchBox, a as SelectAddRowBox, f as SelectAddRowBoxAdvanced, d as SelectBox, u as SelectMBox, X as Sidebar, ne as SingleDetail, ee as SingleFields, Z as SingleImport, Q as SingleIndex, te as SingleUpdate, $ as SingleUpdateDetail, re as SingleUpdateTableDetail, E as SortableItem, N as SpinnerLoader, e as Text, C as Textarea, ie as TopNavbar, D as UDragFile, v as UFile, h as UFiles, b as UImages };
1
+ import { C as e, D as t, E as n, S as r, T as i, _ as a, a as o, b as s, c, d as l, f as u, g as d, h as f, i as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as x, u as S, v as C, w, x as T, y as E } from "./chunks/form-CPkpL5eA.js";
2
+ import { t as D } from "./chunks/SortableItem-B4-Zsso3.js";
3
+ import { t as O } from "./chunks/UDragFile-BnUR3riq.js";
4
+ import { a as k, i as A, n as j, r as M, t as N } from "./chunks/echarts-CRmndsxC.js";
5
+ import { t as P } from "./chunks/SpinnerLoader-h8RDIarB.js";
6
+ import { a as F, c as I, i as L, l as R, n as z, o as B, r as V, s as H, t as U } from "./chunks/meta-4qPWijBT.js";
7
+ import { a as W, d as G, i as K, n as q, r as J, t as Y, u as X } from "./chunks/HeaderUpdate-DuS-gHNR.js";
8
+ import { t as Z } from "./chunks/sidebar-Dj4Xr9du.js";
9
+ import { a as Q, i as $, n as ee, o as te, r as ne, s as re, t as ie } from "./chunks/single-CRF61o_U.js";
10
+ import { t as ae } from "./chunks/top-navbar-Bob0gMUh.js";
11
+ export { t as AdvancedMultiSelect, n as AsxhUImages, k as BarChart, v as BoxAddRow, R as BtnGroup, F as CardTable, C as CheckBox, u as CheckTreeBox, G as CusTooltip, l as DateInput, S as DateTimeInput, h as Editor, m as EfFile, f as EfImage, c as EfImages, L as ElfinderModal, E as Email, W as Error403, K as Error404, V as Head, J as HeaderDetail, q as HeaderIndex, Y as HeaderUpdate, A as LineChart, I as ModalForm, M as MultiBarChart, j as MultiLineChart, z as NavTabs, s as NumberText, U as PDFEmbed, b as PImage, X as Pagination, T as Password, r as PhoneVn, N as PieChart, e as RatioKeyVal, H as ScrollTable, B as SearchBox, _ as SelectAddRowBox, o as SelectAddRowBoxAdvanced, d as SelectBox, a as SelectMBox, Z as Sidebar, re as SingleDetail, te as SingleFields, Q as SingleImport, $ as SingleIndex, ne as SingleUpdate, ee as SingleUpdateDetail, ie as SingleUpdateTableDetail, D as SortableItem, P as SpinnerLoader, w as Text, i as Textarea, ae as TopNavbar, O as UDragFile, p as UFile, g as UFiles, x as UImages, y as validateRequiredFiles };
@@ -3,6 +3,10 @@ export declare const loadScript: (src: string) => Promise<void>;
3
3
  export declare const loadScripts: (scripts: string[]) => Promise<void>;
4
4
  export declare const spinnerLoader: (box: string | Element, action?: boolean) => void;
5
5
  export declare const buildFormData: (data: Record<string, any>) => FormData;
6
+ export declare class ApiError extends Error {
7
+ errorCode: string;
8
+ constructor(message: string, errorCode: string);
9
+ }
6
10
  export declare const callFetchApi: (url: string, data?: any, type?: string, ctype?: string) => Promise<any>;
7
11
  export declare const callFetchApiToken: (url: string, data?: any, type?: string, ctype?: string, isTry?: boolean) => Promise<any>;
8
12
  export declare const showSweetAlert: (text?: string, confirmText?: string) => Promise<import('sweetalert2').SweetAlertResult<any>>;
@@ -12,9 +12,9 @@ var { SECRET_KEY: l, STATIC_URL: u, API_URL: d, UPLOADS_URL: f } = await e(), p
12
12
  }
13
13
  let r = document.createElement("script");
14
14
  r.src = e, r.onload = () => t(), r.onerror = () => n(/* @__PURE__ */ Error(`Failed to load script ${e}`)), document.body.appendChild(r);
15
- }), m = async (e) => {
15
+ }), ee = async (e) => {
16
16
  for (let t of e) await p(t);
17
- }, ee = (e, t = !0) => {
17
+ }, m = (e, t = !0) => {
18
18
  let n = typeof e == "string" ? document.querySelector(e) : e;
19
19
  if (n) {
20
20
  if (t) n.querySelector(".boxSpinner") || n.insertAdjacentHTML("afterbegin", "<div class=\"boxSpinner rounded\">\n <div class=\"spinner\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n <div class=\"rect6\"></div>\n <div class=\"rect7\"></div>\n </div>\n </div>");
@@ -54,7 +54,12 @@ var { SECRET_KEY: l, STATIC_URL: u, API_URL: d, UPLOADS_URL: f } = await e(), p
54
54
  t.append(e, n);
55
55
  }
56
56
  }), t;
57
- }, g = async (e, t = {}, n = "POST", r = "application/json") => {
57
+ }, g = class extends Error {
58
+ errorCode;
59
+ constructor(e, t) {
60
+ super(e), this.name = "ApiError", this.errorCode = t;
61
+ }
62
+ }, _ = async (e, t = {}, n = "POST", r = "application/json") => {
58
63
  let i = {
59
64
  method: n,
60
65
  headers: {
@@ -66,8 +71,8 @@ var { SECRET_KEY: l, STATIC_URL: u, API_URL: d, UPLOADS_URL: f } = await e(), p
66
71
  n == "POST" && (i.body = JSON.stringify(t));
67
72
  let a = await (await fetch(e, i)).json();
68
73
  if (a.status == 200) return a;
69
- throw a.msg ? Error(a.msg) : Error("invalid_response");
70
- }, _ = async (e, t = {}, n = "POST", r = "application/json", i = !0) => {
74
+ throw a.msg ? new g(a.msg, a.errorCode) : Error("invalid_response");
75
+ }, v = async (e, t = {}, n = "POST", r = "application/json", i = !0) => {
71
76
  let a = { "Secret-Key": l };
72
77
  r !== "multipart/form-data" && (a["Content-Type"] = r);
73
78
  let o = {
@@ -90,10 +95,10 @@ var { SECRET_KEY: l, STATIC_URL: u, API_URL: d, UPLOADS_URL: f } = await e(), p
90
95
  c = s;
91
96
  }
92
97
  if (c?.status == 200) return c;
93
- if (c?.msg && i) throw Error(c.msg);
98
+ if (c?.msg && i) throw new g(c.msg, c.errorCode);
94
99
  if (i) throw Error("invalid_response");
95
100
  return !1;
96
- }, v = (e = "Bạn có chắc muốn thực hiện thao tác này ?", t = "Đồng ý") => r(n).fire({
101
+ }, te = (e = "Bạn có chắc muốn thực hiện thao tác này ?", t = "Đồng ý") => r(n).fire({
97
102
  title: "Xác nhận",
98
103
  text: e,
99
104
  icon: "warning",
@@ -103,7 +108,7 @@ var { SECRET_KEY: l, STATIC_URL: u, API_URL: d, UPLOADS_URL: f } = await e(), p
103
108
  confirmButtonText: t,
104
109
  cancelButtonText: "Hủy",
105
110
  position: "top"
106
- }), te = (e, t = "top", i = !1) => {
111
+ }), ne = (e, t = "top", i = !1) => {
107
112
  r(n).fire({
108
113
  toast: i,
109
114
  icon: "success",
@@ -112,7 +117,7 @@ var { SECRET_KEY: l, STATIC_URL: u, API_URL: d, UPLOADS_URL: f } = await e(), p
112
117
  showConfirmButton: !1,
113
118
  timer: 1500
114
119
  });
115
- }, ne = (e) => {
120
+ }, re = (e) => {
116
121
  r(n).fire({
117
122
  icon: "warning",
118
123
  title: e,
@@ -126,7 +131,7 @@ var { SECRET_KEY: l, STATIC_URL: u, API_URL: d, UPLOADS_URL: f } = await e(), p
126
131
  title: e,
127
132
  showConfirmButton: !1
128
133
  });
129
- }, re = (e, t, n = "name") => {
134
+ }, ie = (e, t, n = "name") => {
130
135
  let r = t?.find((t) => t.id === e);
131
136
  return r ? r[n] : null;
132
137
  }, b = (e, t, n = "name") => e.map((e) => {
@@ -260,7 +265,7 @@ var D = (e) => {
260
265
  let e = window.location.pathname.match(/\/(\d+)(\/)?$/);
261
266
  return e ? Number(e[1]) : null;
262
267
  }, F = (e, t = "/styles/default.jpg") => e ? u + ("/" + e).replaceAll("//", "/") : t, I = (e) => e ? u + ("/" + e).replaceAll("//", "/") : "", L = (e, t = "/styles/default.jpg") => e ? d + ("/" + e).replaceAll("//", "/") : t, R = (e, t = "/styles/default.jpg") => e ? f + "/" + e : t, z = (e, t = "/styles/default.jpg") => e ? f + "/" + e : t;
263
- function ie(e) {
268
+ function ae(e) {
264
269
  let t = "";
265
270
  for (let n = 0; n < e; n++) {
266
271
  let e = Math.floor(Math.random() * 62);
@@ -406,11 +411,11 @@ function X(e, t = {}, n = "ids") {
406
411
  }
407
412
  return n === "ids" && (r = Y(r)), r;
408
413
  }
409
- var ae = (e, t = {}, n = "vi-VN") => e ? e?.toLocaleString(n, t) : 0, oe = (e) => {
414
+ var oe = (e, t = {}, n = "vi-VN") => e ? e?.toLocaleString(n, t) : 0, se = (e) => {
410
415
  if (!e) return new c(0);
411
416
  let t = String(e).replace(/[^\d.]/g, "");
412
417
  return t ? new c(t) : new c(0);
413
- }, se = (e, t) => [...new Set(e.map((e) => e[t]))], ce = (e, t, n, r, i) => {
418
+ }, ce = (e, t) => [...new Set(e.map((e) => e[t]))], le = (e, t, n, r, i) => {
414
419
  let a = e.length, o = [];
415
420
  for (let s = 0; s < a; s++) {
416
421
  let a = t.find((t) => t[r] === e[s]);
@@ -420,34 +425,34 @@ var ae = (e, t = {}, n = "vi-VN") => e ? e?.toLocaleString(n, t) : 0, oe = (e) =
420
425
  });
421
426
  }
422
427
  return o;
423
- }, Z = (e, t) => e.map((e) => {
428
+ }, ue = (e, t) => e.map((e) => {
424
429
  let n = {};
425
430
  for (let r in t) {
426
431
  let i = t[r];
427
432
  typeof i == "string" ? n[r] = e[i] : typeof i == "function" && (n[r] = i(e));
428
433
  }
429
434
  return n;
430
- }), le = (e, t, n = !1) => {
435
+ }), de = (e, t, n = !1) => {
431
436
  if (t.split("-").map(Number).includes(e)) return !0;
432
437
  if (n) throw Error("invalid_status");
433
438
  return !1;
434
439
  };
435
- function ue(e, t) {
440
+ function Z(e, t) {
436
441
  return e?.reduce((e, n) => e + (n[t] ?? 0), 0) || 0;
437
442
  }
438
- var de = (e) => {
443
+ var fe = (e) => {
439
444
  switch (e) {
440
445
  case 3: return "tháng " + ((/* @__PURE__ */ new Date()).getMonth() + 1);
441
446
  case 4: return "năm " + (/* @__PURE__ */ new Date()).getFullYear();
442
447
  }
443
448
  return "";
444
- }, fe = (e = !1) => {
449
+ }, pe = (e = !1) => {
445
450
  let t = [{
446
451
  id: 1,
447
452
  name: "Tiếng Việt"
448
453
  }];
449
454
  return e === !1 ? t : t.find((t) => t.id === e)?.name || "";
450
- }, pe = class {
455
+ }, me = class {
451
456
  routes = [];
452
457
  async addGS(e, t, n, r = !1, i = !1, a = !1, o = !1) {
453
458
  let s = {
@@ -492,7 +497,7 @@ var de = (e) => {
492
497
  if (o.subs && o.subs.length > 0 && !Q(o.subs, t, n, r, i, a)) return !1;
493
498
  }
494
499
  return !0;
495
- }, $ = window.jQuery, me = class e {
500
+ }, $ = window.jQuery, he = class e {
496
501
  options;
497
502
  validators;
498
503
  $element;
@@ -623,14 +628,14 @@ var de = (e) => {
623
628
  };
624
629
  showErrors = (e) => {
625
630
  this.options.html;
626
- let t = e.data("bs.validator.errors"), n = e.closest(".form-group, .boxUFile"), r = n.find(".form-control-feedback");
631
+ let t = e.data("bs.validator.errors"), n = e.closest(".form-group"), r = n.find(".form-control-feedback");
627
632
  t.length && (t = $("<ul/>").addClass("list-unstyled").append($.map(t, (e) => {
628
633
  let t = $("<li/>");
629
634
  return this.options.html ? t.html(e) : t.text(e);
630
635
  })), 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));
631
636
  };
632
637
  clearErrors = (e) => {
633
- let t = e.closest(".form-group, .boxUFile"), n = t.find(".form-control-feedback");
638
+ let t = e.closest(".form-group"), n = t.find(".form-control-feedback");
634
639
  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);
635
640
  };
636
641
  hasErrors = () => !!this.$inputs.filter(function() {
@@ -668,4 +673,4 @@ var de = (e) => {
668
673
  };
669
674
  };
670
675
  //#endregion
671
- export { pe as CusRoute, me as Validator, h as buildFormData, g as callFetchApi, _ as callFetchApiToken, Q as checkPermission, V as checkUploadFile, K as createModal, N as createQueryString, oe as decimalNumber, G as elFinderPopup, Y as filterIds, O as formatDate, A as formatDateSql, D as formatDateTime, ae as formatNumber, k as formatYear, S as getActiveStatus, t as getEnv, I as getFile, de as getFilterType, P as getIdParams, F as getImage, fe as getLangs, x as getLinkFiles, re as getName, b as getNames, j as getParams, L as getPubImage, C as getPublishStatus, w as getTrueFlaseStatus, z as getUploadFile, R as getUploadImage, B as htmlToText, le as isStsNum, e as loadEnv, p as loadScript, m as loadScripts, Z as mapArrData, se as mapArrFields, W as mapDataForm, ce as mergeArrObject, T as parseDate, ie as randomString, U as resetForm, M as setParams, J as showFinderFileModal, q as showFinderModal, H as showMessage, v as showSweetAlert, y as showSweetAlertError, te as showSweetAlertOk, ne as showSweetAlertWarning, ee as spinnerLoader, E as strToDate, X as stringToJson, ue as sumArrCol };
676
+ export { g as ApiError, me as CusRoute, he as Validator, h as buildFormData, _ as callFetchApi, v as callFetchApiToken, Q as checkPermission, V as checkUploadFile, K as createModal, N as createQueryString, se as decimalNumber, G as elFinderPopup, Y as filterIds, O as formatDate, A as formatDateSql, D as formatDateTime, oe as formatNumber, k as formatYear, S as getActiveStatus, t as getEnv, I as getFile, fe as getFilterType, P as getIdParams, F as getImage, pe as getLangs, x as getLinkFiles, ie as getName, b as getNames, j as getParams, L as getPubImage, C as getPublishStatus, w as getTrueFlaseStatus, z as getUploadFile, R as getUploadImage, B as htmlToText, de as isStsNum, e as loadEnv, p as loadScript, ee as loadScripts, ue as mapArrData, ce as mapArrFields, W as mapDataForm, le as mergeArrObject, T as parseDate, ae as randomString, U as resetForm, M as setParams, J as showFinderFileModal, q as showFinderModal, H as showMessage, te as showSweetAlert, y as showSweetAlertError, ne as showSweetAlertOk, re as showSweetAlertWarning, m as spinnerLoader, E as strToDate, X as stringToJson, Z as sumArrCol };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@materialui-reactjs/admin",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },