//#region src/composition/filters/metadata.ts
var e = {
	equal: {
		label: "Equals (=)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "equal"
			},
			x: {
				label: "X",
				fieldType: "number",
				defaultValue: () => 0
			}
		},
		supportedFor: r
	},
	notEqual: {
		label: "Not Equal To (≠)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "notEqual"
			},
			x: {
				label: "X",
				fieldType: "number",
				defaultValue: () => 0
			}
		},
		supportedFor: r
	},
	lessThan: {
		label: "Below (<)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "lessThan"
			},
			x: {
				label: "X",
				fieldType: "number",
				defaultValue: () => 0
			}
		},
		supportedFor: r
	},
	greaterThan: {
		label: "Above (>)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "greaterThan"
			},
			x: {
				label: "X",
				fieldType: "number",
				defaultValue: () => 0
			}
		},
		supportedFor: r
	},
	lessThanOrEqual: {
		label: "At Most (≤)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "lessThanOrEqual"
			},
			x: {
				label: "X",
				fieldType: "number",
				defaultValue: () => 0
			}
		},
		supportedFor: r
	},
	greaterThanOrEqual: {
		label: "At Least (≥)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "greaterThanOrEqual"
			},
			x: {
				label: "X",
				fieldType: "number",
				defaultValue: () => 0
			}
		},
		supportedFor: r
	},
	equalToColumn: {
		label: "Col₁ = Col₂ (Compare Columns)",
		form: {
			column: {
				label: "Col₁",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "equalToColumn"
			},
			rhs: {
				label: "Col₂",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			}
		},
		supportedFor: (e, t) => r(e) && (t === void 0 || r(t))
	},
	lessThanColumn: {
		label: "Col₁ < Col₂ (Compare Columns)",
		form: {
			column: {
				label: "Col₁",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "lessThanColumn"
			},
			rhs: {
				label: "Col₂",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			minDiff: {
				label: "Margin (positive)",
				fieldType: "number?",
				defaultValue: () => void 0
			}
		},
		supportedFor: (e, t) => r(e) && (t === void 0 || r(t))
	},
	greaterThanColumn: {
		label: "Col₁ > Col₂ (Compare Columns)",
		form: {
			column: {
				label: "Col₁",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "greaterThanColumn"
			},
			rhs: {
				label: "Col₂",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			minDiff: {
				label: "Margin (positive)",
				fieldType: "number?",
				defaultValue: () => void 0
			}
		},
		supportedFor: (e, t) => r(e) && (t === void 0 || r(t))
	},
	lessThanColumnOrEqual: {
		label: "Col₁ ≤ Col₂ (Compare Columns)",
		form: {
			column: {
				label: "Col₁",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "lessThanColumnOrEqual"
			},
			rhs: {
				label: "Col₂",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			minDiff: {
				label: "Margin (positive)",
				fieldType: "number?",
				defaultValue: () => void 0
			}
		},
		supportedFor: (e, t) => r(e) && (t === void 0 || r(t))
	},
	greaterThanColumnOrEqual: {
		label: "Col₁ ≥ Col₂ (Compare Columns)",
		form: {
			column: {
				label: "Col₁",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "greaterThanColumnOrEqual"
			},
			rhs: {
				label: "Col₂",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			minDiff: {
				label: "Margin (positive)",
				fieldType: "number?",
				defaultValue: () => void 0
			}
		},
		supportedFor: (e, t) => r(e) && (t === void 0 || r(t))
	},
	topN: {
		label: "Top N",
		form: {
			column: {
				label: "Rank By Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "topN"
			},
			n: {
				label: "N",
				fieldType: "number",
				defaultValue: () => 10
			}
		},
		supportedFor: r
	},
	bottomN: {
		label: "Bottom N",
		form: {
			column: {
				label: "Rank By Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "bottomN"
			},
			n: {
				label: "N",
				fieldType: "number",
				defaultValue: () => 10
			}
		},
		supportedFor: r
	},
	patternContainSubsequence: {
		label: "Contains (~)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "patternContainSubsequence"
			},
			value: {
				label: "Seq",
				fieldType: "string",
				defaultValue: () => ""
			}
		},
		supportedFor: i
	},
	patternNotContainSubsequence: {
		label: "Does Not Contain (≁)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "patternNotContainSubsequence"
			},
			value: {
				label: "Seq",
				fieldType: "string",
				defaultValue: () => ""
			}
		},
		supportedFor: i
	},
	patternEquals: {
		label: "Equals (=)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "patternEquals"
			},
			value: {
				label: "Seq",
				fieldType: "string",
				defaultValue: () => ""
			}
		},
		supportedFor: i
	},
	patternNotEquals: {
		label: "Not Equal To (≠)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "patternNotEquals"
			},
			value: {
				label: "Seq",
				fieldType: "string",
				defaultValue: () => ""
			}
		},
		supportedFor: i
	},
	isNA: {
		label: "Is Empty (NA)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "isNA"
			}
		},
		supportedFor: () => !0
	},
	isNotNA: {
		label: "Is Not Empty (≠ NA)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "isNotNA"
			}
		},
		supportedFor: () => !0
	},
	or: {
		label: "Or",
		form: {
			type: {
				fieldType: "FilterType",
				label: "Predicate",
				defaultValue: () => "or"
			},
			filters: {
				fieldType: "unknown[]",
				label: "Filters",
				defaultValue: () => []
			}
		},
		supportedFor: () => !1
	},
	and: {
		label: "And",
		form: {
			type: {
				fieldType: "FilterType",
				label: "Predicate",
				defaultValue: () => "and"
			},
			filters: {
				fieldType: "unknown[]",
				label: "Filters",
				defaultValue: () => []
			}
		},
		supportedFor: () => !1
	},
	not: {
		label: "Not",
		form: {
			type: {
				fieldType: "FilterType",
				label: "Predicate",
				defaultValue: () => "not"
			},
			filter: {
				fieldType: "form",
				label: "Filter",
				defaultValue: () => void 0
			}
		},
		supportedFor: () => !1
	},
	patternMatchesRegularExpression: {
		label: "Matches Regex (.*)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "patternMatchesRegularExpression"
			},
			value: {
				label: "Seq",
				fieldType: "string",
				defaultValue: () => ""
			}
		},
		supportedFor: i
	},
	patternFuzzyContainSubsequence: {
		label: "Contains Approximately (Fuzzy ~)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "patternFuzzyContainSubsequence"
			},
			value: {
				label: "Set",
				fieldType: "string",
				defaultValue: () => ""
			}
		},
		supportedFor: i
	},
	inSet: {
		label: "In List (∈)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "inSet"
			},
			value: {
				fieldType: "unknown[]",
				label: "Set",
				defaultValue: () => []
			}
		},
		supportedFor: i
	},
	notInSet: {
		label: "Not In List (∉)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "notInSet"
			},
			value: {
				label: "Seq",
				fieldType: "unknown[]",
				defaultValue: () => []
			}
		},
		supportedFor: i
	},
	ifNa: {
		label: "If NA Then (Replace NA)",
		form: {
			column: {
				label: "Column",
				fieldType: "SUniversalPColumnId",
				defaultValue: () => void 0
			},
			type: {
				label: "Predicate",
				fieldType: "FilterType",
				defaultValue: () => "ifNa"
			},
			replacement: {
				label: "Replacement Value",
				fieldType: "string",
				defaultValue: () => ""
			}
		},
		supportedFor: () => !0
	}
};
function t(t) {
	return t ? Object.entries(e).filter(([e, n]) => n.supportedFor(t)).map(([e, t]) => ({
		label: t.label,
		value: e
	})) : [];
}
function n(t) {
	return e[t];
}
function r(e) {
	return e.valueType === "Int" || e.valueType === "Long" || e.valueType === "Float" || e.valueType === "Double";
}
function i(e) {
	return e.valueType === "String";
}
//#endregion
export { e as filterUiMetadata, n as getFilterUiMetadata, t as getFilterUiTypeOptions };

//# sourceMappingURL=metadata.js.map