UNPKG

devextreme-angular

Version:

Angular UI and visualization components based on DevExtreme widgets

1 lines • 211 kB
{"version":3,"file":"devextreme-angular-ui-form-nested.mjs","sources":["../../../dist/ui/form/nested/async-rule-dxi.ts","../../../dist/ui/form/nested/button-item-dxi.ts","../../../dist/ui/form/nested/button-options.ts","../../../dist/ui/form/nested/col-count-by-screen.ts","../../../dist/ui/form/nested/compare-rule-dxi.ts","../../../dist/ui/form/nested/custom-rule-dxi.ts","../../../dist/ui/form/nested/email-rule-dxi.ts","../../../dist/ui/form/nested/empty-item-dxi.ts","../../../dist/ui/form/nested/group-item-dxi.ts","../../../dist/ui/form/nested/numeric-rule-dxi.ts","../../../dist/ui/form/nested/pattern-rule-dxi.ts","../../../dist/ui/form/nested/range-rule-dxi.ts","../../../dist/ui/form/nested/required-rule-dxi.ts","../../../dist/ui/form/nested/string-length-rule-dxi.ts","../../../dist/ui/form/nested/tab-dxi.ts","../../../dist/ui/form/nested/validation-rule-dxi.ts","../../../dist/ui/form/nested/item-dxi.ts","../../../dist/ui/form/nested/label.ts","../../../dist/ui/form/nested/simple-item-dxi.ts","../../../dist/ui/form/nested/tab-panel-options-item-dxi.ts","../../../dist/ui/form/nested/tab-panel-options.ts","../../../dist/ui/form/nested/tabbed-item-dxi.ts","../../../dist/ui/form/nested/index.ts","../../../dist/ui/form/nested/devextreme-angular-ui-form-nested.ts"],"sourcesContent":["/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { ValidationRuleType } from 'devextreme/common';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-async-rule',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormAsyncRuleComponent extends CollectionNestedOption {\r\n @Input()\r\n get ignoreEmptyValue(): boolean {\r\n return this._getOption('ignoreEmptyValue');\r\n }\r\n set ignoreEmptyValue(value: boolean) {\r\n this._setOption('ignoreEmptyValue', value);\r\n }\r\n\r\n @Input()\r\n get message(): string {\r\n return this._getOption('message');\r\n }\r\n set message(value: string) {\r\n this._setOption('message', value);\r\n }\r\n\r\n @Input()\r\n get reevaluate(): boolean {\r\n return this._getOption('reevaluate');\r\n }\r\n set reevaluate(value: boolean) {\r\n this._setOption('reevaluate', value);\r\n }\r\n\r\n @Input()\r\n get type(): ValidationRuleType {\r\n return this._getOption('type');\r\n }\r\n set type(value: ValidationRuleType) {\r\n this._setOption('type', value);\r\n }\r\n\r\n @Input()\r\n get validationCallback(): ((options: { column: Record<string, any>, data: Record<string, any>, formItem: Record<string, any>, rule: Record<string, any>, validator: Record<string, any>, value: string | number }) => any) {\r\n return this._getOption('validationCallback');\r\n }\r\n set validationCallback(value: ((options: { column: Record<string, any>, data: Record<string, any>, formItem: Record<string, any>, rule: Record<string, any>, validator: Record<string, any>, value: string | number }) => any)) {\r\n this._setOption('validationCallback', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'validationRules';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormAsyncRuleComponent\r\n ],\r\n exports: [\r\n DxiFormAsyncRuleComponent\r\n ],\r\n})\r\nexport class DxiFormAsyncRuleModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { dxButtonOptions } from 'devextreme/ui/button';\r\nimport { HorizontalAlignment, VerticalAlignment } from 'devextreme/common';\r\nimport { FormItemType } from 'devextreme/ui/form';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-button-item',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormButtonItemComponent extends CollectionNestedOption {\r\n @Input()\r\n get buttonOptions(): dxButtonOptions | undefined {\r\n return this._getOption('buttonOptions');\r\n }\r\n set buttonOptions(value: dxButtonOptions | undefined) {\r\n this._setOption('buttonOptions', value);\r\n }\r\n\r\n @Input()\r\n get colSpan(): number | undefined {\r\n return this._getOption('colSpan');\r\n }\r\n set colSpan(value: number | undefined) {\r\n this._setOption('colSpan', value);\r\n }\r\n\r\n @Input()\r\n get cssClass(): string | undefined {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value: string | undefined) {\r\n this._setOption('cssClass', value);\r\n }\r\n\r\n @Input()\r\n get horizontalAlignment(): HorizontalAlignment {\r\n return this._getOption('horizontalAlignment');\r\n }\r\n set horizontalAlignment(value: HorizontalAlignment) {\r\n this._setOption('horizontalAlignment', value);\r\n }\r\n\r\n @Input()\r\n get itemType(): FormItemType {\r\n return this._getOption('itemType');\r\n }\r\n set itemType(value: FormItemType) {\r\n this._setOption('itemType', value);\r\n }\r\n\r\n @Input()\r\n get name(): string | undefined {\r\n return this._getOption('name');\r\n }\r\n set name(value: string | undefined) {\r\n this._setOption('name', value);\r\n }\r\n\r\n @Input()\r\n get verticalAlignment(): VerticalAlignment {\r\n return this._getOption('verticalAlignment');\r\n }\r\n set verticalAlignment(value: VerticalAlignment) {\r\n this._setOption('verticalAlignment', value);\r\n }\r\n\r\n @Input()\r\n get visible(): boolean {\r\n return this._getOption('visible');\r\n }\r\n set visible(value: boolean) {\r\n this._setOption('visible', value);\r\n }\r\n\r\n @Input()\r\n get visibleIndex(): number | undefined {\r\n return this._getOption('visibleIndex');\r\n }\r\n set visibleIndex(value: number | undefined) {\r\n this._setOption('visibleIndex', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'items';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormButtonItemComponent\r\n ],\r\n exports: [\r\n DxiFormButtonItemComponent\r\n ],\r\n})\r\nexport class DxiFormButtonItemModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n NgModule,\r\n Host,\r\n ElementRef,\r\n Renderer2,\r\n Inject,\r\n AfterViewInit,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n\r\nimport { ClickEvent, ContentReadyEvent, DisposingEvent, InitializedEvent, OptionChangedEvent } from 'devextreme/ui/button';\r\nimport { ButtonStyle, ButtonType } from 'devextreme/common';\r\n\r\nimport {\r\n NestedOptionHost,\r\n extractTemplate,\r\n DxTemplateDirective,\r\n IDxTemplateHost,\r\n DxTemplateHost\r\n} from 'devextreme-angular/core';\r\nimport { NestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxo-form-button-options',\r\n template: '<ng-content></ng-content>',\r\n styles: [':host { display: block; }'],\r\n providers: [NestedOptionHost, DxTemplateHost]\r\n})\r\nexport class DxoFormButtonOptionsComponent extends NestedOption implements AfterViewInit, OnDestroy, OnInit,\r\n IDxTemplateHost {\r\n @Input()\r\n get accessKey(): string | undefined {\r\n return this._getOption('accessKey');\r\n }\r\n set accessKey(value: string | undefined) {\r\n this._setOption('accessKey', value);\r\n }\r\n\r\n @Input()\r\n get activeStateEnabled(): boolean {\r\n return this._getOption('activeStateEnabled');\r\n }\r\n set activeStateEnabled(value: boolean) {\r\n this._setOption('activeStateEnabled', value);\r\n }\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._getOption('disabled');\r\n }\r\n set disabled(value: boolean) {\r\n this._setOption('disabled', value);\r\n }\r\n\r\n @Input()\r\n get elementAttr(): Record<string, any> {\r\n return this._getOption('elementAttr');\r\n }\r\n set elementAttr(value: Record<string, any>) {\r\n this._setOption('elementAttr', value);\r\n }\r\n\r\n @Input()\r\n get focusStateEnabled(): boolean {\r\n return this._getOption('focusStateEnabled');\r\n }\r\n set focusStateEnabled(value: boolean) {\r\n this._setOption('focusStateEnabled', value);\r\n }\r\n\r\n @Input()\r\n get height(): (() => number | string) | number | string | undefined {\r\n return this._getOption('height');\r\n }\r\n set height(value: (() => number | string) | number | string | undefined) {\r\n this._setOption('height', value);\r\n }\r\n\r\n @Input()\r\n get hint(): string | undefined {\r\n return this._getOption('hint');\r\n }\r\n set hint(value: string | undefined) {\r\n this._setOption('hint', value);\r\n }\r\n\r\n @Input()\r\n get hoverStateEnabled(): boolean {\r\n return this._getOption('hoverStateEnabled');\r\n }\r\n set hoverStateEnabled(value: boolean) {\r\n this._setOption('hoverStateEnabled', value);\r\n }\r\n\r\n @Input()\r\n get icon(): string {\r\n return this._getOption('icon');\r\n }\r\n set icon(value: string) {\r\n this._setOption('icon', value);\r\n }\r\n\r\n @Input()\r\n get onClick(): ((e: ClickEvent) => void) {\r\n return this._getOption('onClick');\r\n }\r\n set onClick(value: ((e: ClickEvent) => void)) {\r\n this._setOption('onClick', value);\r\n }\r\n\r\n @Input()\r\n get onContentReady(): ((e: ContentReadyEvent) => void) {\r\n return this._getOption('onContentReady');\r\n }\r\n set onContentReady(value: ((e: ContentReadyEvent) => void)) {\r\n this._setOption('onContentReady', value);\r\n }\r\n\r\n @Input()\r\n get onDisposing(): ((e: DisposingEvent) => void) {\r\n return this._getOption('onDisposing');\r\n }\r\n set onDisposing(value: ((e: DisposingEvent) => void)) {\r\n this._setOption('onDisposing', value);\r\n }\r\n\r\n @Input()\r\n get onInitialized(): ((e: InitializedEvent) => void) {\r\n return this._getOption('onInitialized');\r\n }\r\n set onInitialized(value: ((e: InitializedEvent) => void)) {\r\n this._setOption('onInitialized', value);\r\n }\r\n\r\n @Input()\r\n get onOptionChanged(): ((e: OptionChangedEvent) => void) {\r\n return this._getOption('onOptionChanged');\r\n }\r\n set onOptionChanged(value: ((e: OptionChangedEvent) => void)) {\r\n this._setOption('onOptionChanged', value);\r\n }\r\n\r\n @Input()\r\n get rtlEnabled(): boolean {\r\n return this._getOption('rtlEnabled');\r\n }\r\n set rtlEnabled(value: boolean) {\r\n this._setOption('rtlEnabled', value);\r\n }\r\n\r\n @Input()\r\n get stylingMode(): ButtonStyle {\r\n return this._getOption('stylingMode');\r\n }\r\n set stylingMode(value: ButtonStyle) {\r\n this._setOption('stylingMode', value);\r\n }\r\n\r\n @Input()\r\n get tabIndex(): number {\r\n return this._getOption('tabIndex');\r\n }\r\n set tabIndex(value: number) {\r\n this._setOption('tabIndex', value);\r\n }\r\n\r\n @Input()\r\n get template(): any {\r\n return this._getOption('template');\r\n }\r\n set template(value: any) {\r\n this._setOption('template', value);\r\n }\r\n\r\n @Input()\r\n get text(): string {\r\n return this._getOption('text');\r\n }\r\n set text(value: string) {\r\n this._setOption('text', value);\r\n }\r\n\r\n @Input()\r\n get type(): ButtonType | string {\r\n return this._getOption('type');\r\n }\r\n set type(value: ButtonType | string) {\r\n this._setOption('type', value);\r\n }\r\n\r\n @Input()\r\n get useSubmitBehavior(): boolean {\r\n return this._getOption('useSubmitBehavior');\r\n }\r\n set useSubmitBehavior(value: boolean) {\r\n this._setOption('useSubmitBehavior', value);\r\n }\r\n\r\n @Input()\r\n get validationGroup(): string | undefined {\r\n return this._getOption('validationGroup');\r\n }\r\n set validationGroup(value: string | undefined) {\r\n this._setOption('validationGroup', value);\r\n }\r\n\r\n @Input()\r\n get visible(): boolean {\r\n return this._getOption('visible');\r\n }\r\n set visible(value: boolean) {\r\n this._setOption('visible', value);\r\n }\r\n\r\n @Input()\r\n get width(): (() => number | string) | number | string | undefined {\r\n return this._getOption('width');\r\n }\r\n set width(value: (() => number | string) | number | string | undefined) {\r\n this._setOption('width', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'buttonOptions';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost,\r\n private renderer: Renderer2,\r\n @Inject(DOCUMENT) private document: any,\r\n @Host() templateHost: DxTemplateHost,\r\n private element: ElementRef) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n templateHost.setHost(this);\r\n }\r\n\r\n setTemplate(template: DxTemplateDirective) {\r\n this.template = template;\r\n }\r\n ngAfterViewInit() {\r\n extractTemplate(this, this.element, this.renderer, this.document);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxoFormButtonOptionsComponent\r\n ],\r\n exports: [\r\n DxoFormButtonOptionsComponent\r\n ],\r\n})\r\nexport class DxoFormButtonOptionsModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { NestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxo-form-col-count-by-screen',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxoFormColCountByScreenComponent extends NestedOption implements OnDestroy, OnInit {\r\n @Input()\r\n get lg(): number | undefined {\r\n return this._getOption('lg');\r\n }\r\n set lg(value: number | undefined) {\r\n this._setOption('lg', value);\r\n }\r\n\r\n @Input()\r\n get md(): number | undefined {\r\n return this._getOption('md');\r\n }\r\n set md(value: number | undefined) {\r\n this._setOption('md', value);\r\n }\r\n\r\n @Input()\r\n get sm(): number | undefined {\r\n return this._getOption('sm');\r\n }\r\n set sm(value: number | undefined) {\r\n this._setOption('sm', value);\r\n }\r\n\r\n @Input()\r\n get xs(): number | undefined {\r\n return this._getOption('xs');\r\n }\r\n set xs(value: number | undefined) {\r\n this._setOption('xs', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'colCountByScreen';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this._addRecreatedComponent();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._addRemovedOption(this._getOptionPath());\r\n }\r\n\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxoFormColCountByScreenComponent\r\n ],\r\n exports: [\r\n DxoFormColCountByScreenComponent\r\n ],\r\n})\r\nexport class DxoFormColCountByScreenModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { ComparisonOperator, ValidationRuleType } from 'devextreme/common';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-compare-rule',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormCompareRuleComponent extends CollectionNestedOption {\r\n @Input()\r\n get comparisonTarget(): Function {\r\n return this._getOption('comparisonTarget');\r\n }\r\n set comparisonTarget(value: Function) {\r\n this._setOption('comparisonTarget', value);\r\n }\r\n\r\n @Input()\r\n get comparisonType(): ComparisonOperator {\r\n return this._getOption('comparisonType');\r\n }\r\n set comparisonType(value: ComparisonOperator) {\r\n this._setOption('comparisonType', value);\r\n }\r\n\r\n @Input()\r\n get ignoreEmptyValue(): boolean {\r\n return this._getOption('ignoreEmptyValue');\r\n }\r\n set ignoreEmptyValue(value: boolean) {\r\n this._setOption('ignoreEmptyValue', value);\r\n }\r\n\r\n @Input()\r\n get message(): string {\r\n return this._getOption('message');\r\n }\r\n set message(value: string) {\r\n this._setOption('message', value);\r\n }\r\n\r\n @Input()\r\n get type(): ValidationRuleType {\r\n return this._getOption('type');\r\n }\r\n set type(value: ValidationRuleType) {\r\n this._setOption('type', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'validationRules';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormCompareRuleComponent\r\n ],\r\n exports: [\r\n DxiFormCompareRuleComponent\r\n ],\r\n})\r\nexport class DxiFormCompareRuleModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { ValidationRuleType } from 'devextreme/common';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-custom-rule',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormCustomRuleComponent extends CollectionNestedOption {\r\n @Input()\r\n get ignoreEmptyValue(): boolean {\r\n return this._getOption('ignoreEmptyValue');\r\n }\r\n set ignoreEmptyValue(value: boolean) {\r\n this._setOption('ignoreEmptyValue', value);\r\n }\r\n\r\n @Input()\r\n get message(): string {\r\n return this._getOption('message');\r\n }\r\n set message(value: string) {\r\n this._setOption('message', value);\r\n }\r\n\r\n @Input()\r\n get reevaluate(): boolean {\r\n return this._getOption('reevaluate');\r\n }\r\n set reevaluate(value: boolean) {\r\n this._setOption('reevaluate', value);\r\n }\r\n\r\n @Input()\r\n get type(): ValidationRuleType {\r\n return this._getOption('type');\r\n }\r\n set type(value: ValidationRuleType) {\r\n this._setOption('type', value);\r\n }\r\n\r\n @Input()\r\n get validationCallback(): ((options: { column: Record<string, any>, data: Record<string, any>, formItem: Record<string, any>, rule: Record<string, any>, validator: Record<string, any>, value: string | number }) => boolean) {\r\n return this._getOption('validationCallback');\r\n }\r\n set validationCallback(value: ((options: { column: Record<string, any>, data: Record<string, any>, formItem: Record<string, any>, rule: Record<string, any>, validator: Record<string, any>, value: string | number }) => boolean)) {\r\n this._setOption('validationCallback', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'validationRules';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormCustomRuleComponent\r\n ],\r\n exports: [\r\n DxiFormCustomRuleComponent\r\n ],\r\n})\r\nexport class DxiFormCustomRuleModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { ValidationRuleType } from 'devextreme/common';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-email-rule',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormEmailRuleComponent extends CollectionNestedOption {\r\n @Input()\r\n get ignoreEmptyValue(): boolean {\r\n return this._getOption('ignoreEmptyValue');\r\n }\r\n set ignoreEmptyValue(value: boolean) {\r\n this._setOption('ignoreEmptyValue', value);\r\n }\r\n\r\n @Input()\r\n get message(): string {\r\n return this._getOption('message');\r\n }\r\n set message(value: string) {\r\n this._setOption('message', value);\r\n }\r\n\r\n @Input()\r\n get type(): ValidationRuleType {\r\n return this._getOption('type');\r\n }\r\n set type(value: ValidationRuleType) {\r\n this._setOption('type', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'validationRules';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormEmailRuleComponent\r\n ],\r\n exports: [\r\n DxiFormEmailRuleComponent\r\n ],\r\n})\r\nexport class DxiFormEmailRuleModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { FormItemType } from 'devextreme/ui/form';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-empty-item',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormEmptyItemComponent extends CollectionNestedOption {\r\n @Input()\r\n get colSpan(): number | undefined {\r\n return this._getOption('colSpan');\r\n }\r\n set colSpan(value: number | undefined) {\r\n this._setOption('colSpan', value);\r\n }\r\n\r\n @Input()\r\n get cssClass(): string | undefined {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value: string | undefined) {\r\n this._setOption('cssClass', value);\r\n }\r\n\r\n @Input()\r\n get itemType(): FormItemType {\r\n return this._getOption('itemType');\r\n }\r\n set itemType(value: FormItemType) {\r\n this._setOption('itemType', value);\r\n }\r\n\r\n @Input()\r\n get name(): string | undefined {\r\n return this._getOption('name');\r\n }\r\n set name(value: string | undefined) {\r\n this._setOption('name', value);\r\n }\r\n\r\n @Input()\r\n get visible(): boolean {\r\n return this._getOption('visible');\r\n }\r\n set visible(value: boolean) {\r\n this._setOption('visible', value);\r\n }\r\n\r\n @Input()\r\n get visibleIndex(): number | undefined {\r\n return this._getOption('visibleIndex');\r\n }\r\n set visibleIndex(value: number | undefined) {\r\n this._setOption('visibleIndex', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'items';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormEmptyItemComponent\r\n ],\r\n exports: [\r\n DxiFormEmptyItemComponent\r\n ],\r\n})\r\nexport class DxiFormEmptyItemModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n ElementRef,\r\n Renderer2,\r\n Inject,\r\n AfterViewInit,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n\r\nimport { dxFormButtonItem, dxFormEmptyItem, dxFormGroupItem, dxFormSimpleItem, dxFormTabbedItem, FormItemType } from 'devextreme/ui/form';\r\n\r\nimport {\r\n NestedOptionHost,\r\n extractTemplate,\r\n DxTemplateDirective,\r\n IDxTemplateHost,\r\n DxTemplateHost\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-group-item',\r\n template: '<ng-content></ng-content>',\r\n styles: [':host { display: block; }'],\r\n providers: [NestedOptionHost, DxTemplateHost]\r\n})\r\nexport class DxiFormGroupItemComponent extends CollectionNestedOption implements AfterViewInit,\r\n IDxTemplateHost {\r\n @Input()\r\n get alignItemLabels(): boolean {\r\n return this._getOption('alignItemLabels');\r\n }\r\n set alignItemLabels(value: boolean) {\r\n this._setOption('alignItemLabels', value);\r\n }\r\n\r\n @Input()\r\n get caption(): string | undefined {\r\n return this._getOption('caption');\r\n }\r\n set caption(value: string | undefined) {\r\n this._setOption('caption', value);\r\n }\r\n\r\n @Input()\r\n get captionTemplate(): any {\r\n return this._getOption('captionTemplate');\r\n }\r\n set captionTemplate(value: any) {\r\n this._setOption('captionTemplate', value);\r\n }\r\n\r\n @Input()\r\n get colCount(): number {\r\n return this._getOption('colCount');\r\n }\r\n set colCount(value: number) {\r\n this._setOption('colCount', value);\r\n }\r\n\r\n @Input()\r\n get colCountByScreen(): { lg?: number | undefined, md?: number | undefined, sm?: number | undefined, xs?: number | undefined } {\r\n return this._getOption('colCountByScreen');\r\n }\r\n set colCountByScreen(value: { lg?: number | undefined, md?: number | undefined, sm?: number | undefined, xs?: number | undefined }) {\r\n this._setOption('colCountByScreen', value);\r\n }\r\n\r\n @Input()\r\n get colSpan(): number | undefined {\r\n return this._getOption('colSpan');\r\n }\r\n set colSpan(value: number | undefined) {\r\n this._setOption('colSpan', value);\r\n }\r\n\r\n @Input()\r\n get cssClass(): string | undefined {\r\n return this._getOption('cssClass');\r\n }\r\n set cssClass(value: string | undefined) {\r\n this._setOption('cssClass', value);\r\n }\r\n\r\n @Input()\r\n get items(): Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem> {\r\n return this._getOption('items');\r\n }\r\n set items(value: Array<dxFormButtonItem | dxFormEmptyItem | dxFormGroupItem | dxFormSimpleItem | dxFormTabbedItem>) {\r\n this._setOption('items', value);\r\n }\r\n\r\n @Input()\r\n get itemType(): FormItemType {\r\n return this._getOption('itemType');\r\n }\r\n set itemType(value: FormItemType) {\r\n this._setOption('itemType', value);\r\n }\r\n\r\n @Input()\r\n get name(): string | undefined {\r\n return this._getOption('name');\r\n }\r\n set name(value: string | undefined) {\r\n this._setOption('name', value);\r\n }\r\n\r\n @Input()\r\n get template(): any {\r\n return this._getOption('template');\r\n }\r\n set template(value: any) {\r\n this._setOption('template', value);\r\n }\r\n\r\n @Input()\r\n get visible(): boolean {\r\n return this._getOption('visible');\r\n }\r\n set visible(value: boolean) {\r\n this._setOption('visible', value);\r\n }\r\n\r\n @Input()\r\n get visibleIndex(): number | undefined {\r\n return this._getOption('visibleIndex');\r\n }\r\n set visibleIndex(value: number | undefined) {\r\n this._setOption('visibleIndex', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'items';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost,\r\n private renderer: Renderer2,\r\n @Inject(DOCUMENT) private document: any,\r\n @Host() templateHost: DxTemplateHost,\r\n private element: ElementRef) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n templateHost.setHost(this);\r\n }\r\n\r\n setTemplate(template: DxTemplateDirective) {\r\n this.template = template;\r\n }\r\n ngAfterViewInit() {\r\n extractTemplate(this, this.element, this.renderer, this.document);\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormGroupItemComponent\r\n ],\r\n exports: [\r\n DxiFormGroupItemComponent\r\n ],\r\n})\r\nexport class DxiFormGroupItemModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { ValidationRuleType } from 'devextreme/common';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-numeric-rule',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormNumericRuleComponent extends CollectionNestedOption {\r\n @Input()\r\n get ignoreEmptyValue(): boolean {\r\n return this._getOption('ignoreEmptyValue');\r\n }\r\n set ignoreEmptyValue(value: boolean) {\r\n this._setOption('ignoreEmptyValue', value);\r\n }\r\n\r\n @Input()\r\n get message(): string {\r\n return this._getOption('message');\r\n }\r\n set message(value: string) {\r\n this._setOption('message', value);\r\n }\r\n\r\n @Input()\r\n get type(): ValidationRuleType {\r\n return this._getOption('type');\r\n }\r\n set type(value: ValidationRuleType) {\r\n this._setOption('type', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'validationRules';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormNumericRuleComponent\r\n ],\r\n exports: [\r\n DxiFormNumericRuleComponent\r\n ],\r\n})\r\nexport class DxiFormNumericRuleModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { ValidationRuleType } from 'devextreme/common';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-pattern-rule',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormPatternRuleComponent extends CollectionNestedOption {\r\n @Input()\r\n get ignoreEmptyValue(): boolean {\r\n return this._getOption('ignoreEmptyValue');\r\n }\r\n set ignoreEmptyValue(value: boolean) {\r\n this._setOption('ignoreEmptyValue', value);\r\n }\r\n\r\n @Input()\r\n get message(): string {\r\n return this._getOption('message');\r\n }\r\n set message(value: string) {\r\n this._setOption('message', value);\r\n }\r\n\r\n @Input()\r\n get pattern(): RegExp | string {\r\n return this._getOption('pattern');\r\n }\r\n set pattern(value: RegExp | string) {\r\n this._setOption('pattern', value);\r\n }\r\n\r\n @Input()\r\n get type(): ValidationRuleType {\r\n return this._getOption('type');\r\n }\r\n set type(value: ValidationRuleType) {\r\n this._setOption('type', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'validationRules';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormPatternRuleComponent\r\n ],\r\n exports: [\r\n DxiFormPatternRuleComponent\r\n ],\r\n})\r\nexport class DxiFormPatternRuleModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { ValidationRuleType } from 'devextreme/common';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-range-rule',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormRangeRuleComponent extends CollectionNestedOption {\r\n @Input()\r\n get ignoreEmptyValue(): boolean {\r\n return this._getOption('ignoreEmptyValue');\r\n }\r\n set ignoreEmptyValue(value: boolean) {\r\n this._setOption('ignoreEmptyValue', value);\r\n }\r\n\r\n @Input()\r\n get max(): Date | number | string {\r\n return this._getOption('max');\r\n }\r\n set max(value: Date | number | string) {\r\n this._setOption('max', value);\r\n }\r\n\r\n @Input()\r\n get message(): string {\r\n return this._getOption('message');\r\n }\r\n set message(value: string) {\r\n this._setOption('message', value);\r\n }\r\n\r\n @Input()\r\n get min(): Date | number | string {\r\n return this._getOption('min');\r\n }\r\n set min(value: Date | number | string) {\r\n this._setOption('min', value);\r\n }\r\n\r\n @Input()\r\n get reevaluate(): boolean {\r\n return this._getOption('reevaluate');\r\n }\r\n set reevaluate(value: boolean) {\r\n this._setOption('reevaluate', value);\r\n }\r\n\r\n @Input()\r\n get type(): ValidationRuleType {\r\n return this._getOption('type');\r\n }\r\n set type(value: ValidationRuleType) {\r\n this._setOption('type', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'validationRules';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormRangeRuleComponent\r\n ],\r\n exports: [\r\n DxiFormRangeRuleComponent\r\n ],\r\n})\r\nexport class DxiFormRangeRuleModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { ValidationRuleType } from 'devextreme/common';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-required-rule',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormRequiredRuleComponent extends CollectionNestedOption {\r\n @Input()\r\n get message(): string {\r\n return this._getOption('message');\r\n }\r\n set message(value: string) {\r\n this._setOption('message', value);\r\n }\r\n\r\n @Input()\r\n get trim(): boolean {\r\n return this._getOption('trim');\r\n }\r\n set trim(value: boolean) {\r\n this._setOption('trim', value);\r\n }\r\n\r\n @Input()\r\n get type(): ValidationRuleType {\r\n return this._getOption('type');\r\n }\r\n set type(value: ValidationRuleType) {\r\n this._setOption('type', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'validationRules';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormRequiredRuleComponent\r\n ],\r\n exports: [\r\n DxiFormRequiredRuleComponent\r\n ],\r\n})\r\nexport class DxiFormRequiredRuleModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\n\r\n\r\n\r\nimport { ValidationRuleType } from 'devextreme/common';\r\n\r\nimport {\r\n NestedOptionHost,\r\n} from 'devextreme-angular/core';\r\nimport { CollectionNestedOption } from 'devextreme-angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'dxi-form-string-length-rule',\r\n template: '',\r\n styles: [''],\r\n providers: [NestedOptionHost]\r\n})\r\nexport class DxiFormStringLengthRuleComponent extends CollectionNestedOption {\r\n @Input()\r\n get ignoreEmptyValue(): boolean {\r\n return this._getOption('ignoreEmptyValue');\r\n }\r\n set ignoreEmptyValue(value: boolean) {\r\n this._setOption('ignoreEmptyValue', value);\r\n }\r\n\r\n @Input()\r\n get max(): number {\r\n return this._getOption('max');\r\n }\r\n set max(value: number) {\r\n this._setOption('max', value);\r\n }\r\n\r\n @Input()\r\n get message(): string {\r\n return this._getOption('message');\r\n }\r\n set message(value: string) {\r\n this._setOption('message', value);\r\n }\r\n\r\n @Input()\r\n get min(): number {\r\n return this._getOption('min');\r\n }\r\n set min(value: number) {\r\n this._setOption('min', value);\r\n }\r\n\r\n @Input()\r\n get trim(): boolean {\r\n return this._getOption('trim');\r\n }\r\n set trim(value: boolean) {\r\n this._setOption('trim', value);\r\n }\r\n\r\n @Input()\r\n get type(): ValidationRuleType {\r\n return this._getOption('type');\r\n }\r\n set type(value: ValidationRuleType) {\r\n this._setOption('type', value);\r\n }\r\n\r\n\r\n protected get _optionPath() {\r\n return 'validationRules';\r\n }\r\n\r\n\r\n constructor(@SkipSelf() @Host() parentOptionHost: NestedOptionHost,\r\n @Host() optionHost: NestedOptionHost) {\r\n super();\r\n parentOptionHost.setNestedOption(this);\r\n optionHost.setHost(this, this._fullOptionPath.bind(this));\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n this._deleteRemovedOptions(this._fullOptionPath());\r\n }\r\n\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n DxiFormStringLengthRuleComponent\r\n ],\r\n exports: [\r\n DxiFormStringLengthRuleComponent\r\n ],\r\n})\r\nexport class DxiFormStringLengthRuleModule { }\r\n","/*!\n * devextreme-angular\n * Version: 24.2.6\n * Build date: Mon Mar 17 2025\n *\n * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-angular\n */\n\n/* tslint:disable:max-line-length */\r\n\r\n\r\nimport {\r\n Component,\r\n NgModule,\r\n Host,\r\n ElementRef,\r\n Renderer2,\r\n Inject,\r\n AfterViewInit,\r\n SkipSelf,\r\n Input\r\n} from '@angular/core';\r\n\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n\r\nimport { dxFormButtonItem, dxFormEmptyItem, dxFormGroupItem, dxFormSimpleItem, dxFormTabbedItem } from 'devextreme/ui/form';\r\n\r\nimport {\r\n NestedOptionHost,\r\n extractTemplate,\r\n DxTemplateDirective,\r\n