@journeyapps-labs/reactor-mod-data-browser 3.0.2 → 3.1.1
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/CHANGELOG.md +45 -0
- package/dist/@types/actions/connections/SetConnectionColorAction.d.ts +11 -0
- package/dist/@types/actions/saved-queries/OpenSavedQueryAction.d.ts +10 -0
- package/dist/@types/actions/saved-queries/RemoveSavedQueryAction.d.ts +9 -0
- package/dist/@types/core/AbstractConnection.d.ts +2 -0
- package/dist/@types/core/SchemaModelDefinition.d.ts +5 -0
- package/dist/@types/core/connection-colors.d.ts +10 -0
- package/dist/@types/core/query/AbstractQuery.d.ts +1 -0
- package/dist/@types/core/query/StandardModelFields.d.ts +5 -0
- package/dist/@types/core/query/filters.d.ts +46 -5
- package/dist/@types/core/query/query-changed/ChangedModelQuery.d.ts +1 -0
- package/dist/@types/core/query/query-simple/SimplePage.d.ts +2 -0
- package/dist/@types/core/query/query-simple/SimpleQuery.d.ts +14 -4
- package/dist/@types/core/query/query-simple/SimpleQueryColumns.d.ts +12 -0
- package/dist/@types/core/query/query-simple/SimpleQueryFilterState.d.ts +37 -0
- package/dist/@types/core/query/query-simple/SimpleQueryPlanner.d.ts +4 -0
- package/dist/@types/core/query/query-simple/SimpleQuerySortState.d.ts +23 -0
- package/dist/@types/core/query/query-simple/SimpleQueryTypes.d.ts +24 -0
- package/dist/@types/core/query/widgets/ColumnDisplayWidget.d.ts +1 -0
- package/dist/@types/core/query/widgets/PeekRelationshipButton.d.ts +7 -0
- package/dist/@types/core/query/widgets/SmartColumnWidget.d.ts +3 -0
- package/dist/@types/core/query/widgets/SmartFilterWidget.d.ts +6 -0
- package/dist/@types/entities/ConnectionEntityDefinition.d.ts +2 -0
- package/dist/@types/entities/SavedQueryEntityDefinition.d.ts +8 -0
- package/dist/@types/entities.d.ts +2 -1
- package/dist/@types/forms/APIConnectionForm.d.ts +1 -0
- package/dist/@types/forms/TypeEngine.d.ts +3 -21
- package/dist/@types/forms/types/attachment-handler.d.ts +2 -0
- package/dist/@types/forms/types/boolean-handler.d.ts +2 -0
- package/dist/@types/forms/types/date-handler.d.ts +2 -0
- package/dist/@types/forms/types/filters/ClearableFilterFormDialogDirective.d.ts +10 -0
- package/dist/@types/forms/types/filters/ConditionalFilterForm.d.ts +23 -0
- package/dist/@types/forms/types/image-handler.d.ts +2 -0
- package/dist/@types/forms/types/location-handler.d.ts +2 -0
- package/dist/@types/forms/types/multiple-choice-handler.d.ts +2 -0
- package/dist/@types/forms/types/multiple-choice-integer-handler.d.ts +2 -0
- package/dist/@types/forms/types/number-handler.d.ts +2 -0
- package/dist/@types/forms/types/shared/type-handler.d.ts +37 -0
- package/dist/@types/forms/types/shared/ui.d.ts +768 -0
- package/dist/@types/forms/types/single-choice-handler.d.ts +2 -0
- package/dist/@types/forms/types/single-choice-integer-handler.d.ts +2 -0
- package/dist/@types/forms/types/text-handler.d.ts +3 -0
- package/dist/@types/index.d.ts +1 -0
- package/dist/@types/panels/_shared/SharedConnectionPanelFactory.d.ts +19 -0
- package/dist/@types/panels/_shared/SharedModelPanelFactory.d.ts +5 -2
- package/dist/@types/panels/query/QueryPanelFactory.d.ts +7 -2
- package/dist/@types/panels/query/TableControlsWidget.d.ts +2 -0
- package/dist/@types/panels/query/table-controls/ChangesControlsWidget.d.ts +8 -0
- package/dist/@types/panels/query/table-controls/FilterControlsWidget.d.ts +7 -0
- package/dist/@types/panels/query/table-controls/PageControlsWidget.d.ts +9 -0
- package/dist/@types/panels/query/table-controls/QueryControlsWidget.d.ts +11 -0
- package/dist/@types/panels/query/table-controls/SortChipWidget.d.ts +10 -0
- package/dist/@types/panels/query/table-controls/SortControlsWidget.d.ts +7 -0
- package/dist/@types/preferences/QueryControlPreferences.d.ts +7 -0
- package/dist/@types/stores/SavedQueryStore.d.ts +34 -0
- package/dist/@types/widgets/EmptyValueWidget.d.ts +7 -0
- package/dist/DataBrowserModule.js +21 -7
- package/dist/DataBrowserModule.js.map +1 -1
- package/dist/actions/connections/AddConnectionAction.js +2 -2
- package/dist/actions/connections/AddConnectionAction.js.map +1 -1
- package/dist/actions/connections/RemoveConnectionAction.js +2 -2
- package/dist/actions/connections/RemoveConnectionAction.js.map +1 -1
- package/dist/actions/connections/SetConnectionColorAction.js +63 -0
- package/dist/actions/connections/SetConnectionColorAction.js.map +1 -0
- package/dist/actions/saved-queries/OpenSavedQueryAction.js +58 -0
- package/dist/actions/saved-queries/OpenSavedQueryAction.js.map +1 -0
- package/dist/actions/saved-queries/RemoveSavedQueryAction.js +43 -0
- package/dist/actions/saved-queries/RemoveSavedQueryAction.js.map +1 -0
- package/dist/actions/schema-definitions/CreateModelAction.js +2 -2
- package/dist/actions/schema-definitions/CreateModelAction.js.map +1 -1
- package/dist/actions/schema-definitions/QuerySchemaModelAction.js +2 -2
- package/dist/actions/schema-definitions/QuerySchemaModelAction.js.map +1 -1
- package/dist/actions/schema-model/EditSchemaModelAction.js +2 -2
- package/dist/actions/schema-model/EditSchemaModelAction.js.map +1 -1
- package/dist/actions/schema-model/ViewSchemaModelAsJsonAction.js +2 -2
- package/dist/actions/schema-model/ViewSchemaModelAsJsonAction.js.map +1 -1
- package/dist/core/AbstractConnection.js +116 -90
- package/dist/core/AbstractConnection.js.map +1 -1
- package/dist/core/SchemaModelDefinition.js +14 -0
- package/dist/core/SchemaModelDefinition.js.map +1 -1
- package/dist/core/connection-colors.js +36 -0
- package/dist/core/connection-colors.js.map +1 -0
- package/dist/core/query/AbstractQuery.js.map +1 -1
- package/dist/core/query/StandardModelFields.js +10 -0
- package/dist/core/query/StandardModelFields.js.map +1 -0
- package/dist/core/query/filters.js +86 -4
- package/dist/core/query/filters.js.map +1 -1
- package/dist/core/query/query-changed/ChangedModelQuery.js +7 -0
- package/dist/core/query/query-changed/ChangedModelQuery.js.map +1 -1
- package/dist/core/query/query-simple/SimplePage.js +2 -4
- package/dist/core/query/query-simple/SimplePage.js.map +1 -1
- package/dist/core/query/query-simple/SimpleQuery.js +71 -69
- package/dist/core/query/query-simple/SimpleQuery.js.map +1 -1
- package/dist/core/query/query-simple/SimpleQueryColumns.js +88 -0
- package/dist/core/query/query-simple/SimpleQueryColumns.js.map +1 -0
- package/dist/core/query/query-simple/SimpleQueryFilterState.js +136 -0
- package/dist/core/query/query-simple/SimpleQueryFilterState.js.map +1 -0
- package/dist/core/query/query-simple/SimpleQueryPlanner.js +14 -0
- package/dist/core/query/query-simple/SimpleQueryPlanner.js.map +1 -0
- package/dist/core/query/query-simple/SimpleQuerySortState.js +140 -0
- package/dist/core/query/query-simple/SimpleQuerySortState.js.map +1 -0
- package/dist/core/query/query-simple/SimpleQueryTypes.js +44 -0
- package/dist/core/query/query-simple/SimpleQueryTypes.js.map +1 -0
- package/dist/core/query/widgets/BelongsToDisplayWidget.js +14 -7
- package/dist/core/query/widgets/BelongsToDisplayWidget.js.map +1 -1
- package/dist/core/query/widgets/CellDisplayWidget.js +5 -9
- package/dist/core/query/widgets/CellDisplayWidget.js.map +1 -1
- package/dist/core/query/widgets/ColumnDisplayWidget.js +13 -12
- package/dist/core/query/widgets/ColumnDisplayWidget.js.map +1 -1
- package/dist/core/query/widgets/PeekRelationshipButton.js +128 -0
- package/dist/core/query/widgets/PeekRelationshipButton.js.map +1 -0
- package/dist/core/query/widgets/SmartColumnWidget.js +18 -3
- package/dist/core/query/widgets/SmartColumnWidget.js.map +1 -1
- package/dist/core/query/widgets/SmartFilterWidget.js +88 -51
- package/dist/core/query/widgets/SmartFilterWidget.js.map +1 -1
- package/dist/entities/ConnectionEntityDefinition.js +33 -7
- package/dist/entities/ConnectionEntityDefinition.js.map +1 -1
- package/dist/entities/SavedQueryEntityDefinition.js +68 -0
- package/dist/entities/SavedQueryEntityDefinition.js.map +1 -0
- package/dist/entities/SchemaModelDefinitionEntityDefinition.js +9 -1
- package/dist/entities/SchemaModelDefinitionEntityDefinition.js.map +1 -1
- package/dist/entities.js +1 -0
- package/dist/entities.js.map +1 -1
- package/dist/forms/APIConnectionForm.js +11 -2
- package/dist/forms/APIConnectionForm.js.map +1 -1
- package/dist/forms/TypeEngine.js +30 -306
- package/dist/forms/TypeEngine.js.map +1 -1
- package/dist/forms/types/attachment-handler.js +29 -0
- package/dist/forms/types/attachment-handler.js.map +1 -0
- package/dist/forms/types/boolean-handler.js +22 -0
- package/dist/forms/types/boolean-handler.js.map +1 -0
- package/dist/forms/types/date-handler.js +97 -0
- package/dist/forms/types/date-handler.js.map +1 -0
- package/dist/forms/types/filters/ClearableFilterFormDialogDirective.js +25 -0
- package/dist/forms/types/filters/ClearableFilterFormDialogDirective.js.map +1 -0
- package/dist/forms/types/filters/ConditionalFilterForm.js +87 -0
- package/dist/forms/types/filters/ConditionalFilterForm.js.map +1 -0
- package/dist/forms/types/image-handler.js +82 -0
- package/dist/forms/types/image-handler.js.map +1 -0
- package/dist/forms/types/location-handler.js +49 -0
- package/dist/forms/types/location-handler.js.map +1 -0
- package/dist/forms/types/multiple-choice-handler.js +37 -0
- package/dist/forms/types/multiple-choice-handler.js.map +1 -0
- package/dist/forms/types/multiple-choice-integer-handler.js +37 -0
- package/dist/forms/types/multiple-choice-integer-handler.js.map +1 -0
- package/dist/forms/types/number-handler.js +79 -0
- package/dist/forms/types/number-handler.js.map +1 -0
- package/dist/forms/types/shared/type-handler.js +2 -0
- package/dist/forms/types/shared/type-handler.js.map +1 -0
- package/dist/forms/types/shared/ui.js +33 -0
- package/dist/forms/types/shared/ui.js.map +1 -0
- package/dist/forms/types/single-choice-handler.js +41 -0
- package/dist/forms/types/single-choice-handler.js.map +1 -0
- package/dist/forms/types/single-choice-integer-handler.js +41 -0
- package/dist/forms/types/single-choice-integer-handler.js.map +1 -0
- package/dist/forms/types/text-handler.js +170 -0
- package/dist/forms/types/text-handler.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/panels/_shared/SharedConnectionPanelFactory.js +48 -0
- package/dist/panels/_shared/SharedConnectionPanelFactory.js.map +1 -0
- package/dist/panels/_shared/SharedModelPanelFactory.js +7 -2
- package/dist/panels/_shared/SharedModelPanelFactory.js.map +1 -1
- package/dist/panels/query/PageResultsWidget.js +28 -11
- package/dist/panels/query/PageResultsWidget.js.map +1 -1
- package/dist/panels/query/QueryPanelFactory.js +20 -2
- package/dist/panels/query/QueryPanelFactory.js.map +1 -1
- package/dist/panels/query/QueryPanelWidget.js +55 -9
- package/dist/panels/query/QueryPanelWidget.js.map +1 -1
- package/dist/panels/query/TableControlsWidget.js +29 -67
- package/dist/panels/query/TableControlsWidget.js.map +1 -1
- package/dist/panels/query/table-controls/ChangesControlsWidget.js +36 -0
- package/dist/panels/query/table-controls/ChangesControlsWidget.js.map +1 -0
- package/dist/panels/query/table-controls/FilterControlsWidget.js +106 -0
- package/dist/panels/query/table-controls/FilterControlsWidget.js.map +1 -0
- package/dist/panels/query/table-controls/PageControlsWidget.js +65 -0
- package/dist/panels/query/table-controls/PageControlsWidget.js.map +1 -0
- package/dist/panels/query/table-controls/QueryControlsWidget.js +85 -0
- package/dist/panels/query/table-controls/QueryControlsWidget.js.map +1 -0
- package/dist/panels/query/table-controls/SortChipWidget.js +75 -0
- package/dist/panels/query/table-controls/SortChipWidget.js.map +1 -0
- package/dist/panels/query/table-controls/SortControlsWidget.js +65 -0
- package/dist/panels/query/table-controls/SortControlsWidget.js.map +1 -0
- package/dist/preferences/QueryControlPreferences.js +28 -0
- package/dist/preferences/QueryControlPreferences.js.map +1 -0
- package/dist/stores/ConnectionStore.js +2 -0
- package/dist/stores/ConnectionStore.js.map +1 -1
- package/dist/stores/SavedQueryStore.js +131 -0
- package/dist/stores/SavedQueryStore.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/widgets/EmptyValueWidget.js +15 -0
- package/dist/widgets/EmptyValueWidget.js.map +1 -0
- package/dist-module/bundle.js +181 -51
- package/dist-module/bundle.js.map +1 -1
- package/package.json +11 -11
- package/src/DataBrowserModule.ts +21 -7
- package/src/actions/connections/AddConnectionAction.tsx +2 -2
- package/src/actions/connections/RemoveConnectionAction.tsx +2 -2
- package/src/actions/connections/SetConnectionColorAction.ts +52 -0
- package/src/actions/saved-queries/OpenSavedQueryAction.ts +43 -0
- package/src/actions/saved-queries/RemoveSavedQueryAction.ts +27 -0
- package/src/actions/schema-definitions/CreateModelAction.ts +9 -2
- package/src/actions/schema-definitions/QuerySchemaModelAction.ts +9 -2
- package/src/actions/schema-model/EditSchemaModelAction.ts +9 -2
- package/src/actions/schema-model/ViewSchemaModelAsJsonAction.ts +9 -2
- package/src/core/AbstractConnection.ts +7 -1
- package/src/core/SchemaModelDefinition.ts +16 -0
- package/src/core/connection-colors.ts +49 -0
- package/src/core/query/AbstractQuery.ts +2 -0
- package/src/core/query/StandardModelFields.ts +9 -0
- package/src/core/query/filters.ts +121 -6
- package/src/core/query/query-changed/ChangedModelQuery.ts +8 -0
- package/src/core/query/query-simple/SimplePage.ts +4 -5
- package/src/core/query/query-simple/SimpleQuery.tsx +91 -87
- package/src/core/query/query-simple/SimpleQueryColumns.tsx +126 -0
- package/src/core/query/query-simple/SimpleQueryFilterState.ts +160 -0
- package/src/core/query/query-simple/SimpleQueryPlanner.ts +18 -0
- package/src/core/query/query-simple/SimpleQuerySortState.ts +133 -0
- package/src/core/query/query-simple/SimpleQueryTypes.ts +61 -0
- package/src/core/query/widgets/BelongsToDisplayWidget.tsx +19 -11
- package/src/core/query/widgets/CellDisplayWidget.tsx +5 -10
- package/src/core/query/widgets/ColumnDisplayWidget.tsx +24 -20
- package/src/core/query/widgets/PeekRelationshipButton.tsx +161 -0
- package/src/core/query/widgets/SmartColumnWidget.tsx +26 -4
- package/src/core/query/widgets/SmartFilterWidget.tsx +119 -69
- package/src/entities/ConnectionEntityDefinition.tsx +35 -4
- package/src/entities/SavedQueryEntityDefinition.ts +72 -0
- package/src/entities/SchemaModelDefinitionEntityDefinition.ts +11 -2
- package/src/entities.ts +2 -1
- package/src/forms/APIConnectionForm.tsx +15 -2
- package/src/forms/TypeEngine.tsx +35 -421
- package/src/forms/types/attachment-handler.tsx +35 -0
- package/src/forms/types/boolean-handler.tsx +28 -0
- package/src/forms/types/date-handler.tsx +125 -0
- package/src/forms/types/filters/ClearableFilterFormDialogDirective.ts +32 -0
- package/src/forms/types/filters/ConditionalFilterForm.tsx +109 -0
- package/src/forms/types/image-handler.tsx +90 -0
- package/src/forms/types/location-handler.tsx +53 -0
- package/src/forms/types/multiple-choice-handler.tsx +37 -0
- package/src/forms/types/multiple-choice-integer-handler.tsx +37 -0
- package/src/forms/types/number-handler.tsx +100 -0
- package/src/forms/types/shared/type-handler.ts +36 -0
- package/src/forms/types/shared/ui.tsx +40 -0
- package/src/forms/types/single-choice-handler.tsx +47 -0
- package/src/forms/types/single-choice-integer-handler.tsx +47 -0
- package/src/forms/types/text-handler.tsx +247 -0
- package/src/index.ts +1 -0
- package/src/panels/_shared/SharedConnectionPanelFactory.tsx +55 -0
- package/src/panels/_shared/SharedModelPanelFactory.tsx +8 -2
- package/src/panels/query/PageResultsWidget.tsx +40 -28
- package/src/panels/query/QueryPanelFactory.tsx +23 -2
- package/src/panels/query/QueryPanelWidget.tsx +64 -9
- package/src/panels/query/TableControlsWidget.tsx +42 -120
- package/src/panels/query/table-controls/ChangesControlsWidget.tsx +72 -0
- package/src/panels/query/table-controls/FilterControlsWidget.tsx +145 -0
- package/src/panels/query/table-controls/PageControlsWidget.tsx +97 -0
- package/src/panels/query/table-controls/QueryControlsWidget.tsx +127 -0
- package/src/panels/query/table-controls/SortChipWidget.tsx +119 -0
- package/src/panels/query/table-controls/SortControlsWidget.tsx +95 -0
- package/src/preferences/QueryControlPreferences.ts +34 -0
- package/src/stores/ConnectionStore.ts +2 -0
- package/src/stores/SavedQueryStore.ts +121 -0
- package/src/widgets/EmptyValueWidget.tsx +20 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { useEffect, useState } from 'react';
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
4
|
import styled from '@emotion/styled';
|
|
5
5
|
import { BorderLayoutWidget, LoadingPanelWidget } from '@journeyapps-labs/reactor-mod';
|
|
@@ -15,7 +15,14 @@ var S;
|
|
|
15
15
|
`;
|
|
16
16
|
})(S || (S = {}));
|
|
17
17
|
export const QueryPanelWidget = observer((props) => {
|
|
18
|
-
const [
|
|
18
|
+
const [displayPage, setDisplayPage] = useState(null);
|
|
19
|
+
const [loading, setLoading] = useState(false);
|
|
20
|
+
const displayPageRef = useRef(null);
|
|
21
|
+
const pendingDisposerRef = useRef(null);
|
|
22
|
+
const setVisiblePage = (page) => {
|
|
23
|
+
displayPageRef.current = page;
|
|
24
|
+
setDisplayPage(page);
|
|
25
|
+
};
|
|
19
26
|
useEffect(() => {
|
|
20
27
|
if (!props.model.query) {
|
|
21
28
|
return;
|
|
@@ -24,21 +31,60 @@ export const QueryPanelWidget = observer((props) => {
|
|
|
24
31
|
}, [props.model.query]);
|
|
25
32
|
useEffect(() => {
|
|
26
33
|
return autorun(() => {
|
|
34
|
+
var _a, _b;
|
|
27
35
|
if (props.model.query) {
|
|
28
|
-
|
|
36
|
+
const nextPage = props.model.query.getPage(props.model.current_page);
|
|
37
|
+
const currentPage = displayPageRef.current;
|
|
38
|
+
if (!currentPage) {
|
|
39
|
+
setVisiblePage(nextPage);
|
|
40
|
+
setLoading(!!(nextPage === null || nextPage === void 0 ? void 0 : nextPage.loading));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (nextPage === currentPage) {
|
|
44
|
+
setLoading(!!nextPage.loading);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (!nextPage.loading) {
|
|
48
|
+
(_a = pendingDisposerRef.current) === null || _a === void 0 ? void 0 : _a.call(pendingDisposerRef);
|
|
49
|
+
pendingDisposerRef.current = null;
|
|
50
|
+
setVisiblePage(nextPage);
|
|
51
|
+
setLoading(false);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
setLoading(true);
|
|
55
|
+
(_b = pendingDisposerRef.current) === null || _b === void 0 ? void 0 : _b.call(pendingDisposerRef);
|
|
56
|
+
pendingDisposerRef.current = autorun(() => {
|
|
57
|
+
var _a;
|
|
58
|
+
if (!nextPage.loading) {
|
|
59
|
+
(_a = pendingDisposerRef.current) === null || _a === void 0 ? void 0 : _a.call(pendingDisposerRef);
|
|
60
|
+
pendingDisposerRef.current = null;
|
|
61
|
+
setVisiblePage(nextPage);
|
|
62
|
+
setLoading(false);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
29
65
|
}
|
|
30
66
|
});
|
|
31
67
|
}, [props.model.query]);
|
|
32
|
-
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
return () => {
|
|
70
|
+
var _a;
|
|
71
|
+
(_a = pendingDisposerRef.current) === null || _a === void 0 ? void 0 : _a.call(pendingDisposerRef);
|
|
72
|
+
pendingDisposerRef.current = null;
|
|
73
|
+
};
|
|
74
|
+
}, []);
|
|
75
|
+
const activePage = displayPage || (props.model.query ? props.model.query.getPage(props.model.current_page) : null);
|
|
76
|
+
return (React.createElement(LoadingPanelWidget, { loading: !props.model.query || !activePage }, () => {
|
|
33
77
|
return (React.createElement(S.Container, null,
|
|
34
|
-
React.createElement(BorderLayoutWidget, { top: React.createElement(TableControlsWidget, { query: props.model.query, current_page:
|
|
35
|
-
|
|
78
|
+
React.createElement(BorderLayoutWidget, { top: React.createElement(TableControlsWidget, { query: props.model.query, current_page: activePage, loading: loading, onLoadSavedQuery: async (id) => {
|
|
79
|
+
await props.model.loadSavedQuery(id);
|
|
80
|
+
}, goToPage: (index) => {
|
|
36
81
|
props.model.current_page = index;
|
|
37
|
-
} }), bottom: React.createElement(TableControlsWidget, { query: props.model.query, current_page:
|
|
38
|
-
|
|
82
|
+
} }), bottom: React.createElement(TableControlsWidget, { query: props.model.query, current_page: activePage, loading: loading, onLoadSavedQuery: async (id) => {
|
|
83
|
+
await props.model.loadSavedQuery(id);
|
|
84
|
+
}, goToPage: (index) => {
|
|
39
85
|
props.model.current_page = index;
|
|
40
86
|
} }) },
|
|
41
|
-
React.createElement(PageResultsWidget, { query: props.model.query, page:
|
|
87
|
+
React.createElement(PageResultsWidget, { query: props.model.query, page: activePage }))));
|
|
42
88
|
}));
|
|
43
89
|
});
|
|
44
90
|
//# sourceMappingURL=QueryPanelWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryPanelWidget.js","sourceRoot":"","sources":["../../../src/panels/query/QueryPanelWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryPanelWidget.js","sourceRoot":"","sources":["../../../src/panels/query/QueryPanelWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,85 +1,47 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { IconWidget, ioc, PrefsStore, styled } from '@journeyapps-labs/reactor-mod';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
4
|
import * as _ from 'lodash';
|
|
5
|
-
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
6
|
-
import { SimplePage } from '../../core/query/query-simple/SimplePage';
|
|
7
|
-
import { QueryPanelModel } from './QueryPanelFactory';
|
|
8
|
-
import { ChangedModelQuery } from '../../core/query/query-changed/ChangedModelQuery';
|
|
9
5
|
import { SimpleQuery } from '../../core/query/query-simple/SimpleQuery';
|
|
6
|
+
import { SavedQueryStore } from '../../stores/SavedQueryStore';
|
|
7
|
+
import { PageControlsWidget } from './table-controls/PageControlsWidget';
|
|
8
|
+
import { QueryControlsWidget } from './table-controls/QueryControlsWidget';
|
|
9
|
+
import { SortControlsWidget } from './table-controls/SortControlsWidget';
|
|
10
|
+
import { ChangesControlsWidget } from './table-controls/ChangesControlsWidget';
|
|
11
|
+
import { FilterControlsWidget } from './table-controls/FilterControlsWidget';
|
|
12
|
+
import { QueryControlPreferences } from '../../preferences/QueryControlPreferences';
|
|
10
13
|
export const TableControlsWidget = observer((props) => {
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
+
const prefsStore = ioc.get(PrefsStore);
|
|
15
|
+
const simpleQuery = props.query instanceof SimpleQuery ? props.query : null;
|
|
16
|
+
const savedQueries = simpleQuery ? ioc.get(SavedQueryStore).getSavedForQuery(simpleQuery) : [];
|
|
17
|
+
const activeSavedQuery = simpleQuery &&
|
|
18
|
+
(savedQueries.find((saved) => {
|
|
19
|
+
return _.isEqual(saved.query, simpleQuery.serialize());
|
|
20
|
+
}) ||
|
|
21
|
+
null);
|
|
22
|
+
const showSortControls = prefsStore.getPreference(QueryControlPreferences.SHOW_SORT_CONTROLS).checked;
|
|
23
|
+
const showFilterControls = prefsStore.getPreference(QueryControlPreferences.SHOW_FILTER_CONTROLS).checked;
|
|
14
24
|
return (React.createElement(S.Container, { className: props.className },
|
|
15
|
-
React.createElement(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
React.createElement(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
React.createElement(S.PageSelector, null,
|
|
22
|
-
React.createElement(PanelDropdownWidget, { onChange: ({ key }) => {
|
|
23
|
-
props.goToPage(parseInt(key));
|
|
24
|
-
}, selected: `${props.current_page.index}`, items: _.range(0, props.query.totalPages).map((r) => {
|
|
25
|
-
return {
|
|
26
|
-
title: `${r + 1}`,
|
|
27
|
-
key: `${r}`
|
|
28
|
-
};
|
|
29
|
-
}) }),
|
|
30
|
-
React.createElement(S.TotalPages, null,
|
|
31
|
-
"/ ",
|
|
32
|
-
props.query.totalPages)),
|
|
33
|
-
props.current_page instanceof SimplePage ? (React.createElement(PanelButtonWidget, { label: "Page", tooltip: "Reload page", icon: "refresh", action: async () => {
|
|
34
|
-
await props.current_page.load();
|
|
35
|
-
} })) : null,
|
|
36
|
-
React.createElement(PanelButtonWidget, { tooltip: "Reload Query", icon: "refresh", action: async (event, loading) => {
|
|
37
|
-
await props.query.load();
|
|
38
|
-
} }),
|
|
39
|
-
dirtyObjects.length > 0 ? (React.createElement(React.Fragment, null,
|
|
40
|
-
React.createElement(PanelButtonWidget, { label: `Save all [${dirtyObjects.length}]`, icon: "save", iconColor: _theme.status.success, action: async (event, loading) => {
|
|
41
|
-
props.query.batchSave();
|
|
42
|
-
} }),
|
|
43
|
-
React.createElement("span", Object.assign({}, setupTooltipProps({
|
|
44
|
-
tooltip: 'Discard all edits',
|
|
45
|
-
tooltipPos: TooltipPosition.RIGHT
|
|
46
|
-
})),
|
|
47
|
-
React.createElement(S.RevertButton, { icon: "arrow-rotate-back", onClick: () => {
|
|
48
|
-
props.current_page.reset();
|
|
49
|
-
} })),
|
|
50
|
-
props.query instanceof SimpleQuery ? (React.createElement("span", Object.assign({}, setupTooltipProps({
|
|
51
|
-
tooltip: 'View changed models',
|
|
52
|
-
tooltipPos: TooltipPosition.RIGHT
|
|
53
|
-
})),
|
|
54
|
-
React.createElement(S.RevertButton, { icon: "eye", onClick: () => {
|
|
55
|
-
ioc
|
|
56
|
-
.get(WorkspaceStore)
|
|
57
|
-
.addModel(new QueryPanelModel(new ChangedModelQuery(props.query)));
|
|
58
|
-
} }))) : null)) : null));
|
|
25
|
+
React.createElement(PageControlsWidget, { query: props.query, currentPage: props.current_page, goToPage: props.goToPage }),
|
|
26
|
+
React.createElement(QueryControlsWidget, { query: props.query, simpleQuery: simpleQuery, activeSavedQueryName: (activeSavedQuery === null || activeSavedQuery === void 0 ? void 0 : activeSavedQuery.name) || null, onLoadSavedQuery: props.onLoadSavedQuery }),
|
|
27
|
+
simpleQuery && showFilterControls ? (React.createElement(FilterControlsWidget, { simpleQuery: simpleQuery, goToPage: props.goToPage })) : null,
|
|
28
|
+
simpleQuery && showSortControls ? (React.createElement(SortControlsWidget, { simpleQuery: simpleQuery, goToPage: props.goToPage })) : null,
|
|
29
|
+
React.createElement(ChangesControlsWidget, { query: props.query, currentPage: props.current_page }),
|
|
30
|
+
props.loading ? React.createElement(S.Loading, { icon: "spinner", spin: true }) : null));
|
|
59
31
|
});
|
|
60
32
|
var S;
|
|
61
33
|
(function (S) {
|
|
62
34
|
S.Container = styled.div `
|
|
63
35
|
display: flex;
|
|
64
36
|
flex-direction: row;
|
|
65
|
-
column-gap:
|
|
37
|
+
column-gap: 20px;
|
|
38
|
+
row-gap: 20px;
|
|
66
39
|
padding: 5px 5px;
|
|
67
40
|
align-items: center;
|
|
41
|
+
flex-wrap: wrap;
|
|
68
42
|
`;
|
|
69
|
-
S.
|
|
70
|
-
|
|
71
|
-
flex-direction: row;
|
|
72
|
-
align-items: center;
|
|
73
|
-
`;
|
|
74
|
-
S.TotalPages = styled.div `
|
|
75
|
-
color: ${(p) => p.theme.text.primary};
|
|
76
|
-
padding-left: 5px;
|
|
77
|
-
`;
|
|
78
|
-
S.RevertButton = styled(FontAwesomeIcon) `
|
|
79
|
-
color: ${(p) => p.theme.status.success};
|
|
80
|
-
font-size: 12px;
|
|
81
|
-
padding: 5px;
|
|
82
|
-
cursor: pointer;
|
|
43
|
+
S.Loading = styled(IconWidget) `
|
|
44
|
+
color: ${(p) => p.theme.button.icon};
|
|
83
45
|
`;
|
|
84
46
|
})(S || (S = {}));
|
|
85
47
|
//# sourceMappingURL=TableControlsWidget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableControlsWidget.js","sourceRoot":"","sources":["../../../src/panels/query/TableControlsWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"TableControlsWidget.js","sourceRoot":"","sources":["../../../src/panels/query/TableControlsWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { InputContainerWidget, ioc, PanelButtonWidget, styled, theme, ThemeStore, WorkspaceStore } from '@journeyapps-labs/reactor-mod';
|
|
3
|
+
import { ChangedModelQuery } from '../../../core/query/query-changed/ChangedModelQuery';
|
|
4
|
+
import { SimpleQuery } from '../../../core/query/query-simple/SimpleQuery';
|
|
5
|
+
import { QueryPanelModel } from '../QueryPanelFactory';
|
|
6
|
+
import { observer } from 'mobx-react';
|
|
7
|
+
export const ChangesControlsWidget = observer((props) => {
|
|
8
|
+
const _theme = ioc.get(ThemeStore).getCurrentTheme(theme);
|
|
9
|
+
const dirtyObjects = props.query.getDirtyObjects();
|
|
10
|
+
if (dirtyObjects.length === 0) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return (React.createElement(InputContainerWidget, { label: "Changes" },
|
|
14
|
+
React.createElement(S.Group, null,
|
|
15
|
+
React.createElement(PanelButtonWidget, { label: `Save all [${dirtyObjects.length}]`, icon: "save", iconColor: _theme.status.success, action: async () => {
|
|
16
|
+
props.query.batchSave();
|
|
17
|
+
} }),
|
|
18
|
+
React.createElement(PanelButtonWidget, { tooltip: "Discard all edits", icon: "arrow-rotate-back", action: () => {
|
|
19
|
+
props.currentPage.reset();
|
|
20
|
+
} }),
|
|
21
|
+
props.query instanceof SimpleQuery ? (React.createElement(PanelButtonWidget, { tooltip: "View changed models", icon: "eye", action: () => {
|
|
22
|
+
ioc.get(WorkspaceStore).addModel(new QueryPanelModel(new ChangedModelQuery(props.query)));
|
|
23
|
+
} })) : null)));
|
|
24
|
+
});
|
|
25
|
+
var S;
|
|
26
|
+
(function (S) {
|
|
27
|
+
S.Group = styled.div `
|
|
28
|
+
display: flex;
|
|
29
|
+
flex-direction: row;
|
|
30
|
+
align-items: center;
|
|
31
|
+
column-gap: 5px;
|
|
32
|
+
row-gap: 5px;
|
|
33
|
+
flex-wrap: wrap;
|
|
34
|
+
`;
|
|
35
|
+
})(S || (S = {}));
|
|
36
|
+
//# sourceMappingURL=ChangesControlsWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangesControlsWidget.js","sourceRoot":"","sources":["../../../../src/panels/query/table-controls/ChangesControlsWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,GAAG,EACH,iBAAiB,EACjB,MAAM,EACN,KAAK,EACL,UAAU,EACV,cAAc,EACf,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOtC,MAAM,CAAC,MAAM,qBAAqB,GAAyC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;IAC5F,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;IAEnD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,oBAAC,oBAAoB,IAAC,KAAK,EAAC,SAAS;QACnC,oBAAC,CAAC,CAAC,KAAK;YACN,oBAAC,iBAAiB,IAChB,KAAK,EAAE,aAAa,YAAY,CAAC,MAAM,GAAG,EAC1C,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAChC,MAAM,EAAE,KAAK,IAAI,EAAE;oBACjB,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC1B,CAAC,GACD;YACF,oBAAC,iBAAiB,IAChB,OAAO,EAAC,mBAAmB,EAC3B,IAAI,EAAC,mBAAmB,EACxB,MAAM,EAAE,GAAG,EAAE;oBACX,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;gBAC5B,CAAC,GACD;YACD,KAAK,CAAC,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,CACpC,oBAAC,iBAAiB,IAChB,OAAO,EAAC,qBAAqB,EAC7B,IAAI,EAAC,KAAK,EACV,MAAM,EAAE,GAAG,EAAE;oBACX,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,KAAoB,CAAC,CAAC,CAAC,CAAC;gBAC3G,CAAC,GACD,CACH,CAAC,CAAC,CAAC,IAAI,CACA,CACW,CACxB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAU,CAAC,CASV;AATD,WAAU,CAAC;IACI,OAAK,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;GAO9B,CAAC;AACJ,CAAC,EATS,CAAC,KAAD,CAAC,QASV"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ComboBoxStore2, InputContainerWidget, PanelButtonMode, PanelButtonWidget, SimpleComboBoxDirective, ioc, styled } from '@journeyapps-labs/reactor-mod';
|
|
3
|
+
import { SmartFilterMetadataWidget } from '../../../core/query/widgets/SmartFilterWidget';
|
|
4
|
+
export const FilterControlsWidget = (props) => {
|
|
5
|
+
const showAddFilterMenu = async (event) => {
|
|
6
|
+
const fields = props.simpleQuery.filterState.getFilterableFields();
|
|
7
|
+
if (fields.length === 0) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const directive = await ioc.get(ComboBoxStore2).show(new SimpleComboBoxDirective({
|
|
11
|
+
title: 'Add filter',
|
|
12
|
+
event: event,
|
|
13
|
+
items: fields.map((field) => {
|
|
14
|
+
return {
|
|
15
|
+
key: field.key,
|
|
16
|
+
title: field.label,
|
|
17
|
+
action: async () => {
|
|
18
|
+
var _a;
|
|
19
|
+
await props.simpleQuery.filterState.setupFilterForField(field.key, event.nativeEvent);
|
|
20
|
+
(_a = props.goToPage) === null || _a === void 0 ? void 0 : _a.call(props, 0);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
})
|
|
24
|
+
}));
|
|
25
|
+
directive.getSelectedItem();
|
|
26
|
+
};
|
|
27
|
+
const filters = props.simpleQuery.filterState.getActiveFilters();
|
|
28
|
+
return (React.createElement(InputContainerWidget, { label: "Filters" },
|
|
29
|
+
React.createElement(S.Group, null,
|
|
30
|
+
React.createElement(PanelButtonWidget, { icon: "plus", tooltip: "Add filter", action: async (event) => {
|
|
31
|
+
await showAddFilterMenu(event);
|
|
32
|
+
} }),
|
|
33
|
+
filters.map((entry) => {
|
|
34
|
+
const key = entry.variable.name;
|
|
35
|
+
const label = entry.variable.label || entry.variable.name;
|
|
36
|
+
return (React.createElement(S.FilterItem, { key: key, onContextMenu: async (event) => {
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
event.stopPropagation();
|
|
39
|
+
const directive = await ioc.get(ComboBoxStore2).show(new SimpleComboBoxDirective({
|
|
40
|
+
title: label,
|
|
41
|
+
event: event,
|
|
42
|
+
items: [
|
|
43
|
+
{
|
|
44
|
+
key: 'edit',
|
|
45
|
+
title: 'Edit filter',
|
|
46
|
+
icon: 'pencil',
|
|
47
|
+
action: async () => {
|
|
48
|
+
var _a;
|
|
49
|
+
await props.simpleQuery.filterState.setupFilterForField(key, event.nativeEvent);
|
|
50
|
+
(_a = props.goToPage) === null || _a === void 0 ? void 0 : _a.call(props, 0);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
key: 'clear',
|
|
55
|
+
title: 'Clear filter',
|
|
56
|
+
icon: 'trash',
|
|
57
|
+
action: async () => {
|
|
58
|
+
var _a;
|
|
59
|
+
entry.filter.delete();
|
|
60
|
+
(_a = props.goToPage) === null || _a === void 0 ? void 0 : _a.call(props, 0);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}));
|
|
65
|
+
directive.getSelectedItem();
|
|
66
|
+
} },
|
|
67
|
+
React.createElement(S.FilterLabel, null, label),
|
|
68
|
+
React.createElement(SmartFilterMetadataWidget, { filter: entry.filter, variable: entry.filter.variable }),
|
|
69
|
+
React.createElement(S.CloseButton, { mode: PanelButtonMode.LINK, icon: "close", tooltip: `Clear ${label} filter`, action: async () => {
|
|
70
|
+
var _a;
|
|
71
|
+
entry.filter.delete();
|
|
72
|
+
(_a = props.goToPage) === null || _a === void 0 ? void 0 : _a.call(props, 0);
|
|
73
|
+
} })));
|
|
74
|
+
}))));
|
|
75
|
+
};
|
|
76
|
+
var S;
|
|
77
|
+
(function (S) {
|
|
78
|
+
S.Group = styled.div `
|
|
79
|
+
display: flex;
|
|
80
|
+
flex-direction: row;
|
|
81
|
+
align-items: center;
|
|
82
|
+
column-gap: 5px;
|
|
83
|
+
row-gap: 5px;
|
|
84
|
+
flex-wrap: wrap;
|
|
85
|
+
`;
|
|
86
|
+
S.FilterItem = styled.div `
|
|
87
|
+
display: flex;
|
|
88
|
+
flex-direction: row;
|
|
89
|
+
align-items: center;
|
|
90
|
+
border-radius: 4px;
|
|
91
|
+
padding: 1px 3px;
|
|
92
|
+
|
|
93
|
+
&:hover {
|
|
94
|
+
background: ${(p) => p.theme.forms.groupBorder};
|
|
95
|
+
}
|
|
96
|
+
`;
|
|
97
|
+
S.CloseButton = styled(PanelButtonWidget) `
|
|
98
|
+
padding: 2px;
|
|
99
|
+
`;
|
|
100
|
+
S.FilterLabel = styled.div `
|
|
101
|
+
font-size: 12px;
|
|
102
|
+
color: ${(p) => p.theme.text.secondary};
|
|
103
|
+
padding-right: 4px;
|
|
104
|
+
`;
|
|
105
|
+
})(S || (S = {}));
|
|
106
|
+
//# sourceMappingURL=FilterControlsWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterControlsWidget.js","sourceRoot":"","sources":["../../../../src/panels/query/table-controls/FilterControlsWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { IconWidget, InputContainerWidget, PanelButtonWidget, PanelDropdownWidget, styled } from '@journeyapps-labs/reactor-mod';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
export const PageControlsWidget = observer((props) => {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const hasCurrentPage = !!props.currentPage;
|
|
8
|
+
const currentPageIndex = (_b = (_a = props.currentPage) === null || _a === void 0 ? void 0 : _a.index) !== null && _b !== void 0 ? _b : 0;
|
|
9
|
+
return (React.createElement(InputContainerWidget, { label: "Page" },
|
|
10
|
+
React.createElement(S.Group, null,
|
|
11
|
+
React.createElement(PanelButtonWidget, { disabled: !hasCurrentPage || currentPageIndex === 0, label: "Prev", action: () => {
|
|
12
|
+
var _a;
|
|
13
|
+
if (!hasCurrentPage) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
(_a = props.goToPage) === null || _a === void 0 ? void 0 : _a.call(props, currentPageIndex - 1);
|
|
17
|
+
} }),
|
|
18
|
+
React.createElement(PanelButtonWidget, { disabled: !hasCurrentPage || props.query.totalPages === currentPageIndex + 1, label: "Next", action: () => {
|
|
19
|
+
var _a;
|
|
20
|
+
if (!hasCurrentPage) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
(_a = props.goToPage) === null || _a === void 0 ? void 0 : _a.call(props, currentPageIndex + 1);
|
|
24
|
+
} }),
|
|
25
|
+
React.createElement(S.PageSelector, null,
|
|
26
|
+
React.createElement(PanelDropdownWidget, { onChange: ({ key }) => {
|
|
27
|
+
var _a;
|
|
28
|
+
(_a = props.goToPage) === null || _a === void 0 ? void 0 : _a.call(props, parseInt(key));
|
|
29
|
+
}, selected: `${currentPageIndex}`, items: _.range(0, props.query.totalPages).map((r) => {
|
|
30
|
+
return {
|
|
31
|
+
title: `${r + 1}`,
|
|
32
|
+
key: `${r}`
|
|
33
|
+
};
|
|
34
|
+
}) }),
|
|
35
|
+
React.createElement(S.TotalPages, null,
|
|
36
|
+
"/ ",
|
|
37
|
+
props.query.totalPages === 0 ? React.createElement(S.Spinner, { icon: "spinner", spin: true }) : props.query.totalPages)))));
|
|
38
|
+
});
|
|
39
|
+
var S;
|
|
40
|
+
(function (S) {
|
|
41
|
+
S.Group = styled.div `
|
|
42
|
+
display: flex;
|
|
43
|
+
flex-direction: row;
|
|
44
|
+
align-items: center;
|
|
45
|
+
column-gap: 5px;
|
|
46
|
+
row-gap: 5px;
|
|
47
|
+
flex-wrap: wrap;
|
|
48
|
+
`;
|
|
49
|
+
S.PageSelector = styled.div `
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-direction: row;
|
|
52
|
+
align-items: center;
|
|
53
|
+
`;
|
|
54
|
+
S.TotalPages = styled.div `
|
|
55
|
+
color: ${(p) => p.theme.text.primary};
|
|
56
|
+
padding-left: 5px;
|
|
57
|
+
display: flex;
|
|
58
|
+
flex-direction: row;
|
|
59
|
+
align-items: center;
|
|
60
|
+
`;
|
|
61
|
+
S.Spinner = styled(IconWidget) `
|
|
62
|
+
color: ${(p) => p.theme.text.secondary};
|
|
63
|
+
`;
|
|
64
|
+
})(S || (S = {}));
|
|
65
|
+
//# sourceMappingURL=PageControlsWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageControlsWidget.js","sourceRoot":"","sources":["../../../../src/panels/query/table-controls/PageControlsWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ComboBoxStore2, DialogStore, InputContainerWidget, ioc, PanelButtonWidget, SimpleComboBoxDirective, styled } from '@journeyapps-labs/reactor-mod';
|
|
3
|
+
import { SavedQueryStore } from '../../../stores/SavedQueryStore';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
export const QueryControlsWidget = observer((props) => {
|
|
6
|
+
const savedQueryStore = ioc.get(SavedQueryStore);
|
|
7
|
+
const savedQueries = props.simpleQuery ? savedQueryStore.getSavedForQuery(props.simpleQuery) : [];
|
|
8
|
+
const showSavedQueryMenu = async (event) => {
|
|
9
|
+
if (!props.simpleQuery) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const queryChildren = savedQueries.length > 0
|
|
13
|
+
? savedQueries.map((saved) => {
|
|
14
|
+
return {
|
|
15
|
+
title: saved.name,
|
|
16
|
+
key: `query-${saved.id}`,
|
|
17
|
+
icon: 'search',
|
|
18
|
+
action: async () => {
|
|
19
|
+
var _a;
|
|
20
|
+
await ((_a = props.onLoadSavedQuery) === null || _a === void 0 ? void 0 : _a.call(props, saved.id));
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
})
|
|
24
|
+
: [{ title: 'No saved queries', key: 'no-queries', disabled: true }];
|
|
25
|
+
const deleteChildren = savedQueries.length > 0
|
|
26
|
+
? savedQueries.map((saved) => {
|
|
27
|
+
return {
|
|
28
|
+
title: saved.name,
|
|
29
|
+
key: `delete-${saved.id}`,
|
|
30
|
+
icon: 'trash',
|
|
31
|
+
action: async () => {
|
|
32
|
+
await savedQueryStore.removeSavedQuery(saved.id);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
})
|
|
36
|
+
: [{ title: 'No saved queries', key: 'no-delete-queries', disabled: true }];
|
|
37
|
+
const directive = await ioc.get(ComboBoxStore2).show(new SimpleComboBoxDirective({
|
|
38
|
+
title: 'Saved queries',
|
|
39
|
+
event: event,
|
|
40
|
+
items: [
|
|
41
|
+
{
|
|
42
|
+
title: 'Save query',
|
|
43
|
+
key: 'save-query',
|
|
44
|
+
icon: 'bookmark',
|
|
45
|
+
action: async () => {
|
|
46
|
+
const suggestedName = `${props.simpleQuery.options.definition.definition.label} query`;
|
|
47
|
+
const name = await ioc.get(DialogStore).showInputDialog({
|
|
48
|
+
title: 'Save query',
|
|
49
|
+
initialValue: suggestedName
|
|
50
|
+
});
|
|
51
|
+
if (!name) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
await savedQueryStore.saveQuery(name, props.simpleQuery);
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{ title: 'Queries', key: 'queries', icon: 'list', children: queryChildren },
|
|
58
|
+
{ title: 'Delete query', key: 'delete-query', icon: 'trash', children: deleteChildren }
|
|
59
|
+
]
|
|
60
|
+
}));
|
|
61
|
+
directive.getSelectedItem();
|
|
62
|
+
};
|
|
63
|
+
return (React.createElement(InputContainerWidget, { label: "Query" },
|
|
64
|
+
React.createElement(S.Group, null,
|
|
65
|
+
React.createElement(PanelButtonWidget, { tooltip: "Reload query", icon: "refresh", action: async () => {
|
|
66
|
+
await props.query.load();
|
|
67
|
+
} }),
|
|
68
|
+
props.simpleQuery ? (React.createElement(PanelButtonWidget, { tooltip: props.activeSavedQueryName
|
|
69
|
+
? `Saved query active: ${props.activeSavedQueryName}`
|
|
70
|
+
: 'Unsaved or modified query', icon: "bookmark", highlight: !!props.activeSavedQueryName, action: async (event) => {
|
|
71
|
+
await showSavedQueryMenu(event);
|
|
72
|
+
} })) : null)));
|
|
73
|
+
});
|
|
74
|
+
var S;
|
|
75
|
+
(function (S) {
|
|
76
|
+
S.Group = styled.div `
|
|
77
|
+
display: flex;
|
|
78
|
+
flex-direction: row;
|
|
79
|
+
align-items: center;
|
|
80
|
+
column-gap: 5px;
|
|
81
|
+
row-gap: 5px;
|
|
82
|
+
flex-wrap: wrap;
|
|
83
|
+
`;
|
|
84
|
+
})(S || (S = {}));
|
|
85
|
+
//# sourceMappingURL=QueryControlsWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryControlsWidget.js","sourceRoot":"","sources":["../../../../src/panels/query/table-controls/QueryControlsWidget.tsx"],"names":[],"mappings":"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"}
|