UNPKG

devextreme-angular

Version:

Angular UI and visualization components based on DevExtreme widgets

1,105 lines (1,069 loc) • 101 kB
/*! * devextreme-angular * Version: 20.2.5 * Build date: Fri Jan 15 2021 * * Copyright (c) 2012 - 2021 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 */ import * as tslib_1 from "tslib"; /* tslint:disable:max-line-length */ import { BrowserTransferStateModule } from '@angular/platform-browser'; import { TransferState } from '@angular/platform-browser'; import { Component, NgModule, ElementRef, NgZone, PLATFORM_ID, Inject, Input, Output, OnDestroy, EventEmitter, forwardRef, HostListener, OnChanges, DoCheck, SimpleChanges, ContentChildren, QueryList } from '@angular/core'; import DxNumberBox from 'devextreme/ui/number_box'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { DxComponent, DxTemplateHost, DxIntegrationModule, DxTemplateModule, NestedOptionHost, IterableDifferHelper, WatcherHelper } from 'devextreme-angular/core'; import { DxiButtonModule } from 'devextreme-angular/ui/nested'; import { DxoOptionsModule } from 'devextreme-angular/ui/nested'; import { DxoFormatModule } from 'devextreme-angular/ui/nested'; import { DxiButtonComponent } from 'devextreme-angular/ui/nested'; var CUSTOM_VALUE_ACCESSOR_PROVIDER = { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(function () { return DxNumberBoxComponent; }), multi: true }; /** * The NumberBox is a UI component that displays a numeric value and allows a user to modify it by typing in a value, and incrementing or decrementing it using the keyboard or mouse. */ var DxNumberBoxComponent = /** @class */ (function (_super) { tslib_1.__extends(DxNumberBoxComponent, _super); function DxNumberBoxComponent(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) { var _this = _super.call(this, elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId) || this; _this._watcherHelper = _watcherHelper; _this._idh = _idh; _this.touched = function (_) { }; _this._createEventEmitters([ { subscribe: 'change', emit: 'onChange' }, { subscribe: 'contentReady', emit: 'onContentReady' }, { subscribe: 'copy', emit: 'onCopy' }, { subscribe: 'cut', emit: 'onCut' }, { subscribe: 'disposing', emit: 'onDisposing' }, { subscribe: 'enterKey', emit: 'onEnterKey' }, { subscribe: 'focusIn', emit: 'onFocusIn' }, { subscribe: 'focusOut', emit: 'onFocusOut' }, { subscribe: 'initialized', emit: 'onInitialized' }, { subscribe: 'input', emit: 'onInput' }, { subscribe: 'keyDown', emit: 'onKeyDown' }, { subscribe: 'keyPress', emit: 'onKeyPress' }, { subscribe: 'keyUp', emit: 'onKeyUp' }, { subscribe: 'optionChanged', emit: 'onOptionChanged' }, { subscribe: 'paste', emit: 'onPaste' }, { subscribe: 'valueChanged', emit: 'onValueChanged' }, { emit: 'accessKeyChange' }, { emit: 'activeStateEnabledChange' }, { emit: 'buttonsChange' }, { emit: 'disabledChange' }, { emit: 'elementAttrChange' }, { emit: 'focusStateEnabledChange' }, { emit: 'formatChange' }, { emit: 'heightChange' }, { emit: 'hintChange' }, { emit: 'hoverStateEnabledChange' }, { emit: 'inputAttrChange' }, { emit: 'invalidValueMessageChange' }, { emit: 'isValidChange' }, { emit: 'maxChange' }, { emit: 'minChange' }, { emit: 'modeChange' }, { emit: 'nameChange' }, { emit: 'placeholderChange' }, { emit: 'readOnlyChange' }, { emit: 'rtlEnabledChange' }, { emit: 'showClearButtonChange' }, { emit: 'showSpinButtonsChange' }, { emit: 'stepChange' }, { emit: 'stylingModeChange' }, { emit: 'tabIndexChange' }, { emit: 'textChange' }, { emit: 'useLargeSpinButtonsChange' }, { emit: 'validationErrorChange' }, { emit: 'validationErrorsChange' }, { emit: 'validationMessageModeChange' }, { emit: 'validationStatusChange' }, { emit: 'valueChange' }, { emit: 'valueChangeEventChange' }, { emit: 'visibleChange' }, { emit: 'widthChange' }, { emit: 'onBlur' } ]); _this._idh.setHost(_this); optionHost.setHost(_this); return _this; } Object.defineProperty(DxNumberBoxComponent.prototype, "accessKey", { /** * Specifies the shortcut key that sets focus on the UI component. */ get: function () { return this._getOption('accessKey'); }, set: function (value) { this._setOption('accessKey', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "activeStateEnabled", { /** * Specifies whether or not the UI component changes its state when interacting with a user. */ get: function () { return this._getOption('activeStateEnabled'); }, set: function (value) { this._setOption('activeStateEnabled', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "buttons", { /** * Allows you to add custom buttons to the input text field. */ get: function () { return this._getOption('buttons'); }, set: function (value) { this._setOption('buttons', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "disabled", { /** * Specifies whether the UI component responds to user interaction. */ get: function () { return this._getOption('disabled'); }, set: function (value) { this._setOption('disabled', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "elementAttr", { /** * Specifies the global attributes to be attached to the UI component's container element. */ get: function () { return this._getOption('elementAttr'); }, set: function (value) { this._setOption('elementAttr', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "focusStateEnabled", { /** * Specifies whether the UI component can be focused using keyboard navigation. */ get: function () { return this._getOption('focusStateEnabled'); }, set: function (value) { this._setOption('focusStateEnabled', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "format", { /** * Specifies the value's display format and controls user input accordingly. */ get: function () { return this._getOption('format'); }, set: function (value) { this._setOption('format', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "height", { /** * Specifies the UI component's height. */ get: function () { return this._getOption('height'); }, set: function (value) { this._setOption('height', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "hint", { /** * Specifies text for a hint that appears when a user pauses on the UI component. */ get: function () { return this._getOption('hint'); }, set: function (value) { this._setOption('hint', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "hoverStateEnabled", { /** * Specifies whether the UI component changes its state when a user pauses on it. */ get: function () { return this._getOption('hoverStateEnabled'); }, set: function (value) { this._setOption('hoverStateEnabled', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "inputAttr", { /** * Specifies the attributes to be passed on to the underlying HTML element. */ get: function () { return this._getOption('inputAttr'); }, set: function (value) { this._setOption('inputAttr', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "invalidValueMessage", { /** * Specifies the text of the message displayed if the specified value is not a number. */ get: function () { return this._getOption('invalidValueMessage'); }, set: function (value) { this._setOption('invalidValueMessage', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "isValid", { /** * Specifies or indicates whether the editor's value is valid. */ get: function () { return this._getOption('isValid'); }, set: function (value) { this._setOption('isValid', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "max", { /** * The maximum value accepted by the number box. */ get: function () { return this._getOption('max'); }, set: function (value) { this._setOption('max', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "min", { /** * The minimum value accepted by the number box. */ get: function () { return this._getOption('min'); }, set: function (value) { this._setOption('min', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "mode", { /** * Specifies the value to be passed to the type attribute of the underlying `` element. */ get: function () { return this._getOption('mode'); }, set: function (value) { this._setOption('mode', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "name", { /** * The value to be assigned to the `name` attribute of the underlying HTML element. */ get: function () { return this._getOption('name'); }, set: function (value) { this._setOption('name', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "placeholder", { /** * The text displayed by the UI component when the UI component value is empty. */ get: function () { return this._getOption('placeholder'); }, set: function (value) { this._setOption('placeholder', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "readOnly", { /** * Specifies whether the editor is read-only. */ get: function () { return this._getOption('readOnly'); }, set: function (value) { this._setOption('readOnly', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "rtlEnabled", { /** * Switches the UI component to a right-to-left representation. */ get: function () { return this._getOption('rtlEnabled'); }, set: function (value) { this._setOption('rtlEnabled', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "showClearButton", { /** * Specifies whether to display the Clear button in the UI component. */ get: function () { return this._getOption('showClearButton'); }, set: function (value) { this._setOption('showClearButton', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "showSpinButtons", { /** * Specifies whether to show the buttons that change the value by a step. */ get: function () { return this._getOption('showSpinButtons'); }, set: function (value) { this._setOption('showSpinButtons', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "step", { /** * Specifies how much the UI component's value changes when using the spin buttons, Up/Down arrow keys, or mouse wheel. */ get: function () { return this._getOption('step'); }, set: function (value) { this._setOption('step', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "stylingMode", { /** * Specifies how the UI component's text field is styled. */ get: function () { return this._getOption('stylingMode'); }, set: function (value) { this._setOption('stylingMode', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "tabIndex", { /** * Specifies the number of the element when the Tab key is used for navigating. */ get: function () { return this._getOption('tabIndex'); }, set: function (value) { this._setOption('tabIndex', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "text", { /** * The read-only property that holds the text displayed by the UI component input element. */ get: function () { return this._getOption('text'); }, set: function (value) { this._setOption('text', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "useLargeSpinButtons", { /** * Specifies whether to use touch friendly spin buttons. Applies only if showSpinButtons is true. */ get: function () { return this._getOption('useLargeSpinButtons'); }, set: function (value) { this._setOption('useLargeSpinButtons', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "validationError", { /** * Information on the broken validation rule. Contains the first item from the validationErrors array. */ get: function () { return this._getOption('validationError'); }, set: function (value) { this._setOption('validationError', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "validationErrors", { /** * An array of the validation rules that failed. */ get: function () { return this._getOption('validationErrors'); }, set: function (value) { this._setOption('validationErrors', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "validationMessageMode", { /** * Specifies how the message about the validation rules that are not satisfied by this editor's value is displayed. */ get: function () { return this._getOption('validationMessageMode'); }, set: function (value) { this._setOption('validationMessageMode', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "validationStatus", { /** * Indicates or specifies the current validation status. */ get: function () { return this._getOption('validationStatus'); }, set: function (value) { this._setOption('validationStatus', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "value", { /** * The current number box value. */ get: function () { return this._getOption('value'); }, set: function (value) { this._setOption('value', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "valueChangeEvent", { /** * Specifies the DOM events after which the UI component's value should be updated. */ get: function () { return this._getOption('valueChangeEvent'); }, set: function (value) { this._setOption('valueChangeEvent', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "visible", { /** * Specifies whether the UI component is visible. */ get: function () { return this._getOption('visible'); }, set: function (value) { this._setOption('visible', value); }, enumerable: true, configurable: true }); Object.defineProperty(DxNumberBoxComponent.prototype, "width", { /** * Specifies the UI component's width. */ get: function () { return this._getOption('width'); }, set: function (value) { this._setOption('width', value); }, enumerable: true, configurable: true }); DxNumberBoxComponent.prototype.change = function (_) { }; Object.defineProperty(DxNumberBoxComponent.prototype, "buttonsChildren", { get: function () { return this._getOption('buttons'); }, set: function (value) { this.setChildren('buttons', value); }, enumerable: true, configurable: true }); DxNumberBoxComponent.prototype._createInstance = function (element, options) { return new DxNumberBox(element, options); }; DxNumberBoxComponent.prototype.writeValue = function (value) { this.eventHelper.lockedValueChangeEvent = true; this.value = value; this.eventHelper.lockedValueChangeEvent = false; }; DxNumberBoxComponent.prototype.setDisabledState = function (isDisabled) { this.disabled = isDisabled; }; DxNumberBoxComponent.prototype.registerOnChange = function (fn) { this.change = fn; }; DxNumberBoxComponent.prototype.registerOnTouched = function (fn) { this.touched = fn; }; DxNumberBoxComponent.prototype._createWidget = function (element) { var _this = this; _super.prototype._createWidget.call(this, element); this.instance.on('focusOut', function (e) { _this.eventHelper.fireNgEvent('onBlur', [e]); }); }; DxNumberBoxComponent.prototype.ngOnDestroy = function () { this._destroyWidget(); }; DxNumberBoxComponent.prototype.ngOnChanges = function (changes) { _super.prototype.ngOnChanges.call(this, changes); this.setupChanges('buttons', changes); this.setupChanges('validationErrors', changes); }; DxNumberBoxComponent.prototype.setupChanges = function (prop, changes) { if (!(prop in this._optionsToUpdate)) { this._idh.setup(prop, changes); } }; DxNumberBoxComponent.prototype.ngDoCheck = function () { this._idh.doCheck('buttons'); this._idh.doCheck('validationErrors'); this._watcherHelper.checkWatchers(); _super.prototype.ngDoCheck.call(this); _super.prototype.clearChangedOptions.call(this); }; DxNumberBoxComponent.prototype._setOption = function (name, value) { var isSetup = this._idh.setupSingle(name, value); var isChanged = this._idh.getChanges(name, value) !== null; if (isSetup || isChanged) { _super.prototype._setOption.call(this, name, value); } }; DxNumberBoxComponent.ctorParameters = function () { return [ { type: ElementRef }, { type: NgZone }, { type: DxTemplateHost }, { type: WatcherHelper }, { type: IterableDifferHelper }, { type: NestedOptionHost }, { type: TransferState }, { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] } ]; }; tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "accessKey", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "activeStateEnabled", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Array), tslib_1.__metadata("design:paramtypes", [Array]) ], DxNumberBoxComponent.prototype, "buttons", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "disabled", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxNumberBoxComponent.prototype, "elementAttr", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "focusStateEnabled", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxNumberBoxComponent.prototype, "format", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxNumberBoxComponent.prototype, "height", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "hint", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "hoverStateEnabled", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxNumberBoxComponent.prototype, "inputAttr", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "invalidValueMessage", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "isValid", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Number), tslib_1.__metadata("design:paramtypes", [Number]) ], DxNumberBoxComponent.prototype, "max", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Number), tslib_1.__metadata("design:paramtypes", [Number]) ], DxNumberBoxComponent.prototype, "min", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "mode", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "name", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "placeholder", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "readOnly", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "rtlEnabled", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "showClearButton", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "showSpinButtons", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Number), tslib_1.__metadata("design:paramtypes", [Number]) ], DxNumberBoxComponent.prototype, "step", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "stylingMode", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Number), tslib_1.__metadata("design:paramtypes", [Number]) ], DxNumberBoxComponent.prototype, "tabIndex", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "text", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "useLargeSpinButtons", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxNumberBoxComponent.prototype, "validationError", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Array), tslib_1.__metadata("design:paramtypes", [Array]) ], DxNumberBoxComponent.prototype, "validationErrors", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "validationMessageMode", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "validationStatus", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Number), tslib_1.__metadata("design:paramtypes", [Number]) ], DxNumberBoxComponent.prototype, "value", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxNumberBoxComponent.prototype, "valueChangeEvent", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxNumberBoxComponent.prototype, "visible", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxNumberBoxComponent.prototype, "width", null); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onContentReady", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onCopy", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onCut", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onDisposing", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onEnterKey", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onFocusIn", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onFocusOut", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onInitialized", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onInput", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onKeyDown", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onKeyPress", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onKeyUp", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onOptionChanged", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onPaste", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onValueChanged", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "accessKeyChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "activeStateEnabledChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "buttonsChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "disabledChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "elementAttrChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "focusStateEnabledChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "formatChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "heightChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "hintChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "hoverStateEnabledChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "inputAttrChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "invalidValueMessageChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "isValidChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "maxChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "minChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "modeChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "nameChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "placeholderChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "readOnlyChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "rtlEnabledChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "showClearButtonChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "showSpinButtonsChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "stepChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "stylingModeChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "tabIndexChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "textChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "useLargeSpinButtonsChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "validationErrorChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "validationErrorsChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "validationMessageModeChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "validationStatusChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "valueChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "valueChangeEventChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "visibleChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "widthChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxNumberBoxComponent.prototype, "onBlur", void 0); tslib_1.__decorate([ HostListener('valueChange', ['$event']), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), tslib_1.__metadata("design:returntype", void 0) ], DxNumberBoxComponent.prototype, "change", null); tslib_1.__decorate([ HostListener('onBlur', ['$event']), tslib_1.__metadata("design:type", Object) ], DxNumberBoxComponent.prototype, "touched", void 0); tslib_1.__decorate([ ContentChildren(DxiButtonComponent), tslib_1.__metadata("design:type", QueryList), tslib_1.__metadata("design:paramtypes", [Object]) ], DxNumberBoxComponent.prototype, "buttonsChildren", null); DxNumberBoxComponent = tslib_1.__decorate([ Component({ selector: 'dx-number-box', template: '', providers: [ DxTemplateHost, WatcherHelper, CUSTOM_VALUE_ACCESSOR_PROVIDER, NestedOptionHost, IterableDifferHelper ] }), tslib_1.__param(7, Inject(PLATFORM_ID)), tslib_1.__metadata("design:paramtypes", [ElementRef, NgZone, DxTemplateHost, WatcherHelper, IterableDifferHelper, NestedOptionHost, TransferState, Object]) ], DxNumberBoxComponent); return DxNumberBoxComponent; }(DxComponent)); export { DxNumberBoxComponent }; var DxNumberBoxModule = /** @class */ (function () { function DxNumberBoxModule() { } DxNumberBoxModule = tslib_1.__decorate([ NgModule({ imports: [ DxiButtonModule, DxoOptionsModule, DxoFormatModule, DxIntegrationModule, DxTemplateModule, BrowserTransferStateModule ], declarations: [ DxNumberBoxComponent ], exports: [ DxNumberBoxComponent, DxiButtonModule, DxoOptionsModule, DxoFormatModule, DxTemplateModule ] }) ], DxNumberBoxModule); return DxNumberBoxModule; }()); export { DxNumberBoxModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kZXZleHRyZW1lLWFuZ3VsYXIvdWkvbnVtYmVyLWJveC8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILG9DQUFvQztBQUdwQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUNILFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxFQUVOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVCxPQUFPLEVBQ1AsYUFBYSxFQUNiLGVBQWUsRUFDZixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxXQUFXLE1BQU0sMEJBQTBCLENBQUM7QUFFbkQsT0FBTyxFQUVILGlCQUFpQixFQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDSCxXQUFXLEVBQ1gsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixhQUFhLEVBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUtsRSxJQUFNLDhCQUE4QixHQUFHO0lBQ25DLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsb0JBQW9CLEVBQXBCLENBQW9CLENBQUM7SUFDbkQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBQ0Y7OztHQUdHO0FBWUg7SUFBMEMsZ0RBQVc7SUF3MUJqRCw4QkFBWSxVQUFzQixFQUFFLE1BQWMsRUFBRSxZQUE0QixFQUNoRSxjQUE2QixFQUM3QixJQUEwQixFQUNsQyxVQUE0QixFQUM1QixhQUE0QixFQUNQLFVBQWU7UUFMNUMsWUFPSSxrQkFBTSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxTQTJEckY7UUFqRWUsb0JBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsVUFBSSxHQUFKLElBQUksQ0FBc0I7UUFoQk4sYUFBTyxHQUFHLFVBQUMsQ0FBQyxJQUFNLENBQUMsQ0FBQztRQXVCcEQsS0FBSSxDQUFDLG9CQUFvQixDQUFDO1lBQ3RCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3pDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDckQsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDckMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDbkMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDL0MsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDN0MsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDM0MsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDN0MsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDbkQsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDdkMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDM0MsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDN0MsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDdkMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUN2RCxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN2QyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3JELEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLDBCQUEwQixFQUFFO1lBQ3BDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUN6QixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUMxQixFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUM3QixFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRTtZQUNuQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDeEIsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ3hCLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUN0QixFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRTtZQUNuQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRTtZQUNyQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDekIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3JCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNyQixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDdEIsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ3RCLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQzdCLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQzFCLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQzVCLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQ2pDLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQ2pDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUN0QixFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUM3QixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUMxQixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDdEIsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUU7WUFDckMsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7WUFDakMsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7WUFDbEMsRUFBRSxJQUFJLEVBQUUsNkJBQTZCLEVBQUU7WUFDdkMsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7WUFDbEMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3ZCLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQ2xDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUN6QixFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDdkIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1NBQ3JCLENBQUMsQ0FBQztRQUVILEtBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUksQ0FBQyxDQUFDO1FBQ3hCLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSSxDQUFDLENBQUM7O0lBQzdCLENBQUM7SUFsNUJELHNCQUFJLDJDQUFTO1FBTGI7OztXQUdHO2FBRUg7WUFDSSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsQ0FBQzthQUNELFVBQWMsS0FBYTtZQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDOzs7T0FIQTtJQVdELHNCQUFJLG9EQUFrQjtRQUx0Qjs7O1dBR0c7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pELENBQUM7YUFDRCxVQUF1QixLQUFjO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQzs7O09BSEE7SUFXRCxzQkFBSSx5Q0FBTztRQUxYOzs7V0FHRzthQUVIO1lBQ0ksT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFDRCxVQUFZLEtBQXVEO1lBQy9ELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7OztPQUhBO0lBV0Qsc0JBQUksMENBQVE7UUFMWjs7O1dBR0c7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QyxDQUFDO2FBQ0QsVUFBYSxLQUFjO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7OztPQUhBO0lBV0Qsc0JBQUksNkNBQVc7UUFMZjs7O1dBR0c7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxQyxDQUFDO2FBQ0QsVUFBZ0IsS0FBVTtZQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxQyxDQUFDOzs7T0FIQTtJQVdELHNCQUFJLG1EQUFpQjtRQUxyQjs7O1dBR0c7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFDRCxVQUFzQixLQUFjO1lBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQzs7O09BSEE7SUFXRCxzQkFBSSx3Q0FBTTtRQUxWOzs7V0FHRzthQUVIO1lBQ0ksT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7YUFDRCxVQUFXLEtBQXNCO1lBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUM7OztPQUhBO0lBV0Qsc0JBQUksd0NBQU07UUFMVjs7O1dBR0c7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxDQUFDO2FBQ0QsVUFBVyxLQUFpQztZQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDOzs7T0FIQTtJQVdELHNCQUFJLHNDQUFJO1FBTFI7OztXQUdHO2FBRUg7WUFDSSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUNELFVBQVMsS0FBYTtZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDOzs7T0FIQTtJQVdELHNCQUFJLG1EQUFpQjtRQUxyQjs7O1dBR0c7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFDRCxVQUFzQixLQUFjO1lBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQzs7O09BSEE7SUFXRCxzQkFBSSwyQ0FBUztRQUxiOzs7V0FHRzthQUVIO1lBQ0ksT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFDRCxVQUFjLEtBQVU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQzs7O09BSEE7SUFXRCxzQkFBSSxxREFBbUI7UUFMdkI7OztXQUdHO2FBRUg7WUFDSSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNsRCxDQUFDO2FBQ0QsVUFBd0IsS0FBYTtZQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7OztPQUhBO0lBV0Qsc0JBQUkseUNBQU87UUFMWDs7O1dBR0c7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQ0QsVUFBWSxLQUFjO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7OztPQUhBO0lBV0Qsc0JBQUkscUNBQUc7UUFMUDs7O1dBR0c7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDO2FBQ0QsVUFBUSxLQUFhO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7OztPQUhBO0lBV0Qsc0JBQUkscUNBQUc7UUFMUDs7O1dBR0c7YUFFSDtZQUNJLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLE