@malloydata/malloy-explorer 0.0.282-dev250527225235 → 0.0.282-dev250528154617

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.
@@ -26118,6 +26118,85 @@ const styles$s = {
26118
26118
  $$css: true
26119
26119
  }
26120
26120
  };
26121
+ function LiteralValue({
26122
+ value,
26123
+ customStyle
26124
+ }) {
26125
+ if (!value) {
26126
+ return /* @__PURE__ */ jsxRuntime.jsx(Token, {
26127
+ label: "∅"
26128
+ });
26129
+ }
26130
+ switch (value.kind) {
26131
+ case "boolean_literal":
26132
+ return /* @__PURE__ */ jsxRuntime.jsx(Token, {
26133
+ label: value.boolean_value ? "true" : "false",
26134
+ customStyle
26135
+ });
26136
+ case "date_literal":
26137
+ case "timestamp_literal":
26138
+ return /* @__PURE__ */ jsxRuntime.jsx(Token, {
26139
+ label: "TODO",
26140
+ customStyle
26141
+ });
26142
+ case "null_literal":
26143
+ return /* @__PURE__ */ jsxRuntime.jsx(Token, {
26144
+ label: "∅"
26145
+ });
26146
+ case "number_literal":
26147
+ return /* @__PURE__ */ jsxRuntime.jsx(Token, {
26148
+ label: value.number_value.toLocaleString(),
26149
+ customStyle
26150
+ });
26151
+ case "string_literal":
26152
+ return /* @__PURE__ */ jsxRuntime.jsx(Token, {
26153
+ label: value.string_value,
26154
+ customStyle
26155
+ });
26156
+ case "filter_expression_literal":
26157
+ return /* @__PURE__ */ jsxRuntime.jsx(Token, {
26158
+ label: value.filter_expression_value,
26159
+ customStyle
26160
+ });
26161
+ }
26162
+ }
26163
+ function DrillOperations({
26164
+ drills
26165
+ }) {
26166
+ if (!drills.length) {
26167
+ return null;
26168
+ }
26169
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
26170
+ children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
26171
+ ..._stylex.props(styles$s.title),
26172
+ children: "drills"
26173
+ }), /* @__PURE__ */ jsxRuntime.jsx("div", {
26174
+ ...{
26175
+ className: "mly78zum5 mlydt5ytf mly1jnr06f"
26176
+ },
26177
+ children: drills.map((drill, key2) => /* @__PURE__ */ jsxRuntime.jsxs(TokenGroup, {
26178
+ color: "cyan",
26179
+ customStyle: localStyles.tokenGroup,
26180
+ children: [/* @__PURE__ */ jsxRuntime.jsx(Token, {
26181
+ label: drill.filter.fieldReference.name,
26182
+ icon: "filter"
26183
+ }), /* @__PURE__ */ jsxRuntime.jsx(Token, {
26184
+ label: "="
26185
+ }), drill.filter instanceof QB.ASTFilterWithLiteralEquality ? /* @__PURE__ */ jsxRuntime.jsx(LiteralValue, {
26186
+ value: drill.filter.value.node
26187
+ }) : /* @__PURE__ */ jsxRuntime.jsx(Token, {
26188
+ label: drill.filter.filterString
26189
+ })]
26190
+ }, key2))
26191
+ })]
26192
+ });
26193
+ }
26194
+ const localStyles = {
26195
+ tokenGroup: {
26196
+ display: "mly78zum5",
26197
+ $$css: true
26198
+ }
26199
+ };
26121
26200
  function useCombinedRefs() {
26122
26201
  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
26123
26202
  refs[_key] = arguments[_key];
@@ -34414,6 +34493,7 @@ function Operations({
34414
34493
  }) {
34415
34494
  const groupBys = [];
34416
34495
  const aggregates = [];
34496
+ const drills = [];
34417
34497
  const filters = [];
34418
34498
  const orderBys = [];
34419
34499
  const nests = [];
@@ -34435,8 +34515,9 @@ function Operations({
34435
34515
  orderBys.push(operation);
34436
34516
  } else if (operation instanceof QB.ASTNestViewOperation) {
34437
34517
  nests.push(operation);
34438
- } else if (operation instanceof QB.ASTDrillViewOperation) ;
34439
- else {
34518
+ } else if (operation instanceof QB.ASTDrillViewOperation) {
34519
+ drills.push(operation);
34520
+ } else {
34440
34521
  limit = operation;
34441
34522
  }
34442
34523
  });
@@ -34454,6 +34535,9 @@ function Operations({
34454
34535
  segment,
34455
34536
  view,
34456
34537
  aggregates
34538
+ }), /* @__PURE__ */ jsxRuntime.jsx(DrillOperations, {
34539
+ rootQuery,
34540
+ drills
34457
34541
  }), /* @__PURE__ */ jsxRuntime.jsx(FilterOperations, {
34458
34542
  rootQuery,
34459
34543
  filters
@@ -35476,6 +35560,7 @@ const styles$5 = {
35476
35560
  }
35477
35561
  };
35478
35562
  function ResultDisplay({
35563
+ source,
35479
35564
  query
35480
35565
  }) {
35481
35566
  let displayComponent;
@@ -35509,6 +35594,7 @@ function ResultDisplay({
35509
35594
  break;
35510
35595
  case "finished":
35511
35596
  displayComponent = /* @__PURE__ */ jsxRuntime.jsx(ResponseDisplay, {
35597
+ source,
35512
35598
  response: query.response
35513
35599
  });
35514
35600
  break;
@@ -35516,6 +35602,7 @@ function ResultDisplay({
35516
35602
  return displayComponent;
35517
35603
  }
35518
35604
  function ResponseDisplay({
35605
+ source,
35519
35606
  response
35520
35607
  }) {
35521
35608
  let messageComponent = null;
@@ -35541,7 +35628,8 @@ function ResponseDisplay({
35541
35628
  children: [(response == null ? void 0 : response.runInfo) && /* @__PURE__ */ jsxRuntime.jsx(RunInfoHover, {
35542
35629
  runInfo: response.runInfo
35543
35630
  }), messageComponent, (response == null ? void 0 : response.result) && /* @__PURE__ */ jsxRuntime.jsx(RenderedResult, {
35544
- result: response.result
35631
+ result: response.result,
35632
+ source
35545
35633
  })]
35546
35634
  });
35547
35635
  }
@@ -35584,14 +35672,30 @@ function Banners({
35584
35672
  });
35585
35673
  }
35586
35674
  function RenderedResult({
35587
- result
35675
+ result,
35676
+ source
35588
35677
  }) {
35589
35678
  const [renderer, setRenderer] = React.useState();
35679
+ const {
35680
+ setQuery
35681
+ } = React.useContext(QueryEditorContext);
35590
35682
  React.useEffect(() => {
35591
35683
  const renderer2 = document.createElement("malloy-render");
35592
35684
  renderer2.malloyResult = result;
35685
+ renderer2.onDrill = ({
35686
+ stableQuery
35687
+ }) => {
35688
+ const rootQuery = new QB.ASTQuery({
35689
+ query: stableQuery,
35690
+ source
35691
+ });
35692
+ setQuery == null ? void 0 : setQuery(rootQuery.build());
35693
+ };
35694
+ renderer2.tableConfig = {
35695
+ enableDrill: true
35696
+ };
35593
35697
  setRenderer(renderer2);
35594
- }, [result]);
35698
+ }, [result, source, setQuery]);
35595
35699
  if (renderer) {
35596
35700
  return /* @__PURE__ */ jsxRuntime.jsx(DOMElement, {
35597
35701
  element: renderer,
@@ -35831,6 +35935,7 @@ function ResultPanel({
35831
35935
  })]
35832
35936
  })]
35833
35937
  }), /* @__PURE__ */ jsxRuntime.jsx(ResultDisplay, {
35938
+ source,
35834
35939
  query: submittedQuery
35835
35940
  })]
35836
35941
  })