(window.inputControlVis_bundle_jsonpfunction=window.inputControlVis_bundle_jsonpfunction||[]).push([[2],[,,,,,,,,,,,,,,,,function(t,e,i){t.exports=i(6)(1465)},function(t,e,i){"use strict";i.d(e,"a",(function(){return r})),i.d(e,"g",(function(){return s})),i.d(e,"b",(function(){return n})),i.d(e,"d",(function(){return a})),i.d(e,"f",(function(){return o})),i.d(e,"e",(function(){return c})),i.d(e,"c",(function(){return u}));const r={LIST:"list",RANGE:"range"},s=(t,e,i)=>[...t.slice(0,e),i,...t.slice(e+1)],n=(t,e)=>[...t,e],a=(t,e,i)=>{let r;if(r=i>=0?e+1:e-1,r<0)return[...t.slice(1),t[0]];if(r>=t.length){const e=t.length-1;return[t[e],...t.slice(0,e)]}{const i=t.slice(),s=i[r];return i[r]=i[e],i[e]=s,i}},o=(t,e)=>[...t.slice(0,e),...t.slice(e+1)],l=t=>{const e={};switch(t){case r.RANGE:e.decimalPlaces=0,e.step=1;break;case r.LIST:e.type="terms",e.multiselect=!0,e.dynamicOptions=!0,e.size=5,e.order="desc"}return e},c=t=>({id:(new Date).getTime().toString(),indexPattern:"",fieldName:"",parent:"",label:"",type:t,options:l(t)}),u=(t,e)=>{let i=`${t.type}: ${e}`;return t.label?i=`${t.label}`:t.fieldName&&(i=`${t.fieldName}`),i}},function(t,e,i){"use strict";var r,s=function(){var t={};return function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(t){i=null}t[e]=i}return t[e]}}(),n=[];function a(t){for(var e=-1,i=0;i{const r=[i.id],n=e=>{if(s.a.has(e,"parent")&&""!==e.parent&&!r.includes(e.parent)){r.push(e.parent);const s=(i=e.parent,t.find((t=>t.id===i)));s&&n(s)}var i};n(i),e.set(i.id,r)})),e}var a=i(17);function o(t,e,i){return t.filter((t=>{if(!t.indexPattern||!t.fieldName)return!1;const r=i.get(t.id);return null==r||!r.includes(e)})).map(((t,e)=>({value:t.id,text:Object(a.c)(t,e)})))}},function(t,e,i){switch(window.__kbnThemeTag__){case"v8dark":return i(22);case"v8light":return i(24)}},function(t,e,i){var r=i(18),s=i(23);"string"==typeof(s=s.__esModule?s.default:s)&&(s=[[t.i,s,""]]);r(s,{insert:"head",singleton:!1}),t.exports=s.locals||{}},function(t,e,i){(e=i(19)(!1)).push([t.i,".icvContainer__wrapper{display:flex;flex:1 1 0;min-height:0;overflow:auto;scrollbar-color:#98a2b380 #0000;scrollbar-width:thin}.icvContainer__wrapper::-webkit-scrollbar{height:16px;width:16px}.icvContainer__wrapper::-webkit-scrollbar-thumb{background-clip:content-box;background-color:#98a2b380;border:6px solid #0000;border-radius:16px}.icvContainer__wrapper::-webkit-scrollbar-corner,.icvContainer__wrapper::-webkit-scrollbar-track{background-color:#0000}.icvContainer{margin:0 4px;padding:8px;width:100%}",""]),t.exports=e},function(t,e,i){var r=i(18),s=i(25);"string"==typeof(s=s.__esModule?s.default:s)&&(s=[[t.i,s,""]]);r(s,{insert:"head",singleton:!1}),t.exports=s.locals||{}},function(t,e,i){(e=i(19)(!1)).push([t.i,".icvContainer__wrapper{display:flex;flex:1 1 0;min-height:0;overflow:auto;scrollbar-color:#69707d80 #0000;scrollbar-width:thin}.icvContainer__wrapper::-webkit-scrollbar{height:16px;width:16px}.icvContainer__wrapper::-webkit-scrollbar-thumb{background-clip:content-box;background-color:#69707d80;border:6px solid #0000;border-radius:16px}.icvContainer__wrapper::-webkit-scrollbar-corner,.icvContainer__wrapper::-webkit-scrollbar-track{background-color:#0000}.icvContainer{margin:0 4px;padding:8px;width:100%}",""]),t.exports=e},,,,,,,function(t,e,i){"use strict";i.r(e),i.d(e,"createInputControlVisController",(function(){return O}));var r=i(16),s=i.n(r),n=i(1),a=i.n(n),o=i(10),l=i.n(o),c=i(14),u=i(4),h=i(11),d=i(12),p=i(17),f=i(0),g=i(2);function m(t){let e=t.children;t.disableMsg&&(e=Object(g.jsx)(h.EuiToolTip,{position:"top",content:t.disableMsg,anchorClassName:"eui-displayBlock"},e));const i=t.warningMsg?Object(g.jsx)(a.a.Fragment,null,Object(g.jsx)(h.EuiToolTip,{position:"top",content:t.warningMsg},Object(g.jsx)(h.EuiIcon,{type:"warning"})),t.label):t.label;return Object(g.jsx)(h.EuiFormRow,{label:i,id:t.id,"data-test-subj":"inputControl"+t.controlIndex},e)}class list_control_ListControlUi extends n.PureComponent{constructor(t){super(t),s()(this,"isMounted",!1),s()(this,"state",{isLoading:!1}),s()(this,"textInput",void 0),s()(this,"componentDidMount",(()=>{this.textInput&&this.textInput.setAttribute("focusable","false"),this.isMounted=!0})),s()(this,"componentWillUnmount",(()=>{this.isMounted=!1})),s()(this,"setTextInputRef",(t=>{this.textInput=t})),s()(this,"handleOnChange",(t=>{const e=t.map((({value:t})=>t));this.props.stageFilter(this.props.controlIndex,e)})),s()(this,"debouncedFetch",l.a.debounce((async t=>{this.props.fetchOptions&&await this.props.fetchOptions(t),this.isMounted&&this.setState({isLoading:!1})}),300)),s()(this,"onSearchChange",(t=>{this.setState({isLoading:!0},this.debouncedFetch.bind(null,t))})),this.textInput=null}renderControl(){var t;const{intl:e}=this.props;if(this.props.disableMsg)return Object(g.jsx)(h.EuiFieldText,{"aria-label":e.formatMessage({id:"inputControl.vis.listControl.selectTextPlaceholder",defaultMessage:"Select..."}),placeholder:e.formatMessage({id:"inputControl.vis.listControl.selectTextPlaceholder",defaultMessage:"Select..."}),disabled:!0});const i=null===(t=this.props.options)||void 0===t?void 0:t.map((t=>({label:this.props.formatOptionLabel(t).toString(),value:t,"data-test-subj":`option_${t.toString().replace(" ","_")}`}))).sort(((t,e)=>t.label.toLowerCase().localeCompare(e.label.toLowerCase()))),r=this.props.selectedOptions.map((t=>({label:this.props.formatOptionLabel(t).toString(),value:t})));return Object(g.jsx)(h.EuiComboBox,{placeholder:e.formatMessage({id:"inputControl.vis.listControl.selectPlaceholder",defaultMessage:"Select..."}),options:i,isLoading:this.state.isLoading,async:this.props.dynamicOptions,onSearchChange:this.props.dynamicOptions?this.onSearchChange:void 0,selectedOptions:r,onChange:this.handleOnChange,singleSelection:!this.props.multiselect,"data-test-subj":`listControlSelect${this.props.controlIndex}`,inputRef:this.setTextInputRef})}render(){const t=f.i18n.translate("inputControl.vis.listControl.partialResultsWarningMessage",{defaultMessage:"Terms list might be incomplete because the request is taking too long. Adjust the autocomplete settings in kibana.yml for complete results."});return Object(g.jsx)(h.EuiThemeProvider,{colorMode:this.props.isDarkMode?"dark":"light"},Object(g.jsx)(m,{id:this.props.id,label:this.props.label,warningMsg:this.props.partialResults?t:void 0,controlIndex:this.props.controlIndex,disableMsg:this.props.disableMsg},this.renderControl()))}}s()(list_control_ListControlUi,"defaultProps",{dynamicOptions:!1,multiselect:!0,selectedOptions:[],options:[]});const b=Object(d.injectI18n)(list_control_ListControlUi);var v=i(15);function C(t,e,i){if(e<=0)return i(t);let r=t;return r*=Math.pow(10,e),r=i(r),r/=Math.pow(10,e),r}class range_control_RangeControl extends n.PureComponent{constructor(...t){super(...t),s()(this,"state",{}),s()(this,"onChangeComplete",l.a.debounce((t=>{const e={min:t[0],max:t[1]};this.props.stageFilter(this.props.controlIndex,e)}),200))}static getDerivedStateFromProps(t,e){const i=t.control.hasValue()?[t.control.value.min,t.control.value.max]:["",""];return t.control.hasValue()&&null==t.control.value.min&&(i[0]=""),t.control.hasValue()&&null==t.control.value.max&&(i[1]=""),i!==e.prevValue?{value:i,prevValue:i}:null}renderControl(){if(!this.props.control.isEnabled())return Object(g.jsx)(v.ValidatedDualRange,{disabled:!0,showInput:!0,min:0,max:100});const t=l.a.get(this.props,"control.options.decimalPlaces",0),e=function(t,e){return C(t,e,Math.floor)}(this.props.control.min,t),i=function(t,e){return C(t,e,Math.ceil)}(this.props.control.max,t),r=[{value:e,label:e},{value:i,label:i}];return Object(g.jsx)(v.ValidatedDualRange,{id:this.props.control.id,min:e,max:i,value:this.state.value,onChange:this.onChangeComplete,showInput:!0,showRange:!0,showTicks:!0,ticks:r})}render(){return Object(g.jsx)(m,{id:this.props.control.id,label:this.props.control.label,controlIndex:this.props.controlIndex,disableMsg:this.props.control.isEnabled()?void 0:this.props.control.disabledReason},this.renderControl())}}i(21);class input_control_vis_InputControlVis extends n.Component{constructor(t){super(t),this.handleSubmit=this.handleSubmit.bind(this),this.handleReset=this.handleReset.bind(this),this.handleClearAll=this.handleClearAll.bind(this)}handleSubmit(){this.props.submitFilters()}handleReset(){this.props.resetControls()}handleClearAll(){this.props.clearControls()}renderControls(){return this.props.controls.map(((t,e)=>{let i=null;if(function(t){return t.type===p.a.LIST}(t))i=Object(g.jsx)(b,{id:t.id,label:t.label,options:t.selectOptions,selectedOptions:t.value,formatOptionLabel:t.format,disableMsg:t.isEnabled()?void 0:t.disabledReason,multiselect:t.options.multiselect,partialResults:t.partialResults,dynamicOptions:t.options.dynamicOptions,controlIndex:e,stageFilter:this.props.stageFilter,fetchOptions:t=>{this.props.refreshControl(e,t)},isDarkMode:this.props.isDarkMode});else{if(!function(t){return t.type===p.a.RANGE}(t))throw new Error(`Unhandled control type ${t.type}`);i=Object(g.jsx)(range_control_RangeControl,{control:t,controlIndex:e,stageFilter:this.props.stageFilter})}return Object(g.jsx)(h.EuiFlexItem,{key:t.id,style:{minWidth:"250px"},"data-test-subj":"inputControlItem"},i)}))}renderStagingButtons(){return Object(g.jsx)(h.EuiFlexGroup,{wrap:!0},Object(g.jsx)(h.EuiFlexItem,{grow:!1},Object(g.jsx)(h.EuiButton,{fill:!0,onClick:this.handleSubmit,disabled:!this.props.hasChanges(),"data-test-subj":"inputControlSubmitBtn"},Object(g.jsx)(d.FormattedMessage,{id:"inputControl.vis.inputControlVis.applyChangesButtonLabel",defaultMessage:"Apply changes"}))),Object(g.jsx)(h.EuiFlexItem,{grow:!1},Object(g.jsx)(h.EuiButtonEmpty,{onClick:this.handleReset,disabled:!this.props.hasChanges(),"data-test-subj":"inputControlCancelBtn"},Object(g.jsx)(d.FormattedMessage,{id:"inputControl.vis.inputControlVis.cancelChangesButtonLabel",defaultMessage:"Cancel changes"}))),Object(g.jsx)(h.EuiFlexItem,{grow:!1},Object(g.jsx)(h.EuiButtonEmpty,{onClick:this.handleClearAll,disabled:!this.props.hasValues(),"data-test-subj":"inputControlClearBtn"},Object(g.jsx)(d.FormattedMessage,{id:"inputControl.vis.inputControlVis.clearFormButtonLabel",defaultMessage:"Clear form"}))))}render(){let t;return this.props.controls.length>0&&!this.props.updateFiltersOnChange&&(t=this.renderStagingButtons()),Object(g.jsx)("div",{className:"icvContainer__wrapper"},Object(g.jsx)("div",{className:"icvContainer"},Object(g.jsx)(h.EuiFlexGroup,{wrap:!0},this.renderControls()),t))}}function x(t,e){return f.i18n.translate("inputControl.control.noValuesDisableTooltip",{defaultMessage:'Filtering occurs on the "{fieldName}" field, which doesn\'t exist on any documents in the "{indexPatternName}" index pattern. Choose a different field or index documents that contain values for this field.',values:{fieldName:t,indexPatternName:e}})}function y(t){return f.i18n.translate("inputControl.control.noIndexPatternTooltip",{defaultMessage:"Could not locate index-pattern id: {indexPatternId}.",values:{indexPatternId:t}})}class control_Control{constructor(t,e,i){s()(this,"kbnFilter",null),s()(this,"enable",!1),s()(this,"disabledReason",""),s()(this,"value",void 0),s()(this,"id",void 0),s()(this,"options",void 0),s()(this,"type",void 0),s()(this,"label",void 0),s()(this,"ancestors",[]),s()(this,"format",(t=>{const e=this.filterManager.getIndexPattern(),i=this.filterManager.getField();return i&&e?e.getFormatterForField(i).convert(t):t})),this.controlParams=t,this.filterManager=e,this.useTimeFilter=i,this.id=t.id,this.controlParams=t,this.options=t.options,this.type=t.type,this.label=t.label?t.label:t.fieldName,this.reset(),this.disable(f.i18n.translate("inputControl.control.notInitializedTooltip",{defaultMessage:"Control has not been initialized"}))}setAncestors(t){this.ancestors=t}hasAncestors(){return this.ancestors&&this.ancestors.length>0}hasUnsetAncestor(){return this.ancestors.reduce(((t,e)=>t||!e.hasValue()),!1)}getAncestorValues(){return this.ancestors.map((t=>t.value))}getAncestorFilters(){return this.ancestors.map((t=>t.filterManager.createFilter(t.value)))}isEnabled(){return this.enable}disable(t){this.enable=!1,this.disabledReason=t}set(t){this.value=t,this.hasValue()?this.kbnFilter=this.filterManager.createFilter(this.value):this.kbnFilter=null}reset(){this.kbnFilter=null,this.value=this.filterManager.getValueFromFilterBar()}clear(){this.value=void 0}hasChanged(){return!l.a.isEqual(this.value,this.filterManager.getValueFromFilterBar())}hasKbnFilter(){return!!this.kbnFilter}getKbnFilter(){return this.kbnFilter}hasValue(){return void 0!==this.value}}var F=i(13);class filter_manager_FilterManager{constructor(t,e,i,r,n){s()(this,"indexPattern",void 0),this.controlId=t,this.fieldName=e,this.indexPatternId=i,this.indexPatternsService=r,this.queryFilter=n}async init(){try{this.indexPattern||(this.indexPattern=await this.indexPatternsService.get(this.indexPatternId))}catch(t){}}getIndexPattern(){return this.indexPattern}getField(){var t;return null===(t=this.indexPattern)||void 0===t?void 0:t.fields.getByName(this.fieldName)}findFilters(){return l.a.flatten([this.queryFilter.getAppFilters(),this.queryFilter.getGlobalFilters()]).filter((t=>l.a.get(t,"meta.controlledBy")===this.controlId))}}class range_filter_manager_RangeFilterManager extends filter_manager_FilterManager{createFilter(t){const e=this.getIndexPattern(),i=Object(F.buildRangeFilter)(e.fields.getByName(this.fieldName),{gte:(r=t).min,lte:r.max},e);var r;return i.meta.key=this.fieldName,i.meta.controlledBy=this.controlId,i}getValueFromFilterBar(){const t=this.findFilters();if(0===t.length)return;let e;return e=l.a.has(t[0],"query.script")?l.a.get(t[0],"query.script.script.params"):l.a.get(t[0],["query","range",this.fieldName]),e?function(t){const e={};return l.a.has(t,"gte")&&(e.min=l.a.get(t,"gte")),l.a.has(t,"gt")&&(e.min=l.a.get(t,"gt")),l.a.has(t,"lte")&&(e.max=l.a.get(t,"lte")),l.a.has(t,"lt")&&(e.max=l.a.get(t,"lt")),e}(e):void 0}}async function w({create:t},e,i,r,s,n=[],a){const o=await t(e||{});return o.setParent(void 0),o.setField("filter",(()=>{const t=[...n];if(s){const e=a.createFilter(i);e&&t.push(e)}return t})),o.setField("size",0),o.setField("index",i),o.setField("aggs",r),o}class range_control_factory_RangeControl extends control_Control{constructor(t,e,i,r,n){super(t,e,i),s()(this,"searchSource",void 0),s()(this,"timefilter",void 0),s()(this,"abortController",void 0),s()(this,"min",void 0),s()(this,"max",void 0),this.timefilter=n.data.query.timefilter.timefilter,this.searchSource=r}async fetch(){this.abortController&&this.abortController.abort(),this.abortController=new AbortController;const t=this.filterManager.getIndexPattern();if(!t)return void this.disable(y(this.controlParams.indexPattern));const e=this.filterManager.fieldName,i=(t=>{const e={};return t&&(t.scripted?e.script={source:t.script,lang:t.lang}:e.field=t.name),{maxAgg:{max:e},minAgg:{min:e}}})(t.fields.getByName(e)),r=await w(this.searchSource,null,t,i,this.useTimeFilter,[],this.timefilter),s=this.abortController.signal;let n;try{n=await r.fetch({abortSignal:s})}catch(t){if("AbortError"===t.name)return;return void this.disable(f.i18n.translate("inputControl.rangeControl.unableToFetchTooltip",{defaultMessage:"Unable to fetch range min and max, error: {errorMessage}",values:{errorMessage:t.message}}))}const a=l.a.get(n,"aggregations.minAgg.value",null),o=l.a.get(n,"aggregations.maxAgg.value",null);null!==a&&null!==o?(this.min=a,this.max=o,this.enable=!0):this.disable(x(e,t.title))}destroy(){this.abortController&&this.abortController.abort()}}async function j(t,e,i){const[,{data:r}]=await i.core.getStartServices(),s=new range_control_factory_RangeControl(t,new range_filter_manager_RangeFilterManager(t.id,t.fieldName,t.indexPattern,r.indexPatterns,i.data.query.filterManager),e,r.search.searchSource,i);return await s.filterManager.init(),s}class phrase_filter_manager_PhraseFilterManager extends filter_manager_FilterManager{constructor(t,e,i,r,s){super(t,e,i,r,s)}createFilter(t){const e=this.getIndexPattern();let i;const r=e.fields.getByName(this.fieldName);if(!r)throw new Error(`Unable to find field with name: ${this.fieldName} on indexPattern`);return i=1===t.length?Object(F.buildPhraseFilter)(r,t[0],e):Object(F.buildPhrasesFilter)(r,t,e),i.meta.key=this.fieldName,i.meta.controlledBy=this.controlId,i}getValueFromFilterBar(){const t=this.findFilters();if(0===t.length)return;const e=t.map((t=>this.getValueFromFilter(t))).filter((t=>null!=t));return 0!==e.length?e.reduce(((t,e)=>t.concat(e)),[]):void 0}getValueFromFilter(t){if(l.a.has(t,"query.bool.should"))return l.a.get(t,"query.bool.should").map((t=>this.getValueFromFilter(t))).filter((t=>!!t));if(l.a.has(t,"query.script"))return l.a.get(t,"query.script.script.params.value");if(Object(F.isPhraseFilter)(t)){if(Object(F.getPhraseFilterField)(t)!==this.fieldName)return;return Object(F.getPhraseFilterValue)(t)}return l.a.has(t,["match_phrase",this.fieldName])?l.a.get(t,["match_phrase",this.fieldName]):void 0}}class list_control_factory_ListControl extends control_Control{constructor(t,e,i,r,n){super(t,e,i),s()(this,"getSettings",void 0),s()(this,"timefilter",void 0),s()(this,"searchSource",void 0),s()(this,"abortController",void 0),s()(this,"lastAncestorValues",void 0),s()(this,"lastQuery",void 0),s()(this,"partialResults",void 0),s()(this,"selectOptions",void 0),s()(this,"fetch",(async t=>{this.abortController&&this.abortController.abort(),this.abortController=new AbortController;const e=this.filterManager.getIndexPattern();if(!e)return void this.disable(y(this.controlParams.indexPattern));let i;if(this.hasAncestors()){if(this.hasUnsetAncestor())return this.disable(f.i18n.translate("inputControl.listControl.disableTooltip",{defaultMessage:"Disabled until '{label}' is set.",values:{label:this.ancestors[0].label}})),void(this.lastAncestorValues=void 0);const e=this.getAncestorValues();if(l.a.isEqual(e,this.lastAncestorValues)&&l.a.isEqual(t,this.lastQuery))return;this.lastAncestorValues=e,this.lastQuery=t,i=this.getAncestorFilters()}const r=this.filterManager.fieldName,s=await this.getSettings(),n={timeout:`${s.autocompleteTimeout}ms`,terminate_after:Number(s.autocompleteTerminateAfter)},a=null==e?void 0:e.fields.getAll().find((({name:t})=>t===this.controlParams.fieldName));a&&"string"!==a.type&&(this.options.dynamicOptions=!1);const o=(({field:t,size:e,direction:i,query:r})=>{const s={order:{_count:i}};return e&&(s.size=e<1?1:e),null!=t&&t.scripted?(s.script={source:t.script,lang:t.lang},s.value_type="number"===t.type?"float":t.type):s.field=null==t?void 0:t.name,r&&(s.include=`.*${function(t=""){return t.replace(/[.?+*|{}[\]()"\\#@&<>~]/g,(t=>`\\${t}`))}(r)}.*`),{termsAgg:{terms:s}}})({field:e.fields.getByName(r),size:this.options.dynamicOptions?null:l.a.get(this.options,"size",5),direction:"desc",query:t}),c=await w(this.searchSource,n,e,o,this.useTimeFilter,i,this.timefilter),u=this.abortController.signal;let h;this.lastQuery=t;try{h=await c.fetch({abortSignal:u})}catch(t){if("AbortError"===t.name)return;return void this.disable(f.i18n.translate("inputControl.listControl.unableToFetchTooltip",{defaultMessage:"Unable to fetch terms, error: {errorMessage}",values:{errorMessage:t.message}}))}if(t&&this.lastQuery!==t)return;const d=l.a.get(h,"aggregations.termsAgg.buckets",[]).map((t=>null==t?void 0:t.key));0!==d.length||t?(this.partialResults=h.terminated_early||h.timed_out,this.selectOptions=d,this.enable=!0,this.disabledReason=""):this.disable(x(r,e.title))})),this.getSettings=n.getSettings,this.timefilter=n.data.query.timefilter.timefilter,this.searchSource=r}destroy(){this.abortController&&this.abortController.abort()}hasValue(){return void 0!==this.value&&this.value.length>0}}async function M(t,e,i){const[,{data:r}]=await i.core.getStartServices(),s=new list_control_factory_ListControl(t,new phrase_filter_manager_PhraseFilterManager(t.id,t.fieldName,t.indexPattern,r.indexPatterns,i.data.query.filterManager),e,r.search.searchSource,i);return await s.filterManager.init(),s}var _=i(20);const O=(t,e,i)=>{let r,n=!1;return new class InputControlVisController{constructor(){s()(this,"controls",void 0),s()(this,"queryBarUpdateHandler",void 0),s()(this,"filterManager",void 0),s()(this,"updateSubsciption",void 0),s()(this,"timeFilterSubscription",void 0),s()(this,"visParams",void 0),s()(this,"isDarkMode",void 0),s()(this,"drawVis",(()=>{var t;if(!r)throw new Error("no i18n context found");Object(c.render)(Object(g.jsx)(r,null,Object(g.jsx)(u.VisualizationContainer,{handlers:e},Object(g.jsx)(input_control_vis_InputControlVis,{updateFiltersOnChange:null===(t=this.visParams)||void 0===t?void 0:t.updateFiltersOnChange,controls:this.controls,stageFilter:this.stageFilter,submitFilters:this.submitFilters,resetControls:this.updateControlsFromKbn,clearControls:this.clearControls,hasChanges:this.hasChanges,hasValues:this.hasValues,refreshControl:this.refreshControl,isDarkMode:this.isDarkMode}))),i)})),s()(this,"stageFilter",(async(t,e)=>{var i;this.controls[t].set(e),null!==(i=this.visParams)&&void 0!==i&&i.updateFiltersOnChange?this.submitFilters():(await this.updateNestedControls(),this.drawVis())})),s()(this,"submitFilters",(()=>{var t;const e=this.controls.filter((t=>t.hasChanged())),i=e.map((t=>t.getKbnFilter())).filter((t=>null!==t));e.forEach((t=>{t.filterManager.findFilters().forEach((t=>{this.filterManager.removeFilter(t)}))})),this.controls.map((t=>{t.hasAncestors()&&t.hasUnsetAncestor()&&t.filterManager.findFilters().forEach((t=>{this.filterManager.removeFilter(t)}))})),this.filterManager.addFilters(i,null===(t=this.visParams)||void 0===t?void 0:t.pinFilters)})),s()(this,"clearControls",(async()=>{this.controls.forEach((t=>{t.clear()})),await this.updateNestedControls(),this.drawVis()})),s()(this,"updateControlsFromKbn",(async()=>{this.controls.forEach((t=>{t.reset()})),await this.updateNestedControls(),this.drawVis()})),s()(this,"hasChanges",(()=>this.controls.map((t=>t.hasChanged())).some((t=>t)))),s()(this,"hasValues",(()=>this.controls.map((t=>t.hasValue())).reduce(((t,e)=>t||e)))),s()(this,"refreshControl",(async(t,e)=>{await this.controls[t].fetch(e),this.drawVis()})),this.controls=[],this.queryBarUpdateHandler=this.updateControlsFromKbn.bind(this),this.filterManager=t.data.query.filterManager,this.updateSubsciption=this.filterManager.getUpdates$().subscribe(this.queryBarUpdateHandler),this.timeFilterSubscription=t.data.query.timefilter.timefilter.getTimeUpdate$().subscribe((()=>{var t;null!==(t=this.visParams)&&void 0!==t&&t.useTimeFilter&&(n=!1)})),this.isDarkMode=t.core.uiSettings.get("theme:darkMode")}async render(e){if(!r){const[{i18n:e}]=await t.core.getStartServices();r=e.Context}n&&Object(o.isEqual)(e,this.visParams)||(this.visParams=e,this.controls=[],this.controls=await this.initControls(e),n=!0),this.drawVis()}destroy(){this.updateSubsciption.unsubscribe(),this.timeFilterSubscription.unsubscribe(),Object(c.unmountComponentAtNode)(i),this.controls.forEach((t=>t.destroy()))}async initControls(e){const i=e.controls.filter((t=>t.indexPattern&&t.fieldName)),r=i.map((i=>{const r=function(t){let e=null;switch(t.type){case p.a.RANGE:e=j;break;case p.a.LIST:e=M;break;default:throw new Error(`Unhandled control type ${t.type}`)}return e}(i);return r(i,e.useTimeFilter,t)})),s=await Promise.all(r),n=t=>s.find((({id:e})=>e===t)),a=[];return Object(_.a)(i).forEach(((t,e)=>{t.shift();const i=[];t.forEach((t=>{const e=n(t);e&&i.push(e)}));const r=n(e);r&&(r.setAncestors(i),a.push(r.fetch()))})),await Promise.all(a),s}async updateNestedControls(){const t=this.controls.map((async t=>{t.hasAncestors()&&await t.fetch()}));return await Promise.all(t)}}}}]]);