Last active
November 12, 2021 02:00
-
-
Save huantt/eaa5d8563f7a4e6274e142e2c38ecc92 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| !function(e){function t(t){for(var r,i,s=t[0],l=t[1],c=t[2],d=0,p=[];d<s.length;d++)i=s[d],a[i]&&p.push(a[i][0]),a[i]=0;for(r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r]);for(u&&u(t);p.length;)p.shift()();return o.push.apply(o,c||[]),n()}function n(){for(var e,t=0;t<o.length;t++){for(var n=o[t],r=!0,s=1;s<n.length;s++){var l=n[s];0!==a[l]&&(r=!1)}r&&(o.splice(t--,1),e=i(i.s=n[0]))}return e}var r={},a={0:0},o=[];function i(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=e,i.c=r,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="/static/";var s=window.webpackJsonp=window.webpackJsonp||[],l=s.push.bind(s);s.push=t,s=s.slice();for(var c=0;c<s.length;c++)t(s[c]);var u=l;o.push([803,2]),n()}([,,,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"Auth",function(){return i}),n.d(t,"currentUser",function(){return s}),n.d(t,"clientConfig",function(){return l}),n.d(t,"messages",function(){return c}),n.d(t,"default",function(){return h});var r=n(98),a=n.n(r),o=n(2);f.$inject=["$injector"],m.$inject=["$window","$location","$q","$http"];var i=null,s={canEdit:function(e){var t=e.user_id||e.user&&e.user.id;return this.hasPermission("admin")||t&&t===this.id},hasPermission:function(e){return Object(o.includes)(this.permissions,e)},get isAdmin(){return this.hasPermission("admin")}},l={},c=[],u=a()("redash:auth"),d={loaded:!1};function p(e){u("Updating session to be:",e),Object(o.extend)(d,e,{loaded:!0}),Object(o.extend)(s,d.user),Object(o.extend)(l,d.client_config),Object(o.extend)(c,d.messages)}function m(e,t,n,r){return{isAuthenticated:function(){return d.loaded&&d.user.id},login:function(){var e=encodeURI(t.url());u("Calling login with next = %s",e),window.location.href="login?next=".concat(e)},logout:function(){u("Logout."),e.location.href="logout"},loadSession:function(){return u("Loading session"),d.loaded&&d.user.id?(u("Resolving with local value."),n.resolve(d)):(this.setApiKey(null),r.get("api/session").then(e=>(p(e.data),d)))},loadConfig:function(){return u("Loading config"),r.get("/api/config").then(e=>(p({client_config:e.data.client_config,user:{permissions:[]},messages:[]}),e.data))},setApiKey:function(e){u("Set API key to: %s",e),this.apiKey=e},getApiKey:function(){return this.apiKey},requireSession:function(){return u("Requested authentication"),this.isAuthenticated()?n.when(d):this.loadSession().then(()=>{if(this.isAuthenticated())return u("Loaded session"),d;u("Need to login, redirecting"),this.login()}).catch(()=>{u("Need to login, redirecting"),this.login()})}}}function f(e){return{request:function(t){var n=e.get("Auth").getApiKey();return n&&(t.headers.Authorization="Key ".concat(n)),t}}}function h(e){e.factory("Auth",m),e.value("currentUser",s),e.value("clientConfig",l),e.value("messages",c),e.factory("apiKeyHttpInterceptor",f),e.config(["$httpProvider",e=>{e.interceptors.push("apiKeyHttpInterceptor")}]),e.run(["$injector",e=>{i=e.get("Auth")}])}h.init=!0},,function(e,t,n){"use strict";n.r(t);n(19),n(27),n(11);var r=n(354),a=n.n(r);function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i(e,t,n[t])})}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}a.a.config({placement:"bottomRight",duration:3});var s={};["success","error","info","warning","warn"].forEach(e=>{s[e]=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return a.a[e](o({},r,{message:t,description:n}))}}),t.default=o({},a.a,s)},,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"VisualizationType",function(){return c}),n.d(t,"RendererPropTypes",function(){return u}),n.d(t,"EditorPropTypes",function(){return d}),n.d(t,"registeredVisualizations",function(){return p}),n.d(t,"registerVisualization",function(){return f}),n.d(t,"getDefaultVisualization",function(){return h}),n.d(t,"newVisualization",function(){return g});n(11),n(19),n(27);var r=n(2),a=n(1),o=n.n(a);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=o.a.object,l=o.a.shape({columns:o.a.arrayOf(o.a.object).isRequired,rows:o.a.arrayOf(o.a.object).isRequired}),c=o.a.shape({id:o.a.number,type:o.a.string.isRequired,name:o.a.string.isRequired,options:s.isRequired}),u={visualizationName:o.a.string,data:l.isRequired,options:s.isRequired,onOptionsChange:o.a.func,context:o.a.oneOf(["query","widget"]).isRequired},d={visualizationName:o.a.string,data:l.isRequired,options:s.isRequired,onOptionsChange:o.a.func.isRequired},p={},m=o.a.shape({type:o.a.string.isRequired,name:o.a.string.isRequired,getOptions:o.a.func.isRequired,isDefault:o.a.bool,isDeprecated:o.a.bool,Renderer:o.a.func.isRequired,Editor:o.a.func,autoHeight:o.a.bool,defaultRows:o.a.number,defaultColumns:o.a.number,minRows:o.a.number,maxRows:o.a.number,minColumns:o.a.number,maxColumns:o.a.number});function f(e){if(function(e){var t={config:m},n={config:e};o.a.checkPropTypes(t,n,"prop","registerVisualization")}(e),e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i(e,t,n[t])})}return e}({},e,{isDefault:e.isDefault&&!e.isDeprecated}),p[e.type])throw new Error("Visualization ".concat(e.type," already registered."));p[e.type]=e}function h(){return Object(r.find)(p,e=>e.isDefault)||Object(r.find)(p,e=>!e.isDeprecated)}function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e?p[e]:h();return{type:n.type,name:n.name,description:"",options:t}}},,function(e,t,n){"use strict";n.r(t),n.d(t,"$http",function(){return r}),n.d(t,"$sanitize",function(){return a}),n.d(t,"$location",function(){return o}),n.d(t,"$route",function(){return i}),n.d(t,"$routeParams",function(){return s}),n.d(t,"$q",function(){return l}),n.d(t,"$rootScope",function(){return c}),n.d(t,"$uibModal",function(){return u}),n.d(t,"default",function(){return d});var r=null,a=null,o=null,i=null,s=null,l=null,c=null,u=null;function d(e){e.run(["$injector",e=>{r=e.get("$http"),a=e.get("$sanitize"),o=e.get("$location"),i=e.get("$route"),s=e.get("$routeParams"),l=e.get("$q"),c=e.get("$rootScope"),u=e.get("$uibModal")}])}d.init=!0},,function(e,t,n){"use strict";n.r(t),n.d(t,"Columns",function(){return E}),n.d(t,"default",function(){return S});n(14),n(15),n(29);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(3),c=n.n(l),u=n(113),d=n.n(u),p=n(468),m=n(170),f=n(45),h=n(171);function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t){return!t||"object"!==g(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function w(e,t){return(w=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(){return Object(r.extend)(this.apply(void 0,arguments),{sorter:!0})}var E={favorites:function(e){return Object(r.extend)({width:"1%",render:(e,t)=>o.a.createElement(p.FavoritesControl,{item:t})},e)},avatar:function(e,t){return t=Object(r.isFunction)(t)?t:r.identity,Object(r.extend)({width:"1%",render:(e,n)=>o.a.createElement("img",{src:n.user.profile_image_url,className:"profile__image_thumb",alt:t(e.name,n),title:t(e.name,n)})},e)},date:function(e){return Object(r.extend)({render:e=>Object(h.b)(e)},e)},dateTime:function(e){return Object(r.extend)({render:e=>Object(h.c)(e)},e)},duration:function(e){return Object(r.extend)({width:"1%",className:"text-nowrap",render:e=>Object(f.durationHumanize)(e)},e)},timeAgo:function(e){return Object(r.extend)({render:e=>o.a.createElement(m.TimeAgo,{date:e})},e)},custom:function(e,t){return Object(r.extend)({render:e},t)}};E.date.sortable=j,E.dateTime.sortable=j,E.duration.sortable=j,E.timeAgo.sortable=j,E.custom.sortable=j;var S=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),y(this,v(t).apply(this,arguments))}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&w(e,t)}(t,o.a.Component),n=t,(a=[{key:"prepareColumns",value:function(){var e=this.props,t=e.orderByField,n=e.orderByReverse,a=e.toggleSorting,o=n?"descend":"ascend";return Object(r.map)(Object(r.map)(Object(r.filter)(this.props.columns,e=>!Object(r.isFunction)(e.isAvailable)||e.isAvailable()),e=>Object(r.extend)(e,{orderByField:e.orderByField||e.field})),(e,n)=>{var i=e.sorter?()=>({onClick:()=>a(e.orderByField)}):null,s=Object(r.isFunction)(e.render)?(t,n)=>e.render(t,n.item):r.identity;return Object(r.extend)(Object(r.omit)(e,["field","orderByField","render"]),{key:"column"+n,dataIndex:"item["+JSON.stringify(e.field)+"]",defaultSortOrder:e.orderByField===t?o:null,onHeaderCell:i,render:s})})}},{key:"render",value:function(){var e=this.prepareColumns(),t=Object(r.map)(this.props.items,(e,t)=>({key:"row"+t,item:e})),n=Object(r.isFunction)(this.props.onRowClick)?e=>({onClick:t=>{this.props.onRowClick(t,e.item)}}):null,a=this.props.showHeader;return o.a.createElement(d.a,{className:c()("table-data",{"ant-table-headerless":!a}),loading:this.props.loading,columns:e,showHeader:a,dataSource:t,rowKey:e=>e.key,pagination:!1,onRow:n})}}])&&b(n.prototype,a),i&&b(n,i),t}();O(S,"propTypes",{loading:s.a.bool,items:s.a.arrayOf(s.a.object),columns:s.a.arrayOf(s.a.shape({field:s.a.string,orderByField:s.a.string,render:s.a.func,isAvailable:s.a.func})),showHeader:s.a.bool,onRowClick:s.a.func,orderByField:s.a.string,orderByReverse:s.a.bool,toggleSorting:s.a.func}),O(S,"defaultProps",{loading:!1,items:[],columns:[],showHeader:!0,onRowClick:null,orderByField:null,orderByReverse:!1,toggleSorting:()=>{}})},,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"DialogPropType",function(){return p}),n.d(t,"wrap",function(){return h});n(11),n(19),n(27),n(34),n(95);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(16),c=n.n(l);function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var p=s.a.shape({props:s.a.shape({visible:s.a.bool,onOk:s.a.func,onCancel:s.a.func,afterClose:s.a.func}).isRequired,close:s.a.func.isRequired,dismiss:s.a.func.isRequired}),m={Promise:Promise,DialogPropType:p,wrap:function(){}};function f(e,t){var n={props:{visible:!0,onOk:()=>{},onCancel:()=>{},afterClose:()=>{}},close:()=>{},dismiss:()=>{}},a={resolve:()=>{},reject:()=>{}},i=document.createElement("div");function s(){c.a.render(o.a.createElement(e,d({},t,{dialog:n})),i)}function l(e){a.resolve(e),n.props.visible=!1,s()}function p(e){a.reject(e),n.props.visible=!1,s()}document.body.appendChild(i),n.props.onOk=l,n.props.onCancel=p,n.props.afterClose=function(){setTimeout(()=>{c.a.unmountComponentAtNode(i),document.body.removeChild(i)},10)},n.close=l,n.dismiss=p;var f={close:l,dismiss:p,update:e=>{t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){u(e,t,n[t])})}return e}({},t,e),s()},result:new m.Promise((e,t)=>{a.resolve=e,a.reject=t})};return s(),Object(r.isFunction)(f.result.suppressUnhandledRejections)&&f.result.suppressUnhandledRejections(),f}function h(e){return{Component:e,showModal:t=>f(e,t)}}m.wrap=h,t.default=m},,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"Query",function(){return g}),n.d(t,"isDynamicDate",function(){return P}),n.d(t,"isDynamicDateRange",function(){return C}),n.d(t,"getDynamicDate",function(){return k}),n.d(t,"getDynamicDateRange",function(){return _}),n.d(t,"Parameter",function(){return T}),n.d(t,"default",function(){return D});n(116),n(656),n(55),n(96),n(90),n(14),n(15),n(34),n(19),n(27),n(131),n(11);var r=n(9),a=n.n(r),o=n(98),i=n.n(o),s=n(290),l=n.n(s),c=n(2);function u(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t,n){return t&&f(e.prototype,t),n&&f(e,n),e}N.$inject=["$resource","$http","$location","$q","currentUser","QueryResultError","QueryResult"],q.$inject=["$q"],l.a.escape=c.identity;var g=null,b=i()("redash:services:query"),y={date:"YYYY-MM-DD","date-range":"YYYY-MM-DD","datetime-local":"YYYY-MM-DD HH:mm","datetime-range":"YYYY-MM-DD HH:mm","datetime-with-seconds":"YYYY-MM-DD HH:mm:ss","datetime-range-with-seconds":"YYYY-MM-DD HH:mm:ss"},v="d_",w={today:{name:"Today",value:()=>[a()().startOf("day"),a()().endOf("day")]},yesterday:{name:"Yesterday",value:()=>[a()().subtract(1,"day").startOf("day"),a()().subtract(1,"day").endOf("day")]},this_week:{name:"This week",value:()=>[a()().startOf("week"),a()().endOf("week")]},this_month:{name:"This month",value:()=>[a()().startOf("month"),a()().endOf("month")]},this_year:{name:"This year",value:()=>[a()().startOf("year"),a()().endOf("year")]},last_week:{name:"Last week",value:()=>[a()().subtract(1,"week").startOf("week"),a()().subtract(1,"week").endOf("week")]},last_month:{name:"Last month",value:()=>[a()().subtract(1,"month").startOf("month"),a()().subtract(1,"month").endOf("month")]},last_year:{name:"Last year",value:()=>[a()().subtract(1,"year").startOf("year"),a()().subtract(1,"year").endOf("year")]},last_7_days:{name:"Last 7 days",value:()=>[a()().subtract(7,"days"),a()()]}},O={now:{name:"Today/Now",value:()=>a()()},yesterday:{name:"Yesterday",value:()=>a()().subtract(1,"day")}};function j(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=parseFloat(e);return isFinite(n)?n:t}function E(e){return Object(c.isNull)(e)||Object(c.isUndefined)(e)||""===e||Object(c.isArray)(e)&&0===e.length}function S(e){return Object(c.includes)(["date","datetime-local","datetime-with-seconds"],e)}function x(e){return Object(c.includes)(["date-range","datetime-range","datetime-range-with-seconds"],e)}function P(e){return!!Object(c.startsWith)(e,v)&&!!O[e.substring(v.length)]}function C(e){return!!Object(c.startsWith)(e,v)&&!!w[e.substring(v.length)]}function k(e){return P(e)?O[e.substring(v.length)]:null}function _(e){return C(e)?w[e.substring(v.length)]:null}var T=function(){function e(t,n){m(this,e),this.title=t.title,this.name=t.name,this.type=t.type,this.useCurrentDateTime=t.useCurrentDateTime,this.global=t.global,this.enumOptions=t.enumOptions,this.multiValuesOptions=t.multiValuesOptions,this.queryId=t.queryId,this.parentQueryId=n,this.locals=[],this.setValue(t.value),Object.defineProperty(this,"urlPrefix",{configurable:!0,enumerable:!1,writable:!0,value:"p_"})}return h(e,[{key:"clone",value:function(){return new e(this,this.parentQueryId)}},{key:"getValue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.constructor.getValue(this,e)}},{key:"setValue",value:function(e){if("enum"===this.type){var t=this.enumOptions&&this.enumOptions.split("\n")||[];this.multiValuesOptions?(Object(c.isArray)(e)||(e=[e]),e=Object(c.intersection)(e,t)):e&&!Object(c.isArray)(e)&&Object(c.includes)(t,e)||(e=t[0])}if(x(this.type)){if(this.value=null,this.$$value=null,Object(c.isObject)(e)&&!Object(c.isArray)(e)&&(e=[e.start,e.end]),Object(c.isArray)(e)&&2===e.length)(e=[a()(e[0]),a()(e[1])])[0].isValid()&&e[1].isValid()&&(this.value={start:e[0].format(y[this.type]),end:e[1].format(y[this.type])},this.$$value=e);else if(C(e)){_(e,this.type)&&(this.value=e,this.$$value=e)}}else if(S(this.type)){if(this.value=null,this.$$value=null,P(e))k(e)&&(this.value=e,this.$$value=e);else(e=a()(e)).isValid()&&(this.value=e.format(y[this.type]),this.$$value=e)}else"number"===this.type?(this.value=e,this.$$value=j(e,null)):(this.value=e,this.$$value=e);return Object(c.isArray)(this.locals)&&Object(c.each)(this.locals,e=>{e.setValue(this.value)}),this.clearPendingValue(),this}},{key:"setPendingValue",value:function(e){this.pendingValue=e}},{key:"applyPendingValue",value:function(){this.hasPendingValue&&this.setValue(this.pendingValue)}},{key:"clearPendingValue",value:function(){this.setPendingValue(void 0)}},{key:"toUrlParams",value:function(){var e;if(this.isEmpty)return{};var t,n=this.urlPrefix;return x(this.type)&&Object(c.isObject)(this.value)?(p(t={},"".concat(n).concat(this.name,".start"),this.value.start),p(t,"".concat(n).concat(this.name,".end"),this.value.end),p(t,"".concat(n).concat(this.name),null),t):this.multiValuesOptions&&Object(c.isArray)(this.value)?p({},"".concat(n).concat(this.name),JSON.stringify(this.value)):(p(e={},"".concat(n).concat(this.name),this.value),p(e,"".concat(n).concat(this.name,".start"),null),p(e,"".concat(n).concat(this.name,".end"),null),e)}},{key:"fromUrlParams",value:function(e){var t=this.urlPrefix;if(x(this.type)){var n="".concat(t).concat(this.name),r="".concat(t).concat(this.name,".start"),a="".concat(t).concat(this.name,".end");Object(c.has)(e,n)?this.setValue(e[n]):Object(c.has)(e,r)&&Object(c.has)(e,a)&&this.setValue([e[r],e[a]])}else{var o="".concat(t).concat(this.name);if(Object(c.has)(e,o))if(this.multiValuesOptions)try{this.setValue(JSON.parse(e[o]))}catch(t){this.setValue(e[o])}else this.setValue(e[o])}}},{key:"toQueryTextFragment",value:function(){return x(this.type)?"{{ ".concat(this.name,".start }} {{ ").concat(this.name,".end }}"):"{{ ".concat(this.name," }}")}},{key:"loadDropdownValues",value:function(){return this.parentQueryId?g.associatedDropdown({queryId:this.parentQueryId,dropdownQueryId:this.queryId}).$promise:g.asDropdown({id:this.queryId}).$promise}},{key:"isEmpty",get:function(){return Object(c.isNull)(this.getValue())}},{key:"hasDynamicValue",get:function(){return S(this.type)?P(this.value):!!x(this.type)&&C(this.value)}},{key:"dynamicValue",get:function(){return S(this.type)?k(this.value):!!x(this.type)&&_(this.value)}},{key:"hasPendingValue",get:function(){var e=E(this.pendingValue)?null:this.pendingValue,t=E(this.value)?null:this.value;return void 0!==this.pendingValue&&e!==t}},{key:"normalizedValue",get:function(){return this.$$value}},{key:"ngModel",get:function(){return this.normalizedValue},set:function(e){this.setValue(e)}}],[{key:"getValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.value,r=e.type,o=e.useCurrentDateTime,i=e.multiValuesOptions;if(x(r)&&e.hasDynamicValue){var s=e.dynamicValue;if(s){var l=s.value();return{start:l[0].format(y[r]),end:l[1].format(y[r])}}return null}if(S(r)&&e.hasDynamicValue){var u=e.dynamicValue;return u?u.value().format(y[r]):null}if(E(n))return Object(c.includes)(["date","datetime-local","datetime-with-seconds"],r)&&o?a()().format(y[r]):null;if("number"===r)return j(n,null);var d=t.joinListValues;if(Object(c.includes)(["enum","query"],r)&&i&&Object(c.isArray)(n)&&d){var p=Object(c.get)(i,"separator",","),m=Object(c.get)(i,"prefix",""),f=Object(c.get)(i,"suffix",""),h=Object(c.map)(n,e=>"".concat(m).concat(e).concat(f));return Object(c.join)(h,p)}return n}}]),e}(),$=function(){function e(t,n){m(this,e),this.query=t,this.updateParameters(),this.initFromQueryString(n)}return h(e,[{key:"parseQuery",value:function(){var e=()=>Object(c.map)(this.query.options.parameters,e=>e.name),t=[];if(void 0!==this.query.query)try{var n=l.a.parse(this.query.query);t=Object(c.uniq)(function e(t){var n=[];return t.forEach(t=>{"name"===t[0]||"&"===t[0]?n.push(t[1].split(".")[0]):"#"===t[0]&&(n=Object(c.union)(n,e(t[4])))}),n}(n))}catch(n){b("Failed parsing parameters: ",n),t=e()}else t=e();return t}},{key:"updateParameters",value:function(e){if(!this.query.query||this.query.query!==this.cachedQueryText){this.cachedQueryText=this.query.query;var t=e?this.parseQuery():Object(c.map)(this.query.options.parameters,e=>e.name);this.query.options.parameters=this.query.options.parameters||[];var n={};this.query.options.parameters.forEach(e=>{n[e.name]=e}),t.forEach(e=>{Object(c.has)(n,e)||this.query.options.parameters.push(new T({title:e,name:e,type:"text",value:null,global:!1}))});var r=this.query.options.parameters;this.query.options.parameters=r.filter(e=>Object(c.includes)(t,e.name)).map(e=>e instanceof T?e:new T(e,this.query.id))}}},{key:"initFromQueryString",value:function(e){this.get().forEach(t=>{t.fromUrlParams(e)})}},{key:"get",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.updateParameters(e),this.query.options.parameters}},{key:"add",value:function(e){this.query.options.parameters=this.query.options.parameters.filter(t=>t.name!==e.name);var t=new T(e);return this.query.options.parameters.push(t),t}},{key:"getMissing",value:function(){return Object(c.map)(Object(c.filter)(this.get(),e=>e.isEmpty),e=>e.title)}},{key:"isRequired",value:function(){return!Object(c.isEmpty)(this.get())}},{key:"getValues",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.get();return Object(c.zipObject)(Object(c.map)(t,e=>e.name),Object(c.map)(t,t=>t.getValue(e)))}},{key:"hasPendingValues",value:function(){return Object(c.some)(this.get(),e=>e.hasPendingValue)}},{key:"applyPendingValues",value:function(){Object(c.each)(this.get(),e=>e.applyPendingValue())}},{key:"toUrlParams",value:function(){if(0===this.get().length)return"";var e=d.apply(void 0,u(this.get().map(e=>e.toUrlParams())));return Object.keys(e).forEach(t=>null==e[t]&&delete e[t]),Object.keys(e).map(t=>"".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(e[t]))).join("&")}}]),e}();function q(e){return function(){function t(e){m(this,t),this.errorMessage=e,this.updatedAt=a.a.utc()}return h(t,[{key:"getUpdatedAt",value:function(){return this.updatedAt}},{key:"getError",value:function(){return this.errorMessage}},{key:"toPromise",value:function(){return e.reject(this)}},{key:"getStatus",value:function(){return"failed"}},{key:"getData",value:function(){return null}},{key:"getLog",value:function(){return null}}]),t}()}function N(e,t,n,r,o,i,s){var l=e("api/queries/:id",{id:"@id"},{recent:{method:"get",isArray:!0,url:"api/queries/recent"},archive:{method:"get",isArray:!1,url:"api/queries/archive"},query:{isArray:!1},myQueries:{method:"get",isArray:!1,url:"api/queries/my"},fork:{method:"post",isArray:!1,url:"api/queries/:id/fork",params:{id:"@id"}},resultById:{method:"get",isArray:!1,url:"api/queries/:id/results.json"},asDropdown:{method:"get",isArray:!0,url:"api/queries/:id/dropdown"},associatedDropdown:{method:"get",isArray:!0,url:"api/queries/:queryId/dropdowns/:dropdownQueryId"},favorites:{method:"get",isArray:!1,url:"api/queries/favorites"},favorite:{method:"post",isArray:!1,url:"api/queries/:id/favorite",transformRequest:[()=>""]},unfavorite:{method:"delete",isArray:!1,url:"api/queries/:id/favorite",transformRequest:[()=>""]}});return l.newQuery=function(){return new l({query:"",name:"New Query",schedule:null,user:o,options:{}})},l.format=function(e,n){if("json"!==e)return"sql"===e?t.post("api/queries/format",{query:n}).then(e=>e.data.query):r.reject("Query formatting is not supported for your data source syntax.");try{var a=JSON.stringify(JSON.parse(n)," ",4);return r.resolve(a)}catch(e){return r.reject(String(e))}},l.prototype.getSourceLink=function(){return"/queries/".concat(this.id,"/source")},l.prototype.isNew=function(){return void 0===this.id},l.prototype.hasDailySchedule=function(){return this.schedule&&null!==this.schedule.match(/\d\d:\d\d/)},l.prototype.scheduleInLocalTime=function(){var e=this.schedule.split(":");return a.a.utc().hour(e[0]).minute(e[1]).local().format("HH:mm")},l.prototype.hasResult=function(){return!(!this.latest_query_data&&!this.latest_query_data_id)},l.prototype.paramsRequired=function(){return this.getParameters().isRequired()},l.prototype.hasParameters=function(){return this.getParametersDefs().length>0},l.prototype.prepareQueryResultExecution=function(e,t){var n=this.getParameters(),r=n.getMissing();if(r.length>0){var a="parameter",o="value";return r.length>1&&(a="parameters",o="values"),new s({job:{error:"missing ".concat(o," for ").concat(r.join(", ")," ").concat(a,"."),status:4}})}return n.isRequired()&&(this.latest_query_data=null,this.latest_query_data_id=null),this.latest_query_data&&0!==t?this.queryResult||(this.queryResult=new s({query_result:this.latest_query_data})):this.latest_query_data_id&&0!==t?this.queryResult||(this.queryResult=s.getById(this.id,this.latest_query_data_id)):this.queryResult=e(),this.queryResult},l.prototype.getQueryResult=function(e){return this.prepareQueryResultExecution(()=>s.getByQueryId(this.id,this.getParameters().getValues(),e),e)},l.prototype.getQueryResultByText=function(e,t){var n=t||this.query;if(!n)return new i("Can't execute empty query.");var r=this.getParameters().getValues({joinListValues:!0});return this.prepareQueryResultExecution(()=>s.get(this.data_source_id,n,r,e,this.id),e)},l.prototype.getUrl=function(e,t){var n="queries/".concat(this.id);e&&(n+="/source");var r={};return this.getParameters().isRequired()&&this.getParametersDefs().forEach(e=>{Object(c.extend)(r,e.toUrlParams())}),Object.keys(r).forEach(e=>null==r[e]&&delete r[e]),""!==(r=Object(c.map)(r,(e,t)=>"".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(e))).join("&"))&&(n+="?".concat(r)),t&&(n+="#".concat(t)),n},l.prototype.getQueryResultPromise=function(){return this.getQueryResult().toPromise()},l.prototype.getParameters=function(){return this.$parameters||(this.$parameters=new $(this,n.search())),this.$parameters},l.prototype.getParametersDefs=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.getParameters().get(e)},l}function D(e){e.factory("QueryResultError",q),e.factory("Query",N),e.run(["$injector",e=>{g=e.get("Query")}])}D.init=!0},,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"DataSource",function(){return l}),n.d(t,"Table",function(){return c}),n.d(t,"Schema",function(){return u}),n.d(t,"RefreshScheduleType",function(){return d}),n.d(t,"RefreshScheduleDefault",function(){return p}),n.d(t,"Field",function(){return m}),n.d(t,"Action",function(){return f}),n.d(t,"AntdForm",function(){return h}),n.d(t,"UserProfile",function(){return g}),n.d(t,"Moment",function(){return y});var r=n(1),a=n.n(r),o=n(2),i=n(9),s=n.n(i),l=a.a.shape({syntax:a.a.string,options:a.a.shape({doc:a.a.string,doc_url:a.a.string}),type_name:a.a.string}),c=a.a.shape({columns:a.a.arrayOf(a.a.string).isRequired}),u=a.a.arrayOf(c),d=a.a.shape({interval:a.a.number,time:a.a.string,day_of_week:a.a.string,until:a.a.string}),p={interval:null,time:null,day_of_week:null,until:null},m=a.a.shape({name:a.a.string.isRequired,title:a.a.string,type:a.a.oneOf(["ace","text","textarea","email","password","number","checkbox","file","select","content"]).isRequired,initialValue:a.a.oneOfType([a.a.string,a.a.number,a.a.bool,a.a.arrayOf(a.a.string),a.a.arrayOf(a.a.number)]),content:a.a.node,mode:a.a.string,required:a.a.bool,readOnly:a.a.bool,autoFocus:a.a.bool,minLength:a.a.number,placeholder:a.a.string,contentAfter:a.a.oneOfType([a.a.node,a.a.func]),loading:a.a.bool,props:a.a.object}),f=a.a.shape({name:a.a.string.isRequired,callback:a.a.func.isRequired,type:a.a.string,pullRight:a.a.bool,disabledWhenDirty:a.a.bool}),h=a.a.shape({validateFieldsAndScroll:a.a.func}),g=a.a.shape({id:a.a.number.isRequired,name:a.a.string.isRequired,email:a.a.string.isRequired,profileImageUrl:a.a.string,apiKey:a.a.string,isDisabled:a.a.bool});function b(e,t,n,r){var a=t[n],o=e&&null!=a&&s.a.isMoment(a),i=!e&&(null==a||s.a.isMoment(a));if(!o&&!i)return new Error("Prop `"+n+"` supplied to `"+r+"` should be a Moment.js instance.")}var y=Object(o.wrap)(!1,b);y.isRequired=Object(o.wrap)(!0,b)},function(e,t,n){"use strict";n.r(t),n.d(t,"IntervalEnum",function(){return s}),n.d(t,"localizeTime",function(){return l}),n.d(t,"secondsToInterval",function(){return c}),n.d(t,"intervalToSeconds",function(){return u}),n.d(t,"pluralize",function(){return d}),n.d(t,"durationHumanize",function(){return p}),n.d(t,"toHuman",function(){return m}),n.d(t,"colWidth",function(){return f}),n.d(t,"capitalize",function(){return h}),n.d(t,"remove",function(){return g}),n.d(t,"notEmpty",function(){return b}),n.d(t,"showError",function(){return y}),n.d(t,"prettySize",function(){return w}),n.d(t,"join",function(){return O});n(14),n(15),n(11),n(114),n(131);var r=n(9),a=n.n(r),o=n(2);function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var s={NEVER:"Never",SECONDS:"second",MINUTES:"minute",HOURS:"hour",DAYS:"day",WEEKS:"week"};function l(e){var t=i(e.split(":"),2),n=t[0],r=t[1];return a.a.utc().hour(n).minute(r).local().format("HH:mm")}function c(e){if(!e)return{interval:s.NEVER};var t=s.SECONDS;return e>=60&&(e/=60,t=s.MINUTES),e>=60&&(e/=60,t=s.HOURS),e>=24&&t===s.HOURS&&(e/=24,t=s.DAYS),e>=7&&!(e%7)&&t===s.DAYS&&(e/=7,t=s.WEEKS),{count:e,interval:t}}function u(e,t){var n=0;switch(t){case s.MINUTES:n=60;break;case s.HOURS:n=3600;break;case s.DAYS:n=86400;break;case s.WEEKS:n=604800;break;default:return null}return n*e}function d(e,t){return e+(1!==t?"s":"")}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return"-";var n="",r=c(e),a=r.interval,o=r.count,i=Math.round(o);return 1===i&&t.omitSingleValueNumber||(n="".concat(i," ")),n+=d(a,i)}function m(e){return e.replace(/_/g," ").replace(/(?:^|\s)\S/g,e=>e.toUpperCase())}function f(e){return 0===e?0:1===e?6:2===e?12:e}function h(e){return e?Object(o.capitalize)(e):null}function g(e,t){if(void 0===e)return e;var n;n=t instanceof Array?e=>-1===t.indexOf(e):e=>t!==e;for(var r=[],a=0;a<e.length;a+=1)n(e[a])&&r.push(e[a]);return r}function b(e){return!Object(o.isEmpty)(e)}function y(e){return void 0!==e&&(e.$touched&&e.$invalid)}var v=["bytes","KB","MB","GB","TB","PB"];function w(e){if(isNaN(parseFloat(e))||!isFinite(e))return"?";for(var t=0;e>=1024;)e/=1024,t+=1;return e.toFixed(3)+" "+v[t]}function O(e){return null==e?"":e.join(" / ")}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});n(34);var r=n(0),a=n.n(r),o=n(78);function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function s(e){return a.a.createElement("div",{className:"text-center"},a.a.createElement(o.BigMessage,i({icon:"fa-spinner fa-2x fa-pulse",message:"Loading..."},e)))}},,function(e,t,n){"use strict";n.d(t,"b",function(){return s}),n.d(t,"a",function(){return l});n(11),n(19),n(27),n(221);var r=n(2);function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){o(e,t,n[t])})}return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function s(e,t){var n={};return t=Object(r.extend)({},t),Object(r.each)(e,e=>{var o=e.path,s=e.title,l=e.key,c=i(e,["path","title","key"]);Object(r.each)(c,(e,t)=>{c[t]=(()=>e)}),n[o]=a({},t,{title:s,resolve:a({},t.resolve,c,{currentPage:()=>l})})}),n}function l(e){var t=e=>(Object(r.each)(e,(n,a)=>{(""+a).startsWith("$$")?delete e[a]:e[a]=Object(r.isObject)(n)?t(n):n}),e),n=Object(r.cloneDeep)(e);return Object(r.isObject)(n)?t(n):n}},function(e,t,n){"use strict";n.r(t),n.d(t,"ControllerType",function(){return O}),n.d(t,"wrap",function(){return j});n(14),n(15),n(11),n(19),n(27),n(29);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(459),c=n.n(l),u=n(22),d=n(10),p=n(68);function m(e){return(m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){w(e,t,n[t])})}return e}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e,t){return!t||"object"!==m(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var O=s.a.shape({params:s.a.object.isRequired,isLoaded:s.a.bool.isRequired,isEmpty:s.a.bool.isRequired,searchTerm:s.a.string,updateSearch:s.a.func.isRequired,selectedTags:s.a.array.isRequired,updateSelectedTags:s.a.func.isRequired,orderByField:s.a.string,orderByReverse:s.a.bool.isRequired,toggleSorting:s.a.func.isRequired,page:s.a.number.isRequired,itemsPerPage:s.a.number.isRequired,totalItemsCount:s.a.number.isRequired,pageSizeOptions:s.a.arrayOf(s.a.number).isRequired,pageItems:s.a.array.isRequired,updatePagination:s.a.func.isRequired,handleError:s.a.func.isRequired});function j(e,t,n){var a=function(a){function i(e){var a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),a=b(this,y(i).call(this,e)),n=n||new p.StateStorage,t.setState(h({},n.getState(),{validate:!1})),t.getCallbackContext=(()=>a.state),t.onBeforeUpdate=(()=>{var e=t.getState();n.setState(e),a.setState(a.getState(h({},e,{isLoaded:!1})))}),t.onAfterUpdate=(()=>{var e=t.getState();a.setState(a.getState(h({},e,{isLoaded:!0})))}),t.onError=(e=>a.props.onError(e));var o=a.getState(h({},t.getState(),{isLoaded:!1})),s=t.updatePagination,l=t.toggleSorting,c=t.updateSearch,u=t.updateSelectedTags,d=t.update,m=t.handleError;return a.state=h({},o,{toggleSorting:l,updateSearch:Object(r.debounce)(c,200),updateSelectedTags:u,updatePagination:s,update:d,handleError:m}),a}var s,l,c;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(i,o.a.Component),s=i,(l=[{key:"componentDidMount",value:function(){this.state.update()}},{key:"componentWillUnmount",value:function(){t.onBeforeUpdate=(()=>{}),t.onAfterUpdate=(()=>{}),t.onError=(()=>{})}},{key:"getState",value:function(e){var t=e.isLoaded,n=e.totalCount,a=e.pageItems,o=e.params,i=f(e,["isLoaded","totalCount","pageItems","params"]);return o=h({},o,{title:u.$route.current.title},u.$routeParams,Object(r.omit)(u.$route.current.locals,["$scope","$template"]),Object(r.omit)(this.props,["onError","children"])),h({},i,{params:o,isLoaded:t,isEmpty:!t||0===n,totalItemsCount:t?n:0,pageSizeOptions:d.clientConfig.pageSizeOptions,pageItems:t?a:[]})}},{key:"render",value:function(){var t=this.props,n=t.children,r=(t.onError,f(t,["children","onError"]));return r.controller=this.state,o.a.createElement(e,r,n)}}])&&g(s.prototype,l),c&&g(s,c),i}();return w(a,"propTypes",h({},Object(r.omit)(e.propTypes,["controller"]),{onError:s.a.func,children:s.a.node})),w(a,"defaultProps",h({},Object(r.omit)(e.defaultProps,["controller"]),{onError:e=>{setTimeout(()=>{throw e})},children:null})),c()(a,e),a}},,function(e,t,n){"use strict";n.d(t,"d",function(){return u}),n.d(t,"b",function(){return d}),n.d(t,"a",function(){return p}),n.d(t,"c",function(){return m}),n.d(t,"e",function(){return f});n(114);var r=n(9),a=n.n(r),o=n(174),i=n.n(o),s=n(2);i.a.options.scalePercentBy100=!1;var l=/(^|[\s\n]|<br\/?>)((?:https?|ftp):\/\/[\-A-Z0-9+\u0026\u2019@#\/%?=()~_|!:,.;]*[\-A-Z0-9+\u0026@#\/%=~()_|])/gi,c=Object.prototype.hasOwnProperty;function u(e){return e?e=>(Object(s.isString)(e)&&(e=e.replace(l,'$1<a href="$2" target="_blank">$2</a>')),Object(s.toString)(e)):e=>Object(s.toString)(e)}function d(e){return Object(s.isString)(e)&&""!==e?t=>t&&a.a.isMoment(t)?t.format(e):Object(s.toString)(t):e=>Object(s.toString)(e)}function p(e){if(Object(s.isArray)(e)){if(e.length>=2)return t=>Object(s.isNil)(t)?"":""+e[t?1:0];if(1===e.length)return t=>t?e[0]:""}return e=>Object(s.isNil)(e)?"":e?"true":"false"}function m(e){if(Object(s.isString)(e)&&""!==e){var t=i()(0);return n=>null===n||""===n?"":t.set(n).format(e)}return e=>Object(s.toString)(e)}function f(e,t){return Object(s.isString)(e)?e.replace(/{{\s*([^\s]+?)\s*}}/g,(e,n)=>c.call(t,n)&&!Object(s.isUndefined)(t[n])?t[n]:e):""}},function(e,t,n){"use strict";n.r(t),n.d(t,"policy",function(){return r}),n.d(t,"setPolicy",function(){return a});var r=new(n(475).default);function a(e){r=e}},function(e,t,n){"use strict";n.r(t),n.d(t,"User",function(){return s}),n.d(t,"default",function(){return b});var r=n(2),a=n(22),o=n(12),i=n(10);g.$inject=["$resource"];var s=null;function l(e){return"api/users/".concat(e.id,"/disable")}function c(e){var t=Object(a.$sanitize)(e.name);return a.$http.delete(l(e)).then(n=>(o.default.success("User ".concat(t," is now enabled.")),e.is_disabled=!1,e.profile_image_url=n.data.profile_image_url,n)).catch(e=>{var t=Object(r.get)(e,"data.message",e.statusText);Object(r.isString)(t)||(t="Unknown error"),o.default.error("Cannot enable user",t)})}function u(e){var t=Object(a.$sanitize)(e.name);return a.$http.post(l(e)).then(n=>(o.default.warning("User ".concat(t," is now disabled.")),e.is_disabled=!0,e.profile_image_url=n.data.profile_image_url,n)).catch(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(r.get)(e,"data.message",e.statusText);o.default.error("Cannot disable user",t)})}function d(e){var t=Object(a.$sanitize)(e.name);return a.$http.delete("api/users/".concat(e.id)).then(e=>(o.default.warning("User ".concat(t," has been deleted.")),e)).catch(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(r.get)(e,"data.message",e.statusText);o.default.error("Cannot delete user",t)})}function p(e){return{id:e.id,name:e.name,email:e.email,profileImageUrl:e.profile_image_url,apiKey:e.api_key,groupIds:e.groups,isDisabled:e.is_disabled,isInvitationPending:e.is_invitation_pending}}function m(e){return a.$http.post("api/users/".concat(e.id,"/regenerate_api_key")).then(e=>{var t=e.data;return o.default.success("The API Key has been updated."),t.api_key}).catch(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(r.get)(e,"data.message",e.statusText);o.default.error("Failed regenerating API Key",t)})}function f(e){return a.$http.post("api/users/".concat(e.id,"/reset_password")).then(e=>{var t=e.data;if(i.clientConfig.mailSettingsMissing)return o.default.warning("The mail server is not configured."),t.reset_link;o.default.success("Password reset email sent.")}).catch(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(r.get)(e,"data.message",e.statusText);o.default.error("Failed to send password reset email",t)})}function h(e){return a.$http.post("api/users/".concat(e.id,"/invite")).then(e=>{var t=e.data;if(i.clientConfig.mailSettingsMissing)return o.default.warning("The mail server is not configured."),t.invite_link;o.default.success("Invitation sent.")}).catch(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(r.get)(e,"data.message",e.statusText);o.default.error("Failed to resend invitation",t)})}function g(e){var t=e("api/users/:id",{id:"@id"},{get:{method:"GET"},create:{method:"POST"},save:{method:"POST"},query:{method:"GET",isArray:!1},delete:{method:"DELETE"},disable:{method:"POST",url:"api/users/:id/disable"},enable:{method:"DELETE",url:"api/users/:id/disable"}});return t.enableUser=c,t.disableUser=u,t.deleteUser=d,t.convertUserInfo=p,t.regenerateApiKey=m,t.sendPasswordReset=f,t.resendInvitation=h,t}function b(e){e.factory("User",g),e.run(["$injector",e=>{s=e.get("User")}])}b.init=!0},function(e,t,n){"use strict";t.a={columns:6,rowHeight:50,margins:15,mobileBreakPoint:800,defaultSizeX:3,defaultSizeY:3,minSizeX:1,maxSizeX:6,minSizeY:1,maxSizeY:1e3}},,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return o});n(114);var r=n(2),a=n(22);function o(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(Object(r.isString)(e)){if(!n)var o=a.$route.current,i=a.$rootScope.$on("$locationChangeSuccess",()=>{a.$route.current=o,i()});a.$location.url(e),t&&a.$location.replace(),a.$rootScope.$applyAsync()}}},,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});var r=n(2),a=n(22),o=[],i=Object(r.debounce)(()=>{var e=o;o=[],a.$http.post("api/events",e)},1e3);function s(e,t,n,a){var s={action:e,object_type:t,object_id:n,timestamp:Date.now()/1e3,screen_resolution:"".concat(window.screen.width,"x").concat(window.screen.height)};Object(r.extend)(s,a),o.push(s),i()}},,function(e,t,n){"use strict";n.r(t),n.d(t,"Group",function(){return r}),n.d(t,"default",function(){return o}),a.$inject=["$resource"];var r={};function a(e){return e("api/groups/:id",{id:"@id"},{get:{method:"GET",cache:!1,isArray:!1},query:{method:"GET",cache:!1,isArray:!0},members:{method:"GET",cache:!1,isArray:!0,url:"api/groups/:id/members"},addMember:{method:"POST",url:"api/groups/:id/members"},removeMember:{method:"DELETE",url:"api/groups/:id/members/:userId"},dataSources:{method:"GET",cache:!1,isArray:!0,url:"api/groups/:id/data_sources"},addDataSource:{method:"POST",url:"api/groups/:id/data_sources"},removeDataSource:{method:"DELETE",url:"api/groups/:id/data_sources/:dataSourceId"},updateDataSource:{method:"POST",url:"api/groups/:id/data_sources/:dataSourceId"}})}function o(e){e.factory("Group",a),e.run(["$injector",e=>{r=e.get("Group")}])}o.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"SearchInput",function(){return g}),n.d(t,"Menu",function(){return b}),n.d(t,"MenuIcon",function(){return y}),n.d(t,"ProfileImage",function(){return v}),n.d(t,"Tags",function(){return w}),n.d(t,"PageSizeSelect",function(){return O});n(11),n(19),n(27);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(3),c=n.n(l),u=n(31),d=n.n(u),p=n(26),m=n.n(p),f=n(474);function h(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function g(e){var t=e.placeholder,n=e.value,r=e.showIcon,a=e.onChange,i=r?d.a.Search:d.a;return o.a.createElement("div",{className:"m-b-10"},o.a.createElement(i,{className:"form-control",placeholder:t,defaultValue:n,onChange:e=>a(e.target.value),autoFocus:!0}))}function b(e){var t=e.items,n=e.selected;return 0===(t=Object(r.filter)(t,e=>!Object(r.isFunction)(e.isAvailable)||e.isAvailable())).length?null:o.a.createElement("div",{className:"list-group m-b-10 tags-list tiled"},Object(r.map)(t,e=>o.a.createElement("a",{key:e.key,href:e.href,className:c()("list-group-item",{active:n===e.key})},Object(r.isString)(e.icon)&&""!==e.icon&&o.a.createElement("span",{className:"btn-favourite m-r-5"},o.a.createElement("i",{className:e.icon,"aria-hidden":"true"})),Object(r.isFunction)(e.icon)&&(e.icon(e)||null),e.title)))}function y(e){var t=e.icon;return o.a.createElement("span",{className:"btn-favourite m-r-5"},o.a.createElement("i",{className:t,"aria-hidden":"true"}))}function v(e){var t=e.user;return Object(r.isString)(t.profile_image_url)&&""!==t.profile_image_url?o.a.createElement("img",{src:t.profile_image_url,className:"profile__image--navbar m-r-5",width:"13",alt:t.name}):null}function w(e){var t=e.url,n=e.onChange;return""===t?null:o.a.createElement("div",{className:"m-b-10"},o.a.createElement(f.TagsList,{tagsUrl:t,onUpdate:n}))}function O(e){var t=e.options,n=e.value,a=e.onChange,i=h(e,["options","value","onChange"]);return o.a.createElement("div",i,o.a.createElement(m.a,{className:"w-100",defaultValue:n,onChange:a},Object(r.map)(t,e=>o.a.createElement(m.a.Option,{key:e,value:e},e," results"))))}g.propTypes={placeholder:s.a.string,value:s.a.string.isRequired,showIcon:s.a.bool,onChange:s.a.func.isRequired},g.defaultProps={placeholder:"Search...",showIcon:!1},b.propTypes={items:s.a.arrayOf(s.a.shape({key:s.a.string.isRequired,href:s.a.string.isRequired,title:s.a.string.isRequired,icon:s.a.func,isAvailable:s.a.func})),selected:s.a.string},b.defaultProps={items:[],selected:null},y.propTypes={icon:s.a.string.isRequired},v.propTypes={user:s.a.shape({profile_image_url:s.a.string,name:s.a.string}).isRequired},w.propTypes={url:s.a.string.isRequired,onChange:s.a.func.isRequired},O.propTypes={options:s.a.arrayOf(s.a.number).isRequired,value:s.a.number.isRequired,onChange:s.a.func.isRequired}},,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"StateStorage",function(){return g}),n.d(t,"UrlStateStorage",function(){return b});n(14),n(15),n(669),n(29),n(11),n(19),n(27),n(116);var r=n(2),a=n(10),o=n(22),i=n(203);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e,t){return!t||"object"!==s(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function c(e,t,n){return(c="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=u(e)););return e}(e,t);if(r){var a=Object.getOwnPropertyDescriptor(r,t);return a.get?a.get.call(n):a.value}})(e,t,n||e)}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t,n){return t&&f(e.prototype,t),n&&f(e,n),e}var g=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};m(this,e),this._state=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){p(e,t,n[t])})}return e}({},t)}return h(e,[{key:"getState",value:function(){return Object(r.defaults)(this._state,{page:1,itemsPerPage:a.clientConfig.pageSize,orderByField:"created_at",orderByReverse:!1,searchTerm:"",tags:[]})}},{key:"setState",value:function(){}}]),e}(),b=function(e){function t(){return m(this,t),l(this,u(t).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(t,g),h(t,[{key:"getState",value:function(){var e=c(u(t.prototype),"getState",this).call(this),n=o.$location.search(),r=n.q||"",a=""!==r?"":Object(i.compile)(e.orderByField,e.orderByReverse),s=Object(i.parse)(n.order||a),l=s.field,d=s.reverse;return{page:parseInt(n.page,10)||e.page,itemsPerPage:parseInt(n.page_size,10)||e.itemsPerPage,orderByField:l,orderByReverse:d,searchTerm:r}}},{key:"setState",value:function(e){var t=e.page,n=e.itemsPerPage,r=e.orderByField,a=e.orderByReverse,s=e.searchTerm;o.$location.search({page:t,page_size:n,order:Object(i.compile)(r,a),q:""!==s?s:null})}}]),t}()},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return h});n(34),n(11),n(19),n(27);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(3),l=n.n(s);n(1360);function c(){return(c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function u(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d={className:i.a.string,children:i.a.node},p={className:null,children:null};function m(e){var t=e.className,n=e.children,r=u(e,["className","children"]);return a.a.createElement("div",c({className:l()("layout-sidebar",t)},r),a.a.createElement("div",null,n))}function f(e){var t=e.className,n=e.children,r=u(e,["className","children"]);return a.a.createElement("div",c({className:l()("layout-content",t)},r),a.a.createElement("div",null,n))}function h(e){var t=e.className,n=e.children,r=u(e,["className","children"]);return a.a.createElement("div",c({className:l()("layout-with-sidebar",t)},r),n)}m.propTypes=d,m.defaultProps=p,f.propTypes=d,f.defaultProps=p,h.propTypes=d,h.defaultProps=p,h.Sidebar=m,h.Content=f},function(e,t,n){"use strict";n.d(t,"a",function(){return l});n(55),n(96),n(655),n(14),n(15),n(29);function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function s(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}var l=function(e){function t(e){var n,r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),void 0!==e.status&&(404===e.status?r="It seems like the page you're looking for cannot be found.":403===e.status||401===e.status?r="It seems like you don’t have permission to see this page.":e.data&&e.data.error&&(r=e.data.error)),void 0===r&&(r="It seems like we encountered an error. Try refreshing this page or contact your administrator."),(n=a(this,o(t).call(this,r))).rejection=e,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}(t,s(Error)),t}()},function(e,t,n){"use strict";n.r(t),n.d(t,"cleanNumber",function(){return l}),n.d(t,"getSeriesAxis",function(){return c}),n.d(t,"normalizeValue",function(){return u});var r=n(2),a=n(9),o=n.n(a),i=n(498),s=n.n(i);function l(e){return Object(r.isUndefined)(e)?e:s()(e)}function c(e,t){var n=t.seriesOptions[e.name]||{type:t.globalSeriesType};return 1!==n.yAxis||t.series.stacking&&"line"!==n.type?"y":"y2"}function u(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"YYYY-MM-DD HH:mm:ss";return"datetime"===t&&o.a.utc(e).isValid()&&(e=o.a.utc(e)),o.a.isMoment(e)?e.format(n):e}},,,,function(e,t,n){"use strict";n.r(t),n.d(t,"Paginator",function(){return u}),n.d(t,"default",function(){return d});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(17),l=n(227),c=n.n(l);function u(e){var t=e.page,n=e.itemsPerPage,r=e.totalCount,o=e.onChange;return r<=n?null:a.a.createElement("div",{className:"paginator-container"},a.a.createElement(c.a,{defaultCurrent:t,defaultPageSize:n,total:r,onChange:o}))}function d(e){e.component("paginatorImpl",Object(s.react2angular)(u)),e.component("paginator",{template:'\n <paginator-impl\n page="$ctrl.paginator.page"\n items-per-page="$ctrl.paginator.itemsPerPage"\n total-count="$ctrl.paginator.totalCount"\n on-change="$ctrl.onPageChanged"\n ></paginator-impl>',bindings:{paginator:"<"},controller:["$scope",function(e){this.onPageChanged=(t=>{this.paginator.setPage(t),e.$applyAsync()})}]})}u.propTypes={page:i.a.number.isRequired,itemsPerPage:i.a.number.isRequired,totalCount:i.a.number.isRequired,onChange:i.a.func},u.defaultProps={onChange:()=>{}},d.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"ItemsSource",function(){return y}),n.d(t,"ResourceItemsSource",function(){return v});n(14),n(15),n(29),n(11),n(19),n(27),n(95);var r=n(2),a=n(482),o=n(203),i=n(70),s=n(351);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){b(e,t,n[t])})}return e}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function g(e,t,n){return t&&h(e.prototype,t),n&&h(e,n),e}function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=function(){function e(t){var n=t.getRequest,a=t.doRequest,o=t.processResults,l=t.isPlainList,c=void 0!==l&&l,u=p(t,["getRequest","doRequest","processResults","isPlainList"]);f(this,e),b(this,"onBeforeUpdate",null),b(this,"onAfterUpdate",null),b(this,"onError",null),b(this,"getCallbackContext",()=>null),b(this,"updatePagination",e=>{var t=e.page,n=e.itemsPerPage,r=this._paginator,a=r.page,o=r.itemsPerPage;this._paginator.setItemsPerPage(n),this._paginator.setPage(t),this._changed({pagination:{page:a!==this._paginator.page,itemsPerPage:o!==this._paginator.itemsPerPage}})}),b(this,"toggleSorting",e=>{this._sorter.toggleField(e),this._savedOrderByField=this._sorter.field,this._changed({sorting:!0})}),b(this,"updateSearch",e=>{this._searchTerm=e,""===e?this._sorter.setField(this._savedOrderByField):this._sorter.setField(null),this._paginator.setPage(1),this._changed({search:!0,pagination:{page:!0}})}),b(this,"updateSelectedTags",e=>{this._selectedTags=e,this._paginator.setPage(1),this._changed({tags:!0,pagination:{page:!0}})}),b(this,"update",()=>this._changed()),b(this,"handleError",e=>{Object(r.isFunction)(this.onError)&&(e.status&&e.data&&(e=new i.a(e)),this.onError(e))}),Object(r.isFunction)(n)||(n=r.identity),this._fetcher=c?new s.PlainListFetcher({getRequest:n,doRequest:a,processResults:o}):new s.PaginatedListFetcher({getRequest:n,doRequest:a,processResults:o}),this.setState(u),this._pageItems=[],this._params={}}return g(e,[{key:"_beforeUpdate",value:function(){return Object(r.isFunction)(this.onBeforeUpdate)?Promise.resolve(this.onBeforeUpdate(this.getState(),this.getCallbackContext())):Promise.resolve()}},{key:"_afterUpdate",value:function(){return Object(r.isFunction)(this.onAfterUpdate)?Promise.resolve(this.onAfterUpdate(this.getState(),this.getCallbackContext())):Promise.resolve()}},{key:"_changed",value:function(e){var t={paginator:this._paginator,sorter:this._sorter,searchTerm:this._searchTerm,selectedTags:this._selectedTags},n={},a=m({},this.getCallbackContext(),{setCustomParams:e=>{Object(r.extend)(n,e)}});return this._beforeUpdate().then(()=>this._fetcher.fetch(e,t,a).then(e=>{var t=e.results,r=e.count,a=e.allResults;return this._pageItems=t,this._allItems=a||null,this._paginator.setTotalCount(r),this._params=m({},this._params,n),this._afterUpdate()}).catch(e=>{this.handleError(e)}))}}]),g(e,[{key:"getState",value:function(){return{page:this._paginator.page,itemsPerPage:this._paginator.itemsPerPage,orderByField:this._sorter.field,orderByReverse:this._sorter.reverse,searchTerm:this._searchTerm,selectedTags:this._selectedTags,totalCount:this._paginator.totalCount,pageItems:this._pageItems,allItems:this._allItems,params:this._params}}},{key:"setState",value:function(e){this._paginator=new a.default(e),this._sorter=new o.default(e),this._searchTerm=e.searchTerm||"",this._selectedTags=e.selectedTags||[],this._savedOrderByField=this._sorter.field}}]),e}(),v=function(e){function t(e){var n=e.getResource,a=e.getItemProcessor,o=p(e,["getResource","getItemProcessor"]);return f(this,t),a=Object(r.isFunction)(a)?a:()=>null,c(this,u(t).call(this,m({},o,{doRequest:(e,t)=>{return n(t)(e).$promise},processResults:(e,t)=>{var n=a(t);return n=Object(r.isFunction)(n)?n:r.identity,Object(r.map)(e,e=>n(e,t))}})))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(t,y),t}()},,function(e,t,n){"use strict";n.r(t),n.d(t,"BigMessage",function(){return l}),n.d(t,"default",function(){return c});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(17);function l(e){var t=e.message,n=e.icon,r=e.children,o=e.className;return a.a.createElement("div",{className:"p-15 text-center "+o},a.a.createElement("h3",{className:"m-t-0 m-b-0"},a.a.createElement("i",{className:"fa "+n})),a.a.createElement("br",null),t,r)}function c(e){e.component("bigMessage",Object(s.react2angular)(l))}l.propTypes={message:i.a.string,icon:i.a.string.isRequired,children:i.a.node,className:i.a.string},l.defaultProps={message:"",children:null,className:"tiled bg-white"},c.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"SCHEMA_NOT_SUPPORTED",function(){return r}),n.d(t,"SCHEMA_LOAD_ERROR",function(){return a}),n.d(t,"IMG_ROOT",function(){return o}),n.d(t,"DataSource",function(){return i}),n.d(t,"default",function(){return l}),s.$inject=["$q","$resource","$http"];var r=1,a=2,o="/static/images/db-logos",i=null;function s(e,t,n){var r=t("api/data_sources/:id",{id:"@id"},{get:{method:"GET",cache:!1,isArray:!1},query:{method:"GET",cache:!1,isArray:!0},save:{method:"POST"},types:{method:"GET",cache:!1,isArray:!0,url:"api/data_sources/types"},test:{method:"POST",cache:!1,isArray:!1,url:"api/data_sources/:id/test"}});return r.prototype.getSchema=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return void 0===this._schema||t?function(e){var t={};return arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&(t.refresh=!0),n.get("api/data_sources/".concat(e,"/schema"),{params:t})}(this.id,t).then(e=>{var t=e.data;return this._schema=t,t}):e.resolve(this._schema)},r}function l(e){e.factory("DataSource",s),e.run(["$injector",e=>{i=e.get("DataSource")}])}l.init=!0},,,,,,,function(e,t,n){"use strict";n.r(t);var r=n(353),a=n.n(r);n.d(t,"Plotly",function(){return a.a});var o=n(779),i=n.n(o),s=n(780),l=n.n(s),c=n(781),u=n.n(c),d=n(782),p=n.n(d),m=n(783),f=n.n(m),h=n(450);n.d(t,"prepareData",function(){return h.default});var g=n(451);n.d(t,"prepareLayout",function(){return g.default});var b=n(200);n.d(t,"updateData",function(){return b.default});var y=n(452);n.d(t,"applyLayoutFixes",function(){return y.default});var v=n(341);n.d(t,"prepareCustomChartData",function(){return v.prepareCustomChartData}),n.d(t,"createCustomChartRenderer",function(){return v.createCustomChartRenderer}),a.a.register([i.a,l.a,u.a,p.a,f.a]),a.a.setPlotConfig({modeBarButtonsToRemove:["sendDataToCloud"]})},,,,,function(e,t,n){"use strict";n.r(t);n(221);var r=n(2);function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}var s=function(){function e(t){a(this,e),Object(r.extend)(this,{pathPrefix:"/".concat(t.path)},Object(r.omit)(t,["isActive"])),Object(r.isFunction)(t.isActive)&&(this.isActive=t.isActive)}return i(e,[{key:"isActive",value:function(e){return e.startsWith(this.pathPrefix)}}]),e}(),l=function(){function e(){a(this,e),this.items=[]}return i(e,[{key:"add",value:function(e){this.items.push(new s(e)),this.items=Object(r.sortBy)(this.items,"order")}}]),e}();t.default=new l},function(e,t,n){"use strict";n.r(t);n(55),n(96),n(14),n(15),n(95),n(114),n(1124),n(90),n(19),n(27),n(11);var r=n(0),a=n.n(r),o=n(2);function i(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}t.default={getFields:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{options:{}},n=e.configuration_schema;!function(e){Object(o.each)(e.properties,(t,n)=>{"password"!==n&&"passwd"!==n||(t.type="password"),n.endsWith("File")&&(t.type="file"),"boolean"===t.type&&(t.type="checkbox"),"string"===t.type&&(t.type="text"),t.required=Object(o.includes)(e.required,n)}),e.order=e.order||[]}(n),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(0===Object.keys(t).length){var n=e.properties;Object.keys(n).forEach(e=>{Object(o.isUndefined)(n[e].default)||"checkbox"!==n[e].type||(t[e]=n[e].default)})}}(n,t.options);var r=!t.id;return[{name:"name",title:"Name",type:"text",required:!0,initialValue:t.name,contentAfter:a.a.createElement("hr"),placeholder:"My ".concat(e.name),autoFocus:r}].concat(i(function(e,t,n){var r=new Array(t.length);return Object.keys(e).forEach(a=>{var o=t.indexOf(a),i={name:a,title:e[a].title,type:e[a].type,placeholder:e[a].default&&e[a].default.toString(),required:e[a].required,initialValue:n[a]};o>-1?r[o]=i:r.push(i)}),r}(n.properties,n.order,t.options)))},updateTargetWithValues:function(e,t){e.name=t.name,Object.keys(t).forEach(n=>{"name"!==n&&(e.options[n]=t[n])})},toHuman:function(e){return e.replace(/_/g," ").replace(/(?:^|\s)\S/g,e=>e.toUpperCase())},getBase64:function(e){return new Promise((t,n)=>{var r=new FileReader;r.readAsDataURL(e),r.onload=(()=>t(r.result.substr(r.result.indexOf(",")+1))),r.onerror=(e=>n(e))})}}},,function(e,t,n){"use strict";n.r(t),n.d(t,"MappingType",function(){return W}),n.d(t,"parameterMappingsToEditableMappings",function(){return Y}),n.d(t,"editableMappingsToParameterMappings",function(){return K}),n.d(t,"synchronizeWidgetTitles",function(){return X}),n.d(t,"ParameterMappingInput",function(){return J}),n.d(t,"ParameterMappingListInput",function(){return te});n(55),n(96),n(34),n(14),n(15),n(11),n(29),n(90);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(3),c=n.n(l),u=n(26),d=n.n(u),p=n(113),m=n.n(p),f=n(289),h=n.n(f),g=n(18),b=n.n(g),y=n(21),v=n.n(y),w=n(195),O=n.n(w),j=n(31),E=n.n(j),S=n(112),x=n.n(S),P=n(35),C=n.n(P),k=n(40),_=n.n(k),T=n(273),$=n(105),q=n(39),N=n(100);n(1285);function D(e){return(D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function R(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function A(){return(A=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function I(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function M(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function F(e,t,n){return t&&M(e.prototype,t),n&&M(e,n),e}function V(e,t){return!t||"object"!==D(t)&&"function"!=typeof t?L(e):t}function U(e){return(U=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function L(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function B(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Q(e,t)}function Q(e,t){return(Q=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function H(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var G=d.a.Option,W={DashboardAddNew:"dashboard-add-new",DashboardMapToExisting:"dashboard-map-to-existing",WidgetLevel:"widget-level",StaticValue:"static-value"};function Y(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return Object(r.map)(e,e=>{var a=Object(r.extend)({},e),o=Object(r.includes)(n,e.mapTo);switch(a.param=Object(r.find)(t,t=>t.name===e.name),e.type){case $.ParameterMappingType.DashboardLevel:a.type=o?W.DashboardMapToExisting:W.DashboardAddNew,a.value=null;break;case $.ParameterMappingType.StaticValue:a.type=W.StaticValue,a.param=a.param.clone(),a.param.setValue(a.value);break;case $.ParameterMappingType.WidgetLevel:a.type=W.WidgetLevel,a.value=null}return a})}function K(e){return Object(r.fromPairs)(Object(r.map)(e,e=>{var t=Object(r.extend)({},e);switch(e.type){case W.DashboardAddNew:case W.DashboardMapToExisting:t.type=$.ParameterMappingType.DashboardLevel,t.value=null;break;case W.StaticValue:t.type=$.ParameterMappingType.StaticValue,t.param=e.param.clone(),t.param.setValue(t.value),t.value=t.param.value;break;case W.WidgetLevel:t.type=$.ParameterMappingType.WidgetLevel,t.value=null}return delete t.param,[t.name,t]}))}function X(e,t){var n=[];return Object(r.each)(e,e=>{e.type===$.ParameterMappingType.DashboardLevel&&Object(r.each)(t,t=>{var a=t.options.parameterMappings;Object(r.each)(a,r=>{r.type===$.ParameterMappingType.DashboardLevel&&r.mapTo===e.mapTo&&r.title!==e.title&&(r.title=e.title,n.push(t))})})}),n}var J=function(e){function t(){var e,n;z(this,t);for(var a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return H(L(n=V(this,(e=U(t)).call.apply(e,[this].concat(o)))),"formItemProps",{labelCol:{span:5},wrapperCol:{span:16},className:"form-item"}),H(L(n),"updateSourceType",e=>{var t=n.props.mapping.mapTo,a=n.props.existingParamNames;e!==W.DashboardMapToExisting||Object(r.includes)(a,t)||(t=a[0]),n.updateParamMapping({type:e,mapTo:t})}),H(L(n),"updateParamMapping",e=>{var t=n.props,a=t.onChange,o=t.mapping,i=Object(r.extend)({},o,e);i.value!==o.value&&(i.param=i.param.clone(),i.param.setValue(i.value)),a(i)}),n}return B(t,o.a.Component),F(t,[{key:"renderMappingTypeSelector",value:function(){var e=Object(r.isEmpty)(this.props.existingParamNames);return o.a.createElement(x.a.Group,{value:this.props.mapping.type,onChange:e=>this.updateSourceType(e.target.value)},o.a.createElement(x.a,{className:"radio",value:W.DashboardAddNew},"New dashboard parameter"),o.a.createElement(x.a,{className:"radio",value:W.DashboardMapToExisting,disabled:e},"Existing dashboard parameter"," ",e?o.a.createElement(_.a,{title:"There are no dashboard parameters corresponding to this data type"},o.a.createElement(v.a,{type:"question-circle",theme:"filled"})):null),o.a.createElement(x.a,{className:"radio",value:W.WidgetLevel},"Widget parameter"),o.a.createElement(x.a,{className:"radio",value:W.StaticValue},"Static value"))}},{key:"renderDashboardAddNew",value:function(){var e=this.props.mapping.mapTo;return o.a.createElement(E.a,{value:e,onChange:e=>this.updateParamMapping({mapTo:e.target.value})})}},{key:"renderDashboardMapToExisting",value:function(){var e=this.props,t=e.mapping,n=e.existingParamNames;return o.a.createElement(d.a,{value:t.mapTo,onChange:e=>this.updateParamMapping({mapTo:e}),dropdownMatchSelectWidth:!1},Object(r.map)(n,e=>o.a.createElement(G,{value:e,key:e},e)))}},{key:"renderStaticValue",value:function(){var e=this.props.mapping;return o.a.createElement(T.default,{type:e.param.type,value:e.param.normalizedValue,enumOptions:e.param.enumOptions,queryId:e.param.queryId,parameter:e.param,onSelect:e=>this.updateParamMapping({value:e})})}},{key:"renderInputBlock",value:function(){switch(this.props.mapping.type){case W.DashboardAddNew:return["Key","Enter a new parameter keyword",this.renderDashboardAddNew()];case W.DashboardMapToExisting:return["Key","Select from a list of existing parameters",this.renderDashboardMapToExisting()];case W.StaticValue:return["Value",null,this.renderStaticValue()];default:return[]}}},{key:"render",value:function(){var e=this.props.inputError,t=I(this.renderInputBlock(),3),n=t[0],r=t[1],a=t[2];return o.a.createElement(C.a,{layout:"horizontal"},o.a.createElement(C.a.Item,A({label:"Source"},this.formItemProps),this.renderMappingTypeSelector()),o.a.createElement(C.a.Item,A({style:{height:60,visibility:a?"visible":"hidden"},label:n},this.formItemProps,{validateStatus:e?"error":"",help:e||r}),a))}}]),t}();H(J,"propTypes",{mapping:s.a.object,existingParamNames:s.a.arrayOf(s.a.string),onChange:s.a.func,inputError:s.a.string}),H(J,"defaultProps",{mapping:{},existingParamNames:[],onChange:()=>{},inputError:null});var Z=function(e){function t(e){var n;return z(this,t),H(L(n=V(this,U(t).call(this,e))),"onVisibleChange",e=>{e?n.show():n.hide()}),H(L(n),"onChange",e=>{var t=null;e.type===W.DashboardAddNew&&(Object(r.isEmpty)(e.mapTo)?t="Keyword must have a value":Object(r.includes)(n.props.existingParamNames,e.mapTo)&&(t="A parameter with this name already exists")),n.setState({mapping:e,inputError:t})}),H(L(n),"save",()=>{n.props.onChange(n.props.mapping,n.state.mapping),n.hide()}),H(L(n),"show",()=>{n.setState({visible:!0,mapping:Object(r.clone)(n.props.mapping)})}),H(L(n),"hide",()=>{n.setState({visible:!1})}),n.state={visible:!1,mapping:Object(r.clone)(n.props.mapping),inputError:null},n}return B(t,o.a.Component),F(t,[{key:"renderContent",value:function(){var e=this.state,t=e.mapping,n=e.inputError;return o.a.createElement("div",{className:"parameter-mapping-editor"},o.a.createElement("header",null,"Edit Source and Value ",o.a.createElement(N.HelpTrigger,{type:"VALUE_SOURCE_OPTIONS"})),o.a.createElement(J,{mapping:t,existingParamNames:this.props.existingParamNames,onChange:this.onChange,inputError:n}),o.a.createElement("footer",null,o.a.createElement(b.a,{onClick:this.hide},"Cancel"),o.a.createElement(b.a,{onClick:this.save,disabled:!!n,type:"primary"},"OK")))}},{key:"render",value:function(){return o.a.createElement(h.a,{placement:"left",trigger:"click",content:this.renderContent(),visible:this.state.visible,onVisibleChange:this.onVisibleChange},o.a.createElement(b.a,{size:"small",type:"dashed"},o.a.createElement(v.a,{type:"edit"})))}}]),t}();H(Z,"propTypes",{mapping:s.a.object.isRequired,existingParamNames:s.a.arrayOf(s.a.string).isRequired,onChange:s.a.func.isRequired});var ee=function(e){function t(){var e,n;z(this,t);for(var a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return H(L(n=V(this,(e=U(t)).call.apply(e,[this].concat(o)))),"state",{showPopup:!1,title:""}),H(L(n),"onPopupVisibleChange",e=>{n.setState({showPopup:e,title:e?n.getMappingTitle():""})}),H(L(n),"onEditingTitleChange",e=>{n.setState({title:e.target.value})}),H(L(n),"save",()=>{var e=Object(r.extend)({},n.props.mapping,{title:n.state.title});n.props.onChange(e),n.hide()}),H(L(n),"hide",()=>{n.setState({showPopup:!1})}),n}return B(t,o.a.Component),F(t,[{key:"getMappingTitle",value:function(){var e=this.props.mapping;if(Object(r.isString)(e.title)&&""!==e.title)return e.title;if(e.type===W.DashboardMapToExisting){var t=Object(r.find)(this.props.existingParams,{name:e.mapTo});t&&(e=t)}return e.title||e.param.title}},{key:"renderPopover",value:function(){var e=this.props.mapping.param.title;return o.a.createElement("div",{className:"parameter-mapping-title-editor"},o.a.createElement(E.a,{size:"small",value:this.state.title,placeholder:e,onChange:this.onEditingTitleChange,onPressEnter:this.save,maxLength:100,autoFocus:!0}),o.a.createElement(b.a,{size:"small",type:"dashed",onClick:this.hide},o.a.createElement(v.a,{type:"close"})),o.a.createElement(b.a,{size:"small",type:"dashed",onClick:this.save},o.a.createElement(v.a,{type:"check"})))}},{key:"renderEditButton",value:function(){return this.props.mapping.type===W.StaticValue?o.a.createElement(_.a,{placement:"right",title:"Titles for static values don't appear in widgets"},o.a.createElement("i",{className:"fa fa-eye-slash"})):o.a.createElement(h.a,{placement:"right",trigger:"click",content:this.renderPopover(),visible:this.state.showPopup,onVisibleChange:this.onPopupVisibleChange},o.a.createElement(b.a,{size:"small",type:"dashed"},o.a.createElement(v.a,{type:"edit"})))}},{key:"render",value:function(){var e=this.props.mapping.type===W.StaticValue;return o.a.createElement("div",{className:c()("parameter-mapping-title",{disabled:e})},o.a.createElement("span",{className:"text"},this.getMappingTitle()),this.renderEditButton())}}]),t}();H(ee,"propTypes",{existingParams:s.a.arrayOf(s.a.object),mapping:s.a.object.isRequired,onChange:s.a.func.isRequired}),H(ee,"defaultProps",{existingParams:[]});var te=function(e){function t(){return z(this,t),V(this,U(t).apply(this,arguments))}return B(t,o.a.Component),F(t,[{key:"updateParamMapping",value:function(e,t){var n=R(this.props.mappings),a=Object(r.findIndex)(n,e);a>=0?n[a]=t:n.push(t),this.props.onChange(n)}},{key:"render",value:function(){var e=this.props.existingParams,t=this.props.mappings.map(e=>({mapping:e}));return o.a.createElement("div",{className:"parameters-mapping-list"},o.a.createElement(m.a,{dataSource:t,size:"middle",pagination:!1,rowKey:(e,t)=>"row".concat(t)},o.a.createElement(m.a.Column,{title:"Title",dataIndex:"mapping",key:"title",render:t=>o.a.createElement(ee,{existingParams:e,mapping:t,onChange:e=>this.updateParamMapping(t,e)})}),o.a.createElement(m.a.Column,{title:"Keyword",dataIndex:"mapping",key:"keyword",className:"keyword",render:e=>o.a.createElement("code",null,"{{ ".concat(e.name," }}"))}),o.a.createElement(m.a.Column,{title:"Default Value",dataIndex:"mapping",key:"value",render:e=>this.constructor.getDefaultValue(e,this.props.existingParams)}),o.a.createElement(m.a.Column,{title:"Value Source",dataIndex:"mapping",key:"source",render:t=>{var n=e.filter(e=>{return e.type===t.param.type}).map(e=>{return e.name});return o.a.createElement(a.Fragment,null,this.constructor.getSourceTypeLabel(t)," ",o.a.createElement(Z,{mapping:t,existingParamNames:n,onChange:(e,t)=>this.updateParamMapping(e,t)}))}})))}}],[{key:"getStringValue",value:function(e){return e?e instanceof Object&&"start"in e&&"end"in e?"".concat(e.start," ~ ").concat(e.end):"object"===D(e)?Object(r.map)(e,e=>this.getStringValue(e)).join(", "):e.toString():""}},{key:"getDefaultValue",value:function(e,t){var n=e.type,a=e.mapTo,o=e.name,i=e.param;if(n===W.DashboardMapToExisting&&a!==o){var s=Object(r.find)(t,{name:a});s&&(i=s)}else n===W.StaticValue&&(i=i.clone().setValue(e.value));var l=q.Parameter.getValue(i);return i.hasDynamicValue&&(l=i.dynamicValue.name),this.getStringValue(l)}},{key:"getSourceTypeLabel",value:function(e){var t=e.type,n=e.mapTo;switch(t){case W.DashboardAddNew:case W.DashboardMapToExisting:return o.a.createElement(a.Fragment,null,"Dashboard"," ",o.a.createElement(O.a,{className:"tag"},n));case W.WidgetLevel:return"Widget parameter";case W.StaticValue:return"Static value";default:return""}}}]),t}();H(te,"propTypes",{mappings:s.a.arrayOf(s.a.object),existingParams:s.a.arrayOf(s.a.object),onChange:s.a.func}),H(te,"defaultProps",{mappings:[],existingParams:[],onChange:()=>{}})},,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"TYPES",function(){return _}),n.d(t,"HelpTrigger",function(){return T}),n.d(t,"default",function(){return $});n(14),n(15),n(29),n(11),n(19),n(27);var r=n(17),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(3),c=n.n(l),u=n(40),d=n.n(u),p=n(762),m=n.n(p),f=n(21),h=n.n(f),g=n(78),b=n(118);n(1068);function y(e){return(y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function j(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var x="https://redash.io",P="/help",C=2e4,k="iframe_url",_={HOME:["","Help"],VALUE_SOURCE_OPTIONS:["/user-guide/querying/query-parameters#Value-Source-Options","Guide: Value Source Options"],SHARE_DASHBOARD:["/user-guide/dashboards/sharing-dashboards","Guide: Sharing and Embedding Dashboards"],AUTHENTICATION_OPTIONS:["/user-guide/users/authentication-options","Guide: Authentication Options"],USAGE_DATA_SHARING:["/open-source/admin-guide/usage-data","Help: Anonymous Usage Data Sharing"],DS_ATHENA:["/data-sources/amazon-athena-setup","Guide: Help Setting up Amazon Athena"],DS_BIGQUERY:["/data-sources/bigquery-setup","Guide: Help Setting up BigQuery"],DS_URL:["/data-sources/querying-urls","Guide: Help Setting up URL"],DS_MONGODB:["/data-sources/mongodb-setup","Guide: Help Setting up MongoDB"],DS_GOOGLE_SPREADSHEETS:["/data-sources/querying-a-google-spreadsheet","Guide: Help Setting up Google Spreadsheets"],DS_GOOGLE_ANALYTICS:["/data-sources/google-analytics-setup","Guide: Help Setting up Google Analytics"],DS_AXIBASETSD:["/data-sources/axibase-time-series-database","Guide: Help Setting up Axibase Time Series"],DS_RESULTS:["/user-guide/querying/query-results-data-source","Guide: Help Setting up Query Results"]},T=function(e){function t(e){var n,r,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,a=O(t).call(this,e),n=!a||"object"!==y(a)&&"function"!=typeof a?j(r):a,S(j(n),"iframeRef",null),S(j(n),"iframeLoadingTimeout",null),S(j(n),"state",{visible:!1,loading:!1,error:!1,currentUrl:null}),S(j(n),"loadIframe",e=>{clearTimeout(n.iframeLoadingTimeout),n.setState({loading:!0,error:!1}),n.iframeRef.current.src=e,n.iframeLoadingTimeout=setTimeout(()=>{n.setState({error:e,loading:!1})},C)}),S(j(n),"onIframeLoaded",()=>{n.setState({loading:!1}),clearTimeout(n.iframeLoadingTimeout)}),S(j(n),"onPostMessageReceived",e=>{var t=e.data||{},r=t.type,a=t.message;r===k&&n.setState({currentUrl:a})}),S(j(n),"openDrawer",()=>{n.setState({visible:!0});var e=v(_[n.props.type],1)[0],t=x+P+e;setTimeout(()=>n.loadIframe(t),300)}),S(j(n),"closeDrawer",e=>{e&&e.preventDefault(),n.setState({visible:!1}),n.setState({visible:!1,currentUrl:null})}),n.iframeRef=o.a.createRef(),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(t,o.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){window.addEventListener("message",this.onPostMessageReceived,x)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("message",this.onPostMessageReceived),clearTimeout(this.iframeLoadingTimeout)}},{key:"render",value:function(){var e=v(_[this.props.type],2)[1],t=c()("help-trigger",this.props.className),n=this.state.currentUrl;return o.a.createElement(o.a.Fragment,null,o.a.createElement(d.a,{title:e},o.a.createElement("a",{onClick:this.openDrawer,className:t},this.props.children)),o.a.createElement(m.a,{placement:"right",closable:!1,onClose:this.closeDrawer,visible:this.state.visible,className:"help-drawer",destroyOnClose:!0,width:400},o.a.createElement("div",{className:"drawer-wrapper"},o.a.createElement("div",{className:"drawer-menu"},n&&o.a.createElement(d.a,{title:"Open page in a new window",placement:"left"},o.a.createElement("a",{href:n,target:"_blank"},o.a.createElement("i",{className:"fa fa-external-link"}))),o.a.createElement(d.a,{title:"Close",placement:"bottom"},o.a.createElement("a",{href:"#",onClick:this.closeDrawer},o.a.createElement(h.a,{type:"close"})))),!this.state.error&&o.a.createElement("iframe",{ref:this.iframeRef,title:"Redash Help",src:"about:blank",className:c()({ready:!this.state.loading}),onLoad:this.onIframeLoaded}),this.state.loading&&o.a.createElement(g.BigMessage,{icon:"fa-spinner fa-2x fa-pulse",message:"Loading...",className:"help-message"}),this.state.error&&o.a.createElement(g.BigMessage,{icon:"fa-exclamation-circle",className:"help-message"},"Something went wrong.",o.a.createElement("br",null),o.a.createElement("a",{href:this.state.error,target:"_blank",rel:"noopener"},"Click here")," ","to open the page in a new window.")),o.a.createElement(b.default,{name:"HelpDrawerExtraContent",onLeave:this.closeDrawer,openPageUrl:this.loadIframe})))}}])&&w(n.prototype,r),a&&w(n,a),t}();function $(e){e.component("helpTrigger",Object(r.react2angular)(T))}S(T,"propTypes",{type:s.a.oneOf(Object.keys(_)).isRequired,className:s.a.string,children:s.a.node}),S(T,"defaultProps",{className:null,children:o.a.createElement("i",{className:"fa fa-question-circle"})}),$.init=!0},,,function(e,t,n){"use strict";n.r(t),n.d(t,"BaseColors",function(){return o}),n.d(t,"AdditionalColors",function(){return i}),n.d(t,"ColorPaletteArray",function(){return s});n(11),n(19),n(27);var r=n(2);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var o={Blue:"#356AFF",Red:"#E92828",Green:"#3BD973",Purple:"#604FE9",Cyan:"#50F5ED",Orange:"#FB8D3D","Light Blue":"#799CFF",Lilac:"#B554FF","Light Green":"#8CFFB4",Brown:"#A55F2A",Black:"#000000",Gray:"#494949",Pink:"#FF7DE3","Dark Blue":"#002FB4"},i={"Indian Red":"#981717","Green 2":"#17BF51","Green 3":"#049235",DarkTurquoise:"#00B6EB","Dark Violet":"#A58AFF","Pink 2":"#C63FA9"},s=Object(r.values)(o),l=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){a(e,t,n[t])})}return e}({},o,i);t.default=l},,function(e,t,n){"use strict";n.r(t),n.d(t,"Widget",function(){return c}),n.d(t,"ParameterMappingType",function(){return u}),n.d(t,"default",function(){return p});n(116),n(95);var r=n(9),a=n.n(r),o=n(2),i=n(54),s=n(20);function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}d.$inject=["$http","$location","Query"];var c=null;var u={DashboardLevel:"dashboard-level",WidgetLevel:"widget-level",StaticValue:"static-value"};function d(e,t,n){var r,c,d,p=function(){function r(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,r),Object(o.each)(e,(e,t)=>{this[t]=e});var t=function(e){e.width=1;var t={autoHeight:!1,sizeX:Math.round(i.a.columns/2),sizeY:i.a.defaultSizeY,minSizeX:i.a.minSizeX,maxSizeX:i.a.maxSizeX,minSizeY:i.a.minSizeY,maxSizeY:i.a.maxSizeY},n=e.visualization?s.registeredVisualizations[e.visualization.type]:null;if(Object(o.isObject)(n)){Object.prototype.hasOwnProperty.call(n,"autoHeight")&&(t.autoHeight=n.autoHeight);var r=parseInt(n.minColumns,10);isFinite(r)&&r>=0&&(t.minSizeX=r);var a=parseInt(n.maxColumns,10);isFinite(a)&&a>=0&&(t.maxSizeX=Math.min(a,i.a.columns));var l=parseInt(n.height,10);isFinite(l)&&(t.minSizeY=Math.ceil(l/i.a.rowHeight));var c=parseInt(n.minRows,10);isFinite(c)&&(t.minSizeY=c);var u=parseInt(n.maxRows,10);isFinite(u)&&u>=0&&(t.maxSizeY=u);var d=parseInt(n.defaultColumns,10);isFinite(d)&&d>0&&(t.sizeX=d);var p=parseInt(n.defaultRows,10);isFinite(p)&&p>0&&(t.sizeY=p)}return t}(this);this.options=this.options||{},this.options.position=Object(o.extend)({},t,Object(o.pick)(this.options.position,["col","row","sizeX","sizeY","autoHeight"])),this.options.position.sizeY<0&&(this.options.position.autoHeight=!0)}var c,u,d;return c=r,(u=[{key:"getQuery",value:function(){return!this.query&&this.visualization&&(this.query=new n(this.visualization.query)),this.query}},{key:"getQueryResult",value:function(){return this.data}},{key:"getName",value:function(){return this.visualization?"".concat(this.visualization.query.name," (").concat(this.visualization.name,")"):Object(o.truncate)(this.text,20)}},{key:"load",value:function(e,t){return this.visualization?((e||void 0===this.queryResult)&&(this.loading=!0,this.refreshStartedAt=a()(),(void 0===t||e)&&(t=e?0:void 0),this.queryResult=this.getQuery().getQueryResult(t),this.queryResult.toPromise().then(e=>{this.loading=!1,this.data=e}).catch(e=>{this.loading=!1,this.data=e})),this.queryResult.toPromise()):Promise.resolve()}},{key:"save",value:function(t,n){var r=Object(o.pick)(this,"options","text","id","width","dashboard_id","visualization_id");t&&n&&(r[t]=Object(o.merge)({},r[t],n));var a="api/widgets";return this.id&&(a="".concat(a,"/").concat(this.id)),e.post(a,r).then(e=>(Object(o.each)(e.data,(e,t)=>{this[t]=e}),this))}},{key:"delete",value:function(){var t="api/widgets/".concat(this.id);return e.delete(t)}},{key:"isStaticParam",value:function(e){return this.getParameterMappings()[e.name].type===r.MappingType.StaticValue}},{key:"getParametersDefs",value:function(){var e=this.getParameterMappings(),n=this.getQuery()?this.getQuery().getParametersDefs():[],a=t.search(),i=[r.MappingType.WidgetLevel,r.MappingType.StaticValue];return Object(o.map)(Object(o.filter)(n,t=>i.indexOf(e[t.name].type)>=0),t=>{var n=e[t.name],o=t.clone();return o.title=n.title||t.title,o.locals=[t],o.urlPrefix="p_w".concat(this.id,"_"),n.type===r.MappingType.StaticValue?o.setValue(n.value):o.fromUrlParams(a),o})}},{key:"getParameterMappings",value:function(){Object(o.isObject)(this.options.parameterMappings)||(this.options.parameterMappings={});var e={},t=this.getQuery()?this.getQuery().getParametersDefs(!1):[];Object(o.each)(t,t=>{e[t.name]=!0,Object(o.isObject)(this.options.parameterMappings[t.name])||(this.options.parameterMappings[t.name]={name:t.name,type:t.global?r.MappingType.DashboardLevel:r.MappingType.WidgetLevel,mapTo:t.name,value:null,title:""})});var n=Object(o.difference)(Object(o.keys)(this.options.parameterMappings),Object(o.keys)(e));return Object(o.each)(n,e=>{delete this.options.parameterMappings[e]}),this.options.parameterMappings}}])&&l(c.prototype,u),d&&l(c,d),r}();return d=u,(c="MappingType")in(r=p)?Object.defineProperty(r,c,{value:d,enumerable:!0,configurable:!0,writable:!0}):r[c]=d,p}function p(e){e.factory("Widget",d),e.run(["$injector",e=>{c=e.get("Widget")}])}p.init=!0},,,,,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return o});n(11),n(19),n(55),n(240);var r=new Map;function a(){r.size>0&&(r.forEach((e,t)=>{var n=t.getBoundingClientRect(),r=Math.round(10*n.width),a=Math.round(10*n.height);e.width===r&&e.height===a||(e.width=r,e.height=a,e.callback(t))}),setTimeout(a,100))}function o(e,t){if(e&&!r.has(e)){var n=0===r.size;return r.set(e,{callback:t}),n&&a(),()=>r.delete(e)}return()=>{}}},function(e,t,n){"use strict";n.r(t),n.d(t,"registerComponent",function(){return b}),n.d(t,"unregisterComponent",function(){return y}),n.d(t,"default",function(){return v});n(14),n(15),n(27),n(29),n(249),n(11),n(19),n(55),n(240);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=new Map,g=new Set;function b(e,t){Object(r.isString)(e)&&""!==e&&(h.set(e,Object(r.isFunction)(t)?t:null),g.forEach(t=>{t.props.name===e&&t.forceUpdate()}))}function y(e){b(e,null)}var v=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),d(this,p(t).apply(this,arguments))}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(t,o.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){g.add(this)}},{key:"componentWillUnmount",value:function(){g.delete(this)}},{key:"render",value:function(){var e=this.props,t=e.name,n=e.children,r=c(e,["name","children"]),a=h.get(t);return a?o.a.createElement(a,r,n):n}}])&&u(n.prototype,r),a&&u(n,a),t}();f(v,"propTypes",{name:s.a.string.isRequired,children:s.a.node}),f(v,"defaultProps",{children:null})},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(19),n(27),n(29),n(11);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(35),l=n.n(s),c=n(31),u=n.n(c),d=n(93),p=n.n(d),m=n(101),f=n.n(m),h=n(18),g=n.n(h),b=n(765),y=n.n(b),v=n(21),w=n.n(v),O=n(2),j=n(26),E=n.n(j),S=n(12),x=n(454),P=n(44),C=n(92);function k(e){return(k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _(){return(_=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){R(e,t,n[t])})}return e}function $(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function q(e){return(q=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function N(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function D(e,t){return(D=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function R(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var A=e=>{var t=e.type,n=e.required,r=e.minLength;return[n&&{required:n,message:"This field is required."},r&&Object(O.includes)(["text","email","password"],t)&&{min:r,message:"This field is too short."},"email"===t&&{type:"email",message:"This field must be a valid email."}].filter(e=>e)},I=function(e){function t(e){var n,r,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,a=q(t).call(this,e),n=!a||"object"!==k(a)&&"function"!=typeof a?N(r):a,R(N(n),"setActionInProgress",(e,t)=>{n.setState(n=>({inProgressActions:T({},n.inProgressActions,R({},e,t))}))}),R(N(n),"handleSubmit",e=>{n.setState({isSubmitting:!0}),e.preventDefault(),n.props.form.validateFieldsAndScroll((e,t)=>{e?n.setState({isSubmitting:!1}):n.props.onSubmit(t,e=>{var t=n.props.form,r=t.setFieldsValue,a=t.getFieldsValue;n.setState({isSubmitting:!1}),r(a()),S.default.success(e)},e=>{n.setState({isSubmitting:!1}),S.default.error(e)})})}),R(N(n),"handleAction",e=>{var t=e.target.dataset.action;n.setActionInProgress(t,!0),n.actionCallbacks[t](()=>{n.setActionInProgress(t,!1)})}),R(N(n),"base64File",(e,t)=>{t&&t.fileList[0]&&C.default.getBase64(t.file).then(t=>{n.props.form.setFieldsValue(R({},e,t))})}),n.state={isSubmitting:!1,inProgressActions:[]},n.actionCallbacks=n.props.actions.reduce((e,t)=>T({},e,R({},t.name,t.callback)),null),e.actions.forEach(e=>{n.state.inProgressActions[e.name]=!1}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&D(e,t)}(t,a.a.Component),n=t,(r=[{key:"renderUpload",value:function(e,t){var n=this.props.form,r=n.getFieldDecorator,o=n.getFieldValue,i=e.name,s=e.initialValue,l={rules:A(e),initialValue:s,getValueFromEvent:this.base64File.bind(this,i)},c=void 0!==o(i)&&o(i)!==s,u=a.a.createElement(y.a,_({},t,{beforeUpload:()=>!1}),a.a.createElement(g.a,{disabled:c},a.a.createElement(w.a,{type:"upload"})," Click to upload"));return r(i,l)(u)}},{key:"renderSelect",value:function(e,t){var n=this.props.form.getFieldDecorator,r=e.name,o=e.options,i=e.mode,s=e.initialValue,l=e.readOnly,c=e.loading,u=E.a.Option;return n(r,{rules:A(e),initialValue:s})(a.a.createElement(E.a,_({},t,{optionFilterProp:"children",loading:c||!1,mode:i}),o&&o.map(e=>{var t=e.value,n=e.title;return a.a.createElement(u,{key:"".concat(t),value:t,disabled:l},n||t)})))}},{key:"renderField",value:function(e,t){var n=this.props.form.getFieldDecorator,r=e.name,o=e.type,i=e.initialValue,s=e.title||C.default.toHuman(r),l={rules:A(e),valuePropName:"checkbox"===o?"checked":"value",initialValue:i};return"checkbox"===o?n(r,l)(a.a.createElement(f.a,t,s)):"file"===o?this.renderUpload(e,t):"select"===o?this.renderSelect(e,t):"content"===o?e.content:"number"===o?n(r,l)(a.a.createElement(p.a,t)):"textarea"===o?n(r,l)(a.a.createElement(u.a.TextArea,t)):"ace"===o?n(r,l)(a.a.createElement(x.default,t)):n(r,l)(a.a.createElement(u.a,t))}},{key:"renderFields",value:function(){return this.props.fields.map(e=>{var t=l.a.Item,n=e.name,r=e.title,o=e.type,i=e.readOnly,s=e.autoFocus,c=e.contentAfter,u=r||C.default.toHuman(n),d=this.props,p=d.feedbackIcons,m=d.form,f={className:"m-b-10",hasFeedback:"checkbox"!==o&&"file"!==o&&p,label:"checkbox"===o?"":u},h=T({},e.props,{className:"w-100",name:n,type:o,readOnly:i,autoFocus:s,placeholder:e.placeholder,"data-test":u});return a.a.createElement(a.a.Fragment,{key:n},a.a.createElement(t,f,this.renderField(e,h)),Object(O.isFunction)(c)?c(m.getFieldValue(n)):c)})}},{key:"renderActions",value:function(){return this.props.actions.map(e=>{var t=this.state.inProgressActions[e.name],n=this.props.form.isFieldsTouched,r={key:e.name,htmlType:"button",className:e.pullRight?"pull-right m-t-10":"m-t-10",type:e.type,disabled:n()&&e.disableWhenDirty,loading:t,onClick:this.handleAction};return a.a.createElement(g.a,_({},r,{"data-action":e.name}),e.name)})}},{key:"render",value:function(){var e={type:"primary",htmlType:"submit",className:"w-100",disabled:this.state.isSubmitting,loading:this.state.isSubmitting},t=this.props,n=t.id,r=t.hideSubmitButton,o=t.saveText,i=!r;return a.a.createElement(l.a,{id:n,layout:"vertical",onSubmit:this.handleSubmit},this.renderFields(),i&&a.a.createElement(g.a,e,o),this.renderActions())}}])&&$(n.prototype,r),o&&$(n,o),t}();R(I,"propTypes",{id:i.a.string,fields:i.a.arrayOf(P.Field),actions:i.a.arrayOf(P.Action),feedbackIcons:i.a.bool,hideSubmitButton:i.a.bool,saveText:i.a.string,onSubmit:i.a.func,form:P.AntdForm.isRequired}),R(I,"defaultProps",{id:null,fields:[],actions:[],feedbackIcons:!1,hideSubmitButton:!1,saveText:"Save",onSubmit:()=>{}}),t.default=l.a.create()(I)},,,function(e,t,n){"use strict";n.r(t),n.d(t,"PreviewCard",function(){return d}),n.d(t,"UserPreviewCard",function(){return p}),n.d(t,"DataSourcePreviewCard",function(){return m});n(34),n(11),n(19),n(27);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(3),l=n.n(s);function c(){return(c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function u(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function d(e){var t=e.imageUrl,n=e.roundedImage,r=e.title,o=e.body,i=e.children,s=e.className,d=u(e,["imageUrl","roundedImage","title","body","children","className"]);return a.a.createElement("div",c({},d,{className:s+" w-100 d-flex align-items-center"}),a.a.createElement("img",{src:t,width:"32",height:"32",className:l()({"profile__image--settings":n},"m-r-5"),alt:"Logo/Avatar"}),a.a.createElement("div",{className:"flex-fill"},a.a.createElement("div",null,r),o&&a.a.createElement("div",{className:"text-muted"},o)),i)}function p(e){var t=e.user,n=e.withLink,r=e.children,o=u(e,["user","withLink","children"]),i=n?a.a.createElement("a",{href:"users/"+t.id},t.name):t.name;return a.a.createElement(d,c({},o,{imageUrl:t.profile_image_url,title:i,body:t.email}),r)}function m(e){var t=e.dataSource,n=e.withLink,r=e.children,o=u(e,["dataSource","withLink","children"]),i="/static/images/db-logos/".concat(t.type,".png"),s=n?a.a.createElement("a",{href:"data_sources/"+t.id},t.name):t.name;return a.a.createElement(d,c({},o,{imageUrl:i,title:s}),r)}d.propTypes={imageUrl:i.a.string.isRequired,title:i.a.node.isRequired,body:i.a.node,roundedImage:i.a.bool,className:i.a.string,children:i.a.node},d.defaultProps={body:null,roundedImage:!0,className:"",children:null},p.propTypes={user:i.a.shape({profile_image_url:i.a.string.isRequired,name:i.a.string.isRequired,email:i.a.string.isRequired}).isRequired,withLink:i.a.bool,children:i.a.node},p.defaultProps={withLink:!1,children:null},m.propTypes={dataSource:i.a.shape({name:i.a.string.isRequired,type:i.a.string.isRequired}).isRequired,withLink:i.a.bool,children:i.a.node},m.defaultProps={withLink:!1,children:null}},,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"TagsControl",function(){return v}),n.d(t,"QueryTagsControl",function(){return O}),n.d(t,"DashboardTagsControl",function(){return j}),n.d(t,"default",function(){return E});n(14),n(15),n(11),n(19),n(27),n(29),n(95);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(17),c=n(40),u=n.n(c),d=n(466);function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];return r=this,a=(e=h(t)).call.apply(e,[this].concat(i)),n=!a||"object"!==p(a)&&"function"!=typeof a?g(r):a,y(g(n),"editTags",(e,t)=>{d.default.showModal({tags:e,getAvailableTags:t}).result.then(n.props.onEdit)}),n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(t,o.a.Component),n=t,(a=[{key:"renderEditButton",value:function(){var e=Object(r.map)(this.props.tags,r.trim);return o.a.createElement("a",{className:"label label-tag",role:"none",onClick:()=>this.editTags(e,this.props.getAvailableTags)},0===e.length&&o.a.createElement(o.a.Fragment,null,o.a.createElement("i",{className:"zmdi zmdi-plus m-r-5"}),"Add tag"),e.length>0&&o.a.createElement("i",{className:"zmdi zmdi-edit"}))}},{key:"render",value:function(){return o.a.createElement("div",{className:"tags-control "+this.props.className},this.props.children,Object(r.map)(this.props.tags,e=>o.a.createElement("span",{className:"label label-tag",key:e,title:e},e)),this.props.canEdit&&this.renderEditButton())}}])&&f(n.prototype,a),i&&f(n,i),t}();function w(e){var t=e.archivedTooltip;function n(e){var n=e.isDraft,r=e.isArchived,a=m(e,["isDraft","isArchived"]);return o.a.createElement(v,a,!r&&n&&o.a.createElement("span",{className:"label label-tag-unpublished"},"Unpublished"),r&&o.a.createElement(u.a,{placement:"right",title:t},o.a.createElement("span",{className:"label label-tag-archived"},"Archived")))}return n.propTypes=Object(r.extend)({isDraft:s.a.bool,isArchived:s.a.bool},v.propTypes),n.defaultProps=Object(r.extend)({isDraft:!1,isArchived:!1},v.defaultProps),n}y(v,"propTypes",{tags:s.a.arrayOf(s.a.string),canEdit:s.a.bool,getAvailableTags:s.a.func,onEdit:s.a.func,className:s.a.string,children:s.a.node}),y(v,"defaultProps",{tags:[],canEdit:!1,getAvailableTags:()=>Promise.resolve([]),onEdit:()=>{},className:"",children:null});var O=w({archivedTooltip:"This query is archived and can't be used in dashboards, or appear in search results."}),j=w({archivedTooltip:"This dashboard is archived and won't be listed in dashboards nor search results."});function E(e){e.component("queryTagsControl",Object(l.react2angular)(O)),e.component("dashboardTagsControl",Object(l.react2angular)(j))}E.init=!0},,function(e,t,n){"use strict";n.r(t),n.d(t,"IMG_ROOT",function(){return r}),n.d(t,"Destination",function(){return a}),n.d(t,"default",function(){return i}),o.$inject=["$resource"];var r="/static/images/destinations",a=null;function o(e){return e("api/destinations/:id",{id:"@id"},{get:{method:"GET",cache:!1,isArray:!1},types:{method:"GET",cache:!1,isArray:!0,url:"api/destinations/types"},query:{method:"GET",cache:!1,isArray:!0}})}function i(e){e.factory("Destination",o),e.run(["$injector",e=>{a=e.get("Destination")}])}i.init=!0},,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"AdditionalColors",function(){return l}),n.d(t,"darkenColor",function(){return c}),n.d(t,"createNumberFormatter",function(){return u}),n.d(t,"prepareData",function(){return d}),n.d(t,"prepareFeatureProperties",function(){return p}),n.d(t,"getValueForFeature",function(){return m}),n.d(t,"getColorByValue",function(){return f}),n.d(t,"createScale",function(){return h}),n.d(t,"inferCountryCodeType",function(){return g});var r=n(356),a=n.n(r),o=n(2),i=n.n(o),s=n(51),l={White:"#ffffff",Black:"#000000","Light Gray":"#dddddd"};function c(e){return a()(e).darken().hex()}function u(e,t){var n=Object(s.c)(e);return e=>i.a.isNumber(e)&&isFinite(e)?n(e):t}function d(e,t,n){if(!t||!n)return{};var r={};return i.a.each(e,e=>{if(e[t]){var a=parseFloat(e[n]);r[e[t]]={code:e[t],value:isFinite(a)?a:void 0,item:e}}}),r}function p(e,t,n,r){var a={};i.a.each(e.properties,(e,t)=>{a["@@"+t]=e}),a["@@value"]=t;var o=n[e.properties[r]]||{};return i.a.extend(a,o.item)}function m(e,t,n){var r=e.properties[n];if(i.a.isString(r)&&i.a.isObject(t[r]))return t[r].value}function f(e,t,n,r){if(i.a.isNumber(e)&&isFinite(e))for(var a=0;a<t.length;a+=1)if(e<=t[a])return n[a];return r}function h(e,t,n){var r=i.a.uniq(i.a.filter(i.a.map(e,e=>m(e,t,n.countryCodeType)),i.a.isNumber));if(0===r.length)return{limits:[],colors:[],legend:[]};var o=Math.min(r.length,n.steps);if(1===o)return{limits:r,colors:[n.colors.max],legend:[{color:n.colors.max,limit:i.a.first(r)}]};var s=a.a.limits(r,n.clusteringMode,o-1),l=a.a.scale([n.colors.min,n.colors.max]).colors(s.length),c=i.a.map(l,(e,t)=>({color:e,limit:s[t]})).reverse();return{limits:s,colors:l,legend:c}}function g(e,t,n){var r={countries:{iso_a2:/^[a-z]{2}$/i,iso_a3:/^[a-z]{3}$/i,iso_n3:/^[0-9]{3}$/i},subdiv_japan:{name:/^[a-z]+$/i,name_local:/^[\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]+$/i,iso_3166_2:/^JP-[0-9]{2}$/i}}[e],a=i.a.mapValues(r,()=>0),o=i.a.chain(t).reduce((e,t)=>{var a=t[n];return i.a.isString(a)&&i.a.each(r,(t,n)=>{e[n]+=t.test(a)?1:0}),e},a).toPairs().reduce((e,t)=>t[1]>e[1]?t:e).value();return o[1]/t.length>=.9?o[0]:null}},,,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"FilterType",function(){return y}),n.d(t,"FiltersType",function(){return v}),n.d(t,"filterData",function(){return O}),n.d(t,"Filters",function(){return E}),n.d(t,"default",function(){return S});n(27),n(55),n(96),n(14),n(15),n(90),n(11),n(19);var r=n(2),a=n(9),o=n.n(a),i=n(0),s=n.n(i),l=n(1),c=n.n(l),u=n(17),d=n(26),p=n.n(d),m=n(171);function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var g="###Redash::Filters::SelectAll###",b="###Redash::Filters::Clear###",y=c.a.shape({name:c.a.string.isRequired,friendlyName:c.a.string.isRequired,multiple:c.a.bool,current:c.a.oneOfType([c.a.any,c.a.arrayOf(c.a.any)]),values:c.a.arrayOf(c.a.any).isRequired}),v=c.a.arrayOf(y);function w(e,t){return(n,a)=>{if(Object(r.isArray)(a))a=Object(r.map)(a,e=>n.values[Object(r.toNumber)(e.key)]||e.key);else{var o=n.values[Object(r.toNumber)(a.key)];a=void 0!==o?o:a.key}n.multiple&&Object(r.includes)(a,g)&&(a=h(n.values)),n.multiple&&Object(r.includes)(a,b)&&(a=[]),e=Object(r.map)(e,e=>e.name===n.name?function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){f(e,t,n[t])})}return e}({},n,{current:a}):e),t(e)}}function O(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!Object(r.isArray)(e))return[];var n=e;return Object(r.isArray)(t)&&t.length>0&&(n=n.filter(e=>Object(r.every)(t,t=>{var n=e[t.name],a=Object(r.isArray)(t.current)?t.current:[t.current];return Object(r.some)(a,e=>o.a.isMoment(n)?n.isSame(e):e===n||String(n)===e)}))),n}function j(e,t){return o.a.isMoment(e)?"date"===t?Object(m.b)(e):Object(m.c)(e):"boolean"==typeof e?e.toString():e}function E(e){var t=e.filters,n=e.onChange;return 0===t.length?null:(n=w(t,n),s.a.createElement("div",{className:"filters-wrapper"},s.a.createElement("div",{className:"container bg-white"},s.a.createElement("div",{className:"row"},Object(r.map)(t,e=>{var t=Object(r.map)(e.values,(t,n)=>s.a.createElement(p.a.Option,{key:n},j(t,Object(r.get)(e,"column.type"))));return s.a.createElement("div",{key:e.name,className:"col-sm-6 p-l-0 filter-container"},s.a.createElement("label",null,e.friendlyName),0===t.length&&s.a.createElement(p.a,{className:"w-100",disabled:!0,value:"No values"}),t.length>0&&s.a.createElement(p.a,{labelInValue:!0,className:"w-100",mode:e.multiple?"multiple":"default",value:Object(r.isArray)(e.current)?Object(r.map)(e.current,t=>({key:"".concat(Object(r.indexOf)(e.values,t)),label:j(t)})):{key:"".concat(Object(r.indexOf)(e.values,e.current)),label:j(e.current)},allowClear:e.multiple,filterOption:(e,t)=>Object(r.includes)(Object(r.toLower)(t.props.children),Object(r.toLower)(e)),showSearch:!0,onChange:t=>n(e,t)},!e.multiple&&t,e.multiple&&[s.a.createElement(p.a.Option,{key:b},s.a.createElement("i",{className:"fa fa-square-o m-r-5"}),"Clear"),s.a.createElement(p.a.Option,{key:g},s.a.createElement("i",{className:"fa fa-check-square-o m-r-5"}),"Select All"),s.a.createElement(p.a.OptGroup,{key:"Values",title:"Values"},t)]))})))))}function S(e){e.component("filters",Object(u.react2angular)(E))}E.propTypes={filters:v.isRequired,onChange:c.a.func},E.defaultProps={onChange:()=>{}},S.init=!0},,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});n(34);var r=n(0),a=n.n(r),o=n(78);function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function s(e){return a.a.createElement("div",{className:"text-center"},a.a.createElement(o.BigMessage,i({icon:"fa-search",message:"Sorry, we couldn't find anything."},e)))}},function(e,t,n){"use strict";n.r(t),n.d(t,"PageHeader",function(){return l}),n.d(t,"default",function(){return c});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(17);function l(e){var t=e.title;return a.a.createElement("div",{className:"page-header-wrapper row p-l-15 p-r-15 m-b-10 m-l-0 m-r-0"},a.a.createElement("div",{className:"col-sm-9 p-l-0 p-r-0"},a.a.createElement("h3",null,t)))}function c(e){e.component("pageHeader",Object(s.react2angular)(l))}l.propTypes={title:i.a.string.isRequired},c.init=!0},function(e,t,n){"use strict";n.r(t);var r=n(22);function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var o=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.objectCounters={}}var t,n,o;return t=e,(n=[{key:"refresh",value:function(){return r.$http.get("api/organization/status").then(e=>{var t=e.data;return this.objectCounters=t.object_counters,this})}}])&&a(t.prototype,n),o&&a(t,o),e}();t.default=new o},function(e,t,n){"use strict";n.r(t),n.d(t,"QuerySnippet",function(){return r}),n.d(t,"default",function(){return o}),a.$inject=["$resource"];var r=null;function a(e){var t=e("api/query_snippets/:id",{id:"@id"});return t.prototype.getSnippet=function(){var e=this.trigger;return""!==this.description&&(e="".concat(this.trigger,": ").concat(this.description)),{name:e,content:this.snippet,tabTrigger:this.trigger}},t}function o(e){e.factory("QuerySnippet",a),e.run(["$injector",e=>{r=e.get("QuerySnippet")}])}o.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"Dashboard",function(){return u}),n.d(t,"collectDashboardFilters",function(){return d}),n.d(t,"default",function(){return f});n(55),n(96),n(90),n(14),n(15),n(27),n(116),n(11),n(19);var r=n(2),a=n.n(r),o=n(54),i=n(105);function s(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){c(e,t,n[t])})}return e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}m.$inject=["$resource","$http","$location","currentUser"];var u=null;function d(e,t,n){var r={};return a.a.each(t,t=>{var o=t?t.getFilters():[];a.a.each(o,t=>{var o=a.a.has(n,t.name);if(o||e.dashboard_filters_enabled){o&&(t.current=n[t.name]);var i=l({},t);a.a.has(r,t.name)?r[i.name].values=a.a.union(r[i.name].values,i.values):r[i.name]=i}})}),a.a.values(r)}function p(e){var t=Math.max(a.a.chain(e).map(e=>e.options.position.sizeY).max().value(),20)+5;return a.a.chain(e).sortBy(e=>e.options.position.row).groupBy(e=>e.options.position.row).reduce((e,n)=>{var r=1;return a.a.each(n,n=>{r=Math.max(r,n.options.position.autoHeight?t:n.options.position.sizeY),n.options.position.row=e,n.options.position.sizeY<1&&(n.options.position.sizeY=t)}),e+r},0).value(),e=a.a.sortBy(e,e=>e.options.position.col),e=a.a.sortBy(e,e=>e.options.position.row)}function m(e,t,n,r){function c(e){return p(a.a.map(e,e=>new i.Widget(e)))}function u(e){e.widgets&&(e.widgets=c(e.widgets)),e.publicAccessEnabled=void 0!==e.public_url}var d=t.defaults.transformResponse.concat(e=>(e.results?e.results.forEach(u):u(e),e)),m=e("api/dashboards/:slug",{slug:"@slug"},{get:{method:"GET",transformResponse:d},save:{method:"POST",transformResponse:d},query:{method:"GET",isArray:!1,transformResponse:d},recent:{method:"get",isArray:!0,url:"api/dashboards/recent",transformResponse:d},favorites:{method:"get",isArray:!1,url:"api/dashboards/favorites"},favorite:{method:"post",isArray:!1,url:"api/dashboards/:slug/favorite",transformRequest:[()=>""]},unfavorite:{method:"delete",isArray:!1,url:"api/dashboards/:slug/favorite",transformRequest:[()=>""]}});return m.prototype.canEdit=function(){return r.canEdit(this)||this.can_edit},m.prepareDashboardWidgets=c,m.prepareWidgetsForDashboard=p,m.prototype.getParametersDefs=function(){var e={},t=n.search();return a.a.each(this.widgets,t=>{if(t.getQuery()){var n=t.getParameterMappings();t.getQuery().getParametersDefs(!1).forEach(t=>{var r=n[t.name];r.type===i.Widget.MappingType.DashboardLevel&&(e[r.mapTo]||(e[r.mapTo]=t.clone(),e[r.mapTo].name=r.mapTo,e[r.mapTo].title=r.title||t.title,e[r.mapTo].locals=[]),e[r.mapTo].locals.push(t))})}}),a.a.values(a.a.each(e,e=>{e.setValue(e.value),e.fromUrlParams(t)}))},m.prototype.addWidget=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={dashboard_id:this.id,options:l({},t,{isHidden:!1,position:{}}),text:"",visualization_id:null,visualization:null};a.a.isString(e)?n.text=e:a.a.isObject(e)&&(n.visualization_id=e.id,n.visualization=e);var r,c,u,d,p=new i.Widget(n),m=(r=this.widgets,c=p,u=a.a.extend({sizeX:o.a.defaultSizeX},a.a.extend({},c.options).position).sizeX,d=a.a.chain(r).map(e=>{var t=a.a.extend({},e.options),n=a.a.extend({row:0,sizeY:0},t.position);return{left:n.col,top:n.row,right:n.col+n.sizeX,bottom:n.row+n.sizeY,width:n.sizeX,height:n.sizeY}}).reduce((e,t)=>{for(var n=Math.max(t.left,0),r=Math.min(t.right,e.length+1),a=n;a<r;a+=1)e[a]=Math.max(e[a],t.bottom);return e},a.a.map(new Array(o.a.columns),a.a.constant(0))).value(),a.a.chain(a.a.range(0,o.a.columns-u+1)).map(e=>({col:e,row:a.a.chain(d).slice(e,e+u).max().value()})).sortBy("row").first().value());return p.options.position.col=m.col,p.options.position.row=m.row,p.save().then(()=>(this.widgets=[].concat(s(this.widgets),[p]),p))},m}function f(e){e.factory("Dashboard",m),e.run(["$injector",e=>{u=e.get("Dashboard")}])}f.init=!0},,,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return b});n(14),n(15),n(34),n(29);var r=n(0),a=n.n(r),o=n(31),i=n.n(o),s=n(21),l=n.n(s),c=n(40),u=n.n(c);function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var b=function(e){function t(e){var n,r,o,i,s,l;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,o=f(t).call(this,e),n=!o||"object"!==d(o)&&"function"!=typeof o?h(r):o,i=h(n),l=(()=>{n.ref.current.select();try{if(!document.execCommand("copy"))throw new Error;n.setState({copied:"Copied!"})}catch(e){n.setState({copied:"Copy failed"})}n.resetCopyState=setTimeout(()=>n.setState({copied:null}),2e3)}),(s="copy")in i?Object.defineProperty(i,s,{value:l,enumerable:!0,configurable:!0,writable:!0}):i[s]=l,n.state={copied:null},n.ref=a.a.createRef(),n.copyFeatureSupported=document.queryCommandSupported("copy"),n.resetCopyState=null,n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&g(e,t)}(t,a.a.Component),n=t,(r=[{key:"componentWillUnmount",value:function(){this.resetCopyState&&clearTimeout(this.resetCopyState)}},{key:"render",value:function(){var e=a.a.createElement(u.a,{title:this.state.copied||"Copy"},a.a.createElement(l.a,{type:"copy",style:{cursor:"pointer"},onClick:this.copy}));return a.a.createElement(i.a,p({},this.props,{ref:this.ref,addonAfter:this.copyFeatureSupported&&e}))}}])&&m(n.prototype,r),o&&m(n,o),t}()},function(e,t,n){"use strict";n.r(t),n.d(t,"TimeAgo",function(){return b}),n.d(t,"default",function(){return y});var r=n(9),a=n.n(r),o=n(2),i=n(0),s=n.n(i),l=n(16),c=n.n(l),u=n(1),d=n.n(u),p=n(44),m=n(10),f=n(350),h=n(40),g=n.n(h);function b(e){var t=e.date,n=e.placeholder,r=e.autoUpdate,l=function(e){return(e=Object(o.isNil)(e)?null:a()(e))&&e.isValid()?e:null}(t),c=l?l.fromNow():n,u=l?l.format(m.clientConfig.dateTimeFormat):"",d=Object(f.a)();return Object(i.useEffect)(()=>{if(r){var e=setInterval(d,3e4);return()=>clearInterval(e)}},[r]),s.a.createElement(g.a,{title:u},s.a.createElement("span",{"data-test":"TimeAgo"},c))}function y(e){e.directive("amTimeAgo",()=>({link:function(e,t,n){var r=n.amTimeAgo;e.$watch(r,e=>{c.a.render(s.a.createElement(b,{date:e}),t[0])}),e.$on("$destroy",()=>{c.a.unmountComponentAtNode(t[0])})}})),e.component("rdTimeAgo",{bindings:{value:"="},controller:["$scope","$element",function(e,t){e.$watch("$ctrl.value",()=>{c.a.render(s.a.createElement(b,{date:this.value,placeholder:"-"}),t[0])}),e.$on("$destroy",()=>{c.a.unmountComponentAtNode(t[0])})}]})}b.propTypes={date:d.a.oneOfType([d.a.string,d.a.number,d.a.instanceOf(Date),p.Moment]),placeholder:d.a.string,autoUpdate:d.a.bool},b.defaultProps={date:null,placeholder:"",autoUpdate:!0},y.init=!0},function(e,t,n){"use strict";n.d(t,"c",function(){return i}),n.d(t,"b",function(){return s}),n.d(t,"a",function(){return l});var r=n(9),a=n.n(r),o=n(10);function i(e){if(!e)return"";var t=a()(e);return t.isValid()?t.format(o.clientConfig.dateTimeFormat):"-"}function s(e){if(!e)return"";var t=a()(e);return t.isValid()?t.format(o.clientConfig.dateFormat):"-"}function l(e){e.filter("toMilliseconds",()=>e=>1e3*e),e.filter("dateTime",()=>i)}l.init=!0},,function(e,t,n){"use strict";n.r(t),n.d(t,"CounterCard",function(){return b}),n.d(t,"QueuesTable",function(){return E}),n.d(t,"QueriesTable",function(){return S}),n.d(t,"OtherTasksTable",function(){return x});var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(113),c=n.n(l),u=n(136),d=n.n(u),p=n(226),m=n.n(p),f=n(291),h=n.n(f),g=n(24);function b(e){var t=e.title,n=e.value,r=e.loading;return o.a.createElement(m.a,{spinning:r},o.a.createElement(d.a,null,t,o.a.createElement("div",{className:"f-20"},n)))}b.propTypes={title:s.a.string.isRequired,value:s.a.oneOfType([s.a.number,s.a.string]),loading:s.a.bool.isRequired},b.defaultProps={value:""};var y=[{title:"Worker Name",dataIndex:"worker"},{title:"PID",dataIndex:"worker_pid"},{title:"Queue",dataIndex:"queue"},g.Columns.custom(e=>"active"===e?o.a.createElement("span",null,o.a.createElement(h.a,{status:"processing"})," Active"):o.a.createElement("span",null,o.a.createElement(h.a,{status:"warning"})," ",e),{title:"State",dataIndex:"state"}),g.Columns.timeAgo({title:"Start Time",dataIndex:"start_time"})],v=y.concat([g.Columns.timeAgo({title:"Enqueue Time",dataIndex:"enqueue_time"}),{title:"Query ID",dataIndex:"query_id"},{title:"Org ID",dataIndex:"org_id"},{title:"Data Source ID",dataIndex:"data_source_id"},{title:"User ID",dataIndex:"user_id"},{title:"Scheduled",dataIndex:"scheduled"}]),w=y.concat([{title:"Task Name",dataIndex:"task_name"}]),O=Object(r.map)(["Name","Active","Reserved","Waiting"],e=>({title:e,dataIndex:e.toLowerCase()})),j={loading:s.a.bool.isRequired,items:s.a.arrayOf(s.a.object).isRequired};function E(e){var t=e.loading,n=e.items;return o.a.createElement(c.a,{loading:t,columns:O,rowKey:"name",dataSource:n})}function S(e){var t=e.loading,n=e.items;return o.a.createElement(c.a,{loading:t,columns:v,rowKey:"task_id",dataSource:n})}function x(e){var t=e.loading,n=e.items;return o.a.createElement(c.a,{loading:t,columns:w,rowKey:"task_id",dataSource:n})}E.propTypes=j,S.propTypes=j,x.propTypes=j},,,,,,,,,,,,,,,,,,,,,function(e,t,n){e.exports=n.p+"images/redash_icon_small.png"},,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});var r=n(22);function a(e){return r.$http.get(e).then(e=>(function(e){return e.tags||[]})(e.data))}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return u});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(104),l=n.n(s),c=n(156);n(1334);function u(e){var t=e.activeTab,n=e.children;return a.a.createElement("div",{className:"container admin-page-layout"},a.a.createElement(c.PageHeader,{title:"Admin"}),a.a.createElement("div",{className:"bg-white tiled"},a.a.createElement(l.a,{className:"admin-page-layout-tabs",defaultActiveKey:t,animated:!1},a.a.createElement(l.a.TabPane,{key:"system_status",tab:a.a.createElement("a",{href:"admin/status"},"System Status")},"system_status"===t?n:null),a.a.createElement(l.a.TabPane,{key:"tasks",tab:a.a.createElement("a",{href:"admin/queries/tasks"},"Celery Status")},"tasks"===t?n:null),a.a.createElement(l.a.TabPane,{key:"outdated_queries",tab:a.a.createElement("a",{href:"admin/queries/outdated"},"Outdated Queries")},"outdated_queries"===t?n:null))))}u.propTypes={activeTab:i.a.string,children:i.a.node},u.defaultProps={activeTab:"system_status",children:null}},function(e,t,n){"use strict";n.r(t),n.d(t,"EmptyState",function(){return h}),n.d(t,"default",function(){return g});var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(17),c=n(3),u=n.n(c),d=n(276),p=n(10),m=n(157);n(1357);function f(e){var t=e.show,n=e.completed,r=e.text,a=e.url,i=e.urlText,s=e.onClick;return t?o.a.createElement("li",{className:u()({done:n})},o.a.createElement("a",{href:a,onClick:s},i)," ",r):null}function h(e){var t=e.icon,n=e.title,a=e.description,i=e.illustration,s=e.helpLink,l=e.onboardingMode,c={dataSource:!0,query:!0,alert:e.showAlertStep,dashboard:e.showDashboardStep,inviteUsers:e.showInviteStep},u={dataSource:m.default.objectCounters.data_sources>0,query:m.default.objectCounters.queries>0,alert:m.default.objectCounters.alerts>0,dashboard:m.default.objectCounters.dashboards>0,inviteUsers:m.default.objectCounters.users>1};return!l||Object(r.some)(Object(r.keys)(c),e=>c[e]&&!u[e])?o.a.createElement("div",{className:"empty-state bg-white tiled"},o.a.createElement("div",{className:"empty-state__summary"},n&&o.a.createElement("h4",null,n),o.a.createElement("h2",null,o.a.createElement("i",{className:t})),o.a.createElement("p",null,a),o.a.createElement("img",{src:"/static/images/illustrations/"+i+".svg",alt:i+" Illustration",width:"75%"})),o.a.createElement("div",{className:"empty-state__steps"},o.a.createElement("h4",null,"Let's get started"),o.a.createElement("ol",null,p.currentUser.isAdmin&&o.a.createElement(f,{show:c.dataSource,completed:u.dataSource,url:"data_sources/new",urlText:"Connect",text:"a Data Source"}),!p.currentUser.isAdmin&&o.a.createElement(f,{show:c.dataSource,completed:u.dataSource,text:"Ask an account admin to connect a data source"}),o.a.createElement(f,{show:c.query,completed:u.query,url:"queries/new",urlText:"Create",text:"your first Query"}),o.a.createElement(f,{show:c.alert,completed:u.alert,url:"alerts/new",urlText:"Create",text:"your first Alert"}),o.a.createElement(f,{show:c.dashboard,completed:u.dashboard,onClick:()=>d.default.showModal(),urlText:"Create",text:"your first Dashboard"}),o.a.createElement(f,{show:c.inviteUsers,completed:u.inviteUsers,url:"users/new",urlText:"Invite",text:"your team members"})),o.a.createElement("p",null,"Need more support?"," ",o.a.createElement("a",{href:s,target:"_blank",rel:"noopener noreferrer"},"See our Help",o.a.createElement("i",{className:"fa fa-external-link m-l-5","aria-hidden":"true"}))))):null}function g(e){e.component("emptyState",Object(l.react2angular)(h))}f.propTypes={show:s.a.bool.isRequired,completed:s.a.bool.isRequired,text:s.a.string.isRequired,url:s.a.string,urlText:s.a.string,onClick:s.a.func},f.defaultProps={url:null,urlText:null,onClick:null},h.propTypes={icon:s.a.string,title:s.a.string,description:s.a.string.isRequired,illustration:s.a.string.isRequired,helpLink:s.a.string.isRequired,onboardingMode:s.a.bool,showAlertStep:s.a.bool,showDashboardStep:s.a.bool,showInviteStep:s.a.bool},h.defaultProps={icon:null,title:null,onboardingMode:!1,showAlertStep:!1,showDashboardStep:!1,showInviteStep:!1},g.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return o});n(131);var r=n(2);function a(e,t,n){void 0===t[n]&&(t[n]={name:n,type:"column",data:[]}),t[n].data.push(e)}function o(e,t){var n={},o=t.columnMapping;return Object(r.each)(e,e=>{var t={$raw:e},i=null,s=0,l={},c=null,u=null,d=null;Object(r.forOwn)(e,(e,n)=>{var r=(n=""+n).split("::")||n.split("__"),a=r[0],p=o?o[n]:r[1];"unused"!==p&&("x"===p&&(s=e,t[p]=e),"y"===p&&(l[a]=e,t[p]=e),"yError"===p&&(c=e,t[p]=e),"series"===p&&(i=String(e)),"size"===p&&(t[p]=e,u=e),"zVal"===p&&(t[p]=e,d=e),"multiFilter"!==p&&"multi-filter"!==p||(i=String(e)))}),Object(r.isNil)(i)?Object(r.each)(l,(e,r)=>{t={x:s,y:e,$raw:t.$raw},null!==c&&(t.yError=c),null!==u&&(t.size=u),null!==d&&(t.zVal=d),a(t,n,r)}):a(t,n,i)}),Object(r.sortBy)(Object(r.values)(n),e=>{var n=e.name;return t.seriesOptions[n]?t.seriesOptions[n].zIndex:0})}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return f});n(96),n(90),n(14),n(15),n(249),n(19),n(55),n(240),n(11);var r=n(2),a=n(51),o=n(71);function i(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function s(e){return e.sortX&&"category"===e.xAxis.type&&"box"!==e.globalSeriesType}function l(e){var t=e["@@y"];return void 0!==e["@@yError"]&&(t="".concat(t," ± ").concat(e["@@yError"])),void 0!==e["@@yPercent"]&&(t="".concat(e["@@yPercent"]," (").concat(t,")")),void 0!==e["@@size"]&&(t="".concat(t,": ").concat(e["@@size"])),t}function c(e){return e["@@yPercent"]+" ("+e["@@y"]+")"}function u(e,t,n){var r=null;switch(t){case"x":r=n.xAxis.type;break;case"y":r=n.yAxis[0].type;break;case"y2":r=n.yAxis[1].type}return Object(o.normalizeValue)(e,r,n.dateTimeFormat)}function d(e,t){var n=Object(a.c)(t.numberFormat),o=Object(a.c)(t.percentFormat),i=function(e){return""===e.textFormat?"pie"===e.globalSeriesType?c:l:t=>Object(a.e)(e.textFormat,t)}(t),s=t.missingValuesAsZero?0:null;Object(r.each)(e,e=>{var a=t.seriesOptions[e.name]||{type:t.globalSeriesType};e.text=[],e.hover=[],("pie"===t.globalSeriesType?e.labels:e.x).forEach(l=>{var c={"@@name":e.name},d=e.sourceData.get(l)||{x:l,y:s,row:{x:l,y:s}},p=Object(r.includes)(["bubble","scatter"],a.type);c["@@x"]=u(d.row.x,"x",t),c["@@y"]=p?u(d.row.y,e.yaxis,t):n(d.y),void 0!==d.yError&&(c["@@yError"]=n(d.yError)),void 0!==d.size&&(c["@@size"]=n(d.size)),(t.series.percentValues||"pie"===t.globalSeriesType)&&(c["@@yPercent"]=o(Math.abs(d.yPercent))),Object(r.extend)(c,d.row.$raw),e.text.push(i(c))})})}function p(e,t){if(t.series.percentValues){var n=new Map;Object(r.each)(e,e=>{e.sourceData.forEach(e=>{var t=n.get(e.x)||0;n.set(e.x,t+Math.abs(e.y||0))})}),Object(r.each)(e,e=>{var a=[];e.sourceData.forEach(e=>{if(Object(r.isNil)(e.y)&&!t.missingValuesAsZero)e.yPercent=null;else{var o=n.get(e.x);e.yPercent=e.y/o*100}a.push(e.yPercent)}),e.y=a})}}function m(e,t){var n=function(e,t){var n=new Set;Object(r.each)(e,e=>{e.sourceData.forEach(e=>{n.add(e.x)})});var a=i(n);return t?Object(r.sortBy)(a,r.identity):a}(e,t.sortX),a=t.missingValuesAsZero?0:null;Object(r.each)(e,e=>{e.x=[],e.y=[],e.error_y.array=[],Object(r.each)(n,n=>{e.x.push(n);var r=e.sourceData.get(n);r?(e.y.push(t.series.percentValues?r.yPercent:r.y),e.error_y.array.push(r.yError)):(e.y.push(a),e.error_y.array.push(null))})})}function f(e,t){var n=Object(r.filter)(e,e=>!0===e.visible);if(n.length>0)switch(t.globalSeriesType){case"pie":!function(e,t){d(e,t)}(n,t);break;case"line":case"area":!function(e,t){if(p(e,t),t.series.stacking){m(e,t);var n={};Object(r.each)(e,e=>{e.y=Object(r.map)(e.y,(a,o)=>{if(Object(r.isNil)(a)&&!t.missingValuesAsZero)return null;var i=e.x[o],s=a+(n[i]||0);return n[i]=s,s})})}else s(t)&&m(e,t);d(e,t)}(n,t);break;case"heatmap":break;default:!function(e,t){p(e,t),t.series.stacking||s(t)&&m(e,t),d(e,t)}(n,t)}return e}},,,function(e,t,n){"use strict";n.r(t),n.d(t,"compile",function(){return l}),n.d(t,"parse",function(){return c}),n.d(t,"default",function(){return u});n(221);var r=n(2);function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s="-";function l(e,t){return e?t?s+e:e:null}function c(e){var t=(e=Object(r.isString)(e)?e:"").startsWith(s);return t&&(e=e.substring(1)),{field:""!==e?e:null,reverse:t}}var u=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.orderByField,r=t.orderByReverse;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i(this,"field",null),i(this,"reverse",!1),this.setField(n),this.setReverse(r)}return o(e,[{key:"setField",value:function(e){this.field=Object(r.isString)(e)&&""!==e?e:null}},{key:"setReverse",value:function(e){this.reverse=!!e}},{key:"compiled",get:function(){return l(this.field,this.reverse)},set:function(e){var t=c(e),n=t.field,r=t.reverse;this.field=n,this.reverse=r}}]),o(e,[{key:"toggleField",value:function(e){Object(r.isString)(e)&&""!==e&&(e===this.field?this.reverse=!this.reverse:(this.field=e,this.reverse=!1))}},{key:"sort",value:function(e){if(this.field)return e=Object(r.sortBy)(e,this.field),this.reverse&&e.reverse(),e}}]),e}()},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return c});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(40),l=n.n(s);function c(e){var t=e.isSelected,n=e.isStaged,r=e.alreadyInGroup;return n?a.a.createElement("i",{className:"fa fa-remove"}):r?a.a.createElement(l.a,{title:"Already in this group"},a.a.createElement("i",{className:"fa fa-check"})):t?a.a.createElement("i",{className:"fa fa-check"}):a.a.createElement("i",{className:"fa fa-angle-double-right"})}c.propTypes={isSelected:i.a.bool,isStaged:i.a.bool,alreadyInGroup:i.a.bool},c.defaultProps={isSelected:!1,isStaged:!1,alreadyInGroup:!1}},function(e,t,n){"use strict";n.r(t),n.d(t,"ColumnTypes",function(){return E}),n.d(t,"prepareColumns",function(){return S}),n.d(t,"filterRows",function(){return x}),n.d(t,"sortRows",function(){return P});n(19),n(27),n(55),n(96),n(90),n(14),n(15),n(11),n(253);var r=n(2),a=n(0),o=n.n(a),i=n(3),s=n.n(i),l=n(21),c=n.n(l),u=n(40),d=n.n(u),p=n(513),m=n(514),f=n(515),h=n(516),g=n(517),b=n(518),y=n(519);function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){w(e,t,n[t])})}return e}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function j(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var E={string:p.default,number:m.default,datetime:f.default,boolean:h.default,link:g.default,image:b.default,json:y.default};function S(e,t,n,a){e=Object(r.filter)(e,"visible"),e=Object(r.sortBy)(e,"order");var i=n.length>1,l=function(e){var t={};return Object(r.each)(e,(e,n)=>{var r=e.name,a=e.direction;t[r]={direction:a,index:n+1}}),t}(n),u=Object(r.map)(e,e=>{var t=l[e.name]&&"ascend"===l[e.name].direction,u=l[e.name]&&"descend"===l[e.name].direction,p=i&&l[e.name]?l[e.name].index:null,m={key:e.name,dataIndex:null,align:e.alignContent,title:o.a.createElement(o.a.Fragment,null,o.a.createElement(d.a,{placement:"top",title:e.title},o.a.createElement("div",{className:"table-visualization-heading","data-sort-column-index":p},e.title)),o.a.createElement("span",{className:"ant-table-column-sorter"},o.a.createElement("div",{className:"ant-table-column-sorter-inner ant-table-column-sorter-inner-full"},o.a.createElement(c.a,{className:"ant-table-column-sorter-up ".concat(t?"on":"off"),type:"caret-up",theme:"filled"}),o.a.createElement(c.a,{className:"ant-table-column-sorter-down ".concat(u?"on":"off"),type:"caret-down",theme:"filled"})))),onHeaderCell:()=>({className:s()("ant-table-column-has-actions ant-table-column-has-sorters",{"table-visualization-column-is-sorted":t||u}),onClick:t=>a(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=Object(r.findIndex)(t,t=>t.name===e),o={name:e,direction:"ascend"};return a>=0&&(o.direction=function(e){switch(e){case"ascend":return"descend";case"descend":return null;default:return"ascend"}}(t[a].direction)),n?o.direction?(a>=0?t[a]=o:t.push(o),j(t)):Object(r.filter)(t,t=>t.name!==e):o.direction?[o]:[]}(e.name,n,t.shiftKey))})},f=(0,E[e.displayAs])(e);return m.render=((t,n)=>({children:o.a.createElement(f,{row:n}),props:{className:"display-as-".concat(e.displayAs)}})),m});return u.push({key:"###Redash::Visualizations::Table::Spacer###",dataIndex:null,title:"",className:"table-visualization-spacer",render:()=>"",onHeaderCell:()=>({className:"table-visualization-spacer"})}),t&&(u=Object(r.map)(u,(e,n)=>{var r=e.title,a=e.align,o=e.key;return{key:o+"(parent)",title:r,align:a,onHeaderCell:e.onHeaderCell,children:[v({},O(e,["title","align","key","onHeaderCell"]),{key:o+"(child)",align:a,colSpan:0===n?u.length:0,title:0===n?t:null,onHeaderCell:()=>({className:"table-visualization-search"})})]}})),u}function x(e,t,n){if(""!==t&&n.length>0){t=t.toUpperCase();var a=Object(r.map)(n,e=>{var n=(0,E[e.displayAs])(e).prepareData;return e=>{var a=n(e).text;return Object(r.toString)(a).toUpperCase().indexOf(t)>=0}});return Object(r.filter)(e,e=>Object(r.some)(a,t=>t(e)))}return e}function P(e,t){if(0===t.length||0===e.length)return e;var n={ascend:1,descend:-1};return j(e).sort((e,a)=>{for(var o,i,s=0;s<t.length;s+=1){if(o=e[t[s].name],i=a[t[s].name],Object(r.isNil)(o)||o<i)return-1*n[t[s].direction];if(o>i||Object(r.isNil)(i))return 1*n[t[s].direction]}return 0})}},,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t);var r=n(22),a=n(12);t.default={get:()=>r.$http.get("api/settings/organization").then(e=>e.data),save:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Settings changes saved.";return r.$http.post("api/settings/organization",e).then(e=>(a.default.success(t),e.data)).catch(()=>{a.default.error("Failed saving changes.")})}}},,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return p});n(34),n(11),n(19),n(27);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(40),c=n.n(l);n(1116);function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function p(e){var t=e.className,n=e.color,a=e.title,i=e.size,s=d(e,["className","color","title","size"]),l=o.a.createElement("span",u({className:"color-swatch ".concat(t),style:{backgroundColor:n,width:i}},s));return Object(r.isString)(a)&&""!==a?o.a.createElement(c.a,{title:a,mouseEnterDelay:0,mouseLeaveDelay:0},l):l}p.propTypes={className:s.a.string,title:s.a.string,color:s.a.string,size:s.a.number},p.defaultProps={className:"",title:null,color:"transparent",size:12}},,function(e,t,n){"use strict";n.r(t),n.d(t,"General",function(){return m}),n.d(t,"DatabaseMetrics",function(){return f}),n.d(t,"Queues",function(){return h}),n.d(t,"Manager",function(){return g});n(14),n(15),n(11);var r=n(2),a=n(0),o=n.n(a),i=n(85),s=n.n(i),l=n(136),c=n.n(l),u=n(170),d=n(45);function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function m(e){var t=e.info;return t=Object(r.toPairs)(t),o.a.createElement(c.a,{title:"General",size:"small"},0===t.length&&o.a.createElement("div",{className:"text-muted text-center"},"No data"),t.length>0&&o.a.createElement(s.a,{size:"small",itemLayout:"vertical",dataSource:t,renderItem:e=>{var t=p(e,2),n=t[0],r=t[1];return o.a.createElement(s.a.Item,{extra:o.a.createElement("span",{className:"badge"},r)},Object(d.toHuman)(n))}}))}function f(e){var t=e.info;return o.a.createElement(c.a,{title:"Redash Database",size:"small"},0===t.length&&o.a.createElement("div",{className:"text-muted text-center"},"No data"),t.length>0&&o.a.createElement(s.a,{size:"small",itemLayout:"vertical",dataSource:t,renderItem:e=>{var t=p(e,2),n=t[0],r=t[1];return o.a.createElement(s.a.Item,{extra:o.a.createElement("span",{className:"badge"},Object(d.prettySize)(r))},n)}}))}function h(e){var t=e.info;return t=Object(r.toPairs)(t),o.a.createElement(c.a,{title:"Queues",size:"small"},0===t.length&&o.a.createElement("div",{className:"text-muted text-center"},"No data"),t.length>0&&o.a.createElement(s.a,{size:"small",itemLayout:"vertical",dataSource:t,renderItem:e=>{var t=p(e,2),n=t[0],r=t[1];return o.a.createElement(s.a.Item,{extra:o.a.createElement("span",{className:"badge"},r.size)},n)}}))}function g(e){var t=e.info,n=t?[o.a.createElement(s.a.Item,{extra:o.a.createElement("span",{className:"badge"},o.a.createElement(u.TimeAgo,{date:t.lastRefreshAt,placeholder:"n/a"}))},"Last Refresh"),o.a.createElement(s.a.Item,{extra:o.a.createElement("span",{className:"badge"},o.a.createElement(u.TimeAgo,{date:t.startedAt,placeholder:"n/a"}))},"Started"),o.a.createElement(s.a.Item,{extra:o.a.createElement("span",{className:"badge"},t.outdatedQueriesCount)},"Outdated Queries Count")]:[];return o.a.createElement(c.a,{title:"Manager",size:"small"},!t&&o.a.createElement("div",{className:"text-muted text-center"},"No data"),t&&o.a.createElement(s.a,{size:"small",itemLayout:"vertical",dataSource:n,renderItem:e=>e}))}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(2),l=n(18),c=n.n(l),u=n(85),d=n.n(u),p=n(37),m=n.n(p),f=n(31),h=n.n(f),g=n(526),b=n.n(g),y=n(33),v=n(122),w=n(155),O=n(119),j=n(92),E=n(100);function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function x(){return(x=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function P(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function k(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var $=b.a.Step,q=h.a.Search,N={SELECT_TYPE:0,CONFIGURE_IT:1,DONE:2},D=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];return r=this,a=(e=C(t)).call.apply(e,[this].concat(i)),n=!a||"object"!==S(a)&&"function"!=typeof a?k(r):a,T(k(n),"state",{searchText:"",selectedType:null,savingSource:!1,currentStep:N.SELECT_TYPE}),T(k(n),"selectType",e=>{n.setState({selectedType:e,currentStep:N.CONFIGURE_IT})}),T(k(n),"resetType",()=>{n.state.currentStep===N.CONFIGURE_IT&&n.setState({searchText:"",selectedType:null,currentStep:N.SELECT_TYPE})}),T(k(n),"createSource",(e,t,r)=>{var a=n.state,o=a.selectedType;a.savingSource||(n.setState({savingSource:!0,currentStep:N.DONE}),n.props.onCreate(o,e).then(e=>{t("Saved."),n.props.dialog.close({success:!0,data:e})}).catch(e=>{n.setState({savingSource:!1,currentStep:N.CONFIGURE_IT}),r(e.message)}))}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_(e,t)}(t,a.a.Component),n=t,(r=[{key:"renderTypeSelector",value:function(){var e=this.props.types,t=this.state.searchText,n=e.filter(e=>Object(s.isEmpty)(t)||Object(s.includes)(e.name.toLowerCase(),t.toLowerCase()));return a.a.createElement("div",{className:"m-t-10"},a.a.createElement(q,{placeholder:"Search...",onChange:e=>this.setState({searchText:e.target.value}),autoFocus:!0,"data-test":"SearchSource"}),a.a.createElement("div",{className:"scrollbox p-5 m-t-10",style:{minHeight:"30vh",maxHeight:"40vh"}},Object(s.isEmpty)(n)?a.a.createElement(w.default,{className:""}):a.a.createElement(d.a,{size:"small",dataSource:n,renderItem:e=>this.renderItem(e)})))}},{key:"renderForm",value:function(){var e=this.props,t=e.imageFolder,n=e.helpTriggerPrefix,r=this.state.selectedType,o=j.default.getFields(r),i="".concat(n).concat(Object(s.toUpper)(r.type));return a.a.createElement("div",{className:"p-5"},a.a.createElement("div",{className:"d-flex justify-content-center align-items-center"},a.a.createElement("img",{className:"p-5",src:"".concat(t,"/").concat(r.type,".png"),alt:r.name,width:"48"}),a.a.createElement("h4",{className:"m-0"},r.name)),a.a.createElement("div",{className:"text-right"},E.TYPES[i]&&a.a.createElement(E.HelpTrigger,{className:"f-13",type:i},"Setup Instructions ",a.a.createElement("i",{className:"fa fa-question-circle"}))),a.a.createElement(O.default,{id:"sourceForm",fields:o,onSubmit:this.createSource,feedbackIcons:!0,hideSubmitButton:!0}))}},{key:"renderItem",value:function(e){var t=this.props.imageFolder;return a.a.createElement(d.a.Item,{className:"p-l-10 p-r-10 clickable",onClick:()=>this.selectType(e)},a.a.createElement(v.PreviewCard,{title:e.name,imageUrl:"".concat(t,"/").concat(e.type,".png"),roundedImage:!1},a.a.createElement("i",{className:"fa fa-angle-double-right"})))}},{key:"render",value:function(){var e=this.state,t=e.currentStep,n=e.savingSource,r=this.props,o=r.dialog,i=r.sourceType;return a.a.createElement(m.a,x({},o.props,{title:"Create a New ".concat(i),footer:t===N.SELECT_TYPE?[a.a.createElement(c.a,{key:"cancel",onClick:()=>o.dismiss()},"Cancel"),a.a.createElement(c.a,{key:"submit",type:"primary",disabled:!0},"Create")]:[a.a.createElement(c.a,{key:"previous",onClick:this.resetType},"Previous"),a.a.createElement(c.a,{key:"submit",htmlType:"submit",form:"sourceForm",type:"primary",loading:n,"data-test":"CreateSourceButton"},"Create")]}),a.a.createElement("div",{"data-test":"CreateSourceDialog"},a.a.createElement(b.a,{className:"hidden-xs m-b-10",size:"small",current:t,progressDot:!0},t===N.CONFIGURE_IT?a.a.createElement($,{title:a.a.createElement("a",null,"Type Selection"),className:"clickable",onClick:this.resetType}):a.a.createElement($,{title:"Type Selection"}),a.a.createElement($,{title:"Configuration"}),a.a.createElement($,{title:"Done"})),t===N.SELECT_TYPE&&this.renderTypeSelector(),t!==N.SELECT_TYPE&&this.renderForm()))}}])&&P(n.prototype,r),o&&P(n,o),t}();T(D,"propTypes",{dialog:y.DialogPropType.isRequired,types:i.a.arrayOf(i.a.object),sourceType:i.a.string.isRequired,imageFolder:i.a.string.isRequired,helpTriggerPrefix:i.a.string,onCreate:i.a.func.isRequired}),T(D,"defaultProps",{types:[],helpTriggerPrefix:null}),t.default=Object(y.wrap)(D)},,function(e,t,n){"use strict";n.r(t);n(19),n(27),n(14),n(15),n(11),n(34);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(101),c=n.n(l),u=n(37),d=n.n(u),p=n(35),m=n.n(p),f=n(18),h=n.n(f),g=n(26),b=n.n(g),y=n(31),v=n.n(y),w=n(202),O=n.n(w),j=n(33),E=n(269),S=n(39);function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){P(e,t,n[t])})}return e}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function k(){return(k=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var _=b.a.Option,T={labelCol:{span:6},wrapperCol:{span:16}};function $(e){return Object(r.capitalize)(Object(r.words)(e).join(" "))}function q(e){var t=e.name,n=e.type,a=e.onChange,i=e.existingNames,s=e.setValidation,l="",c="";return t?Object(r.includes)(i,t)?(l="Parameter with this name already exists",s(!1),c="error"):(function(e){return/-range/.test(e)}(n)&&(l=o.a.createElement(o.a.Fragment,null,"Appears in query as "," ",o.a.createElement("code",{style:{display:"inline-block",color:"inherit"}},"{{".concat(t,".start}} {{").concat(t,".end}}")))),s(!0)):(l="Choose a keyword for this parameter",s(!1)),o.a.createElement(m.a.Item,k({required:!0,label:"Keyword",help:l,validateStatus:c},T),o.a.createElement(v.a,{onChange:e=>a(e.target.value),autoFocus:!0}))}function N(e){var t,n,i,s=C(Object(a.useState)(Object(r.clone)(e.parameter)),2),l=s[0],u=s[1],p=C(Object(a.useState)(!0),2),f=p[0],g=p[1],y=C(Object(a.useState)(),2),w=y[0],j=y[1],P=!e.parameter.name;return Object(a.useEffect)(()=>{var t=e.parameter.queryId;t&&S.Query.get({id:t},e=>{j(e)})},[]),o.a.createElement(d.a,k({},e.dialog.props,{title:P?"Add Parameter":l.name,width:600,footer:[o.a.createElement(h.a,{key:"cancel",onClick:e.dialog.dismiss},"Cancel"),o.a.createElement(h.a,{key:"submit",htmlType:"submit",disabled:!(f&&""!==l.title&&("query"!==l.type||l.queryId)),type:"primary",form:"paramForm","data-test":"SaveParameterSettings"},P?"Add Parameter":"OK")]}),o.a.createElement(m.a,{layout:"horizontal",onSubmit:function(t){l.title||(l.title=$(l.name),u(l)),e.dialog.close(l),t.preventDefault()},id:"paramForm"},P&&o.a.createElement(q,{name:l.name,onChange:e=>u(x({},l,{name:e})),setValidation:g,existingNames:e.existingParams,type:l.type}),o.a.createElement(m.a.Item,k({label:"Title"},T),o.a.createElement(v.a,{value:Object(r.isNull)(l.title)?$(l.name):l.title,onChange:e=>u(x({},l,{title:e.target.value})),"data-test":"ParameterTitleInput"})),o.a.createElement(m.a.Item,k({label:"Type"},T),o.a.createElement(b.a,{value:l.type,onChange:e=>u(x({},l,{type:e})),"data-test":"ParameterTypeSelect"},o.a.createElement(_,{value:"text","data-test":"TextParameterTypeOption"},"Text"),o.a.createElement(_,{value:"number","data-test":"NumberParameterTypeOption"},"Number"),o.a.createElement(_,{value:"enum"},"Dropdown List"),o.a.createElement(_,{value:"query"},"Query Based Dropdown List"),o.a.createElement(_,{disabled:!0,key:"dv1"},o.a.createElement(O.a,{className:"select-option-divider"})),o.a.createElement(_,{value:"date","data-test":"DateParameterTypeOption"},"Date"),o.a.createElement(_,{value:"datetime-local","data-test":"DateTimeParameterTypeOption"},"Date and Time"),o.a.createElement(_,{value:"datetime-with-seconds"},"Date and Time (with seconds)"),o.a.createElement(_,{disabled:!0,key:"dv2"},o.a.createElement(O.a,{className:"select-option-divider"})),o.a.createElement(_,{value:"date-range","data-test":"DateRangeParameterTypeOption"},"Date Range"),o.a.createElement(_,{value:"datetime-range"},"Date and Time Range"),o.a.createElement(_,{value:"datetime-range-with-seconds"},"Date and Time Range (with seconds)"))),"enum"===l.type&&o.a.createElement(m.a.Item,k({label:"Values",help:"Dropdown list values (newline delimited)"},T),o.a.createElement(v.a.TextArea,{rows:3,value:l.enumOptions,onChange:e=>u(x({},l,{enumOptions:e.target.value}))})),"query"===l.type&&o.a.createElement(m.a.Item,k({label:"Query",help:"Select query to load dropdown values from"},T),o.a.createElement(E.QuerySelector,{selectedQuery:w,onChange:e=>u(x({},l,{queryId:e&&e.id})),type:"select"})),("enum"===l.type||"query"===l.type)&&o.a.createElement(m.a.Item,k({className:"m-b-0",label:" ",colon:!1},T),o.a.createElement(c.a,{defaultChecked:!!l.multiValuesOptions,onChange:e=>u(x({},l,{multiValuesOptions:e.target.checked?{prefix:"",suffix:"",separator:","}:null})),"data-test":"AllowMultipleValuesCheckbox"},"Allow multiple values")),("enum"===l.type||"query"===l.type)&&l.multiValuesOptions&&o.a.createElement(m.a.Item,k({label:"Quotation",help:o.a.createElement(o.a.Fragment,null,"Placed in query as: ",o.a.createElement("code",null,(t=l.multiValuesOptions,n=t.prefix,i=t.suffix,["value1","value2","value3"].map(e=>"".concat(n).concat(e).concat(i)).join(","))))},T),o.a.createElement(b.a,{value:l.multiValuesOptions.prefix,onChange:e=>u(x({},l,{multiValuesOptions:x({},l.multiValuesOptions,{prefix:e,suffix:e})})),"data-test":"QuotationSelect"},o.a.createElement(_,{value:""},"None (default)"),o.a.createElement(_,{value:"'"},"Single Quotation Mark"),o.a.createElement(_,{value:'"',"data-test":"DoubleQuotationMarkOption"},"Double Quotation Mark")))))}q.propTypes={name:s.a.string.isRequired,onChange:s.a.func.isRequired,existingNames:s.a.arrayOf(s.a.string).isRequired,setValidation:s.a.func.isRequired,type:s.a.string.isRequired},N.propTypes={parameter:s.a.object.isRequired,dialog:j.DialogPropType.isRequired,existingParams:s.a.arrayOf(s.a.string)},N.defaultProps={existingParams:[]},t.default=Object(j.wrap)(N)},function(e,t,n){"use strict";n.r(t),n.d(t,"QuerySelector",function(){return C}),n.d(t,"default",function(){return k});n(11),n(55),n(96),n(655),n(95),n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(3),l=n.n(s),c=n(17),u=n(2),d=n(31),p=n.n(d),m=n(26),f=n.n(m),h=n(39),g=n(12),b=n(128);function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function w(e,t){return!t||"object"!==v(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function j(e,t){return(j=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function E(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}var S=200,x=f.a.Option,P=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),w(this,O(t).call(this,"stale search"))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&j(e,t)}(t,E(Error)),t}();function C(e){var t=y(Object(r.useState)(),2),n=t[0],o=t[1],i=y(Object(r.useState)(),2),s=i[0],c=i[1],d=y(Object(r.useState)([]),2),m=d[0],v=d[1],w=y(Object(r.useState)(),2),O=w[0],j=w[1],E=!1,C=Object(u.debounce)(function(e){c(!0),function(e){return e?h.Query.query({q:e}).$promise.then(e=>{var t=e.results;return Promise.resolve(t)}):h.Query.recent().$promise.then(e=>{var t=e.filter(e=>!e.is_draft);return Promise.resolve(t)})}(e).then($).then(e=>{v(e),c(!1)}).catch(e=>{e instanceof P||c(!1)})},S),k="Search a query by name",_=a.a.createElement("i",{className:"fa fa-times",onClick:()=>q(null)}),T=a.a.createElement("i",{className:l()("fa fa-spinner fa-pulse",{hidden:!s})});function $(e){return E?Promise.reject(new P):Promise.resolve(e)}function q(t){var n=null;t&&((n=Object(u.find)(m,{id:t}))||g.default.error("Something went wrong...","Couldn't select query")),o(n?null:""),j(n),e.onChange(n)}if(Object(r.useEffect)(()=>{e.selectedQuery&&j(e.selectedQuery)},[e.selectedQuery]),Object(r.useEffect)(()=>null===n?(v(null),()=>{}):(C(n),()=>{C.cancel(),E=!0}),[n]),e.disabled)return a.a.createElement(p.a,{value:O&&O.name,placeholder:k,disabled:!0});if("select"===e.type){var N=O?_:null,D=O?O.name:n;return a.a.createElement(f.a,{showSearch:!0,dropdownMatchSelectWidth:!1,placeholder:k,value:D||void 0,onSearch:o,onChange:q,suffixIcon:s?T:N,notFoundContent:null,filterOption:!1,defaultActiveFirstOption:!1},m&&m.map(e=>{var t=e.is_draft;return a.a.createElement(x,{value:e.id,key:e.id,disabled:t},e.name," ",a.a.createElement(b.QueryTagsControl,{isDraft:e.is_draft,tags:e.tags,className:l()("inline-tags-control",{disabled:t})}))}))}return a.a.createElement(a.a.Fragment,null,O?a.a.createElement(p.a,{value:O.name,suffix:_,readOnly:!0}):a.a.createElement(p.a,{placeholder:k,value:n,onChange:e=>o(e.target.value),suffix:T}),a.a.createElement("div",{className:"scrollbox",style:{maxHeight:"50vh",marginTop:15}},m&&(m.length?a.a.createElement("div",{className:"list-group"},m.map(e=>a.a.createElement("a",{className:l()("query-selector-result","list-group-item",{inactive:e.is_draft}),key:e.id,onClick:()=>q(e.id),"data-test":"QueryId".concat(e.id)},e.name," ",a.a.createElement(b.QueryTagsControl,{isDraft:e.is_draft,tags:e.tags,className:"inline-tags-control"})))):a.a.createElement("div",{className:"text-muted"},"No results matching search term."))))}function k(e){e.component("querySelector",Object(c.react2angular)(C))}C.propTypes={onChange:i.a.func.isRequired,selectedQuery:i.a.object,type:i.a.oneOf(["select","default"]),disabled:i.a.bool},C.defaultProps={selectedQuery:null,type:"default",disabled:!1},k.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return u});n(34),n(11),n(19),n(27);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(22);function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function u(e){var t=e.children,n=c(e,["children"]);return a.a.createElement("div",l({},n,{dangerouslySetInnerHTML:{__html:Object(s.$sanitize)(t)}}))}u.propTypes={children:i.a.string},u.defaultProps={children:""}},function(e,t,n){"use strict";n.r(t),n.d(t,"NoTaggedObjectsFound",function(){return u}),n.d(t,"default",function(){return d});n(11),n(19),n(249),n(55),n(96);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(17),l=n(78),c=n(128);function u(e){var t=e.objectType,n=e.tags;return a.a.createElement(l.BigMessage,{icon:"fa-tags"},"No ",t," found tagged with ",a.a.createElement(c.TagsControl,{className:"inline-tags-control",tags:Array.from(n)}),".")}function d(e){e.component("noTaggedObjectsFound",Object(s.react2angular)(u))}u.propTypes={objectType:i.a.string.isRequired,tags:i.a.oneOfType([i.a.array,i.a.objectOf(Set)]).isRequired},d.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"KeyboardShortcuts",function(){return s}),n.d(t,"default",function(){return d});n(55),n(96),n(90),n(14),n(15),n(11),n(131);var r=n(2),a=n(527),o=n.n(a);n(1280);function i(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var s=null,l={};function c(e,t){e.preventDefault(),e.retunValue=!1,Object(r.each)(l[t],e=>e())}function u(){this.modKey=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"Cmd":"Ctrl",this.bind=function(e){Object(r.each)(e,(e,t)=>{var n=t.toLowerCase().split(",").map(r.trim);Object(r.each)(n,t=>{l[t]=[].concat(i(Object(r.without)(l[t],e)),[e]),o.a.bindGlobal(t,c)})})},this.unbind=function(e){Object(r.each)(e,(e,t)=>{var n=t.toLowerCase().split(",").map(r.trim);Object(r.each)(n,t=>{l[t]=Object(r.without)(l[t],e),0===l[t].length&&(l[t]=void 0,o.a.unbind(t))})})}}function d(e){e.service("KeyboardShortcuts",u),e.run(["$injector",e=>{s=e.get("KeyboardShortcuts")}])}d.init=!0},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(29),n(131);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(26),l=n.n(s),c=n(31),u=n.n(c),d=n(93),p=n.n(d),m=n(470),f=n(471),h=n(2),g=n(472);n(1284);function b(e){return(b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function O(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function j(e,t){return(j=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var S=l.a.Option,x={maxTagCount:3,maxTagTextLength:10,maxTagPlaceholder:e=>"+".concat(e.length," more")},P=function(e){function t(e){var n,r,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,a=w(t).call(this,e),n=!a||"object"!==b(a)&&"function"!=typeof a?O(r):a,E(O(n),"componentDidUpdate",e=>{var t=n.props,r=t.value,a=t.parameter;e.value===r&&e.parameter===a||n.setState({value:a.hasPendingValue?a.pendingValue:r,isDirty:a.hasPendingValue})}),E(O(n),"onSelect",e=>{var t=Object(h.toString)(e)!==Object(h.toString)(n.props.value);n.setState({value:e,isDirty:t}),n.props.onSelect(e,t)}),n.state={value:e.parameter.hasPendingValue?e.parameter.pendingValue:e.value,isDirty:e.parameter.hasPendingValue},n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&j(e,t)}(t,a.a.Component),n=t,(r=[{key:"renderDateParameter",value:function(){var e=this.props,t=e.type,n=e.parameter,r=this.state.value;return a.a.createElement(m.default,{type:t,className:this.props.className,value:r,parameter:n,onSelect:this.onSelect})}},{key:"renderDateRangeParameter",value:function(){var e=this.props,t=e.type,n=e.parameter,r=this.state.value;return a.a.createElement(f.default,{type:t,className:this.props.className,value:r,parameter:n,onSelect:this.onSelect})}},{key:"renderEnumInput",value:function(){var e=this.props,t=e.enumOptions,n=e.allowMultipleValues,r=this.state.value,o=t.split("\n").filter(e=>""!==e);return a.a.createElement(l.a,y({className:this.props.className,mode:n?"multiple":"default",optionFilterProp:"children",disabled:0===o.length,value:r,onChange:this.onSelect,dropdownMatchSelectWidth:!1,showSearch:!0,showArrow:!0,style:{minWidth:60},notFoundContent:null},x),o.map(e=>a.a.createElement(S,{key:e,value:e},e)))}},{key:"renderQueryBasedInput",value:function(){var e=this.props,t=e.queryId,n=e.parameter,r=e.allowMultipleValues,o=this.state.value;return a.a.createElement(g.QueryBasedParameterInput,y({className:this.props.className,mode:r?"multiple":"default",optionFilterProp:"children",parameter:n,value:o,queryId:t,onSelect:this.onSelect,style:{minWidth:60}},x))}},{key:"renderNumberInput",value:function(){var e=this.props.className,t=this.state.value,n=e=>isNaN(e)?void 0:e;return a.a.createElement(p.a,{className:e,value:n(t),onChange:e=>this.onSelect(n(e))})}},{key:"renderTextInput",value:function(){var e=this.props.className,t=this.state.value;return a.a.createElement(u.a,{className:e,value:t,"data-test":"TextParamInput",onChange:e=>this.onSelect(e.target.value)})}},{key:"renderInput",value:function(){switch(this.props.type){case"datetime-with-seconds":case"datetime-local":case"date":return this.renderDateParameter();case"datetime-range-with-seconds":case"datetime-range":case"date-range":return this.renderDateRangeParameter();case"enum":return this.renderEnumInput();case"query":return this.renderQueryBasedInput();case"number":return this.renderNumberInput();default:return this.renderTextInput()}}},{key:"render",value:function(){var e=this.state.isDirty;return a.a.createElement("div",{className:"parameter-input","data-dirty":e||null},this.renderInput())}}])&&v(n.prototype,r),o&&v(n,o),t}();E(P,"propTypes",{type:i.a.string,value:i.a.any,enumOptions:i.a.string,queryId:i.a.number,parameter:i.a.any,allowMultipleValues:i.a.bool,onSelect:i.a.func,className:i.a.string}),E(P,"defaultProps",{type:"text",value:null,enumOptions:"",queryId:null,parameter:null,allowMultipleValues:!1,onSelect:()=>{},className:""}),t.default=P},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(2),l=n(168),c=n.n(l),u=n(21),d=n.n(u),p=n(84),m=n.n(p),f=n(230),h=n.n(f),g=(n(1282),h.a.Text);function b(e){var t=e.options,n=e.selectedDynamicValue,o=e.onSelect,i=e.enabled,l=a.a.createElement(m.a,{className:"dynamic-menu",onClick:e=>{var n=e.key;return o(Object(s.get)(t,n,"static"))},selectedKeys:["".concat(Object(s.findIndex)(t,{value:n}))],"data-test":"DynamicButtonMenu"},t.map((e,t)=>a.a.createElement(m.a.Item,{key:t},e.name," ",e.label&&a.a.createElement("em",null,Object(s.isFunction)(e.label)?e.label():e.label))),i&&a.a.createElement(m.a.Divider,null),i&&a.a.createElement(m.a.Item,null,a.a.createElement(d.a,{type:"arrow-left"}),a.a.createElement(g,{type:"secondary"},"Back to Static Value"))),u=Object(r.useRef)(null);return a.a.createElement("div",{ref:u},a.a.createElement("a",{onClick:e=>e.stopPropagation()},a.a.createElement(c.a.Button,{overlay:l,className:"dynamic-button",placement:"bottomRight",trigger:["click"],icon:a.a.createElement(d.a,{type:"thunderbolt",theme:i?"twoTone":"outlined",className:"dynamic-icon"}),getPopupContainer:()=>u.current,"data-test":"DynamicButton"})))}b.propTypes={options:i.a.arrayOf(i.a.object),selectedDynamicValue:i.a.string,onSelect:i.a.func,enabled:i.a.bool},b.defaultProps={options:[],selectedDynamicValue:null,onSelect:()=>{},enabled:!1},t.default=b},function(e,t,n){"use strict";n.r(t);n(34),n(55),n(96),n(90),n(14),n(15),n(11),n(29),n(116),n(95);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(3),c=n.n(l),u=n(37),d=n.n(u),p=n(31),m=n.n(p),f=n(85),h=n.n(f),g=n(33),b=n(78),y=n(46),v=n(12);function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function O(){return(O=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function j(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function E(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function x(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function P(e,t){return(P=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function C(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var k=function(e){function t(){var e,n,a,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,s=new Array(i),l=0;l<i;l++)s[l]=arguments[l];return a=this,o=(e=S(t)).call.apply(e,[this].concat(s)),n=!o||"object"!==w(o)&&"function"!=typeof o?x(a):o,C(x(n),"state",{searchTerm:"",loading:!1,items:[],selected:[],saveInProgress:!1}),C(x(n),"loadItems",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";n.setState({searchTerm:e,loading:!0},()=>{n.props.searchItems(e).then(t=>{n.state.searchTerm===e&&n.setState({items:t,loading:!1})}).catch(()=>{n.state.searchTerm===e&&n.setState({items:[],loading:!1})})})}),C(x(n),"search",Object(r.debounce)(n.loadItems,200)),n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&P(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){this.loadItems()}},{key:"isSelected",value:function(e){var t=this.props.itemKey(e);return!!Object(r.find)(this.state.selected,e=>this.props.itemKey(e)===t)}},{key:"toggleItem",value:function(e){if(this.isSelected(e)){var t=this.props.itemKey(e);this.setState(e=>{var n=e.selected;return{selected:Object(r.filter)(n,e=>this.props.itemKey(e)!==t)}})}else this.setState(t=>{var n=t.selected;return{selected:[].concat(j(n),[e])}})}},{key:"save",value:function(){this.setState({saveInProgress:!0},()=>{var e=this.state.selected;Promise.resolve(this.props.save(e)).then(()=>{this.props.dialog.close(e)}).catch(()=>{this.setState({saveInProgress:!1}),v.default.error("Failed to save some of selected items.")})})}},{key:"renderItem",value:function(e,t){var n=this.props,r=n.renderItem,a=n.renderStagedItem,i=this.isSelected(e),s=(t&&a||r)(e,{isSelected:i}),l=s.content,u=s.className,d=s.isDisabled;return o.a.createElement(h.a.Item,{className:c()("p-l-10","p-r-10",{clickable:!d,disabled:d},u),onClick:d?null:()=>this.toggleItem(e)},l)}},{key:"render",value:function(){var e=this.props,t=e.dialog,n=e.dialogTitle,r=e.inputPlaceholder,a=e.selectedItemsTitle,i=this.state,s=i.loading,l=i.saveInProgress,c=i.items,u=i.selected,p=c.length>0;return o.a.createElement(d.a,O({},t.props,{width:"80%",title:n,okText:"Save",okButtonProps:{loading:l,disabled:0===u.length},onOk:()=>this.save()}),o.a.createElement("div",{className:"d-flex align-items-center m-b-10"},o.a.createElement("div",{className:"w-50 m-r-10"},o.a.createElement(m.a.Search,{defaultValue:this.state.searchTerm,onChange:e=>this.search(e.target.value),placeholder:r,autoFocus:!0})),o.a.createElement("div",{className:"w-50 m-l-10"},o.a.createElement("h5",{className:"m-0"},a))),o.a.createElement("div",{className:"d-flex align-items-stretch",style:{minHeight:"30vh",maxHeight:"50vh"}},o.a.createElement("div",{className:"w-50 m-r-10 scrollbox"},s&&o.a.createElement(y.default,{className:""}),!s&&!p&&o.a.createElement(b.BigMessage,{icon:"fa-search",message:"No items match your search.",className:""}),!s&&p&&o.a.createElement(h.a,{size:"small",dataSource:c,renderItem:e=>this.renderItem(e,!1)})),o.a.createElement("div",{className:"w-50 m-l-10 scrollbox"},u.length>0&&o.a.createElement(h.a,{size:"small",dataSource:u,renderItem:e=>this.renderItem(e,!0)}))))}}])&&E(n.prototype,a),i&&E(n,i),t}();C(k,"propTypes",{dialog:g.DialogPropType.isRequired,dialogTitle:s.a.string,inputPlaceholder:s.a.string,selectedItemsTitle:s.a.string,searchItems:s.a.func.isRequired,itemKey:s.a.func,renderItem:s.a.func,renderStagedItem:s.a.func,save:s.a.func}),C(k,"defaultProps",{dialogTitle:"Add Items",inputPlaceholder:"Search...",selectedItemsTitle:"Selected items",itemKey:e=>e.id,renderItem:()=>"",renderStagedItem:null,save:e=>e}),t.default=Object(g.wrap)(k)},function(e,t,n){"use strict";n.r(t);n(34),n(14),n(15),n(11),n(116),n(114);var r=n(2),a=n(0),o=n.n(a),i=n(37),s=n.n(i),l=n(31),c=n.n(l),u=n(118),d=n(33),p=n(22),m=n(58),f=n(52);function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function b(e){var t=e.dialog,n=g(Object(a.useState)(""),2),i=n[0],l=n[1],d=g(Object(a.useState)(!1),2),b=d[0],y=d[1],v=g(Object(a.useState)(!1),2),w=v[0],O=v[1],j=Object(a.useRef)(),E=f.policy.isCreateDashboardEnabled();function S(){""!==i&&(O(!0),p.$http.post("api/dashboards",{name:i}).then(e=>{var n=e.data;t.close(),p.$location.path("/dashboard/".concat(n.slug)).search("edit").replace()}),Object(m.default)("create","dashboard"))}return Object(a.useEffect)(()=>{var e=setTimeout(()=>{j.current&&j.current.focus()},100);return()=>clearTimeout(e)},[]),o.a.createElement(s.a,h({},t.props,E?{}:{footer:null},{title:"New Dashboard",okText:"Save",cancelText:"Close",okButtonProps:{disabled:!b||w,loading:w,"data-test":"DashboardSaveButton"},cancelButtonProps:{disabled:w},onOk:S,closable:!w,maskClosable:!w,wrapProps:{"data-test":"CreateDashboardDialog"}}),o.a.createElement(u.default,{name:"CreateDashboardDialogExtra",disabled:!E},o.a.createElement(c.a,{ref:j,defaultValue:i,onChange:function(e){var t=Object(r.trim)(e.target.value);l(t),y(""!==t)},onPressEnter:S,placeholder:"Dashboard Name",disabled:w})))}b.propTypes={dialog:d.DialogPropType.isRequired},t.default=Object(d.wrap)(b)},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return y});n(14),n(15),n(19),n(27),n(29),n(11);var r=n(31),a=n.n(r),o=n(2),i=n(1),s=n.n(i),l=n(0),c=n.n(l),u=n(155);n(1340);function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=a.a.Search,y=function(e){function t(e){var n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,a=m(t).call(this,e),n=!a||"object"!==d(a)&&"function"!=typeof a?f(r):a,g(f(n),"state",{searchText:""}),n.items=[];var o=1;return e.items.forEach(e=>{n.items.push(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){g(e,t,n[t])})}return e}({id:o},e)),o+=1}),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,c.a.Component),n=t,(r=[{key:"renderListItem",value:function(e){return c.a.createElement("a",{key:"card".concat(e.id),className:"visual-card",onClick:e.onClick,href:e.href},c.a.createElement("img",{alt:e.title,src:e.imgSrc}),c.a.createElement("h3",null,e.title))}},{key:"render",value:function(){var e=this.props.showSearch,t=this.state.searchText,n=this.items.filter(e=>Object(o.isEmpty)(t)||Object(o.includes)(e.title.toLowerCase(),t.toLowerCase()));return c.a.createElement("div",{"data-test":"CardsList"},e&&c.a.createElement("div",{className:"row p-10"},c.a.createElement("div",{className:"col-md-4 col-md-offset-4"},c.a.createElement(b,{placeholder:"Search...",onChange:e=>this.setState({searchText:e.target.value}),autoFocus:!0}))),Object(o.isEmpty)(n)?c.a.createElement(u.default,{className:""}):c.a.createElement("div",{className:"row"},c.a.createElement("div",{className:"col-lg-12 d-inline-flex flex-wrap visual-card-list"},n.map(e=>this.renderListItem(e)))))}}])&&p(n.prototype,r),a&&p(n,a),t}();g(y,"propTypes",{items:s.a.arrayOf(s.a.shape({title:s.a.string.isRequired,imgSrc:s.a.string.isRequired,onClick:s.a.func,href:s.a.string})),showSearch:s.a.bool}),g(y,"defaultProps",{items:[],showSearch:!1})},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(29),n(106);var r=n(287),a=n(2),o=n(0),i=n.n(o),s=n(1),l=n.n(s),c=n(37),u=n.n(c),d=n(31),p=n.n(d),m=n(40),f=n.n(m),h=n(202),g=n.n(h),b=n(270),y=n(33),v=n(12);n(1352);function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function O(){return(O=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function j(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function E(e){return(E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function S(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function x(e,t){return(x=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var C=function(e){function t(e){var n,o,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),o=this,i=E(t).call(this,e),n=!i||"object"!==w(i)&&"function"!=typeof i?S(o):i,P(S(n),"updatePreview",Object(a.debounce)(()=>{var e=n.state.text;n.setState({preview:r.markdown.toHTML(e)})},100)),P(S(n),"onTextChanged",e=>{n.setState({text:e.target.value}),n.updatePreview()});var s=e.text;return n.state={saveInProgress:!1,text:s,preview:r.markdown.toHTML(s)},n}var n,o,s;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&x(e,t)}(t,i.a.Component),n=t,(o=[{key:"saveWidget",value:function(){this.setState({saveInProgress:!0}),this.props.onConfirm(this.state.text).then(()=>{this.props.dialog.close()}).catch(()=>{v.default.error("Widget could not be added")}).finally(()=>{this.setState({saveInProgress:!1})})}},{key:"render",value:function(){var e=this.props.dialog,t=!this.props.text;return i.a.createElement(u.a,O({},e.props,{title:t?"Add Textbox":"Edit Textbox",onOk:()=>this.saveWidget(),okButtonProps:{loading:this.state.saveInProgress,disabled:!this.state.text},okText:t?"Add to Dashboard":"Save",width:500,wrapProps:{"data-test":"TextboxDialog"}}),i.a.createElement("div",{className:"textbox-dialog"},i.a.createElement(p.a.TextArea,{className:"resize-vertical",rows:"5",value:this.state.text,onChange:this.onTextChanged,autoFocus:!0,placeholder:"This is where you write some text"}),i.a.createElement("small",null,"Supports basic"," ",i.a.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.markdownguide.org/cheat-sheet/#basic-syntax"},i.a.createElement(f.a,{title:"Markdown guide opens in new window"},"Markdown")),"."),this.state.text&&i.a.createElement(i.a.Fragment,null,i.a.createElement(g.a,{dashed:!0}),i.a.createElement("strong",{className:"preview-title"},"Preview:"),i.a.createElement(b.default,{className:"preview markdown"},this.state.preview))))}}])&&j(n.prototype,o),s&&j(n,s),t}();P(C,"propTypes",{dashboard:l.a.object.isRequired,dialog:y.DialogPropType.isRequired,onConfirm:l.a.func.isRequired,text:l.a.string}),P(C,"defaultProps",{text:""}),t.default=Object(y.wrap)(C)},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return b});n(34),n(11),n(19),n(27);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(18),c=n.n(l),u=n(37),d=n.n(u),p=n(40),m=n.n(p),f=n(12);function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function g(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function b(e){var t=e.group,n=e.title,a=e.onClick,i=e.children,s=g(e,["group","title","onClick","children"]);if(!t)return null;var l=o.a.createElement(c.a,h({},s,{type:"danger",onClick:e=>(function(e,t,n){d.a.confirm({title:"Delete Group",content:"Are you sure you want to delete this group?",okText:"Yes",okType:"danger",cancelText:"No",onOk:()=>{t.$delete(()=>{f.default.success("Group deleted successfully."),n()})}})})(0,t,a)}),i);return Object(r.isString)(n)&&""!==n?o.a.createElement(m.a,{placement:"top",title:n,mouseLeaveDelay:0},l):l}b.propTypes={group:s.a.object,title:s.a.string,onClick:s.a.func,children:s.a.node},b.defaultProps={group:null,title:null,onClick:()=>{},children:null}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return h});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(18),l=n.n(s),c=n(202),u=n.n(c),d=n(61),p=n(49),m=n(279),f=n(10);function h(e){var t=e.controller,n=e.group,r=e.items,o=e.canAddMembers,i=e.onAddMembersClick,s=e.canAddDataSources,c=e.onAddDataSourcesClick,p=e.onGroupDeleted,h=n&&f.currentUser.isAdmin&&"builtin"!==n.type;return a.a.createElement(a.a.Fragment,null,a.a.createElement(d.Menu,{items:r,selected:t.params.currentPage}),a.a.createElement(d.PageSizeSelect,{className:"m-b-10",options:t.pageSizeOptions,value:t.itemsPerPage,onChange:e=>t.updatePagination({itemsPerPage:e})}),o&&a.a.createElement(l.a,{className:"w-100 m-t-5",type:"primary",onClick:i},a.a.createElement("i",{className:"fa fa-plus m-r-5"}),"Add Members"),s&&a.a.createElement(l.a,{className:"w-100 m-t-5",type:"primary",onClick:c},a.a.createElement("i",{className:"fa fa-plus m-r-5"}),"Add Data Sources"),h&&a.a.createElement(a.a.Fragment,null,a.a.createElement(u.a,{dashed:!0,className:"m-t-10 m-b-10"}),a.a.createElement(m.default,{className:"w-100",group:n,onClick:p},"Delete Group")))}h.propTypes={controller:p.ControllerType.isRequired,group:i.a.object,items:i.a.array.isRequired,canAddMembers:i.a.bool,onAddMembersClick:i.a.func,canAddDataSources:i.a.bool,onAddDataSourcesClick:i.a.func,onGroupDeleted:i.a.func},h.defaultProps={group:null,canAddMembers:!1,onAddMembersClick:null,canAddDataSources:!1,onAddDataSourcesClick:null,onGroupDeleted:null}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return u});n(11),n(19),n(27);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(465),l=n(10);function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function u(e){var t=e.group,n=e.onChange,r=c(e,["group","onChange"]);if(!t)return null;var o=l.currentUser.isAdmin&&"builtin"!==t.type;return a.a.createElement("h3",r,a.a.createElement(s.EditInPlace,{className:"edit-in-place",isEditable:o,ignoreBlanks:!0,editor:"input",onDone:e=>(function(e,t,n){e.name=t,e.$save(),n()})(t,e,n),value:t.name}))}u.propTypes={group:i.a.shape({name:i.a.string.isRequired,$save:i.a.func.isRequired}),onChange:i.a.func},u.defaultProps={group:null,onChange:()=>{}}},function(e,t,n){"use strict";n.r(t),n.d(t,"SchedulePhrase",function(){return v}),n.d(t,"default",function(){return w});n(14),n(15),n(11),n(29);var r=n(17),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(40),c=n.n(l),u=n(45),d=n(44);n(670);function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return!t||"object"!==p(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),h(this,g(t).apply(this,arguments))}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(t,o.a.Component),n=t,(r=[{key:"render",value:function(){if(this.props.isNew)return"Never";var e=m(this.content,2),t=e[0],n=e[1],r=n?o.a.createElement(c.a,{title:n},t):t;return this.props.isLink?o.a.createElement("a",{className:"schedule-phrase"},r):r}},{key:"content",get:function(){var e=(this.props.schedule||t.defaultProps.schedule).interval;if(!e)return["Never"];var n=Object(u.durationHumanize)(e,{omitSingleValueNumber:!0}),r="Every ".concat(n),a="Refreshes every ".concat(n),o=this.props.schedule,i=o.time,s=o.day_of_week;return i&&(a+=" at ".concat(Object(u.localizeTime)(i))),s&&(a+=" on ".concat(s)),[r,a]}}])&&f(n.prototype,r),a&&f(n,a),t}();function w(e){e.component("schedulePhrase",Object(r.react2angular)(v))}y(v,"propTypes",{schedule:d.RefreshScheduleType,isNew:s.a.bool.isRequired,isLink:s.a.bool}),y(v,"defaultProps",{schedule:d.RefreshScheduleDefault,isLink:!1}),w.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"absoluteUrl",function(){return r});n(90);function r(e){var t=new URL(e,window.location);return t.protocol=window.location.protocol,t.host=window.location.host,t.toString()}},function(e,t,n){"use strict";n.r(t),n.d(t,"Visualization",function(){return r}),n.d(t,"default",function(){return a});var r=null;function a(e){e.run(["$resource",e=>{r=e("api/visualizations/:id",{id:"@id"})}])}a.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"getPieDimensions",function(){return u}),n.d(t,"default",function(){return p});n(27),n(11),n(19),n(55),n(240);var r=n(2),a=n(13),o=n.n(a),i=n(103),s=n(71);function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){c(e,t,n[t])})}return e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e){var t=e.length>2?2:1,n=Math.ceil(e.length/t);return{rows:t,cellsInRow:n,cellWidth:1/n,cellHeight:1/t,xPadding:.02,yPadding:.1}}function d(e){var t="text";return/{{\s*@@x\s*}}/.test(e.textFormat)||(t+="+label"),t}function p(e,t){var n=o.a.scale.ordinal().domain([]).range(i.ColorPaletteArray),a={};Object(r.each)(t.valuesOptions,(e,t)=>{Object(r.isString)(e.color)&&""!==e.color&&(a[t]=e.color)});var c=l({},u(e),{hasX:Object(r.includes)(t.columnMapping,"x"),hoverInfoPattern:d(t),getValueColor:e=>a[e]||n(e)});return Object(r.map)(e,(e,n)=>(function(e,t,n){var a=n.cellWidth,o=n.cellHeight,i=n.xPadding,l=n.yPadding,c=n.cellsInRow,u=n.hasX,d=n.index,p=n.hoverInfoPattern,m=n.getValueColor,f=d%c*a,h=Math.floor(d/c)*o,g=[],b=[],y=new Map,v=Object(r.reduce)(e.data,(e,t)=>{var n=Object(s.cleanNumber)(t.y);return e+Math.abs(n)},0);return Object(r.each)(e.data,e=>{var n=u?Object(s.normalizeValue)(e.x,t.xAxis.type):"Slice ".concat(d),r=Object(s.cleanNumber)(e.y);g.push(n),b.push(r),y.set(n,{x:n,y:r,yPercent:r/v*100,row:e})}),{visible:!0,values:b,labels:g,type:"pie",hole:.4,marker:{colors:Object(r.map)(e.data,e=>m(e.x))},hoverinfo:p,text:[],textinfo:t.showDataLabels?"percent":"none",textposition:"inside",textfont:{color:"#ffffff"},name:e.name,direction:t.direction.type,domain:{x:[f,f+a-i],y:[h,h+o-l]},sourceData:y}})(e,t,l({},c,{index:n})))}},function(e,t,n){"use strict";n.r(t),n.d(t,"getCounterData",function(){return c}),n.d(t,"isValueNumber",function(){return u});n(165),n(453);var r=n(2),a=n(174),o=n.n(a);function i(e,t){if(0===(e=parseInt(e,10)||0))return e;var n=(Math.abs(e)-1)%t;return e>0?n:t-n-1}function s(e,t){var n=t.stringPrefix,a=t.stringSuffix,i=t.stringDecimal,s=t.stringDecChar,l=t.stringThouSep;return Object(r.isNumber)(e)?(e=function(e,t,n,r){var a=o.a.localeData(),i=a.delimiters;a.delimiters={thousands:",",decimal:"."};var s="0,0.000";if((Number.isFinite(t)&&t>=0||n||r)&&(a.delimiters={thousands:r,decimal:n||"."},s="0,0",t>0))for(s+=".";t>0;)s+="0",t-=1;var l=o()(e).format(s);return a.delimiters=i,l}(e,i,s,l),Object(r.toString)(n)+e+Object(r.toString)(a)):Object(r.toString)(e)}function l(e,t){return Object(r.isNumber)(e)?o()(e).format(t):Object(r.toString)(e)}function c(e,t,n){var a={},c=e.length;if(c>0){var u=i(t.rowNumber,c),d=i(t.targetRowNumber,c),p=t.counterColName,m=t.targetColName,f=t.counterLabel;if(a.counterLabel=f||n,t.countRow?a.counterValue=c:p&&(a.counterValue=e[u][p]),a.showTrend=!1,m){if(a.targetValue=e[d][m],Number.isFinite(a.counterValue)&&Object(r.isFinite)(a.targetValue)){var h=a.counterValue-a.targetValue;a.showTrend=!0,a.trendPositive=h>=0}}else a.targetValue=null;a.counterValueTooltip=l(a.counterValue,t.tooltipFormat),a.targetValueTooltip=l(a.targetValue,t.tooltipFormat),a.counterValue=s(a.counterValue,t),t.formatTargetValue?a.targetValue=s(a.targetValue,t):Object(r.isFinite)(a.targetValue)&&(a.targetValue=o()(a.targetValue).format("0[.]00[0]"))}return a}function u(e,t){if(t.countRow)return!0;var n=e.length;if(n>0){var a=i(t.rowNumber,n),o=t.counterColName;if(o)return Object(r.isNumber)(e[a][o])}return!1}},,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return v});n(14),n(15),n(34),n(11),n(19),n(27),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(18),l=n.n(s),c=n(40),u=n.n(c);n(1110);function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){function t(e){var n,r,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,o=h(t).call(this,e),n=!o||"object"!==d(o)&&"function"!=typeof o?g(r):o,y(g(n),"state",{copied:null}),y(g(n),"copy",()=>{window.getSelection().selectAllChildren(n.ref.current);try{if(!document.execCommand("copy"))throw new Error;n.setState({copied:"Copied!"})}catch(e){n.setState({copied:"Copy failed"})}window.getSelection().removeAllRanges(),n.resetCopyState=setTimeout(()=>n.setState({copied:null}),2e3)}),n.ref=a.a.createRef(),n.copyFeatureEnabled=e.copyable&&document.queryCommandSupported("copy"),n.resetCopyState=null,n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(t,a.a.Component),n=t,(r=[{key:"componentWillUnmount",value:function(){this.resetCopyState&&clearTimeout(this.resetCopyState)}},{key:"render",value:function(){var e=this.props,t=(e.copyable,e.children),n=m(e,["copyable","children"]),r=a.a.createElement(u.a,{title:this.state.copied||"Copy"},a.a.createElement(l.a,{icon:"copy",type:"dashed",size:"small",onClick:this.copy}));return a.a.createElement("div",{className:"code-block"},a.a.createElement("code",p({},n,{ref:this.ref}),t),this.copyFeatureEnabled&&r)}}])&&f(n.prototype,r),o&&f(n,o),t}();y(v,"propTypes",{copyable:i.a.bool,children:i.a.node}),y(v,"defaultProps",{copyable:!1,children:null})},,,,function(e,t,n){"use strict";n.r(t),n.d(t,"Alert",function(){return a}),n.d(t,"default",function(){return i});n(34);function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}o.$inject=["$resource","$http"];var a=null;function o(e,t){return e("api/alerts/:id",{id:"@id"},{save:{method:"POST",transformRequest:[e=>{var t=r({},e);return void 0===t.query_id&&(t.query_id=t.query.id,t.destination_id=t.destinations,delete t.query,delete t.destinations),t}].concat(t.defaults.transformRequest)}})}function i(e){e.factory("Alert",o),e.run(["$injector",e=>{a=e.get("Alert")}])}i.init=!0},function(e,t,n){"use strict";n.r(t);var r=n(2),a=n(98),o=n.n(a),i=n(58);function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var l=o()("redash:notifications"),c=window.Notification||null;c||l("HTML5 notifications are not supported.");var u=Object(r.find)(["hidden","webkitHidden","mozHidden","msHidden"],e=>e in document),d=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,r;return t=e,(n=[{key:"getPermissions",value:function(){c&&"default"===c.permission&&c.requestPermission(e=>{c.permission!==e&&(c.permission=e)})}},{key:"showNotification",value:function(e,t){if(c&&!this.pageVisible&&"granted"===c.permission){var n=new c(e,{tag:e+t,body:t,icon:"/images/redash_icon_small.png"});setTimeout(()=>{n.close()},3e3),n.onclick=function(){window.focus(),this.close(),Object(i.default)("click","notification")}}}},{key:"pageVisible",get:function(){return!document[u]}}])&&s(t.prototype,n),r&&s(t,r),e}();t.default=new d},function(e,t){e.exports='<div class="query-page-wrapper">\n <div class="container">\n <overlay ng-if="canCreateQuery === false && query.isNew()">\n You don\'t have permission to create new queries on any of the data sources available to you. You can either\n <a href="queries">browse existing queries</a>, or ask for additional permissions from your Redash admin.\n </overlay>\n <overlay ng-if="noDataSources && currentUser.isAdmin">\n Looks like no data sources were created yet (or none of them available to the group(s) you\'re member of). Please create one\n first, and then start querying.\n <br/>\n <a href="data_sources/new" class="btn btn-primary">Create Data Source</a>\n <a href="groups" class="btn btn-default">Manage Group Permissions</a>\n </overlay>\n <overlay ng-if="noDataSources && !currentUser.isAdmin">\n Looks like no data sources were created yet (or none of them available to the group(s) you\'re member of). Please ask your\n Redash admin to create one first.\n </overlay>\n\n <alert-unsaved-changes ng-if="canEdit" is-dirty="isDirty"></alert-unsaved-changes>\n\n <div class="p-b-10 m-l-0 m-r-0 page-header--new page-header--query">\n <div class="page-title p-0">\n <div class="d-flex flex-nowrap align-items-center">\n <favorites-control ng-if="!query.isNew()" item="query"></favorites-control>\n <h3>\n <edit-in-place class="m-r-5" is-editable="canEdit" on-done="saveName"\n ignore-blanks="true" value="query.name" editor="\'input\'"></edit-in-place>\n <query-tags-control\n class="query-tags" ng-class="{\'query-tags__empty\': query.tags.length == 0}"\n tags="query.tags" is-draft="query.is_draft" is-archived="query.is_archived"\n can-edit="isQueryOwner" get-available-tags="loadTags" on-edit="saveTags"></query-tags-control>\n </h3>\n\n <span class="flex-fill"> </span>\n\n <div class="p-0 source-control text-right text-nowrap align-self-start m-t-5">\n <button class="btn btn-default btn-publish" ng-click="togglePublished()" ng-if="query.is_draft && query.id != undefined && (isQueryOwner || currentUser.hasPermission(\'admin\'))">\n <span class="fa fa-paper-plane"></span> Publish\n </button>\n\n <span ng-show="query.id && canViewSource">\n <a ng-show="!sourceMode" ng-href="{{query.getUrl(true, selectedTab)}}" class="btn btn-default btn--showhide">\n <i class="fa fa-pencil-square-o" aria-hidden="true"></i> Edit Source</i>\n </a>\n <a ng-show="sourceMode" ng-href="{{query.getUrl(false, selectedTab)}}" class="btn btn-default btn--showhide">\n <i class="fa fa-table" aria-hidden="true"></i> Show Data Only</i>\n </a>\n </span>\n\n <div ng-if="query.id != undefined" class="btn-group query-actions-menu" role="group" uib-dropdown>\n <button class="btn btn-default dropdown-toggle hidden-xs" uib-dropdown-toggle>\n <span class="zmdi zmdi-more"></span>\n </button>\n <ul class="dropdown-menu pull-right" uib-dropdown-menu>\n <li ng-class="{\'disabled\': query.id === undefined || !canForkQuery() }">\n <a ng-click="duplicateQuery()"> Fork <i class="fa fa-external-link"></i></a>\n </li>\n <li class="divider" ng-if="query.is_archived"></li>\n <li ng-if="!query.is_archived && query.id != undefined && (isQueryOwner || currentUser.hasPermission(\'admin\'))">\n <a ng-click="archiveQuery()">Archive</a>\n </li>\n <li ng-if="!query.is_archived && query.id != undefined && (isQueryOwner || currentUser.hasPermission(\'admin\')) && showPermissionsControl">\n <a ng-click="showManagePermissionsModal()">Manage Permissions</a>\n </li>\n <li ng-if="!query.is_draft && query.id != undefined && (isQueryOwner || currentUser.hasPermission(\'admin\'))">\n <a ng-click="togglePublished()">Unpublish</a>\n </li>\n <li class="divider" ng-if="!query.is_archived"></li>\n <li ng-if="query.id != undefined">\n <a ng-click="showApiKey()">Show API Key</a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n <query-tags-control\n class="query-tags__mobile" ng-class="{\'query-tags__empty\': query.tags.length == 0}"\n tags="query.tags" is-draft="query.is_draft" is-archived="query.is_archived"\n can-edit="isQueryOwner" get-available-tags="loadTags" on-edit="saveTags"></query-tags-control>\n </div>\n </div>\n </div>\n <main class="query-fullscreen">\n <nav resizable r-directions="[\'right\']" r-flex="true" resizable-toggle toggle-shortcut="Alt+Shift+D, Alt+D">\n <div class="editor__left__data-source">\n <ui-select ng-model="query.data_source_id" remove-selected="false" ng-disabled="!isQueryOwner || !sourceMode"\n on-select="updateDataSource()" data-test="SelectDataSource">\n <ui-select-match placeholder="Select Data Source..." class="align-items-center">\n <img ng-src="/static/images/db-logos/{{$select.selected.type}}.png" width="20" height="20" style="vertical-align: top">\n {{$select.selected.name}}\n </ui-select-match>\n <ui-select-choices repeat="ds.id as ds in dataSources | filter:$select.search">\n <img ng-src="/static/images/db-logos/{{ds.type}}.png" width="20" height="20" class="m-r-5">{{ds.name}}\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div class="editor__left__schema" ng-if="sourceMode">\n <schema-browser class="schema-container" schema="schema" on-refresh="refreshSchema()"></schema-browser>\n </div>\n <div ng-if="!sourceMode" style="flex-grow: 1;"> </div>\n\n <div class="query-metadata query-metadata--description" ng-if="!query.isNew()">\n <edit-in-place is-editable="canEdit" on-done="saveDescription" editor="\'textarea\'" placeholder="\'Add description\'" ignore-blanks=\'false\'\n value="query.description" markdown="true">\n </edit-in-place>\n </div>\n\n <div class="query-metadata query-metadata--history" ng-if="!query.isNew()">\n <table>\n <tr>\n <td>\n <img ng-src="{{ query.user.profile_image_url }}" class="profile__image_thumb" />\n <strong class="meta__name" ng-class="{\'text-muted\': query.user.is_disabled}">{{query.user.name}}</strong>\n </td>\n <td class="text-right">\n created\n <strong>\n <rd-time-ago value="query.created_at"></rd-time-ago>\n </strong>\n </td>\n </tr>\n <tr>\n <td>\n <img ng-src="{{ query.last_modified_by.profile_image_url }}" class="profile__image_thumb" />\n <strong class="meta__name" ng-class="{\'text-muted\': query.last_modified_by.is_disabled}">{{query.last_modified_by.name}}</strong>\n </td>\n <td class="text-right">\n updated\n <strong>\n <rd-time-ago value="query.updated_at"></rd-time-ago>\n </strong>\n </td>\n </tr>\n <tr>\n <td class="p-t-15">\n <span class="query-metadata__property">\n <span class="zmdi zmdi-refresh"></span> Refresh Schedule</span>\n </td>\n <td class="p-t-15 text-right">\n <schedule-phrase ng-click="editSchedule()" is-link="true" schedule="query.schedule" is-new="query.isNew()" />\n </td>\n </tr>\n </table>\n </div>\n </nav>\n\n <div class="content">\n <div class="flex-fill p-relative">\n <div class="p-absolute d-flex flex-column p-l-15 p-r-15" style="left: 0; top: 0; right: 0; bottom: 0; overflow: auto">\n <div class="row editor" resizable r-directions="[\'bottom\']" r-flex="true" resizable-toggle\n style="min-height: 11px; max-height: 70vh;" ng-if="sourceMode">\n <query-editor\n style="width: 100%; height: 100%;"\n query-text="query.query"\n schema="schema"\n syntax="dataSource.syntax"\n can-edit="canEdit"\n is-dirty="isDirty"\n is-query-owner="isQueryOwner"\n update-data-source="updateDataSource"\n execute-query="executeQuery"\n query-executing="queryExecuting"\n can-execute-query="canExecuteQuery()"\n listen-for-resize="listenForResize"\n listen-for-editor-command="listenForEditorCommand"\n save-query="saveQuery"\n update-query="updateQuery"\n update-selected-query="updateSelectedQuery"\n add-new-parameter="addNewParameter"\n data-data-source="dataSource"\n data-data-sources="dataSources"></query-editor>\n </div>\n\n <div class="row query-metadata__mobile">\n <img ng-src="{{ query.user.profile_image_url }}" class="profile__image_thumb">\n <div class="flex-fill m-r-10">\n <strong class="meta__name" ng-class="{\'text-muted\': query.user.is_disabled}">{{query.user.name}}</strong>\n created <rd-time-ago value="query.created_at"></rd-time-ago>\n </div>\n\n <img ng-src="{{ query.last_modified_by.profile_image_url }}" class="profile__image_thumb">\n <div class="flex-fill m-r-10">\n <strong class="meta__name" ng-class="{\'text-muted\': query.last_modified_by.is_disabled}">{{query.last_modified_by.name}}</strong>\n updated <rd-time-ago value="query.updated_at"></rd-time-ago>\n </div>\n\n <div>\n <span class="query-metadata__property">Refresh schedule:</span>\n <schedule-phrase ng-click="editSchedule()" is-link="true" schedule="query.schedule" is-new="query.isNew()" />\n </div>\n </div>\n\n <section class="flex-fill p-relative t-body query-visualizations-wrapper">\n <div class="d-flex flex-column p-b-15 p-absolute static-position__mobile" style="left: 0; top: 0; right: 0; bottom: 0;">\n <div class="p-t-15 p-b-5" ng-if="query.hasParameters()">\n <parameters parameters="query.getParametersDefs()" editable="sourceMode && canEdit" disable-url-update="query.isNew()"\n on-values-change="executeQuery" on-pending-values-change="applyParametersChanges" on-parameters-edit="onParametersUpdated"></parameters>\n </div>\n \x3c!-- Query Execution Status --\x3e\n\n <div class="query-alerts">\n <div class="alert alert-info m-t-15" ng-if="queryResult.getStatus() == \'processing\'">\n Executing query…\n <rd-timer from="queryResult.getUpdatedAt()"></rd-timer>\n <button type="button" class="btn btn-warning btn-xs pull-right" ng-disabled="cancelling" ng-click="cancelExecution()">Cancel\n </button>\n </div>\n <div class="alert alert-info m-t-15" ng-if="queryResult.getStatus() == \'loading-result\'">\n Loading results…\n <rd-timer from="queryResult.getUpdatedAt()"></rd-timer>\n </div>\n <div class="alert alert-info m-t-15" ng-if="queryResult.getStatus() == \'waiting\'">\n Query in queue…\n <rd-timer from="queryResult.getUpdatedAt()"></rd-timer>\n <button type="button" class="btn btn-warning btn-xs pull-right" ng-disabled="cancelling" ng-click="cancelExecution()">Cancel\n </button>\n </div>\n <div class="alert alert-danger m-t-15" ng-if="queryResult.getError()">\n Error running query:\n <strong>{{queryResult.getError()}}</strong>\n </div>\n </div>\n \x3c!-- End of Query Execution Status --\x3e\n\n \x3c!-- tabs and data --\x3e\n <div ng-if="showDataset" class="flex-fill p-relative">\n <div class="d-flex flex-column p-absolute static-position__mobile" style="left: 0; top: 0; right: 0; bottom: 0;">\n <div class="p-10" ng-show="showLog">\n <p>Log Information:</p>\n <p class="query-log-line" ng-repeat="l in queryResult.getLog() track by $index">{{l}}</p>\n </div>\n <ul class="tab-nav" data-test="QueryPageVisualizationTabs">\n <rd-tab ng-if="!query.visualizations.length" tab-id="table" name="Table" base-path="query.getUrl(sourceMode)"></rd-tab>\n <rd-tab ng-repeat="vis in query.visualizations | orderBy:\'id\'" tab-id="{{vis.id}}" name="{{vis.name}}" base-path="query.getUrl(sourceMode)">\n <span class="remove hidden-xs" ng-click="deleteVisualization($event, vis)" ng-if="canEdit && !($first && (vis.type === \'TABLE\'))">\n <i class="zmdi zmdi-close"></i>\n </span>\n </rd-tab>\n <li class="rd-tab tab-new-vis">\n <a ng-click="openVisualizationEditor()" class="btn btn-default" ng-if="canEdit" data-test="NewVisualization">\n <i class="zmdi zmdi-plus"></i> New Visualization</a>\n </li>\n </ul>\n <div ng-if="selectedVisualization && queryResult" class="query__vis m-t-15 p-b-15 scrollbox" data-test="QueryPageVisualization{{ selectedVisualization.id }}">\n <visualization-renderer visualization="selectedVisualization" query-result="queryResult" context="\'query\'"></visualization-renderer>\n </div>\n </div>\n </div>\n </div>\n </section>\n </div>\n </div>\n <div class="bottom-controller-container" ng-if="showDataset">\n <div class="bottom-controller">\n <edit-visualization-button\n ng-if="!query.isNew() && canEdit"\n open-visualization-editor="openVisualizationEditor"\n selected-tab="selectedTab">\n </edit-visualization-button>\n\n <query-control-dropdown\n query="query"\n query-result="queryResult"\n query-executing="queryExecuting"\n show-embed-dialog="showEmbedDialog"\n embed="embed"\n apiKey="apiKey"\n selected-tab="selectedTab"\n open-add-to-dashboard-form="openAddToDashboardForm">\n </query-control-dropdown>\n\n <span class="query-metadata__bottom" ng-if="queryResult.getData()">\n <span class="query-metadata__property">\n <strong>{{queryResult.getData().length}}</strong>\n <ng-pluralize count="queryResult.getData().length" when="{\'0\': \' rows\', \'one\': \' row\', \'other\': \' rows\'}"></ng-pluralize>\n </span>\n <span class="query-metadata__property">\n <strong ng-show="!queryExecuting">{{queryResult.getRuntime() | durationHumanize}}</strong>\n <span ng-show="queryExecuting">Running…</span>\n <span class="hidden-xs">runtime</span>\n </span>\n <span class="query-metadata__property" ng-if="queryResult.query_result.data.metadata.data_scanned">Data Scanned\n <strong>{{ queryResult.query_result.data.metadata.data_scanned | prettySize}}</strong>\n </span>\n </span>\n\n <div>\n <span class="query-metadata__property hidden-xs">\n <span class="hidden-xs">Updated </span>\n <rd-time-ago value="queryResult.query_result.retrieved_at"></rd-time-ago>\n </span>\n\n <button\n ng-if="!sourceMode"\n ng-disabled="queryExecuting || !canExecuteQuery()"\n class="m-l-5 btn btn-primary"\n title="Refresh Dataset"\n ng-click="executeQuery()"\n data-test="ExecuteButton"\n >\n <span class="zmdi zmdi-play"></span>\n </button>\n </div>\n </div>\n </div>\n </div>\n </main>\n</div>\n'},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"prepareCustomChartData",function(){return o}),n.d(t,"createCustomChartRenderer",function(){return i});var r=n(2),a=n(71);function o(e){var t=[],n={};return Object(r.each)(e,e=>{var o=e.name,i=e.data;n[o]=[],Object(r.each)(i,e=>{t.push(Object(a.normalizeValue)(e.x)),n[o].push(Object(a.normalizeValue)(e.y))})}),{x:t,ys:n}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=()=>{};try{n=new Function("x, ys, element, Plotly",e)}catch(e){t&&console.log("Error while executing custom graph: ".concat(e))}return(e,r,a,o)=>{try{n(e,r,a,o)}catch(e){t&&console.log("Error while executing custom graph: ".concat(e))}}}},,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return b});n(14),n(15),n(11);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(74),c=n.n(l),u=n(31),d=n.n(u),p=n(230),m=n.n(p),f=n(231);n(1117);function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function g(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#";Object(r.isNil)(e)&&t(null),(e=c()(e)).isValid()&&t(n+e.toHex().toUpperCase())}function b(e){var t=e.color,n=e.presetColors,i=e.presetColumns,s=e.onChange,l=e.onPressEnter,u=h(Object(a.useState)(""),2),p=u[0],b=u[1],y=h(Object(a.useState)(!1),2),v=y[0],w=y[1],O=function(e,t){return e=Object(r.isArray)(e)?Object(r.map)(e,e=>[null,e]):Object(r.toPairs)(e),e=Object(r.map)(e,e=>{var t=h(e,2),n=t[0],a=t[1];return Object(r.isNil)(a)?[n,null]:(a=c()(a)).isValid()?[n,"#"+a.toHex().toUpperCase()]:null}),Object(r.chunk)(Object(r.filter)(e),t)}(n,i);return Object(a.useEffect)(()=>{v||g(t,b,"")},[t,v]),o.a.createElement(o.a.Fragment,null,Object(r.map)(O,(e,t)=>o.a.createElement("div",{className:"color-picker-input-swatches",key:"preset-row-".concat(t)},Object(r.map)(e,e=>{var t=h(e,2),n=t[0],r=t[1];return o.a.createElement(f.default,{key:r,color:r,title:n,size:30,onClick:()=>g(r,s)})}))),o.a.createElement("div",{className:"color-picker-input"},o.a.createElement(d.a,{addonBefore:o.a.createElement(m.a.Text,{type:"secondary"},"#"),value:p,onChange:e=>(function(e){b(e),g(e,s)})(e.target.value),onFocus:()=>w(!0),onBlur:()=>w(!1),onPressEnter:l})))}b.propTypes={color:s.a.string,presetColors:s.a.oneOfType([s.a.arrayOf(s.a.string),s.a.objectOf(s.a.string)]),presetColumns:s.a.number,onChange:s.a.func,onPressEnter:s.a.func},b.defaultProps={color:"#FFFFFF",presetColors:null,presetColumns:8,onChange:()=>{},onPressEnter:()=>{}}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});var r=n(0),a=n.n(r),o=n(1),i=n.n(o);function s(e){var t="",n=e.query,r=e.queryResult,o=e.fileType,i=r.getId&&r.getId(),s=r.getData&&r.getData();return i&&s&&n.name&&(t=n.id?"api/queries/".concat(n.id,"/results/").concat(i,".").concat(o).concat(e.embed?"?api_key=".concat(e.apiKey):""):"api/query_results/".concat(i,".").concat(o)),a.a.createElement("a",{target:"_self",disabled:e.disabled,href:t},e.children)}s.propTypes={query:i.a.object.isRequired,queryResult:i.a.object,fileType:i.a.string,disabled:i.a.bool.isRequired,embed:i.a.bool,apiKey:i.a.string,children:i.a.oneOfType([i.a.arrayOf(i.a.node),i.a.node]).isRequired},s.defaultProps={queryResult:{},fileType:"csv",embed:!1,apiKey:""}},function(e,t,n){"use strict";n.d(t,"a",function(){return o});n(14),n(15),n(11);var r=n(0);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(){var e=a(Object(r.useState)(!1),2)[1];return()=>e(e=>!e)}},function(e,t,n){"use strict";n.r(t),n.d(t,"PlainListFetcher",function(){return h}),n.d(t,"PaginatedListFetcher",function(){return g});n(14),n(15),n(669),n(29),n(95),n(253);var r=n(2);function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){return!t||"object"!==a(t)&&"function"!=typeof t?i(e):t}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s(e,t,n){return(s="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=l(e)););return e}(e,t);if(r){var a=Object.getOwnPropertyDescriptor(r,t);return a.get?a.get.call(n):a.value}})(e,t,n||e)}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t,n){return t&&p(e.prototype,t),n&&p(e,n),e}var f=function(){function e(t){var n=t.getRequest,a=t.doRequest,o=t.processResults;d(this,e),this._originalGetRequest=Object(r.isFunction)(n)?n:r.identity,this._originalDoRequest=a,this._originalProcessResults=Object(r.isFunction)(o)?o:r.identity}return m(e,[{key:"_getRequest",value:function(e,t){return this._originalGetRequest({},t)}},{key:"_processResults",value:function(e,t,n){var r=e.results,a=e.count;return{results:this._originalProcessResults(r,n),count:a}}}]),m(e,[{key:"fetch",value:function(e,t,n){var r=this._getRequest(t,n);return this._originalDoRequest(r,n).then(e=>this._processResults(e,t,n))}}]),e}(),h=function(e){function t(){var e,n,r,a,s;d(this,t);for(var c=arguments.length,u=new Array(c),p=0;p<c;p++)u[p]=arguments[p];return n=o(this,(e=l(t)).call.apply(e,[this].concat(u))),r=i(n),s=[],(a="_allItems")in r?Object.defineProperty(r,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):r[a]=s,n}return c(t,f),m(t,[{key:"_getRequest",value:function(e,t){var n=e.searchTerm,a=e.selectedTags;return this._originalGetRequest({q:Object(r.isString)(n)&&""!==n?n:void 0,tags:a},t)}},{key:"_processResults",value:function(e,t,n){var r=t.paginator,a=t.sorter;return this._allItems=this._originalProcessResults(e,n),this._allItems=a.sort(this._allItems),{results:r.getItemsForPage(this._allItems),count:this._allItems.length,allResults:this._allItems}}},{key:"fetch",value:function(e,n,a){if(Object(r.isNil)(e)||e.tags||e.sorting)return s(l(t.prototype),"fetch",this).call(this,e,n,a);var o=n.paginator,i=n.sorter;return e.sorting&&(this._allItems=i.sort(this._allItems)),Promise.resolve({results:o.getItemsForPage(this._allItems),count:this._allItems.length,allResults:this._allItems})}}]),t}(),g=function(e){function t(){return d(this,t),o(this,l(t).apply(this,arguments))}return c(t,f),m(t,[{key:"_getRequest",value:function(e,t){var n=e.paginator,a=e.sorter,o=e.searchTerm,i=e.selectedTags;return this._originalGetRequest({page:n.page,page_size:n.itemsPerPage,order:a.compiled,q:Object(r.isString)(o)&&""!==o?o:void 0,tags:i},t)}}]),t}()},function(e,t,n){"use strict";n.d(t,"a",function(){return i});n(14),n(15),n(11);var r=n(0);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(e){return{columns:e&&e.getColumns()||[],rows:e&&e.getData()||[],filters:e&&e.getFilters()||[]}}function i(e){var t=a(Object(r.useState)(o(e)),2),n=t[0],i=t[1],s=!1;return Object(r.useEffect)(()=>(e?e.toPromise().then(()=>{s||i(o(e))}):i(o(e)),()=>{s=!0}),[e]),n}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});var r=n(285),a=n(499),o=n(500),i=n(200);function s(e,t){switch(t.globalSeriesType){case"pie":return Object(i.default)(Object(r.default)(e,t),t);case"heatmap":return Object(i.default)(Object(a.default)(e,t,t));default:return Object(i.default)(Object(o.default)(e,t),t)}}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return c});var r=n(2),a=n(285);function o(e){return Object(r.isObject)(e.title)?e.title.text:null}function i(e){switch(e.type){case"datetime":return"date";case"logarithmic":return"log";default:return e.type}}function s(e,t,n){var a,s,l,c={title:o(e),type:i(e),automargin:!0};return(Object(r.isNumber)(e.rangeMin)||Object(r.isNumber)(e.rangeMax))&&(c.range=(a=n,s=e.rangeMin,l=e.rangeMax,Object(r.isNumber)(s)||(s=Math.min(0,Object(r.min)(Object(r.map)(a,e=>Object(r.min)(e.y))))),Object(r.isNumber)(l)||(l=Object(r.max)(Object(r.map)(a,e=>Object(r.max)(e.y)))),[s,l])),c}function l(e,t,n){var a,l,c,u=n.filter(e=>"y2"!==e.yaxis),d=n.filter(e=>"y2"===e.yaxis);return e.xaxis=(a=t.xAxis,l=t,c={title:o(a),type:i(a),automargin:!0},l.sortX&&"category"===c.type&&(l.reverseX?c.categoryorder="category descending":c.categoryorder="category ascending"),Object(r.isUndefined)(a.labels)||(c.showticklabels=a.labels.enabled),c),e.yaxis=s(t.yAxis[0],0,u),d.length>0&&(e.yaxis2=s(t.yAxis[1],0,d),e.yaxis2.overlaying="y",e.yaxis2.side="right"),t.series.stacking&&(e.barmode="relative"),e}function c(e,t,n){var o={margin:{l:10,r:10,b:10,t:25,pad:4},width:Math.floor(e.offsetWidth),height:Math.floor(e.offsetHeight),autosize:!0,showlegend:!Object(r.has)(t,"legend")||t.legend.enabled};switch(t.globalSeriesType){case"pie":return function(e,t,n){var o=/{{\s*@@name\s*}}/.test(t.textFormat),i=Object(a.getPieDimensions)(n),s=i.cellsInRow,l=i.cellWidth,c=i.cellHeight,u=i.xPadding;return e.annotations=o?[]:Object(r.filter)(Object(r.map)(n,(e,t)=>{var n=t%s*l,r=Math.floor(t/s)*c;return{x:n+(l-u)/2,y:r+c-.015,xanchor:"center",yanchor:"top",text:e.name,showarrow:!1}})),e}(o,t,n);case"box":return function(e,t,n){return(e=l(e,t,n)).boxmode="group",e.boxgroupgap=.5,e}(o,t,n);default:return l(o,t,n)}}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});var r=n(2);function a(e,t,n){t.width=Math.floor(e.offsetWidth),t.height=Math.floor(e.offsetHeight);var a=Object(r.find)(["transform","WebkitTransform","MozTransform","MsTransform","OTransform"],t=>t in e.style);if(t.width<=600)t.legend={orientation:"h",y:0,x:0,xanchor:"left",yanchor:"bottom"},function(e){var t=e.querySelector(".legend");if(t)for(var n=t.parentNode;n;){if("svg"===n.tagName.toLowerCase()){n.style.overflow="visible";break}n=n.parentNode}}(e),n(e,Object(r.pick)(t,["width","height","legend"])).then(()=>{var o=e.querySelector(".legend");if(o){var i=Object(r.reduce)(o.querySelectorAll(".traces"),(e,t)=>{var n=t.getBoundingClientRect();return e=e||n,{top:Math.min(e.top,n.top),bottom:Math.max(e.bottom,n.bottom)}},null);t.height=Math.floor(Math.max(t.height/2,t.height-(i.bottom-i.top))),o.style[a]="translate(0, "+t.height+"px)",n(e,Object(r.pick)(t,["height"]))}});else{t.legend={orientation:"v",y:1,x:1,xanchor:"left",yanchor:"top"};var o=e.querySelector(".legend");o&&(o.style[a]=null),n(e,Object(r.pick)(t,["width","height","legend"]))}}},,function(e,t,n){"use strict";n.r(t);n(34);var r=n(0),a=n.n(r),o=n(343),i=n.n(o);n(944);function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}t.default=Object(r.forwardRef)(function(e,t){return a.a.createElement("div",{className:"ace-editor-input"},a.a.createElement(i.a,s({ref:t,mode:"sql",theme:"textmate",height:"100px",editorProps:{$blockScrolling:1/0},showPrintMargin:!1},e)))})},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return u});var r=n(0),a=n.n(r),o=n(40),i=n.n(o),s=n(1),l=n.n(s),c=(n(945),n(58));function u(e){var t=e.state,n=e.disabled,r=e.onToggle,o="Live Autocomplete Enabled",s="icon-flash";t||(o="Live Autocomplete Disabled",s="icon-flash-off"),n&&(o="Live Autocomplete Not Available (Use Ctrl+Space to Trigger)",s="icon-flash-off");return a.a.createElement(i.a,{placement:"top",title:o},a.a.createElement("button",{type:"button",className:"btn btn-default m-r-5"+(n?" disabled":""),onClick:()=>(e=>{Object(c.default)("toggle_autocomplete","screen","query_editor",{state:e}),r(e)})(!t),disabled:n},a.a.createElement("i",{className:"icon "+s})))}u.propTypes={state:l.a.bool.isRequired,disabled:l.a.bool.isRequired,onToggle:l.a.func.isRequired}},,,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return j});n(14),n(15),n(11);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(74),c=n.n(l),u=n(289),d=n.n(u),p=n(136),m=n.n(p),f=n(40),h=n.n(f),g=n(21),b=n.n(g),y=n(348),v=n(231);n(1121);function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function O(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return(e=c()(e)).isValid()?"#"+e.toHex().toUpperCase():t}function j(e){var t=e.color,n=e.placement,i=e.presetColors,s=e.presetColumns,l=e.triggerSize,u=e.interactive,p=e.children,f=e.onChange,g=w(Object(a.useState)(!1),2),j=g[0],E=g[1],S=w(Object(a.useState)(""),2),x=S[0],P=S[1];function C(){E(!1),u||f(x)}var k=[];return u||(k.push(o.a.createElement(h.a,{key:"cancel",title:"Cancel"},o.a.createElement(b.a,{type:"close",onClick:function(){E(!1)}}))),k.push(o.a.createElement(h.a,{key:"apply",title:"Apply"},o.a.createElement(b.a,{type:"check",onClick:C})))),Object(a.useEffect)(()=>{j&&P(O(t))},[t,j]),o.a.createElement(d.a,{overlayClassName:"color-picker ".concat(u?"color-picker-interactive":"color-picker-with-actions"),overlayStyle:{"--color-picker-selected-color":x},content:o.a.createElement(m.a,{className:"color-picker-panel",bordered:!1,title:Object(r.toString)(x).toUpperCase(),headStyle:{backgroundColor:x,color:c()(x).isLight()?"#000000":"#ffffff"},actions:k},o.a.createElement(y.default,{color:x,presetColors:i,presetColumns:s,onChange:function(e){P(e),u&&f(e)},onPressEnter:C})),trigger:"click",placement:n,visible:j,onVisibleChange:E},p||o.a.createElement(v.default,{className:"color-picker-trigger",color:O(t),size:l}))}j.propTypes={color:s.a.string,placement:s.a.oneOf(["top","left","right","bottom","topLeft","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom"]),presetColors:s.a.oneOfType([s.a.arrayOf(s.a.string),s.a.objectOf(s.a.string)]),presetColumns:s.a.number,triggerSize:s.a.number,interactive:s.a.bool,children:s.a.node,onChange:s.a.func},j.defaultProps={color:"#FFFFFF",placement:"top",presetColors:null,presetColumns:8,triggerSize:30,interactive:!1,children:null,onChange:()=>{}},j.Input=y.default,j.Swatch=v.default},,function(e,t,n){"use strict";n.r(t);n(34),n(11),n(19),n(27);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(146),l=n.n(s),c=n(10),u=n(44);function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var m=a.a.forwardRef((e,t)=>{var n=e.defaultValue,r=e.value,o=e.onSelect,i=e.className,s=p(e,["defaultValue","value","onSelect","className"]),u=c.clientConfig.dateFormat||"YYYY-MM-DD",m={};return n&&n.isValid()&&(m.defaultValue=n),(null===r||r&&r.isValid())&&(m.value=r),a.a.createElement(l.a,d({ref:t,className:i},m,{format:u,placeholder:"Select Date",onChange:o},s))});m.propTypes={defaultValue:u.Moment,value:u.Moment,onSelect:i.a.func,className:i.a.string},m.defaultProps={defaultValue:null,value:void 0,onSelect:()=>{},className:""},t.default=m},,function(e,t,n){"use strict";n.r(t);n(34),n(11),n(19),n(27);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(146),c=n.n(l),u=n(10),d=n(44);function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var f=c.a.RangePicker,h=o.a.forwardRef((e,t)=>{var n=e.defaultValue,a=e.value,i=e.onSelect,s=e.className,l=m(e,["defaultValue","value","onSelect","className"]),c=u.clientConfig.dateFormat||"YYYY-MM-DD",d={};return Object(r.isArray)(n)&&n[0].isValid()&&n[1].isValid()&&(d.defaultValue=n),(null===a||Object(r.isArray)(a)&&a[0].isValid()&&a[1].isValid())&&(d.value=a),o.a.createElement(f,p({ref:t,className:s},d,{format:c,onChange:i},l))});h.propTypes={defaultValue:s.a.arrayOf(d.Moment),value:s.a.arrayOf(d.Moment),onSelect:s.a.func,className:s.a.string},h.defaultProps={defaultValue:null,value:void 0,onSelect:()=>{},className:""},t.default=h},function(e,t,n){"use strict";n.r(t);n(34),n(11),n(19),n(27);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(146),l=n.n(s),c=n(10),u=n(44);function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var m=a.a.forwardRef((e,t)=>{var n=e.defaultValue,r=e.value,o=e.withSeconds,i=e.onSelect,s=e.className,u=p(e,["defaultValue","value","withSeconds","onSelect","className"]),m=(c.clientConfig.dateFormat||"YYYY-MM-DD")+(o?" HH:mm:ss":" HH:mm"),f={};return n&&n.isValid()&&(f.defaultValue=n),(null===r||r&&r.isValid())&&(f.value=r),a.a.createElement(l.a,d({ref:t,className:s,showTime:!0},f,{format:m,placeholder:"Select Date and Time",onChange:i},u))});m.propTypes={defaultValue:u.Moment,value:u.Moment,withSeconds:i.a.bool,onSelect:i.a.func,className:i.a.string},m.defaultProps={defaultValue:null,value:void 0,withSeconds:!1,onSelect:()=>{},className:""},t.default=m},function(e,t,n){"use strict";n.r(t);n(34),n(11),n(19),n(27);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(146),c=n.n(l),u=n(10),d=n(44);function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var f=c.a.RangePicker,h=o.a.forwardRef((e,t)=>{var n=e.defaultValue,a=e.value,i=e.withSeconds,s=e.onSelect,l=e.className,c=m(e,["defaultValue","value","withSeconds","onSelect","className"]),d=(u.clientConfig.dateFormat||"YYYY-MM-DD")+(i?" HH:mm:ss":" HH:mm"),h={};return Object(r.isArray)(n)&&n[0].isValid()&&n[1].isValid()&&(h.defaultValue=n),(null===a||Object(r.isArray)(a)&&a[0].isValid()&&a[1].isValid())&&(h.value=a),o.a.createElement(f,p({ref:t,className:l,showTime:!0},h,{format:d,onChange:s},c))});h.propTypes={defaultValue:s.a.arrayOf(d.Moment),value:s.a.arrayOf(d.Moment),withSeconds:s.a.bool,onSelect:s.a.func,className:s.a.string},h.defaultProps={defaultValue:null,value:void 0,withSeconds:!1,onSelect:()=>{},className:""},t.default=h},function(e,t,n){"use strict";n.r(t),n.d(t,"EditInPlace",function(){return h}),n.d(t,"default",function(){return g});n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(17),l=n(2);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=function(e){function t(e){var n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=function(e,t){return!t||"object"!==c(t)&&"function"!=typeof t?p(e):t}(this,d(t).call(this,e)),f(p(n),"startEditing",()=>{n.props.isEditable&&n.setState({editing:!0})}),f(p(n),"stopEditing",()=>{var e=Object(l.trim)(n.inputRef.current.value);n.props.ignoreBlanks&&""===e||e===n.props.value||n.props.onDone(e),n.setState({editing:!1})}),f(p(n),"keyDown",e=>{13!==e.keyCode||e.shiftKey?27===e.keyCode&&n.setState({editing:!1}):(e.preventDefault(),n.stopEditing())}),f(p(n),"renderNormal",()=>a.a.createElement("span",{role:"presentation",onFocus:n.startEditing,onClick:n.startEditing,className:n.props.isEditable?"editable":""},n.props.value||n.props.placeholder)),f(p(n),"renderEdit",()=>a.a.createElement(n.props.editor,{ref:n.inputRef,className:"rd-form-control",defaultValue:n.props.value,onBlur:n.stopEditing,onKeyDown:n.keyDown})),n.state={editing:!1},n.inputRef=a.a.createRef();var r=p(n);return n.componentDidUpdate=((e,t)=>{r.state.editing&&!t.editing&&r.inputRef.current.focus()}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){return a.a.createElement("span",{className:"edit-in-place"+(this.state.editing?" active":"")},this.state.editing?this.renderEdit():this.renderNormal())}}])&&u(n.prototype,r),o&&u(n,o),t}();function g(e){e.component("editInPlace",Object(s.react2angular)(h))}f(h,"propTypes",{ignoreBlanks:i.a.bool,isEditable:i.a.bool,editor:i.a.string.isRequired,placeholder:i.a.string,value:i.a.string,onDone:i.a.func.isRequired}),f(h,"defaultProps",{ignoreBlanks:!1,isEditable:!0,placeholder:"",value:""}),g.init=!0},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(29);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(26),c=n.n(l),u=n(37),d=n.n(u),p=n(33);function m(e){return(m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function g(e,t){return!t||"object"!==m(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var w=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=g(this,b(t).call(this,e))).state={loading:!0,availableTags:[],result:Object(r.uniq)(Object(r.map)(n.props.tags,r.trim))},n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){this.props.getAvailableTags().then(e=>{this.setState({loading:!1,availableTags:Object(r.uniq)(Object(r.compact)(Object(r.map)(e,r.trim)))})})}},{key:"render",value:function(){var e=this.props.dialog,t=this.state,n=t.loading,a=t.availableTags,i=t.result;return o.a.createElement(d.a,f({},e.props,{onOk:()=>e.close(i),title:"Add/Edit Tags",className:"shortModal"}),o.a.createElement(c.a,{mode:"tags",className:"w-100",placeholder:"Add some tags...",defaultValue:i,onChange:e=>this.setState({result:Object(r.compact)(Object(r.map)(e,r.trim))}),autoFocus:!0,disabled:n,loading:n},Object(r.map)(a,e=>o.a.createElement(c.a.Option,{key:e},e))))}}])&&h(n.prototype,a),i&&h(n,i),t}();v(w,"propTypes",{dialog:p.DialogPropType.isRequired,tags:s.a.arrayOf(s.a.string),getAvailableTags:s.a.func.isRequired}),v(w,"defaultProps",{tags:[]}),t.default=Object(p.wrap)(w)},function(e,t,n){"use strict";n.r(t),n.d(t,"EmailSettingsWarning",function(){return c}),n.d(t,"default",function(){return u});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(17),l=n(10);function c(e){var t=e.featureName;return l.clientConfig.mailSettingsMissing&&l.currentUser.isAdmin?a.a.createElement("p",{className:"alert alert-danger"},"It looks like your mail server isn't configured. Make sure to configure it for the ".concat(t," to work.")):null}function u(e){e.component("emailSettingsWarning",Object(s.react2angular)(c))}c.propTypes={featureName:i.a.string.isRequired},u.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"FavoritesControl",function(){return h}),n.d(t,"default",function(){return g});n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(17),l=n(22);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t){return!t||"object"!==c(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),d(this,p(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(t,a.a.Component),n=t,(r=[{key:"toggleItem",value:function(e,t,n){var r=t.is_favorite?t.$unfavorite.bind(t):t.$favorite.bind(t),a=t.is_favorite;r().then(()=>{t.is_favorite=!a,this.forceUpdate(),l.$rootScope.$broadcast("reloadFavorites"),n()})}},{key:"render",value:function(){var e=this.props,t=e.item,n=e.onChange,r=t.is_favorite?"fa fa-star":"fa fa-star-o",o=t.is_favorite?"Remove from favorites":"Add to favorites";return a.a.createElement("a",{title:o,className:"btn-favourite",onClick:e=>this.toggleItem(e,t,n)},a.a.createElement("i",{className:r,"aria-hidden":"true"}))}}])&&u(n.prototype,r),o&&u(n,o),t}();function g(e){e.component("favoritesControlImpl",Object(s.react2angular)(h)),e.component("favoritesControl",{template:'\n <favorites-control-impl \n ng-if="$ctrl.item" \n item="$ctrl.item" \n on-change="$ctrl.onChange"\n force-update="$ctrl.forceUpdateTag"\n ></favorites-control-impl>\n ',bindings:{item:"="},controller:["$scope",function(e){this.forceUpdateTag="force"+Date.now(),e.$on("reloadFavorites",()=>{this.forceUpdateTag="force"+Date.now()}),this.onChange=(()=>{e.$applyAsync()})}]})}f(h,"propTypes",{item:i.a.shape({is_favorite:i.a.bool.isRequired}).isRequired,onChange:i.a.func,forceUpdate:i.a.string}),f(h,"defaultProps",{onChange:()=>{},forceUpdate:""}),g.init=!0},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(18),l=n.n(s),c=n(291),u=n.n(c),d=n(40),p=n.n(d),m=n(272);function f(e){var t=e.paramCount,n=e.onClick,r=t?"check":"spinner fa-pulse";return a.a.createElement("div",{className:"parameter-apply-button","data-show":!!t,"data-test":"ParameterApplyButton"},a.a.createElement(u.a,{count:t},a.a.createElement(p.a,{title:"".concat(m.KeyboardShortcuts.modKey," + Enter")},a.a.createElement("span",null,a.a.createElement(l.a,{onClick:n},a.a.createElement("i",{className:"fa fa-".concat(r)})," Apply Changes")))))}f.propTypes={onClick:i.a.func.isRequired,paramCount:i.a.number.isRequired},t.default=f},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(3),l=n.n(s),c=n(9),u=n.n(c),d=n(2),p=n(39),m=n(460),f=n(463),h=n(274);n(659);function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(){return(b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function w(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=[{name:"Today/Now",value:"d_now",label:()=>Object(p.getDynamicDate)("d_now").value().format("MMM D")},{name:"Yesterday",value:"d_yesterday",label:()=>Object(p.getDynamicDate)("d_yesterday").value().format("MMM D")}],S=function(e){function t(e){var n,r,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,o=v(t).call(this,e),n=!o||"object"!==g(o)&&"function"!=typeof o?w(r):o,j(w(n),"onDynamicValueSelect",e=>{var t=n.props,r=t.onSelect,a=t.parameter;if("static"===e){var o=a.getValue();r(o?u()(o):null)}else r(e.value);n.dateComponentRef.current.focus()}),n.dateComponentRef=a.a.createRef(),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){var e=this.props,t=e.type,n=e.value,r=e.className,o=e.onSelect,i=Object(p.isDynamicDate)(n),s=Object(d.includes)(t,"datetime"),c={},g=m.default;if(s&&(g=f.default,Object(d.includes)(t,"with-seconds")&&(c.withSeconds=!0)),(u.a.isMoment(n)||null===n)&&(c.value=n),i){var y=Object(p.getDynamicDate)(n);c.placeholder=y&&y.name,c.value=null}return a.a.createElement(g,b({ref:this.dateComponentRef,className:l()("redash-datepicker",{"dynamic-value":i},r),onSelect:o,suffixIcon:a.a.createElement(h.default,{options:E,selectedDynamicValue:i?n:null,enabled:i,onSelect:this.onDynamicValueSelect})},c))}}])&&y(n.prototype,r),o&&y(n,o),t}();j(S,"propTypes",{type:i.a.string,className:i.a.string,value:i.a.any,parameter:i.a.any,onSelect:i.a.func}),j(S,"defaultProps",{type:"",className:"",value:null,parameter:null,onSelect:()=>{}}),t.default=S},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(3),l=n.n(s),c=n(9),u=n.n(c),d=n(2),p=n(39),m=n(462),f=n(464),h=n(274);n(659);function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(){return(b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function w(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=[{ name: "Today", value: "d_today", label: () => Object(p.getDynamicDateRange)("d_today").value()[0].format("MMM D") + " - " + Object(p.getDynamicDateRange)("d_today").value()[1].format("MMM D") },{name:"This week",value:"d_this_week",label:()=>Object(p.getDynamicDateRange)("d_this_week").value()[0].format("MMM D")+" - "+Object(p.getDynamicDateRange)("d_this_week").value()[1].format("MMM D")},{name:"This month",value:"d_this_month",label:()=>Object(p.getDynamicDateRange)("d_this_month").value()[0].format("MMMM")},{name:"This year",value:"d_this_year",label:()=>Object(p.getDynamicDateRange)("d_this_year").value()[0].format("YYYY")},{name:"Last week",value:"d_last_week",label:()=>Object(p.getDynamicDateRange)("d_last_week").value()[0].format("MMM D")+" - "+Object(p.getDynamicDateRange)("d_last_week").value()[1].format("MMM D")},{name:"Last month",value:"d_last_month",label:()=>Object(p.getDynamicDateRange)("d_last_month").value()[0].format("MMMM")},{name:"Last year",value:"d_last_year",label:()=>Object(p.getDynamicDateRange)("d_last_year").value()[0].format("YYYY")},{name:"Last 7 days",value:"d_last_7_days",label:()=>Object(p.getDynamicDateRange)("d_last_7_days").value()[0].format("MMM D")+" - Today"}],S=[{name:"Today",value:"d_today",label:()=>Object(p.getDynamicDateRange)("d_today").value()[0].format("MMM D")},{name:"Yesterday",value:"d_yesterday",label:()=>Object(p.getDynamicDateRange)("d_yesterday").value()[0].format("MMM D")}].concat(E),x={"date-range":294,"datetime-range":352,"datetime-range-with-seconds":382};var P=function(e){function t(e){var n,r,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,o=v(t).call(this,e),n=!o||"object"!==g(o)&&"function"!=typeof o?w(r):o,j(w(n),"onDynamicValueSelect",e=>{var t=n.props,r=t.onSelect,a=t.parameter;if("static"===e){var o=a.getValue();Object(d.isObject)(o)&&o.start&&o.end?r([u()(o.start),u()(o.end)]):r(null)}else r(e.value);n.dateRangeComponentRef.current.focus()}),n.dateRangeComponentRef=a.a.createRef(),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){var e=this.props,t=e.type,n=e.value,r=e.onSelect,o=e.className,i=Object(d.includes)(t,"datetime-range"),s=Object(p.isDynamicDateRange)(n),c=i?S:E,g={},y=m.default;if(i&&(y=f.default,Object(d.includes)(t,"with-seconds")&&(g.withSeconds=!0)),(function(e){return Object(d.isArray)(e)&&2===e.length&&u.a.isMoment(e[0])&&u.a.isMoment(e[1])}(n)||null===n)&&(g.value=n),s){var v=Object(p.getDynamicDateRange)(n);g.placeholder=[v&&v.name],g.value=null}return a.a.createElement(y,b({ref:this.dateRangeComponentRef,className:l()("redash-datepicker date-range-input",{"dynamic-value":s},o),onSelect:r,style:{width:s?195:x[t]},suffixIcon:a.a.createElement(h.default,{options:c,selectedDynamicValue:s?n:null,enabled:s,onSelect:this.onDynamicValueSelect})},g))}}])&&y(n.prototype,r),o&&y(n,o),t}();j(P,"propTypes",{type:i.a.string,className:i.a.string,value:i.a.any,parameter:i.a.any,onSelect:i.a.func}),j(P,"defaultProps",{type:"",className:"",value:null,parameter:null,onSelect:()=>{}}),t.default=P},function(e,t,n){"use strict";n.r(t),n.d(t,"QueryBasedParameterInput",function(){return w}),n.d(t,"default",function(){return O});n(14),n(15),n(34),n(11),n(19),n(27),n(29),n(1283);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(17),c=n(26),u=n.n(c);function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=u.a.Option,w=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=h(this,g(t).call(this,e))).state={options:[],loading:!1},n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){this._loadOptions(this.props.queryId)}},{key:"componentDidUpdate",value:function(e){this.props.queryId!==e.queryId&&this._loadOptions(this.props.queryId)}},{key:"_loadOptions",value:function(e){var t,n,a;return regeneratorRuntime.async(function(o){for(;;)switch(o.prev=o.next){case 0:if(!e||e===this.state.queryId){o.next=6;break}return this.setState({loading:!0}),o.next=4,regeneratorRuntime.awrap(this.props.parameter.loadDropdownValues());case 4:t=o.sent,this.props.queryId===e&&(this.setState({options:t,loading:!1}),"multiple"===this.props.mode&&Object(r.isArray)(this.props.value)?(n=Object(r.map)(t,e=>e.value),a=Object(r.intersection)(this.props.value,n),Object(r.isEqual)(this.props.value,a)||this.props.onSelect(a)):!(void 0!==Object(r.find)(t,e=>e.value===this.props.value))&&Object(r.isFunction)(this.props.onSelect)&&this.props.onSelect(t[0].value));case 6:case"end":return o.stop()}},null,this)}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.value,a=e.mode,i=e.onSelect,s=m(e,["className","value","mode","onSelect"]),l=this.state,c=l.loading,d=l.options;return o.a.createElement("span",null,o.a.createElement(u.a,p({className:t,disabled:c||0===d.length,loading:c,mode:a,value:Object(r.isArray)(n)?n:Object(r.toString)(n),onChange:i,dropdownMatchSelectWidth:!1,optionFilterProp:"children",showSearch:!0,showArrow:!0,notFoundContent:null},s),d.map(e=>o.a.createElement(v,{value:e.value,key:e.value},e.name))))}}])&&f(n.prototype,a),i&&f(n,i),t}();function O(e){e.component("queryBasedParameterInput",Object(l.react2angular)(w))}y(w,"propTypes",{parameter:s.a.any,value:s.a.any,mode:s.a.oneOf(["default","multiple"]),queryId:s.a.number,onSelect:s.a.func,className:s.a.string}),y(w,"defaultProps",{value:null,mode:"default",parameter:null,queryId:null,onSelect:()=>{},className:""}),O.init=!0},function(e,t,n){"use strict";n.r(t);n(11);var r=n(2);t.default={buildKeywordsFromSchema:function(e){var t=[],n={},a={};return e.forEach(e=>{t.push({name:e.name,value:e.name,score:100,meta:"Table"}),a[e.name]=function(e){var t=[];return e.columns.forEach(n=>{t.push({caption:n,name:"".concat(e.name,".").concat(n),value:"".concat(e.name,".").concat(n),score:100,meta:"Column",className:"completion"})}),t}(e),e.columns.forEach(e=>{n[e]="Column"})}),{table:t,column:Object(r.map)(n,(e,t)=>({name:t,value:t,score:50,meta:e})),tableColumn:a}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"TagsList",function(){return v}),n.d(t,"default",function(){return w});n(96),n(90),n(14),n(15),n(29),n(11),n(19),n(55),n(249);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(17),c=n(3),u=n.n(c),d=n(196);function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return!t||"object"!==p(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function b(e,t){return(b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=h(this,g(t).call(this,e))).state={allTags:[],selectedTags:new Set},n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&b(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){Object(d.default)(this.props.tagsUrl).then(e=>{this.setState({allTags:e})})}},{key:"toggleTag",value:function(e,t){var n=this.state.selectedTags;e.shiftKey?n.has(t)?n.delete(t):n.add(t):n.has(t)&&1===n.size?n.clear():(n.clear(),n.add(t)),this.forceUpdate(),this.props.onUpdate(m(this.state.selectedTags))}},{key:"render",value:function(){var e=this.state,t=e.allTags,n=e.selectedTags;return t.length>0?o.a.createElement("div",{className:"list-group m-t-10 tags-list tiled"},Object(r.map)(t,e=>o.a.createElement("a",{key:e.name,className:u()("list-group-item","max-character",{active:n.has(e.name)}),onClick:t=>this.toggleTag(t,e.name)},o.a.createElement("span",{className:"badge badge-light"},e.count),o.a.createElement("span",{className:"tags-list__name"},e.name)))):null}}])&&f(n.prototype,a),i&&f(n,i),t}();function w(e){e.component("tagsList",Object(l.react2angular)(v))}y(v,"propTypes",{tagsUrl:s.a.string.isRequired,onUpdate:s.a.func}),y(v,"defaultProps",{onUpdate:()=>{}}),w.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});var r=n(2),a=n(22),o=n(10);function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,s;return t=e,(n=[{key:"refresh",value:function(){return a.$q.resolve(this)}},{key:"canCreateDataSource",value:function(){return o.currentUser.isAdmin}},{key:"isCreateDataSourceEnabled",value:function(){return o.currentUser.isAdmin}},{key:"canCreateDestination",value:function(){return o.currentUser.isAdmin}},{key:"isCreateDestinationEnabled",value:function(){return o.currentUser.isAdmin}},{key:"canCreateDashboard",value:function(){return o.currentUser.hasPermission("create_dashboard")}},{key:"isCreateDashboardEnabled",value:function(){return o.currentUser.hasPermission("create_dashboard")}},{key:"canCreateAlert",value:function(){return!0}},{key:"canCreateUser",value:function(){return o.currentUser.isAdmin}},{key:"isCreateUserEnabled",value:function(){return o.currentUser.isAdmin}},{key:"isCreateQuerySnippetEnabled",value:function(){return!0}},{key:"getDashboardRefreshIntervals",value:function(){var e=o.clientConfig.dashboardRefreshIntervals;return Object(r.isArray)(e)?e:null}},{key:"getQueryRefreshIntervals",value:function(){var e=o.clientConfig.queryRefreshIntervals;return Object(r.isArray)(e)?e:null}}])&&i(t.prototype,n),s&&i(t,s),e}()},function(e,t,n){"use strict";n.r(t),n.d(t,"ErrorHandler",function(){return o});var r=n(70);function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var o=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.logToConsole=!0,this.reset()}var t,n,o;return t=e,(n=[{key:"reset",value:function(){this.error=null}},{key:"process",value:function(e){this.reset(),this.logToConsole&&console.error(e),(null===e||e instanceof r.a)&&(this.error=e)}}])&&a(t.prototype,n),o&&a(t,o),e}()},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(29),n(106);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(26),c=n.n(l),u=n(37),d=n.n(u),p=n(33),m=n(94),f=n(269),h=n(12),g=n(39);function b(e){return(b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function O(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function j(e,t){return(j=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var S=c.a.Option,x=c.a.OptGroup,P=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];return r=this,n=!(a=(e=w(t)).call.apply(e,[this].concat(i)))||"object"!==b(a)&&"function"!=typeof a?O(r):a,E(O(n),"state",{saveInProgress:!1,selectedQuery:null,selectedVis:null,parameterMappings:[]}),n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&j(e,t)}(t,o.a.Component),n=t,(a=[{key:"selectQuery",value:function(e){this.setState({selectedQuery:null,selectedVis:null,parameterMappings:[]}),e&&g.Query.get({id:e.id},e=>{if(e){var t=Object(r.map)(this.props.dashboard.getParametersDefs(),e=>e.name);this.setState({selectedQuery:e,parameterMappings:Object(r.map)(e.getParametersDefs(),e=>({name:e.name,type:Object(r.includes)(t,e.name)?m.MappingType.DashboardMapToExisting:m.MappingType.DashboardAddNew,mapTo:e.name,value:e.normalizedValue,title:"",param:e}))}),e.visualizations.length&&this.setState({selectedVis:e.visualizations[0]})}})}},{key:"selectVisualization",value:function(e,t){Object(r.each)(e.visualizations,e=>{if(e.id===t)return this.setState({selectedVis:e}),!1})}},{key:"saveWidget",value:function(){var e=this.state,t=e.selectedVis,n=e.parameterMappings;this.setState({saveInProgress:!0}),this.props.onConfirm(t,n).then(()=>{this.props.dialog.close()}).catch(()=>{h.default.error("Widget could not be added")}).finally(()=>{this.setState({saveInProgress:!1})})}},{key:"updateParamMappings",value:function(e){this.setState({parameterMappings:e})}},{key:"renderVisualizationInput",value:function(){var e={};return this.state.selectedQuery&&Object(r.each)(this.state.selectedQuery.visualizations,t=>{e[t.type]=e[t.type]||[],e[t.type].push(t)}),e=Object(r.values)(e),o.a.createElement("div",null,o.a.createElement("div",{className:"form-group"},o.a.createElement("label",{htmlFor:"choose-visualization"},"Choose Visualization"),o.a.createElement(c.a,{id:"choose-visualization",className:"w-100",defaultValue:Object(r.first)(this.state.selectedQuery.visualizations).id,onChange:e=>this.selectVisualization(this.state.selectedQuery,e)},e.map(e=>o.a.createElement(x,{label:e[0].type,key:e[0].type},e.map(e=>o.a.createElement(S,{value:e.id,key:e.id},e.name)))))))}},{key:"render",value:function(){var e=this.props.dashboard.getParametersDefs(),t=this.props.dialog;return o.a.createElement(d.a,y({},t.props,{title:"Add Widget",onOk:()=>this.saveWidget(),okButtonProps:{loading:this.state.saveInProgress,disabled:!this.state.selectedQuery},okText:"Add to Dashboard",width:700}),o.a.createElement("div",{"data-test":"AddWidgetDialog"},o.a.createElement(f.QuerySelector,{onChange:e=>this.selectQuery(e)}),this.state.selectedQuery&&this.renderVisualizationInput(),this.state.parameterMappings.length>0&&[o.a.createElement("label",{key:"parameters-title",htmlFor:"parameter-mappings"},"Parameters"),o.a.createElement(m.ParameterMappingListInput,{key:"parameters-list",id:"parameter-mappings",mappings:this.state.parameterMappings,existingParams:e,onChange:e=>this.updateParamMappings(e)})]))}}])&&v(n.prototype,a),i&&v(n,i),t}();E(P,"propTypes",{dashboard:s.a.object.isRequired,dialog:p.DialogPropType.isRequired,onConfirm:s.a.func.isRequired}),t.default=Object(p.wrap)(P)},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return u});n(14),n(15),n(19),n(27),n(11),n(90);var r=n(2);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s='[data-widgetid="{0}"]',l=[".widget-header","visualization-renderer",".scrollbox .alert",".spinner-container",".tile__bottom-control"].join(","),c=200,u=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i(this,"widgets",{}),i(this,"interval",null),i(this,"onHeightChange",null),i(this,"add",e=>{this.isEmpty()&&this.start();var t=s.replace("{0}",e);this.widgets[e]=[function(){var e=document.querySelector(t);if(e){var n=e.querySelectorAll(l);return Object(r.reduce)(n,(e,t)=>{return e+(t?t.getBoundingClientRect().height:0)},0)}}]}),i(this,"remove",e=>{this.exists(e)&&(this.widgets[e.toString()]=!1,this.isEmpty()&&this.stop())}),i(this,"exists",e=>!!this.widgets[e.toString()]),i(this,"isEmpty",()=>!Object(r.some)(this.widgets)),i(this,"checkHeightChanges",()=>{Object.keys(this.widgets).filter(this.exists).forEach(e=>{var t=a(this.widgets[e],2),n=t[0],r=t[1],o=n();o&&o!==r&&(this.widgets[e][1]=o,this.onHeightChange(e,o))})}),i(this,"start",()=>{this.stop(),this.interval=setInterval(this.checkHeightChanges,c)}),i(this,"stop",()=>{clearInterval(this.interval)}),i(this,"resume",()=>{this.isEmpty()||this.start()}),i(this,"destroy",()=>{this.stop(),this.widgets=null}),this.onHeightChange=t}var t,n,u;return t=e,(n=[{key:"update",value:function(e){var t=e.filter(e=>e.options.position.autoHeight).map(e=>e.id.toString());t.filter(e=>!Object(r.includes)(Object.keys(this.widgets),e)).forEach(this.add),Object.keys(this.widgets).filter(e=>!Object(r.includes)(t,e)).forEach(this.remove)}}])&&o(t.prototype,n),u&&o(t,u),e}()},function(e,t,n){"use strict";n.r(t),n.d(t,"DashboardWidget",function(){return p}),n.d(t,"default",function(){return h});n(106),n(116);var r=n(2),a=n(59),o=n(772),i=n.n(o),s=n(278),l=n(773),c=n.n(l),u=n(480);n(1353),n(1354);m.$inject=["$scope","$location","$uibModal","$window","$rootScope","$timeout","Events","currentUser"];var d={template:c.a,bindings:{resolve:"<",close:"&",dismiss:"&"},controller:function(){this.widget=this.resolve.widget}},p=null;function m(e,t,n,a,o,i,l,c){var d=this;this.canViewQuery=c.hasPermission("view_query"),this.editTextBox=(()=>{s.default.showModal({dashboard:this.dashboard,text:this.widget.text,onConfirm:e=>(this.widget.text=e,this.widget.save())})}),this.expandVisualization=(()=>{n.open({component:"widgetDialog",resolve:{widget:this.widget},size:"lg"})}),this.hasParameters=(()=>this.widget.query.getParametersDefs().length>0),this.editParameterMappings=(()=>{u.default.showModal({dashboard:this.dashboard,widget:this.widget}).result.then(t=>{this.localParameters=null,t&&i(()=>this.refresh()),e.$applyAsync(),o.$broadcast("dashboard.update-parameters")})}),this.localParametersDefs=(()=>(this.localParameters||(this.localParameters=Object(r.filter)(this.widget.getParametersDefs(),e=>!this.widget.isStaticParam(e))),this.localParameters)),this.deleteWidget=(()=>{a.confirm('Are you sure you want to remove "'.concat(this.widget.getName(),'" from the dashboard?'))&&this.widget.delete().then(()=>{this.deleted&&this.deleted({})})}),l.record("view","widget",this.widget.id),this.load=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=t.search().maxAge;return d.widget.load(e,n)},this.forceRefresh=(()=>this.load(!0)),this.refresh=(e=>{this.refreshClickButtonId=e,this.load(!0).finally(()=>{this.refreshClickButtonId=void 0})}),this.widget.visualization?(l.record("view","query",this.widget.visualization.query.id,{dashboard:!0}),l.record("view","visualization",this.widget.visualization.id,{dashboard:!0}),this.type="visualization",this.load()):this.widget.restricted?this.type="restricted":this.type="textbox"}var f={template:i.a,controller:m,bindings:{widget:"<",public:"<",dashboard:"<",filters:"<",deleted:"<"}};function h(e){e.component("widgetDialog",d),e.component("dashboardWidget",f),e.run(["$injector",e=>{p=Object(a.angular2react)("dashboardWidget ",f,e)}])}h.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"getParamValuesSnapshot",function(){return O});n(34),n(96),n(90),n(14),n(15),n(29),n(95),n(11),n(19),n(55),n(106);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(37),c=n.n(l),u=n(33),d=n(94),p=n(12);function m(e){return(m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function h(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e,t){return Object(r.map)(Object(r.sortBy)(e,e=>e.name),e=>{var n;switch(e.type){case d.MappingType.StaticValue:return[e.name,e.value];case d.MappingType.WidgetLevel:return[e.name,e.param.value];case d.MappingType.DashboardAddNew:case d.MappingType.DashboardMapToExisting:return n=Object(r.find)(t,t=>t.name===e.mapTo),[e.name,n?n.value:null]}})}var j=function(e){function t(e){var n,a,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,n=!(o=b(t).call(this,e))||"object"!==m(o)&&"function"!=typeof o?y(a):o,w(y(n),"originalParamValuesSnapshot",null);var i=Object(d.parameterMappingsToEditableMappings)(e.widget.options.parameterMappings,e.widget.query.getParametersDefs(),Object(r.map)(n.props.dashboard.getParametersDefs(),e=>e.name));return n.originalParamValuesSnapshot=O(i,n.props.dashboard.getParametersDefs()),n.state={saveInProgress:!1,parameterMappings:i},n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(t,o.a.Component),n=t,(a=[{key:"saveWidget",value:function(){var e=this.props.widget;this.setState({saveInProgress:!0});var t=Object(d.editableMappingsToParameterMappings)(this.state.parameterMappings);e.options.parameterMappings=t;var n=!Object(r.isMatch)(this.originalParamValuesSnapshot,O(this.state.parameterMappings,this.props.dashboard.getParametersDefs())),a=[e].concat(h(Object(d.synchronizeWidgetTitles)(e.options.parameterMappings,this.props.dashboard.widgets)));Promise.all(Object(r.map)(a,e=>e.save())).then(()=>{this.props.dialog.close(n)}).catch(()=>{p.default.error("Widget cannot be updated")}).finally(()=>{this.setState({saveInProgress:!1})})}},{key:"updateParamMappings",value:function(e){this.setState({parameterMappings:e})}},{key:"render",value:function(){var e=this.props.dialog;return o.a.createElement(c.a,f({},e.props,{title:"Parameters",onOk:()=>this.saveWidget(),okButtonProps:{loading:this.state.saveInProgress},width:700}),this.state.parameterMappings.length>0&&o.a.createElement(d.ParameterMappingListInput,{mappings:this.state.parameterMappings,existingParams:this.props.dashboard.getParametersDefs(),onChange:e=>this.updateParamMappings(e)}))}}])&&g(n.prototype,a),i&&g(n,i),t}();w(j,"propTypes",{dashboard:s.a.object.isRequired,widget:s.a.object.isRequired,dialog:u.DialogPropType.isRequired}),t.default=Object(u.wrap)(j)},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(29);var r=n(0),a=n.n(r),o=n(37),i=n.n(o),s=n(31),l=n.n(s),c=n(33),u=n(60);function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];return r=this,a=(e=f(t)).call.apply(e,[this].concat(i)),n=!a||"object"!==d(a)&&"function"!=typeof a?h(r):a,b(h(n),"state",{name:""}),b(h(n),"save",()=>{n.props.dialog.close(new u.Group({name:n.state.name}))}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&g(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){var e=this.props.dialog;return a.a.createElement(i.a,p({},e.props,{title:"Create a New Group",okText:"Create",onOk:()=>this.save()}),a.a.createElement(l.a,{className:"form-control",defaultValue:this.state.name,onChange:e=>this.setState({name:e.target.value}),onPressEnter:()=>this.save(),placeholder:"Group Name",autoFocus:!0}))}}])&&m(n.prototype,r),o&&m(n,o),t}();b(y,"propTypes",{dialog:c.DialogPropType.isRequired}),t.default=Object(c.wrap)(y)},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});var r=n(2);function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.page,r=t.itemsPerPage,a=t.totalCount,o=t.validate,s=void 0===o||o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i(this,"page",1),i(this,"itemsPerPage",20),i(this,"totalCount",0),this.setItemsPerPage(r,s),this.setTotalCount(a,s),this.setPage(n,s)}return o(e,[{key:"setPage",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];Object(r.isUndefined)(e)||(e=parseInt(e,10)||1,this.page=t?e>=1&&e<=this.totalPages?e:1:e>=1?e:1)}},{key:"setItemsPerPage",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];Object(r.isUndefined)(e)||(e=parseInt(e,10)||20,this.itemsPerPage=e>=1?e:1,t&&this.setPage(this.page,t))}},{key:"setTotalCount",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];Object(r.isUndefined)(e)||(e=parseInt(e,10)||0,this.totalCount=e,t&&this.setPage(this.page,t))}},{key:"totalPages",get:function(){return Math.ceil(this.totalCount/this.itemsPerPage)}}]),o(e,[{key:"getItemsForPage",value:function(e){var t=this.itemsPerPage*(this.page-1),n=t+this.itemsPerPage;return e.slice(t,n)}}]),e}()},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return m});n(14),n(15),n(11);var r=n(2),a=n(0),o=n.n(a),i=n(3),s=n.n(i),l=n(1),c=n.n(l);n(1359);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function d(e){var t=e.value,n=e.children,i=e.openingBrace,l=e.closingBrace,c=e.withKeys,d=u(Object(a.useState)(!1),2),m=d[0],f=d[1],h=Object(r.keys)(t),g=h.length;return o.a.createElement(o.a.Fragment,null,g>0&&o.a.createElement("span",{className:"jvi-toggle",onClick:()=>f(!m)},o.a.createElement("i",{className:s()("fa",{"fa-caret-right":!m,"fa-caret-down":m})})),o.a.createElement("span",{className:"jvi-punctuation jvi-braces"},i),!m&&g>0&&o.a.createElement("span",{className:"jvi-punctuation jvi-ellipsis",onClick:()=>f(!0)},"…"),m&&o.a.createElement("span",{className:"jvi-block"},Object(r.map)(h,(e,n)=>{var r=0===n,a=n===g-1,i=a?null:o.a.createElement("span",{className:"jvi-punctuation jvi-comma"},",");return o.a.createElement("span",{key:"item-"+e,className:s()("jvi-item",{"jvi-nested-first":r,"jvi-nested-last":a})},c&&o.a.createElement("span",{className:"jvi-object-key"},o.a.createElement(p,{value:e},o.a.createElement("span",{className:"jvi-punctuation"},": "))),o.a.createElement(p,{value:t[e]},i))})),o.a.createElement("span",{className:"jvi-punctuation jvi-braces"},l),n,!m&&o.a.createElement("span",{className:"jvi-comment"}," // "+g+" "+(1===g?"item":"items")))}function p(e){var t=e.value,n=e.children;return null===t||!1===t||!0===t||Object(r.isFinite)(t)?o.a.createElement("span",{className:"jvi-value jvi-primitive"},""+t,n):Object(r.isString)(t)?o.a.createElement(o.a.Fragment,null,o.a.createElement("span",{className:"jvi-punctuation jvi-string"},'"'),o.a.createElement("span",{className:"jvi-value jvi-string"},t),o.a.createElement("span",{className:"jvi-punctuation jvi-string"},'"'),n):Object(r.isArray)(t)?o.a.createElement(d,{value:t,openingBrace:"[",closingBrace:"]"},n):Object(r.isObject)(t)?o.a.createElement(d,{value:t,openingBrace:"{",closingBrace:"}",withKeys:!0},n):null}function m(e){var t=e.value;return o.a.createElement("span",{className:"jvi-item jvi-root"},o.a.createElement(p,{value:t}))}m.propTypes={value:c.a.any},m.defaultProps={value:void 0}},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(121),l=n.n(s),c=n(18),u=n.n(c),d=n(101),p=n.n(d),m=n(35),f=n.n(m),h=n(93),g=n.n(h),b=n(37),y=n.n(b),v=n(33),w=n(10),O=n(288);n(1363);function j(e){return(j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function E(){return(E=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function S(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function x(e){return(x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function P(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function C(e,t){return(C=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var _=function(e){function t(e){var n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,n=!(a=x(t).call(this,e))||"object"!==j(a)&&"function"!=typeof a?P(r):a,k(P(n),"state",{enableChangeIframeSize:!1,iframeWidth:720,iframeHeight:391});var o=e.query,i=e.visualization;return n.embedUrl="".concat(w.clientConfig.basePath,"embed/query/").concat(o.id,"/visualization/").concat(i.id,"?api_key=").concat(o.api_key,"&").concat(o.getParameters().toUrlParams()),window.snapshotUrlBuilder&&(n.snapshotUrl=window.snapshotUrlBuilder(o,i)),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&C(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){var e=this.props,t=e.query,n=e.dialog,r=this.state,o=r.enableChangeIframeSize,i=r.iframeWidth,s=r.iframeHeight;return a.a.createElement(y.a,E({},n.props,{className:"embed-query-dialog",title:"Embed Query",footer:a.a.createElement(u.a,{onClick:n.dismiss},"Close")}),t.is_safe?a.a.createElement(a.a.Fragment,null,a.a.createElement("h5",{className:"m-t-0"},"Public URL"),a.a.createElement("div",{className:"m-b-30"},a.a.createElement(O.default,{"data-test":"EmbedIframe",copyable:!0},this.embedUrl)),a.a.createElement("h5",{className:"m-t-0"},"IFrame Embed"),a.a.createElement("div",null,a.a.createElement(O.default,{copyable:!0},'<iframe src="'.concat(this.embedUrl,'" width="').concat(i,'" height="').concat(s,'"></iframe>')),a.a.createElement(f.a,{className:"m-t-10",layout:"inline"},a.a.createElement(f.a.Item,null,a.a.createElement(p.a,{checked:o,onChange:e=>this.setState({enableChangeIframeSize:e.target.checked})})),a.a.createElement(f.a.Item,{label:"Width"},a.a.createElement(g.a,{className:"size-input",value:i,onChange:e=>this.setState({iframeWidth:e}),size:"small",disabled:!o})),a.a.createElement(f.a.Item,{label:"Height"},a.a.createElement(g.a,{className:"size-input",value:s,onChange:e=>this.setState({iframeHeight:e}),size:"small",disabled:!o})))),this.snapshotUrl&&a.a.createElement(a.a.Fragment,null,a.a.createElement("h5",null,"Image Embed"),a.a.createElement(O.default,{copyable:!0},this.snapshotUrl))):a.a.createElement(l.a,{message:"Currently it is not possible to embed queries that contain text parameters.",type:"error","data-test":"EmbedErrorAlert"}))}}])&&S(n.prototype,r),o&&S(n,o),t}();k(_,"propTypes",{dialog:v.DialogPropType.isRequired,query:i.a.object.isRequired,visualization:i.a.object.isRequired}),t.default=Object(v.wrap)(_)},function(e,t,n){"use strict";n.r(t),n.d(t,"TimeEditor",function(){return I});n(14),n(15),n(34),n(29),n(11),n(19),n(27),n(131);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(37),l=n.n(s),c=n(146),u=n.n(c),d=n(461),p=n.n(d),m=n(26),f=n.n(m),h=n(112),g=n.n(h),b=n(2),y=n(9),v=n.n(y),w=n(45),O=n(33),j=n(44);n(670);function E(e){return(E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(){return(S=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function x(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function P(e){return(P=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var $=v.a.weekdaysShort(),q=v.a.weekdays(),N="YYYY-MM-DD",D="HH:mm",R=f.a.Option,A=f.a.OptGroup;function I(e){var t=T(Object(r.useState)(e.defaultValue),2),n=t[0],o=t[1],i=n&&!n.isUTC();return a.a.createElement(a.a.Fragment,null,a.a.createElement(p.a,{allowClear:!1,value:n,format:D,minuteStep:5,onChange:function(t){o(t),e.onChange(t)}}),i&&a.a.createElement("span",{className:"utc","data-testid":"utc"},"(",v.a.utc(n).format(D)," UTC)"))}I.propTypes={defaultValue:j.Moment,onChange:i.a.func.isRequired},I.defaultProps={defaultValue:null};var z=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];return r=this,a=(e=P(t)).call.apply(e,[this].concat(i)),n=!a||"object"!==E(a)&&"function"!=typeof a?C(r):a,_(C(n),"state",n.getState()),_(C(n),"setTime",e=>{n.newSchedule={time:v()(e).utc().format(D)}}),_(C(n),"setInterval",e=>{var t=n.state.newSchedule,r=Object(w.secondsToInterval)(e).interval;r===w.IntervalEnum.NEVER&&(t.until=null),-1!==[w.IntervalEnum.NEVER,w.IntervalEnum.MINUTES,w.IntervalEnum.HOURS].indexOf(r)&&(t.time=null),r!==w.IntervalEnum.WEEKS&&(t.day_of_week=null),r!==w.IntervalEnum.DAYS&&r!==w.IntervalEnum.WEEKS||n.state.minute&&n.state.hour||(t.time=v()().hour("00").minute("15").utc().format(D)),r!==w.IntervalEnum.WEEKS||n.state.dayOfWeek||(t.day_of_week=q[0]),t.interval=e;var a=T(t.time?Object(w.localizeTime)(t.time).split(":"):[null,null],2),o=a[0],i=a[1];n.setState({interval:r,seconds:e,hour:o,minute:i,dayOfWeek:t.day_of_week?$[q.indexOf(t.day_of_week)]:null}),n.newSchedule=t}),_(C(n),"setScheduleUntil",(e,t)=>{n.newSchedule={until:t}}),_(C(n),"setWeekday",e=>{var t=e.target.value;n.setState({dayOfWeek:t}),n.newSchedule={day_of_week:t?q[$.indexOf(t)]:null}}),_(C(n),"setUntilToggle",e=>{var t=e.target.value?v()().format(N):null;n.setScheduleUntil(null,t)}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&k(e,t)}(t,a.a.Component),n=t,(r=[{key:"getState",value:function(){var e=Object(b.clone)(this.props.schedule||t.defaultProps.schedule),n=e.time,r=e.interval,a=e.day_of_week,o=Object(w.secondsToInterval)(r).interval,i=T(n?Object(w.localizeTime)(n).split(":"):[null,null],2);return{hour:i[0],minute:i[1],seconds:r,interval:o,dayOfWeek:a?$[q.indexOf(a)]:null,newSchedule:e}}},{key:"save",value:function(){var e=this.state.newSchedule;(()=>{var t=Object(b.omitBy)(e,b.isNil),n=Object(b.omitBy)(this.props.schedule,b.isNil);return!Object(b.isEqual)(t,n)})()&&(e.interval?this.props.dialog.close(Object(b.clone)(e)):this.props.dialog.close(null)),this.props.dialog.dismiss()}},{key:"render",value:function(){var e=this.props.dialog,t=this.state,n=t.interval,r=t.minute,o=t.hour,i=t.seconds,s=t.newSchedule.until;return a.a.createElement(l.a,S({},e.props,{title:"Refresh Schedule",className:"schedule",onOk:()=>this.save()}),a.a.createElement("div",{className:"schedule-component"},a.a.createElement("h5",null,"Refresh every"),a.a.createElement("div",{"data-testid":"interval"},a.a.createElement(f.a,{className:"input",value:i,onChange:this.setInterval,dropdownMatchSelectWidth:!1},a.a.createElement(R,{value:null,key:"never"},"Never"),Object.keys(this.intervals).map(e=>a.a.createElement(A,{label:Object(b.capitalize)(Object(w.pluralize)(e)),key:e},this.intervals[e].map(e=>{var t=T(e,2),n=t[0],r=t[1];return a.a.createElement(R,{value:r,key:n},Object(w.durationHumanize)(r))})))))),-1!==[w.IntervalEnum.DAYS,w.IntervalEnum.WEEKS].indexOf(n)?a.a.createElement("div",{className:"schedule-component"},a.a.createElement("h5",null,"On time"),a.a.createElement("div",{"data-testid":"time"},a.a.createElement(I,{defaultValue:o?v()().hour(o).minute(r):null,onChange:this.setTime}))):null,w.IntervalEnum.WEEKS===n?a.a.createElement("div",{className:"schedule-component"},a.a.createElement("h5",null,"On day"),a.a.createElement("div",{"data-testid":"weekday"},a.a.createElement(g.a.Group,{size:"medium",defaultValue:this.state.dayOfWeek,onChange:this.setWeekday},$.map(e=>a.a.createElement(g.a.Button,{value:e,key:e,className:"input"},e[0]))))):null,n!==w.IntervalEnum.NEVER?a.a.createElement("div",{className:"schedule-component"},a.a.createElement("h5",null,"Ends"),a.a.createElement("div",{className:"ends","data-testid":"ends"},a.a.createElement(g.a.Group,{size:"medium",value:!!s,onChange:this.setUntilToggle},a.a.createElement(g.a,{value:!1},"Never"),a.a.createElement(g.a,{value:!0},"On")),s?a.a.createElement(u.a,{size:"small",className:"datepicker",value:v()(s),allowClear:!1,format:N,onChange:this.setScheduleUntil}):null)):null)}},{key:"intervals",get:function(){var e=_({},w.IntervalEnum.NEVER,[]);return this.props.refreshOptions.forEach(t=>{var n=Object(w.secondsToInterval)(t),r=n.count,a=n.interval;a in e||(e[a]=[]),e[a].push([r,t])}),Object.defineProperty(this,"intervals",{value:e}),e}},{key:"newSchedule",set:function(e){this.setState(t=>({newSchedule:S(t.newSchedule,e)}))}}])&&x(n.prototype,r),o&&x(n,o),t}();_(z,"propTypes",{schedule:j.RefreshScheduleType,refreshOptions:i.a.arrayOf(i.a.number).isRequired,dialog:O.DialogPropType.isRequired}),_(z,"defaultProps",{schedule:j.RefreshScheduleDefault}),t.default=Object(O.wrap)(z)},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(11),n(19),n(27),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(2),l=n(18),c=n.n(l),u=n(37),d=n.n(u),p=n(119),m=n(33);function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){O(e,t,n[t])})}return e}function b(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function w(e,t){return(w=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var j=function(e){function t(e){var n,r,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,a=y(t).call(this,e),n=!a||"object"!==f(a)&&"function"!=typeof a?v(r):a,O(v(n),"handleSubmit",(e,t,r)=>{var a=n.props,o=a.querySnippet,i=a.dialog,l=a.onSubmit,c=Object(s.get)(o,"id");n.setState({saving:!0}),l(c?g({id:c},e):e).then(()=>{i.close(),t("Saved.")}).catch(()=>{n.setState({saving:!1}),r("Failed saving snippet.")})}),n.state={saving:!1},n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&w(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){var e=this.state.saving,t=this.props,n=t.querySnippet,r=t.dialog,o=t.readOnly,i=!!Object(s.get)(n,"id"),l=[{name:"trigger",title:"Trigger",type:"text",required:!0,autoFocus:!i},{name:"description",title:"Description",type:"text"},{name:"snippet",title:"Snippet",type:"ace",required:!0}].map(e=>g({},e,{readOnly:o,initialValue:Object(s.get)(n,e.name,"")}));return a.a.createElement(d.a,h({},r.props,{title:i?n.trigger:"Create Query Snippet",footer:[a.a.createElement(c.a,{key:"cancel",onClick:r.dismiss},o?"Close":"Cancel"),!o&&a.a.createElement(c.a,{key:"submit",htmlType:"submit",loading:e,disabled:o,type:"primary",form:"querySnippetForm"},i?"Save":"Create")]}),a.a.createElement(p.default,{id:"querySnippetForm",fields:l,onSubmit:this.handleSubmit,hideSubmitButton:!0,feedbackIcons:!0}))}}])&&b(n.prototype,r),o&&b(n,o),t}();O(j,"propTypes",{dialog:m.DialogPropType.isRequired,querySnippet:i.a.object,readOnly:i.a.bool,onSubmit:i.a.func.isRequired}),O(j,"defaultProps",{querySnippet:null,readOnly:!1}),t.default=Object(m.wrap)(j)},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(11),n(19),n(27),n(29);var r=n(0),a=n.n(r),o=n(35),i=n.n(o),s=n(37),l=n.n(s),c=n(31),u=n.n(c),d=n(2),p=n(53),m=n(12),f=n(44),h=n(33);function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(){return(b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){E(e,t,n[t])})}return e}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function O(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function j(e,t){return(j=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var S=function(e){function t(e){var n,r,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,a=w(t).call(this,e),n=!a||"object"!==g(a)&&"function"!=typeof a?O(r):a,E(O(n),"fieldError",(e,t)=>0===t.length?"This field is required.":"currentPassword"!==e&&t.length<6?"This field is too short.":"repeatPassword"===e&&t!==n.state.newPassword.value?"Passwords don't match":null),E(O(n),"validateFields",e=>{var t=n.state,r=t.currentPassword,a=t.newPassword,o=t.repeatPassword,i={currentPassword:n.fieldError("currentPassword",r.value),newPassword:n.fieldError("newPassword",a.value),repeatPassword:n.fieldError("repeatPassword",o.value)};n.setState({currentPassword:y({},r,{error:i.currentPassword}),newPassword:y({},a,{error:i.newPassword}),repeatPassword:y({},o,{error:i.repeatPassword})}),Object(d.isFunction)(e)&&e(i.currentPassword||i.newPassword||i.repeatPassword?i:null)}),E(O(n),"updatePassword",()=>{var e=n.state,t=e.currentPassword,r=e.newPassword;e.updatingPassword||n.validateFields(e=>{if(e)n.setState(e=>({currentPassword:y({},e.currentPassword,{touched:!0}),newPassword:y({},e.newPassword,{touched:!0}),repeatPassword:y({},e.repeatPassword,{touched:!0})}));else{var a={id:n.props.user.id,old_password:t.value,password:r.value};n.setState({updatingPassword:!0}),p.User.save(a,()=>{m.default.success("Saved."),n.props.dialog.close({success:!0})},function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};m.default.error(e.data&&e.data.message||"Failed saving."),n.setState({updatingPassword:!1})})}})}),E(O(n),"handleChange",e=>{var t=e.target,r=t.name,a=t.value,o=n.state[r].error;n.setState(E({},r,{value:a,error:o,touched:!0}),()=>{n.validateFields()})}),n.state={currentPassword:{value:"",error:null,touched:!1},newPassword:{value:"",error:null,touched:!1},repeatPassword:{value:"",error:null,touched:!1},updatingPassword:!1},n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&j(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){var e=this.props.dialog,t=this.state,n=t.currentPassword,r=t.newPassword,o=t.repeatPassword,s=t.updatingPassword,c={className:"m-b-10",required:!0},d={onChange:this.handleChange,onPressEnter:this.updatePassword};return a.a.createElement(l.a,b({},e.props,{okButtonProps:{loading:s},onOk:this.updatePassword,title:"Change Password"}),a.a.createElement(i.a,{layout:"vertical"},a.a.createElement(i.a.Item,b({},c,{validateStatus:n.touched&&n.error?"error":null,help:n.touched?n.error:null,label:"Current Password"}),a.a.createElement(u.a.Password,b({},d,{name:"currentPassword","data-test":"CurrentPassword",autoFocus:!0}))),a.a.createElement(i.a.Item,b({},c,{validateStatus:r.touched&&r.error?"error":null,help:r.touched?r.error:null,label:"New Password"}),a.a.createElement(u.a.Password,b({},d,{name:"newPassword","data-test":"NewPassword"}))),a.a.createElement(i.a.Item,b({},c,{validateStatus:o.touched&&o.error?"error":null,help:o.touched?o.error:null,label:"Repeat New Password"}),a.a.createElement(u.a.Password,b({},d,{name:"repeatPassword","data-test":"RepeatPassword"})))))}}])&&v(n.prototype,r),o&&v(n,o),t}();E(S,"propTypes",{user:f.UserProfile.isRequired,dialog:h.DialogPropType.isRequired}),t.default=Object(h.wrap)(S)},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(11),n(19),n(27),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(37),l=n.n(s),c=n(121),u=n.n(c),d=n(119),p=n(33),m=n(58);function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var O=function(e){function t(e){var n,r,o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,o=b(t).call(this,e),n=!o||"object"!==f(o)&&"function"!=typeof o?y(r):o,w(y(n),"createUser",()=>{n.form.current.validateFieldsAndScroll((e,t)=>{e||(n.setState({savingUser:!0}),n.props.onCreate(t).then(()=>{n.props.dialog.close()}).catch(e=>{n.setState({savingUser:!1,errorMessage:e.message})}))})}),n.state={savingUser:!1,errorMessage:null},n.form=a.a.createRef(),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(t,a.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){Object(m.default)("view","page","users/new")}},{key:"render",value:function(){var e=this.state,t=e.savingUser,n=e.errorMessage,r=[{name:"name",title:"Name",type:"text",autoFocus:!0},{name:"email",title:"Email",type:"email"}].map(e=>(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){w(e,t,n[t])})}return e})({required:!0,props:{onPressEnter:this.createUser}},e));return a.a.createElement(l.a,h({},this.props.dialog.props,{title:"Create a New User",okText:"Create",okButtonProps:{loading:t},onOk:()=>this.createUser()}),a.a.createElement(d.default,{fields:r,ref:this.form,hideSubmitButton:!0}),n&&a.a.createElement(u.a,{message:n,type:"error",showIcon:!0}))}}])&&g(n.prototype,r),o&&g(n,o),t}();w(O,"propTypes",{dialog:p.DialogPropType.isRequired,onCreate:i.a.func.isRequired}),t.default=Object(p.wrap)(O)},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return $});n(14),n(15),n(11),n(19),n(27),n(29),n(106);var r=n(0),a=n.n(r),o=n(2),i=n(121),s=n.n(i),l=n(18),c=n.n(l),u=n(35),d=n.n(u),p=n(37),m=n.n(p),f=n(195),h=n.n(f),g=n(53),b=n(60),y=n(10),v=n(283),w=n(44),O=n(119),j=n(487),E=n(169);function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){T(e,t,n[t])})}return e}function P(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function k(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var $=function(e){function t(e){var n,r,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,a=C(t).call(this,e),n=!a||"object"!==S(a)&&"function"!=typeof a?k(r):a,T(k(n),"changePassword",()=>{j.default.showModal({user:n.props.user})}),T(k(n),"sendPasswordReset",()=>{n.setState({sendingPasswordEmail:!0}),g.User.sendPasswordReset(n.state.user).then(e=>{n.setState({passwordLink:e})}).finally(()=>{n.setState({sendingPasswordEmail:!1})})}),T(k(n),"resendInvitation",()=>{n.setState({resendingInvitation:!0}),g.User.resendInvitation(n.state.user).then(e=>{n.setState({passwordLink:e})}).finally(()=>{n.setState({resendingInvitation:!1})})}),T(k(n),"regenerateApiKey",()=>{m.a.confirm({title:"Regenerate API Key",content:"Are you sure you want to regenerate?",okText:"Regenerate",onOk:()=>{n.setState({regeneratingApiKey:!0}),g.User.regenerateApiKey(n.state.user).then(e=>{if(e){var t=n.state.user;n.setState({user:x({},t,{apiKey:e})})}}).finally(()=>{n.setState({regeneratingApiKey:!1})})},maskClosable:!0,autoFocusButton:null})}),T(k(n),"toggleUser",()=>{var e=n.state.user,t=e.isDisabled?g.User.enableUser:g.User.disableUser;n.setState({togglingUser:!0}),t(e).then(e=>{e&&n.setState({user:g.User.convertUserInfo(e.data)})}).finally(()=>{n.setState({togglingUser:!1})})}),T(k(n),"saveUser",(e,t,r)=>{var a=x({id:n.props.user.id},e);g.User.save(a,e=>{t("Saved."),n.setState({user:g.User.convertUserInfo(e)})},function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r(e.data&&e.data.message||"Failed saving.")})}),n.state={user:n.props.user,groups:[],loadingGroups:!0,regeneratingApiKey:!1,sendingPasswordEmail:!1,resendingInvitation:!1,togglingUser:!1},n}var n,i,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_(e,t)}(t,a.a.Component),n=t,(i=[{key:"componentDidMount",value:function(){b.Group.query(e=>{this.setState({groups:e.map(e=>{return{value:e.id,title:e.name}}),loadingGroups:!1})})}},{key:"renderUserInfoForm",value:function(){var e=this.state,t=e.user,n=e.groups,r=e.loadingGroups,i=[{name:"name",title:"Name",type:"text",initialValue:t.name},{name:"email",title:"Email",type:"email",initialValue:t.email},t.isDisabled||y.currentUser.id===t.id?{name:"group_ids",title:"Groups",type:"content",content:this.renderUserGroups()}:{name:"group_ids",title:"Groups",type:"select",mode:"multiple",options:n,initialValue:n.filter(e=>Object(o.includes)(t.groupIds,e.value)).map(e=>e.value),loading:r,placeholder:r?"Loading...":""}].map(e=>x({readOnly:t.isDisabled,required:!0},e));return a.a.createElement(O.default,{fields:i,onSubmit:this.saveUser,hideSubmitButton:t.isDisabled})}},{key:"renderUserGroups",value:function(){var e=this.state,t=e.user,n=e.groups;return e.loadingGroups?"Loading...":a.a.createElement("div",{"data-test":"Groups"},n.filter(e=>Object(o.includes)(t.groupIds,e.value)).map(e=>a.a.createElement(h.a,{className:"m-b-5 m-r-5",key:e.value},a.a.createElement("a",{href:"groups/".concat(e.value)},e.title))))}},{key:"renderApiKey",value:function(){var e=this.state,t=e.user,n=e.regeneratingApiKey;return a.a.createElement(d.a,{layout:"vertical"},a.a.createElement("hr",null),a.a.createElement(d.a.Item,{label:"API Key",className:"m-b-10"},a.a.createElement(E.default,{id:"apiKey",className:"hide-in-percy",value:t.apiKey,"data-test":"ApiKey",readOnly:!0})),a.a.createElement(c.a,{className:"w-100",onClick:this.regenerateApiKey,loading:n,"data-test":"RegenerateApiKey"},"Regenerate"))}},{key:"renderPasswordLinkAlert",value:function(){var e=this.state,t=e.user,n=e.passwordLink;return a.a.createElement(s.a,{message:"Email not sent!",description:a.a.createElement(r.Fragment,null,a.a.createElement("p",null,"The mail server is not configured, please send the following link to ",a.a.createElement("b",null,t.name),":"),a.a.createElement(E.default,{value:Object(v.absoluteUrl)(n),readOnly:!0})),type:"warning",className:"m-t-20",afterClose:()=>{this.setState({passwordLink:null})},closable:!0})}},{key:"renderResendInvitation",value:function(){return a.a.createElement(c.a,{className:"w-100 m-t-10",onClick:this.resendInvitation,loading:this.state.resendingInvitation},"Resend Invitation")}},{key:"renderSendPasswordReset",value:function(){var e=this.state.sendingPasswordEmail;return a.a.createElement(r.Fragment,null,a.a.createElement(c.a,{className:"w-100 m-t-10",onClick:this.sendPasswordReset,loading:e},"Send Password Reset Email"))}},{key:"rendertoggleUser",value:function(){var e=this.state,t=e.user,n=e.togglingUser;return t.isDisabled?a.a.createElement(c.a,{className:"w-100 m-t-10",type:"primary",onClick:this.toggleUser,loading:n},"Enable User"):a.a.createElement(c.a,{className:"w-100 m-t-10",type:"danger",onClick:this.toggleUser,loading:n},"Disable User")}},{key:"render",value:function(){var e=this.state,t=e.user,n=e.passwordLink;return a.a.createElement("div",{className:"col-md-4 col-md-offset-4"},a.a.createElement("img",{alt:"Profile",src:t.profileImageUrl,className:"profile__image",width:"40"}),a.a.createElement("h3",{className:"profile__h3"},t.name),a.a.createElement("hr",null),this.renderUserInfoForm(),!t.isDisabled&&a.a.createElement(r.Fragment,null,this.renderApiKey(),a.a.createElement("hr",null),a.a.createElement("h5",null,"Password"),t.id===y.currentUser.id&&a.a.createElement(c.a,{className:"w-100 m-t-10",onClick:this.changePassword,"data-test":"ChangePassword"},"Change Password"),y.currentUser.isAdmin&&t.id!==y.currentUser.id&&a.a.createElement(r.Fragment,null,t.isInvitationPending?this.renderResendInvitation():this.renderSendPasswordReset(),n&&this.renderPasswordLinkAlert())),a.a.createElement("hr",null),y.currentUser.isAdmin&&t.id!==y.currentUser.id&&this.rendertoggleUser())}}])&&P(n.prototype,i),l&&P(n,l),t}();T($,"propTypes",{user:w.UserProfile.isRequired})},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return y});n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(2),i=n(195),s=n.n(i),l=n(60),c=n(44);function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function p(e,t){return!t||"object"!==u(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var h,g,b,y=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=p(this,m(t).call(this,e))).state={groups:[],loadingGroups:!0},n}var n,r,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(t,a.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){l.Group.query(e=>{this.setState({groups:e,loadingGroups:!1})})}},{key:"renderUserGroups",value:function(){var e=this.props.user.groupIds,t=this.state.groups;return a.a.createElement("div",null,t.filter(t=>Object(o.includes)(e,t.id)).map(e=>a.a.createElement(s.a,{className:"m-t-5 m-r-5",key:e.id},a.a.createElement("a",{href:"groups/".concat(e.id)},e.name))))}},{key:"render",value:function(){var e=this.props.user,t=e.name,n=e.email,r=e.profileImageUrl,o=this.state.loadingGroups;return a.a.createElement("div",{className:"col-md-4 col-md-offset-4 profile__container"},a.a.createElement("img",{alt:"profile",src:r,className:"profile__image",width:"40"}),a.a.createElement("h3",{className:"profile__h3"},t),a.a.createElement("hr",null),a.a.createElement("dl",{className:"profile__dl"},a.a.createElement("dt",null,"Name:"),a.a.createElement("dd",null,t),a.a.createElement("dt",null,"Email:"),a.a.createElement("dd",null,n),a.a.createElement("dt",null,"Groups:"),a.a.createElement("dd",null,o?"Loading...":this.renderUserGroups())))}}])&&d(n.prototype,r),i&&d(n,i),t}();h=y,g="propTypes",b={user:c.UserProfile.isRequired},g in h?Object.defineProperty(h,g,{value:b,enumerable:!0,configurable:!0,writable:!0}):h[g]=b},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return i});n(114);var r=n(290),a=n.n(r);function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var i=function(){var e,t,n;function r(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,r),this.helpMessage='using template engine "mustache".\n you can build message with latest query result.\n variable name "rows" is assigned as result rows. "cols" as result columns, "state" as alert state.',this.editorOptions={useWrapMode:!0,showPrintMargin:!1,advanced:{behavioursEnabled:!0,enableBasicAutocompletion:!0,enableLiveAutocompletion:!0,autoScrollEditorIntoView:!0},onLoad:function(e){e.$blockScrolling=1/0}}}return e=r,(t=[{key:"render",value:function(e,t){var n={state:e.state,rows:t.rows,cols:t.columns},r=a.a.render(e.options.template,n);return{escaped:r.replace(/"/g,""").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/\n|\r/g,"<br>"),raw:r}}}])&&o(e.prototype,t),n&&o(e,n),r}()},function(e,t,n){"use strict";n.r(t),n.d(t,"getColumnCleanName",function(){return m}),n.d(t,"default",function(){return g});n(14),n(15),n(19),n(11),n(656),n(114),n(131);var r=n(98),a=n.n(r),o=n(9),i=n.n(o),s=n(2);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}h.$inject=["$resource","$timeout","$q","QueryResultError","Auth"];var u=a()("redash:services:QueryResult"),d=["filter","multi-filter","multiFilter"];function p(e){var t;if(-1!==e.indexOf("::"))t="::";else{if(-1===e.indexOf("__"))return e;t="__"}var n=e.split(t);return""===n[0]&&2===n.length?n[1]:Object(s.includes)(d,n[1])?n[0]:e}function m(e){return p(e)}function f(e){return p(e).replace(/(?:^|\s)\S/g,e=>e.toUpperCase())}function h(e,t,n,r,a){var o=e("api/query_results/:id",{id:"@id"},{post:{method:"POST"}}),p=e("api/queries/:queryId/results/:id.json",{queryId:"@queryId",id:"@id"}),h=e("api/jobs/:id",{id:"@id"}),g=e("api/queries/:queryId/jobs/:id",{queryId:"@queryId",id:"@id"}),b={1:"waiting",2:"processing",3:"done",4:"failed"};function y(e,t){403===t.status?e.update(t.data):400===t.status&&"job"in t.data?e.update(t.data):(u("Unknown error",t),e.update({job:{error:t.data.message||"unknown error occurred. Please try again later.",status:4}}))}return function(){function v(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,v),this.deferred=n.defer(),this.job={},this.query_result={},this.status="waiting",this.updatedAt=i()(),this.isLoadingResult=!1,e&&this.update(e)}var w,O,j;return w=v,j=[{key:"getById",value:function(e,t){var n=new v;return n.isLoadingResult=!0,p.get({queryId:e,id:t},e=>{n.isLoadingResult=!1,n.update(e)},e=>{n.isLoadingResult=!1,y(n,e)}),n}},{key:"getByQueryId",value:function(t,n,r){var a=new v;return e("api/queries/:id/results",{id:"@id"},{post:{method:"POST"}}).post({id:t,parameters:n,max_age:r},e=>{a.update(e),"job"in e&&a.refreshStatus(t,n)},e=>{y(a,e)}),a}},{key:"get",value:function(e,t,n,r,a){var i=new v,s={data_source_id:e,parameters:n,query:t,max_age:r};return void 0!==a&&(s.query_id=a),o.post(s,e=>{i.update(e),"job"in e&&i.refreshStatus(t,n)},e=>{y(i,e)}),i}}],(O=[{key:"update",value:function(e){if(Object(s.extend)(this,e),"query_result"in e){this.status="done";var t={};Object(s.each)(this.query_result.data.rows,e=>{Object(s.forOwn)(e,(n,r)=>{var a=null;Object(s.isNumber)(n)?a="float":Object(s.isString)(n)&&n.match(/^\d{4}-\d{2}-\d{2}T/)?(e[r]=i.a.utc(n),a="datetime"):Object(s.isString)(n)&&n.match(/^\d{4}-\d{2}-\d{2}$/)?(e[r]=i.a.utc(n),a="date"):"object"===l(n)&&null!==n?e[r]=JSON.stringify(n):a="string",null!==a&&(void 0!==t[r]&&t[r]!==a?t[r]="string":t[r]=a)})}),Object(s.each)(this.query_result.data.columns,e=>{e.name=""+e.name,t[e.name]&&(null!=e.type&&"string"!==e.type||(e.type=t[e.name]))}),this.deferred.resolve(this)}else 3===this.job.status?this.status="processing":4===this.job.status?(this.status=b[this.job.status],this.deferred.reject(new r(this.job.error))):this.status=void 0}},{key:"getId",value:function(){var e=null;return"query_result"in this&&(e=this.query_result.id),e}},{key:"cancelExecution",value:function(){h.delete({id:this.job.id})}},{key:"getStatus",value:function(){return this.isLoadingResult?"loading-result":this.status||b[this.job.status]}},{key:"getError",value:function(){if("None"!==this.job.error)return this.job.error}},{key:"getLog",value:function(){return this.query_result.data&&this.query_result.data.log&&0!==this.query_result.data.log.length?this.query_result.data.log:null}},{key:"getUpdatedAt",value:function(){return this.query_result.retrieved_at||1e3*this.job.updated_at||this.updatedAt}},{key:"getRuntime",value:function(){return this.query_result.runtime}},{key:"getRawData",value:function(){return this.query_result.data?this.query_result.data.rows:null}},{key:"getData",value:function(){return this.query_result.data?this.query_result.data.rows:null}},{key:"isEmpty",value:function(){return null===this.getData()||0===this.getData().length}},{key:"getColumns",value:function(){return void 0===this.columns&&this.query_result.data&&(this.columns=this.query_result.data.columns),this.columns}},{key:"getColumnNames",value:function(){return void 0===this.columnNames&&this.query_result.data&&(this.columnNames=this.query_result.data.columns.map(e=>e.name)),this.columnNames}},{key:"getColumnCleanNames",value:function(){return this.getColumnNames().map(e=>m(e))}},{key:"getColumnFriendlyNames",value:function(){return this.getColumnNames().map(e=>f(e))}},{key:"getFilters",value:function(){if(!this.getColumns())return[];var e=[];return this.getColumns().forEach(t=>{var n=t.name,r=n.split("::")[1]||n.split("__")[1];if(Object(s.includes)(d,r)){var a={name:n,friendlyName:f(n),column:t,values:[],multiple:"multiFilter"===r||"multi-filter"===r};e.push(a)}},this),this.getRawData().forEach(t=>{e.forEach(e=>{e.values.push(t[e.name]),1===e.values.length&&(e.multiple?e.current=[t[e.name]]:e.current=t[e.name])})}),e.forEach(e=>{e.values=Object(s.uniqBy)(e.values,e=>i.a.isMoment(e)?e.unix():e)}),e}},{key:"toPromise",value:function(){return this.deferred.promise}},{key:"loadLatestCachedResult",value:function(t,n){e("api/queries/:id/results",{id:"@queryId"},{post:{method:"POST"}}).post({queryId:t,parameters:n},e=>{this.update(e)},e=>{y(this,e)})}},{key:"loadResult",value:function(e){this.isLoadingResult=!0,o.get({id:this.job.query_result_id},e=>{this.update(e),this.isLoadingResult=!1},n=>{void 0===e&&(e=0),e>3?(u("Connection error while trying to load result",n),this.update({job:{error:"failed communicating with server. Please check your Internet connection and try again.",status:4}}),this.isLoadingResult=!1):t(()=>{this.loadResult(e+1)},1e3*Math.pow(2,e))})}},{key:"refreshStatus",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=a.isAuthenticated()?h:g,i=()=>a.isAuthenticated()?this.loadResult():this.loadLatestCachedResult(e,n),s=a.isAuthenticated()?{id:this.job.id}:{queryId:e,id:this.job.id};o.get(s,a=>{if(this.update(a),"processing"===this.getStatus()&&this.job.query_result_id&&"None"!==this.job.query_result_id)i();else if("failed"!==this.getStatus()){t(()=>{this.refreshStatus(e,n,r+1)},r>10?3e3:500)}},e=>{u("Connection error",e),this.update({job:{error:"failed communicating with server. Please check your Internet connection and try again.",status:4}})})}},{key:"getLink",value:function(e,t,n){var r="api/queries/".concat(e,"/results/").concat(this.getId(),".").concat(t);return n&&(r="".concat(r,"?api_key=").concat(n)),r}},{key:"getName",value:function(e,t){return"".concat(e.replace(/ /g,"_")+i()(this.getUpdatedAt()).format("_YYYY_MM_DD"),".").concat(t)}}])&&c(w.prototype,O),j&&c(w,j),v}()}function g(e){e.factory("QueryResult",h)}g.init=!0},function(e,t,n){"use strict";n.r(t);n(34),n(14),n(15),n(11),n(95);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(37),c=n.n(l),u=n(26),d=n.n(u),p=n(31),m=n.n(p),f=n(32),h=n(33),g=n(147),b=n(12),y=n(284),v=n(58),w=n(48),O=n(352),j=n(20);function E(){return(E=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function x(e){var t=e.dialog,n=e.visualization,i=e.query,s=e.queryResult,l=!n,u=Object(O.a)(s),p=S(Object(a.useState)(u.filters),2),h=p[0],x=p[1],P=Object(a.useMemo)(()=>({columns:u.columns,rows:Object(g.filterData)(u.rows,h)}),[u,h]),C=Object(a.useMemo)(()=>{var e=n?j.registeredVisualizations[n.type]:Object(j.getDefaultVisualization)(),t=e.getOptions(l?{}:n.options,u);return{type:e.type,name:l?e.name:n.name,options:t,originalOptions:t}},[n]),k=S(Object(a.useState)(C.type),2),_=k[0],T=k[1],$=S(Object(a.useState)(C.name),2),q=$[0],N=$[1],D=S(Object(a.useState)(!1),2),R=D[0],A=D[1],I=S(Object(a.useState)(C.options),2),z=I[0],M=I[1],F=S(Object(a.useState)(!1),2),V=F[0],U=F[1];function L(e){var t=j.registeredVisualizations[_];M(t.getOptions(e,u))}var B=j.registeredVisualizations[_],Q=B.Renderer,H=B.Editor;return o.a.createElement(c.a,E({},t.props,{wrapClassName:"ant-modal-fullscreen",title:"Visualization Editor",okText:"Save",okButtonProps:{loading:V,disabled:V},onOk:function(){U(!0),function(e){return e.id?Object(v.default)("update","visualization",e.id,{type:e.type}):Object(v.default)("create","visualization",null,{type:e.type}),y.Visualization.save(e).$promise.then(e=>(b.default.success("Visualization saved"),e)).catch(e=>(b.default.error("Visualization could not be saved"),Promise.reject(e)))}(Object(r.extend)(Object(j.newVisualization)(_),n,{name:q,options:z,query_id:i.id})).then(e=>{!function(e,t){var n=Object(r.findIndex)(e.visualizations,e=>e.id===t.id);n>-1?e.visualizations[n]=t:e.visualizations.push(t)}(i,e),t.close(e)})},onCancel:function(){var e,n=!Object(r.isEqual)(Object(w.a)(z),C.originalOptions);(e=R||n,new Promise((t,n)=>{e?c.a.confirm({title:"Visualization Editor",content:"Are you sure you want to close the editor without saving?",okText:"Yes",cancelText:"No",onOk:()=>t(),onCancel:()=>n()}):t()})).then(t.dismiss)},wrapProps:{"data-test":"EditVisualizationDialog"}}),o.a.createElement(f.Row,{gutter:24},o.a.createElement(f.Col,{span:24,md:10},o.a.createElement("div",{className:"m-b-15"},o.a.createElement("label",{htmlFor:"visualization-type"},"Visualization Type"),o.a.createElement(d.a,{"data-test":"VisualizationType",id:"visualization-type",className:"w-100",disabled:!l,value:_,onChange:function(e){T(e);var t=j.registeredVisualizations[e];R||N(t.name),M(t.getOptions(l?{}:n.options,u))}},Object(r.map)(Object(r.sortBy)(j.registeredVisualizations,["type"]),e=>o.a.createElement(d.a.Option,{key:e.type,"data-test":"VisualizationType."+e.type},e.name)))),o.a.createElement("div",{className:"m-b-15"},o.a.createElement("label",{htmlFor:"visualization-name"},"Visualization Name"),o.a.createElement(m.a,{"data-test":"VisualizationName",id:"visualization-name",className:"w-100",value:q,onChange:e=>(function(e){N(e),A(e!==q)})(e.target.value)})),o.a.createElement("div",{"data-test":"VisualizationEditor"},o.a.createElement(H,{data:u,options:z,visualizationName:q,onOptionsChange:L}))),o.a.createElement(f.Col,{span:24,md:14},o.a.createElement("label",{htmlFor:"visualization-preview",className:"invisible hidden-xs"},"Preview"),o.a.createElement(g.Filters,{filters:h,onChange:x}),o.a.createElement("div",{className:"scrollbox","data-test":"VisualizationPreview"},o.a.createElement(Q,{data:P,options:z,visualizationName:q,onOptionsChange:L,context:"query"})))))}x.propTypes={dialog:h.DialogPropType.isRequired,query:s.a.object.isRequired,visualization:j.VisualizationType,queryResult:s.a.object.isRequired},x.defaultProps={visualization:null},t.default=Object(h.wrap)(x)},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return u});n(11),n(19),n(27);var r=n(0),a=n.n(r),o=n(31),i=n.n(o),s=n(20);function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){c(e,t,n[t])})}return e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e){var t=e.options,n=e.onOptionsChange;return a.a.createElement("div",null,a.a.createElement("div",{className:"form-group"},a.a.createElement("label",{className:"control-label",htmlFor:"box-plot-x-axis-label"},"X Axis Label"),a.a.createElement(i.a,{"data-test":"BoxPlot.XAxisLabel",id:"box-plot-x-axis-label",value:t.xAxisLabel,onChange:e=>(e=>{var r=l({},t,{xAxisLabel:e});n(r)})(e.target.value)})),a.a.createElement("div",{className:"form-group"},a.a.createElement("label",{className:"control-label",htmlFor:"box-plot-y-axis-label"},"Y Axis Label"),a.a.createElement(i.a,{"data-test":"BoxPlot.YAxisLabel",id:"box-plot-y-axis-label",value:t.yAxisLabel,onChange:e=>(e=>{var r=l({},t,{yAxisLabel:e});n(r)})(e.target.value)})))}u.propTypes=s.EditorPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return m});n(14),n(15),n(11);var r=n(2),a=n(13),o=n.n(a),i=n(0),s=n.n(i),l=n(117),c=n(20),u=n(496);n(1385);function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function p(e,t,n){var a,i=n.xAxisLabel,s=n.yAxisLabel,l=(e=o.a.select(e)).node().getBoundingClientRect(),c=Math.floor(l.width),d=Math.floor(l.height),p={top:10,right:50,bottom:40,left:50,inner:25},m=c-p.right-p.left,f=d-p.top-p.bottom,h=1/0,g=-1/0,b=[],y=0,v=[],w=Object(r.map)(t.columns,e=>e.name),O=o.a.scale.ordinal().domain(w).rangeBands([0,c-p.left-p.right]);a=w.length>1?Math.min(O(w[1]),120):120,p.inner=a/3,Object(r.each)(w,(e,n)=>{v=b[n]=[],Object(r.each)(t.rows,t=>{y=t[e],v.push(y),y>g&&(g=Math.ceil(y)),y<h&&(h=Math.floor(y))})});var j,E=o.a.scale.linear().domain([.99*h,1.01*g]).range([f,0]),S=Object(u.default)().whiskers((j=1.5,e=>{var t=e.quartiles[0],n=e.quartiles[2],r=(n-t)*j,a=-1,o=e.length;for(a+=1;e[a]<t-r;)a+=1;for(o-=1;e[o]>n+r;)o-=1;return[a,o]})).width(a-2*p.inner).height(f).domain([.99*h,1.01*g]),x=o.a.svg.axis().scale(O).orient("bottom"),P=o.a.svg.axis().scale(E).orient("left"),C=o.a.svg.axis().scale(O).tickSize(f).orient("bottom"),k=o.a.svg.axis().scale(E).tickSize(m).orient("right");e.selectAll("*").remove();var _=e.append("svg").attr("width",c).attr("height",f+p.bottom+p.top),T=_.append("g").attr("width",c-p.left-p.right).attr("transform","translate(".concat(p.left,",").concat(p.top,")"));_.append("text").attr("class","box").attr("x",c/2).attr("text-anchor","middle").attr("y",f+p.bottom).text(i),_.append("text").attr("class","box").attr("transform","translate(10,".concat((f+p.top+p.bottom)/2,")rotate(-90)")).attr("text-anchor","middle").text(s),T.append("rect").attr("class","grid-background").attr("width",m).attr("height",f),T.append("g").attr("class","grid").call(k),T.append("g").attr("class","grid").call(C),T.append("g").attr("class","x axis").attr("transform","translate(0,".concat(f,")")).call(x),T.append("g").attr("class","y axis").call(P),T.selectAll(".box").data(b).enter().append("g").attr("class","box").attr("width",a).attr("height",f).attr("transform",(e,t)=>"translate(".concat(function(e){return O(w[e])+(O(w[1])-p.inner)/2}(t),",",0,")")).call(S)}function m(e){var t=e.data,n=e.options,r=d(Object(i.useState)(null),2),a=r[0],o=r[1];return Object(i.useEffect)(()=>{if(a)return p(a,t,n),Object(l.default)(a,()=>{p(a,t,n)})},[a,t,n]),s.a.createElement("div",{className:"box-plot-deprecated-visualization-container",ref:o})}m.propTypes=c.RendererPropTypes},function(e,t,n){"use strict";n.r(t);n(253),n(165);function r(e){return[0,e.length-1]}function a(e){return[d3.quantile(e,.25),d3.quantile(e,.5),d3.quantile(e,.75)]}t.default=function(){var e=1,t=1,n=0,o=null,i=Number,s=r,l=a,c=null;function u(r){r.each(function(r,a){r=r.map(i).sort(d3.ascending);var u=d3.select(this),d=r.length,p=r[0],m=r[d-1],f=r.quartiles=l(r),h=s&&s.call(this,r,a),g=h&&h.map(e=>r[e]),b=h?d3.range(0,h[0]).concat(d3.range(h[1]+1,d)):d3.range(d),y=d3.scale.linear().domain(o&&o.call(this,r,a)||[p,m]).range([t,0]),v=this.__chart__||d3.scale.linear().domain([0,1/0]).range(y.range());this.__chart__=y;var w=u.selectAll("line.center").data(g?[g]:[]);w.enter().insert("line","rect").attr("class","center").attr("x1",e/2).attr("y1",e=>v(e[0])).attr("x2",e/2).attr("y2",e=>v(e[1])).style("opacity",1e-6).transition().duration(n).style("opacity",1).attr("y1",e=>y(e[0])).attr("y2",e=>y(e[1])),w.transition().duration(n).style("opacity",1).attr("y1",e=>y(e[0])).attr("y2",e=>y(e[1])),w.exit().transition().duration(n).style("opacity",1e-6).attr("y1",e=>y(e[0])).attr("y2",e=>y(e[1])).remove();var O=u.selectAll("rect.box").data([f]);O.enter().append("rect").attr("class","box").attr("x",0).attr("y",e=>v(e[2])).attr("width",e).attr("height",e=>v(e[0])-v(e[2])).transition().duration(n).attr("y",e=>y(e[2])).attr("height",e=>y(e[0])-y(e[2])),O.transition().duration(n).attr("y",e=>y(e[2])).attr("height",e=>y(e[0])-y(e[2])),O.exit().remove();var j=u.selectAll("line.median").data([f[1]]);j.enter().append("line").attr("class","median").attr("x1",0).attr("y1",v).attr("x2",e).attr("y2",v).transition().duration(n).attr("y1",y).attr("y2",y),j.transition().duration(n).attr("y1",y).attr("y2",y),j.exit().remove();var E=u.selectAll("line.whisker").data(g||[]);E.enter().insert("line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",v).attr("x2",e).attr("y2",v).style("opacity",1e-6).transition().duration(n).attr("y1",y).attr("y2",y).style("opacity",1),E.transition().duration(n).attr("y1",y).attr("y2",y).style("opacity",1),E.exit().transition().duration(n).attr("y1",y).attr("y2",y).style("opacity",1e-6).remove();var S=u.selectAll("circle.outlier").data(b,Number);S.enter().insert("circle","text").attr("class","outlier").attr("r",5).attr("cx",e/2).attr("cy",e=>v(r[e])).style("opacity",1e-6).transition().duration(n).attr("cy",e=>y(r[e])).style("opacity",1),S.transition().duration(n).attr("cy",e=>y(r[e])).style("opacity",1),S.exit().transition().duration(n).attr("cy",e=>y(r[e])).style("opacity",1e-6).remove();var x=c||y.tickFormat(8),P=u.selectAll("text.box").data(f);P.enter().append("text").attr("class","box").attr("dy",".3em").attr("dx",(e,t)=>1&t?6:-6).attr("x",(t,n)=>1&n?e:0).attr("y",v).attr("text-anchor",(e,t)=>1&t?"start":"end").text(x).transition().duration(n).attr("y",y),P.transition().duration(n).text(x).attr("y",y),P.exit().remove();var C=u.selectAll("text.whisker").data(g||[]);C.enter().append("text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",e).attr("y",v).text(x).style("opacity",1e-6).transition().duration(n).attr("y",y).style("opacity",1),C.transition().duration(n).text(x).attr("y",y).style("opacity",1),C.exit().transition().duration(n).attr("y",y).style("opacity",1e-6).remove()}),d3.timer.flush()}return u.width=function(t){return arguments.length?(e=t,u):e},u.height=function(e){return arguments.length?(t=e,u):t},u.tickFormat=function(e){return arguments.length?(c=e,u):c},u.duration=function(e){return arguments.length?(n=e,u):n},u.domain=function(e){return arguments.length?(o=null==e?e:d3.functor(e),u):o},u.value=function(e){return arguments.length?(i=e,u):i},u.whiskers=function(e){return arguments.length?(s=e,u):s},u.quartiles=function(e){return arguments.length?(l=e,u):l},u}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return d});n(14),n(15),n(11);var r=n(0),a=n.n(r),o=n(20),i=n(10),s=n(117),l=n(199),c=n(86);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function d(e){var t=e.options,n=e.data;if(!i.clientConfig.allowCustomJSVisualizations)return null;var o=u(Object(r.useState)(null),2),d=o[0],p=o[1],m=Object(r.useMemo)(()=>Object(c.createCustomChartRenderer)(t.customCode,t.enableConsoleLogs),[t.customCode,t.enableConsoleLogs]),f=Object(r.useMemo)(()=>Object(c.prepareCustomChartData)(Object(l.default)(n.rows,t)),[t,n]);return Object(r.useEffect)(()=>{if(d)return Object(s.default)(d,()=>{c.Plotly.purge(d),m(f.x,f.ys,d,c.Plotly)})},[d,f]),Object(r.useEffect)(()=>{if(d)return()=>c.Plotly.purge(d)},[d]),a.a.createElement("div",{className:"chart-visualization-container",ref:p})}d.propTypes=o.RendererPropTypes},,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return i});var r=n(2),a=n(51),o=[[0,"#356aff"],[.14,"#4a7aff"],[.28,"#5d87ff"],[.42,"#7398ff"],[.56,"#fb8c8c"],[.71,"#ec6463"],[.86,"#ec4949"],[1,"#e92827"]];function i(e,t){var n={colorScheme:t.colorScheme?"Custom..."===t.colorScheme?[[0,t.heatMinColor],[1,t.heatMaxColor]]:t.colorScheme:o,formatNumber:Object(a.c)(t.numberFormat)};return Object(r.flatten)(Object(r.map)(e,e=>(function(e,t,n){var a=n.colorScheme,o=n.formatNumber,i={x:[],y:[],z:[],type:"heatmap",name:"",colorscale:a};i.x=Object(r.uniq)(Object(r.map)(e.data,e=>e.x)),i.y=Object(r.uniq)(Object(r.map)(e.data,e=>e.y)),t.sortX&&(i.x=Object(r.sortBy)(i.x)),t.sortY&&(i.y=Object(r.sortBy)(i.y)),t.reverseX&&i.x.reverse(),t.reverseY&&i.y.reverse();for(var s=Object(r.max)(Object(r.map)(e.data,e=>e.zVal)),l={x:[],y:[],mode:"text",hoverinfo:"skip",showlegend:!1,text:[],textfont:{color:[]}},c=0;c<i.y.length;c+=1){for(var u=[],d=0;d<i.x.length;d+=1){var p=Object(r.find)(e.data,{x:i.x[d],y:i.y[c]}),m=p&&p.zVal||0;u.push(m),isFinite(s)&&t.showDataLabels&&(l.x.push(i.x[d]),l.y.push(i.y[c]),l.text.push(o(m)),t.colorScheme&&"Custom..."===t.colorScheme?l.textfont.color.push("white"):l.textfont.color.push(m/s<.25?"white":"black"))}i.z.push(u)}return isFinite(s)&&t.showDataLabels?[i,l]:[i]})(e,t,n)))}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return d});n(27),n(11),n(19),n(55),n(240);var r=n(2),a=n(71),o=n(103);function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){s(e,t,n[t])})}return e}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e){var t="#333333";if(Object(r.isString)(e)){var n,a,o,i=/#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i.exec(e);if(i)n=parseInt(i[1],16),a=parseInt(i[2],16),o=parseInt(i[3],16);else{if(!(i=/#?([0-9a-f])([0-9a-f])([0-9a-f])/i.exec(e)))return t;n=parseInt(i[1]+i[1],16),a=parseInt(i[2]+i[2],16),o=parseInt(i[3]+i[3],16)}.299*n+.587*a+.114*o<170&&(t="#ffffff")}return t}function c(e){var t="text";return/{{\s*@@x\s*}}/.test(e.textFormat)||(t+="+x"),/{{\s*@@name\s*}}/.test(e.textFormat)||(t+="+name"),t}function u(e,t,n){var s=n,c=s.hoverInfoPattern,u=s.index,d=t.seriesOptions[e.name]||{type:t.globalSeriesType},p=function(e,t){return e.color||o.ColorPaletteArray[t%o.ColorPaletteArray.length]}(d,u),m=Object(a.getSeriesAxis)(e,t),f=t.sortX?Object(r.sortBy)(e.data,e=>Object(a.normalizeValue)(e.x,t.xAxis.type)):e.data,h=Object(r.includes)(["bubble","scatter"],d.type)?a.normalizeValue:e=>(e=Object(a.cleanNumber)(e),t.missingValuesAsZero&&Object(r.isNil)(e)?0:e),g=new Map,b=[],y=[],v=[];Object(r.each)(f,e=>{var n=Object(a.normalizeValue)(e.x,t.xAxis.type),r=h(e.y,"y2"===m?t.yAxis[1].type:t.yAxis[0].type),o=Object(a.cleanNumber)(e.yError),i=Object(a.cleanNumber)(e.size);g.set(n,{x:n,y:r,yError:o,size:i,yPercent:null,row:e}),b.push(n),y.push(r),v.push(o)});var w={visible:!0,hoverinfo:c,x:b,y:y,error_y:{array:v,color:p},name:d.name||e.name,marker:{color:p},insidetextfont:{color:l(p)},yaxis:m,sourceData:g};switch(n=i({},n,{seriesColor:p,data:f}),d.type){case"column":return function(e,t){return e.type="bar",t.showDataLabels&&(e.textposition="inside"),e}(w,t);case"line":return function(e,t){return e.mode="lines"+(t.showDataLabels?"+text":""),e}(w,t);case"area":return function(e,t){return e.mode="lines"+(t.showDataLabels?"+text":""),e.fill=t.series.stacking?"tonexty":"tozeroy",e}(w,t);case"scatter":return function(e,t){return e.type="scatter",e.mode="markers"+(t.showDataLabels?"+text":""),e}(w,t);case"bubble":return function(e,t,n){var a=n.seriesColor,o=n.data;return e.mode="markers",e.marker={color:a,size:Object(r.map)(o,e=>e.size)},e}(w,0,n);case"box":return function(e,t,n){var r=n.seriesColor;return e.type="box",e.mode="markers",e.boxpoints="outliers",e.hoverinfo=!1,e.marker={color:r,size:3},t.showpoints&&(e.boxpoints="all",e.jitter=.3,e.pointpos=-1.8),e}(w,t,n);default:return w}}function d(e,t){var n={hoverInfoPattern:c(t)};return Object(r.map)(e,(e,r)=>u(e,t,i({},n,{index:r})))}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return d});n(14),n(15),n(11);var r=n(2),a=n(0),o=n.n(a),i=n(20),s=n(117),l=n(199),c=n(86);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function d(e){var t=e.options,n=e.data,i=u(Object(a.useState)(null),2),d=i[0],p=i[1];return Object(a.useEffect)(()=>{if(d){var e=Object(l.default)(n.rows,t),a=Object(c.prepareData)(e,t),o=Object(c.prepareLayout)(d,t,a);return c.Plotly.newPlot(d,a,o,{showLink:!1,displaylogo:!1}).then(()=>{Object(c.applyLayoutFixes)(d,o,(e,t)=>c.Plotly.relayout(e,t))}),d.on("plotly_restyle",e=>{Object(r.isArray)(e)&&Object(r.isObject)(e[0])&&e[0].visible&&(Object(c.updateData)(a,t),c.Plotly.relayout(d,o))}),Object(s.default)(d,()=>{Object(c.applyLayoutFixes)(d,o,(e,t)=>c.Plotly.relayout(e,t))})}},[t,n,d]),Object(a.useEffect)(()=>{if(d)return()=>c.Plotly.purge(d)},[d]),o.a.createElement("div",{className:"chart-visualization-container",ref:p})}d.propTypes=i.RendererPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return u});n(34),n(11),n(19),n(27);var r=n(0),a=n.n(r),o=n(20),i=n(501),s=n(497);n(1572);function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function u(e){var t=e.options,n=c(e,["options"]);return"custom"===t.globalSeriesType?a.a.createElement(s.default,l({options:t},n)):a.a.createElement(i.default,l({options:t},n))}u.propTypes=o.RendererPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return f});var r=n(0),a=n.n(r),o=n(32),i=n(31),s=n.n(i),l=n(93),c=n.n(l),u=n(129),d=n.n(u),p=n(20),m=n(286);function f(e){var t=e.options,n=e.data,r=e.onOptionsChange,i=Object(m.isValueNumber)(n.rows,t);return a.a.createElement(a.a.Fragment,null,a.a.createElement(o.Row,{type:"flex",align:"middle",className:"m-b-10"},a.a.createElement(o.Col,{span:12},a.a.createElement("label",{htmlFor:"counter-formatting-decimal-place"},"Formatting Decimal Place")),a.a.createElement(o.Col,{span:12},a.a.createElement(c.a,{id:"counter-formatting-decimal-place",className:"w-100","data-test":"Counter.Formatting.DecimalPlace",defaultValue:t.stringDecimal,disabled:!i,onChange:e=>r({stringDecimal:e})}))),a.a.createElement(o.Row,{type:"flex",align:"middle",className:"m-b-10"},a.a.createElement(o.Col,{span:12},a.a.createElement("label",{htmlFor:"counter-formatting-decimal-character"},"Formatting Decimal Character")),a.a.createElement(o.Col,{span:12},a.a.createElement(s.a,{id:"counter-formatting-decimal-character",className:"w-100","data-test":"Counter.Formatting.DecimalCharacter",defaultValue:t.stringDecChar,disabled:!i,onChange:e=>r({stringDecChar:e.target.value})}))),a.a.createElement(o.Row,{type:"flex",align:"middle",className:"m-b-10"},a.a.createElement(o.Col,{span:12},a.a.createElement("label",{htmlFor:"counter-formatting-thousands-separator"},"Formatting Thousands Separator")),a.a.createElement(o.Col,{span:12},a.a.createElement(s.a,{id:"counter-formatting-thousands-separator",className:"w-100","data-test":"Counter.Formatting.ThousandsSeparator",defaultValue:t.stringThouSep,disabled:!i,onChange:e=>r({stringThouSep:e.target.value})}))),a.a.createElement(o.Row,{type:"flex",align:"middle",className:"m-b-10"},a.a.createElement(o.Col,{span:12},a.a.createElement("label",{htmlFor:"counter-formatting-string-prefix"},"Formatting String Prefix")),a.a.createElement(o.Col,{span:12},a.a.createElement(s.a,{id:"counter-formatting-string-prefix",className:"w-100","data-test":"Counter.Formatting.StringPrefix",defaultValue:t.stringPrefix,disabled:!i,onChange:e=>r({stringPrefix:e.target.value})}))),a.a.createElement(o.Row,{type:"flex",align:"middle",className:"m-b-10"},a.a.createElement(o.Col,{span:12},a.a.createElement("label",{htmlFor:"counter-formatting-string-suffix"},"Formatting String Suffix")),a.a.createElement(o.Col,{span:12},a.a.createElement(s.a,{id:"counter-formatting-string-suffix",className:"w-100","data-test":"Counter.Formatting.StringSuffix",defaultValue:t.stringSuffix,disabled:!i,onChange:e=>r({stringSuffix:e.target.value})}))),a.a.createElement("label",{className:"d-flex align-items-center",htmlFor:"counter-format-target-value"},a.a.createElement(d.a,{id:"counter-format-target-value","data-test":"Counter.Formatting.FormatTargetValue",defaultChecked:t.formatTargetValue,onChange:e=>r({formatTargetValue:e})}),a.a.createElement("span",{className:"m-l-10"},"Format Target Value")))}f.propTypes=p.EditorPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return g});var r=n(2),a=n(0),o=n.n(a),i=n(32),s=n(26),l=n.n(s),c=n(31),u=n.n(c),d=n(93),p=n.n(d),m=n(129),f=n.n(m),h=n(20);function g(e){var t=e.options,n=e.data,a=e.visualizationName,s=e.onOptionsChange;return o.a.createElement(o.a.Fragment,null,o.a.createElement(i.Row,{type:"flex",align:"middle",className:"m-b-10"},o.a.createElement(i.Col,{span:12},o.a.createElement("label",{htmlFor:"counter-label"},"Counter Label")),o.a.createElement(i.Col,{span:12},o.a.createElement(u.a,{id:"counter-label",className:"w-100","data-test":"Counter.General.Label",defaultValue:t.counterLabel,placeholder:a,onChange:e=>s({counterLabel:e.target.value})}))),o.a.createElement(i.Row,{type:"flex",align:"middle",className:"m-b-10"},o.a.createElement(i.Col,{span:12},o.a.createElement("label",{htmlFor:"counter-value-column"},"Counter Value Column Name")),o.a.createElement(i.Col,{span:12},o.a.createElement(l.a,{id:"counter-value-column",className:"w-100","data-test":"Counter.General.ValueColumn",defaultValue:t.counterColName,disabled:t.countRow,onChange:e=>s({counterColName:e})},Object(r.map)(n.columns,e=>o.a.createElement(l.a.Option,{key:e.name,"data-test":"Counter.General.ValueColumn."+e.name},e.name))))),o.a.createElement(i.Row,{type:"flex",align:"middle",className:"m-b-10"},o.a.createElement(i.Col,{span:12},o.a.createElement("label",{htmlFor:"counter-value-row-number"},"Counter Value Row Number")),o.a.createElement(i.Col,{span:12},o.a.createElement(p.a,{id:"counter-value-row-number",className:"w-100","data-test":"Counter.General.ValueRowNumber",defaultValue:t.rowNumber,disabled:t.countRow,onChange:e=>s({rowNumber:e})}))),o.a.createElement(i.Row,{type:"flex",align:"middle",className:"m-b-10"},o.a.createElement(i.Col,{span:12},o.a.createElement("label",{htmlFor:"counter-target-value-column"},"Target Value Column Name")),o.a.createElement(i.Col,{span:12},o.a.createElement(l.a,{id:"counter-target-value-column",className:"w-100","data-test":"Counter.General.TargetValueColumn",defaultValue:t.targetColName,onChange:e=>s({targetColName:e})},o.a.createElement(l.a.Option,{value:""},"No target value"),Object(r.map)(n.columns,e=>o.a.createElement(l.a.Option,{key:e.name,"data-test":"Counter.General.TargetValueColumn."+e.name},e.name))))),o.a.createElement(i.Row,{type:"flex",align:"middle",className:"m-b-10"},o.a.createElement(i.Col,{span:12},o.a.createElement("label",{htmlFor:"counter-target-row-number"},"Target Value Row Number")),o.a.createElement(i.Col,{span:12},o.a.createElement(p.a,{id:"counter-target-row-number",className:"w-100","data-test":"Counter.General.TargetValueRowNumber",defaultValue:t.targetRowNumber,onChange:e=>s({targetRowNumber:e})}))),o.a.createElement("label",{className:"d-flex align-items-center",htmlFor:"counter-count-rows"},o.a.createElement(f.a,{id:"counter-count-rows","data-test":"Counter.General.CountRows",defaultChecked:t.countRow,onChange:e=>s({countRow:e})}),o.a.createElement("span",{className:"m-l-10"},"Count Rows")))}g.propTypes=h.EditorPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return p});n(34);var r=n(2),a=n(0),o=n.n(a),i=n(104),s=n.n(i),l=n(20),c=n(504),u=n(503);function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e){var t=e.options,n=e.onOptionsChange,a=e=>{n(Object(r.merge)({},t,e))};return o.a.createElement(s.a,{animated:!1,tabBarGutter:0},o.a.createElement(s.a.TabPane,{key:"general",tab:o.a.createElement("span",{"data-test":"Counter.EditorTabs.General"},"General")},o.a.createElement(c.default,d({},e,{onOptionsChange:a}))),o.a.createElement(s.a.TabPane,{key:"format",tab:o.a.createElement("span",{"data-test":"Counter.EditorTabs.Formatting"},"Format")},o.a.createElement(u.default,d({},e,{onOptionsChange:a}))))}p.propTypes=l.EditorPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return f});n(14),n(15),n(11),n(165);var r=n(2),a=n(0),o=n.n(a),i=n(3),s=n.n(i),l=n(117),c=n(20),u=n(286);n(1580);function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function p(e){return{msTransform:"scale(".concat(e,")"),MozTransform:"scale(".concat(e,")"),WebkitTransform:"scale(".concat(e,")"),transform:"scale(".concat(e,")")}}function m(e){var t=e.firstChild,n=Math.min(e.offsetWidth/t.offsetWidth,e.offsetHeight/t.offsetHeight);return Number(Object(r.isFinite)(n)?n:1).toFixed(2)}function f(e){var t=e.data,n=e.options,r=e.visualizationName,i=d(Object(a.useState)("1.00"),2),c=i[0],f=i[1],h=d(Object(a.useState)(null),2),g=h[0],b=h[1];Object(a.useEffect)(()=>{if(g)return Object(l.default)(g,()=>{f(m(g))})},[g]),Object(a.useEffect)(()=>{g&&f(m(g))},[t,n,g]);var y=Object(u.getCounterData)(t.rows,n,r),v=y.showTrend,w=y.trendPositive,O=y.counterValue,j=y.counterValueTooltip,E=y.targetValue,S=y.targetValueTooltip,x=y.counterLabel;return o.a.createElement("div",{className:s()("counter-visualization-container",{"trend-positive":v&&w,"trend-negative":v&&!w})},o.a.createElement("div",{className:"counter-visualization-content",ref:b},o.a.createElement("div",{style:p(c)},o.a.createElement("div",{className:"counter-visualization-value",title:j},O),E&&o.a.createElement("div",{className:"counter-visualization-target",title:S},"(",E,")"),o.a.createElement("div",{className:"counter-visualization-label"},x))))}f.propTypes=c.RendererPropTypes},function(e,t,n){"use strict";function r(){return null}n.r(t),n.d(t,"default",function(){return r})},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return m});n(14),n(15),n(11);var r=n(0),a=n.n(r),o=n(2),i=n(9),s=n.n(i),l=n(20),c=n(10),u=n(227),d=n.n(u);n(1582);function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function m(e){var t=e.data,n=p(Object(r.useState)(0),2),i=n[0],l=n[1];if(!t||!t.rows||0===t.rows.length)return null;var u=Object(o.mapValues)(Object(o.keyBy)(t.columns,"name"),"type"),m=t.columns.map(e=>e.name),f=t.rows[i];return a.a.createElement("div",null,a.a.createElement("table",{className:"table table-bordered details-viz"},a.a.createElement("tbody",null,Object(o.map)(m,e=>a.a.createElement("tr",{key:e},a.a.createElement("th",null,e),a.a.createElement("td",null,function(e,t){var n={date:c.clientConfig.dateFormat,datetime:c.clientConfig.dateTimeFormat};return"date"!==t&&"datetime"!==t||!s.a.isMoment(e)?""+e:e.format(n[t])}(f[e],u[e])))))),t.rows.length>1&&a.a.createElement("div",{className:"paginator-container"},a.a.createElement(d.a,{current:i+1,defaultPageSize:1,total:t.rows.length,onChange:e=>l(e-1)})))}m.propTypes=l.RendererPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return c});var r=n(2),a=n(0),o=n.n(a),i=n(129),s=n.n(i),l=n(20);function c(e){var t=e.options,n=e.onOptionsChange,a=e=>{n(Object(r.merge)({},t,e))};return o.a.createElement("div",{className:"form-group m-t-30"},o.a.createElement("label",{className:"d-flex align-items-center",htmlFor:"pivot-show-controls"},o.a.createElement(s.a,{"data-test":"PivotEditor.HideControls",id:"pivot-show-controls",checked:!t.controls.enabled,onChange:e=>a({controls:{enabled:!e}})}),o.a.createElement("span",{className:"m-l-10"},"Show Pivot Controls")),o.a.createElement("label",{className:"d-flex align-items-center",htmlFor:"pivot-show-row-totals"},o.a.createElement(s.a,{id:"pivot-show-row-totals",checked:t.rendererOptions.table.rowTotals,onChange:e=>a({rendererOptions:{table:{rowTotals:e}}})}),o.a.createElement("span",{className:"m-l-10"},"Show Row Totals")),o.a.createElement("label",{className:"d-flex align-items-center",htmlFor:"pivot-show-col-totals"},o.a.createElement(s.a,{id:"pivot-show-row-totals",checked:t.rendererOptions.table.colTotals,onChange:e=>a({rendererOptions:{table:{colTotals:e}}})}),o.a.createElement("span",{className:"m-l-10"},"Show Column Totals")))}c.propTypes=l.EditorPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return o});var r=n(0),a=n.n(r);function o(){return a.a.createElement("div",{className:"form-horizontal"},a.a.createElement("div",null,"This visualization expects the query result to have rows in the following format:",a.a.createElement("ul",null,a.a.createElement("li",null,a.a.createElement("strong",null,"stage1")," - stage 1 value"),a.a.createElement("li",null,a.a.createElement("strong",null,"stage2")," - stage 2 value (or null)"),a.a.createElement("li",null,a.a.createElement("strong",null,"stage3")," - stage 3 value (or null)"),a.a.createElement("li",null,a.a.createElement("strong",null,"stage4")," - stage 4 value (or null)"),a.a.createElement("li",null,a.a.createElement("strong",null,"stage5")," - stage 5 value (or null)"),a.a.createElement("li",null,a.a.createElement("strong",null,"value")," - number of times this sequence occurred"))))}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return o});var r=n(0),a=n.n(r);function o(){return a.a.createElement("div",{className:"form-horizontal"},a.a.createElement("div",null,"This visualization expects the query result to have rows in one of the following formats:",a.a.createElement("div",{className:"m-t-10"},a.a.createElement("strong",null,"Option 1:"),a.a.createElement("ul",null,a.a.createElement("li",null,a.a.createElement("strong",null,"sequence")," - sequence id"),a.a.createElement("li",null,a.a.createElement("strong",null,"stage")," - what stage in sequence this is (1, 2, ...)"),a.a.createElement("li",null,a.a.createElement("strong",null,"node")," - stage name"),a.a.createElement("li",null,a.a.createElement("strong",null,"value")," - number of times this sequence occurred"))),a.a.createElement("div",{className:"m-t-10"},a.a.createElement("strong",null,"Option 2:"),a.a.createElement("ul",null,a.a.createElement("li",null,a.a.createElement("strong",null,"stage1")," - stage 1 value"),a.a.createElement("li",null,a.a.createElement("strong",null,"stage2")," - stage 2 value (or null)"),a.a.createElement("li",null,a.a.createElement("strong",null,"stage3")," - stage 3 value (or null)"),a.a.createElement("li",null,a.a.createElement("strong",null,"stage4")," - stage 4 value (or null)"),a.a.createElement("li",null,a.a.createElement("strong",null,"stage5")," - stage 5 value (or null)"),a.a.createElement("li",null,a.a.createElement("strong",null,"value")," - number of times this sequence occurred")))))}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return m});n(14),n(15),n(11);var r=n(2),a=n(0),o=n.n(a),i=n(113),s=n.n(i),l=n(31),c=n.n(l),u=n(20),d=n(205);n(1598);function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function m(e){var t=e.options,n=e.data,i=e.context,l=p(Object(a.useState)("row:1:".concat(t.itemsPerPage,":")),2),u=l[0],m=l[1],f=p(Object(a.useState)(""),2),h=f[0],g=f[1],b=p(Object(a.useState)([]),2),y=b[0],v=b[1],w=Object(a.useMemo)(()=>Object(r.filter)(t.columns,"allowSearch"),[t.columns]),O=Object(a.useRef)(),j=Object(a.useCallback)(e=>g(e.target.value),[g]),E=Object(a.useMemo)(()=>{var e=w.length>0?o.a.createElement(c.a.Search,{ref:O,placeholder:"Search...",onChange:j}):null;return Object(d.prepareColumns)(t.columns,e,y,e=>{v(e),document.getSelection().removeAllRanges()})},[t.columns,w,O,j,y,v]),S=Object(a.useMemo)(()=>Object(d.sortRows)(Object(d.filterRows)(n.rows,h,w),y),[n.rows,h,w,y]);return Object(a.useEffect)(()=>{g(""),O.current&&O.current.input.setValue("",{target:{value:""}}),v([])},[t.columns,n.columns,O]),0===n.rows.length?null:o.a.createElement("div",{className:"table-visualization-container"},o.a.createElement(s.a,{"data-percy":"show-scrollbars","data-test":"TableVisualization",columns:E,dataSource:S,rowKey:(e,t)=>u+t,pagination:{size:"widget"===i?"small":"",position:"bottom",pageSize:t.itemsPerPage,hideOnSinglePage:!0,onChange:(e,t)=>m("row:".concat(e,":").concat(t,":"))}}))}m.propTypes=u.RendererPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});var r=n(0),a=n.n(r),o=n(270),i=n(51);function s(e){var t=Object(i.d)(e.allowHTML&&e.highlightLinks);function n(n){return{text:t(n[e.name])}}function r(t){var r=n(t.row).text;return e.allowHTML?a.a.createElement(o.default,null,r):r}return r.prepareData=n,r}s.friendlyName="Text"},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});var r=n(51);function a(e){var t=Object(r.c)(e.numberFormat);function n(n){return{text:t(n[e.name])}}function a(e){return n(e.row).text}return a.prepareData=n,a}a.friendlyName="Number"},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});var r=n(51);function a(e){var t=Object(r.b)(e.dateTimeFormat);function n(n){return{text:t(n[e.name])}}function a(e){return n(e.row).text}return a.prepareData=n,a}a.friendlyName="Date/Time"},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});var r=n(51);function a(e){var t=Object(r.a)(e.booleanValues);function n(n){return{text:t(n[e.name])}}function a(e){return n(e.row).text}return a.prepareData=n,a}a.friendlyName="Boolean"},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return l});n(11),n(19),n(27);var r=n(2),a=n(0),o=n.n(a),i=n(51);function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function l(e){function t(t){t=Object(r.extend)({"@":t[e.name]},t);var n=Object(r.trim)(Object(i.e)(e.linkUrlTemplate,t));if(""===n)return{};var a=Object(r.trim)(Object(i.e)(e.linkTitleTemplate,t)),o=Object(r.trim)(Object(i.e)(e.linkTextTemplate,t)),s={href:n,text:""!==o?o:n};return""!==a&&(s.title=a),e.linkOpenInNewTab&&(s.target="_blank"),s}function n(e){var n=t(e.row),r=n.text,a=s(n,["text"]);return o.a.createElement("a",a,r)}return n.prepareData=t,n}l.friendlyName="Link"},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return c});n(34),n(11),n(19),n(27),n(165),n(453);var r=n(2),a=n(0),o=n.n(a),i=n(51);function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function c(e){function t(t){t=Object(r.extend)({"@":t[e.name]},t);var n=Object(r.trim)(Object(i.e)(e.imageUrlTemplate,t));if(""===n)return{};var a=parseInt(Object(i.e)(e.imageWidth,t),10),o=parseInt(Object(i.e)(e.imageHeight,t),10),s=Object(r.trim)(Object(i.e)(e.imageTitleTemplate,t)),l={src:n};return Number.isFinite(a)&&a>0&&(l.width=a),Number.isFinite(o)&&o>0&&(l.height=o),""!==s&&(l.text=s,l.title=s,l.alt=s),l}function n(e){var n=t(e.row),r=(n.text,l(n,["text"]));return o.a.createElement("img",s({alt:""},r))}return n.prepareData=t,n}c.friendlyName="Image"},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return l});var r=n(2),a=n(0),o=n.n(a),i=n(483),s=n(10);function l(e){function t(t){var n=t[e.name];if(Object(r.isString)(n)&&n.length<=s.clientConfig.tableCellMaxJSONSize)try{return{text:n,value:JSON.parse(n)}}catch(e){}return{text:n,value:void 0}}function n(e){var n=t(e.row),a=n.text,s=n.value;return Object(r.isUndefined)(s)?o.a.createElement("div",{className:"json-cell-invalid"},""+a):o.a.createElement("div",{className:"json-cell-valid"},o.a.createElement(i.default,{value:s}))}return n.prepareData=t,n}l.friendlyName="JSON"},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return p});var r=n(2),a=n(0),o=n.n(a),i=n(26),s=n.n(i),l=n(93),c=n.n(l),u=n(32),d=n(20);function p(e){var t=e.options,n=e.data,a=e.onOptionsChange,i=e=>{a(Object(r.merge)({},t,e))};return o.a.createElement(o.a.Fragment,null,o.a.createElement("div",{className:"form-group"},o.a.createElement("label",{className:"control-label",htmlFor:"word-cloud-words-column"},"Words Column"),o.a.createElement(s.a,{"data-test":"WordCloud.WordsColumn",id:"word-cloud-words-column",className:"w-100",value:t.column,onChange:e=>i({column:e})},Object(r.map)(n.columns,e=>{var t=e.name;return o.a.createElement(s.a.Option,{key:t,"data-test":"WordCloud.WordsColumn."+t},t)}))),o.a.createElement("div",{className:"form-group"},o.a.createElement("label",{className:"control-label",htmlFor:"word-cloud-frequencies-column"},"Frequencies Column"),o.a.createElement(s.a,{"data-test":"WordCloud.FrequenciesColumn",id:"word-cloud-frequencies-column",className:"w-100",value:t.frequenciesColumn,onChange:e=>i({frequenciesColumn:e})},o.a.createElement(s.a.Option,{key:"none",value:""},o.a.createElement("i",null,"(count word frequencies automatically)")),Object(r.map)(n.columns,e=>{var t=e.name;return o.a.createElement(s.a.Option,{key:"column-"+t,value:t,"data-test":"WordCloud.FrequenciesColumn."+t},t)}))),o.a.createElement("div",{className:"form-group"},o.a.createElement("label",{className:"control-label",htmlFor:"word-cloud-word-length-limit"},"Words Length Limit"),o.a.createElement(u.Row,{gutter:15,type:"flex"},o.a.createElement(u.Col,{span:12},o.a.createElement(c.a,{"data-test":"WordCloud.WordLengthLimit.Min",className:"w-100",placeholder:"Min",min:0,value:t.wordLengthLimit.min,onChange:e=>i({wordLengthLimit:{min:e>0?e:null}})})),o.a.createElement(u.Col,{span:12},o.a.createElement(c.a,{"data-test":"WordCloud.WordLengthLimit.Max",className:"w-100",placeholder:"Max",min:0,value:t.wordLengthLimit.max,onChange:e=>i({wordLengthLimit:{max:e>0?e:null}})})))),o.a.createElement("div",{className:"form-group"},o.a.createElement("label",{className:"control-label",htmlFor:"word-cloud-word-length-limit"},"Frequencies Limit"),o.a.createElement(u.Row,{gutter:15,type:"flex"},o.a.createElement(u.Col,{span:12},o.a.createElement(c.a,{"data-test":"WordCloud.WordCountLimit.Min",className:"w-100",placeholder:"Min",min:0,value:t.wordCountLimit.min,onChange:e=>i({wordCountLimit:{min:e>0?e:null}})})),o.a.createElement(u.Col,{span:12},o.a.createElement(c.a,{"data-test":"WordCloud.WordCountLimit.Max",className:"w-100",placeholder:"Max",min:0,value:t.wordCountLimit.max,onChange:e=>i({wordCountLimit:{max:e>0?e:null}})})))))}p.propTypes=d.EditorPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return g});n(14),n(15),n(11),n(165),n(453),n(131);var r=n(13),a=n.n(r),o=n(797),i=n.n(o),s=n(2),l=n(0),c=n.n(l),u=n(117),d=n(20);n(1601);function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function m(e,t){var n=[];t.column&&(n=t.frequenciesColumn?function(e,t,n){var r={};return Object(s.each)(e,e=>{var a=parseFloat(e[n]);if(Number.isFinite(a)&&a>0){var o=Object(s.toString)(e[t]);r[o]=a}}),r}(e,t.column,t.frequenciesColumn):function(e,t){var n={};return Object(s.each)(e,e=>{var r=Object(s.toString)(e[t]).split(/\s/g);Object(s.each)(r,e=>{n[e]=(n[e]||0)+1})}),n}(e,t.column),n=Object(s.sortBy)(Object(s.map)(n,(e,t)=>({text:t,count:e})),[e=>{return-e.count},e=>{return-e.text.length}]));var r,o,i,l,c=Object(s.map)(n,e=>e.count),u=a.a.scale.linear().domain([Object(s.min)(c),Object(s.max)(c)]).range([10,100]),d=a.a.scale.category20();return Object(s.each)(n,(e,t)=>{e.size=u(e.count),e.color=d(t),e.angle=t%2*90}),r=n,o={wordLength:t.wordLengthLimit,wordCount:t.wordCountLimit},i=o.wordLength,l=o.wordCount,i.min=Number.isFinite(i.min)?i.min:null,i.max=Number.isFinite(i.max)?i.max:null,l.min=Number.isFinite(l.min)?l.min:null,l.max=Number.isFinite(l.max)?l.max:null,Object(s.filter)(r,e=>{var t=e.text,n=e.count,r=(!i.min||t.length>=i.min)&&(!i.max||t.length<=i.max),a=(!l.min||n>=l.min)&&(!l.max||n<=l.max);return r&&a})}function f(e,t){e.style.transform=null;var n=e.getBoundingClientRect(),r=n.width,a=n.height,o=t.getBoundingClientRect(),i=o.width/r,s=o.height/a;e.style.transform="scale(".concat(Math.min(i,s),")")}function h(){var e=window.getComputedStyle(document.body).fontFamily;return i()().size([5e3,5e3]).padding(3).font(e).rotate(e=>e.angle).fontSize(e=>e.size).random(()=>.5)}function g(e){var t=e.data,n=e.options,r=p(Object(l.useState)(null),2),o=r[0],i=r[1],s=p(Object(l.useState)([]),2),d=s[0],g=s[1],b=Object(l.useMemo)(h,[]);return Object(l.useEffect)(()=>(b.words(m(t.rows,n)).on("end",e=>g(e)).start(),()=>b.on("end",null).stop()),[b,t,n,g]),Object(l.useEffect)(()=>{o&&function(e,t){(e=a.a.select(e)).selectAll("*").remove();var n=e.append("svg"),r=n.append("g");r.selectAll("text").data(t).enter().append("text").style("font-size",e=>"".concat(e.size,"px")).style("font-family",e=>e.font).style("fill",e=>e.color).attr("text-anchor","middle").attr("transform",e=>"translate(".concat([e.x,e.y],") rotate(").concat(e.rotate,")")).text(e=>e.text);var o=n.node().getBoundingClientRect(),i=r.node().getBoundingClientRect();n.attr("width",Math.ceil(i.width)).attr("height",Math.ceil(i.height)),r.attr("transform","translate(".concat(o.left-i.left,",").concat(o.top-i.top,")")),f(n.node(),e.node())}(o,d)},[o,d]),Object(l.useEffect)(()=>{if(o)return Object(u.default)(o,()=>{var e=o.querySelector("svg");e&&f(e,o)})},[o]),c.a.createElement("div",{className:"word-cloud-visualization-container",ref:i})}g.propTypes=d.RendererPropTypes},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return u});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(78),l=n(271),c=n(198);function u(e){var t=e.page,n=e.searchTerm,r=e.selectedTags;if(""!==n)return a.a.createElement(s.BigMessage,{message:"Sorry, we couldn't find anything.",icon:"fa-search"});if(r.length>0)return a.a.createElement(l.NoTaggedObjectsFound,{objectType:"dashboards",tags:r});switch(t){case"favorites":return a.a.createElement(s.BigMessage,{message:"Mark dashboards as Favorite to list them here.",icon:"fa-star"});default:return a.a.createElement(c.EmptyState,{icon:"zmdi zmdi-view-quilt",description:"See the big picture",illustration:"dashboard",helpLink:"https://help.redash.io/category/22-dashboards",showDashboardStep:!0})}}u.propTypes={page:i.a.string.isRequired,searchTerm:i.a.string.isRequired,selectedTags:i.a.array.isRequired}},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(34),n(29),n(106);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(129),c=n.n(l),u=n(37),d=n.n(u),p=n(35),m=n.n(p),f=n(121),h=n.n(f),g=n(22),b=n(12),y=n(33),v=n(169),w=n(100);function O(e){return(O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function j(){return(j=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function E(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function x(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function P(e,t){return(P=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function C(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var k="api/dashboards/{id}/share",_=function(e){function t(e){var n,a,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),a=this,o=S(t).call(this,e),n=!o||"object"!==O(o)&&"function"!=typeof o?x(a):o,C(x(n),"formItemProps",{labelCol:{span:8},wrapperCol:{span:16},style:{marginBottom:7}}),C(x(n),"enableAccess",()=>{var e=n.props.dashboard;n.setState({saving:!0}),g.$http.post(n.apiUrl).success(t=>{e.publicAccessEnabled=!0,e.public_url=t.public_url}).error(()=>{b.default.error("Failed to turn on sharing for this dashboard")}).finally(()=>{n.setState({saving:!1})})}),C(x(n),"disableAccess",()=>{var e=n.props.dashboard;n.setState({saving:!0}),g.$http.delete(n.apiUrl).success(()=>{e.publicAccessEnabled=!1,delete e.public_url}).error(()=>{b.default.error("Failed to turn off sharing for this dashboard")}).finally(()=>{n.setState({saving:!1})})}),C(x(n),"onChange",e=>{e?n.enableAccess():n.disableAccess()});var i=n.props.dashboard;return n.state={saving:!1},n.apiUrl=Object(r.replace)(k,"{id}",i.id),n.enabled=n.props.hasOnlySafeQueries||i.publicAccessEnabled,n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&P(e,t)}(t,o.a.Component),n=t,i=[{key:"headerContent",get:function(){return o.a.createElement(o.a.Fragment,null,"Share Dashboard",o.a.createElement("div",{className:"modal-header-desc"},"Allow public access to this dashboard with a secret address."," ",o.a.createElement(w.HelpTrigger,{type:"SHARE_DASHBOARD"})))}}],(a=[{key:"render",value:function(){var e=this.props,t=e.dialog,n=e.dashboard;return o.a.createElement(d.a,j({},t.props,{title:this.constructor.headerContent,footer:null}),o.a.createElement(m.a,{layout:"horizontal"},!this.props.hasOnlySafeQueries&&o.a.createElement(m.a.Item,null,o.a.createElement(h.a,{message:"For your security, sharing is currently not supported for dashboards containing queries with text parameters. Consider changing the text parameters in your query to a different type.",type:"error"})),o.a.createElement(m.a.Item,j({label:"Allow public access"},this.formItemProps),o.a.createElement(c.a,{checked:n.publicAccessEnabled,onChange:this.onChange,loading:this.state.saving,disabled:!this.enabled,"data-test":"PublicAccessEnabled"})),n.public_url&&o.a.createElement(m.a.Item,j({label:"Secret address"},this.formItemProps),o.a.createElement(v.default,{value:n.public_url,"data-test":"SecretAddress"}))))}}])&&E(n.prototype,a),i&&E(n,i),t}();C(_,"propTypes",{dashboard:s.a.object.isRequired,hasOnlySafeQueries:s.a.bool.isRequired,dialog:y.DialogPropType.isRequired}),t.default=Object(y.wrap)(_)},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return u});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(78),l=n(271),c=n(198);function u(e){var t=e.page,n=e.searchTerm,r=e.selectedTags;if(""!==n)return a.a.createElement(s.BigMessage,{message:"Sorry, we couldn't find anything.",icon:"fa-search"});if(r.length>0)return a.a.createElement(l.NoTaggedObjectsFound,{objectType:"queries",tags:r});switch(t){case"favorites":return a.a.createElement(s.BigMessage,{message:"Mark queries as Favorite to list them here.",icon:"fa-star"});case"archive":return a.a.createElement(s.BigMessage,{message:"Archived queries will be listed here.",icon:"fa-archive"});case"my":return a.a.createElement("div",{className:"tiled bg-white p-15"},a.a.createElement("a",{href:"queries/new",className:"btn btn-primary btn-sm"},"Create your first query")," ","to populate My Queries list. Need help? Check out our"," ",a.a.createElement("a",{href:"https://redash.io/help/user-guide/querying/writing-queries"},"query writing documentation"),".");default:return a.a.createElement(c.EmptyState,{icon:"fa fa-code",illustration:"query",description:"Getting the data from your datasources.",helpLink:"https://help.redash.io/category/21-querying"})}}u.propTypes={page:i.a.string.isRequired,searchTerm:i.a.string.isRequired,selectedTags:i.a.array.isRequired}},,,,,,,,,,,,,,,,,function(e,t,n){e.exports=n.p+"images/avatar.svg"},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){},,,,,,,,,,,function(e,t,n){},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){},,,,,,,,,,,,,,,,,,,,,function(e,t){e.exports='<div class="p-5">\n <h4>Notifications</h4>\n\n <div>\n <ui-select ng-model="newSubscription.destination" ng-disabled="destinations.length == 0">\n <ui-select-match><span ng-bind-html="destinationsDisplay($select.selected)"></span></ui-select-match>\n <ui-select-choices repeat="d in destinations">\n <span ng-bind-html="destinationsDisplay(d)"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n <div class="m-t-5">\n <button class="btn btn-default" ng-click="saveSubscriber()" ng-disabled="destinations.length == 0" style="width:50%;">Add</button>\n <span class="pull-right m-t-5">\n <a href="destinations/new" ng-if="currentUser.isAdmin">Create New Destination</a>\n </span>\n </div>\n\n <hr/>\n\n <div>\n <div class="list-group-item" ng-repeat="subscriber in subscribers">\n <span ng-bind-html="destinationsDisplay(subscriber)"></span>\n <button class="btn btn-xs btn-danger pull-right" ng-click="unsubscribe(subscriber)" ng-if="currentUser.isAdmin || currentUser.id == subscriber.user.id">Remove</button>\n </div>\n </div>\n</div>\n'},function(e){e.exports="a16f551e22c6288df6f067aa12caa5afd9a8f1dd"},function(e,t){e.exports='<nav class="navbar navbar-default app-header" role="navigation">\n <div class="container">\n <div class="navbar-header">\n <button\n type="button"\n class="navbar-toggle"\n ng-click="isNavOpen = !isNavOpen"\n >\n <span class="sr-only">Toggle navigation</span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </button>\n \x3c!-- REDASH LOGO --\x3e\n <a class="navbar-brand" ng-href="{{ $ctrl.basePath }}"\n ><img ng-src="{{ $ctrl.logoUrl }}"\n /></a>\n </div>\n <div class="collapse navbar-collapse" uib-collapse="!isNavOpen">\n \x3c!-- Main Left Nav--\x3e\n\n <ul class="nav navbar-nav nav__main">\n <li\n class="dropdown btn-group"\n ng-show="$ctrl.showDashboardsMenu"\n uib-dropdown\n >\n <a class="btn" href="dashboards">Dashboards</a>\n <a type="button" class="btn hidden-xs" uib-dropdown-toggle>\n <span class="caret caret--nav"></span>\n </a>\n <ul class="dropdown-menu" uib-dropdown-menu>\n <li ng-if="$ctrl.dashboards.length == 0">\n <a>\n <em>\n <span class="btn-favourite">\n <i class="fa fa-star" aria-hidden="true"></i>\n </span>\n Favorite Dashboards will appear here\n </em>\n </a>\n </li>\n <li ng-repeat="dashboard in $ctrl.dashboards">\n <a href="dashboard/{{ dashboard.slug }}">\n {{ dashboard.name }}\n </a>\n </li>\n </ul>\n </li>\n <li\n class="dropdown btn-group"\n ng-show="$ctrl.showQueriesMenu"\n uib-dropdown\n >\n <a class="btn" href="queries">Queries</a>\n <a type="button" class="btn hidden-xs" uib-dropdown-toggle>\n <span class="caret caret--nav"></span>\n </a>\n <ul class="dropdown-menu" uib-dropdown-menu>\n <li ng-if="$ctrl.queries.length == 0">\n <a>\n <em>\n <span class="btn-favourite">\n <i class="fa fa-star" aria-hidden="true"></i>\n </span>\n Favorite Queries will appear here\n </em>\n </a>\n </li>\n <li ng-repeat="query in $ctrl.queries">\n <a href="queries/{{ query.id }}">\n {{ query.name }}\n </a>\n </li>\n </ul>\n </li>\n <li ng-if="$ctrl.showAlertsLink">\n <a href="alerts">Alerts</a>\n </li>\n </ul>\n\n \x3c!-- Add New Button --\x3e\n <div\n class="btn-group navbar-btn navbar-left btn__new hidden-xs"\n uib-dropdown\n is-open="status.isopen"\n >\n <button\n id="create-button"\n data-test="CreateButton"\n type="button"\n class="btn btn-primary btn--create"\n uib-dropdown-toggle\n ng-disabled="disabled"\n >\n Create <span class="caret caret--nav"></span>\n </button>\n <ul\n class="dropdown-menu"\n uib-dropdown-menu\n role="menu"\n aria-labelledby="create-button"\n >\n <li role="menuitem" ng-show="$ctrl.showNewQueryMenu">\n <a href="queries/new">Query</a>\n </li>\n <li role="menuitem">\n <a\n ng-show="$ctrl.currentUser.hasPermission(\'create_dashboard\')"\n ng-click="$ctrl.newDashboard()"\n >Dashboard</a\n >\n </li>\n <li role="menuitem"><a href="alerts/new">Alert</a></li>\n </ul>\n </div>\n\n \x3c!-- Profile --\x3e\n <ul class="nav navbar-nav navbar-right">\n <li>\n <help-trigger\n type="\'HOME\'"\n class-name="\'navbar-link-ANGULAR_REMOVE_ME\'"\n ></help-trigger>\n </li>\n <li ng-show="$ctrl.currentUser.isAdmin">\n <a href="data_sources" title="Settings"\n ><i class="fa fa-sliders" aria-hidden="true"></i\n ></a>\n </li>\n \x3c!--<li ng-show="$ctrl.showSettingsMenu">--\x3e\n \x3c!--<a href="users" title="Settings"><i class="fa fa-cog"></i></a>--\x3e\n \x3c!--</li>--\x3e\n <li class="dropdown" uib-dropdown>\n <a\n href="#"\n class="dropdown-toggle dropdown--profile"\n uib-dropdown-toggle\n data-test="ProfileDropdown"\n >\n <img\n ng-src="{{ $ctrl.currentUser.profile_image_url }}"\n class="profile__image--navbar"\n width="20"/>\n <span\n class="dropdown--profile__username"\n ng-bind="$ctrl.currentUser.name"\n ></span>\n <span class="caret caret--nav"></span\n ></a>\n <ul class="dropdown-menu dropdown-menu--profile">\n <li>\n <a ng-href="users/me">Edit Profile</a>\n </li>\n <li\n class="divider"\n ng-if="$ctrl.currentUser.hasPermission(\'super_admin\')"\n ></li>\n\n <li ng-show="$ctrl.currentUser.isAdmin">\n <a href="data_sources" title="Data Sources">Data Sources</a>\n </li>\n <li ng-show="$ctrl.showSettingsMenu">\n <a href="groups" title="Settings">Groups</a>\n </li>\n <li ng-show="$ctrl.showSettingsMenu">\n <a href="users" title="Settings">Users</a>\n </li>\n <li>\n <a ng-href="query_snippets">Query Snippets</a>\n </li>\n <li ng-show="$ctrl.showSettingsMenu">\n <a href="destinations" title="Settings">Alert Destinations</a>\n </li>\n\n <li\n ng-if="$ctrl.currentUser.hasPermission(\'super_admin\')"\n class="divider"\n ></li>\n\n <li ng-if="$ctrl.currentUser.hasPermission(\'super_admin\')">\n <a href="admin/status">System Status</a>\n </li>\n\n <li class="divider"></li>\n\n <li>\n <a ng-click="$ctrl.logout()">Log out</a>\n </li>\n\n <li class="divider"></li>\n <li class="dropdown-menu__version">\n Version: {{ $ctrl.backendVersion }}\n <span ng-if="$ctrl.frontendVersion !== $ctrl.backendVersion">\n ({{ $ctrl.frontendVersion.substring(0, 8) }})\n </span>\n <span\n class="update-available"\n ng-if="$ctrl.currentUser.hasPermission(\'super_admin\') && $ctrl.newVersionAvailable"\n >\n <a href="https://version.redash.io/" target="_blank">\n <i class="fa fa-arrow-circle-down"></i>\n </a>\n </span>\n </li>\n </ul>\n </li>\n </ul>\n\n \x3c!-- Search --\x3e\n <form\n class="navbar-form navbar-right"\n role="search"\n ng-submit="$ctrl.searchQueries()"\n >\n <div class="input-group menu-search">\n <input\n type="text"\n ng-model="$ctrl.searchTerm"\n class="form-control navbar__search__input"\n placeholder="Search queries..."\n data-test="AppHeaderSearch"\n />\n <span class="input-group-btn">\n <button type="submit" class="btn btn-default">\n <span class="zmdi zmdi-search"></span>\n </button>\n </span>\n </div>\n </form>\n </div>\n </div>\n</nav>\n'},function(e,t){e.exports='<app-header ng-if="$ctrl.layout.showHeader"></app-header>\n<div ng-if="$ctrl.handler.error" class="fixed-container" data-test="ErrorMessage">\n <div class="container">\n <div class="col-md-8 col-md-push-2">\n <div class="error-state bg-white tiled">\n <div class="error-state__icon">\n <i class="zmdi zmdi-alert-circle-o"></i>\n </div>\n <div class="error-state__details">\n <h4>{{ $ctrl.handler.error.message }}</h4>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div id="app-content" ng-if="!$ctrl.handler.error" ng-view></div>\n'},function(e,t){e.exports='<div class="widget-wrapper">\n <div class="tile body-container widget-visualization" ng-if="$ctrl.type==\'visualization\'" ng-class="$ctrl.type"\n ng-switch="$ctrl.widget.getQueryResult().getStatus()" ng-attr-data-refreshing="{{ $ctrl.widget.loading && !!$ctrl.widget.getQueryResult().getStatus() }}">\n <div class="body-row widget-header">\n <div class="t-header widget clearfix">\n <div class="dropdown pull-right widget-menu-remove" ng-if="!$ctrl.public && $ctrl.dashboard.canEdit()">\n <div class="actions">\n <a ng-click="$ctrl.deleteWidget()" title="Remove From Dashboard"><i class="zmdi zmdi-close"></i></a>\n </div>\n </div>\n <div class="dropdown pull-right widget-menu-regular" ng-if="!$ctrl.public"\n uib-dropdown dropdown-append-to-body="true"\n >\n <div class="actions">\n <a data-toggle="dropdown" uib-dropdown-toggle class="p-l-15 p-r-15"><i class="zmdi zmdi-more-vert"></i></a>\n </div>\n\n <ul class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>\n <li ng-class="{\'disabled\': $ctrl.widget.getQueryResult().isEmpty()}"><a ng-href="{{$ctrl.widget.getQueryResult().getLink($ctrl.widget.getQuery().id, \'csv\')}}" download="{{$ctrl.widget.getQueryResult().getName($ctrl.widget.getQuery().name, \'csv\')}}" target="_self">Download as CSV File</a></li>\n <li ng-class="{\'disabled\': $ctrl.widget.getQueryResult().isEmpty()}"><a ng-href="{{$ctrl.widget.getQueryResult().getLink($ctrl.widget.getQuery().id, \'xlsx\')}}" download="{{$ctrl.widget.getQueryResult().getName($ctrl.widget.getQuery().name, \'xlsx\')}}" target="_self">Download as Excel File</a></li>\n\n <li ng-if="$ctrl.canViewQuery || ($ctrl.dashboard.canEdit() && $ctrl.hasParameters())" class="divider"></li>\n <li ng-if="$ctrl.canViewQuery"><a ng-href="{{$ctrl.widget.getQuery().getUrl(true, $ctrl.widget.visualization.id)}}">View Query</a></li>\n <li ng-if="$ctrl.dashboard.canEdit() && $ctrl.hasParameters()">\n <li ng-if="$ctrl.dashboard.canEdit() && $ctrl.hasParameters()"><a ng-click="$ctrl.editParameterMappings()">Edit Parameters</a></li>\n </li>\n\n <li ng-if="$ctrl.dashboard.canEdit()" class="divider"></li>\n <li ng-if="$ctrl.dashboard.canEdit()"><a ng-click="$ctrl.deleteWidget()">Remove from Dashboard</a></li>\n </ul>\n </div>\n <div class="refresh-indicator" ng-if="$ctrl.widget.loading">\n <div class="refresh-icon">\n <i class="zmdi zmdi-refresh zmdi-hc-spin"></i>\n </div>\n <rd-timer from="$ctrl.widget.refreshStartedAt"></rd-timer>\n </div>\n <div class="th-title">\n <p>\n <query-link query="$ctrl.widget.getQuery()" visualization="$ctrl.widget.visualization"\n readonly="!$ctrl.canViewQuery"></query-link>\n </p>\n <div class="text-muted query--description" ng-bind-html="$ctrl.widget.getQuery().description | markdown"></div>\n </div>\n </div>\n <div class="m-b-10" ng-if="$ctrl.localParametersDefs().length > 0">\n <parameters parameters="$ctrl.localParametersDefs()" on-values-change="$ctrl.forceRefresh"></parameters>\n </div>\n </div>\n\n <div ng-switch-when="failed" class="body-row-auto scrollbox">\n <div class="alert alert-danger m-5" ng-show="$ctrl.widget.getQueryResult().getError()">Error running query: <strong>{{$ctrl.widget.getQueryResult().getError()}}</strong></div>\n </div>\n <div ng-switch-when="done" class="body-row-auto scrollbox">\n <visualization-renderer class="t-body"\n visualization="$ctrl.widget.visualization"\n query-result="$ctrl.widget.getQueryResult()"\n filters="$ctrl.filters"\n context="\'widget\'"\n ></visualization-renderer>\n </div>\n <div ng-switch-default class="body-row-auto spinner-container">\n <div class="spinner">\n <i class="zmdi zmdi-refresh zmdi-hc-spin zmdi-hc-5x"></i>\n </div>\n </div>\n\n <div class="body-row tile__bottom-control">\n <span>\n <a class="refresh-button hidden-print btn btn-sm btn-default btn-transparent" ng-click="$ctrl.refresh(1)" ng-if="!$ctrl.public && !!$ctrl.widget.getQueryResult()" data-test="RefreshButton">\n <i class="zmdi zmdi-refresh" ng-class="{ \'zmdi-hc-spin\': $ctrl.refreshClickButtonId === 1}"></i>\n <span am-time-ago="$ctrl.widget.getQueryResult().getUpdatedAt()"></span>\n </a>\n <span class="small hidden-print" ng-if="$ctrl.public">\n <i class="zmdi zmdi-time-restore"></i> <span am-time-ago="$ctrl.widget.getQueryResult().getUpdatedAt()"></span>\n </span>\n <span class="visible-print">\n <i class="zmdi zmdi-time-restore"></i> {{$ctrl.widget.getQueryResult().getUpdatedAt() | dateTime}}\n </span>\n </span>\n\n <span>\n <button class="btn btn-sm btn-default hidden-print btn-transparent btn__refresh" ng-click="$ctrl.expandVisualization()"><i class="zmdi zmdi-fullscreen"></i></button>\n <button class="btn btn-sm btn-default hidden-print btn-transparent btn__refresh" ng-click="$ctrl.refresh(2)" ng-if="!$ctrl.public">\n <i class="zmdi zmdi-refresh" ng-class="{ \'zmdi-hc-spin\': $ctrl.refreshClickButtonId === 2}"></i>\n </button>\n </span>\n </div>\n </div>\n\n <div class="tile body-container d-flex justify-content-center align-items-center widget-restricted" ng-if="$ctrl.type==\'restricted\'" ng-class="$ctrl.type">\n <div class="t-body scrollbox">\n <div class="text-center">\n <h1><span class="zmdi zmdi-lock"></span></h1>\n <p class="text-muted">\n This widget requires access to a data source you don\'t have access to.\n </p>\n </div>\n </div>\n </div>\n\n <div class="tile body-container widget-text" ng-hide="$ctrl.widget.width === 0" ng-if="$ctrl.type==\'textbox\'" ng-class="$ctrl.type">\n <div class="body-row clearfix t-body">\n <div class="dropdown pull-right widget-menu-remove" ng-if="!$ctrl.public && $ctrl.dashboard.canEdit()">\n <div class="dropdown-header">\n <a class="actions" ng-click="$ctrl.deleteWidget()" title="Remove From Dashboard"><i class="zmdi zmdi-close"></i></a>\n </div>\n </div>\n <div class="dropdown pull-right widget-menu-regular" ng-if="!$ctrl.public && $ctrl.dashboard.canEdit()"\n uib-dropdown dropdown-append-to-body="true">\n <div class="dropdown-header">\n <a data-toggle="dropdown" uib-dropdown-toggle class="actions p-l-15 p-r-15"><i class="zmdi zmdi-more-vert"></i></a>\n </div>\n\n <ul class="dropdown-menu dropdown-menu-right" uib-dropdown-menu style="z-index:1000000">\n <li><a ng-show="$ctrl.dashboard.canEdit()" ng-click="$ctrl.editTextBox()">Edit</a></li>\n <li><a ng-show="$ctrl.dashboard.canEdit()" ng-click="$ctrl.deleteWidget()">Remove From Dashboard</a></li>\n </ul>\n </div>\n </div>\n <div class="body-row-auto scrollbox tiled t-body p-15 markdown" ng-bind-html="$ctrl.widget.text | markdown"></div>\n </div>\n</div>\n'},function(e,t){e.exports='<div class="modal-header">\n <button type="button" class="close" aria-hidden="true" ng-click="$ctrl.dismiss()">×</button>\n <div class="visualization-title">\n <query-link query="$ctrl.widget.getQuery()" visualization="$ctrl.widget.visualization" readonly="true"></query-link>\n </div>\n</div>\n<div class="modal-body">\n <visualization-renderer visualization="$ctrl.widget.visualization" query-result="$ctrl.widget.getQueryResult()" class="t-body" context="\'widget\'"></visualization-renderer>\n</div>\n<div class="modal-footer">\n <button type="button" class="btn btn-default" ng-click="$ctrl.dismiss()">Close</button>\n</div>\n'},function(e,t){e.exports='<div class="modal-header">\n <button type="button" class="close" aria-label="Close" ng-click="$ctrl.close()"><span aria-hidden="true">×</span></button>\n <h4 class="modal-title">Manage Permissions</h4>\n</div>\n<div class="modal-body">\n <div style="overflow: auto; height: 300px">\n <ui-select ng-model="$ctrl.newGrantees.selected" on-select="$ctrl.addGrantee($item)">\n <ui-select-match placeholder="Add New User"></ui-select-match>\n <ui-select-choices repeat="user in $ctrl.foundUsers | filter:$select.search"\n refresh="$ctrl.findUser($select.search)"\n refresh-delay="0"\n ui-disable-choice="user.alreadyGrantee">\n <div class="d-flex align-items-center">\n <img ng-src="{{ user.profile_image_url }}" class="profile__image" height="24px"> \n <span ng-class="{\'text-muted\': user.is_disabled}">{{user.name}}</span>\n <small ng-if="user.alreadyGrantee">(already has permission)</small>\n </div>\n </ui-select-choices>\n </ui-select>\n <br>\n <h5>Who has access</h5>\n <table class="table table-condensed table-hover table--permission">\n <thead>\n <tr>\n <th></th>\n <th>User</th>\n <th>Permission</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td width="32px"><img ng-src="{{ $ctrl.owner.profile_image_url }}" class="profile__image" height="32px"/></td>\n <td class="text-muted"> {{ $ctrl.owner.name}}</td>\n <td class="mp__permission-type">Owner</td>\n <td></td>\n </tr>\n <tr ng-repeat="grantee in $ctrl.grantees" ng-if="grantee.id != $ctrl.owner.id">\n <td width="32px"><img ng-src="{{ grantee.profile_image_url }}" class="profile__image" height="32px"/></td>\n <td ng-class="{\'text-muted\': grantee.is_disabled}">{{grantee.name}}</td>\n <td class="mp__permission-type">{{grantee.access_type}}</td>\n <td><button class="pull-right btn btn-sm btn-danger" ng-click="$ctrl.removeGrantee(grantee)">Remove</button></td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n'},function(e,t){e.exports='<div class="schema-container" ng-if="$ctrl.schema">\n <div class="schema-control">\n <input type="text" placeholder="Search schema..." class="form-control" ng-model="$ctrl.schemaFilter" ng-model-options="{ debounce: 500 }" ng-disabled="$ctrl.isEmpty()" ng-change="$ctrl.splitFilter($ctrl.schemaFilter);">\n <button class="btn btn-default"\n title="Refresh Schema"\n ng-click="$ctrl.onRefresh()">\n <span class="zmdi zmdi-refresh"></span>\n </button>\n </div>\n\n <div class="schema-browser" vs-repeat vs-size="$ctrl.getSize(table)">\n <div ng-repeat="table in $ctrl.schema | filter:$ctrl.schemaFilterObject track by table.name">\n <div class="table-name" ng-click="$ctrl.showTable(table)">\n <i class="fa fa-table"></i>\n <strong>\n <span title="{{table.name}}">{{table.name}}</span>\n <span ng-if="table.size !== undefined"> ({{table.size}})</span>\n </strong>\n <i class="fa fa-angle-double-right copy-to-editor" aria-hidden="true"\n ng-click="$ctrl.itemSelected($event, [table.name])"></i>\n </div>\n <div uib-collapse="table.collapsed">\n <div ng-repeat="column in table.columns | filter:$ctrl.schemaFilterColumn track by column" class="table-open">{{column}}\n <i class="fa fa-angle-double-right copy-to-editor" aria-hidden="true"\n ng-click="$ctrl.itemSelected($event, [column])"></i>\n </div>\n </div>\n </div>\n </div>\n</div>\n'},function(e,t){e.exports='<div class="tile m-l-10 m-r-10 p-t-10 embed__vis" data-test="VisualizationEmbed">\n <div class="embed-heading p-b-10 p-r-15 p-l-15" ng-if="!$ctrl.hideHeader">\n <h3>\n <img ng-src="{{$ctrl.logoUrl}}" style="height: 24px; vertical-align: text-bottom;"/>\n <visualization-name visualization="$ctrl.visualization"/>\n {{$ctrl.query.name}}\n\n <small ng-if="$ctrl.showQueryDescription">\n <div class="text-muted" ng-bind-html="$ctrl.query.description | markdown"></div>\n </small>\n </h3>\n </div>\n\n <div class="col-md-12 query__vis">\n <div class="p-t-15 p-b-10" ng-if="$ctrl.query.hasParameters() && !$ctrl.hideParametersUI">\n <parameters parameters="$ctrl.query.getParametersDefs()" on-values-change="$ctrl.refreshQueryResults"></parameters>\n </div>\n\n <div ng-if="$ctrl.error">\n <div class="alert alert-danger" data-test="ErrorMessage">Error: {{$ctrl.error}}</div>\n </div>\n\n <visualization-renderer visualization="$ctrl.visualization" query-result="$ctrl.queryResult" class="t-body" ng-if="$ctrl.queryResult" context="\'widget\'">\n </visualization-renderer>\n </div>\n\n <div class="tile__bottom-control">\n <span>\n <a class="small hidden-print" ng-click="$ctrl.refreshQueryResults()">\n <i ng-class=\'{"zmdi-hc-spin": $ctrl.loading}\' class="zmdi zmdi-refresh"></i>\n <span am-time-ago="$ctrl.queryResult.getUpdatedAt()" ng-if="!$ctrl.loading"></span>\n <rd-timer from="$ctrl.refreshStartedAt" ng-if="$ctrl.loading"></rd-timer>\n </a>\n <span class="small visible-print"><i class="zmdi zmdi-time-restore"></i> {{$ctrl.queryResult.getUpdatedAt() | dateTime}} UTC</span>\n </span>\n\n <span class="hidden-print" ng-if="!$ctrl.hideQueryLink">\n <a class="btn btn-default btn-sm" ng-href="{{$ctrl.query.getUrl()}}" target="_blank" tooltip="Open in Redash">\n <span class="zmdi zmdi-link"></span>\n </a>\n\n <div class="btn-group dropup" uib-dropdown ng-if="!$ctrl.query.hasParameters()">\n <button type="button" class="btn btn-default btn-sm dropdown-toggle" aria-haspopup="true" uib-dropdown-toggle\n aria-expanded="false">\n Download Dataset <span class="caret"></span>\n </button>\n <ul class="dropdown-menu pull-right" uib-dropdown-menu>\n <li>\n <a ng-href="{{$ctrl.queryResult.getLink($ctrl.query.id, \'csv\', $ctrl.apiKey)}}" download="{{$ctrl.queryResult.getName($ctrl.query.name, \'csv\')}}" target="_self">\n <span class="fa fa-file-o"></span> Download as CSV File\n </a>\n </li>\n <li>\n <a ng-href="{{$ctrl.queryResult.getLink($ctrl.query.id, \'xlsx\', $ctrl.apiKey)}}" download="{{$ctrl.queryResult.getName($ctrl.query.name, \'xlsx\')}}" target="_self">\n <span class="fa fa-file-excel-o"></span> Download as Excel File\n </a>\n </li>\n </ul>\n </div>\n </span>\n </div>\n</div>\n'},function(e,t){e.exports='<div class="container">\n <page-header title="\'Settings\'"></page-header>\n\n <div class="bg-white tiled">\n <ul class="tab-nav">\n <li\n ng-repeat="menuItem in $ctrl.settingsMenu.items"\n ng-if="$ctrl.isAvailable(menuItem.permission)"\n ng-class="{\'active\': $ctrl.isActive(menuItem)}"\n >\n <a href="{{menuItem.path}}">{{menuItem.title}}</a>\n </li>\n\n </ul>\n <div class="p-15">\n <div ng-transclude>\n\n </div>\n </div>\n </div>\n</div>\n'},,,,,,,function(e,t){e.exports='<div>\n <ul class="tab-nav">\n <li ng-class="{active: $ctrl.currentTab == \'general\'}">\n <a ng-click="$ctrl.setCurrentTab(\'general\')">General</a>\n </li>\n <li ng-class="{active: $ctrl.currentTab == \'xAxis\'}" ng-if="$ctrl.options.globalSeriesType != \'custom\'">\n <a ng-click="$ctrl.setCurrentTab(\'xAxis\')">X Axis</a>\n </li>\n <li ng-class="{active: $ctrl.currentTab == \'yAxis\'}" ng-if="$ctrl.options.globalSeriesType != \'custom\'">\n <a ng-click="$ctrl.setCurrentTab(\'yAxis\')">Y Axis</a>\n </li>\n <li ng-class="{active: $ctrl.currentTab == \'series\'}" ng-if="$ctrl.options.globalSeriesType != \'custom\'">\n <a ng-click="$ctrl.setCurrentTab(\'series\')">Series</a>\n </li>\n <li ng-class="{active: $ctrl.currentTab == \'colors\'}" ng-if="$ctrl.options.globalSeriesType != \'custom\'">\n <a ng-click="$ctrl.setCurrentTab(\'colors\')">Colors</a>\n </li>\n <li ng-class="{active: $ctrl.currentTab == \'dataLabels\'}" ng-if="$ctrl.options.globalSeriesType != \'custom\'">\n <a ng-click="$ctrl.setCurrentTab(\'dataLabels\')">Data Labels</a>\n </li>\n </ul>\n <div ng-if="$ctrl.currentTab == \'general\'" class="m-t-10 m-b-10">\n <div class="form-group">\n <label class="control-label">Chart Type</label>\n <div ng-if="$ctrl.chartTypes">\n \x3c!--the if is a weird workaround--\x3e\n <ui-select ng-model="$ctrl.options.globalSeriesType" on-select="$ctrl.chartTypeChanged()">\n <ui-select-match placeholder="Choose chart type...">\n <div>\n <i class="fa fa-{{$select.selected.value.icon}}"></i>\n {{$select.selected.value.name}}\n </div>\n </ui-select-match>\n <ui-select-choices repeat="info.chartType as (chartType, info) in $ctrl.chartTypes">\n <div>\n <i class="fa fa-{{info.value.icon}}"></i>\n <span> </span>\n <span ng-bind-html="info.value.name | highlight: $select.search"></span>\n </div>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n\n <div class="form-group" ng-class="{\'has-error\': chartEditor.xAxisColumn.$invalid}">\n <label class="control-label">X Column</label>\n\n <ui-select name="xAxisColumn" required ng-model="$ctrl.form.xAxisColumn">\n <ui-select-match placeholder="Choose column...">{{$select.selected}}</ui-select-match>\n <ui-select-choices repeat="column in $ctrl.columnNames | remove:$ctrl.form.yAxisColumns | remove:$ctrl.form.groupby">\n <span ng-bind-html="column | highlight: $select.search"></span>\n <span> </span>\n <small class="text-muted" ng-bind="$ctrl.columns[column].type"></small>\n </ui-select-choices>\n </ui-select>\n </div>\n\n \x3c!-- not using regular validation (chartEditor.yAxisColumns.$invalid) due to a bug in ui-select with multiple choices--\x3e\n <div class="form-group" ng-class="{\'has-error\': !$ctrl.form.yAxisColumns || $ctrl.form.yAxisColumns.length == 0}">\n <label class="control-label">Y Columns</label>\n\n <ui-select multiple name="yAxisColumns" required ng-model="$ctrl.form.yAxisColumns">\n <ui-select-match placeholder="Choose columns...">{{$item}}</ui-select-match>\n <ui-select-choices repeat="column in $ctrl.columnNames | remove:$ctrl.form.groupby | remove:$ctrl.form.xAxisColumn">\n <span ng-bind-html="column | highlight: $select.search"></span>\n <span> </span>\n <small class="text-muted" ng-bind="$ctrl.columns[column].type"></small>\n </ui-select-choices>\n </ui-select>\n\n </div>\n\n <div class="form-group" ng-if="[\'custom\', \'heatmap\'].indexOf($ctrl.options.globalSeriesType) == -1">\n <label class="control-label">Group by</label>\n <ui-select name="groupby" ng-model="$ctrl.form.groupby" class="clearable">\n <ui-select-match allow-clear="true" placeholder="Choose column...">\n {{$select.selected}}\n </ui-select-match>\n <ui-select-choices repeat="column in $ctrl.columnNames | remove:$ctrl.form.yAxisColumns | remove:$ctrl.form.xAxisColumn">\n <span ng-bind-html="column | highlight: $select.search"></span>\n <span> </span>\n <small class="text-muted" ng-bind="$ctrl.columns[column].type"></small>\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div class="form-group" ng-if="$ctrl.showSizeColumnPicker()">\n <label class="control-label">Bubble size column</label>\n\n <ui-select name="sizeColumn" ng-model="$ctrl.form.sizeColumn">\n <ui-select-match allow-clear="true" placeholder="Choose column...">{{$select.selected}}</ui-select-match>\n <ui-select-choices repeat="column in $ctrl.columnNames | remove:$ctrl.form.yAxisColumns | remove:$ctrl.form.groupby">\n <span ng-bind-html="column | highlight: $select.search"></span>\n <span> </span>\n <small class="text-muted" ng-bind="$ctrl.columns[column].type"></small>\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div class="form-group" ng-if="$ctrl.showZColumnPicker()">\n <label class="control-label">Color Column</label>\n\n <ui-select name="zValColumn" ng-model="$ctrl.form.zValColumn">\n <ui-select-match allow-clear="true" placeholder="Choose column...">{{$select.selected}}</ui-select-match>\n <ui-select-choices repeat="column in $ctrl.columnNames | remove:$ctrl.form.yAxisColumns | remove:$ctrl.form.groupby">\n <span ng-bind-html="column | highlight: $select.search"></span><span> </span>\n <small class="text-muted" ng-bind="$ctrl.columns[column].type"></small>\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div class="form-group" ng-if="[\'custom\', \'heatmap\'].indexOf($ctrl.options.globalSeriesType) == -1">\n <label class="control-label">Errors column</label>\n\n <ui-select name="errorColumn" ng-model="$ctrl.form.errorColumn">\n <ui-select-match allow-clear="true" placeholder="Choose column...">{{$select.selected}}</ui-select-match>\n <ui-select-choices repeat="column in $ctrl.columnNames | remove:$ctrl.form.yAxisColumns | remove:$ctrl.form.groupby">\n <span ng-bind-html="column | highlight: $select.search"></span>\n <span> </span>\n <small class="text-muted" ng-bind="$ctrl.columns[column].type"></small>\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div class="form-group" ng-if="$ctrl.options.globalSeriesType === \'pie\'">\n <label class="control-label">Direction</label>\n\n <ui-select ng-model="$ctrl.options.direction.type">\n <ui-select-match placeholder="Choose Direction...">{{$select.selected.label}}</ui-select-match>\n <ui-select-choices repeat="direction.value as direction in $ctrl.directions">\n <div ng-bind-html="direction.label | highlight: $select.search"></div>\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div class="checkbox" ng-if="[\'custom\', \'heatmap\'].indexOf($ctrl.options.globalSeriesType) == -1">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.legend.enabled">\n <i class="input-helper"></i> Show Legend\n </label>\n </div>\n\n <div class="checkbox" ng-if="$ctrl.options.globalSeriesType == \'box\'">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.showpoints">\n <i class="input-helper"></i> Show All Points\n </label>\n </div>\n\n <div class="form-group" ng-if="[\'custom\', \'heatmap\'].indexOf($ctrl.options.globalSeriesType) == -1">\n <label class="control-label">Stacking</label>\n\n <div ng-if="$ctrl.stackingOptions">\n \x3c!--the if is a weird workaround--\x3e\n <ui-select\n ng-model="$ctrl.options.series.stacking"\n ng-disabled="[\'line\', \'area\', \'column\'].indexOf($ctrl.options.globalSeriesType) == -1"\n >\n <ui-select-match placeholder="Choose stacking...">{{ $select.selected.key }}</ui-select-match>\n <ui-select-choices repeat="value.value as (key, value) in $ctrl.stackingOptions">\n <div ng-bind-html="value.key | highlight: $select.search"></div>\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div ng-if="[\'line\', \'area\', \'column\'].indexOf($ctrl.options.globalSeriesType) >= 0" class="checkbox">\n <label class="control-label">\n <input type="checkbox" ng-model="$ctrl.options.series.percentValues"> Normalize values to percentage\n </label>\n </div>\n\n <div ng-if="[\'bubble\', \'scatter\'].indexOf($ctrl.options.globalSeriesType) === -1" class="checkbox">\n <label class="control-label">\n <input type="checkbox" ng-model="$ctrl.options.missingValuesAsZero"> Treat missing/null values as 0\n </label>\n </div>\n </div>\n </div>\n\n <div ng-if="$ctrl.options.globalSeriesType == \'custom\'">\n <div class="form-group">\n <label class="control-label">Custom code</label>\n <textarea ng-model="$ctrl.options.customCode" ng-model-options="{ debounce: 300 }" class="form-control v-resizable" rows="10">\n </textarea>\n </div>\n\n <div class="checkbox">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.enableConsoleLogs">\n <i class="input-helper"></i> Show errors in the console\n </label>\n </div>\n\n <div class="checkbox">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.autoRedraw">\n <i class="input-helper"></i> Auto update graph\n </label>\n </div>\n </div>\n\n <div ng-if="$ctrl.currentTab == \'xAxis\'" class="m-t-10 m-b-10">\n <div class="form-group">\n <label class="control-label">Scale</label>\n <ui-select ng-model="$ctrl.options.xAxis.type">\n <ui-select-match placeholder="Choose Scale...">{{$select.selected.label}}</ui-select-match>\n <ui-select-choices repeat="scaleType.value as scaleType in $ctrl.xAxisScales">\n <div ng-bind-html="scaleType.label | highlight: $select.search"></div>\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div class="form-group">\n <label class="control-label">Name</label>\n <input ng-model="$ctrl.options.xAxis.title.text" type="text" class="form-control">\n </div>\n\n <div class="checkbox">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.sortX">\n <i class="input-helper"></i> Sort Values\n </label>\n </div>\n\n <div class="checkbox">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.reverseX">\n <i class="input-helper"></i> Reverse Order\n </label>\n </div>\n\n <div class="checkbox">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.xAxis.labels.enabled">\n <i class="input-helper"></i> Show Labels\n </label>\n </div>\n </div>\n\n <div ng-if="$ctrl.currentTab == \'yAxis\'" class="m-t-10 m-b-10">\n <div ng-repeat="yAxis in $ctrl.options.yAxis">\n <h4>{{$index == 0 ? \'Left\' : \'Right\'}} Y Axis</h4>\n\n <div class="form-group">\n <label class="control-label">Scale</label>\n <ui-select ng-model="yAxis.type">\n <ui-select-match placeholder="Choose Scale...">{{$select.selected | capitalize}}</ui-select-match>\n <ui-select-choices repeat="scaleType in $ctrl.yAxisScales">\n <div ng-bind-html="scaleType | capitalize | highlight: $select.search"></div>\n </ui-select-choices>\n </ui-select>\n </div>\n <div class="form-group">\n <label class="control-label">Name</label>\n <input ng-model="yAxis.title.text" type="text" class="form-control">\n </div>\n <div class="form-group">\n <label class="control-label">Min Value</label>\n <input ng-model="yAxis.rangeMin" type="number" step="any" placeholder="Auto" class="form-control">\n </div>\n <div class="form-group">\n <label class="control-label">Max Value</label>\n <input ng-model="yAxis.rangeMax" type="number" step="any" placeholder="Auto" class="form-control">\n </div>\n\n <div class="checkbox" ng-if="$ctrl.options.globalSeriesType == \'heatmap\'">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.sortY">\n <i class="input-helper"></i> Sort Values\n </label>\n </div>\n\n <div class="checkbox">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.reverseY">\n <i class="input-helper"></i> Reverse Order\n </label>\n </div>\n\n </div>\n </div>\n\n <div ng-if="$ctrl.currentTab == \'series\'" class="m-t-10 m-b-10">\n <table class="table table-condensed col-table">\n <thead>\n <th style="width: 1%;">zIndex</th>\n <th ng-if="$ctrl.options.globalSeriesType != \'pie\'">Left Y Axis</th>\n <th ng-if="$ctrl.options.globalSeriesType != \'pie\'">Right Y Axis</th>\n <th>Label</th>\n <th ng-if="$ctrl.options.globalSeriesType != \'pie\'">Type</th>\n </thead>\n <tbody ui-sortable ng-model="$ctrl.form.seriesList">\n <tr ng-repeat="name in $ctrl.form.seriesList">\n <td style="width: 1%; cursor: move;">\n <i class="fa fa-arrows-v"></i>\n <span ng-bind="$ctrl.options.seriesOptions[name].zIndex + 1"></span>\n </td>\n <td ng-if="$ctrl.options.globalSeriesType != \'pie\'">\n <input type="radio" ng-value="0" ng-model="$ctrl.options.seriesOptions[name].yAxis">\n </td>\n <td ng-if="$ctrl.options.globalSeriesType != \'pie\'">\n <input type="radio" ng-value="1" ng-model="$ctrl.options.seriesOptions[name].yAxis">\n </td>\n <td style="padding: 3px; width: 140px;">\n <input\n placeholder="{{name}}"\n class="form-control input-sm super-small-input" type="text"\n ng-model="$ctrl.options.seriesOptions[name].name"\n >\n </td>\n <td ng-if="$ctrl.options.globalSeriesType != \'pie\'" style="padding: 3px; width: 105px;">\n <ui-select ng-model="$ctrl.options.seriesOptions[name].type">\n <ui-select-match placeholder="Chart Type">\n <div>\n <i class="fa fa-{{$select.selected.value.icon}}"></i>\n {{$select.selected.value.name}}\n </div>\n </ui-select-match>\n <ui-select-choices repeat="info.chartType as (chartType, info) in $ctrl.chartTypes">\n <div>\n <i class="fa fa-{{info.value.icon}}"></i>\n <span> </span>\n <span ng-bind-html="info.value.name | highlight: $select.search"></span>\n </div>\n </ui-select-choices>\n </ui-select>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div ng-if="($ctrl.currentTab == \'colors\') && ([\'pie\', \'heatmap\'].indexOf($ctrl.options.globalSeriesType) == -1)" class="m-t-10 m-b-10">\n <table class="table table-condensed col-table">\n <tbody>\n <tr ng-repeat="name in $ctrl.form.seriesList">\n <td style="padding: 3px; width: 140px;">\n <div>{{ name }}</div>\n </td>\n <td style="padding: 3px; width: 35px;">\n <ui-select ng-model="$ctrl.options.seriesOptions[name].color">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div ng-if="($ctrl.currentTab == \'colors\') && ($ctrl.options.globalSeriesType == \'heatmap\')" class="m-t-10 m-b-10">\n <div class="form-group" ng-if="$ctrl.options.globalSeriesType == \'heatmap\'">\n <label class="control-label">Color Scheme</label>\n\n <ui-select ng-model="$ctrl.options.colorScheme">\n <ui-select-match allow-clear="true" placeholder="Choose Color Scheme...">{{$select.selected | capitalize}}</ui-select-match>\n <ui-select-choices repeat="value in $ctrl.colorScheme">\n <div ng-bind-html="value | highlight: $select.search"></div>\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group" ng-if="$ctrl.options.colorScheme == \'Custom...\'">\n <label class="control-label">Min Color</label>\n <ui-select ng-model="$ctrl.options.heatMinColor">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n <div class="col-xs-6">\n <div class="form-group" ng-if="$ctrl.options.colorScheme == \'Custom...\'">\n <label class="control-label">Max Color</label>\n <ui-select ng-model="$ctrl.options.heatMaxColor">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-if="($ctrl.currentTab == \'colors\') && ($ctrl.options.globalSeriesType == \'pie\')" class="m-t-10 m-b-10">\n <table class="table table-condensed col-table">\n <tbody>\n <tr ng-repeat="name in $ctrl.form.valuesList">\n <td style="padding: 3px; width: 140px;">\n <div>{{ name }}</div>\n </td>\n <td style="padding: 3px; width: 35px;">\n <ui-select ng-model="$ctrl.options.valuesOptions[name].color">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div ng-if="$ctrl.currentTab == \'dataLabels\'" class="m-t-10 m-b-10">\n <div ng-if="[\'line\', \'area\', \'column\', \'scatter\', \'pie\', \'heatmap\'].indexOf($ctrl.options.globalSeriesType) >= 0" class="checkbox">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.showDataLabels"> Show Data Labels</label>\n </div>\n\n <div class="form-group">\n <label for="chart-editor-number-format">\n Number Values Format\n <span class="m-l-5" uib-popover-html="\'Format <a href="https://redash.io/help/user-guide/visualizations/formatting-numbers" target="_blank">specs.</a>\'"\n popover-trigger="\'click outsideClick\'">\n <i class="fa fa-question-circle"></i>\n </span>\n </label>\n <input\n class="form-control" ng-model="$ctrl.options.numberFormat"\n ng-model-options="{ allowInvalid: true, debounce: 200 }" id="chart-editor-number-format"\n >\n </div>\n\n <div class="form-group">\n <label for="chart-editor-percent-format">\n Percent Values Format\n <span class="m-l-5" uib-popover-html="\'Format <a href="https://redash.io/help/user-guide/visualizations/formatting-numbers" target="_blank">specs.</a>\'"\n popover-trigger="\'click outsideClick\'">\n <i class="fa fa-question-circle"></i>\n </span>\n </label>\n <input\n class="form-control" ng-model="$ctrl.options.percentFormat"\n ng-model-options="{ allowInvalid: true, debounce: 200 }" id="chart-editor-percent-format"\n >\n </div>\n\n <div class="form-group">\n <label for="chart-editor-datetime-format">\n Date/Time Values Format\n <span class="m-l-5" uib-popover-html="\'Format <a href="https://momentjs.com/docs/#/displaying/format/" target="_blank">specs.</a>\'"\n popover-trigger="\'click outsideClick\'">\n <i class="fa fa-question-circle"></i>\n </span>\n </label>\n <input\n class="form-control" ng-model="$ctrl.options.dateTimeFormat"\n ng-model-options="{ allowInvalid: true, debounce: 200 }" id="chart-editor-datetime-format"\n >\n </div>\n\n <div class="form-group">\n <label for="chart-editor-text">\n Data Labels\n <i class="fa fa-question-circle m-l-5" uib-popover-html="$ctrl.templateHint"\n popover-trigger="\'click outsideClick\'" popover-placement="top-left"></i>\n </label>\n <input class="form-control" ng-model="$ctrl.options.textFormat"\n ng-model-options="{ allowInvalid: true, debounce: 200 }" id="chart-editor-text"\n placeholder="(auto)"\n >\n </div>\n </div>\n</div>\n'},function(e,t){e.exports='<div class="map-visualization-container">\n <div resize-event="handleResize()" ng-style="{ background: $ctrl.options.colors.background }"></div>\n <div ng-if="$ctrl.options.legend.visible && ($ctrl.legendItems.length > 0)"\n class="leaflet-bar map-custom-control" ng-class="$ctrl.options.legend.position"\n >\n <div ng-repeat="item in $ctrl.legendItems" class="d-flex align-items-center">\n <color-box color="item.color" class="m-0" style="line-height: 1px"></color-box>\n <div class="flex-fill text-{{ $ctrl.options.legend.alignText }}">{{ $ctrl.formatValue(item.limit) }}</div>\n </div>\n </div>\n</div>\n'},function(e,t){e.exports='<div>\n <ul class="tab-nav">\n <li ng-class="{active: $ctrl.currentTab == \'general\'}">\n <a ng-click="$ctrl.setCurrentTab(\'general\')">General</a>\n </li>\n <li ng-class="{active: $ctrl.currentTab == \'colors\'}">\n <a ng-click="$ctrl.setCurrentTab(\'colors\')">Colors</a>\n </li>\n <li ng-class="{active: $ctrl.currentTab == \'bounds\'}">\n <a ng-click="$ctrl.setCurrentTab(\'bounds\')">Bounds</a>\n </li>\n </ul>\n <div ng-if="$ctrl.currentTab == \'general\'" class="m-t-10 m-b-10">\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group">\n <label>Map Type</label>\n <select ng-options="key as value for (key, value) in $ctrl.mapTypes"\n ng-model="$ctrl.options.mapType" class="form-control"></select>\n </div>\n </div>\n </div>\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group">\n <label>Key column</label>\n <select ng-options="col.name as col.name for col in $ctrl.data.columns"\n ng-model="$ctrl.options.countryCodeColumn" class="form-control"></select>\n </div>\n </div>\n <div class="col-xs-6">\n <div class="form-group">\n <label>Key type</label>\n <select ng-options="key as value for (key, value) in $ctrl.countryCodeTypes"\n ng-model="$ctrl.options.countryCodeType" class="form-control"></select>\n </div>\n </div>\n </div>\n\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group">\n <label>Value column</label>\n <select ng-options="col.name as col.name for col in $ctrl.data.columns"\n ng-model="$ctrl.options.valueColumn" class="form-control"></select>\n </div>\n </div>\n\n <div class="col-xs-6">\n <div class="form-group">\n <label for="legend-value-format">\n Value format\n <span class="m-l-5"\n uib-popover-html="\'Format <a href="https://redash.io/help/user-guide/visualizations/formatting-numbers" target="_blank">specs.</a>\'"\n popover-trigger="\'click outsideClick\'"><i class="fa fa-question-circle"></i></span>\n </label>\n <input class="form-control" id="legend-value-format"\n ng-model="$ctrl.options.valueFormat" ng-model-options="{ allowInvalid: true, debounce: 200 }">\n </div>\n </div>\n\n <div class="col-xs-6">\n <div class="form-group">\n <label for="legend-value-placeholder">Value placeholder</label>\n <input class="form-control" id="legend-value-placeholder"\n ng-model="$ctrl.options.noValuePlaceholder" ng-model-options="{ allowInvalid: true, debounce: 200 }">\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <label><input type="checkbox" ng-model="$ctrl.options.legend.visible"> Show legend</label>\n </div>\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group">\n <label for="legend-position">Legend position</label>\n <select class="form-control" id="legend-position"\n ng-options="key as value for (key, value) in $ctrl.legendPositions"\n ng-model="$ctrl.options.legend.position"\n ng-disabled="!$ctrl.options.legend.visible"\n ></select>\n </div>\n </div>\n <div class="col-xs-6">\n <div class="form-group">\n <label for="legend-position">Legend text alignment</label>\n <div class="btn-group d-flex">\n <button type="button" class="btn btn-default btn-md flex-fill"\n ng-click="$ctrl.options.legend.alignText = \'left\'"\n ng-class="{active: $ctrl.options.legend.alignText == \'left\'}"><i class="fa fa-align-left"></i></button>\n <button type="button" class="btn btn-default btn-md flex-fill"\n ng-click="$ctrl.options.legend.alignText = \'center\'"\n ng-class="{active: $ctrl.options.legend.alignText == \'center\'}"><i class="fa fa-align-center"></i></button>\n <button type="button" class="btn btn-default btn-md flex-fill"\n ng-click="$ctrl.options.legend.alignText = \'right\'"\n ng-class="{active: $ctrl.options.legend.alignText == \'right\'}"><i class="fa fa-align-right"></i></button>\n </div>\n </div>\n </div>\n </div>\n\n <label><input type="checkbox" ng-model="$ctrl.options.tooltip.enabled"> Show tooltip</label>\n <div class="form-group">\n <label for="tooltip-template">Tooltip template</label>\n <input class="form-control" id="tooltip-template"\n ng-model="$ctrl.options.tooltip.template" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n ng-disabled="!$ctrl.options.tooltip.enabled">\n </div>\n\n <label><input type="checkbox" ng-model="$ctrl.options.popup.enabled"> Show popup</label>\n <div class="form-group">\n <label for="popup-template">Popup template</label>\n <textarea class="form-control resize-vertical" id="popup-template" rows="3"\n ng-model="$ctrl.options.popup.template" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n ng-disabled="!$ctrl.options.popup.enabled"></textarea>\n </div>\n\n <div class="form-group">\n <label class="ui-sortable-bypass text-muted" style="font-weight: normal; cursor: pointer;"\n uib-popover-html="$ctrl.templateHint"\n popover-trigger="\'click outsideClick\'" popover-placement="top-left">\n Format specs <i class="fa fa-question-circle m-l-5"></i>\n </label>\n </div>\n </div>\n\n <div ng-if="$ctrl.currentTab == \'colors\'" class="m-t-10 m-b-10">\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group">\n <label>Steps</label>\n <input type="number" min="3" max="11" class="form-control"\n ng-model="$ctrl.options.steps">\n </div>\n </div>\n <div class="col-xs-6">\n <div class="form-group">\n <label>Clustering mode</label>\n <select ng-options="key as value for (key, value) in $ctrl.clusteringModes"\n ng-model="$ctrl.options.clusteringMode" class="form-control"></select>\n </div>\n </div>\n </div>\n\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group">\n <label>Min color</label>\n <ui-select ng-model="$ctrl.options.colors.min">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n <span ng-bind-html="$select.selected.key | capitalize"></span>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n\n <div class="col-xs-6">\n <div class="form-group">\n <label>Max color</label>\n <ui-select ng-model="$ctrl.options.colors.max">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n <span ng-bind-html="$select.selected.key | capitalize"></span>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n\n <div class="col-xs-6">\n <div class="form-group">\n <label>No value color</label>\n <ui-select ng-model="$ctrl.options.colors.noValue">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n <span ng-bind-html="$select.selected.key | capitalize"></span>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n </div>\n\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group">\n <label>Background color</label>\n <ui-select ng-model="$ctrl.options.colors.background">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n <span ng-bind-html="$select.selected.key | capitalize"></span>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n\n <div class="col-xs-6">\n <div class="form-group">\n <label>Borders color</label>\n <ui-select ng-model="$ctrl.options.colors.borders">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n <span ng-bind-html="$select.selected.key | capitalize"></span>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-if="$ctrl.currentTab == \'bounds\'" class="m-t-10 m-b-10">\n <div class="form-group">\n <label>North-East latitude and longitude</label>\n <div class="row">\n <div class="col-xs-6">\n <input class="form-control" type="text"\n ng-model="$ctrl.options.bounds[1][0]" ng-model-options="{ allowInvalid: true, debounce: 200 }">\n </div>\n <div class="col-xs-6">\n <input class="form-control" type="text"\n ng-model="$ctrl.options.bounds[1][1]" ng-model-options="{ allowInvalid: true, debounce: 200 }">\n </div>\n </div>\n </div>\n\n <div class="form-group">\n <label>South-West latitude and longitude</label>\n <div class="row">\n <div class="col-xs-6">\n <input class="form-control" type="text"\n ng-model="$ctrl.options.bounds[0][0]" ng-model-options="{ allowInvalid: true, debounce: 200 }">\n </div>\n <div class="col-xs-6">\n <input class="form-control" type="text"\n ng-model="$ctrl.options.bounds[0][1]" ng-model-options="{ allowInvalid: true, debounce: 200 }">\n </div>\n </div>\n </div>\n </div>\n</div>\n'},function(e,t,n){e.exports=n.p+"data/0962607.countries.geo.json"},function(e,t,n){e.exports=n.p+"data/650f3ee.japan.prefectures.geo.json"},function(e,t){e.exports='<ul class="tab-nav">\n <li ng-class="{active: $ctrl.currentTab == \'columns\'}">\n <a ng-click="$ctrl.setCurrentTab(\'columns\')">Columns</a>\n </li>\n <li ng-class="{active: $ctrl.currentTab == \'options\'}">\n <a ng-click="$ctrl.setCurrentTab(\'options\')">Options</a>\n </li>\n</ul>\n\n<div ng-if="$ctrl.currentTab == \'options\'" class="m-t-10 m-b-10">\n <div class="form-group">\n <label class="control-label">Time Interval</label>\n <select class="form-control" ng-model="$ctrl.options.timeInterval">\n <option value="daily">Daily</option>\n <option value="weekly">Weekly</option>\n <option value="monthly">Monthly</option>\n </select>\n </div>\n\n <div class="form-group">\n <label class="control-label">Mode</label>\n <select class="form-control" ng-model="$ctrl.options.mode">\n <option value="diagonal">Fill gaps with zeros</option>\n <option value="simple">Show data as is</option>\n </select>\n </div>\n</div>\n\n<div ng-if="$ctrl.currentTab == \'columns\'" class="m-t-10 m-b-10">\n <div class="form-group">\n <label class="control-label">Date (Bucket)</label>\n <select class="form-control" ng-model="$ctrl.options.dateColumn"\n ng-options="col.name as col.name for col in $ctrl.data.columns"></select>\n </div>\n\n <div class="form-group">\n <label class="control-label">Stage</label>\n <select class="form-control" ng-model="$ctrl.options.stageColumn"\n ng-options="col.name as col.name for col in $ctrl.data.columns"></select>\n </div>\n\n <div class="form-group">\n <label class="control-label">Bucket Population Size</label>\n <select class="form-control" ng-model="$ctrl.options.totalColumn"\n ng-options="col.name as col.name for col in $ctrl.data.columns"></select>\n </div>\n\n <div class="form-group">\n <label class="control-label">Stage Value</label>\n <select class="form-control" ng-model="$ctrl.options.valueColumn"\n ng-options="col.name as col.name for col in $ctrl.data.columns"></select>\n </div>\n</div>\n'},function(e,t){e.exports='<div class="form-horizontal">\n <div style="margin-bottom: 20px;">\n This visualization constructs funnel chart. Please notice that value column only accept number for values.\n </div>\n <div class="form-group">\n <label class="col-lg-6">Step Column Name</label>\n <div class="col-lg-6">\n <select ng-options="col.name as col.name for col in $ctrl.data.columns"\n ng-model="$ctrl.options.stepCol.colName" class="form-control"></select>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-6">Step Column Display Name</label>\n <div class="col-lg-6">\n <input type="text" ng-model="$ctrl.options.stepCol.displayAs" class="form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-6">Funnel Value Column Name</label>\n <div class="col-lg-6">\n <select ng-options="col.name as col.name for col in $ctrl.data.columns"\n ng-model="$ctrl.options.valueCol.colName" class="form-control"></select>\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-6">Funnel Value Column Display Name</label>\n <div class="col-lg-6">\n <input type="text" ng-model="$ctrl.options.valueCol.displayAs" class="form-control">\n </div>\n </div>\n <div class="form-group">\n <label class="col-lg-6">Auto Sort Record By Value</label>\n <div class="col-lg-6">\n <input type="checkbox" ng-model="$ctrl.options.autoSort">\n </div>\n </div>\n <div ng-show="!$ctrl.options.autoSort">\n <div class="form-group">\n <label class="col-lg-6">Funnel Value Columns Name</label>\n <div class="col-lg-6">\n <select ng-options="col.name as col.name for col in $ctrl.data.columns"\n ng-model="$ctrl.options.sortKeyCol.colName" class="form-control"></select>\n </div>\n </div>\n </div>\n</div>\n'},,,,function(e,t){e.exports='<div class="map-visualization-container">\n <div resize-event="handleResize()"></div>\n</div>\n'},function(e,t){e.exports='<div>\n <ul class="tab-nav">\n <li ng-class="{active: $ctrl.currentTab == \'general\'}"><a ng-click="$ctrl.setCurrentTab(\'general\')">General</a></li>\n <li ng-class="{active: $ctrl.currentTab == \'groups\'}"><a ng-click="$ctrl.setCurrentTab(\'groups\')">Groups</a></li>\n <li ng-class="{active: $ctrl.currentTab == \'style\'}"><a ng-click="$ctrl.setCurrentTab(\'style\')">Style</a></li>\n </ul>\n\n <div ng-show="$ctrl.currentTab == \'general\'" class="m-t-10 m-b-10">\n <div class="form-group">\n <label class="control-label">Latitude Column Name</label>\n <ui-select name="form-control" required ng-model="$ctrl.options.latColName">\n <ui-select-match placeholder="Choose column...">{{$select.selected}}</ui-select-match>\n <ui-select-choices repeat="column in $ctrl.columnNames | remove:$ctrl.options.classify | remove:$ctrl.options.lonColName">\n <span ng-bind-html="column | highlight: $select.search"></span><span> </span>\n <small class="text-muted" ng-bind="$ctrl.columns[column].type"></small>\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div class="form-group">\n <label class="control-label">Longitude Column Name</label>\n <ui-select name="form-control" required ng-model="$ctrl.options.lonColName">\n <ui-select-match placeholder="Choose column...">{{$select.selected}}</ui-select-match>\n <ui-select-choices repeat="column in $ctrl.columnNames | remove:$ctrl.options.classify | remove:$ctrl.options.latColName">\n <span ng-bind-html="column | highlight: $select.search"></span><span> </span>\n <small class="text-muted" ng-bind="$ctrl.columns[column].type"></small>\n </ui-select-choices>\n </ui-select>\n </div>\n\n <div class="form-group">\n <label class="control-label">Group By</label>\n <ui-select name="form-control" required ng-model="$ctrl.options.classify">\n <ui-select-match placeholder="Choose column...">{{$select.selected}}</ui-select-match>\n <ui-select-choices repeat="column in $ctrl.classifyColumns | remove:$ctrl.options.lonColName | remove:$ctrl.options.latColName">\n <span ng-bind-html="column | highlight: $select.search"></span><span> </span>\n <small class="text-muted" ng-bind="$ctrl.columns[column].type"></small>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n\n <div ng-show="$ctrl.currentTab == \'groups\'" class="m-b-10">\n <table class="table table-condensed col-table">\n <thead>\n <th>Name</th>\n <th>Color</th>\n </thead>\n <tbody>\n <tr ng-repeat="(name, options) in $ctrl.options.groups">\n <td>{{name}}</td>\n <td>\n <input class="form-control" type="color" ng-model="options.color"/>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div ng-show="$ctrl.currentTab == \'style\'" class="m-t-10 m-b-10">\n <h4>Tile</h4>\n\n <div class="checkbox">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.clusterMarkers">\n <i class="input-helper"></i> Cluster Markers\n </label>\n </div>\n\n <div class="form-group">\n <label class="control-label">Map Tiles</label>\n <select ng-options="tile.url as tile.name for tile in $ctrl.mapTiles"\n ng-model="$ctrl.options.mapTileUrl" class="form-control"></select>\n </div>\n\n <h4>Marker</h4>\n\n <div class="checkbox">\n <label>\n <input type="checkbox" ng-model="$ctrl.options.customizeMarkers">\n <i class="input-helper"></i>Override default style\n </label>\n </div>\n\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group">\n <label>Shape</label>\n <ui-select ng-model="$ctrl.options.iconShape"\n ng-disabled="!$ctrl.options.customizeMarkers">\n <ui-select-match>{{$select.selected.value}}</ui-select-match>\n <ui-select-choices repeat="shapes.key as (key, shapes) in $ctrl.iconShapes">\n {{shapes.value}}\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n <div class="col-xs-6">\n <div class="form-group">\n <label>Icon Font\n <span class="m-1-5" uib-popover-html="\'Enter an icon name from<br/><a href="https://fontawesome.com/v4.7.0/icons/" target="_blank">Font-Awesome 4.7.</a><br/>(e.g. check, times-circle, flag)<br/>Leave blank to remove.\'"\n popover-trigger="\'click outsideClick\'">\n <i class="fa fa-question-circle"></i>\n </span>\n </label>\n <input ng-model="$ctrl.options.iconFont" type="text" class="form-control"\n ng-disabled="!$ctrl.options.customizeMarkers"></select>\n </div>\n </div>\n </div>\n\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group">\n <label class="control-label">Foreground Color</label>\n <ui-select ng-model="$ctrl.options.foregroundColor"\n ng-disabled="!$ctrl.options.customizeMarkers">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n <span ng-bind-html="$select.selected.key | capitalize"></span>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n <div class="col-xs-6">\n <div class="form-group">\n <label class="control-label">Background Color</label>\n <ui-select ng-model="$ctrl.options.backgroundColor"\n ng-disabled="!$ctrl.options.customizeMarkers">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n <span ng-bind-html="$select.selected.key | capitalize"></span>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n </div>\n\n <div class="row">\n <div class="col-xs-6">\n <div class="form-group">\n <label class="control-label">Border Color</label>\n <ui-select ng-model="$ctrl.options.borderColor"\n ng-disabled="!$ctrl.options.customizeMarkers">\n <ui-select-match>\n <color-box color="$select.selected.value"></color-box>\n <span ng-bind-html="$select.selected.key | capitalize"></span>\n </ui-select-match>\n <ui-select-choices repeat="color.value as (key, color) in $ctrl.colors">\n <color-box color="color.value"></color-box>\n <span ng-bind-html="color.key | capitalize | highlight: $select.search"></span>\n </ui-select-choices>\n </ui-select>\n </div>\n </div>\n </div>\n </div>\n</div>\n'},function(e,t){e.exports='<div class="table-editor-container">\n <ul class="tab-nav">\n <li ng-class="{active: $ctrl.currentTab == \'columns\'}" ng-if="$ctrl.options.globalSeriesType != \'custom\'">\n <a ng-click="$ctrl.setCurrentTab(\'columns\')">Columns</a>\n </li>\n <li ng-class="{active: $ctrl.currentTab == \'grid\'}">\n <a ng-click="$ctrl.setCurrentTab(\'grid\')">Grid</a>\n </li>\n </ul>\n\n <div ng-if="$ctrl.currentTab == \'grid\'" class="m-t-10 m-b-10">\n <div class="form-group">\n <label>Items per page</label>\n <select ng-options="value for value in $ctrl.allowedItemsPerPage"\n ng-model="$ctrl.options.itemsPerPage" class="form-control">\n </select>\n </div>\n </div>\n\n <div ng-if="$ctrl.currentTab == \'columns\'" class="table-editor-query-columns m-t-10 m-b-10"\n ui-sortable ng-model="$ctrl.options.columns">\n <div ng-repeat="column in $ctrl.options.columns">\n <div class="table-editor-column-header form-group">\n <div class="input-group">\n <span class="input-group-addon"><input type="checkbox" ng-model="column.visible"></span>\n <input class="form-control" ng-model="column.title" ng-model-options="{ allowInvalid: true, debounce: 200 }">\n </div>\n </div>\n <div class="form-group">\n <div class="btn-group btn-group-justified">\n <button type="button" class="btn btn-default btn-xs"\n ng-click="column.alignContent = \'left\'"\n ng-class="{active: column.alignContent == \'left\'}"><i class="fa fa-align-left"></i></button>\n <button type="button" class="btn btn-default btn-xs"\n ng-click="column.alignContent = \'center\'"\n ng-class="{active: column.alignContent == \'center\'}"><i class="fa fa-align-center"></i></button>\n <button type="button" class="btn btn-default btn-xs"\n ng-click="column.alignContent = \'right\'"\n ng-class="{active: column.alignContent == \'right\'}"><i class="fa fa-align-right"></i></button>\n </div>\n </div>\n\n <div class="form-group">\n <label class="ui-sortable-bypass"><input type="checkbox" ng-model="column.allowSearch"> Use for search</label>\n </div>\n\n <div class="form-group">\n <label>Display as:</label>\n <select ng-options="item.value as item.name for item in $ctrl.displayAsOptions"\n ng-model="column.displayAs" class="form-control">\n </select>\n </div>\n\n <div ng-if="column.displayAs == \'string\'">\n <div class="form-group">\n <label class="ui-sortable-bypass"><input type="checkbox" ng-model="column.allowHTML"> Allow HTML content</label>\n </div>\n <div ng-if="column.allowHTML" class="form-group">\n <label class="ui-sortable-bypass"><input type="checkbox" ng-model="column.highlightLinks"> Highlight links</label>\n </div>\n </div>\n\n <div ng-if="column.displayAs == \'number\'">\n <div class="form-group">\n <label for="table-editor-{{ column.name }}-number-format">\n Number format\n <span class="m-l-5"\n uib-popover-html="\'Format <a href="https://redash.io/help/user-guide/visualizations/formatting-numbers" target="_blank">specs.</a>\'"\n popover-trigger="\'click outsideClick\'"><i class="fa fa-question-circle"></i></span>\n </label>\n <input class="form-control" ng-model="column.numberFormat" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n id="table-editor-{{ column.name }}-number-format">\n </div>\n </div>\n\n <div ng-if="column.displayAs == \'datetime\'">\n <div class="form-group">\n <label for="table-editor-{{ column.name }}-datetime-format">\n Date/Time format\n <span class="m-l-5"\n uib-popover-html="\'Format <a href="https://momentjs.com/docs/#/displaying/format/" target="_blank">specs.</a>\'"\n popover-trigger="\'click outsideClick\'"><i class="fa fa-question-circle"></i></span>\n </label>\n <input class="form-control" ng-model="column.dateTimeFormat" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n id="table-editor-{{ column.name }}-datetime-format">\n </div>\n </div>\n\n <div ng-if="column.displayAs == \'boolean\'">\n <div class="form-group">\n <label for="table-editor-{{ column.name }}-boolean-false">Value for <code>false</code></label>\n <input class="form-control" ng-model="column.booleanValues[0]" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n id="table-editor-{{ column.name }}-boolean-false">\n </div>\n <div class="form-group">\n <label for="table-editor-{{ column.name }}-boolean-true">Value for <code>true</code></label>\n <input class="form-control" ng-model="column.booleanValues[1]" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n id="table-editor-{{ column.name }}-boolean-true">\n </div>\n </div>\n\n <div ng-if="column.displayAs == \'image\'">\n <div class="form-group">\n <label for="table-editor-{{ column.name }}-image-url-template">URL template</label>\n <input class="form-control" ng-model="column.imageUrlTemplate" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n id="table-editor-{{ column.name }}-image-url-template">\n </div>\n\n <div class="form-group">\n <label>\n Size\n <span class="m-l-5"\n uib-popover-html="\'Any positive integer value that specifies size in pixels. Leave empty to use default value.\'"\n popover-trigger="\'click outsideClick\'" popover-placement="top-left"><i class="fa fa-question-circle"></i></span>\n </label>\n <div class="d-flex">\n <input class="form-control" ng-model="column.imageWidth" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n placeholder="Width">\n <span class="form-control-static m-l-5 m-r-5">×</span>\n <input class="form-control" ng-model="column.imageHeight" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n placeholder="Height">\n </div>\n </div>\n\n <div class="form-group">\n <label for="table-editor-{{ column.name }}-image-title-template">Title template</label>\n <input class="form-control" ng-model="column.imageTitleTemplate" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n id="table-editor-{{ column.name }}-image-title-template">\n </div>\n\n <div class="form-group">\n <label class="ui-sortable-bypass text-muted" style="font-weight: normal; cursor: pointer;"\n uib-popover-html="templateHint"\n popover-trigger="\'click outsideClick\'" popover-placement="top-left">\n Format specs <i class="fa fa-question-circle m-l-5"></i>\n </label>\n </div>\n </div>\n\n <div ng-if="column.displayAs == \'link\'">\n <div class="form-group">\n <label for="table-editor-{{ column.name }}-link-url-template">URL template</label>\n <input class="form-control" ng-model="column.linkUrlTemplate" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n id="table-editor-{{ column.name }}-link-url-template">\n </div>\n\n <div class="form-group">\n <label for="table-editor-{{ column.name }}-link-text-template">Text template</label>\n <input class="form-control" ng-model="column.linkTextTemplate" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n id="table-editor-{{ column.name }}-link-text-template">\n </div>\n\n <div class="form-group">\n <label for="table-editor-{{ column.name }}-link-title-template">Title template</label>\n <input class="form-control" ng-model="column.linkTitleTemplate" ng-model-options="{ allowInvalid: true, debounce: 200 }"\n id="table-editor-{{ column.name }}-link-title-template">\n </div>\n\n <div class="form-group">\n <label class="ui-sortable-bypass"><input type="checkbox" ng-model="column.linkOpenInNewTab"> Open in new tab</label>\n </div>\n\n <div class="form-group">\n <label class="ui-sortable-bypass text-muted" style="font-weight: normal; cursor: pointer;"\n uib-popover-html="templateHint"\n popover-trigger="\'click outsideClick\'" popover-placement="top-left">\n Format specs <i class="fa fa-question-circle m-l-5"></i>\n </label>\n </div>\n </div>\n </div>\n </div>\n</div>\n'},,function(e,t){e.exports='<div class="container">\n <page-header title="$ctrl.alert.name || $ctrl.getDefaultName() || \'New Alert\'"></page-header>\n\n <email-settings-warning feature-name="\'alert emails\'"></email-settings-warning>\n\n <div class="container">\n <div class="row bg-white tiled p-10">\n <div class="col-md-8">\n <form name="alertForm" class="form">\n <div class="form-group">\n <label>Query</label>\n <query-selector type="\'select\'" selected-query="$ctrl.alert.query" on-change="$ctrl.onQuerySelected" disabled="!$ctrl.canEdit" />\n </div>\n\n <div class="form-group" ng-show="$ctrl.selectedQuery">\n <label>Name</label>\n <input type="string" placeholder="{{$ctrl.getDefaultName()}}" class="form-control" ng-model="$ctrl.alert.name" ng-disabled="!$ctrl.canEdit">\n </div>\n\n <div ng-show="$ctrl.queryResult" class="form-horizontal">\n <div class="form-group">\n <label class="control-label col-md-2">Value column</label>\n <div class="col-md-4">\n <select ng-options="name for name in $ctrl.queryResult.getColumnNames()" ng-model="$ctrl.alert.options.column"\n class="form-control" ng-disabled="!$ctrl.canEdit"></select>\n </div>\n <label class="control-label col-md-2">Value</label>\n <div class="col-md-4">\n <p class="form-control-static">{{$ctrl.queryResult.getData()[0][$ctrl.alert.options.column]}}</p>\n </div>\n </div>\n <div class="form-group">\n <label class="control-label col-md-2">Op</label>\n <div class="col-md-4">\n <select ng-options="name for name in $ctrl.ops" ng-model="$ctrl.alert.options.op" class="form-control" ng-disabled="!$ctrl.canEdit"></select>\n </div>\n <label class="control-label col-md-2">Reference</label>\n <div class="col-md-4">\n <input type="number" step="any" class="form-control" ng-model="$ctrl.alert.options.value" placeholder="reference value" ng-disabled="!$ctrl.canEdit"\n required/>\n </div>\n </div>\n <div class="form-group">\n <label class="control-label col-md-2">Rearm seconds</label>\n <div class="col-md-4">\n <input type="number" class="form-control" ng-model="$ctrl.alert.rearm" ng-disabled="!$ctrl.canEdit"/>\n </div>\n </div>\n </div>\n <div class="form-group" ng-show="$ctrl.selectedQuery && $ctrl.showExtendedOptions">\n <label>Custom subject</label>\n <input type="string" class="form-control" ng-model="$ctrl.alert.options.subject" ng-disabled="!$ctrl.canEdit">\n </div>\n <div ng-show="$ctrl.selectedQuery && $ctrl.showExtendedOptions">\n <div class="form-group" ng-show="$ctrl.selectedQuery">\n <label>Description template</label>\n <i class="fa fa-question-circle" uib-tooltip="{{$ctrl.alertTemplate.helpMessage}}"></i>\n <div class="row bg-white p-b-5" ng-if="$ctrl.canEdit" resizable r-directions="[\'bottom\']" r-height="300" style="min-height:100px;">\n <div ui-ace="$ctrl.alertTemplate.editorOptions" ng-model="$ctrl.alert.options.template"></div>\n </div>\n </div>\n <div class="form-group" ng-if="$ctrl.canEdit">\n <button class="btn btn-default" ng-click="$ctrl.preview()">Preview</button>\n <label for="show-as-html">Show As HTML</label> \n <input type="checkbox" name="show-as-html" ng-model="$ctrl.showAsHTML">\n </div>\n <div class="panel panel-default" ng-if="$ctrl.alert.preview">\n <div class="panel-heading">\n <label for="hide-preview">Hide Preview</label> \n <input type="checkbox" name="hide-preview" ng-model="$ctrl.hidePreview">\n </div>\n <div class="panel-body" ng-if="$ctrl.hidePreview == false">\n <div ng-if="!$ctrl.showAsHTML">\n <div ng-bind-html="$ctrl.alert.preview"></div>\n </div>\n <div ng-if="$ctrl.showAsHTML">\n <div ng-bind-html="$ctrl.alert.previewHTML"></div>\n </div>\n </div>\n <div class="panel-footer"></div>\n </div>\n </div>\n\n <div class="form-group" ng-if="$ctrl.canEdit">\n <button class="btn btn-primary" ng-disabled="!alertForm.$valid" ng-click="$ctrl.saveChanges()">Save</button>\n <button class="btn btn-danger" ng-if="$ctrl.alert.id" ng-click="$ctrl.delete()">Delete</button>\n </div>\n </form>\n </div>\n <div class="col-md-4" ng-if="$ctrl.alert.id">\n <alert-subscriptions alert-id="$ctrl.alert.id"></alert-subscriptions>\n </div>\n </div>\n </div>\n</div>\n'},function(e,t){e.exports='<div class="container">\n <div class="row p-l-15 p-r-15 m-b-10 m-l-0 m-r-0 dashboard-header page-header--new">\n <div class="page-title col-xs-8 col-sm-7 col-lg-7 p-l-0">\n <favorites-control item="$ctrl.dashboard"></favorites-control>\n <h3>\n <edit-in-place class="edit-in-place" is-editable="$ctrl.layoutEditing" on-done="$ctrl.saveName" ignore-blanks="true" value="$ctrl.dashboard.name" editor="\'input\'"></edit-in-place>\n </h3>\n\n <img ng-src="{{$ctrl.dashboard.user.profile_image_url}}" class="profile__image_thumb--dashboard" alt="{{$ctrl.dashboard.user.name}}">\n\n <dashboard-tags-control class="hidden-xs"\n tags="$ctrl.dashboard.tags" is-draft="$ctrl.dashboard.is_draft" is-archived="$ctrl.dashboard.is_archived"\n can-edit="$ctrl.isDashboardOwner" get-available-tags="$ctrl.loadTags" on-edit="$ctrl.saveTags"></dashboard-tags-control>\n\n </div>\n <div class="col-xs-4 col-sm-5 col-lg-5 text-right dashboard__control p-r-0">\n <span ng-if="!$ctrl.dashboard.is_archived && !public" class="hidden-print">\n <div ng-if="$ctrl.layoutEditing" ng-switch="$ctrl.isLayoutDirty">\n <span ng-switch-when="true" ng-switch="$ctrl.saveInProgress || $ctrl.saveDelay">\n <span ng-switch-when="true">\n <span class="save-status" data-saving>Saving</span>\n <button class="btn btn-primary btn-sm" ng-disabled="$ctrl.editBtnClickedWhileSaving" ng-click="$ctrl.editBtnClickedWhileSaving = true">\n <i class="fa fa-check" ng-class="{\'fa-spinner fa-pulse\': $ctrl.editBtnClickedWhileSaving}"></i> Done Editing\n </button>\n </span>\n <span ng-switch-default>\n <span class="save-status" data-error>Saving Failed</span>\n <button class="btn btn-primary btn-sm" ng-click="$ctrl.retrySaveDashboardLayout()">\n Retry\n </button>\n </span>\n </span>\n <span ng-switch-default>\n <span class="save-status">Saved</span>\n <button class="btn btn-primary btn-sm"\n ng-disabled="$ctrl.isGridDisabled"\n ng-click="$ctrl.editLayout(false)">\n <i class="fa fa-check"></i> Done Editing\n </button>\n </span>\n </div>\n\n <button type="button" class="btn btn-default btn-sm" ng-click="$ctrl.togglePublished()" tooltip="Publish Dashboard" ng-if="$ctrl.dashboard.is_draft && !$ctrl.layoutEditing">\n <span class="fa fa-paper-plane"></span> Publish\n </button>\n\n <div class="btn-group" uib-dropdown ng-if="!$ctrl.layoutEditing">\n <button id="split-button" type="button"\n ng-class="{\'btn-default btn-sm\': $ctrl.refreshRate === null,\'btn-primary btn-sm\':$ctrl.refreshRate !== null}"\n class="btn btn-sm" ng-click="$ctrl.refreshDashboard()">\n <i class="zmdi zmdi-refresh" ng-class="{\'zmdi-hc-spin\': $ctrl.refreshInProgress}"></i> {{$ctrl.refreshRate === null ? \'Refresh\' : $ctrl.refreshRate.name}}\n </button>\n <button type="button" class="btn hidden-xs" uib-dropdown-toggle\n ng-class="{\'btn-default btn-sm\': $ctrl.refreshRate === null,\'btn-primary btn-sm\':$ctrl.refreshRate !== null}">\n <span class="caret"></span>\n <span class="sr-only">Split button!</span>\n </button>\n <ul class="dropdown-menu pull-right" ng-model="$ctrl.refreshRate" uib-dropdown-menu role="menu" aria-labelledby="split-button">\n <li role="menuitem" ng-repeat="refreshRate in $ctrl.refreshRates" ng-class="{disabled: !refreshRate.enabled}">\n <a ng-click="$ctrl.setRefreshRate(refreshRate)">{{refreshRate.name}}</a>\n </li>\n <li role="menuitem" ng-if="$ctrl.refreshRate !== null">\n <a href="#" ng-click="$ctrl.setRefreshRate(null)">Stop auto refresh</a>\n </li>\n </ul>\n </div>\n <button type="button" class="btn btn-sm hidden-xs" ng-class="{\'btn-default\': !$ctrl.isFullscreen, \'btn-primary\': $ctrl.isFullscreen}" tooltip="Enable/Disable Fullscreen display" ng-click="$ctrl.toggleFullscreen()" ng-if="!$ctrl.dashboard.is_draft && !$ctrl.layoutEditing">\n <span class="zmdi zmdi-fullscreen"></span>\n </button>\n <button type="button" class="btn btn-sm hidden-xs" ng-class="{\'btn-default\': !$ctrl.dashboard.publicAccessEnabled, \'btn-primary\': $ctrl.dashboard.publicAccessEnabled}" tooltip="Enable/Disable Share URL" ng-click="$ctrl.openShareForm()" ng-if="($ctrl.dashboard.canEdit() || $ctrl.dashboard.publicAccessEnabled) && !$ctrl.dashboard.is_draft && !$ctrl.layoutEditing" data-test="OpenShareForm">\n <span class="zmdi zmdi-share"></span>\n </button>\n </span>\n\n <div class="btn-group hidden-print hidden-xs" role="group" ng-show="$ctrl.dashboard.canEdit()" uib-dropdown ng-if="!$ctrl.dashboard.is_archived && !$ctrl.layoutEditing" data-test="DashboardMoreMenu">\n <button class="btn btn-default btn-sm dropdown-toggle" uib-dropdown-toggle>\n <span class="zmdi zmdi-more"></span>\n </button>\n <ul class="dropdown-menu pull-right" uib-dropdown-menu>\n <li ng-if="!$ctrl.dashboard.is_archived" ng-class="{hidden: $ctrl.isGridDisabled}"><a ng-click="$ctrl.editLayout(true)">Edit</a></li>\n <li ng-if="$ctrl.showPermissionsControl"><a ng-click="$ctrl.showManagePermissionsModal()">Manage Permissions</a></li>\n <li ng-if="!$ctrl.dashboard.is_draft"><a ng-click="$ctrl.togglePublished()">Unpublish</a></li>\n <li ng-if="!$ctrl.dashboard.is_archived"><a ng-click="$ctrl.archiveDashboard()">Archive</a></li>\n </ul>\n </div>\n </div>\n </div>\n\n <div class="m-b-10 p-15 bg-white tiled" ng-if="$ctrl.layoutEditing">\n <label>\n <input name="input" type="checkbox" ng-model="$ctrl.dashboard.dashboard_filters_enabled" ng-change="$ctrl.updateDashboardFiltersState()">\n Use Dashboard Level Filters\n </label>\n </div>\n\n <div class="m-b-10 p-15 bg-white tiled" ng-if="$ctrl.globalParameters.length > 0">\n <parameters parameters="$ctrl.globalParameters" on-values-change="$ctrl.refreshDashboard"></parameters>\n </div>\n\n <div class="m-b-10 p-15 bg-white tiled" ng-if="$ctrl.filters | notEmpty">\n <filters filters="$ctrl.filters" on-change="$ctrl.filtersOnChange"></filters>\n </div>\n\n <div id="dashboard-container">\n <dashboard-grid\n ng-if="$ctrl.dashboard"\n dashboard="$ctrl.dashboard"\n widgets="$ctrl.dashboard.widgets"\n filters="$ctrl.filters"\n is-editing="$ctrl.layoutEditing && !$ctrl.isGridDisabled"\n on-layout-change="$ctrl.onLayoutChange"\n on-breakpoint-change="$ctrl.onBreakpointChanged"\n on-remove-widget="$ctrl.removeWidget"\n />\n </div>\n\n <div class="add-widget-container" ng-if="$ctrl.layoutEditing">\n <h2>\n <i class="zmdi zmdi-widgets"></i>\n <span class="hidden-xs hidden-sm">Widgets are individual query visualizations or text boxes you can place on your dashboard in various arrangements.</span>\n </h2>\n <div>\n <a class="btn btn-default" ng-click="$ctrl.showAddTextboxDialog()">Add Textbox</a>\n <a class="btn btn-primary m-l-10" ng-click="$ctrl.showAddWidgetDialog()">Add Widget</a>\n </div>\n </div>\n</div>\n'},function(e,t){e.exports='<div class="container p-t-10 p-b-20" ng-if="$ctrl.dashboard">\n <page-header title="$ctrl.dashboard.name"></page-header>\n\n <div class="m-b-10 p-15 bg-white tiled" ng-if="$ctrl.globalParameters.length > 0">\n <parameters parameters="$ctrl.globalParameters" on-values-change="$ctrl.refreshDashboard"></parameters>\n </div>\n\n <div class="m-b-5">\n <filters filters="$ctrl.filters" on-change="$ctrl.filtersOnChange"></filters>\n </div>\n\n <div id="dashboard-container">\n <dashboard-grid\n ng-if="$ctrl.dashboard"\n dashboard="$ctrl.dashboard"\n widgets="$ctrl.dashboard.widgets"\n filters="$ctrl.filters"\n is-editing="false"\n is-public="true"\n />\n </div>\n</div>\n\n<big-message ng-if="!$ctrl.dashboard" icon="\'fa-spinner fa-2x fa-pulse\'" message="\'Loading...\'" class-name="\'help-message\'" class="container" style="display: flex; align-items: center; justify-content: center;"></big-message>\n\n<div id="footer">\n <div class="text-center">\n <a href="https://redash.io"><img ng-src="{{$ctrl.logoUrl}}" width="38"/></a>\n </div>\n Powered by <a href="https://redash.io/?ref=public-dashboard">Redash</a>\n</div>\n'},function(e,t){e.exports='<div class="container">\n <div\n ng-if="$ctrl.messages.includes(\'using-deprecated-embed-feature\')"\n class="alert alert-warning"\n >\n You have enabled <code>ALLOW_PARAMETERS_IN_EMBEDS</code>. This setting is\n now deprecated and should be turned off. Parameters in embeds are supported\n by default.\n <a\n href="https://discuss.redash.io/t/support-for-parameters-in-embedded-visualizations/3337"\n target="_blank"\n >Read more</a\n >.\n </div>\n <div\n ng-if="$ctrl.messages.includes(\'email-not-verified\')"\n class="alert alert-warning"\n >\n We have sent an email with a confirmation link to your email address. Please\n follow the link to verify your email address.\n <a ng-click="$ctrl.verifyEmail()">Resend email</a>.\n </div>\n <empty-state\n title="\'Welcome to Redash 👋\'"\n description="\'Connect to any data source, easily visualize and share your data\'"\n illustration="\'dashboard\'"\n help-link="\'https://redash.io/help/user-guide/getting-started\'"\n show-dashboard-step="true"\n show-invite-step="true"\n onboarding-mode="true"\n ></empty-state>\n\n <home-extra></home-extra>\n\n <div class="tile">\n <div class="t-body tb-padding">\n <div class="row">\n <div class="col-sm-6">\n <p class="f-500 m-b-20 c-black">Favorite Dashboards</p>\n\n <p ng-if="$ctrl.noDashboards">\n <span class="btn-favourite">\n <i class="fa fa-star" aria-hidden="true"></i>\n </span>\n Favorite <a href="dashboards">Dashboards</a> will appear here\n </p>\n\n <div class="list-group">\n <a\n ng-href="dashboard/{{ dashboard.slug }}"\n class="list-group-item"\n ng-repeat="dashboard in $ctrl.favoriteDashboards"\n ng-if="dashboard.is_favorite"\n >\n <span class="btn-favourite">\n <i class="fa fa-star" aria-hidden="true"></i>\n </span>\n {{ dashboard.name }}\n <span class="label label-default" ng-if="dashboard.is_draft"\n >Unpublished</span\n >\n </a>\n </div>\n </div>\n\n <div class="col-sm-6">\n <p class="f-500 m-b-20 c-black">Favorite Queries</p>\n <p ng-if="$ctrl.noQueries">\n <span class="btn-favourite">\n <i class="fa fa-star" aria-hidden="true"></i>\n </span>\n Favorite <a href="queries">Queries</a> will appear here\n </p>\n <div class="list-group">\n <a\n ng-href="queries/{{ query.id }}"\n class="list-group-item"\n ng-repeat="query in $ctrl.favoriteQueries"\n ng-if="query.is_favorite"\n >\n <span class="btn-favourite">\n <i class="fa fa-star" aria-hidden="true"></i>\n </span>\n {{ query.name }}\n <span class="label label-default" ng-if="query.is_draft"\n >Unpublished</span\n >\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n <beacon-consent></beacon-consent>\n</div>\n'},function(e,t){e.exports='<div class="modal-header">\n <button type="button" class="close" aria-label="Close" ng-click="$ctrl.close()"><span aria-hidden="true">×</span></button>\n <h4 class="modal-title">Add to Dashboard</h4>\n</div>\n<div class="modal-body">\n <form name="alertForm" class="form">\n <div class="form-group">\n <label>Choose the dashboard to add this query to:</label>\n <ui-select ng-model="$ctrl.dashboardList" reset-search-input="false" on-select="$ctrl.onDashboardSelected($item)" ng-disabled="$ctrl.saveInProgress">\n <ui-select-match placeholder="Search a dashboard by name">{{$select.selected.name}}</ui-select-match>\n <ui-select-choices repeat="q in $ctrl.dashboards"\n refresh="$ctrl.searchDashboards($select.search, $ctrl.limitToUsersDashboards)"\n refresh-delay="0">\n <div ng-bind-html="$ctrl.trustAsHtml(q.name | highlight: $select.search)"></div>\n </ui-select-choices>\n </ui-select>\n </div>\n </form>\n</div>'},function(e,t,n){n(1641),n(1635),e.exports=n(1636)},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){var r={"./en-SG":552,"./en-SG.js":552,"./en-au":553,"./en-au.js":553,"./en-ca":554,"./en-ca.js":554,"./en-gb":555,"./en-gb.js":555,"./en-ie":556,"./en-ie.js":556,"./en-il":557,"./en-il.js":557,"./en-nz":558,"./en-nz.js":558};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=845},,,,,,,,,,,,,,,,,,,,function(e,t,n){var r={"./avatar.svg":541,"./db-logos/Cassandra.png":866,"./db-logos/athena.png":867,"./db-logos/aws_es.png":868,"./db-logos/axibasetsd.png":869,"./db-logos/azure_kusto.png":870,"./db-logos/bigquery.png":871,"./db-logos/bigquery_gce.png":872,"./db-logos/clickhouse.png":873,"./db-logos/cockroach.png":874,"./db-logos/couchbase.png":875,"./db-logos/csv.png":876,"./db-logos/databricks.png":877,"./db-logos/db2.png":878,"./db-logos/dgraph.png":879,"./db-logos/drill.png":880,"./db-logos/druid.png":881,"./db-logos/dynamodb_sql.png":882,"./db-logos/elasticsearch.png":883,"./db-logos/google_analytics.png":884,"./db-logos/google_spreadsheets.png":885,"./db-logos/graphite.png":886,"./db-logos/hive.png":887,"./db-logos/hive_http.png":888,"./db-logos/impala.png":889,"./db-logos/influxdb.png":890,"./db-logos/jirajql.png":891,"./db-logos/json.png":892,"./db-logos/kibana.png":893,"./db-logos/kylin.png":894,"./db-logos/mapd.png":895,"./db-logos/memsql.png":896,"./db-logos/mongodb.png":897,"./db-logos/mssql.png":898,"./db-logos/mysql.png":899,"./db-logos/oracle.png":900,"./db-logos/pg.png":901,"./db-logos/phoenix.png":902,"./db-logos/presto.png":903,"./db-logos/prometheus.png":904,"./db-logos/python.png":905,"./db-logos/qubole.png":906,"./db-logos/rds_mysql.png":907,"./db-logos/redshift.png":908,"./db-logos/results.png":909,"./db-logos/rockset.png":910,"./db-logos/salesforce.png":911,"./db-logos/scylla.png":912,"./db-logos/snowflake.png":913,"./db-logos/sqlite.png":914,"./db-logos/treasuredata.png":915,"./db-logos/uptycs.png":916,"./db-logos/url.png":917,"./db-logos/vertica.png":918,"./db-logos/yandex_appmetrika.png":919,"./db-logos/yandex_metrika.png":920,"./destinations/chatwork.png":921,"./destinations/email.png":922,"./destinations/hangouts_chat.png":923,"./destinations/hipchat.png":924,"./destinations/mattermost.png":925,"./destinations/pagerduty.png":926,"./destinations/slack.png":927,"./destinations/webhook.png":928,"./favicon-16x16.png":929,"./favicon-32x32.png":930,"./favicon-96x96.png":931,"./google_logo.svg":932,"./illustrations/alert.svg":933,"./illustrations/dashboard.svg":934,"./illustrations/query.svg":935,"./logo.png":936,"./logo_white.png":937,"./redash_icon_small.png":194};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=865},function(e,t,n){e.exports=n.p+"images/db-logos/Cassandra.png"},function(e,t,n){e.exports=n.p+"images/db-logos/athena.png"},function(e,t,n){e.exports=n.p+"images/db-logos/aws_es.png"},function(e,t,n){e.exports=n.p+"images/db-logos/axibasetsd.png"},function(e,t,n){e.exports=n.p+"images/db-logos/azure_kusto.png"},function(e,t,n){e.exports=n.p+"images/db-logos/bigquery.png"},function(e,t,n){e.exports=n.p+"images/db-logos/bigquery_gce.png"},function(e,t,n){e.exports=n.p+"images/db-logos/clickhouse.png"},function(e,t,n){e.exports=n.p+"images/db-logos/cockroach.png"},function(e,t,n){e.exports=n.p+"images/db-logos/couchbase.png"},function(e,t,n){e.exports=n.p+"images/db-logos/csv.png"},function(e,t,n){e.exports=n.p+"images/db-logos/databricks.png"},function(e,t,n){e.exports=n.p+"images/db-logos/db2.png"},function(e,t,n){e.exports=n.p+"images/db-logos/dgraph.png"},function(e,t,n){e.exports=n.p+"images/db-logos/drill.png"},function(e,t,n){e.exports=n.p+"images/db-logos/druid.png"},function(e,t,n){e.exports=n.p+"images/db-logos/dynamodb_sql.png"},function(e,t,n){e.exports=n.p+"images/db-logos/elasticsearch.png"},function(e,t,n){e.exports=n.p+"images/db-logos/google_analytics.png"},function(e,t,n){e.exports=n.p+"images/db-logos/google_spreadsheets.png"},function(e,t,n){e.exports=n.p+"images/db-logos/graphite.png"},function(e,t,n){e.exports=n.p+"images/db-logos/hive.png"},function(e,t,n){e.exports=n.p+"images/db-logos/hive_http.png"},function(e,t,n){e.exports=n.p+"images/db-logos/impala.png"},function(e,t,n){e.exports=n.p+"images/db-logos/influxdb.png"},function(e,t,n){e.exports=n.p+"images/db-logos/jirajql.png"},function(e,t,n){e.exports=n.p+"images/db-logos/json.png"},function(e,t,n){e.exports=n.p+"images/db-logos/kibana.png"},function(e,t,n){e.exports=n.p+"images/db-logos/kylin.png"},function(e,t,n){e.exports=n.p+"images/db-logos/mapd.png"},function(e,t,n){e.exports=n.p+"images/db-logos/memsql.png"},function(e,t,n){e.exports=n.p+"images/db-logos/mongodb.png"},function(e,t,n){e.exports=n.p+"images/db-logos/mssql.png"},function(e,t,n){e.exports=n.p+"images/db-logos/mysql.png"},function(e,t,n){e.exports=n.p+"images/db-logos/oracle.png"},function(e,t,n){e.exports=n.p+"images/db-logos/pg.png"},function(e,t,n){e.exports=n.p+"images/db-logos/phoenix.png"},function(e,t,n){e.exports=n.p+"images/db-logos/presto.png"},function(e,t,n){e.exports=n.p+"images/db-logos/prometheus.png"},function(e,t,n){e.exports=n.p+"images/db-logos/python.png"},function(e,t,n){e.exports=n.p+"images/db-logos/qubole.png"},function(e,t,n){e.exports=n.p+"images/db-logos/rds_mysql.png"},function(e,t,n){e.exports=n.p+"images/db-logos/redshift.png"},function(e,t,n){e.exports=n.p+"images/db-logos/results.png"},function(e,t,n){e.exports=n.p+"images/db-logos/rockset.png"},function(e,t,n){e.exports=n.p+"images/db-logos/salesforce.png"},function(e,t,n){e.exports=n.p+"images/db-logos/scylla.png"},function(e,t,n){e.exports=n.p+"images/db-logos/snowflake.png"},function(e,t,n){e.exports=n.p+"images/db-logos/sqlite.png"},function(e,t,n){e.exports=n.p+"images/db-logos/treasuredata.png"},function(e,t,n){e.exports=n.p+"images/db-logos/uptycs.png"},function(e,t,n){e.exports=n.p+"images/db-logos/url.png"},function(e,t,n){e.exports=n.p+"images/db-logos/vertica.png"},function(e,t,n){e.exports=n.p+"images/db-logos/yandex_appmetrika.png"},function(e,t,n){e.exports=n.p+"images/db-logos/yandex_metrika.png"},function(e,t,n){e.exports=n.p+"images/destinations/chatwork.png"},function(e,t,n){e.exports=n.p+"images/destinations/email.png"},function(e,t,n){e.exports=n.p+"images/destinations/hangouts_chat.png"},function(e,t,n){e.exports=n.p+"images/destinations/hipchat.png"},function(e,t,n){e.exports=n.p+"images/destinations/mattermost.png"},function(e,t,n){e.exports=n.p+"images/destinations/pagerduty.png"},function(e,t,n){e.exports=n.p+"images/destinations/slack.png"},function(e,t,n){e.exports=n.p+"images/destinations/webhook.png"},function(e,t,n){e.exports=n.p+"images/favicon-16x16.png"},function(e,t,n){e.exports=n.p+"images/favicon-32x32.png"},function(e,t,n){e.exports=n.p+"images/favicon-96x96.png"},function(e,t,n){e.exports=n.p+"images/google_logo.svg"},function(e,t,n){e.exports=n.p+"images/illustrations/alert.svg"},function(e,t,n){e.exports=n.p+"images/illustrations/dashboard.svg"},function(e,t,n){e.exports=n.p+"images/illustrations/query.svg"},function(e,t,n){e.exports=n.p+"images/logo.png"},function(e,t,n){e.exports=n.p+"images/logo_white.png"},function(e,t,n){var r={"./AceEditorInput.jsx":454,"./AutocompleteToggle.jsx":455,"./BeaconConsent.jsx":980,"./BigMessage.jsx":78,"./CodeBlock.jsx":288,"./Collapse.jsx":1111,"./ColorBox.jsx":1115,"./ColorPicker/Input.jsx":348,"./ColorPicker/Swatch.jsx":231,"./ColorPicker/index.jsx":458,"./CreateSourceDialog.jsx":266,"./DateInput.jsx":460,"./DateRangeInput.jsx":462,"./DateTimeInput.jsx":463,"./DateTimeRangeInput.jsx":464,"./DialogWrapper.jsx":33,"./DynamicComponent.jsx":118,"./EditInPlace.jsx":465,"./EditParameterSettingsDialog.jsx":268,"./EditVisualizationButton/QueryControlDropdown.jsx":1273,"./EditVisualizationButton/QueryResultsLink.jsx":349,"./EditVisualizationButton/index.jsx":1279,"./EmailSettingsWarning.jsx":467,"./FavoritesControl.jsx":468,"./Filters.jsx":147,"./HelpTrigger.jsx":100,"./HtmlContent.jsx":270,"./InputWithCopy.jsx":169,"./NoTaggedObjectsFound.jsx":271,"./PageHeader.jsx":156,"./Paginator.jsx":75,"./ParameterApplyButton.jsx":469,"./ParameterMappingInput.jsx":94,"./ParameterValueInput.jsx":273,"./Parameters.jsx":1321,"./PreviewCard.jsx":122,"./QueryBasedParameterInput.jsx":472,"./QueryEditor.jsx":1655,"./QuerySelector.jsx":269,"./SelectItemsDialog.jsx":275,"./SortIcon.jsx":1332,"./TagsList.jsx":474,"./TimeAgo.jsx":170,"./Timer.jsx":1333,"./admin/CeleryStatus.jsx":173,"./admin/Layout.jsx":197,"./admin/StatusBlock.jsx":233,"./alerts/alert-subscriptions/index.js":1335,"./app-header/index.js":1336,"./app-view/error-handler.js":476,"./app-view/index.js":1338,"./cancel-query-button/index.js":1339,"./cards-list/CardsList.jsx":277,"./dashboards/AddWidgetDialog.jsx":477,"./dashboards/AutoHeightController.js":478,"./dashboards/CreateDashboardDialog.jsx":276,"./dashboards/DashboardGrid.jsx":1341,"./dashboards/EditParameterMappingsDialog.jsx":480,"./dashboards/TextboxDialog.jsx":278,"./dashboards/widget.js":479,"./dynamic-form/DynamicForm.jsx":119,"./dynamic-form/dynamicFormHelper.js":92,"./dynamic-parameters/DateParameter.jsx":470,"./dynamic-parameters/DateRangeParameter.jsx":471,"./dynamic-parameters/DynamicButton.jsx":274,"./empty-state/EmptyState.jsx":198,"./groups/CreateGroupDialog.jsx":481,"./groups/DeleteGroupButton.jsx":279,"./groups/DetailsPageSidebar.jsx":280,"./groups/GroupName.jsx":281,"./groups/ListItemAddon.jsx":204,"./items-list/ItemsList.jsx":49,"./items-list/classes/ItemsFetcher.js":351,"./items-list/classes/ItemsSource.js":76,"./items-list/classes/Paginator.js":482,"./items-list/classes/Sorter.js":203,"./items-list/classes/StateStorage.js":68,"./items-list/components/EmptyState.jsx":155,"./items-list/components/ItemsTable.jsx":24,"./items-list/components/LoadingState.jsx":46,"./items-list/components/Sidebar.jsx":61,"./json-view-interactive/JsonViewInteractive.jsx":483,"./keywordBuilder.js":473,"./layouts/ContentWithSidebar.jsx":69,"./overlay.js":1361,"./permissions-editor/index.js":1362,"./proptypes.js":44,"./queries/EmbedQueryDialog.jsx":484,"./queries/ScheduleDialog.jsx":485,"./queries/SchedulePhrase.jsx":282,"./queries/alert-unsaved-changes.js":1364,"./queries/api-key-dialog.js":1365,"./queries/schema-browser.js":1366,"./queries/visualization-embed.js":1367,"./query-link.js":1368,"./query-snippets/QuerySnippetDialog.jsx":486,"./rd-tab/index.js":1369,"./settings-screen.js":1370,"./tab-nav/index.js":1371,"./tags-control/EditTagsDialog.jsx":466,"./tags-control/TagsControl.jsx":128,"./users/ChangePasswordDialog.jsx":487,"./users/CreateUserDialog.jsx":488,"./users/UserEdit.jsx":489,"./users/UserShow.jsx":490};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=938},,,,,,function(e,t,n){},function(e,t,n){},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"BeaconConsent",function(){return y}),n.d(t,"default",function(){return v});n(14),n(15),n(11),n(106);var r=n(0),a=n.n(r),o=n(17),i=n(136),s=n.n(i),l=n(18),c=n.n(l),u=n(230),d=n.n(u),p=n(10),m=n(100),f=n(118),h=n(229);function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var b=d.a.Text;function y(){var e=g(Object(r.useState)(!1),2),t=e[0],n=e[1];if(!p.clientConfig.showBeaconConsentMessage||t)return null;var o=()=>{p.clientConfig.showBeaconConsentMessage=!1,n(!0)},i=e=>{var t="🙠Thank you.";e||(t="Settings Saved."),h.default.save({beacon_consent:e},t).finally(o)};return a.a.createElement(f.default,{name:"BeaconConsent"},a.a.createElement("div",{className:"m-t-10 tiled"},a.a.createElement(s.a,{title:a.a.createElement(a.a.Fragment,null,"Would you be ok with sharing anonymous usage data with the Redash team?"," ",a.a.createElement(m.HelpTrigger,{type:"USAGE_DATA_SHARING"})),bordered:!1},a.a.createElement(b,null,"Help Redash improve by automatically sending anonymous usage data:"),a.a.createElement("div",{className:"m-t-5"},a.a.createElement("ul",null,a.a.createElement("li",null," Number of users, queries, dashboards, alerts, widgets and visualizations."),a.a.createElement("li",null," Types of data sources, alert destinations and visualizations."))),a.a.createElement(b,null,"All data is aggregated and will never include any sensitive or private data."),a.a.createElement("div",{className:"m-t-5"},a.a.createElement(c.a,{type:"primary",className:"m-r-5",onClick:()=>i(!0)},"Yes"),a.a.createElement(c.a,{type:"default",onClick:()=>i(!1)},"No")),a.a.createElement("div",{className:"m-t-15"},a.a.createElement(b,{type:"secondary"},"You can change this setting anytime from the ",a.a.createElement("a",{href:"settings/organization"},"Organization Settings")," page.")))))}function v(e){e.component("beaconConsent",Object(o.react2angular)(y))}v.init=!0},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return m});n(34),n(11),n(19),n(27);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(3),l=n.n(s),c=n(525),u=n.n(c);function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function m(e){var t=e.collapsed,n=e.children,r=e.className,o=p(e,["collapsed","children","className"]);return a.a.createElement(u.a,d({},o,{activeKey:t?null:"content",className:l()(r,"ant-collapse-headerless")}),a.a.createElement(u.a.Panel,{key:"content",header:""},n))}m.propTypes={collapsed:i.a.bool,children:i.a.node,className:i.a.string},m.defaultProps={collapsed:!0,children:null,className:""}},,,,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return o});var r=n(17),a=n(458);n(1122);function o(e){e.component("colorBox",Object(r.react2angular)(a.default.Swatch))}o.init=!0},function(e,t,n){},function(e,t,n){},,,,function(e,t,n){},function(e,t,n){},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"QueryControlDropdown",function(){return b}),n.d(t,"default",function(){return y});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(168),l=n.n(s),c=n(84),u=n.n(c),d=n(18),p=n.n(d),m=n(21),f=n.n(m),h=n(17),g=n(349);function b(e){var t=a.a.createElement(u.a,null,!e.query.isNew()&&(!e.query.is_draft||!e.query.is_archived)&&a.a.createElement(u.a.Item,null,a.a.createElement("a",{target:"_self",onClick:()=>e.openAddToDashboardForm(e.selectedTab)},a.a.createElement(f.a,{type:"plus-circle",theme:"filled"})," Add to Dashboard")),!e.query.isNew()&&a.a.createElement(u.a.Item,null,a.a.createElement("a",{onClick:()=>e.showEmbedDialog(e.query,e.selectedTab),"data-test":"ShowEmbedDialogButton"},a.a.createElement(f.a,{type:"share-alt"})," Embed Elsewhere")),a.a.createElement(u.a.Item,null,a.a.createElement(g.default,{disabled:e.queryExecuting||!e.queryResult.getData||!e.queryResult.getData(),query:e.query,queryResult:e.queryResult,embed:e.embed,apiKey:e.apiKey},a.a.createElement(f.a,{type:"file"})," Download as CSV File")),a.a.createElement(u.a.Item,null,a.a.createElement(g.default,{fileType:"xlsx",disabled:e.queryExecuting||!e.queryResult.getData||!e.queryResult.getData(),query:e.query,queryResult:e.queryResult,embed:e.embed,apiKey:e.apiKey},a.a.createElement(f.a,{type:"file-excel"})," Download as Excel File")));return a.a.createElement(l.a,{trigger:["click"],overlay:t,overlayClassName:"query-control-dropdown-overlay"},a.a.createElement(p.a,{"data-test":"QueryControlDropdownButton"},a.a.createElement(f.a,{type:"ellipsis",rotate:90})))}function y(e){e.component("queryControlDropdown",Object(h.react2angular)(b))}b.propTypes={query:i.a.object.isRequired,queryResult:i.a.object,queryExecuting:i.a.bool.isRequired,showEmbedDialog:i.a.func.isRequired,embed:i.a.bool,apiKey:i.a.string,selectedTab:i.a.oneOfType([i.a.string,i.a.number]),openAddToDashboardForm:i.a.func.isRequired},b.defaultProps={queryResult:{},embed:!1,apiKey:"",selectedTab:""},y.init=!0},,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"EditVisualizationButton",function(){return p}),n.d(t,"default",function(){return m});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(18),l=n.n(s),c=n(21),u=n.n(c),d=n(17);function p(e){return a.a.createElement(l.a,{"data-test":"EditVisualization",className:"edit-visualization",onClick:()=>e.openVisualizationEditor(e.selectedTab)},a.a.createElement(u.a,{type:"form"}),a.a.createElement("span",{className:"hidden-xs hidden-s hidden-m"},"Edit Visualization"))}function m(e){e.component("editVisualizationButton",Object(d.react2angular)(p))}p.propTypes={openVisualizationEditor:i.a.func.isRequired,selectedTab:i.a.oneOfType([i.a.string,i.a.number])},p.defaultProps={selectedTab:""},m.init=!0},,,function(e,t,n){},,function(e,t,n){},function(e,t,n){},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"Parameters",function(){return P}),n.d(t,"default",function(){return C});n(14),n(15),n(29),n(19),n(27),n(11),n(116);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(2),l=n(17),c=n(355),u=n(22),d=n(39),p=n(469),m=n(273),f=n(268),h=n(45);n(1322);function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function w(e,t){return(w=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var j=Object(c.sortableHandle)(e=>{var t=e.parameterName;return a.a.createElement("div",{className:"drag-handle","data-test":"DragHandle-".concat(t)})}),E=Object(c.sortableElement)(e=>{var t=e.className,n=e.parameterName,r=e.disabled,o=e.children;return a.a.createElement("div",{className:t,"data-editable":!r||null},!r&&a.a.createElement(j,{parameterName:n}),o)}),S=Object(c.sortableContainer)(e=>{return e.children});function x(e){var t=Object(s.extend)({},u.$location.search());e.forEach(e=>{Object(s.extend)(t,e.toUrlParams())}),Object.keys(t).forEach(e=>null==t[e]&&delete t[e]),u.$location.search(t)}var P=function(e){function t(e){var n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,a=y(t).call(this,e),n=!a||"object"!==g(a)&&"function"!=typeof a?v(r):a,O(v(n),"componentDidUpdate",e=>{var t=n.props,r=t.parameters,a=t.disableUrlUpdate;e.parameters!==r&&(n.setState({parameters:r}),a||x(r))}),O(v(n),"handleKeyDown",e=>{13===e.keyCode&&(e.ctrlKey||e.metaKey||e.altKey)&&(e.stopPropagation(),n.applyChanges())}),O(v(n),"setPendingValue",(e,t,r)=>{var a=n.props.onPendingValuesChange;n.setState(n=>{var o=n.parameters;return r?e.setPendingValue(t):e.clearPendingValue(),a(),{parameters:o}})}),O(v(n),"moveParameter",e=>{var t=e.oldIndex,r=e.newIndex,a=n.props.onParametersEdit;t!==r&&n.setState(e=>{var n=e.parameters;return n.splice(r,0,n.splice(t,1)[0]),a(),{parameters:n}}),n.setState({dragging:!1})}),O(v(n),"onBeforeSortStart",()=>{n.setState({dragging:!0})}),O(v(n),"applyChanges",()=>{var e=n.props,t=e.onValuesChange,r=e.disableUrlUpdate;n.setState(e=>{var n=e.parameters,a=n.filter(e=>e.hasPendingValue);return Object(s.forEach)(n,e=>e.applyPendingValue()),t(a),r||x(n),{parameters:n}})}),O(v(n),"showParameterSettings",(e,t)=>{var r=n.props.onParametersEdit;f.default.showModal({parameter:e}).result.then(a=>{n.setState(n=>{var o=n.parameters,i=Object(s.extend)(e,a);return o[t]=new d.Parameter(i,i.parentQueryId),r(),{parameters:o}})})});var o=e.parameters;return n.state={parameters:o,dragging:!1},e.disableUrlUpdate||x(o),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&w(e,t)}(t,a.a.Component),n=t,(r=[{key:"renderParameter",value:function(e,t){var n=this.props.editable;return a.a.createElement("div",{key:e.name,className:"di-block","data-test":"ParameterName-".concat(e.name)},a.a.createElement("div",{className:"parameter-heading"},a.a.createElement("label",null,e.title||Object(h.toHuman)(e.name)),n&&a.a.createElement("button",{className:"btn btn-default btn-xs m-l-5",onClick:()=>this.showParameterSettings(e,t),"data-test":"ParameterSettings-".concat(e.name),type:"button"},a.a.createElement("i",{className:"fa fa-cog"}))),a.a.createElement(m.default,{type:e.type,value:e.normalizedValue,parameter:e,enumOptions:e.enumOptions,queryId:e.queryId,allowMultipleValues:!!e.multiValuesOptions,onSelect:(t,n)=>this.setPendingValue(e,t,n)}))}},{key:"render",value:function(){var e=this.state,t=e.parameters,n=e.dragging,r=this.props.editable,o=Object(s.size)(Object(s.filter)(t,"hasPendingValue"));return a.a.createElement(S,{axis:"xy",useDragHandle:!0,lockToContainerEdges:!0,helperClass:"parameter-dragged",updateBeforeSortStart:this.onBeforeSortStart,onSortEnd:this.moveParameter},a.a.createElement("div",{className:"parameter-container",onKeyDown:o?this.handleKeyDown:null,"data-draggable":r||null,"data-dragging":n||null},t.map((e,t)=>a.a.createElement(E,{className:"parameter-block",key:e.name,index:t,parameterName:e.name,disabled:!r},this.renderParameter(e,t))),a.a.createElement(p.default,{onClick:this.applyChanges,paramCount:o})))}}])&&b(n.prototype,r),o&&b(n,o),t}();function C(e){e.component("parameters",Object(l.react2angular)(P))}O(P,"propTypes",{parameters:i.a.arrayOf(i.a.instanceOf(d.Parameter)),editable:i.a.bool,disableUrlUpdate:i.a.bool,onValuesChange:i.a.func,onPendingValuesChange:i.a.func,onParametersEdit:i.a.func}),O(P,"defaultProps",{parameters:[],editable:!1,disableUrlUpdate:!1,onValuesChange:()=>{},onPendingValuesChange:()=>{},onParametersEdit:()=>{}}),C.init=!0},function(e,t,n){},,,,,,,,,function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"SortIcon",function(){return l}),n.d(t,"default",function(){return c});var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(17);function l(e){var t=e.column,n=e.sortColumn,r=e.reverse;return t!==n?null:a.a.createElement("span",null,a.a.createElement("i",{className:"fa fa-sort-"+(r?"desc":"asc")}))}function c(e){e.component("sortIcon",Object(s.react2angular)(l))}l.propTypes={column:i.a.string,sortColumn:i.a.string,reverse:i.a.bool},l.defaultProps={column:null,sortColumn:null,reverse:!1},c.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"Timer",function(){return d}),n.d(t,"default",function(){return p});var r=n(9),a=n.n(r),o=n(0),i=n(1),s=n.n(i),l=n(17),c=n(44),u=n(350);function d(e){var t=e.from,n=Object(o.useMemo)(()=>a()(t).valueOf(),[t]),r=Object(u.a)();Object(o.useEffect)(()=>{var e=setInterval(r,1e3);return()=>clearInterval(e)},[]);var i=a.a.now()-n,s=i>36e5?"HH:mm:ss":"mm:ss";return a.a.utc(i).format(s)}function p(e){e.component("rdTimer",Object(l.react2angular)(d))}d.propTypes={from:s.a.oneOfType([s.a.string,s.a.number,s.a.instanceOf(Date),c.Moment])},d.defaultProps={from:null},p.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return l});var r=n(2),a=n(12),o=n(768),i=n.n(o);function s(e,t,n,o,i,s){e.newSubscription={},e.subscribers=[],e.destinations=[],e.currentUser=o,t.all([s.query().$promise,i.query({alertId:e.alertId}).$promise]).then(t=>{var n=t[0],a=t[1],i=Object(r.compact)(a.map(e=>e.destination&&e.destination.id)),s=Object(r.compact)(a.map(e=>!e.destination&&e.user.id));e.destinations=n.filter(e=>!Object(r.includes)(i,e.id)),Object(r.includes)(s,o.id)||e.destinations.unshift({user:{name:o.name}}),e.newSubscription.destination=e.destinations[0],e.subscribers=a}),e.destinationsDisplay=(e=>{if(!e)return"";var t=e;return e.destination?t=t.destination:t.user&&(t={name:"".concat(e.user.name," (Email)"),icon:"fa-envelope",type:"user"}),n.trustAsHtml('<i class="fa '.concat(t.icon,'"></i> ').concat(t.name))}),e.saveSubscriber=(()=>{var t=new i({alert_id:e.alertId});e.newSubscription.destination.id&&(t.destination_id=e.newSubscription.destination.id),t.$save(()=>{a.default.success("Subscribed."),e.subscribers.push(t),e.destinations=Object(r.without)(e.destinations,e.newSubscription.destination),e.destinations.length>0?e.newSubscription.destination=e.destinations[0]:e.newSubscription.destination=void 0},()=>{a.default.error("Failed saving subscription.")})}),e.unsubscribe=(t=>{var n=t.destination,i=t.user;t.$delete(()=>{a.default.success("Unsubscribed"),e.subscribers=Object(r.without)(e.subscribers,t),n?e.destinations.push(n):i.id===o.id&&e.destinations.push({user:{name:o.name}}),1===e.destinations.length&&(e.newSubscription.destination=e.destinations[0])},()=>{a.default.error("Failed unsubscribing.")})})}function l(e){e.directive("alertSubscriptions",()=>({restrict:"E",replace:!0,scope:{alertId:"="},template:i.a,controller:s}))}s.$inject=["$scope","$q","$sce","currentUser","AlertSubscription","Destination"],l.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return m});n(116);var r=n(98),a=n.n(r),o=n(276),i=n(194),s=n.n(i),l=n(769),c=n(770),u=n.n(c);n(1337);p.$inject=["$rootScope","$location","$route","$uibModal","Auth","currentUser","clientConfig","Dashboard","Query"];var d=a()("redash:appHeader");function p(e,t,n,r,a,i,c,u,p){this.logoUrl=s.a,this.basePath=c.basePath,this.currentUser=i,this.showQueriesMenu=i.hasPermission("view_query"),this.showAlertsLink=i.hasPermission("list_alerts"),this.showNewQueryMenu=i.hasPermission("create_query"),this.showSettingsMenu=i.hasPermission("list_users"),this.showDashboardsMenu=i.hasPermission("list_dashboards"),this.frontendVersion=l,this.backendVersion=c.version,this.newVersionAvailable=c.newVersionAvailable&&i.isAdmin,this.reload=(()=>{d("Reloading dashboards and queries."),u.favorites().$promise.then(e=>{this.dashboards=e.results}),p.favorites().$promise.then(e=>{this.queries=e.results})}),this.reload(),e.$on("reloadFavorites",this.reload),this.newDashboard=(()=>o.default.showModal()),this.searchQueries=(()=>{t.path("/queries").search({q:this.searchTerm}),n.reload()}),this.logout=(()=>{a.logout()})}function m(e){e.component("appHeader",{template:u.a,controller:p})}m.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return f});var r=n(98),a=n.n(r),o=n(70),i=n(476),s=n(771),l=n.n(s);function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var u=a()("redash:app-view"),d=new i.ErrorHandler,p={default:{showHeader:!0,bodyClass:!1},fixed:{showHeader:!0,bodyClass:"fixed-layout"},defaultSignedOut:{showHeader:!1}};var m=function(){function e(t,n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$rootScope=t,this.layout=p.defaultSignedOut,this.handler=d,t.$on("$routeChangeStart",(e,t)=>{this.handler.reset();var a=t.$$route||{authenticated:!0};a.authenticated&&(u("Requested authenticated route: ",t),r.isAuthenticated()||(e.preventDefault(),r.requireSession().then(()=>{this.applyLayout(a),n.reload()})))}),t.$on("$routeChangeSuccess",(e,t)=>{var n=t.$$route||{authenticated:!0};this.applyLayout(n)}),t.$on("$routeChangeError",(e,t,n,r)=>{var a=t.$$route||{authenticated:!0};throw this.applyLayout(a),new o.a(r)})}var t,n,r;return e.$inject=["$rootScope","$route","Auth"],t=e,(n=[{key:"applyLayout",value:function(e){this.layout=function(e){var t=p.default;return e.layout?t=p[e.layout]||p.default:e.authenticated||(t=p.defaultSignedOut),t}(e),this.$rootScope.bodyClass=this.layout.bodyClass}}])&&c(t.prototype,n),r&&c(t,r),e}();function f(e){e.factory("$exceptionHandler",()=>(function(e){d.process(e)})),e.component("appView",{template:l.a,controller:m})}f.init=!0},function(e,t,n){"use strict";function r(){return{restrict:"E",scope:{queryId:"=",taskId:"="},transclude:!0,template:'<button class="btn btn-default" ng-disabled="inProgress" ng-click="cancelExecution()"><i class="zmdi zmdi-spinner zmdi-hc-spin" ng-if="inProgress"></i> Cancel</button>',replace:!0,controller:["$scope","$http","currentUser","Events",function(e,t,n,r){e.inProgress=!1,e.cancelExecution=(()=>{t.delete("api/jobs/".concat(e.taskId)).success(()=>{});var n=e.queryId;"adhoc"===e.queryId&&(n=null),r.record("cancel_execute","query",n,{admin:!0}),e.inProgress=!0})}]}}function a(e){e.directive("cancelQueryButton",r)}n.r(t),n.d(t,"default",function(){return a}),a.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return k});n(14),n(15),n(29),n(165),n(90);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(2),l=n(17),c=n(3),u=n.n(c),d=n(528),p=n(479),m=n(147),f=n(54),h=n(478);n(1355),n(1356);function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function w(e,t,n){return t&&v(e.prototype,t),n&&v(e,n),e}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=Object(d.WidthProvider)(d.Responsive),S=i.a.shape({id:i.a.number.isRequired,options:i.a.shape({position:i.a.shape({col:i.a.number.isRequired,row:i.a.number.isRequired,sizeY:i.a.number.isRequired,minSizeY:i.a.number.isRequired,maxSizeY:i.a.number.isRequired,sizeX:i.a.number.isRequired,minSizeX:i.a.number.isRequired,maxSizeX:i.a.number.isRequired}).isRequired}).isRequired}),x="single-column",P="multi-column",C=function(e){function t(e){var n,r,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,a=b(t).call(this,e),n=!a||"object"!==g(a)&&"function"!=typeof a?y(r):a,j(y(n),"mode",null),j(y(n),"autoHeightCtrl",null),j(y(n),"onLayoutChange",(e,t)=>{if(t[P]&&n.setState({layouts:t}),n.mode=document.body.offsetWidth<=f.a.mobileBreakPoint?x:P,n.mode!==x){var r=Object(s.chain)(t[P]).keyBy("i").mapValues(n.normalizeTo).value();n.props.onLayoutChange(r)}}),j(y(n),"onBreakpointChange",e=>{n.mode=e,n.props.onBreakpointChange(e===x)}),j(y(n),"onWidgetHeightUpdated",(e,t)=>{n.setState(n=>{var r=n.layouts,a=Object(s.cloneDeep)(r[P]),o=Object(s.find)(a,{i:e.toString()});return o&&(o.h=Math.ceil((t+f.a.margins)/f.a.rowHeight)),{layouts:j({},P,a)}})}),j(y(n),"onWidgetResize",(e,t,r)=>{t.h!==r.h&&n.autoHeightCtrl.remove(Number(r.i)),n.autoHeightCtrl.resume()}),j(y(n),"normalizeTo",e=>({col:e.x,row:e.y,sizeX:e.w,sizeY:e.h,autoHeight:n.autoHeightCtrl.exists(e.i)})),n.state={layouts:{},disableAnimations:!0},n.autoHeightCtrl=new h.default(n.onWidgetHeightUpdated),n.autoHeightCtrl.update(n.props.widgets),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}(t,a.a.Component),w(t,null,[{key:"normalizeFrom",value:function(e){var t=e.id,n=e.options.position;return{i:t.toString(),x:n.col,y:n.row,w:n.sizeX,h:n.sizeY,minW:n.minSizeX,maxW:n.maxSizeX,minH:n.minSizeY,maxH:n.maxSizeY}}}]),w(t,[{key:"componentDidMount",value:function(){this.onBreakpointChange(document.body.offsetWidth<=f.a.mobileBreakPoint?x:P),setTimeout(()=>{this.setState({disableAnimations:!1})},50)}},{key:"componentDidUpdate",value:function(){this.autoHeightCtrl.update(this.props.widgets)}},{key:"componentWillUnmount",value:function(){this.autoHeightCtrl.destroy()}},{key:"render",value:function(){var e,n,r=u()("dashboard-wrapper",this.props.isEditing?"editing-mode":"preview-mode"),o=this.props,i=o.onRemoveWidget,s=o.dashboard,l=o.widgets;return a.a.createElement("div",{className:r},a.a.createElement(E,{className:u()("layout",{"disable-animations":this.state.disableAnimations}),cols:(e={},j(e,P,f.a.columns),j(e,x,1),e),rowHeight:f.a.rowHeight-f.a.margins,margin:[f.a.margins,f.a.margins],isDraggable:this.props.isEditing,isResizable:this.props.isEditing,onResizeStart:this.autoHeightCtrl.stop,onResizeStop:this.onWidgetResize,layouts:this.state.layouts,onLayoutChange:this.onLayoutChange,onBreakpointChange:this.onBreakpointChange,breakpoints:(n={},j(n,P,f.a.mobileBreakPoint),j(n,x,0),n)},l.map(e=>a.a.createElement("div",{key:e.id,"data-grid":t.normalizeFrom(e),"data-widgetid":e.id,"data-test":"WidgetId".concat(e.id),className:u()("dashboard-widget-wrapper",{"widget-auto-height-enabled":this.autoHeightCtrl.exists(e.id)})},a.a.createElement(p.DashboardWidget,{widget:e,dashboard:s,filters:this.props.filters,deleted:()=>i(e.id),public:this.props.isPublic})))))}}]),t}();function k(e){e.component("dashboardGrid",Object(l.react2angular)(C))}j(C,"propTypes",{isEditing:i.a.bool.isRequired,isPublic:i.a.bool,dashboard:i.a.object.isRequired,widgets:i.a.arrayOf(S).isRequired,filters:m.FiltersType,onBreakpointChange:i.a.func,onRemoveWidget:i.a.func,onLayoutChange:i.a.func}),j(C,"defaultProps",{isPublic:!1,filters:[],onRemoveWidget:()=>{},onLayoutChange:()=>{},onBreakpointChange:()=>{}}),k.init=!0},,,,,,,,,,,function(e,t,n){},function(e,t,n){},function(e,t,n){},,function(e,t,n){},function(e,t,n){},,function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});var r={template:'\n <div>\n <div class="overlay"></div>\n <div style="width: 100%; position:absolute; top:50px; z-index:2000">\n <div class="well well-lg" style="width: 70%; margin: auto;" ng-transclude>\n </div>\n </div>\n </div>\n ',transclude:!0};function a(e){e.component("overlay",r)}a.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});n(11);var r=n(2),a=n(12),o=n(774),i={template:n.n(o).a,bindings:{resolve:"<",close:"&",dismiss:"&"},controller:["$http","User",function(e,t){this.grantees=[],this.newGrantees={},this.aclUrl=this.resolve.aclUrl.url,this.owner=this.resolve.owner;var n=()=>{e.get(this.aclUrl).success(e=>{this.grantees=[],Object(r.each)(e,(e,t)=>{e.forEach(e=>{e.access_type=t,this.grantees.push(e)})})})};n(),this.findUser=(e=>{""!==e?t.query({q:e},e=>{var t=Object(r.filter)(e.results,e=>e.id!==this.owner.id),n=this.grantees.map(e=>e.id);t.forEach(e=>{e.alreadyGrantee=Object(r.includes)(n,e.id)}),this.foundUsers=t}):this.foundUsers=[]}),this.addGrantee=(t=>{this.newGrantees={};var r={access_type:"modify",user_id:t.id};e.post(this.aclUrl,r).success(()=>{t.alreadyGrantee=!0,n()}).catch(e=>{403===e.status?a.default.error("You cannot add a user to this dashboard.","Ask the dashboard owner to grant them permissions."):a.default.error("Something went wrong.")})}),this.removeGrantee=(t=>{var n={access_type:"modify",user_id:t.id};e({url:this.aclUrl,method:"DELETE",data:n,headers:{"Content-Type":"application/json"}}).success(()=>{this.grantees=this.grantees.filter(e=>e!==t),this.foundUsers&&this.foundUsers.forEach(e=>{e.id===t.id&&(e.alreadyGrantee=!1)})})})}]};function s(e){e.component("permissionsEditor",i)}s.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});n(131);function r(e){return{restrict:"E",replace:!0,scope:{isDirty:"="},link:function(t){var n="".concat("You will lose your changes if you leave","\n\nAre you sure you want to leave this page?"),r=e.onbeforeunload;e.onbeforeunload=function(){return t.isDirty?"You will lose your changes if you leave":null},t.$on("$locationChangeStart",(r,a,o)=>{a.split("?")[0]!==o.split("?")[0]&&a.split("#")[0]!==o.split("#")[0]&&t.isDirty&&!e.confirm(n)&&r.preventDefault()}),t.$on("$destroy",()=>{e.onbeforeunload=r})}}}function a(e){e.directive("alertUnsavedChanges",r)}r.$inject=["$window"],a.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});var r={template:'<div class="modal-header">\n <button type="button" class="close" aria-label="Close" ng-click="$ctrl.close()"><span aria-hidden="true">×</span></button>\n</div>\n<div class="modal-body">\n <h5>API Key</h5>\n <div class="form-group">\n <pre>{{$ctrl.query.api_key}}</pre>\n <div ng-if="$ctrl.canEdit">\n <button class="btn btn-default" ng-click="$ctrl.regenerateQueryApiKey()" ng-disabled="$ctrl.disableRegenerateApiKeyButton">Regenerate</button>\n </div>\n </div>\n\n <h5>Example API Calls:</h5>\n\n <div>\n Results in CSV format:\n\n <pre>{{$ctrl.csvUrlBase + $ctrl.query.api_key}}</pre>\n\n Results in JSON format:\n\n <pre>{{$ctrl.jsonUrlBase + $ctrl.query.api_key}}</pre>\n </div>\n</div>',controller:["$http","clientConfig","currentUser",function(e,t,n){this.canEdit=n.id===this.resolve.query.user.id||n.hasPermission("admin"),this.disableRegenerateApiKeyButton=!1,this.query=this.resolve.query,this.csvUrlBase="".concat(t.basePath,"api/queries/").concat(this.resolve.query.id,"/results.csv?api_key="),this.jsonUrlBase="".concat(t.basePath,"api/queries/").concat(this.resolve.query.id,"/results.json?api_key="),this.regenerateQueryApiKey=(()=>{this.disableRegenerateApiKeyButton=!0,e.post("api/queries/".concat(this.resolve.query.id,"/regenerate_api_key")).success(e=>{this.query.api_key=e.api_key,this.disableRegenerateApiKeyButton=!1}).error(()=>{this.disableRegenerateApiKeyButton=!1})})}],bindings:{resolve:"<",close:"&",dismiss:"&"}};function a(e){e.component("apiKeyDialog",r)}a.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});n(131),n(222),n(223),n(114);var r=n(775),a=n.n(r);function o(e,t){this.showTable=(e=>{e.collapsed=!e.collapsed,t.$broadcast("vsRepeatTrigger")}),this.getSize=(e=>{var t=22;return e.collapsed||(t+=18*e.columns.length),t}),this.isEmpty=function(){return void 0===this.schema||0===this.schema.length},this.itemSelected=((t,n)=>{e.$broadcast("query-editor.command","paste",n.join(".")),t.preventDefault(),t.stopPropagation()}),this.splitFilter=(e=>{if((e=e.replace(/ {2}/g," ")).includes(" ")){var t=e.split(" ");this.schemaFilterObject={name:t[0],columns:t[1]},this.schemaFilterColumn=t[1]}else this.schemaFilterObject=e,this.schemaFilterColumn=""})}o.$inject=["$rootScope","$scope"];var i={bindings:{schema:"<",onRefresh:"&"},controller:o,template:a.a};function s(e){e.component("schemaBrowser",i)}s.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return u});var r=n(2),a=n(9),o=n.n(a),i=n(194),s=n.n(i),l=n(776),c={template:n.n(l).a,bindings:{query:"<"},controller:["$routeParams",function(e){this.refreshQueryResults=(()=>{this.loading=!0,this.error=null,this.refreshStartedAt=o()(),this.query.getQueryResultPromise().then(e=>{this.loading=!1,this.queryResult=e}).catch(e=>{this.loading=!1,this.error=e.getError()})});var t=parseInt(e.visualizationId,10);this.visualization=Object(r.find)(this.query.visualizations,e=>e.id===t),this.showQueryDescription=e.showDescription,this.logoUrl=s.a,this.apiKey=e.api_key,this.hideParametersUI=void 0!==e.hide_parameters,this.hideHeader=void 0!==e.hide_header,this.hideQueryLink=void 0!==e.hide_link,document.querySelector("body").classList.add("headless"),this.refreshQueryResults()}]};function u(e){function t(e,t,n){return function(e,t){var n=e.current.params.api_key;return t.setApiKey(n),t.loadConfig()}(e,t).then(()=>n.get({id:e.current.params.queryId}).$promise)}t.$inject=["$route","Auth","Query"],e.component("visualizationEmbed",c),e.config(["$routeProvider",e=>{e.when("/embed/query/:queryId/visualization/:visualizationId",{resolve:{query:t},reloadOnSearch:!1,template:'<visualization-embed query="$resolve.query"></visualization-embed>'})}])}u.init=!0},function(e,t,n){"use strict";function r(e){e.component("queryLink",{bindings:{query:"<",visualization:"<",readonly:"<"},template:'\n <a ng-href="{{$ctrl.readonly ? undefined : $ctrl.getUrl()}}" class="query-link">\n <visualization-name visualization="$ctrl.visualization"/>\n <span>{{$ctrl.query.name}}</span>\n </a>\n ',controller:function(){this.getUrl=(()=>{var e=null;return this.visualization&&(e="TABLE"===this.visualization.type?"table":this.visualization.id),this.query.getUrl(!1,e)})}})}n.r(t),n.d(t,"default",function(){return r}),r.init=!0},function(e,t,n){"use strict";function r(e){return{restrict:"E",scope:{tabId:"@",name:"@",basePath:"=?"},transclude:!0,template:'<li class="rd-tab" ng-class="{active: tabId==selectedTab}"><a href="{{basePath}}#{{tabId}}">{{name}}<span ng-transclude></span></a></li>',replace:!0,link:function(t){t.basePath=t.basePath||e.path().substring(1),t.$watch(()=>t.$parent.selectedTab,e=>{t.selectedTab=e})}}}function a(e){e.directive("rdTab",r)}n.r(t),n.d(t,"default",function(){return a}),r.$inject=["$location"],a.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return i});var r=n(91),a=n(777),o=n.n(a);function i(e){e.component("settingsScreen",{transclude:!0,template:o.a,controller:["$location","currentUser",function(e,t){this.settingsMenu=r.default,this.isActive=(t=>t.isActive(e.path())),this.isAvailable=(e=>void 0===e||t.hasPermission(e))}]})}i.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});n(221),n(11);function r(e){this.tabs.forEach(t=>{t.isActive?t.active=t.isActive(e.path()):t.active=e.path().startsWith("/".concat(t.path))})}function a(e){e.component("tabNav",{template:'<ul class="tab-nav bg-white"><li ng-repeat="tab in $ctrl.tabs" ng-class="{\'active\': tab.active }"><a ng-href="{{tab.path}}">{{tab.name}}</a></li></ul>',controller:r,bindings:{tabs:"<"}})}r.$inject=["$location"],a.init=!0},function(e,t){function n(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=1372},function(e,t,n){var r={"./alert-dialog.js":1374,"./alert-subscription.js":1375,"./alert-template.js":491,"./alert.js":292,"./auth.js":10,"./dashboard.js":159,"./data-source.js":79,"./destination.js":130,"./events.js":1376,"./getTags.js":196,"./group.js":60,"./keyboard-shortcuts.js":272,"./navigateTo.js":56,"./ng.js":22,"./notification.js":12,"./notifications.js":293,"./offline-listener.js":1377,"./organizationSettings.js":229,"./organizationStatus.js":157,"./policy/DefaultPolicy.js":475,"./policy/index.js":52,"./query-result.js":492,"./query-snippet.js":158,"./query-string.js":1378,"./query.js":39,"./recordEvent.js":58,"./resizeObserver.js":117,"./settingsMenu.js":91,"./user.js":53,"./utils.js":283,"./visualization.js":284,"./widget.js":105};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=1373},function(e,t,n){"use strict";n.r(t),n.d(t,"AlertDialog",function(){return a}),n.d(t,"default",function(){return s});n(34);function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}i.$inject=["$uibModal"];var a=null,o={template:'\n<div class="modal-header">\n <h4 class="modal-title" ng-if="$ctrl.title">{{$ctrl.title}}</h4>\n</div>\n<div class="modal-body">\n <p ng-bind-html="$ctrl.message"></p>\n</div>\n<div class="modal-footer">\n <button class="btn btn-default" ng-click="$ctrl.dismiss()">Cancel</button>\n <button class="btn" ng-class="$ctrl.confirm.class" ng-click="$ctrl.close()" ng-if="$ctrl.confirm.show">{{$ctrl.confirm.title}}</button>\n</div>\n ',bindings:{close:"&",dismiss:"&",resolve:"<"},controller:function(){this.title=this.resolve.title,this.message=this.resolve.message,this.confirm=r({},{class:"btn-sucess",show:!0,title:"OK"},this.resolve.confirm)}};function i(e){return{open:function(t,n,r){return e.open({component:"alertDialog",resolve:{title:()=>t,message:()=>n,confirm:()=>r}}).result}}}function s(e){e.component("alertDialog",o),e.factory("AlertDialog",i),e.run(["$injector",e=>{a=e.get("AlertDialog")}])}s.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"AlertSubscription",function(){return r}),n.d(t,"default",function(){return o}),a.$inject=["$resource"];var r=null;function a(e){return e("api/alerts/:alertId/subscriptions/:subscriberId",{alertId:"@alert_id",subscriberId:"@id"})}function o(e){e.factory("AlertSubscription",a),e.run(["$injector",e=>{r=e.get("AlertSubscription")}])}o.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return o});var r=n(58);function a(){this.record=r.default}function o(e){e.service("Events",a)}o.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});var r=n(12);function a(e){e.run(()=>{window.addEventListener("offline",()=>{r.default.warning("Please check your Internet connection.",null,{key:"connectionNotification",duration:null}),function(e){window.addEventListener("online",function t(){r.default.close(e),window.removeEventListener("online",t)})}("connectionNotification")})})}a.init=!0},function(e,t,n){"use strict";n.r(t);n(34),n(14),n(15),n(116),n(11),n(19),n(1379),n(221);var r=n(778),a=n.n(r);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var s=e=>{return i(e,1)[0].startsWith("p_")},l=e=>{var t=i(e,2),n=t[0],r=t[1];return[n.slice(2),r]},c=(e,t)=>{var n=i(t,2);return o(e,function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},n[0],n[1]))};t.default=(()=>Object.entries((e=>a.a.parse(e,{allowDots:!0,ignoreQueryPrefix:!0}))(location.search)).filter(s).map(l).reduce(c,{}))},,,,function(e,t,n){var r={"./ColorPalette.js":103,"./EditVisualizationDialog.jsx":493,"./VisualizationName.jsx":1383,"./VisualizationRenderer.jsx":1384,"./box-plot/Editor.jsx":494,"./box-plot/Renderer.jsx":495,"./box-plot/d3box.js":496,"./box-plot/index.js":1386,"./chart/Renderer/CustomPlotlyChart.jsx":497,"./chart/Renderer/PlotlyChart.jsx":501,"./chart/Renderer/index.jsx":502,"./chart/getChartData.js":199,"./chart/index.js":1573,"./chart/plotly/applyLayoutFixes.js":452,"./chart/plotly/customChartUtils.js":341,"./chart/plotly/index.js":86,"./chart/plotly/prepareData.js":450,"./chart/plotly/prepareDefaultData.js":500,"./chart/plotly/prepareHeatmapData.js":499,"./chart/plotly/prepareLayout.js":451,"./chart/plotly/preparePieData.js":285,"./chart/plotly/updateData.js":200,"./chart/plotly/utils.js":71,"./choropleth/index.js":1574,"./choropleth/utils.js":137,"./cohort/index.js":1575,"./counter/Editor/FormatSettings.jsx":503,"./counter/Editor/GeneralSettings.jsx":504,"./counter/Editor/index.jsx":505,"./counter/Renderer.jsx":506,"./counter/index.js":1581,"./counter/utils.js":286,"./details/DetailsEditor.jsx":507,"./details/DetailsRenderer.jsx":508,"./details/index.js":1583,"./funnel/index.js":1584,"./index.js":20,"./map/index.js":1586,"./pivot/Editor.jsx":509,"./pivot/index.js":1592,"./sankey/Editor.jsx":510,"./sankey/index.js":1656,"./sunburst/Editor.jsx":511,"./sunburst/index.js":1654,"./table/Renderer.jsx":512,"./table/columns/boolean.js":516,"./table/columns/datetime.js":515,"./table/columns/image.js":518,"./table/columns/json.js":519,"./table/columns/link.js":517,"./table/columns/number.js":514,"./table/columns/text.js":513,"./table/index.js":1599,"./table/utils.js":205,"./word-cloud/Editor.jsx":520,"./word-cloud/Renderer.jsx":521,"./word-cloud/index.js":1602};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=1382},function(e,t,n){"use strict";n.r(t),n.d(t,"VisualizationName",function(){return o}),n.d(t,"default",function(){return i});var r=n(17),a=n(20);function o(e){var t=e.visualization,n=a.registeredVisualizations[t.type];return n&&t.name!==n.name?t.name:null}function i(e){e.component("visualizationName",Object(r.react2angular)(o))}o.propTypes={visualization:a.VisualizationType.isRequired},i.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"VisualizationRenderer",function(){return h}),n.d(t,"default",function(){return g});n(14),n(15),n(11),n(19),n(27);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(17),c=n(352),u=n(147),d=n(20);function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){return 0===e.length||0===t.length?e:Object(r.map)(e,e=>{var n=Object(r.find)(t,t=>t.name===e.name);return n?function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){m(e,t,n[t])})}return e}({},e,{current:n.current}):e})}function h(e){var t=Object(c.a)(e.queryResult),n=p(Object(a.useState)(t.filters),2),i=n[0],s=n[1],l=Object(a.useRef)();Object(a.useEffect)(()=>{s(f(t.filters,e.filters))},[t]),Object(a.useEffect)(()=>{s(f(i,e.filters))},[e.filters]);var m=Object(a.useMemo)(()=>({columns:t.columns,rows:Object(u.filterData)(t.rows,i)}),[t,i]),h=e.showFilters,g=e.visualization,b=d.registeredVisualizations[g.type],y=b.Renderer,v=(0,b.getOptions)(g.options,t);return Object(r.isEqual)(l.current,v)&&(v=l.current),l.current=v,o.a.createElement(o.a.Fragment,null,h&&o.a.createElement(u.Filters,{filters:i,onChange:s}),o.a.createElement("div",{className:"visualization-renderer-wrapper"},o.a.createElement(y,{key:"visualization".concat(g.id),options:v,data:m,visualizationName:g.name,context:e.context})))}function g(e){e.component("visualizationRenderer",Object(l.react2angular)(h))}h.propTypes={visualization:d.VisualizationType.isRequired,queryResult:s.a.object.isRequired,filters:u.FiltersType,showFilters:s.a.bool,context:s.a.oneOf(["query","widget"]).isRequired},h.defaultProps={filters:[],showFilters:!0},g.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});n(11),n(19),n(27);var r=n(20),a=n(495),o=n(494);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(){Object(r.registerVisualization)({type:"BOXPLOT",name:"Boxplot (Deprecated)",isDeprecated:!0,getOptions:e=>(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i(e,t,n[t])})}return e})({},e),Renderer:a.default,Editor:o.default,defaultRows:8,minRows:5})}s.init=!0},,,function(e,t){},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return h});n(27),n(19),n(55),n(249),n(11);var r=n(2),a=n(59),o=n(20),i=n(10),s=n(103),l=n(199),c=n(784),u=n.n(c),d=n(502);function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m={globalSeriesType:"column",sortX:!0,legend:{enabled:!0},yAxis:[{type:"linear"},{type:"linear",opposite:!0}],xAxis:{type:"-",labels:{enabled:!0}},error_y:{type:"data",visible:!0},series:{stacking:null,error_y:{type:"data",visible:!0}},seriesOptions:{},valuesOptions:{},columnMapping:{},direction:{type:"counterclockwise"},numberFormat:"0,0[.]00000",percentFormat:"0[.]00%",textFormat:"",missingValuesAsZero:!0};var f={template:u.a,bindings:{data:"<",options:"<",onOptionsChange:"<"},controller:["$scope",function(e){var t,n,a,o;this.currentTab="general",this.setCurrentTab=(e=>{this.currentTab=e}),this.colors=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){p(e,t,n[t])})}return e}({Automatic:null},s.default),this.stackingOptions={Disabled:null,Stack:"stack"},this.chartTypes={line:{name:"Line",icon:"line-chart"},column:{name:"Bar",icon:"bar-chart"},area:{name:"Area",icon:"area-chart"},pie:{name:"Pie",icon:"pie-chart"},scatter:{name:"Scatter",icon:"circle-o"},bubble:{name:"Bubble",icon:"circle-o"},heatmap:{name:"Heatmap",icon:"th"},box:{name:"Box",icon:"square-o"}},i.clientConfig.allowCustomJSVisualizations&&(this.chartTypes.custom={name:"Custom",icon:"code"}),this.directions=[{label:"Counterclockwise",value:"counterclockwise"},{label:"Clockwise",value:"clockwise"}],this.xAxisScales=[{label:"Auto Detect",value:"-"},{label:"Datetime",value:"datetime"},{label:"Linear",value:"linear"},{label:"Logarithmic",value:"logarithmic"},{label:"Category",value:"category"}],this.yAxisScales=["linear","logarithmic","datetime","category"],this.colorScheme=["Blackbody","Bluered","Blues","Earth","Electric","Greens","Greys","Hot","Jet","Picnic","Portland","Rainbow","RdBu","Reds","Viridis","YlGnBu","YlOrRd","Custom..."],this.chartTypeChanged=(()=>{Object(r.keys)(this.options.seriesOptions).forEach(e=>{this.options.seriesOptions[e].type=this.options.globalSeriesType}),this.options.showDataLabels="pie"===this.options.globalSeriesType,e.$applyAsync()}),this.showSizeColumnPicker=(()=>Object(r.some)(this.options.seriesOptions,e=>"bubble"===e.type)),this.showZColumnPicker=(()=>Object(r.some)(this.options.seriesOptions,e=>"heatmap"===e.type)),Object(r.isNil)(this.options.customCode)&&(this.options.customCode=Object(r.trim)("\n// Available variables are x, ys, element, and Plotly\n// Type console.log(x, ys); for more info about x and ys\n// To plot your graph call Plotly.plot(element, ...)\n// Plotly examples and docs: https://plot.ly/javascript/\n ")),this.form=(t=this.options,n=this.data.columns,a={yAxisColumns:[],seriesList:Object(r.sortBy)(Object(r.keys)(t.seriesOptions),e=>t.seriesOptions[e].zIndex),valuesList:Object(r.keys)(t.valuesOptions)},o=Object(r.pick)(t.columnMapping,Object(r.map)(n,e=>e.name)),Object(r.each)(o,(e,t)=>{switch(e){case"x":a.xAxisColumn=t;break;case"y":a.yAxisColumns.push(t);break;case"series":a.groupby=t;break;case"yError":a.errorColumn=t;break;case"size":a.sizeColumn=t;break;case"zVal":a.zValColumn=t}}),a);var c=()=>{this.columns=this.data.columns,this.columnNames=Object(r.map)(this.columns,e=>e.name),this.columnNames.length>0&&Object(r.each)(Object(r.difference)(Object(r.keys)(this.options.columnMapping),this.columnNames),e=>{delete this.options.columnMapping[e]})},u=()=>{c();var e=this.data;e&&e.columns.length>0&&e.rows.length>0&&(this.form.yAxisColumns=Object(r.intersection)(this.form.yAxisColumns,this.columnNames),Object(r.includes)(this.columnNames,this.form.xAxisColumn)||(this.form.xAxisColumn=void 0),Object(r.includes)(this.columnNames,this.form.groupby)||(this.form.groupby=void 0))},d=()=>{var e=Object(l.default)(this.data.rows,this.options),t=Object(r.map)(e,e=>e.name),n=Object(r.keys)(this.options.seriesOptions);if(Object(r.each)(Object(r.difference)(t,n),e=>{this.options.seriesOptions[e]={type:this.options.globalSeriesType,yAxis:0},this.form.seriesList.push(e)}),Object(r.each)(Object(r.difference)(n,t),e=>{this.form.seriesList=Object(r.without)(this.form.seriesList,e),delete this.options.seriesOptions[e]}),"pie"===this.options.globalSeriesType){var a=new Set;Object(r.each)(e,e=>{Object(r.each)(e.data,e=>{a.add(e.x)})});var o=[];a.forEach(e=>o.push(e));var i=Object(r.difference)(o,Object(r.keys)(this.options.valuesOptions));Object(r.each)(i,e=>{this.options.valuesOptions[e]={},this.form.valuesList.push(e)}),Object(r.each)(Object(r.keys)(this.options.valuesOptions),e=>{-1===o.indexOf(e)&&delete this.options.valuesOptions[e]}),this.form.valuesList=Object(r.intersection)(this.form.valuesList,o)}},m=(e,t)=>{this.options.columnMapping[t]=e},f=e=>m("unused",e);c(),e.$watch("$ctrl.options.columnMapping",d,!0),e.$watch("$ctrl.data",()=>{u(),d()}),e.$watchCollection("$ctrl.form.seriesList",e=>{Object(r.each)(e,(e,t)=>{this.options.seriesOptions[e].zIndex=t,this.options.seriesOptions[e].index=0})}),e.$watchCollection("$ctrl.form.yAxisColumns",(e,t)=>{Object(r.each)(t,f),Object(r.each)(e,Object(r.partial)(m,"y"))}),e.$watch("$ctrl.form.xAxisColumn",(e,t)=>{void 0!==t&&f(t),void 0!==e&&m("x",e)}),e.$watch("$ctrl.form.errorColumn",(e,t)=>{void 0!==t&&f(t),void 0!==e&&m("yError",e)}),e.$watch("$ctrl.form.sizeColumn",(e,t)=>{void 0!==t&&f(t),void 0!==e&&m("size",e)}),e.$watch("$ctrl.form.zValColumn",(e,t)=>{void 0!==t&&f(t),void 0!==e&&m("zVal",e)}),e.$watch("$ctrl.form.groupby",(e,t)=>{void 0!==t&&f(t),void 0!==e&&m("series",e)}),e.$watch("$ctrl.options",e=>{this.onOptionsChange(e)},!0),this.templateHint='\n <div class="p-b-5">Use special names to access additional properties:</div>\n <div><code>{{ @@name }}</code> series name;</div>\n <div><code>{{ @@x }}</code> x-value;</div>\n <div><code>{{ @@y }}</code> y-value;</div>\n <div><code>{{ @@yPercent }}</code> relative y-value;</div>\n <div><code>{{ @@yError }}</code> y deviation;</div>\n <div><code>{{ @@size }}</code> bubble size;</div>\n <div class="p-t-5">Also, all query result columns can be referenced using\n <code class="text-nowrap">{{ column_name }}</code> syntax.</div>\n '}]};function h(e){e.component("chartEditor",f),e.run(["$injector",e=>{Object(o.registerVisualization)({type:"CHART",name:"Chart",isDefault:!0,getOptions:e=>{var t=Object(r.merge)({},m,{showDataLabels:"pie"===e.globalSeriesType,dateTimeFormat:i.clientConfig.dateTimeFormat},e);return["normal","percent"].indexOf(t.series.stacking)>=0&&(t.series.percentValues="percent"===t.series.stacking,t.series.stacking="stack"),t},Renderer:d.default,Editor:Object(a.angular2react)("chartEditor",f,e),defaultColumns:3,defaultRows:8,minColumns:1,minRows:5})}])}h.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"ChoroplethPalette",function(){return w}),n.d(t,"default",function(){return x});var r=n(2),a=n.n(r),o=n(87),i=n.n(o),s=(n(744),n(51)),l=(n(745),n(746),n(59)),c=n(20),u=n(103),d=n(137),p=n(785),m=n.n(p),f=n(786),h=n.n(f),g=n(787),b=n.n(g),y=n(788),v=n.n(y),w=a.a.extend({},d.AdditionalColors,u.default),O={mapType:"countries",countryCodeColumn:"",countryCodeType:"iso_a3",valueColumn:"",clusteringMode:"e",steps:5,valueFormat:"0,0.00",noValuePlaceholder:"N/A",colors:{min:w["Light Blue"],max:w["Dark Blue"],background:w.White,borders:w.White,noValue:w["Light Gray"]},legend:{visible:!0,position:"bottom-left",alignText:"right"},tooltip:{enabled:!0,template:"<b>{{ @@name }}</b>: {{ @@value }}"},popup:{enabled:!0,template:"Country: <b>{{ @@name_long }} ({{ @@iso_a2 }})</b>\n<br>\nValue: <b>{{ @@value }}</b>"}},j=a.a.bind(function(e,t){return this[t]||(this[t]=e.get(t).then(e=>e.data)),this[t]},{}),E={template:m.a,bindings:{data:"<",options:"<",onOptionsChange:"<"},controller:["$scope","$element","$sanitize","$http",function(e,t,n,r){var o=this,l=null,c=null,u=null,p=!1,m=()=>{p=!0},f=()=>{var t=c.getBounds();this.options.bounds=[[t._southWest.lat,t._southWest.lng],[t._northEast.lat,t._northEast.lng]],this.onOptionsChange&&this.onOptionsChange(this.options),e.$applyAsync(()=>{p=!1})},h=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).disableAnimation,t=void 0!==e&&e;if(!p&&c&&u){var n=o.options.bounds||u.getBounds(),r=t?{animate:!1,duration:0}:null;c.fitBounds(n,r)}},g=e=>{switch(e){case"countries":return b.a;case"subdiv_japan":return v.a;default:return""}},y=g(this.options.mapType),w=()=>{if(c&&(c.remove(),c=null,u=null),l){this.formatValue=Object(d.createNumberFormatter)(this.options.valueFormat,this.options.noValuePlaceholder);var e=Object(d.prepareData)(this.data.rows,this.options.countryCodeColumn,this.options.valueColumn),r=Object(d.createScale)(l.features,e,this.options),a=r.limits,o=r.colors,p=r.legend;this.legendItems=p;var g=(u=i.a.geoJson(l,{onEachFeature:(t,r)=>{var i=Object(d.getValueForFeature)(t,e,this.options.countryCodeType),l=this.formatValue(i),c=Object(d.prepareFeatureProperties)(t,l,e,this.options.countryCodeType),u=Object(d.getColorByValue)(i,a,o,this.options.colors.noValue);r.setStyle({color:this.options.colors.borders,weight:1,fillColor:u,fillOpacity:1}),this.options.tooltip.enabled&&r.bindTooltip(n(Object(s.e)(this.options.tooltip.template,c)),{sticky:!0}),this.options.popup.enabled&&r.bindPopup(n(Object(s.e)(this.options.popup.template,c))),r.on("mouseover",()=>{r.setStyle({weight:2,fillColor:Object(d.darkenColor)(u)})}),r.on("mouseout",()=>{r.setStyle({weight:1,fillColor:u})})}})).getBounds();(c=i.a.map(t[0].children[0].children[0],{center:g.getCenter(),zoom:1,zoomSnap:0,layers:[u],scrollWheelZoom:!1,maxBounds:g,maxBoundsViscosity:1,attributionControl:!1,fullscreenControl:!0})).on("focus",()=>{c.on("movestart",m),c.on("moveend",f)}),c.on("blur",()=>{c.off("movestart",m),c.off("moveend",f)}),h({disableAnimation:!0})}},O=()=>{j(r,y).then(e=>{a.a.isObject(e)&&(l=e,w())})};O(),e.handleResize=a.a.debounce(()=>{c&&(c.invalidateSize(!1),h({disableAnimation:!0}))},50),e.$watch("$ctrl.data",w),e.$watch(()=>a.a.omit(this.options,"bounds","mapType"),w,!0),e.$watch("$ctrl.options.bounds",h,!0),e.$watch("$ctrl.options.mapType",()=>{y=g(this.options.mapType),O()},!0)}]},S={template:h.a,bindings:{data:"<",options:"<",onOptionsChange:"<"},controller:["$scope",function(e){this.currentTab="general",this.setCurrentTab=(e=>{this.currentTab=e}),this.colors=w,this.mapTypes={countries:"Countries",subdiv_japan:"Japan/Prefectures"},this.clusteringModes={q:"quantile",e:"equidistant",k:"k-means"},this.legendPositions={"top-left":"top / left","top-right":"top / right","bottom-left":"bottom / left","bottom-right":"bottom / right"},this.countryCodeTypes={},this.templateHintFormatter=(e=>'\n <div class="p-b-5">All query result columns can be referenced using <code>{{ column_name }}</code> syntax.</div>\n <div class="p-b-5">Use special names to access additional properties:</div>\n <div><code>{{ @@value }}</code> formatted value;</div>\n '.concat(e,'\n <div class="p-t-5">This syntax is applicable to tooltip and popup templates.</div>\n '));var t=()=>{this.options.countryCodeType=Object(d.inferCountryCodeType)(this.options.mapType,this.data?this.data.rows:[],this.options.countryCodeColumn)||this.options.countryCodeType};e.$watch("$ctrl.options.mapType",()=>{var e="";switch(this.options.mapType){case"subdiv_japan":e="\n <div><code>{{ @@name }}</code> Prefecture name in English;</div>\n <div><code>{{ @@name_local }}</code> Prefecture name in Kanji;</div>\n <div><code>{{ @@iso_3166_2 }}</code> five-letter ISO subdivision code (JP-xx);</div>\n ",this.countryCodeTypes={name:"Name",name_local:"Name (local)",iso_3166_2:"ISO-3166-2"};break;case"countries":e="\n <div><code>{{ @@name }}</code> short country name;</div>\n <div><code>{{ @@name_long }}</code> full country name;</div>\n <div><code>{{ @@abbrev }}</code> abbreviated country name;</div>\n <div><code>{{ @@iso_a2 }}</code> two-letter ISO country code;</div>\n <div><code>{{ @@iso_a3 }}</code> three-letter ISO country code;</div>\n <div><code>{{ @@iso_n3 }}</code> three-digit ISO country code.</div>\n ",this.countryCodeTypes={name:"Short name",name_long:"Full name",abbrev:"Abbreviated name",iso_a2:"ISO code (2 letters)",iso_a3:"ISO code (3 letters)",iso_n3:"ISO code (3 digits)"};break;default:this.countryCodeTypes={}}this.templateHint=this.templateHintFormatter(e)}),e.$watch("$ctrl.options.countryCodeColumn",t),e.$watch("$ctrl.data",t),e.$watch("$ctrl.options",e=>{this.onOptionsChange(e)},!0)}]};function x(e){e.component("choroplethRenderer",E),e.component("choroplethEditor",S),e.run(["$injector",e=>{Object(c.registerVisualization)({type:"CHOROPLETH",name:"Map (Choropleth)",getOptions:e=>a.a.merge({},O,e),Renderer:Object(l.angular2react)("choroplethRenderer",E,e),Editor:Object(l.angular2react)("choroplethEditor",S,e),defaultColumns:3,defaultRows:8,minColumns:2})}])}x.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return b});n(27),n(222),n(223),n(11),n(19);var r=n(2),a=n.n(r),o=n(9),i=n.n(o),s=(n(1576),n(1577),n(59)),l=n(20),c=n(789);function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d={weekly:"weeks",daily:"days",monthly:"months"},p={timeInterval:"daily",mode:"diagonal",dateColumn:"date",stageColumn:"day_number",totalColumn:"total",valueColumn:"value"};function m(e){var t={};return a.a.each(e,e=>{var n=e.date+0;t[n]=t[n]||{date:i()(e.date),total:parseInt(e.total,10),values:{}},t[n].values[e.stage]=parseInt(e.value,10)}),a.a.values(t)}function f(e,t){e=a.a.map(e,e=>({date:e[t.dateColumn],stage:parseInt(e[t.stageColumn],10),total:parseFloat(e[t.totalColumn]),value:parseFloat(e[t.valueColumn])}));var n,r=a.a.sortBy(e,e=>e.date+e.stage),o=i()(r[0].date).toDate();switch(t.mode){case"simple":n=function(e,t){var n=t.timeInterval,r=m(e),o=a.a.map(e,e=>e.stage),i=a.a.min(o),s=a.a.max(o),l=null,c=[];return a.a.each(r,e=>{if(null!==l)for(var t=Math.abs(l.diff(e.date,d[n]));t>1;)c.push([0]),t-=1;l=e.date;for(var r=[e.total],a=i;a<=s;a+=1)r.push(e.values[a]);c.push(r)}),c}(r,t);break;default:n=function(e,t){var n=t.timeInterval,r=m(e),o=a.a.min(a.a.map(e,e=>e.stage)),s=i()(a.a.last(r).date).diff(a.a.first(r).date,d[n]),l=o+s,c=null,u=[];return a.a.each(r,e=>{if(null!==c)for(var t=Math.abs(c.diff(e.date,d[n]));t>1;){for(var r=[0],a=o;a<=l;a+=1)r.push(e.values[a]||0);u.push(r),l-=1,t-=1}c=e.date;for(var i=[e.total],s=o;s<=l;s+=1)i.push(e.values[s]||0);l-=1,u.push(i)}),u}(r,t)}return{data:n,initialDate:o}}var h={bindings:{data:"<",options:"<"},template:"",replace:!1,controller:["$scope","$element",function(e,t){e.options=a.a.extend({},p,e.options);var n=()=>{if(t.empty(),0!==this.data.rows.length){var e=this.options,n=a.a.map(this.data.columns,e=>e.name);if(a.a.includes(n,e.dateColumn)&&a.a.includes(n,e.stageColumn)&&a.a.includes(n,e.totalColumn)&&a.a.includes(n,e.valueColumn)){var r=f(this.data.rows,e),o=r.data,i=r.initialDate;Cornelius.draw({initialDate:i,container:t[0],cohort:o,title:null,timeInterval:e.timeInterval,labels:{time:"Time",people:"Users",weekOf:"Week of"}})}}};e.$watch("$ctrl.data",n),e.$watch("$ctrl.options",n,!0)}]},g={template:n.n(c).a,bindings:{data:"<",options:"<",onOptionsChange:"<"},controller:["$scope",function(e){this.currentTab="columns",this.setCurrentTab=(e=>{this.currentTab=e}),e.$watch("$ctrl.options",e=>{this.onOptionsChange(e)},!0)}]};function b(e){e.component("cohortRenderer",h),e.component("cohortEditor",g),e.run(["$injector",e=>{Object(l.registerVisualization)({type:"COHORT",name:"Cohort",getOptions:e=>(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){u(e,t,n[t])})}return e})({},p,e),Renderer:Object(s.angular2react)("cohortRenderer",h,e),Editor:Object(s.angular2react)("cohortEditor",g,e),autoHeight:!0,defaultRows:8})}])}b.init=!0},,,,,function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return l});n(11),n(19),n(27);var r=n(20),a=n(506),o=n(505);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s={counterLabel:"",counterColName:"counter",rowNumber:1,targetRowNumber:1,stringDecimal:0,stringDecChar:".",stringThouSep:",",tooltipFormat:"0,0.000"};function l(){Object(r.registerVisualization)({type:"COUNTER",name:"Counter",getOptions:e=>(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i(e,t,n[t])})}return e})({},s,e),Renderer:a.default,Editor:o.default,defaultColumns:2,defaultRows:5})}l.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return l});n(11),n(19),n(27);var r=n(20),a=n(508),o=n(507);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s={};function l(){Object(r.registerVisualization)({type:"DETAILS",name:"Details View",getOptions:e=>(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i(e,t,n[t])})}return e})({},s,e),Renderer:a.default,Editor:o.default,defaultColumns:2,defaultRows:2})}l.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return v});n(11),n(165);var r=n(2),a=n(13),o=n.n(a),i=n(66),s=n.n(i),l=n(59),c=n(20),u=n(71),d=n(103),p=n(790),m=n.n(p),f=(n(1585),{stepCol:{colName:"",displayAs:"Steps"},valueCol:{colName:"",displayAs:"Value"},sortKeyCol:{colName:""},autoSort:!0});function h(e){return e<.01?"<0.01%":e>1e3?">1000%":e.toFixed(2)+"%"}function g(e,t){this.element=t,this.watches=[];var n=o.a.select(t),a=e.$ctrl.options;function i(e){!function(e){var t=o.a.max(e,e=>e.pctPrevious),r=n.append("table").attr("class","table table-condensed table-hover table-borderless"),i=r.append("thead").append("tr");i.append("th").text(a.stepCol.displayAs),i.append("th").attr("class","text-center").text(a.valueCol.displayAs),i.append("th").attr("class","text-center").text("% Max"),i.append("th").attr("class","text-center").text("% Previous");var s=r.append("tbody").selectAll("tr").data(e).enter().append("tr");s.append("td").attr("class","col-xs-3 step").attr("title",e=>e.step).text(e=>e.step);var l=s.append("td").attr("class","col-xs-5").append("div").attr("class","container");l.append("div").attr("class","bar centered").style("background-color",d.default.Cyan).style("width",e=>e.pctMax+"%"),l.append("div").attr("class","value").text(e=>e.value.toLocaleString()),s.append("td").attr("class","col-xs-2 text-center").text(e=>h(e.pctMax));var c=s.append("td").attr("class","col-xs-2").append("div").attr("class","container");c.append("div").attr("class","bar").style("background-color",d.default.Gray).style("opacity","0.2").style("width",e=>e.pctPrevious/t*100+"%"),c.append("div").attr("class","value").text(e=>h(e.pctPrevious))}(e)}function s(){if(n.selectAll("table").remove(),t=Object(r.map)(e.$ctrl.data.columns,e=>e.name),s=[a.stepCol.colName,a.valueCol.colName],a.autoSort||s.push(a.sortKeyCol.colName),!(Object(r.difference)(s,t).length>0)){var t,s,l=function(e){if(0===e.length)return[];var t,n=e.map(e=>({step:Object(u.normalizeValue)(e[a.stepCol.colName]),value:Number(e[a.valueCol.colName]),sortVal:a.autoSort?"":e[a.sortKeyCol.colName]}),[]);if(0!==(t=a.autoSort?Object(r.sortBy)(n,"value").reverse():Object(r.sortBy)(n,"sortVal"))[0].value&&Object(r.every)(t,e=>Object(r.isFinite)(e.value))){var i=o.a.max(n,e=>e.value);return t.forEach((e,n)=>{e.pctMax=e.value/i*100,e.pctPrevious=0===n?100:e.value/t[n-1].value*100}),t.slice(0,100)}}(e.$ctrl.data.rows);l.length>0&&i(l)}}s(),this.watches.push(e.$watch("$ctrl.data",s)),this.watches.push(e.$watch("$ctrl.options",s,!0))}g.prototype.remove=function(){this.watches.forEach(e=>{e()}),s.a.element(this.element).empty()};var b={template:'<div class="funnel-visualization-container" resize-event="handleResize()"></div>',bindings:{data:"<",options:"<"},controller:["$scope","$element",function(e,t){var n=t[0].querySelector(".funnel-visualization-container"),a=new g(e,n),o=()=>{a.remove(),a=new g(e,n)};e.handleResize=Object(r.debounce)(o,50),e.$watch("$ctrl.data",o),e.$watch("$ctrl.options",o,!0)}]},y={template:m.a,bindings:{data:"<",options:"<",onOptionsChange:"<"},controller:["$scope",function(e){e.$watch("$ctrl.options",e=>{this.onOptionsChange(e)},!0)}]};function v(e){e.component("funnelRenderer",b),e.component("funnelEditor",y),e.run(["$injector",e=>{Object(c.registerVisualization)({type:"FUNNEL",name:"Funnel",getOptions:e=>Object(r.merge)({},f,e),Renderer:Object(l.angular2react)("funnelRenderer",b,e),Editor:Object(l.angular2react)("funnelEditor",y,e),defaultRows:10})}])}v.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return T});n(55),n(96),n(90),n(14),n(15),n(27),n(11),n(19);var r=n(2),a=n.n(r),o=n(13),i=n.n(o),s=n(87),l=n.n(s),c=(n(1587),n(744),n(1588),n(1589),n(1590),n(1591),n(791)),u=n.n(c),d=n(792),p=n.n(d),m=n(793),f=n.n(m),h=(n(745),n(746),n(59)),g=n(20),b=n(103),y=n(794),v=n.n(y),w=n(795),O=n.n(w);function j(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}l.a.Icon.Default.mergeOptions({iconUrl:u.a,iconRetinaUrl:p.a,shadowUrl:f.a}),delete l.a.Icon.Default.prototype._getIconUrl;var S=[{name:"OpenStreetMap",url:"//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"},{name:"OpenStreetMap BW",url:"//{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png"},{name:"OpenStreetMap DE",url:"//{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png"},{name:"OpenStreetMap FR",url:"//{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png"},{name:"OpenStreetMap Hot",url:"//{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png"},{name:"Thunderforest",url:"//{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png"},{name:"Thunderforest Spinal",url:"//{s}.tile.thunderforest.com/spinal-map/{z}/{x}/{y}.png"},{name:"OpenMapSurfer",url:"//korona.geog.uni-heidelberg.de/tiles/roads/x={x}&y={y}&z={z}"},{name:"Stamen Toner",url:"//stamen-tiles-{s}.a.ssl.fastly.net/toner/{z}/{x}/{y}.png"},{name:"Stamen Toner Background",url:"//stamen-tiles-{s}.a.ssl.fastly.net/toner-background/{z}/{x}/{y}.png"},{name:"Stamen Toner Lite",url:"//stamen-tiles-{s}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.png"},{name:"OpenTopoMap",url:"//{s}.tile.opentopomap.org/{z}/{x}/{y}.png"}],x={marker:[14,32],circle:[10,10],rectangle:[11,11],"circle-dot":[1,2],"rectangle-dot":[1,2],doughnut:[8,8]},P={rectangle:[0,-3],circle:[1,-3]},C={classify:"none",clusterMarkers:!0,iconShape:"marker",iconFont:"circle",foregroundColor:"#ffffff",backgroundColor:"#356AFF",borderColor:"#356AFF"};var k={template:v.a,bindings:{data:"<",options:"<",onOptionsChange:"<"},controller:["$scope","$element",function(e,t){var n=this,r=i.a.scale.category10(),o=l.a.map(t[0].children[0].children[0],{scrollWheelZoom:!1,fullscreenControl:!0}),s=l.a.control.layers().addTo(o),c={},u=l.a.tileLayer("//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(o),d=!1,p=()=>{d=!0},m=()=>{this.options.bounds=o.getBounds(),this.onOptionsChange&&this.onOptionsChange(this.options)},f=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).disableAnimation,t=void 0!==e&&e;if(!d){var r=n.options.bounds;if(r)o.fitBounds([[r._southWest.lat,r._southWest.lng],[r._northEast.lat,r._northEast.lng]]);else if(c){var i=a.a.flatten(a.a.map(a.a.values(c),e=>e.getLayers()));if(i.length>0){var s=new l.a.featureGroup(i),u=t?{animate:!1,duration:0}:null;o.fitBounds(s.getBounds(),u)}}}};o.on("focus",()=>{o.on("movestart",p),o.on("moveend",m)}),o.on("blur",()=>{o.off("movestart",p),o.off("moveend",m)});var h=(e,t)=>{var n,r=this.options.latColName||"lat",i=this.options.lonColName||"lon",u=this.options.classify;if(this.options.clusterMarkers){var d=this.options.groups[e].color,p={};u&&(p.iconCreateFunction=(e=>{var t=e.getChildCount(),n=" marker-cluster-";n+=t<10?"small":t<100?"medium":"large",n="";var r="color: white; background-color: ".concat(d,";");return l.a.divIcon({html:'<div style="'.concat(r,'"><span>').concat(t,"</span></div>"),className:"marker-cluster".concat(n),iconSize:new l.a.Point(40,40)})})),n=l.a.markerClusterGroup(p)}else n=l.a.layerGroup();a.a.each(t,t=>{var o,s=t[r],c=t[i];if(null!==s&&null!==c){if(u&&"none"!==u)o=function(e,t,n){var r={fillColor:n,fillOpacity:.9,stroke:!1};return l.a.circleMarker([e,t],r)}(s,c,this.options.groups[e].color);else if(this.options.customizeMarkers)o=((e,t,n)=>l.a.marker([e,t],{icon:n}))(s,c,l.a.BeautifyIcon.icon({iconShape:this.options.iconShape,icon:this.options.iconFont,iconSize:"rectangle"===this.options.iconShape&&[22,22],iconAnchor:x[this.options.iconShape],popupAnchor:P[this.options.iconShape],prefix:"fa",textColor:this.options.foregroundColor,backgroundColor:this.options.backgroundColor,borderColor:this.options.borderColor}));else o=((e,t)=>l.a.marker([e,t]))(s,c);o.bindPopup(function(e,t,n){var r=n[e],o=n[t],i='<ul style="list-style-type: none;padding-left: 0">';return i+="<li><strong>".concat(r,", ").concat(o,"</strong>"),a.a.each(n,(n,r)=>{r!==e&&r!==t&&(i+="<li>".concat(r,": ").concat(n,"</li>"))}),i}(r,i,t)),n.addLayer(o)}}),n.addTo(o),c[e]=n,s.addOverlay(n,e)},g=()=>{var e=this.options.classify;if(u.setUrl(this.options.mapTileUrl||"//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"),void 0===this.options.clusterMarkers&&(this.options.clusterMarkers=!0),this.data){var t;t=e&&"none"!==e?a.a.groupBy(this.data.rows,e):{All:this.data.rows};var n=a.a.keys(t),i=a.a.map(n,e=>this.options.groups&&this.options.groups[e]?this.options.groups[e]:{color:r(e)});this.options.groups=a.a.zipObject(n,i),a.a.each(c,e=>{(e=>{e&&(s.removeLayer(e),o.removeLayer(e))})(e)}),a.a.each(t,(e,t)=>{h(t,e)}),f({disableAnimation:!0})}};e.handleResize=(()=>{o&&(o.invalidateSize(!1),f({disableAnimation:!0}))}),e.$watch("$ctrl.data",g),e.$watch(()=>a.a.omit(this.options,"bounds"),g,!0),e.$watch("$ctrl.options.bounds",f,!0)}]},_={template:O.a,bindings:{data:"<",options:"<",onOptionsChange:"<"},controller:["$scope",function(e){this.currentTab="general",this.setCurrentTab=(e=>{this.currentTab=e}),this.mapTiles=S,this.iconShapes={marker:"Marker + Icon",doughnut:"Circle","circle-dot":"Circle Dot",circle:"Circle + Icon","rectangle-dot":"Square Dot",rectangle:"Square + Icon"},this.colors=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){E(e,t,n[t])})}return e}({White:"#ffffff"},b.default),e.$watch("$ctrl.data.columns",()=>{this.columns=this.data.columns,this.columnNames=a.a.map(this.columns,e=>e.name),this.classifyColumns=[].concat(j(this.columnNames),["none"])}),e.$watch("$ctrl.options",e=>{this.onOptionsChange(e)},!0)}]};function T(e){e.component("mapRenderer",k),e.component("mapEditor",_),e.run(["$injector",e=>{Object(g.registerVisualization)({type:"MAP",name:"Map (Markers)",getOptions:e=>a.a.merge({},C,e),Renderer:Object(h.angular2react)("mapRenderer",k,e),Editor:Object(h.angular2react)("mapEditor",_,e),defaultColumns:3,defaultRows:8,minColumns:2})}])}T.init=!0},,,,,,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return f});n(11),n(19),n(27);var r=n(2),a=n(66),o=n.n(a),i=n(83),s=n.n(i),l=(n(1593),n(1594),n(59)),c=n(20),u=(n(1595),n(509));function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p={controls:{enabled:!1},rendererOptions:{table:{colTotals:!0,rowTotals:!0}}},m={template:'\n <div class="pivot-table-renderer" ng-class="{\'hide-controls\': $ctrl.options.controls.enabled}"></div>\n ',bindings:{data:"<",options:"<",onOptionsChange:"<"},controller:["$scope","$element",function(e,t){var n=()=>{var e=o.a.copy(this.data.rows),n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){d(e,t,n[t])})}return e}({renderers:s.a.pivotUtilities.renderers,onRefresh:e=>{this.onOptionsChange&&(e=Object(r.omit)(e,["aggregators","renderers","onRefresh","localeStrings"]),this.onOptionsChange(e))}},this.options);s()(".pivot-table-renderer",t).pivotUI(e,n,!0)};e.$watch("$ctrl.data",n),e.$watch(()=>Object(r.omit)(this.options,"controls"),n,!0)}]};function f(e){e.component("pivotTableRenderer",m),e.run(["$injector",e=>{Object(c.registerVisualization)({type:"PIVOT",name:"Pivot Table",getOptions:e=>Object(r.merge)({},p,e),Renderer:Object(l.angular2react)("pivotTableRenderer",m,e),Editor:u.default,defaultRows:10,defaultColumns:3,minColumns:2})}])}f.init=!0},,,function(e,t,n){},,,function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return w});n(11),n(19),n(27),n(222),n(223);var r=n(2),a=n.n(r),o=n(59),i=n(492),s=n(10),l=n(20),c=n(796),u=n.n(c),d=(n(1600),n(512)),p=n(205);function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){f(e,t,n[t])})}return e}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=[5,10,15,20,25,50,100,150,200,250],g={itemsPerPage:25};function b(e){return["integer","float","boolean","date","datetime"].indexOf(e)>=0?"right":"left"}function y(e,t){var n=function(e){var t={integer:"number",float:"number",boolean:"boolean",date:"datetime",datetime:"datetime"};return a.a.map(e,(e,n)=>({name:e.name,type:e.type,displayAs:t[e.type]||"string",visible:!0,order:1e5+n,title:Object(i.getColumnCleanName)(e.name),allowSearch:!1,alignContent:b(e.type),allowHTML:!0,highlightLinks:!1}))}(e);return t=function(e,t){e=a.a.map(e,e=>e.name),t=a.a.map(t,e=>e.name),t=a.a.filter(t,t=>a.a.includes(e,t)),e=a.a.filter(e,e=>a.a.includes(t,e));for(var n=0;n<e.length;n+=1)if(t[n]!==e[n])return!0;return!1}(e,t)?a.a.fromPairs(a.a.map(t,(e,t)=>[e.name,a.a.extend({},e,{order:t})])):a.a.fromPairs(a.a.map(t,e=>[e.name,a.a.omit(e,"order")])),a.a.each(n,e=>a.a.extend(e,t[e.name])),a.a.sortBy(n,"order")}var v={bindings:{data:"<",options:"<",onOptionsChange:"<"},template:u.a,controller:["$scope",function(e){this.allowedItemsPerPage=h,this.displayAsOptions=a.a.map(p.ColumnTypes,(e,t)=>{return{name:e.friendlyName,value:t}}),this.currentTab="columns",this.setCurrentTab=(e=>{this.currentTab=e}),e.$watch("$ctrl.options",e=>{this.onOptionsChange(e)},!0),this.templateHint="\n All columns can be referenced using <code>{{ column_name }}</code> syntax.\n Use <code>{{ @ }}</code> to reference current (this) column.\n This syntax is applicable to URL, Title and Size options.\n "}]};function w(e){e.component("gridEditor",v),e.run(["$injector",e=>{Object(l.registerVisualization)({type:"TABLE",name:"Table",getOptions:(e,t)=>{var n=t.columns;return(e=m({},g,e)).columns=a.a.map(y(n,e.columns),e=>m({},function(e){var t={date:s.clientConfig.dateFormat||"DD/MM/YYYY",datetime:s.clientConfig.dateTimeFormat||"DD/MM/YYYY HH:mm"},n={integer:s.clientConfig.integerFormat||"0,0",float:s.clientConfig.floatFormat||"0,0.00"};return{dateTimeFormat:t[e.type],numberFormat:n[e.type],booleanValues:s.clientConfig.booleanValues||["false","true"],imageUrlTemplate:"{{ @ }}",imageTitleTemplate:"{{ @ }}",imageWidth:"",imageHeight:"",linkUrlTemplate:"{{ @ }}",linkTextTemplate:"{{ @ }}",linkTitleTemplate:"{{ @ }}",linkOpenInNewTab:!0}}(e),e)),e},Renderer:d.default,Editor:Object(o.angular2react)("gridEditor",v,e),autoHeight:!0,defaultRows:14,defaultColumns:3,minColumns:2})}])}w.init=!0},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return l});var r=n(2),a=n(20),o=n(521),i=n(520),s={column:"",frequenciesColumn:"",wordLengthLimit:{min:null,max:null},wordCountLimit:{min:null,max:null}};function l(){Object(a.registerVisualization)({type:"WORD_CLOUD",name:"Word Cloud",getOptions:e=>Object(r.merge)({},s,e),Renderer:o.default,Editor:i.default,defaultRows:8})}l.init=!0},function(e,t,n){var r={"./admin/OutdatedQueries.jsx":1604,"./admin/SystemStatus.jsx":1605,"./admin/Tasks.jsx":1607,"./alert/index.js":1608,"./alerts/AlertsList.jsx":1609,"./dashboards/DashboardList.jsx":1610,"./dashboards/DashboardListEmptyState.jsx":522,"./dashboards/ShareDashboardDialog.jsx":523,"./dashboards/dashboard.js":1612,"./dashboards/public-dashboard-page.js":1614,"./data-sources/DataSourcesList.jsx":1615,"./data-sources/EditDataSource.jsx":1616,"./destinations/DestinationsList.jsx":1617,"./destinations/EditDestination.jsx":1618,"./groups/GroupDataSources.jsx":1619,"./groups/GroupMembers.jsx":1620,"./groups/GroupsList.jsx":1621,"./home/index.js":1622,"./queries-list/QueriesList.jsx":1623,"./queries-list/QueriesListEmptyState.jsx":524,"./queries/add-to-dashboard.js":1625,"./queries/source-view.js":1626,"./queries/view.js":1627,"./query-snippets/QuerySnippetsList.jsx":1628,"./settings/OrganizationSettings.jsx":1630,"./users/UserProfile.jsx":1631,"./users/UsersList.jsx":1633,"./users/index.js":1634};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=1603},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return q});n(14),n(15),n(29);var r=n(2),a=n(0),o=n.n(a),i=n(17),s=n(129),l=n.n(s),c=n(32),u=n(75),d=n(128),p=n(282),m=n(170),f=n(197),h=n(49),g=n(76),b=n(68),y=n(46),v=n(61),w=n(24),O=n(22),j=n(39),E=n(58),S=n(48);function x(e){return(x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function P(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function k(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var $=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,s=new Array(i),l=0;l<i;l++)s[l]=arguments[l];return r=this,a=(e=C(t)).call.apply(e,[this].concat(s)),n=!a||"object"!==x(a)&&"function"!=typeof a?k(r):a,T(k(n),"listColumns",[{title:"ID",field:"id",width:"1%",align:"right",sorter:!0},w.Columns.custom.sortable((e,t)=>o.a.createElement(o.a.Fragment,null,o.a.createElement("a",{className:"table-main-title",href:"queries/"+t.id},t.name),o.a.createElement(d.QueryTagsControl,{className:"d-block",tags:t.tags,isDraft:t.is_draft,isArchived:t.is_archived})),{title:"Name",field:"name",width:null}),w.Columns.avatar({field:"user",className:"p-l-0 p-r-0"},e=>"Created by ".concat(e)),w.Columns.dateTime.sortable({title:"Created At",field:"created_at"}),w.Columns.duration.sortable({title:"Runtime",field:"runtime"}),w.Columns.dateTime.sortable({title:"Last Executed At",field:"retrieved_at",orderByField:"executed_at"}),w.Columns.custom.sortable((e,t)=>o.a.createElement(p.SchedulePhrase,{schedule:t.schedule,isNew:t.isNew()}),{title:"Update Schedule",field:"schedule"})]),T(k(n),"state",{autoUpdate:!0}),T(k(n),"_updateTimer",null),T(k(n),"update",function(){!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&n.state.autoUpdate&&n.props.controller.update(),n._updateTimer=setTimeout(n.update,6e4)}),n}var n,r,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_(e,t)}(t,o.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){Object(E.default)("view","page","admin/queries/outdated"),this.update(!0)}},{key:"componentWillUnmount",value:function(){clearTimeout(this._updateTimer)}},{key:"render",value:function(){var e=this.props.controller;return o.a.createElement(f.default,{activeTab:e.params.currentPage},o.a.createElement(c.Row,{className:"m-15"},o.a.createElement(c.Col,{span:16},o.a.createElement("div",null,o.a.createElement("label",{htmlFor:"auto-update-switch",className:"m-0"},"Auto update"),o.a.createElement(l.a,{id:"auto-update-switch",className:"m-l-10",checked:this.state.autoUpdate,onChange:e=>this.setState({autoUpdate:e})})),e.params.lastUpdatedAt&&o.a.createElement("div",{className:"m-t-5"},"Last updated:"," ",o.a.createElement(m.TimeAgo,{date:1e3*e.params.lastUpdatedAt}))),o.a.createElement(c.Col,{span:8},e.isLoaded&&!e.isEmpty&&o.a.createElement(v.PageSizeSelect,{options:e.pageSizeOptions,value:e.itemsPerPage,onChange:t=>e.updatePagination({itemsPerPage:t})}))),!e.isLoaded&&o.a.createElement(y.default,null),e.isLoaded&&e.isEmpty&&o.a.createElement("div",{className:"text-center p-15"},"There are no outdated queries."),e.isLoaded&&!e.isEmpty&&o.a.createElement("div",{className:"bg-white tiled table-responsive"},o.a.createElement(w.default,{items:e.pageItems,columns:this.listColumns,orderByField:e.orderByField,orderByReverse:e.orderByReverse,toggleSorting:e.toggleSorting}),o.a.createElement(u.Paginator,{totalCount:e.totalItemsCount,itemsPerPage:e.itemsPerPage,page:e.page,onChange:t=>e.updatePagination({page:t})})))}}])&&P(n.prototype,r),a&&P(n,a),t}();function q(e){return e.component("pageOutdatedQueries",Object(i.react2angular)(Object(h.wrap)($,new g.ItemsSource({doRequest:function(e,t){return O.$http.get("/api/admin/queries/outdated").then(e=>{var n=e.data,r=n.queries,a=n.updated_at;return t.setCustomParams({lastUpdatedAt:parseFloat(a)}),r})},processResults:function(e){return Object(r.map)(e,e=>new j.Query(e))},isPlainList:!0}),new b.StateStorage({orderByField:"created_at",orderByReverse:!0})))),Object(S.b)([{path:"/admin/queries/outdated",title:"Outdated Queries",key:"outdated_queries"}],{template:'<page-outdated-queries on-error="handleError"></page-outdated-queries>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}T($,"propTypes",{controller:h.ControllerType.isRequired}),q.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return j});n(14),n(15),n(29);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(17),c=n(197),u=n(233),d=n(22),p=n(58),m=n(70),f=n(48);n(1606);function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var O=function(e){function t(){var e,n,a,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,s=new Array(i),l=0;l<i;l++)s[l]=arguments[l];return a=this,o=(e=b(t)).call.apply(e,[this].concat(s)),n=!o||"object"!==h(o)&&"function"!=typeof o?y(a):o,w(y(n),"state",{queues:[],manager:null,databaseMetrics:{},status:{}}),w(y(n),"_refreshTimer",null),w(y(n),"refresh",()=>{d.$http.get("/status.json").then(e=>{var t=e.data;n.setState({queues:t.manager.queues,manager:{startedAt:1e3*t.manager.started_at,lastRefreshAt:1e3*t.manager.last_refresh_at,outdatedQueriesCount:t.manager.outdated_queries_count},databaseMetrics:t.database_metrics.metrics||[],status:Object(r.omit)(t,["workers","manager","database_metrics"])})}).catch(e=>{e.status&&e.data&&(e=new m.a(e)),n.props.onError(e)}),n._refreshTimer=setTimeout(n.refresh,6e4)}),n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){Object(p.default)("view","page","admin/status"),this.refresh()}},{key:"componentWillUnmount",value:function(){clearTimeout(this._refreshTimer)}},{key:"render",value:function(){return o.a.createElement(c.default,{activeTab:"system_status"},o.a.createElement("div",{className:"system-status-page"},o.a.createElement("div",{className:"system-status-page-blocks"},o.a.createElement("div",{className:"system-status-page-block"},o.a.createElement(u.General,{info:this.state.status})),o.a.createElement("div",{className:"system-status-page-block"},o.a.createElement(u.Manager,{info:this.state.manager})),o.a.createElement("div",{className:"system-status-page-block"},o.a.createElement(u.Queues,{info:this.state.queues})),o.a.createElement("div",{className:"system-status-page-block"},o.a.createElement(u.DatabaseMetrics,{info:this.state.databaseMetrics})))))}}])&&g(n.prototype,a),i&&g(n,i),t}();function j(e){return e.component("pageSystemStatus",Object(l.react2angular)(O)),Object(f.b)([{path:"/admin/status",title:"System Status",key:"system_status"}],{template:'<page-system-status on-error="handleError"></page-system-status>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}w(O,"propTypes",{onError:s.a.func}),w(O,"defaultProps",{onError:()=>{}}),j.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return P});n(14),n(15),n(29);var r=n(2),a=n(9),o=n.n(a),i=n(0),s=n.n(i),l=n(17),c=n(121),u=n.n(c),d=n(104),p=n.n(d),m=n(32),f=n(197),h=n(173),g=n(22),b=n(58),y=n(48);function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function j(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var x=function(e){function t(){var e,n,a,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var s=arguments.length,l=new Array(s),c=0;c<s;c++)l[c]=arguments[c];return a=this,i=(e=O(t)).call.apply(e,[this].concat(l)),n=!i||"object"!==v(i)&&"function"!=typeof i?j(a):i,S(j(n),"state",{isLoading:!0,error:null,queues:[],queries:[],otherTasks:[],counters:{active:0,reserved:0,waiting:0}}),S(j(n),"processTasks",e=>{var t={},a=[],i=[],s={active:0,reserved:0,waiting:0};Object(r.each)(e,e=>{e.state=function(e){return"waiting_in_queue"===e?"waiting":e}(e.state),t[e.queue]=t[e.queue]||{name:e.queue,active:0,reserved:0,waiting:0},t[e.queue][e.state]+=1,e.enqueue_time&&(e.enqueue_time=o()(1e3*e.enqueue_time)),e.start_time&&(e.start_time=o()(1e3*e.start_time)),s[e.state]+=1,"redash.tasks.execute_query"===e.task_name?a.push(e):i.push(e)}),n.setState({isLoading:!1,queues:Object(r.values)(t),queries:a,otherTasks:i,counters:s})}),S(j(n),"handleError",e=>{n.setState({isLoading:!1,error:e})}),n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(t,s.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){Object(b.default)("view","page","admin/tasks"),g.$http.get("/api/admin/queries/tasks").then(e=>{var t=e.data;return this.processTasks(t.tasks)}).catch(e=>this.handleError(e))}},{key:"componentWillUnmount",value:function(){this.processTasks=(()=>{}),this.handleError=(()=>{})}},{key:"render",value:function(){var e=this.state,t=e.isLoading,n=e.error,r=e.queues,a=e.queries,o=e.otherTasks,i=e.counters;return s.a.createElement(f.default,{activeTab:"tasks"},s.a.createElement("div",{className:"p-15"},n&&s.a.createElement(u.a,{type:"error",message:"Failed loading status. Please refresh."}),!n&&s.a.createElement(s.a.Fragment,null,s.a.createElement(m.Row,{gutter:15,className:"m-b-15"},s.a.createElement(m.Col,{span:8},s.a.createElement(h.CounterCard,{title:"Active Tasks",value:i.active,loading:t})),s.a.createElement(m.Col,{span:8},s.a.createElement(h.CounterCard,{title:"Reserved Tasks",value:i.reserved,loading:t})),s.a.createElement(m.Col,{span:8},s.a.createElement(h.CounterCard,{title:"Waiting Tasks",value:i.waiting,loading:t}))),s.a.createElement(p.a,{defaultActiveKey:"queues",animated:!1},s.a.createElement(p.a.TabPane,{key:"queues",tab:"Queues"},s.a.createElement(h.QueuesTable,{loading:t,items:r})),s.a.createElement(p.a.TabPane,{key:"queries",tab:"Queries"},s.a.createElement(h.QueriesTable,{loading:t,items:a})),s.a.createElement(p.a.TabPane,{key:"other",tab:"Other Tasks"},s.a.createElement(h.OtherTasksTable,{loading:t,items:o}))))))}}])&&w(n.prototype,a),i&&w(n,i),t}();function P(e){return e.component("pageTasks",Object(l.react2angular)(x)),Object(y.b)([{path:"/admin/queries/tasks",title:"Celery Status",key:"tasks"}],{template:"<page-tasks></page-tasks>"})}P.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return m});n(114);var r=n(2),a=n(12),o=n(37),i=n.n(o),s=n(798),l=n.n(s),c=n(491),u=n(10),d=n(56);function p(e,t,n,o,s,l,p,m,f){this.alertId=t.alertId,this.hidePreview=!1,this.alertTemplate=new c.default,this.showExtendedOptions=u.clientConfig.extendedAlertOptions,"new"===this.alertId&&m.record("view","page","alerts/new"),this.trustAsHtml=(e=>o.trustAsHtml(e)),this.onQuerySelected=(t=>{this.alert.query=t,this.selectedQuery=new p(t),this.selectedQuery.getQueryResultPromise().then(e=>{this.queryResult=e,this.alert.options.column=this.alert.options.column||e.getColumnNames()[0]}),e.$applyAsync()}),"new"===this.alertId?(this.alert=new f({options:{}}),this.canEdit=!0):this.alert=f.get({id:this.alertId},e=>{this.onQuerySelected(e.query),this.canEdit=l.canEdit(this.alert)}),this.ops=["greater than","less than","equals"],this.selectedQuery=null;var h=Object(r.template)("<%= query.name %>: <%= options.column %> <%= options.op %> <%= options.value %>");this.getDefaultName=(()=>{if(this.alert.query)return h(this.alert)}),this.searchQueries=(e=>{!e||e.length<3||p.query({q:e},e=>{this.queries=e.results})}),this.saveChanges=(()=>{void 0!==this.alert.name&&""!==this.alert.name||(this.alert.name=this.getDefaultName()),""!==this.alert.rearm&&0!==this.alert.rearm||(this.alert.rearm=null),void 0!==this.alert.template&&""!==this.alert.template||(this.alert.template=null),this.alert.$save(e=>{a.default.success("Saved."),"new"===this.alertId&&n.path("/alerts/".concat(e.id)).replace()},()=>{a.default.error("Failed saving alert.")})}),this.preview=(()=>{var e=()=>a.default.error("Unable to render description. please confirm your template.");try{var t=this.alertTemplate.render(this.alert,this.queryResult.query_result.data);this.alert.preview=o.trustAsHtml(t.escaped),this.alert.previewHTML=o.trustAsHtml(s(t.raw)),t.raw||e()}catch(t){e(),this.alert.preview=t.message,this.alert.previewHTML=t.message}}),this.delete=(()=>{i.a.confirm({title:"Delete Alert",content:"Are you sure you want to delete this alert?",okText:"Delete",okType:"danger",onOk:()=>{this.alert.$delete(()=>{a.default.success("Alert destination deleted successfully."),Object(d.default)("/alerts",!0)},()=>{a.default.error("Failed deleting alert.")})},maskClosable:!0,autoFocusButton:null})})}function m(e){return e.component("alertPage",{template:l.a,controller:p}),{"/alerts/:alertId":{template:"<alert-page></alert-page>",title:"Alerts"}}}p.$inject=["$scope","$routeParams","$location","$sce","$sanitize","currentUser","Query","Events","Alert"],m.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return x});n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(17),i=n(2),s=n(156),l=n(75),c=n(198),u=n(49),d=n(76),p=n(68),m=n(46),f=n(24),h=n(292),g=n(48);function b(e){return(b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function w(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E={unknown:"label-warning",ok:"label-success",triggered:"label-danger"},S=function(e){function t(){var e,n,r,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var s=arguments.length,l=new Array(s),c=0;c<s;c++)l[c]=arguments[c];return r=this,n=!(o=(e=v(t)).call.apply(e,[this].concat(l)))||"object"!==b(o)&&"function"!=typeof o?w(r):o,j(w(n),"listColumns",[f.Columns.custom.sortable((e,t)=>a.a.createElement("div",null,a.a.createElement("a",{className:"table-main-title",href:"alerts/"+t.id},t.name)),{title:"Name",field:"name"}),f.Columns.custom.sortable((e,t)=>a.a.createElement("div",null,a.a.createElement("span",{className:"label ".concat(E[t.state])},Object(i.toUpper)(t.state))),{title:"State",field:"state",width:"1%"}),f.Columns.timeAgo.sortable({title:"Last Updated At",field:"updated_at",className:"text-nowrap",width:"1%"}),f.Columns.avatar({field:"user",className:"p-l-0 p-r-0"},e=>"Created by ".concat(e)),f.Columns.dateTime.sortable({title:"Created At",field:"created_at",className:"text-nowrap",width:"1%"})]),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){var e=this.props.controller;return a.a.createElement("div",{className:"container"},a.a.createElement(s.PageHeader,{title:e.params.title}),a.a.createElement("div",{className:"m-l-15 m-r-15"},!e.isLoaded&&a.a.createElement(m.default,{className:""}),e.isLoaded&&e.isEmpty&&a.a.createElement(c.EmptyState,{icon:"fa fa-bell-o",illustration:"alert",description:"Get notified on certain events",helpLink:"https://redash.io/help/user-guide/alerts/",showAlertStep:!0}),e.isLoaded&&!e.isEmpty&&a.a.createElement("div",{className:"table-responsive bg-white tiled"},a.a.createElement(f.default,{items:e.pageItems,columns:this.listColumns,orderByField:e.orderByField,orderByReverse:e.orderByReverse,toggleSorting:e.toggleSorting}),a.a.createElement(l.Paginator,{totalCount:e.totalItemsCount,itemsPerPage:e.itemsPerPage,page:e.page,onChange:t=>e.updatePagination({page:t})}))))}}])&&y(n.prototype,r),o&&y(n,o),t}();function x(e){return e.component("pageAlertsList",Object(o.react2angular)(Object(u.wrap)(S,new d.ResourceItemsSource({isPlainList:!0,getRequest:function(){return{}},getResource:function(){return h.Alert.query.bind(h.Alert)},getItemProcessor:function(){return e=>new h.Alert(e)}}),new p.StateStorage({orderByField:"created_at",orderByReverse:!0,itemsPerPage:20})))),Object(g.b)([{path:"/alerts",title:"Alerts",key:"alerts"}],{reloadOnSearch:!1,template:'<page-alerts-list on-error="handleError"></page-alerts-list>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}j(S,"propTypes",{controller:u.ControllerType.isRequired}),x.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return P});n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(17),i=n(156),s=n(75),l=n(128),c=n(49),u=n(76),d=n(68),p=n(46),m=n(61),f=n(24),h=n(69),g=n(159),b=n(48),y=n(522);n(1611);function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function j(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var x=function(e){function t(){var e,n,r,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,s=new Array(i),c=0;c<i;c++)s[c]=arguments[c];return r=this,n=!(o=(e=O(t)).call.apply(e,[this].concat(s)))||"object"!==v(o)&&"function"!=typeof o?j(r):o,S(j(n),"sidebarMenu",[{key:"all",href:"dashboards",title:"All Dashboards"},{key:"favorites",href:"dashboards/favorites",title:"Favorites",icon:()=>a.a.createElement(m.MenuIcon,{icon:"fa fa-star"})}]),S(j(n),"listColumns",[f.Columns.favorites({className:"p-r-0"}),f.Columns.custom.sortable((e,t)=>a.a.createElement(a.a.Fragment,null,a.a.createElement("a",{className:"table-main-title",href:"dashboard/"+t.slug,"data-test":t.slug},t.name),a.a.createElement(l.DashboardTagsControl,{className:"d-block",tags:t.tags,isDraft:t.is_draft,isArchived:t.is_archived})),{title:"Name",field:"name",width:null}),f.Columns.avatar({field:"user",className:"p-l-0 p-r-0"},e=>"Created by ".concat(e)),f.Columns.dateTime.sortable({title:"Created At",field:"created_at",className:"text-nowrap",width:"1%"})]),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){var e=this.props.controller;return a.a.createElement("div",{className:"container"},a.a.createElement(i.PageHeader,{title:e.params.title}),a.a.createElement(h.default,{className:"m-l-15 m-r-15"},a.a.createElement(h.default.Sidebar,{className:"m-b-0"},a.a.createElement(m.SearchInput,{placeholder:"Search Dashboards...",value:e.searchTerm,onChange:e.updateSearch}),a.a.createElement(m.Menu,{items:this.sidebarMenu,selected:e.params.currentPage}),a.a.createElement(m.Tags,{url:"api/dashboards/tags",onChange:e.updateSelectedTags}),a.a.createElement(m.PageSizeSelect,{className:"m-b-10",options:e.pageSizeOptions,value:e.itemsPerPage,onChange:t=>e.updatePagination({itemsPerPage:t})})),a.a.createElement(h.default.Content,null,e.isLoaded?a.a.createElement("div",{"data-test":"DashboardLayoutContent"},e.isEmpty?a.a.createElement(y.default,{page:e.params.currentPage,searchTerm:e.searchTerm,selectedTags:e.selectedTags}):a.a.createElement("div",{className:"bg-white tiled table-responsive"},a.a.createElement(f.default,{items:e.pageItems,columns:this.listColumns,orderByField:e.orderByField,orderByReverse:e.orderByReverse,toggleSorting:e.toggleSorting}),a.a.createElement(s.Paginator,{totalCount:e.totalItemsCount,itemsPerPage:e.itemsPerPage,page:e.page,onChange:t=>e.updatePagination({page:t})}))):a.a.createElement(p.default,null))))}}])&&w(n.prototype,r),o&&w(n,o),t}();function P(e){return e.component("pageDashboardList",Object(o.react2angular)(Object(c.wrap)(x,new u.ResourceItemsSource({getResource:function(e){var t=e.params.currentPage;return{all:g.Dashboard.query.bind(g.Dashboard),favorites:g.Dashboard.favorites.bind(g.Dashboard)}[t]},getItemProcessor:function(){return e=>new g.Dashboard(e)}}),new d.UrlStateStorage({orderByField:"created_at",orderByReverse:!0})))),Object(b.b)([{path:"/dashboards",title:"Dashboards",key:"all"},{path:"/dashboards/favorites",title:"Favorite Dashboards",key:"favorites"}],{reloadOnSearch:!1,template:'<page-dashboard-list on-error="handleError"></page-dashboard-list>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}S(x,"propTypes",{controller:c.ControllerType.isRequired}),P.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return y});n(96),n(90),n(14),n(15),n(55),n(116),n(222),n(223),n(11),n(19),n(1613),n(106),n(95),n(165),n(239);var r=n(2),a=n(70),o=n(196),i=n(52),s=n(94),l=n(159),c=n(45),u=n(799),d=n.n(u),p=n(523),m=n(477),f=n(278),h=n(12);n(747);function g(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function b(e,t,n,u,d,b,y,v,w,O,j,E){var S=this,x=[],P=e=>{if(this.dashboard.canEdit()){this.saveInProgress=!0;var t=r.map(e,(e,t)=>{var n=r.find(this.dashboard.widgets,{id:Number(t)});return n?n.save("options",{position:e}):Promise.resolve()});return u.all(t).then(()=>{this.isLayoutDirty=!1,this.editBtnClickedWhileSaving&&(this.layoutEditing=!1)}).catch(()=>{h.default.error("Error saving changes.")}).finally(()=>{this.saveInProgress=!1,this.editBtnClickedWhileSaving=!1,b.$applyAsync()})}};this.retrySaveDashboardLayout=(()=>{this.onLayoutChange(x)}),this.saveDelay=!1,this.saveInProgress=!1,this.recentLayoutPositions={},this.editBtnClickedWhileSaving=!1,this.layoutEditing=!1,this.isLayoutDirty=!1,this.isGridDisabled=!1,this.isFullscreen=!1,this.refreshRate=null,this.showPermissionsControl=j.showPermissionsControl,this.globalParameters=[],this.isDashboardOwner=!1,this.filters=[],this.refreshRates=j.dashboardRefreshIntervals.map(e=>({name:Object(c.durationHumanize)(e),rate:e,enabled:!0}));var C=i.policy.getDashboardRefreshIntervals();r.isArray(C)&&r.each(this.refreshRates,e=>{e.enabled=C.indexOf(e.rate)>=0}),this.setRefreshRate=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];S.refreshRate=e,null!==e&&(t&&S.refreshDashboard(),S.autoRefresh())},this.extractGlobalParameters=(()=>{this.globalParameters=this.dashboard.getParametersDefs()}),b.$on("dashboard.update-parameters",()=>{this.extractGlobalParameters()});var k=function(e,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=a.length>0?S.dashboard.widgets.filter(e=>Object.values(e.getParameterMappings()).filter(e=>{return"dashboard-level"===e.type}).some(e=>{var t=e.mapTo;return r.includes(a.map(e=>e.name),t)})):S.dashboard.widgets,i=r.compact(o.map(e=>(e.getParametersDefs(),e.load(n))));return u.all(i).then(n=>{S.filters=Object(l.collectDashboardFilters)(e,n,t.search()),S.filtersOnChange=(e=>{S.filters=e,b.$applyAsync()})})},_=(e,t)=>{y.set(e.name),this.extractGlobalParameters(),k(e,t)};this.loadDashboard=r.throttle(n=>{w.get({slug:e.dashboardSlug},e=>{if(this.dashboard=e,this.isDashboardOwner=O.id===e.user.id||O.hasPermission("admin"),E.record("view","dashboard",e.id),_(e,n),!0===t.search().edit&&(t.search("edit",null),this.editLayout(!0)),void 0!==t.search().refresh&&null===this.refreshRate){var r=Math.max(30,parseFloat(t.search().refresh));this.setRefreshRate({name:Object(c.durationHumanize)(r),rate:r},!1)}},e=>{if(5!==Math.floor(e.status/100))throw new a.a(e);this.loadDashboard()})},1e3),this.loadDashboard(),this.refreshDashboard=(e=>{this.refreshInProgress=!0,k(this.dashboard,!0,e).finally(()=>{this.refreshInProgress=!1})}),this.autoRefresh=(()=>{n(()=>{this.refreshDashboard()},1e3*this.refreshRate.rate).then(()=>this.autoRefresh())}),this.archiveDashboard=(()=>{var e='Are you sure you want to archive the "'.concat(this.dashboard.name,'" dashboard?');v.open("Archive Dashboard",e,{class:"btn-warning",title:"Archive"}).then(()=>{E.record("archive","dashboard",this.dashboard.id);var e=this.dashboard.widgets;this.dashboard.$delete().then(()=>{this.dashboard.widgets=e})})}),this.showManagePermissionsModal=(()=>{d.open({component:"permissionsEditor",resolve:{aclUrl:{url:"api/dashboards/".concat(this.dashboard.id,"/acl")},owner:this.dashboard.user}})}),this.onLayoutChange=(e=>{x=e;var t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return r.pickBy(t,(t,n)=>{var a=r.find(e,{id:Number(n)}).options.position;return!r.isMatch(a,t)})}(this.dashboard.widgets,e);if(r.isEmpty(t))return this.isLayoutDirty=!1,void b.$applyAsync();this.isLayoutDirty=!0,b.$applyAsync(),this.layoutEditing?function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];S.saveDelay=!0,r.debounce(()=>{S.saveDelay=!1,P.apply(void 0,t)},2e3)()}(t):P(t)}),this.onBreakpointChanged=(e=>{this.isGridDisabled=e,b.$applyAsync()}),this.editLayout=(e=>{this.layoutEditing=e}),this.loadTags=(()=>Object(o.default)("api/dashboards/tags").then(e=>r.map(e,e=>e.name)));var T=e=>{r.extend(this.dashboard,e),e=r.extend({},e,{slug:this.dashboard.id,version:this.dashboard.version}),w.save(e,t=>{r.extend(this.dashboard,r.pick(t,r.keys(e)))},e=>{403===e.status?h.default.error("Dashboard update failed","Permission Denied."):409===e.status&&h.default.error("It seems like the dashboard has been modified by another user. ","Please copy/backup your changes and reload this page.",{duration:null})})};this.saveName=(e=>{T({name:e})}),this.saveTags=(e=>{T({tags:e})}),this.updateDashboardFiltersState=(()=>{k(this.dashboard,!1),T({dashboard_filters_enabled:this.dashboard.dashboard_filters_enabled})}),this.showAddTextboxDialog=(()=>{f.default.showModal({dashboard:this.dashboard,onConfirm:e=>this.dashboard.addWidget(e).then(this.onWidgetAdded)})}),this.showAddWidgetDialog=(()=>{m.default.showModal({dashboard:this.dashboard,onConfirm:(e,t)=>this.dashboard.addWidget(e,{parameterMappings:Object(s.editableMappingsToParameterMappings)(t)}).then(e=>{var t=[e].concat(g(Object(s.synchronizeWidgetTitles)(e.options.parameterMappings,this.dashboard.widgets)));return Promise.all(t.map(e=>e.save())).then(this.onWidgetAdded)})})}),this.onWidgetAdded=(()=>{this.extractGlobalParameters(),k(this.dashboard,!1);var e=r.last(this.dashboard.widgets);if(r.isObject(e))return e.save();b.$applyAsync()}),this.removeWidget=(e=>{this.dashboard.widgets=this.dashboard.widgets.filter(t=>void 0!==t.id&&t.id!==e),this.extractGlobalParameters(),k(this.dashboard,!1),b.$applyAsync()}),this.toggleFullscreen=(()=>{this.isFullscreen=!this.isFullscreen,document.querySelector("body").classList.toggle("headless"),this.isFullscreen?t.search("fullscreen",!0):t.search("fullscreen",null)}),this.togglePublished=(()=>{E.record("toggle_published","dashboard",this.dashboard.id),this.dashboard.is_draft=!this.dashboard.is_draft,this.saveInProgress=!0,w.save({slug:this.dashboard.id,name:this.dashboard.name,is_draft:this.dashboard.is_draft},e=>{this.saveInProgress=!1,this.dashboard.version=e.version})}),r.has(t.search(),"fullscreen")&&this.toggleFullscreen(),this.openShareForm=(()=>{var e=r.every(this.dashboard.widgets,e=>!e.getQuery()||e.getQuery().is_safe);p.default.showModal({dashboard:this.dashboard,hasOnlySafeQueries:e})})}function y(e){return e.component("dashboardPage",{template:d.a,controller:b}),{"/dashboard/:dashboardSlug":{template:"<dashboard-page></dashboard-page>",reloadOnSearch:!1}}}b.$inject=["$routeParams","$location","$timeout","$q","$uibModal","$scope","Title","AlertDialog","Dashboard","currentUser","clientConfig","Events"],y.init=!0},,function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return d});n(34),n(11),n(116);var r=n(70),a=n(194),o=n.n(a),i=n(800),s=n.n(i),l=n(54);n(747);function c(){return(c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u={template:s.a,bindings:{dashboard:"<"},controller:["$scope","$timeout","$location","$http","$route","Dashboard",function(e,t,n,a,i,s){this.filters=[],this.dashboardGridOptions=c({},l.a,{resizable:{enabled:!1},draggable:{enabled:!1}}),this.logoUrl=o.a,this.public=!0,this.globalParameters=[],this.extractGlobalParameters=(()=>{this.globalParameters=this.dashboard.getParametersDefs()});var u=Math.max(30,parseFloat(n.search().refresh));this.refreshDashboard=(()=>{(function(e,t){var n=t.current.params.token;return e.get("api/dashboards/public/".concat(n)).then(e=>e.data)})(a,i).then(t=>{this.dashboard=new s(t),this.dashboard.widgets=s.prepareDashboardWidgets(this.dashboard.widgets),this.dashboard.widgets.forEach(e=>e.load(!!u)),this.filters=[],this.filtersOnChange=(t=>{this.filters=t,e.$applyAsync()}),this.extractGlobalParameters()}).catch(e=>{throw new r.a(e)}),u&&t(this.refreshDashboard,1e3*u)}),this.refreshDashboard()}]};function d(e){function t(e,t,n){var r=t.current.params.token;return n.setApiKey(r),n.loadConfig()}return t.$inject=["$http","$route","Auth"],e.component("publicDashboardPage",u),e.config(["$routeProvider",e=>{e.when("/public/dashboards/:token",{template:"<public-dashboard-page></public-dashboard-page>",reloadOnSearch:!1,resolve:{session:t}})}]),[]}d.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return k});n(14),n(15),n(29),n(11),n(19),n(55),n(95);var r=n(0),a=n.n(r),o=n(18),i=n.n(o),s=n(17),l=n(2),c=n(91),u=n(79),d=n(52),p=n(56),m=n(22),f=n(48),h=n(277),g=n(46),b=n(266),y=n(118),v=n(92),w=n(58);function O(e){return(O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function j(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function E(e){return(E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function S(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function x(e,t){return(x=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var C=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];return r=this,a=(e=E(t)).call.apply(e,[this].concat(i)),n=!a||"object"!==O(a)&&"function"!=typeof a?S(r):a,P(S(n),"state",{dataSourceTypes:[],dataSources:[],loading:!0}),P(S(n),"createDataSource",(e,t)=>{var r={options:{},type:e.type};return v.default.updateTargetWithValues(r,t),u.DataSource.save(r).$promise.then(e=>(n.setState({loading:!0}),u.DataSource.query(e=>n.setState({dataSources:e,loading:!1})),e)).catch(e=>(e instanceof Error||(e=new Error(Object(l.get)(e,"data.message","Failed saving."))),Promise.reject(e)))}),P(S(n),"showCreateSourceDialog",()=>{Object(w.default)("view","page","data_sources/new"),b.default.showModal({types:n.state.dataSourceTypes,sourceType:"Data Source",imageFolder:u.IMG_ROOT,helpTriggerPrefix:"DS_",onCreate:n.createDataSource}).result.then(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.success&&Object(p.default)("data_sources/".concat(e.data.id))})}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&x(e,t)}(t,a.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){Promise.all([u.DataSource.query().$promise,u.DataSource.types().$promise]).then(e=>this.setState({dataSources:e[0],dataSourceTypes:e[1],loading:!1},()=>{m.$route.current.locals.isNewDataSourcePage&&(d.policy.canCreateDataSource()?this.showCreateSourceDialog():Object(p.default)("/data_sources"))}))}},{key:"renderDataSources",value:function(){var e=this.state.dataSources,t=e.map(e=>({title:e.name,imgSrc:"".concat(u.IMG_ROOT,"/").concat(e.type,".png"),href:"data_sources/".concat(e.id)}));return Object(l.isEmpty)(e)?a.a.createElement("div",{className:"text-center"},"There are no data sources yet.",d.policy.isCreateDataSourceEnabled()&&a.a.createElement("div",{className:"m-t-5"},a.a.createElement("a",{className:"clickable",onClick:this.showCreateSourceDialog},"Click here")," to add one.")):a.a.createElement(h.default,{items:t})}},{key:"render",value:function(){var e={type:"primary",onClick:d.policy.isCreateDataSourceEnabled()?this.showCreateSourceDialog:null,disabled:!d.policy.isCreateDataSourceEnabled()};return a.a.createElement("div",null,a.a.createElement("div",{className:"m-b-15"},a.a.createElement(i.a,e,a.a.createElement("i",{className:"fa fa-plus m-r-5"}),"New Data Source"),a.a.createElement(y.default,{name:"DataSourcesListExtra"})),this.state.loading?a.a.createElement(g.default,{className:""}):this.renderDataSources())}}])&&j(n.prototype,r),o&&j(n,o),t}();function k(e){return c.default.add({permission:"admin",title:"Data Sources",path:"data_sources",order:1}),e.component("pageDataSourcesList",Object(s.react2angular)(C)),Object(f.b)([{path:"/data_sources",title:"Data Sources",key:"data_sources"},{path:"/data_sources/new",title:"Data Sources",key:"data_sources",isNewDataSourcePage:!0}],{template:"<settings-screen><page-data-sources-list></page-data-sources-list></settings-screen>",controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}k.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return C});n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(2),l=n(17),c=n(37),u=n.n(c),d=n(79),p=n(56),m=n(22),f=n(12),h=n(70),g=n(46),b=n(119),y=n(92),v=n(100);function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function O(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function j(e){return(j=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function E(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function S(e,t){return(S=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var P=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,i=new Array(o),l=0;l<o;l++)i[l]=arguments[l];return r=this,a=(e=j(t)).call.apply(e,[this].concat(i)),n=!a||"object"!==w(a)&&"function"!=typeof a?E(r):a,x(E(n),"state",{dataSource:null,type:null,loading:!0}),x(E(n),"saveDataSource",(e,t,r)=>{var a=n.state.dataSource;y.default.updateTargetWithValues(a,e),a.$save(()=>t("Saved."),e=>{var t=Object(s.get)(e,"data.message","Failed saving.");r(t)})}),x(E(n),"deleteDataSource",e=>{var t=n.state.dataSource;u.a.confirm({title:"Delete Data Source",content:"Are you sure you want to delete this data source?",okText:"Delete",okType:"danger",onOk:()=>{t.$delete(()=>{f.default.success("Data source deleted successfully."),Object(p.default)("/data_sources",!0)},()=>{e()})},onCancel:e,maskClosable:!0,autoFocusButton:null})}),x(E(n),"testConnection",e=>{var t=n.state.dataSource;d.DataSource.test({id:t.id},t=>{t.ok?f.default.success("Success"):f.default.error("Connection Test Failed:",t.message,{duration:10}),e()},()=>{f.default.error("Connection Test Failed:","Unknown error occurred while performing connection test. Please try again later.",{duration:10}),e()})}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&S(e,t)}(t,a.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){d.DataSource.get({id:m.$route.current.params.dataSourceId}).$promise.then(e=>{var t=e.type;this.setState({dataSource:e}),d.DataSource.types(e=>this.setState({type:Object(s.find)(e,{type:t}),loading:!1}))}).catch(e=>{e.status&&e.data&&(e=new h.a(e)),this.props.onError(e)})}},{key:"renderForm",value:function(){var e=this.state,t=e.dataSource,n=e.type,r=y.default.getFields(n,t),o="DS_".concat(Object(s.toUpper)(n.type)),i={fields:r,type:n,actions:[{name:"Delete",type:"danger",callback:this.deleteDataSource},{name:"Test Connection",pullRight:!0,callback:this.testConnection,disableWhenDirty:!0}],onSubmit:this.saveDataSource,feedbackIcons:!0};return a.a.createElement("div",{className:"row","data-test":"DataSource"},a.a.createElement("div",{className:"text-right m-r-10"},v.TYPES[o]&&a.a.createElement(v.HelpTrigger,{className:"f-13",type:o},"Setup Instructions ",a.a.createElement("i",{className:"fa fa-question-circle"}))),a.a.createElement("div",{className:"text-center m-b-10"},a.a.createElement("img",{className:"p-5",src:"".concat(d.IMG_ROOT,"/").concat(n.type,".png"),alt:n.name,width:"64"}),a.a.createElement("h3",{className:"m-0"},n.name)),a.a.createElement("div",{className:"col-md-4 col-md-offset-4 m-b-10"},a.a.createElement(b.default,i)))}},{key:"render",value:function(){return this.state.loading?a.a.createElement(g.default,{className:""}):this.renderForm()}}])&&O(n.prototype,r),o&&O(n,o),t}();function C(e){return e.component("pageEditDataSource",Object(l.react2angular)(P)),{"/data_sources/:dataSourceId":{template:'<settings-screen><page-edit-data-source on-error="handleError"></page-edit-data-source></settings-screen>',title:"Data Sources",controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]}}}x(P,"propTypes",{onError:i.a.func}),x(P,"defaultProps",{onError:()=>{}}),C.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return P});n(14),n(15),n(29),n(11),n(19),n(55),n(95);var r=n(0),a=n.n(r),o=n(18),i=n.n(o),s=n(17),l=n(2),c=n(91),u=n(130),d=n(52),p=n(56),m=n(22),f=n(48),h=n(277),g=n(46),b=n(266),y=n(92);function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function j(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var x=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];return r=this,a=(e=O(t)).call.apply(e,[this].concat(i)),n=!a||"object"!==v(a)&&"function"!=typeof a?j(r):a,S(j(n),"state",{destinationTypes:[],destinations:[],loading:!0}),S(j(n),"createDestination",(e,t)=>{var r={options:{},type:e.type};return y.default.updateTargetWithValues(r,t),u.Destination.save(r).$promise.then(e=>(n.setState({loading:!0}),u.Destination.query(e=>n.setState({destinations:e,loading:!1})),e)).catch(e=>(e instanceof Error||(e=new Error(Object(l.get)(e,"data.message","Failed saving."))),Promise.reject(e)))}),S(j(n),"showCreateSourceDialog",()=>{b.default.showModal({types:n.state.destinationTypes,sourceType:"Alert Destination",imageFolder:u.IMG_ROOT,onCreate:n.createDestination}).result.then(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.success&&Object(p.default)("destinations/".concat(e.data.id))})}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(t,a.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){Promise.all([u.Destination.query().$promise,u.Destination.types().$promise]).then(e=>this.setState({destinations:e[0],destinationTypes:e[1],loading:!1},()=>{m.$route.current.locals.isNewDestinationPage&&(d.policy.canCreateDestination()?this.showCreateSourceDialog():Object(p.default)("/destinations"))}))}},{key:"renderDestinations",value:function(){var e=this.state.destinations,t=e.map(e=>({title:e.name,imgSrc:"".concat(u.IMG_ROOT,"/").concat(e.type,".png"),href:"destinations/".concat(e.id)}));return Object(l.isEmpty)(e)?a.a.createElement("div",{className:"text-center"},"There are no alert destinations yet.",d.policy.isCreateDestinationEnabled()&&a.a.createElement("div",{className:"m-t-5"},a.a.createElement("a",{className:"clickable",onClick:this.showCreateSourceDialog},"Click here")," to add one.")):a.a.createElement(h.default,{items:t})}},{key:"render",value:function(){var e={type:"primary",onClick:d.policy.isCreateDestinationEnabled()?this.showCreateSourceDialog:null,disabled:!d.policy.isCreateDestinationEnabled()};return a.a.createElement("div",null,a.a.createElement("div",{className:"m-b-15"},a.a.createElement(i.a,e,a.a.createElement("i",{className:"fa fa-plus m-r-5"}),"New Alert Destination")),this.state.loading?a.a.createElement(g.default,{className:""}):this.renderDestinations())}}])&&w(n.prototype,r),o&&w(n,o),t}();function P(e){return c.default.add({permission:"admin",title:"Alert Destinations",path:"destinations",order:4}),e.component("pageDestinationsList",Object(s.react2angular)(x)),Object(f.b)([{path:"/destinations",title:"Alert Destinations",key:"destinations"},{path:"/destinations/new",title:"Alert Destinations",key:"destinations",isNewDestinationPage:!0}],{template:"<settings-screen><page-destinations-list></page-destinations-list></settings-screen>",controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}P.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return P});n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(2),l=n(17),c=n(37),u=n.n(c),d=n(130),p=n(56),m=n(22),f=n(12),h=n(70),g=n(46),b=n(119),y=n(92);function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function j(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var x=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,i=new Array(o),l=0;l<o;l++)i[l]=arguments[l];return r=this,a=(e=O(t)).call.apply(e,[this].concat(i)),n=!a||"object"!==v(a)&&"function"!=typeof a?j(r):a,S(j(n),"state",{destination:null,type:null,loading:!0}),S(j(n),"saveDestination",(e,t,r)=>{var a=n.state.destination;y.default.updateTargetWithValues(a,e),a.$save(()=>t("Saved."),e=>{var t=Object(s.get)(e,"data.message","Failed saving.");r(t)})}),S(j(n),"deleteDestination",e=>{var t=n.state.destination;u.a.confirm({title:"Delete Alert Destination",content:"Are you sure you want to delete this alert destination?",okText:"Delete",okType:"danger",onOk:()=>{t.$delete(()=>{f.default.success("Alert destination deleted successfully."),Object(p.default)("/destinations",!0)},()=>{e()})},onCancel:e,maskClosable:!0,autoFocusButton:null})}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(t,a.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){d.Destination.get({id:m.$route.current.params.destinationId}).$promise.then(e=>{var t=e.type;this.setState({destination:e}),d.Destination.types(e=>this.setState({type:Object(s.find)(e,{type:t}),loading:!1}))}).catch(e=>{e.status&&e.data&&(e=new h.a(e)),this.props.onError(e)})}},{key:"renderForm",value:function(){var e=this.state,t=e.destination,n=e.type,r={fields:y.default.getFields(n,t),type:n,actions:[{name:"Delete",type:"danger",callback:this.deleteDestination}],onSubmit:this.saveDestination,feedbackIcons:!0};return a.a.createElement("div",{className:"row","data-test":"Destination"},a.a.createElement("div",{className:"text-center m-b-10"},a.a.createElement("img",{className:"p-5",src:"".concat(d.IMG_ROOT,"/").concat(n.type,".png"),alt:n.name,width:"64"}),a.a.createElement("h3",{className:"m-0"},n.name)),a.a.createElement("div",{className:"col-md-4 col-md-offset-4 m-b-10"},a.a.createElement(b.default,r)))}},{key:"render",value:function(){return this.state.loading?a.a.createElement(g.default,{className:""}):this.renderForm()}}])&&w(n.prototype,r),o&&w(n,o),t}();function P(e){return e.component("pageEditDestination",Object(l.react2angular)(x)),{"/destinations/:destinationId":{template:'<settings-screen><page-edit-destination on-error="handleError"></page-edit-destination></settings-screen>',title:"Alert Destinations",controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]}}}S(x,"propTypes",{onError:i.a.func}),S(x,"defaultProps",{onError:()=>{}}),P.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return F});n(14),n(15),n(29),n(95),n(11),n(19),n(55),n(222),n(223),n(106);var r=n(2),a=n(0),o=n.n(a),i=n(17),s=n(18),l=n.n(s),c=n(168),u=n.n(c),d=n(84),p=n.n(d),m=n(21),f=n.n(m),h=n(75),g=n(49),b=n(76),y=n(68),v=n(46),w=n(24),O=n(275),j=n(122),E=n(281),S=n(204),x=n(280),P=n(69),C=n(12),k=n(10),_=n(60),T=n(79),$=n(56),q=n(48);function N(e){return(N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function D(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function R(e){return(R=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function A(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function I(e,t){return(I=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var M=function(e){function t(){var e,n,a,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var s=arguments.length,c=new Array(s),d=0;d<s;d++)c[d]=arguments[d];return a=this,i=(e=R(t)).call.apply(e,[this].concat(c)),n=!i||"object"!==N(i)&&"function"!=typeof i?A(a):i,z(A(n),"groupId",parseInt(n.props.controller.params.groupId,10)),z(A(n),"group",null),z(A(n),"sidebarMenu",[{key:"users",href:"groups/".concat(n.groupId),title:"Members"},{key:"datasources",href:"groups/".concat(n.groupId,"/data_sources"),title:"Data Sources",isAvailable:()=>k.currentUser.isAdmin}]),z(A(n),"listColumns",[w.Columns.custom((e,t)=>o.a.createElement(j.DataSourcePreviewCard,{dataSource:t,withLink:!0}),{title:"Name",field:"name",width:null}),w.Columns.custom((e,t)=>{var r=o.a.createElement(p.a,{selectedKeys:[t.view_only?"viewonly":"full"],onClick:e=>n.setDataSourcePermissions(t,e.key)},o.a.createElement(p.a.Item,{key:"full"},"Full Access"),o.a.createElement(p.a.Item,{key:"viewonly"},"View Only"));return o.a.createElement(u.a,{trigger:["click"],overlay:r},o.a.createElement(l.a,{className:"w-100"},t.view_only?"View Only":"Full Access",o.a.createElement(f.a,{type:"down"})))},{width:"1%",className:"p-r-0",isAvailable:()=>k.currentUser.isAdmin}),w.Columns.custom((e,t)=>o.a.createElement(l.a,{className:"w-100",type:"danger",onClick:()=>n.removeGroupDataSource(t)},"Remove"),{width:"1%",isAvailable:()=>k.currentUser.isAdmin})]),z(A(n),"removeGroupDataSource",e=>{_.Group.removeDataSource({id:n.groupId,dataSourceId:e.id}).$promise.then(()=>{n.props.controller.updatePagination({page:1}),n.props.controller.update()}).catch(()=>{C.default.error("Failed to remove data source from group.")})}),z(A(n),"setDataSourcePermissions",(e,t)=>{var r="full"!==t;_.Group.updateDataSource({id:n.groupId,dataSourceId:e.id},{view_only:r}).$promise.then(()=>{e.view_only=r,n.forceUpdate()}).catch(()=>{C.default.error("Failed change data source permissions.")})}),z(A(n),"addDataSources",()=>{var e=T.DataSource.query().$promise,t=Object(r.map)(n.props.controller.allItems,e=>e.id);O.default.showModal({dialogTitle:"Add Data Sources",inputPlaceholder:"Search data sources...",selectedItemsTitle:"New Data Sources",searchItems:t=>(t=t.toLowerCase(),e.then(e=>Object(r.filter)(e,e=>e.name.toLowerCase().includes(t)))),renderItem:(e,n)=>{var a=n.isSelected,i=Object(r.includes)(t,e.id);return{content:o.a.createElement(j.DataSourcePreviewCard,{dataSource:e},o.a.createElement(S.default,{isSelected:a,alreadyInGroup:i})),isDisabled:i,className:a||i?"selected":""}},renderStagedItem:(e,t)=>{var n=t.isSelected;return{content:o.a.createElement(j.DataSourcePreviewCard,{dataSource:e},o.a.createElement(S.default,{isSelected:n,isStaged:!0}))}},save:e=>{var t=Object(r.map)(e,e=>_.Group.addDataSource({id:n.groupId,data_source_id:e.id}).$promise);return Promise.all(t)}}).result.finally(()=>{n.props.controller.update()})}),n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&I(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){_.Group.get({id:this.groupId}).$promise.then(e=>{this.group=e,this.forceUpdate()}).catch(e=>{this.props.controller.handleError(e)})}},{key:"render",value:function(){var e=this.props.controller;return o.a.createElement("div",{"data-test":"Group"},o.a.createElement(E.default,{className:"d-block m-t-0 m-b-15",group:this.group,onChange:()=>this.forceUpdate()}),o.a.createElement(P.default,null,o.a.createElement(P.default.Sidebar,null,o.a.createElement(x.default,{controller:e,group:this.group,items:this.sidebarMenu,canAddDataSources:k.currentUser.isAdmin,onAddDataSourcesClick:this.addDataSources,onGroupDeleted:()=>Object($.default)("/groups",!0)})),o.a.createElement(P.default.Content,null,!e.isLoaded&&o.a.createElement(v.default,{className:""}),e.isLoaded&&e.isEmpty&&o.a.createElement("div",{className:"text-center"},o.a.createElement("p",null,"There are no data sources in this group yet."),k.currentUser.isAdmin&&o.a.createElement(l.a,{type:"primary",onClick:this.addDataSources},o.a.createElement("i",{className:"fa fa-plus m-r-5"}),"Add Data Sources")),e.isLoaded&&!e.isEmpty&&o.a.createElement("div",{className:"table-responsive"},o.a.createElement(w.default,{items:e.pageItems,columns:this.listColumns,showHeader:!1,context:this.actions,orderByField:e.orderByField,orderByReverse:e.orderByReverse,toggleSorting:e.toggleSorting}),o.a.createElement(h.Paginator,{totalCount:e.totalItemsCount,itemsPerPage:e.itemsPerPage,page:e.page,onChange:t=>e.updatePagination({page:t})})))))}}])&&D(n.prototype,a),i&&D(n,i),t}();function F(e){return e.component("pageGroupDataSources",Object(i.react2angular)(Object(g.wrap)(M,new b.ResourceItemsSource({isPlainList:!0,getRequest:function(e,t){return{id:t.params.groupId}},getResource:function(){return _.Group.dataSources.bind(_.Group)},getItemProcessor:function(){return e=>new T.DataSource(e)}}),new y.StateStorage({orderByField:"name"})))),Object(q.b)([{path:"/groups/:groupId/data_sources",title:"Group Data Sources",key:"datasources"}],{reloadOnSearch:!1,template:'<settings-screen><page-group-data-sources on-error="handleError"></page-group-data-sources></settings-screen>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}z(M,"propTypes",{controller:g.ControllerType.isRequired}),F.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return D});n(14),n(15),n(29),n(95),n(11),n(19),n(55),n(106);var r=n(2),a=n(0),o=n.n(a),i=n(17),s=n(18),l=n.n(s),c=n(75),u=n(49),d=n(76),p=n(68),m=n(46),f=n(24),h=n(275),g=n(122),b=n(281),y=n(204),v=n(280),w=n(69),O=n(12),j=n(10),E=n(60),S=n(53),x=n(56),P=n(48);function C(e){return(C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function k(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function T(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $(e,t){return($=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var N=function(e){function t(){var e,n,a,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var s=arguments.length,c=new Array(s),u=0;u<s;u++)c[u]=arguments[u];return a=this,i=(e=_(t)).call.apply(e,[this].concat(c)),n=!i||"object"!==C(i)&&"function"!=typeof i?T(a):i,q(T(n),"groupId",parseInt(n.props.controller.params.groupId,10)),q(T(n),"group",null),q(T(n),"sidebarMenu",[{key:"users",href:"groups/".concat(n.groupId),title:"Members"},{key:"datasources",href:"groups/".concat(n.groupId,"/data_sources"),title:"Data Sources",isAvailable:()=>j.currentUser.isAdmin}]),q(T(n),"listColumns",[f.Columns.custom((e,t)=>o.a.createElement(g.UserPreviewCard,{user:t,withLink:!0}),{title:"Name",field:"name",width:null}),f.Columns.custom((e,t)=>n.group?"builtin"===n.group.type&&j.currentUser.id===t.id?null:o.a.createElement(l.a,{className:"w-100",type:"danger",onClick:e=>n.removeGroupMember(e,t)},"Remove"):null,{width:"1%",isAvailable:()=>j.currentUser.isAdmin})]),q(T(n),"removeGroupMember",(e,t)=>E.Group.removeMember({id:n.groupId,userId:t.id}).$promise.then(()=>{n.props.controller.updatePagination({page:1}),n.props.controller.update()}).catch(()=>{O.default.error("Failed to remove member from group.")})),q(T(n),"addMembers",()=>{var e=Object(r.map)(n.props.controller.allItems,e=>e.id);h.default.showModal({dialogTitle:"Add Members",inputPlaceholder:"Search users...",selectedItemsTitle:"New Members",searchItems:e=>S.User.query({q:e}).$promise.then(e=>{return e.results}),renderItem:(t,n)=>{var a=n.isSelected,i=Object(r.includes)(e,t.id);return{content:o.a.createElement(g.UserPreviewCard,{user:t},o.a.createElement(y.default,{isSelected:a,alreadyInGroup:i})),isDisabled:i,className:a||i?"selected":""}},renderStagedItem:(e,t)=>{var n=t.isSelected;return{content:o.a.createElement(g.UserPreviewCard,{user:e},o.a.createElement(y.default,{isSelected:n,isStaged:!0}))}},save:e=>{var t=Object(r.map)(e,e=>E.Group.addMember({id:n.groupId},{user_id:e.id}).$promise);return Promise.all(t)}}).result.finally(()=>{n.props.controller.update()})}),n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&$(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){E.Group.get({id:this.groupId}).$promise.then(e=>{this.group=e,this.forceUpdate()}).catch(e=>{this.props.controller.handleError(e)})}},{key:"render",value:function(){var e=this.props.controller;return o.a.createElement("div",{"data-test":"Group"},o.a.createElement(b.default,{className:"d-block m-t-0 m-b-15",group:this.group,onChange:()=>this.forceUpdate()}),o.a.createElement(w.default,null,o.a.createElement(w.default.Sidebar,null,o.a.createElement(v.default,{controller:e,group:this.group,items:this.sidebarMenu,canAddMembers:j.currentUser.isAdmin,onAddMembersClick:this.addMembers,onGroupDeleted:()=>Object(x.default)("/groups",!0)})),o.a.createElement(w.default.Content,null,!e.isLoaded&&o.a.createElement(m.default,{className:""}),e.isLoaded&&e.isEmpty&&o.a.createElement("div",{className:"text-center"},o.a.createElement("p",null,"There are no members in this group yet."),j.currentUser.isAdmin&&o.a.createElement(l.a,{type:"primary",onClick:this.addMembers},o.a.createElement("i",{className:"fa fa-plus m-r-5"}),"Add Members")),e.isLoaded&&!e.isEmpty&&o.a.createElement("div",{className:"table-responsive"},o.a.createElement(f.default,{items:e.pageItems,columns:this.listColumns,showHeader:!1,context:this.actions,orderByField:e.orderByField,orderByReverse:e.orderByReverse,toggleSorting:e.toggleSorting}),o.a.createElement(c.Paginator,{totalCount:e.totalItemsCount,itemsPerPage:e.itemsPerPage,page:e.page,onChange:t=>e.updatePagination({page:t})})))))}}])&&k(n.prototype,a),i&&k(n,i),t}();function D(e){return e.component("pageGroupMembers",Object(i.react2angular)(Object(u.wrap)(N,new d.ResourceItemsSource({isPlainList:!0,getRequest:function(e,t){return{id:t.params.groupId}},getResource:function(){return E.Group.members.bind(E.Group)},getItemProcessor:function(){return e=>new S.User(e)}}),new p.StateStorage({orderByField:"name"})))),Object(P.b)([{path:"/groups/:groupId",title:"Group Members",key:"users"}],{reloadOnSearch:!1,template:'<settings-screen><page-group-members on-error="handleError"></page-group-members></settings-screen>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}q(N,"propTypes",{controller:u.ControllerType.isRequired}),D.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return _});n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(17),i=n(18),s=n.n(i),l=n(75),c=n(49),u=n(76),d=n(68),p=n(46),m=n(155),f=n(24),h=n(481),g=n(279),b=n(60),y=n(91),v=n(10),w=n(56),O=n(48);function j(e){return(j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function E(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function x(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function P(e,t){return(P=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function C(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var k=function(e){function t(){var e,n,r,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,l=new Array(i),c=0;c<i;c++)l[c]=arguments[c];return r=this,o=(e=S(t)).call.apply(e,[this].concat(l)),n=!o||"object"!==j(o)&&"function"!=typeof o?x(r):o,C(x(n),"listColumns",[f.Columns.custom((e,t)=>a.a.createElement("div",null,a.a.createElement("a",{href:"groups/"+t.id},t.name),"builtin"===t.type&&a.a.createElement("span",{className:"label label-default m-l-10"},"built-in")),{field:"name",width:null}),f.Columns.custom((e,t)=>a.a.createElement(s.a.Group,null,a.a.createElement(s.a,{href:"groups/".concat(t.id)},"Members"),v.currentUser.isAdmin&&a.a.createElement(s.a,{href:"groups/".concat(t.id,"/data_sources")},"Data Sources")),{width:"1%",className:"text-nowrap"}),f.Columns.custom((e,t)=>{var r="builtin"!==t.type;return a.a.createElement(g.default,{className:"w-100",disabled:!r,group:t,title:r?null:"Cannot delete built-in group",onClick:()=>n.onGroupDeleted()},"Delete")},{width:"1%",className:"text-nowrap p-l-0",isAvailable:()=>v.currentUser.isAdmin})]),C(x(n),"createGroup",()=>{h.default.showModal().result.then(e=>{e.$save().then(e=>Object(w.default)("/groups/".concat(e.id)))})}),C(x(n),"onGroupDeleted",()=>{n.props.controller.updatePagination({page:1}),n.props.controller.update()}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&P(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){var e=this.props.controller;return a.a.createElement("div",{"data-test":"GroupList"},v.currentUser.isAdmin&&a.a.createElement("div",{className:"m-b-15"},a.a.createElement(s.a,{type:"primary",onClick:this.createGroup},a.a.createElement("i",{className:"fa fa-plus m-r-5"}),"New Group")),!e.isLoaded&&a.a.createElement(p.default,{className:""}),e.isLoaded&&e.isEmpty&&a.a.createElement(m.default,{className:""}),e.isLoaded&&!e.isEmpty&&a.a.createElement("div",{className:"table-responsive"},a.a.createElement(f.default,{items:e.pageItems,columns:this.listColumns,showHeader:!1,context:this.actions,orderByField:e.orderByField,orderByReverse:e.orderByReverse,toggleSorting:e.toggleSorting}),a.a.createElement(l.Paginator,{totalCount:e.totalItemsCount,itemsPerPage:e.itemsPerPage,page:e.page,onChange:t=>e.updatePagination({page:t})})))}}])&&E(n.prototype,r),o&&E(n,o),t}();function _(e){return y.default.add({permission:"list_users",title:"Groups",path:"groups",order:3}),e.component("pageGroupsList",Object(o.react2angular)(Object(c.wrap)(k,new u.ResourceItemsSource({isPlainList:!0,getRequest:function(){return{}},getResource:function(){return b.Group.query.bind(b.Group)},getItemProcessor:function(){return e=>new b.Group(e)}}),new d.StateStorage({orderByField:"name",itemsPerPage:10})))),Object(O.b)([{path:"/groups",title:"Groups",key:"groups"}],{reloadOnSearch:!1,template:'<settings-screen><page-groups-list on-error="handleError"></page-groups-list></settings-screen>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}C(k,"propTypes",{controller:c.ControllerType.isRequired}),_.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});var r=n(801),a=n.n(r),o=n(12);function i(e,t,n,r,a){e.record("view","page","personal_homepage"),this.noDashboards=!1,this.noQueries=!1,this.messages=a,t.favorites().$promise.then(e=>{this.favoriteDashboards=e.results,this.noDashboards=0===e.results.length}),n.favorites().$promise.then(e=>{this.favoriteQueries=e.results,this.noQueries=0===e.results.length}),this.verifyEmail=(()=>{r.post("verification_email/").success(e=>{var t=e.message;o.default.success(t)})})}function s(e){return e.component("homePage",{template:a.a,controller:i}),{"/":{template:"<home-page></home-page>",title:"Redash"}}}i.$inject=["Events","Dashboard","Query","$http","messages"],s.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return k});n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(17),i=n(156),s=n(75),l=n(128),c=n(282),u=n(49),d=n(76),p=n(68),m=n(46),f=n(61),h=n(24),g=n(69),b=n(39),y=n(10),v=n(48),w=n(524);n(1624);function O(e){return(O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function j(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function E(e){return(E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function S(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function x(e,t){return(x=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var C=function(e){function t(){var e,n,r,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];return r=this,n=!(o=(e=E(t)).call.apply(e,[this].concat(s)))||"object"!==O(o)&&"function"!=typeof o?S(r):o,P(S(n),"sidebarMenu",[{key:"all",href:"queries",title:"All Queries"},{key:"favorites",href:"queries/favorites",title:"Favorites",icon:()=>a.a.createElement(f.MenuIcon,{icon:"fa fa-star"})},{key:"archive",href:"queries/archive",title:"Archived",icon:()=>a.a.createElement(f.MenuIcon,{icon:"fa fa-archive"})},{key:"my",href:"queries/my",title:"My Queries",icon:()=>a.a.createElement(f.ProfileImage,{user:y.currentUser}),isAvailable:()=>y.currentUser.hasPermission("create_query")}]),P(S(n),"listColumns",[h.Columns.favorites({className:"p-r-0"}),h.Columns.custom.sortable((e,t)=>a.a.createElement(a.a.Fragment,null,a.a.createElement("a",{className:"table-main-title",href:"queries/"+t.id},t.name),a.a.createElement(l.QueryTagsControl,{className:"d-block",tags:t.tags,isDraft:t.is_draft,isArchived:t.is_archived})),{title:"Name",field:"name",width:null}),h.Columns.avatar({field:"user",className:"p-l-0 p-r-0"},e=>"Created by ".concat(e)),h.Columns.dateTime.sortable({title:"Created At",field:"created_at"}),h.Columns.duration.sortable({title:"Runtime",field:"runtime"}),h.Columns.dateTime.sortable({title:"Last Executed At",field:"retrieved_at",orderByField:"executed_at"}),h.Columns.custom.sortable((e,t)=>a.a.createElement(c.SchedulePhrase,{schedule:t.schedule,isNew:t.isNew()}),{title:"Update Schedule",field:"schedule"})]),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&x(e,t)}(t,a.a.Component),n=t,(r=[{key:"render",value:function(){var e=this.props.controller;return a.a.createElement("div",{className:"container"},a.a.createElement(i.PageHeader,{title:e.params.title}),a.a.createElement(g.default,{className:"m-l-15 m-r-15"},a.a.createElement(g.default.Sidebar,{className:"m-b-0"},a.a.createElement(f.SearchInput,{placeholder:"Search Queries...",value:e.searchTerm,onChange:e.updateSearch}),a.a.createElement(f.Menu,{items:this.sidebarMenu,selected:e.params.currentPage}),a.a.createElement(f.Tags,{url:"api/queries/tags",onChange:e.updateSelectedTags}),a.a.createElement(f.PageSizeSelect,{className:"m-b-10",options:e.pageSizeOptions,value:e.itemsPerPage,onChange:t=>e.updatePagination({itemsPerPage:t})})),a.a.createElement(g.default.Content,null,!e.isLoaded&&a.a.createElement(m.default,null),e.isLoaded&&e.isEmpty&&a.a.createElement(w.default,{page:e.params.currentPage,searchTerm:e.searchTerm,selectedTags:e.selectedTags}),e.isLoaded&&!e.isEmpty&&a.a.createElement("div",{className:"bg-white tiled table-responsive"},a.a.createElement(h.default,{items:e.pageItems,columns:this.listColumns,orderByField:e.orderByField,orderByReverse:e.orderByReverse,toggleSorting:e.toggleSorting}),a.a.createElement(s.Paginator,{totalCount:e.totalItemsCount,itemsPerPage:e.itemsPerPage,page:e.page,onChange:t=>e.updatePagination({page:t})})))))}}])&&j(n.prototype,r),o&&j(n,o),t}();function k(e){return e.component("pageQueriesList",Object(o.react2angular)(Object(u.wrap)(C,new d.ResourceItemsSource({getResource:function(e){var t=e.params.currentPage;return{all:b.Query.query.bind(b.Query),my:b.Query.myQueries.bind(b.Query),favorites:b.Query.favorites.bind(b.Query),archive:b.Query.archive.bind(b.Query)}[t]},getItemProcessor:function(){return e=>new b.Query(e)}}),new p.UrlStateStorage({orderByField:"created_at",orderByReverse:!0})))),Object(v.b)([{path:"/queries",title:"Queries",key:"all"},{path:"/queries/favorites",title:"Favorite Queries",key:"favorites"},{path:"/queries/archive",title:"Archived Queries",key:"archive"},{path:"/queries/my",title:"My Queries",key:"my"}],{reloadOnSearch:!1,template:'<page-queries-list on-error="handleError"></page-queries-list>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}P(C,"propTypes",{controller:u.ControllerType.isRequired}),k.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return s});n(106);var r=n(802),a=n.n(r),o=n(12),i={controller:["$sce","Dashboard",function(e,t){this.vis=this.resolve.vis,this.saveInProgress=!1,this.trustAsHtml=(t=>e.trustAsHtml(t)),this.onDashboardSelected=(e=>{var n=e.slug;this.saveInProgress=!0,this.selected_query=this.resolve.query.id,t.get({slug:n}).$promise.then(e=>e.addWidget(this.vis)).then(()=>{this.close(),o.default.success("Widget added to dashboard.")}).catch(()=>{o.default.error("Widget not added.")}).finally(()=>{this.saveInProgress=!1})}),this.selectedDashboard=null,this.searchDashboards=(e=>{!e||e.length<3||t.get({search_term:e},e=>{this.dashboards=e.results})})}],bindings:{resolve:"<",close:"&",dismiss:"&",vis:"<"},template:a.a};function s(e){e.component("addToDashboardDialog",i)}s.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return l});var r=n(2),a=n(294),o=n.n(a),i=n(268);function s(e,t,n,a,o,s,l,c){t("QueryViewCtrl",{$scope:n}),e.record("view_source","query",n.query.id);var u=!n.query.id,d=n.query.query,p=n.saveQuery;n.sourceMode=!0,n.isDirty=!1,n.base_url="".concat(a.protocol(),"://").concat(a.host(),":").concat(a.port()),n.modKey=l.modKey,Object.defineProperty(n,"showDataset",{get:function(){return n.queryResult&&"done"===n.queryResult.getStatus()}});var m={"mod+s":function(){n.canEdit&&n.saveQuery()},"mod+p":()=>{n.addNewParameter()}};l.bind(m),n.$on("$destroy",()=>{l.unbind(m)}),n.canForkQuery=(()=>s.hasPermission("edit_query")&&!n.dataSource.view_only),n.updateQuery=Object(r.debounce)(e=>n.$apply(()=>{n.query.query=e})),n.saveQuery=((e,t)=>{var r=p(e,t);return r.then(e=>{d=e.query,n.isDirty=n.query.query!==d,n.query.version=e.version,u&&a.path(e.getSourceLink())}),r}),n.addNewParameter=(()=>{i.default.showModal({parameter:{title:null,name:"",type:"text",value:null},existingParams:Object(r.map)(n.query.getParameters().get(),e=>e.name)}).result.then(e=>{e=n.query.getParameters().add(e),c.$broadcast("query-editor.command","paste",e.toQueryTextFragment()),c.$broadcast("query-editor.command","focus")})}),n.onParametersUpdated=(()=>{n.isDirty||n.saveQuery()}),n.listenForEditorCommand=(e=>n.$on("query-editor.command",e)),n.listenForResize=(e=>n.$parent.$on("angular-resizable.resizing",e)),n.$watch("query.query",e=>{n.isDirty=e!==d})}function l(e){return e.controller("QuerySourceCtrl",s),{"/queries/new":{template:o.a,layout:"fixed",controller:"QuerySourceCtrl",reloadOnSearch:!1,resolve:{query:["Query",function(e){return e.newQuery()}],dataSources:["DataSource",function(e){return e.query().$promise}]}},"/queries/:queryId/source":{template:o.a,layout:"fixed",controller:"QuerySourceCtrl",reloadOnSearch:!1,resolve:{query:["Query","$route",(e,t)=>e.get({id:t.current.params.queryId}).$promise]}}}}s.$inject=["Events","$controller","$scope","$location","$uibModal","currentUser","KeyboardShortcuts","$rootScope"],l.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return v});n(19),n(27),n(34),n(90),n(11),n(116);var r=n(2),a=n(79),o=n(196),i=n(52),s=n(284),l=n(293),c=n(485),u=n(20),d=n(493),p=n(484),m=n(12),f=n(294),h=n.n(f);function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(){return(b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function y(e,t,n,f,h,y,v,w,O,j,E,S,x,P,C){var k=Object(u.newVisualization)("TABLE",{itemsPerPage:50});function _(t,n){void 0===t&&(t=h.search().maxAge),void 0===t&&(t=-1),e.showLog=!1,e.isDirty?e.queryResult=e.query.getQueryResultByText(t,n):e.queryResult=e.query.getQueryResult(t)}function T(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;e.schema=[],e.dataSource.getSchema(t).then(t=>{t.schema?(e.schema=t.schema,e.schema.forEach(e=>{e.collapsed=!0})):t.error.code===a.SCHEMA_NOT_SUPPORTED?e.schema=void 0:(t.error.code,a.SCHEMA_LOAD_ERROR,m.default.error("Schema refresh failed.","Please try again later."))})}function $(t){var n;(e.dataSources=t.filter(function(t){return!t.view_only||t.id===e.query.data_source_id}),0!==e.dataSources.length)?(e.query.isNew()&&(e.query.data_source_id=(void 0===(n=e.query.data_source_id)&&(n=parseInt(localStorage.lastSelectedDataSourceId,10)),!isNaN(n)&&Object(r.some)(e.dataSources,e=>e.id===n)||(n=e.dataSources[0].id),n)),e.dataSource=Object(r.find)(t,t=>t.id===e.query.data_source_id),e.canCreateQuery=Object(r.some)(t,e=>!e.view_only),T()):e.noDataSources=!0}k.id="table",e.refreshSchema=(()=>T(!0)),e.updateSelectedQuery=(t=>{e.selectedQueryText=t}),e.executeQuery=(()=>{e.canExecuteQuery()&&e.query.query&&(_(0,e.selectedQueryText),e.lockButton(!0),e.cancelling=!1,t.record("execute","query",e.query.id),l.default.getPermissions())}),e.selectedVisualization=k,e.currentUser=x,e.dataSource={},e.query=n.current.locals.query,e.showPermissionsControl=E.showPermissionsControl,e.$watch("selectedVisualization",()=>{e.selectedTab=e.selectedVisualization.id});var q={"mod+enter":e.executeQuery,"alt+enter":e.executeQuery};function N(t){return Object(r.find)(e.query.visualizations,e=>e.id==t)}w.bind(q),e.$on("$destroy",()=>{w.unbind(q)}),(e.query.hasResult()||e.query.paramsRequired())&&_(),e.queryExecuting=!1,e.isQueryOwner=x.id===e.query.user.id||x.hasPermission("admin"),e.canEdit=x.canEdit(e.query)||e.query.can_edit,e.canViewSource=x.hasPermission("view_source"),e.canExecuteQuery=(()=>!e.query.$parameters.hasPendingValues()&&(e.query.is_safe||x.hasPermission("execute_query")&&!e.dataSource.view_only)),e.canForkQuery=(()=>x.hasPermission("edit_query")&&!e.dataSource.view_only),e.canScheduleQuery=x.hasPermission("schedule_query"),n.current.locals.dataSources?(e.dataSources=n.current.locals.dataSources,$(n.current.locals.dataSources)):e.dataSources=C.query($),e.showDataset=!0,e.showLog=!1,e.lockButton=(t=>{e.queryExecuting=t}),e.showApiKey=(()=>{S.open({component:"apiKeyDialog",resolve:{query:e.query}})}),e.duplicateQuery=(()=>{var t="duplicatedQueryTab"+Math.random().toString();y.open("",t),P.fork({id:e.query.id},e=>{var n=e.getUrl(!0);y.open(n,t)})}),e.saveTags=(t=>{e.query.tags=t,e.saveQuery({},{tags:e.query.tags})}),e.loadTags=(()=>Object(o.default)("api/queries/tags").then(e=>Object(r.map)(e,e=>e.name))),e.applyParametersChanges=(()=>{e.$apply()}),e.saveQuery=((t,n)=>{var a=n;if(a){if(e.query.isNew())return v.reject();a.id=e.query.id,a.version=e.query.version}else a=Object(r.pick)(e.query,["schedule","query","id","description","name","data_source_id","options","latest_query_data_id","version","is_draft"]);var o=b({},{successMessage:"Query saved",errorMessage:"Query could not be saved"},t);function i(){o.force=!0,e.saveQuery(o,n)}return o.force&&delete a.version,a.options&&a.options.parameters&&(a.options=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){g(e,t,n[t])})}return e}({},a.options,{parameters:Object(r.map)(a.options.parameters,e=>Object(r.omit)(e,"pendingValue"))})),P.save(a,t=>{m.default.success(o.successMessage),e.query.version=t.version},t=>{if(409===t.status){var n="It seems like the query has been modified by another user.";if(e.isQueryOwner){j.open("Overwrite Query","It seems like the query has been modified by another user.<br>Are you sure you want to overwrite the query with your version?",{class:"btn-warning",title:"Overwrite"}).then(i)}else m.default.error("Changes not saved",n+" Please copy/backup your changes and reload this page.",{duration:null})}else m.default.error(o.errorMessage)}).$promise}),e.togglePublished=(()=>{t.record("toggle_published","query",e.query.id),e.query.is_draft=!e.query.is_draft,e.saveQuery(void 0,{is_draft:e.query.is_draft})}),e.saveDescription=(n=>{e.query.description=n,t.record("edit_description","query",e.query.id),e.saveQuery(void 0,{description:e.query.description})}),e.saveName=(n=>{var r;e.query.name=n,t.record("edit_name","query",e.query.id),e.query.is_draft&&E.autoPublishNamedQueries&&"New Query"!==e.query.name&&(e.query.is_draft=!1,r={successMessage:"Query saved and published"}),e.saveQuery(r,{name:e.query.name,is_draft:e.query.is_draft})}),e.cancelExecution=(()=>{e.cancelling=!0,e.queryResult.cancelExecution(),t.record("cancel_execute","query",e.query.id)}),e.archiveQuery=(()=>{j.open("Archive Query","Are you sure you want to archive this query?<br/> All alerts and dashboard widgets created with its visualizations will be deleted.",{class:"btn-warning",title:"Archive"}).then(function(){P.delete({id:e.query.id},()=>{e.query.is_archived=!0,e.query.schedule=null},()=>{m.default.error("Query could not be archived.")})})}),e.updateDataSource=(()=>{t.record("update_data_source","query",e.query.id),localStorage.lastSelectedDataSourceId=e.query.data_source_id,e.query.latest_query_data=null,e.query.latest_query_data_id=null,e.query.id&&P.save({id:e.query.id,data_source_id:e.query.data_source_id,latest_query_data_id:null},t=>{e.query.version=t.version}),e.dataSource=Object(r.find)(e.dataSources,t=>t.id===e.query.data_source_id),T(),e.executeQuery()}),e.setVisualizationTab=(t=>{e.selectedVisualization=t,h.hash(t.id)}),e.deleteVisualization=((t,n)=>{t.preventDefault();var r="Are you sure you want to delete ".concat(n.name," ?");j.open(void 0,r,{class:"btn-danger",title:"Delete"}).then(()=>{s.Visualization.delete({id:n.id},()=>{e.selectedVisualization.id===n.id&&(e.selectedVisualization=k,h.hash(e.selectedVisualization.id)),e.query.visualizations=e.query.visualizations.filter(e=>n.id!==e.id)},()=>{m.default.error("Error deleting visualization.","Maybe it's used in a dashboard?")})})}),e.$watch("query.name",()=>{O.set(e.query.name)}),e.$watch("queryResult && queryResult.getStatus()",t=>{if(t){if("done"===t)e.query.query!==e.queryResult.query_result.query||(e.query.latest_query_data_id=e.queryResult.getId(),e.query.queryResult=e.queryResult),l.default.showNotification("Redash","".concat(e.query.name," updated."));else"failed"===t&&l.default.showNotification("Redash","".concat(e.query.name," failed to run: ").concat(e.queryResult.getError()));"done"!==t&&"failed"!==t||e.lockButton(!1),null!=e.queryResult.getLog()&&(e.showLog=!0)}}),e.openVisualizationEditor=(t=>{e.query.isNew()?e.saveQuery().then(e=>{h.path(e.getSourceLink()).hash("add")}):d.default.showModal({query:e.query,visualization:N(t),queryResult:e.queryResult}).result.then(t=>{e.setVisualizationTab(t),e.$applyAsync()})}),"add"===h.hash()&&(h.hash(null),e.openVisualizationEditor());var D=E.queryRefreshIntervals,R=i.policy.getQueryRefreshIntervals();e.refreshOptions=Object(r.isArray)(R)?Object(r.intersection)(D,R):D,e.showScheduleForm=!1,e.editSchedule=(()=>{e.canEdit&&e.canScheduleQuery&&c.default.showModal({schedule:e.query.schedule,refreshOptions:e.refreshOptions}).result.then(t=>{e.query.schedule=t,e.saveQuery()})}),e.closeScheduleForm=(()=>{e.$apply(()=>{e.showScheduleForm=!1})}),e.openAddToDashboardForm=(t=>{var n=N(t);S.open({component:"addToDashboardDialog",size:"sm",resolve:{query:e.query,vis:n}})}),e.showEmbedDialog=((e,t)=>{var n=N(t);p.default.showModal({query:e,visualization:n})}),e.$watch(()=>h.hash(),t=>{e.selectedVisualization=Object(r.find)(e.query.visualizations,e=>e.id==t)||Object(r.minBy)(e.query.visualizations,e=>e.id)||k}),e.showManagePermissionsModal=(()=>{S.open({component:"permissionsEditor",resolve:{aclUrl:{url:"api/queries/".concat(f.queryId,"/acl")},owner:e.query.user}})})}function v(e){return e.controller("QueryViewCtrl",y),{"/queries/:queryId":{template:h.a,layout:"fixed",controller:"QueryViewCtrl",reloadOnSearch:!1,resolve:{query:["Query","$route",(e,t)=>e.get({id:t.current.params.queryId}).$promise]}}}}y.$inject=["$scope","Events","$route","$routeParams","$location","$window","$q","KeyboardShortcuts","Title","AlertDialog","clientConfig","$uibModal","currentUser","Query","DataSource"],v.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return D});n(14),n(15),n(29),n(106);var r=n(2),a=n(0),o=n.n(a),i=n(17),s=n(18),l=n.n(s),c=n(37),u=n.n(c),d=n(70),p=n(75),m=n(486),f=n(49),h=n(76),g=n(68),b=n(46),y=n(24),v=n(158),w=n(56),O=n(91),j=n(10),E=n(52),S=n(12),x=n(48);n(1629);function P(e){return(P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function C(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function k(e){return(k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function T(e,t){return(T=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function $(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var q=e=>j.currentUser.isAdmin||j.currentUser.id===Object(r.get)(e,"user.id"),N=function(e){function t(){var e,n,a,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var s=arguments.length,c=new Array(s),d=0;d<s;d++)c[d]=arguments[d];return a=this,i=(e=k(t)).call.apply(e,[this].concat(c)),n=!i||"object"!==P(i)&&"function"!=typeof i?_(a):i,$(_(n),"listColumns",[y.Columns.custom.sortable((e,t)=>o.a.createElement("div",null,o.a.createElement("a",{className:"table-main-title clickable",onClick:()=>n.showSnippetDialog(t)},t.trigger)),{title:"Trigger",field:"trigger",className:"text-nowrap"}),y.Columns.custom.sortable(e=>e,{title:"Description",field:"description",className:"text-nowrap"}),y.Columns.custom(e=>o.a.createElement("code",{className:"snippet-content"},e),{title:"Snippet",field:"snippet"}),y.Columns.avatar({field:"user",className:"p-l-0 p-r-0"},e=>"Created by ".concat(e)),y.Columns.date.sortable({title:"Created At",field:"created_at",className:"text-nowrap",width:"1%"}),y.Columns.custom((e,t)=>q(t)&&o.a.createElement(l.a,{type:"danger",className:"w-100",onClick:e=>n.deleteQuerySnippet(e,t)},"Delete"),{width:"1%"})]),$(_(n),"saveQuerySnippet",e=>v.QuerySnippet.save(e).$promise),$(_(n),"deleteQuerySnippet",(e,t)=>{u.a.confirm({title:"Delete Query Snippet",content:"Are you sure you want to delete this query snippet?",okText:"Yes",okType:"danger",cancelText:"No",onOk:()=>{t.$delete(()=>{S.default.success("Query snippet deleted successfully."),n.props.controller.update()},()=>{S.default.error("Failed deleting query snippet.")})}})}),$(_(n),"showSnippetDialog",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=!e||q(e);Object(w.default)("/query_snippets/"+Object(r.get)(e,"id","new"),!0,!1),m.default.showModal({querySnippet:e,onSubmit:n.saveQuerySnippet,readOnly:!t}).result.then(()=>n.props.controller.update()).finally(()=>{Object(w.default)("/query_snippets",!0,!1)})}),n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&T(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){var e=this,t=this.props.controller.params,n=t.isNewOrEditPage,r=t.querySnippetId;n&&("new"===r?E.policy.isCreateQuerySnippetEnabled()?this.showSnippetDialog():Object(w.default)("/query_snippets"):v.QuerySnippet.get({id:r}).$promise.then(this.showSnippetDialog).catch(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.status&&t.data&&(t=new d.a(t)),e.props.controller.handleError(t)}))}},{key:"render",value:function(){var e=this.props.controller;return o.a.createElement("div",null,o.a.createElement("div",{className:"m-b-15"},o.a.createElement(l.a,{type:"primary",onClick:()=>this.showSnippetDialog(),disabled:!E.policy.isCreateQuerySnippetEnabled()},o.a.createElement("i",{className:"fa fa-plus m-r-5"}),"New Query Snippet")),!e.isLoaded&&o.a.createElement(b.default,{className:""}),e.isLoaded&&e.isEmpty&&o.a.createElement("div",{className:"text-center"},"There are no query snippets yet.",E.policy.isCreateQuerySnippetEnabled()&&o.a.createElement("div",{className:"m-t-5"},o.a.createElement("a",{className:"clickable",onClick:()=>this.showSnippetDialog()},"Click here")," to add one.")),e.isLoaded&&!e.isEmpty&&o.a.createElement("div",{className:"table-responsive"},o.a.createElement(y.default,{items:e.pageItems,columns:this.listColumns,context:this.actions,orderByField:e.orderByField,orderByReverse:e.orderByReverse,toggleSorting:e.toggleSorting}),o.a.createElement(p.Paginator,{totalCount:e.totalItemsCount,itemsPerPage:e.itemsPerPage,page:e.page,onChange:t=>e.updatePagination({page:t})})))}}])&&C(n.prototype,a),i&&C(n,i),t}();function D(e){return O.default.add({permission:"create_query",title:"Query Snippets",path:"query_snippets",order:5}),e.component("pageQuerySnippetsList",Object(i.react2angular)(Object(f.wrap)(N,new h.ResourceItemsSource({isPlainList:!0,getRequest:function(){return{}},getResource:function(){return v.QuerySnippet.query.bind(v.QuerySnippet)},getItemProcessor:function(){return e=>new v.QuerySnippet(e)}}),new g.StateStorage({orderByField:"trigger",itemsPerPage:10})))),Object(x.b)([{path:"/query_snippets",title:"Query Snippets",key:"query_snippets"},{path:"/query_snippets/:querySnippetId",title:"Query Snippets",key:"query_snippets",isNewOrEditPage:!0}],{reloadOnSearch:!1,template:'<settings-screen><page-query-snippets-list on-error="handleError"></page-query-snippets-list></settings-screen>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}$(N,"propTypes",{controller:f.ControllerType.isRequired}),D.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return M});n(14),n(15),n(34),n(11),n(19),n(27),n(29),n(106);var r=n(0),a=n.n(r),o=n(17),i=n(2),s=n(121),l=n.n(s),c=n(18),u=n.n(c),d=n(35),p=n.n(d),m=n(31),f=n.n(m),h=n(26),g=n.n(h),b=n(101),y=n.n(b),v=n(40),w=n.n(v),O=n(46),j=n(48),E=n(10),S=n(91),x=n(58),P=n(229),C=n(100),k=n(118);function _(e){return(_="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function T(){return(T=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function $(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){A(e,t,n[t])})}return e}function q(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function N(e){return(N=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function D(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function R(e,t){return(R=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function A(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var I=g.a.Option,z=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var o=arguments.length,s=new Array(o),l=0;l<o;l++)s[l]=arguments[l];return r=this,a=(e=N(t)).call.apply(e,[this].concat(s)),n=!a||"object"!==_(a)&&"function"!=typeof a?D(r):a,A(D(n),"state",{settings:{},formValues:{},loading:!0,submitting:!1}),A(D(n),"disablePasswordLoginToggle",()=>!(E.clientConfig.googleLoginEnabled||n.state.formValues.auth_saml_enabled)),A(D(n),"handleSubmit",e=>{e.preventDefault(),n.state.submitting||(n.setState({submitting:!0}),P.default.save(n.state.formValues).then(e=>{var t=Object(i.get)(e,"settings");n.setState({settings:t,formValues:$({},t)})}).finally(()=>n.setState({submitting:!1})))}),A(D(n),"handleChange",(e,t)=>{n.setState(n=>({formValues:T(n.formValues,A({},e,t))}),()=>{n.disablePasswordLoginToggle()&&!n.state.formValues.auth_password_login_enabled&&n.handleChange("auth_password_login_enabled",!0)})}),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&R(e,t)}(t,a.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){Object(x.default)("view","page","org_settings"),P.default.get().then(e=>{var t=Object(i.get)(e,"settings");this.setState({settings:t,formValues:$({},t),loading:!1})})}},{key:"renderGoogleLoginOptions",value:function(){var e=this.state.formValues;return a.a.createElement(a.a.Fragment,null,a.a.createElement("h4",null,"Google Login"),a.a.createElement(p.a.Item,{label:"Allowed Google Apps Domains"},a.a.createElement(g.a,{mode:"tags",value:e.auth_google_apps_domains,onChange:e=>this.handleChange("auth_google_apps_domains",e)}),!Object(i.isEmpty)(e.auth_google_apps_domains)&&a.a.createElement(l.a,{message:a.a.createElement("p",null,"Any user registered with a ",a.a.createElement("strong",null,Object(i.join)(e.auth_google_apps_domains,", "))," ","Google Apps account will be able to login. If they don","'","t have an existing user, a new user will be created and join the ",a.a.createElement("strong",null,"Default")," group."),className:"m-t-15"})))}},{key:"renderSAMLOptions",value:function(){var e=this.state.formValues;return a.a.createElement(a.a.Fragment,null,a.a.createElement("h4",null,"SAML"),a.a.createElement(p.a.Item,null,a.a.createElement(y.a,{name:"auth_saml_enabled",checked:e.auth_saml_enabled,onChange:e=>this.handleChange("auth_saml_enabled",e.target.checked)},"SAML Enabled")),e.auth_saml_enabled&&a.a.createElement("div",null,a.a.createElement(p.a.Item,{label:"SAML Metadata URL"},a.a.createElement(f.a,{value:e.auth_saml_metadata_url,onChange:e=>this.handleChange("auth_saml_metadata_url",e.target.value)})),a.a.createElement(p.a.Item,{label:"SAML Entity ID"},a.a.createElement(f.a,{value:e.auth_saml_entity_id,onChange:e=>this.handleChange("auth_saml_entity_id",e.target.value)})),a.a.createElement(p.a.Item,{label:"SAML NameID Format"},a.a.createElement(f.a,{value:e.auth_saml_nameid_format,onChange:e=>this.handleChange("auth_saml_nameid_format",e.target.value)}))))}},{key:"renderGeneralSettings",value:function(){var e=this.state.formValues;return a.a.createElement(a.a.Fragment,null,a.a.createElement("h3",{className:"m-t-0"},"General"),a.a.createElement("hr",null),a.a.createElement(p.a.Item,{label:"Date Format"},a.a.createElement(g.a,{value:e.date_format,onChange:e=>this.handleChange("date_format",e),"data-test":"DateFormatSelect"},E.clientConfig.dateFormatList.map(e=>a.a.createElement(I,{key:e},e)))),a.a.createElement(p.a.Item,{label:"Time Format"},a.a.createElement(g.a,{value:e.time_format,onChange:e=>this.handleChange("time_format",e),"data-test":"TimeFormatSelect"},E.clientConfig.timeFormatList.map(e=>a.a.createElement(I,{key:e},e)))),a.a.createElement(p.a.Item,{label:"Feature Flags"},a.a.createElement(y.a,{name:"feature_show_permissions_control",checked:e.feature_show_permissions_control,onChange:e=>this.handleChange("feature_show_permissions_control",e.target.checked)},"Enable experimental multiple owners support")),a.a.createElement(p.a.Item,null,a.a.createElement(y.a,{name:"send_email_on_failed_scheduled_queries",checked:e.send_email_on_failed_scheduled_queries,onChange:e=>this.handleChange("send_email_on_failed_scheduled_queries",e.target.checked)},"Email query owners when scheduled queries fail")),a.a.createElement(p.a.Item,null,a.a.createElement(y.a,{name:"multi_byte_search_enabled",checked:e.multi_byte_search_enabled,onChange:e=>this.handleChange("multi_byte_search_enabled",e.target.checked)},"Enable multi-byte (Chinese, Japanese, and Korean) search for query names and descriptions (slower)")),a.a.createElement(k.default,{name:"BeaconConsentSetting"},a.a.createElement(p.a.Item,{label:a.a.createElement(a.a.Fragment,null,"Anonymous Usage Data Sharing ",a.a.createElement(C.HelpTrigger,{type:"USAGE_DATA_SHARING"}))},a.a.createElement(y.a,{name:"beacon_consent",checked:e.beacon_consent,onChange:e=>this.handleChange("beacon_consent",e.target.checked)},"Help Redash improve by automatically sending anonymous usage data"))))}},{key:"renderAuthSettings",value:function(){var e=this.state,t=e.settings,n=e.formValues;return a.a.createElement(a.a.Fragment,null,a.a.createElement("h3",{className:"m-t-0"},"Authentication ",a.a.createElement(C.HelpTrigger,{type:"AUTHENTICATION_OPTIONS"})),a.a.createElement("hr",null),!t.auth_password_login_enabled&&a.a.createElement(l.a,{message:"Password based login is currently disabled and users will be able to login only with the enabled SSO options.",type:"warning",className:"m-t-15 m-b-15"}),a.a.createElement(p.a.Item,null,a.a.createElement(y.a,{checked:n.auth_password_login_enabled,disabled:this.disablePasswordLoginToggle(),onChange:e=>this.handleChange("auth_password_login_enabled",e.target.checked)},a.a.createElement(w.a,{title:this.disablePasswordLoginToggle()?"Password login can be disabled only if another login method is enabled.":null,placement:"right"},"Password Login Enabled"))),E.clientConfig.googleLoginEnabled&&this.renderGoogleLoginOptions(),this.renderSAMLOptions())}},{key:"render",value:function(){var e=this.state,t=e.loading,n=e.submitting;return a.a.createElement("div",{className:"row","data-test":"OrganizationSettings"},a.a.createElement("div",{className:"col-md-offset-4 col-md-4"},t?a.a.createElement(O.default,{className:""}):a.a.createElement(p.a,{layout:"vertical",onSubmit:this.handleSubmit},this.renderGeneralSettings(),this.renderAuthSettings(),a.a.createElement(u.a,{className:"w-100",type:"primary",htmlType:"submit",loading:n},"Save"))))}}])&&q(n.prototype,r),o&&q(n,o),t}();function M(e){return S.default.add({permission:"admin",title:"Settings",path:"settings/organization",order:6}),e.component("pageOrganizationSettings",Object(o.react2angular)(z)),Object(j.b)([{path:"/settings/organization",title:"Organization Settings",key:"organization-settings"}],{reloadOnSearch:!1,template:'<settings-screen><page-organization-settings on-error="handleError"></page-organization-settings></settings-screen>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]})}M.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return S});n(14),n(15),n(29);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(17),l=n(467),c=n(489),u=n(490),d=n(46),p=n(53),m=n(91),f=n(22),h=n(10),g=n(70);n(1632);function b(e){return(b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e,t){return!t||"object"!==b(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=v(this,w(t).call(this,e))).state={user:null},n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}(t,a.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){var e=f.$route.current.params.userId||h.currentUser.id;p.User.get({id:e}).$promise.then(e=>this.setState({user:p.User.convertUserInfo(e)})).catch(e=>{e.status&&e.data&&(e=new g.a(e)),this.props.onError(e)})}},{key:"render",value:function(){var e=this.state.user,t=e&&(h.currentUser.isAdmin||h.currentUser.id===e.id)?c.default:u.default;return a.a.createElement(a.a.Fragment,null,a.a.createElement(l.EmailSettingsWarning,{featureName:"invite emails"}),a.a.createElement("div",{className:"row"},e?a.a.createElement(t,{user:e}):a.a.createElement(d.default,{className:""})))}}])&&y(n.prototype,r),o&&y(n,o),t}();function S(e){m.default.add({title:"Account",path:"users/me",order:7}),e.component("pageUserProfile",Object(s.react2angular)(E))}j(E,"propTypes",{onError:i.a.func}),j(E,"defaultProps",{onError:()=>{}}),S.init=!0},function(e,t,n){},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return V});n(221),n(14),n(15),n(29),n(106),n(95);var r=n(2),a=n(0),o=n.n(a),i=n(1),s=n.n(i),l=n(17),c=n(18),u=n.n(c),d=n(37),p=n.n(d),m=n(75),f=n(118),h=n(122),g=n(169),b=n(49),y=n(76),v=n(68),w=n(46),O=n(155),j=n(61),E=n(24),S=n(69),x=n(488),P=n(91),C=n(10),k=n(52),_=n(53),T=n(56),$=n(12),q=n(283);function N(e){return(N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function D(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function R(e){return(R=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function A(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function I(e,t){return(I=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function M(e){var t=e.user,n=e.enableUser,r=e.disableUser,a=e.deleteUser;return t.id===C.currentUser.id?null:t.is_invitation_pending?o.a.createElement(u.a,{type:"danger",className:"w-100",onClick:e=>a(e,t)},"Delete"):t.is_disabled?o.a.createElement(u.a,{type:"primary",className:"w-100",onClick:e=>n(e,t)},"Enable"):o.a.createElement(u.a,{className:"w-100",onClick:e=>r(e,t)},"Disable")}M.propTypes={user:s.a.shape({id:s.a.number,is_invitation_pending:s.a.bool,is_disabled:s.a.bool}).isRequired,enableUser:s.a.func.isRequired,disableUser:s.a.func.isRequired,deleteUser:s.a.func.isRequired};var F=function(e){function t(){var e,n,a,i;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var s=arguments.length,l=new Array(s),c=0;c<s;c++)l[c]=arguments[c];return a=this,i=(e=R(t)).call.apply(e,[this].concat(l)),n=!i||"object"!==N(i)&&"function"!=typeof i?A(a):i,z(A(n),"sidebarMenu",[{key:"active",href:"users",title:"Active Users"},{key:"pending",href:"users/pending",title:"Pending Invitations"},{key:"disabled",href:"users/disabled",title:"Disabled Users",isAvailable:()=>k.policy.canCreateUser()}]),z(A(n),"listColumns",[E.Columns.custom.sortable((e,t)=>o.a.createElement(h.UserPreviewCard,{user:t,withLink:!0}),{title:"Name",field:"name",width:null}),E.Columns.custom.sortable((e,t)=>Object(r.map)(t.groups,e=>o.a.createElement("a",{key:"group"+e.id,className:"label label-tag",href:"groups/"+e.id},e.name)),{title:"Groups",field:"groups"}),E.Columns.timeAgo.sortable({title:"Joined",field:"created_at",className:"text-nowrap",width:"1%"}),E.Columns.timeAgo.sortable({title:"Last Active At",field:"active_at",className:"text-nowrap",width:"1%"}),E.Columns.custom((e,t)=>o.a.createElement(M,{user:t,enableUser:n.enableUser,disableUser:n.disableUser,deleteUser:n.deleteUser}),{width:"1%",isAvailable:()=>k.policy.canCreateUser()})]),z(A(n),"createUser",e=>_.User.create(e).$promise.then(e=>{$.default.success("Saved."),e.invite_link&&p.a.warning({title:"Email not sent!",content:o.a.createElement(o.a.Fragment,null,o.a.createElement("p",null,"The mail server is not configured, please send the following link to ",o.a.createElement("b",null,e.name),":"),o.a.createElement(g.default,{value:Object(q.absoluteUrl)(e.invite_link),readOnly:!0}))})}).catch(e=>(e instanceof Error||(e=new Error(Object(r.get)(e,"data.message","Failed saving."))),Promise.reject(e)))),z(A(n),"showCreateUserDialog",()=>{k.policy.isCreateUserEnabled()&&x.default.showModal({onCreate:n.createUser}).result.then(()=>n.props.controller.update()).finally(()=>{n.props.controller.params.isNewUserPage&&Object(T.default)("users")})}),z(A(n),"enableUser",(e,t)=>_.User.enableUser(t).then(()=>n.props.controller.update())),z(A(n),"disableUser",(e,t)=>_.User.disableUser(t).then(()=>n.props.controller.update())),z(A(n),"deleteUser",(e,t)=>_.User.deleteUser(t).then(()=>n.props.controller.update())),n}var n,a,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&I(e,t)}(t,o.a.Component),n=t,(a=[{key:"componentDidMount",value:function(){this.props.controller.params.isNewUserPage&&this.showCreateUserDialog()}},{key:"renderPageHeader",value:function(){return k.policy.canCreateUser()?o.a.createElement("div",{className:"m-b-15"},o.a.createElement(u.a,{type:"primary",disabled:!k.policy.isCreateUserEnabled(),onClick:this.showCreateUserDialog},o.a.createElement("i",{className:"fa fa-plus m-r-5"}),"New User"),o.a.createElement(f.default,{name:"UsersListExtra"})):null}},{key:"render",value:function(){var e=this.props.controller;return o.a.createElement(o.a.Fragment,null,this.renderPageHeader(),o.a.createElement(S.default,null,o.a.createElement(S.default.Sidebar,{className:"m-b-0"},o.a.createElement(j.SearchInput,{value:e.searchTerm,onChange:e.updateSearch}),o.a.createElement(j.Menu,{items:this.sidebarMenu,selected:e.params.currentPage}),o.a.createElement(j.PageSizeSelect,{className:"m-b-10",options:e.pageSizeOptions,value:e.itemsPerPage,onChange:t=>e.updatePagination({itemsPerPage:t})})),o.a.createElement(S.default.Content,null,!e.isLoaded&&o.a.createElement(w.default,{className:""}),e.isLoaded&&e.isEmpty&&o.a.createElement(O.default,{className:""}),e.isLoaded&&!e.isEmpty&&o.a.createElement("div",{className:"table-responsive"},o.a.createElement(E.default,{items:e.pageItems,columns:this.listColumns,context:this.actions,orderByField:e.orderByField,orderByReverse:e.orderByReverse,toggleSorting:e.toggleSorting}),o.a.createElement(m.Paginator,{totalCount:e.totalItemsCount,itemsPerPage:e.itemsPerPage,page:e.page,onChange:t=>e.updatePagination({page:t})})))))}}])&&D(n.prototype,a),i&&D(n,i),t}();function V(e){P.default.add({permission:"list_users",title:"Users",path:"users",isActive:e=>e.startsWith("/users")&&"/users/me"!==e,order:2}),e.component("pageUsersList",Object(l.react2angular)(Object(b.wrap)(F,new y.ResourceItemsSource({getRequest:function(e,t){switch(t.params.currentPage){case"active":e.pending=!1;break;case"pending":e.pending=!0;break;case"disabled":e.disabled=!0}return e},getResource:function(){return _.User.query.bind(_.User)},getItemProcessor:function(){return e=>new _.User(e)}}),new v.UrlStateStorage({orderByField:"created_at",orderByReverse:!0}))))}z(F,"propTypes",{controller:b.ControllerType.isRequired}),V.init=!0},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return o});var r=n(2),a=n(48);function o(){var e=Object(a.b)([{path:"/users",title:"Users",key:"active"},{path:"/users/new",title:"Users",key:"active",isNewUserPage:!0},{path:"/users/pending",title:"Pending Invitations",key:"pending"},{path:"/users/disabled",title:"Disabled Users",key:"disabled"}],{template:'<settings-screen><page-users-list on-error="handleError"></page-users-list></settings-screen>',reloadOnSearch:!1,controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]}),t=Object(a.b)([{path:"/users/me",title:"Account",key:"users"},{path:"/users/:userId",title:"Users",key:"users"}],{reloadOnSearch:!1,template:'<settings-screen><page-user-profile on-error="handleError"></page-user-profile></settings-screen>',controller:["$scope","$exceptionHandler",function(e,t){e.handleError=t}]});return Object(r.extend)(e,t)}o.init=!0},function(e,t,n){},function(e,t,n){},,,,,function(e,t,n){"use strict";n.r(t);n(114),n(14),n(15),n(11),n(19),n(131),n(810),n(541);var r=n(752),a=n(98),o=n.n(a),i=n(66),s=n.n(i),l=n(753),c=n.n(l),u=n(754),d=n.n(u),p=n(755),m=n.n(p),f=n(756),h=n.n(f),g=n(757),b=n.n(g),y=n(758),v=n.n(y),w=n(759),O=n.n(w),j=n(760),E=n.n(j),S=(n(193),n(826),n(827),n(2)),x=(n(239),n(83)),P=n.n(x),C=n(761),k=n.n(C);function _(e){return(_="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}s.a.module("ui.sortable",[]).value("uiSortableConfig",{items:"> [ng-repeat],> [data-ng-repeat],> [x-ng-repeat]",cancel:"input, textarea, button, select, option, .ui-sortable-bypass"}).directive("uiSortable",["uiSortableConfig","$timeout","$log",function(e,t,n){return{require:"?ngModel",scope:{ngModel:"=",uiSortable:"="},link:function(r,a,o,i){var l;function c(e,t){var n="function"==typeof t;return"function"==typeof e&&n?function(){e.apply(this,arguments),t.apply(this,arguments)}:n?t:e}function u(e){var t=e.data("ui-sortable");return t&&"object"===_(t)&&"ui-sortable"===t.widgetFullName?t:null}function d(t,n){return y[t]?("stop"===t&&(n=c(n,()=>{r.$apply()}),n=c(n,f)),n=c(y[t],n)):v[t]&&(n=v[t](n)),n||"items"!==t&&"ui-model-items"!==t||(n=e.items),n}function p(e,t,n){s.a.forEach(y,function(e,t){t in g||(g[t]=null)});var r,a=null;t&&s.a.forEach(t,(t,n)=>{if(!(e&&n in e)){if(n in b)return void(g[n]="ui-floating"===n?"auto":d(n,void 0));r||(r=k()().options);var o=r[n];o=d(n,o),a||(a={}),a[n]=o,g[n]=o}});return s.a.forEach(e,(e,t)=>{if(t in b)return"ui-floating"!==t||!1!==e&&!0!==e||!n||(n.floating=e),void(g[t]=d(t,e));e=d(t,e),a||(a={}),a[t]=e,g[t]=e}),a}function m(e,t,n){var r=null;return function(e,t){var n=e.sortable("option","helper");return"clone"===n||"function"==typeof n&&t.item.sortable.isCustomHelperUsed()}(e,t)&&"parent"===e.sortable("option","appendTo")&&(r=n.last()),r}function f(e,t){t.item.sortable._destroy()}function h(e){return e.parent().find(g["ui-model-items"]).index(e)}a=P()(a);var g={},b={"ui-floating":void 0,"ui-model-items":e.items},y={receive:null,remove:null,start:null,stop:null,update:null},v={helper:null};function w(){r.$watchCollection("ngModel",()=>{t(()=>{u(a)&&a.sortable("refresh")},0,!1)}),y.start=function(e,t){if("auto"===g["ui-floating"]){var n=t.item.siblings();u(P()(e.target)).floating=/left|right/.test((r=n).css("float"))||/inline|table-cell/.test(r.css("display"))}var r,a=h(t.item);t.item.sortable={model:i.$modelValue[a],index:a,source:t.item.parent(),sourceModel:i.$modelValue,cancel:function(){t.item.sortable._isCanceled=!0},isCanceled:function(){return t.item.sortable._isCanceled},isCustomHelperUsed:function(){return!!t.item.sortable._isCustomHelperUsed},_isCanceled:!1,_isCustomHelperUsed:t.item.sortable._isCustomHelperUsed,_destroy:function(){s.a.forEach(t.item.sortable,(e,n)=>{t.item.sortable[n]=void 0})}}},y.activate=function(e,t){l=a.contents();var n=function(e){var t=e.sortable("option","placeholder");if(t&&t.element&&"function"==typeof t.element){var n=t.element();return n=P()(n)}return null}(a);if(n&&n.length){var o=function(e,t){var n=g["ui-model-items"].replace(/[^,]*>/g,"");return e.find('[class="'.concat(t.attr("class"),'"]:not(').concat(n,")"))}(a,n);l=l.not(o)}var i=t.item.sortable._connectedSortables||[];i.push({element:a,scope:r}),t.item.sortable._connectedSortables=i},y.update=function(e,t){if(!t.item.sortable.received){t.item.sortable.dropindex=h(t.item);var n=t.item.parent();t.item.sortable.droptarget=n;var o=function(e,t){for(var n=null,r=0;r<e.length;r++){var a=e[r];if(a.element[0]===t[0]){n=a.scope;break}}return n}(t.item.sortable._connectedSortables,n);t.item.sortable.droptargetModel=o.ngModel,a.sortable("cancel")}var s=!t.item.sortable.received&&m(a,t,l);s&&s.length&&(l=l.not(s)),l.appendTo(a),t.item.sortable.received&&(l=null),t.item.sortable.received&&!t.item.sortable.isCanceled()&&r.$apply(()=>{i.$modelValue.splice(t.item.sortable.dropindex,0,t.item.sortable.moved)})},y.stop=function(e,t){if(!t.item.sortable.received&&"dropindex"in t.item.sortable&&!t.item.sortable.isCanceled())r.$apply(()=>{i.$modelValue.splice(t.item.sortable.dropindex,0,i.$modelValue.splice(t.item.sortable.index,1)[0])});else if((!("dropindex"in t.item.sortable)||t.item.sortable.isCanceled())&&!s.a.equals(a.contents(),l)){var n=m(a,t,l);n&&n.length&&(l=l.not(n)),l.appendTo(a)}l=null},y.receive=function(e,t){t.item.sortable.received=!0},y.remove=function(e,t){"dropindex"in t.item.sortable||(a.sortable("cancel"),t.item.sortable.cancel()),t.item.sortable.isCanceled()||r.$apply(()=>{t.item.sortable.moved=i.$modelValue.splice(t.item.sortable.index,1)[0]})},v.helper=function(e){return e&&"function"==typeof e?function(t,n){var r=n.sortable,a=h(n);n.sortable={model:i.$modelValue[a],index:a,source:n.parent(),sourceModel:i.$modelValue,_restore:function(){s.a.forEach(n.sortable,(e,t)=>{n.sortable[t]=void 0}),n.sortable=r}};var o=e.apply(this,arguments);return n.sortable._restore(),n.sortable._isCustomHelperUsed=n!==o,o}:e},r.$watchCollection("uiSortable",(e,t)=>{var n=u(a);if(n){var r=p(e,t,n);r&&a.sortable("option",r)}},!0),p(g)}function O(){return(!r.uiSortable||!r.uiSortable.disabled)&&(i?w():n.info("ui.sortable: ngModel not provided!",a),a.sortable(g),O.cancelWatcher(),O.cancelWatcher=s.a.noop,!0)}s.a.extend(g,b,e,r.uiSortable),O.cancelWatcher=s.a.noop,O()||(O.cancelWatcher=r.$watch("uiSortable.disabled",O))}}}]);var T=n(33),$=n(157),q=n(45);function N(e){return{link:function(t,n){e(()=>{n[0].focus()})}}}function D(e){e.directive("autofocus",N)}function R(){return{require:"ngModel",scope:{otherModelValue:"=compareTo"},link:function(e,t,n,r){var a=t=>{r.$setValidity("compareTo",t===e.otherModelValue)};e.$watch("otherModelValue",()=>{a(r.$modelValue)}),r.$parsers.push(e=>(a(e),e))}}}function A(e){e.directive("compareTo",R)}N.$inject=["$timeout"],D.init=!0,A.init=!0;var I=o()("redash:directives");window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame;function z(e){return{title:"Redash",set:function(t){this.title=t,e.$broadcast("$titleChange")},get:function(){return this.title}}}function M(e,t){return{restrict:"E",link:function(n,r){e.$on("$routeChangeSuccess",(e,n)=>{n.title&&t.set(n.title)}),e.$on("$titleChange",function(){var e=t.get();I("Updating title to: %s",e),r.text(e)})}}}function F(e){e.factory("Title",z).directive("title",M)}M.$inject=["$rootScope","Title"],z.$inject=["$rootScope"],F.init=!0;var V=n(117);function U(){return{restrict:"A",link:function(e,t,n){var r=Object(V.default)(t[0],()=>{e.$evalAsync(n.resizeEvent)});e.$on("$destroy",r)}}}function L(e){e.directive("resizeEvent",U)}L.init=!0;n(34);function B(){return(B=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function Q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function H(e,t){return isNaN(e)&&isNaN(t)||e===t}Y.$inject=["KeyboardShortcuts"];var G=Object(S.find)(["flexBasis","webkitFlexBasis","msFlexPreferredSize"],e=>e in document.documentElement.style)||"flexBasis",W=5;function Y(e){return{link:function(t,n,r){if("false"!==r.resizable){var a=!1,o=null,i=!0,s=!0,l=n.width(),c=n.height(),u=t.$eval(r.rFlex),d=Q({},r.toggleShortcut,()=>{n.find(".rg-left, .rg-right, .rg-top, .rg-bottom").click()});e.bind(d),t.$on("$destroy",()=>{e.unbind(d)}),t.$on("angular-resizable.resizeStart",(e,t)=>{a||(o=B({},t))}),t.$on("angular-resizable.resizeEnd",(e,t)=>{a||(i=!0,!1!==t.width&&(i=H(t.width,o.width)),s=!0,!1!==t.height&&(s=H(t.height,o.height)))}),n.on("click",".rg-left, .rg-right",()=>{if(i){var e=parseFloat(n.css("min-width"))+W,t=n.width(),r=u?G:"width";t<=e?n.animate(Q({},r,l+"px"),300,()=>{p(l,!1)}):(l=t,n.css(Q({},r,t+"px")).animate(Q({},r,0),300,()=>{p(0,!1)}))}}),n.on("click",".rg-top, .rg-bottom",()=>{if(s){var e=parseFloat(n.css("min-height"))+W,t=n.height(),r=u?G:"height";t<=e?n.animate(Q({},r,c+"px"),300,()=>{p(!1,c)}):(c=t,n.css(Q({},r,t+"px")).animate(Q({},r,0),300,()=>{p(!1,0)}))}})}function p(e,r){a=!0;var o={width:e,height:r,id:n.attr("id"),evt:null};t.$emit("angular-resizable.resizeStart",o),t.$emit("angular-resizable.resizing",o),t.$emit("angular-resizable.resizeEnd",o),a=!1}}}}function K(e){e.directive("resizableToggle",Y)}function X(e){D(e),A(e),F(e),L(e),K(e)}K.init=!0,X.init=!0;var J=n(287);function Z(e){e.filter("markdown",["$sce","clientConfig",(e,t)=>(function(n){if(!n)return"";var r=J.markdown.toHTML(String(n));return t.allowScriptsInUserInput&&(r=e.trustAsHtml(r)),r})])}Z.init=!0;var ee=n(171),te=n(0),ne=n.n(te),re=n(226);n.n(re).a.setDefaultIndicator(ne.a.createElement("i",{className:"fa fa-spinner fa-pulse"}));var ae=n(9),oe=n.n(ae);function ie(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var se=o()("redash:config");r.options.shouldHandlePushState=((e,t)=>{return ie(e.split("?"),1)[0]!==ie(t.split("?"),1)[0]}),oe.a.updateLocale("en",{relativeTime:{future:"%s",past:"%s",s:"just now",m:"a minute ago",mm:"%d minutes ago",h:"an hour ago",hh:"%d hours ago",d:"a day ago",dd:"%d days ago",M:"a month ago",MM:"%d months ago",y:"a year ago",yy:"%d years ago"}});var le,ce=[d.a,m.a,c.a,h.a,v.a,b.a,"ui.ace",O.a,"angularResizable",E.a,"ui.sortable"],ue=s.a.module("app",ce);function de(e){return e.keys().map(e).map(e=>e.default).filter(S.isFunction).filter(e=>e.init).map(e=>e(ue))}(le=n(865)).keys().forEach(le),X(ue),de(n(1373)),Object(S.each)(q,(e,t)=>{ue.filter(t,()=>e)}),Z(ue),Object(ee.a)(ue),de(n(938)),de(n(1603)).forEach(e=>{ue.config(["$routeProvider",t=>{Object(S.each)(e,(e,n)=>{se("Registering route: %s",n),e.authenticated=!0,e.resolve=Object(S.extend)({__organizationStatus:()=>$.default.refresh()},e.resolve),t.when(n,e)})}])}),ue.config(["$routeProvider",e=>{e.otherwise({resolve:{error:()=>{throw{status:404}}}})}]),de(n(1372)),de(n(1382)),ue.run(["$q",e=>{T.default.Promise=e}]);var pe=ue;pe.config(["$locationProvider","$compileProvider","uiSelectConfig",(e,t,n)=>{t.debugInfoEnabled(!1),t.aHrefSanitizationWhitelist(/^\s*(https?|data|tel|sms|mailto):/),e.html5Mode(!0),n.theme="bootstrap"}]),pe.run(["$templateCache",e=>{var t=e.get("bootstrap/match.tpl.html");t=t.replace("glyphicon glyphicon-remove","fa fa-remove"),e.put("bootstrap/match.tpl.html",t)}]);t.default=pe},,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t);n(11),n(19),n(27);var r=n(2),a=n.n(r),o=(n(239),n(13)),i=n(66),s=n.n(i),l="<<<Exit>>>",c=o.scale.category10();function u(e){return c(e.name)}function d(e,t){this.element=t,this.watches=[];var n=t.clientWidth,r=t.offsetHeight,i={w:n/6,h:30,s:3,t:10},s=Math.min(n-i.h,r-i.h)/2-5;if(!(s<=0)){var d={top:s,bottom:50,left:s,right:0},p=0,m=o.layout.partition().size([2*Math.PI,s*s]).value(e=>e.size),f=o.svg.arc().startAngle(e=>e.x).endAngle(e=>e.x+e.dx).innerRadius(e=>Math.sqrt(e.y)).outerRadius(e=>Math.sqrt(e.y+e.dy)),h=o.select(t),g=h.append("div").classed("breadcrumbs-container",!0).append("svg").attr("width",n).attr("height",i.h).attr("fill","white").attr("font-weight",600),b=h.append("div"),y=b.append("div").classed("summary-container",!0),v=b.append("div").classed("sunburst-container",!0).append("svg").attr("width",2*s).attr("height",2*s).append("g").attr("transform","translate(".concat(d.left,",").concat(d.top,")")),w=g.append("text").classed("lastCrumb",!0);C(),this.watches.push(e.$watch("$ctrl.data",C)),this.watches.push(e.$watch("$ctrl.options",C,!0))}function O(e,t){var n=[];return n.push("0,0"),n.push("".concat(i.w,",0")),n.push("".concat(i.w+i.t,",").concat(i.h/2)),n.push("".concat(i.w,",").concat(i.h)),n.push("0,".concat(i.h)),t>0&&n.push("".concat(i.t,",").concat(i.h/2)),n.join(" ")}function j(e){var t=(100*e.value/p).toPrecision(3),n="".concat(t,"%");t<1&&(n="< 1.0%");var r=function(e){for(var t=[],n=e;n.parent;)t.unshift(n),n=n.parent;return t}(e);!function(e,t){var n=g.selectAll("g").data(e,e=>e.name+e.depth),r=n.enter().append("g");r.append("polygon").classed("breadcrumbs-shape",!0).attr("points",O).attr("fill",u),r.append("text").classed("breadcrumbs-text",!0).attr("x",(i.w+i.t)/2).attr("y",i.h/2).attr("dy","0.35em").attr("font-size","10px").attr("text-anchor","middle").text(e=>e.name),n.attr("transform",(e,t)=>"translate(".concat(t*(i.w+i.s),", 0)")),n.exit().remove(),w.attr("x",(e.length+.5)*(i.w+i.s)).attr("y",i.h/2).attr("dy","0.35em").attr("text-anchor","middle").attr("fill","black").attr("font-weight",600).text(t)}(r,n),v.selectAll("path").attr("opacity",.3),v.selectAll("path").filter(e=>r.indexOf(e)>=0).attr("opacity",1),y.html("\n <span>Stage: ".concat(e.depth,"</span>\n <span class='percentage' style='font-size: 2em;'>").concat(n,"</span>\n <span>").concat(e.value," of ").concat(p,"</span>\n ")),y.style("visibility",""),g.style("visibility","")}function E(){v.selectAll("path").on("mouseover",null),v.selectAll("path").transition().duration(1e3).attr("opacity",1).each("end",function(){o.select(this).on("mouseover",j)}),g.style("visibility","hidden"),y.style("visibility","hidden")}function S(e){!function(e){var t,n=m.nodes(e).filter(e=>e.dx>.005&&e.name!==l),r=(t=[],n.forEach(e=>{-1===t.indexOf(e.name)&&t.push(e.name)}),t);c.domain(r);var a=v.data([e]).selectAll("path").data(n).enter().append("path").classed("nodePath",!0).attr("display",e=>e.depth?null:"none").attr("d",f).attr("fill",u).attr("opacity",1).attr("stroke","white").on("mouseover",j);h.on("click",E),p=a.node().__data__.value}(e)}function x(e){var t=function(e){var t;if(a.a.has(e[0],"sequence")&&a.a.has(e[0],"stage")&&a.a.has(e[0],"node")&&a.a.has(e[0],"value")){var n=a.a.groupBy(e,"sequence");t=a.a.map(n,e=>{var t=a.a.sortBy(e,"stage");return{size:e[0].value||0,sequence:e[0].sequence,nodes:a.a.map(t,e=>e.node)}})}else{var r=a.a.sortBy(a.a.filter(a.a.keys(e[0]),e=>"value"!==e&&0!==e.indexOf("$$")),a.a.identity);t=a.a.map(e,(e,t)=>({size:e.value||0,sequence:t,nodes:a.a.compact(a.a.map(r,t=>e[t]))}))}return t}(e),n={name:"root",children:[]};return t.forEach(e=>{for(var t=e.nodes,r=parseInt(e.size,10),o=n,i=function(e){var n=o.children,i=t[e],s=e+1===t.length;n||(o.children=n=[],n.push({name:l,size:o.size}));var c=a.a.find(n,e=>e.name===i);s&&c?(c.children=c.children||[],c.children.push({name:l,size:r})):s?n.push({name:i,size:r}):(c||(c={name:i,children:[]},n.push(c)),o=c)},s=0;s<t.length;s+=1)i(s)}),n}function P(e){var t=x(e);v.selectAll(".nodePath").remove(),S(t)}function C(){e.$ctrl.data&&P(e.$ctrl.data.rows)}}d.prototype.remove=function(){this.watches.forEach(e=>{e()}),s.a.element(this.element).empty(".vis-container")};var p=d,m=n(59),f=n(20),h=n(511);function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"default",function(){return y});var b={template:'<div class="sunburst-visualization-container" resize-event="handleResize()"></div>',bindings:{data:"<",options:"<"},controller:["$scope","$element",function(e,t){var n=t[0].querySelector(".sunburst-visualization-container"),a=new p(e,n);e.handleResize=Object(r.debounce)(function(){a.remove(),a=new p(e,n)},50)}]};function y(e){e.component("sunburstSequenceRenderer",b),e.run(["$injector",e=>{Object(f.registerVisualization)({type:"SUNBURST_SEQUENCE",name:"Sunburst Sequence",getOptions:e=>(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){g(e,t,n[t])})}return e})({},e),Renderer:Object(m.angular2react)("sunburstSequenceRenderer",b,e),Editor:h.default,defaultRows:7})}])}y.init=!0},function(e,t,n){"use strict";n.r(t);n(14),n(15),n(29),n(114),n(11);var r=n(0),a=n.n(r),o=n(1),i=n.n(o),s=n(40),l=n.n(s),c=n(17),u=n(343),d=n.n(u),p=n(193),m=n.n(p),f=n(12),h=(n(1323),n(1324),n(1326),n(1327),n(1328),n(1329),n(1330),n(39)),g=n(158),b=n(272),y="localOptions:";var v={get:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=y+e;return n in window.localStorage?JSON.parse(window.localStorage.getItem(n)):t},set:function(e,t){var n=y+e;window.localStorage.setItem(n,JSON.stringify(t))}},w=n(455),O=n(473),j=n(44);n(1331);function E(e){return(E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function x(e){return(x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function P(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function C(e,t){return(C=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"default",function(){return N});var _=m.a.acequire("ace/ext/language_tools"),T=m.a.acequire("ace/snippets");function $(e){m.a.define("ace/snippets/".concat(e),["require","exports","module"],(t,n)=>{n.snippetText="",n.scope=e})}$("python"),$("sql"),$("json"),$("yaml");var q=function(e){function t(e){var n,r,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,o=x(t).call(this,e),n=!o||"object"!==E(o)&&"function"!=typeof o?P(r):o,k(P(n),"onLoad",e=>{e.commands.bindKey("Cmd+L",null),e.commands.bindKey("Ctrl+P",null),e.commands.bindKey("Ctrl+L",null),e.commands.bindKey({win:"Ctrl+P",mac:null},null),e.commands.bindKey({win:null,mac:"Ctrl+P"},"golineup"),e.commands.bindKey({win:"Ctrl+Shift+F",mac:"Cmd+Shift+F"},n.formatQuery),e.commands.on("afterExec",t=>{"insertstring"===t.command.name&&"."===t.args&&e.completer&&e.completer.showPopup(e)}),g.QuerySnippet.query(e=>{var t=T.snippetManager,n={snippetText:""};n.snippets=t.parseSnippetFile(n.snippetText),e.forEach(e=>{n.snippets.push(e.getSnippet())}),t.register(n.snippets||[],n.scope)}),e.focus(),n.props.listenForResize(()=>e.resize()),n.props.listenForEditorCommand(function(t,r){switch(r){case"focus":e.focus();break;case"paste":for(var a=arguments.length,o=new Array(a>2?a-2:0),i=2;i<a;i++)o[i-2]=arguments[i];var s=o[0];e.session.doc.replace(e.selection.getRange(),s);var l=e.selection.getRange();n.props.updateQuery(e.session.getValue()),e.selection.setRange(l)}})}),k(P(n),"updateSelectedQuery",e=>{var t=n.refEditor.current.editor.getSession().doc.getTextRange(e.getRange()),r=t.length>1?t:null;n.setState({selectedQueryText:r}),n.props.updateSelectedQuery(r)}),k(P(n),"updateQuery",e=>{n.props.updateQuery(e),n.setState({queryText:e})}),k(P(n),"formatQuery",()=>{h.Query.format(n.props.dataSource.syntax||"sql",n.props.queryText).then(n.updateQuery).catch(e=>f.default.error(e))}),k(P(n),"toggleAutocomplete",e=>{n.setState({autocompleteQuery:e}),v.set("liveAutocomplete",e)}),k(P(n),"componentDidUpdate",()=>{n.refEditor.current.editor.resize()}),n.refEditor=a.a.createRef(),n.state={schema:null,keywords:{table:[],column:[],tableColumn:[]},autocompleteQuery:v.get("liveAutocomplete",!0),liveAutocompleteDisabled:!1,queryText:e.queryText,selectedQueryText:null};var i={identifierRegexps:[/[a-zA-Z_0-9.\-\u00A2-\uFFFF]/],getCompletions:(e,t,r,a,o)=>{var i=n.state.keywords.table,s=n.state.keywords.column,l=n.state.keywords.tableColumn;if(0!==a.length&&0!==i.length)if("."!==a[a.length-1])o(null,i.concat(s));else{var c=a.substring(0,a.length-1);o(null,i.concat(l[c]))}else o(null,[])}};return _.setCompleters([_.snippetCompleter,_.keyWordCompleter,_.textCompleter,i]),n}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&C(e,t)}(t,a.a.Component),n=t,o=[{key:"getDerivedStateFromProps",value:function(e,t){if(!e.schema)return{keywords:{table:[],column:[],tableColumn:[]},liveAutocompleteDisabled:!1};if(e.schema!==t.schema){var n=e.schema.reduce((e,t)=>e+t.columns.length,0);return{schema:e.schema,keywords:O.default.buildKeywordsFromSchema(e.schema),liveAutocompleteDisabled:n>5e3}}return null}}],(r=[{key:"render",value:function(){var e=b.KeyboardShortcuts.modKey,t=this.props.queryExecuting||!this.props.canExecuteQuery;return a.a.createElement("section",{style:{height:"100%"},"data-test":"QueryEditor"},a.a.createElement("div",{className:"container p-15 m-b-10",style:{height:"100%"}},a.a.createElement("div",{"data-executing":this.props.queryExecuting,style:{height:"calc(100% - 40px)",marginBottom:"0px"},className:"editor__container"},a.a.createElement(d.a,{ref:this.refEditor,theme:"textmate",mode:this.props.dataSource.syntax||"sql",value:this.state.queryText,editorProps:{$blockScrolling:1/0},width:"100%",height:"100%",setOptions:{behavioursEnabled:!0,enableSnippets:!0,enableBasicAutocompletion:!0,enableLiveAutocompletion:!this.state.liveAutocompleteDisabled&&this.state.autocompleteQuery,autoScrollEditorIntoView:!0},showPrintMargin:!1,wrapEnabled:!1,onLoad:this.onLoad,onPaste:this.onPaste,onChange:this.updateQuery,onSelectionChange:this.updateSelectedQuery})),a.a.createElement("div",{className:"editor__control"},a.a.createElement("div",{className:"form-inline d-flex"},a.a.createElement(l.a,{placement:"top",title:a.a.createElement("span",null,"Add New Parameter (",a.a.createElement("i",null,e," + P"),")")},a.a.createElement("button",{type:"button",className:"btn btn-default m-r-5",onClick:this.props.addNewParameter},"{{ }}")),a.a.createElement(l.a,{placement:"top",title:a.a.createElement(a.a.Fragment,null,"Format Query (",a.a.createElement("i",null,e," + Shift + F"),")")},a.a.createElement("button",{type:"button",className:"btn btn-default m-r-5",onClick:this.formatQuery},a.a.createElement("span",{className:"zmdi zmdi-format-indent-increase"}))),a.a.createElement(w.default,{state:this.state.autocompleteQuery,onToggle:this.toggleAutocomplete,disabled:this.state.liveAutocompleteDisabled}),a.a.createElement("select",{className:"form-control datasource-small flex-fill w-100",onChange:this.props.updateDataSource,disabled:!this.props.isQueryOwner},this.props.dataSources.map(e=>a.a.createElement("option",{label:e.name,value:e.id,key:"ds-option-".concat(e.id)},e.name))),this.props.canEdit?a.a.createElement(l.a,{placement:"top",title:e+" + S"},a.a.createElement("button",{type:"button",className:"btn btn-default m-l-5",onClick:this.props.saveQuery,"data-test":"SaveButton",title:"Save"},a.a.createElement("span",{className:"fa fa-floppy-o"}),a.a.createElement("span",{className:"hidden-xs m-l-5"},"Save"),this.props.isDirty?"*":null)):null,a.a.createElement(l.a,{placement:"top",title:e+" + Enter"},a.a.createElement("button",{type:"button",className:"btn btn-primary m-l-5"+(t?" disabled":""),disabled:t,onClick:this.props.executeQuery,"data-test":"ExecuteButton"},a.a.createElement("span",{className:"zmdi zmdi-play"}),a.a.createElement("span",{className:"hidden-xs m-l-5"},null==this.state.selectedQueryText?"Execute":"Execute Selected")))))))}}])&&S(n.prototype,r),o&&S(n,o),t}();function N(e){e.component("queryEditor",Object(c.react2angular)(q))}k(q,"propTypes",{queryText:i.a.string.isRequired,schema:j.Schema,addNewParameter:i.a.func.isRequired,dataSources:i.a.arrayOf(j.DataSource),dataSource:j.DataSource,canEdit:i.a.bool.isRequired,isDirty:i.a.bool.isRequired,isQueryOwner:i.a.bool.isRequired,updateDataSource:i.a.func.isRequired,canExecuteQuery:i.a.bool.isRequired,executeQuery:i.a.func.isRequired,queryExecuting:i.a.bool.isRequired,saveQuery:i.a.func.isRequired,updateQuery:i.a.func.isRequired,updateSelectedQuery:i.a.func.isRequired,listenForResize:i.a.func.isRequired,listenForEditorCommand:i.a.func.isRequired}),k(q,"defaultProps",{schema:null,dataSource:{},dataSources:[]}),N.init=!0},function(e,t,n){"use strict";n.r(t);n(27),n(239),n(222),n(223),n(253),n(1596),n(114),n(19),n(11);var r=n(66),a=n.n(r),o=n(2),i=n.n(o),s=n(13),l=n.n(s),c=n(59),u=n(20);function d(e){return e.y+e.dy/2}function p(e){return e.value}var m=function(){var e={},t=24,n=8,r=[1,1],a=[],o=[];function i(){var e,n,o=a,i=0;function s(n){n.x=i,n.dx=t,n.sourceLinks.forEach(t=>{e.indexOf(t.target)<0&&e.push(t.target)})}for(;o.length;)e=[],o.forEach(s),o=e,i+=1;!function(e){a.forEach(t=>{t.sourceLinks.length||(t.x=e-1)})}(i),n=(r[0]-t)/(i-1),a.forEach(e=>{e.x*=n})}function s(){function e(e,t){return e.source.y-t.source.y}function t(e,t){return e.target.y-t.target.y}a.forEach(n=>{n.sourceLinks.sort(t),n.targetLinks.sort(e)}),a.forEach(e=>{var t=0,n=0;e.sourceLinks.forEach(e=>{e.sy=t,t+=e.dy}),e.targetLinks.forEach(e=>{e.ty=n,n+=e.dy})})}return e.nodeWidth=function(n){return arguments.length?(t=+n,e):t},e.nodePadding=function(t){return arguments.length?(n=+t,e):n},e.nodes=function(t){return arguments.length?(a=t,e):a},e.links=function(t){return arguments.length?(o=t,e):o},e.size=function(t){return arguments.length?(r=t,e):r},e.layout=function(t){return a.forEach(e=>{e.sourceLinks=[],e.targetLinks=[]}),o.forEach(e=>{var t=e.source,n=e.target;"number"==typeof t&&(t=e.source=a[e.source]),"number"==typeof n&&(n=e.target=a[e.target]),t.sourceLinks.push(e),n.targetLinks.push(e)}),a.forEach(e=>{e.value=Math.max(l.a.sum(e.sourceLinks,p),l.a.sum(e.targetLinks,p))}),i(),function(e){var t,i=l.a.nest().key(e=>e.x).sortKeys(l.a.ascending).entries(a).map(e=>e.values);function s(e){function t(e){return d(e.source)*e.value}i.forEach(n=>{n.forEach(n=>{if(n.targetLinks.length){var r=l.a.sum(n.targetLinks,t)/l.a.sum(n.targetLinks,p);n.y+=(r-d(n))*e}})})}function c(){i.forEach(e=>{var t,a,o,i=e.length,s=0;for(e.sort(f),o=0;o<i;++o)(a=s-(t=e[o]).y)>0&&(t.y+=a),s=t.y+t.dy+n;if((a=s-n-r[1])>0)for(s=t.y-=a,o=i-2;o>=0;--o)(a=(t=e[o]).y+t.dy+n-s)>0&&(t.y-=a),s=t.y})}function c(){i.forEach(e=>{var t,a,o,i=0,s=e.length;for(e.sort(f),o=0;o<s;++o)(a=i-(t=e[o]).y)>0&&(t.y+=a),i=t.y+t.dy+n;if((a=i-n-r[1])>0)for(i=t.y-=a,o=s-2;o>=0;--o)(a=(t=e[o]).y+t.dy+n-i)>0&&(t.y-=a),i=t.y})}t=l.a.min(i,e=>(r[1]-(e.length-1)*n)/l.a.sum(e,p)),i.forEach(e=>{e.forEach((e,n)=>{e.y=n,e.dy=e.value*t})}),o.forEach(e=>{e.dy=e.value*t}),c();for(var u=1;e>0;e-=1)m(u*=.99),c(),s(u),c();function m(e){function t(e){return d(e.target)*e.value}i.slice().reverse().forEach(n=>{n.forEach(n=>{if(n.sourceLinks.length){var r=l.a.sum(n.sourceLinks,t)/l.a.sum(n.sourceLinks,p);n.y+=(r-d(n))*e}})})}function f(e,t){return e.y-t.y}}(t),s(),e},e.relayout=function(){return s(),e},e.link=function(){var e=.5;function t(t){var n=t.source.x+t.source.dx,r=t.target.x,a=l.a.interpolateNumber(n,r),o=a(e),i=a(1-e),s=t.source.y+t.sy+t.dy/2,c=t.target.y+t.ty+t.dy/2;return"M".concat(n,",").concat(s,"C").concat(o,",").concat(s," ").concat(i,",").concat(c," ").concat(r,",").concat(c)}return t.curvature=(n=>arguments.length?(e=+n,t):e),t},e},f=n(510);function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){var t={},n={},r=[],a=i.a.sortBy(i.a.filter(i.a.keys(e[0]),e=>"value"!==e&&0!==e.indexOf("$$")),i.a.identity);function o(e,n){e=function(e){return i.a.isNil(e)?"Exit":""+e}(e);var a="".concat(e,":").concat(String(n)),o=t[a];return o||((o={name:e}).id=r.push(o)-1,t[a]=o),o}function s(e,t,r,a){if(""!==e&&e||!(a>1)){var i=o(e,a),s=o(t,a+1);(function(e,t){var r=n[[e,t]];return r||(r={target:t,source:e,value:0},n[[e,t]]=r),r}(i.id,s.id)).value+=parseInt(r,10)}}return e.forEach(e=>{s(e[a[0]],e[a[1]],e.value||0,1),s(e[a[1]],e[a[2]],e.value||0,2),s(e[a[2]],e[a[3]],e.value||0,3),s(e[a[3]],e[a[4]],e.value||0,4)}),{nodes:r,links:i.a.values(n)}}function b(e,t){var n=10,r=10,a=10,o=10,s=e.offsetWidth-o-r,c=e.offsetHeight-n-a;if(!(s<=0||c<=0)){var u=e=>l.a.format(",.0f")(e),d=l.a.scale.category20();(t=g(t)).nodes=i.a.map(t.nodes,e=>i.a.extend(e,{color:d(e.name.replace(/ .*/,""))}));var p=l.a.select(e).append("svg").attr("class","sankey").attr("width",s+o+r).attr("height",c+n+a).append("g").attr("transform","translate(".concat(o,",").concat(n,")")),f=m().nodeWidth(15).nodePadding(10).size([s,c]),h=f.link();f.nodes(t.nodes).links(t.links).layout(0),function(e,t){l.a.nest().key(e=>e.x).entries(t.nodes).map(e=>e.values).forEach(t=>{t=i.a.filter(i.a.sortBy(t,e=>-e.value),e=>"Exit"!==e.name);var n=l.a.sum(t,e=>e.dy),r=(e-n)/t.length;i.a.reduce(t,(e,t)=>(t.y=e,e+t.dy+r),0)})}(c,t),f.relayout();var b=p.append("g").selectAll(".link").data(t.links).enter().append("path").filter(e=>"Exit"!==e.target.name).attr("class","link").attr("d",h).style("stroke-width",e=>Math.max(1,e.dy)).sort((e,t)=>t.dy-e.dy);b.append("title").text(e=>"".concat(e.source.name," → ").concat(e.target.name,"\n").concat(u(e.value)));var y=p.append("g").selectAll(".node").data(t.nodes).enter().append("g").filter(e=>"Exit"!==e.name).attr("class","node").attr("transform",e=>"translate(".concat(e.x,",").concat(e.y,")"));y.on("mouseover",function(e){var t=function(e){var t=[];return e.sourceLinks.forEach(e=>{t.push(e.target)}),e.targetLinks.forEach(e=>{t.push(e.source)}),t}(e);t=i.a.map(t,e=>e.id),y.filter(n=>n!==e&&!i.a.includes(t,n.id)).style("opacity",.2),b.filter(t=>!(i.a.includes(e.sourceLinks,t)||i.a.includes(e.targetLinks,t))).style("opacity",.2)}).on("mouseout",function(){y.style("opacity",1),b.style("opacity",1)}),y.append("rect").attr("height",e=>e.dy).attr("width",f.nodeWidth()).style("fill",e=>e.color).style("stroke",e=>l.a.rgb(e.color).darker(2)).append("title").text(e=>"".concat(e.name,"\n").concat(u(e.value))),y.append("text").attr("x",-6).attr("y",e=>e.dy/2).attr("dy",".35em").attr("text-anchor","end").attr("transform",null).text(e=>e.name).filter(e=>e.x<s/2).attr("x",6+f.nodeWidth()).attr("text-anchor","start")}}n.d(t,"default",function(){return v});var y={template:'<div class="sankey-visualization-container" resize-event="handleResize()"></div>',bindings:{data:"<",options:"<"},controller:["$scope","$element",function(e,t){var n=t[0].querySelector(".sankey-visualization-container"),r=()=>{this.data&&(a.a.element(n).empty(),function(e){return i.a.find(e.columns,e=>"value"===e.name)}(this.data)&&b(n,this.data.rows))};e.handleResize=i.a.debounce(r,50),e.$watch("$ctrl.data",r),e.$watch("$ctrl.options",r,!0)}]};function v(e){e.component("sankeyRenderer",y),e.run(["$injector",e=>{Object(u.registerVisualization)({type:"SANKEY",name:"Sankey",getOptions:e=>(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){h(e,t,n[t])})}return e})({},e),Renderer:Object(c.angular2react)("sankeyRenderer",y,e),Editor:f.default,defaultRows:7})}])}v.init=!0}]); | |
| //# sourceMappingURL=app.88ac1b6c8e87b2093dc8.js.map |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment