@cubejs-client/playground 1.1.12 → 1.1.17
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/build/assets/{index-wSty61qr.js → index-DgSEz9T1.js} +613 -779
- package/build/index.html +1 -1
- package/build/vizard/download/react-typescript-antd-table.zip +0 -0
- package/build/vizard/download/react-typescript-chartjs-area+bar+doughnut+line+pie.zip +0 -0
- package/lib/.tsbuildinfo +1 -1
- package/lib/App.js +1 -1
- package/lib/App.js.map +1 -1
- package/lib/QueryBuilderV2/QueryBuilder.d.ts +4 -0
- package/lib/QueryBuilderV2/QueryBuilder.js +12 -9
- package/lib/QueryBuilderV2/QueryBuilder.js.map +1 -1
- package/lib/QueryBuilderV2/QueryBuilderChart.js +2 -2
- package/lib/QueryBuilderV2/QueryBuilderChart.js.map +1 -1
- package/lib/QueryBuilderV2/QueryBuilderChartResults.js +4 -4
- package/lib/QueryBuilderV2/QueryBuilderChartResults.js.map +1 -1
- package/lib/QueryBuilderV2/QueryBuilderError.js +1 -3
- package/lib/QueryBuilderV2/QueryBuilderError.js.map +1 -1
- package/lib/QueryBuilderV2/QueryBuilderExtras.d.ts +1 -0
- package/lib/QueryBuilderV2/QueryBuilderExtras.js +39 -18
- package/lib/QueryBuilderV2/QueryBuilderExtras.js.map +1 -1
- package/lib/QueryBuilderV2/QueryBuilderFilters.js +88 -84
- package/lib/QueryBuilderV2/QueryBuilderFilters.js.map +1 -1
- package/lib/QueryBuilderV2/QueryBuilderGraphQL.js +1 -1
- package/lib/QueryBuilderV2/QueryBuilderGraphQL.js.map +1 -1
- package/lib/QueryBuilderV2/QueryBuilderInternals.js +7 -10
- package/lib/QueryBuilderV2/QueryBuilderInternals.js.map +1 -1
- package/lib/QueryBuilderV2/QueryBuilderResults.js +87 -45
- package/lib/QueryBuilderV2/QueryBuilderResults.js.map +1 -1
- package/lib/QueryBuilderV2/QueryBuilderSidePanel.d.ts +4 -3
- package/lib/QueryBuilderV2/QueryBuilderSidePanel.js +95 -54
- package/lib/QueryBuilderV2/QueryBuilderSidePanel.js.map +1 -1
- package/lib/QueryBuilderV2/components/Accordion/AccordionItemTitle.js +1 -1
- package/lib/QueryBuilderV2/components/Accordion/AccordionItemTitle.js.map +1 -1
- package/lib/QueryBuilderV2/components/AddFilterInput.d.ts +10 -0
- package/lib/QueryBuilderV2/components/AddFilterInput.js +195 -0
- package/lib/QueryBuilderV2/components/AddFilterInput.js.map +1 -0
- package/lib/QueryBuilderV2/components/Badge.d.ts +3 -2
- package/lib/QueryBuilderV2/components/Badge.js +4 -3
- package/lib/QueryBuilderV2/components/Badge.js.map +1 -1
- package/lib/QueryBuilderV2/components/ChartRenderer.js +0 -1
- package/lib/QueryBuilderV2/components/ChartRenderer.js.map +1 -1
- package/lib/QueryBuilderV2/components/DateRangeFilter.d.ts +7 -0
- package/lib/QueryBuilderV2/components/DateRangeFilter.js +25 -4
- package/lib/QueryBuilderV2/components/DateRangeFilter.js.map +1 -1
- package/lib/QueryBuilderV2/components/EditQueryDialogForm.js +18 -20
- package/lib/QueryBuilderV2/components/EditQueryDialogForm.js.map +1 -1
- package/lib/QueryBuilderV2/components/FilterByMemberButton.d.ts +6 -1
- package/lib/QueryBuilderV2/components/FilterByMemberButton.js +16 -6
- package/lib/QueryBuilderV2/components/FilterByMemberButton.js.map +1 -1
- package/lib/QueryBuilderV2/components/FilterLabel.d.ts +9 -0
- package/lib/QueryBuilderV2/components/FilterLabel.js +18 -4
- package/lib/QueryBuilderV2/components/FilterLabel.js.map +1 -1
- package/lib/QueryBuilderV2/components/FilterMember.d.ts +19 -0
- package/lib/QueryBuilderV2/components/FilterMember.js +137 -0
- package/lib/QueryBuilderV2/components/FilterMember.js.map +1 -0
- package/lib/QueryBuilderV2/components/FilterOptionsButton.d.ts +8 -0
- package/lib/QueryBuilderV2/components/FilterOptionsButton.js +54 -0
- package/lib/QueryBuilderV2/components/FilterOptionsButton.js.map +1 -0
- package/lib/QueryBuilderV2/components/FilteredLabel.js +10 -2
- package/lib/QueryBuilderV2/components/FilteredLabel.js.map +1 -1
- package/lib/QueryBuilderV2/components/Folder.d.ts +9 -0
- package/lib/QueryBuilderV2/components/Folder.js +47 -0
- package/lib/QueryBuilderV2/components/Folder.js.map +1 -0
- package/lib/QueryBuilderV2/components/GranularityListMember.d.ts +3 -0
- package/lib/QueryBuilderV2/components/GranularityListMember.js +5 -14
- package/lib/QueryBuilderV2/components/GranularityListMember.js.map +1 -1
- package/lib/QueryBuilderV2/components/HierarchyMember.d.ts +14 -0
- package/lib/QueryBuilderV2/components/HierarchyMember.js +47 -0
- package/lib/QueryBuilderV2/components/HierarchyMember.js.map +1 -0
- package/lib/QueryBuilderV2/components/InstanceTooltipProvider.d.ts +15 -0
- package/lib/QueryBuilderV2/components/InstanceTooltipProvider.js +36 -0
- package/lib/QueryBuilderV2/components/InstanceTooltipProvider.js.map +1 -0
- package/lib/QueryBuilderV2/components/ListButton.d.ts +341 -11
- package/lib/QueryBuilderV2/components/ListButton.js +2 -1
- package/lib/QueryBuilderV2/components/ListButton.js.map +1 -1
- package/lib/QueryBuilderV2/components/ListCube.js +2 -2
- package/lib/QueryBuilderV2/components/ListCube.js.map +1 -1
- package/lib/QueryBuilderV2/components/ListMember.d.ts +11 -2
- package/lib/QueryBuilderV2/components/ListMember.js +39 -29
- package/lib/QueryBuilderV2/components/ListMember.js.map +1 -1
- package/lib/QueryBuilderV2/components/ListMemberButton.d.ts +341 -11
- package/lib/QueryBuilderV2/components/ListMemberButton.js +8 -1
- package/lib/QueryBuilderV2/components/ListMemberButton.js.map +1 -1
- package/lib/QueryBuilderV2/components/LogicalFilter.d.ts +12 -0
- package/lib/QueryBuilderV2/components/LogicalFilter.js +152 -0
- package/lib/QueryBuilderV2/components/LogicalFilter.js.map +1 -0
- package/lib/QueryBuilderV2/components/MemberLabel.d.ts +11 -1
- package/lib/QueryBuilderV2/components/MemberLabel.js +14 -6
- package/lib/QueryBuilderV2/components/MemberLabel.js.map +1 -1
- package/lib/QueryBuilderV2/components/MemberLabelText.js +11 -4
- package/lib/QueryBuilderV2/components/MemberLabelText.js.map +1 -1
- package/lib/QueryBuilderV2/components/ReorderableList.d.ts +20 -0
- package/lib/QueryBuilderV2/components/ReorderableList.js +173 -0
- package/lib/QueryBuilderV2/components/ReorderableList.js.map +1 -0
- package/lib/QueryBuilderV2/components/ScrollableArea.d.ts +354 -1
- package/lib/QueryBuilderV2/components/SegmentFilter.d.ts +7 -0
- package/lib/QueryBuilderV2/components/SegmentFilter.js +30 -4
- package/lib/QueryBuilderV2/components/SegmentFilter.js.map +1 -1
- package/lib/QueryBuilderV2/components/SidePanelCubeItem.d.ts +4 -5
- package/lib/QueryBuilderV2/components/SidePanelCubeItem.js +380 -130
- package/lib/QueryBuilderV2/components/SidePanelCubeItem.js.map +1 -1
- package/lib/QueryBuilderV2/components/TimeListMember.d.ts +20 -5
- package/lib/QueryBuilderV2/components/TimeListMember.js +95 -49
- package/lib/QueryBuilderV2/components/TimeListMember.js.map +1 -1
- package/lib/QueryBuilderV2/components/ValuesInput.d.ts +4 -0
- package/lib/QueryBuilderV2/components/ValuesInput.js +65 -41
- package/lib/QueryBuilderV2/components/ValuesInput.js.map +1 -1
- package/lib/QueryBuilderV2/hooks/dimension-values.d.ts +13 -0
- package/lib/QueryBuilderV2/hooks/dimension-values.js +62 -0
- package/lib/QueryBuilderV2/hooks/dimension-values.js.map +1 -0
- package/lib/QueryBuilderV2/hooks/filtered-cubes.d.ts +6 -2
- package/lib/QueryBuilderV2/hooks/filtered-cubes.js +26 -8
- package/lib/QueryBuilderV2/hooks/filtered-cubes.js.map +1 -1
- package/lib/QueryBuilderV2/hooks/filtered-members.d.ts +10 -4
- package/lib/QueryBuilderV2/hooks/filtered-members.js +57 -20
- package/lib/QueryBuilderV2/hooks/filtered-members.js.map +1 -1
- package/lib/QueryBuilderV2/hooks/has-overflow.d.ts +1 -1
- package/lib/QueryBuilderV2/hooks/has-overflow.js +3 -0
- package/lib/QueryBuilderV2/hooks/has-overflow.js.map +1 -1
- package/lib/QueryBuilderV2/hooks/index.d.ts +2 -1
- package/lib/QueryBuilderV2/hooks/index.js +2 -1
- package/lib/QueryBuilderV2/hooks/index.js.map +1 -1
- package/lib/QueryBuilderV2/hooks/local-storage.js +1 -1
- package/lib/QueryBuilderV2/hooks/local-storage.js.map +1 -1
- package/lib/QueryBuilderV2/hooks/query-builder.d.ts +36 -13
- package/lib/QueryBuilderV2/hooks/query-builder.js +258 -36
- package/lib/QueryBuilderV2/hooks/query-builder.js.map +1 -1
- package/lib/QueryBuilderV2/hooks/shown-member-name.d.ts +16 -0
- package/lib/QueryBuilderV2/hooks/shown-member-name.js +20 -0
- package/lib/QueryBuilderV2/hooks/shown-member-name.js.map +1 -0
- package/lib/QueryBuilderV2/icons/{ArrowIcon.d.ts → ChevronIcon.d.ts} +5 -5
- package/lib/QueryBuilderV2/icons/ChevronIcon.js +49 -0
- package/lib/QueryBuilderV2/icons/ChevronIcon.js.map +1 -0
- package/lib/QueryBuilderV2/icons/ItemInfoIcon.d.ts +7 -6
- package/lib/QueryBuilderV2/icons/ItemInfoIcon.js +7 -4
- package/lib/QueryBuilderV2/icons/ItemInfoIcon.js.map +1 -1
- package/lib/QueryBuilderV2/icons/PrimaryKeyIcon.js +1 -1
- package/lib/QueryBuilderV2/icons/PrimaryKeyIcon.js.map +1 -1
- package/lib/QueryBuilderV2/types.d.ts +38 -4
- package/lib/QueryBuilderV2/utils/cube-sql-converter.d.ts +5 -5
- package/lib/QueryBuilderV2/utils/cube-sql-converter.js +48 -25
- package/lib/QueryBuilderV2/utils/cube-sql-converter.js.map +1 -1
- package/lib/QueryBuilderV2/utils/get-member-search-name.d.ts +3 -0
- package/lib/QueryBuilderV2/utils/get-member-search-name.js +11 -0
- package/lib/QueryBuilderV2/utils/get-member-search-name.js.map +1 -0
- package/lib/QueryBuilderV2/utils/get-query-hash.js +2 -29
- package/lib/QueryBuilderV2/utils/get-query-hash.js.map +1 -1
- package/lib/QueryBuilderV2/utils/get-type-icon.d.ts +1 -1
- package/lib/QueryBuilderV2/utils/get-type-icon.js +1 -1
- package/lib/QueryBuilderV2/utils/get-type-icon.js.map +1 -1
- package/lib/QueryBuilderV2/utils/get-used-cubes-and-members.d.ts +7 -1
- package/lib/QueryBuilderV2/utils/get-used-cubes-and-members.js +48 -8
- package/lib/QueryBuilderV2/utils/get-used-cubes-and-members.js.map +1 -1
- package/lib/QueryBuilderV2/utils/graphql-converters.js +9 -12
- package/lib/QueryBuilderV2/utils/graphql-converters.js.map +1 -1
- package/lib/QueryBuilderV2/utils/index.d.ts +2 -0
- package/lib/QueryBuilderV2/utils/index.js +2 -0
- package/lib/QueryBuilderV2/utils/index.js.map +1 -1
- package/lib/QueryBuilderV2/utils/validate-query.d.ts +2 -0
- package/lib/QueryBuilderV2/utils/validate-query.js +109 -0
- package/lib/QueryBuilderV2/utils/validate-query.js.map +1 -0
- package/lib/QueryBuilderV2/values.d.ts +2 -2
- package/lib/QueryBuilderV2/values.js +8 -7
- package/lib/QueryBuilderV2/values.js.map +1 -1
- package/lib/components/Header/Header.js +2 -2
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/PlaygroundQueryBuilder/QueryBuilderContainer.js +1 -2
- package/lib/components/PlaygroundQueryBuilder/QueryBuilderContainer.js.map +1 -1
- package/lib/components/QueryTabs/QueryTabs.d.ts +3 -0
- package/lib/components/QueryTabs/QueryTabs.js +29 -4
- package/lib/components/QueryTabs/QueryTabs.js.map +1 -1
- package/package.json +6 -5
- package/public/vizard/download/react-typescript-antd-table.zip +0 -0
- package/public/vizard/download/react-typescript-chartjs-area+bar+doughnut+line+pie.zip +0 -0
- package/lib/QueryBuilderV2/QueryBuilderDevSidePanel.d.ts +0 -1
- package/lib/QueryBuilderV2/QueryBuilderDevSidePanel.js +0 -203
- package/lib/QueryBuilderV2/QueryBuilderDevSidePanel.js.map +0 -1
- package/lib/QueryBuilderV2/components/DeleteFilterButton.d.ts +0 -122
- package/lib/QueryBuilderV2/components/DeleteFilterButton.js +0 -10
- package/lib/QueryBuilderV2/components/DeleteFilterButton.js.map +0 -1
- package/lib/QueryBuilderV2/components/MemberFilter.d.ts +0 -13
- package/lib/QueryBuilderV2/components/MemberFilter.js +0 -106
- package/lib/QueryBuilderV2/components/MemberFilter.js.map +0 -1
- package/lib/QueryBuilderV2/components/Panel.d.ts +0 -19
- package/lib/QueryBuilderV2/components/Panel.js +0 -88
- package/lib/QueryBuilderV2/components/Panel.js.map +0 -1
- package/lib/QueryBuilderV2/components/QueryVisualization.d.ts +0 -8
- package/lib/QueryBuilderV2/components/QueryVisualization.js +0 -85
- package/lib/QueryBuilderV2/components/QueryVisualization.js.map +0 -1
- package/lib/QueryBuilderV2/hooks/list-mode.d.ts +0 -3
- package/lib/QueryBuilderV2/hooks/list-mode.js +0 -9
- package/lib/QueryBuilderV2/hooks/list-mode.js.map +0 -1
- package/lib/QueryBuilderV2/icons/ArrowIcon.js +0 -30
- 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:
|
|
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;
|
|
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
|
-
|
|
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,
|
|
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,
|
|
7
|
-
const memberColorName =
|
|
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
|
|
13
|
+
}, children: getTypeIcon(type) }));
|
|
13
14
|
}
|
|
14
15
|
export function MemberLabel(props) {
|
|
15
|
-
const { name,
|
|
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
|
-
|
|
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":";
|
|
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: '.
|
|
7
|
-
preset:
|
|
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
|
-
|
|
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,
|
|
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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"}
|