diff --git a/frontend/src/metabase/parameters/constants.ts b/frontend/src/metabase-lib/lib/parameters/constants.ts similarity index 100% rename from frontend/src/metabase/parameters/constants.ts rename to frontend/src/metabase-lib/lib/parameters/constants.ts diff --git a/frontend/src/metabase/parameters/utils/filters.js b/frontend/src/metabase-lib/lib/parameters/utils/filters.js similarity index 91% rename from frontend/src/metabase/parameters/utils/filters.js rename to frontend/src/metabase-lib/lib/parameters/utils/filters.js index f4fdd8577488ce92034adee726c062cbe76b2439..a49903fd6d27262e32494cedd1d98f4401e4508c 100644 --- a/frontend/src/metabase/parameters/utils/filters.js +++ b/frontend/src/metabase-lib/lib/parameters/utils/filters.js @@ -1,6 +1,9 @@ import TemplateTagVariable from "metabase-lib/lib/variables/TemplateTagVariable"; -import { getParameterType, getParameterSubType } from "./parameter-type"; -import { getParameterOperatorName } from "./operators"; +import { + getParameterType, + getParameterSubType, +} from "metabase-lib/lib/parameters/utils/parameter-type"; +import { getParameterOperatorName } from "metabase-lib/lib/parameters/utils/operators"; export function fieldFilterForParameter(parameter) { const type = getParameterType(parameter); diff --git a/frontend/src/metabase/parameters/utils/filters.unit.spec.js b/frontend/src/metabase-lib/lib/parameters/utils/filters.unit.spec.js similarity index 100% rename from frontend/src/metabase/parameters/utils/filters.unit.spec.js rename to frontend/src/metabase-lib/lib/parameters/utils/filters.unit.spec.js diff --git a/frontend/src/metabase/parameters/utils/operators.ts b/frontend/src/metabase-lib/lib/parameters/utils/operators.ts similarity index 82% rename from frontend/src/metabase/parameters/utils/operators.ts rename to frontend/src/metabase-lib/lib/parameters/utils/operators.ts index 5ecf1a147a081c665c4d2e6e533332dfe8416110..082fb883ed9936ec1a0d6584dd7597a00564ac3b 100644 --- a/frontend/src/metabase/parameters/utils/operators.ts +++ b/frontend/src/metabase-lib/lib/parameters/utils/operators.ts @@ -1,12 +1,15 @@ -import { UiParameter } from "metabase/parameters/types"; +import { Parameter } from "metabase-types/types/Parameter"; import { doesOperatorExist, getOperatorByTypeAndName, } from "metabase-lib/lib/operators/utils"; import { NUMBER, STRING, PRIMARY_KEY } from "metabase-lib/lib/types/constants"; -import { PARAMETER_OPERATOR_TYPES } from "../constants"; -import { getParameterType, getParameterSubType } from "./parameter-type"; +import { + getParameterType, + getParameterSubType, +} from "metabase-lib/lib/parameters/utils/parameter-type"; +import { PARAMETER_OPERATOR_TYPES } from "metabase-lib/lib/parameters/constants"; type OperatorType = "date" | "number" | "string"; @@ -28,7 +31,7 @@ export function getParameterOperatorName(maybeOperatorName?: string) { return doesOperatorExist(maybeOperatorName) ? maybeOperatorName : "="; } -export function deriveFieldOperatorFromParameter(parameter: UiParameter) { +export function deriveFieldOperatorFromParameter(parameter: Parameter) { const type = getParameterType(parameter); const subtype = getParameterSubType(parameter); const operatorType = getParameterOperatorType(type); @@ -71,7 +74,7 @@ export function buildTypedOperatorOptions( }); } -export function getNumberParameterArity(parameter: UiParameter) { +export function getNumberParameterArity(parameter: Parameter) { switch (parameter.type) { case "number/=": case "number/!=": @@ -83,7 +86,7 @@ export function getNumberParameterArity(parameter: UiParameter) { } } -export function getStringParameterArity(parameter: UiParameter) { +export function getStringParameterArity(parameter: Parameter) { switch (parameter.type) { case "string/=": case "string/!=": diff --git a/frontend/src/metabase/parameters/utils/operators.unit.spec.ts b/frontend/src/metabase-lib/lib/parameters/utils/operators.unit.spec.ts similarity index 100% rename from frontend/src/metabase/parameters/utils/operators.unit.spec.ts rename to frontend/src/metabase-lib/lib/parameters/utils/operators.unit.spec.ts diff --git a/frontend/src/metabase-lib/lib/parameters/utils/parameter-type.ts b/frontend/src/metabase-lib/lib/parameters/utils/parameter-type.ts new file mode 100644 index 0000000000000000000000000000000000000000..66e5f462dc6d7edbdbb7e82d16a915df43a3ee97 --- /dev/null +++ b/frontend/src/metabase-lib/lib/parameters/utils/parameter-type.ts @@ -0,0 +1,36 @@ +import _ from "underscore"; +import { Parameter } from "metabase-types/types/Parameter"; + +export function getParameterType(parameter: Parameter | string) { + return typeof parameter === "string" + ? splitType(parameter)[0] + : parameter.sectionId || splitType(parameter)[0]; +} + +export function getParameterSubType(parameter: Parameter) { + const [, subtype] = splitType(parameter); + return subtype; +} + +function splitType(parameterOrType: Parameter | string) { + const parameterType = _.isString(parameterOrType) + ? parameterOrType + : parameterOrType?.type || ""; + + return parameterType.split("/"); +} + +export function isDateParameter(parameter: Parameter | string) { + const type = getParameterType(parameter); + return type === "date"; +} + +export function isNumberParameter(parameter: Parameter) { + const type = getParameterType(parameter); + return type === "number"; +} + +export function isStringParameter(parameter: Parameter) { + const type = getParameterType(parameter); + return type === "string"; +} diff --git a/frontend/src/metabase/parameters/utils/parameter-type.unit.spec.js b/frontend/src/metabase-lib/lib/parameters/utils/parameter-type.unit.spec.js similarity index 100% rename from frontend/src/metabase/parameters/utils/parameter-type.unit.spec.js rename to frontend/src/metabase-lib/lib/parameters/utils/parameter-type.unit.spec.js diff --git a/frontend/src/metabase/parameters/utils/targets.ts b/frontend/src/metabase-lib/lib/parameters/utils/targets.ts similarity index 100% rename from frontend/src/metabase/parameters/utils/targets.ts rename to frontend/src/metabase-lib/lib/parameters/utils/targets.ts diff --git a/frontend/src/metabase/parameters/utils/targets.unit.spec.ts b/frontend/src/metabase-lib/lib/parameters/utils/targets.unit.spec.ts similarity index 100% rename from frontend/src/metabase/parameters/utils/targets.unit.spec.ts rename to frontend/src/metabase-lib/lib/parameters/utils/targets.unit.spec.ts diff --git a/frontend/src/metabase-lib/lib/queries/utils/card.js b/frontend/src/metabase-lib/lib/queries/utils/card.js index fce0961991723c587e9710ee21275d3174f0b35e..8328ccc2321fcb81fb1f87e9fc8661570e3bf2d1 100644 --- a/frontend/src/metabase-lib/lib/queries/utils/card.js +++ b/frontend/src/metabase-lib/lib/queries/utils/card.js @@ -2,9 +2,9 @@ import _ from "underscore"; import { updateIn } from "icepick"; import { normalizeParameterValue } from "metabase/parameters/utils/parameter-values"; -import { deriveFieldOperatorFromParameter } from "metabase/parameters/utils/operators"; import Utils from "metabase/lib/utils"; +import { deriveFieldOperatorFromParameter } from "metabase-lib/lib/parameters/utils/operators"; import * as Q_DEPRECATED from "metabase-lib/lib/queries/utils"; // legacy export const STRUCTURED_QUERY_TEMPLATE = { diff --git a/frontend/src/metabase/components/DateRelativeWidget/DateRelativeWidget.tsx b/frontend/src/metabase/components/DateRelativeWidget/DateRelativeWidget.tsx index 034ca00bb5231c9baba623602e2bfa73cbebfea4..219f375f04dcb49e101cdd99935b92fdc9c2a845 100644 --- a/frontend/src/metabase/components/DateRelativeWidget/DateRelativeWidget.tsx +++ b/frontend/src/metabase/components/DateRelativeWidget/DateRelativeWidget.tsx @@ -3,7 +3,7 @@ import { t } from "ttag"; import cx from "classnames"; import _ from "underscore"; -import { DATE_MBQL_FILTER_MAPPING } from "metabase/parameters/constants"; +import { DATE_MBQL_FILTER_MAPPING } from "metabase-lib/lib/parameters/constants"; type Shortcut = { name: string; diff --git a/frontend/src/metabase/dashboard/components/DashCardCardParameterMapper.jsx b/frontend/src/metabase/dashboard/components/DashCardCardParameterMapper.jsx index 95b81bc6ebff4e09e2944b56c9d593fcd247134e..97694da2be1a360ec0736693690bbba2e1e2d780 100644 --- a/frontend/src/metabase/dashboard/components/DashCardCardParameterMapper.jsx +++ b/frontend/src/metabase/dashboard/components/DashCardCardParameterMapper.jsx @@ -9,8 +9,6 @@ import Icon from "metabase/components/Icon"; import Tooltip from "metabase/components/Tooltip"; import TippyPopover from "metabase/components/Popover/TippyPopover"; import ParameterTargetList from "metabase/parameters/components/ParameterTargetList"; -import { isVariableTarget } from "metabase/parameters/utils/targets"; -import { isDateParameter } from "metabase/parameters/utils/parameter-type"; import { getMetadata } from "metabase/selectors/metadata"; import { getNativeDashCardEmptyMappingText, @@ -18,6 +16,8 @@ import { isVirtualDashCard, showVirtualDashCardInfoText, } from "metabase/dashboard/utils"; +import { isDateParameter } from "metabase-lib/lib/parameters/utils/parameter-type"; +import { isVariableTarget } from "metabase-lib/lib/parameters/utils/targets"; import Question from "metabase-lib/lib/Question"; import { diff --git a/frontend/src/metabase/dashboard/utils.js b/frontend/src/metabase/dashboard/utils.js index 017841da17a58e536ac6e1ad809cc2bea4bd64b5..b2f6e4c5b8de8172c62556db0bf09dd33e7440b2 100644 --- a/frontend/src/metabase/dashboard/utils.js +++ b/frontend/src/metabase/dashboard/utils.js @@ -5,7 +5,7 @@ import { isDateParameter, isNumberParameter, isStringParameter, -} from "metabase/parameters/utils/parameter-type"; +} from "metabase-lib/lib/parameters/utils/parameter-type"; import { isNative } from "metabase-lib/lib/queries/utils"; export function syncParametersAndEmbeddingParams(before, after) { diff --git a/frontend/src/metabase/lib/click-behavior.js b/frontend/src/metabase/lib/click-behavior.js index f76ac2c5d4e852b817c00da2d8ef46918a103674..ec5dabb0ddc5ce3077e279a70e11b7c33305732f 100644 --- a/frontend/src/metabase/lib/click-behavior.js +++ b/frontend/src/metabase/lib/click-behavior.js @@ -4,11 +4,11 @@ import { t, ngettext, msgid } from "ttag"; import { parseTimestamp } from "metabase/lib/time"; import { formatDateTimeForParameter } from "metabase/lib/formatting/date"; +import { isValidImplicitActionClickBehavior } from "metabase/writeback/utils"; import { dimensionFilterForParameter, variableFilterForParameter, -} from "metabase/parameters/utils/filters"; -import { isValidImplicitActionClickBehavior } from "metabase/writeback/utils"; +} from "metabase-lib/lib/parameters/utils/filters"; import { isa, isDate } from "metabase-lib/lib/types/utils/isa"; import { TYPE } from "metabase-lib/lib/types/constants"; import Question from "metabase-lib/lib/Question"; diff --git a/frontend/src/metabase/parameters/components/FormattedParameterValue/FormattedParameterValue.tsx b/frontend/src/metabase/parameters/components/FormattedParameterValue/FormattedParameterValue.tsx index 87332d3637d2c04e22b052803a1462623c66228f..5b666ddc14d2883d989d21ad2ca2aae3865aa21e 100644 --- a/frontend/src/metabase/parameters/components/FormattedParameterValue/FormattedParameterValue.tsx +++ b/frontend/src/metabase/parameters/components/FormattedParameterValue/FormattedParameterValue.tsx @@ -1,9 +1,9 @@ import React from "react"; import { formatParameterValue } from "metabase/parameters/utils/formatting"; -import { isDateParameter } from "metabase/parameters/utils/parameter-type"; import { UiParameter, FieldFilterUiParameter } from "metabase/parameters/types"; import ParameterFieldWidgetValue from "metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidgetValue/ParameterFieldWidgetValue"; +import { isDateParameter } from "metabase-lib/lib/parameters/utils/parameter-type"; type FormattedParameterValueProps = { parameter: UiParameter; diff --git a/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx b/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx index 57a355ce7e099f5188443d36e620015adabee94c..d7716aa0388a36390c0c566aa7e4956f592c7219 100644 --- a/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx +++ b/frontend/src/metabase/parameters/components/ParameterValueWidget.jsx @@ -8,14 +8,6 @@ import { getParameterIconName, getParameterWidgetTitle, } from "metabase/parameters/utils/ui"; -import { - isDateParameter, - isNumberParameter, -} from "metabase/parameters/utils/parameter-type"; -import { - getNumberParameterArity, - getStringParameterArity, -} from "metabase/parameters/utils/operators"; import PopoverWithTrigger from "metabase/components/PopoverWithTrigger"; import Icon from "metabase/components/Icon"; @@ -30,6 +22,14 @@ import WidgetStatusIcon from "metabase/parameters/components/WidgetStatusIcon"; import FormattedParameterValue from "metabase/parameters/components/FormattedParameterValue"; import NumberInputWidget from "metabase/parameters/components/widgets/NumberInputWidget"; import StringInputWidget from "metabase/parameters/components/widgets/StringInputWidget"; +import { + getNumberParameterArity, + getStringParameterArity, +} from "metabase-lib/lib/parameters/utils/operators"; +import { + isDateParameter, + isNumberParameter, +} from "metabase-lib/lib/parameters/utils/parameter-type"; import ParameterFieldWidget from "./widgets/ParameterFieldWidget/ParameterFieldWidget"; import S from "./ParameterWidget.css"; diff --git a/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx b/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx index 28d7dc4f931104b335af5459c1ba015a29e89126..9f17e85a7afa7774b9000b4f031dec46a2daa147 100644 --- a/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx +++ b/frontend/src/metabase/parameters/components/widgets/ParameterFieldWidget/ParameterFieldWidget.jsx @@ -5,12 +5,12 @@ import { t } from "ttag"; import _ from "underscore"; import FieldValuesWidget from "metabase/components/FieldValuesWidget"; -import { deriveFieldOperatorFromParameter } from "metabase/parameters/utils/operators"; import { WidgetRoot, Footer, UpdateButton, } from "metabase/parameters/components/widgets/Widget.styled"; +import { deriveFieldOperatorFromParameter } from "metabase-lib/lib/parameters/utils/operators"; import { getFilterArgumentFormatOptions, isEqualsOperator, diff --git a/frontend/src/metabase/parameters/utils/cards.ts b/frontend/src/metabase/parameters/utils/cards.ts index 0461c73dae3ce4ff97bcd079b5ae9ca771a477c0..fdd470051fb8b9b1fd001059a7b60bdfcf413be2 100644 --- a/frontend/src/metabase/parameters/utils/cards.ts +++ b/frontend/src/metabase/parameters/utils/cards.ts @@ -1,9 +1,5 @@ import _ from "underscore"; -import { - getParameterTargetField, - getTemplateTagFromTarget, -} from "metabase/parameters/utils/targets"; import { getValuePopulatedParameters, hasParameterValue, @@ -12,6 +8,10 @@ import { ParameterWithTarget, UiParameter } from "metabase/parameters/types"; import { Parameter, ParameterTarget } from "metabase-types/types/Parameter"; import { Card } from "metabase-types/types/Card"; import { TemplateTag } from "metabase-types/types/Query"; +import { + getParameterTargetField, + getTemplateTagFromTarget, +} from "metabase-lib/lib/parameters/utils/targets"; import Question from "metabase-lib/lib/Question"; import Metadata from "metabase-lib/lib/metadata/Metadata"; diff --git a/frontend/src/metabase/parameters/utils/dashboard-options.js b/frontend/src/metabase/parameters/utils/dashboard-options.js index 77d1d75ebe270b1197737449b17f215c85766dd5..504dd37c0c31147aa9fe6bb5c0b80287a0ae8d2f 100644 --- a/frontend/src/metabase/parameters/utils/dashboard-options.js +++ b/frontend/src/metabase/parameters/utils/dashboard-options.js @@ -1,6 +1,6 @@ import { t } from "ttag"; -import { ID_OPTION } from "../constants"; -import { buildTypedOperatorOptions } from "./operators"; +import { ID_OPTION } from "metabase-lib/lib/parameters/constants"; +import { buildTypedOperatorOptions } from "metabase-lib/lib/parameters/utils/operators"; export function getDashboardParameterSections() { return [ diff --git a/frontend/src/metabase/parameters/utils/dashboards.ts b/frontend/src/metabase/parameters/utils/dashboards.ts index 2da098659efb0c23692004b6f5d2e99299dbc255..391e4412f841ed0fd668fea104613c8f2d8645e6 100644 --- a/frontend/src/metabase/parameters/utils/dashboards.ts +++ b/frontend/src/metabase/parameters/utils/dashboards.ts @@ -1,10 +1,6 @@ import _ from "underscore"; import { generateParameterId } from "metabase/parameters/utils/parameter-id"; -import { - getParameterTargetField, - isVariableTarget, -} from "metabase/parameters/utils/targets"; import { isFieldFilterParameter } from "metabase/parameters/utils/parameter-type"; import { slugify } from "metabase/lib/formatting"; import { @@ -24,6 +20,10 @@ import { DashboardOrderedCard, } from "metabase-types/api"; import { SavedCard } from "metabase-types/types/Card"; +import { + getParameterTargetField, + isVariableTarget, +} from "metabase-lib/lib/parameters/utils/targets"; import Question from "metabase-lib/lib/Question"; import Metadata from "metabase-lib/lib/metadata/Metadata"; import Field from "metabase-lib/lib/metadata/Field"; diff --git a/frontend/src/metabase/parameters/utils/date-formatting.ts b/frontend/src/metabase/parameters/utils/date-formatting.ts index a714ffab56e0c890a5c1b395d76f4b34709f188d..2c96e2fde4ce683ed4ee4e71bacc1e94766f5e18 100644 --- a/frontend/src/metabase/parameters/utils/date-formatting.ts +++ b/frontend/src/metabase/parameters/utils/date-formatting.ts @@ -2,10 +2,10 @@ import { t } from "ttag"; import _ from "underscore"; import moment from "moment-timezone"; -import { DATE_MBQL_FILTER_MAPPING } from "metabase/parameters/constants"; import { dateParameterValueToMBQL } from "metabase/parameters/utils/mbql"; import { DATE_OPERATORS } from "metabase/query_builder/components/filters/pickers/DatePicker/DatePicker"; import { EXCLUDE_OPERATORS } from "metabase/query_builder/components/filters/pickers/DatePicker/ExcludeDatePicker"; +import { DATE_MBQL_FILTER_MAPPING } from "metabase-lib/lib/parameters/constants"; import { generateTimeFilterValuesDescriptions, getRelativeDatetimeInterval, diff --git a/frontend/src/metabase/parameters/utils/formatting.ts b/frontend/src/metabase/parameters/utils/formatting.ts index d09ba988e6ec8575c7f114fb67a9bd60cf13bd02..a16ff249751f62be271b154850c9296c9e0c7ce2 100644 --- a/frontend/src/metabase/parameters/utils/formatting.ts +++ b/frontend/src/metabase/parameters/utils/formatting.ts @@ -1,9 +1,10 @@ import { ngettext, msgid } from "ttag"; import { formatValue } from "metabase/lib/formatting"; +import { getParameterType } from "metabase-lib/lib/parameters/utils/parameter-type"; import { UiParameter } from "../types"; -import { getParameterType, isFieldFilterParameter } from "./parameter-type"; +import { isFieldFilterParameter } from "./parameter-type"; import { formatDateValue } from "./date-formatting"; function inferValueType(parameter: UiParameter) { diff --git a/frontend/src/metabase/parameters/utils/linked-filters.js b/frontend/src/metabase/parameters/utils/linked-filters.js index e34823400455d5783be32f255ed07cc1483783ee..fcf817b5d19e05764dcc4a20dad468c1df4bf515 100644 --- a/frontend/src/metabase/parameters/utils/linked-filters.js +++ b/frontend/src/metabase/parameters/utils/linked-filters.js @@ -1,8 +1,8 @@ import { TYPE_SUPPORTS_LINKED_FILTERS, FIELD_FILTER_PARAMETER_TYPES, -} from "metabase/parameters/constants"; -import { getParameterType } from "metabase/parameters/utils/parameter-type"; +} from "metabase-lib/lib/parameters/constants"; +import { getParameterType } from "metabase-lib/lib/parameters/utils/parameter-type"; export function canUseLinkedFilters(parameter) { const type = getParameterType(parameter); diff --git a/frontend/src/metabase/parameters/utils/mapping-options.js b/frontend/src/metabase/parameters/utils/mapping-options.js index 96417c70734612ff769fd657aa6b4fa9c1436b56..cb756ff33656754feeaf4aa6f72b832b98ce122d 100644 --- a/frontend/src/metabase/parameters/utils/mapping-options.js +++ b/frontend/src/metabase/parameters/utils/mapping-options.js @@ -2,12 +2,11 @@ import { tag_names } from "cljs/metabase.shared.parameters.parameters"; import { isActionCard } from "metabase/writeback/utils"; import Question from "metabase-lib/lib/Question"; import { ExpressionDimension } from "metabase-lib/lib/Dimension"; - import { dimensionFilterForParameter, getTagOperatorFilterForParameter, variableFilterForParameter, -} from "./filters"; +} from "metabase-lib/lib/parameters/utils/filters"; function buildStructuredQuerySectionOptions(section) { return section.items.map(({ dimension }) => ({ diff --git a/frontend/src/metabase/parameters/utils/mbql.js b/frontend/src/metabase/parameters/utils/mbql.js index 2155af0f8053a39b57663b8865a92855996365e0..a6a124f18e7995a6a8c85f319b5d71818b4ab433 100644 --- a/frontend/src/metabase/parameters/utils/mbql.js +++ b/frontend/src/metabase/parameters/utils/mbql.js @@ -10,9 +10,12 @@ import Dimension, { FieldDimension, TemplateTagDimension, } from "metabase-lib/lib/Dimension"; -import { getParameterSubType, isDateParameter } from "./parameter-type"; -import { getParameterOperatorName } from "./operators"; -import { isDimensionTarget } from "./targets"; +import { isDimensionTarget } from "metabase-lib/lib/parameters/utils/targets"; +import { + getParameterSubType, + isDateParameter, +} from "metabase-lib/lib/parameters/utils/parameter-type"; +import { getParameterOperatorName } from "metabase-lib/lib/parameters/utils/operators"; import { hasParameterValue } from "./parameter-values"; const withTemporalUnit = (fieldRef, unit) => { diff --git a/frontend/src/metabase/parameters/utils/parameter-type.ts b/frontend/src/metabase/parameters/utils/parameter-type.ts index 372f754505bc65a1bd5ac190e8f06021862cd63a..599e485f1f2c825ffc6c9a6b4868d1f83146d6e4 100644 --- a/frontend/src/metabase/parameters/utils/parameter-type.ts +++ b/frontend/src/metabase/parameters/utils/parameter-type.ts @@ -1,42 +1,8 @@ import _ from "underscore"; -import { FIELD_FILTER_PARAMETER_TYPES } from "metabase/parameters/constants"; - import { FieldFilterUiParameter } from "metabase/parameters/types"; import { Parameter } from "metabase-types/types/Parameter"; - -export function getParameterType(parameter: Parameter | string) { - return typeof parameter === "string" - ? splitType(parameter)[0] - : parameter.sectionId || splitType(parameter)[0]; -} - -export function getParameterSubType(parameter: Parameter) { - const [, subtype] = splitType(parameter); - return subtype; -} - -function splitType(parameterOrType: Parameter | string) { - const parameterType = _.isString(parameterOrType) - ? parameterOrType - : parameterOrType?.type || ""; - - return parameterType.split("/"); -} - -export function isDateParameter(parameter: Parameter | string) { - const type = getParameterType(parameter); - return type === "date"; -} - -export function isNumberParameter(parameter: Parameter) { - const type = getParameterType(parameter); - return type === "number"; -} - -export function isStringParameter(parameter: Parameter) { - const type = getParameterType(parameter); - return type === "string"; -} +import { FIELD_FILTER_PARAMETER_TYPES } from "metabase-lib/lib/parameters/constants"; +import { getParameterType } from "metabase-lib/lib/parameters/utils/parameter-type"; export function isFieldFilterParameter( parameter: Parameter, diff --git a/frontend/src/metabase/parameters/utils/parameter-values.js b/frontend/src/metabase/parameters/utils/parameter-values.js index 5fc888df9452bd4b16934b06abd64ba4d41c0ade..f42cd4f8556d92afdbeaefd84b57799159703e2b 100644 --- a/frontend/src/metabase/parameters/utils/parameter-values.js +++ b/frontend/src/metabase/parameters/utils/parameter-values.js @@ -1,4 +1,4 @@ -import { getParameterType } from "./parameter-type"; +import { getParameterType } from "metabase-lib/lib/parameters/utils/parameter-type"; export function getValuePopulatedParameters(parameters, parameterValues) { return parameterValues diff --git a/frontend/src/metabase/parameters/utils/template-tag-options.js b/frontend/src/metabase/parameters/utils/template-tag-options.js index 86a43c46408fcd740ff9bf6085cb3c7258a9f60d..dc2f90e5af569af9ac6335670cf10b19dee7ab94 100644 --- a/frontend/src/metabase/parameters/utils/template-tag-options.js +++ b/frontend/src/metabase/parameters/utils/template-tag-options.js @@ -4,9 +4,12 @@ import { OPTIONS_WITH_OPERATOR_SUBTYPES, PARAMETER_OPERATOR_TYPES, ID_OPTION, -} from "../constants"; -import { getOperatorDisplayName, buildTypedOperatorOptions } from "./operators"; -import { fieldFilterForParameter } from "./filters"; +} from "metabase-lib/lib/parameters/constants"; +import { + getOperatorDisplayName, + buildTypedOperatorOptions, +} from "metabase-lib/lib/parameters/utils/operators"; +import { fieldFilterForParameter } from "metabase-lib/lib/parameters/utils/filters"; export function getParameterOptions() { return [ diff --git a/frontend/src/metabase/parameters/utils/template-tag-options.unit.spec.js b/frontend/src/metabase/parameters/utils/template-tag-options.unit.spec.js index 1f42b365cbbd66f6ec3f448205bbd0622eef09fd..b415c6131f16c44b9ca5e71f5a2f9f965fed7f08 100644 --- a/frontend/src/metabase/parameters/utils/template-tag-options.unit.spec.js +++ b/frontend/src/metabase/parameters/utils/template-tag-options.unit.spec.js @@ -1,5 +1,5 @@ import _ from "underscore"; -import { PARAMETER_OPERATOR_TYPES } from "../constants"; +import { PARAMETER_OPERATOR_TYPES } from "metabase-lib/lib/parameters/constants"; import { getParameterOptions, getParameterOptionsForField, diff --git a/frontend/src/metabase/parameters/utils/ui.ts b/frontend/src/metabase/parameters/utils/ui.ts index 671963df4d5475b54c879ad4da3bd8295151267b..32154c7f8e27f5acb3804af1dfd8ea863663e09e 100644 --- a/frontend/src/metabase/parameters/utils/ui.ts +++ b/frontend/src/metabase/parameters/utils/ui.ts @@ -2,8 +2,8 @@ import _ from "underscore"; import { UiParameter } from "metabase/parameters/types"; import { isEqualsOperator } from "metabase-lib/lib/operators/utils"; -import { getParameterType } from "./parameter-type"; -import { deriveFieldOperatorFromParameter } from "./operators"; +import { getParameterType } from "metabase-lib/lib/parameters/utils/parameter-type"; +import { deriveFieldOperatorFromParameter } from "metabase-lib/lib/parameters/utils/operators"; export function getParameterIconName(parameter: UiParameter) { const type = getParameterType(parameter);