@cubejs-backend/server-core 0.28.55 → 0.28.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -78,6 +78,15 @@ object-assign
78
78
  * LICENSE file in the root directory of this source tree.
79
79
  */
80
80
 
81
+ /** @license React v17.0.2
82
+ * react-is.production.min.js
83
+ *
84
+ * Copyright (c) Facebook, Inc. and its affiliates.
85
+ *
86
+ * This source code is licensed under the MIT license found in the
87
+ * LICENSE file in the root directory of this source tree.
88
+ */
89
+
81
90
  /** @license React v17.0.2
82
91
  * react-jsx-runtime.production.min.js
83
92
  *
@@ -0,0 +1 @@
1
+ (this["webpackJsonp@cubejs-client/playground"]=this["webpackJsonp@cubejs-client/playground"]||[]).push([[0],{731:function(e,t,n){"use strict";n.r(t);var r=n(33),a=n.n(r),i=n(43),o=n(74),s=n(11),c=n(0),l=n.n(c),u=(n(213),n(742)),d=n(763),b=n(10),p=n(773),h=n(743),m=n(774),j=n(775),f=n(256),g=n(147),y=n(310),v=n(91),x=n(1);const O=()=>Object(x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 32 32",fill:"currentColor",children:Object(x.jsx)("path",{d:"M16.135 0c8.75 0 15.865 7.313 15.865 15.995s-7.104 15.99-15.865 15.99l-16.135 0.016v-16.281c0-8.677 7.375-15.719 16.135-15.719zM16.292 6.083c-3.458-0.005-6.661 1.802-8.448 4.76-1.776 2.943-1.849 6.609-0.198 9.625l-1.781 5.677 6.396-1.432c3.656 1.635 7.953 0.901 10.844-1.854 2.896-2.734 3.818-6.969 2.318-10.661-1.51-3.703-5.12-6.12-9.12-6.115z"})});var k,w,C;const S=Object(b.d)(g.a)(k||(k=Object(s.a)(["\n && {\n background: transparent;\n border-bottom: 0;\n }\n"]))),A=Object(b.d)(g.a.Item)(w||(w=Object(s.a)(["\n &&& {\n font-size: 15px;\n font-weight: 500;\n line-height: 48px;\n height: 49px;\n & > a {\n &,\n &:hover {\n opacity: 0.6;\n color: white;\n }\n }\n &.ant-menu-item-selected,\n &.ant-menu-item-active {\n color: white;\n border-bottom: 2px solid white;\n\n &:hover {\n border-bottom: 2px solid white;\n }\n\n a {\n opacity: 1;\n color: white;\n }\n }\n\n &:not(.ant-menu-item-selected) {\n &.ant-menu-item-active,\n &:hover {\n color: white;\n border-bottom: 2px solid white;\n }\n }\n }\n"]))),D=b.d.a(C||(C=Object(s.a)(["\n &&& {\n float: right;\n height: 32px;\n margin: 8px ",";\n border: 1px solid rgba(255, 255, 255, 0.35);\n border-radius: 4px;\n display: flex;\n align-items: center;\n color: white;\n transition: all 0.25s ease;\n padding: 0 10px;\n\n span {\n font-size: 14px;\n margin-right: 10px;\n }\n\n &:hover {\n border-color: white;\n color: white;\n }\n }\n"])),(e=>e.noMargin?"0":"8px"));var E,T,P,q=n(772),R=n(762),M=n(755),I=n(55);const L=b.d.div(E||(E=Object(s.a)(["\n display: flex;\n flex-direction: ",";\n flex-wrap: ",";\n justify-content: ",";\n align-items: ",";\n\n ",";\n\n margin: ",";\n"])),(e=>e.direction||"row"),(e=>e.wrap?"wrap":null),(e=>e.justifyContent),(e=>e.alignItems),(function(e){let{gap:t,direction:n}=e;if(t)return"column"===n?Object(b.c)(T||(T=Object(s.a)(["\n & > div {\n margin-bottom: ","px};\n }\n\n & > div:last-child {\n margin-bottom: 0;\n }\n "])),8*t):Object(b.c)(P||(P=Object(s.a)(["\n & > div {\n margin-right: ","px};\n }\n\n & > div:last-child {\n margin-right: 0;\n }\n "])),8*t);return""}),(function e(t){const n=t.margin;if("string"===typeof n)return n;if("number"===typeof n)return"".concat(8*n,"px");if(Array.isArray(n)){const{length:e}=n;if(2===e){const[e,t]=n;return"".concat(8*e,"px ").concat(8*t,"px")}if(e>2)return n.fill(0,0,4).map((e=>"".concat(8*e))).join(" ")}if(n&&Object.keys(n||{}).length)return Object.entries(n).map((t=>{let[n,r]=t;return"top"===n?"".concat(e({margin:r})," 0 0 0"):"bottom"===n?"0 0 ".concat(e({margin:r})," 0"):void 0}));return null}));var _;const B=b.d.div(_||(_=Object(s.a)(["\n align-self: ",";\n flex-grow: ",";\n"])),(e=>e.align),(e=>e.grow));var z=n(164),F=n.n(z);var Q=n(242),N=n(318),U=n(758),K=n(753),V=n(754),Y=n(767),J=n(414),G=n(415),W=n(184),H=n(411),Z=n(382);const $={"angular-cli":{files:{"src/polyfills.ts":{content:"import 'core-js/proposals/reflect-metadata';\nimport 'zone.js/dist/zone';"},"src/main.ts":{content:"import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));"},"src/index.html":{content:'<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="utf-8" />\n <title>AngularCharts</title>\n <base href="/" />\n <meta name="viewport" content="width=device-width, initial-scale=1" />\n <link rel="icon" type="image/x-icon" href="favicon.ico" />\n </head>\n <body>\n <app-root></app-root>\n </body>\n </html>\n '},".angular-cli.json":{content:'{\n "apps": [\n {\n "root": "src",\n "outDir": "dist",\n "index": "index.html",\n "main": "main.ts",\n "polyfills": "polyfills.ts",\n "styles": [],\n "scripts": []\n }\n ]\n }'}},dependencies:{"zone.js":"latest","@angular/platform-browser-dynamic":"latest","@angular/platform-browser":"latest","@angular/compiler":"latest",rxjs:"latest","@angular/common":"latest"}},"create-react-app":{dependencies:{"react-dom":"latest"}}},X={"react-chartjs-2":"chart.js"};function ee(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e)return;const r=new CustomEvent("__cubejsPlaygroundEvent",{bubbles:!0,composed:!0,detail:{...n,eventType:t}});e.dispatchEvent(r)}async function te(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Copied to clipboard";navigator.clipboard||H.a.error({message:"Your browser doesn't support copy to clipboard"});try{await navigator.clipboard.writeText(e),H.a.success({message:t})}catch(n){H.a.error({message:"Can't copy to clipboard",description:n})}}var ne;const{TabPane:re}=N.a,{TextArea:ae}=U.a,{Text:ie,Link:oe}=M.a,se=b.d.div(ne||(ne=Object(s.a)(["\n display: flex;\n gap: 8px;\n\n input {\n text-overflow: ",";\n }\n"])),(e=>e.editing?"unset":"ellipsis"));function ce(){const{payload:e,token:t,isModalOpen:n,setIsModalOpen:r,saveToken:a,onTokenPayloadChange:i}=pe(),[o]=K.a.useForm(),[s,l]=Object(c.useState)(!1),[u,d]=Object(c.useState)(!0),[b,p]=Object(c.useState)(e||""),[h,m]=Object(c.useState)(!1),j=Object(c.useRef)(null);return Object(c.useEffect)((()=>{var e;s&&(null===(e=j.current)||void 0===e||e.focus())}),[s]),Object(c.useEffect)((()=>{l(!t),p(e),o.setFieldsValue({token:t})}),[o,t,e]),Object(x.jsx)(V.a,{title:"Security Context",visible:n,footer:null,bodyStyle:{paddingTop:8},onCancel:()=>{r(!1),l(!1)},children:Object(x.jsx)("div",{"data-testid":"security-context-modal",children:Object(x.jsxs)(Y.b,{direction:"vertical",size:24,style:{width:"100%"},children:[Object(x.jsxs)(N.a,{defaultActiveKey:"json",style:{minHeight:200},onChange:e=>{"token"!==e&&s&&t&&(l(!1),o.resetFields())},children:[Object(x.jsx)(re,{tab:"JSON",children:Object(x.jsxs)(Y.b,{direction:"vertical",size:16,style:{width:"100%"},children:[Object(x.jsx)(ae,{"data-testid":"security-context-textarea",value:b||"",rows:6,style:{width:"100%"},onChange:function(e){const{value:t}=e.target;p(t);try{JSON.parse(t),d(!0)}catch(n){d(!1)}}}),Object(x.jsx)(I.a,{"data-testid":"save-security-context-payload-btn",type:"primary",disabled:Boolean(b&&!u),loading:h,onClick:async function(){if(u){if("function"!==typeof i)throw new Error("Saving token requires the `onTokenPayloadChange` function provided to the `SecurityContext`");m(!0);try{a(await i(JSON.parse(b||"{}"),null))}catch(e){console.error(e)}m(!1)}else b||a(null);r(!1)},children:"Save"})]})},"json"),Object(x.jsx)(re,{"data-testid":"security-modal-token-tab",tab:"Token",children:Object(x.jsxs)(Y.b,{direction:"vertical",size:16,style:{width:"100%"},children:[Object(x.jsx)(ie,{type:"secondary",children:"Edit or copy the generated token from below"}),Object(x.jsx)(K.a,{form:o,initialValues:{token:t},onFinish:async function(e){try{m(!0),a(await i(Object(Q.a)(null===e||void 0===e?void 0:e.token),(null===e||void 0===e?void 0:e.token)||null))}catch(t){a((null===e||void 0===e?void 0:e.token)||null)}finally{l(!1),r(!1),m(!1)}},children:Object(x.jsxs)(se,{editing:s,children:[Object(x.jsx)(K.a.Item,{name:"token",style:{width:"auto",flexGrow:1},children:Object(x.jsx)(U.a,{"data-testid":"security-context-token-input",ref:j,disabled:!s})}),s?Object(x.jsx)(I.a,{type:"primary",htmlType:"submit",loading:h,icon:Object(x.jsx)(W.a,{})}):Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(I.a,{ghost:!0,type:"primary",icon:Object(x.jsx)(J.a,{}),onClick:()=>{l(!0)}}),Object(x.jsx)(I.a,{type:"primary",icon:Object(x.jsx)(G.a,{}),disabled:!t,onClick:()=>te(t),children:"Copy"})]})]})})]})},"token")]}),Object(x.jsxs)(ie,{type:"secondary",children:["Learn more about Security Context in"," ",Object(x.jsx)(oe,{href:"https://cube.dev/docs/security/context",target:"_blank",children:"docs"})]})]})})})}const le=Object(c.createContext)({});let ue=0,de=null;function be(e){let{children:t,tokenUpdater:n,onTokenPayloadChange:r}=e;const a=gn(),[i,o,s]=fn("cubejsToken",null),[l,u]=Object(c.useState)(""),[d,b]=Object(c.useState)(!1);return Object(c.useEffect)((()=>{if(i)try{const e=Object(Q.a)(i);u(JSON.stringify(e,null,2))}catch(e){u(""),console.error("Invalid JWT token",i)}else u("")}),[i]),Object(x.jsxs)(le.Provider,{value:{token:i,payload:l,isModalOpen:d,setIsModalOpen:b,saveToken(e){e?o(e):s()},refreshToken:async function(){if(null!=i&&n&&de!==i){de=i;const e=ue,t=await n(i);a()&&e===ue&&(o(t),ue++)}},onTokenPayloadChange:r},children:[t,Object(x.jsx)(ce,{})]})}function pe(){return Object(c.useContext)(le)}n(329),n(520);var he=n(35),me=n.n(he),je=n(75),fe=n.n(je),ge=n(63),ye=n.n(ge),ve=n(66),xe=n.n(ve),Oe=n(56),ke=n.n(Oe),we=n(22),Ce=n.n(we),Se=n(760),Ae=n(97),De=n.n(Ae),Ee=n(46),Te=n.n(Ee),Pe=n(30),qe=n.n(Pe),Re=n(313),Me=n.n(Re),Ie=n(384),Le=n.n(Ie),_e=n(385),Be=n.n(_e),ze=n(407),Fe=n(734),Qe=n(735),Ne=n(408),Ue=n(764),Ke=n(178),Ve=n(765),Ye=n(388),Je=n(736),Ge=n(737),We=n(738),He=n(739),Ze=n(740),$e=n(741),Xe=n(766),et=n(791),tt=n(792),nt=n(759),rt=n(761),at=n(386),it=n.n(at),ot=(n(536),n(93)),st=n.n(ot),ct=n(168),lt=n.n(ct),ut=n(110),dt=n.n(ut),bt=n(387),pt=n.n(bt),ht=["query"];function mt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function jt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(n),!0).forEach((function(t){me()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ft=[{name:void 0,title:"w/o grouping"},{name:"second",title:"Second"},{name:"minute",title:"Minute"},{name:"hour",title:"Hour"},{name:"day",title:"Day"},{name:"week",title:"Week"},{name:"month",title:"Month"},{name:"quarter",title:"Quarter"},{name:"year",title:"Year"}];function gt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(ze.a)(Object.entries(e&&e.order||{}),Object.entries(t&&t.order||{}))&&Object(ze.a)(e,t)}function yt(e){var t=(e.timeDimensions||[]).find((function(e){return e.granularity}));return t?me()({},t.dimension,"asc"):(e.measures||[]).length>0&&(e.dimensions||[]).length>0?me()({},e.measures[0],"desc"):(e.dimensions||[]).length>0?me()({},e.dimensions[0],"asc"):{}}function vt(e){return!!e&&(Array.isArray(e)?e:[e]).every((function(e){return e.measures&&e.measures.length||e.dimensions&&e.dimensions.length||e.timeDimensions&&e.timeDimensions.length}))}function xt(e,t,n,r,a){var i=jt(jt({},e),{},{x:Te()(e.x),y:Te()(e.y)}),o=e[r][t],s=i[a].length-1;return"measures"===o?n=s+1:n>=s&&"measures"===i[a][s]&&(n=s-1),i[r].splice(t,1),i[a].splice(n,0,o),i}function Ot(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.reduce((function(e,t){return t.or||t.and?[].concat(Te()(e),Te()(Ot(t.or||t.and))):[].concat(Te()(e),[t])}),[])}function kt(e,t,n,r){var a=e.filter((function(e){return null!=e}));return n&&n.aliasSeries&&n.aliasSeries[t]?[n.aliasSeries[t]].concat(Te()(a)):r.has(a[0])?[t].concat(Te()(a)):a}var wt=["x"],Ct=["key"],St=["title","shortTitle"];function At(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Dt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?At(Object(n),!0).forEach((function(t){me()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):At(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Me.a.extend(Le.a);var Et=function(){return Me.a.apply(void 0,arguments).locale(Dt(Dt({},Be.a),{},{weekStart:1}))},Tt={day:function(e){return e.by("d").map((function(e){return e.format("YYYY-MM-DDT00:00:00.000")}))},month:function(e){return e.snapTo("month").by("M").map((function(e){return e.format("YYYY-MM-01T00:00:00.000")}))},year:function(e){return e.snapTo("year").by("y").map((function(e){return e.format("YYYY-01-01T00:00:00.000")}))},hour:function(e){return e.by("h").map((function(e){return e.format("YYYY-MM-DDTHH:00:00.000")}))},minute:function(e){return e.by("m").map((function(e){return e.format("YYYY-MM-DDTHH:mm:00.000")}))},second:function(e){return e.by("s").map((function(e){return e.format("YYYY-MM-DDTHH:mm:ss.000")}))},week:function(e){return e.snapTo("week").by("w").map((function(e){return e.startOf("week").format("YYYY-MM-DDT00:00:00.000")}))},quarter:function(e){return e.snapTo("quarter").by("quarter").map((function(e){return e.startOf("quarter").format("YYYY-MM-DDT00:00:00.000")}))}},Pt=/^\d\d\d\d-\d\d-\d\d$/,qt=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z?$/,Rt=function(e){var t=new Map;return function(n){return n.forEach((function(n){var r=e(n);t.has(r)||t.set(r,[]),t.get(r).push(n)})),Array.from(t.entries())}},Mt=function(e){var t=[];return e.forEach((function(e){e.forEach((function(e){return t.push(e)}))})),t},It=function e(t,n){return{by:function(e){for(var r=[],a=Et(t),i=Et(n);a.isBefore(i)||a.isSame(i);)r.push(a),a=a.add(1,e);return r},snapTo:function(r){return e(Et(t).startOf(r),Et(n).endOf(r))},start:Et(t),end:Et(n)}},Lt={REGULAR_QUERY:"regularQuery",COMPARE_DATE_RANGE_QUERY:"compareDateRangeQuery",BLENDING_QUERY:"blendingQuery"},_t=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(ye()(this,e),this.loadResponse=t,null!=this.loadResponse.queryType?(this.queryType=t.queryType,this.loadResponses=t.results):(this.queryType=Lt.REGULAR_QUERY,this.loadResponse.pivotQuery=Dt(Dt({},t.query),{},{queryType:this.queryType}),this.loadResponses=[t]),!Object.values(Lt).includes(this.queryType))throw new Error("Unknown query type");this.parseDateMeasures=n.parseDateMeasures,this.options=n,this.backwardCompatibleData=[]}return xe()(e,[{key:"drillDown",value:function(e,t){if(this.queryType===Lt.COMPARE_DATE_RANGE_QUERY)throw new Error("compareDateRange drillDown query is not currently supported");if(this.queryType===Lt.BLENDING_QUERY)throw new Error("Data blending drillDown query is not currently supported");var n=e.xValues,r=void 0===n?[]:n,a=e.yValues,i=void 0===a?[]:a,o=this.normalizePivotConfig(t),s=[];o.x.forEach((function(e,t){return s.push([e,r[t]])})),o.y.forEach((function(e,t){return s.push([e,i[t]])}));var c=this.query(),l=c.filters,u=void 0===l?[]:l,d=c.segments,b=void 0===d?[]:d,p=this.loadResponses[0].annotation.measures,h=s.find((function(e){return"measures"===qe()(e,1)[0]}))||[],m=qe()(h,2)[1];if(void 0===m){var j=Object.keys(p);m=qe()(j,1)[0]}if(!(p[m]&&p[m].drillMembers||[]).length)return null;var f=[{member:m,operator:"measureFilter"}].concat(Te()(u)),g=[];s.filter((function(e){return"measures"!==qe()(e,1)[0]})).forEach((function(e){var t=qe()(e,2),n=t[0],r=t[1],a=n.split("."),i=qe()(a,3),o=i[0],s=i[1],c=i[2];if(void 0!==c){var l=It(r,r).snapTo(c);g.push({dimension:[o,s].join("."),dateRange:[l.start,l.end].map((function(e){return e.format("YYYY-MM-DDTHH:mm:ss.SSS")}))})}else null==r?f.push({member:n,operator:"notSet"}):f.push({member:n,operator:"equals",values:[r.toString()]})}));var y=this.loadResponses[0].query;return 0===g.length&&y.timeDimensions.length>0&&null==y.timeDimensions[0].granularity&&g.push(y.timeDimensions[0]),Dt(Dt(Dt({},p[m].drillMembersGrouped),{},{filters:f},b.length>0?{segments:b}:{}),{},{timeDimensions:g,segments:b,timezone:y.timezone})}},{key:"series",value:function(e){var t=this;return this.seriesNames(e).map((function(n){var r=n.title,a=n.key;return{title:r,key:a,series:t.chartPivot(e).map((function(e){var t=e.x;return{value:De()(e,wt)[a],x:t}}))}}))}},{key:"axisValues",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.loadResponses[t].query;return function(t){var r=function(n){return e.filter((function(e){return"measures"!==e})).map((function(e){return null!=t[e]?t[e]:null})).concat(n?[n]:[])};return e.find((function(e){return"measures"===e}))&&(n.measures||[]).length?n.measures.map(r):[r()]}}},{key:"axisValuesString",value:function(e,t){return e.map((function(e){return null==e?"\u2205":""===e?"[Empty string]":e})).join(t||", ")}},{key:"normalizePivotConfig",value:function(t){return e.getNormalizedPivotConfig(this.loadResponse.pivotQuery,t)}},{key:"timeSeries",value:function(t,n){if(!t.granularity)return null;var r=t.dateRange;if(!r){var a=e.timeDimensionMember(t),i=Object(Ue.a)(Object(Ke.a)((function(e){return e[a]&&Et(e[a])})),Object(Ve.a)(Boolean))(this.timeDimensionBackwardCompatibleData(n));r=i.length&&[Object(Ye.a)(Object(Je.a)((function(e){return e.toDate()})),i[0],i),Object(Ye.a)(Object(Ge.a)((function(e){return e.toDate()})),i[0],i)]||null}if(!r)return null;var o=t.dateRange?t.dateRange.find((function(e){return e.match(Pt)})):!["hour","minute","second"].includes(t.granularity),s=r,c=qe()(s,2),l=c[0],u=c[1],d=It(l,u);if(!Tt[t.granularity])throw new Error("Unsupported time granularity: ".concat(t.granularity));return Tt[t.granularity](o?d.snapTo("d"):d)}},{key:"pivot",value:function(t){var n=this;t=this.normalizePivotConfig(t);var r=this.loadResponse.pivotQuery,a=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=Rt((function(e){var t=e.xValues;return n.axisValuesString(t)})),o=function(e,t){return e[t]};if(t.fillMissingDates&&1===t.x.length&&Object(ze.a)(t.x,(r.timeDimensions||[]).filter((function(e){return Boolean(e.granularity)})).map((function(t){return e.timeDimensionMember(t)})))){var s=n.loadResponses.map((function(e){return n.timeSeries(e.query.timeDimensions[0],a)}));s[0]&&(i=function(e){var t=Object(We.a)((function(e){return e.xValues[0]}),e);return s[a].map((function(e){return[e,t[e]||[{xValues:[e],row:{}}]]}))},o=function(e,t){return e[t]||0})}var c=Object(Ue.a)(Object(Ke.a)((function(e){return n.axisValues(t.x,a)(e).map((function(t){return{xValues:t,row:e}}))})),Mt,i)(n.timeDimensionBackwardCompatibleData(a)),l={};c.forEach((function(e){qe()(e,2)[1].forEach((function(e){var r=e.row;n.axisValues(t.y,a)(r).forEach((function(e){Object.keys(r).length>0&&(l[e.join()]=e)}))}))}));var u=Object.values(l),d=Boolean(t.x.find((function(e){return"measures"===e})));return c.map((function(r){var i=qe()(r,2)[1],s=i[0].xValues,c={};return i.forEach((function(e){var r=e.row;n.axisValues(t.y,a)(r).map((function(e){return{yValues:e,row:r}})).forEach((function(e){c[n.axisValuesString(e.yValues)]=e}))})),{xValues:s,yValuesArray:Mt(u.map((function(t){var r=d?e.measureFromAxis(s):e.measureFromAxis(t);return[[t,o((c[n.axisValuesString(t)]||{row:{}}).row,r)]]})))}}))},i=this.loadResponses.length>1?this.loadResponses.map((function(e,t){return a(t)})):[];return i.length?this.mergePivots(i,t.joinDateRange):a()}},{key:"mergePivots",value:function(e,t){var n=e.reduce((function(e,t){return null!=e&&t.length>=e.length?e:t}),null);return n.map((function(r,a){return{xValues:t?[e.map((function(e){return e[a]&&e[a].xValues||[]})).join(", ")]:n[a].xValues,yValuesArray:Mt(e.map((function(e){return e[a].yValuesArray})))}}))}},{key:"pivotedRows",value:function(e){return this.chartPivot(e)}},{key:"chartPivot",value:function(e){var t=this,n=new Set;this.queryType===Lt.BLENDING_QUERY&&Object(He.a)(this.loadResponses.map((function(e){return e.query.measures}))).filter((function(e,t,n){return n.indexOf(e)!==t})).forEach((function(e){return n.add(e)}));return this.pivot(e).map((function(r){var a=r.xValues,i=r.yValuesArray,o={};return i.forEach((function(r,a){var i,s=qe()(r,2),c=s[0],l=s[1];o[t.axisValuesString(kt(c,a,e,n),",")]=l&&(i=l,t.parseDateMeasures&&qt.test(i)?new Date(i):Number.isNaN(Number.parseFloat(i))?i:Number.parseFloat(i))})),Dt({x:t.axisValuesString(a,","),xValues:a},o)}))}},{key:"tablePivot",value:function(e){var t=this.normalizePivotConfig(e||{}),n=t.x.concat(t.y).includes("measures");return this.pivot(t).map((function(e){var r=e.xValues,a=e.yValuesArray;return Object(Ze.a)(t.x.map((function(e,t){return[e,r[t]]})).concat(n?a.map((function(e){var t=qe()(e,2),n=t[0],r=t[1];return[n.length?n.join():"value",r]})):[]))}))}},{key:"tableColumns",value:function(e){var t=this.normalizePivotConfig(e||{}),n=Object(Ue.a)(Object($e.a)("annotation"),Object(Ye.a)(Object(Xe.a)(),{}))(this.loadResponses),r=Object.values(n).reduce((function(e,t){return Dt(Dt({},e),t)}),{}),a={},i=function(e){var t=r[e]||{};return{key:e,title:t.title,shortTitle:t.shortTitle,type:t.type,format:t.format,meta:t.meta}},o=this.pivot(t);(o[0]&&o[0].yValuesArray||[]).forEach((function(e){var n=qe()(e,1)[0];if(n.length>0){var r=a;n.forEach((function(e,n){r["_".concat(e)]={key:e,memberId:"measures"===t.y[n]?e:t.y[n],children:r["_".concat(e)]&&r["_".concat(e)].children||{}},r=r["_".concat(e)].children}))}}));var s=[];return!o.length&&t.y.includes("measures")&&(s=(this.loadResponses[0].query.measures||[]).map((function(e){return Dt(Dt({},i(e)),{},{dataIndex:e})}))),!t.y.length&&t.x.includes("measures")&&s.push({key:"value",dataIndex:"value",title:"Value",shortTitle:"Value",type:"string"}),t.x.map((function(e){return"measures"===e?{key:"measures",dataIndex:"measures",title:"Measures",shortTitle:"Measures",type:"string"}:Dt(Dt({},i(e)),{},{dataIndex:e})})).concat(function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return 0===Object.keys(t).length?[]:Object.values(t).map((function(t){var r=t.key,a=De()(t,Ct),o=e(a.children,[].concat(Te()(n),[r])),s=i(a.memberId),c=s.title,l=s.shortTitle,u=De()(s,St),d=r!==a.memberId||null==c?r:"";return o.length?Dt(Dt({},u),{},{key:r,title:[c,d].join(" ").trim(),shortTitle:d||l,children:o}):Dt(Dt({},u),{},{key:r,dataIndex:[].concat(Te()(n),[r]).join(),title:[c,d].join(" ").trim(),shortTitle:d||l})}))}(a)).concat(s)}},{key:"totalRow",value:function(e){return this.chartPivot(e)[0]}},{key:"categories",value:function(e){return this.chartPivot(e)}},{key:"seriesNames",value:function(t){var n=this;t=this.normalizePivotConfig(t);var r=Object(Ue.a)(Object($e.a)("annotation"),Object($e.a)("measures"),et.a)(this.loadResponses),a=Mt(this.loadResponses.map((function(e,r){return Object(Ue.a)(Object(Ke.a)(n.axisValues(t.y,r)),Mt,tt.a)(n.timeDimensionBackwardCompatibleData(r))}))),i=new Set;this.queryType===Lt.BLENDING_QUERY&&Object(He.a)(this.loadResponses.map((function(e){return e.query.measures}))).filter((function(e,t,n){return n.indexOf(e)!==t})).forEach((function(e){return i.add(e)}));return a.map((function(a,o){var s=kt(a,o,t,i);return{title:n.axisValuesString(t.y.find((function(e){return"measures"===e}))?Object(nt.a)(1,s).concat(r[e.measureFromAxis(a)].title):s,", "),key:n.axisValuesString(s,","),yValues:a}}))}},{key:"query",value:function(){if(this.queryType!==Lt.REGULAR_QUERY)throw new Error("Method is not supported for a '".concat(this.queryType,"' query type. Please use decompose"));return this.loadResponses[0].query}},{key:"pivotQuery",value:function(){return this.loadResponse.pivotQuery||null}},{key:"rawData",value:function(){if(this.queryType!==Lt.REGULAR_QUERY)throw new Error("Method is not supported for a '".concat(this.queryType,"' query type. Please use decompose"));return this.loadResponses[0].data}},{key:"annotation",value:function(){if(this.queryType!==Lt.REGULAR_QUERY)throw new Error("Method is not supported for a '".concat(this.queryType,"' query type. Please use decompose"));return this.loadResponses[0].annotation}},{key:"timeDimensionBackwardCompatibleData",value:function(t){if(void 0===t)throw new Error("resultIndex is required");if(!this.backwardCompatibleData[t]){var n=this.loadResponses[t],r=n.data,a=(n.query.timeDimensions||[]).filter((function(e){return Boolean(e.granularity)}));this.backwardCompatibleData[t]=r.map((function(t){return Dt(Dt({},t),Object(Ze.a)(Object.keys(t).filter((function(n){return a.find((function(e){return e.dimension===n}))&&!t[e.timeDimensionMember(a.find((function(e){return e.dimension===n})))]})).map((function(n){return[e.timeDimensionMember(a.find((function(e){return e.dimension===n}))),t[n]]}))))}))}return this.backwardCompatibleData[t]}},{key:"decompose",value:function(){var t=this;return this.loadResponses.map((function(n){return new e({queryType:Lt.REGULAR_QUERY,pivotQuery:Dt(Dt({},n.query),{},{queryType:Lt.REGULAR_QUERY}),results:[n]},t.options)}))}},{key:"serialize",value:function(){return{loadResponse:Object(Fe.a)(this.loadResponse)}}}],[{key:"measureFromAxis",value:function(e){return e[e.length-1]}},{key:"timeDimensionMember",value:function(e){return"".concat(e.dimension,".").concat(e.granularity)}},{key:"deserialize",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new e(t.loadResponse,n)}},{key:"getNormalizedPivotConfig",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r={x:[],y:[],fillMissingDates:!0,joinDateRange:!1},a=t.measures,i=void 0===a?[]:a,o=t.dimensions,s=void 0===o?[]:o,c=(t.timeDimensions||[]).filter((function(e){return!!e.granularity}));n=n||(c.length?{x:c.map((function(t){return e.timeDimensionMember(t)})),y:s}:{x:s,y:[]});var l=function(n){return n.map((function(n){return c.find((function(e){return e.dimension===n}))&&!s.find((function(e){return e===n}))?e.timeDimensionMember(t.timeDimensions.find((function(e){return e.dimension===n}))):n}))};(n=Object(Xe.a)(n,r)).x=l(n.x),n.y=l(n.y);var u=n.x.concat(n.y),d=c.map((function(t){return e.timeDimensionMember(t)})).concat(s),b=function(e){return d.includes(e)||"measures"===e};return n.x=n.x.concat(d.filter((function(e){return!u.includes(e)&&"compareDateRange"!==e}))).filter(b),n.y=n.y.filter(b),n.x.concat(n.y).find((function(e){return"measures"===e}))||n.y.push("measures"),s.includes("compareDateRange")&&!n.y.concat(n.x).includes("compareDateRange")&&n.y.unshift("compareDateRange"),i.length||(n.x=n.x.filter((function(e){return"measures"!==e})),n.y=n.y.filter((function(e){return"measures"!==e}))),n}}]),e}(),Bt=function(){function e(t){ye()(this,e),this.sqlQuery=t}return xe()(e,[{key:"rawQuery",value:function(){return this.sqlQuery.sql}},{key:"sql",value:function(){return this.rawQuery().sql[0]}}]),e}(),zt=function(e){return Object(Ze.a)(e.map((function(e){return[e.name,e]})))},Ft={string:[{name:"contains",title:"contains"},{name:"notContains",title:"does not contain"},{name:"equals",title:"equals"},{name:"notEquals",title:"does not equal"},{name:"set",title:"is set"},{name:"notSet",title:"is not set"}],number:[{name:"equals",title:"equals"},{name:"notEquals",title:"does not equal"},{name:"set",title:"is set"},{name:"notSet",title:"is not set"},{name:"gt",title:">"},{name:"gte",title:">="},{name:"lt",title:"<"},{name:"lte",title:"<="}],time:[{name:"equals",title:"equals"},{name:"notEquals",title:"does not equal"},{name:"inDateRange",title:"in date range"},{name:"notInDateRange",title:"not in date range"},{name:"afterDate",title:"after date"},{name:"beforeDate",title:"before date"}]},Qt=function(){function e(t){ye()(this,e),this.meta=t;var n=this.meta.cubes;this.cubes=n,this.cubesMap=Object(Ze.a)(n.map((function(e){return[e.name,{measures:zt(e.measures),dimensions:zt(e.dimensions),segments:zt(e.segments)}]})))}return xe()(e,[{key:"membersForQuery",value:function(e,t){return Object(rt.a)(this.cubes.map((function(e){return e[t]}))).sort((function(e,t){return e.title>t.title?1:-1}))}},{key:"membersGroupedByCube",value:function(){var e=["measures","dimensions","segments","timeDimensions"];return this.cubes.reduce((function(t,n){return e.forEach((function(e){var r=n[e];"timeDimensions"===e&&(r=n.dimensions.filter((function(e){return"time"===e.type}))),t[e]=[].concat(Te()(t[e]),[{cubeName:n.name,cubeTitle:n.title,members:r}])})),t}),{measures:[],dimensions:[],segments:[],timeDimensions:[]})}},{key:"resolveMember",value:function(e,t){var n=this,r=e.split("."),a=qe()(r,1)[0];if(!this.cubesMap[a])return{title:e,error:"Cube not found ".concat(a," for path '").concat(e,"'")};var i=(Array.isArray(t)?t:[t]).map((function(t){return n.cubesMap[a][t]&&n.cubesMap[a][t][e]})).find((function(e){return e}));return i||{title:e,error:"Path not found '".concat(e,"'")}}},{key:"defaultTimeDimensionNameFor",value:function(e){var t=this,n=e.split("."),r=qe()(n,1)[0];return this.cubesMap[r]?Object.keys(this.cubesMap[r].dimensions||{}).find((function(e){return"time"===t.cubesMap[r].dimensions[e].type})):null}},{key:"filterOperatorsForMember",value:function(e,t){var n=this.resolveMember(e,t);return Ft[n.type]||Ft.string}}]),e}(),Nt=function(){function e(t){ye()(this,e),this.progressResponse=t}return xe()(e,[{key:"stage",value:function(){return this.progressResponse.stage}},{key:"timeElapsed",value:function(){return this.progressResponse.timeElapsed}}]),e}(),Ut=["baseRequestId"];function Kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Vt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Kt(Object(n),!0).forEach((function(t){me()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Kt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Yt=function(){function e(t){var n=t.authorization,r=t.apiUrl,a=t.method,i=t.headers,o=void 0===i?{}:i,s=t.credentials;ye()(this,e),this.authorization=n,this.apiUrl=r,this.method=a,this.headers=o,this.credentials=s}return xe()(e,[{key:"request",value:function(e,t){var n=this,r=t.baseRequestId,a=De()(t,Ut),i=1,o=new URLSearchParams(a&&Object.keys(a).map((function(e){return me()({},e,"object"===fe()(a[e])?JSON.stringify(a[e]):a[e])})).reduce((function(e,t){return Vt(Vt({},e),t)}),{})),s="".concat(this.apiUrl,"/").concat(e).concat(o.toString().length?"?".concat(o):""),c=this.method||(s.length<2e3?"GET":"POST");"POST"===c&&(s="".concat(this.apiUrl,"/").concat(e),this.headers["Content-Type"]="application/json");return{subscribe:function(e){var t=this;return ke()(Ce.a.mark((function o(){var l;return Ce.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,it()(s,{method:c,headers:Vt({Authorization:n.authorization,"x-request-id":r&&"".concat(r,"-span-").concat(i++)},n.headers),credentials:n.credentials,body:"POST"===c?JSON.stringify(a):null});case 2:return l=o.sent,o.abrupt("return",e(l,(function(){return t.subscribe(e)})));case 4:case"end":return o.stop()}}),o)})))()}}}}]),e}();function Jt(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=dt()(e);if(t){var a=dt()(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return lt()(this,n)}}var Gt=function(e){st()(n,e);var t=Jt(n);function n(e,r){var a;return ye()(this,n),(a=t.call(this,e)).response=r,a}return n}(pt()(Error));function Wt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ht(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Wt(Object(n),!0).forEach((function(t){me()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Zt=0,$t="Mutex has been changed";var Xt=function(){function e(t,n){if(ye()(this,e),"object"===fe()(t)&&(n=t,t=void 0),!(n=n||{}).transport&&!n.apiUrl)throw new Error("The `apiUrl` option is required");this.apiToken=t,this.apiUrl=n.apiUrl,this.method=n.method,this.headers=n.headers||{},this.credentials=n.credentials,this.transport=n.transport||new Yt({authorization:"function"===typeof t?void 0:t,apiUrl:this.apiUrl,method:this.method,headers:this.headers,credentials:this.credentials}),this.pollInterval=n.pollInterval||5,this.parseDateMeasures=n.parseDateMeasures,this.updateAuthorizationPromise=null}return xe()(e,[{key:"request",value:function(e,t){return this.transport.request(e,Ht({baseRequestId:Object(Se.a)()},t))}},{key:"loadMethod",value:function(e,t,n,r){var a=this,i=++Zt;"function"!==typeof n||r||(r=n,n=void 0);var o=(n=n||{}).mutexKey||"default";n.mutexObj&&(n.mutexObj[o]=i);var s=this.updateTransportAuthorization().then((function(){return e()})),c=!0,l=!1,u=function(){var e=ke()(Ce.a.mark((function e(){var t;return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s;case 2:if(t=e.sent,!n.mutexObj||n.mutexObj[o]===i){e.next=9;break}if(l=!0,!t.unsubscribe){e.next=8;break}return e.next=8,t.unsubscribe();case 8:throw $t;case 9:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),d=function(){var e=ke()(Ce.a.mark((function e(i,o){var d,b,p,h,m,j,f;return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s;case 2:if(d=e.sent,b=function(){var e=ke()(Ce.a.mark((function e(){return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n.subscribe||l){e.next=8;break}if(!d.unsubscribe){e.next=5;break}return e.abrupt("return",o());case 5:return e.next=7,new Promise((function(e){return setTimeout((function(){return e()}),1e3*a.pollInterval)}));case 7:return e.abrupt("return",o());case 8:return e.abrupt("return",null);case 9:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),p=function(){var e=ke()(Ce.a.mark((function e(t){return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(l){e.next=5;break}if(!t){e.next=4;break}return e.next=4,new Promise((function(e){return setTimeout((function(){return e()}),1e3*a.pollInterval)}));case 4:return e.abrupt("return",o());case 5:return e.abrupt("return",null);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),!n.subscribe||c){e.next=8;break}return e.next=8,a.updateTransportAuthorization();case 8:if(c=!1,502!==i.status){e.next=13;break}return e.next=12,u();case 12:return e.abrupt("return",p(!0));case 13:return h={},m="",e.prev=15,e.next=18,i.text();case 18:m=e.sent,h=JSON.parse(m),e.next=25;break;case 22:e.prev=22,e.t0=e.catch(15),h.error=m;case 25:if("Continue wait"!==h.error){e.next=30;break}return e.next=28,u();case 28:return n.progressCallback&&n.progressCallback(new Nt(h)),e.abrupt("return",p());case 30:if(200===i.status){e.next=43;break}return e.next=33,u();case 33:if(n.subscribe||!d.unsubscribe){e.next=36;break}return e.next=36,d.unsubscribe();case 36:if(j=new Gt(h.error,h),!r){e.next=41;break}r(j),e.next=42;break;case 41:throw j;case 42:return e.abrupt("return",b());case 43:return e.next=45,u();case 45:if(n.subscribe||!d.unsubscribe){e.next=48;break}return e.next=48,d.unsubscribe();case 48:if(f=t(h),!r){e.next=53;break}r(null,f),e.next=54;break;case 53:return e.abrupt("return",f);case 54:return e.abrupt("return",b());case 55:case"end":return e.stop()}}),e,null,[[15,22]])})));return function(t,n){return e.apply(this,arguments)}}(),b=s.then((function(e){return function(e){return new Promise(function(){var t=ke()(Ce.a.mark((function t(n,r){return Ce.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.t0=n,t.next=4,e;case 4:t.t1=t.sent,(0,t.t0)(t.t1),t.next=11;break;case 8:t.prev=8,t.t2=t.catch(0),t.t2!==$t&&r(t.t2);case 11:case"end":return t.stop()}}),t,null,[[0,8]])})));return function(e,n){return t.apply(this,arguments)}}())}(e.subscribe(d))}));return r?{unsubscribe:function(){var e=ke()(Ce.a.mark((function e(){var t;return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s;case 2:if(t=e.sent,l=!0,!t.unsubscribe){e.next=6;break}return e.abrupt("return",t.unsubscribe());case 6:return e.abrupt("return",null);case 7:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()}:b}},{key:"updateTransportAuthorization",value:function(){var e=ke()(Ce.a.mark((function e(){var t=this;return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.updateAuthorizationPromise){e.next=4;break}return e.next=3,this.updateAuthorizationPromise;case 3:return e.abrupt("return");case 4:if("function"!==typeof this.apiToken){e.next=8;break}return this.updateAuthorizationPromise=new Promise(function(){var e=ke()(Ce.a.mark((function e(n,r){var a;return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t.apiToken();case 3:a=e.sent,t.transport.authorization!==a&&(t.transport.authorization=a),n(),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),r(e.t0);case 11:return e.prev=11,t.updateAuthorizationPromise=null,e.finish(11);case 14:case"end":return e.stop()}}),e,null,[[0,8,11,14]])})));return function(t,n){return e.apply(this,arguments)}}()),e.next=8,this.updateAuthorizationPromise;case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"load",value:function(e,t,n){var r=this;return this.loadMethod((function(){return r.request("load",{query:e,queryType:"multi"})}),(function(e){return new _t(e,{parseDateMeasures:r.parseDateMeasures})}),t,n)}},{key:"sql",value:function(e,t,n){var r=this;return this.loadMethod((function(){return r.request("sql",{query:e})}),(function(e){return Array.isArray(e)?e.map((function(e){return new Bt(e)})):new Bt(e)}),t,n)}},{key:"meta",value:function(e,t){var n=this;return this.loadMethod((function(){return n.request("meta")}),(function(e){return new Qt(e)}),e,t)}},{key:"dryRun",value:function(e,t,n){var r=this;return this.loadMethod((function(){return r.request("dry-run",{query:e})}),(function(e){return e}),t,n)}},{key:"subscribe",value:function(e,t,n){var r=this;return this.loadMethod((function(){return r.request("subscribe",{query:e,queryType:"multi"})}),(function(e){return new _t(e,{parseDateMeasures:r.parseDateMeasures})}),Ht(Ht({},t),{},{subscribe:!0}),n)}}]),e}(),en=function(e,t){return new Xt(e,t)};function tn(e){const t=[];return e.forEach((e=>e.members.forEach((e=>{t.push([e.name,e])})))),t}function nn(e){const t={};return Object.entries(e).forEach((e=>{let[n,r]=e;r.forEach((e=>{t[e.cubeName]||(t[e.cubeName]={cubeName:e.cubeName,cubeTitle:e.cubeTitle,measures:[],dimensions:[],segments:[],timeDimensions:[]}),e.members.forEach((r=>{t[e.cubeName]={...t[e.cubeName],[n]:[...t[e.cubeName][n],r]}}))}))})),Object.values(t)}function rn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{retries:n=0,...r}=t;return fetch(e,r).then((async e=>{if(500===e.status){let n=await e.text();try{n=JSON.parse(n).error}catch(t){}throw n}return e})).catch((r=>{if("Network request failed"===r.message&&n>0)return rn(e,{options:t,retries:n-1});throw r}))}async function an(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{body:r,token:a}=n,i={};a&&(i.authorization=a);const o=await fetch(e,{method:t,headers:{"Content-Type":"application/json",...i},...r?{body:JSON.stringify(r)}:null});return{ok:o.ok,json:await o.json()}}function on(e){var t;let{url:n,title:r="",width:a=640,height:i=720}=e;const o=void 0!==window.screenLeft?window.screenLeft:window.screenX,s=void 0!==window.screenTop?window.screenTop:window.screenY,c=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width,l=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:screen.height,u=c/window.screen.availWidth,d=(c-a)/2/u+o,b=(l-i)/2/u+s,p=window.open(n,r,"\n scrollbars=yes,\n width=".concat(a/u,", \n height=").concat(i/u,", \n top=").concat(b,", \n left=").concat(d,"\n "));return null===p||void 0===p||null===(t=p.focus)||void 0===t||t.call(p),p}const sn=Object(c.createContext)(null);function cn(e){let{disabled:t=!1,children:n}=e;const r=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=Object(c.useRef)(!1),[n,r]=Object(c.useState)(null),[a,i]=Object(c.useState)({loading:!0,active:!1,deploymentUrl:null});Object(c.useEffect)((()=>{if(e)return;const t=setInterval((()=>{o()}),5e3);return o(),()=>{clearInterval(t)}}),[]),Object(c.useEffect)((()=>{a.loading||t.current===a.active||l(),t.current=a.active}),[t,a.active,a.loading]);const o=()=>fetch("/playground/live-preview/status").then((e=>e.json())).then((e=>{i({loading:!1,...e})})),s=async e=>(await fetch("/playground/live-preview/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json(),l=async()=>{if(null===a||void 0===a?void 0:a.active){const{token:e}=await s({});r({token:(null===e||void 0===e?void 0:e.token)||null,apiUrl:(null===a||void 0===a?void 0:a.deploymentUrl)||null})}else r(null)};return{credentials:n,statusLivePreview:a,createTokenWithPayload:s,stopLivePreview:async()=>(await fetch("/playground/live-preview/stop"),await o(),!0),startLivePreview:()=>new Promise(((e,t)=>{const n=encodeURIComponent(window.location.origin),r="http://localhost:4000"!==window.location.origin&&new URLSearchParams({callbackUrl:n}).toString(),a=on({url:"https://cubecloud.dev/auth/live-preview".concat(r?"?".concat(r):"")});if(!a)return console.error("The popup was blocked by the browser"),void t();const i=setInterval((()=>{a.closed&&(clearInterval(i),e(!0),o())}),1e3)}))}}(t);return Object(x.jsx)(sn.Provider,{value:{...r,livePreviewDisabled:t},children:n})}function ln(){return Object(c.useContext)(sn)}var un=n(389);const dn=Object(c.createContext)({});function bn(e){let{children:t,...n}=e;const[r,a]=Object(c.useState)(n||null),i=Object(c.useCallback)((e=>{a((t=>({...t,...e,playgroundContext:{...null===t||void 0===t?void 0:t.playgroundContext,...null===e||void 0===e?void 0:e.playgroundContext}})))}),[]);return Object(x.jsx)(dn.Provider,{value:{apiUrl:null,schemaVersion:0,ready:!1,...r,token:(null===r||void 0===r?void 0:r.token)||null,playgroundContext:(null===r||void 0===r?void 0:r.playgroundContext)||{},setContext:i},children:t})}function pn(e){let{onReady:t}=e;const n=hn();return Object(c.useEffect)((()=>{t(n)}),[n]),null}function hn(){return Object(c.useContext)(dn)}function mn(){const{playgroundContext:e}=hn();return e}const jn=new class{constructor(){this.emitter=Object(un.a)(),window.addEventListener("storage",(e=>{if(e.oldValue!==e.newValue){let n;try{n=JSON.parse(e.newValue||"")}catch(t){n=e.newValue}this.emit(e.key,n)}}))}emit(e,t){this.emitter.emit(e,t)}subscribe(e,t){this.emitter.on(e,t)}unsubscribe(e,t){this.emitter.off(e,t)}setItem(e,t){if(void 0===t)localStorage.removeItem(e);else{const n=JSON.stringify(t);localStorage.setItem(e,n)}this.emit(e,t)}getItem(e,t){try{const n=localStorage.getItem(e),r="string"===typeof n?JSON.parse(n):void 0;return"function"===typeof t?t(r):void 0!==r?r:t}catch(n){return"function"===typeof t?t(null):t}}removeItem(e){this.setItem(e,void 0)}};function fn(e,t){const n=function(){const{identifier:e}=hn();return e||""}(),r=[e,n?":":"",n].join(""),a=()=>jn.getItem(r,t),[i,o]=Object(c.useState)(a);return Object(c.useEffect)((()=>(o(a),jn.subscribe(r,(e=>{o("function"===typeof t?t(e):e||t)})),()=>{jn.unsubscribe(r,o)})),[r]),Object(c.useMemo)((()=>[i,function(e){return jn.setItem(r,e),e},function(){jn.removeItem(r)}]),[r,i])}function gn(){const e=Object(c.useRef)(!0),t=Object(c.useCallback)((()=>e.current),[]);return Object(c.useEffect)((()=>()=>{e.current=!1}),[]),t}function yn(e){const t=Object(c.useRef)();return F()(t.current,e)||(t.current=e),t.current}function vn(e,t){const n=yn(t);return Object(c.useEffect)(e,n)}function xn(e,t){const n=yn(t);return Object(c.useMemo)(e,n)}var On;const kn=Object(b.d)(I.a)(On||(On=Object(s.a)(["\n border: none;\n color: var(--primary-1);\n"])));function wn(e){let{label:t,value:n,onCopyClick:r,...a}=e;const i=Object(x.jsx)(kn,{"data-testid":"localhost-tipbox-".concat(null===t||void 0===t?void 0:t.toLowerCase(),"-copy-btn"),icon:Object(x.jsx)(G.a,{}),onClick:()=>n&&r(n.toString())});return Object(x.jsx)(K.a.Item,{label:t?Object(x.jsx)("b",{children:t}):null,labelCol:{span:24},wrapperCol:{span:24},children:Object(x.jsx)(U.a,{"data-testid":"localhost-tipbox-".concat(null===t||void 0===t?void 0:t.toLowerCase(),"-input"),value:n,suffix:i,...a})})}var Cn=n(69),Sn=n(180);function An(e){let{status:t,uploading:n}=e;const r={loading:Object(x.jsx)(Cn.a,{spin:!0}),inProgress:Object(x.jsx)(Cn.a,{spin:!0}),running:Object(x.jsx)(Sn.a,{})};return n?r.loading:r[t]||r.loading}var Dn;function En(){var e;const t=ln(),[n,r]=Object(c.useState)(!1);if(!t||(null===t||void 0===t?void 0:t.livePreviewDisabled))return null;const{active:a,status:i,uploading:o}=t.statusLivePreview,s=Object(x.jsxs)(D,{"data-testid":"live-preview-btn",onClick:()=>{a||t.startLivePreview()},children:[a?Object(x.jsx)(An,{status:i,uploading:o}):Object(x.jsx)(q.a,{}),a?"Running":"Run"," on Cube Cloud"]});return a?Object(x.jsx)(f.a,{overlay:Object(x.jsx)(Tn,{livePreviewStatus:t.statusLivePreview,apiUrl:(null===(e=t.credentials)||void 0===e?void 0:e.apiUrl)||"",loading:n,onStopClick:async()=>{r(!0),await t.stopLivePreview(),r(!1)}}),trigger:["click"],children:s}):s}function Tn(e){let{livePreviewStatus:t,apiUrl:n,loading:r,onStopClick:a}=e;const{url:i,deploymentId:o}=t;return Object(x.jsx)(R.a,{style:{maxWidth:600},children:Object(x.jsxs)(L,{direction:"column",gap:2,children:[Object(x.jsxs)(M.a.Paragraph,{children:["Playground uses the following API URL to execute queries on Cloud. You can use this API to test queries in your application."," ",Object(x.jsx)(M.a.Link,{href:"https://cube.dev/docs/cloud",target:"_blank",children:"Learn more"})," ","on developing and testing with Cube Cloud."]}),Object(x.jsx)(wn,{value:n,onCopyClick:te}),Object(x.jsx)(B,{children:Object(x.jsxs)(L,{justifyContent:"space-between",children:[Object(x.jsx)(I.a,{type:"primary",target:"_blank",href:"".concat(i,"/deployments/").concat(o,"/history"),children:"Inspect queries"}),Object(x.jsx)(I.a,{type:"primary",danger:!0,loading:r,onClick:a,children:"Stop"})]})})]})})}const Pn=Object(b.d)(u.a.Header)(Dn||(Dn=Object(s.a)(["\n && {\n background-color: var(--dark-02-color);\n color: white;\n padding: 0 16px;\n line-height: 44px;\n height: 48px;\n }\n"])));function qn(e){let{selectedKeys:t}=e;const n=Object(y.useMediaQuery)({query:"(min-device-width: 992px)"}),r=Object(y.useMediaQuery)({query:"(max-device-width: 991px)"});return Object(x.jsxs)(Pn,{children:[Object(x.jsx)("div",{style:{float:"left"},children:Object(x.jsx)("img",{src:"./cubejs-playground-logo.svg",style:{height:28,marginRight:28},alt:""})}),n&&Object(x.jsxs)(S,{theme:"light",mode:"horizontal",selectedKeys:t,children:[Object(x.jsx)(A,{children:Object(x.jsx)(v.a,{to:"/build",children:"Build"})},"/build"),Object(x.jsx)(A,{children:Object(x.jsx)(v.a,{to:"/dashboard",children:"Dashboard App"})},"/dashboard"),Object(x.jsx)(A,{children:Object(x.jsx)(v.a,{to:"/schema",children:"Schema"})},"/schema"),Object(x.jsxs)(D,{href:"https://slack.cube.dev",target:"_blank",children:[Object(x.jsx)(p.a,{}),"Slack"]},"slack"),Object(x.jsxs)(D,{noMargin:!0,href:"https://forum.cube.dev/",target:"_blank",children:[Object(x.jsx)(h.a,{component:()=>Object(x.jsx)(O,{})}),"Discourse"]},"discourse"),Object(x.jsxs)(D,{href:"https://cube.dev/docs",target:"_blank",children:[Object(x.jsx)(m.a,{}),"Docs"]},"docs"),Object(x.jsx)(En,{})]}),r&&Object(x.jsx)("div",{style:{float:"right"},children:Object(x.jsx)(f.a,{overlay:Object(x.jsxs)(g.a,{children:[Object(x.jsx)(g.a.Item,{children:Object(x.jsx)(v.a,{to:"/build",children:"Build"})},"/build"),Object(x.jsx)(g.a.Item,{children:Object(x.jsx)(v.a,{to:"/dashboard",children:"Dashboard App"})},"/dashboard"),Object(x.jsx)(g.a.Item,{children:Object(x.jsx)(v.a,{to:"/schema",children:"Schema"})},"/schema")]}),children:Object(x.jsx)(j.a,{})})})]})}const Rn={pink:"255, 100, 146",purple:"122, 119, 255","purple-03":"175, 173, 255","purple-04":"202, 201, 255",text:"91, 92, 125","dark-01":"20, 20, 70","dark-02":"67, 67, 107","dark-03":"114, 114, 144","dark-04":"161, 161, 181","dark-05":"213, 213, 226",light:"243, 243, 251",green:"65, 181, 111",yellow:"251, 188, 5",gray:"246, 246, 248"};function Mn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return"rgba(".concat(Rn[e],", ").concat(t,")")}const In={"active-bg":Mn("purple",.1),"primary-bg":Mn("purple",.1),"primary-1":Mn("purple",.9),"primary-2":Mn("purple",.8),"primary-3":Mn("purple",.7),"primary-4":Mn("purple",.6),"primary-5":Mn("purple",.5),"primary-6":Mn("purple",.4),"primary-7":Mn("purple",.3),"primary-8":Mn("purple",.2),"primary-9":Mn("purple",.1),"primary-10":Mn("purple",0),"light-5":Mn("light",.5),"remove-btn-bg":Mn("purple",.1),"remove-btn-hover-bg":Mn("purple",.2),"primary-color":Mn("purple"),"success-bg-color":Mn("green",.1),"success-color":Mn("green",.9),"warning-bg-color":Mn("yellow",.1),"warning-color":Mn("yellow",.9),"pink-8":Mn("pink",.2),"pink-9":Mn("pink",.1),"heading-color":Mn("dark",.65),"link-color":Mn("purple"),"info-color":Mn("purple"),"layout-body-background":"#f6f6f8;","layout-header-background":"#eeeef5","menu-highlight-color":Mn("dark-01"),"item-hover-bg":Mn("light"),"layout-header-height":"48px","font-family":'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "Avenir Next", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif',"menu-item-font-size":"15px","btn-primary-shadow":"none","btn-text-shadow":"none","modal-body-padding":"32px","form-item-margin-bottom":"23px","disabled-color":Mn("dark-01",.25),"disabled-bg":Mn("dark-05",.2),"menu-item-active-bg":Mn("light"),"font-size-base":"14px","border-radius-base":"4px","padding-lg":"16px"};Object.keys(Rn).forEach((e=>In["".concat(e,"-color")]=Mn(e)));const Ln={},_n={};var Bn;Object.keys(In).forEach((e=>{Ln["@".concat(e)]=In[e]})),Object.keys(In).forEach((e=>{_n["--".concat(e)]=In[e]}));var zn,Fn=Object(b.b)(Bn||(Bn=Object(s.a)(["\n body {\n ",'\n }\n\n body {\n margin: 0;\n padding: 0;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background: var(--layout-body-background);\n overflow-x: hidden;\n }\n\n .inline-code {\n margin: 0 1px;\n padding: 0.2em 0.4em;\n font-size: 0.9em;\n background: #f2f4f5;\n border: 1px solid #eee;\n border-radius: 3px;\n }\n \n .ant-dropdown-menu::-webkit-scrollbar-track {\n background: var(--light-color);\n }\n \n .ant-dropdown-menu::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background: var(--dark-03-color);\n }\n \n .ant-dropdown-menu::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n } \n \n .schema-sidebar .ant-tabs-top-bar {\n padding: 0 16px;\n }\n \n .schema-sidebar .ant-menu {\n border: 0;\n }\n \n .ant-layout {\n height: 100%;\n background: var(--layout-body-background);\n }\n \n .ant-layout-header .ant-menu {\n height: 100%;\n }\n \n .ant-menu-horizontal .ant-menu-item {\n top: 0;\n height: 100%;\n }\n \n .ant-select-item.ant-select-item-option-selected:not(.ant-select-item-option-disabled) {\n color: white;\n }\n \n .ant-popover .ant-popover-inner-content {\n padding: 0;\n }\n \n \n code[class*="language-"],\n pre[class*="language-"] {\n color: var(--dark-01-color);\n background: none;\n /*text-shadow: 0 1px white;*/\n font-family: "Roboto Mono", Monaco, \'Andale Mono\', \'Ubuntu Mono\', monospace;\n text-align: left;\n font-weight: normal;\n font-size: 14px;\n line-height: 20px;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n border-radius: 4px;\n border: none;\n \n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n \n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n code {\n font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",\n monospace;\n }\n\n .schema-sidebar,\n .schema-sidebar .ant-tabs,\n .schema-sidebar .ant-tabs-content {\n height: 100%;\n }\n\n .schema-sidebar {\n background: #fff;\n border-right: 1px solid #eee;\n padding: 0;\n }\n\n .schema-sidebar .ant-tabs-tabpane {\n /* TODO: replace with flexbox */\n height: 85%;\n overflow: auto;\n }\n\n .ant-popover-disabled-compatible-wrapper {\n pointer-events: none;\n }\n \n pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,\n code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {\n text-shadow: none;\n /*background: #b3d4fc;*/\n }\n \n pre[class*="language-"]::selection, pre[class*="language-"] ::selection,\n code[class*="language-"]::selection, code[class*="language-"] ::selection {\n text-shadow: none;\n /*background: #b3d4fc;*/\n }\n \n @media print {\n code[class*="language-"],\n pre[class*="language-"] {\n text-shadow: none;\n }\n }\n \n /* Code blocks */\n pre[class*="language-"] {\n padding: 1em;\n overflow: auto;\n }\n \n :not(pre) > code[class*="language-"],\n pre[class*="language-"] {\n background: transparent;\n }\n \n /* Inline code */\n :not(pre) > code[class*="language-"] {\n padding: .1em;\n border-radius: .3em;\n white-space: normal;\n }\n \n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--dark-04-color);\n }\n \n .token.punctuation {\n color: var(--dark-04-color);\n }\n \n .namespace {\n opacity: .7;\n }\n \n .token.property,\n .token.tag,\n .token.boolean,\n .token.number,\n .token.constant,\n .token.symbol,\n .token.deleted {\n color: var(--pink-color);\n }\n \n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: var(--purple-color);\n }\n \n .token.operator,\n .token.entity,\n .token.url,\n .language-css .token.string,\n .style .token.string {\n color: var(--dark-01-color);\n }\n \n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: var(--dark-01-color);\n }\n \n .token.atrule,\n .token.keyword {\n font-weight: 500;\n }\n \n .token.function,\n .token.class-name {\n color: var(--pink-color);\n }\n \n .token.regex,\n .token.important,\n .token.variable {\n color: var(--pink-color);\n }\n \n .token.important,\n .token.bold {\n font-weight: bold;\n }\n \n .token.italic {\n font-style: italic;\n }\n \n .token.entity {\n cursor: help;\n }\n \n .missing-member-tooltip {\n max-width: none;\n }\n \n .ant-btn-link > span {\n text-decoration: underline;\n }\n \n a.ant-typography {\n text-decoration: underline;\n }\n \n .ant-notification {\n z-index: 9999;\n }\n \n .ant-modal-header {\n padding: 16px 24px;\n }\n \n .ant-modal-body {\n padding: 24px;\n }\n'])),Object.entries(_n).map((e=>{let[t,n]=e;return"".concat(t,": ").concat(n,";")})).join("\n "));const Qn={error:{border:"#FFCCC7",background:"rgb(255, 100, 109, 0.05)",color:"#EF404A"},warning:{border:"#FFE58F",background:"#FFFBE6"},info:{border:"#91D5FF",background:"#E6F7FF"},success:{border:"#B7EB8F",background:"#F6FFED"}},Nn=Object(b.d)(d.a)(zn||(zn=Object(s.a)(["\n && {\n background: ",";\n border: 1px solid ",";\n color: ",";\n box-sizing: border-box;\n border-radius: 2px;\n }\n"])),(e=>Qn[e.type||"info"].background),(e=>Qn[e.type||"info"].border),(e=>{var t;return e.type&&(null===(t=Qn[e.type])||void 0===t?void 0:t.color)||"inherit"}));var Un;const Kn=[[49,.5],[0,25],[49,49],[98,25]];function Vn(e){return"transform: translate(".concat(Kn[e][0],"%, ").concat(Kn[e][1],"%);")}const Yn=b.d.img((e=>{let{index:t}=e;return"\n display: block;\n position: absolute;\n width: 50%;\n height: 50%;\n \n ".concat(null!=t?"\n animation-name: dice".concat(t,";\n animation-duration: 2s;\n animation-iteration-count: infinite;\n animation-timing-function: ease;\n z-index: 0;\n \n @keyframes dice").concat(t," {\n ").concat(0===t?"\n from {\n ".concat(Vn(0),"\n z-index: 0;\n }\n \n 25% {\n ").concat(Vn(0),"\n z-index: 0;\n }\n \n 50% {\n ").concat(Vn(1),"\n z-index: 0;\n }\n \n 51% {\n z-index: 1;\n }\n \n 75% {\n z-index: 1;\n }\n\n to {\n ").concat(Vn(1),"\n z-index: 1;\n }\n "):"","\n \n ").concat(1===t?"\n from {\n ".concat(Vn(1),"\n z-index: 3;\n }\n \n 25% {\n ").concat(Vn(2),"\n z-index: 3;\n }\n \n 75% {\n ").concat(Vn(2),"\n z-index: 2;\n }\n \n to {\n ").concat(Vn(3),"\n z-index: 1;\n }\n "):"","\n \n ").concat(2===t?"\n from {\n ".concat(Vn(3),"\n z-index: 1;\n }\n \n 50% {\n ").concat(Vn(3),"\n z-index: 0;\n }\n \n 75% {\n ").concat(Vn(0),"\n z-index: 0;\n }\n\n to {\n ").concat(Vn(0),"\n z-index: 0;\n }\n "):"","\n }\n "):"","\n")})),Jn=e=>Object(x.jsx)(Yn,{role:"presentation",src:"data:image/svg+xml,%3Csvg width='36' height='41' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M35.899 10.351l-18 10.25L.1 10.25l18-10.25L35.9 10.351z' fill='%23FAFAFF'/%3E%3Cpath d='M18 41L0 30.75l.101-20.5L18 20.5' fill='%23E5E5F6'/%3E%3Cpath d='M36 30.75L18 41V20.6l17.899-10.25L36 30.75z' fill='%23C0C0EA'/%3E%3C/svg%3E",alt:"",...e}),Gn=b.d.div(Un||(Un=Object(s.a)(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n"])));function Wn(e){let{size:t=80,full:n=!0}=e;const r=Object(x.jsxs)("div",{"data-testid":"cube-loader",role:"img","aria-label":"Loading animation",style:{position:"relative",width:t,height:1.1388888889*t,margin:"0 auto"},children:[Object(x.jsx)(Jn,{style:{transform:"translate(0%, 72.5%)"}}),Object(x.jsx)(Jn,{style:{transform:"translate(98%, 72.5%)"}}),Object(x.jsx)(Jn,{style:{transform:"translate(49%, 96.5%)"}}),Object(x.jsx)(Jn,{index:0}),Object(x.jsx)(Jn,{index:1}),Object(x.jsx)(Jn,{index:2})]},"loader");return n?Object(x.jsx)(Gn,{children:r}):r}var Hn;const{Text:Zn,Paragraph:$n}=M.a,Xn=b.d.pre(Hn||(Hn=Object(s.a)(["\n padding: 0.4em 0.8em;\n font-size: 13px;\n white-space: pre-wrap;\n margin: 0;\n"])));function er(e){let{error:t}=e;return Object(x.jsxs)(Y.b,{direction:"vertical",children:[Object(x.jsx)(Zn,{strong:!0,style:{fontSize:18},children:"Error \ud83d\ude22"}),Object(x.jsxs)($n,{children:["Ask about it in"," ",Object(x.jsx)("a",{href:"https://slack.cube.dev",target:"_blank",rel:"noopener noreferrer",children:"Slack"}),". These guys know how to fix this for sure!"]}),Object(x.jsx)(Nn,{type:"error",message:Object(x.jsx)(Xn,{dangerouslySetInnerHTML:{__html:t.toString().replace(/(Error:\s){2,}/g,"")}})})]})}var tr,nr;const rr=Object(b.d)(I.a)(tr||(tr=Object(s.a)(["\n &&:not(.ant-btn-link) {\n padding: 5px 12px;\n height: auto;\n border-color: var(--dark-05-color);\n color: var(--text-color);\n box-shadow: none;\n\n &:hover,\n &:active,\n &:focus {\n border-color: var(--purple-04-color);\n color: var(--primary-color);\n }\n\n &:disabled {\n color: var(--disabled-color);\n border-color: var(--disabled-color);\n background-color: white;\n\n &:hover,\n &:active,\n &:focus {\n color: var(--disabled-color);\n border-color: var(--disabled-color);\n }\n }\n\n &.ant-btn-primary:not([disabled]) {\n background: var(--primary-color);\n color: white;\n border-color: var(--primary-color);\n place-self: center;\n }\n\n &.ant-btn-background-ghost:not([disabled]) {\n color: var(--primary-color);\n }\n\n &.ant-btn-icon-only {\n display: inline-flex;\n place-items: center;\n padding: 5px 8px;\n font-size: 14px;\n\n svg {\n width: 15px;\n height: 14px;\n }\n }\n\n .anticon {\n display: inline-block;\n height: 14px;\n }\n\n &.ant-btn-sm {\n padding: 0 8px;\n height: 24px !important;\n }\n }\n"])));var ar;rr.Group=Object(b.d)(I.a.Group)(nr||(nr=Object(s.a)(["\n &&& .ant-btn-primary:not([disabled]) {\n background-color: var(--primary-bg);\n color: var(--primary-color);\n border: 1px solid var(--primary-color);\n\n &:not(:first-child):not(:last-child) {\n border-left-color: var(--primary-color);\n border-right-color: var(--primary-color);\n }\n\n &:first-child {\n border-right-color: var(--primary-color);\n }\n\n &:last-child {\n border-left-color: var(--primary-color);\n }\n }\n\n &&\n .ant-btn-primary:not([disabled])\n + .ant-btn:not(.ant-btn-primary):not([disabled]) {\n border-left-color: var(--primary-color);\n\n &:hover,\n &:active,\n &:focus {\n border-left-color: var(--primary-color);\n }\n }\n\n &&& .ant-btn:disabled {\n background-color: var(--disabled-bg);\n }\n"])));const ir=Object(b.d)(R.a)(ar||(ar=Object(s.a)(["\n && {\n border-radius: 8px;\n border: none;\n\n .ant-card-head {\n border-bottom: 1px solid #d7d7f488;\n padding: 8px 16px;\n }\n\n .ant-card-head-title {\n padding: 0;\n flex: initial;\n }\n\n .ant-card-extra {\n padding: 0;\n }\n\n .ant-card-head-wrapper {\n flex-flow: row wrap;\n place-content: space-between;\n }\n\n .ant-card-head-title {\n font-size: 18px;\n line-height: 40px;\n }\n\n .ant-card-body {\n padding: 16px;\n }\n }\n"])));var or,sr=n(768);const cr=Object(b.d)(sr.a)(or||(or=Object(s.a)(["\n && {\n .ant-popover-inner-content {\n padding: 0;\n }\n }\n"])));var lr,ur,dr=n(315),br=n.n(dr);class pr extends c.Component{componentDidMount(){br.a.highlightAll()}componentDidUpdate(){br.a.highlightAll()}render(){return Object(x.jsx)("pre",{style:this.props.style,children:Object(x.jsx)("code",{"data-testid":"prism-code",className:"language-".concat(this.props.language||"javascript"),children:this.props.code})})}}const hr=b.d.div(lr||(lr=Object(s.a)(["\n display: flex;\n border-radius: 4px;\n background: ",";\n width: 100%;\n max-width: 100%;\n"])),(e=>e.theme.background)),mr=b.d.div(ur||(ur=Object(s.a)(["\n position: relative;\n\n button,\n button:hover,\n button:focus {\n border: none;\n background: none;\n box-shadow: none;\n outline: none;\n color: var(--primary-color);\n }\n\n [ant-click-animating-without-extra-node]:after {\n animation: none !important;\n }\n\n ::after {\n display: block;\n content: '';\n width: 16px;\n position: absolute;\n left: -16px;\n top: 0;\n bottom: 0;\n background: linear-gradient(\n to right,\n ",",\n ","\n );\n }\n"])),(e=>"".concat(e.theme.background,"00")),(e=>e.theme.background));function jr(e){let{code:t,language:n,style:r,copyMessage:a,theme:i="dark"}=e;return Object(x.jsx)(b.a,{theme:{background:"dark"===i?"#F6F6F8":"#FFFFFF"},children:Object(x.jsxs)(hr,{style:r,children:[Object(x.jsx)(pr,{code:t,language:n,style:{flexGrow:1}}),Object(x.jsx)(mr,{children:Object(x.jsx)(I.a,{icon:Object(x.jsx)(G.a,{}),onClick:()=>te(t,a||"Copied")})})]})})}var fr=n(316),gr=n.n(fr);let yr,vr=null,xr=[],Or={sentFrom:"frontend"},kr=null;const wr=async e=>{if(!0!==yr)return;let t=localStorage.getItem("playground_anonymous");t||(t=gr.a.get("playground_anonymous")||Object(Se.a)().toString(),localStorage.setItem("playground_anonymous",t),gr.a.remove("playground_anonymous")),xr.push({...Or,...e,id:Object(Se.a)(),clientAnonymousId:t,clientTimestamp:(new Date).toJSON()});const n=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;if(e||(e=xr,xr=[]),!e.length)return null;try{const r=(new Date).toJSON();if(200!==(await fetch("https://track.cube.dev/track",{method:"post",body:JSON.stringify(e.map((e=>({...e,sentAt:r})))),headers:{"Content-Type":"application/json"}})).status&&t>0)return n(e,t-1)}catch(r){if(t>0)return n(e,t-1)}return null},r=(vr||Promise.resolve()).then((()=>n())).then((()=>{r===vr&&(vr=null)}));return vr=r,vr},Cr=function(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};null===(t=kr)||void 0===t||t({event:e,...n},yr)},Sr=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Cr("Playground Action",{name:e,...t})};var Ar;const Dr=Object(b.d)(u.a.Content)(Ar||(Ar=Object(s.a)(["\n height: 100%;\n"])));class Er extends c.Component{constructor(){super(...arguments),this.state={fatalError:null,context:null,showLoader:!1,isAppContextSet:!1}}static getDerivedStateFromError(e){return{fatalError:e}}async componentDidMount(){setTimeout((()=>this.setState({showLoader:!0})),700),window.addEventListener("unhandledrejection",(e=>{const t=e.reason;console.log(t);const n=(t.stack||t).toString();Cr("Playground Error",{error:n})}));const e=await fetch("/playground/context"),t=await e.json();var n;n=t.telemetry,yr=n,kr=wr,((e,t)=>{var n;Or={...Or,...t},null===(n=kr)||void 0===n||n({event:"identify",anonymousId:e,...t},yr)})(t.anonymousId,{coreServerVersion:t.coreServerVersion,projectFingerprint:t.projectFingerprint,isDocker:Boolean(t.isDocker),dockerVersion:t.dockerVersion}),this.setState({context:t})}componentDidCatch(e,t){Cr("Playground Error",{error:(e.stack||e).toString(),info:t.toString()})}render(){const{location:e,children:t}=this.props,{context:n,fatalError:r,isAppContextSet:a,showLoader:i}=this.state;return null==n||a?null!=n||a?(r&&console.log(r.stack),Object(x.jsx)(cn,{disabled:null==n.livePreview||!n.livePreview,children:Object(x.jsxs)(u.a,{children:[Object(x.jsx)(Fn,{}),Object(x.jsx)(qn,{selectedKeys:(o=e.pathname,"/template-gallery"===o?["/dashboard"]:[o])}),Object(x.jsx)(Dr,{children:r?Object(x.jsx)(d.a,{message:"Error occured while rendering",description:r.stack||"",type:"error"}):t})]})})):i?Object(x.jsx)(Wn,{}):null:Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(Tr,{context:n}),Object(x.jsx)(pn,{onReady:()=>this.setState({isAppContextSet:!0})})]});var o}}function Tr(e){let{context:t}=e;const{setContext:n}=hn();return Object(c.useEffect)((()=>{null!==t&&n({ready:!0,playgroundContext:{...t,isCloud:!1},identifier:t.identifier})}),[t]),null}var Pr=Object(i.g)(Er),qr=n(391);var Rr=class{constructor(){this.loadError=null,this.dashboardCreated=!1,this.installedTemplates=void 0,this.playgroundContext=void 0}async load(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=await(n="/playground/dashboard-app-create-status".concat(e?"?instant=true":""),r=void 0,a=10,rn(n,{...r,retries:a}));var n,r,a;const i=await t.json();i.error?this.loadError=i.error:(this.dashboardCreated="created"===i.status,this.installedTemplates=i.installedTemplates)}async applyTemplatePackages(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return this.playgroundContext||(this.playgroundContext=await this.loadContext()),rn("/playground/apply-template-packages",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({toApply:e,templateConfig:t||{credentials:this.playgroundContext}})})}async loadContext(){const e=await rn("/playground/context"),t=await e.json();return{cubejsToken:t.cubejsToken,apiUrl:t.apiUrl||window.location.href.split("#")[0].replace(/\/$/,"")}}templatePackages(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"react";return"react"===e.toLowerCase()?[{name:"react-antd-dynamic",description:"React Antd Dynamic"},{name:"react-antd-static",description:"React Antd Static"},{name:"react-material-static",description:"React Material UI Static"}]:"angular"===e.toLowerCase()?[{name:"ng-material-dynamic",description:"Angular Material UI Dynamic"}]:"vue"===e.toLowerCase()?[{name:"vue-vuetify-dynamic",description:"Vue Vuetify UI Dynamic"}]:[]}async canAddChart(){return await this.load(),this.loadError?this.loadError:!!Object.keys(this.installedTemplates).find((e=>e.match(/-static$/)))}async addChart(e){await this.load(),this.loadError||await this.applyTemplatePackages(["create-react-app",Object.keys(this.installedTemplates).find((e=>e.match(/-static$/))),"static-chart"],{chartCode:e})}async templates(){const{templates:e}=await(await rn("/playground/manifest")).json();return e}};const Mr=e=>{let{children:t}=e;return Object(x.jsx)("div",{style:{textAlign:"center",marginTop:50},children:t})},Ir=()=>Object(x.jsxs)("p",{style:{width:450,margin:"20px auto"},children:["Dashboard App is a convenient way to setup and deploy frontend app to work with Cube.js backend. You can learn more about in the"," ",Object(x.jsx)("a",{href:"https://cube.dev/docs/dashboard-app",target:"_blankl",children:"Cube.js docs"}),"."]});class Lr extends c.Component{constructor(e){super(e),this.dashboardSource=new Rr,this.state={}}async componentDidMount(){await this.loadDashboard()}async loadDashboard(){this.setState({appCode:null,loadError:null});try{await this.dashboardSource.load(),this.setState({dashboardStarting:!1,appCode:!this.dashboardSource.loadError&&this.dashboardSource.dashboardCreated,loadError:this.dashboardSource.loadError});const e=await(await rn("/playground/dashboard-app-status")).json();this.setState({dashboardRunning:e.running,dashboardPort:e.dashboardPort,dashboardAppPath:e.dashboardAppPath})}catch(e){throw this.setState({dashboardStarting:!1,loadError:Object(x.jsx)("pre",{children:e.toString()})}),e}}async startDashboardApp(){this.setState({dashboardStarting:!0}),await fetch("/playground/start-dashboard-app"),await this.loadDashboard()}render(){const{appCode:e,dashboardPort:t,loadError:n,dashboardRunning:r,dashboardStarting:a,dashboardAppPath:o}=this.state;if(n&&"string"===typeof n&&-1!==n.indexOf("Dashboard app not found"))return Object(x.jsx)(i.a,{to:"/template-gallery"});if(n)return Object(x.jsxs)(Mr,{children:[Object(x.jsx)("h2",{children:n}),Object(x.jsx)("p",{style:{marginTop:25},children:Object(x.jsx)(v.a,{to:"/template-gallery",children:Object(x.jsx)(I.a,{type:"primary",children:"Create dashboard app in your project directory"})})}),Object(x.jsx)(Ir,{})]});if(!e)return Object(x.jsxs)(Mr,{children:[Object(x.jsx)("h2",{children:"\xa0Creating Dashboard App"}),Object(x.jsx)("div",{children:Object(x.jsx)(qr.a,{tip:"It may take several minutes. Please check console for progress..."})}),Object(x.jsx)(Ir,{})]});if(!r)return Object(x.jsxs)(Mr,{children:[Object(x.jsx)("h2",{children:"Dashboard App is not running"}),Object(x.jsxs)("h3",{children:["Please start dashboard app or run it manually using",Object(x.jsx)("code",{className:"inline-code",children:"$ npm run start"}),Object(x.jsx)("br",{}),"in\xa0",Object(x.jsx)("b",{children:o}),"\xa0directory."]}),Object(x.jsx)("p",{style:{marginTop:25},children:Object(x.jsx)(I.a,{type:"primary",size:"large",loading:a,onClick:()=>this.startDashboardApp(),children:a?"Dashboard app is starting. It may take a while. Please check console for progress...":"Start dashboard app"})}),Object(x.jsx)(Ir,{})]});const s="http://".concat(window.location.hostname,":").concat(t);return Object(x.jsxs)("div",{style:{height:"100%",width:"100%",padding:"15px 30px 30px 30px",background:"#fff"},children:[Object(x.jsx)(d.a,{message:Object(x.jsxs)("span",{children:["This dashboard app can be edited at\xa0",Object(x.jsx)("b",{children:o}),". Dev server is running at\xa0",Object(x.jsx)("a",{href:s,target:"_blank",rel:"noopener noreferrer",children:s}),". Learn more how to customize and deploy it at\xa0",Object(x.jsx)("a",{href:"https://cube.dev/docs/dashboard-app",children:"Cube.js\xa0docs"}),".\xa0",Object(x.jsx)("a",{onClick:()=>window.location.reload(),style:{cursor:"pointer"},children:"Refresh page"}),"\xa0if it is empty."]}),type:"info",closable:!0,style:{marginBottom:15}}),Object(x.jsx)("iframe",{src:s,style:{width:"100%",height:"100%",border:0,borderRadius:4,overflow:"hidden"},sandbox:"allow-modals allow-forms allow-popups allow-scripts allow-same-origin",title:"Dashboard"})]})}}var _r,Br=Object(i.g)(Lr),zr=n(119);var Fr,Qr=b.d.div(_r||(_r=Object(s.a)(["\n font-weight: 500;\n font-size: 12px;\n line-height: 18px;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--dark-04-color);\n margin-bottom: 8px;\n"])));var Nr,Ur=b.d.div(Fr||(Fr=Object(s.a)(["\n display: flex;\n flex-flow: row wrap;\n margin-right: -8px;\n margin-bottom: -8px;\n\n && > * {\n margin-right: 8px !important;\n margin-bottom: 8px !important;\n }\n"]))),Kr=n(209);var Vr,Yr=Object(b.d)(Kr.a)(Nr||(Nr=Object(s.a)(["\n &&& {\n &.ant-select-disabled {\n .ant-select-selector {\n border-color: var(--disabled-color);\n background-color: white;\n }\n\n .ant-select-selector {\n color: var(--disabled-color);\n\n &:hover,\n &:active,\n &:focus {\n border-color: var(--disabled-color);\n color: var(--disabled-color);\n }\n }\n }\n\n &.ant-select-single {\n .ant-select-selector {\n padding: 5px 12px;\n\n .ant-select-selection-placeholder {\n line-height: 22px;\n }\n }\n }\n\n &.ant-select-multiple {\n .ant-select-selector {\n padding: 3px 12px;\n }\n\n .ant-select-selection-item {\n margin-top: 0;\n margin-bottom: 0;\n }\n }\n\n .ant-select-selection-item {\n font-size: 14px;\n line-height: 22px;\n }\n\n .ant-select-selector {\n height: auto;\n color: var(--text-color);\n font-size: 14px;\n line-height: 22px;\n\n &:hover,\n &:active,\n &:focus {\n border-color: var(--purple-04-color);\n color: var(--primary-color);\n }\n }\n\n .ant-select-selector::after {\n font-size: 14px;\n line-height: 22px;\n }\n }\n"])));var Jr,Gr;Object(b.d)(U.a)(Vr||(Vr=Object(s.a)(["\n && .ant-select-selector {\n padding: 6px 12px;\n height: auto;\n border-color: 1px solid var(--dark-05-color);\n color: var(--text-color);\n\n &:hover,\n &:active,\n &:focus {\n border-color: var(--purple-04-color);\n color: var(--primary-color);\n }\n }\n"])));const Wr=Object(b.d)(g.a)(Jr||(Jr=Object(s.a)(["\n && {\n user-select: none;\n\n &.ant-menu-inline .ant-menu-item:not(:last-child) {\n margin-bottom: 0;\n }\n }\n"])));Wr.Item=Object(b.d)(g.a.Item)(Gr||(Gr=Object(s.a)(["\n &&& {\n border-radius: 4px;\n margin-bottom: 0;\n margin-top: 0;\n\n &::after {\n border-color: transparent;\n }\n\n &.ant-menu-item-selected {\n color: var(--primary-color);\n\n &::after {\n border-color: transparent;\n }\n }\n }\n"])));var Hr,Zr=Wr;var $r,Xr,ea=Object(b.d)(N.a)(Hr||(Hr=Object(s.a)(["\n && {\n .ant-tabs-nav {\n padding: 0 16px;\n user-select: none;\n }\n\n .ant-tabs-content-holder {\n padding: 0 16px;\n }\n }\n"]))),ta=n(752);const na=Object(b.d)(ta.a)($r||($r=Object(s.a)(["\n && {\n user-select: none;\n\n .ant-tree-node-content-wrapper.ant-tree-node-selected {\n color: white;\n }\n }\n"])));na.TreeNode=Object(b.d)(ta.a.TreeNode)(Xr||(Xr=Object(s.a)(["\n && {\n }\n"])));var ra=na;const{Content:aa,Sider:ia}=u.a,{TreeNode:oa}=ra,{TabPane:sa}=ea,ca={};class la extends c.Component{constructor(e){super(e),this.state={expandedKeys:[],autoExpandParent:!0,checkedKeys:[],selectedKeys:[],activeTab:"schema",files:[],isDocker:null}}async componentDidMount(){await this.loadDBSchema(),await this.loadFiles()}onExpand(e){Sr("Expand Tables"),this.setState({expandedKeys:e,autoExpandParent:!1})}onCheck(e){Sr("Check Tables"),this.setState({checkedKeys:e})}onSelect(e){this.setState({selectedKeys:e})}async loadDBSchema(){this.setState({schemaLoading:!0});try{const e=await rn("/playground/db-schema"),t=await e.json();this.setState({tablesSchema:t.tablesSchema})}catch(e){this.setState({schemaLoadingError:e})}finally{this.setState({schemaLoading:!1})}}async loadFiles(){const e=await rn("/playground/files"),t=await e.json();this.setState({files:t.files})}async generateSchema(){const{checkedKeys:e,tablesSchema:t}=this.state,{history:n}=this.props;Sr("Generate Schema");const r=await rn("/playground/generate-schema",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tables:e.filter((e=>!!ca[e])).map((e=>ca[e])),tablesSchema:t})});200===r.status?(Sr("Generate Schema Success"),await this.loadFiles(),this.setState({checkedKeys:[],activeTab:"files"}),V.a.success({title:"Schema files successfully generated!",content:"You can start building the charts",okText:"Build",cancelText:"Close",okCancel:!0,onOk(){n.push("/build")}})):Sr("Generate Schema Fail",{error:await r.text()})}selectedFileContent(){const e=this.selectedFile();return e&&e.content}selectedFile(){const{files:e,selectedFile:t}=this.state;return e.find((e=>e.fileName===t))}renderFilesMenu(){const{selectedFile:e,files:t}=this.state;return Object(x.jsx)(Zr,{mode:"inline",onClick:e=>{let{key:t}=e;Sr("Select File"),this.setState({selectedFile:t})},selectedKeys:e?[e]:[],children:t.map((e=>Object(x.jsx)(Zr.Item,{children:e.fileName},e.fileName)))})}render(){const{schemaLoading:e,schemaLoadingError:t,tablesSchema:n,selectedFile:r,expandedKeys:a,autoExpandParent:i,checkedKeys:o,selectedKeys:s,activeTab:c,isDocker:l}=this.state,d=e=>e.map((e=>e.treeData?Object(x.jsx)(oa,{title:e.title,dataRef:e,children:d(e.treeData)},e.key):Object(x.jsx)(oa,{...e}))),b=()=>{return Object.keys(n||{}).length>0?Object(x.jsx)(ra,{checkable:!0,onExpand:this.onExpand.bind(this),expandedKeys:a,autoExpandParent:i,onCheck:this.onCheck.bind(this),checkedKeys:o,onSelect:this.onSelect.bind(this),selectedKeys:s,children:d((e=n||{},Object.keys(e).map((t=>({title:t,key:t,treeData:Object.keys(e[t]).map((e=>{const n="".concat(t,".").concat(e);return ca[n]=[t,e],{title:e,key:n}}))})))))}):Object(x.jsx)(Nn,{message:"Empty DB Schema",description:"Please check connection settings",type:"warning"});var e};return Object(x.jsxs)(u.a,{style:{height:"100%"},children:[Object(x.jsx)(ia,{width:340,className:"schema-sidebar",children:Object(x.jsxs)(ea,{activeKey:c,onChange:e=>this.setState({activeTab:e}),tabBarExtraContent:Object(x.jsx)(I.a,{disabled:!o.length,type:"primary",onClick:()=>this.generateSchema(),children:"Generate Schema"}),children:[Object(x.jsx)(sa,{tab:"Tables",children:e?Object(x.jsx)(Wn,{}):t?Object(x.jsx)(Nn,{"data-testid":"schema-error",message:"Error while loading DB schema",description:t.toString(),type:"error"}):b()},"schema"),Object(x.jsx)(sa,{tab:"Files",children:this.renderFilesMenu()},"files")]})}),Object(x.jsxs)(aa,{style:{minHeight:280,padding:24},children:[r&&Object(x.jsx)(Nn,{message:l?Object(x.jsxs)("span",{children:["Schema files are located and can be edited in the mount volume directory."," ",Object(x.jsx)(M.a.Link,{href:"https://cube.dev/docs/schema/getting-started",target:"_blank",children:"Learn more about working with Cube.js data schema in the docs"})]}):Object(x.jsxs)("span",{children:["This file can be edited at\xa0",Object(x.jsx)("b",{children:this.selectedFile().absPath})]}),type:"info",style:{paddingTop:10,paddingBottom:11}}),r?Object(x.jsx)(pr,{code:this.selectedFileContent(),style:{padding:0,marginTop:24}}):Object(x.jsx)(zr.a,{style:{marginTop:50},description:"Select tables to generate Cube.js schema"}),Object(x.jsx)(pn,{onReady:e=>{let{playgroundContext:t}=e;return this.setState({isDocker:null===t||void 0===t?void 0:t.isDocker})}})]})]})}}var ua=n(100),da=n(187),ba=n(413),pa=n(185),ha=n(776),ma=n(416),ja=n(777),fa=n(778),ga=n(393),ya=(n(547),n(744)),va=n(410),xa=n(745),Oa=n(394),ka=n.n(Oa),wa=n(395),Ca=(n(49),n(306)),Sa=n.n(Ca),Aa=Object(c.createContext)(null),Da={reset:"orange",black:"black",red:"red",green:"green",yellow:"orange",blue:"blue",magenta:"magenta",cyan:"cyan",gray:"gray",lightgrey:"lightgrey",darkgrey:"darkgrey"},Ea={"ansi-bright-black":"black","ansi-bright-yellow":"yellow","ansi-yellow":"yellow","ansi-bright-green":"green","ansi-green":"green","ansi-bright-cyan":"cyan","ansi-cyan":"cyan","ansi-bright-red":"red","ansi-red":"red","ansi-bright-magenta":"magenta","ansi-magenta":"magenta","ansi-white":"darkgrey"};function Ta(e){for(var t=(new ka.a).ansiToJson(Object(wa.encode)(e),{use_classes:!0}),n="",r=!1,a=0;a<t.length;++a)for(var i=t[a],o=i.content,s=i.fg,c=o.split("\n"),l=0;l<c.length;++l){r||(n+='<span data-ansi-line="true">',r=!0);var u=c[l].replace("\r",""),d=Da[Ea[s]];null!=d?n+='<span style="color: '.concat(d,';">').concat(u,"</span>"):(null!=s&&console.log("Missing color mapping: ",s),n+="<span>".concat(u,"</span>")),l<c.length-1&&(n+="</span>",r=!1,n+="<br/>")}return r&&(n+="</span>"),n}function Pa(e){return"object"!==fe()(e)?e:Object.fromEntries(Object.entries(e).filter((function(e){return null!=qe()(e,2)[1]})).map((function(e){var t=qe()(e,2),n=t[0],r=t[1];return Array.isArray(r)?[n,r.map(Pa)]:[n,"object"===fe()(r)?Pa(r):r]})))}function qa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ra(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qa(Object(n),!0).forEach((function(t){me()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ma(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=dt()(e);if(t){var a=dt()(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return lt()(this,n)}}var Ia=function(e){st()(n,e);var t=Ma(n);function n(e){var r;return ye()(this,n),(r=t.call(this,e)).state={},r.mutexObj={},r}return xe()(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.query,n=e.queries;t&&this.load(t),n&&this.loadQueries(n)}},{key:"shouldComponentUpdate",value:function(e,t){var n=this.props,r=n.query,a=n.queries,i=n.render,o=n.cubejsApi,s=n.loadSql,c=n.updateOnlyOnStateChange;return!c||(!Object(ze.a)(e.query,r)||!Object(ze.a)(e.queries,a)||(null==e.render||null==i)&&e.render!==i||e.cubejsApi!==o||e.loadSql!==s||!Object(ze.a)(t,this.state)||e.updateOnlyOnStateChange!==c)}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.query,r=t.queries;Object(ze.a)(e.query,n)||this.load(n),Object(ze.a)(e.queries,r)||this.loadQueries(r)}},{key:"cubejsApi",value:function(){return this.props.cubejsApi||this.context&&this.context.cubejsApi}},{key:"load",value:function(e){var t=this,n=this.props.resetResultSetOnChange;this.setState(Ra({isLoading:!0,error:null,sqlQuery:null},n?{resultSet:null}:{}));var r=this.props.loadSql,a=this.cubejsApi();e&&vt(e)&&("only"===r?a.sql(e,{mutexObj:this.mutexObj,mutexKey:"sql"}).then((function(e){return t.setState({sqlQuery:e,error:null,isLoading:!1})})).catch((function(e){return t.setState(Ra(Ra({},n?{resultSet:null}:{}),{},{error:e,isLoading:!1}))})):r?Promise.all([a.sql(e,{mutexObj:this.mutexObj,mutexKey:"sql"}),a.load(e,{mutexObj:this.mutexObj,mutexKey:"query"})]).then((function(e){var n=qe()(e,2),r=n[0],a=n[1];return t.setState({sqlQuery:r,resultSet:a,error:null,isLoading:!1})})).catch((function(e){return t.setState(Ra(Ra({},n?{resultSet:null}:{}),{},{error:e,isLoading:!1}))})):a.load(e,{mutexObj:this.mutexObj,mutexKey:"query"}).then((function(e){return t.setState({resultSet:e,error:null,isLoading:!1})})).catch((function(e){return t.setState(Ra(Ra({},n?{resultSet:null}:{}),{},{error:e,isLoading:!1}))})))}},{key:"loadQueries",value:function(e){var t=this,n=this.cubejsApi(),r=this.props.resetResultSetOnChange;this.setState(Ra(Ra({isLoading:!0},r?{resultSet:null}:{}),{},{error:null})),Promise.all(Object(ya.a)(e).map((function(e){var r=qe()(e,2),a=r[0],i=r[1];return n.load(i,{mutexObj:t.mutexObj,mutexKey:a}).then((function(e){return[a,e]}))}))).then((function(e){return t.setState({resultSet:Object(Ze.a)(e),error:null,isLoading:!1})})).catch((function(e){return t.setState(Ra(Ra({},r?{resultSet:null}:{}),{},{error:e,isLoading:!1}))}))}},{key:"render",value:function(){var e=this.state,t=e.error,n=e.queries,r=e.resultSet,a=e.isLoading,i=e.sqlQuery,o=this.props.render,s={error:t?new Error(Ta(t.message||t.toString())):null,resultSet:n?r||{}:r,loadingState:{isLoading:a},sqlQuery:i};return o?o(s):null}}],[{key:"isQueryPresent",value:function(e){return vt(e)}}]),n}(l.a.Component);Ia.contextType=Aa,Ia.defaultProps={cubejsApi:null,query:null,render:null,queries:null,loadSql:null,updateOnlyOnStateChange:!1,resetResultSetOnChange:!0};function La(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?La(Object(n),!0).forEach((function(t){me()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):La(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ba(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=dt()(e);if(t){var a=dt()(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return lt()(this,n)}}var za=[{name:void 0,title:"w/o grouping"},{name:"second",title:"Second"},{name:"minute",title:"Minute"},{name:"hour",title:"Hour"},{name:"day",title:"Day"},{name:"week",title:"Week"},{name:"month",title:"Month"},{name:"quarter",title:"Quarter"},{name:"year",title:"Year"}],Fa=function(e){st()(n,e);var t=Ba(n);function n(e){var r;return ye()(this,n),r=t.call(this,e),me()(Sa()(r),"fetchMeta",ke()(Ce.a.mark((function e(){var t,n;return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r.cubejsApi()){e.next=2;break}return e.abrupt("return");case 2:return n=null,e.prev=3,r.setState({isFetchingMeta:!0}),e.next=7,r.cubejsApi().meta();case 7:t=e.sent,e.next=13;break;case 10:e.prev=10,e.t0=e.catch(3),n=e.t0;case 13:r.setState({meta:t,metaError:n?new Error(Ta(n.message||n.toString())):null,isFetchingMeta:!1},(function(){r.updateQuery({})}));case 14:case"end":return e.stop()}}),e,null,[[3,10]])})))),r.state=_a(_a({query:e.defaultQuery||e.query,chartType:e.defaultChartType,validatedQuery:e.query,missingMembers:[],isFetchingMeta:!0,dryRunResponse:null},e.vizState),e.initialVizState),r.mutexObj={},r.orderMembersOrderKeys=[],r}return xe()(n,[{key:"componentDidMount",value:function(){var e=ke()(Ce.a.mark((function e(){return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.prevContext=this.context,e.next=3,this.fetchMeta();case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"componentDidUpdate",value:function(){var e=ke()(Ce.a.mark((function e(t){var n,r,a,i,o,s,c,l=this;return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=this.props,i=a.schemaVersion,o=a.onSchemaChange,s=this.state.meta,(null===(n=this.prevContext)||void 0===n?void 0:n.cubejsApi)===(null===(r=this.context)||void 0===r?void 0:r.cubejsApi)){e.next=6;break}return this.prevContext=this.context,e.next=6,this.fetchMeta();case 6:if(t.schemaVersion===i){e.next=17;break}return e.prev=7,e.next=10,this.cubejsApi().meta();case 10:c=e.sent,Object(ze.a)(c,s)||"function"!==typeof o||o({schemaVersion:i,refresh:function(){var e=ke()(Ce.a.mark((function e(){return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l.fetchMeta();case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()}),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(7),this.setState({metaError:e.t0});case 17:case"end":return e.stop()}}),e,this,[[7,14]])})));return function(t){return e.apply(this,arguments)}}()},{key:"cubejsApi",value:function(){var e=this.props.cubejsApi;return e||this.context&&this.context.cubejsApi}},{key:"getMissingMembers",value:function(e,t){return t?function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=["measures","dimensions","segments"],n=new Set;return t.forEach((function(t){return(e[t]||[]).forEach((function(e){return n.add(e)}))})),(e.timeDimensions||[]).forEach((function(e){return n.add(e.dimension)})),Ot(e.filters).forEach((function(e){return n.add(e.dimension||e.member)})),Te()(n)}(e).map((function(e){return!!t.resolveMember(e,["measures","dimensions","segments"]).error&&e})).filter(Boolean):[]}},{key:"isQueryPresent",value:function(){var e=this.state.query;return Ia.isQueryPresent(e)}},{key:"prepareRenderProps",value:function(e){var t=this,r=function(e){return e.name},a=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r;return{add:function(r){var a=t.state.query;t.updateQuery(me()({},e,(a[e]||[]).concat(n(r))))},remove:function(n){var r=(t.state.query[e]||[]).concat([]);return r.splice(n.index,1),t.updateQuery(me()({},e,r))},update:function(r,a){var i=(t.state.query[e]||[]).concat([]);return i.splice(r.index,1,n(a)),t.updateQuery(me()({},e,i))}}},i=this.state,o=i.meta,s=i.metaError,c=i.query,l=i.queryError,u=i.chartType,d=i.pivotConfig,b=i.validatedQuery,p=i.missingMembers,h=i.isFetchingMeta,m=i.dryRunResponse,j=Object(va.a)((function(e){return"".concat(Object(Ne.a)("member",e)).concat(Object(Ne.a)("operator",e))}),Ot(o&&c.filters||[]).map((function(e){return _a(_a({},e),{},{member:e.member||e.dimension})}))).map((function(e,t){return _a(_a({},e),{},{dimension:o.resolveMember(e.member||e.dimension,["dimensions","measures"]),operators:o.filterOperatorsForMember(e.member||e.dimension,["dimensions","measures"]),index:t})})),f=n.resolveMember("measures",this.state),g=n.resolveMember("dimensions",this.state),y=n.resolveMember("timeDimensions",this.state),v=(o&&c.segments||[]).map((function(e,t){return _a({index:t},o.resolveMember(e,"segments"))})),x=[],O=[],k=[],w=[],C=(null===o||void 0===o?void 0:o.membersGroupedByCube())||{measures:[],dimensions:[],segments:[],timeDimensions:[]};if(o){x=o.membersForQuery(c,"measures"),O=o.membersForQuery(c,"dimensions"),k=o.membersForQuery(c,"segments");var S=Object(Qe.a)(Object(Ne.a)("cubeName"),C.measures),A=Object(Qe.a)(Object(Ne.a)("cubeName"),C.dimensions);w=Object(tt.a)([].concat(Te()(Object.keys(S)),Te()(Object.keys(A)))).sort().map((function(e){var t,n;return _a(_a({},S[e]||A[e]),{},{members:[].concat(Te()(null===(t=S[e])||void 0===t?void 0:t.members),Te()(null===(n=A[e])||void 0===n?void 0:n.members)).sort((function(e,t){return e.shortTitle>t.shortTitle?1:-1}))})}))}var D=Array.isArray(c.order)?Object.fromEntries(c.order):c.order,E=[].concat(Te()(f),Te()(g),Te()(y.map((function(e){return e.dimension})))),T=Object(va.a)(Object(Ne.a)("id"),Te()(E.map((function(e){var t=e.name;return{id:t,title:e.title,order:(null===D||void 0===D?void 0:D[t])||"none"}}))));return this.orderMembersOrderKeys.length!==T.length&&(this.orderMembersOrderKeys=T.map((function(e){return e.id}))),this.orderMembersOrderKeys.length&&(T=(this.orderMembersOrderKeys||[]).map((function(e){return T.find((function(t){return t.id===e}))}))),_a({meta:o,metaError:s,query:c,error:l,validatedQuery:b,isQueryPresent:this.isQueryPresent(),chartType:u,measures:f,dimensions:g,timeDimensions:y,segments:v,filters:j,orderMembers:T,availableMeasures:x,availableDimensions:O,availableTimeDimensions:O.filter((function(e){return"time"===e.type})),availableSegments:k,availableMembers:C,availableFilterMembers:w,updateQuery:function(e){return t.updateQuery(e)},updateMeasures:a("measures"),updateDimensions:a("dimensions"),updateSegments:a("segments"),updateTimeDimensions:a("timeDimensions",(function(e){var t=e.compareDateRange?{compareDateRange:e.compareDateRange}:{dateRange:e.dateRange};return Pa(_a({dimension:e.dimension.name,granularity:e.granularity},t))})),updateFilters:a("filters",(function(e){var t,n;return{member:(null===(t=e.member)||void 0===t?void 0:t.name)||(null===(n=e.dimension)||void 0===n?void 0:n.name),operator:e.operator,values:e.values}})),updateChartType:function(e){return t.updateVizState({chartType:e})},updateOrder:{set:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"asc";t.updateQuery({order:T.map((function(t){return _a(_a({},t),{},{order:t.id===e?n:t.order})})).reduce((function(e,t){var n=t.id,r=t.order;return"none"!==r?[].concat(Te()(e),[[n,r]]):e}),[])})},update:function(e){t.updateQuery({order:e})},reorder:function(e,n){if(null!=e&&null!=n){var r=function(e,t,n){var r=Te()(e),a=r.splice(t,1),i=qe()(a,1)[0];return r.splice(n,0,i),r}(T,e,n);t.orderMembersOrderKeys=r.map((function(e){return e.id})),t.updateQuery({order:r.reduce((function(e,t){var n=t.id,r=t.order;return"none"!==r?[].concat(Te()(e),[[n,r]]):e}),[])})}}},pivotConfig:d,updatePivotConfig:{moveItem:function(e){var n=e.sourceIndex,r=e.destinationIndex,a=e.sourceAxis,i=e.destinationAxis;t.updateVizState({pivotConfig:xt(d,n,r,a,i)})},update:function(e){var n=e.limit;t.updateVizState(_a({pivotConfig:_a(_a({},d),e)},n?{query:_a(_a({},c),{},{limit:n})}:null))}},missingMembers:p,refresh:this.fetchMeta,isFetchingMeta:h,dryRunResponse:m},e)}},{key:"updateQuery",value:function(e){var t=this.state.query;this.updateVizState({query:_a(_a({},t),e)})}},{key:"updateVizState",value:function(){var e=ke()(Ce.a.mark((function e(t){var n,r,a,i,o,s,c,l,u,d,b,p,h,m=this;return Ce.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.props,r=n.setQuery,a=n.setVizState,i=this.state,o=i.query,s=i.pivotConfig,c=i.chartType,l=i.meta,(u=this.applyStateChangeHeuristics(t)).query||(u.query=_a({},o)),d=null,b=function(e){var t=m.props.onVizStateChanged;if(t){var n=Object(xa.a)(["chartType","pivotConfig","query"],e);d&&Object(ze.a)(d,n)||(t(n),d=Object(Fe.a)(n))}},p=function(e){a&&a(Object(xa.a)(["chartType","pivotConfig","query"],e)),e.query&&r&&r(e.query)},u.shouldApplyHeuristicOrder&&(u.query.order=yt(u.query)),u.pivotConfig=_t.getNormalizedPivotConfig(u.query,void 0!==u.pivotConfig?u.pivotConfig:s),u.missingMembers=this.getMissingMembers(u.query,l),u.chartType=u.chartType||t.chartType||c,p(_a(_a({},t),{},{query:u.query})),this.setState(_a(_a({},u),{},{queryError:null})),b(u),!!Object(ze.a)(Object(xa.a)(["measures","dimensions","timeDimensions"],o),Object(xa.a)(["measures","dimensions","timeDimensions"],u.query))||!vt(u.query)||0!==u.missingMembers.length){e.next=30;break}return e.prev=16,e.next=19,this.cubejsApi().dryRun(u.query,{mutexObj:this.mutexObj});case 19:h=e.sent,u.shouldApplyHeuristicOrder&&(u.query.order=(h.queryOrder||[]).reduce((function(e,t){return _a(_a({},e),t)}),{})),u.pivotConfig=_t.getNormalizedPivotConfig(h.pivotQuery,u.pivotConfig),u.validatedQuery=this.validatedQuery(u),u.dryRunResponse=h,vt(o)&&p(_a(_a({},this.state),u)),e.next=30;break;case 27:e.prev=27,e.t0=e.catch(16),this.setState({queryError:new Error(Ta(e.t0.message||e.t0.toString()))});case 30:this.setState(u,(function(){return b(m.state)}));case 31:case"end":return e.stop()}}),e,this,[[16,27]])})));return function(t){return e.apply(this,arguments)}}()},{key:"validatedQuery",value:function(e){var t=(e||this.state).query;return _a(_a({},t),{},{filters:(t.filters||[]).filter((function(e){return e.operator}))})}},{key:"defaultHeuristics",value:function(e){var t=this.state,n=t.query,r=t.sessionGranularity;return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=Object(Fe.a)(e),a=r.query,i=De()(r,ht),o=n.meta,s=n.sessionGranularity||"day",c=jt({query:a},i),l=null;if(gt(a,t)||(l=a),Array.isArray(l)||Array.isArray(t))return e;if(l){if(1===(t.timeDimensions||[]).length&&1===(l.timeDimensions||[]).length&&l.timeDimensions[0].granularity&&t.timeDimensions[0].granularity!==l.timeDimensions[0].granularity&&(c=jt(jt({},c),{},{sessionGranularity:l.timeDimensions[0].granularity})),0===(t.measures||[]).length&&(l.measures||[]).length>0||1===(t.measures||[]).length&&1===(l.measures||[]).length&&t.measures[0]!==l.measures[0]){var u=l.timeDimensions||[],d=qe()(u,1)[0],b=o.defaultTimeDimensionNameFor(l.measures[0]);return l=jt(jt({},l),{},{timeDimensions:b?[{dimension:b,granularity:d&&d.granularity||s,dateRange:d&&d.dateRange}]:[]}),jt(jt({},c),{},{pivotConfig:null,shouldApplyHeuristicOrder:!0,query:l,chartType:b?"line":"number"})}return 0===(t.dimensions||[]).length&&(l.dimensions||[]).length>0?(l=jt(jt({},l),{},{timeDimensions:(l.timeDimensions||[]).map((function(e){return jt(jt({},e),{},{granularity:void 0})}))}),jt(jt({},c),{},{pivotConfig:null,shouldApplyHeuristicOrder:!0,query:l,chartType:"table"})):(t.dimensions||[]).length>0&&0===(l.dimensions||[]).length?(l=jt(jt({},l),{},{timeDimensions:(l.timeDimensions||[]).map((function(e){return jt(jt({},e),{},{granularity:e.granularity||s})}))}),jt(jt({},c),{},{pivotConfig:null,shouldApplyHeuristicOrder:!0,query:l,chartType:(l.timeDimensions||[]).length?"line":"number"})):((t.dimensions||[]).length>0||(t.measures||[]).length>0)&&0===(l.dimensions||[]).length&&0===(l.measures||[]).length?(l=jt(jt({},l),{},{timeDimensions:[],filters:[]}),jt(jt({},c),{},{pivotConfig:null,shouldApplyHeuristicOrder:!0,query:l,sessionGranularity:null})):c}if(c.chartType){var p=c.chartType;if(("line"===p||"area"===p)&&1===(t.timeDimensions||[]).length&&!t.timeDimensions[0].granularity){var h=qe()(t.timeDimensions,1)[0];return jt(jt({},c),{},{pivotConfig:null,query:jt(jt({},t),{},{timeDimensions:[jt(jt({},h),{},{granularity:s})]})})}if(("pie"===p||"table"===p||"number"===p)&&1===(t.timeDimensions||[]).length&&t.timeDimensions[0].granularity){var m=qe()(t.timeDimensions,1)[0];return jt(jt({},c),{},{pivotConfig:null,shouldApplyHeuristicOrder:!0,query:jt(jt({},t),{},{timeDimensions:[jt(jt({},m),{},{granularity:void 0})]})})}}return c}(e,n,{meta:t.meta,sessionGranularity:r||"day"})}},{key:"applyStateChangeHeuristics",value:function(e){var t=this.props,n=t.stateChangeHeuristics;return t.disableHeuristics?e:n&&n(this.state,e)||this.defaultHeuristics(e)}},{key:"render",value:function(){var e=this,t=this.state.query,n=this.props,r=n.cubejsApi,a=n.render;return n.wrapWithQueryRenderer?l.a.createElement(Ia,{query:t,cubejsApi:r,resetResultSetOnChange:!1,render:function(t){return a?a(e.prepareRenderProps(t)):null}}):a?a(this.prepareRenderProps()):null}}],[{key:"getDerivedStateFromProps",value:function(e,t){if(e.query||e.vizState){var n=_a(_a({},t),e.vizState||{});if(Array.isArray(e.query))throw new Error("Array of queries is not supported.");return _a(_a({},n),{},{query:_a(_a({},n.query),e.query||{})})}return null}},{key:"resolveMember",value:function(e,t){var r=t.meta,a=t.query;return r?Array.isArray(a)?a.reduce((function(t,a){return t.concat(n.resolveMember(e,{meta:r,query:a}))}),[]):"timeDimensions"===e?(a.timeDimensions||[]).map((function(e,t){return _a(_a({},e),{},{dimension:_a(_a({},r.resolveMember(e.dimension,"dimensions")),{},{granularities:za}),index:t})})):(a[e]||[]).map((function(t,n){return _a({index:n},r.resolveMember(t,e))})):[]}}]),n}(l.a.Component);function Qa(e){var t=e.cubejsApi,n=e.children;return l.a.createElement(Aa.Provider,{value:{cubejsApi:t}},n)}function Na(e){var t=Object(c.useRef)([]);return Object(ze.a)(e,t.current)||(t.current=e),t.current}function Ua(){var e=Object(c.useRef)(!0);return Object(c.useEffect)((function(){return function(){e.current=!1}}),[]),function(){return e.current}}function Ka(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Va(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ka(Object(n),!0).forEach((function(t){me()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ka(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ya(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Ua(),a=Object(c.useContext)(Aa),i=Object(c.useRef)({}),o=Object(c.useState)({isLoading:!1,response:null}),s=qe()(o,2),l=s[0],u=s[1],d=Object(c.useState)(null),b=qe()(d,2),p=b[0],h=b[1],m=n.skip,j=void 0!==m&&m;function f(){return g.apply(this,arguments)}function g(){return g=ke()(Ce.a.mark((function t(){var o,s,c,l,d,b,p,m,f=arguments;return Ce.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=f.length>0&&void 0!==f[0]?f[0]:{},s=f.length>1&&void 0!==f[1]&&f[1],c=n.cubejsApi||(null===a||void 0===a?void 0:a.cubejsApi),l=o.query||n.query,d="meta"===e||l&&vt(l),!c||!s&&j||!d){t.next=20;break}return h(null),u({isLoading:!0,response:null}),b={mutexObj:i.current,mutexKey:e},p="meta"===e?[b]:[l,b],t.prev=10,t.next=13,c[e].apply(c,p);case 13:m=t.sent,r()&&u({response:m,isLoading:!1}),t.next=20;break;case 17:t.prev=17,t.t0=t.catch(10),r()&&(h(t.t0),u({isLoading:!1,response:null}));case 20:case"end":return t.stop()}}),t,null,[[10,17]])}))),g.apply(this,arguments)}return Object(c.useEffect)((function(){f()}),Na([Object.keys((null===(t=n.query)||void 0===t?void 0:t.order)||{}),n,a])),Va(Va({},l),{},{error:p,refetch:function(e){return f(e,!0)}})}function Ja(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ga(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ja(Object(n),!0).forEach((function(t){me()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ja(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}me()(Fa,"contextType",Aa),Fa.defaultProps={cubejsApi:null,stateChangeHeuristics:null,disableHeuristics:!1,render:null,wrapWithQueryRenderer:!0,defaultChartType:"line",defaultQuery:{},initialVizState:null,onVizStateChanged:null,query:null,setQuery:null,vizState:null,setVizState:null};var Wa=n(207),Ha=n(68),Za=n(747);var $a,Xa=e=>{let{query:t}=e;return Object(x.jsx)(Ia,{loadSql:!0,query:{...t,renewQuery:!0},render:e=>{var t;let{sqlQuery:n,resultSet:r,error:a}=e;if(a)return Object(x.jsx)(er,{error:a});const i=(null===r||void 0===r?void 0:r.serialize())||{},o=null===n||void 0===n?void 0:n.rawQuery(),s=null===(t=i.loadResponse)||void 0===t?void 0:t.results[0];return Object(x.jsxs)(N.a,{defaultActiveKey:"refreshKeys",tabBarExtraContent:Object(x.jsxs)("span",{children:["Last Refresh Time:\xa0",Object(x.jsx)("b",{children:null===s||void 0===s?void 0:s.lastRefreshTime})]}),children:[Object(x.jsx)(N.a.TabPane,{tab:"Refresh Keys",children:Object(x.jsx)(Za.a,{loading:!n,pagination:!1,scroll:{x:!0},columns:[{title:"Refresh Key SQL",key:"refreshKey",render:(e,t)=>Object(x.jsx)(pr,{code:Object(Wa.format)(t[0])})},{title:"Value",key:"value",render:(e,t)=>Object(x.jsx)(pr,{code:(null===s||void 0===s?void 0:s.refreshKeyValues)&&o&&JSON.stringify(s.refreshKeyValues[o.cacheKeyQueries.indexOf(t)],null,2)})}],dataSource:null===o||void 0===o?void 0:o.cacheKeyQueries})},"refreshKeys"),Object(x.jsx)(N.a.TabPane,{tab:"Pre-aggregations",children:Object(x.jsx)(Za.a,{loading:!n,pagination:!1,scroll:{x:!0},columns:[{title:"Table Name",key:"tableName",dataIndex:"tableName",render:e=>Object(x.jsx)("b",{children:e})},{title:"Refresh Key SQL",key:"refreshKey",dataIndex:"invalidateKeyQueries",render:e=>e.map((e=>Object(x.jsx)(pr,{code:Object(Wa.format)(e[0])},e[0])))},{title:"Refresh Key Value",key:"value",render:(e,t)=>{var n,r,a;let i=null===s||void 0===s||null===(n=s.usedPreAggregations)||void 0===n||null===(r=n[t.tableName])||void 0===r?void 0:r.refreshKeyValues;return Array.isArray(i)&&(i=i.reduce(((e,t)=>e.concat(t)),[])),null===(a=i)||void 0===a?void 0:a.map((e=>Object(x.jsx)(pr,{code:JSON.stringify(e,null,2)},JSON.stringify(e))))}}],dataSource:null===o||void 0===o?void 0:o.preAggregations})},"preAggregations"),Object(x.jsx)(N.a.TabPane,{tab:"Rollup Match Results",children:Object(x.jsx)(Za.a,{loading:!n,pagination:!1,scroll:{x:!0},columns:[{title:"Rollup Name",key:"name",dataIndex:"name",render:e=>Object(x.jsx)("b",{children:e})},{title:"Rollup Definition",key:"rollup",dataIndex:"references",render:e=>Object(x.jsx)(pr,{code:JSON.stringify(e,null,2)})},{title:"Can Be Used",key:"canUsePreAggregation",dataIndex:"canUsePreAggregation",render:e=>e?Object(x.jsx)(W.a,{style:{color:"#52c41a",fontSize:"2em"}}):Object(x.jsx)(Ha.a,{style:{color:"#c2371b",fontSize:"2em"}})}],dataSource:null===o||void 0===o?void 0:o.rollupMatchResults})},"rollupMatchResults")]})}})};const ei={react:"create-react-app",angular:"angular-cli",vue:"vue-cli"},ti=Object(b.d)(ir)($a||($a=Object(s.a)(["\n .ant-card-head {\n position: sticky;\n top: 0;\n z-index: 100;\n background: white;\n }\n\n .ant-card-body {\n max-width: 100%;\n overflow: auto;\n position: relative;\n }\n"]))),ni=[{id:"react",title:"React",scaffoldingSupported:!0},{id:"angular",title:"Angular",scaffoldingSupported:!0},{id:"vue",title:"Vue",scaffoldingSupported:!0},{id:"vanilla",title:"Vanilla JavaScript",placeholder:e=>{let{framework:t}=e;return Object(x.jsxs)("h2",{style:{padding:24,textAlign:"center"},children:["We do not support\xa0 Vanilla JavaScript \xa0code generation here yet.",Object(x.jsx)("br",{}),"Please refer to\xa0",Object(x.jsx)("a",{href:"https://cube.dev/docs/@cubejs-client-core",target:"_blank",rel:"noopener noreferrer",onClick:()=>Sr("Unsupported Framework Docs",{framework:t}),children:"Vanilla JavaScript \xa0docs"}),"\xa0to see on how to use it with Cube.js."]})}},{id:"bi",title:"BI",placeholder:()=>Object(x.jsxs)("h2",{style:{padding:24,textAlign:"center"},children:["You can connect Cube to any Business Intelligence tool through the Cube SQL API.",Object(x.jsx)("br",{}),"Please refer to\xa0",Object(x.jsx)("a",{href:"https://cube.dev/docs/backend/sql",target:"_blank",rel:"noopener noreferrer",onClick:()=>Sr("BI Docs"),children:"Cube SQL \xa0docs"}),"\xa0to learn more."]})}];class ri extends c.Component{static getDerivedStateFromProps(e,t){if(e.isChartRendererReady&&null!=e.iframeRef.current&&e.chartingLibrary){const{__cubejsPlayground:n}=e.iframeRef.current.contentWindow||{};if(!n)return{...t,chartRendererError:"The chart renderer failed to load"};const r=n.getCodesandboxFiles(e.chartingLibrary,{chartType:e.chartType,query:JSON.stringify(e.query,null,2),pivotConfig:JSON.stringify(e.pivotConfig,null,2),apiUrl:e.apiUrl,cubejsToken:e.cubejsToken});let a="";return"react"===e.framework?a=r["index.js"]:"angular"===e.framework?a=r["src/app/query-renderer/query-renderer.component.ts"]:"vue"===e.framework&&(a=r["src/components/ChartRenderer.vue"]),{...t,chartRendererError:null,dependencies:n.getDependencies(e.chartingLibrary),codeExample:a,codesandboxFiles:r}}return t}constructor(e){super(e),this.state={showCode:!1,chartRendererError:null,sql:{loading:!1}}}render(){const{codeExample:e,codesandboxFiles:t,dependencies:n,redirectToDashboard:r,showCode:a,addingToDashboard:o,chartRendererError:s,sql:c}=this.state,{isChartRendererReady:l,resultSet:u,error:d,render:b,dashboardSource:p,hideActions:h,query:m,chartingLibrary:j,setChartLibrary:y,chartLibraries:v,history:O,framework:k,setFramework:w,isFetchingMeta:C,onChartRendererReadyChange:S}=this.props;if(r)return Object(x.jsx)(i.a,{to:"/dashboard"});if(s)return Object(x.jsx)("div",{children:s});const A=l?Object(ga.getParameters)(function(e,t){var n,r;let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return{files:{...null===(n=$[e])||void 0===n?void 0:n.files,...Object.entries(t).map((e=>{let[t,n]=e;return{[t]:{content:n}}})).reduce(((e,t)=>({...e,...t})),{}),"package.json":{content:{dependencies:{...null===(r=$[e])||void 0===r?void 0:r.dependencies,...a.reduce(((e,t)=>{const[n,r]=Array.isArray(t)?t:[t,"latest"];return{...e,[n]:r,...X[n]?{[X[n]]:"latest"}:null}}),{})}}}},template:e}}(ei[k],t,n)):null,D=(v[k]||[]).length>0?Object(x.jsx)(g.a,{"data-testid":"charting-library-dropdown",onClick:e=>{Sr("Set Chart Library",{chartingLibrary:e.key}),y(e.key)},children:(v[k]||[]).map((e=>Object(x.jsx)(g.a.Item,{children:e.title},e.value)))}):null,E=Object(x.jsx)(g.a,{"data-testid":"framework-dropdown",onClick:e=>{var t,n;e.key!==k&&(Sr("Set Framework",{framework:e.key}),w(e.key),S(!1),y((null===(t=v[e.key])||void 0===t||null===(n=t[0])||void 0===n?void 0:n.value)||null))},children:ni.map((e=>Object(x.jsx)(g.a.Item,{children:e.title},e.id)))}),T=(v[k]||[]).find((e=>e.value===j)),P=ni.find((e=>e.id===k)),q=Object(x.jsxs)("form",{action:"https://codesandbox.io/api/v1/sandboxes/define",method:"POST",target:"_blank",children:[null!=A?Object(x.jsx)("input",{type:"hidden",name:"parameters",value:A}):null,Object(x.jsxs)(Ur,{children:[Object(x.jsxs)(rr.Group,{children:[Object(x.jsx)(f.a,{overlay:E,disabled:C,children:Object(x.jsxs)(rr,{"data-testid":"framework-btn",size:"small",children:[null===P||void 0===P?void 0:P.title,Object(x.jsx)(pa.a,{})]})}),D?Object(x.jsx)(f.a,{overlay:D,disabled:!!(null===P||void 0===P?void 0:P.placeholder)||C,children:Object(x.jsxs)(rr,{"data-testid":"charting-library-btn",size:"small",children:[null===T||void 0===T?void 0:T.title,Object(x.jsx)(pa.a,{})]})}):null]}),Object(x.jsxs)(rr.Group,{children:[Object(x.jsx)(rr,{"data-testid":"chart-btn",size:"small",type:a?"default":"primary",disabled:!!(null===P||void 0===P?void 0:P.placeholder)||C,onClick:()=>{Sr("Show Chart"),this.setState({showCode:null})},children:"Chart"}),Object(x.jsx)(rr,{"data-testid":"json-query-btn",size:"small",type:"query"===a?"primary":"default",disabled:!!(null===P||void 0===P?void 0:P.placeholder)||C,onClick:()=>{Sr("Show Query"),this.setState({showCode:"query"})},children:"JSON Query"}),Object(x.jsx)(rr,{"data-testid":"code-btn",icon:Object(x.jsx)(ha.a,{}),size:"small",type:"code"===a?"primary":"default",disabled:!!(null===P||void 0===P?void 0:P.placeholder)||C,onClick:()=>{Sr("Show Code"),this.setState({showCode:"code"})},children:"Code"}),Object(x.jsx)(rr,{"data-testid":"sql-btn",icon:Object(x.jsx)(ma.a,{}),size:"small",type:"sql"===a?"primary":"default",disabled:!!(null===P||void 0===P?void 0:P.placeholder)||C,onClick:()=>{Sr("Show SQL"),this.setState({showCode:"sql"})},children:"SQL"}),Object(x.jsx)(rr,{"data-testid":"cache-btn",icon:Object(x.jsx)(ja.a,{}),size:"small",type:"cache"===a?"primary":"default",disabled:!!(null===P||void 0===P?void 0:P.placeholder)||C,onClick:()=>{Sr("Show Cache"),this.setState({showCode:"cache"})},children:"Cache"})]}),Object(x.jsx)(rr,{"data-testid":"edit-btn",icon:Object(x.jsx)(fa.a,{}),size:"small",htmlType:"submit",disabled:!!(null===P||void 0===P?void 0:P.placeholder)||C,onClick:()=>Sr("Open Code Sandbox"),children:"Edit"}),p&&Object(x.jsx)(rr,{"data-testid":"add-to-dashboard-btn",onClick:async()=>{this.setState({addingToDashboard:!0});const t=await p.canAddChart();"boolean"===typeof t&&t?(Sr("Add to Dashboard"),await p.addChart(e),this.setState({redirectToDashboard:!0,addingToDashboard:!1})):t?(this.setState({addingToDashboard:!1}),V.a.error({title:"There is an error loading your dashboard app",content:t,okText:"Fix",okCancel:!0,onOk(){O.push("/dashboard")}})):(this.setState({addingToDashboard:!1}),V.a.error({title:"Your dashboard app does not support adding of static charts",content:"Please use static dashboard template"}))},icon:Object(x.jsx)(ba.a,{}),size:"small",loading:o,disabled:!!(null===P||void 0===P?void 0:P.placeholder)||C,type:"primary",children:o?"Preparing dashboard app. It may take a while. Please check console for progress...":"Add to Dashboard"})]})]}),R=JSON.stringify(m,null,2);let M;return M="code"===a?Object(x.jsxs)(Ur,{style:{alignItems:"center"},children:[Object(x.jsx)("div",{children:"Code"}),Object(x.jsx)(rr,{"data-testid":"copy-code-btn",icon:Object(x.jsx)(G.a,{}),size:"small",disabled:Boolean(d),onClick:async()=>{await te(e),Sr("Copy Code to Clipboard")},type:"primary",children:"Copy to Clipboard"})]}):"query"===a?Object(x.jsxs)(Ur,{children:[Object(x.jsx)("div",{children:"Query"}),Object(x.jsx)(rr,{"data-testid":"copy-cube-query-btn",icon:Object(x.jsx)(G.a,{}),size:"small",onClick:async()=>{await te(JSON.stringify(m,null,2)),Sr("Copy Query to Clipboard")},type:"primary",children:"Copy to Clipboard"})]}):"sql"===a?Object(x.jsxs)(Ur,{children:[Object(x.jsx)("div",{children:"SQL"}),!c.loading&&c.value?Object(x.jsx)(rr,{"data-testid":"copy-sql-btn",icon:Object(x.jsx)(G.a,{}),size:"small",onClick:async()=>{await te(c.value,"The SQL has been copied"),Sr("Copy SQL to Clipboard")},type:"primary",children:"Copy to Clipboard"}):null]}):"cache"===a?"Cache":"Chart",h?b({resultSet:u,error:d}):Object(x.jsx)(ti,{title:M,style:{minHeight:420},extra:q,children:(()=>{if(null===P||void 0===P?void 0:P.placeholder){const e=P.placeholder;return Object(x.jsx)(e,{framework:k})}return"code"===a?d?Object(x.jsx)(er,{error:d}):Object(x.jsx)(pr,{code:e}):"query"===a?Object(x.jsx)(pr,{code:R}):"sql"===a?Object(x.jsx)(Ia,{loadSql:"only",query:m,render:e=>{let{sqlQuery:t,loadingState:n,error:r}=e;if(r)return Object(x.jsx)(er,{error:r});const[a]=Array.isArray(t)?t:[t],i=a&&Object(Wa.format)(a.sql());return Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(pr,{code:i}),Object(x.jsx)(ai,{loading:n.isLoading,sql:i,onChange:e=>{let{sql:t,loading:n}=e;this.setState({sql:{loading:n,value:t}})}})]})}}):"cache"===a?Object(x.jsx)(Xa,{query:m}):b({framework:k,error:d})})()})}}function ai(e){let{sql:t,loading:n,onChange:r}=e;return Object(c.useEffect)((()=>{r({sql:t,loading:n})}),[t,n]),null}ri.defaultProps={query:{},hideActions:!1};var ii,oi,si,ci=Object(i.g)(ri),li=n(417),ui=n(751),di=n(769);const bi=Object(b.d)(V.a)(ii||(ii=Object(s.a)(["\n && {\n .ant-modal-header {\n border-bottom: none;\n padding: 40px 32px 0 32px;\n\n .ant-modal-title {\n font-size: 20px;\n }\n }\n\n .ant-modal-footer {\n border-top: none;\n padding: 0 32px 34px 32px;\n text-align: left;\n }\n }\n"]))),pi=Object(b.d)(ui.a)(oi||(oi=Object(s.a)(["\n && {\n .ant-form-item-label {\n line-height: 16px;\n margin-bottom: 7px;\n label {\n font-weight: 500;\n font-size: 12px;\n line-height: 16px;\n }\n }\n\n .ant-dropdown-trigger {\n padding: 5px 12px;\n }\n }\n"]))),hi=Object(b.d)(ui.a.Item)(si||(si=Object(s.a)(["\n && {\n &:not(:last-child) {\n margin-bottom: 16px;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n"]))),mi=()=>Object(x.jsx)(li.a,{style:{color:"#727290"}});var ji=e=>{let{visible:t,onOk:n,onCancel:r,onChange:a,chartLibraries:i,currentLibraryItem:o,frameworks:s,framework:c,frameworkItem:l,templatePackages:u,templatePackage:b,enableWebSocketTransport:p}=e;const h=Object(x.jsx)(g.a,{onClick:e=>{Sr("Set Chart Library",{chartLibrary:e.key}),a("chartLibrary",e.key)},children:i.map((e=>Object(x.jsx)(g.a.Item,{children:e.title},e.value)))}),m=Object(x.jsx)(g.a,{onClick:e=>{Sr("Set Framework",{framework:e.key}),a("framework",e.key)},children:s.map((e=>Object(x.jsx)(g.a.Item,{children:e.title},e.id)))}),j=Object(x.jsx)(g.a,{onClick:e=>{Sr("Set Template Package",{templatePackageName:e.key}),a("templatePackageName",e.key)},children:(u||[]).map((e=>Object(x.jsx)(g.a.Item,{children:e.description},e.name)))});return Object(x.jsx)(bi,{title:"Create your own Dashboard App",visible:t,onOk:n,onCancel:r,footer:[Object(x.jsx)(rr,{type:"primary",onClick:n,children:"Ok"},"submit"),Object(x.jsx)(rr,{onClick:r,children:"Cancel"},"back")],children:Object(x.jsxs)(pi,{children:[Object(x.jsx)(hi,{label:"Framework",children:Object(x.jsx)(f.a,{overlay:m,children:Object(x.jsxs)(rr,{children:[l&&l.title,Object(x.jsx)(mi,{})]})})}),!(null===l||void 0===l?void 0:l.scaffoldingSupported)&&Object(x.jsx)(d.a,{style:{marginBottom:23},type:"info",message:Object(x.jsxs)("span",{children:["We do not support\xa0",l.title,"\xa0dashboard scaffolding generation yet. Please refer to\xa0",Object(x.jsxs)("a",{href:l.docsLink,target:"_blank",rel:"noopener noreferrer",onClick:()=>Sr("Unsupported Dashboard Framework Docs",{framework:c}),children:[l.title,"\xa0docs"]}),"\xa0to see on how to use it with Cube.js."]})}),Object(x.jsx)(hi,{label:"Main Template",children:Object(x.jsx)(f.a,{overlay:j,disabled:!l.scaffoldingSupported,children:Object(x.jsxs)(rr,{children:[b&&b.description,Object(x.jsx)(mi,{})]})})}),Object(x.jsx)(hi,{label:"Charting Library",children:Object(x.jsx)(f.a,{overlay:h,disabled:!l.scaffoldingSupported,children:Object(x.jsxs)(rr,{children:[o&&o.title,Object(x.jsx)(mi,{})]})})}),Object(x.jsx)(hi,{label:"Web Socket Transport (Real-time)",children:Object(x.jsx)(di.a,{disabled:"react"!==c.toLowerCase(),checked:p,onChange:e=>a("enableWebSocketTransport",e)})})]})})},fi=n(779),gi=n(418);const yi=Object(c.createContext)({});function vi(e){let{children:t}=e;const[n,r]=Object(c.useState)({}),[a,i]=Object(c.useState)({}),[o,s]=Object(c.useState)({}),[l,u]=Object(c.useState)({}),[d,b]=Object(c.useState)({}),[p,h]=Object(c.useState)({}),[m,j]=Object(c.useState)({}),[f,g]=Object(c.useState)({}),[y,v]=Object(c.useState)({});return Object(x.jsx)(yi.Provider,{value:{chartRendererState:n,setChartRendererReady(e,t){r((n=>({...n,[e]:t})))},queryStatus:a,setQueryStatus(e,t){i((n=>({...n,[e]:t})))},resultSetExists:o,setResultSetExists(e,t){s((n=>({...n,[e]:t})))},isQueryLoading:l,setQueryLoading(e,t){u((n=>({...n,[e]:t})))},queryError:d,setQueryError(e,t){b((n=>({...n,[e]:t})))},isBuildInProgress:p,setBuildInProgress(e,t){h((n=>({...n,[e]:t})))},slowQuery:m,setSlowQuery(e,t){j((n=>({...n,[e]:t})))},slowQueryFromCache:f,setSlowQueryFromCache(e,t){g((n=>({...n,[e]:t})))},queryRequestId:y,setQueryRequestId(e,t){v((n=>({...n,[e]:t})))}},children:t})}function xi(e){const{chartRendererState:t,queryStatus:n,resultSetExists:r,isQueryLoading:a,queryError:i,isBuildInProgress:o,slowQuery:s,slowQueryFromCache:l,queryRequestId:u}=Object(c.useContext)(yi);return{isChartRendererReady:Boolean(t[e]),queryStatus:n[e],resultSetExists:r[e],isQueryLoading:Boolean(a[e]),queryError:i[e]||null,isBuildInProgress:Boolean(o[e]),slowQuery:Boolean(s[e]),slowQueryFromCache:Boolean(l[e]),queryRequestId:u[e]}}function Oi(){const{setChartRendererReady:e,setQueryStatus:t,setResultSetExists:n,setQueryLoading:r,setQueryError:a,setBuildInProgress:i,setSlowQuery:o,setSlowQueryFromCache:s,setQueryRequestId:l}=Object(c.useContext)(yi);return{setChartRendererReady:e,setQueryStatus:t,setResultSetExists:n,setQueryLoading:r,setQueryError:a,setBuildInProgress:i,setSlowQuery:o,setSlowQueryFromCache:s,setQueryRequestId:l}}var ki,wi,Ci,Si,Ai;const{Text:Di}=M.a,Ei=b.d.div(ki||(ki=Object(s.a)(["\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n"]))),Ti=b.d.div(wi||(wi=Object(s.a)(["\n visibility: ",";\n min-height: 400px;\n\n & > iframe {\n width: 100%;\n min-height: 400px;\n border: none;\n }\n"])),(e=>e.invisible?"hidden":"visible")),Pi=b.d.div(Ci||(Ci=Object(s.a)(["\n position: absolute;\n width: 100%;\n bottom: -4em;\n animation: fadeIn 0.3s;\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n"]))),qi=b.d.div(Si||(Si=Object(s.a)(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n"]))),Ri=b.d.div(Ai||(Ai=Object(s.a)(["\n position: relative;\n width: 100%;\n text-align: center;\n"])));function Mi(e){let{queryId:t,areQueriesEqual:n,isFetchingMeta:r,iframeRef:a,framework:i,queryHasMissingMembers:o,onRunButtonClick:s}=e;const{cubejsApi:l}=Object(c.useContext)(Aa),{isChartRendererReady:u,isQueryLoading:b,resultSetExists:p,queryError:h,isBuildInProgress:m,slowQuery:j,slowQueryFromCache:f}=xi(t),{setResultSetExists:g,setChartRendererReady:y,setQueryError:v}=Oi(),O=Object(c.useRef)(null);Object(gi.a)("cmd+enter",(()=>{var e;null===(e=O.current)||void 0===e||e.click()})),Object(c.useEffect)((()=>()=>{y(t,!1)}),[]),Object(c.useEffect)((()=>{!n&&h&&v(t,null)}),[t,n,h]),Object(c.useEffect)((()=>{g(t,!1)}),[i]);const k=o||b||m||!l,w=!u||m||Boolean(h)||o||k||!n||!p,C=j?"This query takes more than 5 seconds to execute. Please consider using pre-aggregations to improve its performance. ":f?"This query takes more than 5 seconds to execute. It was served from the cache because Cube.js wasn't able to renew it in less than 5 seconds. Please consider using pre-aggregations to improve its performance. ":"";return Object(x.jsxs)(x.Fragment,{children:[(j||f)&&Object(x.jsx)(d.a,{style:{marginBottom:24},message:C,type:"warning"}),h?Object(x.jsx)(er,{error:h}):o?Object(x.jsx)("div",{children:"At least one of the query members is missing from your data schema. Please update your query or data schema."}):k?Object(x.jsx)(Ei,{children:Object(x.jsx)(qi,{children:Object(x.jsxs)(Ri,{children:[Object(x.jsx)(Wn,{full:!1}),m&&Object(x.jsx)(Pi,{children:Object(x.jsx)(Di,{strong:!0,style:{fontSize:18},children:"Building pre-aggregations..."})})]})})}):n&&p?null:Object(x.jsx)(Ei,{children:Object(x.jsx)(qi,{children:Object(x.jsx)(rr,{"data-testid":"run-query-btn",ref:O,size:"large",type:"primary",loading:!u||r,icon:Object(x.jsx)(fi.a,{}),onClick:s,children:"Run"})})}),Object(x.jsx)(Ti,{invisible:w,children:l?Object(x.jsx)("iframe",{id:"iframe-".concat(t),"data-testid":"chart-renderer",ref:a,title:"Chart renderer",src:"/chart-renderers/".concat(i,"/index.html#queryId=").concat(t)}):null})]})}var Ii=n(746),Li=n(756),_i=n(403),Bi=n.n(_i),zi=n(95),Fi=n(780);function Qi(e){let{id:t,index:n}=e;return Object(x.jsx)(zi.b,{draggableId:t,index:n,children:e=>{let{draggableProps:n,dragHandleProps:r,innerRef:a}=e;return Object(x.jsx)("div",{ref:a,...n,...r,style:{...n.style,border:"1px dashed var(--dark-05-color)",borderRadius:4,padding:"5px 12px",lineHeight:"22px"},children:Object(x.jsxs)(M.a.Text,{ellipsis:!0,style:{maxWidth:"100%"},children:[Object(x.jsx)(Fi.a,{style:{marginRight:8}}),t]})})}})}function Ni(e){let{pivotConfig:t,axis:n}=e;return Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(M.a.Text,{strong:!0,style:{display:"flex",justifyContent:"center",padding:"8px 16px",background:"var(--light-5)",borderBottom:"1px solid var(--light-color)"},children:n}),Object(x.jsx)("div",{"data-testid":"pivot-popover-".concat(n),style:{padding:"8px"},children:Object(x.jsx)(zi.c,{droppableId:n,children:e=>Object(x.jsxs)("div",{ref:e.innerRef,...e.droppableProps,style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr)",gap:"8px",height:"100%",minHeight:"32px"},children:[t[n].map(((e,t)=>Object(x.jsx)(Qi,{id:e,index:t},e))),e.placeholder]})})})]})}function Ui(e){let{pivotConfig:t,onMove:n}=e;return Object(x.jsx)(zi.a,{onDragEnd:e=>{let{source:t,destination:r,...a}=e;r&&n({sourceIndex:t.index,destinationIndex:r.index,sourceAxis:t.droppableId,destinationAxis:r.droppableId})},children:Object(x.jsxs)(da.a,{children:[Object(x.jsx)(ua.a,{span:12,style:{minWidth:160},children:Object(x.jsx)(Ni,{pivotConfig:t,axis:"x"})}),Object(x.jsx)(ua.a,{span:12,style:{minWidth:160},children:Object(x.jsx)(Ni,{pivotConfig:t,axis:"y"})})]})})}var Ki=n(210);function Vi(e){let{pivotConfig:t,onUpdate:n}=e;return Object(x.jsx)(Ki.a,{checked:t.fillMissingDates,onChange:()=>n({fillMissingDates:!t.fillMissingDates}),children:"Fill Missing Dates"})}var Yi=n(254);function Ji(e){let{id:t,index:n,order:r="none",children:a,onOrderChange:i}=e;return Object(x.jsx)(zi.b,{draggableId:t,index:n,children:e=>{let{draggableProps:n,dragHandleProps:o,innerRef:s}=e;return Object(x.jsxs)("div",{"data-testid":"order-item",ref:s,...n,...o,style:{display:"flex",flexWrap:"nowrap",justifyContent:"space-between",alignItems:"center",marginBottom:8,...n.style},children:[Object(x.jsx)(Fi.a,{}),Object(x.jsx)(M.a.Text,{ellipsis:!0,style:{margin:"0 auto 0 8px",padding:"5px 0"},children:a}),Object(x.jsxs)(Yi.a.Group,{onChange:e=>i(t,e.target.value),defaultValue:r,size:"small",style:{marginLeft:"8px"},children:[Object(x.jsx)(Yi.a.Button,{value:"asc",children:"ASC"}),Object(x.jsx)(Yi.a.Button,{value:"desc",children:"DESC"}),Object(x.jsx)(Yi.a.Button,{value:"none",children:"NONE"})]})]})}})}function Gi(e){let{orderMembers:t,onOrderChange:n,onReorder:r}=e;return Object(x.jsx)(zi.a,{onDragEnd:e=>{let{source:t,destination:n}=e;r(t&&t.index,n&&n.index)},children:Object(x.jsx)(zi.c,{droppableId:"droppable",children:e=>Object(x.jsxs)("div",{"data-testid":"order-popover",ref:e.innerRef,...e.droppableProps,children:[t.map(((e,t)=>{let{id:r,title:a,order:i}=e;return Object(x.jsx)(Ji,{id:r,index:t,order:i,onOrderChange:n,children:a},r)})),e.placeholder]})})})}function Wi(e){let{pivotConfig:t,orderMembers:n,limit:r,disabled:a,onMove:i,onUpdate:o,onReorder:s,onOrderChange:l,isQueryPresent:u}=e;const[d,b]=Object(c.useState)(r),[p,h]=Object(c.useState)(!1);return Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(Bi.a,{style:{lineHeight:"32px"},children:"Settings:"}),Object(x.jsx)(cr,{content:null===t?Object(x.jsx)(qr.a,{}):Object(x.jsxs)("div",{"data-testid":"pivot-popover",children:[Object(x.jsx)(Ui,{pivotConfig:t,onMove:i}),Object(x.jsx)(Ii.a,{style:{margin:0}}),Object(x.jsx)("div",{style:{padding:"8px"},children:Object(x.jsx)(Vi,{pivotConfig:t,onUpdate:o})})]}),placement:"bottomLeft",trigger:"click",children:Object(x.jsx)(rr,{"data-testid":"pivot-btn",disabled:!u||a,style:{border:0},children:"Pivot"})}),Object(x.jsx)(cr,{content:Object(x.jsx)("div",{style:{padding:"8px",paddingBottom:1},children:Object(x.jsx)(Gi,{orderMembers:n,onReorder:s,onOrderChange:l})}),placement:"bottomLeft",trigger:"click",children:Object(x.jsx)(rr,{"data-testid":"order-btn",disabled:!u||a,style:{border:0},children:"Order"})}),Object(x.jsx)(cr,{visible:p,content:Object(x.jsx)("div",{style:{padding:"8px"},children:Object(x.jsxs)("label",{children:["Limit"," ",Object(x.jsx)(Li.a,{prefix:"Limit",type:"number",value:d,step:500,onChange:b,onPressEnter:()=>{o({limit:d}),h(!1)}})]})}),placement:"bottomLeft",trigger:"click",onVisibleChange:e=>{h(e),e||o({limit:d})},children:Object(x.jsx)(rr,{"data-testid":"limit-btn",disabled:!u||a,style:{border:0},children:"Limit"})})]})}var Hi=n(252),Zi=n.n(Hi);var $i,Xi,eo=e=>{let{overlay:t,disabled:n=!1,...r}=e;return Object(x.jsx)(f.a,{disabled:n,overlay:t,placement:"bottomLeft",trigger:["click"],children:Object(x.jsx)(rr,{...r,disabled:n})})};const to=Object(b.d)(g.a)($i||($i=Object(s.a)(["\n max-height: 320px;\n overflow: hidden auto;\n padding-top: 0;\n\n li.ant-dropdown-menu-item-active {\n background: #f3f3fb;\n }\n"]))),no=Object(b.d)(to.Item)(Xi||(Xi=Object(s.a)(["\n position: sticky;\n top: 0;\n background: white;\n padding-top: 10px;\n padding-bottom: 0;\n margin-bottom: 16px;\n\n ::after {\n display: block;\n position: absolute;\n content: '';\n width: 100%;\n left: 0;\n bottom: -20px;\n height: 20px;\n background: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 1),\n rgba(255, 255, 255, 0)\n );\n }\n"])));function ro(e){let{isVisible:t}=e;return void 0===t||t}function ao(e){let{availableCubes:t,showNoMembersPlaceholder:n=!0,onClick:r,...a}=e;const i=Object(c.useRef)(Zi.a.create({encode:"advanced"})),[o,s]=Object(c.useState)(""),[l,u]=Object(c.useState)([]),d=i.current,b=t.some((e=>e.members.filter(ro).length>0)),p=xn((()=>(tn(t).forEach((e=>{let[t,{title:n}]=e;return d.add(t,n)})),Object.fromEntries(tn(t)))),[t]);Object(c.useEffect)((()=>{let e=o;return(async()=>{const t=await d.search(o);e===o&&u(t)})(),()=>{e=""}}),[d,o]);const h=o?function(e,t){const n=t.map((e=>e.split(".")[0]));return e.filter((e=>{let{cubeName:t}=e;return n.includes(t)})).map((e=>({...e,members:e.members.filter((e=>{let{name:n}=e;return t.includes(n)}))})))}(t,l):t;return Object(x.jsx)(eo,{...a,overlay:Object(x.jsx)(to,{onClick:e=>{s(""),u([]),r(p[e.key])},children:b?Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(no,{disabled:!0,children:Object(x.jsx)(U.a,{placeholder:"Search",autoFocus:!0,value:o,allowClear:!0,onKeyDown:e=>{["ArrowDown","ArrowUp"].includes(e.key)&&e.preventDefault()},onChange:e=>{s(e.target.value)}})}),h.map((e=>{const t=e.members.filter(ro);return t.length?Object(x.jsx)(to.ItemGroup,{title:e.cubeTitle,children:t.map((e=>Object(x.jsx)(to.Item,{"data-testid":e.name,children:e.shortTitle},e.name)))},e.cubeName):null}))]}):n?Object(x.jsx)(to.Item,{disabled:!0,children:"No members found"}):null})})}var io;function oo(e){return null==e.color?"primary":{primary:"primary",danger:"pink"}[e.color]}var so=Object(b.d)((e=>{let{onRemoveClick:t,children:n,...r}=e;return Object(x.jsxs)(rr.Group,{...r,children:[n,Object(x.jsx)(rr,{ghost:!0,className:"remove-btn",disabled:r.disabled,onClick:t,children:Object(x.jsx)(Ha.a,{})})]})}))(io||(io=Object(s.a)(["\n && {\n border-radius: calc(var(--border-radius-base) + 1px);\n\n .ant-btn {\n border: none;\n\n & + .ant-btn {\n margin-left: 0;\n }\n }\n\n .remove-btn {\n padding: 8px;\n\n .anticon {\n height: 14px;\n display: block;\n }\n }\n }\n\n &&:not(.disabled) {\n border: 1px solid var(--","-color);\n color: var(--","-color);\n\n .ant-btn {\n background-color: var(--","-9);\n color: var(--","-color);\n\n span {\n color: var(--","-color);\n }\n\n &:hover {\n background-color: var(--","-8);\n border: none;\n box-shadow: none;\n }\n }\n\n .remove-btn {\n background-color: white !important;\n color: var(--","-color);\n\n &:hover {\n background-color: var(--","-8) !important;\n }\n }\n }\n\n &&.disabled {\n border: 1px solid var(--disabled-color);\n color: var(--disabled-color);\n\n .ant-btn {\n background-color: var(--disabled-bg);\n color: var(--disabled-color);\n border: none;\n\n span {\n color: var(--disabled-color);\n }\n }\n\n .remove-btn {\n color: var(--disabled-color);\n }\n }\n"])),oo,oo,oo,oo,oo,oo,oo,oo),co=n(404);const lo={string:e=>{let{values:t=[],disabled:n,onChange:r}=e;return Object(x.jsx)(Yr,{disabled:n,style:{width:300},mode:"tags",value:t,maxTagCount:"responsive",onChange:r},"input")},number:e=>{let{values:t=[],disabled:n,onChange:r}=e;return Object(x.jsx)(U.a,{disabled:n,style:{width:300},onChange:e=>r([e.target.value]),value:(null===t||void 0===t?void 0:t[0])||""},"input")}};function uo(e){let{member:t,disabled:n=!1,updateMethods:r}=e;const a=lo[t.dimension.type]||lo.string,i=Object(c.useRef)(Object(co.a)(500,((e,t)=>{r.update(e,{...e,values:t})}))),[o,s]=Object(c.useState)(t.values);return Object(x.jsx)(a,{disabled:n,values:o,onChange:e=>{s(e),i.current(t,e)}},"filter")}var bo=n(80);function po(e){let{children:t}=e;return Object(x.jsx)(bo.a,{overlayClassName:"missing-member-tooltip",placement:"top",title:"This member was removed from the data schema",color:"var(--dark-01-color)",children:t})}var ho=e=>{let{disabled:t=!1,members:n,availableMembers:r,addMemberName:a,updateMethods:i,missingMembers:o}=e;return Object(x.jsxs)(Ur,{children:[n.map((e=>{const n=o.includes(e.member),a=Object(x.jsx)(so,{disabled:t,className:t?"disabled":null,color:n?"danger":"primary",onRemoveClick:()=>i.remove(e),children:Object(x.jsx)(ao,{disabled:t,availableCubes:r,style:{width:150,textOverflow:"ellipsis",overflow:"hidden"},onClick:t=>i.update(e,{...e,dimension:t}),children:e.dimension.title})});return Object(x.jsxs)(c.Fragment,{children:[n?Object(x.jsx)(po,{children:a}):a,Object(x.jsx)(Yr,{disabled:t,value:e.operator,style:{width:200},onChange:t=>i.update(e,{...e,operator:t}),children:e.operators.map((e=>Object(x.jsx)(Yr.Option,{value:e.name,children:e.title},e.name)))}),Object(x.jsx)(uo,{disabled:t,member:e,updateMethods:i},"filterInput")]},e.index)})),Object(x.jsx)(ao,{availableCubes:r,type:"dashed",disabled:t,icon:Object(x.jsx)(ba.a,{}),onClick:e=>i.add({member:e}),children:n.length?null:a})]})};function mo(e){let{disabled:t=!1,members:n,availableMembers:r,missingMembers:a,addMemberName:i,updateMethods:o}=e;const s=Object(c.useCallback)((e=>o.add(e)),[]);return Object(x.jsxs)(Ur,{children:[n.map((e=>{const n=a.includes(e.title),i=Object(x.jsx)(so,{disabled:t,className:t?"disabled":null,color:n?"danger":"primary",onRemoveClick:()=>o.remove(e),children:Object(x.jsx)(ao,{disabled:t,availableCubes:r,onClick:t=>o.update(e,t),children:e.title})},e.index||e.name);return n?Object(x.jsx)(po,{children:i},e.index||e.name):i})),Object(x.jsx)(ao,{"data-testid":i,disabled:t,availableCubes:r,type:"dashed",icon:Object(x.jsx)(ba.a,{}),onClick:s,children:n.length?null:i})]})}var jo=n(781),fo=n(782),go=n(783),yo=n(784),vo=n(785),xo=n(181);const Oo=[{name:"line",title:"Line",icon:Object(x.jsx)(jo.a,{})},{name:"area",title:"Area",icon:Object(x.jsx)(fo.a,{})},{name:"bar",title:"Bar",icon:Object(x.jsx)(go.a,{})},{name:"pie",title:"Pie",icon:Object(x.jsx)(yo.a,{})},{name:"table",title:"Table",icon:Object(x.jsx)(vo.a,{})},{name:"number",title:"Number",icon:Object(x.jsx)(xo.a,{})}];var ko,wo=e=>{let{chartType:t,updateChartType:n}=e;const r=Object(x.jsx)(g.a,{"data-testid":"chart-type-dropdown",children:Oo.map((e=>Object(x.jsxs)(g.a.Item,{onClick:()=>n(e.name),children:[e.icon," ",e.title]},e.title)))}),a=Oo.find((e=>e.name===t));return Object(x.jsx)(eo,{"data-testid":"chart-type-btn",overlay:r,icon:null===a||void 0===a?void 0:a.icon,style:{border:0},children:(null===a||void 0===a?void 0:a.title)||""})},Co=n(748),So=n(111),Ao=n.n(So);const Do=b.d.div(ko||(ko=Object(s.a)(["\n color: var(--dark-04-color);\n line-height: 32px;\n"]))),{RangePicker:Eo}=Co.a,To=[{title:"Custom",value:"custom"},{title:"All time",value:void 0},{value:"Today"},{value:"Yesterday"},{value:"This week"},{value:"This month"},{value:"This quarter"},{value:"This year"},{value:"Last 7 days"},{value:"Last 30 days"},{value:"Last week"},{value:"Last month"},{value:"Last quarter"},{value:"Last year"}];var Po=e=>{var t;let{members:n=[],disabled:r=!1,availableMembers:a,missingMembers:i,addMemberName:o,updateMethods:s,parsedDateRange:l}=e;const u=Array.isArray(null===(t=n[0])||void 0===t?void 0:t.dateRange),[d,b]=Object(c.useState)(!1);const p=(e,t)=>Object(x.jsx)(g.a,{children:e.granularities.length?e.granularities.map((e=>Object(x.jsx)(g.a.Item,{onClick:()=>t(e),children:e.title},e.title))):Object(x.jsx)(g.a.Item,{disabled:!0,children:"No members found"})});return Object(x.jsxs)(Ur,{children:[n.map(((e,t)=>{const n=i.includes(e.dimension.title),o=Object(x.jsx)(so,{disabled:r,className:r?"disabled":null,color:n?"danger":"primary",onRemoveClick:()=>s.remove(e),children:Object(x.jsx)(ao,{"data-testid":"TimeDimension",disabled:r,availableCubes:a,onClick:t=>s.update(e,{...e,dimension:t}),children:e.dimension.title})});return Object(x.jsxs)(c.Fragment,{children:[n?Object(x.jsx)(po,{children:o}):o,Object(x.jsx)(Do,{children:"for"}),Object(x.jsx)(eo,{disabled:r,overlay:(h=t=>{"custom"===t.value?b(!0):(s.update(e,{...e,dateRange:t.value}),b(!1))},Object(x.jsx)(g.a,{children:To.map((e=>Object(x.jsx)(g.a.Item,{onClick:()=>h(e),children:e.title||e.value},e.title||e.value)))})),children:d||u?"Custom":e.dateRange||"All time"}),d||u?Object(x.jsx)(Eo,{disabled:r,format:"YYYY-MM-DD",defaultValue:(l||[]).map((e=>Ao()(e))),onChange:t=>function(e,t){t&&!t.some((e=>!e))&&s.update(e,{...e,dateRange:t.map((e=>e.format("YYYY-MM-DD")))})}(e,t)}):null,Object(x.jsx)(Do,{children:"by"}),Object(x.jsx)(eo,{disabled:r,overlay:p(e.dimension,(t=>s.update(e,{...e,granularity:t.name}))),children:e.dimension.granularities.find((t=>t.name===e.granularity))&&e.dimension.granularities.find((t=>t.name===e.granularity)).title})]},t);var h})),!n.length&&Object(x.jsx)(ao,{"data-testid":"TimeDimension",disabled:r,availableCubes:a,type:"dashed",icon:Object(x.jsx)(ba.a,{}),onClick:e=>s.add({dimension:e,granularity:"day"}),children:o})]})},qo=n(787),Ro=n(771),Mo=n(757);const Io=Object(c.createContext)({});var Lo,_o,Bo=n(260);const{SubMenu:zo}=g.a,Fo=Object(b.d)(g.a)(Lo||(Lo=Object(s.a)(["\n position: relative;\n max-height: 600px;\n overflow-y: scroll;\n\n li {\n font-size: var(--font-size-base);\n }\n\n .ant-menu-sub.ant-menu-inline {\n background: white;\n }\n\n & li > div.ant-menu-submenu-title {\n font-weight: 500;\n color: var(--menu-highlight-color);\n }\n\n & li.ant-menu-item-group {\n & > div {\n text-transform: uppercase;\n font-size: 10px;\n }\n\n & ul > li {\n padding-left: 12px !important;\n }\n }\n\n .ant-menu-item-group-list > li {\n margin: 0 !important;\n\n &::after {\n display: none;\n }\n }\n\n .ant-menu-item-selected,\n .ant-menu-item-active:not(.ant-menu-item-selected) {\n background: var(--primary-9) !important;\n color: var(--primary-color);\n }\n\n .ant-menu-item-selected.ant-menu-item-active {\n background: var(--primary-8) !important;\n }\n\n .ant-menu-submenu-arrow {\n left: 10px;\n right: initial;\n }\n"]))),Qo=b.d.div(_o||(_o=Object(s.a)(["\n position: relative;\n border-right: 1px solid rgba(0, 0, 0, 0.06);\n padding: 16px 12px 10px 12px;\n\n ::after {\n z-index: 1;\n display: block;\n position: absolute;\n content: '';\n width: 100%;\n left: 0;\n bottom: -20px;\n height: 20px;\n background: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 1),\n rgba(255, 255, 255, 0)\n );\n }\n"]))),No=["measures","dimensions","segments","timeDimensions"];function Uo(e){let{memberTypeCubeMap:t,openKeys:n,selectedKeys:r,firstOpenCubeName:a,onSelect:i,onOpenKeysChange:o}=e;const s=xn((()=>nn(t).map((e=>{let{cubeName:t}=e;return t}))),[t]),{keys:l,search:u,inputProps:d}=function(e){const t=Object(c.useRef)(Zi.a.create({encode:"advanced"})).current,[n,r]=Object(c.useState)([]),[a,i]=Object(c.useState)("");return xn((()=>{const n=tn([...e.measures,...e.dimensions,...e.timeDimensions,...e.segments]);return n.forEach((e=>{let[n,{title:r}]=e;return t.add(n,r)})),Object.fromEntries(n)}),[e]),Object(c.useEffect)((()=>{let e=a;return(async()=>{const n=await t.search(a);e===a&&r(n)})(),()=>{e=""}}),[t,a]),{keys:n,search:a,inputProps:{value:a,onChange(e){i(e.target.value)}}}}(t),b=u?function(e,t){return e.map((e=>{const n=No.map((n=>[n,(e[n]||[]).filter((e=>{let{name:n}=e;return t.includes(n)}))]));return!!n.some((e=>{let[,t]=e;return t.length}))&&{...e,...Object.fromEntries(n)}})).filter(Boolean)}(nn(t),l):nn(t);return Object(c.useLayoutEffect)((()=>{a&&setTimeout((()=>{var e,t;null===(e=document.querySelector('[data-menu="cubes"]'))||void 0===e||e.scroll({top:null===(t=document.querySelector('[data-cube="'.concat(a,'"]')))||void 0===t?void 0:t.offsetTop,behavior:"smooth"})}),100)}),[a]),Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(Qo,{children:Object(x.jsx)(U.a,{...d,allowClear:!0,autoFocus:!0,suffix:u?null:Object(x.jsx)(Bo.a,{})})}),Object(x.jsx)(Fo,{"data-menu":"cubes",selectedKeys:r,openKeys:u?s:n,mode:"inline",onClick:e=>{const{membertype:t}=e.domEvent.target.dataset;i(t,e.key.toString().replace("td:",""))},children:b.map((e=>Object(x.jsx)(zo,{"data-cube":e.cubeName,title:e.cubeTitle,onTitleClick:e=>{let{key:t}=e;n.includes(t)?o(n.filter((e=>e!==t))):o([...n,t])},children:No.map((t=>e[t].length?Object(x.jsx)(g.a.ItemGroup,{title:"timeDimensions"===t?"time dimensions":t,children:e[t].map((e=>{const n="timeDimensions"===t?"td:".concat(e.name):e.name;return Object(x.jsxs)(g.a.Item,{"data-membertype":t,children:[Object(x.jsx)(W.a,{style:{visibility:r.includes(n)?"visible":"hidden"}}),e.shortTitle]},n)}))},t):null))},e.cubeName)))})]})}var Ko,Vo=n(412);const Yo=Object(b.d)(Vo.a)(Ko||(Ko=Object(s.a)(["\n background-color: var(--primary-9);\n color: var(--primary-color);\n padding: 6px 10px;\n font-size: var(--font-size-base);\n border: none;\n\n .ant-tag-close-icon {\n color: var(--primary-color);\n padding-left: 6px;\n }\n\n b {\n font-weight: 600;\n }\n"])));function Jo(e){let{name:t,cubeName:n,...r}=e;return Object(x.jsxs)(Yo,{"data-testid":"member-tag-".concat(n,".").concat(t),closable:!0,visible:!0,...r,children:[n," ",Object(x.jsx)("b",{children:t})]})}var Go;const Wo=Object(b.d)(M.a.Paragraph)(Go||(Go=Object(s.a)(["\n font-size: 10px;\n text-transform: uppercase;\n color: rgba(20, 20, 70, 0.5);\n"])));function Ho(e){let{title:t,members:n,onRemove:r}=e;return Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(Wo,{children:t}),Object(x.jsx)(Y.b,{wrap:!0,children:n.map((e=>e?Object(x.jsx)(Jo,{name:e.shortTitle,cubeName:e.title.replace(e.shortTitle,"").trim(),onClose:()=>r(e.name)}):(console.warn("Rollup Designer received 'undefined' member as ".concat(t)),null)))})]})}var Zo=n(786),$o=n(317);const Xo=["Africa/Abidjan","Africa/Accra","Africa/Algiers","Africa/Bissau","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/El_Aaiun","Africa/Johannesburg","Africa/Juba","Africa/Khartoum","Africa/Lagos","Africa/Maputo","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/La_Paz","America/Lima","America/Los_Angeles","America/Maceio","America/Managua","America/Manaus","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Johns","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Helsinki","Europe/Istanbul","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/Saratov","Europe/Simferopol","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zaporozhye","Europe/Zurich","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis","UTC"];var es,ts=n(409);function ns(e,t){var n,r;const a={measures:[],dimensions:[],segments:[],timeDimensions:[]};if(!e)return a;if(e.leafMeasures.length&&(a.measures=[...e.leafMeasures]),e.sortedDimensions.length&&(a.dimensions=[...e.sortedDimensions.filter((e=>!t.has(e)))],a.segments=[...e.sortedDimensions.filter((e=>t.has(e)))]),null===(n=e.sortedTimeDimensions)||void 0===n||null===(r=n[0])||void 0===r?void 0:r[0]){const[t,n]=e.sortedTimeDimensions[0];a.timeDimensions=[{dimension:t,granularity:n||"day"}]}return a}function rs(e){for(const[,t]of Object.entries(e))if(Array.isArray(t)&&t.length>0)return!1;return!0}function as(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"main",n=arguments.length>2?arguments[2]:void 0;const{timeDimensions:r,...a}=e,i={...Object.entries(a).reduce(((e,t)=>{let[n,r]=t;return{...e,...Array.isArray(r)&&r.length?{[n]:r}:null}}),{}),...n};if(r.length){const{dimension:t,granularity:n}=e.timeDimensions[0];i.timeDimension=t,n&&(i.granularity="`".concat(n,"`"))}const o=JSON.stringify(i,null,2).replaceAll('"',"");return{code:"".concat(Object(ts.a)(t),": ").concat(o),value:o}}function is(e){var t;return"function"===typeof(null===e||void 0===e||null===(t=e.constructor)||void 0===t?void 0:t.isBuffer)&&e.constructor.isBuffer(e)}function os(e){return e}function ss(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=t.delimiter||".",r=t.maxDepth||100,a=t.transformKey||os,i={};function o(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;Object.keys(e).forEach((function(l){const u=e[l],d=t.safe&&Array.isArray(u),b=Object.prototype.toString.call(u),p=is(u),h="[object Object]"===b||"[object Array]"===b,m=s?s+n+a(l):a(l);if(!d&&!p&&h&&Object.keys(u).length&&(!t.maxDepth||c<r))return o(u,m,c+1);i[m]=u}))}return o(e),i}const cs=b.d.div(es||(es=Object(s.a)(["\n display: flex;\n gap: 32px;\n flex-direction: column;\n padding: 24px;\n"]))),ls=ft.filter((e=>{let{name:t}=e;return!["second","minute"].includes(t||"")})).map((e=>e.name?e:{...e,title:"No partition"}));function us(e){let{members:t,hasTimeDimension:n,onCronExpressionValidityChange:r,onChange:a}=e;const[i]=K.a.useForm(),o={refreshKey:{checked:{every:!0,sql:!1},isCron:!1,sql:"",value:1,granularity:"hour",cron:"",timeZone:void 0},partitionGranularity:"",updateWindow:{value:7,granularity:"day"},incrementalRefresh:!0,buildRange:{since:{option:"relative",fixedDate:void 0,number:1,granularity:"year",time:"ago"},until:{option:"relative",fixedDate:void 0,number:1,granularity:"year",time:"from now"}},automatedRefresh:!0},s=Object(c.useMemo)((()=>{const e=ss(o);return a(e),e}),[]),[l,u]=Object(c.useState)(s),[d,b]=Object(c.useState)(!1);return Object(c.useEffect)((()=>{a({...l,"refreshKey.isCron":d}),d||Object($o.isValidCron)(l["refreshKey.cron"])||i.setFields([{name:"refreshKey.cron",value:"",errors:[]}])}),[d]),Object(x.jsx)(K.a,{form:i,validateTrigger:"onBlur",initialValues:ss(o),onValuesChange:e=>{u((t=>(a({...t,...e,"refreshKey.isCron":d}),Object.keys(e).forEach((e=>{i.getFieldError(e).length&&i.setFields([{name:e,errors:[]}])})),{...t,...e})))},children:Object(x.jsxs)(cs,{children:[Object(x.jsxs)(R.a,{children:[Object(x.jsx)(bs,{title:"Refresh Key",children:"Specify how often to refresh your pre-aggregated data"}),Object(x.jsx)(M.a.Paragraph,{children:"If you do not specify any Refresh Key, refreshes will still default to every 1 hour."}),Object(x.jsxs)(da.a,{gutter:8,wrap:!1,align:"top",children:[Object(x.jsx)(ua.a,{flex:"85px",children:Object(x.jsx)(K.a.Item,{name:"refreshKey.checked.every",valuePropName:"checked",children:Object(x.jsx)(Ki.a,{children:"Every"})})}),Object(x.jsx)(ua.a,{flex:"auto",children:Object(x.jsxs)(L,{direction:"column",gap:2,children:[Object(x.jsxs)(Y.b,{children:[Object(x.jsx)(Yi.a,{checked:!d,disabled:!l["refreshKey.checked.every"],onClick:()=>b(!1)}),Object(x.jsx)(K.a.Item,{name:"refreshKey.value",noStyle:!0,children:Object(x.jsx)(U.a,{"data-testid":"rd-input-every",disabled:!l["refreshKey.checked.every"]||d,type:"number",min:0,style:{maxWidth:80}})}),Object(x.jsx)(K.a.Item,{name:"refreshKey.granularity",noStyle:!0,children:Object(x.jsx)(ds,{"data-testid":"rd-select-every-granularity",disabled:!l["refreshKey.checked.every"]||d})})]}),Object(x.jsxs)(Y.b,{align:"start",style:{marginBottom:32},children:[Object(x.jsx)(Yi.a,{disabled:!l["refreshKey.checked.every"],checked:d,style:{paddingTop:5},onClick:()=>b(!0)}),Object(x.jsxs)(L,{direction:"column",gap:1,children:[Object(x.jsx)(K.a.Item,{name:"refreshKey.cron",rules:[{validator:(e,t,n)=>{t&&!Object($o.isValidCron)(t,{seconds:!0})?(r(!1),n("Cron expression is invalid")):r(!0)}}],children:Object(x.jsx)(U.a,{allowClear:!0,placeholder:"Cron expression e.g. 30 5 * * 5",disabled:!l["refreshKey.checked.every"]||!d})}),d&&l["refreshKey.checked.every"]?Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(M.a.Paragraph,{children:Object(x.jsx)(M.a.Link,{target:"_blank",href:"https://cube.dev/docs/schema/reference/cube#supported-cron-formats",children:"See how to format your cron expression"})}),Object(x.jsx)(M.a.Paragraph,{strong:!0,children:"Time Zone"}),Object(x.jsx)(K.a.Item,{name:"refreshKey.timeZone",noStyle:!0,children:Object(x.jsx)(Kr.a,{showSearch:!0,style:{maxWidth:200},placeholder:"Select Time Zone",children:Xo.map((e=>Object(x.jsx)(Kr.a.Option,{value:e||"",children:e},e)))})})]}):null]})]})]})})]}),Object(x.jsxs)(da.a,{gutter:8,children:[Object(x.jsx)(ua.a,{flex:"85px",children:Object(x.jsx)(K.a.Item,{name:"refreshKey.checked.sql",valuePropName:"checked",noStyle:!0,children:Object(x.jsx)(Ki.a,{children:"SQL"})})}),Object(x.jsx)(ua.a,{flex:"auto",children:Object(x.jsx)(K.a.Item,{name:"refreshKey.sql",noStyle:!0,children:Object(x.jsx)(U.a.TextArea,{disabled:!l["refreshKey.checked.sql"],placeholder:"SELECT MAX(createdAt) FROM orders"})})})]})]}),Object(x.jsxs)(R.a,{children:[n?Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(bs,{title:"Partition Granularity",children:"Partitions are shards of the pre-aggregation dataset. To enable partitions, you must specify here the desired granularity."}),Object(x.jsx)(K.a.Item,{name:"partitionGranularity",children:Object(x.jsx)(Kr.a,{showSearch:!0,style:{maxWidth:150},children:ls.map((e=>{let{name:t,title:n}=e;return Object(x.jsx)(Kr.a.Option,{value:t||"",children:n},t)}))})}),l.partitionGranularity?Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(K.a.Item,{name:"incrementalRefresh",valuePropName:"checked",children:Object(x.jsx)(Ki.a,{children:"Incremental Refresh"})}),l.incrementalRefresh&&Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(bs,{title:"Update Window",children:"Any partition which includes this span of time into the past from now will be refreshed according to the Refresh Key set above. Otherwise, if left unset, only the most recent partition will be refreshed regularly."}),Object(x.jsxs)(Y.b,{align:"start",children:[Object(x.jsx)(K.a.Item,{name:"updateWindow.value",children:Object(x.jsx)(U.a,{type:"number",min:0,style:{maxWidth:80}})}),Object(x.jsx)(K.a.Item,{name:"updateWindow.granularity",children:Object(x.jsx)(ds,{excludedGranularities:["second"]})})]})]})]}):null]}):null,Object(x.jsx)(M.a.Paragraph,{strong:!0,children:"Indexes"}),Object(x.jsx)(K.a.Item,{name:"indexes",noStyle:!0,children:Object(x.jsx)(Kr.a,{mode:"tags",style:{width:"100%"},placeholder:"(list column names)",children:t.map((e=>Object(x.jsx)(Kr.a.Option,{value:e,children:e},e)))})})]})]})})}function ds(e){let{excludedGranularities:t=[],...n}=e;return Object(x.jsx)(Kr.a,{style:{minWidth:100},showSearch:!0,...n,children:ft.filter((e=>{let{name:n}=e;return null!=n&&!t.includes(n)})).map((e=>{let{name:t,title:n}=e;return Object(x.jsx)(Kr.a.Option,{value:t,children:n},t)}))})}function bs(e){let{title:t,children:n}=e;return Object(x.jsxs)(Y.b,{align:"baseline",style:{display:"flex"},children:[Object(x.jsx)(M.a.Paragraph,{strong:!0,children:t}),Object(x.jsx)(bo.a,{title:n,children:Object(x.jsx)(Zo.a,{style:{color:"#1414464D"}})})]})}function ps(e){let{member:t,granularity:n="day",onGranularityChange:r,onRemove:a}=e;return t?Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(Wo,{children:"Time dimension"}),Object(x.jsxs)(Y.b,{children:[Object(x.jsx)(Jo,{name:t.shortTitle,cubeName:t.title.replace(t.shortTitle,""),onClose:()=>a(t.name)}),Object(x.jsx)(ds,{value:n,onChange:r})]})]}):(console.warn("Rollup Designer received `undefined` member as TimeDimension"),null)}var hs=n(770);const{Link:ms}=M.a;function js(e){let{onAfterClose:t,...n}=e;const{isModalOpen:r,toggleModal:a,memberTypeCubeMap:i}=ys();return Object(x.jsx)(V.a,{title:"Rollup Designer",visible:r,bodyStyle:{padding:0},destroyOnClose:!0,wrapClassName:"rollup-designer",footer:Object(x.jsx)(ms,{href:"https://cube.dev/docs/caching/pre-aggregations/getting-started",target:"_blank",children:Object(x.jsxs)(L,{justifyContent:"center",gap:1,children:[Object(x.jsx)(B,{children:Object(x.jsx)(xo.a,{})}),Object(x.jsx)(B,{children:"Further reading about pre-aggregations for reference."}),Object(x.jsx)(B,{children:Object(x.jsx)(hs.a,{})})]})}),width:1190,afterClose:t,onCancel:()=>a(),children:Object(x.jsx)("div",{"data-testid":"rd-modal",children:Object(x.jsx)(Es,{apiUrl:n.apiUrl,memberTypeCubeMap:i})})})}const fs=Object(c.createContext)({});function gs(e){let{cubejsApi:t,children:n,...r}=e;const[a,i]=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const[t,n]=Object(c.useState)(e);return[t,()=>n((e=>!e))]}(),[o,s]=Object(c.useState)(null),[l,u]=Object(c.useState)(null),[d,b]=Object(c.useState)(null),[p,h]=Object(c.useState)({measures:[],dimensions:[],segments:[],timeDimensions:[]}),m=function(){return Ya("meta",arguments.length>0&&void 0!==arguments[0]?arguments[0]:{})}({skip:!a,cubejsApi:t}),j=function(e){return Ya("dryRun",Ga(Ga({},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),{},{query:e}))}(l,{skip:!a||!l,cubejsApi:t});return Object(c.useEffect)((()=>{const{isLoading:e,error:t,response:n}=m;e||(n?h(n.membersGroupedByCube()):t&&s(t))}),[m.isLoading]),Object(c.useEffect)((()=>{const{isLoading:e,error:t,response:n}=j;e||(n?b(n.transformedQueries[0]):t&&s(t))}),[j.isLoading]),Object(x.jsxs)(fs.Provider,{value:{isLoading:m.isLoading||j.isLoading,isModalOpen:a,toggleModal:i,query:l,setQuery:u,transformedQuery:d,setTransformedQuery:b,memberTypeCubeMap:p,error:o},children:[n,Object(x.jsx)(js,{apiUrl:r.apiUrl,onAfterClose:function(){b(null),s(null)}})]})}function ys(){return Object(c.useContext)(fs)}var vs,xs;const{Paragraph:Os,Link:ks,Text:ws}=M.a,{TabPane:Cs}=N.a,Ss=Object(b.d)(B)(vs||(vs=Object(s.a)(["\n & .ant-tabs-nav {\n padding-left: 24px;\n margin: 0;\n }\n"]))),As=b.d.div(xs||(xs=Object(s.a)(["\n padding: 0 24px 32px;\n background: #f6f6f8;\n width: 420px;\n min-width: 420px;\n\n & .ant-tabs-nav {\n margin-bottom: 24px;\n }\n\n & .ant-tabs-tab {\n div,\n .ant-typography {\n font-weight: 500;\n }\n }\n\n & .ant-typography > .anticon {\n padding-left: 12px;\n }\n"])));function Ds(e){const t=new Set;return["measures","dimensions","timeDimensions","segments"].map((n=>{if("timeDimensions"===n){var r;const{dimension:a}=(null===(r=e[n])||void 0===r?void 0:r[0])||{};a&&t.add("td:".concat(a))}else{var a;null===(a=e[n])||void 0===a||a.map((e=>t.add(e)))}})),Array.from(t.values())}function Es(e){var t,n;let{apiUrl:r,memberTypeCubeMap:a}=e;const i=gn(),o=function(){const{token:e}=hn();return e}(),{isCloud:s,...l}=Object(c.useContext)(Io),{query:u,transformedQuery:b,isLoading:p,error:h}=ys(),[m,j]=Object(c.useState)(!0),[f,g]=Object(c.useState)({}),[y,v]=Object(c.useState)([]),[O,k]=Object(c.useState)(null),[w,C]=(Boolean(null===b||void 0===b?void 0:b.leafMeasureAdditive),Object(c.useState)(!0)),[S,A]=Object(c.useState)(!1),[D,E]=Object(c.useState)("main"),{order:T,limit:P,filters:q,...R}=u||{},[_]=R.timeDimensions||[],z=(null===_||void 0===_?void 0:_.dimension)&&!(null===_||void 0===_?void 0:_.dateRange)&&!(null===_||void 0===_?void 0:_.granularity),F=new Set;a.segments.forEach((e=>{let{members:t}=e;t.forEach((e=>{let{name:t}=e;return F.add(t)}))}));const[Q,K]=Object(c.useState)(ns(b,F));vn((()=>{const e=ns(b,F);K(e);const t=Ds(e).map((e=>e.split(".")[0]));v(t),k(t[0]||null)}),[b,F]);const V=xn((()=>Ds(Q)),[Q]);vn((()=>{let e=!0;const{measures:t,segments:n,dimensions:a,timeDimensions:s}=Q;return null!=o&&b&&async function(){const{json:c}=await an("".concat(r,"/pre-aggregations/can-use"),"POST",{token:o,body:{transformedQuery:b,references:{measures:t,dimensions:a.concat(n),timeDimensions:s}}});i()&&e&&C(c.canUsePreAggregationForTransformedQuery)}(),()=>e=!1}),[i,Q,o,b]);const G=Object(c.useMemo)((()=>{let e=null;if(b)e=((null===b||void 0===b?void 0:b.leafMeasures[0])||(null===b||void 0===b?void 0:b.sortedDimensions[0])||"CubeName").split(".")[0];else if(!rs(Q)){const[t]=Ds(Q);e=t.split(".")[0]||null}return e}),[b,Q]),W=Object.fromEntries(tn([...a.measures,...a.dimensions,...a.timeDimensions,...a.segments]));async function $(){if(!G)return;const e={preAggregationName:D,cubeName:G,code:as(Q,D,f).value};function t(){H.a.success({message:"Rollup has been added to the ".concat(G," cube")})}if(A(!0),s){if(null==l.addPreAggregationToSchema)throw new Error("cloud.addPreAggregationToSchema is not defined");const{error:n}=await l.addPreAggregationToSchema(e);n?H.a.error({message:n}):t()}else{const n=await an("/playground/schema/pre-aggregation","POST",{body:e});if(n.ok)t();else{const{error:e}=n.json;H.a.error({message:e})}}A(!1)}function X(e){return t=>{K(function(e,t,n){const r=JSON.parse(JSON.stringify(e));var a,i,o,s;return"timeDimensions"===t?(null===(a=r.timeDimensions)||void 0===a||null===(i=a[0])||void 0===i?void 0:i.dimension)===n?r.timeDimensions=[]:r.timeDimensions=[{granularity:"day",...null===(o=r.timeDimensions)||void 0===o?void 0:o[0],dimension:n}]:(null===(s=r[t])||void 0===s?void 0:s.includes(n))?r[t]=r[t].filter((e=>n!==e)):r[t]=[...r[t]||[],n],r}(Q,e,t))}}return p?Object(x.jsxs)(L,{gap:4,style:{margin:24},children:[Object(x.jsx)(B,{style:{minWidth:256},children:Object(x.jsx)(Mo.a,{})}),Object(x.jsxs)(B,{grow:1,children:[Object(x.jsx)(Mo.a,{}),Object(x.jsx)(Mo.a,{})]}),Object(x.jsx)(B,{style:{width:420,minWidth:420},children:Object(x.jsx)(Mo.a,{})})]}):h?Object(x.jsx)("div",{style:{margin:"32px 24px"},children:Object(x.jsx)(er,{error:h})}):Object(x.jsxs)(L,{justifyContent:"space-between",margin:[0,0,2,0],children:[Object(x.jsx)(Ss,{grow:1,children:Object(x.jsxs)(N.a,{style:{minHeight:"100%"},children:[Object(x.jsx)(Cs,{tab:Object(x.jsx)("span",{"data-testid":"rd-members-tab",children:"Members"}),children:Object(x.jsxs)(L,{gap:2,children:[Object(x.jsx)(B,{style:{minWidth:256},children:Object(x.jsx)(Uo,{openKeys:y,selectedKeys:V,memberTypeCubeMap:a,firstOpenCubeName:O,onSelect:(e,t)=>{X(e)(t)},onOpenKeysChange:v})}),Object(x.jsxs)(B,{grow:1,style:{marginTop:24},children:[(null===(t=Q.measures)||void 0===t?void 0:t.length)?Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(Ho,{title:"Measures",members:Q.measures.map((e=>W[e])),onRemove:X("measures")}),Object(x.jsx)(Ii.a,{})]}):null,(null===(n=Q.dimensions)||void 0===n?void 0:n.length)?Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(Ho,{title:"Dimensions",members:Q.dimensions.map((e=>W[e])),onRemove:X("dimensions")}),Object(x.jsx)(Ii.a,{})]}):null,Q.segments.length?Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(Ho,{title:"Segments",members:Q.segments.map((e=>W[e])),onRemove:X("segments")}),Object(x.jsx)(Ii.a,{})]}):null,Q.timeDimensions.length?Object(x.jsx)(ps,{member:W[Q.timeDimensions[0].dimension],granularity:Q.timeDimensions[0].granularity,onGranularityChange:e=>{K({...Q,timeDimensions:[{...Q.timeDimensions[0]||{},...e?{granularity:e}:null}]})},onRemove:X("timeDimensions")}):null]})]})},"members"),Object(x.jsx)(Cs,{tab:Object(x.jsx)("span",{"data-testid":"rd-settings-tab",children:"Settings"}),children:Object(x.jsx)(us,{hasTimeDimension:Q.timeDimensions.length>0,members:Q.measures.concat(Q.dimensions).concat(Q.timeDimensions.map((e=>e.dimension))),onCronExpressionValidityChange:j,onChange:e=>g(function(e){const t={};if(e["refreshKey.checked.every"]&&(e["refreshKey.isCron"]&&(e["refreshKey.cron"]||e["refreshKey.timeZone"])?(t.refreshKey={},e["refreshKey.cron"]&&(t.refreshKey.every="`".concat(e["refreshKey.cron"],"`")),e["refreshKey.timeZone"]&&(t.refreshKey.timezone="`".concat(e["refreshKey.timeZone"],"`"))):t.refreshKey={every:"`".concat(e["refreshKey.value"]," ").concat(e["refreshKey.granularity"],"`")}),e["refreshKey.checked.sql"]&&e["refreshKey.sql"]&&(t.refreshKey={...t.refreshKey,sql:"`".concat(e["refreshKey.sql"],"`")}),e.partitionGranularity){if(t.partitionGranularity="`".concat(e.partitionGranularity,"`"),e["updateWindow.value"]){const n=[e["updateWindow.value"],e["updateWindow.granularity"]].join(" ");t.refreshKey={...t.refreshKey,updateWindow:"`".concat(n,"`")}}t.refreshKey={...t.refreshKey,incremental:Boolean(e.incrementalRefresh)}}return Array.isArray(e.indexes)&&e.indexes.length>0&&(t.indexes={indexName:{columns:e.indexes}}),t}(e))})},"settings")]})}),Object(x.jsx)(As,{children:Object(x.jsxs)(N.a,{children:[Object(x.jsx)(Cs,{tab:Object(x.jsx)("span",{"data-testid":"rd-definition-tab",children:"Rollup Definition"}),children:Object(x.jsxs)(L,{direction:"column",justifyContent:"flex-start",children:[!rs(Q)&&!Q.timeDimensions.length&&Object(x.jsx)(B,{style:{marginBottom:24},children:Object(x.jsx)(d.a,{type:"warning",message:"This rollup has no time dimension so it cannot be partitioned"})}),Object(x.jsxs)(B,{style:{marginBottom:16},children:[rs(Q)?Object(x.jsx)(d.a,{type:"warning",message:"Add some references"}):Object(x.jsxs)(Os,{children:["Add the following rollup pre-aggregation",Object(x.jsx)("br",{})," to the ",Object(x.jsx)("b",{children:G})," cube:"]}),Object(x.jsx)(Os,{style:{margin:"24px 0 4px"},children:"Rollup Name"}),Object(x.jsx)(U.a,{value:D,suffix:Object(x.jsx)(J.a,{}),onChange:e=>E(e.target.value)})]}),Object(x.jsx)(B,{children:Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(jr,{style:{marginBottom:16},code:as(Q,D,f).code,copyMessage:"Rollup definition is copied",theme:"light"}),G?Object(x.jsx)(I.a,{"data-testid":"rd-add-btn",type:"primary",loading:S,disabled:!m,style:{width:"100%"},onClick:$,children:"Add to the Data Schema"}):null]})})]})},"rollup"),vt(u)?Object(x.jsx)(Cs,{tab:w?Object(x.jsx)("span",{"data-testid":"rd-query-tab",children:"Query Compatibility"}):Object(x.jsxs)(M.a.Text,{"data-testid":"rd-query-tab",children:["Query Compatibility",Object(x.jsx)(Ro.a,{style:{color:"#FBBC05"}})]}),children:Object(x.jsxs)(L,{direction:"column",justifyContent:"flex-start",children:[Object(x.jsx)(B,{style:{marginBottom:32},children:w?Object(x.jsx)(ws,{children:"This rollup will match the following query:"}):Object(x.jsxs)(Y.b,{direction:"vertical",children:[Object(x.jsx)(d.a,{"data-testid":"rd-incompatible-query",type:"warning",message:Object(x.jsxs)(ws,{children:["This rollup does ",Object(x.jsx)("b",{children:"NOT"})," match the following query:"]})}),!z&&Object(x.jsx)(I.a,{"data-testid":"rd-match-rollup-btn",type:"primary",ghost:!0,onClick:()=>{K(ns(b,F)),C(!0)},children:"Match Rollup"})]})}),Object(x.jsx)(jr,{style:{minWidth:200},code:(ee=R,Object(Z.pretty)(ee,2).replaceAll(/([^\\]|)'/g,"\\'").replaceAll(/"/g,"'").replaceAll(/\[[\s]+\]/g,"[]")),copyMessage:"Query is copied",theme:"light"})]})},"query"):null]})})]});var ee}var Ts;const Ps=b.d.div(Ts||(Ts=Object(s.a)(["\n display: flex;\n align-items: center;\n padding: 2px 4px;\n border-radius: 4px;\n background: var(--warning-bg-color);\n"])));function qs(e){let{isAggregated:t,external:n,extDbType:r,preAggregationType:a}=e;const i=function(e){const{serverCoreVersion:t="",coreServerVersion:n=""}=mn();let r=!1;try{const[,a,i]=(t||n).split(".").map(Number),[,o,s]=e.split(".").map(Number);r=a>o||a===o&&i>=s}catch(a){}return r}("0.28.4"),{toggleModal:o}=ys();return Object(x.jsx)(x.Fragment,{children:Object(x.jsxs)(Y.b,{style:{marginLeft:"auto"},children:[t&&Object(x.jsx)(Ps,{children:Object(x.jsx)(Y.b,{size:4,children:Object(x.jsx)(h.a,{style:{color:"var(--warning-color)"},component:()=>Object(x.jsx)(qo.a,{})})})}),t?Object(x.jsx)(M.a.Text,{children:"Query was accelerated with pre-aggregation"}):i?Object(x.jsxs)(I.a,{"data-testid":"not-pre-agg-query-btn",type:"link",onClick:()=>o(),children:["Query was not accelerated with pre-aggregation ","->"]}):null,t&&n&&"cubestore"!==r?Object(x.jsx)(d.a,{message:"Consider migrating your pre-aggregations to Cube Store for better performance with larger datasets",type:"warning"}):null,t&&!n&&"originalSql"!==a?Object(x.jsx)(d.a,{message:Object(x.jsxs)(x.Fragment,{children:["For optimized performance, consider using ",Object(x.jsx)("b",{children:"external"})," ",a," pre-aggregation, rather than the source database (internal)"]}),type:"warning"}):null]})})}var Rs,Ms;const Is=b.d.div(Rs||(Rs=Object(s.a)(["\n display: flex;\n flex-flow: column;\n margin-right: 24px;\n margin-bottom: 16px;\n\n > *:first-child {\n margin-bottom: 8px;\n }\n"]))),Ls=b.d.div(Ms||(Ms=Object(s.a)(["\n background-color: var(--layout-body-background);\n padding-bottom: 16px;\n"]))),_s={react:[{value:"chartjs",title:"Chart.js"},{value:"bizcharts",title:"Bizcharts"},{value:"recharts",title:"Recharts"},{value:"d3",title:"D3"}],angular:[{value:"angular-ng2-charts",title:"ng2"}],vue:[{value:"chartkick",title:"Chartkick"}]},Bs=(e,t)=>Object.keys(e).map((n=>({[n]:function(r,a){let i="".concat(n.split("").map(((e,t)=>0===t?e.toUpperCase():e)).join("")," Member");(null===a||void 0===a?void 0:a.values)&&(i="Update Filter Values"),(null===a||void 0===a?void 0:a.dateRange)&&(i="Update Date Range"),(null===a||void 0===a?void 0:a.granularity)&&(i="Update Granularity"),Sr(i,{memberName:t});for(var o=arguments.length,s=new Array(o>2?o-2:0),c=2;c<o;c++)s[c-2]=arguments[c];return e[n].apply(null,[r,a,...s])}}))).reduce(((e,t)=>({...e,...t})),{});function zs(e){let{iframeRef:t,pivotConfig:n,chartType:r}=e;return vn((()=>{(null===t||void 0===t?void 0:t.current)&&["table","bar"].includes(r)&&ee(t.current.contentDocument,"chart",{pivotConfig:n})}),[t,n]),null}function Fs(e){let{query1:t,query2:n,onChange:r}=e;return vn((()=>{gt(t,n)||r()}),[t,n]),null}function Qs(e){let{apiUrl:t,cubejsToken:n,defaultQuery:r,queryId:a,dashboardSource:i,schemaVersion:o=0,initialVizState:s,extra:l,onSchemaChange:u,onVizStateChanged:d}=e;const b=gn(),{isChartRendererReady:p,queryStatus:h,queryError:m,queryRequestId:j}=xi(a),{setQueryStatus:f,setQueryLoading:g,setChartRendererReady:y,setQueryError:v}=Oi(),{refreshToken:O}=pe(),k=Object(c.useRef)(null),w=Object(c.useRef)(null),[C,S]=Object(c.useState)(!1),[A,D]=Object(c.useState)("react"),[E,T]=Object(c.useState)("chartjs");return Object(c.useEffect)((()=>{(async()=>{await O(),b()&&S(!0)})()}),[b]),Object(c.useEffect)((()=>{p&&k.current&&ee(k.current.contentDocument,"credentials",{token:n,apiUrl:t})}),[k,n,t,p]),C?Object(x.jsx)(Fa,{defaultQuery:r,initialVizState:s,wrapWithQueryRenderer:!1,schemaVersion:o,onSchemaChange:u,onVizStateChanged:d,render:e=>{var r,o;let s,{query:c,error:u,metaError:d,isQueryPresent:b,chartType:C,updateChartType:S,measures:P,updateMeasures:q,dimensions:R,updateDimensions:M,segments:I,updateSegments:L,filters:_,updateFilters:B,timeDimensions:z,updateTimeDimensions:F,orderMembers:Q,updateOrder:N,pivotConfig:U,updatePivotConfig:K,missingMembers:V,isFetchingMeta:J,dryRunResponse:G,availableMembers:W,availableFilterMembers:H}=e;if(G){var Z;const{timeDimensions:e=[]}=G.pivotQuery||{};s=null===(Z=e[0])||void 0===Z?void 0:Z.dateRange}else Array.isArray(null===(r=c.timeDimensions)||void 0===r||null===(o=r[0])||void 0===o?void 0:o.dateRange)&&(s=c.timeDimensions[0].dateRange);return Object(x.jsxs)(Ls,{"data-testid":"query-builder-".concat(a),children:[Object(x.jsx)(da.a,{justify:"space-around",align:"top",gutter:24,style:{marginBottom:12},children:Object(x.jsxs)(ua.a,{span:24,children:[Object(x.jsx)(ir,{bordered:!1,style:{borderRadius:0},children:Object(x.jsxs)(da.a,{align:"top",gutter:0,style:{marginBottom:-12},children:[Object(x.jsxs)(Is,{children:[Object(x.jsx)(Qr,{children:"Measures"}),Object(x.jsx)(mo,{disabled:J,members:P,availableMembers:(null===W||void 0===W?void 0:W.measures)||[],missingMembers:V,addMemberName:"Measure",updateMethods:Bs(q,"Measure")})]}),Object(x.jsxs)(Is,{children:[Object(x.jsx)(Qr,{children:"Dimensions"}),Object(x.jsx)(mo,{disabled:J,members:R,availableMembers:(null===W||void 0===W?void 0:W.dimensions)||[],missingMembers:V,addMemberName:"Dimension",updateMethods:Bs(M,"Dimension")})]}),Object(x.jsxs)(Is,{children:[Object(x.jsx)(Qr,{children:"Segment"}),Object(x.jsx)(mo,{disabled:J,members:I,availableMembers:(null===W||void 0===W?void 0:W.segments)||[],missingMembers:V,addMemberName:"Segment",updateMethods:Bs(L,"Segment")})]}),Object(x.jsxs)(Is,{children:[Object(x.jsx)(Qr,{children:"Time"}),Object(x.jsx)(Po,{disabled:J,members:z,availableMembers:(null===W||void 0===W?void 0:W.timeDimensions)||[],missingMembers:V,addMemberName:"Time",updateMethods:Bs(F,"Time"),parsedDateRange:s})]}),Object(x.jsxs)(Is,{children:[Object(x.jsx)(Qr,{children:"Filters"}),Object(x.jsx)(ho,{disabled:J,members:_,availableMembers:H,missingMembers:V,addMemberName:"Filter",updateMethods:Bs(B,"Filter")})]})]})}),Object(x.jsxs)(Ur,{style:{margin:16,marginBottom:0},children:[Object(x.jsx)(wo,{chartType:C||"line",updateChartType:e=>{Sr("Change Chart Type"),S(e),k.current&&ee(k.current.contentDocument,"chart",{chartType:e,chartingLibrary:E})}}),Object(x.jsx)(Wi,{isQueryPresent:b,limit:c.limit||5e3,pivotConfig:U,disabled:J,orderMembers:Q,onReorder:N.reorder,onOrderChange:N.set,onMove:K.moveItem,onUpdate:K.update}),Object(x.jsxs)(Y.b,{style:{marginLeft:"auto"},children:[l?Object(x.jsx)(l,{queryRequestId:j,queryStatus:h}):null,h?Object(x.jsx)(qs,{apiUrl:t,availableMembers:W,query:c,...h}):null]})]})]})}),Object(x.jsx)(da.a,{justify:"space-around",align:"top",gutter:32,style:{margin:0},children:Object(x.jsxs)(ua.a,{span:24,children:[!b&&d?Object(x.jsx)(ir,{children:Object(x.jsx)(er,{error:d})}):null,!b&&!d&&Object(x.jsx)("h2",{style:{textAlign:"center"},children:"Choose a measure or dimension to get started"}),b&&Object(x.jsx)(ci,{apiUrl:t,cubejsToken:n,iframeRef:k,isChartRendererReady:p,query:c,error:u,chartType:C||"line",pivotConfig:U,framework:A,chartingLibrary:E,dashboardSource:i,setFramework:e=>{e!==A&&(g(a,!1),D(e))},setChartLibrary:e=>{k.current&&ee(k.current.contentDocument,"chart",{chartingLibrary:e}),T(e)},chartLibraries:_s,isFetchingMeta:J,render:e=>{let{framework:t}=e;return d?Object(x.jsx)(er,{error:d}):Object(x.jsx)(Mi,{queryId:a,areQueriesEqual:gt(c,w.current),isFetchingMeta:J,queryError:m,framework:t,chartType:C||"line",query:c,pivotConfig:U,iframeRef:k,queryHasMissingMembers:V.length>0,onRunButtonClick:async()=>{p&&k.current&&0===V.length&&(await O(),function(e){let{query:t,pivotConfig:n,chartType:r}=e;k.current&&(gt(t,w.current)?(ee(k.current.contentDocument,"chart",{pivotConfig:n,query:t,chartType:r,chartingLibrary:E}),ee(k.current.contentDocument,"refetch")):ee(k.current.contentDocument,"chart",{pivotConfig:n,query:t,chartType:r,chartingLibrary:E})),v(a,null),w.current=t}({query:c,pivotConfig:U,chartType:C||"line"}))}})},onChartRendererReadyChange:e=>y(a,e)})]})}),Object(x.jsx)(zs,{iframeRef:k,chartType:C||"line",pivotConfig:U}),Object(x.jsx)(Fs,{query1:c,query2:w.current,onChange:()=>{g(a,!1),f(a,null)}})]})}}):null}var Ns,Us,Ks;const Vs=e=>{let{children:t}=e;return Object(x.jsx)("div",{style:{margin:25},children:t})},Ys=b.d.div(Ns||(Ns=Object(s.a)(["\n position: relative;\n width: 100%;\n height: 100%;\n margin: auto;\n max-width: 1024px;\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n background-image: ",";\n"])),(e=>'url("'.concat(e.src,'")'))),Js=Object(b.d)(ir)(Us||(Us=Object(s.a)(["\n && {\n border: none;\n border-radius: 8px;\n margin-bottom: 24px;\n padding: 16px;\n ","\n\n &:hover {\n padding: 16px;\n ","\n }\n\n button {\n display: none;\n position: absolute;\n margin-left: -64px;\n top: 80px;\n left: 50%;\n }\n\n svg path {\n transition: stroke 0.25s ease;\n }\n\n && .ant-card-cover {\n height: 168px;\n border-radius: 8px 8px 0 0;\n background: ",";\n display: flex;\n align-items: center;\n position: relative;\n margin: -16px -16px 0 -16px;\n padding: 24px 24px 0 24px;\n\n &::after {\n content: '';\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background: rgba(81, 87, 125, 0.3);\n opacity: 0;\n transition: all 0.25s;\n border-radius: 8px 8px 0 0;\n }\n\n div {\n //box-shadow: 0 -1px 6px rgba(20, 20, 70, .06);\n background-position: top;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &&.ant-card-hoverable:hover {\n box-shadow: 0 15px 20px rgba(67, 67, 107, 0.1);\n button {\n display: block;\n }\n &:hover .ant-card-cover:after {\n opacity: ",";\n }\n }\n\n svg path {\n stroke: var(--primary-color);\n }\n\n && .ant-card-body {\n min-height: 175px;\n display: flex;\n place-items: stretch;\n place-content: start stretch;\n text-align: left;\n z-index: 1;\n padding: 24px 0 16px;\n }\n\n && .ant-card-meta {\n text-align: left;\n }\n\n && .ant-card-meta-title {\n white-space: unset;\n color: ",";\n text-align: ",";\n margin-bottom: 16px;\n }\n\n && .ant-card-meta-description {\n color: ",";\n opacity: ",";\n font-size: 13px;\n text-align: ",";\n ","\n }\n }\n"])),(e=>e.createYourOwn?"\n background: transparent;\n border: 1px solid var(--purple-03-color);\n ":""),(e=>e.createYourOwn?"\n border: 1px solid var(--purple-03-color);\n ":"border: none;"),(e=>e.createYourOwn?"transparent":"#DEDEF1"),(e=>e.createYourOwn?"0":"1"),(e=>e.createYourOwn?"var(--primary-color)":"var(--text-color)"),(e=>e.createYourOwn?"center":"left"),(e=>e.createYourOwn?"var(--primary-color)":"var(--dark-04-color)"),(e=>e.createYourOwn?"0.8":1),(e=>e.createYourOwn?"center":"left"),(e=>e.createYourOwn?"padding: 0 32px;":"")),Gs=Object(b.d)(M.a.Text)(Ks||(Ks=Object(s.a)(["\n display: block;\n font-size: 16px;\n margin-bottom: 24px;\n"])));class Ws extends c.Component{constructor(e){super(e),this.dashboardSource=new Rr,this.state={chartLibrary:_s.react[0].value,framework:"react",templatePackageName:"react-antd-dynamic",templates:null}}async componentDidMount(){await this.dashboardSource.load(!0),this.setState({loadError:this.dashboardSource.loadError,templates:await this.dashboardSource.templates()})}render(){var e,t;const{loadError:n,templates:r}=this.state;if(n&&-1===n.indexOf("Dashboard app not found"))return Object(x.jsx)(i.a,{to:"/dashboard"});if(null==r)return Object(x.jsx)(Wn,{});const{chartLibrary:a,framework:o,templatePackageName:s,createOwnModalVisible:c,enableWebSocketTransport:l}=this.state,{history:u}=this.props,d=_s[o].find((e=>e.value===a)),b=ni.find((e=>e.id===o)),p=null===(e=this.dashboardSource)||void 0===e?void 0:e.templatePackages(o).find((e=>e.name===s)),h=r.map((e=>{let{name:t,description:n,coverUrl:r}=e;return Object(x.jsx)(ua.a,{xs:{span:24},md:{span:12},lg:{span:8},xl:{span:6},style:{display:"flex"},children:Object(x.jsxs)(Js,{hoverable:!0,bordered:!1,cover:Object(x.jsx)(Ys,{src:r}),children:[Object(x.jsx)(ir.Meta,{title:t,description:n}),Object(x.jsx)(rr,{type:"primary",onClick:async()=>{await this.dashboardSource.applyTemplatePackages(t),u.push("/dashboard")},children:"Create App"})]})},t)})).concat([Object(x.jsxs)(ua.a,{xs:{span:24},md:{span:12},lg:{span:8},xl:{span:6},style:{display:"flex"},children:[Object(x.jsx)(Js,{onClick:()=>this.setState({createOwnModalVisible:!0}),hoverable:!0,createYourOwn:!0,bordered:!1,cover:Object(x.jsx)(ba.a,{style:{fontSize:60}}),children:Object(x.jsx)(ir.Meta,{title:"Create your Own",description:"Mix different templates together to create your own dashboard application"})}),Object(x.jsx)(ji,{visible:c,onOk:async()=>{let e=[];this.setState({createOwnModalVisible:!1}),e="react"===o.toLowerCase()?["create-react-app",s,"".concat(a,"-charts"),"".concat(s.match(/^react-(\w+)/)[1],"-tables"),"react-credentials"].concat(l?["react-web-socket-transport"]:[]):"angular"===o.toLowerCase()?["create-ng-app",s,"ng2-charts","ng-credentials"]:["create-vue-app",s,"vue-chartkick-charts"],await this.dashboardSource.applyTemplatePackages(e),u.push("/dashboard")},onCancel:()=>this.setState({createOwnModalVisible:!1}),onChange:(e,t)=>{if("framework"===e&&o!==t){var n,r,a;const e=(null===(n=this.dashboardSource)||void 0===n?void 0:n.templatePackages(t))||[];this.setState({templatePackageName:null===(r=e[0])||void 0===r?void 0:r.name,chartLibrary:null===(a=_s[t.toLowerCase()])||void 0===a?void 0:a[0].value})}this.setState({[e]:t})},chartLibraries:_s[o],currentLibraryItem:d,frameworks:ni.filter((e=>"vanilla"!==e.id)),framework:o,frameworkItem:b,templatePackages:(null===(t=this.dashboardSource)||void 0===t?void 0:t.templatePackages(o))||[],templatePackage:p,enableWebSocketTransport:l&&"angular"!==o.toLowerCase()})]},"own")]);return Object(x.jsxs)(Vs,{children:[Object(x.jsxs)(Gs,{children:["Build your app from one the popular templates below or"," ",Object(x.jsx)("a",{onClick:()=>this.setState({createOwnModalVisible:!0}),children:"create your own"})]}),Object(x.jsx)(da.a,{gutter:24,children:h})]})}}var Hs=Object(i.g)(Ws),Zs=n.p+"static/media/postgres.e67db92e.svg",$s=n.p+"static/media/mysql.376b985e.svg",Xs=n.p+"static/media/athena.3d08e54a.svg",ec=n.p+"static/media/clickhouse.15d7a0f1.svg",tc=n.p+"static/media/hive.b33891fc.svg",nc=n.p+"static/media/redshift.b80154fa.svg",rc=n.p+"static/media/presto.bf9e7a80.svg",ac=n.p+"static/media/snowflake.7e110f33.svg",ic=n.p+"static/media/oracle.e2b7363b.svg",oc=n.p+"static/media/mssql.7dc54d0e.svg",sc=n.p+"static/media/bigquery.47cbd6db.svg",cc=n.p+"static/media/mongodb.23376a66.svg",lc=n.p+"static/media/druid.7ac8cbb7.svg";const uc=[{env:"CUBEJS_DB_HOST",title:"Hostname"},{env:"CUBEJS_DB_PORT",title:"Port"}],dc=[{env:"CUBEJS_DB_USER",title:"Username"},{env:"CUBEJS_DB_PASS",title:"Password"}],bc={env:"CUBEJS_DB_NAME",title:"Database"};var pc=[{databases:[{title:"PostgreSQL",driver:"postgres",logo:Zs},{title:"MySQL",driver:"mysql",logo:$s},{title:"AWS Redshift",driver:"redshift",logo:nc},{title:"ClickHouse",driver:"clickhouse",logo:ec},{title:"Hive/SparkSQL",driver:"hive",logo:tc},{title:"Oracle",driver:"oracle",logo:ic}],settings:[...uc,bc,...dc]},{databases:[{title:"MS SQL",driver:"mssql",logo:oc}],settings:[...uc,...dc,bc,{env:"CUBEJS_DB_DOMAIN",title:"Domain Name"}]},{databases:[{title:"AWS Athena",driver:"athena",logo:Xs,instructions:'\nSpecify the AWS access and secret keys with the <a href="https://docs.aws.amazon.com/athena/latest/ug/security-iam-athena.html" target="_blank">access necessary to run Athena queries</a>, \nand the target AWS region and <a href="https://docs.aws.amazon.com/athena/latest/ug/querying.html" target="_blank">S3 output location</a> where query results are stored.\n '}],settings:[{env:"CUBEJS_AWS_KEY",title:"AWS Access Key ID"},{env:"CUBEJS_AWS_SECRET",title:"AWS Secret Access Key"},{env:"CUBEJS_AWS_REGION",title:"AWS Region"},{env:"CUBEJS_AWS_S3_OUTPUT_LOCATION",title:"S3 Output Location"}]},{databases:[{title:"Google Bigquery",driver:"bigquery",logo:sc,instructions:"\nUpload a service account JSON keyfile to connect to BigQuery.<br/>Alternatively, you can encode the key file with base64 and specify it manually.\n "}],settings:[{env:"CUBEJS_DB_BQ_KEY_FILE",title:"Upload a Service Account JSON file",type:"base64upload",uploadTarget:"CUBEJS_DB_BQ_CREDENTIALS",extractField:{jsonField:"project_id",formField:"CUBEJS_DB_BQ_PROJECT_ID"}},{env:"CUBEJS_DB_BQ_PROJECT_ID",title:"Project ID"},{env:"CUBEJS_DB_BQ_CREDENTIALS",title:"Encoded Key File"}]},{databases:[{title:"MongoDB",driver:"mongobi",logo:cc}],settings:[...uc,...dc,bc]},{databases:[{title:"Snowflake",driver:"snowflake",logo:ac}],settings:[...dc,bc,{env:"CUBEJS_DB_SNOWFLAKE_ACCOUNT",title:"Account"},{env:"CUBEJS_DB_SNOWFLAKE_REGION",title:"Region"},{env:"CUBEJS_DB_SNOWFLAKE_WAREHOUSE",title:"Warehouse"},{env:"CUBEJS_DB_SNOWFLAKE_ROLE",title:"Role"}]},{databases:[{title:"Presto",driver:"prestodb",logo:rc}],settings:[...uc,...dc,{env:"CUBEJS_DB_CATALOG",title:"Catalog"},{env:"CUBEJS_DB_SCHEMA",title:"Schema"}]},{databases:[{title:"Druid",driver:"druid",logo:lc}],settings:[{env:"CUBEJS_DB_URL",title:"URL"},...dc]}],hc=n(130);function mc(e){let{loading:t,result:n}=e;return t?Object(x.jsxs)(Y.b,{align:"center",size:"middle",children:[Object(x.jsx)(qr.a,{"data-testid":"wizard-test-connection-spinner"}),Object(x.jsx)(M.a.Text,{children:"Testing database connection"})]}):(null===n||void 0===n?void 0:n.success)?Object(x.jsxs)(M.a.Text,{type:"success",children:[Object(x.jsx)(hc.a,{}),"\xa0\xa0Connection successful"]}):(null===n||void 0===n?void 0:n.error)?Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(M.a.Text,{type:"danger",children:"We couldn\u2019t connect. Please double check the provided data and try again"}),Object(x.jsx)(d.a,{"data-testid":"wizard-connection-error",style:{marginTop:20},message:"Runtime Error",type:"error",description:Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)("p",{style:{paddingLeft:20},children:"Cube.js was unable to connect to the specified database."}),Object(x.jsx)("p",{style:{paddingLeft:20},children:"The database returned the following error:"}),Object(x.jsx)("br",{}),Object(x.jsx)("p",{style:{paddingLeft:40},children:">Database Error"}),Object(x.jsx)("p",{style:{paddingLeft:40},children:n.error.toString()}),Object(x.jsx)("br",{}),Object(x.jsx)("p",{children:"Check your database credentials and try again. For more information, visit:"}),Object(x.jsx)("a",{href:"https://cube.dev/docs/config/databases",target:"_blank",children:"https://cube.dev/docs/config/databases"})]})})]}):null}var jc,fc=n(750);function gc(e){let{db:t}=e;return Object(x.jsx)(R.a,{"data-testid":"wizard-db-card",children:Object(x.jsxs)(da.a,{align:"middle",justify:"space-between",children:[Object(x.jsx)(ua.a,{flex:"40px",children:Object(x.jsx)(fc.a,{src:t.logo,preview:!1})}),Object(x.jsx)(ua.a,{children:Object(x.jsx)(M.a.Text,{strong:!0,children:t.title})})]})})}const yc=b.d.div(jc||(jc=Object(s.a)(["\n background-color: #f8f8f9;\n padding: 15px 20px;\n border-radius: 4px;\n"])));function vc(e){let{db:t}=e;return Object(x.jsx)(yc,{children:Object(x.jsxs)(da.a,{align:"middle",justify:"space-between",children:[Object(x.jsx)(ua.a,{flex:"40px",children:Object(x.jsx)(fc.a,{src:t.logo,preview:!1})}),Object(x.jsx)(ua.a,{children:Object(x.jsx)(M.a.Text,{strong:!0,children:t.title})})]})})}var xc=n(749),Oc=n(788);const{Text:kc}=M.a;function wc(e){let{onInput:t,...n}=e;const[r,a]=Object(c.useState)(""),[i,o]=Object(c.useState)(""),s={name:"file",headers:{authorization:"authorization-text"},accept:"application/json, .json",beforeUpload(e){const n=new FileReader;return n.onload=e=>{let n="";const r=e.target.result.toString();try{JSON.parse(r),n=btoa(r)}catch(a){o("Invalid JSON file"),console.error(a)}t&&t({encoded:n,raw:JSON.parse(r)})},n.readAsText(e),!1},onChange(e){"uploading"!==e.file.status&&console.log(e.file,e.fileList),"done"===e.file.status?a(e.file.name):"error"===e.file.status&&(console.log("".concat(e.file.name," file upload failed.")),o("Invalid file"))},onRemove(){o("")}};return Object(x.jsxs)(Y.b,{direction:"vertical",children:[Object(x.jsx)(xc.a,{...s,children:Object(x.jsx)(I.a,{icon:Object(x.jsx)(Oc.a,{}),children:"Choose file"})}),r||i?null:Object(x.jsx)(kc,{type:"secondary",children:"No file selected"}),i&&Object(x.jsx)(kc,{type:"danger",children:i})]})}function Cc(e){let{db:t,deployment:n,loading:r=!1,disabled:a=!1,hostname:i="",onSubmit:o}=e;const[s]=K.a.useForm();Object(c.useEffect)((()=>{s.setFieldsValue({CUBEJS_DB_HOST:i})}),[i]);const l=(n.envVariables||[]).reduce(((e,t)=>(e[t.name]=t.value,e)),{});return Object(x.jsxs)(K.a,{"data-testid":"wizard-db-form",form:s,layout:"vertical",onFinish:e=>{e.CUBEJS_DB_TYPE=t.driver,o(e)},initialValues:l,children:[t.settings.map((e=>"base64upload"===e.type?Object(x.jsx)(wc,{onInput:t=>{let{raw:n,encoded:r}=t;e.uploadTarget&&s.setFieldsValue({[e.uploadTarget]:r}),e.extractField&&s.setFieldsValue({[e.extractField.formField]:n[e.extractField.jsonField]})}}):Object(x.jsx)(K.a.Item,{label:e.title||e.env,name:e.env,children:e.title?"CUBEJS_DB_PASS"===e.env?Object(x.jsx)(U.a.Password,{"data-testid":e.env}):Object(x.jsx)(U.a,{"data-testid":e.env}):Object(x.jsx)(U.a.TextArea,{"data-testid":e.env,rows:1,style:{overflow:"hidden",resize:"none"}})},e.env))),Object(x.jsx)(I.a,{"data-testid":"wizard-form-submit-btn",type:"primary",htmlType:"submit",loading:r,disabled:a,children:"Apply"})]})}var Sc,Ac;const Dc=Object(b.d)(d.a)(Sc||(Sc=Object(s.a)(["\n border: none;\n padding: 16px;\n"]))),Ec=Object(b.d)(K.a)(Ac||(Ac=Object(s.a)(["\n .ant-form-item {\n margin-bottom: 20px;\n }\n\n .ant-form-item:last-child {\n margin-bottom: 0;\n }\n\n .ant-form-item-label {\n padding-bottom: 4px;\n }\n"])));function Tc(e){let{onHostnameCopy:t}=e;return Object(x.jsx)(Dc,{"data-testid":"wizard-localhost-tipbox",type:"warning",message:Object(x.jsxs)(Y.b,{direction:"vertical",size:"middle",children:[Object(x.jsxs)(M.a.Text,{children:["To connect to the database running on the localhost use the following ",Object(x.jsx)("b",{children:"hostname"})," value"]}),Object(x.jsxs)(Ec,{children:[Object(x.jsx)(wn,{label:"Mac",value:"host.docker.internal",onCopyClick:t}),Object(x.jsx)(wn,{label:"Windows",value:"host.docker.internal",onCopyClick:t}),Object(x.jsx)(wn,{label:"Linux",value:"localhost",onCopyClick:t}),Object(x.jsxs)(Y.b,{direction:"vertical",size:"middle",children:[Object(x.jsxs)(M.a.Text,{children:["Please note, for Linux, you need to run Cube.js Docker container in the"," ",Object(x.jsx)(M.a.Link,{href:"https://docs.docker.com/network/host/",target:"_blank",children:'network mode "host"'})," ","to be able to connect to the database running on localhost."]}),Object(x.jsx)(wn,{value:"docker run --network host",onCopyClick:e=>te(e)})]})]})]})})}var Pc,qc;const{Title:Rc,Paragraph:Mc}=M.a,Ic="installing",Lc="installed",_c=b.d.div(Pc||(Pc=Object(s.a)(["\n cursor: pointer;\n"]))),Bc=b.d.div(qc||(qc=Object(s.a)(["\n width: auto;\n min-height: 100vh;\n max-width: 960px;\n padding: 48px 24px;\n margin: 0 auto;\n background-color: #fff;\n"]))),zc=pc.reduce(((e,t)=>{let{databases:n,settings:r}=t;return[...e,...n.map((e=>({...e,settings:r})))]}),[]);async function Fc(e){const t=await(n="/playground/test-connection",r={method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({variables:e})},a=5e3,Promise.race([fetch(n,r),new Promise(((e,t)=>setTimeout((()=>t(new Error("timeout"))),a)))]));var n,r,a;const{error:i}=await t.json();if(i)throw new Error(i)}function Qc(e){let{history:t}=e;const n=mn(),[r,a]=Object(c.useState)(""),[i,o]=Object(c.useState)(!1),[s,l]=Object(c.useState)(!1),[u,b]=Object(c.useState)(null),[p,h]=Object(c.useState)(null),[m,j]=Object(c.useState)(!1),[f,g]=Object(c.useState)(null),[y,v]=Object(c.useState)(null);function O(e){return async()=>{if(null===n||void 0===n?void 0:n.isDocker)return h(e);{const t=await fetch("/playground/driver?driver=".concat(e.driver||"")),{status:n,error:r}=await t.json();if(t.ok){if(n===Lc)return h(e);n===Ic&&(j(!0),h(e))}else v(r)}{const t=await fetch("/playground/driver",{method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({driver:e.driver})}),{dependency:n,error:r}=await t.json();t.ok?(g(n),j(!0),h(e)):v(r)}}}return Object(c.useEffect)((()=>{Sr("connection_wizard_open")}),[]),Object(c.useLayoutEffect)((()=>{(null===n||void 0===n?void 0:n.dbType)&&!(null===n||void 0===n?void 0:n.isDocker)&&h(zc.find((e=>e.driver.toLowerCase()===n.dbType))||null)}),[n]),Object(c.useEffect)((()=>{let e;return m&&p&&(e=function(e,t,n,r){let a=0,i=!1;function o(){i=!0}return async function s(){const c=await fetch(e,r);i||(n({response:c,cancel:o,retries:a}),setTimeout(s,t)),a++}(),{cancel:o,retries:a}}("/playground/driver?driver=".concat(p.driver),1e3,(async e=>{let{response:t,cancel:n}=e;const{status:r,error:a}=await t.json();t.ok&&r===Lc&&(n(),j(!1)),t.ok||(n(),j(!1),v(a))}))),()=>{var t;p&&(null===(t=e)||void 0===t||t.cancel())}}),[p,m]),Object(c.useEffect)((()=>{l(!1),b(null),v(null),a("")}),[null===p||void 0===p?void 0:p.driver]),y?Object(x.jsx)(Bc,{children:Object(x.jsx)(er,{error:y})}):m&&f?Object(x.jsxs)(Bc,{children:[Object(x.jsx)(Rc,{children:"Set Up a Database connection"}),Object(x.jsxs)(Y.b,{align:"center",size:"middle",children:[Object(x.jsx)(qr.a,{}),Object(x.jsxs)(M.a.Text,{children:["Installing ",Object(x.jsx)("b",{children:f})]})]})]}):Object(x.jsxs)(Bc,{children:[Object(x.jsx)(Rc,{children:"Set Up a Database connection"}),p?Object(x.jsx)(x.Fragment,{children:Object(x.jsxs)(Y.b,{direction:"vertical",size:"large",style:{width:"100%"},children:[Object(x.jsxs)(Y.b,{size:"middle",children:[Object(x.jsx)(vc,{db:p}),Object(x.jsx)(rr,{"data-testid":"wizard-change-db-btn",type:"link",onClick:()=>h(null),children:"Change"})]}),Object(x.jsxs)(M.a,{children:[p.instructions?Object(x.jsx)("div",{dangerouslySetInnerHTML:{__html:p.instructions}}):Object(x.jsxs)(M.a.Paragraph,{children:["Enter database credentials to connect to your database. ",Object(x.jsx)("br",{}),"Cube.js will store your credentials into the ",Object(x.jsx)("code",{children:".env"})," ","file for future use."]}),Object(x.jsx)(d.a,{type:"info",message:Object(x.jsxs)(x.Fragment,{children:["For advanced configuration, use the ",Object(x.jsx)("b",{children:"cube.js"})," or"," ",Object(x.jsx)("b",{children:".env"})," configuration files in your cube.js project. Note these files are on the mount volume if you are running Docker.",Object(x.jsx)("br",{}),Object(x.jsx)(M.a.Link,{href:"https://cube.dev/docs/config/databases",target:"_blank",children:"Learn more about connecting to databases in the documentation."})]})}),"MongoDB"===p.title?Object(x.jsx)(d.a,{message:"The MongoDB Connector for BI is required to connect to MongoDB.",type:"info"}):null]}),Object(x.jsxs)(da.a,{gutter:[40,12],children:[Object(x.jsx)(ua.a,{span:12,children:Object(x.jsxs)(Y.b,{direction:"vertical",size:"large",style:{width:"100%"},children:[Object(x.jsx)(Cc,{db:p,deployment:{},loading:i,disabled:s,hostname:r,onSubmit:async e=>{try{b(null),l(!0),await Fc(e),b({success:!0}),o(!0),await async function(e){await fetch("/playground/env",{method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({variables:e})})}(e),o(!1),Cr("test_database_connection_success:frontend",{database:p.title}),t.push("/schema")}catch(n){b({success:!1,error:n}),Cr("test_database_connection_error:frontend",{error:n.message||n.toString(),database:p.title})}l(!1)}}),Object(x.jsx)(mc,{loading:s,result:u})]})}),["MySQL","PostgreSQL","Druid","ClickHouse"].includes((null===p||void 0===p?void 0:p.title)||"")&&(null===n||void 0===n?void 0:n.isDocker)?Object(x.jsx)(ua.a,{span:12,children:Object(x.jsx)(Tc,{onHostnameCopy:a})}):null]})]})}):Object(x.jsxs)(x.Fragment,{children:[Object(x.jsx)(Mc,{children:"Select a database type"}),Object(x.jsx)(da.a,{gutter:[12,12],children:zc.map((e=>Object(x.jsx)(ua.a,{xl:8,lg:8,md:12,sm:24,xs:24,children:Object(x.jsx)(_c,{onClick:O(e),children:Object(x.jsx)(gc,{db:e})})},e.title)))})]})]})}var Nc=n(789),Uc=n(790);const Kc=(e,t)=>{const n=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return t.reduce(((t,n)=>n.children?[...t,...e(n.children)]:[...t,n]),[])}(e).reduce(((e,t)=>({...e,[t.dataIndex]:t})),{});function r(e){let{type:t,format:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0==e?e:"boolean"===t?"boolean"===typeof e?e.toString():"number"===typeof e?Boolean(e).toString():e:"number"===t&&"percent"===n?[parseFloat(e).toFixed(2),"%"].join(""):e.toString()}return t.map((function(e){return Object.fromEntries(Object.entries(e).map((e=>{let[t,a]=e;return[t,r(a,n[t])]})))}))};function Vc(e){let{resultSet:t,pivotConfig:n}=e;const[r,a]=xn((()=>{const e=t.tableColumns(n);return[e,Kc(e,t.tablePivot(n))]}),[t,n]);return Object(x.jsx)(Za.a,{pagination:{pageSize:50},columns:r,dataSource:a})}const Yc={top:50,minWidth:450};function Jc(e){let{query:t,onClose:n,pivotConfig:r}=e;const[a,i]=l.a.useState(!0),{resultSet:o,isLoading:s,error:u}=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(c.useRef)({}),r=Object(c.useRef)(!0),a=Object(c.useState)(null),i=qe()(a,2),o=i[0],s=i[1],l=Object(c.useState)(!1),u=qe()(l,2),d=u[0],b=u[1],p=Object(c.useState)(null),h=qe()(p,2),m=h[0],j=h[1],f=Object(c.useState)(null),g=qe()(f,2),y=g[0],v=g[1],x=Object(c.useState)(null),O=qe()(x,2),k=O[0],w=O[1],C=Object(c.useContext)(Aa),S=null,A=function(e){var t=e.progressResponse;return v(t)};function D(){return E.apply(this,arguments)}function E(){return(E=ke()(Ce.a.mark((function a(){var i,o,s;return Ce.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(i=t.resetResultSetOnChange,o=t.cubejsApi||(null===C||void 0===C?void 0:C.cubejsApi)){a.next=4;break}throw new Error("Cube.js API client is not provided");case 4:return i&&j(null),w(null),b(!0),a.prev=7,a.next=10,o.load(e,{mutexObj:n.current,mutexKey:"query",progressCallback:A});case 10:s=a.sent,r.current&&(j(s),v(null)),a.next=17;break;case 14:a.prev=14,a.t0=a.catch(7),r.current&&(w(a.t0),j(null),v(null));case 17:r.current&&b(!1);case 18:case"end":return a.stop()}}),a,null,[[7,14]])})))).apply(this,arguments)}return Object(c.useEffect)((function(){return function(){r.current=!1}}),[]),Object(c.useEffect)((function(){var a=t.skip,i=void 0!==a&&a,c=t.resetResultSetOnChange,l=t.cubejsApi||(null===C||void 0===C?void 0:C.cubejsApi);if(!l)throw new Error("Cube.js API client is not provided");function u(){return(u=ke()(Ce.a.mark((function a(){return Ce.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(i||!vt(e)){a.next=20;break}if(gt(o,e)||((null==c||c)&&j(null),s(e)),w(null),b(!0),a.prev=4,!S){a.next=9;break}return a.next=8,S.unsubscribe();case 8:S=null;case 9:if(!t.subscribe){a.next=13;break}S=l.subscribe(e,{mutexObj:n.current,mutexKey:"query",progressCallback:A},(function(e,t){r.current&&(e?w(e):j(t),b(!1),v(null))})),a.next=15;break;case 13:return a.next=15,D();case 15:a.next=20;break;case 17:a.prev=17,a.t0=a.catch(4),r.current&&(w(a.t0),j(null),b(!1),v(null));case 20:case"end":return a.stop()}}),a,null,[[4,17]])})))).apply(this,arguments)}return function(){u.apply(this,arguments)}(),function(){S&&(S.unsubscribe(),S=null)}}),Na([e,Object.keys(e&&e.order||{}),t,C])),{isLoading:d,resultSet:m,error:k,progress:y,previousQuery:o,refetch:D}}(t,{skip:!t}),d=()=>{i(!1)};return Object(x.jsxs)(V.a,{style:Yc,visible:a,onCancel:d,width:"auto",footer:Object(x.jsx)(I.a,{onClick:d,children:"Close"},"close"),afterClose:n,centered:!0,children:[u?Object(x.jsx)(er,{error:u}):null,s&&!u?Object(x.jsx)(Wn,{}):null,o&&!s?Object(x.jsx)(Vc,{resultSet:o,pivotConfig:r}):null]})}var Gc;const{TabPane:Wc}=N.a,Hc=Object(b.d)(N.a)(Gc||(Gc=Object(s.a)(["\n & .ant-tabs-nav {\n background: #fff;\n padding: 12px 16px 0;\n margin: 0;\n }\n\n & .ant-tabs-extra-content {\n margin-left: 32px;\n }\n"])));function Zc(e){let{query:t,children:n,sidebar:r=null,onTabChange:a}=e;const{setChartRendererReady:i,setQueryStatus:o,setQueryError:s,setResultSetExists:l,setQueryLoading:u,setBuildInProgress:d,setSlowQuery:b,setSlowQueryFromCache:p,setQueryRequestId:h}=Oi(),[m,j]=Object(c.useState)(!1),[f,g]=fn("queryTabs",{activeId:"1",tabs:[{id:"1",query:t||{}}]}),[y,v]=Object(c.useState)({});Object(c.useEffect)((()=>{window.__cubejsPlayground={...window.__cubejsPlayground,forQuery:e=>({onChartRendererReady(){i(e,!0)},onQueryStart:()=>{u(e,!0)},onQueryLoad:t=>{let n,{resultSet:r,error:a}=t;if(r){var i;const{loadResponse:t}=r.serialize(),{requestId:s,external:c,dbType:u,extDbType:d,usedPreAggregations:m={}}=t.results[0]||{};s&&h(e,s),p(e,Boolean(t.slowQuery)),Boolean(t.slowQuery)&&b(e,!1),l(e,!0),n=Object.keys(m).length>0,Cr(n?"load_request_success_aggregated:frontend":"load_request_success:frontend",{dbType:u,...n?{external:c}:null,...c?{extDbType:d}:null});const j=r.serialize(),[f]=j.loadResponse.results,g=null===(i=Object.values(f.usedPreAggregations||{})[0])||void 0===i?void 0:i.type,y=f.transformedQuery;o(e,{resultSet:r,error:a,isAggregated:n,preAggregationType:g,transformedQuery:y,extDbType:d,external:c})}a&&(o(e,null),s(e,a)),(r||a)&&u(e,!1)},onQueryProgress:t=>{var n,r;d(e,Boolean(null===t||void 0===t||null===(n=t.stage)||void 0===n?void 0:n.stage.includes("pre-aggregation")));const a=(null===t||void 0===t||null===(r=t.stage)||void 0===r?void 0:r.stage.includes("Executing query"))&&(t.stage.timeElapsed||0)>=5e3;b(e,a),a&&p(e,!1)},onQueryDrilldown:(e,t)=>{v({query:e,pivotConfig:t})}})}}),[]),Object(c.useEffect)((()=>{if(m)return;const e=f.tabs.find((e=>e.id===f.activeId));if(t&&!F()(null===e||void 0===e?void 0:e.query,t)){const e=w();g({activeId:e,tabs:[...f.tabs,{id:e,query:t}]})}j(!0)}),[m]),Object(c.useEffect)((()=>{if(m&&f.activeId){const e=f.tabs.find((e=>e.id===f.activeId));e&&(null===a||void 0===a||a(e))}}),[m,f.activeId]);const{activeId:O,tabs:k}=f;function w(){const e=k.map((e=>{let{id:t}=e;return t}));for(let t=1;t<=k.length+1;t++)if(!e.includes(t.toString()))return t.toString();return(k.length+1).toString()}function C(e){g({...f,tabs:k.map((t=>O===t.id?{...t,...e}:t))})}function S(){v({})}return m&&f.activeId?Object(x.jsx)(Hc,{"data-testid":"query-tabs",activeKey:O,type:"editable-card",tabBarExtraContent:{right:r},hideAdd:!1,onChange:function(e){g({activeId:e,tabs:k})},onEdit:e=>{if("string"===typeof e){let t=Number.MAX_VALUE;const n=k.filter(((n,r)=>{let{id:a}=n;return a===e&&(t=r),a!==e}));g({activeId:n[Math.min(t,n.length-1)].id,tabs:n})}else{const e=w();g({activeId:e,tabs:[...k,{id:e,query:{}}]})}},children:k.map((e=>Object(x.jsxs)(Wc,{"data-testid":"query-tab-".concat(e.id),tab:"Query ".concat(e.id),closable:k.length>1,children:[n(e,C),y.query?Object(x.jsx)(Jc,{query:y.query,pivotConfig:y.pivotConfig,onClose:S}):null]},e.id)))}):null}var $c;const Xc=Object(b.d)(R.a)($c||($c=Object(s.a)(["\n border-radius: 0;\n border-bottom: 1px;\n min-height: 100%;\n background: var(--layout-body-background);\n\n & .ant-card-body {\n padding: 0;\n }\n"])));function el(e){let{apiUrl:t,token:n,...r}=e;const{token:a,setIsModalOpen:i}=pe(),o=a||n;Object(c.useLayoutEffect)((()=>{t&&o&&(window.__cubejsPlayground={...window.__cubejsPlayground,apiUrl:t,token:o})}),[t,o]);const s=function(e,t){return Object(c.useMemo)((()=>t&&e&&"undefined"!==t?en(t,{apiUrl:e}):null),[e,t])}(t,o);return s?Object(x.jsx)(Qa,{cubejsApi:s,children:Object(x.jsx)(gs,{apiUrl:t,children:Object(x.jsx)(vi,{children:Object(x.jsx)(Xc,{bordered:!1,children:Object(x.jsx)(tl,{apiUrl:t,token:o,dashboardSource:r.dashboardSource,securityContextToken:a,onTabChange:r.onTabChange,extra:r.extra,onSecurityContextModalOpen:()=>i(!0)})})})})}):Object(x.jsx)(Wn,{})}function tl(e){let{apiUrl:t,token:n,securityContextToken:r,dashboardSource:a,schemaVersion:o,onSecurityContextModalOpen:s,...c}=e;const{location:l}=Object(i.f)(),{setQuery:u,toggleModal:d}=ys(),b=new URLSearchParams(l.search),p=JSON.parse(b.get("query")||"null");return Object(x.jsx)(Zc,{query:p,sidebar:Object(x.jsxs)(Y.b,{direction:"horizontal",children:[Object(x.jsxs)(rr,{"data-testid":"security-context-btn",icon:Object(x.jsx)(Nc.a,{}),size:"small",type:r?"primary":"default",onClick:s,children:[r?"Edit":"Add"," Security Context"]}),Object(x.jsx)(rr,{"data-testid":"rd-btn",icon:Object(x.jsx)(Uc.a,{}),size:"small",onClick:()=>d(),children:"Add Rollup to Schema"})]}),onTabChange:e=>{var t;null===(t=c.onTabChange)||void 0===t||t.call(c,e),u(e.query)},children:(e,r)=>{let{id:i,query:s,chartType:l}=e;return Object(x.jsx)(Qs,{queryId:i,apiUrl:t,cubejsToken:n,initialVizState:{query:s,chartType:l},dashboardSource:a,schemaVersion:o,extra:c.extra,onVizStateChanged:e=>{var t;r({query:e.query||{},chartType:e.chartType}),null===(t=c.onVizStateChanged)||void 0===t||t.call(c,e),e.query&&u(e.query)}})}})}function nl(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/cubejs-api";return"".concat(e).concat(t,"/v1")}function rl(){const{push:e}=Object(i.f)(),t=Object(c.useMemo)((()=>new Rr),[]),n=ln(),{apiUrl:r,token:a,schemaVersion:o,setContext:s,playgroundContext:l}=hn(),{token:u}=pe(),{basePath:d,cubejsToken:b}=l;function p(t){let{query:n}=t;n&&e({search:"?query=".concat(JSON.stringify(n))})}return vn((()=>{if(!d||null!==n&&n.statusLivePreview.active){if((null===n||void 0===n?void 0:n.statusLivePreview.active)&&n.credentials){const{token:e,apiUrl:t}=n.credentials;s({apiUrl:nl(t,d),token:e})}}else s({token:u||b,apiUrl:nl(window.location.href.split("#")[0].replace(/\/$/,""),d)})}),[d,n,b,u]),Object(x.jsx)(el,{apiUrl:r,token:a,schemaVersion:o,dashboardSource:t,onVizStateChanged:p,onTabChange:p})}const al=Object(o.b)();async function il(e,t){if(null!=t)return t;const n=await fetch("/playground/token",{method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({payload:e})});return(await n.json()).token}al.listen((e=>{const{search:t,...n}=e;(e=>{var t;null===(t=kr)||void 0===t||t({event:"page",...e},yr)})(n)})),"3080"===window.location.port&&window.location.pathname.includes("/playground/live-preview/start")&&fetch(window.location.pathname).then((()=>window.close())),a.a.render(Object(x.jsx)(i.c,{history:al,children:Object(x.jsx)(bn,{playgroundContext:{isCloud:!1},children:Object(x.jsxs)(Pr,{children:[Object(x.jsx)(i.b,{exact:!0,path:"/",component:function(){const{push:e}=Object(i.f)(),t=gn(),n=mn(),[r,a]=Object(c.useState)(null);return Object(c.useEffect)((()=>{!async function(){const e=await fetch("/playground/files"),n=await e.json();t()&&a(n.files)}()}),[]),Object(c.useLayoutEffect)((()=>{n&&null!=r&&(n.shouldStartConnectionWizardFlow?e("/connection"):!r.length||1===r.length&&"Orders.js"===r[0].fileName?e("/schema"):e("/build"))}),[n,r]),null}},"index"),Object(x.jsx)(i.b,{path:"/build",component:e=>Object(x.jsx)(be,{onTokenPayloadChange:il,children:Object(x.jsx)(rl,{...e})})},"build"),Object(x.jsx)(i.b,{path:"/schema",component:la},"schema"),Object(x.jsx)(i.b,{path:"/connection",component:()=>Object(x.jsx)(Qc,{history:al})},"connection"),Object(x.jsx)(i.b,{path:"/dashboard",component:Br},"dashboard"),Object(x.jsx)(i.b,{path:"/template-gallery",component:Hs},"template-gallery")]})})}),document.getElementById("playground-root"))}},[[731,1,2]]]);