@malloy-publisher/app 0.9.9 → 0.9.11
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.
- package/dist/api-doc.yaml +48 -41
- package/dist/assets/EnvironmentPage-tIGzymgb.js +1 -0
- package/dist/assets/HomePage-7QkNvQ_3.js +1 -0
- package/dist/assets/MainPage-BpE_5WuW.js +1 -0
- package/dist/assets/ModelPage-ftyDI1tw.js +2 -0
- package/dist/assets/PackagePage-QGnFwlHu.js +1 -0
- package/dist/assets/RenderedResult-Cmx8sX8d.es-du-Qe1x0.js +153 -0
- package/dist/assets/{RouteError-ziodz3bt.js → RouteError-zM4SSZaU.js} +1 -1
- package/dist/assets/{ThemeEditorPage-Cs3rIs4e.js → ThemeEditorPage-DhZJXGJm.js} +1 -1
- package/dist/assets/ToggleButtonGroup-TKxhg0Mg.js +1 -0
- package/dist/assets/{documentRoutes-1Qgo5Pvl.js → documentRoutes-D4TbSIi5.js} +1 -1
- package/dist/assets/editPageMounted-0kzl2sgg.js +2 -0
- package/dist/assets/{index-CXJpj7He.js → index-B-qJVEXn.js} +1 -1
- package/dist/assets/{index-Bwc6-9Dc.js → index-Bzi4YH8Y.js} +1 -1
- package/dist/assets/{index-CA5a5gJj.js → index-CS4mmuDD.js} +1 -1
- package/dist/assets/{index-sKcoT1e_.js → index-DFDVJFPm.js} +32 -32
- package/dist/assets/index-gQEuz0Cg.js +480 -0
- package/dist/assets/index.es-B3P9tIm3.js +143 -0
- package/dist/index.html +1 -1
- package/package.json +2 -2
- package/dist/assets/EnvironmentPage-DaNUmaHg.js +0 -1
- package/dist/assets/HomePage-CRLoVDIs.js +0 -1
- package/dist/assets/MainPage-BsV5UnlK.js +0 -1
- package/dist/assets/ModelPage-DOOiyJAE.js +0 -2
- package/dist/assets/PackagePage-QHG55rBw.js +0 -1
- package/dist/assets/RenderedResult-BHuJpdSn.es-C37LMpwi.js +0 -153
- package/dist/assets/ToggleButtonGroup-BrygJ1WP.js +0 -1
- package/dist/assets/index-BK0mbcyQ.js +0 -483
- package/dist/assets/index.es-CxcPJdYO.js +0 -195
package/dist/api-doc.yaml
CHANGED
|
@@ -1777,7 +1777,9 @@ paths:
|
|
|
1777
1777
|
on a tag line, outside a string. Text without one is refused with 400.
|
|
1778
1778
|
- REPLACE (with `expectedHash`): only a file the package currently reads
|
|
1779
1779
|
as an editable report: a tagged `.malloy` report of either layout,
|
|
1780
|
-
including a tagged grid report that has no tiles yet
|
|
1780
|
+
including a tagged grid report that has no tiles yet, and a file
|
|
1781
|
+
whose tag makes no report (a `kind=` tag, or the retired `run:`
|
|
1782
|
+
cell format), so it can be rewritten as tiles. A model, an
|
|
1781
1783
|
untagged file, a `.malloynb`, the root `index.malloy` and anything in
|
|
1782
1784
|
`public/` cannot be overwritten, wherever they live, and answer 400.
|
|
1783
1785
|
|
|
@@ -1785,7 +1787,9 @@ paths:
|
|
|
1785
1787
|
identified by its path, so a taken basename is not refused.
|
|
1786
1788
|
|
|
1787
1789
|
The text is compiled first, as the file, and refused with its problems
|
|
1788
|
-
when it does not compile
|
|
1790
|
+
when it does not compile, or when its tag makes no report (for
|
|
1791
|
+
example a linear tag with no `tiles`, `report-cells-removed`);
|
|
1792
|
+
nothing is written. The write is atomic (a
|
|
1789
1793
|
sibling temporary file renamed over the target). If the reload that
|
|
1790
1794
|
follows fails to compile the package, the previous text is restored (or
|
|
1791
1795
|
a new file removed) and the package reloaded again, so a save never
|
|
@@ -2065,10 +2069,13 @@ paths:
|
|
|
2065
2069
|
may import.
|
|
2066
2070
|
|
|
2067
2071
|
A report's `layout` is decided by its tags, first match wins: the
|
|
2068
|
-
tag's `layout=` (`grid` or `linear`); else
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
`
|
|
2072
|
+
tag's `layout=` (`grid` or `linear`); else grid for a query-level
|
|
2073
|
+
`# artifact`; else grid for a model-level tag that lists `tiles` or
|
|
2074
|
+
carries a `dashboard { … }` grid tag; else linear. A tag that sets
|
|
2075
|
+
`kind=` is no report (`report-kind-removed`), and neither is a linear
|
|
2076
|
+
tag that lists no `tiles`: that is the retired `run:` cell format
|
|
2077
|
+
(`report-cells-removed`). An empty `tiles=[]` is a linear report with
|
|
2078
|
+
no tiles yet.
|
|
2072
2079
|
|
|
2073
2080
|
A report is identified by its `path`. `name`, its basename, is a
|
|
2074
2081
|
display label only: two reports may share one.
|
|
@@ -2125,15 +2132,13 @@ paths:
|
|
|
2125
2132
|
description: |
|
|
2126
2133
|
Everything a viewer needs to render one report, addressed by its path in
|
|
2127
2134
|
the package, including its extension, exactly as list-reports gives
|
|
2128
|
-
it (`sales/q3.malloy`). A report
|
|
2135
|
+
it (`sales/q3.malloy`). A `.malloy` report, of either layout, carries the
|
|
2129
2136
|
manifest fields (`tiles` or `query`, `dashboardColumns`,
|
|
2130
2137
|
`startingGivens`, `autorun`, `givens`): its tiles run through the model
|
|
2131
|
-
query endpoint with `givens`, using `path` as the model. A
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
`query` and `path` as the model; a `.malloynb`'s through the
|
|
2136
|
-
deprecated execute-notebook-cell.
|
|
2138
|
+
query endpoint with `givens`, using `path` as the model. A
|
|
2139
|
+
`.malloynb`, the one cell format left, carries `notebook` instead: its
|
|
2140
|
+
cells as get-notebook returned them, run through the deprecated
|
|
2141
|
+
execute-notebook-cell.
|
|
2137
2142
|
parameters:
|
|
2138
2143
|
- name: environmentName
|
|
2139
2144
|
in: path
|
|
@@ -3959,11 +3964,8 @@ components:
|
|
|
3959
3964
|
with that error instead of opening. The per-file report findings
|
|
3960
3965
|
each name their line and the fix and carry a `code`; they are
|
|
3961
3966
|
computed at discovery and are also returned by `/compile` at file
|
|
3962
|
-
and package scope.
|
|
3963
|
-
`notebook-
|
|
3964
|
-
(a statement or a tag above a served notebook's `## artifact`),
|
|
3965
|
-
`notebook-markdown-above-artifact` (a `(markdown)` annotation above
|
|
3966
|
-
it), `notebook-columns-conflict` (a tiled dashboard's
|
|
3967
|
+
and package scope. These codes are `error` and fail `/compile`:
|
|
3968
|
+
`notebook-columns-conflict` (a tiled dashboard's
|
|
3967
3969
|
`dashboard_columns` disagrees with `dashboard { columns }`),
|
|
3968
3970
|
`notebook-markdown-opener-text` (more than a
|
|
3969
3971
|
name after `(markdown)` on a block's opener),
|
|
@@ -3973,10 +3975,12 @@ components:
|
|
|
3973
3975
|
(the reader could not read a linear report's cells), plus
|
|
3974
3976
|
`report-kind-removed` (a tag that sets `kind=`, which is no longer
|
|
3975
3977
|
read, so the file is not a report; the finding names the `layout=`
|
|
3976
|
-
to write)
|
|
3977
|
-
`
|
|
3978
|
-
|
|
3979
|
-
|
|
3978
|
+
to write), `report-cells-removed` (a linear tag that lists no
|
|
3979
|
+
`tiles`, the retired `run:` cell format, so the file is not a
|
|
3980
|
+
report; the fix is to list its tiles in `tiles=[…]`) and
|
|
3981
|
+
`report-layout-unknown` (a `layout=` other than `grid` or
|
|
3982
|
+
`linear`). The rest are `warn` (a mistyped `(markdown)` opener, a
|
|
3983
|
+
block that never closes, and similar).
|
|
3980
3984
|
Skill and agent findings, all `warn`: a package skill under
|
|
3981
3985
|
`skills/` that is not served (unreadable or linked-out `SKILL.md`,
|
|
3982
3986
|
a frontmatter `name` that is not its directory name, a `skills/`
|
|
@@ -4983,15 +4987,15 @@ components:
|
|
|
4983
4987
|
description: >-
|
|
4984
4988
|
Human title: the artifact tag's `title`, else the first line of the
|
|
4985
4989
|
`"` notes above the tag, else,
|
|
4986
|
-
for a
|
|
4990
|
+
for a `.malloynb`, its first markdown heading, else `name`.
|
|
4987
4991
|
description:
|
|
4988
4992
|
type: string
|
|
4989
4993
|
description: The report's doc comment, when it has one.
|
|
4990
4994
|
editable:
|
|
4991
4995
|
type: boolean
|
|
4992
4996
|
description: >-
|
|
4993
|
-
Whether the builder opens it as it is:
|
|
4994
|
-
for a
|
|
4997
|
+
Whether the builder opens it as it is: true for a `.malloy` report,
|
|
4998
|
+
false for a `.malloynb`.
|
|
4995
4999
|
error:
|
|
4996
5000
|
type: string
|
|
4997
5001
|
description: >-
|
|
@@ -5000,11 +5004,10 @@ components:
|
|
|
5000
5004
|
|
|
5001
5005
|
ReportManifest:
|
|
5002
5006
|
description: |
|
|
5003
|
-
A `Report` plus what a viewer needs to draw it. A report
|
|
5004
|
-
|
|
5005
|
-
`
|
|
5006
|
-
|
|
5007
|
-
linear report written as `run:` cells, or a `.malloynb`, carries
|
|
5007
|
+
A `Report` plus what a viewer needs to draw it. A `.malloy` report, of
|
|
5008
|
+
either layout, carries `tiles`, `dashboardColumns`, `startingGivens`,
|
|
5009
|
+
`autorun` and `givens`, whose tiles and suggest queries run through
|
|
5010
|
+
`POST …/models/{path}/query` with `givens`. A `.malloynb` carries
|
|
5008
5011
|
`notebook` instead.
|
|
5009
5012
|
allOf:
|
|
5010
5013
|
- $ref: "#/components/schemas/Report"
|
|
@@ -5014,7 +5017,8 @@ components:
|
|
|
5014
5017
|
type: array
|
|
5015
5018
|
description: >-
|
|
5016
5019
|
The report's tiles, each run as its own query (or shown as text),
|
|
5017
|
-
in order. Absent on a
|
|
5020
|
+
in order. Absent on a `.malloynb`, and on a report that failed
|
|
5021
|
+
to compile.
|
|
5018
5022
|
items:
|
|
5019
5023
|
$ref: "#/components/schemas/ReportTile"
|
|
5020
5024
|
dashboardColumns:
|
|
@@ -5049,12 +5053,9 @@ components:
|
|
|
5049
5053
|
allOf:
|
|
5050
5054
|
- $ref: "#/components/schemas/ReportCells"
|
|
5051
5055
|
description: >-
|
|
5052
|
-
For a
|
|
5053
|
-
|
|
5054
|
-
|
|
5055
|
-
`query`; a `.malloynb`'s with execute-notebook-cell. Absent on a
|
|
5056
|
-
report written as tiles, and on a
|
|
5057
|
-
report that failed to compile.
|
|
5056
|
+
For a `.malloynb`: its cells and model, each cell run with
|
|
5057
|
+
execute-notebook-cell. Absent on a `.malloy` report, and on a
|
|
5058
|
+
`.malloynb` that failed to compile.
|
|
5058
5059
|
|
|
5059
5060
|
ReportTile:
|
|
5060
5061
|
type: object
|
|
@@ -5151,8 +5152,8 @@ components:
|
|
|
5151
5152
|
ReportCells:
|
|
5152
5153
|
type: object
|
|
5153
5154
|
description: >-
|
|
5154
|
-
A linear report
|
|
5155
|
-
and its model.
|
|
5155
|
+
A `.malloynb`, or a linear `.malloy` report read as cells (its
|
|
5156
|
+
definitions, then its tiles): its cells, unexecuted, and its model.
|
|
5156
5157
|
properties:
|
|
5157
5158
|
type:
|
|
5158
5159
|
type: string
|
|
@@ -5481,8 +5482,7 @@ components:
|
|
|
5481
5482
|
description: >-
|
|
5482
5483
|
The tile layout of a linear report written as one (`## artifact {
|
|
5483
5484
|
layout=linear tiles=[…] }`), in the shape a dashboard has, with
|
|
5484
|
-
`layout` `linear` and one column. Absent on a
|
|
5485
|
-
cells. Its tiles run through the model query endpoint at
|
|
5485
|
+
`layout` `linear` and one column. Absent on a `.malloynb`. Its tiles run through the model query endpoint at
|
|
5486
5486
|
`modelPath`; `notebookCells` carries the same content as cells for
|
|
5487
5487
|
readers that do not draw a layout.
|
|
5488
5488
|
|
|
@@ -5650,6 +5650,13 @@ components:
|
|
|
5650
5650
|
host's to set. The builder withholds its control only when it edits
|
|
5651
5651
|
a document held as text; a saved dashboard or notebook renders it
|
|
5652
5652
|
as before. Absent otherwise.
|
|
5653
|
+
required:
|
|
5654
|
+
type: boolean
|
|
5655
|
+
description: >-
|
|
5656
|
+
True when the given declares no default, so a query that reads it
|
|
5657
|
+
fails until a value is supplied ("Given 'X' has no value and no
|
|
5658
|
+
default"). A report's reader asks for it before running the tiles
|
|
5659
|
+
that read it, rather than showing that error. Absent otherwise.
|
|
5653
5660
|
default:
|
|
5654
5661
|
type: string
|
|
5655
5662
|
description: The given's default value as a Malloy source literal
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as r,D as t,j as e,ab as i,aA as o}from"./index-gQEuz0Cg.js";function m(){const a=r(),{environmentName:n}=t();if(n){const s=i({environmentName:n});return e.jsx(o,{onSelectPackage:a,resourceUri:s})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing environment name"})})}export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as n,j as t,v as o}from"./index-gQEuz0Cg.js";function s(){const a=n();return t.jsx(o,{onClickEnvironment:a})}export{s as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as j,j as t,s as D,B as Pe,m as Q,e as ce,g as me,b as fe,r as h,u as ge,d as Ee,f as W,h as ye,T as J,i as K,k as Me,l as ze,n as Ie,o as be,p as Ce,q as De,t as de,w as Te,x as Be,y as A,z as L,M as Re,P as $e,A as He,S as Le,C as G,D as Z,E as Ne,H as Ae,F as Oe,U as pe,G as We,a as ee,I as u,J as Ve,K as Y,L as V,N as te,O as Fe,Q as Ue,R as ue,V as _e,W as re,X as ne,Y as oe,Z as Xe,_ as Ye,$ as qe,a0 as Qe}from"./index-gQEuz0Cg.js";import{u as Je,l as he}from"./editPageMounted-0kzl2sgg.js";import{i as Ke,w as Ge,a as Ze}from"./documentRoutes-D4TbSIi5.js";const et=j(t.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"})),tt=D(Pe,{name:"MuiBreadcrumbCollapsed"})(Q(({theme:e})=>({display:"flex",marginLeft:`calc(${e.spacing(1)} * 0.5)`,marginRight:`calc(${e.spacing(1)} * 0.5)`,...e.palette.mode==="light"?{backgroundColor:e.palette.grey[100],color:e.palette.grey[700]}:{backgroundColor:e.palette.grey[700],color:e.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...e.palette.mode==="light"?{backgroundColor:e.palette.grey[200]}:{backgroundColor:e.palette.grey[600]}},"&:active":{boxShadow:e.shadows[0],...e.palette.mode==="light"?{backgroundColor:ce(e.palette.grey[200],.12)}:{backgroundColor:ce(e.palette.grey[600],.12)}}}))),rt=D(et)({width:24,height:16});function nt(e){const{slots:r={},slotProps:o={},...n}=e,s=e;return t.jsx("li",{children:t.jsx(tt,{focusRipple:!0,...n,ownerState:s,children:t.jsx(rt,{as:r.CollapsedIcon,ownerState:s,...o.collapsedIcon})})})}function ot(e){return me("MuiBreadcrumbs",e)}const st=fe("MuiBreadcrumbs",["root","ol","li","separator"]),at=e=>{const{classes:r}=e;return ye({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},ot,r)},it=D(J,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(e,r)=>[{[`& .${st.li}`]:r.li},r.root]})({}),lt=D("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),ct=D("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function dt(e,r,o,n){return e.reduce((s,l,a)=>(a<e.length-1?s=s.concat(l,t.jsx(ct,{"aria-hidden":!0,className:r,ownerState:n,children:o},`separator-${a}`)):s.push(l),s),[])}const pt=h.forwardRef(function(r,o){const n=ge({props:r,name:"MuiBreadcrumbs"}),{children:s,className:l,component:a="nav",slots:d={},slotProps:x={},expandText:p="Show path",itemsAfterCollapse:m=1,itemsBeforeCollapse:b=1,maxItems:g=8,separator:k="/",...E}=n,[M,z]=h.useState(!1),v={...n,component:a,expanded:M,expandText:p,itemsAfterCollapse:m,itemsBeforeCollapse:b,maxItems:g,separator:k},I=at(v),T=Ee({elementType:d.CollapsedIcon,externalSlotProps:x.collapsedIcon,ownerState:v}),w=h.useRef(null),S=c=>{const P=()=>{z(!0);const y=w.current.querySelector("a[href],button,[tabindex]");y&&y.focus()};return b+m>=c.length?c:[...c.slice(0,b),t.jsx(nt,{"aria-label":p,slots:{CollapsedIcon:d.CollapsedIcon},slotProps:{collapsedIcon:T},onClick:P},"ellipsis"),...c.slice(c.length-m,c.length)]},B=h.Children.toArray(s).filter(c=>h.isValidElement(c)).map((c,P)=>t.jsx("li",{className:I.li,children:c},`child-${P}`));return t.jsx(it,{ref:o,component:a,color:"textSecondary",className:W(I.root,l),ownerState:v,...E,children:t.jsx(lt,{className:I.ol,ref:w,ownerState:v,children:dt(M||g&&B.length<=g?B:S(B),I.separator,k,v)})})});function ut(e,r,o){const n=r.getBoundingClientRect(),s=o&&o.getBoundingClientRect(),l=be(r);let a;if(r.fakeTransform)a=r.fakeTransform;else{const p=l.getComputedStyle(r);a=p.getPropertyValue("-webkit-transform")||p.getPropertyValue("transform")}let d=0,x=0;if(a&&a!=="none"&&typeof a=="string"){const p=a.split("(")[1].split(")")[0].split(",");d=parseInt(p[4],10),x=parseInt(p[5],10)}return e==="left"?s?`translateX(${s.right+d-n.left}px)`:`translateX(${l.innerWidth+d-n.left}px)`:e==="right"?s?`translateX(-${n.right-s.left-d}px)`:`translateX(-${n.left+n.width-d}px)`:e==="up"?s?`translateY(${s.bottom+x-n.top}px)`:`translateY(${l.innerHeight+x-n.top}px)`:s?`translateY(-${n.top-s.top+n.height-x}px)`:`translateY(-${n.top+n.height-x}px)`}function ht(e){return typeof e=="function"?e():e}function O(e,r,o){const n=ht(o),s=ut(e,r,n);s&&(r.style.webkitTransform=s,r.style.transform=s)}const xt=h.forwardRef(function(r,o){const n=K(),s={enter:n.transitions.easing.easeOut,exit:n.transitions.easing.sharp},l={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:a,appear:d=!0,children:x,container:p,direction:m="down",easing:b=s,in:g,onEnter:k,onEntered:E,onEntering:M,onExit:z,onExited:v,onExiting:I,style:T,timeout:w=l,TransitionComponent:S=Me,...B}=r,c=h.useRef(null),P=ze(Ie(x),c,o),y=i=>f=>{i&&(f===void 0?i(c.current):i(c.current,f))},F=y((i,f)=>{O(m,i,p),De(i),k&&k(i,f)}),ae=y((i,f)=>{const H=de({timeout:w,style:T,easing:b},{mode:"enter"});i.style.webkitTransition=n.transitions.create("-webkit-transform",{...H}),i.style.transition=n.transitions.create("transform",{...H}),i.style.webkitTransform="none",i.style.transform="none",M&&M(i,f)}),R=y(E),$=y(I),C=y(i=>{const f=de({timeout:w,style:T,easing:b},{mode:"exit"});i.style.webkitTransition=n.transitions.create("-webkit-transform",f),i.style.transition=n.transitions.create("transform",f),O(m,i,p),z&&z(i)}),U=y(i=>{i.style.webkitTransition="",i.style.transition="",v&&v(i)}),_=i=>{a&&a(c.current,i)},N=h.useCallback(()=>{c.current&&O(m,c.current,p)},[m,p]);return h.useEffect(()=>{if(g||m==="down"||m==="right")return;const i=Ce(()=>{c.current&&O(m,c.current,p)}),f=be(c.current);return f.addEventListener("resize",i),()=>{i.clear(),f.removeEventListener("resize",i)}},[m,g,p]),h.useEffect(()=>{g||N()},[g,N]),t.jsx(S,{nodeRef:c,onEnter:F,onEntered:R,onEntering:ae,onExit:C,onExited:U,onExiting:$,addEndListener:_,appear:d,in:g,timeout:w,...B,children:(i,{ownerState:f,...H})=>h.cloneElement(x,{ref:P,style:{visibility:i==="exited"&&!g?"hidden":void 0,...T,...x.props.style},...H})})});function mt(e){return me("MuiDrawer",e)}fe("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]);const ve=(e,r)=>{const{ownerState:o}=e;return[r.root,(o.variant==="permanent"||o.variant==="persistent")&&r.docked,r.modal]},ft=e=>{const{classes:r,anchor:o,variant:n}=e,s={root:["root",`anchor${L(o)}`],docked:[(n==="permanent"||n==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${L(o)}`,n!=="temporary"&&`paperAnchorDocked${L(o)}`]};return ye(s,mt,r)},gt=D(Re,{name:"MuiDrawer",slot:"Root",overridesResolver:ve})(Q(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),yt=D("div",{shouldForwardProp:He,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:ve})({flex:"0 0 auto"}),bt=D($e,{name:"MuiDrawer",slot:"Paper",overridesResolver:(e,r)=>{const{ownerState:o}=e;return[r.paper,r[`paperAnchor${L(o.anchor)}`],o.variant!=="temporary"&&r[`paperAnchorDocked${L(o.anchor)}`]]}})(Q(({theme:e})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(e.vars||e).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:r})=>r.anchor==="left"&&r.variant!=="temporary",style:{borderRight:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="top"&&r.variant!=="temporary",style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="right"&&r.variant!=="temporary",style:{borderLeft:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="bottom"&&r.variant!=="temporary",style:{borderTop:`1px solid ${(e.vars||e).palette.divider}`}}]}))),je={left:"right",right:"left",top:"down",bottom:"up"};function vt(e){return["left","right"].includes(e)}function jt({direction:e},r){return e==="rtl"&&vt(r)?je[r]:r}const kt=h.forwardRef(function(r,o){const n=ge({props:r,name:"MuiDrawer"}),s=K(),l=Te(),a={enter:s.transitions.duration.enteringScreen,exit:s.transitions.duration.leavingScreen},{anchor:d="left",BackdropProps:x,children:p,className:m,elevation:b=16,hideBackdrop:g=!1,ModalProps:{BackdropProps:k,...E}={},onClose:M,open:z=!1,PaperProps:v={},SlideProps:I,TransitionComponent:T,transitionDuration:w=a,variant:S="temporary",slots:B={},slotProps:c={},...P}=n,y=h.useRef(!1);h.useEffect(()=>{y.current=!0},[]);const F=jt({direction:l?"rtl":"ltr"},d),R={...n,anchor:d,elevation:b,open:z,variant:S,...P},$=ft(R),C={slots:{transition:T,...B},slotProps:{paper:v,transition:I,...c,backdrop:Be(c.backdrop||{...x,...k},{transitionDuration:w})}},[U,_]=A("root",{ref:o,elementType:gt,className:W($.root,$.modal,m),shouldForwardComponentProp:!0,ownerState:R,externalForwardedProps:{...C,...P,...E},additionalProps:{open:z,onClose:M,hideBackdrop:g,slots:{backdrop:C.slots.backdrop},slotProps:{backdrop:C.slotProps.backdrop}}}),[N,i]=A("paper",{elementType:bt,shouldForwardComponentProp:!0,className:W($.paper,v.className),ownerState:R,externalForwardedProps:C,additionalProps:{elevation:S==="temporary"?b:0,square:!0,...S==="temporary"&&{role:"dialog","aria-modal":"true"}}}),[f,H]=A("docked",{elementType:yt,ref:o,className:W($.root,$.docked,m),ownerState:R,externalForwardedProps:C,additionalProps:P}),[we,Se]=A("transition",{elementType:xt,ownerState:R,externalForwardedProps:C,additionalProps:{in:z,direction:je[F],timeout:w,appear:y.current}}),ie=t.jsx(N,{...i,children:p});if(S==="permanent")return t.jsx(f,{...H,children:ie});const le=t.jsx(we,{...Se,children:ie});return S==="persistent"?t.jsx(f,{...H,children:le}):t.jsx(U,{..._,children:le})}),wt=j([t.jsx("path",{d:"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},"0"),t.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),St=j(t.jsx("path",{d:"M10.85 12.65h2.3L12 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9z"})),Pt=j(t.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"})),Et=j(t.jsx("path",{d:"M9.37 5.51c-.18.64-.27 1.31-.27 1.99 0 4.08 3.32 7.4 7.4 7.4.68 0 1.35-.09 1.99-.27C17.45 17.19 14.93 19 12 19c-3.86 0-7-3.14-7-7 0-2.93 1.81-5.45 4.37-6.49M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1"})),Mt=j(t.jsx("path",{d:"m14.06 9.02.92.92L5.92 19H5v-.92zM17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z"})),zt=j(t.jsx("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"})),It=j(t.jsx("path",{d:"m12 5.69 5 4.5V18h-2v-6H9v6H7v-7.81zM12 3 2 12h3v8h6v-6h2v6h6v-8h3z"})),Ct=j(t.jsx("path",{d:"M12 9c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3m0-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5M2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1m18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1m0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0z"})),Dt=j(t.jsx("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3z"})),Tt=j([t.jsx("path",{d:"M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.04 10 9c0 3.31-2.69 6-6 6h-1.77c-.28 0-.5.22-.5.5 0 .12.05.23.13.33.41.47.64 1.06.64 1.67 0 1.38-1.12 2.5-2.5 2.5m0-18c-4.41 0-8 3.59-8 8s3.59 8 8 8c.28 0 .5-.22.5-.5 0-.16-.08-.28-.14-.35-.41-.46-.63-1.05-.63-1.65 0-1.38 1.12-2.5 2.5-2.5H16c2.21 0 4-1.79 4-4 0-3.86-3.59-7-8-7"},"0"),t.jsx("circle",{cx:"6.5",cy:"11.5",r:"1.5"},"1"),t.jsx("circle",{cx:"9.5",cy:"7.5",r:"1.5"},"2"),t.jsx("circle",{cx:"14.5",cy:"7.5",r:"1.5"},"3"),t.jsx("circle",{cx:"17.5",cy:"11.5",r:"1.5"},"4")]);function q(e){return t.jsxs(Le,{...e,viewBox:"0 0 24 24",sx:{fill:"none",...e.sx},children:[t.jsx("rect",{x:"3.25",y:"4.75",width:"17.5",height:"14.5",rx:"2.25",stroke:"currentColor",strokeWidth:"1.5"}),t.jsx("line",{x1:"8.5",y1:"5",x2:"8.5",y2:"19",stroke:"currentColor",strokeWidth:"1.5"})]})}const Bt=/\.malloy(nb)?$/;function Rt(){const{pathname:e,search:r}=G(),o=Z(),n=Ne(),s=Ae(),l=Je(),a=o.environmentName??"",d=o.packageName??"",x=o["*"]??"",p=a!==""&&d!==""&&x!==""&&!Bt.test(x),{reports:m,settled:b}=Oe(a,d,void 0,p);if(!p||s)return null;const g=x.replace(/\/$/,""),k=Ke(r),E=e.replace(/\/$/,"");return k?l?null:t.jsx(pe,{label:"View",onClick:()=>n(`${E}${Ge(r)}`)}):(b?We(`${g}.malloy`,m):void 0)?.editable?t.jsx("span",{onPointerEnter:()=>void he(),onFocus:()=>void he(),children:t.jsx(pe,{label:"Edit",icon:t.jsx(Mt,{}),onClick:()=>n(`${E}${Ze(r)}`)})}):null}function X({label:e,onClick:r,current:o=!1}){return t.jsx(Ve,{clickable:!0,onClick:r,label:e,size:"small","aria-label":`Navigate to ${e}`,"aria-current":o?"page":void 0,sx:n=>({backgroundColor:"transparent",border:"none",color:o?"text.primary":"text.secondary",fontWeight:o?500:400,fontSize:13,height:28,cursor:"pointer",borderRadius:"6px",maxWidth:320,"& .MuiChip-label":{px:.75,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},"&:hover":{backgroundColor:n.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"grey.100"}})})}function $t(){const e=Z(),r=e["*"]?e["*"].replace(/\/$/,""):void 0,o=ee();return!e.environmentName&&!e.packageName&&!r?null:t.jsx(u,{sx:{display:"flex",alignItems:"center",minWidth:0},children:t.jsxs(pt,{"aria-label":"breadcrumb",separator:t.jsx(u,{component:"span","aria-hidden":!0,sx:{color:"text.disabled"},children:"/"}),children:[e.environmentName&&t.jsx(X,{label:e.environmentName,current:!e.packageName&&!r,onClick:n=>o(`/${e.environmentName}/`,n)}),e.packageName&&t.jsx(X,{label:e.packageName,current:!r,onClick:n=>o(`/${e.environmentName}/${e.packageName}/`,n)}),r&&t.jsx(X,{label:r,current:!0,onClick:n=>o(`/${e.environmentName}/${e.packageName}/${r}`,n)})]})})}const Ht=260,Lt=64;function ke({isCollapsed:e,onToggleCollapse:r,logoHeader:o}){return t.jsxs(u,{sx:{height:"100dvh",width:e?Lt:Ht,flexShrink:0,display:"flex",flexDirection:"column",backgroundColor:"background.paper",transition:"width 0.2s cubic-bezier(0.4, 0, 0.2, 1)",overflow:"hidden"},children:[t.jsx(Nt,{isCollapsed:e,onToggleCollapse:r,logoHeader:o}),t.jsxs(u,{sx:{flex:1,overflowY:"auto",overflowX:"hidden",py:1},children:[t.jsx(At,{isCollapsed:e}),t.jsx(Ot,{isCollapsed:e})]}),t.jsx(Wt,{isCollapsed:e})]})}function Nt({isCollapsed:e,onToggleCollapse:r,logoHeader:o}){const n=ee();return o?t.jsxs(u,{sx:{height:56,display:"flex",alignItems:"center",justifyContent:"space-between",px:e?0:2,flexShrink:0},children:[o,t.jsx(Y,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(q,{fontSize:"small"})})]}):t.jsxs(u,{sx:{minHeight:56,display:"flex",flexDirection:e?"column":"row",alignItems:"center",justifyContent:e?"center":"space-between",gap:e?.5:0,py:e?1:0,px:e?0:2,flexShrink:0},children:[t.jsxs(u,{onClick:s=>n("/",s),sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer",minWidth:0},children:[t.jsx(u,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:24,height:24,flexShrink:0}}),!e&&t.jsx(J,{variant:"subtitle1",sx:{color:"text.primary",fontWeight:500,letterSpacing:"-0.025em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"Malloy Publisher"})]}),t.jsx(V,{title:e?"Expand sidebar":"Collapse sidebar",placement:"right",children:t.jsx(Y,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(q,{fontSize:"small"})})})]})}function At({isCollapsed:e}){const o=G().pathname==="/";return t.jsx(te,{sx:{py:0},children:t.jsx(se,{icon:t.jsx(It,{fontSize:"small"}),label:"Home",to:"/",selected:o,isCollapsed:e})})}function Ot({isCollapsed:e}){const{apiClients:r}=Fe(),o=Z(),{data:n}=Ue({queryKey:["environments"],queryFn:()=>r.environments.listEnvironments()}),s=n?.data??[];return s.length===0?null:t.jsxs(u,{sx:{mt:1},children:[!e&&t.jsx(J,{variant:"caption",sx:{display:"block",px:3,py:1,color:"text.secondary",fontWeight:500,textTransform:"uppercase",fontSize:"0.6875rem",letterSpacing:"0.5px"},children:"Environments"}),t.jsx(te,{sx:{py:0},children:s.map(l=>{const a=l.name??"";return t.jsx(se,{icon:t.jsx(zt,{fontSize:"small"}),label:a,to:`/${a}`,selected:o.environmentName===a,isCollapsed:e},a)})})]})}function Wt({isCollapsed:e}){const{pathname:r}=G(),o=[{label:"Malloy Docs",href:ue.docsHome,icon:t.jsx(wt,{fontSize:"small"}),external:!0},{label:"Publisher Docs",href:ue.publishing,icon:t.jsx(Dt,{fontSize:"small"}),external:!0},{label:"Publisher API",href:"/api-doc.html",icon:t.jsx(Pt,{fontSize:"small"}),external:!1}];return t.jsxs(te,{sx:{py:1},children:[t.jsx(se,{icon:t.jsx(Tt,{fontSize:"small"}),label:"Theme",to:"/settings/theme",selected:r.startsWith("/settings/theme"),isCollapsed:e}),t.jsx(_t,{isCollapsed:e}),o.map(n=>t.jsx(Vt,{label:n.label,href:n.href,icon:n.icon,external:n.external,isCollapsed:e},n.label))]})}function se({icon:e,label:r,to:o,selected:n,isCollapsed:s}){const l=ee(),a=t.jsxs(re,{selected:n,onClick:d=>l(o,d),sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(ne,{sx:{minWidth:s?0:36,justifyContent:"center",color:n?"text.primary":"text.secondary"},children:e}),!s&&t.jsx(oe,{primary:r,primaryTypographyProps:{variant:"body2",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(V,{title:r,placement:"right",children:t.jsx(u,{children:a})}):a}function Vt({label:e,href:r,icon:o,external:n,isCollapsed:s}){const l=t.jsxs(re,{component:"a",href:r,target:n?"_blank":void 0,rel:n?"noopener noreferrer":void 0,sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(ne,{sx:{minWidth:s?0:36,justifyContent:"center",color:"text.secondary"},children:o}),!s&&t.jsx(oe,{primary:e,primaryTypographyProps:{variant:"body2",sx:{color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(V,{title:e,placement:"right",children:t.jsx(u,{children:l})}):l}const Ft={light:"dark",dark:"auto",auto:"light"},Ut={light:"Light mode",dark:"Dark mode",auto:"Auto mode"},xe={light:"Light mode (click for dark)",dark:"Dark mode (click for auto)",auto:"Auto mode (follows OS, click for light)"};function _t({isCollapsed:e}){const{mode:r,userChoice:o,setMode:n,allowUserToggle:s}=_e();if(!s)return null;const l=o??r,a=l==="auto"?St:l==="dark"?Et:Ct,d=t.jsxs(re,{"aria-label":xe[l],onClick:()=>n(Ft[l]),sx:{justifyContent:e?"center":"flex-start",px:e?0:2},children:[t.jsx(ne,{sx:{minWidth:e?0:36,justifyContent:"center",color:"text.secondary"},children:t.jsx(a,{fontSize:"small"})}),!e&&t.jsx(oe,{primary:Ut[l],primaryTypographyProps:{variant:"body2",sx:{color:"text.secondary",whiteSpace:"nowrap"}}})]});return t.jsx(V,{title:xe[l],placement:"right",disableHoverListener:!e,children:t.jsx(u,{children:d})})}function Xt({open:e,onClose:r,logoHeader:o}){return t.jsx(kt,{anchor:"left",open:e,onClose:r,ModalProps:{keepMounted:!0},sx:{display:{xs:"block",md:"none"},"& .MuiDrawer-paper":{boxSizing:"border-box",width:260}},children:t.jsx(ke,{isCollapsed:!1,onToggleCollapse:r,logoHeader:o})})}function Jt({headerProps:e}){const r=K(),o=Xe(r.breakpoints.up("md")),[n,s]=h.useState(!1),[l,a]=h.useState(!1);return h.useEffect(()=>{o&&n&&s(!1)},[o,n]),t.jsxs(u,{sx:{height:"100dvh",display:"flex",flexDirection:"row",bgcolor:"background.default"},children:[o&&t.jsx(ke,{isCollapsed:l,onToggleCollapse:()=>a(d=>!d),logoHeader:e?.logoHeader}),t.jsxs(u,{component:"main",sx:{flex:1,display:"flex",flexDirection:"column",minWidth:0},children:[t.jsxs(u,{sx:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",height:Ye.headerHeight,px:{xs:1,md:3},backgroundColor:"background.default"},children:[t.jsx(u,{sx:{display:{xs:"flex",md:"none"},alignItems:"center",mr:1},children:t.jsx(Y,{size:"small",onClick:()=>s(!0),"aria-label":"Open navigation",children:t.jsx(q,{fontSize:"small"})})}),t.jsx(u,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:t.jsx($t,{})}),t.jsxs(u,{id:"header-actions-portal",sx:{display:"flex",alignItems:"center",flexShrink:0,gap:1},children:[t.jsx(Rt,{}),e?.endCap]})]}),t.jsx(u,{sx:{flex:1,overflow:"auto",minWidth:320,minHeight:0},children:t.jsx(h.Suspense,{fallback:t.jsx(Qe,{}),children:t.jsx(qe,{})})})]}),t.jsx(Xt,{open:n,onClose:()=>s(!1),logoHeader:e?.logoHeader})]})}export{Jt as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.es-B3P9tIm3.js","assets/index-gQEuz0Cg.js","assets/index-DUqldpo0.css","assets/ToggleButtonGroup-TKxhg0Mg.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{g as ne,b as re,a1 as E,a2 as se,r as d,u as oe,i as ae,j as t,f as ie,z as W,h as le,s as ce,T as C,m as ue,a3 as de,a4 as M,a as B,F as I,a5 as pe,a6 as fe,a7 as A,a8 as N,a9 as V,H as z,I as x,aa as he,ab as R,ac as O,ad as xe,ae as me,af as ge,ag as ye,ah as ve,E as be,C as $,ai as je,aj as ke,ak as q,al as G,am as Ce,an as we,ao as H,ap as Ee,aq as X,G as Re,ar as De,as as Se,a0 as P,at as T,D as $e,O as Ae,au as Le,av as F,aw as Me}from"./index-gQEuz0Cg.js";import{i as L,w as Pe,a as J,l as Te}from"./documentRoutes-D4TbSIi5.js";import{a as Fe,l as K}from"./editPageMounted-0kzl2sgg.js";function _e(e){return ne("MuiLink",e)}const Ue=re("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),We=({theme:e,ownerState:r})=>{const n=r.color;if("colorSpace"in e&&e.colorSpace){const u=E(e,`palette.${n}.main`)||E(e,`palette.${n}`)||r.color;return e.alpha(u,.4)}const o=E(e,`palette.${n}.main`,!1)||E(e,`palette.${n}`,!1)||r.color,a=E(e,`palette.${n}.mainChannel`)||E(e,`palette.${n}Channel`);return"vars"in e&&a?`rgba(${a} / 0.4)`:se(o,.4)},_={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},Be=e=>{const{classes:r,component:n,focusVisible:o,underline:a}=e,u={root:["root",`underline${W(a)}`,n==="button"&&"button",o&&"focusVisible"]};return le(u,_e,r)},Ie=ce(C,{name:"MuiLink",slot:"Root",overridesResolver:(e,r)=>{const{ownerState:n}=e;return[r.root,r[`underline${W(n.underline)}`],n.component==="button"&&r.button]}})(ue(({theme:e})=>({variants:[{props:{underline:"none"},style:{textDecoration:"none"}},{props:{underline:"hover"},style:{textDecoration:"none","&:hover":{textDecoration:"underline"}}},{props:{underline:"always"},style:{textDecoration:"underline","&:hover":{textDecorationColor:"inherit"}}},{props:({underline:r,ownerState:n})=>r==="always"&&n.color!=="inherit",style:{textDecorationColor:"var(--Link-underlineColor)"}},{props:({underline:r,ownerState:n})=>r==="always"&&n.color==="inherit",style:e.colorSpace?{textDecorationColor:e.alpha("currentColor",.4)}:null},...Object.entries(e.palette).filter(de()).map(([r])=>({props:{underline:"always",color:r},style:{"--Link-underlineColor":e.alpha((e.vars||e).palette[r].main,.4)}})),{props:{underline:"always",color:"textPrimary"},style:{"--Link-underlineColor":e.alpha((e.vars||e).palette.text.primary,.4)}},{props:{underline:"always",color:"textSecondary"},style:{"--Link-underlineColor":e.alpha((e.vars||e).palette.text.secondary,.4)}},{props:{underline:"always",color:"textDisabled"},style:{"--Link-underlineColor":(e.vars||e).palette.text.disabled}},{props:{component:"button"},style:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Ue.focusVisible}`]:{outline:"auto"}}}]}))),Ne=d.forwardRef(function(r,n){const o=oe({props:r,name:"MuiLink"}),a=ae(),{className:u,color:s="primary",component:l="a",onBlur:i,onFocus:c,TypographyClasses:m,underline:h="always",variant:p="inherit",sx:f,...y}=o,[v,k]=d.useState(!1),g=j=>{M(j.target)||k(!1),i&&i(j)},w=j=>{M(j.target)&&k(!0),c&&c(j)},b={...o,color:s,component:l,focusVisible:v,underline:h,variant:p},S=Be(b);return t.jsx(Ie,{color:s,className:ie(S.root,u),classes:m,component:l,onBlur:g,onFocus:w,ref:n,ownerState:b,variant:p,...y,sx:[..._[s]===void 0?[{color:s}]:[],...Array.isArray(f)?f:[f]],style:{...y.style,...h==="always"&&s!=="inherit"&&!_[s]&&{"--Link-underlineColor":We({theme:a,ownerState:b})}}})});function Ve(e,r){const n=B(),{reports:o,settled:a,isError:u}=I(e,r),s=a&&!u;return d.useCallback((l,i)=>{const c=l.path;if(!pe(c))return"malformed";const m=fe(c,o),h=A(e,r,m.kind==="path"?m.report.path:c),p=new URLSearchParams(l.givens).toString();return n(h+(p?`?${p}`:""),i),m.kind==="path"?"resolved":s?"unresolved":"unverified"},[n,e,r,o,s])}const ze=1200,D={p:3,maxWidth:ze,mx:"auto"},Y={...D,pt:6},Oe='[data-tile-kind="query"]',qe=".malloy-render, .malloy-table, [role='alert'], .MuiAlert-root",Ge=3e3;function Q(e,r,n,o){const a=d.useRef(n);a.current=n;const u=d.useRef(!1);d.useEffect(()=>{if(!a.current||u.current)return;let s=0;const l={},i=()=>{clearTimeout(m),l.beat!==void 0&&clearInterval(l.beat),cancelAnimationFrame(s),l.observer?.disconnect()},c=()=>{u.current||(u.current=!0,i(),a.current?.())},m=setTimeout(c,Ge);if(!r)return()=>clearTimeout(m);const h=()=>{const p=e.current;if(!p||o&&p.querySelector(o)===null)return;const f=window.innerHeight;[...p.querySelectorAll(Oe)].filter(v=>{if(v.getBoundingClientRect().top>=f)return!1;const g=v.querySelector(qe);return!g||g.getBoundingClientRect().height<8}).length===0&&s===0&&(s=requestAnimationFrame(()=>{s=requestAnimationFrame(c)}))};return l.observer=new MutationObserver(h),e.current&&l.observer.observe(e.current,{childList:!0,subtree:!0}),l.beat=setInterval(h,50),h(),i},[r,e,o])}function Z({environmentName:e,packageName:r,path:n,editable:o=n.endsWith(".malloy"),onReady:a}){const u=d.useRef(null);Q(u,!0,a,`.${me.report}`);const{params:s,onGivensChange:l}=N(),i=Ve(e,r),c=B(),m=d.useMemo(()=>V({environmentName:e,packageName:r}),[e,r]),h=z();return d.useEffect(()=>{if(!o||h)return;const p=()=>void xe(()=>import("./index.es-B3P9tIm3.js"),__vite__mapDeps([0,1,2,3])),f=window.requestIdleCallback;if(f){const v=f(p);return()=>window.cancelIdleCallback?.(v)}const y=setTimeout(p,1500);return()=>clearTimeout(y)},[o,h]),t.jsx(x,{ref:u,sx:Y,children:n.endsWith(".malloynb")?t.jsx(he,{resourceUri:R({environmentName:e,packageName:r,modelPath:n}),givens:s,onGivensChange:l,onNavigate:c,onDrillNavigate:i,maxResultSize:1024*1024}):t.jsx(O,{resourceUri:R({environmentName:e,packageName:r}),path:n,givens:s,onGivensChange:l,onNavigate:i,onLinkNavigate:c,onEvent:m,maxResultSize:1024*1024})})}function He(){const[e,r]=d.useState(!1),n=d.useRef(!1),o=d.useRef(!1),a=d.useCallback(i=>{n.current=i,r(i)},[]),u=d.useCallback(()=>{o.current=!0},[]),s=ge(d.useCallback(({currentLocation:i,nextLocation:c})=>n.current&&!o.current&&(i.pathname!==c.pathname||L(i.search)!==L(c.search)),[]));d.useEffect(()=>{if(!e)return;const i=c=>{c.preventDefault(),c.returnValue=""};return window.addEventListener("beforeunload",i),()=>window.removeEventListener("beforeunload",i)},[e]);const l=t.jsx(ye,{open:s.state==="blocked",canSave:!1,onKeepEditing:()=>s.reset?.(),onDiscard:()=>s.proceed?.()});return{onDirtyChange:a,leaving:u,dialog:l}}const Xe=G.lazy(()=>K().then(e=>({default:e.ReportEditor}))),Je=G.lazy(()=>K().then(e=>({default:e.BuilderBar})));function Ke(){const[e,r]=d.useState(null);return d.useEffect(()=>{r(document.getElementById("header-actions-portal"))},[]),e}function ee({environmentName:e,packageName:r,path:n,layout:o="grid",onReady:a,quietLoading:u=!1,offstage:s=!1}){const l=He();Fe();const[i]=d.useState(ve),c=be(),{pathname:m,search:h}=$(),p=Ke(),[f,y]=d.useState(),v=d.useRef(null),k=z();Q(v,f!==void 0||k,a);const g=()=>c(`${m.replace(/\/$/,"")}${Pe(h)}`),w=d.useMemo(()=>V({environmentName:e,packageName:r}),[e,r]),b=t.jsx(O,{resourceUri:R({environmentName:e,packageName:r}),path:n,manifestStaleTime:1e4});return t.jsxs(x,{ref:v,sx:Y,children:[t.jsx(je,{children:t.jsx(d.Suspense,{fallback:u?null:b,children:t.jsx(Xe,{resourceUri:R({environmentName:e,packageName:r}),path:n,layout:o,keepDraft:i,onDirtyChange:l.onDirtyChange,onExit:g,onOpenModel:S=>c(`/${[e,r,...S.split("/")].map(encodeURIComponent).join("/")}`),onEvent:w,loading:u?null:b,onControlsChange:y},`${e}/${r}/${n}`)})}),l.dialog,p&&!s&&ke.createPortal(t.jsx(d.Suspense,{fallback:t.jsx(q,{variant:"contained",disableElevation:!0,onClick:g,children:"Done"}),children:t.jsx(Je,{controls:f,onDone:g})}),p)]})}function Ye({environmentName:e,packageName:r,routePath:n,edit:o,reports:a,children:u}){const{search:s}=$(),l=Ce(n);if(!l)return t.jsx(t.Fragment,{children:u});const i=we(l.name,a,l.prefer);return"found"in i?t.jsx(H,{replace:!0,to:`${A(e,r,i.found.path)}${o?J(s):s}`}):"ambiguous"in i?t.jsxs(x,{sx:D,children:[t.jsxs(C,{variant:"h6",sx:{fontWeight:"fontWeightMedium"},children:["More than one report is named ",l.name]}),t.jsx(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"This is an old link, which names a report by its file name alone. Open one by its path:"}),t.jsx(x,{component:"ul",sx:{mt:1},children:i.ambiguous.map(c=>t.jsx("li",{children:t.jsx(Ee,{to:A(e,r,c),style:{fontFamily:X},children:c})},c))})]}):t.jsx(t.Fragment,{children:u})}function Qe({environmentName:e,packageName:r,routePath:n,edit:o,notFound:a,notFoundUntilListed:u=!1}){const{reports:s,settled:l,isFetching:i,isError:c,refetch:m}=I(e,r),{search:h}=$(),p=`${n}.malloy`,f=l?Re(p,s):void 0,y=l&&!i&&!c,[v,k]=d.useState();d.useEffect(()=>{y&&k(p)},[y,p]);const g=f!==void 0||y||v===p,w=De(e,r,p,o&&g&&!f),b=te=>t.jsx(Ye,{environmentName:e,packageName:r,routePath:n,edit:o,reports:s,children:te});if(!g&&(u&&!o&&!f))return b(a);if(!g&&c&&!i)return t.jsx(x,{sx:D,children:t.jsxs(Se,{severity:"warning",action:t.jsx(q,{color:"inherit",size:"small",onClick:()=>void m(),children:"Retry"}),children:["Could not list this package's reports, so this page cannot tell what is at ",n,"."]})});if(!g)return t.jsx(P,{text:T.opening()});if(f)return t.jsx(Ze,{environmentName:e,packageName:r,path:f.path,editable:f.editable,layout:f.layout,edit:o});const j=o?void 0:Te(n);return j!==void 0?t.jsx(H,{replace:!0,to:`/${e}/${r}/${j.split("/").map(encodeURIComponent).join("/")}${J(h)}`}):b(o?w.settled?t.jsx(ee,{environmentName:e,packageName:r,path:p,layout:w.layout??"grid"}):t.jsx(P,{text:T.opening()}):a)}function Ze({environmentName:e,packageName:r,path:n,editable:o,layout:a,edit:u}){const[s,l]=d.useState(u?"editor":"reader"),i=u?"editor":"reader",c=i==="reader"||s==="reader",m=i==="editor"||s==="editor",h={position:"absolute",inset:0,visibility:"hidden",pointerEvents:"none",overflow:"hidden"};return t.jsxs(x,{sx:{position:"relative"},"data-switching":c&&m||void 0,children:[c&&t.jsx(x,{sx:s==="reader"?void 0:h,"aria-hidden":s!=="reader"||void 0,children:t.jsx(Z,{environmentName:e,packageName:r,path:n,...o!==void 0?{editable:o}:{},onReady:()=>{u||l("reader")}})},"reader"),m&&t.jsx(x,{sx:s==="editor"?void 0:h,"aria-hidden":s!=="editor"||void 0,children:t.jsx(ee,{environmentName:e,packageName:r,path:n,...a?{layout:a}:{},quietLoading:c,offstage:i!=="editor"||s!=="editor",onReady:()=>{u&&l("editor")}})},"editor")]})}function rt(){const e=$e(),{search:r}=$(),n=e["*"],{server:o}=Ae(),{params:a,onGivensChange:u}=N();if(!e.environmentName)return t.jsx("div",{children:t.jsx("h2",{children:"Missing environment name"})});if(!e.packageName)return t.jsx("div",{children:t.jsx("h2",{children:"Missing package name"})});if(n!==void 0&&n!==""&&!n.endsWith(".malloy")&&!n.endsWith(".malloynb")){const l=n.replace(/\/$/,""),i=l.startsWith("data-apps/"),c=i?t.jsx(Le,{resourceUri:R({environmentName:e.environmentName,packageName:e.packageName,modelPath:l.slice(10)})}):t.jsx(U,{environmentName:e.environmentName,packageName:e.packageName,modelPath:n,staticUrl:F({server:o,environmentName:e.environmentName,packageName:e.packageName,path:n})});return t.jsx(Qe,{environmentName:e.environmentName,packageName:e.packageName,routePath:l,edit:L(r),notFound:c,notFoundUntilListed:i})}const s=R({environmentName:e.environmentName,packageName:e.packageName,modelPath:n});return n?.endsWith(".malloy")?t.jsx(x,{sx:D,children:t.jsx(Me,{resourceUri:s,runOnDemand:!0,maxResultSize:512*1024,givens:a,onGivensChange:u})}):n?.endsWith(".malloynb")?t.jsx(Z,{environmentName:e.environmentName,packageName:e.packageName,path:n,editable:!1}):t.jsx(U,{environmentName:e.environmentName,packageName:e.packageName,modelPath:n??"",staticUrl:F({server:o,environmentName:e.environmentName,packageName:e.packageName,path:n??""})})}function U({packageName:e,modelPath:r,staticUrl:n}){const o=/\.[^./]+$/.test(r),a={fontFamily:X};return t.jsxs(x,{sx:D,children:[t.jsx(C,{variant:"h6",sx:{fontWeight:"fontWeightMedium"},children:"Nothing to open at this path"}),t.jsxs(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:[t.jsx(x,{component:"span",sx:a,children:r})," ","does not name a report, a"," ",t.jsx(x,{component:"span",sx:a,children:".malloy"})," ","or a"," ",t.jsx(x,{component:"span",sx:a,children:".malloynb"})," ","file in package"," ",t.jsx(x,{component:"span",sx:a,children:e}),". This address opens reports by their path without"," ",t.jsx(x,{component:"span",sx:a,children:".malloy"}),", and"," ",t.jsx(x,{component:"span",sx:a,children:".malloy"})," ","and"," ",t.jsx(x,{component:"span",sx:a,children:".malloynb"})," ","files."]}),o&&t.jsxs(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:["A file from the package's"," ",t.jsx(x,{component:"span",sx:a,children:"public/"})," ","directory is served at ",t.jsx(Ne,{href:n,children:n}),"."]}),t.jsx(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"The package lists its reports, models, and data apps."})]})}export{rt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as m,a as g,r as u,a9 as l,j as n,ab as p,ax as x}from"./index-gQEuz0Cg.js";import{d}from"./documentRoutes-D4TbSIi5.js";function j(){const{environmentName:e,packageName:a}=m(),s=g(),r=u.useMemo(()=>l({environmentName:e??"",packageName:a??""}),[e,a]);if(e)if(a){const t=p({environmentName:e,packageName:a});return n.jsx(x,{onClickPackageFile:s,onOpenDocument:({path:o,mode:i},c)=>s(d(e,a,o,i),c),resourceUri:t,onEvent:r})}else return n.jsx("div",{children:n.jsx("h2",{children:"Missing package name"})});else return n.jsx("div",{children:n.jsx("h2",{children:"Missing environment name"})})}export{j as default};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import{ae as ce,j as $,I as ae,r as p,aU as he,V as ue,aV as me,aH as be,aW as W,aX as ye,aY as pe,aZ as fe,a_ as ge,a$ as ve,b0 as we,b1 as oe}from"./index-gQEuz0Cg.js";const v=ce.drillCell;function ke(e,t){const r=new Set;let l;try{l=e.getMetadata()?.getAllFields()??[]}catch{return r}const o=new Set;for(const a of l)!a||t(a)||a.tag?.tag("hidden")===void 0&&o.add(a.tag?.text("label")??a.name);for(const a of l){if(!a||!t(a))continue;const n=a.tag?.text("label")??a.name;o.has(n)||r.add(n)}return r}function D(e){const t=/^\s*(\d+)/.exec(e.style?.gridColumn??"");return t?t[1]:void 0}function xe(e,t){if(t.size!==0)for(const r of e.querySelectorAll(".malloy-table")){const l=n=>n.closest(".malloy-table")===r,o=new Set;for(const n of r.querySelectorAll(".column-cell.th")){if(!l(n))continue;const i=(n.textContent??"").replace(/\u200b/g,"").trim(),b=D(n);b&&t.has(i)&&o.add(b)}if(o.size===0)continue;const a=new Set;for(const n of r.querySelectorAll(`.${v}[tabindex="0"]`)){if(!l(n))continue;const i=D(n);i&&(a.has(i)?n.tabIndex=-1:a.add(i))}for(const n of r.querySelectorAll(".column-cell.td")){if(!l(n))continue;const i=D(n),b=!n.querySelector(".value-null")&&(n.textContent??"").trim()!=="";if(i&&b&&o.has(i)&&!n.querySelector(".malloy-table")){if(n.classList.add(v),n.tabIndex===0)a.add(i);else{const f=a.has(i);f||a.add(i),n.tabIndex=f?-1:0}n.setAttribute("role","button")}}}}function Ce(e){const t=e.closest(".malloy-table"),r=D(e);return!t||!r?[]:Array.from(t.querySelectorAll(`.${v}`)).filter(l=>l.closest(".malloy-table")===t&&D(l)===r)}function ne(e,t){const r=Ce(e),l=r.indexOf(e);if(l===-1)return;const o=t==="first"?r[0]:t==="last"?r[r.length-1]:r[Math.min(Math.max(l+t,0),r.length-1)];if(o){for(const a of r)a.tabIndex=a===o?0:-1;return o}}function Ae(e){return{background:e.dashboardRoot,tableBackground:e.tableBackground,tableHeaderColor:e.tableHeader,tableBodyColor:e.tableBody,tableBorder:e.border,tablePinnedBackground:e.tableHeaderBackground,tablePinnedBorder:e.pinnedBorder,tableFontSize:`${e.font.size}px`,fontFamily:e.font.family,mapColor:e.mapColor}}function Se(e){const{foreground:t,axisFaint:r,gridline:l,font:o}=e,a={background:e.background,font:o.family,title:{color:t,font:o.family},axis:{labelColor:t,titleColor:t,domainColor:r,tickColor:r,gridColor:l,labelFont:o.family,titleFont:o.family},legend:{labelColor:t,titleColor:t,labelFont:o.family,titleFont:o.family},header:{labelColor:t,titleColor:t},range:{category:e.series}},n={...a,legend:{...a.legend,orient:"bottom"}};return i=>i==="shape_map"?n:a}function Ee(e){if(!e)return;const t=e.tag("theme");if(!t)return;const r={},l=t.tag("palette");if(l){const a={},n=l.textArray("series");n&&n.length>0&&(a.series=n);for(const i of he){const b=l.tag(i);if(!b)continue;const f={},x=b.text("light"),w=b.text("dark");x&&(f.light=x),w&&(f.dark=w),Object.keys(f).length>0&&(a[i]=f)}Object.keys(a).length>0&&(r.palette=a)}const o=t.tag("font");if(o){const a={},n=o.text("family");n&&(a.family=n);const i=o.numeric("size");typeof i=="number"&&Number.isFinite(i)&&(a.size=i),Object.keys(a).length>0&&(r.font=a)}return Object.keys(r).length>0?r:void 0}const B="data-publisher-fill",ze=async(e,t)=>{if(typeof window>"u")throw new Error("MalloyRenderer can only be used in browser environment");const{MalloyRenderer:r}=await pe();return new r({onClick:t,vegaConfigOverride:Se(e),theme:Ae(e),onError:l=>{console.error("Error rendering visualization:",typeof l,l)}}).createViz()};async function Me(e){if(!e||typeof e!="object")return;const t=e,r=[...Array.isArray(t.model_annotations)?t.model_annotations:[],...Array.isArray(t.source_annotations)?t.source_annotations:[],...Array.isArray(t.annotations)?t.annotations:[]].map(o=>typeof o?.value=="string"?o.value:void 0).filter(o=>!!o);if(r.length===0)return;let l;try{({parseAnnotation:l}=await ye())}catch{return}try{const{tag:o}=l(r);return Ee(o)}catch(o){console.warn("Failed to parse # theme.* annotations; chart will render with the shell theme.",{error:o,lines:r});return}}function je(e,t,r){const l=fe(t,r);for(const[o,a]of Object.entries(l))e.style.setProperty(o,a)}const Fe=`
|
|
2
|
+
/* Card geometry, through the renderer's OWN theme vars rather than over the top
|
|
3
|
+
of them. It declares --malloy-theme--dashboard-* on .malloy-render itself and
|
|
4
|
+
passes each through to the --malloy-render--* the card CSS reads, so a value
|
|
5
|
+
inherited from our wrapper loses to that declaration however early it is set:
|
|
6
|
+
this has to be a rule on the same element, at higher specificity. Doubling the
|
|
7
|
+
class does that, and then no !important is needed — which matters, because
|
|
8
|
+
!important here also lands on .dashboard-item-borderless and repaints a card
|
|
9
|
+
the author asked to have no card. */
|
|
10
|
+
.malloy-render.malloy-render {
|
|
11
|
+
--malloy-theme--dashboard-card-radius: var(--publisher-dashboard-card-radius);
|
|
12
|
+
--malloy-theme--dashboard-card-padding: var(--publisher-dashboard-card-padding);
|
|
13
|
+
}
|
|
14
|
+
/* dashboard.css hardcodes background: #f7f9fc on .malloy-dashboard
|
|
15
|
+
and .dashboard-row-header, which would paint light grey in dark
|
|
16
|
+
mode and also bleed an operator-picked palette.background across
|
|
17
|
+
the panel chrome in light. Both surfaces use
|
|
18
|
+
--malloy-render--background here, which buildMalloyExplicitTheme
|
|
19
|
+
wires to dashboardRoot: a mode-keyed neutral that stays decoupled
|
|
20
|
+
from palette.background (the chart canvas) on purpose. Selectors
|
|
21
|
+
are duplicated at higher specificity to beat the renderer s own
|
|
22
|
+
scoped rules. */
|
|
23
|
+
.malloy-render .malloy-dashboard,
|
|
24
|
+
.malloy-render.malloy-render .malloy-dashboard,
|
|
25
|
+
div.malloy-render .malloy-dashboard {
|
|
26
|
+
/* --publisher-dashboard-root is set on the outer Publisher wrapper
|
|
27
|
+
(see buildTableCssVars) and stays decoupled from
|
|
28
|
+
--malloy-render--background, which gets shadowed inside the
|
|
29
|
+
renderer when a theme.background annotation is present. The
|
|
30
|
+
dedicated var means the panel between tiles always paints the
|
|
31
|
+
operator neutral dashboardRoot regardless of annotations. */
|
|
32
|
+
background: var(--publisher-dashboard-root) !important;
|
|
33
|
+
background-color: var(--publisher-dashboard-root) !important;
|
|
34
|
+
color: var(--malloy-render--table-body-color) !important;
|
|
35
|
+
}
|
|
36
|
+
.malloy-render .malloy-dashboard .dashboard-row,
|
|
37
|
+
.malloy-render .malloy-dashboard .dashboard-row-body,
|
|
38
|
+
.malloy-render .malloy-dashboard .dashboard-row-header,
|
|
39
|
+
.malloy-render.malloy-render .malloy-dashboard .dashboard-row-header,
|
|
40
|
+
div.malloy-render .malloy-dashboard .dashboard-row-header {
|
|
41
|
+
/* Belt + suspenders: dashboard.css hardcodes .dashboard-row-header
|
|
42
|
+
to #f7f9fc, and row / row-body have no explicit background but
|
|
43
|
+
get caught in any annotation-driven inline writes. Force all of
|
|
44
|
+
them to the neutral panel colour. */
|
|
45
|
+
background: var(--publisher-dashboard-root) !important;
|
|
46
|
+
background-color: var(--publisher-dashboard-root) !important;
|
|
47
|
+
}
|
|
48
|
+
.malloy-render .malloy-dashboard .dashboard-item:not(.dashboard-item-borderless) {
|
|
49
|
+
/* Tile padding around each chart / table. Uses our custom
|
|
50
|
+
--malloy-render--tile-background so the operator can theme the
|
|
51
|
+
tile separately from the table header row (which paints from
|
|
52
|
+
--malloy-render--table-pinned-background below).
|
|
53
|
+
|
|
54
|
+
A flat bordered card rather than the renderer's shadow ring, which is what
|
|
55
|
+
makes it match the composite tile's Paper. :not(borderless) because
|
|
56
|
+
# borderless asks for no card at all, and an !important background and
|
|
57
|
+
border drew one anyway. */
|
|
58
|
+
background: var(--malloy-render--tile-background) !important;
|
|
59
|
+
color: var(--malloy-render--table-body-color) !important;
|
|
60
|
+
box-shadow: none !important;
|
|
61
|
+
/* The card edge, not the table gridline: --publisher-dashboard-card-border,
|
|
62
|
+
the same value TileCard paints, so the renderer's card and the composite
|
|
63
|
+
one are outlined identically. */
|
|
64
|
+
border: var(--publisher-dashboard-card-border) !important;
|
|
65
|
+
}
|
|
66
|
+
/* The renderer's big-value card — the small card a "# big_value" measure sits
|
|
67
|
+
in, several to a row inside one tile. (No backticks in here: this is inside
|
|
68
|
+
a template literal.) Its own CSS gives it a 0.55px edge in
|
|
69
|
+
#e5e7eb: a sub-pixel width, and a grey off the slate ramp everything else on
|
|
70
|
+
the page is on. It is a dashboard card like any other, so it takes the card
|
|
71
|
+
edge and stops being the one card outlined in a hairline nobody can see. */
|
|
72
|
+
.malloy-render .malloy-big-value-card {
|
|
73
|
+
border: var(--publisher-dashboard-card-border) !important;
|
|
74
|
+
/* Its shadow is a four-layer Tailwind stack, and only two of those layers
|
|
75
|
+
are a shadow: the other is "0 0 0 1px #e5e7eb", a spread ring drawn as a
|
|
76
|
+
second border OVER the real one. So the border above was landing
|
|
77
|
+
underneath a ring in the renderer's own grey, and the card kept both a
|
|
78
|
+
lifted look the flat cards around it do not have and an edge we did not
|
|
79
|
+
pick. Dropped whole rather than rebuilt layer by layer: the ring's job is
|
|
80
|
+
the border's job, and the border is already doing it. */
|
|
81
|
+
box-shadow: none !important;
|
|
82
|
+
}
|
|
83
|
+
/* The strip of big-value cards as a grid, so cards share a width and the last one does not wrap
|
|
84
|
+
alone. The renderer's wrapping flex row sizes each card to its own text. The 250px floor is the
|
|
85
|
+
widest realistic value: it is nowrap at 32px in an overflow:visible card, so a narrower track
|
|
86
|
+
would spill it onto its neighbour. Embedded (a nested big_value) is left as the renderer draws it. */
|
|
87
|
+
.malloy-render .malloy-big-value:not(.malloy-big-value--embedded) {
|
|
88
|
+
display: grid;
|
|
89
|
+
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
90
|
+
}
|
|
91
|
+
.malloy-render .malloy-big-value-card:not(.malloy-big-value-card--embedded) {
|
|
92
|
+
width: auto;
|
|
93
|
+
max-width: none;
|
|
94
|
+
}
|
|
95
|
+
.malloy-render .malloy-dashboard .dashboard-row-header-separator {
|
|
96
|
+
background: var(--malloy-render--table-border) !important;
|
|
97
|
+
}
|
|
98
|
+
/* !important because the malloy-explorer stylesheet pins these same properties with it. */
|
|
99
|
+
[${B}] .malloy-table.root {
|
|
100
|
+
height: 100% !important;
|
|
101
|
+
align-content: start !important;
|
|
102
|
+
grid-template-columns: repeat(var(--total-header-size), minmax(max-content, 1fr)) !important;
|
|
103
|
+
}
|
|
104
|
+
.malloy-render .malloy-table .th.column-cell {
|
|
105
|
+
/* Non-pinned tables have no header background in the renderer's
|
|
106
|
+
own CSS (only pinned scrolled tables paint the pinned-header
|
|
107
|
+
with this var). Force the same value here so every table has a
|
|
108
|
+
visible header band reflecting the operator's choice. */
|
|
109
|
+
background: var(--malloy-render--table-pinned-background) !important;
|
|
110
|
+
}
|
|
111
|
+
.malloy-render .dashboard-item-title,
|
|
112
|
+
.malloy-render .dashboard-dimension-name {
|
|
113
|
+
color: var(--malloy-render--label-color) !important;
|
|
114
|
+
}
|
|
115
|
+
.malloy-render .dashboard-item-value,
|
|
116
|
+
.malloy-render .dashboard-item-value-measure,
|
|
117
|
+
.malloy-render .dashboard-dimension-value {
|
|
118
|
+
color: var(--malloy-render--value-color) !important;
|
|
119
|
+
}
|
|
120
|
+
.malloy-render .malloy-table,
|
|
121
|
+
.malloy-render .malloy-list {
|
|
122
|
+
color: var(--malloy-render--table-body-color) !important;
|
|
123
|
+
}
|
|
124
|
+
.malloy-render .column-cell.th,
|
|
125
|
+
.malloy-render .cell-content.header {
|
|
126
|
+
color: var(--malloy-render--table-header-color) !important;
|
|
127
|
+
}
|
|
128
|
+
/* A cell whose column declares a "# drill" this surface can honor, marked
|
|
129
|
+
by markDrillableCells. Ordinary text with a pointer cursor until hovered,
|
|
130
|
+
then it reads as a link: the same affordance Malloyyo gives the same tag,
|
|
131
|
+
and the only thing that tells a reader a cell navigates. Kept off the
|
|
132
|
+
resting state deliberately: a column painted blue competes with the data.
|
|
133
|
+
(No backticks in here: this is inside a template literal.) */
|
|
134
|
+
.malloy-render .${v} {
|
|
135
|
+
cursor: pointer;
|
|
136
|
+
}
|
|
137
|
+
.malloy-render .${v}:hover > .cell-content {
|
|
138
|
+
color: var(--publisher-drill-link) !important;
|
|
139
|
+
text-decoration: underline;
|
|
140
|
+
}
|
|
141
|
+
/* Keyboard focus reads the same as hover, plus a ring: a hover colour is not
|
|
142
|
+
something a keyboard user can produce, and a focus ring is not something a
|
|
143
|
+
mouse user sees. focus-visible rather than focus, so a click does not leave a
|
|
144
|
+
ring behind it. (No backticks in here: this is inside a template literal.) */
|
|
145
|
+
.malloy-render .${v}:focus-visible {
|
|
146
|
+
outline: 2px solid var(--publisher-drill-link);
|
|
147
|
+
outline-offset: -2px;
|
|
148
|
+
}
|
|
149
|
+
.malloy-render .${v}:focus-visible > .cell-content {
|
|
150
|
+
color: var(--publisher-drill-link) !important;
|
|
151
|
+
text-decoration: underline;
|
|
152
|
+
}
|
|
153
|
+
`,le="publisher-malloy-renderer-overrides";function Re(){if(typeof document>"u"||document.getElementById(le))return;const e=document.createElement("style");e.id=le,e.textContent=Fe,document.head.appendChild(e)}function Te({result:e,height:t,drill:r,onSizeChange:l,onSizing:o,fill:a}){const n=p.useRef(null),i=p.useRef(r);i.current=r;const b=p.useCallback(c=>{i.current?.onClick(c)},[]),f=r!==void 0,x=p.useRef(!1),w=p.useRef(null),q=p.useRef(0),{theme:I,layers:Y,mode:J}=ue(),X=p.useMemo(()=>({radius:I.ui.radius.tile,padding:`${me}px`}),[I.ui.radius.tile]);return p.useEffect(()=>()=>{q.current+=1;const c=w.current;c?.viz.remove(),c?.node.remove(),w.current=null},[]),p.useLayoutEffect(()=>{if(!n.current||!e)return;Re();const c=n.current,se=q.current+=1;let V=!1;const H=()=>!V&&se===q.current;let d,m,_=null,K=0,L=null,N=null,P=null,j=null,F=null,R=null,Z=null,G=0,A=null;x.current=!1;let g,S;const U=k=>{if(V||!k.firstElementChild||W(g,S)==="container")return;const T=ge(g,S);if(x.current&&!T)return;const O=c.hasAttribute(B);O&&c.removeAttribute(B);const E=ve(k,oe(g));O&&c.setAttribute(B,""),E>0&&(x.current=!0,l&&E!==G&&(G=E,l(E)));const h=we(k,oe(g));T&&h&&Z!==h&&(Z=h,R?.disconnect(),R=new ResizeObserver(()=>U(k)),R.observe(h))};return(async()=>{let k;try{k=JSON.parse(e)}catch(y){console.error("Error parsing visualization result:",y);return}const T=await Me(k),O=T?be([...Y,T],J):I;if(!H())return;try{m=await ze(O,b)}catch(y){console.error("Failed to create renderer:",y);return}if(!H()){m.remove(),m=void 0;return}const E=w.current;d=document.createElement("div"),d.style.width="100%",d.style.height="100%",je(d,O,X),c.childElementCount>0&&(c.style.position="relative",d.style.position="absolute",d.style.inset="0",d.style.visibility="hidden"),c.appendChild(d);const h=d;j=new MutationObserver(()=>{F&&clearTimeout(F),F=setTimeout(()=>{U(h),x.current&&j?.disconnect()},100)}),j.observe(d,{childList:!0,subtree:!0,attributes:!0});const ie=m;let Q=!1;const ee=()=>{if(!(Q||!H())){Q=!0,A&&(clearTimeout(A),A=null),E?.viz.remove();for(const y of Array.from(c.children))y!==h&&c.removeChild(y);h.style.position="",h.style.inset="",h.style.visibility="",c.style.position="",w.current={viz:ie,node:h},U(h)}};try{m.setResult(k);try{const C=m.getMetadata(),z=C?.getRootField();g=z?.renderAs(),S=z?C?.getPluginsForField(z.key)?.[0]?.sizingStrategy:void 0}catch{g=void 0,S=void 0}o?.(W(g,S)),d.dataset.malloyRenderAs=g??"unknown",d.dataset.malloySizing=W(g,S),m.render(d);const y=i.current;try{if(y){const C=ke(m,y.canDrill),z=()=>{try{xe(h,C)}catch(s){console.warn("Drill affordance skipped:",s)}};z();const te=s=>{const u=s.querySelector(".cell-content")??s,M=u.getBoundingClientRect();u.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:u.ownerDocument.defaultView,clientX:Math.round(M.left+M.width/2),clientY:Math.round(M.bottom)}))},re=s=>s.target?.closest?.(`.${v}`)??null,de=(s,u)=>{ne(s,u)?.focus()};L=s=>{const u=re(s);if(!u)return;const M=s.key==="ArrowDown"?1:s.key==="ArrowUp"?-1:s.key==="Home"?"first":s.key==="End"?"last":void 0;if(M!==void 0){s.preventDefault(),de(u,M);return}s.key==="Enter"?(s.preventDefault(),te(u)):s.key===" "&&s.preventDefault()},N=s=>{if(s.key!==" ")return;const u=re(s);u&&(s.preventDefault(),te(u))},P=s=>{const u=s.target?.closest?.(`.${v}`);u&&ne(u,0)},h.addEventListener("keydown",L),h.addEventListener("keyup",N),h.addEventListener("focusin",P),C.size>0&&typeof MutationObserver<"u"&&(_=new MutationObserver(()=>{cancelAnimationFrame(K),K=requestAnimationFrame(z)}),_.observe(h,{childList:!0,subtree:!0}))}}catch(C){console.warn("Drill affordance skipped:",C)}m.onReady(ee),A=setTimeout(ee,1e4)}catch(y){console.error("Error rendering visualization:",y),j?.disconnect(),R?.disconnect(),_?.disconnect(),m.remove(),m=void 0,h.parentNode===c&&c.removeChild(h)}})(),()=>{V=!0,j?.disconnect(),R?.disconnect(),F&&clearTimeout(F),A&&clearTimeout(A),d&&w.current?.node!==d&&(L&&d.removeEventListener("keydown",L),N&&d.removeEventListener("keyup",N),P&&d.removeEventListener("focusin",P),_?.disconnect(),cancelAnimationFrame(K),m?.remove(),d.parentNode===c&&c.removeChild(d),c.style.position="")}},[e,b,f,l,o,I,Y,J,X]),$.jsx("div",{ref:n,...a?{[B]:""}:{},style:{width:"100%",height:t?`${t}px`:"400px"}})}function Oe(e){return typeof window>"u"?$.jsx(ae,{sx:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"text.secondary"},children:"Loading..."}):$.jsx(p.Suspense,{fallback:$.jsx(ae,{sx:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"text.secondary"},children:"Loading visualization..."}),children:$.jsx(Te,{...e})})}const Be=Object.freeze(Object.defineProperty({__proto__:null,default:Oe},Symbol.toStringTag,{value:"Module"}));export{v as D,Oe as R,Se as a,Ae as b,Be as c,ke as d,xe as m,Ee as r};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{aB as o,j as r,aC as s,aD as n,I as t,T as a}from"./index-gQEuz0Cg.js";function x(){const e=o();return console.error(e),r.jsx(s,{maxWidth:"lg",component:"main",sx:{display:"flex",flexDirection:"column",my:2,gap:0},children:r.jsxs(n,{sx:{m:"auto",flexDirection:"column"},children:[r.jsx(t,{sx:{height:"300px"}}),r.jsx("img",{src:"/error.png"}),r.jsx(a,{variant:"subtitle1",children:"An unexpected error occurred"})]})})}export{x as default};
|