@cubejs-client/playground 1.1.12 → 1.1.16

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.
Files changed (189) hide show
  1. package/build/assets/{index-wSty61qr.js → index-Cc4_B7ie.js} +612 -778
  2. package/build/index.html +1 -1
  3. package/build/vizard/download/react-typescript-antd-table.zip +0 -0
  4. package/build/vizard/download/react-typescript-chartjs-area+bar+doughnut+line+pie.zip +0 -0
  5. package/lib/.tsbuildinfo +1 -1
  6. package/lib/QueryBuilderV2/QueryBuilder.d.ts +4 -0
  7. package/lib/QueryBuilderV2/QueryBuilder.js +12 -9
  8. package/lib/QueryBuilderV2/QueryBuilder.js.map +1 -1
  9. package/lib/QueryBuilderV2/QueryBuilderChart.js +2 -2
  10. package/lib/QueryBuilderV2/QueryBuilderChart.js.map +1 -1
  11. package/lib/QueryBuilderV2/QueryBuilderChartResults.js +4 -4
  12. package/lib/QueryBuilderV2/QueryBuilderChartResults.js.map +1 -1
  13. package/lib/QueryBuilderV2/QueryBuilderError.js +1 -3
  14. package/lib/QueryBuilderV2/QueryBuilderError.js.map +1 -1
  15. package/lib/QueryBuilderV2/QueryBuilderExtras.d.ts +1 -0
  16. package/lib/QueryBuilderV2/QueryBuilderExtras.js +39 -18
  17. package/lib/QueryBuilderV2/QueryBuilderExtras.js.map +1 -1
  18. package/lib/QueryBuilderV2/QueryBuilderFilters.js +88 -84
  19. package/lib/QueryBuilderV2/QueryBuilderFilters.js.map +1 -1
  20. package/lib/QueryBuilderV2/QueryBuilderGraphQL.js +1 -1
  21. package/lib/QueryBuilderV2/QueryBuilderGraphQL.js.map +1 -1
  22. package/lib/QueryBuilderV2/QueryBuilderInternals.js +7 -10
  23. package/lib/QueryBuilderV2/QueryBuilderInternals.js.map +1 -1
  24. package/lib/QueryBuilderV2/QueryBuilderResults.js +87 -45
  25. package/lib/QueryBuilderV2/QueryBuilderResults.js.map +1 -1
  26. package/lib/QueryBuilderV2/QueryBuilderSidePanel.d.ts +4 -3
  27. package/lib/QueryBuilderV2/QueryBuilderSidePanel.js +95 -54
  28. package/lib/QueryBuilderV2/QueryBuilderSidePanel.js.map +1 -1
  29. package/lib/QueryBuilderV2/components/Accordion/AccordionItemTitle.js +1 -1
  30. package/lib/QueryBuilderV2/components/Accordion/AccordionItemTitle.js.map +1 -1
  31. package/lib/QueryBuilderV2/components/AddFilterInput.d.ts +10 -0
  32. package/lib/QueryBuilderV2/components/AddFilterInput.js +195 -0
  33. package/lib/QueryBuilderV2/components/AddFilterInput.js.map +1 -0
  34. package/lib/QueryBuilderV2/components/Badge.d.ts +3 -2
  35. package/lib/QueryBuilderV2/components/Badge.js +4 -3
  36. package/lib/QueryBuilderV2/components/Badge.js.map +1 -1
  37. package/lib/QueryBuilderV2/components/ChartRenderer.js +0 -1
  38. package/lib/QueryBuilderV2/components/ChartRenderer.js.map +1 -1
  39. package/lib/QueryBuilderV2/components/DateRangeFilter.d.ts +7 -0
  40. package/lib/QueryBuilderV2/components/DateRangeFilter.js +25 -4
  41. package/lib/QueryBuilderV2/components/DateRangeFilter.js.map +1 -1
  42. package/lib/QueryBuilderV2/components/EditQueryDialogForm.js +18 -20
  43. package/lib/QueryBuilderV2/components/EditQueryDialogForm.js.map +1 -1
  44. package/lib/QueryBuilderV2/components/FilterByMemberButton.d.ts +6 -1
  45. package/lib/QueryBuilderV2/components/FilterByMemberButton.js +16 -6
  46. package/lib/QueryBuilderV2/components/FilterByMemberButton.js.map +1 -1
  47. package/lib/QueryBuilderV2/components/FilterLabel.d.ts +9 -0
  48. package/lib/QueryBuilderV2/components/FilterLabel.js +18 -4
  49. package/lib/QueryBuilderV2/components/FilterLabel.js.map +1 -1
  50. package/lib/QueryBuilderV2/components/FilterMember.d.ts +19 -0
  51. package/lib/QueryBuilderV2/components/FilterMember.js +137 -0
  52. package/lib/QueryBuilderV2/components/FilterMember.js.map +1 -0
  53. package/lib/QueryBuilderV2/components/FilterOptionsButton.d.ts +8 -0
  54. package/lib/QueryBuilderV2/components/FilterOptionsButton.js +54 -0
  55. package/lib/QueryBuilderV2/components/FilterOptionsButton.js.map +1 -0
  56. package/lib/QueryBuilderV2/components/FilteredLabel.js +10 -2
  57. package/lib/QueryBuilderV2/components/FilteredLabel.js.map +1 -1
  58. package/lib/QueryBuilderV2/components/Folder.d.ts +9 -0
  59. package/lib/QueryBuilderV2/components/Folder.js +47 -0
  60. package/lib/QueryBuilderV2/components/Folder.js.map +1 -0
  61. package/lib/QueryBuilderV2/components/GranularityListMember.d.ts +3 -0
  62. package/lib/QueryBuilderV2/components/GranularityListMember.js +5 -14
  63. package/lib/QueryBuilderV2/components/GranularityListMember.js.map +1 -1
  64. package/lib/QueryBuilderV2/components/HierarchyMember.d.ts +14 -0
  65. package/lib/QueryBuilderV2/components/HierarchyMember.js +47 -0
  66. package/lib/QueryBuilderV2/components/HierarchyMember.js.map +1 -0
  67. package/lib/QueryBuilderV2/components/InstanceTooltipProvider.d.ts +15 -0
  68. package/lib/QueryBuilderV2/components/InstanceTooltipProvider.js +36 -0
  69. package/lib/QueryBuilderV2/components/InstanceTooltipProvider.js.map +1 -0
  70. package/lib/QueryBuilderV2/components/ListButton.d.ts +341 -11
  71. package/lib/QueryBuilderV2/components/ListButton.js +2 -1
  72. package/lib/QueryBuilderV2/components/ListButton.js.map +1 -1
  73. package/lib/QueryBuilderV2/components/ListCube.js +2 -2
  74. package/lib/QueryBuilderV2/components/ListCube.js.map +1 -1
  75. package/lib/QueryBuilderV2/components/ListMember.d.ts +11 -2
  76. package/lib/QueryBuilderV2/components/ListMember.js +39 -29
  77. package/lib/QueryBuilderV2/components/ListMember.js.map +1 -1
  78. package/lib/QueryBuilderV2/components/ListMemberButton.d.ts +341 -11
  79. package/lib/QueryBuilderV2/components/ListMemberButton.js +8 -1
  80. package/lib/QueryBuilderV2/components/ListMemberButton.js.map +1 -1
  81. package/lib/QueryBuilderV2/components/LogicalFilter.d.ts +12 -0
  82. package/lib/QueryBuilderV2/components/LogicalFilter.js +152 -0
  83. package/lib/QueryBuilderV2/components/LogicalFilter.js.map +1 -0
  84. package/lib/QueryBuilderV2/components/MemberLabel.d.ts +11 -1
  85. package/lib/QueryBuilderV2/components/MemberLabel.js +14 -6
  86. package/lib/QueryBuilderV2/components/MemberLabel.js.map +1 -1
  87. package/lib/QueryBuilderV2/components/MemberLabelText.js +11 -4
  88. package/lib/QueryBuilderV2/components/MemberLabelText.js.map +1 -1
  89. package/lib/QueryBuilderV2/components/ReorderableList.d.ts +20 -0
  90. package/lib/QueryBuilderV2/components/ReorderableList.js +173 -0
  91. package/lib/QueryBuilderV2/components/ReorderableList.js.map +1 -0
  92. package/lib/QueryBuilderV2/components/ScrollableArea.d.ts +354 -1
  93. package/lib/QueryBuilderV2/components/SegmentFilter.d.ts +7 -0
  94. package/lib/QueryBuilderV2/components/SegmentFilter.js +30 -4
  95. package/lib/QueryBuilderV2/components/SegmentFilter.js.map +1 -1
  96. package/lib/QueryBuilderV2/components/SidePanelCubeItem.d.ts +4 -5
  97. package/lib/QueryBuilderV2/components/SidePanelCubeItem.js +380 -130
  98. package/lib/QueryBuilderV2/components/SidePanelCubeItem.js.map +1 -1
  99. package/lib/QueryBuilderV2/components/TimeListMember.d.ts +20 -5
  100. package/lib/QueryBuilderV2/components/TimeListMember.js +95 -49
  101. package/lib/QueryBuilderV2/components/TimeListMember.js.map +1 -1
  102. package/lib/QueryBuilderV2/components/ValuesInput.d.ts +4 -0
  103. package/lib/QueryBuilderV2/components/ValuesInput.js +65 -41
  104. package/lib/QueryBuilderV2/components/ValuesInput.js.map +1 -1
  105. package/lib/QueryBuilderV2/hooks/dimension-values.d.ts +13 -0
  106. package/lib/QueryBuilderV2/hooks/dimension-values.js +62 -0
  107. package/lib/QueryBuilderV2/hooks/dimension-values.js.map +1 -0
  108. package/lib/QueryBuilderV2/hooks/filtered-cubes.d.ts +6 -2
  109. package/lib/QueryBuilderV2/hooks/filtered-cubes.js +26 -8
  110. package/lib/QueryBuilderV2/hooks/filtered-cubes.js.map +1 -1
  111. package/lib/QueryBuilderV2/hooks/filtered-members.d.ts +10 -4
  112. package/lib/QueryBuilderV2/hooks/filtered-members.js +57 -20
  113. package/lib/QueryBuilderV2/hooks/filtered-members.js.map +1 -1
  114. package/lib/QueryBuilderV2/hooks/has-overflow.d.ts +1 -1
  115. package/lib/QueryBuilderV2/hooks/has-overflow.js +3 -0
  116. package/lib/QueryBuilderV2/hooks/has-overflow.js.map +1 -1
  117. package/lib/QueryBuilderV2/hooks/index.d.ts +2 -1
  118. package/lib/QueryBuilderV2/hooks/index.js +2 -1
  119. package/lib/QueryBuilderV2/hooks/index.js.map +1 -1
  120. package/lib/QueryBuilderV2/hooks/local-storage.js +1 -1
  121. package/lib/QueryBuilderV2/hooks/local-storage.js.map +1 -1
  122. package/lib/QueryBuilderV2/hooks/query-builder.d.ts +36 -13
  123. package/lib/QueryBuilderV2/hooks/query-builder.js +258 -36
  124. package/lib/QueryBuilderV2/hooks/query-builder.js.map +1 -1
  125. package/lib/QueryBuilderV2/hooks/shown-member-name.d.ts +16 -0
  126. package/lib/QueryBuilderV2/hooks/shown-member-name.js +20 -0
  127. package/lib/QueryBuilderV2/hooks/shown-member-name.js.map +1 -0
  128. package/lib/QueryBuilderV2/icons/{ArrowIcon.d.ts → ChevronIcon.d.ts} +5 -5
  129. package/lib/QueryBuilderV2/icons/ChevronIcon.js +49 -0
  130. package/lib/QueryBuilderV2/icons/ChevronIcon.js.map +1 -0
  131. package/lib/QueryBuilderV2/icons/ItemInfoIcon.d.ts +7 -6
  132. package/lib/QueryBuilderV2/icons/ItemInfoIcon.js +7 -4
  133. package/lib/QueryBuilderV2/icons/ItemInfoIcon.js.map +1 -1
  134. package/lib/QueryBuilderV2/icons/PrimaryKeyIcon.js +1 -1
  135. package/lib/QueryBuilderV2/icons/PrimaryKeyIcon.js.map +1 -1
  136. package/lib/QueryBuilderV2/types.d.ts +38 -4
  137. package/lib/QueryBuilderV2/utils/cube-sql-converter.d.ts +5 -5
  138. package/lib/QueryBuilderV2/utils/cube-sql-converter.js +48 -25
  139. package/lib/QueryBuilderV2/utils/cube-sql-converter.js.map +1 -1
  140. package/lib/QueryBuilderV2/utils/get-member-search-name.d.ts +3 -0
  141. package/lib/QueryBuilderV2/utils/get-member-search-name.js +11 -0
  142. package/lib/QueryBuilderV2/utils/get-member-search-name.js.map +1 -0
  143. package/lib/QueryBuilderV2/utils/get-query-hash.js +2 -29
  144. package/lib/QueryBuilderV2/utils/get-query-hash.js.map +1 -1
  145. package/lib/QueryBuilderV2/utils/get-type-icon.d.ts +1 -1
  146. package/lib/QueryBuilderV2/utils/get-type-icon.js +1 -1
  147. package/lib/QueryBuilderV2/utils/get-type-icon.js.map +1 -1
  148. package/lib/QueryBuilderV2/utils/get-used-cubes-and-members.d.ts +7 -1
  149. package/lib/QueryBuilderV2/utils/get-used-cubes-and-members.js +48 -8
  150. package/lib/QueryBuilderV2/utils/get-used-cubes-and-members.js.map +1 -1
  151. package/lib/QueryBuilderV2/utils/graphql-converters.js +9 -12
  152. package/lib/QueryBuilderV2/utils/graphql-converters.js.map +1 -1
  153. package/lib/QueryBuilderV2/utils/index.d.ts +2 -0
  154. package/lib/QueryBuilderV2/utils/index.js +2 -0
  155. package/lib/QueryBuilderV2/utils/index.js.map +1 -1
  156. package/lib/QueryBuilderV2/utils/validate-query.d.ts +2 -0
  157. package/lib/QueryBuilderV2/utils/validate-query.js +109 -0
  158. package/lib/QueryBuilderV2/utils/validate-query.js.map +1 -0
  159. package/lib/QueryBuilderV2/values.d.ts +2 -2
  160. package/lib/QueryBuilderV2/values.js +8 -7
  161. package/lib/QueryBuilderV2/values.js.map +1 -1
  162. package/lib/components/PlaygroundQueryBuilder/QueryBuilderContainer.js +1 -2
  163. package/lib/components/PlaygroundQueryBuilder/QueryBuilderContainer.js.map +1 -1
  164. package/lib/components/QueryTabs/QueryTabs.d.ts +3 -0
  165. package/lib/components/QueryTabs/QueryTabs.js +29 -4
  166. package/lib/components/QueryTabs/QueryTabs.js.map +1 -1
  167. package/package.json +6 -5
  168. package/public/vizard/download/react-typescript-antd-table.zip +0 -0
  169. package/public/vizard/download/react-typescript-chartjs-area+bar+doughnut+line+pie.zip +0 -0
  170. package/lib/QueryBuilderV2/QueryBuilderDevSidePanel.d.ts +0 -1
  171. package/lib/QueryBuilderV2/QueryBuilderDevSidePanel.js +0 -203
  172. package/lib/QueryBuilderV2/QueryBuilderDevSidePanel.js.map +0 -1
  173. package/lib/QueryBuilderV2/components/DeleteFilterButton.d.ts +0 -122
  174. package/lib/QueryBuilderV2/components/DeleteFilterButton.js +0 -10
  175. package/lib/QueryBuilderV2/components/DeleteFilterButton.js.map +0 -1
  176. package/lib/QueryBuilderV2/components/MemberFilter.d.ts +0 -13
  177. package/lib/QueryBuilderV2/components/MemberFilter.js +0 -106
  178. package/lib/QueryBuilderV2/components/MemberFilter.js.map +0 -1
  179. package/lib/QueryBuilderV2/components/Panel.d.ts +0 -19
  180. package/lib/QueryBuilderV2/components/Panel.js +0 -88
  181. package/lib/QueryBuilderV2/components/Panel.js.map +0 -1
  182. package/lib/QueryBuilderV2/components/QueryVisualization.d.ts +0 -8
  183. package/lib/QueryBuilderV2/components/QueryVisualization.js +0 -85
  184. package/lib/QueryBuilderV2/components/QueryVisualization.js.map +0 -1
  185. package/lib/QueryBuilderV2/hooks/list-mode.d.ts +0 -3
  186. package/lib/QueryBuilderV2/hooks/list-mode.js +0 -9
  187. package/lib/QueryBuilderV2/hooks/list-mode.js.map +0 -1
  188. package/lib/QueryBuilderV2/icons/ArrowIcon.js +0 -30
  189. package/lib/QueryBuilderV2/icons/ArrowIcon.js.map +0 -1
@@ -1,88 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { BASE_STYLES, BLOCK_STYLES, COLOR_STYLES, OUTER_STYLES, tasty, } from '@cube-dev/ui-kit';
3
- import { forwardRef, useMemo } from 'react';
4
- const PanelElement = tasty({
5
- as: 'section',
6
- qa: 'Panel',
7
- styles: {
8
- position: {
9
- '': 'relative',
10
- 'stretched | floating': 'absolute',
11
- },
12
- inset: {
13
- '': 'initial',
14
- stretched: true,
15
- },
16
- display: 'block',
17
- overflow: 'hidden',
18
- radius: {
19
- '': '0',
20
- card: '1r',
21
- },
22
- border: {
23
- '': '0',
24
- card: '1bw',
25
- },
26
- flexGrow: 1,
27
- },
28
- });
29
- const PanelInnerElement = tasty({
30
- styles: {
31
- position: 'absolute',
32
- display: 'grid',
33
- top: 0,
34
- left: 0,
35
- right: 0,
36
- bottom: 0,
37
- overflow: 'auto',
38
- styledScrollbar: true,
39
- gridColumns: 'minmax(100%, 100%)',
40
- gridRows: {
41
- '': 'initial',
42
- stretched: 'minmax(0, 1fr)',
43
- },
44
- radius: {
45
- '': '0',
46
- card: '(1r - 1bw)',
47
- },
48
- flow: 'row',
49
- placeContent: 'start stretch',
50
- },
51
- styleProps: [...OUTER_STYLES, ...BASE_STYLES, ...COLOR_STYLES],
52
- });
53
- const STYLES = [
54
- 'placeContent',
55
- 'placeItems',
56
- 'gridColumns',
57
- 'gridRows',
58
- 'flow',
59
- 'gap',
60
- 'padding',
61
- 'overflow',
62
- 'fill',
63
- 'color',
64
- 'preset',
65
- ];
66
- function Panel(props, ref) {
67
- let { qa, mods, isStretched, isFloating, isCard, styles, innerStyles, children } = props;
68
- STYLES.forEach((style) => {
69
- if (props[style]) {
70
- innerStyles = { ...innerStyles, [style]: props[style] };
71
- }
72
- });
73
- [...OUTER_STYLES, ...BASE_STYLES, ...BLOCK_STYLES, ...COLOR_STYLES].forEach((style) => {
74
- if (props[style]) {
75
- styles = { ...styles, [style]: props[style] };
76
- }
77
- });
78
- const appliedMods = useMemo(() => ({
79
- floating: isFloating,
80
- stretched: isStretched,
81
- card: isCard,
82
- ...mods,
83
- }), [isStretched, isCard, mods]);
84
- return (_jsx(PanelElement, { ref: ref, qa: qa, mods: appliedMods, styles: styles, children: _jsx(PanelInnerElement, { mods: appliedMods, styles: innerStyles, children: children }) }));
85
- }
86
- const _Panel = forwardRef(Panel);
87
- export { _Panel as Panel };
88
- //# sourceMappingURL=Panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/components/Panel.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { ReactNode } from 'react';
2
- interface QueryVisualizationProps {
3
- onReset?: () => void;
4
- type: 'views' | 'cubes';
5
- actions?: ReactNode;
6
- }
7
- export declare function QueryVisualization({ onReset, type: selectedType, actions, }: QueryVisualizationProps): import("react/jsx-runtime").JSX.Element | null;
8
- export {};
@@ -1,85 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useMemo } from 'react';
3
- import { Block, Button, Flex, Space, Title, CloseIcon, TooltipProvider } from '@cube-dev/ui-kit';
4
- import { CaretDownFilled, LoadingOutlined, PlusOutlined, UnorderedListOutlined, } from '@ant-design/icons';
5
- import { capitalize } from '../utils/capitalize';
6
- import { useQueryBuilderContext } from '../context';
7
- import { MemberLabelText } from './MemberLabelText';
8
- import { ListCube } from './ListCube';
9
- import { MemberBadge } from './Badge';
10
- const TYPES = [
11
- 'measure',
12
- 'dimension',
13
- 'filter',
14
- 'segment',
15
- 'timeDimension',
16
- ];
17
- const TYPE_PROPS_MAP = {
18
- measure: 'measures',
19
- dimension: 'dimensions',
20
- filter: 'filters',
21
- segment: 'segments',
22
- timeDimension: 'timeDimensions',
23
- };
24
- export function QueryVisualization({ onReset, type: selectedType, actions, }) {
25
- const { queryHash, isVerifying, clearQuery, selectedCube, selectCube, isQueryEmpty, members, cubes, connectionId, isCubeUsed, joinableCubes, queryStats, } = useQueryBuilderContext();
26
- const connectedCubes = joinableCubes.filter((cube) => !isCubeUsed(cube.name));
27
- return useMemo(() => {
28
- if (isQueryEmpty && !selectedCube) {
29
- return null;
30
- }
31
- const isUnconnectable = selectedCube &&
32
- // @ts-ignore
33
- selectedCube?.type !== 'view' &&
34
- (isQueryEmpty ||
35
- (connectedCubes?.length === 1 &&
36
- // @ts-ignore
37
- selectedCube?.connectedComponent === connectionId &&
38
- !isCubeUsed(selectedCube?.name)) ||
39
- !connectedCubes?.length);
40
- return !isQueryEmpty || selectedCube ? (_jsxs(Flex, { flow: "column", gap: "1x", children: [_jsxs(Space, { placeContent: "space-between", children: [_jsxs(Space, { gap: "1x", children: [actions, selectedCube && selectedCube?.type !== 'view' ? (_jsx(TooltipProvider, { title: isUnconnectable ? 'Show the list of cubes' : 'Connect more cubes to your query', children: _jsx(Button, { "aria-label": "Return to the list of cubes", size: "small", type: "primary", icon: isUnconnectable ? _jsx(UnorderedListOutlined, {}) : _jsx(PlusOutlined, {}), onPress: () => selectCube(null), children: "Cubes" }) })) : (_jsx(Title, { level: 3, preset: "h5", children: "Query" })), isVerifying && _jsx(LoadingOutlined, {})] }), _jsx(Space, { gap: ".5x", children: _jsx(TooltipProvider, { title: "Reset the query", children: _jsx(Button, { qa: "ResetQuery", "aria-label": "Reset the query", size: "small", type: "secondary", theme: "danger", icon: _jsx(CloseIcon, {}), onPress: () => {
41
- clearQuery();
42
- selectCube(null);
43
- onReset?.();
44
- }, children: "Reset" }) }) })] }), _jsxs(Flex, { flow: "column", gap: "1ow", children: [Object.entries(queryStats).map(([cubeName, cubeStats]) => {
45
- return (_jsxs(Flex, { flow: "column", children: [_jsx(ListCube, { rightIcon: !!selectedCube ? null : 'arrow', name: cubeName, title: cubeStats.instance?.title,
46
- // @ts-ignore
47
- description: cubeStats?.instance?.description,
48
- // @ts-ignore
49
- isPrivate: cubeStats?.instance?.public === false,
50
- // @ts-ignore
51
- type: cubeStats?.instance?.type, stats: selectedCube ? cubeStats : undefined, isSelected: cubeName === selectedCube?.name, isMissing: !cubeStats.instance, onItemSelect: () => selectCube(cubeName) }), !selectedCube && (_jsx(Block, { padding: ".5x 0 0 2x", margin: "0 0 0 2.25x", border: "1ow #purple.20 left", children: _jsx(Flex, { gap: "1ow .5x", flow: "row wrap", children: TYPES.map((type) => {
52
- const section = TYPE_PROPS_MAP[type];
53
- const count = cubeStats[section]?.length || 0;
54
- if (!count) {
55
- return null;
56
- }
57
- return cubeStats[section].map((memberName, i) => {
58
- const member = members.measures[memberName] ||
59
- members.dimensions[memberName] ||
60
- members.segments[memberName];
61
- return (_jsx(TooltipProvider, { activeWrap: true, title: !member ? (_jsxs(_Fragment, { children: ["Member not found: ", _jsx("b", { children: memberName })] })) : (_jsxs(_Fragment, { children: [capitalize(type), ": ", _jsx("b", { children: memberName }), _jsx("br", {}), member?.description] })), children: _jsx(MemberBadge, { type: member ? type : undefined, children: _jsx(MemberLabelText, { preset: "tag", "data-member": type, children: _jsx("span", { children: _jsx("span", { "data-element": "MemberName", children: memberName.split('.')[1] }) }) }) }) }, memberName));
62
- });
63
- }) }) }))] }, cubeName));
64
- }), selectedCube && !isCubeUsed(selectedCube.name) ? (_jsx(ListCube, { rightIcon: null,
65
- // @ts-ignore
66
- type: selectedCube?.type, isSelected: true, name: selectedCube?.name, title: selectedCube?.title,
67
- // @ts-ignore
68
- description: selectedCube?.description,
69
- // @ts-ignore
70
- isPrivate: selectedCube?.public === false, isMissing: !selectedCube })) : null, selectedCube && (_jsx(TooltipProvider, { title: `Expand query${
71
- // @ts-ignore
72
- selectedCube?.type === 'cube' ? ' and show the list of cubes' : ''}`, placement: "right", children: _jsx(Button, { "aria-label": "Expand query", size: "small", padding: "0", height: "3x", width: "auto", icon: _jsx(CaretDownFilled, {}), onPress: () => selectCube(null) }) }))] })] })) : null;
73
- }, [
74
- queryHash,
75
- isQueryEmpty,
76
- isVerifying,
77
- selectedType,
78
- selectedCube?.name,
79
- selectedCube && isCubeUsed(selectedCube?.name),
80
- connectedCubes?.length,
81
- connectionId,
82
- cubes,
83
- ]);
84
- }
85
- //# sourceMappingURL=QueryVisualization.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QueryVisualization.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/components/QueryVisualization.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- type ListMode = 'bi' | 'dev';
2
- export declare function useListMode(defaultMode?: ListMode): [ListMode, (listMode: ListMode) => void];
3
- export {};
@@ -1,9 +0,0 @@
1
- import { useLocalStorage } from './local-storage';
2
- export function useListMode(defaultMode) {
3
- let [listMode, setListMode] = useLocalStorage('QueryBuilder:ForceListMode', 'bi');
4
- if (!['bi', 'dev'].includes(listMode)) {
5
- listMode = defaultMode ?? 'bi';
6
- }
7
- return [listMode, setListMode];
8
- }
9
- //# sourceMappingURL=list-mode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-mode.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/hooks/list-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlD,MAAM,UAAU,WAAW,CAAC,WAAsB;IAChD,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,eAAe,CAAW,4BAA4B,EAAE,IAAI,CAAC,CAAC;IAE5F,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACrC,QAAQ,GAAG,WAAW,IAAI,IAAI,CAAC;KAChC;IAED,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACjC,CAAC"}
@@ -1,30 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { memo, useEffect, useState } from 'react';
3
- import { Icon } from './Icon';
4
- const rotationByDirection = {
5
- bottom: -180,
6
- left: -90,
7
- top: 0,
8
- right: 90,
9
- };
10
- export const ArrowIcon = memo(function ArrowIcon(props) {
11
- const { direction = 'bottom', color, ...iconProps } = props;
12
- const [rotate, setRotate] = useState(rotationByDirection[direction]);
13
- useEffect(() => {
14
- let prevRotate = rotate;
15
- let nextRotate = rotationByDirection[direction];
16
- while (prevRotate - nextRotate > 180) {
17
- nextRotate += 360;
18
- }
19
- while (prevRotate - nextRotate < -180) {
20
- nextRotate -= 360;
21
- }
22
- setRotate(nextRotate);
23
- }, [direction]);
24
- return (_jsx(Icon, { ...iconProps, children: _jsx("svg", { viewBox: "0 0 16 16", xmlns: "http://www.w3.org/2000/svg", ...(color ? { style: { color } } : null), children: _jsx("path", { style: {
25
- transformOrigin: 'center',
26
- transform: `rotate(${rotate}deg)`,
27
- transition: 'transform linear var(--transition)',
28
- }, d: "M13.772 10.222 9.1 5.55 8 4.45l-1.1 1.1-4.672 4.672a.776.776 0 1 0 1.1 1.1L8 6.649l4.673 4.673a.777.777 0 1 0 1.1-1.1Z" }) }) }));
29
- });
30
- //# sourceMappingURL=ArrowIcon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArrowIcon.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/icons/ArrowIcon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAC;AAYzC,MAAM,mBAAmB,GAA8B;IACrD,MAAM,EAAE,CAAC,GAAG;IACZ,IAAI,EAAE,CAAC,EAAE;IACT,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,SAAS,CAAC,KAAiB;IAChE,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;IAErE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,IAAI,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAEhD,OAAO,UAAU,GAAG,UAAU,GAAG,GAAG,EAAE;YACpC,UAAU,IAAI,GAAG,CAAC;SACnB;QAED,OAAO,UAAU,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE;YACrC,UAAU,IAAI,GAAG,CAAC;SACnB;QAED,SAAS,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,CACL,KAAC,IAAI,OAAK,SAAS,YACjB,cACE,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,KAC9B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAEzC,eACE,KAAK,EAAE;oBACL,eAAe,EAAE,QAAQ;oBACzB,SAAS,EAAE,UAAU,MAAM,MAAM;oBACjC,UAAU,EAAE,oCAAoC;iBACjD,EACD,CAAC,EAAC,wHAAwH,GAC1H,GACE,GACD,CACR,CAAC;AACJ,CAAC,CAAC,CAAC"}