!function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=10)}([function(e,t,i){e.exports=i(12)(1465)},function(e,t){e.exports=__kbnSharedDeps__.KbnI18n},function(e,t){e.exports=__kbnSharedDeps__.Lodash},function(e,t,i){i.r(t);var n=__kbnBundles__.get("plugin/kibanaUtils/public");Object.defineProperties(t,Object.getOwnPropertyDescriptors(n))},function(e,t){e.exports=__kbnSharedDeps__.EmotionReact},function(e,t){e.exports=__kbnSharedDeps__.React},function(e,t){e.exports=__kbnSharedDeps__.ElasticEui},function(e,t){e.exports=__kbnSharedDeps__.ReactDom},function(e,t,i){"use strict";var n,r="object"==typeof Reflect?Reflect:null,o=r&&"function"==typeof r.apply?r.apply:function(e,t,i){return Function.prototype.apply.call(e,t,i)};n=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function(e){return e!=e};function c(){c.init.call(this)}e.exports=c,e.exports.once=function(e,t){return new Promise((function(i,n){function r(i){e.removeListener(t,o),n(i)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",r),i([].slice.call(arguments))}_(e,t,o,{once:!0}),"error"!==t&&function(e,t,i){"function"==typeof e.on&&_(e,"error",t,{once:!0})}(e,r)}))},c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var a=10;function u(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?c.defaultMaxListeners:e._maxListeners}function g(e,t,i,n){var r,o,s,c;if(u(i),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,i.listener?i.listener:i),o=e._events),s=o[t]),void 0===s)s=o[t]=i,++e._eventsCount;else if("function"==typeof s?s=o[t]=n?[i,s]:[s,i]:n?s.unshift(i):s.push(i),(r=l(e))>0&&s.length>r&&!s.warned){s.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=s.length,c=a,console&&console.warn&&console.warn(c)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(e,t,i){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:i},r=d.bind(n);return r.listener=i,n.wrapFn=r,r}function f(e,t,i){var n=e._events;if(void 0===n)return[];var r=n[t];return void 0===r?[]:"function"==typeof r?i?[r.listener||r]:[r]:i?function(e){for(var t=new Array(e.length),i=0;i0&&(s=t[0]),s instanceof Error)throw s;var c=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw c.context=s,c}var a=r[e];if(void 0===a)return!1;if("function"==typeof a)o(a,this,t);else{var u=a.length,l=v(a,u);for(i=0;i=0;o--)if(i[o]===t||i[o].listener===t){s=i[o].listener,r=o;break}if(r<0)return this;0===r?i.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},c.prototype.listeners=function(e){return f(this,e,!0)},c.prototype.rawListeners=function(e){return f(this,e,!1)},c.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},c.prototype.listenerCount=p,c.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,i){i.r(t);var n=__kbnBundles__.get("plugin/kibanaReact/public");Object.defineProperties(t,Object.getOwnPropertyDescriptors(n))},function(e,t,i){i(11),__kbnBundles__.define("plugin/uiActions/public",i,13)},function(e,t,i){i.p=window.__kbnPublicPath__.uiActions},function(e,t){e.exports=__kbnSharedDeps_npm__},function(e,t,i){"use strict";i.r(t),i.d(t,"plugin",(function(){return Z})),i.d(t,"UiActionsService",(function(){return ui_actions_service_UiActionsService})),i.d(t,"ActionInternal",(function(){return action_internal_ActionInternal})),i.d(t,"createAction",(function(){return f})),i.d(t,"IncompatibleActionError",(function(){return incompatible_action_error_IncompatibleActionError})),i.d(t,"buildContextMenuForActions",(function(){return I})),i.d(t,"VISUALIZE_FIELD_TRIGGER",(function(){return a})),i.d(t,"visualizeFieldTrigger",(function(){return u})),i.d(t,"VISUALIZE_GEO_FIELD_TRIGGER",(function(){return l})),i.d(t,"visualizeGeoFieldTrigger",(function(){return g})),i.d(t,"ROW_CLICK_TRIGGER",(function(){return s})),i.d(t,"rowClickTrigger",(function(){return c})),i.d(t,"CATEGORIZE_FIELD_TRIGGER",(function(){return d})),i.d(t,"categorizeFieldTrigger",(function(){return h})),i.d(t,"ACTION_VISUALIZE_FIELD",(function(){return k})),i.d(t,"ACTION_VISUALIZE_GEO_FIELD",(function(){return G})),i.d(t,"ACTION_VISUALIZE_LENS_FIELD",(function(){return F})),i.d(t,"ACTION_CATEGORIZE_FIELD",(function(){return U}));var n=i(0),r=i.n(n),o=i(1);const s="ROW_CLICK_TRIGGER",c={id:s,title:o.i18n.translate("uiActions.triggers.rowClickTitle",{defaultMessage:"Table row click"}),description:o.i18n.translate("uiActions.triggers.rowClickkDescription",{defaultMessage:"A click on a table row"})},a="VISUALIZE_FIELD_TRIGGER",u={id:a,title:"Visualize field",description:"Triggered when user wants to visualize a field."},l="VISUALIZE_GEO_FIELD_TRIGGER",g={id:l,title:"Visualize Geo field",description:"Triggered when user wants to visualize a geo field."},d="CATEGORIZE_FIELD_TRIGGER",h={id:d,title:"Run pattern analysis",description:"Triggered when user wants to run pattern analysis on a field."};class action_internal_ActionInternal{constructor(e){r()(this,"id",void 0),r()(this,"type",void 0),r()(this,"order",void 0),r()(this,"MenuItem",void 0),r()(this,"grouping",void 0),r()(this,"showNotification",void 0),r()(this,"disabled",void 0),this.definition=e,this.id=this.definition.id,this.type=this.definition.type||"",this.order=this.definition.order||0,this.MenuItem=this.definition.MenuItem,this.grouping=this.definition.grouping,this.showNotification=this.definition.showNotification,this.disabled=this.definition.disabled}execute(e){return this.definition.execute(e)}getIconType(e){if(this.definition.getIconType)return this.definition.getIconType(e)}getDisplayName(e){return this.definition.getDisplayName?this.definition.getDisplayName(e):`Action: ${this.id}`}getDisplayNameTooltip(e){return this.definition.getDisplayNameTooltip?this.definition.getDisplayNameTooltip(e):""}async isCompatible(e){return!this.definition.isCompatible||await this.definition.isCompatible(e)}async getHref(e){if(this.definition.getHref)return await this.definition.getHref(e)}async shouldAutoExecute(e){return!!this.definition.shouldAutoExecute&&this.definition.shouldAutoExecute(e)}}function f(e){return{getIconType:()=>{},order:0,isCompatible:()=>Promise.resolve(!0),getDisplayName:()=>"",...e}}class incompatible_action_error_IncompatibleActionError extends Error{constructor(){super(o.i18n.translate("uiActions.errors.incompatibleAction",{defaultMessage:"Action is incompatible"})),r()(this,"code","INCOMPATIBLE_ACTION")}}class trigger_contract_TriggerContract{constructor(e){r()(this,"id",void 0),r()(this,"title",void 0),r()(this,"description",void 0),r()(this,"exec",(async(e,t)=>{await this.internal.execute(e,t)})),this.internal=e,this.id=this.internal.trigger.id,this.title=this.internal.trigger.title,this.description=this.internal.trigger.description}}class trigger_internal_TriggerInternal{constructor(e,t){r()(this,"contract",void 0),this.service=e,this.trigger=t,this.contract=new trigger_contract_TriggerContract(this)}async execute(e,t){const i=this.trigger.id,n=await this.service.getTriggerCompatibleActions(i,e);await Promise.all([n.map((i=>this.service.executionService.execute({action:i,context:e,trigger:this.trigger},t)))])}}var p=i(2),v=i.n(p),_=i(3),m=i(5);const y=o.i18n.translate("uiActions.actionPanel.title",{defaultMessage:"Options"}),b=o.i18n.translate("uiActions.actionPanel.more",{defaultMessage:"More"}),w=(e,t,i)=>n=>{n.currentTarget instanceof HTMLAnchorElement?n.defaultPrevented||0!==n.button||n.currentTarget.target&&"_self"!==n.currentTarget.target||n.metaKey||n.altKey||n.ctrlKey||n.shiftKey||(n.preventDefault(),e.execute(t)):e.execute(t),i()},T=(e,t)=>{const i=e[t];if(!i)return;if(!i.items)return;if(i.items.length<=4)return;const n=i.items.slice(0,3),r=i.items.slice(3),o=i.id+"__more",s={name:b,panel:o,icon:"boxesHorizontal","data-test-subj":`embeddablePanelMore-${t}`,_order:-1};i.items=[...n,s];const c={id:o,title:i.title||y,items:r};e[o]=c},E=e=>{const t=[];for(const i of e){const{_order:e,_title:n,...r}=i;t.push(r)}return t},A=e=>{const t=[];for(const i of e){const{_level:e,_icon:n,...r}=i;t.push({...r,items:E(r.items)})}return t};async function I({actions:e,title:t=y,closeMenu:i=(()=>{})}){const n={mainMenu:{id:"mainMenu",title:t,items:[]}},r=e.map((async e=>{const{action:t}=e,r={...e.context,trigger:e.trigger};if(!await e.action.isCompatible(r))return;let o="",s="";if(t.grouping)for(let e=0;e{var t;return-1*(null!==(t=e._order)&&void 0!==t?t:0)}),(e=>e._title))}T(n,"mainMenu");for(const e of Object.values(n))0===e._level&&(n.mainMenu.items.length>0&&n.mainMenu.items.push({isSeparator:!0,key:e.id+"__separator"}),e.items.length>3?n.mainMenu.items.push({name:e.title||e.id,icon:e._icon||"empty",panel:e.id}):n.mainMenu.items.push(...e.items));const o=Object.values(n);return A(o)}var x=i(6),L=i(8),O=i(7),C=i.n(O),M=i(9);const[P,S]=Object(_.createGetterSetter)("Theme");var j=i(4);let D=null;const N="contextMenu-container",{resolveLastPosition:R}=function(){let e=0,t=0;const i=[],n=10;function r(e){i.push({el:e.target,mouseX:e.clientX,mouseY:e.clientY}),i.length>n&&i.shift()}function o(i){e=i.clientX,t=i.clientY}return document.addEventListener("mouseup",r,!0),document.addEventListener("click",r,!0),document.addEventListener("mousemove",o,{passive:!0}),document.addEventListener("mouseenter",o,{passive:!0}),{resolveLastPosition:()=>{const n=[...i].reverse().find((({el:e})=>e&&document.body.contains(e)));if(!n)return{x:e,y:t};const{top:r,left:o,bottom:s,right:c}=n.el.getBoundingClientRect(),a=n.mouseX,u=n.mouseY;return r<=u&&s>=u&&o<=a&&c>=a?{x:a,y:u}:{x:o+(c-o)/2,y:s}}}}();class open_context_menu_ContextMenuSession extends L.EventEmitter{close(){if(D===this){const e=document.getElementById(N);e&&(C.a.unmountComponentAtNode(e),this.emit("closed"))}}}class ui_actions_execution_service_UiActionsExecutionService{constructor(){r()(this,"batchingQueue",[]),r()(this,"pendingTasks",new Set)}async execute({action:e,context:t,trigger:i},n){var r,o;const s=null!==(r=!await(null===(o=e.shouldAutoExecute)||void 0===o?void 0:o.call(e,{...t,trigger:i})))&&void 0!==r&&r,c={action:e,context:t,trigger:i,defer:Object(_.defer)(),alwaysShowPopup:!!n};if(s)this.batchingQueue.push(c);else{this.pendingTasks.add(c);try{await e.execute({...t,trigger:i}),this.pendingTasks.delete(c)}catch(e){throw this.pendingTasks.delete(c),new Error(e)}}return this.scheduleFlush(),c.defer.promise}scheduleFlush(){setTimeout((()=>{if(0===this.pendingTasks.size){const e=Object(p.uniqBy)(this.batchingQueue,(e=>e.action.id));if(e.length>0){let t=!1;for(const i of e)if(i.alwaysShowPopup){t=!0;break}t?this.showActionPopupMenu(e):1===e.length?this.executeSingleTask(e[0]):e.length>1&&this.showActionPopupMenu(e)}this.batchingQueue.splice(0,this.batchingQueue.length)}}),0)}async executeSingleTask({context:e,action:t,defer:i,trigger:n}){try{await t.execute({...e,trigger:n}),i.resolve()}catch(e){i.reject(e)}}async showActionPopupMenu(e){const t=function(e,t={}){D&&D.close();const i=function(){let e=document.getElementById(N),{x:t,y:i}=R();return i+=window.scrollY,t+=window.scrollX,e?(e.style.left=t+"px",e.style.top=i+"px"):(e=document.createElement("div"),e.style.left=t+"px",e.style.top=i+"px",e.style.position="absolute",e.style.zIndex="9999",e.id=N,document.body.appendChild(e)),e}(),n=D=new open_context_menu_ContextMenuSession;return C.a.render(Object(j.jsx)(M.KibanaThemeProvider,{theme$:P().theme$},Object(j.jsx)(x.EuiPopover,{className:"embPanel__optionsMenuPopover",button:i,isOpen:!0,closePopover:()=>{t.onClose&&t.onClose(),n.close()},panelPaddingSize:"none",anchorPosition:"downRight"},Object(j.jsx)(x.EuiContextMenu,{initialPanelId:"mainMenu",panels:e,"data-test-subj":t["data-test-subj"]}))),i),n}(await I({actions:e.map((({action:e,context:t,trigger:i})=>({action:e,context:t,trigger:i}))),title:"",closeMenu:()=>{e.forEach((e=>e.defer.resolve())),t.close()}}),{"data-test-subj":"multipleActionsContextMenu"})}}class ui_actions_service_UiActionsService{constructor({triggers:e=new Map,actions:t=new Map,triggerToActions:i=new Map}={}){r()(this,"executionService",new ui_actions_execution_service_UiActionsExecutionService),r()(this,"triggers",void 0),r()(this,"actions",void 0),r()(this,"triggerToActions",void 0),r()(this,"registerTrigger",(e=>{if(this.triggers.has(e.id))throw new Error(`Trigger [trigger.id = ${e.id}] already registered.`);const t=new trigger_internal_TriggerInternal(this,e);this.triggers.set(e.id,t),this.triggerToActions.set(e.id,[])})),r()(this,"getTrigger",(e=>{const t=this.triggers.get(e);if(!t)throw new Error(`Trigger [triggerId = ${e}] does not exist.`);return t.contract})),r()(this,"registerAction",(e=>{if(this.actions.has(e.id))throw new Error(`Action [action.id = ${e.id}] already registered.`);const t=new action_internal_ActionInternal(e);return this.actions.set(t.id,t),t})),r()(this,"unregisterAction",(e=>{if(!this.actions.has(e))throw new Error(`Action [action.id = ${e}] is not registered.`);this.actions.delete(e)})),r()(this,"hasAction",(e=>this.actions.has(e))),r()(this,"attachAction",((e,t)=>{if(!this.triggers.get(e))throw new Error(`No trigger [triggerId = ${e}] exists, for attaching action [actionId = ${t}].`);const i=this.triggerToActions.get(e);i.find((e=>e===t))||this.triggerToActions.set(e,[...i,t])})),r()(this,"detachAction",((e,t)=>{if(!this.triggers.get(e))throw new Error(`No trigger [triggerId = ${e}] exists, for detaching action [actionId = ${t}].`);const i=this.triggerToActions.get(e);this.triggerToActions.set(e,i.filter((e=>e!==t)))})),r()(this,"addTriggerAction",((e,t)=>{this.actions.has(t.id)||this.registerAction(t),this.attachAction(e,t.id)})),r()(this,"getAction",(e=>{if(!this.actions.has(e))throw new Error(`Action [action.id = ${e}] not registered.`);return this.actions.get(e)})),r()(this,"getTriggerActions",(e=>(this.getTrigger(e),this.triggerToActions.get(e).map((e=>this.actions.get(e))).filter(Boolean)))),r()(this,"getTriggerCompatibleActions",(async(e,t)=>{const i=this.getTriggerActions(e),n=await Promise.all(i.map((i=>i.isCompatible({...t,trigger:this.getTrigger(e)}))));return i.reduce(((e,t,i)=>(n[i]&&e.push(t),e)),[])})),r()(this,"executeTriggerActions",(async(e,t)=>{const i=this.getTrigger(e);await i.exec(t)})),r()(this,"clear",(()=>{this.actions.clear(),this.triggers.clear(),this.triggerToActions.clear()})),r()(this,"fork",(()=>{const e=new Map,t=new Map,i=new Map;for(const[t,i]of this.triggers.entries())e.set(t,i);for(const[e,i]of this.actions.entries())t.set(e,i);for(const[e,t]of this.triggerToActions.entries())i.set(e,[...t]);return new ui_actions_service_UiActionsService({triggers:e,actions:t,triggerToActions:i})})),this.triggers=e,this.actions=t,this.triggerToActions=i}}class plugin_UiActionsPlugin{constructor(e){r()(this,"service",new ui_actions_service_UiActionsService)}setup(e){return S(e.theme),this.service.registerTrigger(c),this.service.registerTrigger(u),this.service.registerTrigger(g),this.service.registerTrigger(h),this.service}start(e){return this.service}stop(){this.service.clear()}}const k="ACTION_VISUALIZE_FIELD",G="ACTION_VISUALIZE_GEO_FIELD",F="ACTION_VISUALIZE_LENS_FIELD",U="ACTION_CATEGORIZE_FIELD";function Z(e){return new plugin_UiActionsPlugin(e)}}]);