@searsuite/sear-plugin-data-validation
Set and read rules
SetDataValidationRuleCommand changes a range’s rule. Queries return the current rules and any issue for a cell.
- variableClearDataValidationRulesCommand
-
ClearDataValidationRulesCommand: SheetCommandDefinition<{ range?: SheetRangeInput }, SheetCommandResult>Removes every rule, or only rule fragments within a range.
- variableDataValidationWarningObservation
-
DataValidationWarningObservation: EventObservationDefinition<DataValidationWarning> - variableReadDataValidationCellRulesQuery
-
ReadDataValidationCellRulesQuery: SheetQueryDefinition<readonly [number, number], readonly PositionedDataValidationRule[]>Reads the rules that cover one cell.
- variableReadDataValidationIssueQuery
-
ReadDataValidationIssueQuery: SheetQueryDefinition<readonly [number, number], DataValidationIssue | null>Reads a definite validation failure for the current value of one cell.
- variableReadDataValidationRulesQuery
-
ReadDataValidationRulesQuery: SheetQueryDefinition<void, readonly PositionedDataValidationRule[]>Reads all persisted validation rules and their range anchors.
- variableRemoveDataValidationRuleCommand
-
RemoveDataValidationRuleCommand: SheetCommandDefinition<{ id: string }, SheetCommandResult>Removes a rule by its stable identifier.
- variableSetDataValidationRuleCommand
-
SetDataValidationRuleCommand: SheetCommandDefinition<SetDataValidationRuleInput, SheetCommandResult>Creates or updates a validation rule for a sheet range.
- variableSheetDataValidationFieldKey
-
SheetDataValidationFieldKey: "sheet.dataValidation"Sheet data-view field contributed by the validation plugin.
- variableUnregisterDataValidationEvaluatorCommand
-
UnregisterDataValidationEvaluatorCommand: SheetCommandDefinition<number, SheetCommandResult>Removes one editor-local external data-validation evaluator.
- functionformatDropdownSelection
-
formatDropdownSelection(values: readonly string[]): stringSerializes labels without losing embedded commas, quotes or surrounding spaces.
- functionparseDropdownSelection
-
parseDropdownSelection(text: string): string[]Reads comma-separated labels with doubled-quote escaping; malformed input remains a single literal.
- functionreadSheetDataValidations
-
readSheetDataValidations(dataEngine: DataEngine): DataValidationMatrix | nullReads the current validation matrix from the sheet data view.
- functionresolveDropdownSelection
-
resolveDropdownSelection(text: string, availableLabels: readonly string[]): string[]Uses an exact option label when comma parsing cannot describe valid choices.
Evaluate input
evaluateDataValidation checks a candidate value against a rule. Register an external evaluator for conditions the built-in evaluator cannot resolve.
- classDataValidationEvaluatorRegistry
-
Host extension point for structured values and custom formulas.
constructor DataValidationEvaluatorRegistry(): DataValidationEvaluatorRegistrymethod enforceCommandBoundary(isExecuting: (): boolean, dispatchRemoval: (id: number): void): voidSeals post-assembly writes without adding work to evaluator reads.
method evaluate(condition: DataValidationCondition, text: string, row: number, column: number): boolean | nullmethod register(kind: DataValidationKind, evaluator: DataValidationExternalEvaluator): (): voidmethod unregister(id: number): voidRemoves a registration through the owning command after assembly.
- classDataValidationMatrix
-
class DataValidationMatrix extends CSRMatrix<DataValidationRule[] | null>Sparse range anchors for validation rules.
constructor DataValidationMatrix(data?: { data: DataValidationRule[] | null[]; indices: number[]; indptr: number[] }, shape?: [number, number]): DataValidationMatrixmethod addItem(row: number, column: number, rules: DataValidationRule[] | null): thisAdds an item to the matrix at the specified row and column.
ReturnsThe current instance for chaining.
rowThe row index.
method clone(): thisCreates an independent copy of this value and its mutable data.
method findRules(row: number, column: number): PositionedDataValidationRule[]method getItem(row: number, column: number): DataValidationRule[] | nullRetrieves an item from the matrix at the specified row and column.
ReturnsThe item at the specified position or null if not present.
rowThe row index.
method getRules(): PositionedDataValidationRule[]method replaceRules(entries: readonly PositionedDataValidationRule[]): voidmethod setItem(row: number, column: number, rules: DataValidationRule[] | null): thisInherited members 32
Inherited from CSRMatrix.
- name
- ndim
- nnz
- shape
- addColumn
- addListener
- addRow
- cloneCommittedView
- cloneDetached
- cloneForStaging
- deleteColumns
- deleteRows
- dispatch
- dot
- forEach
- forEachStored
- forEachStoredInRange
- forEachStoredInRow
- fromDense
- getCol
- getDefaultValue
- getRow
- lockMutations
- multiply
- removeItem
- removeListener
- setDefaultValue
- sum
- swapColumn
- swapRow
- toArray
- transpose
- classSheetDataValidationPlugin
-
class SheetDataValidationPlugin extends Plugin<unknown, CellProperties, SheetDataValidationPluginState>Base contract implemented by sheet and document plugins.
Plugins own their state, declare lifecycle hooks, transform transactions into state, and render scene nodes for their host core. Runtime packages should extend this contract rather than reaching into Core internals.
constructor SheetDataValidationPlugin(state: SheetDataValidationPluginState, dependencies: SheetDataValidationDependencies): SheetDataValidationPluginproperty readonly documentState: PluginDocumentStateContribution<SheetDataValidationPluginState, SheetDataValidationPluginState>Document-state export modules owned by this plugin state.
property interestedIn: MatrixOTActionName[]Declares which Sheet OT action names this plugin is interested in. The engine will only call
applywhen a transaction contains at least one operation matching these action names, unless the transaction is owned by this plugin.['uc', 'rr', 'rc']— only called for UpdateCell, ResizeRow, ResizeCol['*']— called for any transaction (wildcard)[]— only called for this plugin's own transactions
property readonly transactionOT: { collaborative: boolean; definition: TransactionOTDefinition<MatrixOTOperation<unknown>>; ownerId: string; relations: OTTransformRelation<MatrixOTOperation<unknown>, MatrixOTOperation<unknown>>[] }Shared transaction algebra used by history and collaboration.
property readonly warnOnDuplicateDepth: falseWhether PluginManager should warn when another ordered plugin shares this depth.
property readonly documentState: PluginDocumentStateContribution<SheetDataValidationPluginState, SheetDataValidationPluginState>staticproperty readonly pluginKey: PluginKeystaticproperty readonly symbol: typeof symbolstaticmethod apply(state: SheetDataValidationPluginState, transaction: Transaction): SheetDataValidationPluginState | nullApplies a transaction to plugin-owned state and returns the next state.
method dispose(): voidmethod getPluginConfig(): nullReturns this plugin's runtime configuration view for the current core.
method onTransactionCommitted(transaction: Transaction): voidRuns only after every step in the enclosing pipeline has succeeded and all staged plugin state has been committed. Use it for derived caches, notifications, persistence, and transport; never perform those effects in apply, because a later pipeline step may still fail.
transactionA committed transaction from the completed pipeline.
method readIssue(row: number, column: number): DataValidationIssue | nullReturns a definite failure for the cell's current value, including values predating the rule.
method registerCapabilities(registry: RuntimeCapabilityRegistry): voidmethod registerCellVisualReaders(registry: SheetCellVisualReaderRegistry): voidmethod registerCommands(commands: SheetCommandBus): voidmethod registerCommitStrategies(registry: CellCommitStrategyRegistry): voidmethod registerObservations(registry: ObservationRegistry): voidmethod registerQueries(queries: SheetQueryRegistry): voidmethod registerRangeMoves(registry: SheetRangeMoveRegistry): voidmethod registerState(): { dataEngine: { dataView: { fieldKey: string; select: (state: unknown): DataValidationMatrix; viewKey: string }[] }; key: PluginKey; state: SheetDataValidationPluginState }Registers one or more plugin-owned state records with the host manager.
method render(): Node<CellProperties>[]Produces scene nodes owned by this plugin for the current core state.
method sealRuntimeWrites(): voidCloses runtime-owned extension writes after every plugin has initialized and started.
method validate(row: number, column: number, text: string): SheetCellInputValidationResultInherited members 23
Inherited from Plugin.
- depth
- transactionHistory
- key
- dirtyRect
- enforceRuntimeWriteBoundary
- enforceStateWriteBoundary
- getState
- hasStateWriteBoundary
- lockCommittedState
- onClick
- onDblClick
- onInitialDataCell
- onInitialDataComplete
- onMouseDown
- onMouseMove
- onMouseUp
- onResize
- onScroll
- projectTransaction
- registerConfig
- sealRuntimeMetadata
- sealRuntimeMethods
- setState
- interfaceDataValidationCondition
-
Type-specific settings used to evaluate a cell value.
property readonly dropdownMode?: DataValidationDropdownModeproperty readonly formula?: stringproperty readonly integerOnly?: booleanproperty readonly kind: DataValidationKindproperty readonly operator?: DataValidationOperatorproperty readonly options?: readonly DataValidationOption[]property readonly secondValue?: stringproperty readonly showDropdownArrow?: booleanproperty readonly sourceRange?: { end: readonly [number, number]; start: readonly [number, number] }property readonly textMode?: DataValidationTextModeproperty readonly value?: string - interfaceDataValidationEvaluationContext
-
property readonly column: numberproperty readonly currentDateTime?: numberproperty readonly evaluateExternal?: (condition: DataValidationCondition, text: string, row: number, column: number): boolean | nullHost contribution for formula results and structured cell types. Null means unavailable.
property readonly readSourceValues?: (start: readonly [number, number], end: readonly [number, number]): readonly string[]property readonly row: number - interfaceDataValidationIssue
-
A definite failure of the current cell value against a validation rule.
property readonly column: numberproperty readonly message: stringproperty readonly row: numberproperty readonly ruleId: string - interfaceDataValidationOption
-
One displayable dropdown choice and its optional color.
property readonly color?: stringproperty readonly label: string - interfaceDataValidationRule
-
One independently editable rule stored at the top-left cell of its range.
property readonly condition: DataValidationConditionproperty readonly endColumn: numberproperty readonly endRow: numberproperty readonly errorMessage?: stringproperty readonly id: stringproperty readonly inputMessage?: stringproperty readonly inputPolicy: DataValidationInputPolicy - interfaceDataValidationWarning
-
property readonly column: numberproperty readonly message: stringproperty readonly row: numberproperty readonly ruleId: string - interfacePositionedDataValidationRule
-
A rule with its persisted range anchor.
property readonly column: numberproperty readonly row: numberproperty readonly rule: DataValidationRule - interfaceSetDataValidationRuleInput
-
interface SetDataValidationRuleInput extends SheetRangeInputTarget range and rule settings for creating or editing a rule.
- interfaceSheetDataValidationDependencies
-
property readonly createId: (): stringproperty readonly currentDateTime?: (): numberproperty readonly evaluators: DataValidationEvaluatorRegistryproperty readonly inputValidation: SheetCellInputValidationRegistryproperty readonly readSourceValues?: (start: readonly [number, number], end: readonly [number, number]): readonly string[]property readonly readValue?: (row: number, column: number): unknownproperty readonly requestRender?: (): void - typeDataValidationDropdownMode
-
type DataValidationDropdownMode = typeof DataValidationDropdownMode[keyof typeof DataValidationDropdownMode]DataValidationDropdownMode: { Multiple: "multiple"; Single: "single" }Dropdown selection mode stored with a rule.
- typeDataValidationExternalEvaluator
-
type DataValidationExternalEvaluator = (condition: DataValidationCondition, text: string, row: number, column: number): boolean | null - typeDataValidationInputPolicy
-
type DataValidationInputPolicy = typeof DataValidationInputPolicy[keyof typeof DataValidationInputPolicy]DataValidationInputPolicy: { Reject: "reject"; Warn: "warn" }Invalid input policy stored with a rule.
- typeDataValidationKind
-
type DataValidationKind = typeof DataValidationKind[keyof typeof DataValidationKind]DataValidationKind: { Attachment: "attachment"; Checkbox: "checkbox"; Date: "date"; Document: "document"; Dropdown: "dropdown"; Formula: "formula"; IdentityCard: "identityCard"; Image: "image"; … }One supported validation value family.
- typeDataValidationOperator
-
type DataValidationOperator = typeof DataValidationOperator[keyof typeof DataValidationOperator]DataValidationOperator: { Between: "between"; Contains: "contains"; EndsWith: "endsWith"; Equal: "equal"; Greater: "greater"; GreaterOrEqual: "greaterOrEqual"; Less: "less"; LessOrEqual: "lessOrEqual"; … }One comparison operator for a validation condition.
- typeDataValidationTextMode
-
type DataValidationTextMode = typeof DataValidationTextMode[keyof typeof DataValidationTextMode]DataValidationTextMode: { Content: "content"; Length: "length" }Text comparison mode stored with a rule.
- variableDataValidationEvaluatorRegistryCapability
-
DataValidationEvaluatorRegistryCapability: RuntimeCapability<DataValidationEvaluatorRegistry> - functionevaluateDataValidation
-
evaluateDataValidation(condition: DataValidationCondition, text: string, context: DataValidationEvaluationContext): boolean | nullReturns null when a host-owned value type has no evaluator. Empty input is allowed.
- functionhasIntegerSolution
-
hasIntegerSolution(operator: DataValidationOperator, first: number, second?: number): booleanWhether an integer can satisfy a numeric comparison. Bounds must already be finite.
- functionparseDataValidationDate
-
parseDataValidationDate(value: string): number | nullParses a real calendar date in the validation rule's YYYY-MM-DD format.
No matching API entries.