import{o as e}from"./chunk-jRWAZmH_.js";import{n as t,t as n}from"./jsx-runtime-CEixWuwE.js";import{In as r,Ln as i,_r as a,gr as o,hr as s,jt as c,n as l,o as u,r as d}from"./axios-BDcMaxoP.js";import{t as f}from"./index.esm-D4i6w2dF.js";import{t as p}from"./input-C55Uc3oN.js";import{i as m}from"./ctiAxios-HKh7HuhO.js";import{t as h}from"./button-xukQsL9n.js";import{i as g}from"./select-dQ-XiIfN.js";import{t as _}from"./popover-BeDAihUH.js";import{t as v}from"./tooltip-D0a9NNK5.js";import{d as y,l as b,u as x}from"./sanitizeDataUtils-DBUp8Fd9.js";import{n as S}from"./iconUtil-DGYSxFEZ.js";import{t as C}from"./spin-CFckEM9-.js";import{t as w}from"./ArrowLeftOutlined-Bae7unhy.js";import{t as T}from"./popconfirm-Dos9GSSv.js";import{t as E}from"./tree-Df2nuFCU.js";import{n as D}from"./typography-CKptiUMY.js";import{c as O,s as k}from"./chunk-4N6VE7H7-DnASKJzj.js";import{a as ee}from"./notification-DIuyPXAV.js";import{t as A}from"./useMutation-BtpRmKbj.js";import{t as j}from"./queryOptions-Cg9orY1Y.js";import{n as te,t as ne}from"./DiscardChangesButton-8E8nW8Cb.js";import{a as re,s as ie,t as ae}from"./filterByCode-Cj9SjSsU.js";import{t as M}from"./ImportOutlined-okr1I4Tb.js";import{t as oe}from"./LeftSquareOutlined-DRQwPml3.js";import{t as se}from"./RightSquareOutlined-C-Af7NvS.js";import{t as ce}from"./Loader-BvAKWCqv.js";import{B as le,D as ue,E as de,I as fe,O as N,Q as pe,R as P,T as F,Z as me,k as he,mt as I,ot as L,r as ge,s as _e,u as R}from"./index-Ky01UDho.js";import{n as ve,t as ye}from"./useFormIsActive-Bgv4fpIz.js";import{t as z}from"./sortBy-CaRxEF82.js";import{t as be}from"./module-eIe9lCj8.js";var xe={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 00-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 000 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z`}}]},name:`column-width`,theme:`outlined`};i();var B=e(t()),Se=B.forwardRef(function(e,t){return B.createElement(c,r(r({},e),{},{ref:t,icon:xe}))});function V(e){let t=e.getElementsByTagName(`HTTP_SERVICE`)[0],n=o(t).schema,r=s(t,`TABLE`),i={};r.forEach(e=>{let t=o(e);t.classes=l(s(e,`CLASSE`)),i[`${t.classe_schema}-${t.table_id}`]=t});let a=s(t,`REFTABLE`),c={};a.forEach(e=>{let t=o(e);t.classes=l(s(e,`CLASSE`)),c[t.table_id]=t});function l(e){let t={};return e.forEach(e=>{let n=o(e);t[n.classe_id]=n}),t}return{schema:n,tables:i,refTables:c}}function Ce(e){let t=e.getElementsByTagName(`HTTP_SERVICE`)[0],n=s(t,`CLASSE`)[0],r=o(n);r.sections=i(s(n,`SECTION`));function i(e){let t=[];return e.forEach(e=>{let n=o(e);n.elements=a(s(e,`ELEMENT`)),t.push(n)}),t}function a(e){let t=[];return e.forEach(e=>{let n=o(e);n.key=n.oid,t.push(n)}),t}return r.schema=o(t).schema??o(t).classe_schema,r.classe_schema=o(t).classe_schema??o(t).schema,r}var H=async e=>V(await m(`modules/base/php/httpService_classesManager_getClasses.php`,{softCode:e})),we=async(e,t,n)=>Ce(await m(`modules/base/php/httpService_classesManager_getClasse.php`,{classe_id:n,table_id:t,schema:e,classe_schema:e})),U=`modules/base/php/httpService_classesManager_setClasse.php`;async function Te(e,t,n){let r={...e};for(let e in r)r[e]===!0?r[e]=`1`:r[e]===!1&&(r[e]=`0`);let i={CLASSE:{XMLType:`CLASSE`,...r}};delete i.CLASSE.sections;let o=a(e.sections);o&&(i.CLASSE.children=o);let s=(await m(U,{schema:t,classe_schema:n,action:`save`,classeDef:R(i,!0)})).getElementsByTagName(`HTTP_SERVICE`)[0];return{classeId:(s?.getElementsByTagName(`CLASSE`)[0])?.getAttribute(`oid`),warnings:[...s.getElementsByTagName(`WARNING`)].map(e=>e.textContent)}}async function W(e,t,n){await m(U,{schema:n,action:`delete`,classe_id:e,classe_schema:n,table_id:t})}async function G(e,t,n){await m(U,{action:`refcopy`,softCode:t,refoid:e,schema:n})}var K={all:[`classes`],list:e=>[...K.all,`list`,e],detail:(e,t,n)=>[...K.all,`detail`,e,t,n]},Ee=e=>j({queryKey:K.list(e),queryFn:()=>H(e),enabled:!!e}),De=e=>d(Ee(e)),Oe=(e,t,n)=>j({queryKey:K.detail(e,t,n),queryFn:()=>we(e,t,n),enabled:!!e&&!!t&&!!n}),ke=(e,t,n)=>d(Oe(e,t,n));function Ae(){let e=u();return A({mutationFn:({classe:e,schema:t,classeSchema:n})=>Te(e,t,n),meta:{successMessage:`Classe enregistrée`,errorMessage:`Erreur lors de l'enregistrement de la classe`},onSettled:async()=>{await e.invalidateQueries({queryKey:K.all}),F()}})}function je(){let e=u();return A({mutationFn:({classeId:e,tableId:t,schema:n})=>W(e,t,n),meta:{successMessage:`Classe supprimée`,errorMessage:`Erreur lors de la suppression de la classe`},onSettled:async()=>{await e.invalidateQueries({queryKey:K.all}),F()}})}function Me(){let e=u();return A({mutationFn:({refoid:e,softCode:t,schema:n})=>G(e,t,n),meta:{successMessage:`Synchronisation terminée`,errorMessage:`La synchronisation a échoué`},onSettled:async()=>{await e.invalidateQueries({queryKey:K.all})}})}var q=n();function Ne(e){return[{title:`Code`,dataKey:`code`,dataGetter:({rowData:e})=>(0,q.jsx)(v,{title:e.code,children:e.code})},{dataKey:`texte`,headerRenderer:()=>e.table_texte,dataGetter:({rowData:e})=>(0,q.jsx)(v,{title:e.texte,children:e.texte})},{title:`Complément`,dataKey:`complement`},{title:`Section`,dataKey:`section_texte`},{title:`Ref`,dataKey:`utilise`,width:70}].map(e=>({width:300,key:e.dataKey,dataIndex:e.dataKey,ellipsis:!0,resizable:!0,...e}))}var Pe=e(z()),J=e(l()),Y=({section:e,handleEdit:t,handleClose:n})=>{let[r,i]=(0,B.useState)(``),[a,o]=(0,B.useState)(``);return(0,B.useEffect)(()=>{e&&(i(e.include_code),o(e.exclude_code))},[e]),(0,q.jsxs)(`div`,{className:`section-form`,children:[(0,q.jsx)(`div`,{className:`form-row`,children:(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{className:`first-label`,children:`Codes à inclure`}),(0,q.jsx)(p.TextArea,{value:r,onChange:e=>i(e.target.value)})]})}),(0,q.jsx)(`div`,{className:`form-row`,children:(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{className:`first-label`,children:`Codes à exclure`}),(0,q.jsx)(p.TextArea,{value:a,onChange:e=>o(e.target.value)})]})}),(0,q.jsxs)(`div`,{className:`form-row form-buttons`,style:{marginTop:`12px`},children:[(0,q.jsx)(h,{onClick:n,style:{marginRight:`8px`},children:`Annuler`}),(0,q.jsx)(h,{onClick:()=>t(e.oid,r,a),type:`primary`,children:`Appliquer`})]})]})};Y.propTypes={section:J.default.object,handleEdit:J.default.func,handleClose:J.default.func};var Fe=({node:e,handleSetCode:t,handleSetText:n,byCode:r,handleEdit:i,handleDelete:a})=>{let[o,s]=(0,B.useState)(!1),[c,l]=(0,B.useState)(!1),[u,d]=(0,B.useState)(``),[f,m]=(0,B.useState)(``),[g,v]=(0,B.useState)(!1),[y,b]=(0,B.useState)(!1),x=(0,B.useRef)(),S=(0,B.useRef)();(0,B.useEffect)(()=>{e&&(d(e.code),m(e.texte))},[e]),(0,B.useEffect)(()=>{o&&x.current.focus()},[o]),(0,B.useEffect)(()=>{c&&S.current.focus()},[c]);let C=()=>{s(!o)},w=()=>{l(!c)},E=e=>{d(e.target.value)},O=e=>{m(e.target.value)},k=n=>{s(!1),t(e.oid,u)},ee=t=>{l(!1),n(e.oid,f)},A=()=>{v(!g)};return(0,q.jsxs)(`div`,{className:`editable-title`,onMouseEnter:A,onMouseLeave:A,children:[o?(0,q.jsx)(p,{ref:x,style:{width:`20%`},value:u,onChange:E,onBlur:k}):(0,q.jsx)(`div`,{className:`editable-code`,onClick:C,children:u}),c?(0,q.jsx)(p,{ref:S,style:{marginLeft:`6px`,width:`50%`},value:f,onChange:O,onBlur:ee}):(0,q.jsx)(`div`,{className:`editable-text`,onClick:w,children:`${f} (${e.elements.length})`}),(0,q.jsxs)(`div`,{className:`title-buttons`,children:[(0,q.jsx)(_,{trigger:`click`,content:(0,q.jsx)(Y,{section:e,handleEdit:i,handleClose:()=>b(!1)}),visible:y,onVisibleChange:e=>{b(e)},children:r||y?(0,q.jsx)(h,{type:`link`,className:`edit-button-title`,children:(0,q.jsx)(D,{})}):null}),(0,q.jsx)(T,{title:`Etes vous sur de vouloir supprimer cette section ?`,okText:`Supprimer`,cancelText:`Annuler`,onConfirm:()=>a(e.oid),children:(0,q.jsx)(h,{type:`link`,className:`delete-button-title`,children:(0,q.jsx)(me,{})})})]})]})};Fe.propTypes={node:J.default.object,handleSetCode:J.default.func,handleSetText:J.default.func,handleEdit:J.default.func,handleDelete:J.default.func};var Ie=new Set([`is_cti`,`contenu_by_code`,`contenu_non_replicable_ailleurs`,`show_omit`,`est_lecture_seule`,`est_partagee_modification`]),X=({selectedClasseParams:e,softCode:t,handleCloseEditor:n,onClasseCreated:r})=>{let i=fe(),a=Ae(),o=je(),s=be(t),c=e?.key?.includes(`finess`)?`base`:s,l=ke(c,e?.tableId,e?.classeId),u=l.data,d=l.isPending&&l.fetchStatus!==`idle`,f=i.data?.session,[m]=L.useForm(),[_,v]=(0,B.useState)([]),[y,b]=(0,B.useState)([]),[x,C]=(0,B.useState)([]),[D,O]=(0,B.useState)({}),[k,A]=(0,B.useState)(!1),[j,M]=(0,B.useState)(null),[le,ue]=(0,B.useState)([]),[N,P]=(0,B.useState)([]),[F,R]=(0,B.useState)([]),[z,xe]=(0,B.useState)(!1),[V,Ce]=(0,B.useState)(!0),[H,we]=(0,B.useState)(``),[U,Te]=(0,B.useState)(``);(0,B.useEffect)(()=>{if(u&&Object.keys(u).length){let e=qe(u);O(e),m.setFieldsValue(e),v(Ne(u))}else m.setFieldsValue({})},[u]),(0,B.useEffect)(()=>{if(u&&Object.keys(u).length){let e=Ge(u);e=Q(e),b(e)}},[u,H,z,V,U]),(0,B.useEffect)(()=>{D.sections?C(Je(Ke(D.sections),D)):C([])},[D]);let W=ye(u?.is_cti===`1`,f),G=(e,t)=>{if(j||t){let n={...D},r=t||n.sections.find(e=>e.oid===j.oid);if(r){let t=[],i=n.sections.filter(e=>e.oid!==r.oid),a=Ge(D);(e||N).forEach(e=>{let n=a.find(t=>t.oid===e.toString());r.elements.some(e=>e.oid===n.oid)||(n.section_texte=`${r.code} - ${r.texte}`,n.section_id=r.oid,t.push(n),i.forEach(e=>{e.elements=e.elements.filter(e=>e.oid!==n.oid)}))}),r.elements=r.elements.concat(t),b(Q(a))}O({...n}),P([]),A(!0)}},K=(e,t)=>{let n=Ge(D),r={...D},i=e||F,a=D.sections.find(e=>e.oid===`0`);i.forEach(e=>{let i=n.find(t=>t.oid===e.oid);i&&(a.elements.push(i),i.section_id=`0`,i.section_texte=``);let o;t?o=t:r.sections.forEach(t=>{t.elements.forEach(n=>{n.oid===e.oid&&(o=t)})}),o.elements=o.elements.filter(t=>t.oid!==e.oid)}),n=Q(n),O(r),b(n),R([]),A(!0)},Ee=()=>{let t=m.getFieldsValue(),n={...D,...t},i=e?.classeId===`-1`;a.mutate({classe:n,schema:s,classeSchema:c},{onSuccess:e=>{A(!1),e?.warnings?.forEach(e=>{ee({message:`Classe — conflit`,description:e,duration:8})}),i&&e?.classeId&&r(e.classeId,t.code)}})},De=e=>{xe(e.target.checked)},Oe=e=>{Ce(e.target.checked)},Me=e=>{we(e.target.value)},J=e=>{Te(e.target.value)},Y=(e,t)=>{let n={...D},r=n.sections.find(t=>t.oid===e);r&&(r.texte=t),O(n),A(!0)},X=(e,t)=>{let n={...D},r=n.sections.find(t=>t.oid===e);r&&(r.code=t),O(n),A(!0)},Le=e=>{A(!0);let t=Object.keys(e)[0];if(t===`contenu_by_code`){let n={...D};n[t]=e[t],O(n)}},Z=(e,t)=>{t.node.section_id?(M(null),R([t.node])):(M({...t.node}),R([...t.node.children])),t.selected||R([]),ue(e)},Re=()=>{let e={...D},t=-(e.sections.filter(e=>Number(e.oid<0)).length+1).toString();e.sections.push({oid:t,texte:`Nouvelle section`,code:`S${e.sections.length}`,include_code:``,exclude_code:``,elements:[]}),O(e)},ze=e=>{let t={...D};t.sections=t.sections.filter(t=>t.oid!==e),O(t)},Be=async(e,t,n)=>{let r={...D},i;i=r.sections.find(t=>t.oid===e),i&&(i.include_code=t,i.exclude_code=n),t!==``&&(K(i.elements),i.elements=[],G(await re({schema:s,table_id:u.table_id,include_code:t,exclude_code:n}),i)),O(r)},Ve=()=>{o.mutate({classeId:u.oid,tableId:u.table_id,schema:s},{onSuccess:()=>{O({}),n()}})},He=e=>{let t=[...N];Array.isArray(e)?t=t.concat(e):t.includes(e)?t=t.filter(t=>t!==e):t.push(e),P([...new Set(t)])},Ue=()=>{N.length?P([]):P(y.map(e=>e.oid))},We=()=>{O({}),n()};function Ge(e){let t=[];return e.sections.forEach(e=>{e.elements&&(t=t.concat(e.elements))}),t=(0,Pe.default)(t,e=>e.code),t}function Q(e){let t=[...e];return z&&(t=t.filter(e=>e.utilise===`O`)),V&&(t=t.filter(e=>e.section_id===`0`)),t=de(t,H,[`code`,`texte`,`complement`]),t=ae(t,U),t}function Ke(e,t=``,n=!1){let r=[];return e.forEach((e,i)=>{if(e.code!==``){let a=(t===``?``:t+`_`)+i,o={...e,key:a,isLeaf:!0,title:e.texte,editable:n};e.elements&&(o.children=Ke(e.elements,a,n),o.isLeaf=!1,o.editable=!0),r.push(o)}}),r}function qe(e){let t={...e};for(let e in t)Ie.has(e)&&(t[e]=t[e]===`1`);return t}function Je(e,t){return e.map(e=>({...e,title:e.editable?(0,q.jsx)(Fe,{node:e,handleSetText:Y,handleSetCode:X,byCode:m.getFieldValue(`contenu_by_code`),handleEdit:Be,handleDelete:ze}):`${e.title} (${e.code})`,children:e.children?Je(e.children):null}))}let $=d||!u;return(0,q.jsx)(q.Fragment,{children:(0,q.jsxs)(L,{form:m,onValuesChange:Le,style:{height:`100%`,display:`flex`,flexFlow:`column`},disabled:W,children:[(0,q.jsxs)(`div`,{className:`component-header`,children:[(0,q.jsxs)(`div`,{className:`header-title`,children:[(0,q.jsx)(ne,{onConfirm:We,modified:k,children:(0,q.jsx)(h,{type:`link`,style:{height:`100%`,paddingRight:`20px`},disabled:a.isPending,children:(0,q.jsx)(w,{})})}),`Gestion des classes`]}),(0,q.jsxs)(`div`,{className:`header-actions`,children:[(0,q.jsx)(h,{size:`default`,icon:(0,q.jsx)(ie,{}),disabled:$,onClick:()=>{ge(m.getFieldsValue(),y)},children:`Exporter`},`formExcelExportBtn`),f?.ISROLECTI&&(0,q.jsx)(h,{size:`default`,icon:(0,q.jsx)(te,{}),disabled:$,onClick:()=>{ve(t,u?.oid,u?.table_name)},children:`SQL`},`formSQLExportBtn`),(0,q.jsx)(T,{title:`Voulez-vous vraiment supprimer cette classe ?`,onConfirm:Ve,okText:`Supprimer`,okButtonProps:{danger:!0},cancelText:`Annuler`,disabled:$||u?.est_lecture_seule===`true`||W,children:(0,q.jsx)(h,{size:`default`,danger:!0,icon:(0,q.jsx)(me,{}),disabled:$||u?.est_lecture_seule===`true`||W,children:`Supprimer`})}),(0,q.jsx)(h,{size:`default`,type:`primary`,icon:(0,q.jsx)(g,{}),loading:a.isPending,disabled:$||!k||u?.est_lecture_seule===`true`,onClick:Ee,children:`Enregistrer`},`formSubmitbtn`)]})]}),(0,q.jsxs)(`div`,{className:`classes-description`,children:[(0,q.jsxs)(`div`,{className:`form-column`,children:[(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{children:`Code:`}),(0,q.jsx)(L.Item,{name:`code`,children:(0,q.jsx)(p,{})})]}),(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{children:`Texte:`}),(0,q.jsx)(L.Item,{name:`texte`,children:(0,q.jsx)(p,{})})]})]}),(0,q.jsxs)(`div`,{className:`form-column`,children:[(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{children:`Lecture seule:`}),(0,q.jsx)(`b`,{children:u?.est_lecture_seule===`1`?`Oui`:`Non`})]}),(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{children:`Saisie par code`}),(0,q.jsx)(L.Item,{name:`contenu_by_code`,valuePropName:`checked`,children:(0,q.jsx)(pe,{})})]})]}),f?.ISROLECTI&&(0,q.jsxs)(`div`,{className:`form-column`,children:[(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{children:`Classe CTI`}),(0,q.jsx)(L.Item,{name:`is_cti`,valuePropName:`checked`,children:(0,q.jsx)(I,{})})]}),(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{children:`Contenu non réplicable ailleurs`}),(0,q.jsx)(L.Item,{name:`contenu_non_replicable_ailleurs`,valuePropName:`checked`,children:(0,q.jsx)(I,{})})]})]})]}),$?(0,q.jsx)(`div`,{className:`loading-wrapper`,children:(0,q.jsx)(ce,{style:{height:`auto`}})}):(0,q.jsx)(`div`,{className:`component-content`,children:(0,q.jsxs)(`div`,{className:`transfer-layout-content`,children:[(0,q.jsxs)(`div`,{className:`classes-sections`,children:[(0,q.jsxs)(`div`,{className:`tree-header`,children:[(0,q.jsx)(`span`,{children:`Sections`}),(0,q.jsx)(`div`,{className:`header-actions`,children:(0,q.jsx)(h,{type:`link`,onClick:Re,children:(0,q.jsx)(S,{})})})]}),(0,q.jsx)(E,{treeData:x,blockNode:!0,onSelect:Z,selectedKeys:le})]}),(0,q.jsxs)(`div`,{className:`transfer-actions`,children:[(0,q.jsx)(h,{type:`link`,onClick:()=>G(),disabled:D.contenu_by_code||!j||!N.length||W,children:(0,q.jsx)(oe,{})}),(0,q.jsx)(h,{type:`link`,onClick:()=>K(),disabled:D.contenu_by_code||!F.length||W,children:(0,q.jsx)(se,{})})]}),(0,q.jsxs)(he,{className:`classes-options`,defaultSize:{width:`50%`},enable:{top:!1,right:!1,bottom:!1,left:!0,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},children:[(0,q.jsxs)(`div`,{className:`options-search`,children:[(0,q.jsx)(`div`,{className:`options-dragger`,children:(0,q.jsx)(Se,{style:{fontSize:16}})}),(0,q.jsxs)(`div`,{className:`form-column`,children:[(0,q.jsx)(`div`,{className:`form-row`,children:(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{className:`first-label`,children:`Recherche par texte`}),(0,q.jsx)(p,{value:H,onChange:Me})]})}),(0,q.jsx)(`div`,{className:`form-row`,children:(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{children:`Référencés uniquement`}),(0,q.jsx)(I,{checked:z,onChange:De})]})}),(0,q.jsx)(`div`,{className:`form-row`,children:(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{children:`Non attribués uniquement`}),(0,q.jsx)(I,{checked:V,onChange:Oe})]})})]}),(0,q.jsxs)(`div`,{className:`form-column`,children:[(0,q.jsx)(`div`,{className:`form-row`,children:(0,q.jsxs)(`div`,{className:`form-item`,children:[(0,q.jsx)(`span`,{style:{minWidth:`100px`},children:`Liste de codes`}),(0,q.jsx)(p.TextArea,{value:U,onChange:J})]})}),(0,q.jsx)(`div`,{className:`form-row`,children:(0,q.jsx)(`div`,{className:`form-item`,children:(0,q.jsx)(h,{type:`primary`,onClick:Ue,children:`De/Sélectionner`})})})]})]}),(0,q.jsx)(`div`,{className:`options-table`,children:(0,q.jsx)(_e,{fixed:!1,columns:_,data:y,loading:l.isFetching,selectedRows:N,onRowSelect:He,shiftMulti:!0})})]})]})})]})})};X.propTypes={selectedClasseParams:J.default.object,softCode:J.default.string,handleCloseEditor:J.default.func,onClasseCreated:J.default.func};var Le=B.memo(X),Z=e(N()),{DirectoryTree:Re}=E,ze=({tables:e,refTables:t,showReferences:n,handleSelectedClasse:r,search:i,isLoading:a,softCode:o})=>{let s=Me(),[c,l]=(0,B.useState)(null),[u,d]=(0,B.useState)(null),[f,p]=(0,B.useState)([]),[m,g]=(0,B.useState)([]),[_,v]=(0,B.useState)(null);(0,B.useEffect)(()=>{e&&t&&(l(D(e)),d(D(t)))},[e,t]),(0,B.useEffect)(()=>{p(x(c))},[c]),(0,B.useEffect)(()=>{g(i===``?[]:f.map(e=>e.title.toLowerCase().includes(i.toLowerCase())?y(e.key,c):null).filter((e,t,n)=>e&&n.indexOf(e)===t))},[i,c,f]);let w=e=>{g(e)},T=e=>{let t=b(u).find(t=>t.key===e[0]);t&&v(t.classe_id)},E=()=>{let e=be(o);s.mutate({refoid:_,softCode:o,schema:e},{onSuccess:()=>v(null)})};function D(e,t=``,n=!1){let r=[];return Object.values(e).forEach((e,i)=>{let a=(t===``?``:t+`_`)+(0,Z.default)(e.texte),o={title:e.texte,key:a,table_id:e.table_id};e.table_id===void 0&&(o.key=a);let s,c;e.classes!==void 0&&(s=O(e.classes,a,n)),e.groups!==void 0&&(c=D(e.groups,a,n)),s!==void 0&&c!==void 0?o.children=s.concat(c):s===void 0?o.children=c:o.children=s,r.push(o)}),r.sort((e,t)=>e.title.localeCompare(t.title,void 0,{numeric:!0,sensitivity:`base`}))}function O(e,t,n){let r=[];return Object.values(e).forEach(e=>{let n={title:e.texte,key:t+`_`+(0,Z.default)(e.texte),isLeaf:!0,table_id:e.table_id,classe_id:e.classe_id,code:e.code};e.classe_id===`-1`?n.icon=(0,q.jsx)(S,{}):n.icon=(0,q.jsx)(P,{}),r.push(n)}),r.sort((e,t)=>Number(e.classe_id)-Number(t.classe_id))}return(0,q.jsxs)(`div`,{className:`component-content`,children:[(0,q.jsxs)(`div`,{className:`classes-manager-classes`,children:[a?(0,q.jsx)(`div`,{className:`listes-spin-loader`,children:(0,q.jsx)(C,{})}):null,(0,q.jsx)(Re,{onSelect:r,treeData:c,expandedKeys:m,onExpand:w})]}),(0,q.jsxs)(`div`,{className:`cti-listes-manager-references`,style:{display:n?`flex`:`none`},children:[(0,q.jsxs)(`div`,{className:`references-header`,children:[(0,q.jsx)(`h3`,{children:`Classes de références`}),(0,q.jsx)(h,{style:{marginLeft:`10px`},size:`small`,onClick:E,icon:(0,q.jsx)(M,{}),loading:s.isPending,disabled:!_,children:`Importer`},`importBtn`)]}),(0,q.jsx)(`div`,{className:`references-tree`,children:(0,q.jsx)(Re,{treeData:u,onSelect:T})})]})]})};ze.propTypes={tables:J.default.object,refTables:J.default.object,showReferences:J.default.bool,handleSelectedClasse:J.default.func,search:J.default.string,isLoading:J.default.bool,softCode:J.default.string};var Be=B.memo(ze),Ve=B.memo(()=>{let e=O(),{search:t}=k(),n=(0,B.useMemo)(()=>Object.fromEntries(new URLSearchParams(t)),[t]),{softCode:r}=ue(),i=De(r),a=i.data?.tables??{},o=i.data?.refTables??{},[s,c]=(0,B.useState)(!1),[l,u]=(0,B.useState)(!1),[d,m]=(0,B.useState)(null),[g,_]=(0,B.useState)(``);(0,B.useEffect)(()=>{c(!1),m(null)},[r]),(0,B.useEffect)(()=>{if(!n.classe||s||!Object.keys(a).length)return;let t=n.classe,r=C(Object.values(a)).find(e=>e.code===t);r?(m({classeId:r.classe_id,tableId:r.table_id,key:r.key}),c(!0)):e({search:``},{replace:!0})},[n.classe,a]);let v=()=>{c(!1),e({search:``}),m(null)},y=(t,n)=>{e({search:`?classe=${n}`},{replace:!0}),m(e=>({...e,classeId:t}))},b=e=>{_(e.target.value)},x=()=>{u(!l)},S=(t,n)=>{n.node.isLeaf===!0&&(e({search:`?classe=${n.node.code}`},{replace:!0}),m({classeId:n.node.classe_id,tableId:n.node.table_id,key:n.node.key}),c(!0))};function C(e){let t=[];return Object.values(e).forEach(e=>{t=[...t,...Object.values(e.classes)]}),t}return s?(0,q.jsx)(Le,{selectedClasseParams:d,softCode:r,handleCloseEditor:v,onClasseCreated:y}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(f,{children:(0,q.jsx)(`title`,{children:`iCTI | Gestion des classes`})}),(0,q.jsxs)(`div`,{className:`component-header`,children:[(0,q.jsx)(`div`,{className:`header-title`,children:`Gestion des classes`}),(0,q.jsxs)(`div`,{className:`header-actions`,children:[(0,q.jsx)(p,{placeholder:`Recherche`,value:g,onChange:b}),(0,q.jsx)(h,{onClick:()=>i.refetch(),icon:(0,q.jsx)(le,{}),loading:i.isFetching,children:`Actualiser`},`refreshBtn`),(0,q.jsx)(h,{style:{width:`148.5px`},type:l?`secondary`:`primary`,onClick:x,icon:(0,q.jsx)(P,{}),children:l?`Cacher références`:`Afficher références`},`showReferencesBtn`)]})]}),(0,q.jsx)(Be,{tables:a,refTables:o,showReferences:l,handleSelectedClasse:S,search:g,isLoading:i.isFetching,softCode:r})]})});export{Ve as default};
|