@marimo-team/frontend 0.23.16-dev26 → 0.23.16-dev29
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/assets/{CellStatus-DwV4gbV3.js → CellStatus-CmojVYzm.js} +1 -1
- package/dist/assets/{JsonOutput-BG5T3DG2.js → JsonOutput-BwwRpByA.js} +12 -12
- package/dist/assets/{MarimoErrorOutput-C2HrF0bD.js → MarimoErrorOutput-BWte8vjk.js} +5 -5
- package/dist/assets/{RenderHTML-DoCFSir5.js → RenderHTML-DRltV71H.js} +1 -1
- package/dist/assets/{RunButton-COtmJuup.js → RunButton-DIegd2mN.js} +1 -1
- package/dist/assets/{add-cell-with-ai-BBAhBpT1.js → add-cell-with-ai-BBFD-M9V.js} +12 -12
- package/dist/assets/{add-connection-dialog-DFD5BLGa.js → add-connection-dialog-CECJ8507.js} +1 -1
- package/dist/assets/{agent-panel-TJGdsxOX.js → agent-panel-YaS0WXP1.js} +5 -5
- package/dist/assets/{ai-model-dropdown-BMS30HMu.js → ai-model-dropdown-BpVBUZnz.js} +4 -4
- package/dist/assets/{app-config-button-Cankwixh.js → app-config-button-BW-w01aF.js} +1 -1
- package/dist/assets/{cell-editor-sBYL591r.js → cell-editor-EV-1IccQ.js} +10 -10
- package/dist/assets/{cell-link-D1nZ5myN.js → cell-link-C5gpAn3R.js} +1 -1
- package/dist/assets/{cells-D9tCNe6o.js → cells-6yd8nOAu.js} +45 -45
- package/dist/assets/{chat-display-ZB0n2r4U.js → chat-display-8BbC5B-D.js} +1 -1
- package/dist/assets/{chat-panel-BKqRvvhb.js → chat-panel-00V3uFDx.js} +1 -1
- package/dist/assets/{chat-ui-B3Pz1Tc4.js → chat-ui-DWhJ2Ozy.js} +1 -1
- package/dist/assets/{column-preview-CSVQtCQS.js → column-preview-DeXESYpM.js} +1 -1
- package/dist/assets/{command-palette-DiUt8L1K.js → command-palette-DZ2rNzzf.js} +1 -1
- package/dist/assets/{common-XBd1qRDk.js → common-XVELED_O.js} +1 -1
- package/dist/assets/{components-D-aPO6md.js → components-BLHpmhXx.js} +1 -1
- package/dist/assets/{datasource-Pl4KKOUa.js → datasource-CTqa8bf-.js} +2 -2
- package/dist/assets/{dependency-graph-panel-rRXAafZ4.js → dependency-graph-panel-C4Nzcddp.js} +3 -3
- package/dist/assets/documentation-panel-Bym4G7IS.js +1 -0
- package/dist/assets/{download-Benw6kUY.js → download-HKgqJX4l.js} +3 -3
- package/dist/assets/{edit-page-CxNNXB4Y.js → edit-page-BPBDN3FB.js} +6 -6
- package/dist/assets/{error-entries-CmfGHGq1.js → error-entries-CxyvaxEM.js} +2 -2
- package/dist/assets/{error-panel-BKb_UksO.js → error-panel-CfSy7uUr.js} +1 -1
- package/dist/assets/{file-explorer-panel-C9I7XP84.js → file-explorer-panel-Dd5Xn2TK.js} +4 -4
- package/dist/assets/{file-icons-Czm7CWoc.js → file-icons-CSjJ3JC6.js} +1 -1
- package/dist/assets/{file-name-input-CjWG0FWT.js → file-name-input-CrKtrXMl.js} +1 -1
- package/dist/assets/{floating-outline-BWk7h_Uf.js → floating-outline-ByQ8vvif.js} +1 -1
- package/dist/assets/{focus-DTmSq3hN.js → focus-CVONl-Dy.js} +1 -1
- package/dist/assets/{form-DrCvDcRK.js → form-Ca3yd_Od.js} +1 -1
- package/dist/assets/{home-page-DwtZlFRD.js → home-page-FpAawj9s.js} +2 -2
- package/dist/assets/{html-to-image-1vflBYah.js → html-to-image-C-4ysbGe.js} +1 -1
- package/dist/assets/{index-DK7_phcn.js → index-BJDqUUF2.js} +6 -6
- package/dist/assets/{layout-Cdpz2zk4.js → layout-Dtql_o_T.js} +5 -5
- package/dist/assets/{logs-panel-BojuPimp.js → logs-panel-5u1wUBn1.js} +1 -1
- package/dist/assets/{markdown-renderer-C9vdWclk.js → markdown-renderer-dABDqZDw.js} +1 -1
- package/dist/assets/{name-cell-input-BSFsnuTp.js → name-cell-input-Y4knmEIU.js} +1 -1
- package/dist/assets/{outline-panel-B1f5a2yI.js → outline-panel-CQ_KWLip.js} +1 -1
- package/dist/assets/{packages-panel-kj52vQTZ.js → packages-panel-Ijt7d51P.js} +1 -1
- package/dist/assets/{panels-Bs7O_Hac.js → panels-Nt5IZl-9.js} +2 -2
- package/dist/assets/{process-output-Csd6PmBH.js → process-output-Dd11YI04.js} +1 -1
- package/dist/assets/{radio-group-CdR34W0K.js → radio-group-22eWJ9fv.js} +1 -1
- package/dist/assets/{readonly-code-display-XBAHhCYR.js → readonly-code-display-BjK-TEri.js} +1 -1
- package/dist/assets/{readonly-python-code-3UXLXM0g.js → readonly-python-code-n_TrLmsR.js} +1 -1
- package/dist/assets/{reveal-component-DTcc6OYd.js → reveal-component-CCLTV1q6.js} +42 -42
- package/dist/assets/{run-page-BgzVSOZh.js → run-page-CtYo0xcq.js} +1 -1
- package/dist/assets/scratchpad-panel-C2wAEv5n.js +1 -0
- package/dist/assets/{session-panel-Cs9YKkJc.js → session-panel-BZGNcZmp.js} +1 -1
- package/dist/assets/{skeleton-BOtI6k5P.js → skeleton-BzlKcq21.js} +1 -1
- package/dist/assets/slides-DkEgzTJB.css +1 -0
- package/dist/assets/{snippets-panel-ACMhA8oL.js → snippets-panel-DNaNtkR0.js} +1 -1
- package/dist/assets/{state-Dj8qTUAp.js → state-B7LxUcAy.js} +3 -3
- package/dist/assets/{state-N0U-K9F6.js → state-jCdh8Dcx.js} +1 -1
- package/dist/assets/{textarea-BQE_pb7P.js → textarea-DuEtSOCl.js} +1 -1
- package/dist/assets/{tracing-panel-CmMG0R-H.js → tracing-panel-rVAa3En0.js} +2 -2
- package/dist/assets/{tracing-CuJfR83E.js → tracing-ttUd3J7U.js} +1 -1
- package/dist/assets/{tree-actions-DJTGQWz0.js → tree-actions-UCr1tMHw.js} +1 -1
- package/dist/assets/useCellActionButton-CJknR0XY.js +1 -0
- package/dist/assets/{useDeleteCell-DsWH8wmn.js → useDeleteCell-PrgejW8A.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-DjhiptCs.js → useDependencyPanelTab-5jc-_-hy.js} +1 -1
- package/dist/assets/{useNotebookActions-Bj0q_nkr.js → useNotebookActions-DG8f4m8p.js} +3 -3
- package/dist/assets/useRunCells-DHsd7HGL.js +1 -0
- package/dist/assets/{useSplitCell-CapBPXO1.js → useSplitCell-MZpER0Bh.js} +1 -1
- package/dist/index.html +22 -22
- package/package.json +1 -1
- package/src/components/data-table/__tests__/__snapshots__/chart-spec-model.test.ts.snap +174 -21
- package/src/components/data-table/__tests__/chart-spec-model.test.ts +102 -1
- package/src/components/data-table/column-summary/chart-spec-model.tsx +163 -103
- package/src/components/data-table/column-summary/legacy-chart-spec.ts +15 -7
- package/src/components/data-table/column-summary/utils.ts +26 -7
- package/src/components/data-table/types.ts +1 -1
- package/src/components/slides/__tests__/cell-output-block.test.tsx +40 -0
- package/src/components/slides/__tests__/slide-cell-view.test.tsx +33 -0
- package/src/components/slides/reveal-component.tsx +22 -17
- package/src/components/slides/slide-cell-view.tsx +1 -1
- package/src/components/slides/slides.css +4 -2
- package/src/core/codemirror/find-replace/__tests__/navigate.test.ts +42 -30
- package/src/core/codemirror/find-replace/navigate.ts +2 -0
- package/src/core/codemirror/go-to-definition/__tests__/commands.test.ts +24 -3
- package/src/core/codemirror/go-to-definition/commands.ts +3 -0
- package/src/core/codemirror/utils.ts +28 -0
- package/dist/assets/documentation-panel-DSOMQtKU.js +0 -1
- package/dist/assets/scratchpad-panel-XnaU8Prb.js +0 -1
- package/dist/assets/slides-MCbMDtlY.css +0 -1
- package/dist/assets/useCellActionButton-Bglkc3w8.js +0 -1
- package/dist/assets/useRunCells-BpMmDGqa.js +0 -1
- /package/dist/assets/{swiper-component-Che9MNs4.js → swiper-component-g8EXE911.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as k,n as i,p as v}from"./useEvent-D91BmmQi.js";import{E as w,m as d,pt as y,ri as F,ui as b,zn as x}from"./cells-6yd8nOAu.js";import{t as z}from"./compiler-runtime-B3qBwwSJ.js";import{g as D}from"./useEventListener-C0195JsF.js";import{o as E}from"./dist-DYEuVkEX.js";import{r as H}from"./requests-9-v2bhoi.js";var u=z();const g=v(!1);function V(){let r=(0,u.c)(2),n=p(),t;return r[0]===n?t=r[1]:(t=()=>n(b(d())),r[0]=n,r[1]=t),i(t)}function _(r){let n=(0,u.c)(3),t=p(),o;return n[0]!==r||n[1]!==t?(o=()=>{r!==void 0&&t([r])},n[0]=r,n[1]=t,n[2]=o):o=n[2],i(o)}function j(){let r=(0,u.c)(2),n=p(),t;return r[0]===n?t=r[1]:(t=()=>n(F(d())),r[0]=n,r[1]=t),i(t)}function p(){let r=(0,u.c)(4),{prepareForRun:n}=w(),{sendRun:t}=H(),o=k(g),e;return r[0]!==n||r[1]!==t||r[2]!==o?(e=async s=>{if(s.length===0)return;let c=d();return o(!0),I({cellIds:s,sendRun:t,prepareForRun:n,notebook:c})},r[0]=n,r[1]=t,r[2]=o,r[3]=e):e=r[3],i(e)}async function I({cellIds:r,sendRun:n,prepareForRun:t,notebook:o}){var m,R,h;if(r.length===0)return;let{cellHandles:e,cellData:s}=o,c=[];for(let a of r){let l=(R=(m=e[a])==null?void 0:m.current)==null?void 0:R.editorView,f;l?(x(l)!=="markdown"&&E(l),f=y(l)):f=((h=s[a])==null?void 0:h.code)||"",c.push(f),t({cellId:a})}await n({cellIds:r,codes:c}).catch(a=>{D.error(a)})}export{p as a,_ as i,I as n,V as o,j as r,g as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as m}from"./chunk-LvLJmgfZ.js";import{n as p}from"./useEvent-D91BmmQi.js";import{E as d,d as f,pt as u}from"./cells-
|
|
1
|
+
import{s as m}from"./chunk-LvLJmgfZ.js";import{n as p}from"./useEvent-D91BmmQi.js";import{E as d,d as f,pt as u}from"./cells-6yd8nOAu.js";import{t as c}from"./compiler-runtime-B3qBwwSJ.js";import{t as C}from"./jsx-runtime-Blw4afVn.js";import{r as h}from"./useDeleteCell-PrgejW8A.js";import{t as v}from"./use-toast-BwJoaaDM.js";var x=c(),b=m(C(),1);function j(){let t=(0,x.c)(3),{splitCell:i,undoSplitCell:r}=d(),o;return t[0]!==i||t[1]!==r?(o=s=>{let l=f(s.cellId);if(!l)return;let a=u(l);i(s);let{dismiss:n}=v({title:"Cell split",action:(0,b.jsx)(h,{"data-testid":"undo-split-button",size:"sm",variant:"outline",onClick:()=>{r({...s,snapshot:a}),e()},children:"Undo"})}),e=n},t[0]=i,t[1]=r,t[2]=o):o=t[2],p(o)}export{j as t};
|
package/dist/index.html
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
<marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
|
|
67
67
|
<!-- /TODO -->
|
|
68
68
|
<title>{{ title }}</title>
|
|
69
|
-
<script type="module" crossorigin src="./assets/index-
|
|
69
|
+
<script type="module" crossorigin src="./assets/index-BJDqUUF2.js"></script>
|
|
70
70
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-TXkS1QI3.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="./assets/objects-BlG0ZrO0.js">
|
|
72
72
|
<link rel="modulepreload" crossorigin href="./assets/chunk-LvLJmgfZ.js">
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
<link rel="modulepreload" crossorigin href="./assets/debounce-OiXznToA.js">
|
|
135
135
|
<link rel="modulepreload" crossorigin href="./assets/database-zap-CKO8g4BU.js">
|
|
136
136
|
<link rel="modulepreload" crossorigin href="./assets/main-BNL5rxQw.js">
|
|
137
|
-
<link rel="modulepreload" crossorigin href="./assets/cells-
|
|
137
|
+
<link rel="modulepreload" crossorigin href="./assets/cells-6yd8nOAu.js">
|
|
138
138
|
<link rel="modulepreload" crossorigin href="./assets/kbd-C5HnBH5U.js">
|
|
139
139
|
<link rel="modulepreload" crossorigin href="./assets/useInstallPackage-WiYBwhUO.js">
|
|
140
140
|
<link rel="modulepreload" crossorigin href="./assets/alert-dialog-Bb8Lz8ko.js">
|
|
@@ -147,40 +147,40 @@
|
|
|
147
147
|
<link rel="modulepreload" crossorigin href="./assets/usePress-5hBv4sjD.js">
|
|
148
148
|
<link rel="modulepreload" crossorigin href="./assets/input-JxFwu-3G.js">
|
|
149
149
|
<link rel="modulepreload" crossorigin href="./assets/ImperativeModal-fY-ZfT0b.js">
|
|
150
|
-
<link rel="modulepreload" crossorigin href="./assets/cell-link-
|
|
150
|
+
<link rel="modulepreload" crossorigin href="./assets/cell-link-C5gpAn3R.js">
|
|
151
151
|
<link rel="modulepreload" crossorigin href="./assets/config-BJVx3eBW.js">
|
|
152
152
|
<link rel="modulepreload" crossorigin href="./assets/alert-jlwhGxSb.js">
|
|
153
153
|
<link rel="modulepreload" crossorigin href="./assets/chevron-right-BS_NcSch.js">
|
|
154
154
|
<link rel="modulepreload" crossorigin href="./assets/dropdown-menu-dHmZR8bI.js">
|
|
155
155
|
<link rel="modulepreload" crossorigin href="./assets/links-wcQA1Np1.js">
|
|
156
|
-
<link rel="modulepreload" crossorigin href="./assets/useRunCells-
|
|
156
|
+
<link rel="modulepreload" crossorigin href="./assets/useRunCells-DHsd7HGL.js">
|
|
157
157
|
<link rel="modulepreload" crossorigin href="./assets/copy-Bxb1_Gtw.js">
|
|
158
158
|
<link rel="modulepreload" crossorigin href="./assets/copy-3iHFdt22.js">
|
|
159
159
|
<link rel="modulepreload" crossorigin href="./assets/copy-icon-neDQUo4Q.js">
|
|
160
|
-
<link rel="modulepreload" crossorigin href="./assets/RenderHTML-
|
|
161
|
-
<link rel="modulepreload" crossorigin href="./assets/datasource-
|
|
162
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
160
|
+
<link rel="modulepreload" crossorigin href="./assets/RenderHTML-DRltV71H.js">
|
|
161
|
+
<link rel="modulepreload" crossorigin href="./assets/datasource-CTqa8bf-.js">
|
|
162
|
+
<link rel="modulepreload" crossorigin href="./assets/state-jCdh8Dcx.js">
|
|
163
163
|
<link rel="modulepreload" crossorigin href="./assets/hat-glasses-BttHlyvs.js">
|
|
164
164
|
<link rel="modulepreload" crossorigin href="./assets/package-Bxz_8e44.js">
|
|
165
165
|
<link rel="modulepreload" crossorigin href="./assets/sparkles-DUCpRFlS.js">
|
|
166
|
-
<link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-
|
|
166
|
+
<link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-BWte8vjk.js">
|
|
167
167
|
<link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-DzTD8LVq.js">
|
|
168
168
|
<link rel="modulepreload" crossorigin href="./assets/eye-off-BOZA7gbn.js">
|
|
169
169
|
<link rel="modulepreload" crossorigin href="./assets/refresh-cw-CYq4mK5a.js">
|
|
170
|
-
<link rel="modulepreload" crossorigin href="./assets/tree-actions-
|
|
170
|
+
<link rel="modulepreload" crossorigin href="./assets/tree-actions-UCr1tMHw.js">
|
|
171
171
|
<link rel="modulepreload" crossorigin href="./assets/spinner-D-V4psAa.js">
|
|
172
|
-
<link rel="modulepreload" crossorigin href="./assets/html-to-image-
|
|
173
|
-
<link rel="modulepreload" crossorigin href="./assets/focus-
|
|
172
|
+
<link rel="modulepreload" crossorigin href="./assets/html-to-image-C-4ysbGe.js">
|
|
173
|
+
<link rel="modulepreload" crossorigin href="./assets/focus-CVONl-Dy.js">
|
|
174
174
|
<link rel="modulepreload" crossorigin href="./assets/useAsyncData-Bg5iAViP.js">
|
|
175
175
|
<link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-B2JvSXP-.js">
|
|
176
176
|
<link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-Dx_STMJD.js">
|
|
177
177
|
<link rel="modulepreload" crossorigin href="./assets/chunk-5FQGJX7Z-Cp0LZT-a.js">
|
|
178
|
-
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-
|
|
178
|
+
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-dABDqZDw.js">
|
|
179
179
|
<link rel="modulepreload" crossorigin href="./assets/command-Dqxie4gq.js">
|
|
180
180
|
<link rel="modulepreload" crossorigin href="./assets/field-BsxD35VE.js">
|
|
181
181
|
<link rel="modulepreload" crossorigin href="./assets/popover-Bcz1Zikb.js">
|
|
182
182
|
<link rel="modulepreload" crossorigin href="./assets/errors-PgHhDa-M.js">
|
|
183
|
-
<link rel="modulepreload" crossorigin href="./assets/download-
|
|
183
|
+
<link rel="modulepreload" crossorigin href="./assets/download-HKgqJX4l.js">
|
|
184
184
|
<link rel="modulepreload" crossorigin href="./assets/table-CH2plyy9.js">
|
|
185
185
|
<link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-j6fR_dBA.js">
|
|
186
186
|
<link rel="modulepreload" crossorigin href="./assets/error-banner-BSxEOIn2.js">
|
|
@@ -201,33 +201,33 @@
|
|
|
201
201
|
<link rel="modulepreload" crossorigin href="./assets/plus-AgXtozBz.js">
|
|
202
202
|
<link rel="modulepreload" crossorigin href="./assets/trash-2-72W0TZ3L.js">
|
|
203
203
|
<link rel="modulepreload" crossorigin href="./assets/react-resizable-panels.browser.esm-Z-MD3n3J.js">
|
|
204
|
-
<link rel="modulepreload" crossorigin href="./assets/JsonOutput-
|
|
204
|
+
<link rel="modulepreload" crossorigin href="./assets/JsonOutput-BwwRpByA.js">
|
|
205
205
|
<link rel="modulepreload" crossorigin href="./assets/chart-no-axes-column-iDRxid4h.js">
|
|
206
206
|
<link rel="modulepreload" crossorigin href="./assets/square-function-DNNRTPQJ.js">
|
|
207
207
|
<link rel="modulepreload" crossorigin href="./assets/spec-C7opZZRp.js">
|
|
208
|
-
<link rel="modulepreload" crossorigin href="./assets/column-preview-
|
|
208
|
+
<link rel="modulepreload" crossorigin href="./assets/column-preview-DeXESYpM.js">
|
|
209
209
|
<link rel="modulepreload" crossorigin href="./assets/icons-CIPE8AIY.js">
|
|
210
|
-
<link rel="modulepreload" crossorigin href="./assets/radio-group-
|
|
211
|
-
<link rel="modulepreload" crossorigin href="./assets/floating-outline-
|
|
210
|
+
<link rel="modulepreload" crossorigin href="./assets/radio-group-22eWJ9fv.js">
|
|
211
|
+
<link rel="modulepreload" crossorigin href="./assets/floating-outline-ByQ8vvif.js">
|
|
212
212
|
<link rel="modulepreload" crossorigin href="./assets/switch-OVajJBPR.js">
|
|
213
213
|
<link rel="modulepreload" crossorigin href="./assets/objectWithoutPropertiesLoose-CboCOq4o.js">
|
|
214
214
|
<link rel="modulepreload" crossorigin href="./assets/esm-B30N1GS0.js">
|
|
215
|
-
<link rel="modulepreload" crossorigin href="./assets/readonly-python-code-
|
|
215
|
+
<link rel="modulepreload" crossorigin href="./assets/readonly-python-code-n_TrLmsR.js">
|
|
216
216
|
<link rel="modulepreload" crossorigin href="./assets/file-headphone-DAu6VO6j.js">
|
|
217
217
|
<link rel="modulepreload" crossorigin href="./assets/file-CJH9JNGH.js">
|
|
218
218
|
<link rel="modulepreload" crossorigin href="./assets/image-5XI2VU-q.js">
|
|
219
|
-
<link rel="modulepreload" crossorigin href="./assets/file-icons-
|
|
219
|
+
<link rel="modulepreload" crossorigin href="./assets/file-icons-CSjJ3JC6.js">
|
|
220
220
|
<link rel="modulepreload" crossorigin href="./assets/events-90X9nql5.js">
|
|
221
221
|
<link rel="modulepreload" crossorigin href="./assets/share-852X_cqy.js">
|
|
222
222
|
<link rel="modulepreload" crossorigin href="./assets/blob-C3EfaMOb.js">
|
|
223
223
|
<link rel="modulepreload" crossorigin href="./assets/memoize-Tp7rARFe.js">
|
|
224
224
|
<link rel="modulepreload" crossorigin href="./assets/get-C-qh_et5.js">
|
|
225
225
|
<link rel="modulepreload" crossorigin href="./assets/_baseSet-CsW0tABf.js">
|
|
226
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
226
|
+
<link rel="modulepreload" crossorigin href="./assets/state-B7LxUcAy.js">
|
|
227
227
|
<link rel="modulepreload" crossorigin href="./assets/label-CqjrpwRC.js">
|
|
228
|
-
<link rel="modulepreload" crossorigin href="./assets/textarea-
|
|
228
|
+
<link rel="modulepreload" crossorigin href="./assets/textarea-DuEtSOCl.js">
|
|
229
229
|
<link rel="modulepreload" crossorigin href="./assets/refresh-ccw-sLaKP2vj.js">
|
|
230
|
-
<link rel="modulepreload" crossorigin href="./assets/form-
|
|
230
|
+
<link rel="modulepreload" crossorigin href="./assets/form-Ca3yd_Od.js">
|
|
231
231
|
<link rel="modulepreload" crossorigin href="./assets/renderShortcut-Bl8_FVn8.js">
|
|
232
232
|
<link rel="modulepreload" crossorigin href="./assets/useBoolean-CFj86iac.js">
|
|
233
233
|
<link rel="modulepreload" crossorigin href="./assets/useDeepCompareMemoize-CSMoa-ga.js">
|
package/package.json
CHANGED
|
@@ -109,9 +109,10 @@ exports[`ColumnChartSpecModel > file URL handling > should handle arrow data 1`]
|
|
|
109
109
|
"type": "temporal",
|
|
110
110
|
},
|
|
111
111
|
"y": {
|
|
112
|
-
"
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
"value": 0,
|
|
113
|
+
},
|
|
114
|
+
"y2": {
|
|
115
|
+
"value": 100,
|
|
115
116
|
},
|
|
116
117
|
},
|
|
117
118
|
"mark": {
|
|
@@ -222,9 +223,10 @@ exports[`ColumnChartSpecModel > should expect bin values to be used for number a
|
|
|
222
223
|
"field": "bin_end_extended",
|
|
223
224
|
},
|
|
224
225
|
"y": {
|
|
225
|
-
"
|
|
226
|
-
|
|
227
|
-
|
|
226
|
+
"value": 0,
|
|
227
|
+
},
|
|
228
|
+
"y2": {
|
|
229
|
+
"value": 30,
|
|
228
230
|
},
|
|
229
231
|
},
|
|
230
232
|
"mark": {
|
|
@@ -486,9 +488,10 @@ exports[`ColumnChartSpecModel > should handle datetime bin values 1`] = `
|
|
|
486
488
|
"type": "ordinal",
|
|
487
489
|
},
|
|
488
490
|
"y": {
|
|
489
|
-
"
|
|
490
|
-
|
|
491
|
-
|
|
491
|
+
"value": 0,
|
|
492
|
+
},
|
|
493
|
+
"y2": {
|
|
494
|
+
"value": 30,
|
|
492
495
|
},
|
|
493
496
|
},
|
|
494
497
|
"mark": {
|
|
@@ -633,6 +636,152 @@ exports[`ColumnChartSpecModel > should handle string value counts 1`] = `
|
|
|
633
636
|
}
|
|
634
637
|
`;
|
|
635
638
|
|
|
639
|
+
exports[`ColumnChartSpecModel > should render a null bar for all-null temporal columns 1`] = `
|
|
640
|
+
{
|
|
641
|
+
"background": "transparent",
|
|
642
|
+
"config": {
|
|
643
|
+
"axis": {
|
|
644
|
+
"domain": false,
|
|
645
|
+
},
|
|
646
|
+
"view": {
|
|
647
|
+
"stroke": "transparent",
|
|
648
|
+
},
|
|
649
|
+
},
|
|
650
|
+
"data": {
|
|
651
|
+
"name": "bin_values",
|
|
652
|
+
"values": [
|
|
653
|
+
{
|
|
654
|
+
"bin_end": null,
|
|
655
|
+
"bin_start": null,
|
|
656
|
+
"count": 12,
|
|
657
|
+
},
|
|
658
|
+
],
|
|
659
|
+
},
|
|
660
|
+
"height": 30,
|
|
661
|
+
"layer": [
|
|
662
|
+
{
|
|
663
|
+
"encoding": {
|
|
664
|
+
"x": {
|
|
665
|
+
"axis": null,
|
|
666
|
+
"field": "bin_start",
|
|
667
|
+
"type": "nominal",
|
|
668
|
+
},
|
|
669
|
+
"y": {
|
|
670
|
+
"axis": null,
|
|
671
|
+
"field": "count",
|
|
672
|
+
"type": "quantitative",
|
|
673
|
+
},
|
|
674
|
+
},
|
|
675
|
+
"mark": {
|
|
676
|
+
"color": "#cc4e00",
|
|
677
|
+
"type": "bar",
|
|
678
|
+
},
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
"encoding": {
|
|
682
|
+
"tooltip": [
|
|
683
|
+
{
|
|
684
|
+
"field": "count",
|
|
685
|
+
"format": ",d",
|
|
686
|
+
"title": "nulls",
|
|
687
|
+
"type": "quantitative",
|
|
688
|
+
},
|
|
689
|
+
],
|
|
690
|
+
"x": {
|
|
691
|
+
"axis": null,
|
|
692
|
+
"field": "bin_start",
|
|
693
|
+
"type": "nominal",
|
|
694
|
+
},
|
|
695
|
+
"y": {
|
|
696
|
+
"value": 0,
|
|
697
|
+
},
|
|
698
|
+
"y2": {
|
|
699
|
+
"value": 30,
|
|
700
|
+
},
|
|
701
|
+
},
|
|
702
|
+
"mark": {
|
|
703
|
+
"opacity": 0,
|
|
704
|
+
"type": "bar",
|
|
705
|
+
},
|
|
706
|
+
},
|
|
707
|
+
],
|
|
708
|
+
"width": 70,
|
|
709
|
+
}
|
|
710
|
+
`;
|
|
711
|
+
|
|
712
|
+
exports[`ColumnChartSpecModel > should render only a null bar for all-null numeric columns 1`] = `
|
|
713
|
+
{
|
|
714
|
+
"background": "transparent",
|
|
715
|
+
"config": {
|
|
716
|
+
"axis": {
|
|
717
|
+
"domain": false,
|
|
718
|
+
},
|
|
719
|
+
"view": {
|
|
720
|
+
"stroke": "transparent",
|
|
721
|
+
},
|
|
722
|
+
},
|
|
723
|
+
"data": {
|
|
724
|
+
"name": "bin_values",
|
|
725
|
+
"values": [
|
|
726
|
+
{
|
|
727
|
+
"bin_end": null,
|
|
728
|
+
"bin_start": null,
|
|
729
|
+
"count": 12,
|
|
730
|
+
},
|
|
731
|
+
],
|
|
732
|
+
},
|
|
733
|
+
"height": 30,
|
|
734
|
+
"layer": [
|
|
735
|
+
{
|
|
736
|
+
"encoding": {
|
|
737
|
+
"x": {
|
|
738
|
+
"axis": null,
|
|
739
|
+
"field": "bin_start",
|
|
740
|
+
"type": "nominal",
|
|
741
|
+
},
|
|
742
|
+
"y": {
|
|
743
|
+
"axis": null,
|
|
744
|
+
"field": "count",
|
|
745
|
+
"type": "quantitative",
|
|
746
|
+
},
|
|
747
|
+
},
|
|
748
|
+
"mark": {
|
|
749
|
+
"color": "#cc4e00",
|
|
750
|
+
"type": "bar",
|
|
751
|
+
},
|
|
752
|
+
},
|
|
753
|
+
{
|
|
754
|
+
"encoding": {
|
|
755
|
+
"tooltip": [
|
|
756
|
+
{
|
|
757
|
+
"field": "count",
|
|
758
|
+
"format": ",d",
|
|
759
|
+
"title": "nulls",
|
|
760
|
+
"type": "quantitative",
|
|
761
|
+
},
|
|
762
|
+
],
|
|
763
|
+
"x": {
|
|
764
|
+
"axis": null,
|
|
765
|
+
"field": "bin_start",
|
|
766
|
+
"type": "nominal",
|
|
767
|
+
},
|
|
768
|
+
"y": {
|
|
769
|
+
"value": 0,
|
|
770
|
+
},
|
|
771
|
+
"y2": {
|
|
772
|
+
"value": 30,
|
|
773
|
+
},
|
|
774
|
+
},
|
|
775
|
+
"mark": {
|
|
776
|
+
"opacity": 0,
|
|
777
|
+
"type": "bar",
|
|
778
|
+
},
|
|
779
|
+
},
|
|
780
|
+
],
|
|
781
|
+
"width": 70,
|
|
782
|
+
}
|
|
783
|
+
`;
|
|
784
|
+
|
|
636
785
|
exports[`ColumnChartSpecModel > snapshot with legacy data spec > array 1`] = `
|
|
637
786
|
{
|
|
638
787
|
"background": "transparent",
|
|
@@ -700,9 +849,10 @@ exports[`ColumnChartSpecModel > snapshot with legacy data spec > array 1`] = `
|
|
|
700
849
|
"type": "quantitative",
|
|
701
850
|
},
|
|
702
851
|
"y": {
|
|
703
|
-
"
|
|
704
|
-
|
|
705
|
-
|
|
852
|
+
"value": 0,
|
|
853
|
+
},
|
|
854
|
+
"y2": {
|
|
855
|
+
"value": 100,
|
|
706
856
|
},
|
|
707
857
|
},
|
|
708
858
|
"mark": {
|
|
@@ -788,9 +938,10 @@ exports[`ColumnChartSpecModel > snapshot with legacy data spec > csv data 1`] =
|
|
|
788
938
|
"type": "quantitative",
|
|
789
939
|
},
|
|
790
940
|
"y": {
|
|
791
|
-
"
|
|
792
|
-
|
|
793
|
-
|
|
941
|
+
"value": 0,
|
|
942
|
+
},
|
|
943
|
+
"y2": {
|
|
944
|
+
"value": 100,
|
|
794
945
|
},
|
|
795
946
|
},
|
|
796
947
|
"mark": {
|
|
@@ -876,9 +1027,10 @@ exports[`ColumnChartSpecModel > snapshot with legacy data spec > csv string 1`]
|
|
|
876
1027
|
"type": "quantitative",
|
|
877
1028
|
},
|
|
878
1029
|
"y": {
|
|
879
|
-
"
|
|
880
|
-
|
|
881
|
-
|
|
1030
|
+
"value": 0,
|
|
1031
|
+
},
|
|
1032
|
+
"y2": {
|
|
1033
|
+
"value": 100,
|
|
882
1034
|
},
|
|
883
1035
|
},
|
|
884
1036
|
"mark": {
|
|
@@ -988,9 +1140,10 @@ exports[`ColumnChartSpecModel > snapshot with legacy data spec > url data 1`] =
|
|
|
988
1140
|
"type": "temporal",
|
|
989
1141
|
},
|
|
990
1142
|
"y": {
|
|
991
|
-
"
|
|
992
|
-
|
|
993
|
-
|
|
1143
|
+
"value": 0,
|
|
1144
|
+
},
|
|
1145
|
+
"y2": {
|
|
1146
|
+
"value": 100,
|
|
994
1147
|
},
|
|
995
1148
|
},
|
|
996
1149
|
"mark": {
|
|
@@ -178,6 +178,104 @@ describe("ColumnChartSpecModel", () => {
|
|
|
178
178
|
expect(summary2.spec?.data?.values).toEqual(mockBinValues.integer);
|
|
179
179
|
});
|
|
180
180
|
|
|
181
|
+
it("should render only a null bar for all-null numeric columns", () => {
|
|
182
|
+
const allNullStats: Record<ColumnName, Partial<ColumnHeaderStats>> = {
|
|
183
|
+
number: { nulls: 12, total: 12 },
|
|
184
|
+
};
|
|
185
|
+
const allNullBins: Record<ColumnName, BinValues> = {
|
|
186
|
+
number: [],
|
|
187
|
+
};
|
|
188
|
+
const model = new ColumnChartSpecModel(
|
|
189
|
+
[],
|
|
190
|
+
mockFieldTypes,
|
|
191
|
+
allNullStats,
|
|
192
|
+
allNullBins,
|
|
193
|
+
{},
|
|
194
|
+
{ includeCharts: true },
|
|
195
|
+
);
|
|
196
|
+
const summary = model.getHeaderSummary("number");
|
|
197
|
+
expect(summary.spec).toBeDefined();
|
|
198
|
+
// @ts-expect-error hconcat should be available
|
|
199
|
+
expect(summary.spec?.hconcat).toBeUndefined();
|
|
200
|
+
// @ts-expect-error data.values should be available
|
|
201
|
+
expect(summary.spec?.data?.values).toEqual([
|
|
202
|
+
{ bin_start: null, bin_end: null, count: 12 },
|
|
203
|
+
]);
|
|
204
|
+
// Full-width null-only chart (not the thin hconcat null strip)
|
|
205
|
+
expect(summary.spec?.width).toBe(70);
|
|
206
|
+
// Full-height tooltip hit area uses pixel y/y2 (no aggregate:max)
|
|
207
|
+
// @ts-expect-error layer should be available
|
|
208
|
+
expect(summary.spec?.layer?.[1]?.encoding?.y).toEqual({ value: 0 });
|
|
209
|
+
// @ts-expect-error layer should be available
|
|
210
|
+
expect(summary.spec?.layer?.[1]?.encoding?.y2).toEqual({ value: 30 });
|
|
211
|
+
expect(summary.spec).toMatchSnapshot();
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
it("should ignore NaN bins and not mutate stored bin values", () => {
|
|
215
|
+
const nanOnlyBins: Record<ColumnName, BinValues> = {
|
|
216
|
+
number: [
|
|
217
|
+
{ bin_start: Number.NaN, bin_end: 0.1, count: 0 },
|
|
218
|
+
{ bin_start: Number.NaN, bin_end: 1, count: 0 },
|
|
219
|
+
],
|
|
220
|
+
};
|
|
221
|
+
const stats: Record<ColumnName, Partial<ColumnHeaderStats>> = {
|
|
222
|
+
number: { nulls: 12, total: 12 },
|
|
223
|
+
};
|
|
224
|
+
const model = new ColumnChartSpecModel(
|
|
225
|
+
[],
|
|
226
|
+
mockFieldTypes,
|
|
227
|
+
stats,
|
|
228
|
+
nanOnlyBins,
|
|
229
|
+
{},
|
|
230
|
+
{ includeCharts: true },
|
|
231
|
+
);
|
|
232
|
+
const first = model.getHeaderSummary("number");
|
|
233
|
+
const second = model.getHeaderSummary("number");
|
|
234
|
+
// All NaN bins are invalid → null-only chart
|
|
235
|
+
// @ts-expect-error hconcat should be available
|
|
236
|
+
expect(first.spec?.hconcat).toBeUndefined();
|
|
237
|
+
expect(first.spec?.width).toBe(70);
|
|
238
|
+
// Stored bins must not grow across getHeaderSummary calls
|
|
239
|
+
expect(nanOnlyBins.number).toHaveLength(2);
|
|
240
|
+
expect(second.spec).toEqual(first.spec);
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
it("should render a null bar for all-null temporal columns", () => {
|
|
244
|
+
const model = new ColumnChartSpecModel(
|
|
245
|
+
[],
|
|
246
|
+
mockFieldTypes,
|
|
247
|
+
{ datetime: { nulls: 12, total: 12 } },
|
|
248
|
+
{ datetime: [] },
|
|
249
|
+
{},
|
|
250
|
+
{ includeCharts: true },
|
|
251
|
+
);
|
|
252
|
+
const summary = model.getHeaderSummary("datetime");
|
|
253
|
+
expect(summary.spec).toBeDefined();
|
|
254
|
+
// @ts-expect-error data.values
|
|
255
|
+
expect(summary.spec?.data?.values).toEqual([
|
|
256
|
+
{ bin_start: null, bin_end: null, count: 12 },
|
|
257
|
+
]);
|
|
258
|
+
expect(summary.spec?.width).toBe(70);
|
|
259
|
+
// Same full-height hover hit area as numeric all-null charts
|
|
260
|
+
// @ts-expect-error layer should be available
|
|
261
|
+
expect(summary.spec?.layer?.[1]?.encoding?.y).toEqual({ value: 0 });
|
|
262
|
+
// @ts-expect-error layer should be available
|
|
263
|
+
expect(summary.spec?.layer?.[1]?.encoding?.y2).toEqual({ value: 30 });
|
|
264
|
+
expect(summary.spec).toMatchSnapshot();
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
it("should return null when numeric bins are empty and there are no nulls", () => {
|
|
268
|
+
const model = new ColumnChartSpecModel(
|
|
269
|
+
[],
|
|
270
|
+
mockFieldTypes,
|
|
271
|
+
{ number: { min: 0, max: 1 } },
|
|
272
|
+
{ number: [] },
|
|
273
|
+
{},
|
|
274
|
+
{ includeCharts: true },
|
|
275
|
+
);
|
|
276
|
+
expect(model.getHeaderSummary("number").spec).toBeNull();
|
|
277
|
+
});
|
|
278
|
+
|
|
181
279
|
it("should handle datetime bin values", () => {
|
|
182
280
|
const model = new ColumnChartSpecModel(
|
|
183
281
|
[],
|
|
@@ -191,7 +289,10 @@ describe("ColumnChartSpecModel", () => {
|
|
|
191
289
|
const summary = model.getHeaderSummary("datetime");
|
|
192
290
|
expect(summary.spec).toBeDefined();
|
|
193
291
|
// @ts-expect-error data.values should be available
|
|
194
|
-
expect(summary.spec?.data?.values).toEqual(
|
|
292
|
+
expect(summary.spec?.data?.values).toEqual([
|
|
293
|
+
...mockBinValues.datetime,
|
|
294
|
+
{ bin_start: null, bin_end: null, count: 10 },
|
|
295
|
+
]);
|
|
195
296
|
|
|
196
297
|
expect(summary.spec).toMatchSnapshot();
|
|
197
298
|
|