devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
506 lines (468 loc) • 21.5 kB
JavaScript
import * as i0 from '@angular/core';
import { PLATFORM_ID, Component, SkipSelf, Optional, Host, Inject, Input, Output, ContentChildren, NgModule } from '@angular/core';
import DxValidator from 'devextreme/ui/validator';
import * as i1 from 'devextreme-angular/core';
import { DxComponentExtension, DxTemplateHost, WatcherHelper, NestedOptionHost, IterableDifferHelper, DxIntegrationModule, DxTemplateModule } from 'devextreme-angular/core';
import { DxiValidationRuleComponent, DxoAdapterModule, DxiValidationRuleModule } from 'devextreme-angular/ui/nested';
import { DxiValidatorAsyncRuleComponent, DxiValidatorCompareRuleComponent, DxiValidatorCustomRuleComponent, DxiValidatorEmailRuleComponent, DxiValidatorNumericRuleComponent, DxiValidatorPatternRuleComponent, DxiValidatorRangeRuleComponent, DxiValidatorRequiredRuleComponent, DxiValidatorStringLengthRuleComponent, DxiValidatorValidationRuleComponent, DxoValidatorAdapterModule, DxiValidatorAsyncRuleModule, DxiValidatorCompareRuleModule, DxiValidatorCustomRuleModule, DxiValidatorEmailRuleModule, DxiValidatorNumericRuleModule, DxiValidatorPatternRuleModule, DxiValidatorRangeRuleModule, DxiValidatorRequiredRuleModule, DxiValidatorStringLengthRuleModule, DxiValidatorValidationRuleModule } from 'devextreme-angular/ui/validator/nested';
export * from 'devextreme-angular/ui/validator/nested';
/*!
* devextreme-angular
* Version: 25.1.4
* Build date: Tue Aug 05 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
*
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file in the root of the project for details.
*
* https://github.com/DevExpress/devextreme-angular
*/
/* tslint:disable:max-line-length */
/**
* A UI component that is used to validate the associated DevExtreme editors against the defined validation rules.
*/
class DxValidatorComponent extends DxComponentExtension {
_watcherHelper;
_idh;
instance = null;
/**
* An object that specifies what and when to validate, and how to apply the validation result.
*/
get adapter() {
return this._getOption('adapter');
}
set adapter(value) {
this._setOption('adapter', value);
}
/**
* Specifies the global attributes to be attached to the UI component's container element.
*/
get elementAttr() {
return this._getOption('elementAttr');
}
set elementAttr(value) {
this._setOption('elementAttr', value);
}
/**
* Specifies the UI component's height.
*/
get height() {
return this._getOption('height');
}
set height(value) {
this._setOption('height', value);
}
/**
* Specifies the editor name to be used in the validation default messages.
*/
get name() {
return this._getOption('name');
}
set name(value) {
this._setOption('name', value);
}
/**
* Specifies the validation group the editor will be related to.
*/
get validationGroup() {
return this._getOption('validationGroup');
}
set validationGroup(value) {
this._setOption('validationGroup', value);
}
/**
* An array of validation rules to be checked for the editor with which the dxValidator object is associated.
*/
get validationRules() {
return this._getOption('validationRules');
}
set validationRules(value) {
this._setOption('validationRules', value);
}
/**
* Specifies the UI component's width.
*/
get width() {
return this._getOption('width');
}
set width(value) {
this._setOption('width', value);
}
/**
* A function that is executed before the UI component is disposed of.
*/
onDisposing;
/**
* A function used in JavaScript frameworks to save the UI component instance.
*/
onInitialized;
/**
* A function that is executed after a UI component property is changed.
*/
onOptionChanged;
/**
* A function that is executed after a value is validated.
*/
onValidated;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
adapterChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
elementAttrChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
heightChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
nameChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
validationGroupChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
validationRulesChange;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
widthChange;
get asyncRulesChildren() {
return this._getOption('validationRules');
}
set asyncRulesChildren(value) {
this._setChildren('validationRules', value, 'DxiValidatorAsyncRuleComponent');
}
get compareRulesChildren() {
return this._getOption('validationRules');
}
set compareRulesChildren(value) {
this._setChildren('validationRules', value, 'DxiValidatorCompareRuleComponent');
}
get customRulesChildren() {
return this._getOption('validationRules');
}
set customRulesChildren(value) {
this._setChildren('validationRules', value, 'DxiValidatorCustomRuleComponent');
}
get emailRulesChildren() {
return this._getOption('validationRules');
}
set emailRulesChildren(value) {
this._setChildren('validationRules', value, 'DxiValidatorEmailRuleComponent');
}
get numericRulesChildren() {
return this._getOption('validationRules');
}
set numericRulesChildren(value) {
this._setChildren('validationRules', value, 'DxiValidatorNumericRuleComponent');
}
get patternRulesChildren() {
return this._getOption('validationRules');
}
set patternRulesChildren(value) {
this._setChildren('validationRules', value, 'DxiValidatorPatternRuleComponent');
}
get rangeRulesChildren() {
return this._getOption('validationRules');
}
set rangeRulesChildren(value) {
this._setChildren('validationRules', value, 'DxiValidatorRangeRuleComponent');
}
get requiredRulesChildren() {
return this._getOption('validationRules');
}
set requiredRulesChildren(value) {
this._setChildren('validationRules', value, 'DxiValidatorRequiredRuleComponent');
}
get stringLengthRulesChildren() {
return this._getOption('validationRules');
}
set stringLengthRulesChildren(value) {
this._setChildren('validationRules', value, 'DxiValidatorStringLengthRuleComponent');
}
get validationRulesChildren() {
return this._getOption('validationRules');
}
set validationRulesChildren(value) {
this._setChildren('validationRules', value, 'DxiValidatorValidationRuleComponent');
}
get validationRulesLegacyChildren() {
return this._getOption('validationRules');
}
set validationRulesLegacyChildren(value) {
this._setChildren('validationRules', value, 'DxiValidationRuleComponent');
}
parentElement;
constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, parentOptionHost, optionHost, transferState, platformId) {
super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId);
this._watcherHelper = _watcherHelper;
this._idh = _idh;
this._createEventEmitters([
{ subscribe: 'disposing', emit: 'onDisposing' },
{ subscribe: 'initialized', emit: 'onInitialized' },
{ subscribe: 'optionChanged', emit: 'onOptionChanged' },
{ subscribe: 'validated', emit: 'onValidated' },
{ emit: 'adapterChange' },
{ emit: 'elementAttrChange' },
{ emit: 'heightChange' },
{ emit: 'nameChange' },
{ emit: 'validationGroupChange' },
{ emit: 'validationRulesChange' },
{ emit: 'widthChange' }
]);
this.parentElement = this.getParentElement(parentOptionHost);
this._idh.setHost(this);
optionHost.setHost(this);
}
_createInstance(element, options) {
if (this.parentElement) {
return new DxValidator(this.parentElement, options);
}
return new DxValidator(element, options);
}
getParentElement(host) {
if (host) {
const parentHost = host.getHost();
return parentHost.element.nativeElement;
}
return;
}
ngOnDestroy() {
this._destroyWidget();
}
ngOnChanges(changes) {
super.ngOnChanges(changes);
this.setupChanges('validationRules', changes);
}
setupChanges(prop, changes) {
if (!(prop in this._optionsToUpdate)) {
this._idh.setup(prop, changes);
}
}
ngDoCheck() {
this._idh.doCheck('validationRules');
this._watcherHelper.checkWatchers();
super.ngDoCheck();
super.clearChangedOptions();
}
_setOption(name, value) {
let isSetup = this._idh.setupSingle(name, value);
let isChanged = this._idh.getChanges(name, value) !== null;
if (isSetup || isChanged) {
super._setOption(name, value);
}
}
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxValidatorComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.DxTemplateHost }, { token: i1.WatcherHelper }, { token: i1.IterableDifferHelper }, { token: i1.NestedOptionHost, host: true, optional: true, skipSelf: true }, { token: i1.NestedOptionHost }, { token: i0.TransferState }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DxValidatorComponent, isStandalone: true, selector: "dx-validator", inputs: { adapter: "adapter", elementAttr: "elementAttr", height: "height", name: "name", validationGroup: "validationGroup", validationRules: "validationRules", width: "width" }, outputs: { onDisposing: "onDisposing", onInitialized: "onInitialized", onOptionChanged: "onOptionChanged", onValidated: "onValidated", adapterChange: "adapterChange", elementAttrChange: "elementAttrChange", heightChange: "heightChange", nameChange: "nameChange", validationGroupChange: "validationGroupChange", validationRulesChange: "validationRulesChange", widthChange: "widthChange" }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [
DxTemplateHost,
WatcherHelper,
NestedOptionHost,
IterableDifferHelper
], queries: [{ propertyName: "asyncRulesChildren", predicate: DxiValidatorAsyncRuleComponent }, { propertyName: "compareRulesChildren", predicate: DxiValidatorCompareRuleComponent }, { propertyName: "customRulesChildren", predicate: DxiValidatorCustomRuleComponent }, { propertyName: "emailRulesChildren", predicate: DxiValidatorEmailRuleComponent }, { propertyName: "numericRulesChildren", predicate: DxiValidatorNumericRuleComponent }, { propertyName: "patternRulesChildren", predicate: DxiValidatorPatternRuleComponent }, { propertyName: "rangeRulesChildren", predicate: DxiValidatorRangeRuleComponent }, { propertyName: "requiredRulesChildren", predicate: DxiValidatorRequiredRuleComponent }, { propertyName: "stringLengthRulesChildren", predicate: DxiValidatorStringLengthRuleComponent }, { propertyName: "validationRulesChildren", predicate: DxiValidatorValidationRuleComponent }, { propertyName: "validationRulesLegacyChildren", predicate: DxiValidationRuleComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, dependencies: [{ kind: "ngmodule", type: DxIntegrationModule }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxValidatorComponent, decorators: [{
type: Component,
args: [{
selector: 'dx-validator',
standalone: true,
template: '',
host: { ngSkipHydration: 'true' },
imports: [DxIntegrationModule],
providers: [
DxTemplateHost,
WatcherHelper,
NestedOptionHost,
IterableDifferHelper
]
}]
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.DxTemplateHost }, { type: i1.WatcherHelper }, { type: i1.IterableDifferHelper }, { type: i1.NestedOptionHost, decorators: [{
type: SkipSelf
}, {
type: Optional
}, {
type: Host
}] }, { type: i1.NestedOptionHost }, { type: i0.TransferState }, { type: undefined, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }], propDecorators: { adapter: [{
type: Input
}], elementAttr: [{
type: Input
}], height: [{
type: Input
}], name: [{
type: Input
}], validationGroup: [{
type: Input
}], validationRules: [{
type: Input
}], width: [{
type: Input
}], onDisposing: [{
type: Output
}], onInitialized: [{
type: Output
}], onOptionChanged: [{
type: Output
}], onValidated: [{
type: Output
}], adapterChange: [{
type: Output
}], elementAttrChange: [{
type: Output
}], heightChange: [{
type: Output
}], nameChange: [{
type: Output
}], validationGroupChange: [{
type: Output
}], validationRulesChange: [{
type: Output
}], widthChange: [{
type: Output
}], asyncRulesChildren: [{
type: ContentChildren,
args: [DxiValidatorAsyncRuleComponent]
}], compareRulesChildren: [{
type: ContentChildren,
args: [DxiValidatorCompareRuleComponent]
}], customRulesChildren: [{
type: ContentChildren,
args: [DxiValidatorCustomRuleComponent]
}], emailRulesChildren: [{
type: ContentChildren,
args: [DxiValidatorEmailRuleComponent]
}], numericRulesChildren: [{
type: ContentChildren,
args: [DxiValidatorNumericRuleComponent]
}], patternRulesChildren: [{
type: ContentChildren,
args: [DxiValidatorPatternRuleComponent]
}], rangeRulesChildren: [{
type: ContentChildren,
args: [DxiValidatorRangeRuleComponent]
}], requiredRulesChildren: [{
type: ContentChildren,
args: [DxiValidatorRequiredRuleComponent]
}], stringLengthRulesChildren: [{
type: ContentChildren,
args: [DxiValidatorStringLengthRuleComponent]
}], validationRulesChildren: [{
type: ContentChildren,
args: [DxiValidatorValidationRuleComponent]
}], validationRulesLegacyChildren: [{
type: ContentChildren,
args: [DxiValidationRuleComponent]
}] } });
class DxValidatorModule {
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxValidatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DxValidatorModule, imports: [DxValidatorComponent, DxoAdapterModule,
DxiValidationRuleModule,
DxoValidatorAdapterModule,
DxiValidatorAsyncRuleModule,
DxiValidatorCompareRuleModule,
DxiValidatorCustomRuleModule,
DxiValidatorEmailRuleModule,
DxiValidatorNumericRuleModule,
DxiValidatorPatternRuleModule,
DxiValidatorRangeRuleModule,
DxiValidatorRequiredRuleModule,
DxiValidatorStringLengthRuleModule,
DxiValidatorValidationRuleModule,
DxIntegrationModule,
DxTemplateModule], exports: [DxValidatorComponent, DxoAdapterModule,
DxiValidationRuleModule,
DxoValidatorAdapterModule,
DxiValidatorAsyncRuleModule,
DxiValidatorCompareRuleModule,
DxiValidatorCustomRuleModule,
DxiValidatorEmailRuleModule,
DxiValidatorNumericRuleModule,
DxiValidatorPatternRuleModule,
DxiValidatorRangeRuleModule,
DxiValidatorRequiredRuleModule,
DxiValidatorStringLengthRuleModule,
DxiValidatorValidationRuleModule,
DxTemplateModule] });
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxValidatorModule, imports: [DxValidatorComponent,
DxoAdapterModule,
DxiValidationRuleModule,
DxoValidatorAdapterModule,
DxiValidatorAsyncRuleModule,
DxiValidatorCompareRuleModule,
DxiValidatorCustomRuleModule,
DxiValidatorEmailRuleModule,
DxiValidatorNumericRuleModule,
DxiValidatorPatternRuleModule,
DxiValidatorRangeRuleModule,
DxiValidatorRequiredRuleModule,
DxiValidatorStringLengthRuleModule,
DxiValidatorValidationRuleModule,
DxIntegrationModule,
DxTemplateModule, DxoAdapterModule,
DxiValidationRuleModule,
DxoValidatorAdapterModule,
DxiValidatorAsyncRuleModule,
DxiValidatorCompareRuleModule,
DxiValidatorCustomRuleModule,
DxiValidatorEmailRuleModule,
DxiValidatorNumericRuleModule,
DxiValidatorPatternRuleModule,
DxiValidatorRangeRuleModule,
DxiValidatorRequiredRuleModule,
DxiValidatorStringLengthRuleModule,
DxiValidatorValidationRuleModule,
DxTemplateModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxValidatorModule, decorators: [{
type: NgModule,
args: [{
imports: [
DxValidatorComponent,
DxoAdapterModule,
DxiValidationRuleModule,
DxoValidatorAdapterModule,
DxiValidatorAsyncRuleModule,
DxiValidatorCompareRuleModule,
DxiValidatorCustomRuleModule,
DxiValidatorEmailRuleModule,
DxiValidatorNumericRuleModule,
DxiValidatorPatternRuleModule,
DxiValidatorRangeRuleModule,
DxiValidatorRequiredRuleModule,
DxiValidatorStringLengthRuleModule,
DxiValidatorValidationRuleModule,
DxIntegrationModule,
DxTemplateModule
],
exports: [
DxValidatorComponent,
DxoAdapterModule,
DxiValidationRuleModule,
DxoValidatorAdapterModule,
DxiValidatorAsyncRuleModule,
DxiValidatorCompareRuleModule,
DxiValidatorCustomRuleModule,
DxiValidatorEmailRuleModule,
DxiValidatorNumericRuleModule,
DxiValidatorPatternRuleModule,
DxiValidatorRangeRuleModule,
DxiValidatorRequiredRuleModule,
DxiValidatorStringLengthRuleModule,
DxiValidatorValidationRuleModule,
DxTemplateModule
]
}]
}] });
/**
* Generated bundle index. Do not edit.
*/
export { DxValidatorComponent, DxValidatorModule };
//# sourceMappingURL=devextreme-angular-ui-validator.mjs.map