/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ (window.triggersActionsUi_bundle_jsonpfunction=window.triggersActionsUi_bundle_jsonpfunction||[]).push([[62],{97:function(e,t,a){"use strict";a.r(t),a.d(t,"RuleTagFilter",(function(){return M})),a.d(t,"default",(function(){return M}));var s=a(1),n=a.n(s),r=a(3),o=a(25),c=a(2),l=a(19),i=a(63),u=a(29);const g=[];var b=a(0);const d=e=>`ruleTagFilterOption-${e}`,j=r.i18n.translate("xpack.triggersActionsUI.sections.ruleTagFilter.loading",{defaultMessage:"Loading tags"}),h=[],p=Object(s.memo)((({label:e,setObserver:t,canSetObserver:a})=>{const n=Object(s.useCallback)((e=>{a&&e&&t(e)}),[a,t]);return Object(b.jsx)("div",{ref:n},e)})),O=Object(s.memo)((({selectedTags:e,onClosePopover:t,buttonDataTestSubj:a})=>Object(b.jsx)(c.EuiFilterButton,{"data-test-subj":a,iconType:"arrowDown",hasActiveFilters:e.length>0,numActiveFilters:e.length,numFilters:e.length,onClick:t},Object(b.jsx)(o.FormattedMessage,{id:"xpack.triggersActionsUI.sections.rulesList.ruleTagFilterButton",defaultMessage:"Tags"})))),v=Object(s.memo)((({options:e,renderOption:t,onChange:a,onSearchTextChange:s,isLoading:r,loadingMessage:o,noMatchesMessage:l,emptyMessage:i,errorMessage:u,selectableDataTestSubj:g})=>Object(b.jsx)(c.EuiSelectable,{searchable:!0,searchProps:{onChange:s},listProps:{activeOptionIndex:void 0},"data-test-subj":g,options:e,noMatchesMessage:r?o:l,emptyMessage:r?o:i,errorMessage:u,renderOption:t,onChange:a},((e,t)=>Object(b.jsx)(n.a.Fragment,null,t,Object(b.jsx)(c.EuiSpacer,{size:"xs"}),e))))),M=Object(s.memo)((e=>{const{selectedTags:t=h,isGrouped:a=!1,canLoadRules:o=!0,refresh:M,loadingMessage:f=j,noMatchesMessage:x,emptyMessage:T,errorMessage:m,dataTestSubj:P="ruleTagFilter",selectableDataTestSubj:F="ruleTagFilterSelectable",optionDataTestSubj:S=d,buttonDataTestSubj:C="ruleTagFilterButton",onChange:k=(()=>{})}=e,w=Object(s.useRef)(),[y,L]=Object(s.useState)(""),[D,N]=Object(s.useState)(!1),{tags:A=h,isLoading:E,hasNextPage:I,fetchNextPage:U}=function(e){const{enabled:t,refresh:a,search:n,perPage:o,page:c=1}=e,{http:b,notifications:{toasts:d}}=Object(u.b)().services,{refetch:j,data:h,fetchNextPage:p,isLoading:O,isFetching:v,hasNextPage:M,isFetchingNextPage:f}=Object(l.useInfiniteQuery)({queryKey:["loadRuleTags",n,o,c,{refresh:null==a?void 0:a.toISOString()}],queryFn:({pageParam:e})=>e?Object(i.b)({http:b,perPage:e.perPage,page:e.page,search:n}):Object(i.b)({http:b,perPage:o,page:c,search:n}),onError:()=>{d.addDanger(r.i18n.translate("xpack.triggersActionsUI.sections.rulesList.unableToLoadRuleTags",{defaultMessage:"Unable to load rule tags"}))},enabled:t,getNextPageParam:e=>{if(Math.max(1,Math.ceil(e.total/e.perPage))!==e.page)return{...e,page:e.page+1}},refetchOnWindowFocus:!1});return{tags:Object(s.useMemo)((()=>(null==h?void 0:h.pages.reduce(((e,t)=>e.concat(t.data)),[]))||g),[h]),hasNextPage:M,refetch:j,isLoading:O||v||f,fetchNextPage:p}}({enabled:o,refresh:M,search:y}),R=Object(s.useCallback)((async()=>{var e;I&&!E&&(await U(),null===(e=w.current)||void 0===e||e.disconnect())}),[U,I,E]);Object(s.useEffect)((()=>()=>{var e;return null===(e=w.current)||void 0===e?void 0:e.disconnect()}),[]);const _=Object(s.useMemo)((()=>[...new Set(t.sort().concat(A))]),[t,A]),B=Object(s.useCallback)((e=>{var t,a;null===(t=w.current)||void 0===t||t.disconnect(),w.current=new IntersectionObserver(R,{root:null,threshold:1}),null===(a=w.current)||void 0===a||a.observe(e)}),[R]),q=Object(s.useMemo)((()=>_.map((e=>({label:e,checked:t.includes(e)?"on":void 0,"data-test-subj":S(e)})))),[_,t,S]),G=Object(s.useCallback)((e=>Object(b.jsx)(p,{label:e.label,setObserver:B,canSetObserver:e.label===_[_.length-1]})),[B,_]),z=Object(s.useCallback)((e=>{const t=e.reduce(((e,t)=>("on"===t.checked&&(e=[...e,t.label]),e)),[]);k(t)}),[k]),K=Object(s.useCallback)((e=>{L(e)}),[L]),Q=Object(s.useCallback)((()=>{N((e=>!e))}),[N]),W=Object(s.useMemo)((()=>a?n.a.Fragment:c.EuiFilterGroup),[a]);return Object(b.jsx)(W,a?{}:{"data-test-subj":"ruleTagFilterUngrouped"},Object(b.jsx)(c.EuiPopover,{"data-test-subj":P,isOpen:D,closePopover:Q,button:Object(b.jsx)(O,{selectedTags:t,onClosePopover:Q,buttonDataTestSubj:C})},Object(b.jsx)(v,{isLoading:E,options:q,renderOption:G,onChange:z,onSearchTextChange:K,loadingMessage:f,noMatchesMessage:x,emptyMessage:T,errorMessage:m,selectableDataTestSubj:F})))}))}}]);