diff --git a/knockout.validation/knockout.validation.d.ts b/knockout.validation/knockout.validation.d.ts new file mode 100644 index 000000000..0f9913e72 --- /dev/null +++ b/knockout.validation/knockout.validation.d.ts @@ -0,0 +1,140 @@ +/// + +interface KnockoutValidationGroupingOptions { + deep?: bool; + observable?: bool; +} + +interface KnockoutValidationConfiguration { + registerExtenders?: bool; + messagesOnModified?: bool; + messageTemplate?: string; + insertMessages?: bool; + parseInputAttributes?: bool; + writeInputAttributes?: bool; + decorateElement?: bool; + errorClass?: string; + errorElementClass?: string; + errorMessageClass?: string; + grouping?: KnockoutValidationGroupingOptions; +} + +interface KnockoutValidationUtils { + isArray(o: any): bool; + isObject(o: any): bool; + values(o: any): any[]; + getValue(o: any): any; + hasAttribute(node: Element, attr: string): bool; + isValidatable(o: any): bool; + insertAfter(node: Element, newNode: Element): void; + newId(): number; + getConfigOptions(element: Element): KnockoutValidationConfiguration; + setDomData(node: Element, data: KnockoutValidationConfiguration): void; + getDomData(node: Element): KnockoutValidationConfiguration; + contextFor(node: Element): KnockoutValidationConfiguration; + isEmptyVal(val: any): bool; +} + +interface KnockoutValidationAsyncCallbackArgs { + isValid: bool; + message: string; +} + +interface KnockoutValidationAsyncCallback { + (result: bool): void; + (result: KnockoutValidationAsyncCallbackArgs): void; +} + +interface KnockoutValidationRuleDefinition { + message: string; + validator(value: any, params: any): bool; +} + +interface KnockoutValidationAsyncRuleDefinition extends KnockoutValidationRuleDefinition { + async: bool; + validator(value: any, params: any, callback: KnockoutValidationAsyncCallback): void; +} + +interface KnockoutValidationAnonymousRuleDefinition { + validation: KnockoutValidationRuleDefinition; +} + +interface KnockoutValidationRuleDefinitions { + date: KnockoutValidationRuleDefinition; + dateISO: KnockoutValidationRuleDefinition; + digit: KnockoutValidationRuleDefinition; + email: KnockoutValidationRuleDefinition; + equal: KnockoutValidationRuleDefinition; + max: KnockoutValidationRuleDefinition; + maxLength: KnockoutValidationRuleDefinition; + min: KnockoutValidationRuleDefinition; + minLength: KnockoutValidationRuleDefinition; + notEqual: KnockoutValidationRuleDefinition; + number: KnockoutValidationRuleDefinition; + pattern: KnockoutValidationRuleDefinition; + phoneUS: KnockoutValidationRuleDefinition; + required: KnockoutValidationRuleDefinition; + step: KnockoutValidationRuleDefinition; + unique: KnockoutValidationRuleDefinition; +} + +interface KnockoutValidationRule { + rule: string; + params: any; + message?: string; + condition?: () => bool; +} + +interface KnockoutValidationErrors { + (): string[]; + showAllMessages(): void; + showAllMessages(show: bool): void; +} + +interface KnockoutValidationGroup { + errors?: KnockoutValidationErrors; + isValid?: () => bool; + isAnyMessageShown?: () => bool; +} + +interface KnockoutValidationStatic { + init(options?: KnockoutValidationConfiguration, force?: bool): void; + configure(options: KnockoutValidationConfiguration): void; + reset(): void; + + group(obj: any, options?: any): () => string[]; + + formatMessage(message: string, params: string): string; + + addRule(observable: KnockoutObservableAny, rule: KnockoutValidationRule): KnockoutObservableAny; + addRule(observable: KnockoutObservableString, rule: KnockoutValidationRule): KnockoutObservableString; + addRule(observable: KnockoutObservableNumber, rule: KnockoutValidationRule): KnockoutObservableNumber; + addRule(observable: KnockoutObservableBool, rule: KnockoutValidationRule): KnockoutObservableBool; + addRule(observable: KnockoutObservableDate, rule: KnockoutValidationRule): KnockoutObservableDate; + addAnonymousRule(observable: KnockoutObservableBase, ruleObj: KnockoutValidationAnonymousRuleDefinition): void; + + insertValidationMessage(element: Element): Element; + parseInputValidationAttributes(element: Element, valueAccessor: () => KnockoutObservableBase): void; + + rules: KnockoutValidationRuleDefinitions; + + addExtender(ruleName: string): void; + registerExtenders(): void; + utils: KnockoutValidationUtils; + + localize(msgTranslations: any): void; + validateObservable(observable: KnockoutObservableBase): bool; +} + +interface KnockoutStatic { + validation: KnockoutValidationStatic; + validatedObservable(initialValue: any): KnockoutObservableBase; + applyBindingsWithValidation(viewModel: any, rootNode?: any, options?: KnockoutValidationConfiguration): void; +} + +interface KnockoutSubscribableFunctions { + isValid: KnockoutComputed; + isValidating: KnockoutObservableBool; + rules: KnockoutObservableArray; +} +