@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
@@ -2,13 +2,20 @@ import { tasty } from '@cube-dev/ui-kit';
2
2
  import { ListButton } from './ListButton';
3
3
  export const ListMemberButton = tasty(ListButton, {
4
4
  styles: {
5
+ width: 'initial 100% 100%',
5
6
  placeContent: 'center start',
6
- color: '#text',
7
+ color: {
8
+ '': '#text',
9
+ missing: '#danger-text',
10
+ },
7
11
  fill: {
8
12
  '': '#clear',
9
13
  hovered: '#hover',
10
14
  selected: '#active',
11
15
  'selected & hovered': '#active.8',
16
+ missing: '#dark.04',
17
+ 'missing & selected': '#danger.2',
18
+ 'missing & hovered & selected': '#danger.16',
12
19
  },
13
20
  '--text-color': {
14
21
  '': '#dark',
@@ -1 +1 @@
1
- {"version":3,"file":"ListMemberButton.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/components/ListMemberButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,EAAE;IAChD,MAAM,EAAE;QACN,YAAY,EAAE,cAAc;QAC5B,KAAK,EAAE,OAAO;QACd,IAAI,EAAE;YACJ,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,SAAS;YACnB,oBAAoB,EAAE,WAAW;SAClC;QAED,cAAc,EAAE;YACd,EAAE,EAAE,OAAO;YACX,yBAAyB,EAAE,eAAe;YAC1C,2BAA2B,EAAE,iBAAiB;YAC9C,+BAA+B,EAAE,sBAAsB;YACvD,yBAAyB,EAAE,eAAe;SAC3C;QAED,eAAe,EAAE;YACf,EAAE,EAAE,UAAU;YACd,yBAAyB,EAAE,gBAAgB;YAC3C,2BAA2B,EAAE,kBAAkB;YAC/C,+BAA+B,EAAE,uBAAuB;YACxD,yBAAyB,EAAE,gBAAgB;SAC5C;QAED,gBAAgB,EAAE;YAChB,EAAE,EAAE,OAAO;YACX,yBAAyB,EAAE,iBAAiB;YAC5C,2BAA2B,EAAE,mBAAmB;YAChD,+BAA+B,EAAE,wBAAwB;YACzD,yBAAyB,EAAE,iBAAiB;SAC7C;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"ListMemberButton.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/components/ListMemberButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,EAAE;IAChD,MAAM,EAAE;QACN,KAAK,EAAE,mBAAmB;QAC1B,YAAY,EAAE,cAAc;QAC5B,KAAK,EAAE;YACL,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,cAAc;SACxB;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,QAAQ;YACZ,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,SAAS;YACnB,oBAAoB,EAAE,WAAW;YACjC,OAAO,EAAE,UAAU;YACnB,oBAAoB,EAAE,WAAW;YACjC,8BAA8B,EAAE,YAAY;SAC7C;QAED,cAAc,EAAE;YACd,EAAE,EAAE,OAAO;YACX,yBAAyB,EAAE,eAAe;YAC1C,2BAA2B,EAAE,iBAAiB;YAC9C,+BAA+B,EAAE,sBAAsB;YACvD,yBAAyB,EAAE,eAAe;SAC3C;QAED,eAAe,EAAE;YACf,EAAE,EAAE,UAAU;YACd,yBAAyB,EAAE,gBAAgB;YAC3C,2BAA2B,EAAE,kBAAkB;YAC/C,+BAA+B,EAAE,uBAAuB;YACxD,yBAAyB,EAAE,gBAAgB;SAC5C;QAED,gBAAgB,EAAE;YAChB,EAAE,EAAE,OAAO;YACX,yBAAyB,EAAE,iBAAiB;YAC5C,2BAA2B,EAAE,mBAAmB;YAChD,+BAA+B,EAAE,wBAAwB;YACzD,yBAAyB,EAAE,iBAAiB;SAC7C;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Filter, LogicalAndFilter, LogicalOrFilter } from '@cubejs-client/core';
2
+ interface LogicalFilterProps {
3
+ type: 'and' | 'or';
4
+ values: Filter[];
5
+ isCompact?: boolean;
6
+ isAddingCompact?: boolean;
7
+ onRemove: () => void;
8
+ onUnwrap: () => void;
9
+ onChange: (filter: LogicalAndFilter | LogicalOrFilter) => void;
10
+ }
11
+ export declare function LogicalFilter(props: LogicalFilterProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,152 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Flex, tasty } from '@cube-dev/ui-kit';
3
+ import { useEvent } from '../hooks';
4
+ import { useQueryBuilderContext } from '../context';
5
+ import { FilterMember } from './FilterMember';
6
+ import { AddFilterInput } from './AddFilterInput';
7
+ import { FilterOptionsButton } from './FilterOptionsButton';
8
+ const LogicalOperatorContainer = tasty({
9
+ qa: 'LogicalFilter',
10
+ styles: {
11
+ display: 'grid',
12
+ gridColumns: 'min-content min-content 1fr',
13
+ gap: '.5x',
14
+ placeItems: 'center start',
15
+ radius: true,
16
+ fill: {
17
+ '': '#clear',
18
+ ':has(>[data-qa="FilterOptionsButton"][data-is-hovered])': '#light',
19
+ },
20
+ margin: '-.5x',
21
+ padding: '.5x',
22
+ width: 'max-content',
23
+ },
24
+ });
25
+ const LogicalOperatorButton = tasty({
26
+ styles: {
27
+ display: 'grid',
28
+ gridRows: '1fr auto 1fr',
29
+ placeItems: 'stretch center',
30
+ placeSelf: 'stretch',
31
+ flow: 'column',
32
+ preset: 'c2',
33
+ color: '#dark-03',
34
+ width: '3.5x',
35
+ '&::before': {
36
+ content: '""',
37
+ width: '1ow',
38
+ fill: '#dark.2',
39
+ radius: 'top',
40
+ },
41
+ '&::after': {
42
+ content: '""',
43
+ width: '1ow',
44
+ fill: '#dark.2',
45
+ radius: 'bottom',
46
+ },
47
+ },
48
+ });
49
+ export function LogicalFilter(props) {
50
+ const { isCompact, onChange, isAddingCompact, onRemove, onUnwrap, type, values } = props;
51
+ const { members, memberViewType, cubes } = useQueryBuilderContext();
52
+ function getMemberType(member) {
53
+ if (!member?.name) {
54
+ return undefined;
55
+ }
56
+ if (members.measures[member.name]) {
57
+ return 'measure';
58
+ }
59
+ if (members.dimensions[member.name]) {
60
+ return 'dimension';
61
+ }
62
+ return undefined;
63
+ }
64
+ const filters = [...values];
65
+ const changeValues = (filters) => {
66
+ onChange({ [type]: filters });
67
+ };
68
+ const removeFilter = (index) => {
69
+ filters.splice(index, 1);
70
+ changeValues(filters);
71
+ };
72
+ const updateFilter = (index, filter) => {
73
+ filters[index] = filter;
74
+ changeValues(filters);
75
+ };
76
+ const wrapFilter = useEvent((type) => {
77
+ onChange({ [type]: [{ [type]: values }] });
78
+ });
79
+ const unwrapFilter = (index) => {
80
+ const filter = filters[index];
81
+ if ('and' in filter) {
82
+ filters.splice(index, 1, ...filter.and);
83
+ }
84
+ if ('or' in filter) {
85
+ filters.splice(index, 1, ...filter.or);
86
+ }
87
+ changeValues(filters);
88
+ };
89
+ const convert = () => {
90
+ if (type === 'and') {
91
+ onChange({ or: filters });
92
+ }
93
+ else {
94
+ onChange({ and: filters });
95
+ }
96
+ };
97
+ const onFilterAction = useEvent((key) => {
98
+ switch (key) {
99
+ case 'remove':
100
+ onRemove();
101
+ break;
102
+ case 'unwrap':
103
+ onUnwrap();
104
+ break;
105
+ case 'convert':
106
+ convert();
107
+ break;
108
+ case 'wrapWithAnd':
109
+ wrapFilter('and');
110
+ break;
111
+ case 'wrapWithOr':
112
+ wrapFilter('or');
113
+ break;
114
+ }
115
+ });
116
+ return (_jsxs(LogicalOperatorContainer, { children: [_jsx(FilterOptionsButton, { type: type, disableKeys: !values.length ? ['unwrap'] : undefined, onAction: onFilterAction }), _jsx(LogicalOperatorButton, { children: type }), _jsxs(Flex, { flow: "column", gap: "1x", children: [filters.map((filter, index) => {
117
+ if ('and' in filter) {
118
+ return (_jsx(LogicalFilter, { type: "and", values: filter.and, isCompact: isCompact, isAddingCompact: isAddingCompact, onRemove: () => {
119
+ removeFilter(index);
120
+ }, onChange: (filter) => {
121
+ updateFilter(index, filter);
122
+ }, onUnwrap: () => {
123
+ unwrapFilter(index);
124
+ } }, index));
125
+ }
126
+ if ('or' in filter) {
127
+ return (_jsx(LogicalFilter, { type: "or", values: filter.or, isCompact: isCompact, isAddingCompact: isAddingCompact, onRemove: () => {
128
+ removeFilter(index);
129
+ }, onChange: (filter) => {
130
+ updateFilter(index, filter);
131
+ }, onUnwrap: () => {
132
+ unwrapFilter(index);
133
+ } }, index));
134
+ }
135
+ if (!('member' in filter) || !filter.member) {
136
+ return null;
137
+ }
138
+ const member = members.measures[filter.member] || members.dimensions[filter.member];
139
+ const memberFullName = filter.member;
140
+ const cubeName = memberFullName.split('.')[0];
141
+ const cube = cubes.find((cube) => cube.name === cubeName);
142
+ const memberName = memberFullName.split('.')[1];
143
+ return (_jsx(FilterMember, { isMissing: !member, isCompact: isCompact, filter: filter, memberName: memberName, memberTitle: member?.shortTitle, cubeName: cubeName, cubeTitle: cube?.title, memberViewType: memberViewType, memberType: getMemberType(member), type: member?.type, onRemove: () => {
144
+ removeFilter(index);
145
+ }, onChange: (updatedFilter) => {
146
+ updateFilter(index, updatedFilter);
147
+ } }, index));
148
+ }), _jsx(AddFilterInput, { isCompact: isAddingCompact, onAdd: (filter) => {
149
+ changeValues([...filters, filter]);
150
+ } })] })] }));
151
+ }
152
+ //# sourceMappingURL=LogicalFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogicalFilter.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/components/LogicalFilter.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,17 @@
1
+ import { ReactNode } from 'react';
2
+ import { MemberViewType } from '../types';
1
3
  interface MemberLabelProps {
2
4
  name: string;
3
- member?: 'measure' | 'dimension' | 'timeDimension';
5
+ memberName?: string;
6
+ cubeName?: string;
7
+ memberTitle?: string;
8
+ cubeTitle?: string;
9
+ memberViewType?: MemberViewType;
10
+ isCompact?: boolean;
11
+ memberType?: 'measure' | 'dimension' | 'timeDimension' | 'segment';
4
12
  type?: 'number' | 'string' | 'time' | 'boolean' | 'filter';
13
+ isMissing?: boolean;
14
+ children?: ReactNode;
5
15
  }
6
16
  export declare function MemberLabel(props: MemberLabelProps): import("react/jsx-runtime").JSX.Element;
7
17
  export {};
@@ -1,19 +1,27 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { getTypeIcon } from '../utils';
3
+ import { useShownMemberName } from '../hooks';
3
4
  import { MemberLabelText } from './MemberLabelText';
4
5
  import { MemberBadge } from './Badge';
5
6
  function StyledTypeIcon(props) {
6
- const { type, member } = props;
7
- const memberColorName = member === 'missing' ? 'danger' : member;
7
+ const { type, memberType, isMissing } = props;
8
+ const memberColorName = isMissing ? 'danger' : memberType;
8
9
  return (_jsx("span", { style: {
9
10
  display: 'grid',
10
11
  color: `var(--${memberColorName}-text-color)`,
11
12
  placeSelf: 'center',
12
- }, children: getTypeIcon(type || 'number') }));
13
+ }, children: getTypeIcon(type) }));
13
14
  }
14
15
  export function MemberLabel(props) {
15
- const { name, member, type } = props;
16
+ const { name, cubeName = props.name.split('.')[0], cubeTitle, memberName = props.name.split('.')[1], memberTitle, isCompact, memberType, type, memberViewType, isMissing, children, } = props;
16
17
  const arr = name.split('.');
17
- return (_jsxs(MemberLabelText, { "data-member": member, children: [type && member ? _jsx(StyledTypeIcon, { type: type, member: member }) : null, arr.length > 1 ? (_jsxs(_Fragment, { children: [_jsxs("span", { "data-element": "Name", children: [_jsx("span", { "data-element": "CubeName", children: arr[0] }), _jsx("span", { "data-element": "Divider", children: "." }), _jsx("span", { "data-element": "MemberName", children: arr[1] })] }), arr[2] ? (_jsx("span", { "data-element": "Grouping", children: _jsx(MemberBadge, { isSpecial: true, type: member, children: arr[2] }) })) : null] })) : (_jsx("span", { "data-element": "MemberName", children: name }))] }));
18
+ const { shownMemberName, shownCubeName } = useShownMemberName({
19
+ cubeName,
20
+ cubeTitle,
21
+ memberName,
22
+ memberTitle,
23
+ type: memberViewType,
24
+ });
25
+ return (_jsxs(MemberLabelText, { "data-member": memberType, mods: { missing: isMissing }, children: [memberType ? (_jsx(StyledTypeIcon, { isMissing: isMissing, type: type, memberType: memberType })) : null, !isCompact || !cubeName ? (_jsxs(_Fragment, { children: [_jsxs("span", { "data-element": "Name", children: [_jsx("span", { "data-element": "CubeName", children: shownCubeName }), _jsx("span", { "data-element": "Divider", children: memberViewType === 'name' ? '.' : _jsx(_Fragment, { children: "\u00A0" }) }), _jsx("span", { "data-element": "MemberName", children: shownMemberName })] }), arr[2] ? (_jsx("span", { "data-element": "Grouping", children: _jsx(MemberBadge, { isSpecial: true, type: memberType, children: arr[2] }) })) : null] })) : (_jsx("span", { "data-element": "MemberName", children: shownMemberName })), children] }));
18
26
  }
19
27
  //# sourceMappingURL=MemberLabel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemberLabel.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/components/MemberLabel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,SAAS,cAAc,CAAC,KAGvB;IACC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC/B,MAAM,eAAe,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAEjE,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,SAAS,eAAe,cAAc;YAC7C,SAAS,EAAE,QAAQ;SACpB,YAEA,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC,GACzB,CACR,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAErC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5B,OAAO,CACL,MAAC,eAAe,mBAAc,MAAM,aACjC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAC,cAAc,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC,CAAC,CAAC,IAAI,EACtE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAChB,8BACE,gCAAmB,MAAM,aACvB,+BAAmB,UAAU,YAAE,GAAG,CAAC,CAAC,CAAC,GAAQ,EAC7C,+BAAmB,SAAS,kBAAS,EACrC,+BAAmB,YAAY,YAAE,GAAG,CAAC,CAAC,CAAC,GAAQ,IAC1C,EACN,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACR,+BAAmB,UAAU,YAC3B,KAAC,WAAW,IAAC,SAAS,QAAC,IAAI,EAAE,MAAM,YAChC,GAAG,CAAC,CAAC,CAAC,GACK,GACT,CACR,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC,CAAC,CAAC,CACF,+BAAmB,YAAY,YAAE,IAAI,GAAQ,CAC9C,IACe,CACnB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MemberLabel.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/components/MemberLabel.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,SAAS,cAAc,CAAC,KAIvB;IACC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC9C,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;IAE1D,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,SAAS,eAAe,cAAc;YAC7C,SAAS,EAAE,QAAQ;SACpB,YAEA,WAAW,CAAC,IAAI,CAAC,GACb,CACR,CAAC;AACJ,CAAC;AAgBD,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,IAAI,EACJ,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACnC,SAAS,EACT,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACrC,WAAW,EACX,SAAS,EACT,UAAU,EACV,IAAI,EACJ,cAAc,EACd,SAAS,EACT,QAAQ,GACT,GAAG,KAAK,CAAC;IACV,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5B,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAAC;QAC5D,QAAQ;QACR,SAAS;QACT,UAAU;QACV,WAAW;QACX,IAAI,EAAE,cAAc;KACrB,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,eAAe,mBAAc,UAAU,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,aACnE,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,cAAc,IAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,GAAI,CAC7E,CAAC,CAAC,CAAC,IAAI,EACP,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACzB,8BACE,gCAAmB,MAAM,aACvB,+BAAmB,UAAU,YAAE,aAAa,GAAQ,EACpD,+BAAmB,SAAS,YAAE,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,uCAAW,GAAQ,EACnF,+BAAmB,YAAY,YAAE,eAAe,GAAQ,IACnD,EACN,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACR,+BAAmB,UAAU,YAC3B,KAAC,WAAW,IAAC,SAAS,QAAC,IAAI,EAAE,UAAU,YACpC,GAAG,CAAC,CAAC,CAAC,GACK,GACT,CACR,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC,CAAC,CAAC,CACF,+BAAmB,YAAY,YAAE,eAAe,GAAQ,CACzD,EACA,QAAQ,IACO,CACnB,CAAC;AACJ,CAAC"}
@@ -1,18 +1,23 @@
1
1
  import { tasty } from '@cube-dev/ui-kit';
2
2
  export const MemberLabelText = tasty({
3
+ qa: 'MemberLabel',
4
+ 'aria-label': 'Member label',
3
5
  styles: {
4
6
  display: 'grid',
5
7
  flow: 'column',
6
- gap: '.5x',
7
- preset: 't3m',
8
+ gap: '.75x',
9
+ preset: {
10
+ '': 't3m',
11
+ '[data-size="small"]': 't4',
12
+ },
8
13
  color: {
9
14
  '': '#dark',
10
- '[data-member="missing"]': '#danger-text',
11
15
  '[data-member="measure"]': '#measure-text',
12
16
  '[data-member="dimension"]': '#dimension-text',
13
17
  '[data-member="timeDimension"]': '#time-dimension-text',
14
18
  '[data-member="segment"]': '#segment-text',
15
19
  '[data-member="filter"]': '#filter-text',
20
+ '[data-member="missing"] | missing': '#danger-text',
16
21
  },
17
22
  whiteSpace: 'nowrap',
18
23
  placeItems: 'center start',
@@ -26,9 +31,11 @@ export const MemberLabelText = tasty({
26
31
  CubeName: {
27
32
  color: '#dark',
28
33
  },
29
- MemberName: {
34
+ MemberPath: {
30
35
  overflow: 'hidden',
31
36
  textOverflow: 'ellipsis',
37
+ // Fixes issue with `overflow: elipsis` not applying correctly
38
+ maxWidth: '100%',
32
39
  },
33
40
  Divider: {
34
41
  padding: '0 1bw',
@@ -1 +1 @@
1
- {"version":3,"file":"MemberLabelText.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/components/MemberLabelText.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;IACnC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,KAAK;QACb,KAAK,EAAE;YACL,EAAE,EAAE,OAAO;YACX,yBAAyB,EAAE,cAAc;YACzC,yBAAyB,EAAE,eAAe;YAC1C,2BAA2B,EAAE,iBAAiB;YAC9C,+BAA+B,EAAE,sBAAsB;YACvD,yBAAyB,EAAE,eAAe;YAC1C,wBAAwB,EAAE,cAAc;SACzC;QACD,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE,cAAc;QAC1B,YAAY,EAAE,cAAc;QAE5B,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,UAAU;SACzB;QAED,QAAQ,EAAE;YACR,KAAK,EAAE,OAAO;SACf;QAED,UAAU,EAAE;YACV,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,UAAU;SACzB;QAED,OAAO,EAAE;YACP,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;QAED,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;KACjC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"MemberLabelText.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/components/MemberLabelText.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;IACnC,EAAE,EAAE,aAAa;IACjB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,MAAM;QACX,MAAM,EAAE;YACN,EAAE,EAAE,KAAK;YACT,qBAAqB,EAAE,IAAI;SAC5B;QACD,KAAK,EAAE;YACL,EAAE,EAAE,OAAO;YACX,yBAAyB,EAAE,eAAe;YAC1C,2BAA2B,EAAE,iBAAiB;YAC9C,+BAA+B,EAAE,sBAAsB;YACvD,yBAAyB,EAAE,eAAe;YAC1C,wBAAwB,EAAE,cAAc;YACxC,mCAAmC,EAAE,cAAc;SACpD;QACD,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE,cAAc;QAC1B,YAAY,EAAE,cAAc;QAE5B,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,UAAU;SACzB;QAED,QAAQ,EAAE;YACR,KAAK,EAAE,OAAO;SACf;QAED,UAAU,EAAE;YACV,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,UAAU;YACxB,8DAA8D;YAC9D,QAAQ,EAAE,MAAM;SACjB;QAED,OAAO,EAAE;YACP,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,SAAS;SACjB;QAED,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;KACjC;CACF,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { AriaButtonProps } from 'react-aria';
3
+ import { ListProps, ItemProps as BaseItemProps } from 'react-stately';
4
+ type ItemProps = {
5
+ id: string;
6
+ textValue: string;
7
+ render: (dragButtonProps: AriaButtonProps) => ReactNode;
8
+ };
9
+ interface ReorderableListProps extends ListProps<ItemProps> {
10
+ direction: 'vertical' | 'horizontal';
11
+ isDisabled?: boolean;
12
+ hasDragButton?: boolean;
13
+ onMove: (newKeys: string[]) => void;
14
+ }
15
+ export declare function ReorderableList<T extends ItemProps = ItemProps>(props: ReorderableListProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare namespace ReorderableList {
17
+ var Item: ItemComponent;
18
+ }
19
+ type ItemComponent = <T>(props: BaseItemProps<T> & ItemProps) => ReactElement;
20
+ export {};
@@ -0,0 +1,173 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Item as BaseItem, mergeProps, tasty } from '@cube-dev/ui-kit';
3
+ import { useRef } from 'react';
4
+ import { ListDropTargetDelegate, ListKeyboardDelegate, useDraggableCollection, useDraggableItem, useDropIndicator, useDroppableCollection, useFocusRing, useListBox, useOption, } from 'react-aria';
5
+ import { useDraggableCollectionState, useDroppableCollectionState, useListState, } from 'react-stately';
6
+ const ReorderableListElement = tasty({
7
+ as: 'ul',
8
+ styles: {
9
+ display: 'contents',
10
+ flow: {
11
+ '': 'row',
12
+ vertical: 'column',
13
+ },
14
+ padding: 0,
15
+ margin: 0,
16
+ },
17
+ });
18
+ export function ReorderableList(props) {
19
+ let { onMove, direction = 'horizontal', isDisabled, hasDragButton, children, ...itemProps } = props;
20
+ let state = useListState(props);
21
+ let ref = useRef(null);
22
+ let { listBoxProps } = useListBox({
23
+ ...itemProps,
24
+ // Prevent dragging from changing selection.
25
+ shouldSelectOnPressUp: true,
26
+ }, state, ref);
27
+ const onReorder = (e) => {
28
+ if (isDisabled) {
29
+ return null;
30
+ }
31
+ const originalKeys = [...(itemProps.items || [])].map((item) => item.id);
32
+ const { target, keys: movableKeys } = e;
33
+ const { dropPosition, key: targetKey } = target;
34
+ const movableKey = [...movableKeys][0];
35
+ // Get indices for the movable and target keys
36
+ const movableIndex = originalKeys.indexOf(movableKey);
37
+ const targetIndex = originalKeys.indexOf(targetKey);
38
+ // If positions are the same, do nothing
39
+ if (movableIndex === targetIndex) {
40
+ onMove(originalKeys);
41
+ return;
42
+ }
43
+ // Remove the movable key from its original position
44
+ originalKeys.splice(movableIndex, 1);
45
+ // Insert the movable key at the new position
46
+ const insertIndex = dropPosition === 'before' ? targetIndex : targetIndex + 1;
47
+ originalKeys.splice(insertIndex, 0, movableKey);
48
+ onMove(originalKeys);
49
+ };
50
+ // Setup drag state for the collection.
51
+ let dragState = useDraggableCollectionState({
52
+ // Pass through events from props.
53
+ ...itemProps,
54
+ // Collection and selection manager come from list state.
55
+ collection: state.collection,
56
+ selectionManager: state.selectionManager,
57
+ // Provide data for each dragged item. This function could
58
+ // also be provided by the user of the component.
59
+ getItems: (keys) => {
60
+ if (isDisabled) {
61
+ return [];
62
+ }
63
+ return [...keys].map((key) => {
64
+ let item = state.collection.getItem(key);
65
+ return {
66
+ 'text/plain': item?.textValue || '',
67
+ };
68
+ });
69
+ },
70
+ getAllowedDropOperations: () => ['move'],
71
+ });
72
+ useDraggableCollection(props, dragState, ref);
73
+ let dropState = useDroppableCollectionState({
74
+ ...itemProps,
75
+ onReorder,
76
+ collection: state.collection,
77
+ selectionManager: state.selectionManager,
78
+ });
79
+ let { collectionProps } = useDroppableCollection({
80
+ ...itemProps,
81
+ // Provide drop targets for keyboard and pointer-based drag and drop.
82
+ keyboardDelegate: new ListKeyboardDelegate(state.collection, state.disabledKeys, ref),
83
+ dropTargetDelegate: new ListDropTargetDelegate(state.collection, ref),
84
+ onReorder,
85
+ }, dropState, ref);
86
+ return (_jsx(ReorderableListElement, { ...mergeProps(listBoxProps, collectionProps, {
87
+ mods: { vertical: direction === 'vertical' },
88
+ }), ref: ref, children: [...state.collection].map((item) => {
89
+ return (_jsx(ReorderableItem, { item: item, direction: direction, state: state, isDisabled: isDisabled, hasDragButton: hasDragButton, dragState: dragState, dropState: dropState }, item.key));
90
+ }) }));
91
+ }
92
+ const ReorderableMemberElement = tasty({
93
+ as: 'div',
94
+ styles: {
95
+ position: 'sticky',
96
+ top: 0,
97
+ display: 'block',
98
+ shadow: {
99
+ '': '0',
100
+ focused: '1bw solid #focus inset',
101
+ },
102
+ },
103
+ });
104
+ function ReorderableItem({ item, state, direction = 'horizontal', hasDragButton, isDisabled, dragState, dropState, }) {
105
+ // Set up the listbox option as normal. See useListBox docs for details.
106
+ let ref = useRef(null);
107
+ let { optionProps } = useOption({ key: item.key }, state, ref);
108
+ let { isFocusVisible, focusProps } = useFocusRing();
109
+ // Register the item as a drag source.
110
+ let { dragProps, dragButtonProps } = useDraggableItem({
111
+ key: item.key,
112
+ hasDragButton,
113
+ hasAction: true,
114
+ }, dragState);
115
+ return (_jsx(_Fragment, { children: _jsxs(ReorderableMemberElement, { ...mergeProps(optionProps, !isDisabled ? dragProps : {}, focusProps), ref: ref, mods: {
116
+ focused: isFocusVisible,
117
+ }, children: [_jsx(DropIndicator, { direction: direction, position: "before", target: { type: 'item', key: item.key, dropPosition: 'before' }, dropState: dropState }), hasDragButton ? item.value?.render(dragButtonProps) : item.rendered, state.collection.getKeyAfter(item.key) == null && (_jsx(DropIndicator, { direction: direction, position: "after", target: { type: 'item', key: item.key, dropPosition: 'after' }, dropState: dropState }))] }) }));
118
+ }
119
+ const DropIndicatorElement = tasty({
120
+ styles: {
121
+ zIndex: 10,
122
+ position: 'absolute',
123
+ pointerEvents: 'none',
124
+ opacity: {
125
+ '': 0,
126
+ dropTarget: 1,
127
+ },
128
+ fill: '#purple',
129
+ width: {
130
+ '': '.5x',
131
+ vertical: '100%',
132
+ },
133
+ height: {
134
+ '': '.5x',
135
+ horizontal: '100%',
136
+ },
137
+ top: {
138
+ '': 'auto',
139
+ 'vertical & before': '-2px',
140
+ },
141
+ bottom: {
142
+ '': 'auto',
143
+ 'vertical & after': '-2px',
144
+ },
145
+ left: {
146
+ '': 'auto',
147
+ 'horizontal & before': '-2px',
148
+ },
149
+ right: {
150
+ '': 'auto',
151
+ 'horizontal & after': '-2px',
152
+ },
153
+ },
154
+ });
155
+ function DropIndicator(props) {
156
+ const { position, direction = 'horizontal', target } = props;
157
+ let ref = useRef(null);
158
+ let { dropIndicatorProps, isHidden, isDropTarget } = useDropIndicator({ target }, props.dropState, ref);
159
+ if (isHidden) {
160
+ return null;
161
+ }
162
+ return (_jsx(DropIndicatorElement, { ref: ref, role: "option", ...dropIndicatorProps, mods: {
163
+ 'drop-target': isDropTarget,
164
+ after: position === 'after',
165
+ before: position === 'before',
166
+ vertical: direction === 'vertical',
167
+ horizontal: direction !== 'vertical',
168
+ } }));
169
+ }
170
+ ReorderableList.Item = Object.assign(BaseItem, {
171
+ displayName: 'Item',
172
+ });
173
+ //# sourceMappingURL=ReorderableList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReorderableList.js","sourceRoot":"","sources":["../../../src/QueryBuilderV2/components/ReorderableList.tsx"],"names":[],"mappings":"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"}