@spicainternational/ngx-sds-components 2.24.3 → 2.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { SdsDurationFormatPipe } from '@spicainternational/ngx-sds-components/src/lib/duration-pipe';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "./duration.service";
@@ -7,6 +7,16 @@ import * as i3 from "devextreme-angular/ui/nested";
7
7
  import * as i4 from "@angular/common";
8
8
  import * as i5 from "devextreme-angular/core";
9
9
  import * as i6 from "@spicainternational/ngx-sds-components/src/lib/duration-pipe";
10
+ /**
11
+ * Component allows user to enter duration in h:mm format. User may also select no value is this is applicable to the
12
+ * use case. A list of pre-defined durations can be provided for easier selection.
13
+ *
14
+ * The auto resolve function tries to convert entered text into minutes. The algorithm splits entry into two parts
15
+ * hours and minutes based on delimiter or if there is none - it takes last two digits as minutes.
16
+ *
17
+ * @export
18
+ * @class SdsDurationBoxComponent
19
+ */
10
20
  export class SdsDurationBoxComponent {
11
21
  constructor(_durationInputResolver) {
12
22
  this._durationInputResolver = _durationInputResolver;
@@ -53,7 +63,27 @@ export class SdsDurationBoxComponent {
53
63
  * @memberof SdsDurationBoxComponent
54
64
  */
55
65
  this.showClearButton = false;
56
- this.rangeViolated = new EventEmitter();
66
+ /**
67
+ * Specifies how range limits are handled.
68
+ *
69
+ * @type {('fallbackToLastValue' | 'showValidationError')}
70
+ * @memberof SdsDurationBoxComponent
71
+ */
72
+ this.rangeViolationHandling = 'autoResolve';
73
+ /**
74
+ * Range violation message. Applicable when rangeViolationHandling is set to 'autoResolve'
75
+ *
76
+ * @type {string}
77
+ * @memberof SdsDurationBoxComponent
78
+ */
79
+ this.rangeViolationText = 'value is outside the valid range';
80
+ /**
81
+ * Indicates whether the editor's value is valid.
82
+ *
83
+ * @type {boolean}
84
+ * @memberof SdsDurationBoxComponent
85
+ */
86
+ this.isValid = true;
57
87
  this.elementUUID = 'sds-db-' + crypto.randomUUID();
58
88
  this.inputValue = '';
59
89
  this.showOptions = false;
@@ -76,9 +106,15 @@ export class SdsDurationBoxComponent {
76
106
  }
77
107
  };
78
108
  }
109
+ ngAfterViewInit() {
110
+ if (this._validationRule) {
111
+ this._validationRule.validationCallback = () => { return this.checkIfValid(); };
112
+ }
113
+ }
79
114
  ngOnChanges(changes) {
80
115
  if (changes['value']) {
81
116
  if (this.value === null) {
117
+ // handle null input
82
118
  if (this.allowEmptyValue) {
83
119
  this.setValue(null);
84
120
  }
@@ -88,7 +124,21 @@ export class SdsDurationBoxComponent {
88
124
  }
89
125
  }
90
126
  else {
91
- this.inputValue = this._durationPipe.transform(this.value, this.emptyValueText);
127
+ // handle value input
128
+ if (this._durationInputResolver.isValueWithinLimits(this.value, this.min, this.max)) {
129
+ this.inputValue = this._durationPipe.transform(this.value, this.emptyValueText);
130
+ }
131
+ else {
132
+ // value is out of range
133
+ if (this.rangeViolationHandling === 'autoResolve') {
134
+ this.setValue(this._durationInputResolver.getDefaultValue(this.min, this.max));
135
+ this.inputValue = this._durationPipe.transform(this.value, this.emptyValueText);
136
+ }
137
+ else {
138
+ this.inputValue = this._durationPipe.transform(this.value, this.emptyValueText);
139
+ this.setValidationStatusAndValidate(false);
140
+ }
141
+ }
92
142
  }
93
143
  }
94
144
  }
@@ -101,24 +151,34 @@ export class SdsDurationBoxComponent {
101
151
  if (!this._durationInputResolver.isValidInput(this.inputValue)) {
102
152
  // we have invalid input. use old value
103
153
  this.setInputValueInternally(this.value);
154
+ this.setValidationStatusAndValidate(true);
104
155
  }
105
156
  else {
106
157
  const resolvedValue = this._durationInputResolver.resolve(this.inputValue);
107
158
  if (resolvedValue === null && this.allowEmptyValue) {
108
159
  this.setValue(null);
160
+ this.setValidationStatusAndValidate(true);
109
161
  }
110
162
  else if (resolvedValue === null && !this.allowEmptyValue) {
111
163
  this.setValue(this._durationInputResolver.getDefaultValue());
164
+ this.setValidationStatusAndValidate(true);
112
165
  }
113
166
  else {
114
167
  // make sure that the value is within the min/max period
115
168
  if (this._durationInputResolver.isValueWithinLimits(resolvedValue, this.min, this.max)) {
116
169
  this.setValue(resolvedValue);
170
+ this.setValidationStatusAndValidate(true);
117
171
  }
118
172
  else {
119
173
  // use old value
120
- this.rangeViolated.emit({ min: this.min, max: this.max, value: resolvedValue });
121
- this.setInputValueInternally(this.value);
174
+ if (this.rangeViolationHandling === 'autoResolve') {
175
+ this.setInputValueInternally(this.value);
176
+ this.setValidationStatusAndValidate(true);
177
+ }
178
+ else {
179
+ this.setInputValueInternally(resolvedValue);
180
+ this.setValidationStatusAndValidate(false);
181
+ }
122
182
  }
123
183
  }
124
184
  }
@@ -129,6 +189,9 @@ export class SdsDurationBoxComponent {
129
189
  this.isValueSetInternally = false;
130
190
  this.setValue(value);
131
191
  }
192
+ checkIfValid() {
193
+ return this.isValid;
194
+ }
132
195
  setValue(value) {
133
196
  this.isValueEmpty = (value === null);
134
197
  this.value = value;
@@ -138,15 +201,19 @@ export class SdsDurationBoxComponent {
138
201
  setInputValueInternally(value) {
139
202
  this.isValueSetInternally = true;
140
203
  setTimeout(() => {
141
- this.inputValue = this._durationPipe.transform(this.value, this.emptyValueText);
204
+ this.inputValue = this._durationPipe.transform(value, this.emptyValueText);
142
205
  }, 0);
143
206
  }
207
+ setValidationStatusAndValidate(isValid) {
208
+ this.isValid = (this.rangeViolationHandling === 'autoResolve') || isValid;
209
+ this._validator?.instance.validate();
210
+ }
144
211
  }
145
212
  SdsDurationBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsDurationBoxComponent, deps: [{ token: i1.DurationService }], target: i0.ɵɵFactoryTarget.Component });
146
- SdsDurationBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsDurationBoxComponent, selector: "sds-duration-box", inputs: { value: "value", allowEmptyValue: "allowEmptyValue", emptyValueText: "emptyValueText", options: "options", width: "width", disabled: "disabled", showClearButton: "showClearButton", max: "max", min: "min" }, outputs: { valueChange: "valueChange", rangeViolated: "rangeViolated" }, usesOnChanges: true, ngImport: i0, template: "<dx-text-box\r\n #textbox\r\n [id]=\"elementUUID\"\r\n class=\"sds-durationbox\"\r\n [(value)]=\"inputValue\"\r\n (onKeyDown)=\"blockNonNumberOrSemicolon($event)\"\r\n (onChange)=\"resolveInput()\"\r\n [width]=\"width\"\r\n [disabled]=\"disabled\"\r\n >\r\n\r\n <!-- (onValueChanged)=\"resolveInput($event)\" -->\r\n\r\n <dxi-button\r\n *ngIf=\"allowEmptyValue && showClearButton\"\r\n name=\"clearValue\"\r\n location=\"after\"\r\n [options]=\"clearValueButton\"\r\n ></dxi-button>\r\n <dxi-button\r\n *ngIf=\"options && options.length > 0\"\r\n name=\"optionsDropdown\"\r\n location=\"after\"\r\n [options]=\"optionsDropdownButton\"\r\n ></dxi-button>\r\n</dx-text-box>\r\n\r\n\r\n<dx-popover\r\n target=\"#{{elementUUID}}\"\r\n [(visible)]=\"showOptions\"\r\n [minWidth]=\"width\"\r\n [hideOnOutsideClick]=\"true\"\r\n [wrapperAttr]=\"{ class: 'sds-durationbox-options-popover' }\"\r\n >\r\n\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view>\r\n <button\r\n class=\"dropdown-item border-0\"\r\n [class.selected] = \"isValueEmpty\"\r\n (click)=\"applyOption(null)\"\r\n > {{ emptyValueText}}\r\n </button>\r\n\r\n <div *ngFor=\"let option of options\">\r\n <button\r\n class=\"dropdown-item border-0\"\r\n [class.selected] = \"option === value\"\r\n (click)=\"applyOption(option)\"\r\n > {{option | sdsDurationFormat}}\r\n </button>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n</dx-popover>", styles: ["::ng-deep .sds-durationbox .sds-durationbox-clear-button .dx-icon{color:#999}::ng-deep .sds-durationbox-options-popover .dx-popup-content{padding:.25rem;font-size:1rem}::ng-deep .sds-durationbox-options-popover .dropdown-item:focus{outline:none}::ng-deep .sds-durationbox-options-popover .dropdown-item.selected{background-color:#dee2e6}\n"], components: [{ type: i2.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { type: i3.DxiButtonComponent, selector: "dxi-button", inputs: ["location", "name", "options", "cssClass", "disabled", "hint", "icon", "onClick", "template", "text", "visible"] }, { type: i2.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i2.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "sdsDurationFormat": i6.SdsDurationFormatPipe } });
213
+ SdsDurationBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsDurationBoxComponent, selector: "sds-duration-box", inputs: { value: "value", allowEmptyValue: "allowEmptyValue", emptyValueText: "emptyValueText", options: "options", width: "width", disabled: "disabled", showClearButton: "showClearButton", max: "max", min: "min", rangeViolationHandling: "rangeViolationHandling", rangeViolationText: "rangeViolationText" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "_validationRule", first: true, predicate: ["validationRule"], descendants: true }, { propertyName: "_validator", first: true, predicate: ["validator"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<dx-text-box\r\n #textbox\r\n [id]=\"elementUUID\"\r\n class=\"sds-durationbox\"\r\n [(value)]=\"inputValue\"\r\n (onKeyDown)=\"blockNonNumberOrSemicolon($event)\"\r\n (onChange)=\"resolveInput()\"\r\n [width]=\"width\"\r\n [disabled]=\"disabled\"\r\n >\r\n\r\n <dx-validator \r\n #validator\r\n *ngIf=\"rangeViolationHandling === 'markAsInvalid'\">\r\n <dxi-validation-rule\r\n #validationRule\r\n type=\"custom\"\r\n [message]=\"rangeViolationText\"\r\n [reevaluate]=\"true\"\r\n ></dxi-validation-rule>\r\n </dx-validator>\r\n\r\n <dxi-button\r\n *ngIf=\"allowEmptyValue && showClearButton\"\r\n name=\"clearValue\"\r\n location=\"after\"\r\n [options]=\"clearValueButton\"\r\n ></dxi-button>\r\n \r\n <dxi-button\r\n *ngIf=\"options && options.length > 0\"\r\n name=\"optionsDropdown\"\r\n location=\"after\"\r\n [options]=\"optionsDropdownButton\"\r\n ></dxi-button>\r\n</dx-text-box>\r\n\r\n\r\n<dx-popover\r\n target=\"#{{elementUUID}}\"\r\n [(visible)]=\"showOptions\"\r\n [minWidth]=\"width\"\r\n [hideOnOutsideClick]=\"true\"\r\n [wrapperAttr]=\"{ class: 'sds-durationbox-options-popover' }\"\r\n >\r\n\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view>\r\n <button\r\n class=\"dropdown-item border-0\"\r\n [class.selected] = \"isValueEmpty\"\r\n (click)=\"applyOption(null)\"\r\n > {{ emptyValueText}}\r\n </button>\r\n\r\n <div *ngFor=\"let option of options\">\r\n <button\r\n class=\"dropdown-item border-0\"\r\n [class.selected] = \"option === value\"\r\n (click)=\"applyOption(option)\"\r\n > {{option | sdsDurationFormat}}\r\n </button>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n</dx-popover>", styles: ["::ng-deep .sds-durationbox .sds-durationbox-clear-button .dx-icon{color:#999}::ng-deep .sds-durationbox-options-popover .dx-popup-content{padding:.25rem;font-size:1rem}::ng-deep .sds-durationbox-options-popover .dropdown-item:focus{outline:none}::ng-deep .sds-durationbox-options-popover .dropdown-item.selected{background-color:#dee2e6}\n"], components: [{ type: i2.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { type: i2.DxValidatorComponent, selector: "dx-validator", inputs: ["adapter", "elementAttr", "height", "name", "validationGroup", "validationRules", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onValidated", "adapterChange", "elementAttrChange", "heightChange", "nameChange", "validationGroupChange", "validationRulesChange", "widthChange"] }, { type: i3.DxiValidationRuleComponent, selector: "dxi-validation-rule", inputs: ["message", "trim", "type", "ignoreEmptyValue", "max", "min", "reevaluate", "validationCallback", "comparisonTarget", "comparisonType", "pattern"] }, { type: i3.DxiButtonComponent, selector: "dxi-button", inputs: ["location", "name", "options", "cssClass", "disabled", "hint", "icon", "onClick", "template", "text", "visible"] }, { type: i2.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i2.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "sdsDurationFormat": i6.SdsDurationFormatPipe } });
147
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsDurationBoxComponent, decorators: [{
148
215
  type: Component,
149
- args: [{ selector: 'sds-duration-box', template: "<dx-text-box\r\n #textbox\r\n [id]=\"elementUUID\"\r\n class=\"sds-durationbox\"\r\n [(value)]=\"inputValue\"\r\n (onKeyDown)=\"blockNonNumberOrSemicolon($event)\"\r\n (onChange)=\"resolveInput()\"\r\n [width]=\"width\"\r\n [disabled]=\"disabled\"\r\n >\r\n\r\n <!-- (onValueChanged)=\"resolveInput($event)\" -->\r\n\r\n <dxi-button\r\n *ngIf=\"allowEmptyValue && showClearButton\"\r\n name=\"clearValue\"\r\n location=\"after\"\r\n [options]=\"clearValueButton\"\r\n ></dxi-button>\r\n <dxi-button\r\n *ngIf=\"options && options.length > 0\"\r\n name=\"optionsDropdown\"\r\n location=\"after\"\r\n [options]=\"optionsDropdownButton\"\r\n ></dxi-button>\r\n</dx-text-box>\r\n\r\n\r\n<dx-popover\r\n target=\"#{{elementUUID}}\"\r\n [(visible)]=\"showOptions\"\r\n [minWidth]=\"width\"\r\n [hideOnOutsideClick]=\"true\"\r\n [wrapperAttr]=\"{ class: 'sds-durationbox-options-popover' }\"\r\n >\r\n\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view>\r\n <button\r\n class=\"dropdown-item border-0\"\r\n [class.selected] = \"isValueEmpty\"\r\n (click)=\"applyOption(null)\"\r\n > {{ emptyValueText}}\r\n </button>\r\n\r\n <div *ngFor=\"let option of options\">\r\n <button\r\n class=\"dropdown-item border-0\"\r\n [class.selected] = \"option === value\"\r\n (click)=\"applyOption(option)\"\r\n > {{option | sdsDurationFormat}}\r\n </button>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n</dx-popover>", styles: ["::ng-deep .sds-durationbox .sds-durationbox-clear-button .dx-icon{color:#999}::ng-deep .sds-durationbox-options-popover .dx-popup-content{padding:.25rem;font-size:1rem}::ng-deep .sds-durationbox-options-popover .dropdown-item:focus{outline:none}::ng-deep .sds-durationbox-options-popover .dropdown-item.selected{background-color:#dee2e6}\n"] }]
216
+ args: [{ selector: 'sds-duration-box', template: "<dx-text-box\r\n #textbox\r\n [id]=\"elementUUID\"\r\n class=\"sds-durationbox\"\r\n [(value)]=\"inputValue\"\r\n (onKeyDown)=\"blockNonNumberOrSemicolon($event)\"\r\n (onChange)=\"resolveInput()\"\r\n [width]=\"width\"\r\n [disabled]=\"disabled\"\r\n >\r\n\r\n <dx-validator \r\n #validator\r\n *ngIf=\"rangeViolationHandling === 'markAsInvalid'\">\r\n <dxi-validation-rule\r\n #validationRule\r\n type=\"custom\"\r\n [message]=\"rangeViolationText\"\r\n [reevaluate]=\"true\"\r\n ></dxi-validation-rule>\r\n </dx-validator>\r\n\r\n <dxi-button\r\n *ngIf=\"allowEmptyValue && showClearButton\"\r\n name=\"clearValue\"\r\n location=\"after\"\r\n [options]=\"clearValueButton\"\r\n ></dxi-button>\r\n \r\n <dxi-button\r\n *ngIf=\"options && options.length > 0\"\r\n name=\"optionsDropdown\"\r\n location=\"after\"\r\n [options]=\"optionsDropdownButton\"\r\n ></dxi-button>\r\n</dx-text-box>\r\n\r\n\r\n<dx-popover\r\n target=\"#{{elementUUID}}\"\r\n [(visible)]=\"showOptions\"\r\n [minWidth]=\"width\"\r\n [hideOnOutsideClick]=\"true\"\r\n [wrapperAttr]=\"{ class: 'sds-durationbox-options-popover' }\"\r\n >\r\n\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-scroll-view>\r\n <button\r\n class=\"dropdown-item border-0\"\r\n [class.selected] = \"isValueEmpty\"\r\n (click)=\"applyOption(null)\"\r\n > {{ emptyValueText}}\r\n </button>\r\n\r\n <div *ngFor=\"let option of options\">\r\n <button\r\n class=\"dropdown-item border-0\"\r\n [class.selected] = \"option === value\"\r\n (click)=\"applyOption(option)\"\r\n > {{option | sdsDurationFormat}}\r\n </button>\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n</dx-popover>", styles: ["::ng-deep .sds-durationbox .sds-durationbox-clear-button .dx-icon{color:#999}::ng-deep .sds-durationbox-options-popover .dx-popup-content{padding:.25rem;font-size:1rem}::ng-deep .sds-durationbox-options-popover .dropdown-item:focus{outline:none}::ng-deep .sds-durationbox-options-popover .dropdown-item.selected{background-color:#dee2e6}\n"] }]
150
217
  }], ctorParameters: function () { return [{ type: i1.DurationService }]; }, propDecorators: { value: [{
151
218
  type: Input
152
219
  }], valueChange: [{
@@ -167,7 +234,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
167
234
  type: Input
168
235
  }], min: [{
169
236
  type: Input
170
- }], rangeViolated: [{
171
- type: Output
237
+ }], rangeViolationHandling: [{
238
+ type: Input
239
+ }], rangeViolationText: [{
240
+ type: Input
241
+ }], _validationRule: [{
242
+ type: ViewChild,
243
+ args: ['validationRule', { static: false }]
244
+ }], _validator: [{
245
+ type: ViewChild,
246
+ args: ['validator', { static: false }]
172
247
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2R1cmF0aW9uLWJveC9kdXJhdGlvbi1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvZHVyYXRpb24tYm94L2R1cmF0aW9uLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7O0FBU3JHLE1BQU0sT0FBTyx1QkFBdUI7SUEwRmhDLFlBQ1ksc0JBQXVDO1FBQXZDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBaUI7UUExRm5EOzs7OztXQUtHO1FBQ00sVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDM0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUUxRDs7Ozs7V0FLRztRQUNNLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBRXpDOzs7OztXQUtHO1FBQ00sbUJBQWMsR0FBVyxTQUFTLENBQUM7UUFVNUM7Ozs7O1dBS0c7UUFDTSxVQUFLLEdBQVcsT0FBTyxDQUFDO1FBRWpDOzs7OztXQUtHO1FBQ00sYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVuQzs7Ozs7V0FLRztRQUNNLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBbUJoQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBRWpFLGdCQUFXLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU5QyxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGdCQUFX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QkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBUUUsZUFBZTtzQkFBdkIsS0FBSztnQkFRRyxjQUFjO3NCQUF0QixLQUFLO2dCQVFHLE9BQU87c0JBQWYsS0FBSztnQkFRRyxLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsUUFBUTtzQkFBaEIsS0FBSztnQkFRRyxlQUFlO3NCQUF2QixLQUFLO2dCQVFHLEdBQUc7c0JBQVgsS0FBSztnQkFRRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZHNEdXJhdGlvbkZvcm1hdFBpcGUgfSBmcm9tICdAc3BpY2FpbnRlcm5hdGlvbmFsL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2R1cmF0aW9uLXBpcGUnO1xyXG5pbXBvcnQgeyBEdXJhdGlvbkJveFJhbmdlVmlvbGF0aW9uIH0gZnJvbSAnLi9kdXJhdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IER1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vZHVyYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc2RzLWR1cmF0aW9uLWJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHVyYXRpb24tYm94LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2R1cmF0aW9uLWJveC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzRHVyYXRpb25Cb3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgICAvKipcclxuICAgICAqIER1cmF0aW9uIGxlbmd0aCBleHByZXNzZWQgaW4gbWludXRlczsgd2hlbiB3ZSBhbGxvdyBlbXB0eSB2YWx1ZXMgdGhpcyBwcm9wZXJ0eSBjYW4gYmUgbnVsbC5cclxuICAgICAqXHJcbiAgICAgKiBAdHlwZSB7KG51bWJlciB8IG51bGwpfVxyXG4gICAgICogQG1lbWJlcm9mIFNkc0R1cmF0aW9uQm94Q29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgbnVsbD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFsbG93IHVzZXIgdG8gc2VsZWN0IGVtcHR5IHZhbHVlLiBZb3Ugc2hvdWxkIHByb3ZpZGUgZW1wdHlWYWx1ZVRleHQgaW4gdGhpcyBjYXNlLiBUaGUgZW1pdHRlZCB2YWx1ZSBpcyAnbnVsbCcuXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgKiBAbWVtYmVyb2YgU2RzRHVyYXRpb25Cb3hDb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgYWxsb3dFbXB0eVZhbHVlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRleHQgdG8gYmUgZGlzcGxheWVkIHdoZW4gdmFsdWUgaXMgY2xlYXJlZFxyXG4gICAgICpcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKiBAbWVtYmVyb2YgU2RzRHVyYXRpb25Cb3hDb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgZW1wdHlWYWx1ZVRleHQ6IHN0cmluZyA9ICdub3Qgc2V0JztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmF5IG9mIHByZS1kZWZpbmVkIGR1cmF0aW9ucyB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluIGRyb3Bkb3duIGZvciBlYXNpZXIgc2VsZWN0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEB0eXBlIHtudW1iZXJbXX1cclxuICAgICAqIEBtZW1iZXJvZiBTZHNEdXJhdGlvbkJveENvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBvcHRpb25zPzogbnVtYmVyW107XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogV2lkdGggb2YgY29tcG9uZW50LiBCeSBkZWZhdWx0IDEwcmVtLlxyXG4gICAgICpcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKiBAbWVtYmVyb2YgU2RzRHVyYXRpb25Cb3hDb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgd2lkdGg6IHN0cmluZyA9ICcxMHJlbSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgVUkgY29tcG9uZW50IHJlc3BvbmRzIHRvIHVzZXIgaW50ZXJhY3Rpb24uXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgKiBAbWVtYmVyb2YgU2RzRHVyYXRpb25Cb3hDb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBTcGVjaWZpZXMgd2hldGhlciB0byBkaXNwbGF5IHRoZSBDbGVhciBidXR0b24gaW4gdGhlIFVJIGNvbXBvbmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBtZW1iZXJvZiBTZHNEdXJhdGlvbkJveENvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBzaG93Q2xlYXJCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtYXhpbXVtIHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBkdXJhdGlvbiBib3guXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBtZW1iZXJvZiBTZHNEdXJhdGlvbkJveENvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBtYXg/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgZHVyYXRpb24gYm94LlxyXG4gICAgICpcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAbWVtYmVyb2YgU2RzRHVyYXRpb25Cb3hDb21wb25lbnRcclxuICAgICAqLyAgICBcclxuICAgIEBJbnB1dCgpIG1pbj86IG51bWJlcjtcclxuXHJcblxyXG4gICAgQE91dHB1dCgpIHJhbmdlVmlvbGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPER1cmF0aW9uQm94UmFuZ2VWaW9sYXRpb24+KCk7XHJcblxyXG4gICAgcHVibGljIGVsZW1lbnRVVUlEID0gJ3Nkcy1kYi0nICsgY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuXHJcbiAgICBwdWJsaWMgaW5wdXRWYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgc2hvd09wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIFxyXG4gICAgcHVibGljIG9wdGlvbnNEcm9wZG93bkJ1dHRvbjtcclxuICAgIHB1YmxpYyBjbGVhclZhbHVlQnV0dG9uO1xyXG5cclxuICAgIHB1YmxpYyBpc1ZhbHVlRW1wdHkgPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIGlzVmFsdWVTZXRJbnRlcm5hbGx5ID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9kdXJhdGlvblBpcGU6IFNkc0R1cmF0aW9uRm9ybWF0UGlwZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9kdXJhdGlvbklucHV0UmVzb2x2ZXI6IER1cmF0aW9uU2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX2R1cmF0aW9uUGlwZSA9IG5ldyBTZHNEdXJhdGlvbkZvcm1hdFBpcGUoKTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm9wdGlvbnNEcm9wZG93bkJ1dHRvbiA9ICB7XHJcbiAgICAgICAgICAgIGljb246ICdzcGluZG93bicsXHJcbiAgICAgICAgICAgIHN0eWxpbmdNb2RlOiAndGV4dCcsXHJcbiAgICBcclxuICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9ICF0aGlzLnNob3dPcHRpb25zO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNsZWFyVmFsdWVCdXR0b24gPSAge1xyXG4gICAgICAgICAgICBpY29uOiAnY2xlYXInLFxyXG4gICAgICAgICAgICBzdHlsaW5nTW9kZTogJ3RleHQnLFxyXG4gICAgICAgICAgICBlbGVtZW50QXR0cjogeyBjbGFzczogJ3Nkcy1kdXJhdGlvbmJveC1jbGVhci1idXR0b24nIH0sXHJcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlPcHRpb24obnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10pIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFsbG93RW1wdHlWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5fZHVyYXRpb25JbnB1dFJlc29sdmVyLmdldERlZmF1bHRWYWx1ZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLl9kdXJhdGlvblBpcGUudHJhbnNmb3JtKHRoaXMudmFsdWUsIHRoaXMuZW1wdHlWYWx1ZVRleHQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLl9kdXJhdGlvblBpcGUudHJhbnNmb3JtKHRoaXMudmFsdWUsIHRoaXMuZW1wdHlWYWx1ZVRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgICBwdWJsaWMgYmxvY2tOb25OdW1iZXJPclNlbWljb2xvbihlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmlzVmFsdWVTZXRJbnRlcm5hbGx5ID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyByZXNvbHZlSW5wdXQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsdWVTZXRJbnRlcm5hbGx5KXtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kdXJhdGlvbklucHV0UmVzb2x2ZXIuaXNWYWxpZElucHV0KHRoaXMuaW5wdXRWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgaW52YWxpZCBpbnB1dC4gdXNlIG9sZCB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlSW50ZXJuYWxseSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkVmFsdWUgPSB0aGlzLl9kdXJhdGlvbklucHV0UmVzb2x2ZXIucmVzb2x2ZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWRWYWx1ZSA9PT0gbnVsbCAmJiB0aGlzLmFsbG93RW1wdHlWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc29sdmVkVmFsdWUgPT09IG51bGwgJiYgIXRoaXMuYWxsb3dFbXB0eVZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLl9kdXJhdGlvbklucHV0UmVzb2x2ZXIuZ2V0RGVmYXVsdFZhbHVlKCkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHZhbHVlIGlzIHdpdGhpbiB0aGUgbWluL21heCBwZXJpb2RcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZHVyYXRpb25JbnB1dFJlc29sdmVyLmlzVmFsdWVXaXRoaW5MaW1pdHMocmVzb2x2ZWRWYWx1ZSBhcyBudW1iZXIsIHRoaXMubWluLCB0aGlzLm1heCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShyZXNvbHZlZFZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2Ugb2xkIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmFuZ2VWaW9sYXRlZC5lbWl0KHttaW46IHRoaXMubWluLCBtYXg6IHRoaXMubWF4LCB2YWx1ZTogcmVzb2x2ZWRWYWx1ZX0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldElucHV0VmFsdWVJbnRlcm5hbGx5KHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXBwbHlPcHRpb24odmFsdWU6IG51bWJlciB8IG51bGwpe1xyXG4gICAgICAgIHRoaXMuc2hvd09wdGlvbnMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzVmFsdWVTZXRJbnRlcm5hbGx5ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgbnVsbCl7XHJcbiAgICAgICAgdGhpcy5pc1ZhbHVlRW1wdHkgPSAodmFsdWUgPT09IG51bGwpO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlSW50ZXJuYWxseSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRJbnB1dFZhbHVlSW50ZXJuYWxseSh2YWx1ZTogbnVtYmVyIHwgbnVsbCl7XHJcbiAgICAgICAgdGhpcy5pc1ZhbHVlU2V0SW50ZXJuYWxseSA9IHRydWU7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuX2R1cmF0aW9uUGlwZS50cmFuc2Zvcm0odGhpcy52YWx1ZSwgdGhpcy5lbXB0eVZhbHVlVGV4dCk7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxkeC10ZXh0LWJveFxyXG4gICAgI3RleHRib3hcclxuICAgIFtpZF09XCJlbGVtZW50VVVJRFwiXHJcbiAgICBjbGFzcz1cInNkcy1kdXJhdGlvbmJveFwiXHJcbiAgICBbKHZhbHVlKV09XCJpbnB1dFZhbHVlXCJcclxuICAgIChvbktleURvd24pPVwiYmxvY2tOb25OdW1iZXJPclNlbWljb2xvbigkZXZlbnQpXCJcclxuICAgIChvbkNoYW5nZSk9XCJyZXNvbHZlSW5wdXQoKVwiXHJcbiAgICBbd2lkdGhdPVwid2lkdGhcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgID5cclxuXHJcbiAgICA8IS0tIChvblZhbHVlQ2hhbmdlZCk9XCJyZXNvbHZlSW5wdXQoJGV2ZW50KVwiIC0tPlxyXG5cclxuICAgIDxkeGktYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJhbGxvd0VtcHR5VmFsdWUgJiYgc2hvd0NsZWFyQnV0dG9uXCJcclxuICAgICAgICBuYW1lPVwiY2xlYXJWYWx1ZVwiXHJcbiAgICAgICAgbG9jYXRpb249XCJhZnRlclwiXHJcbiAgICAgICAgW29wdGlvbnNdPVwiY2xlYXJWYWx1ZUJ1dHRvblwiXHJcbiAgICA+PC9keGktYnV0dG9uPlxyXG4gICAgPGR4aS1idXR0b25cclxuICAgICAgICAqbmdJZj1cIm9wdGlvbnMgJiYgb3B0aW9ucy5sZW5ndGggPiAwXCJcclxuICAgICAgICBuYW1lPVwib3B0aW9uc0Ryb3Bkb3duXCJcclxuICAgICAgICBsb2NhdGlvbj1cImFmdGVyXCJcclxuICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zRHJvcGRvd25CdXR0b25cIlxyXG4gICAgPjwvZHhpLWJ1dHRvbj5cclxuPC9keC10ZXh0LWJveD5cclxuXHJcblxyXG48ZHgtcG9wb3ZlclxyXG4gICAgdGFyZ2V0PVwiI3t7ZWxlbWVudFVVSUR9fVwiXHJcbiAgICBbKHZpc2libGUpXT1cInNob3dPcHRpb25zXCJcclxuICAgIFttaW5XaWR0aF09XCJ3aWR0aFwiXHJcbiAgICBbaGlkZU9uT3V0c2lkZUNsaWNrXT1cInRydWVcIlxyXG4gICAgW3dyYXBwZXJBdHRyXT1cInsgY2xhc3M6ICdzZHMtZHVyYXRpb25ib3gtb3B0aW9ucy1wb3BvdmVyJyB9XCJcclxuICAgID5cclxuXHJcbiAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NvbnRlbnQnXCI+XHJcbiAgICAgICAgPGR4LXNjcm9sbC12aWV3PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gYm9yZGVyLTBcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXSA9IFwiaXNWYWx1ZUVtcHR5XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhcHBseU9wdGlvbihudWxsKVwiXHJcbiAgICAgICAgICAgICAgICA+IHt7IGVtcHR5VmFsdWVUZXh0fX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbSBib3JkZXItMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXSA9IFwib3B0aW9uID09PSB2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5T3B0aW9uKG9wdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgPiB7e29wdGlvbiB8IHNkc0R1cmF0aW9uRm9ybWF0fX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2R4LXNjcm9sbC12aWV3PlxyXG4gICAgPC9kaXY+XHJcbjwvZHgtcG9wb3Zlcj4iXX0=
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2R1cmF0aW9uLWJveC9kdXJhdGlvbi1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvZHVyYXRpb24tYm94L2R1cmF0aW9uLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7QUFNckc7Ozs7Ozs7OztHQVNHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQXFIaEMsWUFDWSxzQkFBdUM7UUFBdkMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFpQjtRQXJIbkQ7Ozs7O1dBS0c7UUFDTSxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUMzQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBRTFEOzs7OztXQUtHO1FBQ00sb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFekM7Ozs7O1dBS0c7UUFDTSxtQkFBYyxHQUFXLFNBQVMsQ0FBQztRQVU1Qzs7Ozs7V0FLRztRQUNNLFVBQUssR0FBVyxPQUFPLENBQUM7UUFFakM7Ozs7O1dBS0c7UUFDTSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRW5DOzs7OztXQUtHO1FBQ00sb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFrQjFDOzs7OztXQUtHO1FBQ00sMkJBQXNCLEdBQXNDLGFBQWEsQ0FBQztRQUVuRjs7Ozs7V0FLRztRQUNNLHVCQUFrQixHQUFXLGtDQUFrQyxDQUFDO1FBRXpFOzs7OztX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QUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRU8sOEJBQThCLENBQUMsT0FBZ0I7UUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUM7UUFDMUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekMsQ0FBQzs7b0hBalBRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHVuQkN0QnBDLHNnRUFpRWE7MkZEM0NBLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDSSxrQkFBa0I7c0dBV25CLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQVFFLGVBQWU7c0JBQXZCLEtBQUs7Z0JBUUcsY0FBYztzQkFBdEIsS0FBSztnQkFRRyxPQUFPO3NCQUFmLEtBQUs7Z0JBUUcsS0FBSztzQkFBYixLQUFLO2dCQVFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUcsZUFBZTtzQkFBdkIsS0FBSztnQkFRRyxHQUFHO3NCQUFYLEtBQUs7Z0JBUUcsR0FBRztzQkFBWCxLQUFLO2dCQVFHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFRRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBdUJrRCxlQUFlO3NCQUF0RSxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDSyxVQUFVO3NCQUE1RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZHNEdXJhdGlvbkZvcm1hdFBpcGUgfSBmcm9tICdAc3BpY2FpbnRlcm5hdGlvbmFsL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2R1cmF0aW9uLXBpcGUnO1xyXG5pbXBvcnQgeyBEeFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XHJcbmltcG9ydCB7IER4aVZhbGlkYXRpb25SdWxlQ29tcG9uZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER1cmF0aW9uQm94UmFuZ2VWaW9sYXRpb25IYW5kbGluZyB9IGZyb20gJy4vZHVyYXRpb24tYm94LnR5cGVzJztcclxuaW1wb3J0IHsgRHVyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9kdXJhdGlvbi5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnQgYWxsb3dzIHVzZXIgdG8gZW50ZXIgZHVyYXRpb24gaW4gaDptbSBmb3JtYXQuIFVzZXIgbWF5IGFsc28gc2VsZWN0IG5vIHZhbHVlIGlzIHRoaXMgaXMgYXBwbGljYWJsZSB0byB0aGUgXHJcbiAqIHVzZSBjYXNlLiBBIGxpc3Qgb2YgcHJlLWRlZmluZWQgZHVyYXRpb25zIGNhbiBiZSBwcm92aWRlZCBmb3IgZWFzaWVyIHNlbGVjdGlvbi5cclxuICogXHJcbiAqIFRoZSBhdXRvIHJlc29sdmUgZnVuY3Rpb24gdHJpZXMgdG8gY29udmVydCBlbnRlcmVkIHRleHQgaW50byBtaW51dGVzLiBUaGUgYWxnb3JpdGhtIHNwbGl0cyBlbnRyeSBpbnRvIHR3byBwYXJ0cyBcclxuICogaG91cnMgYW5kIG1pbnV0ZXMgYmFzZWQgb24gZGVsaW1pdGVyIG9yIGlmIHRoZXJlIGlzIG5vbmUgLSBpdCB0YWtlcyBsYXN0IHR3byBkaWdpdHMgYXMgbWludXRlcy5cclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgU2RzRHVyYXRpb25Cb3hDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzZHMtZHVyYXRpb24tYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kdXJhdGlvbi1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZHVyYXRpb24tYm94LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZHNEdXJhdGlvbkJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICAgIC8qKlxyXG4gICAgICogRHVyYXRpb24gbGVuZ3RoIGV4cHJlc3NlZCBpbiBtaW51dGVzOyB3aGVuIHdlIGFsbG93IGVtcHR5IHZhbHVlcyB0aGlzIHByb3BlcnR5IGNhbiBiZSBudWxsLlxyXG4gICAgICpcclxuICAgICAqIEB0eXBlIHsobnVtYmVyIHwgbnVsbCl9XHJcbiAgICAgKiBAbWVtYmVyb2YgU2RzRHVyYXRpb25Cb3hDb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgdmFsdWU6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBudWxsPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWxsb3cgdXNlciB0byBzZWxlY3QgZW1wdHkgdmFsdWUuIFlvdSBzaG91bGQgcHJvdmlkZSBlbXB0eVZhbHVlVGV4dCBpbiB0aGlzIGNhc2UuIFRoZSBlbWl0dGVkIHZhbHVlIGlzICdudWxsJy5cclxuICAgICAqXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBtZW1iZXJvZiBTZHNEdXJhdGlvbkJveENvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBhbGxvd0VtcHR5VmFsdWU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGV4dCB0byBiZSBkaXNwbGF5ZWQgd2hlbiB2YWx1ZSBpcyBjbGVhcmVkXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAqIEBtZW1iZXJvZiBTZHNEdXJhdGlvbkJveENvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBlbXB0eVZhbHVlVGV4dDogc3RyaW5nID0gJ25vdCBzZXQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyYXkgb2YgcHJlLWRlZmluZWQgZHVyYXRpb25zIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gZHJvcGRvd24gZm9yIGVhc2llciBzZWxlY3Rpb24uXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGUge251bWJlcltdfVxyXG4gICAgICogQG1lbWJlcm9mIFNkc0R1cmF0aW9uQm94Q29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIG9wdGlvbnM/OiBudW1iZXJbXTtcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBXaWR0aCBvZiBjb21wb25lbnQuIEJ5IGRlZmF1bHQgMTByZW0uXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAqIEBtZW1iZXJvZiBTZHNEdXJhdGlvbkJveENvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gJzEwcmVtJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBVSSBjb21wb25lbnQgcmVzcG9uZHMgdG8gdXNlciBpbnRlcmFjdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBtZW1iZXJvZiBTZHNEdXJhdGlvbkJveENvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmllcyB3aGV0aGVyIHRvIGRpc3BsYXkgdGhlIENsZWFyIGJ1dHRvbiBpbiB0aGUgVUkgY29tcG9uZW50LlxyXG4gICAgICpcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICogQG1lbWJlcm9mIFNkc0R1cmF0aW9uQm94Q29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHNob3dDbGVhckJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1heGltdW0gdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGR1cmF0aW9uIGJveC5cclxuICAgICAqXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQG1lbWJlcm9mIFNkc0R1cmF0aW9uQm94Q29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIG1heD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtaW5pbXVtIHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBkdXJhdGlvbiBib3guXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBtZW1iZXJvZiBTZHNEdXJhdGlvbkJveENvbXBvbmVudFxyXG4gICAgICovICAgIFxyXG4gICAgQElucHV0KCkgbWluPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BlY2lmaWVzIGhvdyByYW5nZSBsaW1pdHMgYXJlIGhhbmRsZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHR5cGUgeygnZmFsbGJhY2tUb0xhc3RWYWx1ZScgfCAnc2hvd1ZhbGlkYXRpb25FcnJvcicpfVxyXG4gICAgICogQG1lbWJlcm9mIFNkc0R1cmF0aW9uQm94Q29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHJhbmdlVmlvbGF0aW9uSGFuZGxpbmc6IER1cmF0aW9uQm94UmFuZ2VWaW9sYXRpb25IYW5kbGluZyA9ICdhdXRvUmVzb2x2ZSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSYW5nZSB2aW9sYXRpb24gbWVzc2FnZS4gQXBwbGljYWJsZSB3aGVuIHJhbmdlVmlvbGF0aW9uSGFuZGxpbmcgaXMgc2V0IHRvICdhdXRvUmVzb2x2ZSdcclxuICAgICAqXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICogQG1lbWJlcm9mIFNkc0R1cmF0aW9uQm94Q29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHJhbmdlVmlvbGF0aW9uVGV4dDogc3RyaW5nID0gJ3ZhbHVlIGlzIG91dHNpZGUgdGhlIHZhbGlkIHJhbmdlJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBlZGl0b3IncyB2YWx1ZSBpcyB2YWxpZC5cclxuICAgICAqXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBtZW1iZXJvZiBTZHNEdXJhdGlvbkJveENvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNWYWxpZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cclxuXHJcbiAgICBwdWJsaWMgZWxlbWVudFVVSUQgPSAnc2RzLWRiLScgKyBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG5cclxuICAgIHB1YmxpYyBpbnB1dFZhbHVlOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBzaG93T3B0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBwdWJsaWMgb3B0aW9uc0Ryb3Bkb3duQnV0dG9uO1xyXG4gICAgcHVibGljIGNsZWFyVmFsdWVCdXR0b247XHJcblxyXG4gICAgcHVibGljIGlzVmFsdWVFbXB0eSA9IGZhbHNlO1xyXG5cclxuXHJcbiAgICBAVmlld0NoaWxkKCd2YWxpZGF0aW9uUnVsZScsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIF92YWxpZGF0aW9uUnVsZTogRHhpVmFsaWRhdGlvblJ1bGVDb21wb25lbnQgfCB1bmRlZmluZWQ7XHJcbiAgICBAVmlld0NoaWxkKCd2YWxpZGF0b3InLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBfdmFsaWRhdG9yOiBEeFZhbGlkYXRvckNvbXBvbmVudCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBwcml2YXRlIGlzVmFsdWVTZXRJbnRlcm5hbGx5ID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9kdXJhdGlvblBpcGU6IFNkc0R1cmF0aW9uRm9ybWF0UGlwZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9kdXJhdGlvbklucHV0UmVzb2x2ZXI6IER1cmF0aW9uU2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX2R1cmF0aW9uUGlwZSA9IG5ldyBTZHNEdXJhdGlvbkZvcm1hdFBpcGUoKTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm9wdGlvbnNEcm9wZG93bkJ1dHRvbiA9ICB7XHJcbiAgICAgICAgICAgIGljb246ICdzcGluZG93bicsXHJcbiAgICAgICAgICAgIHN0eWxpbmdNb2RlOiAndGV4dCcsXHJcbiAgICBcclxuICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9ICF0aGlzLnNob3dPcHRpb25zO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNsZWFyVmFsdWVCdXR0b24gPSAge1xyXG4gICAgICAgICAgICBpY29uOiAnY2xlYXInLFxyXG4gICAgICAgICAgICBzdHlsaW5nTW9kZTogJ3RleHQnLFxyXG4gICAgICAgICAgICBlbGVtZW50QXR0cjogeyBjbGFzczogJ3Nkcy1kdXJhdGlvbmJveC1jbGVhci1idXR0b24nIH0sXHJcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlPcHRpb24obnVsbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ICAgICAgICBcclxuICAgIH1cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fdmFsaWRhdGlvblJ1bGUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsaWRhdGlvblJ1bGUudmFsaWRhdGlvbkNhbGxiYWNrID0gKCkgPT4geyByZXR1cm4gdGhpcy5jaGVja0lmVmFsaWQoKSB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10pIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBudWxsIGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hbGxvd0VtcHR5VmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuX2R1cmF0aW9uSW5wdXRSZXNvbHZlci5nZXREZWZhdWx0VmFsdWUoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5fZHVyYXRpb25QaXBlLnRyYW5zZm9ybSh0aGlzLnZhbHVlLCB0aGlzLmVtcHR5VmFsdWVUZXh0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSB2YWx1ZSBpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2R1cmF0aW9uSW5wdXRSZXNvbHZlci5pc1ZhbHVlV2l0aGluTGltaXRzKHRoaXMudmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCkpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuX2R1cmF0aW9uUGlwZS50cmFuc2Zvcm0odGhpcy52YWx1ZSwgdGhpcy5lbXB0eVZhbHVlVGV4dCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIGlzIG91dCBvZiByYW5nZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJhbmdlVmlvbGF0aW9uSGFuZGxpbmcgPT09ICdhdXRvUmVzb2x2ZScpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuX2R1cmF0aW9uSW5wdXRSZXNvbHZlci5nZXREZWZhdWx0VmFsdWUodGhpcy5taW4sIHRoaXMubWF4KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuX2R1cmF0aW9uUGlwZS50cmFuc2Zvcm0odGhpcy52YWx1ZSwgdGhpcy5lbXB0eVZhbHVlVGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5fZHVyYXRpb25QaXBlLnRyYW5zZm9ybSh0aGlzLnZhbHVlLCB0aGlzLmVtcHR5VmFsdWVUZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWxpZGF0aW9uU3RhdHVzQW5kVmFsaWRhdGUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICAgIHB1YmxpYyBibG9ja05vbk51bWJlck9yU2VtaWNvbG9uKGU6IGFueSkge1xyXG4gICAgICAgIHRoaXMuaXNWYWx1ZVNldEludGVybmFsbHkgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVzb2x2ZUlucHV0KCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbHVlU2V0SW50ZXJuYWxseSl7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5fZHVyYXRpb25JbnB1dFJlc29sdmVyLmlzVmFsaWRJbnB1dCh0aGlzLmlucHV0VmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIGludmFsaWQgaW5wdXQuIHVzZSBvbGQgdmFsdWVcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZUludGVybmFsbHkodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkYXRpb25TdGF0dXNBbmRWYWxpZGF0ZSh0cnVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkVmFsdWUgPSB0aGlzLl9kdXJhdGlvbklucHV0UmVzb2x2ZXIucmVzb2x2ZSh0aGlzLmlucHV0VmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkVmFsdWUgPT09IG51bGwgJiYgdGhpcy5hbGxvd0VtcHR5VmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRhdGlvblN0YXR1c0FuZFZhbGlkYXRlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNvbHZlZFZhbHVlID09PSBudWxsICYmICF0aGlzLmFsbG93RW1wdHlWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5fZHVyYXRpb25JbnB1dFJlc29sdmVyLmdldERlZmF1bHRWYWx1ZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkYXRpb25TdGF0dXNBbmRWYWxpZGF0ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHZhbHVlIGlzIHdpdGhpbiB0aGUgbWluL21heCBwZXJpb2RcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZHVyYXRpb25JbnB1dFJlc29sdmVyLmlzVmFsdWVXaXRoaW5MaW1pdHMocmVzb2x2ZWRWYWx1ZSBhcyBudW1iZXIsIHRoaXMubWluLCB0aGlzLm1heCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShyZXNvbHZlZFZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWxpZGF0aW9uU3RhdHVzQW5kVmFsaWRhdGUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXNlIG9sZCB2YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5yYW5nZVZpb2xhdGlvbkhhbmRsaW5nID09PSAnYXV0b1Jlc29sdmUnKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZUludGVybmFsbHkodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkYXRpb25TdGF0dXNBbmRWYWxpZGF0ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZUludGVybmFsbHkocmVzb2x2ZWRWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkYXRpb25TdGF0dXNBbmRWYWxpZGF0ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFwcGx5T3B0aW9uKHZhbHVlOiBudW1iZXIgfCBudWxsKXtcclxuICAgICAgICB0aGlzLnNob3dPcHRpb25zID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc1ZhbHVlU2V0SW50ZXJuYWxseSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGVja0lmVmFsaWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKXtcclxuICAgICAgICB0aGlzLmlzVmFsdWVFbXB0eSA9ICh2YWx1ZSA9PT0gbnVsbCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB0aGlzLnNldElucHV0VmFsdWVJbnRlcm5hbGx5KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldElucHV0VmFsdWVJbnRlcm5hbGx5KHZhbHVlOiBudW1iZXIgfCBudWxsKXtcclxuICAgICAgICB0aGlzLmlzVmFsdWVTZXRJbnRlcm5hbGx5ID0gdHJ1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5fZHVyYXRpb25QaXBlLnRyYW5zZm9ybSh2YWx1ZSwgdGhpcy5lbXB0eVZhbHVlVGV4dCk7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRWYWxpZGF0aW9uU3RhdHVzQW5kVmFsaWRhdGUoaXNWYWxpZDogYm9vbGVhbil7XHJcbiAgICAgICAgdGhpcy5pc1ZhbGlkID0gKHRoaXMucmFuZ2VWaW9sYXRpb25IYW5kbGluZyA9PT0gJ2F1dG9SZXNvbHZlJykgfHwgaXNWYWxpZDtcclxuICAgICAgICB0aGlzLl92YWxpZGF0b3I/Lmluc3RhbmNlLnZhbGlkYXRlKCk7XHJcbiAgICB9XHJcblxyXG59XHJcbiIsIjxkeC10ZXh0LWJveFxyXG4gICAgI3RleHRib3hcclxuICAgIFtpZF09XCJlbGVtZW50VVVJRFwiXHJcbiAgICBjbGFzcz1cInNkcy1kdXJhdGlvbmJveFwiXHJcbiAgICBbKHZhbHVlKV09XCJpbnB1dFZhbHVlXCJcclxuICAgIChvbktleURvd24pPVwiYmxvY2tOb25OdW1iZXJPclNlbWljb2xvbigkZXZlbnQpXCJcclxuICAgIChvbkNoYW5nZSk9XCJyZXNvbHZlSW5wdXQoKVwiXHJcbiAgICBbd2lkdGhdPVwid2lkdGhcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgID5cclxuXHJcbiAgICA8ZHgtdmFsaWRhdG9yIFxyXG4gICAgICAgICN2YWxpZGF0b3JcclxuICAgICAgICAqbmdJZj1cInJhbmdlVmlvbGF0aW9uSGFuZGxpbmcgPT09ICdtYXJrQXNJbnZhbGlkJ1wiPlxyXG4gICAgICAgIDxkeGktdmFsaWRhdGlvbi1ydWxlXHJcbiAgICAgICAgICAgICN2YWxpZGF0aW9uUnVsZVxyXG4gICAgICAgICAgICB0eXBlPVwiY3VzdG9tXCJcclxuICAgICAgICAgICAgW21lc3NhZ2VdPVwicmFuZ2VWaW9sYXRpb25UZXh0XCJcclxuICAgICAgICAgICAgW3JlZXZhbHVhdGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgPjwvZHhpLXZhbGlkYXRpb24tcnVsZT5cclxuICAgIDwvZHgtdmFsaWRhdG9yPlxyXG5cclxuICAgIDxkeGktYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJhbGxvd0VtcHR5VmFsdWUgJiYgc2hvd0NsZWFyQnV0dG9uXCJcclxuICAgICAgICBuYW1lPVwiY2xlYXJWYWx1ZVwiXHJcbiAgICAgICAgbG9jYXRpb249XCJhZnRlclwiXHJcbiAgICAgICAgW29wdGlvbnNdPVwiY2xlYXJWYWx1ZUJ1dHRvblwiXHJcbiAgICA+PC9keGktYnV0dG9uPlxyXG4gICAgXHJcbiAgICA8ZHhpLWJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwib3B0aW9ucyAmJiBvcHRpb25zLmxlbmd0aCA+IDBcIlxyXG4gICAgICAgIG5hbWU9XCJvcHRpb25zRHJvcGRvd25cIlxyXG4gICAgICAgIGxvY2F0aW9uPVwiYWZ0ZXJcIlxyXG4gICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNEcm9wZG93bkJ1dHRvblwiXHJcbiAgICA+PC9keGktYnV0dG9uPlxyXG48L2R4LXRleHQtYm94PlxyXG5cclxuXHJcbjxkeC1wb3BvdmVyXHJcbiAgICB0YXJnZXQ9XCIje3tlbGVtZW50VVVJRH19XCJcclxuICAgIFsodmlzaWJsZSldPVwic2hvd09wdGlvbnNcIlxyXG4gICAgW21pbldpZHRoXT1cIndpZHRoXCJcclxuICAgIFtoaWRlT25PdXRzaWRlQ2xpY2tdPVwidHJ1ZVwiXHJcbiAgICBbd3JhcHBlckF0dHJdPVwieyBjbGFzczogJ3Nkcy1kdXJhdGlvbmJveC1vcHRpb25zLXBvcG92ZXInIH1cIlxyXG4gICAgPlxyXG5cclxuICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgZGF0YSBvZiAnY29udGVudCdcIj5cclxuICAgICAgICA8ZHgtc2Nyb2xsLXZpZXc+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24taXRlbSBib3JkZXItMFwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdID0gXCJpc1ZhbHVlRW1wdHlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5T3B0aW9uKG51bGwpXCJcclxuICAgICAgICAgICAgICAgID4ge3sgZW1wdHlWYWx1ZVRleHR9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGJvcmRlci0wXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdID0gXCJvcHRpb24gPT09IHZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlPcHRpb24ob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICA+IHt7b3B0aW9uIHwgc2RzRHVyYXRpb25Gb3JtYXR9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHgtc2Nyb2xsLXZpZXc+XHJcbiAgICA8L2Rpdj5cclxuPC9keC1wb3BvdmVyPiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { SdsDurationBoxComponent } from './duration-box.component';
4
- import { DxPopoverModule, DxScrollViewModule, DxTextBoxModule } from 'devextreme-angular';
4
+ import { DxPopoverModule, DxScrollViewModule, DxTextBoxModule, DxValidatorModule } from 'devextreme-angular';
5
5
  import { SdsDurationPipeModule } from '@spicainternational/ngx-sds-components/src/lib/duration-pipe';
6
6
  import * as i0 from "@angular/core";
7
7
  const components = [
@@ -14,13 +14,15 @@ SdsDurationBoxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ve
14
14
  SdsDurationPipeModule,
15
15
  DxTextBoxModule,
16
16
  DxPopoverModule,
17
- DxScrollViewModule], exports: [SdsDurationBoxComponent] });
17
+ DxScrollViewModule,
18
+ DxValidatorModule], exports: [SdsDurationBoxComponent] });
18
19
  SdsDurationBoxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsDurationBoxModule, imports: [[
19
20
  CommonModule,
20
21
  SdsDurationPipeModule,
21
22
  DxTextBoxModule,
22
23
  DxPopoverModule,
23
24
  DxScrollViewModule,
25
+ DxValidatorModule,
24
26
  ]] });
25
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsDurationBoxModule, decorators: [{
26
28
  type: NgModule,
@@ -34,10 +36,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
34
36
  DxTextBoxModule,
35
37
  DxPopoverModule,
36
38
  DxScrollViewModule,
39
+ DxValidatorModule,
37
40
  ],
38
41
  exports: [
39
42
  ...components
40
43
  ]
41
44
  }]
42
45
  }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24tYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2R1cmF0aW9uLWJveC9kdXJhdGlvbi1ib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOERBQThELENBQUM7O0FBSXJHLE1BQU0sVUFBVSxHQUFHO0lBQ2YsdUJBQXVCO0NBQzFCLENBQUE7QUFtQkQsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQWY3Qix1QkFBdUIsYUFHdkIsWUFBWTtRQUVaLHFCQUFxQjtRQUVyQixlQUFlO1FBQ2YsZUFBZTtRQUNmLGtCQUFrQixhQWRsQix1QkFBdUI7a0hBb0JkLG9CQUFvQixZQWJ0QjtZQUNQLFlBQVk7WUFFWixxQkFBcUI7WUFFckIsZUFBZTtZQUNmLGVBQWU7WUFDZixrQkFBa0I7U0FDbkI7MkZBS1Usb0JBQW9CO2tCQWpCaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFFWixxQkFBcUI7d0JBRXJCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxHQUFHLFVBQVU7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZHNEdXJhdGlvbkJveENvbXBvbmVudCB9IGZyb20gJy4vZHVyYXRpb24tYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER4UG9wb3Zlck1vZHVsZSwgRHhTY3JvbGxWaWV3TW9kdWxlLCBEeFRleHRCb3hNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTZHNEdXJhdGlvblBpcGVNb2R1bGUgfSBmcm9tICdAc3BpY2FpbnRlcm5hdGlvbmFsL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2R1cmF0aW9uLXBpcGUnO1xyXG5cclxuXHJcblxyXG5jb25zdCBjb21wb25lbnRzID0gW1xyXG4gICAgU2RzRHVyYXRpb25Cb3hDb21wb25lbnRcclxuXVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNkc0R1cmF0aW9uQm94Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcblxyXG4gICAgU2RzRHVyYXRpb25QaXBlTW9kdWxlLFxyXG4gICAgXHJcbiAgICBEeFRleHRCb3hNb2R1bGUsXHJcbiAgICBEeFBvcG92ZXJNb2R1bGUsXHJcbiAgICBEeFNjcm9sbFZpZXdNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICAuLi5jb21wb25lbnRzXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzRHVyYXRpb25Cb3hNb2R1bGUgeyB9XHJcbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24tYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2R1cmF0aW9uLWJveC9kdXJhdGlvbi1ib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0csT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOERBQThELENBQUM7O0FBSXJHLE1BQU0sVUFBVSxHQUFHO0lBQ2YsdUJBQXVCO0NBQzFCLENBQUE7QUFvQkQsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQWhCN0IsdUJBQXVCLGFBR3ZCLFlBQVk7UUFFWixxQkFBcUI7UUFFckIsZUFBZTtRQUNmLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsaUJBQWlCLGFBZmpCLHVCQUF1QjtrSEFxQmQsb0JBQW9CLFlBZHRCO1lBQ1AsWUFBWTtZQUVaLHFCQUFxQjtZQUVyQixlQUFlO1lBQ2YsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixpQkFBaUI7U0FDbEI7MkZBS1Usb0JBQW9CO2tCQWxCaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osdUJBQXVCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFFWixxQkFBcUI7d0JBRXJCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLEdBQUcsVUFBVTtxQkFDZDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNkc0R1cmF0aW9uQm94Q29tcG9uZW50IH0gZnJvbSAnLi9kdXJhdGlvbi1ib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHhQb3BvdmVyTW9kdWxlLCBEeFNjcm9sbFZpZXdNb2R1bGUsIER4VGV4dEJveE1vZHVsZSwgRHhWYWxpZGF0b3JNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTZHNEdXJhdGlvblBpcGVNb2R1bGUgfSBmcm9tICdAc3BpY2FpbnRlcm5hdGlvbmFsL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2R1cmF0aW9uLXBpcGUnO1xyXG5cclxuXHJcblxyXG5jb25zdCBjb21wb25lbnRzID0gW1xyXG4gICAgU2RzRHVyYXRpb25Cb3hDb21wb25lbnRcclxuXVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNkc0R1cmF0aW9uQm94Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcblxyXG4gICAgU2RzRHVyYXRpb25QaXBlTW9kdWxlLFxyXG4gICAgXHJcbiAgICBEeFRleHRCb3hNb2R1bGUsXHJcbiAgICBEeFBvcG92ZXJNb2R1bGUsXHJcbiAgICBEeFNjcm9sbFZpZXdNb2R1bGUsXHJcbiAgICBEeFZhbGlkYXRvck1vZHVsZSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIC4uLmNvbXBvbmVudHNcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZHNEdXJhdGlvbkJveE1vZHVsZSB7IH1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24tYm94LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvZHVyYXRpb24tYm94L2R1cmF0aW9uLWJveC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRHVyYXRpb25Cb3hSYW5nZVZpb2xhdGlvbkhhbmRsaW5nID0gJ2F1dG9SZXNvbHZlJyB8ICdtYXJrQXNJbnZhbGlkJzsiXX0=