@kingteza/crud-component 1.0.12 → 1.0.14

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 (119) hide show
  1. package/dist/components/common/DatePicker/DatePicker.cjs +1 -0
  2. package/dist/components/common/DatePicker/DatePicker.js +88 -0
  3. package/dist/components/common/DatePicker/TimePicker.cjs +1 -0
  4. package/dist/components/common/DatePicker/TimePicker.js +78 -0
  5. package/dist/components/common/appearance/Hider.cjs +1 -0
  6. package/dist/components/common/appearance/Hider.js +5 -0
  7. package/dist/components/common/button/Button.cjs +1 -0
  8. package/dist/components/common/button/Button.js +64 -0
  9. package/dist/components/common/button/CloneButtonTable.cjs +1 -0
  10. package/dist/components/common/button/CloneButtonTable.js +20 -0
  11. package/dist/components/common/button/DeleteButtonTable.cjs +1 -0
  12. package/dist/components/common/button/DeleteButtonTable.js +68 -0
  13. package/dist/components/common/button/ExportButton.cjs +1 -0
  14. package/dist/components/common/button/ExportButton.js +27 -0
  15. package/dist/components/common/button/HideButtonTable.cjs +1 -0
  16. package/dist/components/common/button/HideButtonTable.js +68 -0
  17. package/dist/components/common/button/ImportButton.cjs +1 -0
  18. package/dist/components/common/button/ImportButton.js +56 -0
  19. package/dist/components/common/button/NewButton.cjs +1 -0
  20. package/dist/components/common/button/NewButton.js +24 -0
  21. package/dist/components/common/button/PrintButton.cjs +1 -0
  22. package/dist/components/common/button/PrintButton.js +26 -0
  23. package/dist/components/common/button/RefreshButton.cjs +1 -0
  24. package/dist/components/common/button/RefreshButton.js +24 -0
  25. package/dist/components/common/button/UnHideButton.cjs +1 -0
  26. package/dist/components/common/button/UnHideButton.js +70 -0
  27. package/dist/components/common/button/UpdateButtonTable.cjs +1 -0
  28. package/dist/components/common/button/UpdateButtonTable.js +20 -0
  29. package/dist/components/common/button/ViewButtonTable.cjs +1 -0
  30. package/dist/components/common/button/ViewButtonTable.js +20 -0
  31. package/dist/components/common/check-box/CheckBox.cjs +1 -0
  32. package/dist/components/common/check-box/CheckBox.js +40 -0
  33. package/dist/components/common/description/DescList.cjs +1 -0
  34. package/dist/components/common/description/DescList.js +16 -0
  35. package/dist/components/common/layout/VerticalSpace.cjs +1 -0
  36. package/dist/components/common/layout/VerticalSpace.js +6 -0
  37. package/dist/components/common/loading/LoadingIndicator.cjs +1 -0
  38. package/dist/components/common/loading/LoadingIndicator.js +24 -0
  39. package/dist/components/common/picker/ImagePicker.cjs +1 -0
  40. package/dist/components/common/picker/ImagePicker.js +285 -0
  41. package/dist/components/common/radio/RadioGroupComponent.cjs +1 -0
  42. package/dist/components/common/radio/RadioGroupComponent.js +19 -0
  43. package/dist/components/common/report/SelectFieldInReport.cjs +1 -0
  44. package/dist/components/common/report/SelectFieldInReport.js +30 -0
  45. package/dist/components/common/select/CustomSelectOption.cjs +1 -0
  46. package/dist/components/common/select/CustomSelectOption.js +13 -0
  47. package/dist/components/common/select/SelectComponent.cjs +1 -0
  48. package/dist/components/common/select/SelectComponent.js +89 -0
  49. package/dist/components/common/show-more/index.cjs +1 -0
  50. package/dist/components/common/show-more/index.js +8 -0
  51. package/dist/components/common/tab/TabViewWithRoute.cjs +1 -0
  52. package/dist/components/common/tab/TabViewWithRoute.js +37 -0
  53. package/dist/components/common/table/table.cjs +1 -0
  54. package/dist/components/common/table/table.js +40 -0
  55. package/dist/components/common/tag/StatusTag.cjs +1 -0
  56. package/dist/components/common/tag/StatusTag.js +30 -0
  57. package/dist/components/common/text/index.cjs +1 -0
  58. package/dist/components/common/text/index.js +5 -0
  59. package/dist/components/common/text/title/index.cjs +1 -0
  60. package/dist/components/common/text/title/index.js +5 -0
  61. package/dist/components/common/text-field/NumberField.cjs +1 -0
  62. package/dist/components/common/text-field/NumberField.js +83 -0
  63. package/dist/components/common/text-field/PhoneNumberField.cjs +1 -0
  64. package/dist/components/common/text-field/PhoneNumberField.js +18 -0
  65. package/dist/components/common/text-field/TextArea.cjs +1 -0
  66. package/dist/components/common/text-field/TextArea.js +47 -0
  67. package/dist/components/common/text-field/TextField.cjs +1 -0
  68. package/dist/components/common/text-field/TextField.js +73 -0
  69. package/dist/components/common/tooltip/TooltipComponent.cjs +1 -0
  70. package/dist/components/common/tooltip/TooltipComponent.js +9 -0
  71. package/dist/components/common/wizard/WizardResult.cjs +1 -0
  72. package/dist/components/common/wizard/WizardResult.js +61 -0
  73. package/dist/components/common/wizard/WizardViewForm.cjs +1 -0
  74. package/dist/components/common/wizard/WizardViewForm.js +74 -0
  75. package/dist/components/crud/CrudComponent.cjs +1 -0
  76. package/dist/components/crud/CrudComponent.js +210 -0
  77. package/dist/components/crud/CrudField.cjs +1 -0
  78. package/dist/components/crud/CrudField.js +459 -0
  79. package/dist/components/crud/CrudForm.cjs +1 -0
  80. package/dist/components/crud/CrudForm.js +91 -0
  81. package/dist/components/crud/CrudFormWizard.cjs +1 -0
  82. package/dist/components/crud/CrudFormWizard.js +142 -0
  83. package/dist/components/crud/CrudReportComponent.cjs +4 -0
  84. package/dist/components/crud/CrudReportComponent.js +255 -0
  85. package/dist/components/crud/CrudSearchComponent.cjs +1 -0
  86. package/dist/components/crud/CrudSearchComponent.js +95 -0
  87. package/dist/components/crud/FileCrudField.cjs +1 -0
  88. package/dist/components/crud/FileCrudField.js +227 -0
  89. package/dist/components/crud/ImageCrudField.cjs +1 -0
  90. package/dist/components/crud/ImageCrudField.js +113 -0
  91. package/dist/components/crud/import/CrudImportButton.cjs +1 -0
  92. package/dist/components/crud/import/CrudImportButton.js +31 -0
  93. package/dist/components/crud/import/CrudImportComponent.cjs +2 -0
  94. package/dist/components/crud/import/CrudImportComponent.js +222 -0
  95. package/dist/components/crud/view/CrudDecListView.cjs +1 -0
  96. package/dist/components/crud/view/CrudDecListView.js +42 -0
  97. package/dist/components/crud/view/CrudViewer.cjs +1 -0
  98. package/dist/components/crud/view/CrudViewer.js +217 -0
  99. package/dist/components/crud/view/CrudViewerUtil.cjs +1 -0
  100. package/dist/components/crud/view/CrudViewerUtil.js +58 -0
  101. package/dist/index.cjs +1 -1
  102. package/dist/index.js +10 -10
  103. package/dist/locale/hooks/translation-constants.cjs +1 -0
  104. package/dist/locale/hooks/translation-constants.js +4 -0
  105. package/dist/locale/index.cjs +1 -0
  106. package/dist/locale/index.js +33 -0
  107. package/dist/locale/translations/en.cjs +1 -0
  108. package/dist/locale/translations/en.js +60 -0
  109. package/dist/util/DateUtil.cjs +1 -0
  110. package/dist/util/DateUtil.js +6 -0
  111. package/dist/util/ImageUtil.cjs +1 -0
  112. package/dist/util/ImageUtil.js +63 -0
  113. package/dist/util/NumberUtil.cjs +1 -0
  114. package/dist/util/NumberUtil.js +60 -0
  115. package/dist/util/ValidationUtil.cjs +1 -0
  116. package/dist/util/ValidationUtil.js +60 -0
  117. package/dist/util/index.cjs +1 -1
  118. package/dist/util/index.js +4 -4
  119. package/package.json +1 -1
@@ -0,0 +1,91 @@
1
+ import { j as t } from "../../_virtual/jsx-runtime.js";
2
+ import x, { useMemo as h, createElement as o, useCallback as p } from "react";
3
+ import { Form as j, Col as b, Input as g, Row as A } from "antd";
4
+ import l from "./CrudField.js";
5
+ function _({
6
+ form: d,
7
+ purpose: u = "new",
8
+ ...i
9
+ }) {
10
+ return /* @__PURE__ */ t.jsx(t.Fragment, { children: /* @__PURE__ */ t.jsx(j, { form: d, layout: "vertical", children: /* @__PURE__ */ t.jsx(C, { ...i, purpose: u }) }) });
11
+ }
12
+ function C({
13
+ fields: d,
14
+ formBuilder: u,
15
+ grid: i,
16
+ onDeleteFile: s,
17
+ onUploadFile: c,
18
+ purpose: m
19
+ }) {
20
+ const f = h(
21
+ () => d.filter((r) => !r.readonly).map((r) => {
22
+ const e = {
23
+ onUploading: (a) => {
24
+ var n;
25
+ r.onUploading && ((n = r.onUploading) == null || n.call(r, a)), c == null || c(a);
26
+ },
27
+ onDelete: (a) => {
28
+ var n;
29
+ r.onUploading && ((n = r.onDelete) == null || n.call(r, a)), s == null || s(a);
30
+ }
31
+ };
32
+ return /* @__PURE__ */ t.jsx(x.Fragment, { children: r.grid && i ? /* @__PURE__ */ t.jsx(b, { ...r.grid, children: /* @__PURE__ */ o(
33
+ l,
34
+ {
35
+ ...r,
36
+ ...e,
37
+ key: typeof r.name == "string" ? r.name : String(r.name),
38
+ updatable: m !== "update" ? !0 : r.updatable
39
+ }
40
+ ) }) : /* @__PURE__ */ o(
41
+ l,
42
+ {
43
+ ...r,
44
+ ...e,
45
+ key: typeof r.name == "string" ? r.name : String(r.name),
46
+ updatable: m !== "update" ? !0 : r.updatable
47
+ }
48
+ ) }, r.name);
49
+ }),
50
+ [d, i, s, c, m]
51
+ ), y = p(
52
+ (r, e = {}) => {
53
+ const a = d.find((n) => n.name === r);
54
+ if (a != null && a.hidden) return /* @__PURE__ */ t.jsx(t.Fragment, {});
55
+ if (a) {
56
+ const n = /* @__PURE__ */ o(
57
+ l,
58
+ {
59
+ ...a,
60
+ ...e,
61
+ key: typeof a.name == "string" ? a.name : String(a.name),
62
+ updatable: m !== "update" ? !0 : a.updatable
63
+ }
64
+ );
65
+ return e.render ? e.render(n) : n;
66
+ }
67
+ return /* @__PURE__ */ t.jsx(t.Fragment, {});
68
+ },
69
+ [d, m]
70
+ );
71
+ return /* @__PURE__ */ t.jsx(t.Fragment, { children: u ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
72
+ u(y, {
73
+ isAnyFieldHidden(...r) {
74
+ const e = Array.isArray(r) ? r : [r];
75
+ return d.filter((n) => e.includes(n.name)).some((n) => n.hidden);
76
+ },
77
+ isAllFieldsHidden(...r) {
78
+ const e = Array.isArray(r) ? r : [r];
79
+ return d.filter((n) => e.includes(n.name)).every((n) => n.hidden);
80
+ }
81
+ }),
82
+ /* @__PURE__ */ t.jsxs(j.Item, { hidden: !0, noStyle: !0, children: [
83
+ /* @__PURE__ */ t.jsx(g, { name: "id" }),
84
+ /* @__PURE__ */ t.jsx(g, {})
85
+ ] })
86
+ ] }) : i ? /* @__PURE__ */ t.jsx(A, { gutter: [8, 8], children: f }) : f });
87
+ }
88
+ export {
89
+ _ as CrudForm,
90
+ C as CrudFormFields
91
+ };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("../../_virtual/jsx-runtime.cjs"),c=require("antd"),f=require("react"),F=require("../../locale/hooks/translation-constants.cjs"),q=require("./CrudForm.cjs"),g=require("../common/button/Button.cjs"),b=require("../common/wizard/WizardViewForm.cjs"),C=require("../../node_modules/react-i18next/dist/es/useTranslation.cjs"),k=require("../../node_modules/@ant-design/icons/es/icons/LeftOutlined.cjs"),S=require("../../node_modules/@ant-design/icons/es/icons/SaveOutlined.cjs"),y=require("../../node_modules/@ant-design/icons/es/icons/RightOutlined.cjs");function T({fields:x,className:d,onDeleteFile:a,onUploadFile:i,purpose:u,wizard:r=[],updatingValue:j,onSave:h,submitting:R}){const l=f.useMemo(()=>r.map(n=>{let t=!0;const s=x.filter(o=>n.fields.includes(o.name));return s.forEach(o=>t&&(t=o.hidden??!1)),{...n,hidden:t,fieldThatShouldShowing:s}}),[x,r]),m=f.useMemo(()=>l.filter(n=>!n.hidden),[l]);return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:e.jsxRuntimeExports.jsx(b,{onSubmit:(n,t)=>{console.log(t),h(t)},className:d,pages:m.map(({title:n,icon:t,fieldThatShouldShowing:s,hidden:o},E)=>({title:n,icon:t,hidden:o,component:p=>e.jsxRuntimeExports.jsx(v,{fields:s,onDeleteFile:a,onUploadFile:i,purpose:u,i:E,updatingValue:j,backward:p.backward,forward:p.forward,wizard:m,submitting:R},E)}))})})}function v({fields:x,onDeleteFile:d,onUploadFile:a,purpose:i,wizard:u=[],i:r,forward:j,backward:h,submitting:R,updatingValue:l}){const m=u[r],{t:n}=C.useTranslation(F.TRANSLATION_NAMESPACE),[t]=c.Form.useForm();return f.useEffect(()=>{if(l&&(i==="update"||i==="clone")){const s={};for(const o of x)s[o.name]=l[o.name];t.setFieldsValue(s)}},[x,t,i,l]),e.jsxRuntimeExports.jsxs(c.Form,{name:String(r),form:t,layout:"vertical",children:[e.jsxRuntimeExports.jsx(q.CrudFormFields,{fields:x,formBuilder:m.formBuilder,grid:m.grid,onDeleteFile:d,onUploadFile:a,purpose:i}),e.jsxRuntimeExports.jsx(c.Divider,{}),e.jsxRuntimeExports.jsxs(c.Row,{gutter:[8,8],children:[r>0&&e.jsxRuntimeExports.jsx(c.Col,{md:12,children:e.jsxRuntimeExports.jsx(g,{block:!0,icon:e.jsxRuntimeExports.jsx(k,{}),htmlType:"button",type:"default",size:"large",onClick:()=>h(),children:n("str.back")})}),e.jsxRuntimeExports.jsx(c.Col,{md:r>0?12:24,children:e.jsxRuntimeExports.jsx(g,{block:!0,icon:u.length-1===r?e.jsxRuntimeExports.jsx(S,{}):e.jsxRuntimeExports.jsx(y,{}),htmlType:"submit",type:"primary",loading:R,size:"large",onClick:()=>{t.validateFields().then(s=>{j(s,u.length-1===r,u.length-1===r)})},children:u.length-1===r?n("str."+(i==="update"?"update":"save")):n("str.next")})})]})]})}module.exports=T;
@@ -0,0 +1,142 @@
1
+ import { j as r } from "../../_virtual/jsx-runtime.js";
2
+ import { Form as g, Divider as y, Row as C, Col as b } from "antd";
3
+ import { useMemo as F, useEffect as S } from "react";
4
+ import { TRANSLATION_NAMESPACE as R } from "../../locale/hooks/translation-constants.js";
5
+ import { CrudFormFields as T } from "./CrudForm.js";
6
+ import k from "../common/button/Button.js";
7
+ import E from "../common/wizard/WizardViewForm.js";
8
+ import { useTranslation as v } from "../../node_modules/react-i18next/dist/es/useTranslation.js";
9
+ import w from "../../node_modules/@ant-design/icons/es/icons/LeftOutlined.js";
10
+ import A from "../../node_modules/@ant-design/icons/es/icons/SaveOutlined.js";
11
+ import I from "../../node_modules/@ant-design/icons/es/icons/RightOutlined.js";
12
+ function G({
13
+ fields: l,
14
+ className: a,
15
+ onDeleteFile: f,
16
+ onUploadFile: i,
17
+ purpose: s,
18
+ wizard: e = [],
19
+ updatingValue: u,
20
+ onSave: h,
21
+ submitting: x
22
+ }) {
23
+ const d = F(() => e.map((o) => {
24
+ let t = !0;
25
+ const n = l.filter(
26
+ (m) => o.fields.includes(m.name)
27
+ );
28
+ return n.forEach((m) => t && (t = m.hidden ?? !1)), {
29
+ ...o,
30
+ hidden: t,
31
+ fieldThatShouldShowing: n
32
+ };
33
+ }), [l, e]), c = F(
34
+ () => d.filter((o) => !o.hidden),
35
+ [d]
36
+ );
37
+ return /* @__PURE__ */ r.jsx(r.Fragment, { children: /* @__PURE__ */ r.jsx(
38
+ E,
39
+ {
40
+ onSubmit: (o, t) => {
41
+ console.log(t), h(t);
42
+ },
43
+ className: a,
44
+ pages: c.map(
45
+ ({ title: o, icon: t, fieldThatShouldShowing: n, hidden: m }, j) => ({
46
+ title: o,
47
+ icon: t,
48
+ hidden: m,
49
+ component: (p) => /* @__PURE__ */ r.jsx(
50
+ W,
51
+ {
52
+ fields: n,
53
+ onDeleteFile: f,
54
+ onUploadFile: i,
55
+ purpose: s,
56
+ i: j,
57
+ updatingValue: u,
58
+ backward: p.backward,
59
+ forward: p.forward,
60
+ wizard: c,
61
+ submitting: x
62
+ },
63
+ j
64
+ )
65
+ })
66
+ )
67
+ }
68
+ ) });
69
+ }
70
+ function W({
71
+ fields: l,
72
+ onDeleteFile: a,
73
+ onUploadFile: f,
74
+ purpose: i,
75
+ wizard: s = [],
76
+ i: e,
77
+ forward: u,
78
+ backward: h,
79
+ submitting: x,
80
+ updatingValue: d
81
+ }) {
82
+ const c = s[e], { t: o } = v(R), [t] = g.useForm();
83
+ return S(() => {
84
+ if (d && (i === "update" || i === "clone")) {
85
+ const n = {};
86
+ for (const m of l)
87
+ n[m.name] = d[m.name];
88
+ t.setFieldsValue(n);
89
+ }
90
+ }, [l, t, i, d]), /* @__PURE__ */ r.jsxs(g, { name: String(e), form: t, layout: "vertical", children: [
91
+ /* @__PURE__ */ r.jsx(
92
+ T,
93
+ {
94
+ fields: l,
95
+ formBuilder: c.formBuilder,
96
+ grid: c.grid,
97
+ onDeleteFile: a,
98
+ onUploadFile: f,
99
+ purpose: i
100
+ }
101
+ ),
102
+ /* @__PURE__ */ r.jsx(y, {}),
103
+ /* @__PURE__ */ r.jsxs(C, { gutter: [8, 8], children: [
104
+ e > 0 && /* @__PURE__ */ r.jsx(b, { md: 12, children: /* @__PURE__ */ r.jsx(
105
+ k,
106
+ {
107
+ block: !0,
108
+ icon: /* @__PURE__ */ r.jsx(w, {}),
109
+ htmlType: "button",
110
+ type: "default",
111
+ size: "large",
112
+ onClick: () => h(),
113
+ children: o("str.back")
114
+ }
115
+ ) }),
116
+ /* @__PURE__ */ r.jsx(b, { md: e > 0 ? 12 : 24, children: /* @__PURE__ */ r.jsx(
117
+ k,
118
+ {
119
+ block: !0,
120
+ icon: s.length - 1 === e ? /* @__PURE__ */ r.jsx(A, {}) : /* @__PURE__ */ r.jsx(I, {}),
121
+ htmlType: "submit",
122
+ type: "primary",
123
+ loading: x,
124
+ size: "large",
125
+ onClick: () => {
126
+ t.validateFields().then((n) => {
127
+ u(
128
+ n,
129
+ s.length - 1 === e,
130
+ s.length - 1 === e
131
+ );
132
+ });
133
+ },
134
+ children: s.length - 1 === e ? o("str." + (i === "update" ? "update" : "save")) : o("str.next")
135
+ }
136
+ ) })
137
+ ] })
138
+ ] });
139
+ }
140
+ export {
141
+ G as default
142
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";const t=require("../../_virtual/jsx-runtime.cjs"),r=require("antd"),a=require("react"),y=require("./CrudField.cjs"),H=require("./view/CrudViewer.cjs"),I=require("../common/button/Button.cjs"),J=require("../common/button/PrintButton.cjs"),K=require("../common/report/SelectFieldInReport.cjs"),M=require("../common/select/SelectComponent.cjs"),v=require("./view/CrudViewerUtil.cjs"),Q=require("../../node_modules/@ant-design/icons/es/icons/FileExcelOutlined.cjs"),V={lg:6,md:8,sm:12,xs:24},W={lg:12,md:16,sm:24,xs:24};function X({fields:u,data:d,idField:A,loadingData:p,onSubmit:S,paginateProps:L,size:G,onClickPrint:f,onClickExcelExport:R,minusHeight:O,extraSearchFields:g,searchOnMount:E,summary:U}){const{searchable:_,selectable:m,sortable:B,defaultSort:c}=a.useMemo(()=>{var j,x,C,N,T;const e=[],s=[],l=[];let n;for(const o of u.filter(D=>!D.hidden))o.type==="image"||!o.report||((j=o.report)!=null&&j.searchable&&e.push(o),(x=o.report)!=null&&x.sortable&&(s.push(o),!n&&((C=o.report)!=null&&C.defaultSort)&&(n=o)),o.hideInTable||l.push({id:o.name,label:o.label,lock:(N=o.report)==null?void 0:N.lock,alreadySelected:(T=o.report)==null?void 0:T.alreadySelected}));return{defaultSort:n,searchable:e,sortable:s,selectable:l}},[u]),[b,F]=a.useState([]),h=a.useCallback(async({sortBy:e,sortByType:s,showFields:l=[],...n})=>{const j=[];e&&j.push({field:e,sort:s??"DESC"}),F(u.filter(x=>l.includes(x.name)).map(x=>({...x,hideInTable:!1}))),S({showFields:l,sortBy:j,...n})},[u,S]),[i]=r.Form.useForm(),[w,$]=a.useState(!1),[q,z]=a.useState(!0);return a.useEffect(()=>{if(E&&q){const e=setTimeout(()=>{i.validateFields().then(s=>{h(s)}),z(!1)},200);return()=>clearTimeout(e)}},[h,i,q,E]),a.useEffect(()=>{var s,l,n;!i.getFieldValue("sortBy")&&c&&(console.log((s=c.report)==null?void 0:s.defaultSort),i.setFieldsValue({sortBy:c.name,sortByType:typeof((l=c.report)==null?void 0:l.defaultSort)=="string"?(n=c.report)==null?void 0:n.defaultSort:"ASC"}))},[c,i]),a.useEffect(()=>{if(w){const e=m.filter(s=>s.alreadySelected).map(s=>s.id);F(u.filter(s=>e.includes(s.name)).map(s=>({...s,hideInTable:!1}))),$(!1)}},[u,w,m]),t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:t.jsxRuntimeExports.jsxs(r.Space,{className:"w-100",direction:"vertical",children:[t.jsxRuntimeExports.jsxs(r.Form,{form:i,layout:"vertical",onFinish:h,children:[t.jsxRuntimeExports.jsxs(r.Row,{gutter:[8,8],children:[_.map(e=>{var s,l,n;return t.jsxRuntimeExports.jsx(r.Col,{...e.grid??V,style:{alignSelf:"end"},children:(s=e.report)!=null&&s.customRender?e.report.customRender(i):e.type==="date"?t.jsxRuntimeExports.jsx(y.default,{...e,type:"date",range:(l=e.report)==null?void 0:l.range,required:!!((n=e.report)!=null&&n.required),readonly:!1,fieldClassName:"mb-0"}):e.type==="select"?t.jsxRuntimeExports.jsx(y.default,{...e,type:"select",multiple:!0,required:!1,readonly:!1,fieldClassName:"mb-0"}):t.jsxRuntimeExports.jsx(y.default,{...e,readonly:!1,required:!1,fieldClassName:"mb-0"})},e.name)}),!!(m!=null&&m.length)&&t.jsxRuntimeExports.jsx(r.Col,{...W,children:t.jsxRuntimeExports.jsx(K.SelectFieldInReport,{items:m,name:"showFields",mode:"multiple",label:"Show Fields",className:"mb-0"})}),!!B.length&&t.jsxRuntimeExports.jsx(r.Col,{...V,children:t.jsxRuntimeExports.jsx(M,{label:"Sort By",name:"sortBy",items:B.map(e=>({id:e.name,label:e.label})),nameFieldInArray:"label",fieldId:"id",className:"mb-0",dropdownRender:e=>t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[e,t.jsxRuntimeExports.jsx(r.Form.Item,{name:"sortByType",noStyle:!0,className:"mt-3",children:t.jsxRuntimeExports.jsx(r.Radio.Group,{className:"w-100",defaultValue:"DESC",optionType:"button",children:t.jsxRuntimeExports.jsxs(r.Row,{children:[t.jsxRuntimeExports.jsx(r.Col,{xs:12,children:t.jsxRuntimeExports.jsx(r.Radio,{className:"w-100",style:{borderTopRightRadius:0,borderBottomRightRadius:0},value:"ASC",children:"Ascending"})}),t.jsxRuntimeExports.jsx(r.Col,{xs:12,children:t.jsxRuntimeExports.jsx(r.Radio,{className:"w-100",style:{borderTopLeftRadius:0,borderBottomLeftRadius:0},value:"DESC",children:"Descending"})})]})})})]})})}),g?g(i):null]}),t.jsxRuntimeExports.jsx(I,{className:"mt-3",type:"primary",block:!0,htmlType:"submit",disabled:p,children:"Submit"})]}),t.jsxRuntimeExports.jsxs(r.Space,{children:[!!f&&t.jsxRuntimeExports.jsx(J.PrintButton,{disabled:p||!d.length,onClick:()=>f==null?void 0:f({tableId:"#crud-table table",data:d,fields:b.map(e=>({...e,render:v.getRendererValueCrudViewer(e)}))})}),!!R&&t.jsxRuntimeExports.jsx(I,{disabled:p||!d.length,onClick:()=>R==null?void 0:R({tableId:"#crud-table table",data:d,fields:b.map(e=>({...e,render:v.getRendererValueCrudViewer(e)}))}),icon:t.jsxRuntimeExports.jsx(Q,{}),className:`group
2
+ ${p||!d.length?"":"!bg-green-700 hover:!bg-green-600 !text-white !border-green-700 hover:!border-green-600"}
3
+
4
+ `,children:"Excel"})]}),U,t.jsxRuntimeExports.jsx(H,{minusHeight:O,data:d,size:G,fields:b,idField:A,loadingData:p,paginateProps:L,viewable:!1})]})})}module.exports=X;
@@ -0,0 +1,255 @@
1
+ import { j as r } from "../../_virtual/jsx-runtime.js";
2
+ import { Form as j, Space as L, Row as G, Col as f, Radio as S } from "antd";
3
+ import { useMemo as X, useState as x, useCallback as Y, useEffect as B } from "react";
4
+ import R from "./CrudField.js";
5
+ import Z from "./view/CrudViewer.js";
6
+ import _ from "../common/button/Button.js";
7
+ import { PrintButton as k } from "../common/button/PrintButton.js";
8
+ import { SelectFieldInReport as E } from "../common/report/SelectFieldInReport.js";
9
+ import P from "../common/select/SelectComponent.js";
10
+ import { getRendererValueCrudViewer as $ } from "./view/CrudViewerUtil.js";
11
+ import ee from "../../node_modules/@ant-design/icons/es/icons/FileExcelOutlined.js";
12
+ const z = { lg: 6, md: 8, sm: 12, xs: 24 }, re = { lg: 12, md: 16, sm: 24, xs: 24 };
13
+ function pe({
14
+ fields: n,
15
+ data: d,
16
+ idField: D,
17
+ loadingData: c,
18
+ onSubmit: w,
19
+ paginateProps: H,
20
+ size: J,
21
+ onClickPrint: b,
22
+ onClickExcelExport: h,
23
+ minusHeight: K,
24
+ extraSearchFields: F,
25
+ searchOnMount: N,
26
+ summary: M
27
+ }) {
28
+ const { searchable: O, selectable: i, sortable: T, defaultSort: m } = X(() => {
29
+ var p, u, V, q, A;
30
+ const e = [], t = [], l = [];
31
+ let o;
32
+ for (const s of n.filter((W) => !W.hidden))
33
+ s.type === "image" || !s.report || ((p = s.report) != null && p.searchable && e.push(s), (u = s.report) != null && u.sortable && (t.push(s), !o && ((V = s.report) != null && V.defaultSort) && (o = s)), s.hideInTable || l.push({
34
+ id: s.name,
35
+ label: s.label,
36
+ lock: (q = s.report) == null ? void 0 : q.lock,
37
+ alreadySelected: (A = s.report) == null ? void 0 : A.alreadySelected
38
+ }));
39
+ return {
40
+ defaultSort: o,
41
+ searchable: e,
42
+ sortable: t,
43
+ selectable: l
44
+ };
45
+ }, [n]), [y, I] = x(
46
+ []
47
+ ), g = Y(
48
+ async ({
49
+ sortBy: e,
50
+ sortByType: t,
51
+ showFields: l = [],
52
+ ...o
53
+ }) => {
54
+ const p = [];
55
+ e && p.push({
56
+ field: e,
57
+ sort: t ?? "DESC"
58
+ }), I(
59
+ n.filter((u) => l.includes(u.name)).map((u) => ({ ...u, hideInTable: !1 }))
60
+ ), w({ showFields: l, sortBy: p, ...o });
61
+ },
62
+ [n, w]
63
+ ), [a] = j.useForm(), [v, Q] = x(!1), [C, U] = x(!0);
64
+ return B(() => {
65
+ if (N && C) {
66
+ const e = setTimeout(() => {
67
+ a.validateFields().then((t) => {
68
+ g(t);
69
+ }), U(!1);
70
+ }, 200);
71
+ return () => clearTimeout(e);
72
+ }
73
+ }, [g, a, C, N]), B(() => {
74
+ var t, l, o;
75
+ !a.getFieldValue("sortBy") && m && (console.log((t = m.report) == null ? void 0 : t.defaultSort), a.setFieldsValue({
76
+ sortBy: m.name,
77
+ sortByType: typeof ((l = m.report) == null ? void 0 : l.defaultSort) == "string" ? (o = m.report) == null ? void 0 : o.defaultSort : "ASC"
78
+ }));
79
+ }, [m, a]), B(() => {
80
+ if (v) {
81
+ const e = i.filter((t) => t.alreadySelected).map((t) => t.id);
82
+ I(
83
+ n.filter((t) => e.includes(t.name)).map((t) => ({ ...t, hideInTable: !1 }))
84
+ ), Q(!1);
85
+ }
86
+ }, [n, v, i]), /* @__PURE__ */ r.jsx(r.Fragment, { children: /* @__PURE__ */ r.jsxs(L, { className: "w-100", direction: "vertical", children: [
87
+ /* @__PURE__ */ r.jsxs(j, { form: a, layout: "vertical", onFinish: g, children: [
88
+ /* @__PURE__ */ r.jsxs(G, { gutter: [8, 8], children: [
89
+ O.map((e) => {
90
+ var t, l, o;
91
+ return /* @__PURE__ */ r.jsx(
92
+ f,
93
+ {
94
+ ...e.grid ?? z,
95
+ style: { alignSelf: "end" },
96
+ children: (t = e.report) != null && t.customRender ? e.report.customRender(a) : e.type === "date" ? /* @__PURE__ */ r.jsx(
97
+ R,
98
+ {
99
+ ...e,
100
+ type: "date",
101
+ range: (l = e.report) == null ? void 0 : l.range,
102
+ required: !!((o = e.report) != null && o.required),
103
+ readonly: !1,
104
+ fieldClassName: "mb-0"
105
+ }
106
+ ) : e.type === "select" ? /* @__PURE__ */ r.jsx(
107
+ R,
108
+ {
109
+ ...e,
110
+ type: "select",
111
+ multiple: !0,
112
+ required: !1,
113
+ readonly: !1,
114
+ fieldClassName: "mb-0"
115
+ }
116
+ ) : /* @__PURE__ */ r.jsx(
117
+ R,
118
+ {
119
+ ...e,
120
+ readonly: !1,
121
+ required: !1,
122
+ fieldClassName: "mb-0"
123
+ }
124
+ )
125
+ },
126
+ e.name
127
+ );
128
+ }),
129
+ !!(i != null && i.length) && /* @__PURE__ */ r.jsx(f, { ...re, children: /* @__PURE__ */ r.jsx(
130
+ E,
131
+ {
132
+ items: i,
133
+ name: "showFields",
134
+ mode: "multiple",
135
+ label: "Show Fields",
136
+ className: "mb-0"
137
+ }
138
+ ) }),
139
+ !!T.length && /* @__PURE__ */ r.jsx(f, { ...z, children: /* @__PURE__ */ r.jsx(
140
+ P,
141
+ {
142
+ label: "Sort By",
143
+ name: "sortBy",
144
+ items: T.map((e) => ({ id: e.name, label: e.label })),
145
+ nameFieldInArray: "label",
146
+ fieldId: "id",
147
+ className: "mb-0",
148
+ dropdownRender: (e) => /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
149
+ e,
150
+ /* @__PURE__ */ r.jsx(j.Item, { name: "sortByType", noStyle: !0, className: "mt-3", children: /* @__PURE__ */ r.jsx(
151
+ S.Group,
152
+ {
153
+ className: "w-100",
154
+ defaultValue: "DESC",
155
+ optionType: "button",
156
+ children: /* @__PURE__ */ r.jsxs(G, { children: [
157
+ /* @__PURE__ */ r.jsx(f, { xs: 12, children: /* @__PURE__ */ r.jsx(
158
+ S,
159
+ {
160
+ className: "w-100",
161
+ style: {
162
+ borderTopRightRadius: 0,
163
+ borderBottomRightRadius: 0
164
+ },
165
+ value: "ASC",
166
+ children: "Ascending"
167
+ }
168
+ ) }),
169
+ /* @__PURE__ */ r.jsx(f, { xs: 12, children: /* @__PURE__ */ r.jsx(
170
+ S,
171
+ {
172
+ className: "w-100",
173
+ style: {
174
+ borderTopLeftRadius: 0,
175
+ borderBottomLeftRadius: 0
176
+ },
177
+ value: "DESC",
178
+ children: "Descending"
179
+ }
180
+ ) })
181
+ ] })
182
+ }
183
+ ) })
184
+ ] })
185
+ }
186
+ ) }),
187
+ F ? F(a) : null
188
+ ] }),
189
+ /* @__PURE__ */ r.jsx(
190
+ _,
191
+ {
192
+ className: "mt-3",
193
+ type: "primary",
194
+ block: !0,
195
+ htmlType: "submit",
196
+ disabled: c,
197
+ children: "Submit"
198
+ }
199
+ )
200
+ ] }),
201
+ /* @__PURE__ */ r.jsxs(L, { children: [
202
+ !!b && /* @__PURE__ */ r.jsx(
203
+ k,
204
+ {
205
+ disabled: c || !d.length,
206
+ onClick: () => b == null ? void 0 : b({
207
+ tableId: "#crud-table table",
208
+ data: d,
209
+ fields: y.map((e) => ({
210
+ ...e,
211
+ render: $(e)
212
+ }))
213
+ })
214
+ }
215
+ ),
216
+ !!h && /* @__PURE__ */ r.jsx(
217
+ _,
218
+ {
219
+ disabled: c || !d.length,
220
+ onClick: () => h == null ? void 0 : h({
221
+ tableId: "#crud-table table",
222
+ data: d,
223
+ fields: y.map((e) => ({
224
+ ...e,
225
+ render: $(e)
226
+ }))
227
+ }),
228
+ icon: /* @__PURE__ */ r.jsx(ee, {}),
229
+ className: `group
230
+ ${c || !d.length ? "" : "!bg-green-700 hover:!bg-green-600 !text-white !border-green-700 hover:!border-green-600"}
231
+
232
+ `,
233
+ children: "Excel"
234
+ }
235
+ )
236
+ ] }),
237
+ M,
238
+ /* @__PURE__ */ r.jsx(
239
+ Z,
240
+ {
241
+ minusHeight: K,
242
+ data: d,
243
+ size: J,
244
+ fields: y,
245
+ idField: D,
246
+ loadingData: c,
247
+ paginateProps: H,
248
+ viewable: !1
249
+ }
250
+ )
251
+ ] }) });
252
+ }
253
+ export {
254
+ pe as default
255
+ };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("../../_virtual/jsx-runtime.cjs"),o=require("react"),i=require("antd"),y=require("./CrudField.cjs"),q=require("../common/button/Button.cjs"),w=require("../../node_modules/@ant-design/icons/es/icons/SearchOutlined.cjs");function M({searchFields:t=[],fields:m,searchOnChange:j,onSearch:x,searchDefaultValues:b,searchFieldsCustomColumnProps:g}){const R=o.useMemo(()=>t.map(n=>typeof n=="string"?{...m.find(E=>n===E.name),required:!1}:{...m.find(l=>(n==null?void 0:n.name)===l.name),...n}).filter(n=>n&&!(n!=null&&n.hidden)),[t,m]),p=o.useMemo(()=>t.length===1?{field:22,button:2}:t.length===2?{field:11,button:2}:t.length===3?{field:6,button:6}:t.length===4?{field:5,button:4}:t.length===5?{field:4,button:4}:{field:4,button:4},[t.length]),d=o.useMemo(()=>t.length===1?{field:22,button:2}:t.length===2?{field:11,button:2}:t.length===3?{field:6,button:6}:t.length===4?{field:5,button:4}:t.length===5?{field:4,button:4}:{field:4,button:4},[t.length]),s=o.useMemo(()=>t.length===1?{field:21,button:3}:t.length===2?{field:11,button:2}:t.length===3?{field:24,button:24}:t.length===4?{field:5,button:4}:t.length===5?{field:4,button:4}:{field:4,button:4},[t.length]),[u]=i.Form.useForm(),r=o.useCallback(async n=>{if((n||j)&&x){const f=await u.validateFields();x(f)}},[u,x,j]);return o.useEffect(()=>{b&&(u.setFieldsValue(b),r(!0))},[u,b]),t!=null&&t.length?e.jsxRuntimeExports.jsx(i.Form,{form:u,onFinish:()=>r(!0),layout:"vertical",className:"mb-2",onChange:()=>r(!1),children:e.jsxRuntimeExports.jsxs(i.Row,{gutter:[4,8],className:"w-100",children:[R.map((n,f)=>{const l=(g==null?void 0:g[f])??{md:p.field,sm:d.field,xs:s.field};return o.createElement(i.Col,{...l,key:`search_field_${String(n.name)}`,className:"align-self-end"},e.jsxRuntimeExports.jsx(y.default,{...n,readonly:!1,fieldClassName:"mb-0"}))}),e.jsxRuntimeExports.jsx(i.Col,{md:p.button,sm:d.button,xs:s.button,style:{alignSelf:"end"},children:e.jsxRuntimeExports.jsx(q,{type:"primary",htmlType:"submit",block:!0,icon:e.jsxRuntimeExports.jsx(w,{})})})]})}):e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{})}module.exports=M;
@@ -0,0 +1,95 @@
1
+ import { j as o } from "../../_virtual/jsx-runtime.js";
2
+ import { useMemo as l, useCallback as E, useEffect as R, createElement as a } from "react";
3
+ import { Form as y, Row as v, Col as w } from "antd";
4
+ import _ from "./CrudField.js";
5
+ import q from "../common/button/Button.js";
6
+ import B from "../../node_modules/@ant-design/icons/es/icons/SearchOutlined.js";
7
+ function A({
8
+ searchFields: t = [],
9
+ fields: e,
10
+ searchOnChange: r,
11
+ onSearch: b,
12
+ searchDefaultValues: g,
13
+ searchFieldsCustomColumnProps: i
14
+ }) {
15
+ const N = l(
16
+ () => t.map((n) => typeof n == "string" ? {
17
+ ...e.find((k) => n === k.name),
18
+ required: !1
19
+ } : {
20
+ ...e.find(
21
+ (u) => (n == null ? void 0 : n.name) === u.name
22
+ ),
23
+ ...n
24
+ }).filter((n) => n && !(n != null && n.hidden)),
25
+ [t, e]
26
+ ), x = l(
27
+ () => t.length === 1 ? { field: 22, button: 2 } : t.length === 2 ? { field: 11, button: 2 } : t.length === 3 ? { field: 6, button: 6 } : t.length === 4 ? { field: 5, button: 4 } : t.length === 5 ? { field: 4, button: 4 } : { field: 4, button: 4 },
28
+ [t.length]
29
+ ), d = l(
30
+ () => t.length === 1 ? { field: 22, button: 2 } : t.length === 2 ? { field: 11, button: 2 } : t.length === 3 ? { field: 6, button: 6 } : t.length === 4 ? { field: 5, button: 4 } : t.length === 5 ? { field: 4, button: 4 } : { field: 4, button: 4 },
31
+ [t.length]
32
+ ), j = l(
33
+ () => t.length === 1 ? { field: 21, button: 3 } : t.length === 2 ? { field: 11, button: 2 } : t.length === 3 ? { field: 24, button: 24 } : t.length === 4 ? { field: 5, button: 4 } : t.length === 5 ? { field: 4, button: 4 } : { field: 4, button: 4 },
34
+ [t.length]
35
+ ), [f] = y.useForm(), p = E(
36
+ async (n) => {
37
+ if ((n || r) && b) {
38
+ const m = await f.validateFields();
39
+ b(m);
40
+ }
41
+ },
42
+ [f, b, r]
43
+ );
44
+ return R(() => {
45
+ g && (f.setFieldsValue(g), p(!0));
46
+ }, [f, g]), t != null && t.length ? /* @__PURE__ */ o.jsx(
47
+ y,
48
+ {
49
+ form: f,
50
+ onFinish: () => p(!0),
51
+ layout: "vertical",
52
+ className: "mb-2",
53
+ onChange: () => p(!1),
54
+ children: /* @__PURE__ */ o.jsxs(v, { gutter: [4, 8], className: "w-100", children: [
55
+ N.map((n, m) => {
56
+ const u = (i == null ? void 0 : i[m]) ?? {
57
+ md: x.field,
58
+ sm: d.field,
59
+ xs: j.field
60
+ };
61
+ return /* @__PURE__ */ a(
62
+ w,
63
+ {
64
+ ...u,
65
+ key: `search_field_${String(n.name)}`,
66
+ className: "align-self-end"
67
+ },
68
+ /* @__PURE__ */ o.jsx(_, { ...n, readonly: !1, fieldClassName: "mb-0" })
69
+ );
70
+ }),
71
+ /* @__PURE__ */ o.jsx(
72
+ w,
73
+ {
74
+ md: x.button,
75
+ sm: d.button,
76
+ xs: j.button,
77
+ style: { alignSelf: "end" },
78
+ children: /* @__PURE__ */ o.jsx(
79
+ q,
80
+ {
81
+ type: "primary",
82
+ htmlType: "submit",
83
+ block: !0,
84
+ icon: /* @__PURE__ */ o.jsx(B, {})
85
+ }
86
+ )
87
+ }
88
+ )
89
+ ] })
90
+ }
91
+ ) : /* @__PURE__ */ o.jsx(o.Fragment, {});
92
+ }
93
+ export {
94
+ A as default
95
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("../../_virtual/jsx-runtime.cjs");;/* empty css */const f=require("antd"),I=require("../../node_modules/mime/dist/src/index.cjs"),u=require("react"),W=require("../../locale/hooks/translation-constants.cjs"),B=require("../../util/ValidationUtil.cjs"),F=require("../common/button/Button.cjs"),H=require("../common/layout/VerticalSpace.cjs"),z=require("../../node_modules/@ant-design/icons/es/icons/FileOutlined.cjs"),G=require("../../node_modules/@ant-design/icons/es/icons/FilePptOutlined.cjs"),J=require("../../node_modules/@ant-design/icons/es/icons/FileExcelOutlined.cjs"),K=require("../../node_modules/@ant-design/icons/es/icons/FileTextOutlined.cjs"),Q=require("../../node_modules/@ant-design/icons/es/icons/FileWordOutlined.cjs"),X=require("../../node_modules/@ant-design/icons/es/icons/FilePdfOutlined.cjs"),Y=require("../../node_modules/@ant-design/icons/es/icons/FileImageOutlined.cjs"),Z=require("../../node_modules/react-i18next/dist/es/useTranslation.cjs"),m=require("../../node_modules/@ant-design/icons/es/icons/ExportOutlined.cjs");function v({name:l,label:t,required:r,provider:s,onUploading:i,onRemoved:x,fieldClassName:h,accept:w,rules:A,maxCount:g=1,block:D,...N}){const d=f.Form.useFormInstance(),j=f.Form.useWatch(l,d),[q,C]=u.useState(!1),[P,k]=u.useState(!1),U=u.useCallback(async n=>{var o,a;try{const{file:c}=n,E=c.name;C(!0),k(!0),i==null||i(!0);const R=E??"",S=R.split("."),$=S[S.length-1],L=s.generateFileName(R),b=`${await s.getInitialPath()}/${L}.${$}`;console.log({filePath:b});const V=await s.upload({...c,originFileObj:c},b);i==null||i(!1),d.setFieldValue(l,V),(o=n.onSuccess)==null||o.call(n,V)}catch(c){(a=n.onError)==null||a.call(n,c)}finally{C(!1)}},[d,l,i,s]),[p,O]=u.useState([]);u.useEffect(()=>{!P&&j&&Promise.all((Array.isArray(j)?j:[j]).map(async n=>{const o=I.default.getType(n),a=n.split("/").pop(),c=await s.getRealUrl(n);return{uid:n,url:c,type:o,name:a}})).then(n=>O(()=>{const o=n.map(({url:a,type:c,uid:E,name:R})=>({uid:E,url:a,type:c,response:E,thumbUrl:a,name:R}));return console.log(o),o}))},[j,P,q,s]);const _=u.useCallback(async n=>{const o=n.response,a=o||d.getFieldValue(l);await s.delete(a),x==null||x(),n&&d.setFieldsValue({[l]:null})},[d,l,x,s]);return e.jsxRuntimeExports.jsxs(f.Form.Item,{label:t,required:r,name:l,className:h,rules:[...r?B.required(t):[],...A??[]],children:[e.jsxRuntimeExports.jsx("input",{hidden:!0}),e.jsxRuntimeExports.jsx(f.Upload,{...N,fileList:p,className:((p==null?void 0:p.length)??0)>=g?"hide-upload":"",maxCount:g,customRequest:U,onRemove:_,listType:"picture",onChange:({fileList:n})=>{O(n)},style:D?{width:"100%"}:void 0,children:e.jsxRuntimeExports.jsx(F,{loading:q,children:"Upload File"})})]})}const y=({provider:l,value:t})=>{const[r,s]=u.useState();return u.useEffect(()=>{t&&l.getRealUrl(t).then(i=>{s({mimeType:I.default.getType(t),url:i,fileName:t.split("/").pop()??t})})},[l,t]),r?e.jsxRuntimeExports.jsx(M,{fileName:r.fileName,url:r==null?void 0:r.url,mimeType:r==null?void 0:r.mimeType}):e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{})},M=({url:l,mimeType:t="",fileName:r})=>{const s=u.useMemo(()=>t!=null&&t.includes("image")?"image":t!=null&&t.includes("pdf")?"pdf":t!=null&&t.includes("word")?"word":t!=null&&t.includes("text")?"text":t!=null&&t.includes("presentation")?"presentation":t!=null&&t.includes("excel")||t!=null&&t.includes("spreadsheet")?"excel":"file",[t]),i=u.useMemo(()=>{switch(s){case"image":return e.jsxRuntimeExports.jsx(Y,{});case"pdf":return e.jsxRuntimeExports.jsx(X,{});case"word":return e.jsxRuntimeExports.jsx(Q,{});case"text":return e.jsxRuntimeExports.jsx(K,{});case"excel":return e.jsxRuntimeExports.jsx(J,{});case"presentation":return e.jsxRuntimeExports.jsx(G,{});default:return e.jsxRuntimeExports.jsx(z,{})}},[s]),[x,h]=u.useState(!1),{t:w}=Z.useTranslation(W.TRANSLATION_NAMESPACE);return s!=="file"&&s!=="text"?e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(f.Modal,{open:x,title:r,onCancel:()=>h(!1),footer:e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{}),width:"100%",style:{top:"8px",minHeight:"700px"},destroyOnClose:!0,children:e.jsxRuntimeExports.jsxs(H,{children:[e.jsxRuntimeExports.jsx(F,{tooltip:r,icon:e.jsxRuntimeExports.jsx(m,{}),target:"_blank",href:l,style:{textDecoration:"none"},children:w("str.openInNewTab")}),s==="image"?e.jsxRuntimeExports.jsx("img",{src:l,alt:r,style:{width:"100%"}}):s==="pdf"?e.jsxRuntimeExports.jsxs("iframe",{title:r,src:l,width:"100%",height:"700px",children:["This browser does not support PDFs. Please download the PDF to view it:",e.jsxRuntimeExports.jsx("a",{href:l,children:"Download PDF"}),"."]}):e.jsxRuntimeExports.jsxs("iframe",{title:r,src:`https://view.officeapps.live.com/op/view.aspx?src=${encodeURIComponent(l)}`,width:"100%",height:"700px",children:["This browser does not support open ",s.toUpperCase(),". Please download the",s.toUpperCase()," to view it:",e.jsxRuntimeExports.jsxs("a",{href:l,children:["Download ",s.toUpperCase()]}),"."]})]})}),e.jsxRuntimeExports.jsx(F,{tooltip:r,icon:i,shape:"circle",onClick:()=>h(!0)})]}):e.jsxRuntimeExports.jsx(F,{tooltip:r,icon:i,target:"_blank",href:l,shape:"circle"})};exports.FileCellValue=M;exports.FileCrudCellValue=y;exports.default=v;