@materialui-reactjs/admin 1.0.6 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/CHANGELOG.md +322 -0
  2. package/LICENSE +21 -0
  3. package/README.md +587 -453
  4. package/dist/Common-DFahMuQE.cjs +11 -0
  5. package/dist/Common-_PK8HLKN.js +267 -0
  6. package/dist/Env-DoS-iQjs.cjs +1 -0
  7. package/dist/Env-SHztUA3s.js +16 -0
  8. package/dist/HeaderUpdate-Dirxjmxs.cjs +1 -0
  9. package/dist/{chunks/HeaderUpdate-DuS-gHNR.js → HeaderUpdate-drlnuHI8.js} +28 -25
  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-D8wOZ1Ut.js +96 -0
  14. package/dist/UDragFile-Db0sK4M7.cjs +1 -0
  15. package/dist/{chunks/Validator-CXYkI7vJ.js → Validator-D2zwZeov.js} +83 -52
  16. package/dist/Validator-DBxl8wtE.cjs +1 -0
  17. package/dist/assets/css/form.css +1 -1
  18. package/dist/assets/css/index.css +1 -1
  19. package/dist/ckeditor/ckeditor.d.ts +3 -0
  20. package/dist/ckeditor/plugins/elfinder.d.ts +11 -0
  21. package/dist/ckeditor/plugins/fullscreen.d.ts +15 -0
  22. package/dist/ckeditor/plugins/pdffinder.d.ts +18 -0
  23. package/dist/ckeditor/types.d.ts +37 -0
  24. package/dist/common-CEZp8xpQ.js +30 -0
  25. package/dist/common-ivDX6gGq.cjs +1 -0
  26. package/dist/components/echarts/index.cjs +1 -0
  27. package/dist/components/echarts/index.js +1 -1
  28. package/dist/components/form/AdvancedMultiSelect.d.ts +6 -3
  29. package/dist/components/form/AsxhUImages.d.ts +2 -1
  30. package/dist/components/form/BoxAddRow.d.ts +13 -2
  31. package/dist/components/form/CheckTreeBox.d.ts +12 -3
  32. package/dist/components/form/CusForm.d.ts +19 -6
  33. package/dist/components/form/DateInput.d.ts +2 -1
  34. package/dist/components/form/Editor.d.ts +2 -1
  35. package/dist/components/form/EfFile.d.ts +2 -1
  36. package/dist/components/form/EfImage.d.ts +2 -1
  37. package/dist/components/form/EfImages.d.ts +2 -1
  38. package/dist/components/form/PImage.d.ts +2 -1
  39. package/dist/components/form/SelectAddRowBox.d.ts +9 -5
  40. package/dist/components/form/SelectAddRowBoxAdvanced.d.ts +13 -4
  41. package/dist/components/form/SelectBox.d.ts +20 -7
  42. package/dist/components/form/UDragFile.d.ts +2 -1
  43. package/dist/components/form/UFile.d.ts +2 -1
  44. package/dist/components/form/UFiles.d.ts +9 -2
  45. package/dist/components/form/UImages.d.ts +2 -1
  46. package/dist/components/form/index.cjs +1 -0
  47. package/dist/components/form/index.js +2 -2
  48. package/dist/components/loader/SpinnerLoader.d.ts +5 -1
  49. package/dist/components/loader/index.cjs +1 -0
  50. package/dist/components/loader/index.js +1 -2
  51. package/dist/components/meta/CardTable.d.ts +11 -5
  52. package/dist/components/meta/CardTable.types.d.ts +57 -0
  53. package/dist/components/meta/CusTooltip.d.ts +8 -2
  54. package/dist/components/meta/Head.d.ts +10 -1
  55. package/dist/components/meta/HeaderDetail.d.ts +2 -1
  56. package/dist/components/meta/HeaderUpdate.d.ts +5 -1
  57. package/dist/components/meta/ModalForm.d.ts +41 -11
  58. package/dist/components/meta/Navtabs.d.ts +1 -1
  59. package/dist/components/meta/ScrollTable.d.ts +7 -3
  60. package/dist/components/meta/SearchBox.d.ts +8 -5
  61. package/dist/components/meta/SortableItem.d.ts +11 -1
  62. package/dist/components/meta/index.cjs +1 -0
  63. package/dist/components/meta/index.d.ts +1 -0
  64. package/dist/components/meta/index.js +3 -3
  65. package/dist/components/sidebar/Sidebar.types.d.ts +9 -7
  66. package/dist/components/sidebar/index.cjs +1 -0
  67. package/dist/components/sidebar/index.js +1 -1
  68. package/dist/components/single/Detail.d.ts +8 -3
  69. package/dist/components/single/Fields.d.ts +10 -4
  70. package/dist/components/single/Import.d.ts +8 -3
  71. package/dist/components/single/List.d.ts +33 -7
  72. package/dist/components/single/Update.d.ts +10 -4
  73. package/dist/components/single/UpdateDetail.d.ts +3 -2
  74. package/dist/components/single/UpdateTableDetail.d.ts +4 -3
  75. package/dist/components/single/index.cjs +1 -0
  76. package/dist/components/single/index.js +1 -1
  77. package/dist/components/top-navbar/index.cjs +1 -0
  78. package/dist/components/top-navbar/index.js +78 -2
  79. package/dist/echarts-Bi3uwLbg.cjs +1 -0
  80. package/dist/{chunks/echarts-CRmndsxC.js → echarts-CTzMqeR5.js} +4 -4
  81. package/dist/form-heyswTRq.js +3897 -0
  82. package/dist/form-sgtop6li.cjs +49 -0
  83. package/dist/hook/common.d.ts +87 -0
  84. package/dist/hook/detail.cjs +1 -0
  85. package/dist/hook/detail.d.ts +9 -15
  86. package/dist/hook/detail.js +1 -11
  87. package/dist/hook/fields.cjs +1 -0
  88. package/dist/hook/fields.d.ts +6 -14
  89. package/dist/hook/fields.js +1 -11
  90. package/dist/hook/import.d.ts +6 -11
  91. package/dist/hook/index.cjs +1 -0
  92. package/dist/hook/index.d.ts +29 -20
  93. package/dist/hook/index.js +14 -11
  94. package/dist/hook/update.cjs +1 -0
  95. package/dist/hook/update.d.ts +11 -19
  96. package/dist/hook/update.js +12 -9
  97. package/dist/index.cjs +1 -0
  98. package/dist/index.d.ts +16 -0
  99. package/dist/index.js +14 -11
  100. package/dist/meta-BANk9kHW.cjs +1 -0
  101. package/dist/meta-CheDAmMh.js +745 -0
  102. package/dist/rolldown-runtime-BocRIvOZ.cjs +1 -0
  103. package/dist/sidebar-CfQAYWi-.cjs +1 -0
  104. package/dist/{chunks/sidebar-Dj4Xr9du.js → sidebar-CzRmfvhi.js} +10 -13
  105. package/dist/{chunks/single-CRF61o_U.js → single-BsJ7TYJi.js} +364 -282
  106. package/dist/single-C2WPEjhk.cjs +1 -0
  107. package/dist/style.cjs +0 -0
  108. package/dist/style.d.ts +0 -0
  109. package/dist/style.js +0 -0
  110. package/dist/types/Menu.d.ts +25 -0
  111. package/dist/utils/Common.d.ts +224 -43
  112. package/dist/utils/CusRoute.d.ts +21 -1
  113. package/dist/utils/Env.d.ts +23 -2
  114. package/dist/utils/Group.d.ts +12 -1
  115. package/dist/utils/Validator.d.ts +34 -12
  116. package/dist/utils/index.cjs +11 -0
  117. package/dist/utils/index.d.ts +2 -1
  118. package/dist/utils/index.js +212 -171
  119. package/package.json +190 -163
  120. package/dist/chunks/Common-BURf0rBN.js +0 -222
  121. package/dist/chunks/Env-DRXhvUcb.js +0 -16
  122. package/dist/chunks/UDragFile-BnUR3riq.js +0 -92
  123. package/dist/chunks/form-CPkpL5eA.js +0 -45889
  124. package/dist/chunks/loader-BUiOnhOH.js +0 -1
  125. package/dist/chunks/meta-4qPWijBT.js +0 -758
  126. package/dist/chunks/top-navbar-Bob0gMUh.js +0 -78
  127. package/scripts/postinstall.cjs +0 -80
  128. /package/dist/{chunks/SortableItem-B4-Zsso3.js → SortableItem-B4-Zsso3.js} +0 -0
  129. /package/dist/{components/meta/Pdfviewer.d.ts → hook/import.cjs} +0 -0
@@ -0,0 +1,49 @@
1
+ const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./Env-DoS-iQjs.cjs"),n=require("./Common-DFahMuQE.cjs"),r=require("./Validator-DBxl8wtE.cjs"),i=require("./SortableItem-C3KzO8Xh.cjs");let a=require("react");a=e.t(a);let o=require("react-select");o=e.t(o,1);let s=require("@hello-pangea/dnd"),c=require("react/jsx-runtime"),l=require("date-fns"),u=require("react-dom"),d=require("@dnd-kit/utilities"),f=require("@dnd-kit/sortable"),p=require("@ckeditor/ckeditor5-react"),m=require("ckeditor5");require("ckeditor5/ckeditor5.css");let h=require("@mui/x-date-pickers/DatePicker"),g=require("@mui/x-date-pickers/LocalizationProvider"),_=require("@mui/x-date-pickers/AdapterDateFns"),v=require("date-fns/locale"),y=require("@mui/x-date-pickers/DateTimePicker"),b=require("react-router-dom");var x=(e,t)=>(Array.isArray(t)?t:[]).map(t=>e.find(e=>e.value===t)).filter(e=>e!==void 0),S=(e,t,n,r,i)=>{let a=[];r&&a.push({value:-1,label:`Tất cả`}),i&&a.push({value:0,label:`Không có`});let o=Array.isArray(e)?e.map(e=>({value:e[t],label:String(e[n]??``)})):[];return[...a,...o]},C=({label:e,name:t,lists:n=[],keyValue:r=`id`,keyName:i=`name`,value:l=[],cpnClass:u=``,required:d=!1,disabled:f=!1,all:p=!1,zero:m=!1,onChange:h})=>{let[g,_]=(0,a.useState)([]);(0,a.useEffect)(()=>{_(S(n,r,i,p,m))},[n]);let v=e=>{if(!e.destination)return;let n=[...x(g,l)],[r]=n.splice(e.source.index,1);n.splice(e.destination.index,0,r),h?.({target:{name:t,value:n.map(e=>e?.value)},preventDefault:()=>{}})},y=e=>{h?.({target:{name:t,value:e},preventDefault:()=>{}})},b=e=>(0,c.jsxs)(o.components.Option,{...e,children:[(0,c.jsx)(`input`,{type:`checkbox`,checked:e.isSelected,onChange:()=>null,style:{marginRight:8}}),(0,c.jsx)(`div`,{children:e.label})]}),C=e=>(0,c.jsx)(s.Draggable,{draggableId:String(e.data.value),index:e.index,children:t=>(0,c.jsx)(`div`,{ref:t.innerRef,...t.draggableProps,...t.dragHandleProps,style:{display:`inline-flex`,alignItems:`center`,marginRight:6,...t.draggableProps.style},children:(0,c.jsx)(o.components.MultiValue,{...e})})});return(0,c.jsxs)(`div`,{className:`form-group `+(u??``),children:[(0,c.jsx)(`div`,{className:`form-label mb-1`,children:e+(d?` *`:``)}),(0,c.jsx)(s.DragDropContext,{onDragEnd:v,children:(0,c.jsx)(s.Droppable,{droppableId:`selected`,direction:`horizontal`,children:e=>(0,c.jsxs)(`div`,{ref:e.innerRef,...e.droppableProps,children:[(0,c.jsx)(o.default,{options:g,value:x(g,l),isMulti:!0,isSearchable:!0,closeMenuOnSelect:!1,hideSelectedOptions:!1,placeholder:`Chọn và kéo thả để sắp xếp...`,noOptionsMessage:()=>`Không có dữ liệu`,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,isDisabled:f,components:{Option:b,MultiValue:C},onChange:e=>y((e??[]).map(e=>e.value)),menuPortalTarget:document.body,styles:{menuPortal:e=>({...e,zIndex:99999}),input:e=>({...e,minHeight:30}),multiValue:e=>({...e,cursor:`grab`}),menuList:e=>({...e,display:`flex`,flexDirection:`column`,alignItems:`center`,paddingLeft:5,paddingRight:5,paddingTop:5,paddingBottom:2}),option:(e,t)=>({...e,minHeight:40,width:`100%`,display:`flex`,alignItems:`center`,paddingTop:8,paddingBottom:8,marginBottom:5,borderRadius:6,justifyContent:`flex-start`,backgroundColor:t.isFocused?`#FFC20E`:t.isSelected?`#ED7D31`:`white`,color:t.isFocused?`#333`:t.isSelected?`#fff`:`#333`,cursor:`pointer`})}}),e.placeholder]})})})]})},w=({label:e,name:i,cpnClass:o=``,required:s=!1,value:l=[],onChange:u,isEdit:d=!1,ext:f=`.png, .jpg, .jpeg, .ico`,df:p=``})=>{let m=(0,a.useRef)(null),[h,g]=(0,a.useState)([]),[_,v]=(0,a.useState)(Array.isArray(l)?l:[]),y=(0,a.useRef)(new Map),b=e=>{let t=y.current.get(e);return t||(t=URL.createObjectURL(e),y.current.set(e,t)),t};(0,a.useEffect)(()=>()=>{y.current.forEach(e=>URL.revokeObjectURL(e)),y.current.clear()},[]),(0,a.useEffect)(()=>{v(e=>{let t=Array.isArray(l)?l:[];return e.length===t.length&&e.every((e,n)=>e===t[n])?e:t})},[l]);let x=e=>{e.preventDefault();let t=/\.(png|jpg|jpeg|ico)$/i,r=m.current?.querySelector(`.default-file-input`);if(!r)return;let i=r.files;if(!i)return;let a=r.getAttribute(`accept`),o=n.t(a,t);n.r(i,10,o).then(()=>{let e=Array.from(i);g(t=>[...t,...e])}).catch(e=>{console.error(`[AsxhUImages] Upload không hợp lệ:`,e.message)})},S=(e,t)=>{e.preventDefault(),v(e=>e.filter((e,n)=>n!==t))},C=(e,t)=>{e.preventDefault();let n=h[t];if(n){let e=y.current.get(n);e&&(URL.revokeObjectURL(e),y.current.delete(n))}g(e=>e.filter((e,n)=>n!==t))};(0,a.useEffect)(()=>{u&&u(r.a(`${i}_upload`,h,`files`))},[h]),(0,a.useEffect)(()=>{u&&u(r.a(i,_))},[_]);let w=(e,n=`/styles/default.jpg`)=>e?(t.t().API_URL??``)+`/uploads/`+e:n;return(0,c.jsxs)(`div`,{ref:m,className:`card boxUImage ${o}`,children:[(0,c.jsx)(`div`,{className:`card-header`,children:(0,c.jsx)(`div`,{className:`row`,children:(0,c.jsxs)(`div`,{className:`flex-auto col-auto d-flex align-items-center`,children:[(0,c.jsx)(`h3`,{className:`card-title`,children:e}),d&&(0,c.jsxs)(`label`,{className:`text-info cursor-pointer m-0 ms-auto`,children:[`Tải lên`,(0,c.jsx)(`input`,{required:s,name:i,multiple:!0,type:`file`,onChange:x,className:`d-none default-file-input`,accept:f})]})]})})}),(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsxs)(`div`,{className:`card-body py-2 px-3`,style:{minHeight:`50px`},children:[_?.map((e,t)=>{let n=(e?e.split(`/`).pop()??``:``).split(`___`);return(0,c.jsxs)(`div`,{className:`d-flex w-100 justify-content-between`,children:[(0,c.jsxs)(`div`,{className:`d-flex justify-content-center flex-column ${e?``:`d-none`}`,children:[(0,c.jsxs)(`div`,{className:`w-100`,children:[(0,c.jsx)(`i`,{className:`fal fa-file me-1`}),(0,c.jsx)(`a`,{className:`text-info`,href:w(e,p),target:`_blank`,children:n?.[1]})]}),(0,c.jsx)(`span`,{children:n[0]?new Date(Number(n[0])).toLocaleString(`vi-VN`):``})]}),d&&(0,c.jsx)(`a`,{onClick:e=>S(e,t),href:`#`,className:`ml-auto link text-danger ${e?``:`d-none`}`,children:`Xóa`})]},t)}),h?.map((e,t)=>(0,c.jsxs)(`div`,{className:`d-flex w-100 justify-content-between`,children:[(0,c.jsxs)(`div`,{className:`d-flex align-items-center justify-content-center ${e?``:`d-none`}`,children:[(0,c.jsx)(`i`,{className:`fal fa-file me-1`}),(0,c.jsx)(`a`,{className:`text-info text-1-line`,href:b(e),target:`_blank`,rel:`noopener noreferrer`,children:e?.name})]}),d&&(0,c.jsx)(`a`,{onClick:e=>C(e,t),href:`#`,className:`ml-auto link text-danger ${e?``:`d-none`}`,children:`Xóa`})]},t))]})]})},T=(e,t)=>{t?.(e);let n=e.currentTarget.closest(`.input-group-outline`);e.currentTarget.value.trim()===``?n?.classList.remove(`is-filled`):n?.classList.add(`is-filled`)},E=e=>{e.preventDefault(),e.currentTarget.closest(`.input-group-outline`)?.classList.add(`is-focused`)},D=e=>{e.preventDefault(),e.currentTarget.closest(`.input-group-outline`)?.classList.remove(`is-focused`)},ee=({label:e,name:t,value:n=``,required:i=!1,disabled:o=!1,readonly:s=!1,cpnClass:l=``,minLength:u=0,maxLength:d=255,onChange:f,style:p={}})=>{let m=(0,a.useRef)(null);return(0,a.useEffect)(()=>{document.activeElement!==m.current&&f&&f(r.a(t,n))},[n]),(0,c.jsx)(`div`,{className:`form-group `+(l??``),children:(0,c.jsxs)(`div`,{className:`input-group input-group-outline ${n?`is-filled`:``}`,children:[(0,c.jsx)(`div`,{className:`form-label`,children:e+(i?` *`:``)}),(0,c.jsx)(`input`,{style:p,name:t,placeholder:``,readOnly:s,disabled:o,required:i,minLength:u,maxLength:d,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,className:`form-control`,value:n,onChange:e=>T(e,f),onFocus:E,onBlur:D})]})})},te=({label:e,name:t,value:n=``,required:i=!1,disabled:o=!1,readonly:s=!1,cpnClass:l=``,minLength:u=0,maxLength:d=255,onChange:f})=>{let p=(0,a.useRef)(null);return(0,a.useEffect)(()=>{document.activeElement!==p.current&&f&&f(r.a(t,n))},[n]),(0,c.jsx)(`div`,{className:`form-group `+(l??``),children:(0,c.jsxs)(`div`,{className:`input-group input-group-outline ${n?`is-filled`:``}`,children:[(0,c.jsx)(`div`,{className:`form-label`,children:e+(i?` *`:``)}),(0,c.jsx)(`input`,{type:`email`,name:t,readOnly:s,disabled:o,required:i,minLength:u,maxLength:d,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,className:`form-control`,value:n,onChange:e=>T(e,f),onFocus:E,onBlur:D})]})})},O=({label:e,name:t,value:n=``,cpnClass:i=``,required:o=!1,disabled:s=!1,readonly:l=!1,rows:u=3,onChange:d})=>{let f=(0,a.useRef)(null);return(0,a.useEffect)(()=>{document.activeElement!==f.current&&d&&d(r.a(t,n))},[n]),(0,c.jsx)(`div`,{className:`form-group `+(i??``),children:(0,c.jsxs)(`div`,{className:`input-group input-group-outline ${n?`is-filled`:``}`,children:[(0,c.jsx)(`div`,{className:`form-label`,children:e+(o?` *`:``)}),(0,c.jsx)(`textarea`,{name:t,rows:u,onFocus:E,onBlur:D,readOnly:l,disabled:s,required:o,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,className:`form-control`,value:n,onChange:e=>T(e,d)})]})})},ne=({label:e,name:t,value:n=0,step:i=1,required:o=!1,disabled:s=!1,readonly:l=!1,cpnClass:u=``,max:d,min:f,onChange:p,style:m={}})=>{let[h,g]=(0,a.useState)(`0`),_=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(document.activeElement!==_.current){n&&=String(n).replace(/\./g,`,`);let e=y(String(n));if(Number(e)>2**53-1||Number(e)<-(2**53-1))return;let i=e.split(`.`),a=i[0]?.replace(/[^\d-]/g,``);a.indexOf(`-`)>0&&(a=`-`+a.replace(/-/g,``));let o=i[1];a=BigInt(a).toLocaleString(`vi-VN`);let s=o===void 0?a:`${a},${o}`;g(s),p&&p(r.a(t,e))}},[n]);let v=(e,n)=>{let i=String(e.currentTarget.value),a=e.currentTarget.selectionStart??0,o=(i.slice(0,a).match(/\d/g)||[]).length,s=y(i);if(Number(s)>2**53-1||Number(s)<-(2**53-1))return;let c=s.split(`.`),l=c[0]?.replace(/[^\d-]/g,``);l.indexOf(`-`)>0&&(l=`-`+l.replace(/-/g,``));let u=c[1];l=BigInt(l).toLocaleString(`vi-VN`);let d=u===void 0?l:`${l},${u}`;g(d),n?.(r.a(t,s));let f=e.currentTarget.closest(`.input-group-outline`);i.trim()===``?f?.classList.remove(`is-filled`):f?.classList.add(`is-filled`),requestAnimationFrame(()=>{let e=b(d,o),t=_.current;if(t){let n=Math.max(0,Math.min(d.length,e));t.setSelectionRange(n,n)}})};function y(e){if(!e)return``;let t=e;t=t.replace(/[^\d,-]/g,``),t=t.replace(/(?!^)-/g,``);let n=t.indexOf(`,`);return n!==-1&&(t=t.slice(0,n+1)+t.slice(n+1).replace(/,/g,``)),t=t.replace(/,/g,`.`),t}function b(e,t){let n=0;for(let r=0;r<e.length;r++)if(/\d/.test(e[r])&&n++,n===t)return r+1;return e.length}return(0,c.jsx)(`div`,{className:`form-group `+(u??``),children:(0,c.jsxs)(`div`,{className:`input-group input-group-outline is-filled`,children:[(0,c.jsx)(`div`,{className:`form-label`,children:e+(o?` *`:``)+(d?` (Tối đa `+d+`)`:``)}),(0,c.jsx)(`input`,{ref:_,style:m,type:`text`,name:t,step:i,readOnly:l,max:d??2**53-1,min:f??-(2**53-1),disabled:s,required:o,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,className:`form-control`,value:h,onChange:e=>v(e,p),onFocus:E,onBlur:D})]})})},k=({label:e,name:t,value:n=``,cpnClass:r=``,required:i=!1,disabled:a=!1,readonly:o=!1,onChange:s,autoComplete:l=``})=>(0,c.jsx)(`div`,{className:`form-group `+(r??``),children:(0,c.jsxs)(`div`,{className:`input-group input-group-outline ${n?`is-filled`:``}`,children:[(0,c.jsx)(`div`,{className:`form-label`,children:e+(i?` *`:``)}),(0,c.jsx)(`input`,{name:t,type:`password`,disabled:a,readOnly:o,required:i,"data-required-error":`Vui lòng nhập dữ liệu`,className:`form-control`,value:n,onChange:e=>T(e,s),onFocus:E,onBlur:D,autoComplete:l,"data-error":`Vui lòng nhập mật khẩu dài 8-32 ký tự, có ký tự chữ số, chữ hoa và chữ thường, ký tự @#$!%^&*`,pattern:`^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$!%^&*])[0-9a-zA-Z@#$!%^&*.]{8,32}$`})]})}),re=({label:e,name:t=``,value:n=``,cpnClass:r=``,required:i=!1,disabled:a=!1,readonly:o=!1,onChange:s})=>(0,c.jsx)(`div`,{className:`form-group `+(r??``),children:(0,c.jsxs)(`div`,{className:`input-group input-group-outline ${n?`is-filled`:``}`,children:[(0,c.jsx)(`div`,{className:`form-label`,children:e+(i?` *`:``)}),(0,c.jsx)(`input`,{type:`text`,name:t,disabled:a,readOnly:o,required:i,"data-pattern":`^[03|05|07|08|09]{2}[0-9]{8}$`,"data-pattern-error":`Vui lòng nhập đúng số điện thoại thuê bao Việt Nam`,"data-required-error":`Vui lòng nhập dữ liệu`,className:`form-control`,onChange:e=>T(e,s),onFocus:E,onBlur:D,value:n})]})}),ie=({label:e,lists:t,name:n=``,value:r=``,cpnClass:i=``,required:o=!1,disabled:s=!1})=>{let l=(0,a.useId)(),u=Array.isArray(t)?t:[],d=e=>typeof e==`object`&&!!e&&!(e instanceof File);return(0,c.jsxs)(`div`,{className:`form-group `+(i??``),children:[(0,c.jsx)(`label`,{className:`form-label ms-auto font-weight-bold`,children:e+(o?` *`:``)}),(0,c.jsx)(`div`,{className:`row grid-space-16`,children:u.map((e,t)=>{let i=d(e)?e.id:e,a=`${l}-${t}`;return(0,c.jsx)(`div`,{className:`col-auto`,children:(0,c.jsxs)(`div`,{className:`form-check ps-0`,children:[(0,c.jsx)(`input`,{type:`radio`,name:n,required:o,disabled:s,id:a,className:`form-check-input`,value:String(i??``),defaultChecked:r==i}),(0,c.jsx)(`label`,{className:`custom-control-label`,htmlFor:a,children:d(e)?String(e.name??``):String(e)})]})},a)})})]})},A=({label:e,name:t,col:n=`col-auto`,keyValue:r=`id`,keyName:i=`name`,lists:a=[],value:o=[],required:s=!1,disabled:l=!1,readonly:u=!1,cpnClass:d=``,onChange:f})=>{let p=Array.isArray(a)?a:[],m=Array.isArray(o)?o:[];return(0,c.jsxs)(`div`,{className:`form-group `+(d??``),children:[(0,c.jsx)(`div`,{className:`form-label`,children:e+(s?` *`:``)}),(0,c.jsx)(`div`,{className:`row grid-space-16`,children:p.map(e=>(0,c.jsx)(`div`,{className:n,children:(0,c.jsx)(`div`,{className:`form-check ps-0`,children:(0,c.jsxs)(`label`,{className:`form-check-label d-flex`,children:[(0,c.jsx)(`input`,{type:`checkbox`,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,name:t,className:`form-check-input d-none`,readOnly:u,disabled:l,required:s,value:String(e[r]??``),checked:m.includes(e[r]),onChange:f}),(0,c.jsx)(`span`,{className:`form-check-sign`,children:(0,c.jsx)(`span`,{className:`check`})}),(0,c.jsx)(`span`,{className:`cursor-pointer mb-0 ms-2`,children:String(e[i]??``)})]})})}))})]})},j=(e,t)=>e.find(e=>e.value===t)||null,ae=(e,t)=>{let n=Array.isArray(t)?t:[];return e.filter(e=>n.includes(e.value))},oe=(e,t,n,r,i)=>{let a=[];r&&a.push({value:-1,label:`Tất cả`}),i&&a.push({value:0,label:`Không có`});let o=Array.isArray(e)?e.map(e=>({value:e[t],label:e[n]})):[];return[...a,...o]},M=({label:e,name:t,lists:n=[],keyValue:i=`id`,keyName:s=`name`,value:l=``,cpnClass:u=``,required:d=!1,disabled:f=!1,all:p=!1,zero:m=!1,onChange:h,style:g={}})=>{let[_,v]=(0,a.useState)([]);(0,a.useEffect)(()=>{v(oe(n,i,s,p,m))},[n]);let y=(0,a.useRef)(!1);(0,a.useEffect)(()=>{y.current||_.length&&(y.current=!0,h?.(r.a(t,l)))},[_]);let b=e=>{h&&h(r.a(t,e))},x=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=x.current?.querySelector(`input[name="${t}"][required]`);e&&e.setCustomValidity(l?``:`Vui lòng nhập dữ liệu`)},[l,t,d]),(0,c.jsx)(`div`,{ref:x,className:`form-group box-select `+(u??``),style:g,children:(0,c.jsxs)(`div`,{className:`input-group input-group-outline is-filled`,children:[(0,c.jsx)(`span`,{className:`form-label`,children:e+(d?` *`:``)}),(0,c.jsx)(o.default,{menuPortalTarget:document.body,styles:{menuPortal:e=>({...e,zIndex:99999})},classNamePrefix:`react-select`,placeholder:`Chọn`,name:t,options:_,value:j(_,l),onChange:e=>b(e?.value??null),noOptionsMessage:()=>`Không có dữ liệu`,isDisabled:f,required:d,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,className:`form-control`})]})})},N=({label:e,name:t,lists:n=[],keyValue:i=`id`,keyName:s=`name`,value:l=[],cpnClass:u=``,required:d=!1,disabled:f=!1,all:p=!1,zero:m=!1,onChange:h})=>{let[g,_]=(0,a.useState)([]);(0,a.useEffect)(()=>{_(oe(n,i,s,p,m))},[n]);let v=e=>{h?.(r.a(t,e))},y=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=y.current?.querySelector(`input[name="${t}"][required]`);e&&e.setCustomValidity(l?.length?``:`Vui lòng nhập dữ liệu`)},[l,t,d]),(0,c.jsx)(`div`,{ref:y,className:`form-group box-select `+(u??``),children:(0,c.jsxs)(`div`,{className:`input-group input-group-outline is-filled`,children:[(0,c.jsx)(`span`,{className:`form-label`,children:e+(d?` *`:``)}),(0,c.jsx)(o.default,{menuPortalTarget:document.body,styles:{menuPortal:e=>({...e,zIndex:99999})},classNamePrefix:`react-select`,placeholder:`Chọn`,name:t,options:g,value:ae(g,l),onChange:e=>v((e??[]).map(e=>e.value)),noOptionsMessage:()=>`Không có dữ liệu`,isDisabled:f,required:d,isMulti:!0,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,className:`form-control`})]})})},se=({label:e,name:t,cpnClass:i=``,required:o=!1,value:s=``,onChange:l,isEdit:u=!1,ext:d=`.jpg, .jpeg, .png`,df:f=`/styles/default.jpg`})=>{let p=(0,a.useRef)(null),[m,h]=(0,a.useState)(s);return(0,a.useEffect)(()=>{let e=p.current?.querySelector(`.upImage`);e&&n.v(e,`#elfinderModal`,e=>{let{data:t,md:n}=e;if(t){let e=Array.isArray(t)?t[0]:t;h(e.url?.replace(/^.*\/static/,``)),n?.hide()}})},[]),(0,a.useEffect)(()=>{l&&l(r.a(t,m))},[m]),(0,a.useEffect)(()=>{h(s)},[s]),(0,c.jsxs)(`div`,{ref:p,className:`card ${i}`,children:[(0,c.jsx)(`div`,{className:`card-header`,children:(0,c.jsx)(`div`,{className:`row`,children:(0,c.jsx)(`div`,{className:`flex-auto col-auto d-flex align-items-center`,children:(0,c.jsx)(`h3`,{className:`card-title`,children:e})})})}),(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsx)(`div`,{className:`card-body d-flex justify-content-center p-0`,children:(0,c.jsx)(`div`,{className:`d-flex align-items-center justify-content-center`,children:(0,c.jsx)(`img`,{className:`height-100 object-fit-contain`,src:n.f(m,f),alt:`img`})})}),u&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsxs)(`div`,{className:`card-footer d-flex justify-content-between`,children:[(0,c.jsx)(`label`,{className:`text-info cursor-pointer m-0 upImage`,children:`Tải lên`}),(0,c.jsx)(`input`,{value:m,required:o,name:t,type:`text`,onChange:l,className:`d-none default-file-input`,accept:d}),m&&(0,c.jsx)(`a`,{href:`#`,onClick:()=>{h(``)},className:`ml-auto link text-danger`,children:`Xóa`})]})]})]})},ce={display:`none`};function P(e){let{id:t,value:n}=e;return a.default.createElement(`div`,{id:t,style:ce},n)}function le(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return a.default.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function F(){let[e,t]=(0,a.useState)(``);return{announce:(0,a.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var ue=(0,a.createContext)(null);function de(e){let t=(0,a.useContext)(ue);(0,a.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function fe(){let[e]=(0,a.useState)(()=>new Set),t=(0,a.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,a.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var I={draggable:`
2
+ To pick up a draggable item, press the space bar.
3
+ While dragging, use the arrow keys to move the item.
4
+ Press space again to drop the item in its new position, or press escape to cancel.
5
+ `},L={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function pe(e){let{announcements:t=L,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=I}=e,{announce:o,announcement:s}=F(),c=(0,d.useUniqueId)(`DndLiveRegion`),[l,f]=(0,a.useState)(!1);if((0,a.useEffect)(()=>{f(!0)},[]),de((0,a.useMemo)(()=>({onDragStart(e){let{active:n}=e;o(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&o(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;o(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;o(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;o(t.onDragCancel({active:n,over:r}))}}),[o,t])),!l)return null;let p=a.default.createElement(a.default.Fragment,null,a.default.createElement(P,{id:r,value:i.draggable}),a.default.createElement(le,{id:c,announcement:s}));return n?(0,u.createPortal)(p,n):p}var R;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(R||={});function z(){}var B=Object.freeze({x:0,y:0});function me(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function he(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function V(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function ge(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function H(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var U=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=H(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=me(H(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(he)};function _e(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var ve=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=_e(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(V)};function ye(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function be(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:B}function xe(e){return function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return r.reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var Se=xe(1);function Ce(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function W(e,t,n){let r=Ce(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var G={ignoreTransform:!1};function K(e,t){t===void 0&&(t=G);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=(0,d.getWindow)(e).getComputedStyle(e);t&&(n=W(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function we(e){return K(e,{ignoreTransform:!0})}function q(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Te(e,t){return t===void 0&&(t=(0,d.getWindow)(e).getComputedStyle(e)),t.position===`fixed`}function Ee(e,t){t===void 0&&(t=(0,d.getWindow)(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function J(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if((0,d.isDocument)(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!(0,d.isHTMLElement)(i)||(0,d.isSVGElement)(i)||n.includes(i))return n;let a=(0,d.getWindow)(e).getComputedStyle(i);return i!==e&&Ee(i,a)&&n.push(i),Te(i,a)?n:r(i.parentNode)}return e?r(e):n}function De(e){let[t]=J(e,1);return t??null}function Oe(e){return!d.canUseDOM||!e?null:(0,d.isWindow)(e)?e:(0,d.isNode)(e)?(0,d.isDocument)(e)||e===(0,d.getOwnerDocument)(e).scrollingElement?window:(0,d.isHTMLElement)(e)?e:null:null}function ke(e){return(0,d.isWindow)(e)?e.scrollX:e.scrollLeft}function Ae(e){return(0,d.isWindow)(e)?e.scrollY:e.scrollTop}function je(e){return{x:ke(e),y:Ae(e)}}var Y;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(Y||={});function Me(e){return!d.canUseDOM||!e?!1:e===document.scrollingElement}function Ne(e){let t={x:0,y:0},n=Me(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var Pe={x:.2,y:.2};function Fe(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Pe);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=Ne(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=Y.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=Y.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=Y.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=Y.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function Ie(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function Le(e){return e.reduce((e,t)=>(0,d.add)(e,je(t)),B)}function Re(e){return e.reduce((e,t)=>e+ke(t),0)}function ze(e){return e.reduce((e,t)=>e+Ae(t),0)}function Be(e,t){if(t===void 0&&(t=K),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);De(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var Ve=[[`x`,[`left`,`right`],Re],[`y`,[`top`,`bottom`],ze]],He=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=J(t),r=Le(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of Ve)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},Ue=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function We(e){let{EventTarget:t}=(0,d.getWindow)(e);return e instanceof t?e:(0,d.getOwnerDocument)(e)}function Ge(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}var X;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(X||={});function Ke(e){e.preventDefault()}function qe(e){e.stopPropagation()}var Z;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})(Z||={});var Je={start:[Z.Space,Z.Enter],cancel:[Z.Esc],end:[Z.Space,Z.Enter,Z.Tab]},Ye=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Z.Right:return{...n,x:n.x+25};case Z.Left:return{...n,x:n.x-25};case Z.Down:return{...n,y:n.y+25};case Z.Up:return{...n,y:n.y-25}}},Xe=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new Ue((0,d.getOwnerDocument)(t)),this.windowListeners=new Ue((0,d.getWindow)(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(X.Resize,this.handleCancel),this.windowListeners.add(X.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(X.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&Be(n),t(B)}handleKeyDown(e){if((0,d.isKeyboardEvent)(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=Je,coordinateGetter:a=Ye,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:B;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=(0,d.subtract)(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=Ne(n),p=Ie(n),m={x:Math.min(i===Z.Right?p.right-p.width/2:p.right,Math.max(i===Z.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===Z.Down?p.bottom-p.height/2:p.bottom,Math.max(i===Z.Down?p.top:p.top+p.height/2,u.y))},h=i===Z.Right&&!s||i===Z.Left&&!c,g=i===Z.Down&&!l||i===Z.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===Z.Right&&e<=d.x||i===Z.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}r.x=a?n.scrollLeft-e:i===Z.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===Z.Down&&e<=d.y||i===Z.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}r.y=a?n.scrollTop-e:i===Z.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,(0,d.add)((0,d.subtract)(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};Xe.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=Je,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function Ze(e){return!!(e&&`distance`in e)}function Qe(e){return!!(e&&`delay`in e)}var $e=class{constructor(e,t,n){n===void 0&&(n=We(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=(0,d.getOwnerDocument)(i),this.documentListeners=new Ue(this.document),this.listeners=new Ue(n),this.windowListeners=new Ue((0,d.getWindow)(i)),this.initialCoordinates=(0,d.getEventCoordinates)(r)??B,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(X.Resize,this.handleCancel),this.windowListeners.add(X.DragStart,Ke),this.windowListeners.add(X.VisibilityChange,this.handleCancel),this.windowListeners.add(X.ContextMenu,Ke),this.documentListeners.add(X.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Qe(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(Ze(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(X.Click,qe,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(X.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=(0,d.getEventCoordinates)(e)??B,s=(0,d.subtract)(n,o);if(!t&&a){if(Ze(a)){if(a.tolerance!=null&&Ge(s,a.tolerance))return this.handleCancel();if(Ge(s,a.distance))return this.handleStart()}if(Qe(a)&&Ge(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===Z.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},et={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},tt=class extends $e{constructor(e){let{event:t}=e,n=(0,d.getOwnerDocument)(t.target);super(e,et,n)}};tt.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var nt={move:{name:`mousemove`},end:{name:`mouseup`}},rt;(function(e){e[e.RightClick=2]=`RightClick`})(rt||={});var it=class extends $e{constructor(e){super(e,nt,(0,d.getOwnerDocument)(e.event.target))}};it.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==rt.RightClick&&(r?.({event:n}),!0)}}];var at={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},ot=class extends $e{constructor(e){super(e,at)}static setup(){return window.addEventListener(at.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(at.move.name,e)};function e(){}}};ot.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var st;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(st||={});var ct;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(ct||={});function lt(e){let{acceleration:t,activator:n=st.Pointer,canScroll:r,draggingRect:i,enabled:o,interval:s=5,order:c=ct.TreeOrder,pointerCoordinates:l,scrollableAncestors:u,scrollableAncestorRects:f,delta:p,threshold:m}=e,h=dt({delta:p,disabled:!o}),[g,_]=(0,d.useInterval)(),v=(0,a.useRef)({x:0,y:0}),y=(0,a.useRef)({x:0,y:0}),b=(0,a.useMemo)(()=>{switch(n){case st.Pointer:return l?{top:l.y,bottom:l.y,left:l.x,right:l.x}:null;case st.DraggableRect:return i}},[n,i,l]),x=(0,a.useRef)(null),S=(0,a.useCallback)(()=>{let e=x.current;if(!e)return;let t=v.current.x*y.current.x,n=v.current.y*y.current.y;e.scrollBy(t,n)},[]),C=(0,a.useMemo)(()=>c===ct.TreeOrder?[...u].reverse():u,[c,u]);(0,a.useEffect)(()=>{if(!o||!u.length||!b){_();return}for(let e of C){if(r?.(e)===!1)continue;let n=u.indexOf(e),i=f[n];if(!i)continue;let{direction:a,speed:o}=Fe(e,i,b,t,m);for(let e of[`x`,`y`])h[e][a[e]]||(o[e]=0,a[e]=0);if(o.x>0||o.y>0){_(),x.current=e,g(S,s),v.current=o,y.current=a;return}}v.current={x:0,y:0},y.current={x:0,y:0},_()},[t,S,r,_,o,s,JSON.stringify(b),JSON.stringify(h),g,u,C,f,JSON.stringify(m)])}var ut={x:{[Y.Backward]:!1,[Y.Forward]:!1},y:{[Y.Backward]:!1,[Y.Forward]:!1}};function dt(e){let{delta:t,disabled:n}=e,r=(0,d.usePrevious)(t);return(0,d.useLazyMemo)(e=>{if(n||!r||!e)return ut;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[Y.Backward]:e.x[Y.Backward]||i.x===-1,[Y.Forward]:e.x[Y.Forward]||i.x===1},y:{[Y.Backward]:e.y[Y.Backward]||i.y===-1,[Y.Forward]:e.y[Y.Forward]||i.y===1}}},[n,t,r])}function ft(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return(0,d.useLazyMemo)(e=>t==null?null:r??e??null,[r,t])}function pt(e,t){return(0,a.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var mt;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(mt||={});var ht;(function(e){e.Optimized=`optimized`})(ht||={});var gt=new Map;function _t(e,t){let{dragging:n,dependencies:r,config:i}=t,[o,s]=(0,a.useState)(null),{frequency:c,measure:l,strategy:u}=i,f=(0,a.useRef)(e),p=v(),m=(0,d.useLatestValue)(p),h=(0,a.useCallback)(function(e){e===void 0&&(e=[]),!m.current&&s(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[m]),g=(0,a.useRef)(null),_=(0,d.useLazyMemo)(t=>{if(p&&!n)return gt;if(!t||t===gt||f.current!==e||o!=null){let t=new Map;for(let n of e){if(!n)continue;if(o&&o.length>0&&!o.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new He(l(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,o,n,p,l]);return(0,a.useEffect)(()=>{f.current=e},[e]),(0,a.useEffect)(()=>{p||h()},[n,p]),(0,a.useEffect)(()=>{o&&o.length>0&&s(null)},[JSON.stringify(o)]),(0,a.useEffect)(()=>{p||typeof c!=`number`||g.current!==null||(g.current=setTimeout(()=>{h(),g.current=null},c))},[c,p,h,...r]),{droppableRects:_,measureDroppableContainers:h,measuringScheduled:o!=null};function v(){switch(u){case mt.Always:return!1;case mt.BeforeDragging:return n;default:return!n}}}function vt(e,t){return(0,d.useLazyMemo)(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function yt(e,t){return vt(e,t)}function bt(e){let{callback:t,disabled:n}=e,r=(0,d.useEvent)(t),i=(0,a.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,a.useEffect)(()=>()=>i?.disconnect(),[i]),i}function xt(e){let{callback:t,disabled:n}=e,r=(0,d.useEvent)(t),i=(0,a.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,a.useEffect)(()=>()=>i?.disconnect(),[i]),i}function St(e){return new He(K(e),e)}function Ct(e,t,n){t===void 0&&(t=St);let[r,i]=(0,a.useState)(null);function o(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let s=bt({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){o();break}}}}),c=xt({callback:o});return(0,d.useIsomorphicLayoutEffect)(()=>{o(),e?(c?.observe(e),s?.observe(document.body,{childList:!0,subtree:!0})):(c?.disconnect(),s?.disconnect())},[e]),r}function wt(e){return be(e,vt(e))}var Tt=[];function Et(e){let t=(0,a.useRef)(e),n=(0,d.useLazyMemo)(n=>e?n&&n!==Tt&&e&&t.current&&e.parentNode===t.current.parentNode?n:J(e):Tt,[e]);return(0,a.useEffect)(()=>{t.current=e},[e]),n}function Dt(e){let[t,n]=(0,a.useState)(null),r=(0,a.useRef)(e),i=(0,a.useCallback)(e=>{let t=Oe(e.target);t&&n(e=>e?(e.set(t,je(t)),new Map(e)):null)},[]);return(0,a.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Oe(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,je(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{Oe(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,a.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>(0,d.add)(e,t),B):Le(e):B,[e,t])}function Ot(e,t){t===void 0&&(t=[]);let n=(0,a.useRef)(null);return(0,a.useEffect)(()=>{n.current=null},t),(0,a.useEffect)(()=>{let t=e!==B;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?(0,d.subtract)(e,n.current):B}function kt(e){(0,a.useEffect)(()=>{if(!d.canUseDOM)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function At(e){return(0,a.useMemo)(()=>e?q(e):null,[e])}var jt=[];function Mt(e,t){t===void 0&&(t=K);let[n]=e,r=At(n?(0,d.getWindow)(n):null),[i,o]=(0,a.useState)(jt);function s(){o(()=>e.length?e.map(e=>Me(e)?r:new He(t(e),e)):jt)}let c=xt({callback:s});return(0,d.useIsomorphicLayoutEffect)(()=>{c?.disconnect(),s(),e.forEach(e=>c?.observe(e))},[e]),i}function Nt(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return(0,d.isHTMLElement)(t)?t:e}function Pt(e){let{measure:t}=e,[n,r]=(0,a.useState)(null),i=xt({callback:(0,a.useCallback)(e=>{for(let{target:n}of e)if((0,d.isHTMLElement)(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),o=(0,a.useCallback)(e=>{let n=Nt(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]),[s,c]=(0,d.useNodeRef)(o);return(0,a.useMemo)(()=>({nodeRef:s,rect:n,setRef:c}),[n,s,c])}var Ft=[{sensor:tt,options:{}},{sensor:Xe,options:{}}],It={current:{}},Lt={draggable:{measure:we},droppable:{measure:we,strategy:mt.WhileDragging,frequency:ht.Optimized},dragOverlay:{measure:K}},Q=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},Rt={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Q,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:z},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Lt,measureDroppableContainers:z,windowRect:null,measuringScheduled:!1},zt={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:z,draggableNodes:new Map,over:null,measureDroppableContainers:z},Bt=(0,a.createContext)(zt),Vt=(0,a.createContext)(Rt);function Ht(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Q}}}function Ut(e,t){switch(t.type){case R.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case R.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case R.DragEnd:case R.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case R.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new Q(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case R.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new Q(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case R.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new Q(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function Wt(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,a.useContext)(Bt),o=(0,d.usePrevious)(r),s=(0,d.usePrevious)(n?.id);return(0,a.useEffect)(()=>{if(!t&&!r&&o&&s!=null){if(!(0,d.isKeyboardEvent)(o)||document.activeElement===o.target)return;let e=i.get(s);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=(0,d.findFirstFocusableNode)(e);if(t){t.focus();break}}})}},[r,t,i,s,o]),null}function Gt(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function Kt(e){return(0,a.useMemo)(()=>({draggable:{...Lt.draggable,...e?.draggable},droppable:{...Lt.droppable,...e?.droppable},dragOverlay:{...Lt.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function qt(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,o=(0,a.useRef)(!1),{x:s,y:c}=typeof i==`boolean`?{x:i,y:i}:i;(0,d.useIsomorphicLayoutEffect)(()=>{if(!s&&!c||!t){o.current=!1;return}if(o.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=be(n(e),r);if(s||(i.x=0),c||(i.y=0),o.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=De(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,s,c,r,n])}var Jt=(0,a.createContext)({...B,scaleX:1,scaleY:1}),$;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})($||={});var Yt=(0,a.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:o=Ft,collisionDetection:s=ve,measuring:c,modifiers:l,...f}=e,[p,m]=(0,a.useReducer)(Ut,void 0,Ht),[h,g]=fe(),[_,v]=(0,a.useState)($.Uninitialized),y=_===$.Initialized,{draggable:{active:b,nodes:x,translate:S},droppable:{containers:C}}=p,w=b==null?null:x.get(b),T=(0,a.useRef)({initial:null,translated:null}),E=(0,a.useMemo)(()=>b==null?null:{id:b,data:w?.data??It,rect:T},[b,w]),D=(0,a.useRef)(null),[ee,te]=(0,a.useState)(null),[O,ne]=(0,a.useState)(null),k=(0,d.useLatestValue)(f,Object.values(f)),re=(0,d.useUniqueId)(`DndDescribedBy`,t),ie=(0,a.useMemo)(()=>C.getEnabled(),[C]),A=Kt(c),{droppableRects:j,measureDroppableContainers:ae,measuringScheduled:oe}=_t(ie,{dragging:y,dependencies:[S.x,S.y],config:A.droppable}),M=ft(x,b),N=(0,a.useMemo)(()=>O?(0,d.getEventCoordinates)(O):null,[O]),se=je(),ce=yt(M,A.draggable.measure);qt({activeNode:b==null?null:x.get(b),config:se.layoutShiftCompensation,initialRect:ce,measure:A.draggable.measure});let P=Ct(M,A.draggable.measure,ce),le=Ct(M?M.parentElement:null),F=(0,a.useRef)({activatorEvent:null,active:null,activeNode:M,collisionRect:null,collisions:null,droppableRects:j,draggableNodes:x,draggingNode:null,draggingNodeRect:null,droppableContainers:C,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),de=C.getNodeFor(F.current.over?.id),I=Pt({measure:A.dragOverlay.measure}),L=I.nodeRef.current??M,z=y?I.rect??P:null,B=!!(I.nodeRef.current&&I.rect),me=wt(B?null:P),he=At(L?(0,d.getWindow)(L):null),V=Et(y?de??M:null),H=Mt(V),U=Gt(l,{transform:{x:S.x-me.x,y:S.y-me.y,scaleX:1,scaleY:1},activatorEvent:O,active:E,activeNodeRect:P,containerNodeRect:le,draggingNodeRect:z,over:F.current.over,overlayNodeRect:I.rect,scrollableAncestors:V,scrollableAncestorRects:H,windowRect:he}),_e=N?(0,d.add)(N,S):null,be=Dt(V),xe=Ot(be),Ce=Ot(be,[P]),W=(0,d.add)(U,xe),G=z?Se(z,U):null,K=E&&G?s({active:E,collisionRect:G,droppableRects:j,droppableContainers:ie,pointerCoordinates:_e}):null,we=ge(K,`id`),[q,Te]=(0,a.useState)(null),Ee=ye(B?U:(0,d.add)(U,Ce),q?.rect??null,P),J=(0,a.useRef)(null),De=(0,a.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(D.current==null)return;let i=x.get(D.current);if(!i)return;let a=e.nativeEvent,o=new n({active:D.current,activeNode:i,event:a,options:r,context:F,onAbort(e){if(!x.get(e))return;let{onDragAbort:t}=k.current,n={id:e};t?.(n),h({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!x.get(e))return;let{onDragPending:i}=k.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),h({type:`onDragPending`,event:a})},onStart(e){let t=D.current;if(t==null)return;let n=x.get(t);if(!n)return;let{onDragStart:r}=k.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:T}};(0,u.unstable_batchedUpdates)(()=>{r?.(i),v($.Initializing),m({type:R.DragStart,initialCoordinates:e,active:t}),h({type:`onDragStart`,event:i}),te(J.current),ne(a)})},onMove(e){m({type:R.DragMove,coordinates:e})},onEnd:s(R.DragEnd),onCancel:s(R.DragCancel)});J.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=F.current,o=null;if(t&&i){let{cancelDrop:s}=k.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===R.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=R.DragCancel)}D.current=null,(0,u.unstable_batchedUpdates)(()=>{m({type:e}),v($.Uninitialized),Te(null),te(null),ne(null),J.current=null;let t=e===R.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=k.current[t];e?.(o),h({type:t,event:o})}})}}},[x]),Oe=pt(o,(0,a.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=x.get(r);if(D.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},D.current=r,De(n,t))},[x,De]));kt(o),(0,d.useIsomorphicLayoutEffect)(()=>{P&&_===$.Initializing&&v($.Initialized)},[P,_]),(0,a.useEffect)(()=>{let{onDragMove:e}=k.current,{active:t,activatorEvent:n,collisions:r,over:i}=F.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:W.x,y:W.y},over:i};(0,u.unstable_batchedUpdates)(()=>{e?.(a),h({type:`onDragMove`,event:a})})},[W.x,W.y]),(0,a.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=F.current;if(!e||D.current==null||!t||!i)return;let{onDragOver:a}=k.current,o=r.get(we),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,u.unstable_batchedUpdates)(()=>{Te(s),a?.(c),h({type:`onDragOver`,event:c})})},[we]),(0,d.useIsomorphicLayoutEffect)(()=>{F.current={activatorEvent:O,active:E,activeNode:M,collisionRect:G,collisions:K,droppableRects:j,draggableNodes:x,draggingNode:L,draggingNodeRect:z,droppableContainers:C,over:q,scrollableAncestors:V,scrollAdjustedTranslate:W},T.current={initial:z,translated:G}},[E,M,K,G,x,L,z,j,C,q,V,W]),lt({...se,delta:S,draggingRect:G,pointerCoordinates:_e,scrollableAncestors:V,scrollableAncestorRects:H});let ke=(0,a.useMemo)(()=>({active:E,activeNode:M,activeNodeRect:P,activatorEvent:O,collisions:K,containerNodeRect:le,dragOverlay:I,draggableNodes:x,droppableContainers:C,droppableRects:j,over:q,measureDroppableContainers:ae,scrollableAncestors:V,scrollableAncestorRects:H,measuringConfiguration:A,measuringScheduled:oe,windowRect:he}),[E,M,P,O,K,le,I,x,C,j,q,ae,V,H,A,oe,he]),Ae=(0,a.useMemo)(()=>({activatorEvent:O,activators:Oe,active:E,activeNodeRect:P,ariaDescribedById:{draggable:re},dispatch:m,draggableNodes:x,over:q,measureDroppableContainers:ae}),[O,Oe,E,P,m,re,x,q,ae]);return a.default.createElement(ue.Provider,{value:g},a.default.createElement(Bt.Provider,{value:Ae},a.default.createElement(Vt.Provider,{value:ke},a.default.createElement(Jt.Provider,{value:Ee},i)),a.default.createElement(Wt,{disabled:n?.restoreFocus===!1})),a.default.createElement(pe,{...n,hiddenTextDescribedById:re}));function je(){let e=ee?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=y&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),Xt=`
6
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M6.66 9.118a.693.693 0 0 1 .956.032l3.65 3.411 2.422-2.238a.695.695 0 0 1 .945 0L17.5 13.6V2.5h-15v11.1zM17.8 1c.652 0 1.2.47 1.2 1.1v14.362c0 .64-.532 1.038-1.184 1.038H2.184C1.532 17.5 1 17.103 1 16.462V2.1C1 1.47 1.537 1 2.2 1zm-5.655 6a2.13 2.13 0 0 1 .157-2.364A2.133 2.133 0 1 1 12.145 7"/></svg>
7
+ `,Zt=class extends m.Plugin{init(){let e=this.editor;e.ui.componentFactory.add(`elfinder`,t=>{let n=new m.ButtonView(t);return n.set({label:`Insert Image`,icon:Xt,tooltip:!0}),n.on(`execute`,async()=>{let t=e.config.get(`elfinder`);typeof t==`function`&&await t(e)}),n})}},Qt=`
8
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M11.5 5.75a.75.75 0 0 1 0-1.5H15a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0V6.81l-2.72 2.72a.75.75 0 0 1-1.06-1.06l2.72-2.72zm-1.97 4.72a.75.75 0 0 1 0 1.06l-2.72 2.72H8.5a.75.75 0 0 1 0 1.5H5a.75.75 0 0 1-.75-.75v-3.5a.75.75 0 0 1 1.5 0v1.69l2.72-2.72a.75.75 0 0 1 1.06 0"/><path d="M2 0h16a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2m16 1.5H2a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5h16a.5.5 0 0 0 .5-.5V2a.5.5 0 0 0-.5-.5"/></svg>
9
+ `,$t=class extends m.Plugin{isFullscreen=!1;originalStyles={};init(){this.editor.ui.componentFactory.add(`fullscreen`,e=>{let t=new m.ButtonView(e);return t.set({label:`Toàn màn hình`,icon:Qt,tooltip:!0}),t.on(`execute`,()=>this.toggle()),t})}toggle(){let e=this.editor.ui.getEditableElement()?.closest(`.ck-editor`);e&&(this.isFullscreen?(Object.assign(e.style,this.originalStyles),document.body.style.overflow=``):(this.originalStyles={position:e.style.position,top:e.style.top,left:e.style.left,width:e.style.width,height:e.style.height,zIndex:e.style.zIndex},Object.assign(e.style,{position:`fixed`,top:`0`,left:`0`,width:`100vw`,height:`100vh`,zIndex:`9999`,background:`#fff`}),document.body.style.overflow=`hidden`),this.isFullscreen=!this.isFullscreen)}},en=`
10
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none"
11
+ xmlns="http://www.w3.org/2000/svg">
12
+ <path
13
+ d="M3 1h9l5 5v13H3V1zM12 1v5h5"
14
+ fill="none"
15
+ stroke="currentColor"
16
+ stroke-width="1"
17
+ />
18
+ <text
19
+ x="10"
20
+ y="14"
21
+ text-anchor="middle"
22
+ font-size="5"
23
+ font-weight="700"
24
+ fill="currentColor"
25
+ font-family="Arial, Helvetica, sans-serif"
26
+ >
27
+ PDF
28
+ </text>
29
+ </svg>
30
+ `,tn=class extends m.Plugin{init(){let e=this.editor;e.ui.componentFactory.add(`pdffinder`,t=>{let n=new m.ButtonView(t);return n.set({label:`Insert PDF Viewer`,icon:en,tooltip:!0}),n.on(`execute`,async()=>{let t=e.config.get(`pdffinder`);if(typeof t==`function`){let n=await t(e);if(n&&n.mime===`application/pdf`){let t=window.prompt(`Nhập tiêu đề file PDF:`,n.name||``);this.insertPdf(e,n.url,t||``)}}}),n})}insertPdf(e,t,r){let i=encodeURIComponent(r),a=r?`${t}${t.includes(`?`)?`&`:`?`}_title=${i}`:t,o=`
31
+ <div class="pdf-wrapper">
32
+ ${r?`<div class="pdf-title">${n.c(r)}</div>`:``}
33
+ <oembed url="${n.c(a)}"></oembed>
34
+ </div>
35
+ `,s=e.data.processor.toView(o),c=e.data.toModel(s);e.model.insertContent(c)}},nn=class extends m.ClassicEditor{};nn.builtinPlugins=[m.Essentials,m.Paragraph,m.Heading,m.Bold,m.Italic,m.Underline,m.Strikethrough,m.Subscript,m.Superscript,m.Code,m.FontFamily,m.FontSize,m.FontColor,m.FontBackgroundColor,m.Highlight,m.RemoveFormat,m.Alignment,m.Indent,m.IndentBlock,m.List,m.TodoList,m.BlockQuote,m.HorizontalLine,m.Link,m.Image,m.ImageInsertViaUrl,m.ImageToolbar,m.ImageStyle,m.ImageResize,m.ImageCaption,m.Table,m.TableToolbar,m.TableProperties,m.TableCellProperties,m.MediaEmbed,m.CodeBlock,m.SpecialCharacters,m.SpecialCharactersEssentials,m.Emoji,m.Mention,m.SourceEditing,m.GeneralHtmlSupport,m.HtmlEmbed,m.WordCount,Zt,tn,$t],nn.defaultConfig={licenseKey:`GPL`,toolbar:{items:`undo.redo.|.fullscreen.sourceEditing.heading.|.fontFamily.fontSize.fontColor.fontBackgroundColor.|.bold.italic.underline.strikethrough.subscript.superscript.code.removeFormat.|.alignment.outdent.indent.|.bulletedList.numberedList.todoList.|.insertImage.elfinder.pdffinder.link.mediaEmbed.insertTable.horizontalLine.|.blockQuote.codeBlock.specialCharacters.emoji.|.htmlEmbed`.split(`.`),shouldNotGroupWhenFull:!0},image:{toolbar:[`imageStyle:inline`,`imageStyle:block`,`imageStyle:side`,`|`,`toggleImageCaption`,`imageTextAlternative`]},table:{contentToolbar:[`tableColumn`,`tableRow`,`mergeTableCells`,`tableProperties`,`tableCellProperties`]},mention:{feeds:[{marker:`@`,feed:[],minimumCharacters:0}]},htmlSupport:{allow:[{name:/.*/,classes:!0,styles:!0,attributes:{"data-*":!0}}]},language:`vi`};var rn=({label:e,name:i,cpnClass:o=``,required:s=!1,disabled:l=!1,value:u=``,onChange:d})=>{let f=(0,a.useRef)(null),h=(0,a.useRef)(null),g=(0,a.useRef)(null),_=(0,a.useRef)(null),[v,y]=(0,a.useState)(!1);(0,a.useEffect)(()=>(y(!0),()=>y(!1)),[]),(0,a.useEffect)(()=>{document.activeElement!==_.current&&d&&d(r.a(i,u))},[u]);let b=e=>{d&&d(r.a(i,e))},{editorConfig:x}=(0,a.useMemo)(()=>v?{editorConfig:{elfinder:async e=>{let{md:t}=await n.i(`#elfinderModal`);n.o(`#elfinderStatic`).then(n=>{let r=Array.isArray(n)?n[0]:n;e.execute(`imageInsert`,{source:r.url}),t.hide()}),t.show()},pdffinder:async()=>new Promise((e,r)=>{n.i(`#elfinderModal`).then(({md:i})=>{let a={url:(t.t().API_URL??``)+`/elfinder/connectorFiles`,onlyMimes:[`application/pdf`]};n.o(`#elfinderStatic`,a).then(t=>{let n=Array.isArray(t)?t[0]:t;i.hide(),e({url:n.url,name:n.name,mime:n.mime})}).catch(r),i.show()}).catch(r)}),mediaEmbed:{previewsInData:!0,providers:[{name:`pdf`,url:/.+\.pdf(\?.*)?$/,html:e=>{let t=e[0],n=new URL(t,window.location.origin),r=n.searchParams.get(`_title`)||``;return n.searchParams.delete(`_title`),`
36
+ <div
37
+ class="pdf-iframe-wrapper"
38
+ ${r?`data-title="${r}"`:``}
39
+ style="width:100%; height:600px; position:relative"
40
+ >
41
+ <iframe
42
+ src="${n.href}"
43
+ width="100%"
44
+ height="600"
45
+ style="border:1px solid #ddd"
46
+ ${r?`data-title="${r}"`:``}
47
+ ></iframe>
48
+ </div>
49
+ `}}]}}}:{},[v]);return(0,c.jsx)(c.Fragment,{children:(0,c.jsxs)(`div`,{className:`form-group `+(o??``),children:[(0,c.jsx)(`div`,{className:`form-label`,children:e+(s?` *`:``)}),(0,c.jsx)(`div`,{className:`main-container w-100`,children:(0,c.jsxs)(`div`,{className:`editor-container editor-container_classic-editor editor-container_include-block-toolbar editor-container_include-word-count editor-container_include-fullscreen`,ref:f,children:[(0,c.jsx)(`div`,{className:`editor-container__editor`,children:(0,c.jsx)(`div`,{ref:h,children:x&&(0,c.jsx)(p.CKEditor,{onReady:e=>{let t=e.plugins.get(m.WordCount);g.current?.appendChild(t.wordCountContainer)},onAfterDestroy:()=>{g.current&&Array.from(g.current.children).forEach(e=>e.remove())},data:u,editor:nn,config:x,onChange:(e,t)=>{let n=t.getData();b(n)},disabled:l})})}),(0,c.jsx)(`div`,{className:`editor_container__word-count`,ref:g})]})}),(0,c.jsx)(`textarea`,{className:`form-control`,style:{display:`none`},name:i,value:u,readOnly:!0})]})})},an=(e,t,n)=>{let r=e[t];if(r&&typeof r==`object`){let e=r[n];return typeof e==`string`?e:``}return typeof r==`string`?r:``},on=[],sn=({options:e,layout:t=1,onChange:o,data:s=on})=>{let l=Array.isArray(e)?e:[],[u,d]=(0,a.useState)([]);(0,a.useEffect)(()=>{if(!Array.isArray(s))return;let e=s.map(e=>e._uid?e:{...e,_uid:n.g(10)});d(e)},[s]);let p=(0,a.useRef)([]);p.current=u;let m=()=>{let e={_uid:n.g(10)};l.forEach(t=>{t.type===`image`?e[t.name]=``:t.type===`selectMulti`?e[t.name]=[]:e[t.name]=``});let t=[...p.current,e];p.current=t,d(t),o?.(t)},h=async e=>{if(!(await n.b()).isConfirmed)return;let t=u.filter((t,n)=>n!==e);d(t),o?.(t)},g=e=>{let{active:t,over:n}=e;n&&t.id!==n.id&&d(e=>{let r=e.findIndex(e=>e._uid===t.id),i=e.findIndex(e=>e._uid===n.id);if(r===-1||i===-1)return e;let a=(0,f.arrayMove)(e,r,i);return o?.(a),a})},_=(e,t)=>{let n=r.i(e),i=u.map((e,r)=>r===t?{...e,[n.name]:n.value}:e);d(i),o?.(i)},v=(e,t,r)=>{let i=l.find(e=>e.name===r);if(!i)return null;let a=n.p(),o=Array.isArray(a)?a:[];switch(i.type){case`text`:return(0,c.jsx)(c.Fragment,{children:o.map(n=>(0,c.jsx)(ee,{cpnClass:`mb-3`,label:`${i.label} - ${n?.name}`,name:`{${i.name}}{${n.id}}`,value:an(e,r,n.id),onChange:e=>_(e,t)},n?.id))});case`textarea`:return(0,c.jsx)(c.Fragment,{children:o.map(n=>(0,c.jsx)(O,{cpnClass:`mb-3`,label:`${i.label} - ${n?.name}`,name:`{${i.name}}{${n.id}}`,value:an(e,r,n.id),onChange:e=>_(e,t)},n?.id))});case`select`:return(0,c.jsx)(M,{cpnClass:`mb-3`,label:i.label,name:i.name,lists:i.options||[],value:e[r],all:i.all,zero:i.zero,onChange:e=>_(e,t)});case`selectMulti`:return(0,c.jsx)(N,{cpnClass:`mb-3`,label:i.label,name:i.name,lists:i.options||[],value:e[r],all:i.all,zero:i.zero,onChange:e=>_(e,t)});case`image`:return(0,c.jsx)(se,{cpnClass:`border mb-3`,label:i.label,name:i.name,value:e[r],df:i.df,ext:i.ext||`.jpg,.jpeg,.png`,isEdit:!0,onChange:e=>_(e,t)});case`editor`:return(0,c.jsx)(c.Fragment,{children:o.map(n=>(0,c.jsx)(rn,{cpnClass:`mb-3`,label:`${i.label} - ${n?.name}`,name:`{${i.name}}{${n.id}}`,value:an(e,r,n.id),onChange:e=>_(e,t)},n?.id))});default:return null}};return(0,c.jsxs)(`div`,{children:[Array.isArray(u)&&(0,c.jsx)(Yt,{collisionDetection:U,onDragEnd:g,children:(0,c.jsx)(f.SortableContext,{items:u.map(e=>e._uid??`row-${n.g(8)}`),children:u.map((e,n)=>{if(!e._uid)return;let r=l.filter(e=>e.type!==`image`),a=l.filter(e=>e.type===`image`);return(0,c.jsxs)(i.t,{id:e._uid,className:`border border-dark rounded p-3 mb-3 position-relative`,iconSize:`20px`,iconStyle:{cursor:`move`,right:`35px`,top:`7px`,zIndex:1e4},children:[(0,c.jsx)(`button`,{type:`button`,className:`btn btn-sm btn-danger position-absolute d-flex align-items-center justify-content-center`,style:{top:5,right:5,zIndex:1e4,height:25,width:25},onClick:()=>h(n),children:(0,c.jsx)(`i`,{className:`material-icons text-white`,children:`delete`})}),t===1&&(0,c.jsx)(`div`,{className:`row grid-space-16`,children:l.map(t=>(0,c.jsx)(`div`,{className:`${t?.colClass||`col-12`}`,children:v(e,n,t.name)},t.name))}),t===2&&(0,c.jsxs)(`div`,{className:`row grid-space-16`,children:[(0,c.jsx)(`div`,{className:`col-md-8`,children:(0,c.jsx)(`div`,{className:`row grid-space-16`,children:r.map(t=>(0,c.jsx)(`div`,{className:`${t?.colClass||`col-12`}`,children:v(e,n,t.name)},t.name))})}),(0,c.jsx)(`div`,{className:`col-md-4`,children:(0,c.jsx)(`div`,{className:`row grid-space-16`,children:a.map(t=>(0,c.jsx)(`div`,{className:`col-12`,children:v(e,n,t.name)},t.name))})})]})]},e._uid)})})}),(0,c.jsxs)(`button`,{type:`button`,className:`btn btn-sm btn-info align-items-center d-flex`,onClick:m,children:[(0,c.jsx)(`i`,{className:`material-icons text-white position-relative text-lg me-1`,children:`add`}),` Thêm`]})]})},cn=({label:e,name:t,col:n=`col-auto`,keyValue:r=`id`,keyName:i=`name`,lists:a=[],values:o=[],required:s=!1,disabled:l=!1,readonly:u=!1,cpnClass:d=``,onChange:f})=>{let p=Array.isArray(a)?a:[],m=Array.isArray(o)?o:[],h=e=>{let{checked:n,value:r}=e.target;n&&m.push(r);let i=n?m:m.filter(e=>e!==String(r));f&&f({currentTarget:{name:t,value:[...new Set(i)]},preventDefault:()=>{}})};return(0,c.jsxs)(`div`,{className:`form-group `+(d??``),children:[e&&(0,c.jsx)(`label`,{className:`form-label ms-auto font-weight-bold`,children:e+(s?` *`:``)}),(0,c.jsx)(`div`,{className:`row grid-space-16`,children:p.map(e=>{let t=Array.isArray(e?.subs)?e.subs:[];return(0,c.jsxs)(`div`,{className:n+` mb-3`,children:[(0,c.jsx)(`div`,{className:`col-dropdown py-2 ratioChevron cursor-pointer`,children:(0,c.jsx)(`div`,{className:`form-check ps-0 m-0`,children:(0,c.jsxs)(`label`,{className:`form-check-label m-0 d-flex align-items-center`,children:[(0,c.jsx)(`input`,{type:`checkbox`,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,className:`form-check-input d-none`,readOnly:u,disabled:l,required:s,value:String(e[r]),checked:m.includes(String(e[r])),onChange:h}),(0,c.jsx)(`span`,{className:`form-check-sign`,style:{height:`20px`},children:(0,c.jsx)(`span`,{className:`check`})}),(0,c.jsx)(`span`,{className:`cursor-pointer mb-0 ms-2 d-flex align-items-center`,children:String(e[i]??``)})]})})}),t.length>0&&(0,c.jsx)(`div`,{className:`check-dropdown mt-0`,children:t.map(e=>{let t=Array.isArray(e?.subs)?e.subs:[];return(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`div`,{className:`form-check`,style:{paddingLeft:`30px`},children:(0,c.jsxs)(`label`,{className:`form-check-label m-0 d-flex align-items-center`,children:[(0,c.jsx)(`input`,{type:`checkbox`,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,className:`form-check-input d-none`,readOnly:u,disabled:l,required:s,value:String(e[r]),checked:m.includes(String(e[r])),onChange:h}),(0,c.jsx)(`span`,{className:`form-check-sign`,style:{height:`20px`},children:(0,c.jsx)(`span`,{className:`check`})}),(0,c.jsx)(`span`,{className:`cursor-pointer mb-0 ms-2`,children:String(e[i]??``)})]})}),t.length>0&&(0,c.jsx)(`div`,{className:`check-dropdown mb-3`,children:t.map(e=>(0,c.jsx)(`div`,{className:`form-check`,style:{paddingLeft:`60px`},children:(0,c.jsxs)(`label`,{className:`form-check-label m-0 d-flex align-items-center`,children:[(0,c.jsx)(`input`,{type:`checkbox`,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,className:`form-check-input d-none`,readOnly:u,disabled:l,required:s,value:String(e[r]),checked:m.includes(String(e[r])),onChange:h}),(0,c.jsx)(`span`,{className:`form-check-sign`,style:{height:`20px`},children:(0,c.jsx)(`span`,{className:`check`})}),(0,c.jsx)(`span`,{className:`cursor-pointer mb-0 ms-2`,children:String(e[i]??``)})]})},e.id))})]},e.id)})})]},e.id)})})]})},ln={textField:{className:`datepicker-custom`}},un=({label:e,name:t,value:n=``,cpnClass:r=``,required:i=!1,disabled:a=!1,readonly:o=!1,onChange:s})=>(0,c.jsx)(`div`,{className:`form-group `+(r??``),children:(0,c.jsx)(`div`,{className:`input-group input-group-outline`,children:(0,c.jsx)(g.LocalizationProvider,{dateAdapter:_.AdapterDateFns,adapterLocale:v.vi,children:(0,c.jsx)(h.DatePicker,{slotProps:ln,label:e+(i?` *`:``),name:t,value:(e=>{if(!e)return null;let t=new Date(e);return isNaN(t.getTime())?null:t})(n),onChange:e=>{s&&e&&!isNaN(new Date(e).getTime())&&s({target:{name:t,value:(0,l.format)(new Date(e),`yyyy-MM-dd`)},preventDefault:()=>{}})},disabled:a,readOnly:o})})})}),dn={textField:{className:`datepicker-custom`}},fn=({label:e,name:t,value:n=``,debug:r=!1,defaultValue:i=``,cpnClass:o=``,required:s,onChange:u,...d})=>{let f=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(r&&console.log(`DateTimeInput mounted`,{value:n,defaultValue:i,onChange:!!u}),!f.current&&!n&&i&&u){let e=p(i);e&&(f.current=!0,m(e))}},[n,i,u]);let p=e=>{if(!e)return null;if(e instanceof Date)return isNaN(e.getTime())?null:e;let t=new Date(e);return isNaN(t.getTime())?null:t},m=e=>{r&&console.log(`handleChange`,{name:t,date:e}),u&&e&&!isNaN(e.getTime())&&u({target:{name:t,value:(0,l.format)(e,`yyyy-MM-dd HH:mm:ss`)},preventDefault:()=>{}})},h=p(n)??p(i);return(0,c.jsx)(`div`,{className:`form-group `+(o??``),children:(0,c.jsx)(`div`,{className:`input-group input-group-outline`,children:(0,c.jsx)(g.LocalizationProvider,{dateAdapter:_.AdapterDateFns,adapterLocale:v.vi,children:(0,c.jsx)(y.DateTimePicker,{slotProps:dn,label:e+(s?` *`:``),name:t,value:h,onChange:m,...d})})})})},pn=({label:e,name:t,cpnClass:r=``,required:i=!1,value:o=``,onChange:s,isEdit:l=!1,ext:u=`.jpg, .jpeg, .png`,df:d=`/styles/default.jpg`})=>{let f=(0,a.useRef)(null),[p,m]=(0,a.useState)(o),[h,g]=(0,a.useState)(``);return(0,a.useEffect)(()=>{let e=f.current?.querySelector(`.upFile`);e&&n._(e,`#elfinderModal`,e=>{let{data:t,md:n}=e;if(t){let e=(Array.isArray(t)?t[0]:t).url?.replace(/^.*\/static/,``)??``;m(e);let r=e?e.split(`/`).pop()??``:``;g(r),n?.hide()}})},[]),(0,a.useEffect)(()=>{s&&s({target:{name:t,value:p},preventDefault:()=>{}})},[p,t,s]),(0,a.useEffect)(()=>{m(o);let e=o?o.split(`/`).pop():``;g(e??``)},[o,d]),(0,c.jsxs)(`div`,{ref:f,className:`card ${r}`,children:[(0,c.jsx)(`div`,{className:`card-header`,children:(0,c.jsx)(`div`,{className:`row`,children:(0,c.jsx)(`div`,{className:`flex-auto col-auto d-flex align-items-center`,children:(0,c.jsx)(`h3`,{className:`card-title`,children:e})})})}),(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsx)(`div`,{className:`card-body p-0 px-3`,children:(0,c.jsx)(`div`,{className:`d-flex align-items-center`,style:{minHeight:30},children:p&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`i`,{className:`fal fa-file me-1`}),(0,c.jsx)(`a`,{className:`text-info text-1-line`,href:n.u(p),target:`_blank`,children:h})]})})}),l&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsxs)(`div`,{className:`card-footer d-flex justify-content-between`,children:[(0,c.jsx)(`label`,{className:`text-info cursor-pointer m-0 upFile`,children:`Tải lên`}),(0,c.jsx)(`input`,{value:p,required:i,name:t,type:`text`,onChange:s,className:`d-none default-file-input`,accept:u}),p&&(0,c.jsx)(`a`,{href:`#`,onClick:e=>{m(``)},className:`ml-auto link text-danger`,children:`Xóa`})]})]})]})},mn=({label:e,name:t,cpnClass:r=``,required:i=!1,value:a=[],onChange:o,isEdit:s=!1,ext:l=`.jpg, .jpeg, .png`})=>{let u=Array.isArray(a)?a:[];return(0,c.jsxs)(`div`,{className:`card card-primary card-outline boxSImgs ${r}`,children:[(0,c.jsx)(`div`,{className:`card-header`,children:(0,c.jsx)(`div`,{className:`row`,children:(0,c.jsx)(`div`,{className:`flex-auto col-auto d-flex align-items-center`,children:(0,c.jsx)(`h3`,{className:`card-title`,children:e})})})}),(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsx)(`div`,{className:`card-body d-flex justify-content-center min-height-100 pb-2`,children:(0,c.jsx)(`div`,{className:`row grid-space-10 showImg w-100`,children:u.map((e,r)=>(0,c.jsxs)(`div`,{className:`col-auto col-img mb-2`,children:[(0,c.jsxs)(`div`,{className:`d-flex align-items-center`,children:[(0,c.jsx)(`a`,{target:`_blank`,href:n.f(e),children:(0,c.jsx)(`img`,{src:n.f(e),className:`height-50 object-fit-contain`})}),s&&(0,c.jsx)(`a`,{"data-file":e,href:`#`,className:`rmImg ms-2 link text-danger`,children:`Xóa`})]}),(0,c.jsx)(`input`,{type:`hidden`,name:`${t}Old[]`,value:e})]},r))})}),s&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsxs)(`div`,{className:`card-footer d-flex justify-content-between`,children:[(0,c.jsx)(`label`,{className:`text-info cursor-pointer p-0 upMImage`,children:`Tải lên`}),(0,c.jsx)(`input`,{required:i,onChange:o,name:`${t}[]`,type:`file`,className:`d-none default-file-input`,multiple:!0,accept:l})]})]})]})},hn=({label:e,name:t,cpnClass:i=``,required:o=!1,value:s=``,onChange:l,isEdit:u=!1,ext:d=`.jpg, .png, .jpeg, .ico`,df:f=``})=>{let p=(0,a.useRef)(null),[m,h]=(0,a.useState)(``),[g,_]=(0,a.useState)(``),[v,y]=(0,a.useState)(s||``),b=e=>{e.preventDefault();let t=/\.(jpg|png|jpeg|ico)$/i,r=p.current?.querySelector(`.default-file-input`);if(!r)return;let i=r.files;if(!i)return;let a=r.getAttribute(`accept`),o=n.t(a,t);n.r(i,10,o).then(async()=>{let e=Array.from(i);e.length&&(h(e[0]),_(await S(e[0])))}).catch(e=>{console.error(`[PImage] Upload không hợp lệ:`,e.message)})},x=e=>{e.preventDefault(),h(``),y(``)},S=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=e=>t(e.target?.result),r.onerror=n,r.readAsDataURL(e)});return(0,a.useEffect)(()=>{l&&l(r.a(`${t}_upload`,m,`file`))},[m]),(0,a.useEffect)(()=>{l&&l(r.a(t,v))},[v]),(0,c.jsxs)(`div`,{ref:p,className:`card boxPImage ${i}`,children:[(0,c.jsx)(`div`,{className:`card-header`,children:(0,c.jsx)(`div`,{className:`row`,children:(0,c.jsx)(`div`,{className:`flex-auto col-auto d-flex align-items-center`,children:(0,c.jsx)(`h3`,{className:`card-title`,children:e})})})}),(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsx)(`div`,{className:`card-body d-flex justify-content-center p-0 showImg`,style:{minHeight:`50px`},children:(0,c.jsxs)(`div`,{className:`d-flex align-items-center justify-content-center`,children:[m&&(0,c.jsx)(`img`,{className:`height-100 object-fit-contain w-100`,src:m?g:``,alt:`img`}),v&&!m&&(0,c.jsx)(`img`,{className:`height-100 object-fit-contain w-100`,src:n.m(v,f),alt:`img`}),!v&&!m&&f&&(0,c.jsx)(`img`,{className:`height-100 object-fit-contain w-100`,src:n.m(v,f),alt:`img`})]})}),u&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsxs)(`div`,{className:`card-footer d-flex justify-content-between`,children:[(0,c.jsx)(`a`,{onClick:e=>x(e),href:`#`,className:`ml-auto link text-danger ${m||v?``:`d-none`}`,children:`Xóa`}),u&&(0,c.jsxs)(`label`,{className:`text-info cursor-pointer m-0`,children:[`Tải lên`,(0,c.jsx)(`input`,{required:o,name:t,type:`file`,onChange:b,className:`d-none default-file-input`,accept:d})]})]})]})]})},gn=({itemLabel:e,itemName:t,selectName:n=``,lists:i,rendeRowData:o,detailRow:s,onSubmit:l,onChangeRow:u,keyName:d=`name`,keyValue:f=`id`,isEdit:p=!0})=>{let m=(0,a.useRef)(null),[h,g]=(0,a.useState)([]),[_,v]=(0,a.useState)([]);(0,a.useEffect)(()=>{m?.current&&(new r.t(m?.current).run(),v(Array.isArray(h)?[...new Set(h.map(e=>e[t]))].filter(e=>typeof e==`string`||typeof e==`number`):[]))},[h,t]),(0,a.useEffect)(()=>{g(Array.isArray(s)?s:[])},[s]);let y=async e=>{if(e.preventDefault(),!m?.current)return;let t=new r.t(m?.current);!t.hasErrors()&&!t.isIncomplete()&&h?.length&&l&&l(h,m?.current)},x=e=>{let{value:n}=e.target,r=Array.isArray(n)?n:[],i=h.filter(e=>r.includes(e[t])),a=r.filter(e=>!i.some(n=>n[t]===e)),o=[...i,...a.map(e=>({[t]:e}))];g(o),u&&u(o)},S=(e,t)=>{let{name:n,value:r}=e.target,i=[...h];i[t]={...i[t],[n]:r},g(i)};return(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(b.Form,{ref:m,className:`position-relative`,action:`/abc`,method:`post`,encType:`multipart/form-data`,"data-toggle":`validator`,role:`form`,onSubmit:y,children:(0,c.jsxs)(`div`,{className:`card mb-20`,children:[(0,c.jsxs)(`div`,{className:`card-header flex-auto col-auto d-flex align-items-center`,children:[(0,c.jsx)(`h3`,{className:`card-title`,children:e}),p&&(0,c.jsx)(`button`,{type:`submit`,title:`Cập nhật`,className:`btn btn-success btn-sm btn-icon ms-auto`,children:(0,c.jsx)(`i`,{className:`material-icons text-white position-relative text-lg`,children:`save`})})]}),(0,c.jsx)(`hr`,{className:`m-0`}),(0,c.jsxs)(`div`,{className:`card-body pb-0`,children:[p&&(0,c.jsx)(N,{cpnClass:`mb-20`,label:n||e,onChange:x,required:!0,lists:i,name:t,value:_,keyName:d,keyValue:f}),Array.isArray(h)&&h?.map((e,t)=>(0,c.jsxs)(`div`,{children:[o?.(e,t,S),t!==h.length-1&&(0,c.jsx)(`hr`,{className:`mt-0 mb-20`})]},t))]})]})})})},_n=(e,t)=>(Array.isArray(t)?t:[]).map(t=>e.find(e=>e.value===t)).filter(e=>e!==void 0),vn=(e,t,n,r,i)=>{let a=[];r&&a.push({value:-1,label:`Tất cả`}),i&&a.push({value:0,label:`Không có`});let o=Array.isArray(e)?e.map(e=>({value:e[t],label:String(e[n]??``)})):[];return[...a,...o]},yn=({label:e,name:t,lists:n=[],keyValue:r=`id`,keyName:i=`name`,value:l=[],cpnClass:u=``,required:d=!1,disabled:f=!1,all:p=!1,zero:m=!1,onChange:h})=>{let[g,_]=(0,a.useState)([]);(0,a.useEffect)(()=>{_(vn(n,r,i,p,m))},[n]);let v=e=>{if(!e.destination)return;let n=[..._n(g,l)],[r]=n.splice(e.source.index,1);n.splice(e.destination.index,0,r),h?.({target:{name:t,value:n.map(e=>e?.value)},preventDefault:()=>{}})},y=e=>{h?.({target:{name:t,value:e},preventDefault:()=>{}})},b=e=>(0,c.jsxs)(o.components.Option,{...e,children:[(0,c.jsx)(`input`,{type:`checkbox`,checked:e.isSelected,onChange:()=>null,style:{marginRight:8}}),(0,c.jsx)(`div`,{children:e.label})]}),x=e=>(0,c.jsx)(s.Draggable,{draggableId:String(e.data.value),index:e.index,children:t=>(0,c.jsx)(`div`,{ref:t.innerRef,...t.draggableProps,...t.dragHandleProps,style:{display:`inline-flex`,alignItems:`center`,marginRight:6,...t.draggableProps.style},children:(0,c.jsx)(o.components.MultiValue,{...e})})});return(0,c.jsxs)(`div`,{className:`form-group `+(u??``),children:[(0,c.jsx)(`div`,{className:`form-label mb-1`,children:e+(d?` *`:``)}),(0,c.jsx)(s.DragDropContext,{onDragEnd:v,children:(0,c.jsx)(s.Droppable,{droppableId:`selected`,direction:`horizontal`,children:e=>(0,c.jsxs)(`div`,{ref:e.innerRef,...e.droppableProps,children:[(0,c.jsx)(o.default,{options:g,value:_n(g,l),isMulti:!0,isSearchable:!0,closeMenuOnSelect:!1,hideSelectedOptions:!1,placeholder:`Chọn và kéo thả để sắp xếp...`,noOptionsMessage:()=>`Không có dữ liệu`,"data-required-error":`Vui lòng nhập dữ liệu`,"data-error":`Dữ liệu không hợp lệ`,isDisabled:f,components:{Option:b,MultiValue:x},onChange:e=>y((e??[]).map(e=>e.value)),menuPortalTarget:document.body,styles:{menuPortal:e=>({...e,zIndex:99999}),input:e=>({...e,minHeight:30}),multiValue:e=>({...e,cursor:`grab`}),menuList:e=>({...e,display:`flex`,flexDirection:`column`,alignItems:`center`,paddingLeft:5,paddingRight:5,paddingTop:5,paddingBottom:2}),option:(e,t)=>({...e,minHeight:40,width:`100%`,display:`flex`,alignItems:`center`,paddingTop:8,paddingBottom:8,marginBottom:5,borderRadius:6,justifyContent:`flex-start`,backgroundColor:t.isFocused?`#FFC20E`:t.isSelected?`#ED7D31`:`white`,color:t.isFocused?`#333`:t.isSelected?`#fff`:`#333`,cursor:`pointer`})}}),e.placeholder]})})})]})},bn=({itemLabel:e,itemName:t,selectName:n=``,lists:i,rendeRowData:o,detailRow:s,onSubmit:l,keyValue:u=`id`,keyName:d=`name`,isEdit:f=!0})=>{let p=(0,a.useRef)(null),[m,h]=(0,a.useState)([]),[g,_]=(0,a.useState)([]);(0,a.useEffect)(()=>{if(!p?.current)return;new r.t(p?.current).run();let e=Array.isArray(m)?[...new Set(m.map(e=>e[t]))]:[];_(e)},[m]),(0,a.useEffect)(()=>{h(Array.isArray(s)?s:[])},[s]);let v=async e=>{if(e.preventDefault(),!p?.current)return;let t=new r.t(p?.current);!t.hasErrors()&&!t.isIncomplete()&&m?.length&&l&&l(m,p?.current)},y=e=>{let{value:n}=e.target,r=Array.isArray(n)?n:[],i=m.filter(e=>r.includes(e[t])),a=r.filter(e=>!i.some(n=>n[t]===e)),o=Array.isArray(a)?a.map(e=>({[t]:e})):[],s=[...i,...o];h(s)},x=(e,t)=>{let{name:n,value:r}=e.target,i=[...m];i[t]={...i[t],[n]:r},h(i)};return(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(b.Form,{ref:p,className:`position-relative`,action:`/abc`,method:`post`,encType:`multipart/form-data`,"data-toggle":`validator`,role:`form`,onSubmit:v,children:(0,c.jsxs)(`div`,{className:`card mb-20`,children:[(0,c.jsxs)(`div`,{className:`card-header flex-auto col-auto d-flex align-items-center`,children:[(0,c.jsx)(`h3`,{className:`card-title`,children:e}),f&&(0,c.jsx)(`button`,{type:`submit`,title:`Cập nhật`,className:`btn btn-success btn-sm btn-icon ms-auto`,children:(0,c.jsx)(`i`,{className:`material-icons text-white position-relative text-lg`,children:`save`})})]}),(0,c.jsx)(`hr`,{className:`m-0`}),(0,c.jsxs)(`div`,{className:`card-body pb-0`,children:[f&&(0,c.jsx)(yn,{cpnClass:`mb-20`,label:n||e,onChange:y,keyName:d,keyValue:u,required:!0,lists:i,name:t,value:g}),(0,c.jsx)(`div`,{className:`row grid-space-10`,children:Array.isArray(m)&&m.map((e,t)=>(0,c.jsx)(`div`,{style:{minWidth:200},className:`col-auto flex-1`,children:o?.(e,t,x)},t))})]})]})})})},xn=({label:e,name:t,cpnClass:i=``,required:o=!1,disabled:s,readonly:l,value:u=``,onChange:d,isEdit:f=!1,ext:p=`.xlsx, .xls, .docx, .doc, .pdf`,df:m=``})=>{let h=(0,a.useRef)(null),g=(0,a.useRef)(null),[_,v]=(0,a.useState)(``),[y,b]=(0,a.useState)(``);(0,a.useEffect)(()=>{b((u??``).split(`/`).pop()??``),v(n.h(u,m))},[u,m]),(0,a.useEffect)(()=>()=>{g.current&&=(URL.revokeObjectURL(g.current),null)},[]);let x=e=>{e.preventDefault();let t=/\.(pdf|docx|doc|xlsx|xls)$/i,r=e.target.files;if(!r||r.length===0)return;let i=e.target.getAttribute(`accept`),a=n.t(i,t);n.r(r,10,a).then(()=>{let t=r[0];if(!t)return;g.current&&URL.revokeObjectURL(g.current);let n=URL.createObjectURL(t);g.current=n,v(n),b(t.name),d?.(e)}).catch(t=>{console.error(`Upload file validation failed:`,t),e.target.value=``})},S=e=>{e.preventDefault(),g.current&&=(URL.revokeObjectURL(g.current),null),v(``),b(``),h.current&&(h.current.value=``),d&&d(r.a(t,``,`input`))},C=f&&!s&&!l;return(0,c.jsxs)(`div`,{className:`card ${i}`,children:[(0,c.jsx)(`div`,{className:`card-header`,children:(0,c.jsx)(`div`,{className:`row`,children:(0,c.jsxs)(`div`,{className:`flex-auto col-auto d-flex align-items-center`,children:[(0,c.jsx)(`h3`,{className:`card-title`,children:e}),C&&(0,c.jsxs)(`label`,{className:`text-info cursor-pointer m-0 ms-auto`,children:[`Tải lên`,(0,c.jsx)(`input`,{ref:h,required:o,disabled:s,name:t,type:`file`,onChange:x,className:`d-none default-file-input`,accept:p})]})]})})}),(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsxs)(`div`,{className:`card-body d-flex justify-content-between align-items-center px-3 py-0 showFile`,style:{minHeight:`50px`},children:[_&&(0,c.jsxs)(`div`,{className:`d-flex align-items-center justify-content-center`,children:[(0,c.jsx)(`i`,{className:`fal fa-file me-1`}),(0,c.jsx)(`a`,{className:`text-info`,href:_,target:`_blank`,rel:`noopener noreferrer`,children:y})]}),C&&_&&(0,c.jsx)(`a`,{onClick:S,href:`#`,className:`ml-auto link text-danger`,children:`Xóa`})]})]})},Sn=({label:e,name:t,cpnClass:i=``,required:o=!1,disabled:s,readonly:l,value:u=[],onChange:d,isEdit:f=!1,ext:p=`.xlsx, .xls, .docx, .doc, .pdf`,df:m=``})=>{let[h,g]=(0,a.useState)([]),[_,v]=(0,a.useState)(Array.isArray(u)?u:[]),[y,b]=(0,a.useState)(``),x=(0,a.useRef)(new Map),S=e=>{let t=x.current.get(e);return t||(t=URL.createObjectURL(e),x.current.set(e,t)),t},C=(t,n)=>{o&&t.length===0&&n.length===0?b(e+` không được để trống`):b(``)};(0,a.useEffect)(()=>()=>{x.current.forEach(e=>{URL.revokeObjectURL(e)}),x.current.clear()},[]),(0,a.useEffect)(()=>{v(e=>{let t=Array.isArray(u)?u:[];return e.length===t.length&&e.every((e,n)=>e===t[n])?e:t})},[u]);let w=e=>{e.preventDefault();let i=/\.(pdf|docx|doc|xlsx|xls)$/i,a=e.currentTarget,o=a.files;if(!o||o.length===0)return;let s=a.getAttribute(`accept`),c=n.t(s,i);n.r(o,10,c).then(()=>{let e=Array.from(o),n=[...h,...e];g(n),b(``),d?.(r.a(`${t}_upload`,n,`files`)),a.value=``}).catch(e=>{console.error(`[UFiles] Upload không hợp lệ:`,e.message),a.value=``})},T=(e,n)=>{e.preventDefault();let i=_.filter((e,t)=>t!==n);v(i),C(i,h),d?.(r.a(t,i))},E=(e,n)=>{e.preventDefault();let i=h[n];if(i){let e=x.current.get(i);e&&(URL.revokeObjectURL(e),x.current.delete(i))}let a=h.filter((e,t)=>t!==n);g(a),C(_,a),d?.(r.a(`${t}_upload`,a,`files`))},D=f&&!s&&!l;return(0,c.jsxs)(`div`,{className:`card ${i}`,children:[(0,c.jsx)(`div`,{className:`card-header position-relative`,children:(0,c.jsx)(`div`,{className:`row`,children:(0,c.jsxs)(`div`,{className:`flex-auto col-auto d-flex align-items-center`,children:[(0,c.jsx)(`h3`,{className:`card-title`,children:e}),D&&(0,c.jsxs)(`label`,{className:`text-info cursor-pointer m-0 ms-auto`,children:[`Tải lên`,(0,c.jsx)(`input`,{disabled:s,name:t,multiple:!0,type:`file`,onChange:w,style:{position:`absolute`,left:-9999},accept:p})]})]})})}),(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsxs)(`div`,{className:`card-body py-2 px-3`,style:{minHeight:`50px`},children:[_?.map((e,t)=>{let r=(e?e.split(`/`).pop():``)?.split(`___`);return(0,c.jsxs)(`div`,{className:`d-flex w-100 justify-content-between`,children:[(0,c.jsxs)(`div`,{className:`d-flex justify-content-center flex-column`,children:[(0,c.jsxs)(`div`,{className:`w-100`,children:[(0,c.jsx)(`i`,{className:`fal fa-file me-1`}),(0,c.jsx)(`a`,{className:`text-info`,href:n.h(e,m),target:`_blank`,rel:`noopener noreferrer`,children:r?.[1]})]}),(0,c.jsx)(`span`,{children:r?.[0]?new Date(Number(r[0])).toLocaleString(`vi-VN`):``})]}),D&&(0,c.jsx)(`a`,{onClick:e=>T(e,t),href:`#`,className:`ml-auto link text-danger`,children:`Xóa`})]},t)}),h?.map((e,t)=>(0,c.jsxs)(`div`,{className:`d-flex w-100 justify-content-between`,children:[(0,c.jsxs)(`div`,{className:`d-flex align-items-center justify-content-center`,children:[(0,c.jsx)(`i`,{className:`fal fa-file me-1`}),(0,c.jsx)(`a`,{className:`text-info text-1-line`,href:S(e),target:`_blank`,rel:`noopener noreferrer`,children:e?.name})]}),D&&(0,c.jsx)(`a`,{onClick:e=>E(e,t),href:`#`,className:`ml-auto link text-danger`,children:`Xóa`})]},t)),y&&(0,c.jsx)(`div`,{className:`text-danger mt-1`,children:y})]})]})},Cn=e=>e==null?!0:Array.isArray(e)||typeof e==`string`?e.length===0:!1,wn=(e,t,n)=>{if(Cn(e?.[t])&&Cn(e?.[`${t}_upload`]))throw Error(`${n} không được để trống`);return!0},Tn=({label:e,name:t,cpnClass:i=``,required:o=!1,value:s=[],onChange:l,isEdit:u=!1,ext:d=`.png, .jpg, .jpeg, .ico`,df:f=``})=>{let p=(0,a.useRef)(null),[m,h]=(0,a.useState)([]),[g,_]=(0,a.useState)(Array.isArray(s)?s:[]),v=(0,a.useRef)(new Map),y=e=>{let t=v.current.get(e);return t||(t=URL.createObjectURL(e),v.current.set(e,t)),t};(0,a.useEffect)(()=>()=>{v.current.forEach(e=>URL.revokeObjectURL(e)),v.current.clear()},[]),(0,a.useEffect)(()=>{_(e=>{let t=Array.isArray(s)?s:[];return e.length===t.length&&e.every((e,n)=>e===t[n])?e:t})},[s]);let b=e=>{e.preventDefault();let t=/\.(png|jpg|jpeg|ico)$/i,r=p.current?.querySelector(`.default-file-input`);if(!r)return;let i=r.files;if(!i)return;let a=r.getAttribute(`accept`),o=n.t(a,t);n.r(i,10,o).then(()=>{let e=Array.from(i);h(t=>[...t,...e])}).catch(e=>{console.error(`[UImages] Upload không hợp lệ:`,e.message)})},x=(e,t)=>{e.preventDefault(),_(e=>e.filter((e,n)=>n!==t))},S=(e,t)=>{e.preventDefault();let n=m[t];if(n){let e=v.current.get(n);e&&(URL.revokeObjectURL(e),v.current.delete(n))}h(e=>e.filter((e,n)=>n!==t))};return(0,a.useEffect)(()=>{l&&l(r.a(`${t}_upload`,m,`files`))},[m]),(0,a.useEffect)(()=>{l&&l(r.a(t,g))},[g]),(0,c.jsxs)(`div`,{ref:p,className:`card boxUImage ${i}`,children:[(0,c.jsx)(`div`,{className:`card-header`,children:(0,c.jsx)(`div`,{className:`row`,children:(0,c.jsxs)(`div`,{className:`flex-auto col-auto d-flex align-items-center`,children:[(0,c.jsx)(`h3`,{className:`card-title`,children:e}),u&&(0,c.jsxs)(`label`,{className:`text-info cursor-pointer m-0 ms-auto`,children:[`Tải lên`,(0,c.jsx)(`input`,{required:o,name:t,multiple:!0,type:`file`,onChange:b,className:`d-none default-file-input`,accept:d})]})]})})}),(0,c.jsx)(`hr`,{className:`my-0`}),(0,c.jsxs)(`div`,{className:`card-body py-2 px-3`,style:{minHeight:`50px`},children:[g?.map((e,t)=>{let r=(e?e.split(`/`).pop()??``:``).split(`___`);return(0,c.jsxs)(`div`,{className:`d-flex w-100 justify-content-between`,children:[(0,c.jsxs)(`div`,{className:`d-flex justify-content-center flex-column ${e?``:`d-none`}`,children:[(0,c.jsxs)(`div`,{className:`w-100`,children:[(0,c.jsx)(`i`,{className:`fal fa-file me-1`}),(0,c.jsx)(`a`,{className:`text-info`,href:n.h(e,f),target:`_blank`,children:r?.[1]})]}),(0,c.jsx)(`span`,{children:r[0]?new Date(Number(r[0])).toLocaleString(`vi-VN`):``})]}),u&&(0,c.jsx)(`a`,{onClick:e=>x(e,t),href:`#`,className:`ml-auto link text-danger ${e?``:`d-none`}`,children:`Xóa`})]},t)}),m?.map((e,t)=>(0,c.jsxs)(`div`,{className:`d-flex w-100 justify-content-between`,children:[(0,c.jsxs)(`div`,{className:`d-flex align-items-center justify-content-center ${e?``:`d-none`}`,children:[(0,c.jsx)(`i`,{className:`fal fa-file me-1`}),(0,c.jsx)(`a`,{className:`text-info text-1-line`,href:y(e),target:`_blank`,rel:`noopener noreferrer`,children:e?.name})]}),u&&(0,c.jsx)(`a`,{onClick:e=>S(e,t),href:`#`,className:`ml-auto link text-danger ${e?``:`d-none`}`,children:`Xóa`})]},t))]})]})};Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return bn}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return mn}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return un}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return cn}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return xn}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return pn}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return rn}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Sn}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return gn}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return wn}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return hn}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Tn}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return fn}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return te}});
@@ -0,0 +1,87 @@
1
+ import { NavigateFunction } from 'react-router-dom';
2
+ import { UserType } from './index';
3
+ import { MenuPermissionItem } from '../types/Menu';
4
+ /** Sự kiện change của bất kỳ control nào trong form. */
5
+ export type FormChangeEvent<T extends HTMLElement = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> = React.ChangeEvent<T>;
6
+ /**
7
+ * Handler onChange mà các component form nhận.
8
+ *
9
+ * Hầu hết component tự dựng một event giả (`{ target, preventDefault }`) để báo
10
+ * ngược lên cho parent, nên kiểu là `ChangeEvent` chứ không phải callback tự do.
11
+ */
12
+ export type FormChangeHandler = (e: FormChangeEvent) => void;
13
+ /**
14
+ * Dựng event giả để component báo giá trị lên parent.
15
+ *
16
+ * Component như `SelectBox`/`PImage` không có input thật để phát `change`, nên
17
+ * phải tự tạo object có `target` + `preventDefault`. Trước đây mỗi chỗ tự viết
18
+ * lại rồi ép `as React.ChangeEvent<any>` — vừa lặp lại vừa để lọt `any` vào
19
+ * kiểu, khiến `target` không còn kiểm tra được.
20
+ *
21
+ * `target` chỉ mang những field mà call site thật sự cần. `type` là TUỲ CHỌN và
22
+ * mặc định KHÔNG có: phần lớn call site trước đây dựng `target` chỉ gồm
23
+ * `{ name, value }`, nên thêm sẵn `type` sẽ đổi hình dạng object mà các test
24
+ * đang khẳng định (`toEqual` so sánh cả key). Chỉ control file mới cần `type`,
25
+ * nên chỉ truyền `type` ở đúng chỗ đó.
26
+ *
27
+ * Không giả vờ `target` là `HTMLInputElement` đầy đủ — dùng `as unknown as` để
28
+ * nói rõ đây là hình dạng rút gọn có chủ đích.
29
+ *
30
+ * @param name Tên field (khóa trong `FormValue`).
31
+ * @param value Giá trị mới của field.
32
+ * @param type Chỉ truyền cho control file (`"file"`).
33
+ */
34
+ export declare const createFormEvent: <T extends FormChangeEvent = FormChangeEvent>(name: string, value: unknown, type?: string) => T;
35
+ /** Giá trị nguyên thuỷ đọc từ một control của form. */
36
+ export type FormScalar = string | number | boolean | File | null;
37
+ /**
38
+ * Dữ liệu form sau khi đọc từ DOM.
39
+ *
40
+ * Khoá là động (tên `name` của input) nên không thể liệt kê trước. Giá trị được
41
+ * chặn ở các kiểu đi được qua `JSON.stringify` / `FormData`:
42
+ *
43
+ * - `FormScalar` — giá trị của một control đơn lẻ.
44
+ * - `CrudItem` — tên field dạng lồng `user{city}` được dựng thành object
45
+ * (xem `handleObjChange` ở `update.ts`).
46
+ * - mảng — các payload dạng `{ selected: [1, 2, 3] }` hoặc
47
+ * `{ details: [{ ... }, { ... }] }` (xem `List.handleDelete`
48
+ * và `UpdateDetail.handleDetailSubmit`).
49
+ */
50
+ export type FormValue = Record<string, FormScalar | CrudItem | Array<FormScalar | CrudItem>>;
51
+ /** Một bản ghi do API trả về. */
52
+ export type CrudItem = Record<string, unknown>;
53
+ /**
54
+ * Trạng thái của `item` trong các trang chi tiết / sửa.
55
+ *
56
+ * `false` là sentinel cho "API không trả về bản ghi" -> component rơi vào
57
+ * nhánh 404. Không dùng `undefined` vì `undefined` còn là giá trị khởi tạo (chưa
58
+ * tải xong), hai trạng thái này dẫn tới hai render khác nhau.
59
+ */
60
+ export type ItemState = CrudItem | false | undefined;
61
+ /**
62
+ * Đọc `id` từ `item` mà không vướng sentinel `false`.
63
+ *
64
+ * `item?.id` KHÔNG dùng được ở đây: optional chaining chỉ xử lý `null`/`undefined`,
65
+ * nên khi `item === false` TypeScript báo `Property 'id' does not exist on type
66
+ * 'false'`. Hàm này gom xử lý về một chỗ thay vì rải `item && item.id` khắp nơi.
67
+ */
68
+ export declare function getItemId(item: ItemState): number | undefined;
69
+ /**
70
+ * Props chung cho mọi trang CRUD (`detail`, `fields`, `import`, `update`).
71
+ *
72
+ * Trước đây mỗi file tự khai báo một bản `PropsType` với `menuData: any[]` và
73
+ * `user: any` — 4 bản trùng nhau và đều không kiểm soát được hình dạng dữ liệu.
74
+ */
75
+ export interface BasePropsType {
76
+ menuData: MenuPermissionItem[];
77
+ navigate: NavigateFunction;
78
+ user: UserType;
79
+ }
80
+ /**
81
+ * Đọc giá trị từ một change event.
82
+ *
83
+ * Dùng chung cho `detail` và `fields` (trước đây copy-paste giống hệt nhau).
84
+ * `update` có biến thể riêng vì còn phải dựng lại object cho tên field dạng
85
+ * lồng `user{city}` — xem `handleObjChange` trong `update.ts`.
86
+ */
87
+ export declare const handleHookChange: (e: FormChangeEvent) => FormValue;
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../common-ivDX6gGq.cjs");exports.handleHookChange=e.r;
@@ -1,18 +1,12 @@
1
- import { NavigateFunction } from 'react-router-dom';
2
- export interface PropsType {
3
- menuData: any[];
4
- navigate: NavigateFunction;
5
- user: any;
6
- }
1
+ import { CrudItem, FormValue } from './common';
2
+ export type { BasePropsType as PropsType, FormValue, CrudItem } from './common';
3
+ export { handleHookChange } from './common';
7
4
  export interface StateType {
8
- item: any;
9
- data: any;
10
- formValue: any;
5
+ /** Bản ghi đang xem, hoặc `false` khi API trả rỗng (đi vào nhánh 404). */
6
+ item: CrudItem | false | undefined;
7
+ /** Bản sao đã chuẩn hoá của `item`, dùng làm giá trị form ban đầu. */
8
+ formValue: FormValue;
9
+ /** Dữ liệu thô lấy từ API (dùng cho các trường đặc biệt). */
10
+ data: CrudItem | undefined;
11
11
  isDetail: boolean | undefined;
12
- [key: string]: any;
13
12
  }
14
- export declare const handleHookChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => {
15
- [name]: File | null;
16
- } | {
17
- [name]: string;
18
- };
@@ -1,12 +1,2 @@
1
- //#region src/hook/detail.ts
2
- var e = (e) => {
3
- e.preventDefault();
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
- };
11
- //#endregion
1
+ import { r as e } from "../common-CEZp8xpQ.js";
12
2
  export { e as handleHookChange };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../common-ivDX6gGq.cjs");exports.handleHookChange=e.r;
@@ -1,18 +1,10 @@
1
- import { NavigateFunction } from 'react-router-dom';
2
- export interface PropsType {
3
- menuData: any[];
4
- navigate: NavigateFunction;
5
- user: any;
6
- }
1
+ import { FormValue, ItemState } from './common';
2
+ export type { BasePropsType as PropsType, FormValue, CrudItem, ItemState } from './common';
3
+ export { handleHookChange } from './common';
7
4
  export interface StateType {
8
- item: any;
9
- formValue: any;
5
+ /** Bản ghi cấu hình trường, hoặc `false` khi API trả rỗng. */
6
+ item: ItemState;
7
+ formValue: FormValue;
10
8
  isField: boolean;
11
9
  isDetail: boolean;
12
- [key: string]: any;
13
10
  }
14
- export declare const handleHookChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => {
15
- [name]: File | null;
16
- } | {
17
- [name]: string;
18
- };
@@ -1,12 +1,2 @@
1
- //#region src/hook/fields.ts
2
- var e = (e) => {
3
- e.preventDefault();
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
- };
11
- //#endregion
1
+ import { r as e } from "../common-CEZp8xpQ.js";
12
2
  export { e as handleHookChange };
@@ -1,15 +1,10 @@
1
- import { NavigateFunction } from 'react-router-dom';
2
- export interface PropsType {
3
- menuData: any[];
4
- navigate: NavigateFunction;
5
- user: any;
6
- }
1
+ import { FormValue } from './common';
2
+ export type { BasePropsType as PropsType, FormValue } from './common';
3
+ /** Lỗi trả về từ API: một chuỗi, hoặc map field -> thông báo. */
4
+ export type FormError = string | Record<string, string>;
7
5
  export interface StateType {
8
- formValue: any;
9
- error: {
10
- [key: string]: string;
11
- } | string;
6
+ formValue: FormValue;
7
+ error: FormError;
12
8
  isCre: boolean;
13
9
  isEdit: boolean;
14
- [key: string]: any;
15
10
  }
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../Common-DFahMuQE.cjs"),t=require("../common-ivDX6gGq.cjs");var n=e=>{if(!e)return{};let[t,n]=e.split(`:`);return!t||!n?{}:{[t]:n}},r=e=>{let t=Object.entries(e??{}).filter(([e,t])=>t!==`none`).map(([e,t])=>`${e}:${t}`).join(`,`);return t?{sort:t}:{}},i=async(t,n)=>{try{let r=new URLSearchParams;for(let[e,n]of Object.entries(t))n!=null&&r.append(e,String(n));let i=`${n}?${r.toString()}`;return(await e.n(i,{},`GET`)).data}catch{return{items:[],page:1,length:10,pageTotal:0,recordTotal:0}}},a=async(t,n,r,i)=>{let a=t.currentTarget,o=Number(a.getAttribute(`data-page`)??1),s={...n,page:o};return i(`${r}?${e.a(s)}`,{replace:!0}),s},o=async(t,n,r)=>{let i={...t,page:1};return r(`${n}?${e.a(i)}`,{replace:!0}),i},s=async(e,t)=>{e.preventDefault();let{name:n,value:r}=e.target,i={...t};return n===`pageLen`?(i.pageLen=Number(r),i.page=1):i[n]=r,i};exports.convertQueryToSort=n,exports.convertSortToQuery=r,exports.createFormEvent=t.t,exports.fetchHookData=i,exports.getItemId=t.n,exports.handleHookChange=t.r,exports.handleHookClickPage=a,exports.handleHookSeachForm=o,exports.handleParamChange=s;
@@ -1,4 +1,8 @@
1
1
  import { NavigateFunction } from 'react-router-dom';
2
+ import { MenuPermissionItem } from '../types/Menu';
3
+ import { FormChangeEvent, CrudItem } from './common';
4
+ export type { BasePropsType, FormValue, FormScalar, CrudItem, ItemState, FormChangeEvent, FormChangeHandler, } from './common';
5
+ export { getItemId, handleHookChange, createFormEvent } from './common';
2
6
  export interface UserType {
3
7
  id: number;
4
8
  username: string;
@@ -7,26 +11,35 @@ export interface UserType {
7
11
  numberId: number;
8
12
  group: string;
9
13
  }
14
+ /**
15
+ * Filter truyền lên API: `page`, `pageLen`, từ khoá tìm kiếm, ...
16
+ *
17
+ * Kiểu này thay cho `Record<string, any>`: các key động vẫn được phép, nhưng
18
+ * giá trị bị chặn ở mức primitive — đủ cho query string và chặn được
19
+ * object/function lọt vào `URLSearchParams` (toString() sẽ ra `[object Object]`).
20
+ */
21
+ export type TableFilter = Record<string, string | number | boolean | undefined>;
10
22
  export interface PropsType {
11
- menuData: any[];
23
+ menuData: MenuPermissionItem[];
12
24
  navigate: NavigateFunction;
13
25
  user: UserType;
14
- [key: string]: any;
15
26
  }
16
27
  export interface StateTable {
17
- items: any[];
18
- sort?: Record<string, any>;
19
- filter?: Record<string, any>;
28
+ items: CrudItem[];
29
+ sort?: Record<string, "asc" | "desc" | "none">;
30
+ filter?: TableFilter;
20
31
  page: number;
21
32
  length: number;
22
33
  pageTotal: number;
23
34
  recordTotal: number;
24
- [key: string]: any;
25
35
  }
26
36
  export interface StateType {
27
37
  data: StateTable;
28
- error?: any;
29
- status?: any;
38
+ /** Nội dung lỗi để hiển thị qua `showMessage` (đã được escape bên trong đó). */
39
+ error?: string | string[];
40
+ status?: unknown;
41
+ /** Cờ đang tải — render overlay spinner. */
42
+ loading?: boolean;
30
43
  selectedIds: number[];
31
44
  isDel: boolean | undefined;
32
45
  isCre: boolean | undefined;
@@ -37,9 +50,9 @@ export interface StateType {
37
50
  isImport: boolean | undefined;
38
51
  isExport: boolean | undefined;
39
52
  isCopy: boolean | undefined;
40
- ftfield?: any[];
41
- tbfield?: any[];
42
- [key: string]: any;
53
+ /** Tên các cột lọc (form) và cột hiển thị (bảng). */
54
+ ftfield?: string[];
55
+ tbfield?: string[];
43
56
  }
44
57
  export declare const convertQueryToSort: (sort: string) => {
45
58
  [x: string]: string;
@@ -49,13 +62,9 @@ export declare const convertSortToQuery: (sort: Record<string, string>) => {
49
62
  } | {
50
63
  sort?: undefined;
51
64
  };
52
- export declare const fetchHookData: (params: Record<string, any>, getDataUrl: string) => Promise<StateTable>;
53
- export declare const handleHookClickPage: (e: React.MouseEvent<HTMLAnchorElement>, params: Record<string, any>, cUri: string, navigate: NavigateFunction) => Promise<{
54
- page: number;
55
- }>;
56
- export declare const handleHookSeachForm: (params: Record<string, any>, cUri: string, navigate: NavigateFunction) => Promise<{
57
- page: number;
58
- }>;
59
- export declare const handleParamChange: (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>, params: Record<string, any>) => Promise<{
60
- [x: string]: any;
65
+ export declare const fetchHookData: (params: TableFilter, getDataUrl: string) => Promise<StateTable>;
66
+ export declare const handleHookClickPage: (e: React.MouseEvent<HTMLAnchorElement>, params: TableFilter, cUri: string, navigate: NavigateFunction) => Promise<TableFilter>;
67
+ export declare const handleHookSeachForm: (params: TableFilter, cUri: string, navigate: NavigateFunction) => Promise<TableFilter>;
68
+ export declare const handleParamChange: (e: FormChangeEvent, params: TableFilter) => Promise<{
69
+ [x: string]: string | number | boolean | undefined;
61
70
  }>;
@@ -1,16 +1,19 @@
1
- import { i as e, t } from "../chunks/Common-BURf0rBN.js";
1
+ import { a as e, n as t } from "../Common-_PK8HLKN.js";
2
+ import { n, r, t as i } from "../common-CEZp8xpQ.js";
2
3
  //#region src/hook/index.ts
3
- var n = (e) => {
4
+ var a = (e) => {
4
5
  if (!e) return {};
5
6
  let [t, n] = e.split(":");
6
7
  return !t || !n ? {} : { [t]: n };
7
- }, r = (e) => {
8
- let t = Object.entries(e).filter(([e, t]) => t !== "none").map(([e, t]) => `${e}:${t}`).join(",");
8
+ }, o = (e) => {
9
+ let t = Object.entries(e ?? {}).filter(([e, t]) => t !== "none").map(([e, t]) => `${e}:${t}`).join(",");
9
10
  return t ? { sort: t } : {};
10
- }, i = async (e, n) => {
11
+ }, s = async (e, n) => {
11
12
  try {
12
- let r = `${n}?${new URLSearchParams(e).toString()}`;
13
- return (await t(r, {}, "GET")).data;
13
+ let r = new URLSearchParams();
14
+ for (let [t, n] of Object.entries(e)) n != null && r.append(t, String(n));
15
+ let i = `${n}?${r.toString()}`;
16
+ return (await t(i, {}, "GET")).data;
14
17
  } catch {
15
18
  return {
16
19
  items: [],
@@ -20,22 +23,22 @@ var n = (e) => {
20
23
  recordTotal: 0
21
24
  };
22
25
  }
23
- }, a = async (t, n, r, i) => {
26
+ }, c = async (t, n, r, i) => {
24
27
  let a = t.currentTarget, o = Number(a.getAttribute("data-page") ?? 1), s = {
25
28
  ...n,
26
29
  page: o
27
30
  };
28
31
  return i(`${r}?${e(s)}`, { replace: !0 }), s;
29
- }, o = async (t, n, r) => {
32
+ }, l = async (t, n, r) => {
30
33
  let i = {
31
34
  ...t,
32
35
  page: 1
33
36
  };
34
37
  return r(`${n}?${e(i)}`, { replace: !0 }), i;
35
- }, s = async (e, t) => {
38
+ }, u = async (e, t) => {
36
39
  e.preventDefault();
37
40
  let { name: n, value: r } = e.target, i = { ...t };
38
41
  return n === "pageLen" ? (i.pageLen = Number(r), i.page = 1) : i[n] = r, i;
39
42
  };
40
43
  //#endregion
41
- export { n as convertQueryToSort, r as convertSortToQuery, i as fetchHookData, a as handleHookClickPage, o as handleHookSeachForm, s as handleParamChange };
44
+ export { a as convertQueryToSort, o as convertSortToQuery, i as createFormEvent, s as fetchHookData, n as getItemId, r as handleHookChange, c as handleHookClickPage, l as handleHookSeachForm, u as handleParamChange };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=e=>{e.preventDefault();let{name:n,type:r,value:i}=t(e);if(r===`file`){let t=e.target.files;return{[n]:t?.[0]??null}}return{[n]:i}},t=e=>{let{name:t,type:n,value:r}=e.target,i=t.split(/[{}]+/).filter(Boolean),a=i.shift();if(!a||i.length===0)return{name:t,type:n,value:r};let o={},s=o;for(let e=0;e<i.length-1;e++){let t={};s[i[e]]=t,s=t}return s[i[i.length-1]]=r,{name:a,type:n,value:o}},n=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof File)&&!(e instanceof Blob),r=(e,t)=>{let i={...e};return Object.keys(t).forEach(e=>{let a=t[e],o=i[e];n(a)&&n(o)?i[e]=r(o,a):i[e]=a}),i};exports.deepMerge=r,exports.handleHookChange=e,exports.handleObjChange=t;