1import{j as e,a4 as T,T as j,M as t,aA as h,bN as A,u as P,ab as U,ac as N,B as r,F as H,f as V,al as w,h as v,l as M,bU as O,m as L,I as $,d1 as G,d2 as K,r as l,E as Q,H as X,a8 as Y,be as J,k as Z}from"./index-BRYgt7Qm.js";import{I as ee}from"./IzListingTable-x_8hXXcs.js";import{I as te,u as se}from"./useDebounce-De-YiRPw.js";import"./TableFooter-CH5m0aG9.js";const ae={name:"",type:"",cardinality:""},ie={pageIndex:1,pageSize:10},ne=(s=!1)=>[{label:"String",value:"string"},...s?[{label:"Number",value:"number"}]:[],{label:"Boolean",value:"boolean"},{label:"Array",value:"array"},...s?[{label:"Date Time",value:"datetime"}]:[]],re=[{value:"ALL",label:"All"},{value:"ACCEPTED",label:"Accepted"},{value:"DECLINED",label:"Declined"},{value:"REQUESTED",label:"Requested"}],le=[{label:e.jsx(t,{id:"name"}),accessor:"name",cell:s=>e.jsx(T,{title:s.name,placement:"top",arrow:!0,children:e.jsx(j,{noWrap:!0,sx:{maxWidth:150},children:s.name})})},{label:e.jsx(t,{id:"type"}),accessor:"type"},{label:e.jsx(t,{id:"status"}),accessor:"status",cell:s=>e.jsx(te,{type:s.status})}],oe=(s=[])=>h.object({name:h.string().required(e.jsx(t,{id:"name-required"})).onlySpaceNotAllowed().noLeadingOrTrailingSpace().test("is-reserved",e.jsx(t,{id:"reserved-property-name"}),i=>!i||!ce.has(i)).test("already-exists",e.jsx(t,{id:"property-already-exists"}),i=>i?!s.some(u=>u.name===i):!0),type:h.string().required(e.jsx(t,{id:"type-required"})),cardinality:h.number().required(e.jsx(t,{id:"cardinality-required"})).when("type",{is:i=>i==="boolean",then:()=>h.number().required(e.jsx(t,{id:"cardinality-required"})).min(1,e.jsx(t,{id:"cardinality-min"})).max(2,e.jsx(t,{id:"cardinality-boolean-max"})),otherwise:()=>h.number().required(e.jsx(t,{id:"cardinality-required"})).min(1,e.jsx(t,{id:"cardinality-min"})).max(64,e.jsx(t,{id:"cardinality-max"}))})}),ce=new Set(["_id","btype","pid","country","state","city","device","os","ip","request_ip","url","created_on","updated_on","timezone","unique_id","auth_status","auth_key","public_key","country_id","state_id","city_id","useragent","status","bver","last_notification_viewed","last_notification_clicked","sw_version","as_version","ge","keywords","last_website_visit","fcm_enabled","fcm_token","pte","endpoint","ga_cookie","taboola_cookie","outbrain_cookie","mgid_cookie","sa_key","vapid_private_key","vapid_public_key","safari_token","mg","ms","android_token","mi_token","mi_sa_key","mi_package_name","ad_id","hms_token","_email","_fn","_ln","_email_events","nlo"]),de=s=>A.get(`/channels/${s}/user-properties`),ue=(s,i)=>A.post(`/channels/${s}/user-properties`,i),D=32,xe=({onClose:s,channelId:i,onSuccess:u,existingProperties:k})=>{const g=P(),b=K(i),f=ne(b),C=async(n,{setSubmitting:x})=>{try{await ue(i,n),u?.(),s?.()}catch(p){p.body.error==="Not Acceptable"&&G({type:"error",variant:"alert",msg:g.formatMessage({id:"not-acceptable"})})}finally{x(!1)}};return e.jsx(U,{open:!0,maxWidth:"xs",fullWidth:!0,children:e.jsxs(N,{children:[e.jsx(r,{sx:{mb:2},children:e.jsx(j,{variant:"h4",children:e.jsx(t,{id:"request-user-properties"})})}),e.jsx(H,{initialValues:ae,validationSchema:oe(k),onSubmit:C,children:({values:n,handleChange:x,handleBlur:p,touched:o,errors:c,isSubmitting:_})=>e.jsxs(V,{children:[e.jsxs(r,{sx:{mb:2},children:[e.jsxs(r,{sx:{mb:2},children:[e.jsxs(r,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[e.jsx(w,{children:e.jsx(t,{id:"name"})}),e.jsxs(j,{children:[n.name.length," / ",D]})]}),e.jsx(v,{fullWidth:!0,name:"name",value:n.name,onChange:x,onBlur:p,inputProps:{maxLength:D},error:o.name&&!!c.name,helperText:o.name&&c.name||n.name.length>=D&&e.jsx(t,{id:"max-32-characters"})})]}),e.jsxs(r,{sx:{mb:2},children:[e.jsx(w,{sx:{mb:1},children:e.jsx(t,{id:"type"})}),e.jsx(v,{select:!0,fullWidth:!0,name:"type",value:n.type,onChange:x,onBlur:p,error:o.type&&!!c.type,helperText:o.type&&c.type,children:f.map(({label:S,value:m})=>e.jsx(M,{value:m,children:S},m))})]}),e.jsxs(r,{children:[e.jsxs(w,{sx:{mb:1,display:"flex",alignItems:"center",gap:1},children:[e.jsx(t,{id:"cardinality"}),e.jsx(T,{title:e.jsx(t,{id:"cardinality-info"}),placement:"top",arrow:!0,children:e.jsx(O,{sx:{fontSize:"18px",cursor:"pointer"}})})]}),e.jsx(v,{type:"number",fullWidth:!0,name:"cardinality",placeholder:g.formatMessage({id:"cardinality-range"}),value:n.cardinality,onChange:x,onBlur:p,error:o.cardinality&&!!c.cardinality,helperText:o.cardinality&&c.c
1ardinality})]})]}),e.jsxs(r,{sx:{textAlign:"end",mt:2},children:[e.jsxs(L,{variant:"contained",type:"submit",disabled:_,children:[_&&e.jsx($,{sx:{mr:1},color:"inherit"}),e.jsx(t,{id:"save"})]}),e.jsx(L,{variant:"outlined",onClick:s,sx:{ml:1},children:e.jsx(t,{id:"cancel"})})]})]})})]})})},ye=()=>{const[s,i]=l.useState(!1),[u,k]=l.useState([]),[g,b]=l.useState(ie),[f,C]=l.useState(""),[n,x]=l.useState("ALL"),[p,o]=l.useState(!0),c=P(),{currentData:_}=Q(),S=_.channelId,{pageIndex:m,pageSize:y}=g,I=se(f.trim()),E=async()=>{o(!0);try{const a=await de(S);k(a.data.properties)}catch(a){console.error(a)}finally{o(!1)}};l.useEffect(()=>{E()},[]),l.useEffect(()=>{b(a=>({...a,pageIndex:1}))},[I,n]);const F=a=>{b(d=>({...d,...a}))},q=l.useMemo(()=>{const a=I.toLowerCase();return u.filter(d=>{const R=[d.name,d.type].some(W=>W?.toLowerCase().includes(a)),B=n==="ALL"||d.status===n;return R&&B})},[u,I,n]),z=l.useMemo(()=>{const a=(m-1)*y;return q.slice(a,a+y)},[q,m,y]);return e.jsxs(e.Fragment,{children:[e.jsx(r,{sx:{mb:2},children:e.jsx(j,{variant:"h4",children:e.jsx(t,{id:"user-properties"})})}),e.jsxs(j,{mb:.5,children:[e.jsx(t,{id:"for-more-details-of-user-properties"}),e.jsxs(j,{component:"span",sx:{color:"primary.main",fontWeight:500,cursor:"pointer"},onClick:()=>window.open("https://help.izooto.com/docs/understanding-segmentation"),children:[" ",e.jsx(t,{id:"click-here"})]})]}),e.jsx(X,{children:p?e.jsx(r,{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"70vh",children:e.jsx(Y,{})}):e.jsxs(e.Fragment,{children:[e.jsxs(r,{sx:{display:"flex",justifyContent:"space-between",mb:1},children:[e.jsxs(r,{sx:{display:"flex",alignItems:"center"},children:[e.jsx(v,{placeholder:c.formatMessage({id:"search"}),value:f,onChange:a=>C(a.target.value),sx:{width:"15rem"},InputProps:{startAdornment:e.jsx(J,{})}}),e.jsx(Z,{value:n,sx:{width:"15rem",ml:1},onChange:a=>x(a.target.value),children:re.map(({label:a,value:d})=>e.jsx(M,{value:d,children:a},d))})]}),e.jsx(L,{variant:"contained",onClick:()=>i(!0),children:e.jsx(t,{id:"request"})})]}),e.jsx(ee,{data:z,columns:le,onFilter:F,pagination:{index:m,pageSize:y,totalPageCount:Math.ceil(q.length/y)}})]})}),s&&e.jsx(xe,{channelId:S,onSuccess:E,onClose:()=>i(!1),existingProperties:u})]})};export{ye as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.