@malloy-publisher/sdk 0.0.137 → 0.0.139
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/README.md +122 -1
- package/dist/ServerProvider-Bzid56gJ.cjs.js +1 -0
- package/dist/{ServerProvider-BGGK1ZQ_.es.js → ServerProvider-D-y63tG0.es.js} +550 -478
- package/dist/client/api.d.ts +144 -53
- package/dist/client/index.cjs.js +1 -1
- package/dist/client/index.es.js +22 -21
- package/dist/components/Notebook/Notebook.d.ts +4 -1
- package/dist/components/Notebook/NotebookCell.d.ts +2 -2
- package/dist/components/Notebook/types.d.ts +21 -0
- package/dist/components/filter/DimensionFilter.d.ts +43 -0
- package/dist/components/filter/index.d.ts +4 -0
- package/dist/components/filter/utils.d.ts +75 -0
- package/dist/components/index.d.ts +7 -6
- package/dist/components/styles.d.ts +3 -3
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/useDimensionFilters.d.ts +84 -0
- package/dist/hooks/useDimensionFiltersFromSpec.d.ts +52 -0
- package/dist/hooks/useDimensionFiltersQuery.d.ts +79 -0
- package/dist/hooks/useDimensionalFilterRangeData.d.ts +106 -0
- package/dist/index.cjs.js +141 -112
- package/dist/index.d.ts +3 -2
- package/dist/index.es.js +47903 -39798
- package/dist/sdk.css +1 -1
- package/package.json +16 -11
- package/src/components/Home/Home.tsx +15 -11
- package/src/components/Notebook/Notebook.tsx +391 -6
- package/src/components/Notebook/NotebookCell.tsx +2 -2
- package/src/components/Notebook/types.ts +24 -0
- package/src/components/Package/Connections.tsx +3 -6
- package/src/components/RenderedResult/RenderedResult.tsx +22 -3
- package/src/components/filter/DimensionFilter.tsx +738 -0
- package/src/components/filter/index.ts +20 -0
- package/src/components/filter/utils.ts +354 -0
- package/src/components/highlighter.ts +14 -6
- package/src/components/index.ts +7 -6
- package/src/hooks/index.ts +31 -0
- package/src/hooks/useDimensionFilters.ts +322 -0
- package/src/hooks/useDimensionFiltersFromSpec.ts +117 -0
- package/src/hooks/useDimensionFiltersQuery.ts +300 -0
- package/src/hooks/useDimensionalFilterRangeData.ts +758 -0
- package/src/index.ts +3 -2
- package/dist/ServerProvider-lXAaPKBb.cjs.js +0 -1
- package/dist/abap-BmBUA35e.es.js +0 -6
- package/dist/abap-Dwt2rH6y.cjs.js +0 -1
- package/dist/actionscript-3-mj8Uhnsc.cjs.js +0 -1
- package/dist/actionscript-3-zFUbzQa9.es.js +0 -6
- package/dist/ada-CBvPkFpZ.es.js +0 -6
- package/dist/ada-DZM58Vqs.cjs.js +0 -1
- package/dist/andromeeda-BXc5FOIb.cjs.js +0 -1
- package/dist/andromeeda-uXNdzNpk.es.js +0 -4
- package/dist/angular-html-B60m4jt-.cjs.js +0 -1
- package/dist/angular-html-D3aW1y6T.es.js +0 -32
- package/dist/angular-ts-Jud40GrY.es.js +0 -21
- package/dist/angular-ts-SIlYrqkG.cjs.js +0 -1
- package/dist/apache-CVNlsSDc.es.js +0 -6
- package/dist/apache-D7v5fxtZ.cjs.js +0 -1
- package/dist/apex-4hrAnw0a.cjs.js +0 -1
- package/dist/apex-DFk3KRB1.es.js +0 -6
- package/dist/apl-CKSaOFbt.cjs.js +0 -1
- package/dist/apl-pE3PRTDr.es.js +0 -16
- package/dist/applescript-CYMR_y0g.es.js +0 -6
- package/dist/applescript-Cnd3Dxju.cjs.js +0 -1
- package/dist/ara-4QmU5e04.es.js +0 -6
- package/dist/ara-BQ2aGbFQ.cjs.js +0 -1
- package/dist/asciidoc-C6nYvw8K.cjs.js +0 -1
- package/dist/asciidoc-v_1bjgUg.es.js +0 -6
- package/dist/asm-CQnBVCj-.cjs.js +0 -1
- package/dist/asm-RC0Yh-NZ.es.js +0 -6
- package/dist/astro-Be6fybGX.es.js +0 -16
- package/dist/astro-KhYkz6Xu.cjs.js +0 -1
- package/dist/aurora-x-BwoVEUWZ.es.js +0 -4
- package/dist/aurora-x-C5IpmIOG.cjs.js +0 -1
- package/dist/awk-DUx4h__E.cjs.js +0 -1
- package/dist/awk-gPH8MVMW.es.js +0 -6
- package/dist/ayu-dark-Cv7nTiif.cjs.js +0 -1
- package/dist/ayu-dark-CxPZkpb2.es.js +0 -4
- package/dist/ballerina-CXlzbmzl.cjs.js +0 -1
- package/dist/ballerina-kvLnRU_e.es.js +0 -6
- package/dist/bat-BHYy44sT.es.js +0 -6
- package/dist/bat-DlMT9sut.cjs.js +0 -1
- package/dist/beancount-CyyiuUzM.cjs.js +0 -1
- package/dist/beancount-D-MADTs_.es.js +0 -6
- package/dist/berry-B0EjuzrL.cjs.js +0 -1
- package/dist/berry-Ci9U0o4h.es.js +0 -6
- package/dist/bibtex-CX618D15.es.js +0 -6
- package/dist/bibtex-CfoG9xRq.cjs.js +0 -1
- package/dist/bicep-D6PH_9IY.cjs.js +0 -1
- package/dist/bicep-iuYiPopT.es.js +0 -6
- package/dist/blade-C0tMuk8f.cjs.js +0 -1
- package/dist/blade-DmXp5Zcz.es.js +0 -18
- package/dist/bsl-CfHcite8.cjs.js +0 -1
- package/dist/bsl-NPX_d-bb.es.js +0 -8
- package/dist/c-C4sXGJZM.cjs.js +0 -1
- package/dist/c-DASdrs7p.es.js +0 -6
- package/dist/cadence-BDALQi26.es.js +0 -6
- package/dist/cadence-Dq2CYzXG.cjs.js +0 -1
- package/dist/cairo-17kO8-kb.es.js +0 -8
- package/dist/cairo-CcKpJkyf.cjs.js +0 -1
- package/dist/catppuccin-frappe-BrTOiad2.es.js +0 -4
- package/dist/catppuccin-frappe-DXAedND3.cjs.js +0 -1
- package/dist/catppuccin-latte-D-dc_R4m.es.js +0 -4
- package/dist/catppuccin-latte-mwGw3-Ej.cjs.js +0 -1
- package/dist/catppuccin-macchiato-DN4jOp0G.es.js +0 -4
- package/dist/catppuccin-macchiato-cQCk9ADg.cjs.js +0 -1
- package/dist/catppuccin-mocha-B8yCE3-3.es.js +0 -4
- package/dist/catppuccin-mocha-ClSzDZSl.cjs.js +0 -1
- package/dist/clarity-CNgV2Ths.es.js +0 -6
- package/dist/clarity-ytMkUD5Q.cjs.js +0 -1
- package/dist/clojure-B_Wv414H.cjs.js +0 -1
- package/dist/clojure-CsKKFGwv.es.js +0 -6
- package/dist/cmake-Dr-A3iJx.es.js +0 -6
- package/dist/cmake-TBUaQXYY.cjs.js +0 -1
- package/dist/cobol-BzcJm6ie.es.js +0 -10
- package/dist/cobol-DXFNH4EH.cjs.js +0 -1
- package/dist/codeowners-Bt9yU6NX.es.js +0 -6
- package/dist/codeowners-QhPK6lIJ.cjs.js +0 -1
- package/dist/codeql-B7Q9tkDJ.cjs.js +0 -1
- package/dist/codeql-DBNTqJi1.es.js +0 -6
- package/dist/coffee-GRRSkgX1.cjs.js +0 -1
- package/dist/coffee-q2iaxUnQ.es.js +0 -8
- package/dist/common-lisp-Ced3ctK5.cjs.js +0 -1
- package/dist/common-lisp-r7ZEOG7T.es.js +0 -6
- package/dist/coq-BTRB4iqi.cjs.js +0 -1
- package/dist/coq-CB6Pv_W9.es.js +0 -6
- package/dist/cpp-CPOvHZqs.cjs.js +0 -1
- package/dist/cpp-CPQtoCcU.es.js +0 -18
- package/dist/crystal-BY_Cg265.es.js +0 -18
- package/dist/crystal-C6AG-iew.cjs.js +0 -1
- package/dist/csharp-CYWRhZ2R.es.js +0 -6
- package/dist/csharp-TKds-MhG.cjs.js +0 -1
- package/dist/css-B0kbn78J.cjs.js +0 -1
- package/dist/css-D1aVdRIU.es.js +0 -6
- package/dist/csv-BVJjiaC3.cjs.js +0 -1
- package/dist/csv-DvCncUGQ.es.js +0 -6
- package/dist/cue-BXMrmvay.es.js +0 -6
- package/dist/cue-Cz4J-rnd.cjs.js +0 -1
- package/dist/cypher-DTm5zNR1.es.js +0 -6
- package/dist/cypher-DuKTiyez.cjs.js +0 -1
- package/dist/d-BW9Wd7aK.cjs.js +0 -1
- package/dist/d-D6ZXmn3l.es.js +0 -6
- package/dist/dark-plus-Cd5emcYO.cjs.js +0 -1
- package/dist/dark-plus-pUHDTVV0.es.js +0 -4
- package/dist/dart-CWs-er6b.cjs.js +0 -1
- package/dist/dart-Dz59Is3F.es.js +0 -6
- package/dist/dax-CDxFL2Kb.cjs.js +0 -1
- package/dist/dax-DTVGzydb.es.js +0 -6
- package/dist/desktop-CFgo0jo7.cjs.js +0 -1
- package/dist/desktop-Db9vb-dl.es.js +0 -6
- package/dist/diff-BsEkKwI8.cjs.js +0 -1
- package/dist/diff-XmNrvgM1.es.js +0 -6
- package/dist/docker-DWH2onkn.es.js +0 -6
- package/dist/docker-hwiw4W8I.cjs.js +0 -1
- package/dist/dotenv-4337wvzu.es.js +0 -6
- package/dist/dotenv-CJ5o3G1C.cjs.js +0 -1
- package/dist/dracula-BNgwAJ-d.cjs.js +0 -1
- package/dist/dracula-BtZx2Kac.es.js +0 -4
- package/dist/dracula-soft-BHZ7sHFu.cjs.js +0 -1
- package/dist/dracula-soft-BKa-aqBv.es.js +0 -4
- package/dist/dream-maker-CvvfrJSx.es.js +0 -6
- package/dist/dream-maker-DBharE9Q.cjs.js +0 -1
- package/dist/edge-DI6_BHKG.es.js +0 -12
- package/dist/edge-i77KJtJz.cjs.js +0 -1
- package/dist/elixir-D00NoPSM.cjs.js +0 -1
- package/dist/elixir-ic9y5jcd.es.js +0 -8
- package/dist/elm-Bhj5Vf-e.cjs.js +0 -1
- package/dist/elm-DxnUqUaW.es.js +0 -8
- package/dist/emacs-lisp-BAefI874.es.js +0 -6
- package/dist/emacs-lisp-CDDyFsvQ.cjs.js +0 -1
- package/dist/erb-Cbj2YePa.es.js +0 -10
- package/dist/erb-Dybaw01v.cjs.js +0 -1
- package/dist/erlang-3VgdrQXV.cjs.js +0 -1
- package/dist/erlang-CmIiwF3I.es.js +0 -6
- package/dist/everforest-dark-DMCBqXCK.es.js +0 -4
- package/dist/everforest-dark-_sBMomR1.cjs.js +0 -1
- package/dist/everforest-light-BbXl82Em.es.js +0 -4
- package/dist/everforest-light-H0xoYxl0.cjs.js +0 -1
- package/dist/fennel-BvcDRFAV.cjs.js +0 -1
- package/dist/fennel-DNqkz9pE.es.js +0 -6
- package/dist/fish-CnamI0Ar.cjs.js +0 -1
- package/dist/fish-DIm72t2T.es.js +0 -6
- package/dist/fluent-BapTxJsC.es.js +0 -6
- package/dist/fluent-DFpT66K8.cjs.js +0 -1
- package/dist/fortran-fixed-form-DECY15PY.es.js +0 -8
- package/dist/fortran-fixed-form-u_RcUPMu.cjs.js +0 -1
- package/dist/fortran-free-form-CNDsBFUj.es.js +0 -6
- package/dist/fortran-free-form-IaGrWIda.cjs.js +0 -1
- package/dist/fsharp-B-aK2rr3.cjs.js +0 -1
- package/dist/fsharp-D2ZqviWP.es.js +0 -8
- package/dist/gdresource-BBAqNWe4.cjs.js +0 -1
- package/dist/gdresource-RIsK8sku.es.js +0 -10
- package/dist/gdscript-5N_43TPQ.cjs.js +0 -1
- package/dist/gdscript-D7aheHm-.es.js +0 -6
- package/dist/gdshader-BGJEsM2Z.es.js +0 -6
- package/dist/gdshader-Bl85Hrm5.cjs.js +0 -1
- package/dist/genie-C9gPjc6J.es.js +0 -6
- package/dist/genie-DGsxMAbQ.cjs.js +0 -1
- package/dist/gherkin-CVV6nEUH.cjs.js +0 -1
- package/dist/gherkin-bka1Exbx.es.js +0 -6
- package/dist/git-commit-BRJ1E4Bx.es.js +0 -8
- package/dist/git-commit-CwfgI4fD.cjs.js +0 -1
- package/dist/git-rebase-C3X7aMpn.es.js +0 -8
- package/dist/git-rebase-DUvbIQDw.cjs.js +0 -1
- package/dist/github-dark-BKL9xNgN.cjs.js +0 -1
- package/dist/github-dark-DenFmJkN.es.js +0 -4
- package/dist/github-dark-default-BJPUVz4H.es.js +0 -4
- package/dist/github-dark-default-Dsv5MuSi.cjs.js +0 -1
- package/dist/github-dark-dimmed-CtB9hz8U.cjs.js +0 -1
- package/dist/github-dark-dimmed-DUshB20C.es.js +0 -4
- package/dist/github-dark-high-contrast-BqZVM-jF.cjs.js +0 -1
- package/dist/github-dark-high-contrast-D3aGCnF8.es.js +0 -4
- package/dist/github-light-BFTOhCbz.cjs.js +0 -1
- package/dist/github-light-JYsPkUQd.es.js +0 -4
- package/dist/github-light-default-BZoWH9dH.cjs.js +0 -1
- package/dist/github-light-default-D99KPAby.es.js +0 -4
- package/dist/github-light-high-contrast-BbmZE-Mp.es.js +0 -4
- package/dist/github-light-high-contrast-Ks3kPGJU.cjs.js +0 -1
- package/dist/gleam-B4k9YFGD.es.js +0 -6
- package/dist/gleam-nR4mjrhK.cjs.js +0 -1
- package/dist/glimmer-js-C4MQf3Na.es.js +0 -14
- package/dist/glimmer-js-CNfyUqSb.cjs.js +0 -1
- package/dist/glimmer-ts-Bp7_dELi.cjs.js +0 -1
- package/dist/glimmer-ts-CoYpqZrZ.es.js +0 -14
- package/dist/glsl-BYTq1Tfl.es.js +0 -8
- package/dist/glsl-CIu1PL9X.cjs.js +0 -1
- package/dist/gnuplot-CurtDYoJ.cjs.js +0 -1
- package/dist/gnuplot-DnWoRZt-.es.js +0 -6
- package/dist/go-BErP6iv1.es.js +0 -6
- package/dist/go-CM9_GlwL.cjs.js +0 -1
- package/dist/graphql-BnnSMMC2.cjs.js +0 -1
- package/dist/graphql-g3nHRc0M.es.js +0 -14
- package/dist/groovy-BaVp9Il5.cjs.js +0 -1
- package/dist/groovy-IWs5-NIO.es.js +0 -6
- package/dist/hack-BVxH3fsq.cjs.js +0 -1
- package/dist/hack-wPAsyujS.es.js +0 -10
- package/dist/haml-4TJ757dz.es.js +0 -10
- package/dist/haml-vutdexHh.cjs.js +0 -1
- package/dist/handlebars-7GDLw__F.es.js +0 -14
- package/dist/handlebars-COmZnO8P.cjs.js +0 -1
- package/dist/haskell-CtlGos0K.es.js +0 -6
- package/dist/haskell-suhyCHEm.cjs.js +0 -1
- package/dist/haxe-BIQU1qHi.cjs.js +0 -1
- package/dist/haxe-CZZ33vZw.es.js +0 -6
- package/dist/hcl-6hOg9WP4.es.js +0 -6
- package/dist/hcl-CbQ1yCnz.cjs.js +0 -1
- package/dist/hjson-CgwED-oz.es.js +0 -6
- package/dist/hjson-Ddklb4QM.cjs.js +0 -1
- package/dist/hlsl-3-lv4gi7.es.js +0 -6
- package/dist/hlsl-B4NkiBfC.cjs.js +0 -1
- package/dist/houston-BDYrDoDW.es.js +0 -4
- package/dist/houston-T57H3gQZ.cjs.js +0 -1
- package/dist/html-Dc-Bg17s.cjs.js +0 -1
- package/dist/html-PSPajZka.es.js +0 -10
- package/dist/html-derivative-Brb3b4aI.es.js +0 -8
- package/dist/html-derivative-CY9mJeT0.cjs.js +0 -1
- package/dist/http-BrKsebcH.cjs.js +0 -1
- package/dist/http-CWBcr-Ch.es.js +0 -14
- package/dist/hxml-DLduiIv3.es.js +0 -8
- package/dist/hxml-DbGPHkY4.cjs.js +0 -1
- package/dist/hy-C2xHhR6I.es.js +0 -6
- package/dist/hy-DpyTdO3T.cjs.js +0 -1
- package/dist/imba-BEYqRZzB.es.js +0 -8
- package/dist/imba-CAIkF-GD.cjs.js +0 -1
- package/dist/ini-BUcvsX-U.es.js +0 -6
- package/dist/ini-CymULaw_.cjs.js +0 -1
- package/dist/java-B7odJ7Ap.es.js +0 -6
- package/dist/java-Bn1Lvoni.cjs.js +0 -1
- package/dist/javascript-Bnnicc83.cjs.js +0 -1
- package/dist/javascript-fa8UlHZE.es.js +0 -6
- package/dist/jinja-BoeZymy4.cjs.js +0 -1
- package/dist/jinja-DKLHYjK0.es.js +0 -11
- package/dist/jison-C0DlFEjB.cjs.js +0 -1
- package/dist/jison-CzPfUIvM.es.js +0 -8
- package/dist/json-71t8ZF9g.es.js +0 -6
- package/dist/json-y-J1j5EW.cjs.js +0 -1
- package/dist/json5-CzvlWgZ7.cjs.js +0 -1
- package/dist/json5-Z7F6rA6a.es.js +0 -6
- package/dist/jsonc-BnhWfmQw.cjs.js +0 -1
- package/dist/jsonc-Dphhs4m2.es.js +0 -6
- package/dist/jsonl-BbGkWPJz.cjs.js +0 -1
- package/dist/jsonl-D9jj92Gg.es.js +0 -6
- package/dist/jsonnet-Bn--UDZ1.cjs.js +0 -1
- package/dist/jsonnet-DEQ7IUoJ.es.js +0 -6
- package/dist/jssm-4CSVp8lc.cjs.js +0 -1
- package/dist/jssm-j74e88UX.es.js +0 -6
- package/dist/jsx-Bkesy5tT.es.js +0 -6
- package/dist/jsx-D8YwVp-7.cjs.js +0 -1
- package/dist/julia-B_r6juN7.es.js +0 -16
- package/dist/julia-DLxGoAlk.cjs.js +0 -1
- package/dist/kanagawa-dragon-BJZF7xDr.cjs.js +0 -1
- package/dist/kanagawa-dragon-CiKur4Hl.es.js +0 -4
- package/dist/kanagawa-lotus-BKu-smKu.es.js +0 -4
- package/dist/kanagawa-lotus-BhgzmRV4.cjs.js +0 -1
- package/dist/kanagawa-wave-BgJip59C.cjs.js +0 -1
- package/dist/kanagawa-wave-CQwozSzG.es.js +0 -4
- package/dist/kotlin-DCgZY7Ii.es.js +0 -6
- package/dist/kotlin-DDI6myF6.cjs.js +0 -1
- package/dist/kusto-Cw029H-v.es.js +0 -6
- package/dist/kusto-OZxALJZT.cjs.js +0 -1
- package/dist/laserwave--izBLY1I.cjs.js +0 -1
- package/dist/laserwave-6a00oqik.es.js +0 -4
- package/dist/latex-CXOK56Uv.cjs.js +0 -1
- package/dist/latex-GxBxlqbc.es.js +0 -8
- package/dist/lean-CYSet4vs.es.js +0 -6
- package/dist/lean-D1iY-35j.cjs.js +0 -1
- package/dist/less-DIaY7vQJ.cjs.js +0 -1
- package/dist/less-DQA4v-Nm.es.js +0 -6
- package/dist/light-plus-B5D0le0o.cjs.js +0 -1
- package/dist/light-plus-CZuVqSLX.es.js +0 -4
- package/dist/liquid-BYouVITI.cjs.js +0 -1
- package/dist/liquid-BxBkR-z5.es.js +0 -14
- package/dist/log-BIXUeBaj.cjs.js +0 -1
- package/dist/log-D2eRfqDn.es.js +0 -6
- package/dist/logo-B2d3b27P.cjs.js +0 -1
- package/dist/logo-QEAtGWZ9.es.js +0 -6
- package/dist/lua-B2_GGnC5.cjs.js +0 -1
- package/dist/lua-DeXVjwzF.es.js +0 -8
- package/dist/luau-BjYGiqID.es.js +0 -6
- package/dist/luau-CvqAeq4F.cjs.js +0 -1
- package/dist/make-BjuHP00g.es.js +0 -6
- package/dist/make-Oob5Z9Pk.cjs.js +0 -1
- package/dist/markdown-B6guhLWd.es.js +0 -6
- package/dist/markdown-BGBuj4LZ.cjs.js +0 -1
- package/dist/marko-CS7eEGs3.cjs.js +0 -1
- package/dist/marko-DwPYPpB3.es.js +0 -14
- package/dist/material-theme-D6KBX41T.es.js +0 -4
- package/dist/material-theme-Dj0-OyRN.cjs.js +0 -1
- package/dist/material-theme-darker-CkRroheE.es.js +0 -4
- package/dist/material-theme-darker-Dvfs29ir.cjs.js +0 -1
- package/dist/material-theme-lighter-BUBw43Yz.es.js +0 -4
- package/dist/material-theme-lighter-EU3ZGl_r.cjs.js +0 -1
- package/dist/material-theme-ocean-ClGX14Ja.es.js +0 -4
- package/dist/material-theme-ocean-px_3Pwqa.cjs.js +0 -1
- package/dist/material-theme-palenight-38jxvsGX.cjs.js +0 -1
- package/dist/material-theme-palenight-C1RVm8K1.es.js +0 -4
- package/dist/matlab-BpQlIJiw.es.js +0 -6
- package/dist/matlab-CbN2rF6P.cjs.js +0 -1
- package/dist/mdc-Bkl-bu_Z.cjs.js +0 -1
- package/dist/mdc-X4YjkufV.es.js +0 -12
- package/dist/mdx-Cl31h8mi.cjs.js +0 -1
- package/dist/mdx-DIoECIFU.es.js +0 -6
- package/dist/mermaid-BZ7WHNIe.es.js +0 -6
- package/dist/mermaid-CSogK_LM.cjs.js +0 -1
- package/dist/min-dark-C7ak0t6c.es.js +0 -4
- package/dist/min-dark-tt5o_I5e.cjs.js +0 -1
- package/dist/min-light-CKFxVcPp.es.js +0 -4
- package/dist/min-light-tmTHl_CQ.cjs.js +0 -1
- package/dist/mipsasm-BseoYJQp.cjs.js +0 -1
- package/dist/mipsasm-DusDYkFc.es.js +0 -6
- package/dist/mojo-CY9jaezJ.es.js +0 -6
- package/dist/mojo-D8QAG3Ze.cjs.js +0 -1
- package/dist/monokai-C1KBYcO0.es.js +0 -4
- package/dist/monokai-DMIxv6MM.cjs.js +0 -1
- package/dist/move-ChphFumd.es.js +0 -6
- package/dist/move-DaBrcjat.cjs.js +0 -1
- package/dist/narrat-Dz4d7OmN.es.js +0 -6
- package/dist/narrat-oOfAO4q8.cjs.js +0 -1
- package/dist/nextflow-BxJSKvPb.cjs.js +0 -1
- package/dist/nextflow-DW0Yq9a2.es.js +0 -6
- package/dist/nginx-ChI-VqNT.es.js +0 -8
- package/dist/nginx-LuyFICzP.cjs.js +0 -1
- package/dist/night-owl-BN78kThQ.cjs.js +0 -1
- package/dist/night-owl-Bm2rzalh.es.js +0 -4
- package/dist/nim-BiJA-5u7.es.js +0 -20
- package/dist/nim-DkC83hsN.cjs.js +0 -1
- package/dist/nix-Cg5uV_xg.es.js +0 -6
- package/dist/nix-DNME0Ea7.cjs.js +0 -1
- package/dist/nord-CC5OiUXg.es.js +0 -4
- package/dist/nord-Ca5AGUWc.cjs.js +0 -1
- package/dist/nushell-BfRnzRWn.es.js +0 -6
- package/dist/nushell-DI9Z3l3M.cjs.js +0 -1
- package/dist/objective-c-BGg9R27G.es.js +0 -6
- package/dist/objective-c-DVx8Rcni.cjs.js +0 -1
- package/dist/objective-cpp-CJ3y3V_5.es.js +0 -6
- package/dist/objective-cpp-s6XI7Jvk.cjs.js +0 -1
- package/dist/ocaml-BZLsfx_o.es.js +0 -6
- package/dist/ocaml-kUzDDUf2.cjs.js +0 -1
- package/dist/one-dark-pro-D7-kP8fv.es.js +0 -4
- package/dist/one-dark-pro-JOzzHStv.cjs.js +0 -1
- package/dist/one-light-020-h_lv.cjs.js +0 -1
- package/dist/one-light-D9sNaUtq.es.js +0 -4
- package/dist/pascal-D509_I72.cjs.js +0 -1
- package/dist/pascal-l2bqd7Dz.es.js +0 -6
- package/dist/perl-CkXYjL3t.es.js +0 -16
- package/dist/perl-DUnCLRB_.cjs.js +0 -1
- package/dist/php-D0k1sQr6.cjs.js +0 -1
- package/dist/php-q40Yjh5d.es.js +0 -18
- package/dist/plastic-CSTz3KZp.es.js +0 -4
- package/dist/plastic-r5piqq-S.cjs.js +0 -1
- package/dist/plsql-C_qH_YOK.cjs.js +0 -1
- package/dist/plsql-oVq_K_wH.es.js +0 -6
- package/dist/po-5jaeIyVd.es.js +0 -6
- package/dist/po-CBsLQIcu.cjs.js +0 -1
- package/dist/poimandres-BLP3NNjc.cjs.js +0 -1
- package/dist/poimandres-C-VADXHD.es.js +0 -4
- package/dist/polar-De-CDeYv.cjs.js +0 -1
- package/dist/polar-wcLp8ci7.es.js +0 -6
- package/dist/postcss-BZ3MNRIJ.es.js +0 -6
- package/dist/postcss-BtcsgaYj.cjs.js +0 -1
- package/dist/powerquery-B0rHn13V.cjs.js +0 -1
- package/dist/powerquery-CgRa2XRw.es.js +0 -6
- package/dist/powershell-Diwyv8Eh.es.js +0 -6
- package/dist/powershell-rCX2OYXT.cjs.js +0 -1
- package/dist/prisma-BaaUHYMp.cjs.js +0 -1
- package/dist/prisma-COL_v1x4.es.js +0 -6
- package/dist/prolog-CuvJOxqT.es.js +0 -6
- package/dist/prolog-DrXD2tGS.cjs.js +0 -1
- package/dist/proto-BtmQjBQu.cjs.js +0 -1
- package/dist/proto-o9HLmF90.es.js +0 -6
- package/dist/pug-Br4hpvIv.es.js +0 -12
- package/dist/pug-CFQMpTUe.cjs.js +0 -1
- package/dist/puppet-cIrXIuy8.cjs.js +0 -1
- package/dist/puppet-wpGOnQp5.es.js +0 -6
- package/dist/purescript-B_1NgE2N.es.js +0 -6
- package/dist/purescript-CX9QPs2N.cjs.js +0 -1
- package/dist/python-B9x3euv6.cjs.js +0 -1
- package/dist/python-xYxLFJY-.es.js +0 -6
- package/dist/qml-CzqrIM5W.cjs.js +0 -1
- package/dist/qml-D5gi21kK.es.js +0 -8
- package/dist/qmldir-BInDYbpo.es.js +0 -6
- package/dist/qmldir-DNF9H2ir.cjs.js +0 -1
- package/dist/qss-C744dLby.cjs.js +0 -1
- package/dist/qss-D-h4NdUG.es.js +0 -6
- package/dist/r-DgOc9oMe.cjs.js +0 -1
- package/dist/r-F-9I-ITZ.es.js +0 -6
- package/dist/racket-BoD1TBFT.es.js +0 -6
- package/dist/racket-Do9_vqnd.cjs.js +0 -1
- package/dist/raku-BW8wAUIz.cjs.js +0 -1
- package/dist/raku-IaYcw19m.es.js +0 -6
- package/dist/razor-Bt_t1YJb.es.js +0 -10
- package/dist/razor-COQhlwWF.cjs.js +0 -1
- package/dist/red-7y8PH7HH.es.js +0 -4
- package/dist/red-BQGOv1D5.cjs.js +0 -1
- package/dist/reg-CGWN_v-z.cjs.js +0 -1
- package/dist/reg-CMUdAgIP.es.js +0 -6
- package/dist/regexp-GiFkbxS-.es.js +0 -6
- package/dist/regexp-N7Z4hEeU.cjs.js +0 -1
- package/dist/rel-BYqA7mnV.cjs.js +0 -1
- package/dist/rel-BaRn3QX7.es.js +0 -6
- package/dist/riscv-B9V3SsvW.es.js +0 -6
- package/dist/riscv-ayQMUpo9.cjs.js +0 -1
- package/dist/rose-pine-DKEdv1Oe.cjs.js +0 -1
- package/dist/rose-pine-DhT-HZE9.es.js +0 -4
- package/dist/rose-pine-dawn-Bvt6DtVH.cjs.js +0 -1
- package/dist/rose-pine-dawn-DiCjL2i4.es.js +0 -4
- package/dist/rose-pine-moon-BNmGHlcn.es.js +0 -4
- package/dist/rose-pine-moon-cHuJy0Ng.cjs.js +0 -1
- package/dist/rst-BmKw97ch.es.js +0 -22
- package/dist/rst-Bq-h_T5U.cjs.js +0 -1
- package/dist/ruby-Bw5IEIKD.cjs.js +0 -1
- package/dist/ruby-cs7BSa_9.es.js +0 -30
- package/dist/rust-BnFKGEfa.cjs.js +0 -1
- package/dist/rust-Pc7DCsZD.es.js +0 -6
- package/dist/sas-BWKaSYkZ.cjs.js +0 -1
- package/dist/sas-DgvHx4mL.es.js +0 -8
- package/dist/sass-B9gYryDE.cjs.js +0 -1
- package/dist/sass-iCyS6eP9.es.js +0 -6
- package/dist/scala-C85dOwSU.cjs.js +0 -1
- package/dist/scala-Cly-fENF.es.js +0 -6
- package/dist/scheme-B_XUaARm.cjs.js +0 -1
- package/dist/scheme-Zi24oEYu.es.js +0 -6
- package/dist/scss-B_hSZppj.es.js +0 -8
- package/dist/scss-CV3c8_Y7.cjs.js +0 -1
- package/dist/sdbl-7Y5u0OW0.cjs.js +0 -1
- package/dist/sdbl-BBamrXFL.es.js +0 -6
- package/dist/shaderlab-CJ8U2E2w.cjs.js +0 -1
- package/dist/shaderlab-U9mqcu_f.es.js +0 -8
- package/dist/shellscript-3DYM9fut.cjs.js +0 -1
- package/dist/shellscript-Dn0-btNd.es.js +0 -6
- package/dist/shellsession-CbKmorC3.cjs.js +0 -1
- package/dist/shellsession-LvXGClmj.es.js +0 -8
- package/dist/slack-dark-akqwQ7ED.cjs.js +0 -1
- package/dist/slack-dark-i7wN4OET.es.js +0 -4
- package/dist/slack-ochin-BoQQWmTv.cjs.js +0 -1
- package/dist/slack-ochin-ndHf0LoP.es.js +0 -4
- package/dist/smalltalk-CCvytUuW.cjs.js +0 -1
- package/dist/smalltalk-Cns31tKw.es.js +0 -6
- package/dist/snazzy-light-BlSJXAu4.es.js +0 -4
- package/dist/snazzy-light-D_IwRieF.cjs.js +0 -1
- package/dist/solarized-dark-UTmkh7lw.es.js +0 -4
- package/dist/solarized-dark-gmm-WbDC.cjs.js +0 -1
- package/dist/solarized-light-BheCkDPT.es.js +0 -4
- package/dist/solarized-light-DzcxRSZP.cjs.js +0 -1
- package/dist/solidity-BG_k8fA_.es.js +0 -6
- package/dist/solidity-BcNcjFC4.cjs.js +0 -1
- package/dist/soy-B2d9ZydM.cjs.js +0 -1
- package/dist/soy-C0yEn39K.es.js +0 -8
- package/dist/sparql-CiBxIK0g.cjs.js +0 -1
- package/dist/sparql-CuZaxpno.es.js +0 -8
- package/dist/splunk-CTqDjQdo.es.js +0 -6
- package/dist/splunk-CzITjJj7.cjs.js +0 -1
- package/dist/sql-BqWZrLHB.cjs.js +0 -1
- package/dist/sql-DCkt643-.es.js +0 -6
- package/dist/ssh-config-DHHGll-v.es.js +0 -6
- package/dist/ssh-config-DUPeuEdB.cjs.js +0 -1
- package/dist/stata-B8m3qL-x.cjs.js +0 -1
- package/dist/stata-Dv81f34z.es.js +0 -8
- package/dist/stylus-ByHs6N-o.cjs.js +0 -1
- package/dist/stylus-n_9f0QQ5.es.js +0 -6
- package/dist/svelte-CfLoBBrI.cjs.js +0 -1
- package/dist/svelte-SoJd35Jr.es.js +0 -14
- package/dist/swift-BAWqNR8A.es.js +0 -6
- package/dist/swift-C5DnOriA.cjs.js +0 -1
- package/dist/synthwave-84-BBRLOmNT.cjs.js +0 -1
- package/dist/synthwave-84-NU3C_KFZ.es.js +0 -4
- package/dist/system-verilog-ClPLYLwh.cjs.js +0 -1
- package/dist/system-verilog-Cui-g-ut.es.js +0 -6
- package/dist/systemd-BASX0DlX.cjs.js +0 -1
- package/dist/systemd-CsKYQIQK.es.js +0 -6
- package/dist/talonscript-D2dGh8FO.es.js +0 -6
- package/dist/talonscript-DkCSnLHD.cjs.js +0 -1
- package/dist/tasl-BAQJK7KZ.cjs.js +0 -1
- package/dist/tasl-D3W8HMV6.es.js +0 -6
- package/dist/tcl-2y0Fuc4S.es.js +0 -6
- package/dist/tcl-CwJAYTvh.cjs.js +0 -1
- package/dist/templ-BSMv2wKZ.cjs.js +0 -1
- package/dist/templ-C7he2afp.es.js +0 -12
- package/dist/terraform-BGW6Oerf.es.js +0 -6
- package/dist/terraform-s-pzyVvp.cjs.js +0 -1
- package/dist/tex-B0y3cEZp.es.js +0 -8
- package/dist/tex-DwtFCA08.cjs.js +0 -1
- package/dist/tokyo-night-9T7_vGSy.cjs.js +0 -1
- package/dist/tokyo-night-LhP3hHhi.es.js +0 -4
- package/dist/toml-CQSfOn0e.es.js +0 -6
- package/dist/toml-CyMM7IXy.cjs.js +0 -1
- package/dist/ts-tags-C5-4VQhf.es.js +0 -41
- package/dist/ts-tags-MIr66hKK.cjs.js +0 -1
- package/dist/tsv-BtvSkaG0.es.js +0 -6
- package/dist/tsv-DqNGnuVj.cjs.js +0 -1
- package/dist/tsx-DiGsgWT8.es.js +0 -6
- package/dist/tsx-DpBRUnKC.cjs.js +0 -1
- package/dist/turtle-BJ2wmjPc.es.js +0 -6
- package/dist/turtle-DfO3eAsu.cjs.js +0 -1
- package/dist/twig-BzjoX4ZJ.cjs.js +0 -1
- package/dist/twig-OmkATFdv.es.js +0 -18
- package/dist/typescript-BqvpT6pB.cjs.js +0 -1
- package/dist/typescript-buWNZFwO.es.js +0 -6
- package/dist/typespec-P-ZVy8yC.cjs.js +0 -1
- package/dist/typespec-bLbdsxJL.es.js +0 -6
- package/dist/typst-BVh2IsT9.cjs.js +0 -1
- package/dist/typst-Y9_SmXTs.es.js +0 -6
- package/dist/v-BUlE9136.cjs.js +0 -1
- package/dist/v-wa8Orrdd.es.js +0 -6
- package/dist/vala-BIymb2K_.cjs.js +0 -1
- package/dist/vala-DRdriFr_.es.js +0 -6
- package/dist/vb-E2_-jk4M.es.js +0 -6
- package/dist/vb-IXOh8mqV.cjs.js +0 -1
- package/dist/verilog-B1iBoR5_.es.js +0 -6
- package/dist/verilog-BiglCqvO.cjs.js +0 -1
- package/dist/vesper-CJsaOsSM.es.js +0 -4
- package/dist/vesper-DqLWLxOu.cjs.js +0 -1
- package/dist/vhdl-CJUzuS2t.cjs.js +0 -1
- package/dist/vhdl-CRVaAhXk.es.js +0 -6
- package/dist/viml-B-zWOd7Z.es.js +0 -6
- package/dist/viml-B1nKLcgt.cjs.js +0 -1
- package/dist/vitesse-black-BoGvW84i.es.js +0 -4
- package/dist/vitesse-black-MF-1S1MG.cjs.js +0 -1
- package/dist/vitesse-dark-Cym-eLtO.es.js +0 -4
- package/dist/vitesse-dark-SIffJYSe.cjs.js +0 -1
- package/dist/vitesse-light-CcmG315c.es.js +0 -4
- package/dist/vitesse-light-U63SkYGT.cjs.js +0 -1
- package/dist/vue-DCwwWMGI.es.js +0 -31
- package/dist/vue-DYZqcRaZ.cjs.js +0 -1
- package/dist/vue-html-CdPbyrq1.cjs.js +0 -1
- package/dist/vue-html-sRE_Ny23.es.js +0 -10
- package/dist/vyper-CO9xUkIY.cjs.js +0 -1
- package/dist/vyper-DWutKXpa.es.js +0 -6
- package/dist/wasm-Bv5f0gKv.es.js +0 -6
- package/dist/wasm-CdIThIat.cjs.js +0 -1
- package/dist/wenyan-BMYnfus1.es.js +0 -6
- package/dist/wenyan-BSJ3fk7e.cjs.js +0 -1
- package/dist/wgsl-DnPoPGDU.es.js +0 -6
- package/dist/wgsl-d3zZE7ZN.cjs.js +0 -1
- package/dist/wikitext-BRCqXN2g.cjs.js +0 -1
- package/dist/wikitext-CntM04PE.es.js +0 -6
- package/dist/wolfram-C3rR92zj.cjs.js +0 -1
- package/dist/wolfram-Ws5qPlX9.es.js +0 -6
- package/dist/xml-BRLTD55J.cjs.js +0 -1
- package/dist/xml-Ch1q_kJp.es.js +0 -8
- package/dist/xsl-DyL8yqXw.es.js +0 -8
- package/dist/xsl-ETbYGV_-.cjs.js +0 -1
- package/dist/yaml-7DV6pRKj.cjs.js +0 -1
- package/dist/yaml-Bbg74JKr.es.js +0 -6
- package/dist/zenscript-BWMxwjeH.cjs.js +0 -1
- package/dist/zenscript-C0RKE4nU.es.js +0 -6
- package/dist/zig-D6SXBGNm.es.js +0 -6
- package/dist/zig-yAcNfpgW.cjs.js +0 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { DimensionSpec } from './useDimensionalFilterRangeData';
|
|
2
|
+
/**
|
|
3
|
+
* Match types for filtering dimensions
|
|
4
|
+
*/
|
|
5
|
+
export type MatchType = "Equals" | "Contains" | "After" | "Before" | "Less Than" | "Greater Than" | "Between" | "Concept Search";
|
|
6
|
+
/**
|
|
7
|
+
* Primitive types that can be used as filter values
|
|
8
|
+
*/
|
|
9
|
+
export type FilterValuePrimitive = string | number | boolean | Date;
|
|
10
|
+
/**
|
|
11
|
+
* Type for filter values - can be a single value or an array for multi-select
|
|
12
|
+
*/
|
|
13
|
+
export type FilterValue = FilterValuePrimitive | FilterValuePrimitive[];
|
|
14
|
+
/**
|
|
15
|
+
* A selected filter value with its match type
|
|
16
|
+
*/
|
|
17
|
+
export interface FilterSelection {
|
|
18
|
+
dimensionName: string;
|
|
19
|
+
matchType: MatchType;
|
|
20
|
+
value: FilterValue;
|
|
21
|
+
value2?: FilterValuePrimitive;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Complete filter state including the dimension spec and selection
|
|
25
|
+
*/
|
|
26
|
+
export interface DimensionFilterState {
|
|
27
|
+
spec: DimensionSpec;
|
|
28
|
+
selection: FilterSelection | null;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Parameters for the useDimensionFilters hook
|
|
32
|
+
*/
|
|
33
|
+
export interface UseDimensionFiltersParams {
|
|
34
|
+
/** Dimension specifications (each includes source and model) */
|
|
35
|
+
dimensionSpecs: DimensionSpec[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Result from the useDimensionFilters hook
|
|
39
|
+
*/
|
|
40
|
+
export interface UseDimensionFiltersResult {
|
|
41
|
+
/** Current filter states */
|
|
42
|
+
filterStates: Map<string, DimensionFilterState>;
|
|
43
|
+
/** Update a filter selection */
|
|
44
|
+
updateFilter: (dimensionName: string, selection: FilterSelection | null) => void;
|
|
45
|
+
/** Clear a specific filter */
|
|
46
|
+
clearFilter: (dimensionName: string) => void;
|
|
47
|
+
/** Clear all filters */
|
|
48
|
+
clearAllFilters: () => void;
|
|
49
|
+
/** Get active filters (with selections) */
|
|
50
|
+
getActiveFilters: () => FilterSelection[];
|
|
51
|
+
/** Generate Malloy query fragment for active filters */
|
|
52
|
+
generateWhereClause: () => string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Custom hook to manage dimension filter state and generate Malloy queries
|
|
56
|
+
*
|
|
57
|
+
* This hook maintains filter state for multiple dimensions and provides utilities
|
|
58
|
+
* to generate Malloy WHERE clauses based on the active filters.
|
|
59
|
+
*
|
|
60
|
+
* @param params - Parameters including dimension specs (each with source and model)
|
|
61
|
+
* @returns Filter state management functions and query generation
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```tsx
|
|
65
|
+
* const { filterStates, updateFilter, generateWhereClause } = useDimensionFilters({
|
|
66
|
+
* dimensionSpecs: [
|
|
67
|
+
* { dimensionName: "category", filterType: "Star", source: "my_source", model: "model.malloy" },
|
|
68
|
+
* { dimensionName: "price", filterType: "MinMax", source: "my_source", model: "model.malloy" },
|
|
69
|
+
* ],
|
|
70
|
+
* });
|
|
71
|
+
*
|
|
72
|
+
* // Update a filter
|
|
73
|
+
* updateFilter("category", {
|
|
74
|
+
* dimensionName: "category",
|
|
75
|
+
* matchType: "Equals",
|
|
76
|
+
* value: "Electronics"
|
|
77
|
+
* });
|
|
78
|
+
*
|
|
79
|
+
* // Generate query
|
|
80
|
+
* const whereClause = generateWhereClause();
|
|
81
|
+
* // Returns: "where `category` = 'Electronics'"
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export declare function useDimensionFilters(params: UseDimensionFiltersParams): UseDimensionFiltersResult;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { DimensionSpec, DimensionValues } from './useDimensionalFilterRangeData';
|
|
2
|
+
import { DimensionFilterState, FilterSelection } from './useDimensionFilters';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for dimensional filters
|
|
5
|
+
*/
|
|
6
|
+
export interface DimensionFiltersConfig {
|
|
7
|
+
/** Project name */
|
|
8
|
+
project: string;
|
|
9
|
+
/** Package name */
|
|
10
|
+
package: string;
|
|
11
|
+
/** Version ID (optional) */
|
|
12
|
+
versionId?: string;
|
|
13
|
+
/** Index limit for retrieval queries */
|
|
14
|
+
indexLimit: number;
|
|
15
|
+
/** Dimension specifications for filters (each includes source and model) */
|
|
16
|
+
dimensionSpecs: DimensionSpec[];
|
|
17
|
+
/** Fields/columns to group by in the query (if not specified, uses select *) */
|
|
18
|
+
selectFields?: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Options passed to useDimensionFiltersFromSpec
|
|
22
|
+
*/
|
|
23
|
+
export interface UseDimensionFiltersFromSpecOptions {
|
|
24
|
+
config: DimensionFiltersConfig;
|
|
25
|
+
/** Maximum number of results to return from query (default: 100) */
|
|
26
|
+
queryLimit?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Combined hook that manages dimensional filters, data fetching, and query execution
|
|
30
|
+
* from a single configuration object.
|
|
31
|
+
*
|
|
32
|
+
* @param config - Configuration containing project, package, dimension specs, and index limit
|
|
33
|
+
* @param queryLimit - Maximum number of results to return from query (default: 100)
|
|
34
|
+
* @returns All state and methods needed for dimensional filtering UI
|
|
35
|
+
*/
|
|
36
|
+
export declare function useDimensionFiltersFromSpec(config: DimensionFiltersConfig, queryLimit?: number): {
|
|
37
|
+
filterStates: Map<string, DimensionFilterState>;
|
|
38
|
+
updateFilter: (dimensionName: string, selection: FilterSelection | null) => void;
|
|
39
|
+
clearAllFilters: () => void;
|
|
40
|
+
activeFilters: FilterSelection[];
|
|
41
|
+
data: DimensionValues;
|
|
42
|
+
noRowsMatchedFilter: boolean;
|
|
43
|
+
isLoading: boolean;
|
|
44
|
+
isInitialLoading: boolean;
|
|
45
|
+
isError: boolean;
|
|
46
|
+
error: Error;
|
|
47
|
+
refetch: () => void;
|
|
48
|
+
embeddedQueryResult: string;
|
|
49
|
+
queryString: string;
|
|
50
|
+
executeQuery: () => void;
|
|
51
|
+
canExecute: boolean;
|
|
52
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { FilterSelection } from './useDimensionFilters';
|
|
2
|
+
/**
|
|
3
|
+
* Parameters for the useDimensionFiltersQuery hook
|
|
4
|
+
*/
|
|
5
|
+
export interface UseDimensionFiltersQueryParams {
|
|
6
|
+
/** Project name */
|
|
7
|
+
project: string;
|
|
8
|
+
/** Package name */
|
|
9
|
+
package: string;
|
|
10
|
+
/** Model path */
|
|
11
|
+
model: string;
|
|
12
|
+
/** Source name within the model */
|
|
13
|
+
source: string;
|
|
14
|
+
/** Active filter selections */
|
|
15
|
+
filterSelections: FilterSelection[];
|
|
16
|
+
/** Optional fields to select in the query */
|
|
17
|
+
fields?: string[];
|
|
18
|
+
/** Maximum number of results to return (default: 1000) */
|
|
19
|
+
limit?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Result from the useDimensionFiltersQuery hook
|
|
23
|
+
*/
|
|
24
|
+
export interface DimensionFiltersQueryResult {
|
|
25
|
+
/** Embedded query result string suitable for rendering with EmbeddedQueryResult */
|
|
26
|
+
embeddedQueryResult: string | null;
|
|
27
|
+
/** The generated Malloy query string (preview only, not executed) */
|
|
28
|
+
queryString: string;
|
|
29
|
+
/** The resource URI for the model */
|
|
30
|
+
resourceUri: string;
|
|
31
|
+
/** Function to execute the query and generate the embedded result */
|
|
32
|
+
executeQuery: () => void;
|
|
33
|
+
/** Whether a query can be executed (has filter selections) */
|
|
34
|
+
canExecute: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Custom hook to generate an embedded Malloy query with dimensional filters
|
|
38
|
+
*
|
|
39
|
+
* This hook takes filter selections from useDimensionFilters, builds a complete
|
|
40
|
+
* Malloy query with WHERE clauses, and provides a function to execute the query
|
|
41
|
+
* and create an embedded query result string that can be rendered with the
|
|
42
|
+
* EmbeddedQueryResult component.
|
|
43
|
+
*
|
|
44
|
+
* The query is not executed automatically - you must call executeQuery() to
|
|
45
|
+
* generate the embedded result.
|
|
46
|
+
*
|
|
47
|
+
* @param params - Parameters including model info, source, and filter selections
|
|
48
|
+
* @returns Query metadata, embedded result, and execute function
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```tsx
|
|
52
|
+
* const { filterStates, getActiveFilters } = useDimensionFilters({
|
|
53
|
+
* dimensionSpecs: [
|
|
54
|
+
* { dimensionName: "category", filterType: "Star", source: "my_source", model: "model.malloy" },
|
|
55
|
+
* ],
|
|
56
|
+
* });
|
|
57
|
+
*
|
|
58
|
+
* const { embeddedQueryResult, executeQuery, canExecute } = useDimensionFiltersQuery({
|
|
59
|
+
* project: "my-project",
|
|
60
|
+
* package: "my-package",
|
|
61
|
+
* model: "model.malloy",
|
|
62
|
+
* source: "my_source",
|
|
63
|
+
* filterSelections: getActiveFilters(),
|
|
64
|
+
* fields: ["category", "price", "quantity"],
|
|
65
|
+
* limit: 1000, // Optional: defaults to 1000
|
|
66
|
+
* });
|
|
67
|
+
*
|
|
68
|
+
* // Execute button
|
|
69
|
+
* <Button onClick={executeQuery} disabled={!canExecute}>
|
|
70
|
+
* Execute Query
|
|
71
|
+
* </Button>
|
|
72
|
+
*
|
|
73
|
+
* // Render with EmbeddedQueryResult component
|
|
74
|
+
* {embeddedQueryResult && (
|
|
75
|
+
* <EmbeddedQueryResult embeddedQueryResult={embeddedQueryResult} />
|
|
76
|
+
* )}
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare function useDimensionFiltersQuery(params: UseDimensionFiltersQueryParams): DimensionFiltersQueryResult;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { FilterSelection, FilterValuePrimitive } from './useDimensionFilters';
|
|
2
|
+
/**
|
|
3
|
+
* Filter types for dimensions
|
|
4
|
+
*/
|
|
5
|
+
export type FilterType = "NONE" | "Star" | "MinMax" | "DateMinMax" | "Retrieval" | "Boolean";
|
|
6
|
+
/**
|
|
7
|
+
* Specification for a dimension to filter
|
|
8
|
+
*/
|
|
9
|
+
export interface DimensionSpec {
|
|
10
|
+
/** Name of the dimension field */
|
|
11
|
+
dimensionName: string;
|
|
12
|
+
/** Type of filter to apply */
|
|
13
|
+
filterType: FilterType;
|
|
14
|
+
/** Source name within the model */
|
|
15
|
+
source: string;
|
|
16
|
+
/** Model path */
|
|
17
|
+
model: string;
|
|
18
|
+
/** Minimum similarity score for Retrieval filter type (default: 0.1) */
|
|
19
|
+
minSimilarityScore?: number;
|
|
20
|
+
/** Optional list of static values to use for the dropdown instead of querying */
|
|
21
|
+
values?: string[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Value information for a dimension
|
|
25
|
+
*/
|
|
26
|
+
export interface DimensionValue {
|
|
27
|
+
value: FilterValuePrimitive;
|
|
28
|
+
count?: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Result type mapping dimension names to their values
|
|
32
|
+
*/
|
|
33
|
+
export type DimensionValues = Map<string, DimensionValue[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Parameters for the useDimensionalFilterRangeData hook
|
|
36
|
+
*/
|
|
37
|
+
export interface UseDimensionalFilterRangeDataParams {
|
|
38
|
+
/** Project name */
|
|
39
|
+
project: string;
|
|
40
|
+
/** Package name */
|
|
41
|
+
package: string;
|
|
42
|
+
/** List of dimension specifications (each includes source and model) */
|
|
43
|
+
dimensionSpecs: DimensionSpec[];
|
|
44
|
+
/** Version ID (optional) */
|
|
45
|
+
versionId?: string;
|
|
46
|
+
/** Whether the query should be enabled */
|
|
47
|
+
enabled?: boolean;
|
|
48
|
+
/** Maximum number of index results to return (default: 1000) */
|
|
49
|
+
indexLimit?: number;
|
|
50
|
+
/** Active filter selections to apply when fetching dimension values (optional) */
|
|
51
|
+
activeFilters?: FilterSelection[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Result from the useDimensionalFilterRangeData hook
|
|
55
|
+
*/
|
|
56
|
+
export interface DimensionalFilterRangeDataResult {
|
|
57
|
+
/** Map of dimension names to their values */
|
|
58
|
+
data: DimensionValues | undefined;
|
|
59
|
+
/** Whether no rows matched the filter */
|
|
60
|
+
noRowsMatchedFilter: boolean;
|
|
61
|
+
/** Whether the query is loading */
|
|
62
|
+
isLoading: boolean;
|
|
63
|
+
/** Whether the query encountered an error */
|
|
64
|
+
isError: boolean;
|
|
65
|
+
/** Error object if query failed */
|
|
66
|
+
error: Error | null;
|
|
67
|
+
/** Refetch function to manually trigger the query */
|
|
68
|
+
refetch: () => void;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Custom hook to fetch dimensional filter values from a Malloy model
|
|
72
|
+
*
|
|
73
|
+
* This hook uses Malloy's built-in `index` operator to create dimensional search indexes
|
|
74
|
+
* for the specified dimensions. The index operator efficiently returns distinct values
|
|
75
|
+
* and ranges for dimensions in a single query.
|
|
76
|
+
*
|
|
77
|
+
* Filter types:
|
|
78
|
+
* - NONE: Display only, no values fetched
|
|
79
|
+
* - Star: Fetches all distinct values with counts (for string fields)
|
|
80
|
+
* - MinMax: Fetches minimum and maximum values (for numeric fields as ranges)
|
|
81
|
+
* - DateMinMax: Fetches minimum and maximum values (for date fields as Date objects)
|
|
82
|
+
* - Retrieval: Uses retrieval, no values fetched
|
|
83
|
+
*
|
|
84
|
+
* Reference: https://docs.malloydata.dev/documentation/patterns/dim_index
|
|
85
|
+
*
|
|
86
|
+
* The hook groups dimension specs by source/model combination and runs separate
|
|
87
|
+
* index queries for each group, then merges the results.
|
|
88
|
+
*
|
|
89
|
+
* @param params - Parameters including project, package, and dimension specs (each with source/model)
|
|
90
|
+
* @returns Query result with dimension values map, loading state, and error information
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```tsx
|
|
94
|
+
* const { data, isLoading, error } = useDimensionalFilterRangeData({
|
|
95
|
+
* project: "my-project",
|
|
96
|
+
* package: "my-package",
|
|
97
|
+
* dimensionSpecs: [
|
|
98
|
+
* { dimensionName: "category", filterType: "Star", source: "my_source", model: "model.malloy" },
|
|
99
|
+
* { dimensionName: "price", filterType: "MinMax", source: "my_source", model: "model.malloy" },
|
|
100
|
+
* { dimensionName: "status", filterType: "Star", source: "other_source", model: "other.malloy" },
|
|
101
|
+
* ],
|
|
102
|
+
* indexLimit: 1000, // Optional: set higher if needed for many Star dimensions
|
|
103
|
+
* });
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export declare function useDimensionalFilterRangeData(params: UseDimensionalFilterRangeDataParams): DimensionalFilterRangeDataResult;
|