(window.embeddable_bundle_jsonpfunction=window.embeddable_bundle_jsonpfunction||[]).push([[2],{60:function(e,t,n){"use strict";n.r(t),n.d(t,"EmbeddablePanel",(function(){return w}));var a=n(26),i=n.n(a),l=n(7),o=n(54),s=n.n(o),r=n(8),d=n(3),c=n.n(d),b=n(4),u=n(25),g=n(55),p=n(10);const m=(e,t)=>{const[n,a]=Object(d.useState)(null==t?void 0:t.getInput()[e]);return Object(d.useEffect)((()=>{const n=null==t?void 0:t.getInput$().pipe(Object(r.distinctUntilKeyChanged)(e)).subscribe((()=>a(t.getInput()[e])));return()=>null==n?void 0:n.unsubscribe()}),[t,e]),n};var j=n(31),O=n(15),P=n(2),f=n(5);const T=f.i18n.translate("embeddableApi.panel.placeholderTitle",{defaultMessage:"[No Title]"}),x=e=>f.i18n.translate("embeddableApi.panel.editTitleAriaLabel",{defaultMessage:"Click to edit title: {title}",values:{title:e||T}}),v=(e,t)=>e?f.i18n.translate("embeddableApi.panel.optionsMenu.panelOptionsButtonEnhancedAriaLabel",{defaultMessage:"Panel options for {title}",values:{title:e}}):t?f.i18n.translate("embeddableApi.panel.optionsMenu.panelOptionsButtonAriaLabelWithIndex",{defaultMessage:"Options for panel {index}",values:{index:t}}):f.i18n.translate("embeddableApi.panel.optionsMenu.panelOptionsButtonAriaLabel",{defaultMessage:"Panel options"});var E=n(1);const h=({viewMode:e,hideTitle:t,embeddable:n,description:a,customizePanelAction:i})=>{const l=n.getTitle(),o=Object(d.useMemo)((()=>{if(t)return null;const a=s()("embPanel__titleText",{embPanel__placeholderTitleText:!l});return e===P.r.VIEW?Object(E.jsx)("span",{className:a},l):i?Object(E.jsx)(b.EuiLink,{color:"text",className:a,"aria-label":x(l),"data-test-subj":"embeddablePanelTitleLink",onClick:()=>i.execute({embeddable:n})},l||T):null}),[i,n,l,e,t]);return Object(d.useMemo)((()=>a?Object(E.jsx)(b.EuiToolTip,{content:a,delay:"regular",position:"top",anchorClassName:"embPanel__titleTooltipAnchor"},Object(E.jsx)("span",{className:"embPanel__titleInner"},o," ",Object(E.jsx)(b.EuiIcon,{type:"iInCircle",color:"subdued","data-test-subj":"embeddablePanelTitleDescriptionIcon"}))):Object(E.jsx)("span",{className:"embPanel__titleInner"},o)),[a,o])};var M=n(56),I=n(38),_=n(24);const N=({order:e},{order:t})=>(t||0)-(e||0),A=({index:e,embeddable:t,getActions:n,actionPredicate:a,universalActions:i})=>{const[l,o]=Object(d.useState)(!1),[r,c]=Object(d.useState)([]),[u,g]=Object(d.useState)(void 0),[p,j]=Object(d.useState)([]),P=m("title",t),T=m("viewMode",t);Object(d.useEffect)((()=>{if(!1===u)return;o(!0);let e=!1;return(async()=>{const l=await(async()=>{var e;return n?await n(I.CONTEXT_MENU_TRIGGER,{embeddable:t}):null!==(e=await O.g.getTriggerCompatibleActions(I.CONTEXT_MENU_TRIGGER,{embeddable:t}))&&void 0!==e?e:[]})();if(e)return;let s=l.concat(Object.values(null!=i?i:{}));const{disabledActions:r}=t.getInput();if(r){const e=(e=>({id:t})=>-1===e.indexOf(t))(r);s=s.filter(e)}s.sort(N),a&&(s=s.filter((({id:e})=>a(e))));const d=await Object(_.buildContextMenuForActions)({actions:s.map((e=>({action:e,context:{embeddable:t},trigger:I.contextMenuTrigger}))),closeMenu:()=>g(!1)});e||(o(!1),c(s),j(d))})(),()=>{e=!0}}),[a,t,n,u,i]);const x=Object(d.useMemo)((()=>r.some((e=>e.showNotification))),[r]),h=s()({embPanel__optionsMenuPopover:!0,"embPanel__optionsMenuPopover-notification":x}),M=Object(E.jsx)(b.EuiButtonIcon,{color:"text",className:"embPanel__optionsMenuButton","data-test-subj":"embeddablePanelToggleMenuIcon","aria-label":v(P,e),onClick:()=>g((e=>!e)),iconType:T===I.ViewMode.VIEW?"boxesHorizontal":"gear"});return Object(E.jsx)(b.EuiPopover,{repositionOnScroll:!0,panelPaddingSize:"none",anchorPosition:"downRight",button:M,isOpen:u,className:h,closePopover:()=>g(!1),"data-test-subj":u?"embeddablePanelContextMenuOpen":"embeddablePanelContextMenuClosed"},l?Object(E.jsx)(b.EuiContextMenuPanel,{className:"embPanel__optionsMenuPopover-loading",title:f.i18n.translate("embeddableApi.panel.contextMenu.loadingTitle",{defaultMessage:"Options"})},Object(E.jsx)(b.EuiContextMenuItem,null,Object(E.jsx)(b.EuiSkeletonText,null))):Object(E.jsx)(b.EuiContextMenu,{initialPanelId:"mainMenu",panels:p}))},C=({index:e,headerId:t,getActions:n,embeddable:a,actionPredicate:i,universalActions:l,showBadges:o=!0,showNotifications:r=!0})=>{var u,g;const p=Object(d.useMemo)((()=>Object(P.F)(a)?a.getSelfStyledOptions():void 0),[a]),{notificationComponents:j,badgeComponents:x}=((e,t,n,a)=>{const i=null!=a?a:O.g.getTriggerCompatibleActions,[l,o]=Object(d.useState)(),[s,r]=Object(d.useState)(),u=Object(d.useCallback)((async()=>{var e;if(!t)return;let a=null!==(e=await i(I.PANEL_BADGE_TRIGGER,{embeddable:n}))&&void 0!==e?e:[];const{disabledActions:l}=n.getInput();return l&&(a=a.filter((e=>-1===l.indexOf(e.id)))),a}),[n,i,t]),g=Object(d.useCallback)((async()=>{var t;if(!e)return;let a=null!==(t=await i(I.PANEL_NOTIFICATION_TRIGGER,{embeddable:n}))&&void 0!==t?t:[];const{disabledActions:l}=n.getInput();return l&&(a=a.filter((e=>-1===l.indexOf(e.id)))),a}),[n,i,e]);return Object(d.useEffect)((()=>{let e,t=!1;const a=async()=>{const[e,n]=await Promise.all([u(),g()]);t||(o(e),r(n))};return a().then((()=>{t||(e=n.getInput$().subscribe((()=>a())),n.parent&&e.add(n.parent.getInput$().subscribe((()=>a()))))})),()=>{var n;null===(n=e)||void 0===n||n.unsubscribe(),t=!0}}),[n,u,g]),{badgeComponents:Object(d.useMemo)((()=>null==l?void 0:l.map((e=>Object(E.jsx)(b.EuiBadge,{key:e.id,className:"embPanel__headerBadge",iconType:e.getIconType({embeddable:n,trigger:I.panelBadgeTrigger}),onClick:()=>e.execute({embeddable:n,trigger:I.panelBadgeTrigger}),onClickAriaLabel:e.getDisplayName({embeddable:n,trigger:I.panelBadgeTrigger}),"data-test-subj":`embeddablePanelBadge-${e.id}`},e.getDisplayName({embeddable:n,trigger:I.panelBadgeTrigger}))))),[l,n]),notificationComponents:Object(d.useMemo)((()=>null==s?void 0:s.map((e=>{const t={embeddable:n};let a=e.MenuItem?c.a.createElement(e.MenuItem,{key:e.id,context:{embeddable:n,trigger:I.panelNotificationTrigger}}):Object(E.jsx)(b.EuiNotificationBadge,{"data-test-subj":`embeddablePanelNotification-${e.id}`,key:e.id,style:{marginTop:M.euiThemeVars.euiSizeXS,marginRight:M.euiThemeVars.euiSizeXS},onClick:()=>e.execute({...t,trigger:I.panelNotificationTrigger})},e.getDisplayName({...t,trigger:I.panelNotificationTrigger}));if(e.getDisplayNameTooltip){const n=e.getDisplayNameTooltip({...t,trigger:I.panelNotificationTrigger});n&&(a=Object(E.jsx)(b.EuiToolTip,{position:"top",delay:"regular",content:n,key:e.id},a))}return a}))),[n,s])}})(r,o,a,n),v=a.getTitle(),_=a.getDescription(),N=m("viewMode",a),C=m("hidePanelTitles",a),S=m("hidePanelTitles",a.parent),w=Boolean(C)||Boolean(S)||Boolean(null==p?void 0:p.hideTitle)||N===P.r.VIEW&&!Boolean(v),y=!w||_||N!==P.r.VIEW||(null!==(u=null==x?void 0:x.length)&&void 0!==u?u:0)>0||(null!==(g=null==j?void 0:j.length)&&void 0!==g?g:0)>0,B=(e=>e?f.i18n.translate("embeddableApi.panel.enhancedDashboardPanelAriaLabel",{defaultMessage:"Dashboard panel: {title}",values:{title:e||T}}):f.i18n.translate("embeddableApi.panel.dashboardPanelAriaLabel",{defaultMessage:"Dashboard panel"}))(y?v:void 0),k=Object(E.jsx)(b.EuiScreenReaderOnly,null,Object(E.jsx)("span",{id:t},B)),R=s()("embPanel__header",{"embPanel__header--floater":!y}),G=s()("embPanel__title",{"embPanel--dragHandle":N===P.r.EDIT}),D=Object(E.jsx)(A,{index:e,embeddable:a,getActions:n,actionPredicate:i,universalActions:l});return y?Object(E.jsx)("figcaption",{className:R,"data-test-subj":`embeddablePanelHeading-${(v||"").replace(/\s/g,"")}`},Object(E.jsx)("h2",{"data-test-subj":"dashboardPanelTitle",className:G},k,Object(E.jsx)(h,{viewMode:N,hideTitle:w,embeddable:a,description:_,customizePanelAction:l.customizePanel}),o&&x),r&&j,D):Object(E.jsx)("div",{className:R},D,k)},S=e=>Object(l.isNil)(e.error)?!0===e.rendered?"rendered":!1===e.loading?"loaded":"loading":"error",w=e=>{const{hideHeader:t,showShadow:n,embeddable:a,hideInspector:l,containerContext:o,onPanelStatusChange:f}=e,[T,x]=Object(d.useState)(),v=Object(d.useMemo)((()=>c.a.createRef()),[]),h=Object(d.useMemo)((()=>Object(b.htmlIdGenerator)()()),[]),[M,I]=Object(d.useState)(),_=Object(d.useMemo)((()=>{const e=O.b.uiSettings.get(g.UI_SETTINGS.TIMEPICKER_QUICK_RANGES),t=O.b.uiSettings.get(g.UI_SETTINGS.DATE_FORMAT),n=O.c.getStateTransfer(),a={customizePanel:new p.e(O.b.overlays,O.b.theme,e,t),removePanel:new p.i,editPanel:new p.f(O.c.getEmbeddableFactory,O.b.application,n,null==o?void 0:o.getCurrentPath)};return l||(a.inspectPanel=new p.g(O.d)),a}),[null==o?void 0:o.getCurrentPath,l]);Object(d.useEffect)((()=>{if(!f)return;let e=0;const t=a.getOutput$().pipe(Object(r.map)((t=>(!0===t.loading&&(e=performance.now()),{id:a.id,status:S(t),error:t.error}))),Object(r.distinct)((t=>e+t.id+t.status+!!t.error)),Object(r.map)((t=>({...t,timeToEvent:performance.now()-e})))).subscribe((e=>{f(e)}));return()=>null==t?void 0:t.unsubscribe()}),[]);const N=((e,t)=>{const[n,a]=Object(d.useState)(t.getOutput()[e]);return Object(d.useEffect)((()=>{const n=t.getOutput$().pipe(Object(r.distinctUntilKeyChanged)(e)).subscribe((()=>a(t.getOutput()[e])));return()=>n.unsubscribe()}),[t,e]),n})("loading",a),A=m("viewMode",a);Object(d.useEffect)((()=>{var e;if(!v.current)return;const t=null!==(e=a.render(v.current))&&void 0!==e?e:void 0;Object(u.isPromise)(t)?t.then((e=>x(e))):x(t);const n=a.getOutput$().subscribe({next:e=>{I(e.error)},error:e=>I(e)});return()=>{null==a||a.destroy(),null==n||n.unsubscribe()}}),[a,v]);const w=Object(d.useMemo)((()=>s()("embPanel",{"embPanel--editing":A!==P.r.VIEW,"embPanel--loading":N})),[A,N]),y=Object(d.useMemo)((()=>{const e={};return N&&(e["data-loading"]=!0),M&&(e["data-error"]=!0),e}),[N,M]);return Object(E.jsx)(b.EuiPanel,{role:"figure",paddingSize:"none",className:w,hasShadow:n,"aria-labelledby":h,"data-test-subj":"embeddablePanel","data-test-embeddable-id":a.id},!t&&Object(E.jsx)(C,i()({},e,{headerId:h,universalActions:_})),M&&Object(E.jsx)(b.EuiFlexGroup,{alignItems:"center",className:"eui-fullHeight embPanel__error","data-test-subj":"embeddableError",justifyContent:"center"},Object(E.jsx)(b.EuiFlexItem,null,Object(E.jsx)(P.e,{embeddable:a,error:M},(e=>Object(E.jsx)(j.a,{editPanelAction:_.editPanel,embeddable:a,error:e}))))),Object(E.jsx)("div",i()({className:"embPanel__content",ref:v},y),T))}}}]);