Skip to content
Snippets Groups Projects
Unverified Commit 095ca018 authored by Alexander Polyankin's avatar Alexander Polyankin Committed by GitHub
Browse files

Remove flow from modes (#19216)

parent c7511274
No related branches found
No related tags found
No related merge requests found
Showing
with 38 additions and 143 deletions
......@@ -30,8 +30,6 @@ import _ from "underscore";
// schema: normalizr schema, defaults to `new schema.Entity(entity.name)`
//
// FIXME
export function createEntity(def) {
const entity = { ...def };
......
import { parseTimestamp } from "metabase/lib/time";
// moment.js format strings
const DEFAULT_DATE_FORMATS = {
year: "YYYY",
quarter: "[Q]Q - YYYY",
......
/* eslint-disable react/prop-types */
import React, { Component } from "react";
import { t } from "ttag";
import DatePicker from "metabase/query_builder/components/filters/pickers/DatePicker";
......@@ -17,42 +18,18 @@ import {
import cx from "classnames";
import _ from "underscore";
import type {
Card as CardObject,
StructuredDatasetQuery,
} from "metabase-types/types/Card";
import type { FieldFilter } from "metabase-types/types/Query";
type Props = {
className?: string,
card: CardObject,
setDatasetQuery: (
datasetQuery: StructuredDatasetQuery,
options: { run: boolean },
) => void,
};
type State = {
filterIndex: number,
filter: FieldFilter,
currentFilter: any,
};
export default class TimeseriesFilterWidget extends Component {
props: Props;
state: State = {
state = {
filter: null,
filterIndex: -1,
currentFilter: null,
};
_popover: ?any;
UNSAFE_componentWillMount() {
this.UNSAFE_componentWillReceiveProps(this.props);
}
UNSAFE_componentWillReceiveProps(nextProps: Props) {
UNSAFE_componentWillReceiveProps(nextProps) {
const query = Card.getQuery(nextProps.card);
if (query) {
const breakouts = Query.getBreakouts(query);
......@@ -131,7 +108,7 @@ export default class TimeseriesFilterWidget extends Component {
} else {
query = Query.addFilter(query, filter);
}
const datasetQuery: StructuredDatasetQuery = {
const datasetQuery = {
...card.dataset_query,
query,
};
......
......@@ -22,7 +22,7 @@ export default class TimeseriesGroupingWidget extends Component {
query: PropTypes.object.isRequired,
};
_popover: ?any;
_popover;
render() {
const { query } = this.props;
......
/* eslint-disable react/prop-types */
import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery";
import { t } from "ttag";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
import { isExpressionField } from "metabase/lib/query/field_ref";
import MetabaseSettings from "metabase/lib/settings";
export default ({ question, clicked }: ClickActionProps): ClickAction[] => {
export default ({ question, clicked }) => {
const query = question.query();
if (!(query instanceof StructuredQuery)) {
return [];
......
/* eslint-disable react/prop-types */
import React from "react";
import { t } from "ttag";
......@@ -6,16 +7,7 @@ import Filter from "metabase-lib/lib/queries/structured/Filter";
import FilterPopover from "metabase/query_builder/components/filters/FilterPopover";
import type {
ClickAction,
ClickActionProps,
ClickActionPopoverProps,
} from "metabase-types/types/Visualization";
export default function QuickFilterDrill({
question,
clicked,
}: ClickActionProps): ClickAction[] {
export default function QuickFilterDrill({ question, clicked }) {
const query = question.query();
if (
!(query instanceof StructuredQuery) ||
......@@ -42,7 +34,7 @@ export default function QuickFilterDrill({
buttonType: "horizontal",
icon: "filter",
// eslint-disable-next-line react/display-name
popover: ({ onChangeCardAndRun, onClose }: ClickActionPopoverProps) => (
popover: ({ onChangeCardAndRun, onClose }) => (
<FilterPopover
query={query}
filter={initialFilter}
......
/* eslint-disable react/prop-types */
import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery";
import { t } from "ttag";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
import { isExpressionField } from "metabase/lib/query/field_ref";
import MetabaseSettings from "metabase/lib/settings";
export default ({ question, clicked }: ClickActionProps): ClickAction[] => {
export default ({ question, clicked }) => {
const query = question.query();
if (!(query instanceof StructuredQuery)) {
return [];
......
/* eslint-disable react/prop-types */
import { getIn } from "icepick";
import _ from "underscore";
......@@ -10,12 +11,7 @@ import {
} from "metabase/lib/click-behavior";
import { renderLinkURLForClick } from "metabase/lib/formatting/link";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
export default ({ question, clicked }: ClickActionProps): ClickAction[] => {
export default ({ question, clicked }) => {
const settings = (clicked && clicked.settings) || {};
const columnSettings =
(clicked &&
......
/* eslint-disable react/prop-types */
import { t } from "ttag";
import { TYPE, isa } from "metabase/lib/types";
import _ from "underscore";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
const DENYLIST_TYPES = [
TYPE.PK,
TYPE.SerializedJSON,
......@@ -14,7 +10,7 @@ const DENYLIST_TYPES = [
TYPE.Comment,
];
export default ({ question, clicked }: ClickActionProps): ClickAction[] => {
export default ({ question, clicked }) => {
if (
!clicked ||
!clicked.column ||
......
/* eslint-disable react/prop-types */
import { t } from "ttag";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
// NOTE: cyclical dependency
// import { showChartSettings } from "metabase/query_builder/actions";
......@@ -12,7 +9,7 @@ function showChartSettings(...args) {
import { keyForColumn } from "metabase/lib/dataset";
export default ({ question, clicked }: ClickActionProps): ClickAction[] => {
export default ({ question, clicked }) => {
if (!clicked || clicked.value !== undefined || !clicked.column) {
return [];
}
......
/* eslint-disable react/prop-types */
import { isFK, isPK } from "metabase/lib/schema_metadata";
import { t } from "ttag";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
export default ({ question, clicked }: ClickActionProps): ClickAction[] => {
export default ({ question, clicked }) => {
if (
!clicked ||
!clicked.column ||
......
/* eslint-disable react/prop-types */
import React from "react";
import { jt } from "ttag";
import BreakoutPopover from "metabase/query_builder/components/BreakoutPopover";
import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery";
import type { Field } from "metabase-types/types/Field";
import type {
ClickAction,
ClickActionProps,
ClickActionPopoverProps,
} from "metabase-types/types/Visualization";
type FieldFilter = (field: Field) => boolean;
// PivotByDrill displays a breakout picker, and optionally filters by the
// clicked dimesion values (and removes corresponding breakouts)
export default (name: string, icon: string, fieldFilter: FieldFilter) => ({
question,
clicked,
}: ClickActionProps): ClickAction[] => {
export default (name, icon, fieldFilter) => ({ question, clicked }) => {
const query = question.query();
if (!(query instanceof StructuredQuery)) {
return [];
......@@ -52,7 +41,7 @@ export default (name: string, icon: string, fieldFilter: FieldFilter) => ({
</span>
),
// eslint-disable-next-line react/display-name
popover: ({ onChangeCardAndRun, onClose }: ClickActionPopoverProps) => (
popover: ({ onChangeCardAndRun, onClose }) => (
<BreakoutPopover
query={query}
breakoutOptions={breakoutOptions}
......
/* eslint-disable react/prop-types */
import React from "react";
import { jt } from "ttag";
import { TYPE, isa, isFK, isPK } from "metabase/lib/types";
import { singularize, pluralize, stripId } from "metabase/lib/formatting";
import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
function getFiltersForColumn(column) {
if (
isa(column.base_type, TYPE.Number) ||
......@@ -30,10 +26,7 @@ function getFiltersForColumn(column) {
}
}
export default function QuickFilterDrill({
question,
clicked,
}: ClickActionProps): ClickAction[] {
export default function QuickFilterDrill({ question, clicked }) {
const query = question.query();
if (
!(query instanceof StructuredQuery) ||
......
/* eslint-disable react/prop-types */
import { t } from "ttag";
import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery";
import Dimension from "metabase-lib/lib/Dimension";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
export default ({ question, clicked }: ClickActionProps): ClickAction[] => {
export default ({ question, clicked }) => {
const query = question.query();
if (!(query instanceof StructuredQuery)) {
return [];
......
/* eslint-disable react/prop-types */
import React from "react";
import { t } from "ttag";
import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery";
......@@ -8,15 +9,7 @@ import {
} from "metabase/lib/schema_metadata";
import { capitalize } from "metabase/lib/formatting";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
export default ({
question,
clicked = {},
}: ClickActionProps): ClickAction[] => {
export default ({ question, clicked = {} }) => {
const { column, value } = clicked;
const query = question.query();
if (!column || value !== undefined || !(query instanceof StructuredQuery)) {
......
/* eslint-disable react/prop-types */
import { fieldRefForColumn } from "metabase/lib/dataset";
import {
getAggregationOperator,
isCompatibleAggregationOperatorForField,
} from "metabase/lib/schema_metadata";
import { t } from "ttag";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery";
const AGGREGATIONS = {
......@@ -28,10 +25,7 @@ const AGGREGATIONS = {
},
};
export default ({
question,
clicked = {},
}: ClickActionProps): ClickAction[] => {
export default ({ question, clicked = {} }) => {
const { column, value } = clicked;
if (!column || column.source !== "fields" || value !== undefined) {
// TODO Atte Keinänen 7/21/17: Does it slow down the drill-through option calculations remarkably
......@@ -52,7 +46,7 @@ export default ({
.filter(([aggregator]) =>
isCompatibleAggregationOperatorForField(aggregator, column),
)
.map(([aggregator, action]: [any, { section: string, title: string }]) => ({
.map(([aggregator, action]) => ({
name: action.title.toLowerCase(),
...action,
question: () =>
......
/* eslint-disable react/prop-types */
import { ngettext, msgid } from "ttag";
import { inflect } from "metabase/lib/formatting";
import StructuredQuery from "metabase-lib/lib/queries/StructuredQuery";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
import { AggregationDimension } from "metabase-lib/lib/Dimension";
export default ({ question, clicked }: ClickActionProps): ClickAction[] => {
export default ({ question, clicked }) => {
// removes post-aggregation filter stage
clicked = clicked && question.topLevelClicked(clicked);
question = question.topLevelQuestion();
......
/* eslint-disable react/prop-types */
import { drillDownForDimensions } from "metabase/modes/lib/actions";
import type {
ClickAction,
ClickActionProps,
} from "metabase-types/types/Visualization";
import { t } from "ttag";
export default ({
question,
clicked,
settings,
}: ClickActionProps): ClickAction[] => {
export default ({ question, clicked, settings }) => {
const dimensions = (clicked && clicked.dimensions) || [];
const drilldown = drillDownForDimensions(dimensions, question.metadata());
if (!drilldown) {
......
import { getDefaultDrills } from "../drill";
import type { QueryMode } from "metabase-types/types/Visualization";
const DefaultMode: QueryMode = {
const DefaultMode = {
name: "default",
drills: getDefaultDrills,
};
......
......@@ -3,9 +3,7 @@ import { getDefaultDrills } from "../drill";
import PivotByCategoryDrill from "../drill/PivotByCategoryDrill";
import PivotByTimeDrill from "../drill/PivotByTimeDrill";
import type { QueryMode } from "metabase-types/types/Visualization";
const GeoMode: QueryMode = {
const GeoMode = {
name: "geo",
drills: () => [...getDefaultDrills(), PivotByCategoryDrill, PivotByTimeDrill],
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment